19推荐系统5NeuralCF

Posted 炫云云

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了19推荐系统5NeuralCF相关的知识,希望对你有一定的参考价值。

1、前言

NeuralCF利用深度神经网络从数据中学习交互函数,替换内积运算,以捕获用户交互数据的复杂结构。

2、从深度学习的视角重新审视矩阵分解模型

矩阵分解技术是将协同过滤的共现矩阵分解为user矩阵与item矩阵乘积的形式, 其中,用户 u u u隐向量和物品 i i i隐向量的内积,就是用户 u u u对物品 i i i评分的预测。 其中user矩阵中的user向量可以看做是每个user的embedding,而item矩阵中每个item向量可以看作是每个item的embedding,最终的“Scoring 层”就是将用户隐向量和物品隐向量进行内积操作后得到“相似度”,这里的“相似度”就是对评分的预测。综上,利用深度学习网络图的方式来描述矩阵分解模型的架构,如图1所示。


图 1 : 矩 阵 分 解 网 络 化 表 示 图1:矩阵分解网络化表示 1

在实际使用矩阵分解来训练和评估模型的过程中,在在会反现模型容易处于欠拟合的状态,究其原因是因为矩阵分解的模型结构相对比较简单,特别是“输出层”(也被称为“Scoring层”),无法对优化目标进行有效的拟合。这就要求模型有更强的表达能力,在此动机的启发下,提出了NeuralCF模型。

3、NeuralCF结构

如图2所示,NeuralCF用“多层神经网络+输出层”的结构替代了矩阵分解模型中简单的内积操作。这样做的收益是直观的,一是让用户向量和物品向量做更充分的交叉,得到更多有价值的特征组合信息;二是引人更多的非线性特征,让模型的表达能力更强。

图 2 : 神 经 协 同 过 滤 框 架 图2:神经协同过滤框架 2
如图2所示,输入层是两个 v u U v_u^U vuU v i I v_i^I viI 描述用户 u u u和物品 i i i的特征向量 ,由于是协同过滤设置,只使用一个用户和物品作为输入,将其转换为one-hot向量。在输入层之上为Embedding层;它是一个全连接层,将稀疏向量投影到稠密向量上。然后将用户Embedding和物品Embedding分别注入多层神经网络结构,将隐向量映射到预测分数。最后的输出层是预测的分数 y ^ u i \\hat{y}_{u i} y^ui,而训练是通过最小化 y ^ u i \\hat{y}_{u i} y^ui y u i y_{ui} yui 之间的 loss来完成的。

NeuralCF的预测分数为:
y ^ u i = f ( P T v u U , Q T v i I ∣ P , Q , Θ f ) (1) \\hat{y}_{u i}=f\\left(\\mathbf{P}^{T} \\mathbf{v}_{u}^{U}, \\mathbf{Q}^{T} \\mathbf{v}_{i}^{I} | \\mathbf{P}, \\mathbf{Q}, \\Theta_{f}\\right)\\tag{1} y^ui=f(PTvuU,QTviIP,Q,Θf)(1)
这里 P ∈ R M × K  并且  Q ∈ R N × K \\mathbf{P} \\in \\mathbb{R}^{M \\times K} \\text { 并且 } \\mathbf{Q} \\in \\mathbb{R}^{N \\times K} PRM×K 并且 QRN×K 分别表示用户和物品的隐含因子矩阵。 Θ f \\Theta_{f} Θf 表示了交互函数 f f f的模型参数。函数 f f f可以定义为多层神经网络,可以被表述为:
f ( P T v u U , Q T v i I ) = ϕ o u t ( ϕ X ( … ϕ 2 ( ϕ 1 ( P T v u U , Q T v i I ) ) … ) ) (2) f\\left(\\mathbf{P}^{T} \\mathbf{v}_{u}^{U}, \\mathbf{Q}^{T} \\mathbf{v}_{i}^{I}\\right)=\\phi_{o u t}\\left(\\phi_{X}\\left(\\ldots \\phi_{2}\\left(\\phi_{1}\\left(\\mathbf{P}^{T} \\mathbf{v}_{u}^{U}, \\mathbf{Q}^{T} \\mathbf{v}_{i}^{I}\\right)\\right) \\ldots\\right)\\right)\\tag{2} f(PTvuU,QTviI)=ϕout(ϕX(ϕ2(ϕ1(PTvuU,QTviI))))(2)
ϕ o u t \\phi_{out} ϕout ϕ x \\phi_{x} ϕx分别表示输出层和第 x x x层神经协同滤的映射函数(CF)层,总共有 X X X个神经CF层。

3.1、NeuralCF的学习

使用平方损失:
L s q r = ∑ ( u , i ) ∈ Y ∪ Y − w u i ( y u i − y ^ u i ) 2 (3) L_{s q r}=\\sum_{(u, i) \\in \\mathcal{Y} \\cup \\mathcal{Y}-} w_{u i}\\left(y_{u i}-\\hat{y}_{u i}\\right)^{2}\\tag{3} Lsqr=(u,i)YYwui(yuiy^ui)2(3)
Y \\mathcal{Y} Y 表示了在 Y Y Y中观察到的相互作用的集合, Y − \\mathcal{Y}- Y表示负向实例的集合。 w u i w_{ui} wui 是表示训练实例 ( u , i ) (u, i) (u,i)权值的超参数。目标值 y u i y_{ui} yui 是一个二值化的1或0,表示 u u u是否与 i i i交互。预测得分 y ^ u i \\hat{y}_{u i} y^ui 表示了用户 u u u和物品 i i i之间相关的可能性。需要限制输出 y ^ u i \\hat{y}_{u i} y^ui [ 0 , 1 ] [0,1] [0,1]之间,它可以很容易地通过使用概率函数(例如,Logistic或Probit函数)作为输出层 ϕ o u t \\phi_{out} ϕout的激活函数。 定义概率函数如下所示:

p ( Y , Y − ∣ P , Q

以上是关于19推荐系统5NeuralCF的主要内容,如果未能解决你的问题,请参考以下文章

19推荐系统4DeeoCrossing

19推荐系统18MMoE-PosBias:多任务学习

19推荐系统3AutoRec

19推荐系统19SNR:多任务学习

直播 | 汽车之家推荐系统排序算法迭代之路

19推荐系统12FM——TensorFlow2实现