本文翻译自新加坡国立大学何向南博士 et al.发布在《World Wide Web》(2017)上的一篇论文《Neural Collaborative Filtering》。本人英语水平通常+学术知识匮乏+语文水平拙劣,翻译权当进一步理解论文和提升专业英语水平,translate不到key point还请见谅。web
何博士的主页:http://www.comp.nus.edu.sg/~xiangnan/算法
本文原文:http://www.comp.nus.edu.sg/~xiangnan/papers/ncf.pdf跨域
P.S. 何博士的论文通常都是paper+slide+code齐全,学习起来很方便网络
翻译过程当中,不肯定的词组都会附英文原文,另外本身的补充会用括号+倾斜加粗的形式给出,以助于理解。app
近年来,深层神经网络在语音识别,计算机视觉和天然语言处理方面都取得了巨大的成功。然而相对的,对应用深层神经网络的推荐系统的探索却受到较少的关注。在这项工做中,咱们力求开发一种基于神经网络的技术,来解决在含有隐形反馈的基础上进行推荐的关键问题————协同过滤。框架
尽管最近的一些工做已经把深度学习运用到了推荐中,可是他们主要是用它(深度学习)来对一些辅助信息(auxiliary information)建模,好比描述文字的项目和音乐的声学特征。当涉及到建模协同过滤的关键因素(key factor)————用户和项目(item)特征之间的交互的时候,他们仍然采用矩阵分解的方式,并将内积(inner product)作为用户和项目的潜在特征点乘。经过用神经结构代替内积这能够从数据中学习任意函数,据此咱们提出一种通用框架,咱们称它为NCF(Neural network-based Collaborative Filtering,基于神经网络的协同过滤)。NCF是一种通用的框架,它能够表达和推广矩阵分解。为了提高NFC的非线性建模能力,咱们提出了使用多层感知机去学习用户-项目之间交互函数(interaction function)。在两个真实世界(real-world)数据集的普遍实验显示了咱们提出的NCF框架对最早进的方法的显著改进。dom
协同过滤,神经网络,深度学习,矩阵分解,隐性反馈(Implicit Feedback).机器学习
在信息爆炸的时代,推荐系统在减轻信息过载方面发挥了巨大的做用,被众多在线服务,包括电子商务,网络新闻和社交媒体等普遍采用。个性化推荐系统的关键在于根据过去用户交互的内容(e.g. 评分,点击),对用户对项目的偏好进行建模,就是所谓的协同过滤[31,46]。在众多的协同过滤技术中,矩阵分解(MF)[14,21]是最受欢迎的,它将用户和项目映射到共享潜在空间(shared latent space),使用潜在特征向量(latent features),用以表示用户或项目。这样一来,用户在项目上的交互就被建模为它们潜在向量之间的内积。ide
因为Netflix Prize的普及,MF已经成为了潜在因素(latent factor)建模推荐的默认方法。已经有大量的工做致力于加强MF(的性能),例如将其与基于邻居(相邻用户or项目)的模型集成[21],与项目内容的主题模型[38]相结合,还有将其扩展到因式分解机(factorization machines)[26],以实现特征的通用建模。尽管MF对协同过滤有效,但众所周知,其性能能够被简单选择交互函数(内积)所阻碍。例如,对于显式反馈的评估预测任务,能够经过将用户和项目偏移项归入交互函数来改善MF模型的性能1。虽然内积算子[14]彷佛只是一个微不足道的调整,但它指出了设计一个更好的专用交互函数,用于建模用户和项目之间的潜在特征交互的积极效果。简单地将潜在特征的乘积线性组合的内积可能不足以捕捉用户交互数据的复杂结构。函数
1http://alex.smola.org/teaching/berkeley2012/slides/8_Recommender.pdf
本文探讨了使用深层神经网络来学习数据的交互函数,而不是那些之前已经完成的手动工做(handcraft)[18,21]。神经网络已经被证实有拟合任何连续函数的能力[17],最近深层神经网络(DNN)被发掘出在几个领域的出色表现:从计算机视觉,语音识别到文本处理[5,10,15,47]。然而,与普遍的MF方法文献相比,使用DNNs进行推荐的工做相对较少。虽然最近的一些研究进展[37,38,45]已经将DNN应用于推荐任务,并展现出不错的效果,但他们大多使用DNN来建模一些辅助信息,例如物品的文字描述,音乐的音频特征和图像的视觉内容(描述)。对于影响建模效果的关键因素——协同过滤,他们仍然采用MF,使用内积结合用户和项目潜在特征。
咱们这项工做是经过形式化用于协同过滤的神经网络建模方法来解决上述研究问题。咱们专一于隐性反馈(implicit feedback),经过参考观看视频,购买产品和点击项目等间接反映用户偏好的行为。与显性反馈(explicit feedback)(i.e. 评级和评论)相比,隐性反馈能够自动跟踪,从而更容易为内容提供商所收集。可是,因为隐性反馈不能反映用户的满意度,而且负反馈(negative feedback)存在天然稀疏(natural scarcity)问题,使得这个问题更具挑战性。在本文中,咱们探讨了如何利用DNN来模拟噪声隐性反馈信号的中心问题。
这项工做的主要贡献有以下几点:
一、咱们提出了一种神经网络结构来模拟用户和项目的潜在特征,并设计了基于神经网络的协同过滤的通用框架NCF。
二、咱们代表MF能够被解释为NCF的特例,并利用多层感知器来赋予NCF高水平的非线性建模能力。
三、咱们对两个现实世界的数据集进行普遍的实验,以证实咱们的NCF方法的有效性和对使用深度学习进行协做过滤的承诺。
咱们首先把问题形式化,并讨论现有的隐性反馈协同过滤解决方案。而后,咱们简要归纳普遍使用的MF模型,重点指出使用内积所形成的对模型的限制。
令\(\ M\ \)和\(\ N\ \)分别表示用户和项目的数量。咱们将从用户的隐性反馈获得的用户-项目交互矩阵\(\ Y\in\mathbb{R}^{M\times N}\ \)定义为:
\(y_{ui}=\{_{0,otherwise.}^{1,if\ interaction(user\ u,item\ i)is\ observed;}\ \ \ \ (1)\)
这里 \(\ y_{ui}\ \)为 1 表示用户 \(u\) 和项目 \(i\) 存在交互记录;然而这并不意味着 \(u\) 真的喜欢 \(i\)。一样的,值 0 也不是代表 \(u\) 不喜欢 \(i\),也有多是这个用户根本不知道有这个项目。这对隐性反馈的学习提出了挑战,由于它提供了关于用户偏好的噪声信号。虽然观察到的条目至少反映了用户对项目的兴趣,可是未查看的条目可能只是丢失数据,而且这其中存在天然稀疏的负反馈。
在隐性反馈上的推荐问题能够表达为估算矩阵 \(Y\) 中未观察到的条目的分数问题(这个分数被用来评估项目的排名)。基于模型的方法假定这些缺失的数据能够由底层模型生成(或者说描述)。形式上它能够被抽象为学习函数 \(\hat{y}_{ui}=f(u,i|\Theta)\) ,其中 \(\hat{y}_{ui}\) 表示交互 \(\ y_{ui}\ \)的预测分数,\(\Theta\) 表示模型参数,\(f\) 表示表示模型参数映射到预测分数的函数(咱们把它称做交互函数)。
为了估计参数Θ,现有的方法通常是遵循机器学习范例,优化目标函数。在文献中最经常使用到两种损失函数:逐点损失[14,19](pointwise loss)和成对损失[27,33] (pairwise loss) 。因为显性反馈研究上丰富的工做的天然延伸[21,46],在逐点的学习方法上通常是遵循的回归模式,最小化 \(\hat{y}_{ui}\) 及其目标值 \(\ y_{ui}\ \)之间的均方偏差。同时为了处理没有观察到的数据,他们要么将全部未观察到的条目视做负反馈,要么从没有观察到条目中抽样做为负反馈实例[14]。对于成对学习[27,44],作法是,观察到的条目应该比未观察到的那些条目的排名更高。所以,成对学习最大化观察项 \(\hat{y}_{ui}\) 和未观察到的条目 \(\hat{y}_{ui}\) 之间的空白,而不是减小 \(\hat{y}_{ui}\) 和 \(\ y_{ui}\ \)之间的损失偏差。
更进一步,咱们的NCF框架利用神经网络,参数化相互做用函数 \(f\),从而估计 \(\hat{y}_{ui}\)。所以,它就很天然地同时支持点损失和成对损失。
MF(Matrix Factorization)用一个潜在特征向量实值将每一个用户和项目关联起来。令 \(\mathbf{\mathrm{p}}_{u}\) 和 \(\mathbf{\mathrm{q}}_{i}\) 分别表示用户 \(u\) 和项目 \(i\) 的潜在向量;MF评估相互做用\(\ y_{ui}\ \)做为 \(\mathbf{\mathrm{p}}_{u}\) 和 \(\mathbf{\mathrm{q}}_{i}\) 的内积:
\(\hat{y}_{u,i}=f(u,i|\mathbf{\mathrm{p}_{u}},\mathbf{\mathrm{q}_{i}})=\mathbf{\mathrm{p}_{u}^{T}}\mathbf{\mathrm{q}_{i}}=\sum_{k=1}^{K}p_{uk}q_{ik},\ \ \ \ (2)\)
这里的 \(K\) 表示潜在空间(latent space)的维度。正如咱们所看到的,MF模型是用户和项目的潜在因素的双向互动,它假设潜在空间的每一维都是相互独立的而且用相同的权重将它们线性结合。所以,MF可视为潜在因素(latent factor)的线性模型。
图1(Figure 1)展现了的内积函数(inner product function)如何限制MF的表现力。这里有两个背景必须事先说明清楚以便于更好地了解例子。第一点,因为MF将用户和项目映射到同一潜在空间中,两个用户之间的类似性也能够用内积,或者潜在向量之间的角度的余弦值来衡量2。第二点,不失通常性,咱们使用Jaccard系数3做为MF须要恢复的两个用户的真实情况之间的类似度。
2假定潜在向量都是单位长度
3令 \(\boldsymbol{R}_{u}\) 表示与用户 \(u\) 交互的项目集,那么用户 \(u\) 和 \(j\) 之间的Jaccard类似系数就被定义为:
\(s_{ij}=\frac{|\boldsymbol{R}_{i}|\cap|\boldsymbol{R}_{j}|}{|\boldsymbol{R}_{i}|\cup|\boldsymbol{R}_{j}|}\)
咱们首先关注的图1(a)中的前三行(用户)。很容易能够计算出 \(s_{23}(0.66)>s_{12}(0.5)>s_{13}(0.4)\) 。这样,\(\bf p_{1}\),\(\bf p_{2}\) 和 \(\bf p_{3}\) 在潜在空间中的几何关系可绘制成图1(b)。如今,让咱们考虑一个新的用户 \(u_{4}\),它的输入在图1(a)中的用虚线框出。咱们一样能够计算出 \(s_{41}(0.6)>s_{43}(0.4)>s_{42}(0.2)\) ,表示 \(u_{4}\) 最接近 \(u_{1}\),接着是 \(u_{3}\) ,最后是 \(u_{2}\) 。然而,若是MF模型将 \(\bf p_{4}\) 放在了 最接近 \(\bf p_{1}\) 的位置(图1(b) 中的虚线展现了两种不一样的摆放 \(\bf p_{4}\) 的方式,结果同样),那么会使得 \(\bf p_{4}\) 相比与 \(\bf p_{3}\) 更接近于 \(\bf p_{2}\) (显然,根据图1(a),\(u_{4}\) 应该更接近 \(u_{3}\)),这会致使很大的排名偏差(ranking loss)。
上面的示例显示了MF由于使用一个简单的和固定的内积,来估计在低维潜在空间中用户-项目的复杂交互,从而所可能形成的限制。咱们注意到,解决该问题的方法之一是使用大量的潜在因子 \(K\) (就是潜在空间向量的维度)。然而这可能对模型的泛化能力产生不利的影响(e.g. 数据的过拟合问题),特别是在稀疏的集合上。在本文的工做中,咱们经过使用DNNs从数据中学习交互函数,突破了这个限制。
咱们首先提出的整体框架NCF,阐述NCF如何学习强调了隐式数据的二进制属性的几率模型。而后,咱们展现了,MF可以表达为NCF 的推广(MF矩阵分解模型是NCF的一个特例)。咱们探索DNNs在协同过滤上的应用,提出了NCF的一个实例,它采用了多层感知器(MLP)来学习用户-项目交互函数。最后,咱们在NCF框架下结合了MF和MLP,提出了一种新的神经矩阵分解模型(neural matrix factorization model);它统一了在建模用户项目潜在结构方面,MF的线性建模优点和MLP的非线性优点。
为了容许神经网络对协同过滤进行一个完整的处理,咱们采用图2(Figure 2)展现的多层感知机去模拟一个用户项目交互 \(y_{ui}\) ,它的一层的输出做为下一层的输入。底部输入层包括两个特征向量 \({\bf v}_u^U\) 和 \({\bf v}_i^I\) ,分别用来描述用户 \(u\) 和项目 \(i\) 。 他们能够进行定制,用以支持普遍的用户和项目的建模,例如上下文感知[28,1],基于内容[3],和基于邻居的构建方式[26]。因为本文工做的重点是纯的协同过滤模型设置,咱们仅使用一个用户和一个项目做为输入特征,它使用one-hot编码将它们转化为二值化稀疏向量。注意到,咱们对输入使用这样的通用特征表示,能够很容易地使用的内容特征来表示用户和项目,以调整解决冷启动问题。
输入层上面是嵌入层(Embedding Layer);它是一个全链接层,用来将输入层的稀疏表示映射为一个稠密向量(dense vector)。所得到的用户(项目)的嵌入(就是一个稠密向量)能够被看做是在潜在因素模型的上下文中用于描述用户(项目)的潜在向量。而后咱们将用户嵌入和项目嵌入送入多层神经网络结构,咱们把这个结构称为神经协做过滤层,它将潜在向量映射为预测分数。NCF层的每一层能够被定制,用以发现用户-项目交互的某些潜在结构。最后一个隐含层 \(X\) 的维度尺寸决定了模型的能力。最终输出层是预测分数 \(\widehat{y}_{ui}\) ,训练经过最小化 \(\widehat{y}_{ui}\) 和其目标值 \(y_{ui}\) 之间逐点损失进行。咱们注意到,另外一种方式来训练模型是经过成对学习,如使用个性化贝叶斯排名[27]和基于余量的损失(margin-based)[33]。因为本文的重点是对神经网络建模部分,咱们将使用成对学习训练NCF留给从此的工做。
当前咱们制定的NCF预测模型以下:
\(\widehat{y}_{ui}=f({\bf P}^{T}{\bf v}_u^U,{\bf Q}^{T}{\bf v}_i^I|{\bf P},{\bf Q},\Theta_{f}),\ \ \ \ (3)\)
其中 \({\bf P}\in \mathbb{R}^{M\times K}\), \({\bf Q}\in \mathbb{R}^{N\times K}\),分别表示用户和项目的潜在因素矩阵;\(\Theta_{j}\) 表示交互函数 \(f\) 的模型参数。因为函数 \(f\) 被定义为多层神经网络,它能够被定制为:
\(f({\bf P}^{T}{\bf v}_u^U,{\bf Q}^{T}{\bf v}_i^I)=\phi_{out}(\phi_{X}(...\phi_{2}(\phi_{1}({\bf P}^{T}{\bf v}_u^U,{\bf Q}^{T}{\bf v}_i^I))...)),\ \ \ \ (4)\)
其中 \(\phi_{out}\) 和 \(\phi_{x}\) 分别表示为输出层和第 \(x\) 个神经协做过滤(CF)层映射函数,总共有 \(X\) 个神经协做过滤(CF)层。
3.1.1 NCF学习
学习模型参数,现有的逐点学习方法[14,39]主要运用均方偏差(squared loss)进行回归:
\(L_{sqr}=\sum_{(u,i)\in{\bf{y}\cup\bf{y^{-}}}}w_{ui}(y_{ui}-\widehat{y}_{ui})^{2},\ \ \ \ (5)\)
其中 \(\bf{y}\) 表示交互矩阵 \(\bf Y\) 中观察到的条目(如对电影有明确的评分,评级), \(\bf{y^{-}}\) 表示消极实例(negative instances,能够将未观察的样本全体视为消极实例,或者采起抽样的方式标记为消极实例); \(w_{ui}\) 是一个超参数,用来表示训练实例 \((u,i)\) 的权重。虽然均方偏差能够经过假设观测服从高斯分布[29]来做出解释,咱们仍然指出,它不适合处理隐性数据(implicit data)。这是由于对于隐含数据来讲,目标值 \(y_{ui}\) 是二进制值1或0,表示 \(u\) 是否与 \(i\) 进行了互动。在下文中,咱们提出了逐点学习NCF的几率学方法,特别注重隐性数据的二进制属性。
考虑到隐性反馈的一类性质,咱们能够将 \(y_{ui}\) 的值做为一个标签————1表示项目 \(i\) 和用户 \(u\) 相关,不然为0。这样一来预测分数 \(\widehat{y}_{ui}\) 就表明了项目 \(i\) 和用户 \(u\) 相关的可能性大小。为了赋予NCF这样的几率解释,咱们须要将网络输出限制到[0,1]的范围内,经过使用几率函数(e.g. 逻辑函数sigmoid或者probit函数)做为激活函数做用在输出层 \(\phi_{out}\) ,咱们能够很容易地实现数据压缩。通过以上设置后,咱们这样定义似然函数:
\(p\left(\bf{y},\bf{y^{-}}|{\bf P},{\bf Q},\Theta_f\right)=\prod_{(u,i)\in\bf{y}}\widehat{y}_{ui}\prod_{(u,i)\in\bf{y}^{-}}\left(1-\widehat{y}_{ui}\right).\ \ \ \ (6)\)
对似然函数取负对数,咱们获得(负对数能够用来表示Loss函数,并且还能消除小数乘法的下溢出问题):
\(L=-\sum_{(u,i)\in\bf{y}}\log\widehat{y}_{ui}-\sum_{(u,i)\in\bf{y}^{-}}\log\left(1-\widehat{y}_{ui}\right)=\sum_{(u,i)\in\bf{y}\cup\bf{y}^{-}}y_{ui}\log\widehat{y}_{ui}+\left(1-y_{ui}\right)\log\left(1-\widehat{y}_{ui}\right).\ \ \ \ (7)\)
这是NCF方法须要去最小化的目标函数,而且能够经过使用随机梯度降低(SGD)来进行训练优化。细心的读者可能发现了,这个函数和二类交叉熵损失函数(binary cross-entropy loss,又被成为log loss)是同样的。经过在NCF上使用这样一个几率处理(probabilistic treatment),咱们把隐性反馈的推荐问题当作一个二分类问题来解决。因为分类用的交叉熵损失不多出如今有关推荐的文献中,咱们将在这项工做中对它进行探讨,并在4.3节展现它的有效性。对于消极实例 \(\bf{y}^{-}\) ,咱们在每次迭代均匀地从未观察到的相互做用中采样(做为消极实例)而且对照可观察到交互的数量,控制采样比率。虽然非均匀采样策略(例如,基于项目流行度进行采样[14,12])可能会进一步提升模型性能,咱们将这方面的探索做为从此的工做。
咱们如今来证实MF是如何被解释为咱们的NCF框架的一个特例。因为MF是推荐领域最流行的模型,并已在众多文献中被普遍的研究,复现它能证实NCF能够模拟大部分的分解模型[26]。因为输入层是用户(项目)ID中的一个one-hot encoding编码,所得到的嵌入向量能够被看做是用户(项目)的潜在向量。咱们用 \({\bf{P}}^{T}{\bf{v}}_u^U\) 表示用户的潜在向量 \({\bf{p}}_{u}\) ,\({\bf{Q}}^{T}{\bf{v}}_i^I\) 表示项目的潜在向量 \({\bf{q}}_{i}\) ,咱们定义第一层神经CF层的映射函数为:
\(\phi_{1}\left({\bf{p}}_{u},{\bf{q}}_{i}\right)={\bf{p}}_{u}\odot{\bf{q}}_{i},\ \ \ \ (8)\)
其中 \(\odot\) 表示向量的逐元素乘积。而后,咱们将向量映射到输出层:
\(\widehat{y}_{ui}=a_{out}\left({\bf h}^{T}\left({\bf{p}}_{u}\odot{\bf{q}}_{i} \right)\right),\ \ \ \ (9)\)
其中 \(a_{out}\) 和 \({\bf h}\) 分别表示输出层的激活函数和链接权。直观地讲,若是咱们将 \(a_{out}\) 看作一个恒等函数, \({\bf h}\) 权重全为1,显然这就是咱们的MF模型。在NCF的框架下,MF能够很容易地被泛化和推广。例如,若是咱们容许从没有一致性约束(uniform constraint)的数据中学习 \({\bf h}\) ,则会造成MF的变体,它容许潜在维度的不一样重要性(这句话很差翻译,原文放在这里For example, if we allow \({\bf h}\) to be learnt from data without the uniform constraint, it will result in a variant of MF that allows varying importance of latent dimensions)。若是咱们用一个非线性函数 \(a_{out}\) ,将进一步推广MF到非线性集合,使得模型比线性MF模型更具备表现力。在本文的工做中,咱们在NCF下实现一个更通常化的MF,它使用Sigmoid函数 \(σ(x)=1/(1+e^{-x})\) 做为激活函数,经过log loss(第3.1.1节)学习 \({\bf h}\) 。咱们称她为GMF(Generalized Matrix Factorization,广义矩阵分解)。
因为NCF用两条路线来对用户和项目建模(图2中能够明显看出用户和项目两个输入),天然地,须要经过两个路线,把他们各自的特征链接结合起来。这种设计已经在多模态深度学习工做中[47,34]被普遍采用。然而,简单地对向量的链接不足以说明用户和项目之间的潜在特征,这对协同过滤建模来讲是不够的。为了解决这个问题,咱们提出在向量链接上增长隐藏层,使用标准的MLP(多层感知机)学习用户和项目潜在特征之间的相互做用。在这个意义上,咱们能够赋予模型高水平的灵活性和非线性建模能力,而不是GMF(广义矩阵分解)那样的简单使用逐元素相乘的内积来描述用户和项目之间的潜在交互特征。更确切地说,咱们的NCF框架下的MLP模型定义为:
\({\bf{z}}_{1}=\phi_{1}\left({{\bf{p}}_{u}},{{\bf{q}}_{i}}\right)=\begin{bmatrix}{{{\bf{p}}_{u}}}\\{{{\bf{q}}_{i}}}\end{bmatrix}\)
\(\phi_{2}({\bf{z}}_{1})=a_{2}\left({\bf{W}}_2^T{\bf{z}}_{1}+{\bf b}_{2}\right),\)
......
\(\phi_{L}({\bf{z}}_{L-1})=a_{L}\left({\bf{W}}_L^T{\bf{z}}_{L-1}+{\bf b}_{L}\right),\)
\(\widehat{y}_{ui}=\sigma\left({\bf{h}}^{T}\phi_{L}\left({\bf{z}}_{L-1}\right)\right),\ \ \ \ \ \ \ \ \ \ (10)\)
这里的 \({\bf W}_{x}\), \({\bf b}_{x}\) 和 \(a_{x}\) 分别表示 \(x\) 层的感知机中的的权重矩阵,偏置向量(神经网络的神经元阈值)和激活函数。对于MLP层的激活函数,能够选择sigmoid,双曲正切(tanh)和ReLU,等等。咱们分析一下每一个函数:1)sigmoid函数将每一个神经元的输出限制在(0,1),这有可能限制该模型的性能;而且它存在过饱和的问题,当输出接近1或者0的时候,神经元就会陷入中止学习的困境(这里应该指的是“早停的问题”)。2)虽然双曲正切是一个更好的选择,并已被普遍使用[6,44],但它只是在必定程度上缓和了sigmoid的问题,由于它能够被看做是sigmoid的缩放的版本(\(tanh(x/2)=2σ(x)-1\))。3)所以,咱们选择ReLU,它更具生物合理性(biologically plausible),而且已经被证实不会致使过饱和[9];此外,它支持稀疏的激活(sparse activations),很是适合稀疏的数据,使模型不至于过拟合。咱们的实验结果代表,ReLU的表现略好于双曲正切函数tanh和sigmoid。
至于网络结构的设计,一种常见的解决方案是设计一个塔式模型,其中,底层是最宽的,而且每一个相继的层具备更少的神经元数量(如图2(Figure 2))。(设计这种结构的)前提是,经过在更高层使用少许的隐藏单元,它们能够从数据中学习到更多的抽象特征[10]。根据经验,咱们搭建这样的塔结构:对于更高的层,相比于以前一层,缩减一半规模。
到目前为止,咱们已经开发了NCF的两个实例:GMF,它应用了一个线性内核来模拟潜在的特征交互;MLP,使用非线性内核从数据中学习交互函数。接下来的问题是:咱们如何可以在NCF框架下融合GMF和MLP,使他们可以相互强化,以更好地对复杂的用户-项目交互建模?
一个直接的解决方法是让GMF和MLP共享相同的嵌入层(Embedding Layer),而后再结合它们分别对相互做用的函数输出。这种方式和著名的神经网络张量(NTN,Neural Tensor Network)[33]有点类似。具体地说,对于结合GMF和单层MLP的模型能够公式化为:
\(\widehat{y}_{ui}=\sigma({\bf h}^{T}a({\bf p}_u\odot{\bf q}_i)+{\bf W}\begin{bmatrix}{{\bf p}_u}\\{{\bf q}_i}\end{bmatrix}+{\bf b}).\ \ \ \ (11)\)
然而,共享GMF和MLP的嵌入层可能会限制融合模型的性能。例如,它意味着,GMF和MLP必须使用的大小相同的嵌入(embedding,这里指的应该是潜在向量维度,下面的embedding都被译为嵌入);对于数据集,两个模型的最佳嵌入尺寸差别很大,使得这种解决方案可能没法得到最佳的组合。
为了使得融合模型具备更大的灵活性,咱们容许GMF和MLP学习独立的嵌入,并结合两种模型经过链接他们最后的隐层输出。图3(Figure 3)展现了咱们的方案,公式以下:
\(\phi^{GMF}={\bf p}_u^G\odot{\bf q}_i^G,\\\phi^{MLP}=a_{L}(W_L^T(a_{L-1}(...a_{2}(W_2^T\begin{bmatrix}{{\bf p}_u^M}\\{{\bf q}_i^M}\end{bmatrix}+{\bf b}_2)...))+{\bf b}_L),\\\widehat{y}_{ui}=\sigma({\bf h}^T\begin{bmatrix}{\phi^{GMF}}\\{\phi^{MLP}}\end{bmatrix}),\ \ \ \ (12)\)
这里的 \({\bf p}_u^G\) 和 \({\bf p}_u^M\) 分别表示 GMF 部分和 MLP 部分的用户嵌入(user embedding);一样的,\({\bf q}_i^G\) 和 \({\bf q}_i^M\) 分别表示项目的嵌入。如以前所讨论的,咱们使用ReLU做为 MLP层的激活功能。该模型结合MF的线性度和DNNs的非线性度,用以建模用户-项目之间的潜在结构。咱们将这一模式称为“NeuMF”,简称神经矩阵分解(Neural Matrix Factorization)。该模型的每一个模型参数都能使用标准反向传播(back-propagation)计算,因为空间限制这里就再也不展开。
3.4.1 预训练
因为NeuMF的目标函数的非凸性,使得基于梯度的优化方法只能找到局部最优解(这也是训练通常神经网络所面临的问题)。研究代表,初始化(initialization)在深度学习模型的收敛性和性能的方面起到了重要的做用[7]。因为 NeuMF 是 GMF 和 MLP 的组合,咱们建议使用 GMF 和 MLP 的预训练模型来初始化NeuMF。
咱们首先训练随机初始化的 GMF 和 MLP 直到模型收敛。而后,咱们用它们的模型参数初始化 NeuMF 相应部分的参数。惟一的调整是在输出层,在那里咱们将二者用权重链接起来:
\(h\leftarrow\begin{bmatrix}{\alpha{\bf h}^{GMF}}\\{(1-\alpha){\bf h}^{MLP}} \end{bmatrix},\ \ \ \ (13)\)
这里 \({\bf h}^{GMF}\) 和 \({\bf h}^{MLP}\) 分别表示 GMF 和 MLP 模型预训练的 \({\bf h}\) 向量; \(\alpha\) 是一个超参数,用来权衡两个预训练模型(的比重)。
对于从头开始训练的 GMF 和 MLP ,咱们采用自适应矩估计(Adam,Adaptive Moment Estimation)[20],它经过对不频繁的参数进行频繁和更大幅度的更新来适应每一个参数的学习速率。Adam方法在两种模型上的收敛速度都比普通SGD快,并缓解了调整学习率的痛苦。在将预先训练的参数输入NeuMF以后,咱们用普通SGD而不是Adam进行优化。 这是由于Adam须要保存更新参数的动量信息(momentum information)。由于咱们用预先训练的模型参数初始化NeuMF,而且放弃保存动量信息,不适合用基于动量的方法进一步优化NeuMF。
在本节中,咱们指导实验的进行,用以回答如下研究问题:
\(\bf{RQ1}\) 咱们提出的NCF方法是否赛过 state-of-the-art 的隐性协同过滤方法?
\(\bf{RQ2}\) 咱们提出的优化框架(消极样本抽样的log loss)怎样为推荐任务服务?
\(\bf{RQ3}\) 更深的隐藏单元是否是有助于对用户项目交互数据的学习?
接下来,咱们首先介绍实验设置,其次是回答上述三个问题。
\(\bf{Datasets}\)。 咱们尝试了两个可公开访问的数据集: MovieLens4 和 Pinterest5 两个数据集,它们的特征总结在表1中。
4http://grouplens.org/datasets/movielens/1m/
5https://sites.google.com/site/xueatalphabeta/ academic-projects
\(\bf{1. MovieLens}\)。 这个电影评级数据集被普遍地用于评估协同过滤算法。咱们使用的是包含一百万个评分的版本,每一个用户至少有20个评分。 虽然这是显性反馈数据集,但咱们有意选择它来挖掘(模型)从显式反馈中学习隐性信号[21]的表现。为此,咱们将其转换为隐式数据,其中每一个条目被标记为0或1表示用户是否已对该项进行评级。
\(\bf{2. Pinterest}\)。这个隐含的反馈数据的构建[8]用于评估基于内容的图像推荐。原始数据很是大可是很稀疏。 例如,超过20%的用户只有一个pin(pin相似于赞一下),使得难以用来评估协同过滤算法。 所以,咱们使用与MovieLens数据集相同的方式过滤数据集:仅保留至少有过20个pin的用户。处理后获得了包含55,187个用户和1,580,809个项目交互的数据的子集。 每一个交互都表示用户是否将图像pin在本身的主页上。
评估方案。 为了评价项目推荐的性能,咱们采用了leave-one-out方法评估,该方法已被普遍地应用于文献[1,14,27]。即:对于每一个用户,咱们将其最近的一次交互做为测试集(数据集通常都有时间戳),并利用余下的培训做为训练集。因为在评估过程当中为每一个用户排列全部项目花费的时间太多,因此遵循通常的策略[6,21],随机抽取100个不与用户进行交互的项目,将测试项目排列在这100个项目中。排名列表的性能由命中率(HR)和归一化折扣累积增益(NDCG)[11]来衡量。 没有特别说明的话,咱们将这两个指标的排名列表截断为10。如此一来,HR直观地衡量测试项目是否存在于前10名列表中,而NDCG经过将较高分数指定为顶级排名来计算命中的位置。咱们计算了每一个测试用户的这两个指标,并求取了平均分。
基准线(Baselines)。咱们NCF方法(GMF,MLP和NeuMF)和下列方法进行了比较:
\(\bf{- ItemPop}\)。按项目的互动次数判断它的受欢迎程度,从而对项目进行排名。 这对基于评估推荐性能来讲是一种非个性化的方法[27]。
\(\bf{- ItemKNN}\)[31]。这是基于项目的标准协同过滤方法。咱们遵循[19]的设置来适应隐含数据。
\(\bf{- BPR}\)[27]。该方法优化了使用公式(2)的MF模型,该模型具备成对排序损失,BPR调整它使其能够从隐式反馈中学习。它是项目推荐基准的有力竞争者。咱们使用固定的学习率,改变它并报告了它最佳的性能。
\(\bf{- eALS}\)[14]。这是项目推荐的 state-of-the-art 的MF方法。 它优化了公式(5)的均方偏差,将全部未观察到的交互视做消极实例,并根据项目流行度对它们进行不均匀的加权。因为 eALS 显示出优于WMF[19]均匀加权方法的性能,咱们再也不进一步展现报告 WMF 的性能。
咱们提出的方法旨在建模用户和项目之间的关系,咱们主要比较用户-项目模型。由于性能差别多是由个性化的用户模型引发的(由于它们是项目-项目模型),因此咱们忽略了与项目-项目模型的比较,项目-项目模型有 SLIM[25] 和 CDAE[44]。
参数设置。咱们基于Keras6实现了咱们提出的方法。为了肯定NCF方法的超参数,咱们为每一个用户随机抽取一个交互做为验证数据并调整其超参数。经过优化公式(7)的对数损失(log loss)来学习全部NCF模型,其中咱们对每一个积极实例进行四个消极实例的采样。对于从头开始训练的NCF模型,咱们采用高斯分布随机初始化模型参数(平均值为0,标准差为0.01),用小批次Adam[20]优化模型。咱们分别测试了批次大小[128,256,512,1024],学习速率为[0.0001,0.0005,0.001,0.005]。 因为NCF的最后一层隐藏层决定了模型的性能,因此咱们将其做为预测因子(predictive factors),并分别使用[8,16,32,64]的因素大小进行了模型评估。值得注意的是,大的因子可能致使过拟合,下降性能。 没有特别说明,咱们采用了三层隐藏的MLP; 例如,若是预测因子的大小为8,则神经CF层的结构为32→16→8,嵌入大小为16。对于预训练过的NeuMF,\(\alpha\) 设置为0.5,容许预训练的 GMF 和 MLP 对 NeuMF 的初始化作出一样的贡献(相同权重)。
图4(Figure 4)显示了 HR@10 和 NDCG@10 相对于预测因素数量的性能。对于使用MF的方法BPR和eALS,预测因子的数量等于潜在因素的数量。对于ItemKNN,咱们测试了不一样的邻居大小并报告了最佳性能。因为ItemPop的性能较差,因此在图4中略去,以更好地凸显个性化方法的性能差别。
首先,咱们能够看到,NeuMF在两个数据集上都取得了最好的表现,远远超过了最早进的方法eALS和BPR(平均而言,相对于eALS和BPR的相对改善分别为4.5%和4.9%) )。对于Pinterest而言,即便是8的小预测因子,NeuMF也远远优于在64维潜在因子下的eALS和BPR。这展示了NeuMF经过融合线性MF和非线性MLP模型的高水平的表达能力。其次,另外两种NCF方法:GMF和MLP,也表现出至关强劲的性能。其中,MLP略逊于GMF。请注意,MLP能够经过添加更多的隐藏层来进一步改进(参见第4.4节),这里咱们只展现使用三层的性能。对于小数目的预测因子,GMF在两个数据集上都优于eALS;虽然GMF在高纬因子的状况下受到过拟合的影响,但其得到的最佳性能优于eALS(或差很少)。最后,GMF显示出与BPR一致的进步,说明了在推荐任务的分类问题中使用log loss的有效性,由于GMF和BPR学习相同的MF模型但具备不一样的目标函数。
图5(Figure 5)显示了Top-K推荐列表的性能,排名位置K的范围为1到10。为了使图像更加清晰,咱们仅仅展现了NeuMF的性能,而不是全部三种NCF方法。能够看出,NeuMF表现出与其余方法在位置上的一致性改进,咱们进一步进行单样本配对的t检验,验证全部的改善对p <0.01有统计学意义(这里有点迷)。对于基准方法,eALS在MovieLens上的性能优于BPR大约5.1%,而在NDCG方面则逊于BPR。 这与[14]发现吻合,它指出:因为BPR学习和感知成对排名,它可能在排名上表现出强劲的性能。 基于相邻(用户或者项目)的ItemKNN表现则逊于基于模型的方法。 而ItemPop表现最差,代表用户对我的喜爱的建模是必要的,而不是仅向用户推荐热门项目。
4.2.1 预训练的做用
为了展现NeuMF预训练的效果,咱们比较了NeuMF两种版本的性能,而且没有预训练。 对于没有预训练的NeuMF,咱们使用了Adam随机初始化。如表2所示,在大多数状况下,具备预训练的NeuMF表现出了更好的性能; 只有对于具备8的小预测因子的MovieLens,预训练方法执行稍差一些。 对于MovieLens和Pinterest,NeuMF与预训练的相对改进分别为2.2%和1.1%。 这个结果证实了咱们的预训练方法对初始化NeuMF是有用的。
为了处理隐性反馈的一类性质,咱们将推荐做为一个二分类任务。咱们将NCF视为几率模型,使用log loss对其进行了优化。图6(Figure 6)显示了NCF方法在MovieLens上每次迭代的训练损失(全部实例的平均值)和推荐性能。在Pinterest上的结果显示相同的趋势,因为空间限制而被省略。首先,咱们能够看到,随着迭代次数的增多,NCF模型的训练损失逐渐减小,推荐性能获得提升。最有效的更新发生在前10次迭代中,更多的迭代可能使模型过拟合(例如,虽然NeuMF的训练损失在10次迭代以后持续降低,但其推荐性能实际上下降)。其次,在三种NCF方法中,NeuMF达到最低的训练损失,其次是MLP,而后是GMF。推荐性能也显示出与NeuMF> MLP> GMF相同的趋势。上述实验结果为优化从隐性数据学习的log loss的合理性和有效性提供了经验证据。
对于成对目标函数的逐点log loss(对数损失)的优点[27,33]是对于消极实例的灵活采样率。不像成对目标函数只能将一个采样消极实例与一个积极实例配对,逐点损失咱们能够灵活地控制采样率。为了说明消极采样对NCF方法的影响,咱们在不一样的消极实例采样比下展现了NCF方法的性能。如图7所示。能够清楚地看到,每一个积极实例只有一个消极实例不足以达到模型的最佳性能,而抽样更多的消极实例则是有益的。将GMF与BPR进行比较,咱们能够看出,采样率为1成的GMF的性能与BPR至关,而GMF在采样率较高的状况下性能明显高于BPR。这代表了相较于成对BPR损失,逐点对数损失的优点所在。对于两个数据集,最佳采样率约为3比6。在Pinterest上,咱们发现当采样率大于7时,NCF方法的性能开始降低。这说明,设置过大的采样率可能会对性能产生不利影响。
因为使用神经网络学习用户-项目之间交互函数的工做不多,所以,使用深层网络结构是否有利于推荐任务是值得思考的。 为此,咱们进一步研究了具备不一样隐藏层数的MLP。 结果总结在表3和表4中。MLP-3表示具备三个隐藏层(除了嵌入层)的MLP方法,其余相似的符号具备类似的意义。 咱们能够看到,即便具备相同能力的模型,堆叠更多的层也有利于性能的提高。 这个结果很是使人鼓舞,它代表使用深层模型进行协同推荐的有效性。 咱们将性能提高归功于堆叠更多非线性层所带来的高非线性度。 为了验证这一点,咱们进一步尝试堆叠线性层,使用恒等函数做为激活函数。 性能比使用ReLU单元差不少。
对于没有隐藏层(即,嵌入层直接映射到预测结果)的MLP-0,性能很是弱,不过比非个性化ItemPop更好。这验证了咱们在3.3节中的观点:简单地链接用户和项目的潜在向量不足以对其特征的相互做用进行建模,所以须要使用隐藏层进行变换。
关于推荐的早期文献主要集中在显性反馈[30,31],而最近工做的重心愈来愈多地转向隐性数据[1,14,23]。具备隐性反馈的协同过滤(CF)任务一般被转化为项目推荐问题,其目的是向用户推荐一个简短的项目列表。 与被普遍采用的经过显性反馈进行评级预测相反,解决项目推荐的问题更具实践性,但同时也富有挑战性[1,11]。 一个关键的先验是对丢失的数据进行建模,这些数据在显式反馈的工做中经常被忽略[21,48]。为了创建具备隐性反馈的项目推荐的潜在因素模型,早期工做[19,27]使用均匀加权,其中提出了两种策略,即将全部缺失数据做为消极实例[19]或从缺失数据中抽样做为消极实例[27]。最近,He等[14]和Liang等人[23]提出了专门的模型来减小丢失的数据,而Rendle等人[1]为基于特征的因式分解模型开发了隐式坐标降低解法(iCD),实现了项目推荐的state-of-the-art。下面咱们将讨论使用神经网络的推荐工做。
早期的先驱工做是由Salakhutdinov等人[30]提出的一种两层限制玻尔兹曼机(RBM)来模拟用户对项目的明确评级。这项工做后来被扩展到对等级的序数性质进行建模[36]。最近,自动编码器(autoencoders)已成为构建推荐系统的通常选择[32,22,35]。基于用户的AutoRec[32]的想法是学习隐藏的结构,根据用户的历史评级做为输入,能够重建用户的评分。在用户个性化方面,这种方法与项目-项目模型[31,25]具备类似之处,它表示用户做为其评分项目。为了不自动编码器学习恒等函数,而且不能将其推广到不可观察的数据,它已经应用了去噪自动编码器(DAE)来学习人为损坏的输入[22,35]。最近,Zheng等人[48]提出了一种用于CF的神经自回归(neural autoregressive )方法。虽然之前的努力证实了神经网络解决CF的有效性,但大多数重点放在明确的评级上,并仅对观察到的数据进行建模。所以,他们不易于从只有积极样例的隐性数据中学习用户的偏好。
虽然最近的工做[6,37,38,43,45]已经探索了基于隐性反馈的深刻学习模型,但它们主要使用DNN来建模辅助信息,例如文字描述[38],音乐的声学特征[37,43],用户的跨域行为[6]以及知识库中的丰富信息[45]。而后由MF和CF相结合DNN学习特征。与咱们工做最相关的工做是[44],它为CF提供了一个隐性反馈的协同去噪自动编码器(CDAE)。与基于DAE的CF [35]相反,CDAE还将用户节点插入自动编码器的输入端,以重建用户的评级。如做者所展现的,当使用恒等函数做为激活函数做用在CDAE的隐藏层时,CDAE至关于SVD++模型[21]。这意味着虽然CDAE虽然是CF的神经建模方法,可是它仍然使用线性内核(即内积)来模拟用户-项目交互。这可能部分解释了为何使用深层CDAE不会提升性能(参见[44]第6节)。与CDAE不一样,咱们的NCF采用双通道结构,创建多层前馈神经网络的模型模拟用户项目交互。这容许NCF从数据中学习任意函数,比固定内部函数有更强大的表达能力。
顺着类似的研究方向,学习两个实体的关系已经在知识图(knowledge graphs)的文献中获得了深刻的研究[2,33]。 许多有关的机器学习方法[24]已经被设计出来。 与咱们提出的方案最类似的是神经张量网络(NTN,Neural Tensor Network)[33],它使用神经网络来学习两个实体的相互做用并表现出很强劲的性能。这里咱们专一于=它与CF的不一样设置问题。 尽管将MF与MLP结合在一块儿的NeuMF的想法是受到了NTN的必定程度的启发,可是咱们的NeuMF比NTN更灵活和通用,它容许MF和MLP学习不一样的嵌入式组合。
最近,谷歌公布了他们的通用深度学习方法的App推荐[4]。 深层组件相似地使用特征嵌入的MLP,据称具备很强的泛化能力。 虽然他们的工做集中在结合用户和项目的各类特征,但咱们的目标是使用DNN探索纯粹的协同过滤系统的。咱们显示了对于建模用户-项目交互,DNN是一个有前途的选择,之前没有对此进行调查。
在这项工做中,咱们探索了用于协同过滤的神经网络结构。咱们设计了一个通用框架NCF,并提出了三种实例:GMF,MLP和NeuMF,以不一样的方式模拟用户-项目交互。咱们的框架简单而通用; 它不只限于本文提出的模型,它对深刻学习推荐方法的也具备指导意义。这项工做补充了主流浅层协同过滤模型,为深刻学习推荐研究开辟了新途径。
在未来的工做中,咱们将研究NCF模型在成对学习中的应用,并将NCF扩展到建模辅助信息,如用户评论[11],知识库[45]和时间信号[1]。现有的个性化模式主要集中在我的身上,为用户群体开发模型将会是一个有趣的发展,这有助于社会团体的决策[15,42]。此外,咱们特别感兴趣的是创建多媒体项目的推荐系统,这是一个有趣的任务,但在推荐社区中受到相对较少的关注[3]。多媒体项目(如图像和视频)包含更丰富的视觉语义[16,41],能够反映用户的兴趣。 要构建多媒体推荐系统,咱们须要开发有效的方法来学习多视图和多模态数据[13,40]。 另外一个新出现的方向是探索循环神经网络和散列方法(hashing methods)[46]的潜力,以提供有效的在线推荐[14]。
做者感谢匿名评审者的宝贵意见,给做者对推荐系统的思考和论文的修订提供了极大的帮助。
[1] I. Bayer, X. He, B. Kanagal, and S. Rendle. A generic coordinate descent framework for learning from implicit feedback. In WWW, 2017.
[2] A. Bordes, N. Usunier, A. Garcia-Duran, J. Weston, and O. Yakhnenko. Translating embeddings for modeling multi-relational data. In NIPS, pages 2787–2795, 2013.
[3] T. Chen, X. He, and M.-Y. Kan. Context-aware image tweet modelling and recommendation. In MM, pages 1018–1027, 2016.
[4] H.-T. Cheng, L.Koc, J. Harmsen, T. Shaked, T. Chandra, H. Aradhye, G. Anderson, G. Corrado, W. Chai, M. Ispir,et al. Wide & deep learning for recommender systems. arXiv preprint arXiv:1606.07792, 2016.
[5] R. Collobert and J. Weston. A unified architecture for natural language processing: Deep neural networks with multitask learning. In ICML, pages 160–167, 2008.
[6] A. M. Elkahky, Y. Song, and X. He. A multi-view deep learning approach for cross domain user modeling in recommendation systems. In WWW, pages 278–288, 2015.
[7] D. Erhan, Y. Bengio, A. Courville, P.-A. Manzagol, P. Vincent, and S. Bengio. Why does unsupervised pre-training help deep learning? Journal of Machine Learning Research, 11:625–660, 2010.
[8] X. Geng, H. Zhang, J. Bian, and T.-S. Chua. Learning image and user features for recommendation in social networks. In ICCV, pages 4274–4282, 2015.
[9] X. Glorot, A. Bordes, and Y. Bengio. Deep sparse rectifier neural networks. In AISTATS, pages 315–323, 2011.
[10] K. He, X. Zhang, S. Ren, and J. Sun. Deep residual learning for image recognition. In CVPR, 2016.
[11] X. He, T. Chen, M.-Y. Kan, and X. Chen. TriRank: Review-aware explainable recommendation by modeling aspects. In CIKM, pages 1661–1670, 2015.
[12] X. He, M. Gao, M.-Y. Kan, Y. Liu, and K. Sugiyama. Predicting the popularity of web 2.0 items based on user comments. In SIGIR, pages 233–242, 2014.
[13] X. He, M.-Y. Kan, P. Xie, and X. Chen. Comment-based multi-view clustering of web 2.0 items. In WWW, pages 771–782, 2014.
[14] X. He, H. Zhang, M.-Y. Kan, and T.-S. Chua. Fast matrix factorization for online recommendation with implicit feedback. In SIGIR, pages 549–558, 2016.
[15] R. Hong, Z. Hu, L. Liu, M. Wang, S. Yan, and Q. Tian. Understanding blooming human groups in social networks. IEEE Transactions on Multimedia, 17(11):1980–1988, 2015.
[16] R. Hong, Y. Yang, M. Wang, and X. S. Hua. Learning visual semantic relationships for efficient visual retrieval. IEEE Transactions on Big Data, 1(4):152–161, 2015.
[17] K. Hornik, M. Stinchcombe, and H. White. Multilayer feedforward networks are universal approximators. Neural Networks, 2(5):359–366, 1989.
[18] L. Hu, A. Sun, and Y. Liu. Your neighbors affect your ratings: On geographical neighborhood influence to rating prediction. In SIGIR, pages 345– 354, 2014.
[19] Y. Hu, Y. Koren, and C. Volinsky. Collaborative filtering for implicit feedback datasets. In ICDM, pages 263–272, 2008.
[20] D. Kingma and J. Ba. Adam: A method for stochastic optimization. In ICLR, pages 1–15, 2014.
[21] Y. Koren. Factorization meets the neighborhood: A multifaceted collaborative filtering model. In KDD, pages 426–434, 2008.
[22] S. Li, J. Kawale, and Y. Fu. Deep collaborative filtering via marginalized denoising auto-encoder. In CIKM, pages 811–820, 2015.
[23] D. Liang, L. Charlin, J. McInerney, and D. M. Blei. Modeling user exposure in recommendation. In WWW, pages 951–961, 2016.
[24] M. Nickel, K. Murphy, V. Tresp, and E. Gabrilovich. A review of relational machine learning for knowledge graphs. Proceedings of the IEEE, 104:11– 33, 2016.
[25] X. Ning and G. Karypis. Slim: Sparse linear methods for top-n recommender systems. In ICDM, pages 497–506, 2011.
[26] S. Rendle.Factorization machines. In ICDM, pages 995–1000, 2010.
[27] S. Rendle, C. Freudenthaler, Z. Gantner, and L. Schmidt-Thieme. Bpr: Bayesian personalized ranking from implicit feedback. In UAI, pages 452– 461, 2009.
[28] S. Rendle, Z. Gantner, C. Freudenthaler, and L. Schmidt-Thieme. Fast context-aware recommendations with factorization machines. In SIGIR, pages 635–644, 2011.
[29] R. Salakhutdinov and A. Mnih. Probabilistic matrix factorization. In NIPS, pages 1–8, 2008.
[30] R. Salakhutdinov, A. Mnih, and G. Hinton. Restricted boltzmann machines for collaborative filtering. In ICDM, pages 791–798, 2007.
[31] B. Sarwar, G. Karypis, J. Konstan, and J. Riedl. Item-based collaborative filtering recommendation algorithms. In WWW, pages 285–295, 2001. [32] S. Sedhain, A. K. Menon, S. Sanner, and L. Xie. Autorec: Autoencoders meet collaborative filtering. In WWW, pages 111–112, 2015.
[33] R. Socher, D. Chen, C. D. Manning, and A. Ng. Reasoning with neural tensor networks for knowledge base completion. In NIPS, pages 926–934, 2013.
[34] N. Srivastava and R. R. Salakhutdinov. Multimodal learning with deep boltzmann machines. In NIPS, pages 2222–2230, 2012.
[35] F. Strub and J. Mary. Collaborative filtering with stacked denoising autoencoders and sparse inputs. In NIPS Workshop on Machine Learning for eCommerce, 2015.
[36] T. T. Truyen, D. Q. Phung, and S. Venkatesh. Ordinal boltzmann machines for collaborative filtering. In UAI, pages 548–556, 2009.
[37] A. Van den Oord, S. Dieleman, and B. Schrauwen. Deep content-based music recommendation. In NIPS, pages 2643–2651, 2013.
[38] H. Wang, N. Wang, and D.-Y. Yeung. Collaborative deep learning for recommender systems. In KDD, pages 1235–1244, 2015.
[39] M. Wang, W. Fu, S. Hao, D. Tao, and X. Wu. Scalable semi-supervised learning by efficient anchor graph regularization. IEEE Transactions on Knowledge and Data Engineering, 28(7):1864–1877, 2016.
[40] M. Wang, H. Li, D. Tao, K. Lu, and X. Wu. Multimodal graph-based reranking for web image search. IEEE Transactions on Image Processing, 21(11):4649–4661, 2012.
[41] M. Wang, X. Liu, and X. Wu. Visual classification by l1 hypergraph modeling. IEEE Transactions on Knowledge and Data Engineering, 27(9):2564– 2574, 2015.
[42] X. Wang, L. Nie, X. Song, D. Zhang, and T.-S. Chua. Unifying virtual and physical worlds: Learning towards local and global consistency. ACM Transactions on Information Systems, 2017.
[43] X. Wang and Y. Wang. Improving content-based and hybrid music recommendation using deep learning. In MM, pages 627–636, 2014.
[44] Y. Wu, C. DuBois, A. X. Zheng, and M. Ester. Collaborative denoising auto-encoders for top-n recommender systems. In WSDM, pages 153–162, 2016.
[45] F. Zhang, N. J. Yuan, D. Lian, X. Xie, and W.-Y. Ma. Collaborative knowledge base embedding for recommender systems. In KDD, pages 353–362, 2016.
[46] H. Zhang, F. Shen, W. Liu, X. He, H. Luan, and T.-S. Chua. Discrete collaborative filtering. In SIGIR, pages 325–334, 2016.
[47] H. Zhang, Y. Yang, H. Luan, S. Yang, and T.-S. Chua. Start from scratch: Towards automatically identifying, modeling, and naming visual attributes. In MM, pages 187–196, 2014.
[48] Y. Zheng, B. Tang, W. Ding, and H. Zhou. A neural autoregressive approach to collaborative filtering. In ICML, pages 764–773, 2016.