

英语原文共 10 页,剩余内容已隐藏,支付完成后下载完整资料
神经协同过滤
Xiangnan He National University of Singapore, Singapore xiangnanhe@gmail.com
Lizi Liao National University of Singapore, Singapore liaolizi.llz@gmail.com
Hanwang Zhang Columbia University USA hanwangzhang@gmail.com
Liqiang Nie Shandong University China nieliqiang@gmail.com
Xia Hu Texas Aamp;M University USA hu@cse.tamu.edu
Tat-Seng Chua National University of Singapore, Singapore dcscts@nus.edu.sg
摘要
近年来,深度神经网络已经在语音识别,计算机视觉和自然语言发展上产生了巨大的影响。然而,深度神经网络在推荐系统方面的探索受到了相对较少的关注。在这项工作中,我们努力地去发展基于神经网络的技术来解决推荐-协作过滤基于隐式反馈方面的关键问题。
虽然最近的一些工作中人们已经采用了深度学习来完成推荐任务 但是应用这项技术的这些人们主要是利用它来进行辅助建模信息,例如物品的文字描述和音乐声学特征。当涉及到协同过滤这种用户和物品特征的关系的关键因素时,人们仍然是使用矩阵分解并且将内积应用于用户和物品的潜在特征。
通过将内积替换为一个我们能够从数据中学到任意函数的神经结构,我们能够提出一个普遍的框架其名为NCF,其全称为神经网络的协同过滤。NCF是通用的并且能够通过其框架来表达描述和概括矩阵分解。通过对NCF模型进行非线性增压,我们计划去利用多层感知器来了解学习用户-物品之间的交互功能。在两个真实数据集上广阔的实验结果表明,我们的NCF框架相比于最顶尖水准的方法之下都能够得到显著的改善提高。经验表明使用更深层次的神经网络能够提供更好的推荐性能。
关键字
协同过滤,神经网络,深度学习,矩阵分解,隐式反馈
- 引言
在信息爆炸的时代,推荐系统在减轻信息过载方面起着举足轻重的作用,已经被广泛地应用于在线服务行业,包括电商,在线新闻以及社会媒体网站。个性化推荐系统的关键在于根据用户过去的交互(例如,评级和点击)来建模用户对项目的偏好,称为协同过滤[ 31, 46 ]。在各种协同过滤技术中,矩阵分解(MF)[ 14, 21 ]是最流行的一种,这种方法将用户和项目投射到共享的潜在空间中,使用潜在特征向量表示一个用户或项目。此后一个用户在对项目的交互会被建模为其潜在的向量的内积。
由Netflix奖普及推广,矩阵分解已经成为实际的途径方法来进行潜在因素模型基础的推荐。许多研究工作致力于增强矩阵分解能力,例如将这个技术与基于近邻的模型整合起来[21],将它与项目内容的主题模型相结合[38],并将其扩展到因子分解机上[26]来进行一般的特征建模。尽管矩阵分解用于协同过滤是有效的,但是众所周知的是通过交互功能-内积的简单选择,它的性能会受到阻碍。举个例子,对于显示反馈评分预测的任务,众所周知的是矩阵分解模型的性能能够通过将用户和项目混合在互动功能中产生影响而得到改进。虽然这似乎仅仅是内积操作符[ 14 ]的一个微不足道的调整,但它指出了设计一个更好的专用交互功能对建模用户和项目之间潜在的特征交互具有积极效果。内积,简单地结合了潜在特征的线性相乘,或许不足以捕获复杂结构的用户交互数据。
本文探索使用深度神经网络来从数据中学习交互功能,而不是去探索一个已经被很多过去的工作所组成的一门手艺 [18,21]。神经网络已被证明是能够逼近任何连续函数[ 17 ],并且最近更深层神经网络(DNNs)已经被发现在几个领域中的有效性,从计算机视觉、语音识别、到文本处理[ 5, 10, 15,47 ]。然而,相比大量的文献矩阵分解方法,则相对较少的将DNNs应用于推荐方面。虽然一些最近的研究进展[ 37,38,45 ]已经应用DNNs于任务推荐并且显示出了十分有前景的结果,他们大多使用DNNs去辅助信息建模,例如项目的文字描述,音乐的音频特征以及图像的视觉内容。至于在关键的协同过滤效果建模时,他们仍然使用矩阵分解,结合用户和项目潜在特性来使用内积。
这项针对上述的工作是通过正式化神经网络建模方法的协同过滤来研究问题。我们关注于隐式反馈,它通过用户的行为如观看视频,购买产品和点击物品等做法来间接地反映用户的偏好。与显示反馈(即评级和评论)相比,隐式反馈能够自动跟踪,因此更容易被内容收集者提供信息。然而,使用起来却更加的具有挑战性,因为用户的满意度没有被察觉到并且自然的负反馈是稀缺的。在本文中,我们探讨的主题是如何利用DNNs去对有噪的隐式反馈信号进行建模。
这项工作的主要贡献如下:
- 我们提出了一个神经网络结构来对用户和物品间的潜在特征进行建模,并且设计一个通用的基于神经网络的协同过滤框架。
- 我们表明,矩阵分解能够理解为一个专业化的NCF而且利用了一个多层次感知器来赋予NCF一个高水平非线性建模。
- 我们进行了广泛的实验,对真实数据集来验证我们的NCF方法的有效性和在协同过滤方面使用深度学习的前景问题。
- 前言
我们首先将问题形式化,讨论了隐式反馈协同过滤的现有解决方法。随后我们简要概括广泛使用的矩阵分解模型,突出通过使用内积解决问题的局限性。
-
- 从隐式数据中进行学习
设M和N分别表示用户和商品的数量。我们从用户的隐式反馈中定义用户-商品交互矩阵Y isin; RM X N表示为
1,如果交互(user u,item i)被发现;
y ui = (1)
0,其他情况。
这里y ui的值为1表示用户u和商品i之间存在交互,但是这并不意味着u实际上喜欢i。类似地,0的值不一定意味着u不喜欢i,也可能用户不知道该物品。这就给研究学习隐式数据带来了挑战,因为它只提供关于用户偏好的嘈杂信号。虽然观察到的条目至少反映了用户对项目的兴趣,但是未观察到的条目可能仅仅是缺少数据,而自然的负反馈是稀缺的。
隐式反馈的推荐问题是一个被制定为预测未被观察到的在Y中的条目的问题,这也将用于对商品进行排序。基于模型的方法假设数据可以由底层模型生成(或描述)。形式上,它们可以抽象为学习 ui =f(u, i|Theta;), 其中 ui 表示y ui的相互作用预测评分,Theta;表示模型的参数,f表示地图模型参数的预测评分功能(我们称之为交互功能)。
图1:一个例子说明了MF的限制。从数据矩阵(a)中,u4与u1最为相似,其次是u3,最后是u2。 然而,在潜在空间(b)中,将p4放在最接近p1的地方使得p4比p3更接近p2,从而导致较大的排名损失。
预测参数Theta;的现有方法一般是遵循机器学习范式来优化目标函数。文献中最常用的两种目标函数-逐点损失[ 14, 19 ]和成对损失[ 27, 33 ]。作为在显示反馈上丰富工作的自然扩展[21, 46], 逐点学习的方法通常是通过最小化 ui与其目标值y ui之间的平方损失来遵循回归框架。为了处理缺乏负面数据的问题,他们要么将所有未观察到的条目当作负反馈对待,要么从未观察到的条目中进行抽样反面事例[ 14 ]。对于成对学习[ 27, 44 ],其思想是观察到的条目应该排在更高于未观察到的条目之上。应当这样而不是极小化 ui与y ui之间的损失,成对学习最大化观察到的条目 ui和未观察到的条目y ui之间的边距。
向前一步,我们的NCF框架通过使用神经网络参数化互动函数f来预测 ui,如此一来,它自然对逐点和成对学习都支持。
-
- 矩阵分解
矩阵分解将每个用户和物品与具有潜在特征的实值向量相关联。使pu和qi分别代表用户u和物品i的潜在向量;矩阵分解预测互动y ui作为pu和qi的内积:
ui = f(u, i|pu, qi) = pTuqi =pukqik, (2)
K表示潜在空间的维度。正如我们所看到的,矩阵分解是在用户和物品之间进行双向交互的的潜在因素上进行建模,假设每个维度的空间是相互独立的,并将它们与相同的权重进行线性组合。这样一来,矩阵分解就可以被视为潜在因素的线性模型。
图1说明了内积函数如何限制矩阵分解的表达能力。为了清楚地理解这个例子,有两个设定需要事先明确说明:首先,因为矩阵分解将用户和项目映射到同一个潜在空间,两个用户之间的相似性也可以用内积来度量,或者等价地(假设潜在向量为一个单位长度)表示它们的潜在向量之间的夹角余弦。其次,为了不失一般性,我们使用Jaccard系数作为矩阵分解需要恢复的两个用户间的基础真实相似性。
让我们首先关注图1a前三行(用户)。很容易得到s23(0.66)gt;s12(0.5)gt;s13(0.4)。如此一来,p1、p2 和p3 在潜在空间中的几何关系可以绘制成图1b。现在,让我们考虑下一个新的用户u4,他的输入在图1a中虚线处给出。我们能够得知s41(0.6)gt;s43(0.4)gt;s42(0.2),意味着用户u4是最相似于u1,其次是u3并且最后是u2。然而,如果一个矩阵分解模型使p4与p1最接近(两个选项在图1b中用虚线表示),这将导致p4比p3更接近p2,这不幸的是会导致较大的排名损失。
上面的例子显示了使用简单和固定的内积估计低维潜在空间中的复杂用户 - 物品交互所导致的矩阵分解可能的限制。 我们注意到解决这个问题的一种方法是使用大量的潜在因素K.但是,这可能会对模型的泛化(例如过度拟合数据)产生不利影响,尤其是在稀疏设置中[26]。 在这项工作中,我们通过从数据中学习使用DNNs的交互功能来解决限制问题。
图2:神经协同过滤框架
- 神经协同过滤
我们首先介绍一般的NCF框架,详细阐述如何使用强调隐式数据二进制属性的概率模型来学习NCF。然后我们证明矩阵分解可以在NCF下表达和推广。为了探索协同过滤的DNNs,我们接着提出一个NCF的实例化,使用多层感知器(MLP)来学习用户 – 物品交互函数。最后,我们提出了一个新的神经矩阵分解模型,它在NCF框架下集成了矩阵分解和多层感知器; 它将矩阵分解的线性和多层感知器的非线性的优点统一起来,来对用户项目潜在结构进行建模。
3.1一般框架
为了允许协作过滤的完全神经处理,我们采用多层表示来模拟用户 – 物品交互yui,如图2所示,其中一个层的输出作为下一个层的输入。底部输入层由两个特征向量vUu和vIi组成,分别描述用户u和物品i; 他们可以被定制为支持用户和项目的各种建模,例如上下文感知[28,1],基于内容[3]和基于近邻[26]。由于这项工作专注于纯协同过滤设置,因此我们仅使用用户和项目的身份作为输入特征,将其转化为具有单热编码的二值化稀疏矢量。请注意,通过输入的这种通用特性
全文共23027字,剩余内容已隐藏,支付完成后下载完整资料
资料编号:[9491],资料为PDF文档或Word文档,PDF文档可免费转换为Word
