🗒️推荐算法总结

type
status
date
slug
summary
tags
category
icon
password
😀
总结内容主要参考王喆的《深度推荐系统》这本书

模型演化图

传统模型

演化图

notion image

模型总结

模型名称
基本原理
特点
局限性
协同过滤
根据用户的历史行为生成用户-物品共现矩阵,利用用户相似性和物品相似性进行推荐
原理简单、直接,应用广泛
泛化能力差,处理稀疏矩阵的能力差,推荐结果的头部效应比较明显
矩阵分解
将协同过滤算法中的共现矩阵分解为用户矩阵和物品矩阵,利用用户隐向量和物品隐向量的内积进行排序推荐
相较于协同过滤,泛化能力有所加强,对稀疏矩阵的处理有所加强
除了用户历史行为数据,很难利用其它用户、物品及上下文特征
逻辑回归
将推荐问题转化为类似CTR评估的二分类问题,将用户、物品、上下文特征转换为特征向量,输入逻辑回归模型得到CTR,在按照预估CTR进行排序推荐
能融合多种类型的不同特征
模型不具备特征组合能力,表达能力差
FM(因子分解机)
在逻辑回归的基础上,在模型中加入二阶特征交叉部分,为每一维特征训练得到相应特征隐向量,通过隐向量间的内积运算得到交叉特征的权重
相比逻辑回归,具备了二阶特征交叉能力,模型的表达能力增强
由于组合爆炸问题的限制,模型不易扩展到三阶特征交叉阶段
FFM
在FM模型的基础上,加入“特征域”的概念,是每个特征在与不同域的特征交叉时采用不同的隐向量
相比FM,进一步加强了特征交叉的能力
模型的训练开销达到了O(n^2)的量级,训练开销较大
GBDT+LR
利用GBDT进行“自动化”的特征组合,将原始特征向量转换为离散型特征向量,并输入逻辑回归模型,进行最终的CTR预估
特征工程模型化,使模型具有更高阶特征组合能力
GBDT无法进行完全并行的训练,更新所需的训练时长较长

深度模型

演化图

notion image

模型总结

模型名称
基本原理
特点
局限性
AutoRec
基于自编码器,对用户或者物品进行编码,你用自编码器的泛化能力进行推荐
单隐层神经网络结构简单,可快速训练和部署
表达能力较差
Deep Crossing
利用“Embedding层+多隐层+输出层”的经典深度学习框架,预完成特征的自动深度交叉
经典深度学习框架
利用全连接隐层进行特征交叉,针对性不强
NeuralCF
将传统的矩阵分解中的用户向量和物品向量的点积操作,换成由神经网络代替的互操作
表达能力加强版的矩阵分解模型
只使用了用户和物品的id特征,没有加入更多的其他特征
PNN
针对不同特征域之间的交叉操作,定义“内积”“外积”等多种积操作
在经典深度学习框架模型上,提高对特征交叉能力
“外积”操作进行了近似化,一定程度上影响了其表达能力
Wide&Deep
利用Wide部分加强模型的“记忆能力”,利用Deep部分加强模型的“泛化能力”
开创了组合模型的构造方法,对深度学习推荐模型的后续发展产生重大影响
Wide部分需要人工进行特征组合的筛选
Deep&Cross
用Cross网络替代Wide&Deep模型中的Wide部分
解决了Wide&Deep模型人工组合特征的问题
Cross网络的复杂度较高

参考文章

  • 王喆《深度推荐系统》
 
音乐推荐系统3面试题总结
Loading...