Neural Collaborative Filtering

  • 简述
  • 矩阵分解(MF)
  • NCF
  • 1.GMF 广义矩阵分解
  • 2.MLP(多层感知机)
  • 3.NeuMF
  • 实验


简述


本文主要讨论隐式反馈协同过滤。先说明了传统MF方法的局限性,然后提出了一种通用框架NCF并提出了三种实现方法(GMF、MLP、NeuMF)。之后从三个角度对本文提出的方法进行实验

矩阵分解(MF)

ncnn不支持的算子 不支持ncf是什么意思_ncnn不支持的算子


MF模型是用户和项目的潜在因素的双向互动,它假设潜在空间的每一维都是相互独立的并且用相同的权重将它们线性结合。因此,MF可视为隐向量(latent factor)的线性模型。(a)是user-item交互矩阵,(b)是用户的隐式空间,论文中强调了两点来理解这张图片:

1)MF将user和item分布到同样的隐式空间中,那么两个用户之间的相似性也可以用二者在隐式空间中的向量夹角来确定。

2)使用Jaccard系数来作为真实的用户相似性。

通过MF计算的相似性与Jaccard系数计算的相似性也可以用来评判MF的性能。

ncnn不支持的算子 不支持ncf是什么意思_矩阵分解_02

ncnn不支持的算子 不支持ncf是什么意思_ncnn不支持的算子_03

NCF

ncnn不支持的算子 不支持ncf是什么意思_多层感知机_04

ncnn不支持的算子 不支持ncf是什么意思_ncnn不支持的算子_05


ncnn不支持的算子 不支持ncf是什么意思_协同过滤_06


这张图包含了三种方式分别为:

1.GMF 广义矩阵分解

在图中的GMF layer

PTvUu 表示用户的潜在向量 pu ,QTvIi 表示项目的潜在向量 qi ,其中 ⊙ 表示向量的逐元素乘积。我们定义第一层神经CF层的映射函数为

ncnn不支持的算子 不支持ncf是什么意思_多层感知机_07

将向量映射到输出层,aout 和 h 分别表示输出层的激活函数和连接权

ncnn不支持的算子 不支持ncf是什么意思_多层感知机_08

2.MLP(多层感知机)

也就是图中的右边MLP layer

简单地对向量的连接不足以说明用户和项目之间的潜在特征,这对协同过滤建模来说是不够的。

为了解决这个问题,我们提出在向量连接上增加隐藏层,使用标准的MLP(多层感知机)学习用户和项目潜在特征之间的相互作用。在这个意义上,我们可以赋予模型高水平的灵活性和非线性建模能力,而不是GMF(广义矩阵分解)那样的简单使用逐元素相乘的内积来描述用户和项目之间的潜在交互特征。更确切地说,我们的NCF框架下的MLP模型定义为

ncnn不支持的算子 不支持ncf是什么意思_协同过滤_09

3.NeuMF

这种方法结合了GMF和MLP,使他们共享相同的嵌入层(Embedding layer),然后再结合它们分别对相互作用的函数输出。

ncnn不支持的算子 不支持ncf是什么意思_矩阵分解_10


为了使得融合模型具有更大的灵活性,我们允许GMF和MLP学习独立的嵌入,并结合两种模型通过连接他们最后的隐层输出。

ncnn不支持的算子 不支持ncf是什么意思_推荐系统_11

实验

QR1 我们提出的NCF方法是否胜过state-of-art的隐性协同过滤方法?
QR2 我们提出的优化框架(消极样本抽样的log loss)怎样为推荐系统服务?
QR3 更深的隐藏单元是不是有助于对用户项目交互 数据的学习?
从以上三个角度进行实验。
数据集:
MovieLens4和 Pinterest
Baselines,论文将NCF方法与下列方法进行了比较:ItemPop,ItemKNN,BPR,eALS。
实验结果见论文。