【推荐系统】从协同过滤到深度学习

本文基于《深度学习推荐系统》的模型总结,从协同过滤和逻辑回归的演变大方向来整理。

目录

    • 1.CF——*只利用交互信息*
    • 2. LR——*多特征融合*
    • 3.MF——*引入用户、物品隐变量*
    • 4.AutoRec——*结合自编码器*
    • 5.NeuralCF——*结合深度学习*
    • 6. POLY2——*增加二阶特征*
    • 7.FM——*引入特征隐变量*
    • 8.FFM——*引入特征域*
    • 9.GBDT&LR——*开启特征工程自动化趋势*
    • 10.wide&deep——*开启双模型思路*
    • 11.Deep&Cross——*用cross替代wide*
    • 12.DeepFM——*用FM替代wide*
    • 13.NFM——*在deep增加特征交叉池化层*
    • 14.AFM——*引入注意力机制*
    • 15.Deep Crossing——革命性的端到端训练
    • 16.PNN——*引入乘积层*
    • 17.FNN——*DNN结合FM*
    • 18.DIN
    • 19.DIEN——*引入序列信息*
    • 20.DQN——*能够在线学习*

个人感觉目前的推荐系统仿佛都是以协同过滤(CF)、矩阵分解(MF)、逻辑回归(LR)、因子分解机(FM)和深度神经网络(DNN)为基础组件的各种组合!以wide&deep为框架进行各种改装。
 

1.CF——只利用交互信息

协同过滤基于共现矩阵,根据不同的观察方式,可以划分为UserCF(按行)和ItemCF(按列)。UserCF非常适合于兴趣点快速变化的场景(如新闻推荐),能够发现热点和跟踪趋势;ItemCF适合于兴趣变化较为平稳的场景,适合于推荐风格、类型相似的物品。
【推荐系统】从协同过滤到深度学习_第1张图片

【缺点】
(1)数据稀疏问题:用户对物品的评价较少,不容易找到相似的用户或相似的物品;
(2)冷启动问题:也就是刚加入的用户或物品,其没有任何评价数据,与其它用户或物品的相似度皆为0,无法为其推荐;
(3)热门物品头部效应:热门的物品(评价较多)容易跟大量物品产生相似性,导致长尾物品(评价较少)不容易被推荐
(4)只利用了用户交互信息,没有用到用户和物品本身的丰富的信息
(5)模型简单,表达能力弱,容易欠拟合。
以协同过滤为基础的模型都旨在解决上述问题。

2. LR——多特征融合

z = w T x + b z =w^{T}x+b z=wTx+b
y = 1 1 + e − z y=\frac{1} {1+e^{-z}} y=1+ez1
【改进】 LR对多特征进行融合,可以解决CF类不能利用用户和物品信息的问题
逻辑回归的本质是对各个特征赋予一个权重,越重要的特征权重越大,累加全部特征和对应权重的和,用sigmoid函数处理成【0-1】之间的值,当做点击率。CF将推荐问题转换为共现矩阵空白处的填充预测问题;LR将推荐问题转换为CTR预估问题
 
【缺点】
LR只对单一特征进行简单加权,不具备特征交叉生成高维特征的能力,也就没有对特征信息进行充分利用,造成表达能力不足
 

————————————————————对CF的改进—————————————————————

3.MF——引入用户、物品隐变量

【推荐系统】从协同过滤到深度学习_第2张图片

【改进】 矩阵分解引入用户隐变量和物品隐变量,能够一定程度上解决CF数据稀疏问题。
 
【缺点】
矩阵分解属于CF,除了稀疏问题被解决,CF的其它问题仍然存在;

4.AutoRec——结合自编码器

【推荐系统】从协同过滤到深度学习_第3张图片

【改进】 将共现矩阵的用户变量或物品变量用自编码器(3层神经网络)训练
【缺点】
网络简单,表达能力不足

5.NeuralCF——结合深度学习

【推荐系统】从协同过滤到深度学习_第4张图片

【改进】 将MF的内积替换为“多层神经网络+输出层”,增加模型表达能力
【缺点】
虽然模型表达能力增强,但仍然没有引入更多其他类型的特征
 

————————————————————对LR的改进—————————————————————

6. POLY2——增加二阶特征

y ( X ) = w 0 + ∑ i = 1 n w i x i + ∑ i = 1 n ∑ j = i + 1 n w i j x i x j y(X)=w_{0}+∑_{i=1}^{n}w_{i}x_{i}+∑_{i=1}^{n}∑_{j=i+1}^{n}w_{ij}x_{i}x_{j} y(X)=w0+i=1nwixi+i=1nj=i+1nwijxixj
【改进】 对LR的线性回归部分(即z)进行改进,采用暴力组合方式,增加二阶特征。

7.FM——引入特征隐变量

y ( X ) = w 0 + ∑ i = 1 n w i x i + ∑ i = 1 n ∑ j = i + 1 n < V i , V j > x i x j y(X)=w_{0}+∑_{i=1}^{n}w_{i}x_{i}+∑_{i=1}^{n}∑_{j=i+1}^{n}x_{i}x_{j} y(X)=w0+i=1nwixi+i=1nj=i+1n<Vi,Vj>xixj

