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,QTviI∣P,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}
P∈RM×K 并且 Q∈RN×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)∈Y∪Y−∑wui(yui−y^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的主要内容,如果未能解决你的问题,请参考以下文章