深度推荐模型
改变神经网络复杂度
AutoRec
AutoEncoder + Recommend
-
概述:将AutoEncoder与CF结合,利用CF中的共现矩阵,完成物品向量或用户向量的自编码,再利用自编码的结果得到用户对物品的预估评分,进而进行推荐排序
-
对于一个物品 i i i来说,共现矩阵中的 m m m个用户对它的评分可形成一个 m m m维的向量 r ( i ) = ( R 1 i , … , R m i ) T \boldsymbol{r}^{(i)}=\left(R_{1 i}, \ldots, R_{m i}\right)^{\mathrm{T}} r(i)=(R1i,…,Rmi)TAutoRec需要解决的问题是如何构建一个重建函数 h ( r ; θ ) h(\boldsymbol{r} ; \theta) h(r;θ),使该重建函数生成的评分向量与原评分向量的平方残差和最小
-
AutoRec使用简单的MLP来解决向量自编码(重建)问题,数学形式如下所示:简单的MLP加上非线性激活函数和偏置
h ( r ; θ ) = f ( W ⋅ g ( V r + μ ) + b ) h(\boldsymbol{r} ; \theta)=f(\boldsymbol{W} \cdot g(\boldsymbol{V} \boldsymbol{r}+\mu)+b) h(r;θ)=f(W⋅g(Vr+μ)+b)
-
AutoRec目标函数
min θ ∑ i = 1 n ∥ r ( i ) − h ( r ( i ) ; θ ) ∥ 0 2 + λ 2 ⋅ ( ∥ W ∥ F 2 + ∥ V ∥ F 2 ) \min _{\theta} \sum_{i=1}^{n}\left\|\boldsymbol{r}^{(i)}-h\left(\boldsymbol{r}^{(i)} ; \theta\right)\right\|_{0}^{2}+\frac{\lambda}{2} \cdot\left(\|W\|_{F}^{2}+\|\boldsymbol{V}\|_{F}^{2}\right) θmini=1∑n r(i)−h(r(i);θ) 02+2λ⋅(∥W∥F2+∥V∥F2)
-
当物品 i i i的评分向量为 r ( i ) \boldsymbol{r}^{(i)} r(i)时,模型的输出向量 h ( r ( i ) ; θ ) h\left(\boldsymbol{r}^{(\mathrm{i})} ; \theta\right) h(r(i);θ)就是所有用户对物品 i i i的评分预测,其中的第 u u u维就是用户 u u u对物品 i i i的预测 R ^ u i \hat{R}_{\mathrm{ui}} R^ui
R ^ u i = ( h ( r ( i ) ; θ ^ ) ) u \hat{R}_{\mathrm{ui}}=\left(h\left(\boldsymbol{r}^{(\mathrm{i})} ; \hat{\theta}\right)\right)_{u} R^ui=(h(r(i);θ^))u
- 遍历输入物品向量就可以得到用户 u u u对所有物品的评分预测,进而排序得到推荐列表
-
上述介绍的AutoRec输入向量是物品的评分向量,因此可称为I-AutoRec(Item based AutoRec),如果换做把用户的评分向量作为输入向量,则得到U-AutoRec(User based AutoRec)
- 在进行推荐列表生成的过程中,U-AutoRec相比I-AutoRec的优势在于仅需输入一次目标用户的用户向量,就可以重建用户对所有物品的评分向量;劣势是用户向量的稀疏性可能会影响模型效果
Deep Crossing
Paper : Deep Crossing: Web-Scale Modeling without Manually Crafted Combinatorial Features
-
Deep Crossing解决的几个问题
-
离散特征编码后向量过于稀疏
- Embedding
-
特征自动交叉组合
-
-
模型结构
-
Embedding
- 对离散稀疏向量进行Embedding,数值型在该步不作改动
-
Stacking
- 对特征进行Concate操作
-
Multiple Residual Units
- Residual + MLP
-
Scoring
- (对于CTR预估)Sigmoid
-
改变特征交叉方式
NeuralCF
Paper : Neural Collaborative Filtering
Neural Collaborative Filtering
-
广义矩阵分解模型
Generalized Matrix Factorization,GMF
- 用户和物品向量的互操作可以被任意的互操作形式替代
-
原始NeuralCF
-
Embedding + DNN
-
-
混合NeuralCF
-
Embedding + GMF(Generalized Matrix Factorization) + MLP
-
PNN
Paper : Product-based Neural Networks for User Response Prediction
Product-based Neural Network
-
模型架构
- 基本架构与Deep Crossing类似,使用Product Layer代替Stacking Layer,不同特征的Embedding向量不再是简单的拼接,而是Product操作的两两交互,更有针对性的获取特征之间的交叉信息
-
Product Layer
Product Layer分为线性操作部分(z)与乘积操作部分(p)
-
线性操作部分(z)
- 对各特征向量进行线性拼接
-
乘积操作部分(p)
-
IPNN(Inner Product-based Neural Network)
-
内积
W p n ⊙ p = ∑ i = 1 N ∑ j = 1 N ⟨ θ n i , θ n j ⟩ ⟨ f i , f j ⟩ . \boldsymbol{W}_{p}^{n} \odot \boldsymbol{p}=\sum_{i=1}^{N} \sum_{j=1}^{N}\left\langle\boldsymbol{\theta}_{n}^{i}, \boldsymbol{\theta}_{n}^{j}\right\rangle\left\langle\boldsymbol{f}_{i}, \boldsymbol{f}_{j}\right\rangle . Wpn⊙p=i=1∑Nj=1∑N⟨θni,θnj⟩⟨fi,fj⟩.
-
-
OPNN(Outer Product-based Neural Network)
-
外积
p = ∑ i = 1 N ∑ j = 1 N f i f j T = f Σ ( f Σ ) T , f Σ = ∑ i = 1 N f i \boldsymbol{p}=\sum_{i=1}^{N} \sum_{j=1}^{N} \boldsymbol{f}_{i} \boldsymbol{f}_{j}^{T}=\boldsymbol{f}_{\Sigma}\left(\boldsymbol{f}_{\Sigma}\right)^{T}, \quad \boldsymbol{f}_{\Sigma}=\sum_{i=1}^{N} \boldsymbol{f}_{i} p=i=1∑Nj=1∑NfifjT=fΣ(fΣ)T,fΣ=i=1∑Nfi
-
-
-
最后将两部分得到的特征向量拼接输入下一层
-