8.FFM——引入特征域

y ( X ) = w 0 + ∑ i = 1 n w i x i + ∑ i = 1 n ∑ j = i + 1 n < V i , f j , V j , f i > x i x j y(X)=w_{0}+∑_{i=1}^{n}w_{i}x_{i}+∑_{i=1}^{n}∑_{j=i+1}^{n}x_{i}x_{j} y(X)=w0+i=1nwixi+i=1nj=i+1n<Vi,fj,Vj,fi>xixj
【改进】 在FM基础上,引入特征域,每个特征都对应一组隐变量,每个隐变量对应不同的特征域,用两个特征的对应特征域的隐变量的内积替换POLY2中的权重。
【缺点】
POLY2、FM和FFM不能引申到三阶特征交叉,会产生组合爆炸。

9.GBDT&LR——开启特征工程自动化趋势

【推荐系统】从协同过滤到深度学习_第5张图片
【改进】利用GBDT自动进行高阶特征组合和筛选
【缺点】
(1)不是端到端训练,GBDT构建特征工程和LR预估CTR是两个独立的过程;
(2)GBDT的特征转换方式丢失了大量特征的数值信息;
(3)GBDT的缺点在这个方法中都存在,如容易过拟合

10.wide&deep——开启双模型思路

【推荐系统】从协同过滤到深度学习_第6张图片
【改进】 从Stacking角度,相当于融合了两个模型;从LR角度来看,wide&deep本质仍是一个LR,与原始LR的区别在于,对特征进行了区别处理,将强特征直接输入LR,而弱特征需要先用MLP进行特征交叉的预处理后再送入LR。

——————————————————对wide&deep的改进———————————————————

11.Deep&Cross——用cross替代wide

【推荐系统】从协同过滤到深度学习_第7张图片

x l + 1 = x l + x 0 x l T W l + b l x_{l+1}=x_{l}+x_{0}x_{l}^{T}W_{l}+b_{l} xl+1=xl+x0xlTWl+bl
【改进】 在wide&deep上,wide部分用cross网络替代,每一层在保留上一层原始信息的同时,增加少部分交叉特征的信息,相当于在尽量保留原强特征信息的同时,增加一些多样性,而不是直接用,增加浅层网络部分的特征组合能力

12.DeepFM——用FM替代wide

【推荐系统】从协同过滤到深度学习_第8张图片

【改进】 在wide&deep上,用FM替代wide部分,增加浅层部分特征组合的能力

13.NFM——在deep增加特征交叉池化层

【推荐系统】从协同过滤到深度学习_第9张图片

【改进】 从FM角度,相当于把二阶部分换成了一个MLP函数;从wide&deep角度,相当于在deep部分加入了特征交叉池化层,加强特征交叉能力
【缺点】
加和池化操作对所有交叉特征一视同仁(权重相同),不考虑不同特征对结果的影响程度,消解了大量有价值的信息。

14.AFM——引入注意力机制

【推荐系统】从协同过滤到深度学习_第10张图片

【改进】 在NFM上,引入注意力机制,对不同的交叉特征提供注意力得分。

———————————————————————用DNN完全替代LR———————————————————————

15.Deep Crossing——革命性的端到端训练

【推荐系统】从协同过滤到深度学习_第11张图片

【改进】 在原始特征后添加Embedding层,通过Stacking层拼接之后,用多层残差单元进行训练,输出层LR。
【缺点】
(1)Stacking对不同特征的Embedding向量进行简单的拼接
(2)由于Embedding层的存在,导致模型参数数量巨大,收敛也非常缓慢

16.PNN——引入乘积层

【推荐系统】从协同过滤到深度学习_第12张图片
【改进】 在Deep Crossing上,用乘积层替换Stacking层,对不同特征的Embedding向量进行两两交叉后连接
【缺点】
对所有特征进行无差别的交叉,一定程度上忽略了原始特征向量中包含的有价值信息

17.FNN——DNN结合FM

【推荐系统】从协同过滤到深度学习_第13张图片

【改进】 在Deep Crossing上,将FM的隐向量作为Embedding层的初始化,用于加快网络收敛

———————————————————结合注意力机制————————————————————

18.DIN

【推荐系统】从协同过滤到深度学习_第14张图片

【改进】 在用户特征组加入了注意力机制

19.DIEN——引入序列信息

【推荐系统】从协同过滤到深度学习_第15张图片

【改进】 在DIN上,增加了一个兴趣进化网络,由GRU和AuGRU组成。,能够预测用户下一次购买物品

———————————————————结合强化学习—————————————————————

20.DQN——能够在线学习

【推荐系统】从协同过滤到深度学习_第16张图片
【改进】 与其它深度学习模型不同。DQN边静态为动态,模型狗狗与最新鲜的数据包次同步,将最新的反馈信息实时的融入模型中。

你可能感兴趣的:(算法篇,深度学习,推荐系统,协同过滤,逻辑回归)