《NAIS: Neural Attentive Item Similarity Model for Recommendation》论文阅读及解析

《NAIS: Neural Attentive Item Similarity Model for Recommendation》论文阅读及解析

论文翻译

摘要
项目到项目的协作筛选(又名基于项目的CF),由于其在实时个性化方面的可解释性和高效性,长期以来被用于工业环境下的推荐系统的构建。它将用户的画像作为其历史交互项目来构建,并推荐与用户画像相似的新项目。因此,基于项的CF方法的关键在于估计项的相似性。早期的方法使用诸如余弦相似性和皮尔逊系数等统计度量来估计项目相似性,但由于缺乏针对推荐任务的定制优化,因此估计的准确性较低。近年来,一些研究试图从数据中学习项目相似度,将相似度表示为一个基本模型,并通过优化一个具有推荐意识的目标函数来估计模型参数。虽然人们已经在使用浅层线性模型来学习项目相似性方面做了大量的工作,但是对于基于项目的CF的非线性神经网络模型的研究却相对较少。在本文中,提出了一个神经网络模型,名为神经注意项目相似性模型(NAIS),用于基于项目的CF。设计NAIS的关键是一个注意力网络,它能够区分用户画像中哪些历史项目对预测更为重要。与目前最先进的基于项目的CF方法:分解项目相似度模型(FISM)相比,NAIS具有更强的表示能力,仅仅有网络带来的少量附加参数。在两个公共基准上进行的大量实验证明了NAIS的有效性。本文的工作是首次尝试设计基于项目的CF的神经网络模型,为神经网络推荐系统的未来发展开辟了新的研究可能性。
1 介绍
推荐系统是电子商务、社交媒体网站等众多以用户为中心的在线服务的核心服务,它可以增加用户的流量和利润。例如,据报道,在YouTube上,推荐占了主页视频点击量的60%;在Netflix上,推荐系统贡献了观看电影的80%左右,其首席产品官尼尔•亨特(Neil Hunt)表示,推荐系统每年的业务价值超过10亿美元。
在现代推荐系统中,协同过滤(CF)技术(一种仅从用户与项目的交互中预测用户个性化偏好的技术)发挥着核心作用,特别是在候选生成阶段。随着Netflix奖的推广,矩阵分解(MF)方法已经成为学术界最流行的推荐方法。虽然MF方法在等级预测方面比基于邻居的方法提供了更高的精度,但是在工业应用中使用它们的报道相对较少。一个可能的原因是由于MF的个性化方案:用户到项目CF,它用ID来描述用户,并将其与一个嵌入向量相关联。因此,要用新的交互刷新对用户的推荐,就必须更新用户的嵌入向量。然而,大规模数据重新训练MF模型很难及时实现,可能需要复杂的软件堆栈来支持在线学习,这使得该方法对工业环境的吸引力降低.
另一方面,项对项的CF(它用用户的历史交互项来表示用户,并推荐与用户画像相似的项)在工业应用中得到了广泛的应用。基于项的CF不仅提供了更多适用于许多推荐场景的可解释的预测,而且使实时的个性化更容易实现。具体来说,估计项目相似性的主要计算可以离线完成,在线推荐模块只需要对相似的项目执行一系列的查找,这很容易实时完成。
早期基于项目的CF方法使用诸如Pearson系数和余弦相似性等统计度量来估计项目相似性。由于这种基于启发式的方法缺乏推荐的定制优化,因此在top-K推荐精度方面,它们通常不如基于机器学习的方法 。为了解决这个问题,Ning等对基于项目的CF采用机器学习视图,通过优化支持推荐的目标函数从数据中学习项目相似性。虽然可以实现更好的精度,直接学习整个项目-项目相似度矩阵过于复杂,使得对于需要处理几百万甚至数十亿的项目的推荐器不可行。
为了解决基于学习的项目对项目的CF的低效率问题,Kabbur等人提出了一个分解项相似模型(FISM),它将一个项表示为嵌入向量,并将两个项之间的相似性建模为其嵌入向量的内积。FISM是表示学习(representation learning)的萌芽,它提供了最先进的推荐准确性,非常适合在线推荐场景。然而,FISM的建模可信度受到其假设的限制,即用户画像中的所有历史项在估计用户画像和目标项之间的相似性方面贡献相等。直观地说,一个用户过去与多个项目交互,但这些交互的项目未必都以相同的程度反映了用户的兴趣。例如,一个喜爱爱情电影的影迷可能也会看一部恐怖电影,因为这部电影在那段时间很受欢迎。另一个例子是,用户兴趣可能会随着时间而改变,因此,最近交互的项应该更能反映用户未来的偏好。
在这项工作中,通过区分不同项目对用户偏好的贡献的差异,作者们提出了一个增强的项目相似度模型。NAIS模型是建立在FISM的基础上,保持了FISM在在线预测方面的高效性,同时通过学习交互项的不同重要性而比FISM更具表现力。这是通过利用神经表征学习的最新进展-注意机制,来实现的。一个关键发现是,由于用户历史长度的巨大差异,标准注意机制无法从用户历史数据中学习。为了解决这个问题,可以通过平滑用户历史来调整注意力设计。作者们在两个公共基准上进行了综合实验,以评估top-K推荐,证明NAIS在NDCG方面比FISM有4.5%的相对改进。
论文的其余部分如下:在介绍了第二节的一些初步内容之后,作者在第三节阐述了提出的方法。然后在第4节中进行实验评估。最后在第五节讨论相关工作,然后在第六节结束全文。
2 预备工作
首先简要回顾基于项目的标准CF技术,然后,介绍了基于项的CF 和FISM 的基于学习的方法,它们是提出的NAIS方法的构建块。
2.1 标准基于项CF
基于项的CF的思想是,用户u对目标项i的预测取决于i与用户过去交互过的所有项的相似性。形式上,基于项目的CF的预测模型是:
在这里插入图片描述
有效在线推荐的吸引力在于它在计算预测得分时的综合性,首先,当离线获得项目相似度后,在线推荐阶段只需要检索候选项目中最相似的项目,并用方程(1)进行评分。其次,为了用新的交互刷新用户的推荐,作者只需要考虑与新交互的项相似的项。这种增量的复杂性使得基于项目的CF非常适合在线学习和实时个性化。 对于项目相似度sij,一种直观的方法是用和项目交互的用户表示项目,并应用余弦相似度和Pearson系数之类的类似度量。另一种常见的方法是在用户项交互图上使用随机游动。然而,这种基于启发式的项目相似度估计方法缺乏针对推荐的优化,因此可能会产生次优性能。接下来,作者介绍了基于学习的方法,目的是通过自适应地从数据中学习项目相似性来提高基于项目的CF的准确性。
2.2 基于学习的项目型CF方法
之前有人提出了一种称为SLIM(Sparse Linear Method的简称)的方法,该方法通过优化具有推荐意识的目标函数来学习项目相似性。其思想是将原始用户-项目交互矩阵与基于项目的CF模型中重构用户-项目交互矩阵之间的损失最小化,形式上最小化目标函数如下:

在这里插入图片描述其中U和I分别表示用户数和项目数,S∈RI×I表示项目-项目相似矩阵,β控制L2正则化的强度以防止过拟合。注意,在SLIM中,有三个有目的地设计的S约束条件,以确保有效地学习项目的相似性:1)由γ控制的L1正则化加强了S上的稀疏性,因为实际上只有少数项目与某一个项目特别相似;2)对S的每个元素进行非负性约束,使其成为有意义的相似性度量;3)对S的对角元素进行零约束,消除目标项本身在预测估计中的影响。
尽管可以实现更好的推荐准确性,但SLIM有两个固有的局限性。首先,离线训练过程对于大规模数据是非常耗时的,因为直接学习S具有I^2个元素(时间复杂度是O(I2)的大小)。其次,它只能学习之前修饰过的两个项目的相似性,而无法捕捉项目之间的传递关系。为了解决这一局限性,后面的工作提出了FISM(Factored Item Similarity Model的简称),它将一个项目表示为一个低维的嵌入向量,然后将相似度sij参数化为i和j的嵌入向量之间的内积,形式上,FISM的预测模型为:

在这里插入图片描述从基于用户的CF来看,括号中的术语可以看作是用户u的表示,这与u的历史项的嵌入是一致的。注意,在FISM中,每个项都有两个嵌入向量p和q来区分其作为预测目标或历史交互的角色,这也可以提高模型的表达能力;由于FISM涉及隐式反馈,因此省略评分项ruj,其中当j∈R+u时ruj=1。给定方程(3)的定义良好的预测模型,可以通过优化推荐的标准损失(即,不使用SLIM中使用的项目相似性约束)来学习模型参数,例如逐点分类损失和成对回归损失。
虽然FISM在基于项的CF方法中提供了最先进的性能,但作者认为,当获得用户的表示时,其对用户的所有历史项的平等处理会限制其表示能力。如前所述,这个假设对于真实世界的数据是违反直觉的,并且可能会降低模型的保真度。作者提出的NAIS模型通过用神经注意网络区分历史项目的重要性来解决FISM的这一局限性。
3 神经注意项目相似模型
在本节中,作者将介绍作者提出的NAIS方法。在介绍NAIS模型之前,作者首先讨论了几种试图解决FISM局限性的注意力机制设计,然后阐述了模型参数的优化。由于隐式反馈比显式反馈更为普遍、更容易收集,因此,最优化隐私反馈的NAIS成为近年来推荐研究的热点。最后,作者讨论了NAIS的若干性质,包括时间复杂度、在线个性化支持和注意力函数选择。
3.1 模型设计
设计1 设计注意的最初想法是,模型的不同部分对最终预测的贡献(即注意)不同。在基于项的CF的场景中,作者可以通过为每个项分配一个个性化的权重,直观地允许历史项对用户表示的贡献不同:

在这里插入图片描述其中,a j是一个可训练的参数,表示项目j在对用户表示贡献的注意力权重。显然,这个模型包含了FISM,它可以通过固定所有项目的aj为1来变成FISM。虽然该模型似乎能够区分历史项目的重要性,但它忽略了目标项目对历史项目的影响。特别是,作者认为,不管要预测哪个项目,为所有预测指定一个全局权重是不合理的。例如,当预测用户对一部浪漫电影的偏好时,认为一部恐怖电影和另一部浪漫电影同等重要是不可取的。从用户表示学习的角度出发,假设用户有一个静态向量来表示其兴趣,这可能会限制模型的表示能力。
设计2 为了解决设计1的局限性,一个直观的解决方案是调整aj以了解目标项,即为每个(i,j)对分配个性化权重:

在这里插入图片描述
其中,aij表示预测用户对目标项i的偏好时,项j在用户u的表示中的注意权重。虽然该解决方案在技术上似乎可行,但问题是,如果项对(i,j)从未在训练数据中同时出现(即,没有用户与i和j同时交互),它的注意权重aij无法估计,将是一个微不足道的数字。
设计3 为了解决设计2的泛化问题,作者考虑将aij与嵌入向量pi和qj联系起来。其基本原理是,嵌入向量应该对项目的信息进行编码,因此它们可以用于确定交互的权重(i,j)。具体来说,作者将aij参数化为一个函数,pi和qj作为输入:

在这里插入图片描述
这种参数化的优点是,即使一对(i,j)从未同时出现,只要pi和qj已经从数据中可靠地学习,它们仍然可以很好地用于估计注意权重aij。为了达到这个目标,作者需要确保函数f具有强大的表示能力。受最近成功使用神经网络对注意权重进行建模的启发,作者相似地使用多层感知(MLP)来参数化注意函数f。具体地说,作者考虑了两种定义注意网络的方法:

在这里插入图片描述其中W和b分别是将输入投影到隐藏层的权重矩阵和偏移向量,hT是将隐藏层投影到输出注意权重的向量。作者将隐藏层的大小称为“注意因子”,越大的值为注意网络带来更强的表示能力。作者使用校正线性单元(ReLU)作为隐层的激活函数,在神经注意网络中显示出良好的性能。在后面的3.3节中,作者将讨论fconcat和fprod这两个注意力函数的优缺点。
根据神经注意网络的标准设置,作者可以将设计3的预测模型制定如下:

在这里插入图片描述其中,系数1/ru在不影响表示的情况下被吸收进注意权重aij之中,并且使用softmax函数将注意权重转换为概率分布。注意,这是在交互历史上使用注意力网络的最自然、最直接的方法,这与注意力CF模型的历史建模部分相同。
不幸的是,作者发现这样一个缓和的标准解在实践中并不好用,它明显没有FISM的性能好,尽管它可以在理论上泛化FISM。在研究了注意权值之后,作者意外地发现这个问题源于神经注意网络的标准选择softmax函数。理由如下。在传统的注意使用场景中,如CV和NLP任务,注意成分的数量变化不大,例如句子中的词和图片中的区域。因此,使用softmax可以适当地规范化注意权重,进而有一个很好的概率解释。然而,这种情况对于用户历史数据不再存在,因为用户的历史长度(即用户消耗的历史项目的数量)可以变化很大。从质量上讲,softmax函数对注意权重进行L1规范化,这可能会过度惩罚有很长历史的活跃用户的权重。
为了证明这一点,作者在图2中展示了作者的实验MovieLens和Pin-terest数据集上的用户历史长度分布。作者可以看到,对于这两个真实世界的数据集,用户的历史长度变化很大;具体来说,MovieLens和Pinterest的用户历史长度(均值,方差)分别为(166,37145)和(27,57)。以Mevieles数据的左子图为例,所有用户的平均长度为166,最大长度为2313。这意味着,最活跃用户的平均注意权重为1/2313,比平均用户的平均注意权重(即1/166)低约14倍。注意权重的如此大的方差将导致模型中项目嵌入的优化问题。

在这里插入图片描述NAIS模型 作者现在介绍NAIS模型的最终设计。如上所述,设计3的弱性能来自于softmax,它对注意权重执行L1规范化,并导致不同用户的注意权重差异较大。为了解决这个问题,作者提出平滑softmax的分母,以减少对活跃用户注意权重的惩罚,同时减少注意权重的方差。形式上,NAIS的预测模型如下:

在这里插入图片描述
其中β是平滑指数,是要设置在[0,1]范围内的超参数。显然,当β设为1时,它会恢复softmax函数;当β小于1时,分母值会被抑制,从而不会对活跃用户过度惩罚注意权重。虽然注意网络的概率解释被β<1打破,但作者通过经验发现,它比使用标准softmax的性能要好得多(实验结果见第4.4节)。作者使用术语“NAIS concat”和“NAIS prod”来表示分别使用fconcat和fprod作为注意函数的NAIS模型(参见方程(7))。
此外,作者的NAIS模型可以在最近提出的神经协作过滤(NCF)框架下查看,如图1所示。与使用一个one-hot用户ID作为输入特征的基于用户的NCF模型不同,作者的NAIS模型使用多个multi-hot交互项作为用户的输入特征。再加上精心设计的注意网络作为隐藏层,作者的NAIS模型可以更直观地理解为执行项对项的CF。

在这里插入图片描述3.2 最优化
为了学习推荐模型,作者需要指定一个目标函数进行优化。因为处理每个项目都是二进制值1或0的隐式反馈时,作者可以将推荐模型的学习视为二进制分类任务。与之前关于神经CF的工作类似,作者将观察到的用户项交互视为正实例,从其余未观察到的交互中抽取负实例。让R+和R-分别表示正实例和负实例的集合,作者最小化正则化的日志损失,定义如下:

在这里插入图片描述其中N表示总训练实例数,σ是一个sigmoid函数,它将预测yˆu i转换为表示u与i交互的可能性的概率值。超参数λ控制L2正则化的强度以防止过拟合,并且Θ={{{pi},{qi},W,b,h}表示所有可训练参数。作者知道目标函数的其他选择,如点态回归和成对排序损失,也可以用来学习隐式反馈的NAIS。由于本研究的重点是展示NAIS的有效性,特别是在改进FISM以证明注意力的使用是合理的方面,因此作者将其他目标函数的探索作为未来的工作。
为了优化目标函数,作者采用了Adagrad ,它是随机梯度下降(SGD)的一个变种,对每个参数应用自适应学习率。它从所有训练实例中抽取随机样本,将相关参数向梯度的负方向更新。作者使用Adagrad的小批量版本来加速训练过程,小批量的生成在实验设置的第4.1节中有详细说明。在每个训练阶段,作者首先生成所有的负实例,然后将它们与正实例一起输入到训练算法中进行参数更新。这比在GPU平台上进行训练时对负实例进行实时采样(如Bayesian个人化排序中所做的)要快得多,因为它避免了GPU(用于参数更新)和CPU(用于负采样)之间不必要的切换。具体地说,对于每一个积极的实例(u,i),作者随机抽取X个用户u以前从未交互过的项目作为消极实例。在作者的实验中,作者将X设为4,这是一个对神经CF方法显示出良好性能的经验值。
预训练 由于神经网络模型的非线性和目标函数的非凸性(所有参数都是非凸的),利用SGD优化方法可以很容易陷入性能较差的局部极小值。因此,模型参数的初始化对模型的最终性能起着至关重要的作用。经验上,当作者试图从随机初始化中训练NAIS时,作者发现它收敛缓慢,最终性能略优于FISM。因此猜想这是由于注意网络和项目嵌入难以同时优化的缘故。由于注意网络的输出重新标注项目嵌入,联合训练它们可能会产生协同适应效应,从而减缓收敛速度。例如,训练时间可以减少注意权重aij,但是增加嵌入乘积pTi qj,从而在更新预测分数方面仅取得小的进展。
为了解决NAIS训练中的实际问题,作者用FISM对NAIS进行预训练,利用FISM学习到的项目嵌入初始化NAIS。由于FISM不存在协同适应问题,在编码项目相似度时可以很好地学习项目嵌入。因此,使用FISM嵌入初始化NAIS可以极大地促进注意力网络的学习,从而提高收敛速度和性能。有了这样一个有意义的项目嵌入初始化,作者可以简单地用随机高斯分布初始化注意网络。
3.3 讨论
在这一节中,作者讨论了三个属性的NAIS,即它的时间复杂度,支持在线个性化,以及注意力函数的两个选择。
时间复杂度分析 分析了NAIS预测模型的时间复杂度,即方程(9),这直接反映了NAIS在测试(或推荐)中所需的时间成本,训练的时间成本应与测试的时间成本成正比。用FISM(一个方程(3))来评估预测Y i UI的时间复杂度是O(k* r+u),其中k表示嵌入大小,并且r+u表示用户U的历史交互数,与FISM相比,用NAIS评估预测的额外成本来自关注网络。设A表示注意因子,然后表示f(pi,qJ)作为O(AK)的时间复杂度。由于SOFTMax的分母(以及作者提出的SULTMax的平滑变型)需要遍历R+U中的所有项,所以评估AIJ的时间复杂度是O(AK-R+Uu)。因此,直接实现NAIS模型需要时间O(ak | R+u | 2),因为作者需要评估| R+u |中每个j的aij。然而,考虑到分母项在R+u中的所有项的计算中是共享的,作者只需要计算一次并将其缓存到aij的所有计算中(其中j在R+u中)。因此,评估NaIS预测的总体时间复杂度可以降低到O(AK)R+Uü,这是FISM的一倍。
支持在线个性化 模型的离线训练提供基于用户过去历史的个性化推荐,对于在线个性化,作者考虑了一个用户有新的交互流的实际场景,推荐者模型需要为用户即时刷新top-K推荐。由于禁止实时对模型进行重新训练,另一种解决方案是仅基于新反馈对模型参数执行本地更新。这是基于用户的CF模型使用的常见策略,例如矩阵分解。然而,作者认为,即使是参数的局部更新在实践中也很难实现。关键的困难是用户可能在一个项目上有并发交互。因此,在每次交互的基础上单独执行本地更新将导致冲突,并且在分布式设置中实时解决冲突是非常重要的。
NAIS不需要更新模型参数来适应新的交互,而是可以在不更新任何模型参数的情况下更新用户的表示向量,从而降低了提供在线个性化服务的难度。这归因于基于项的CF机制,该机制使用用户的交互历史而不是其ID来描述用户。特别是在NAIS中,用户的表示向量通过项目嵌入上的权重和来聚合,这允许对预测进行良好的可分解评估。例如,假设用户u在项t上有一个新的交互。为了更新用户u在候选项i上的预测,作者不需要从头计算yˆui(即遵循等式(9)),作者只需要计算aitpTi qt的得分,然后将其与yˆui的旧预测相加。利用softmax分母的缓存,可以在O(ak)时间内完成yˆui的更新。这比用MF执行局部更新要有效得多(其时间复杂度为O(k2+r +uük)),因为a通常是小数目(通常设置为与K相同)。
注意函数选择 注意功能的两种选择在输入结构上是不同的:第一选择fconcat简单地级联pi和qj来学习注意权重wij ,而第二选择fprod将pi和qj的元素乘积输入注意网络。从分析上讲,由于注意权重wij是对交互作用的pTi-qj进行评分,因此以元素乘积pi/qj作为输入,可能有助于隐藏层学习注意函数(因为pTi-qj=1T(pi/qj));作为缺点,也可能会造成一些信息的无意丢失,因为在pi和qj中编码的原始信息被丢弃。相比之下,fconcat利用pi和qj中编码的原始信息来学习它们的交互权重,这没有信息损失;然而,由于级联 pi,qj T和元素乘积pi记者qj之间的数字间隙,它可能导致较慢的收敛速度。作者将在实验部分对注意函数的两种选择进行实证比较。
4.实验
在本节中,作者进行实验,旨在回答以下研究问题:
RQ1 作者建议的注意力网络对提供更准确的建议有用吗?
RQ2 作者提出的NAIS方法如何与最新的推荐方法进行比较?
RQ3 NAI的关键超参数是什么?它们如何影响NAI的性能?
在接下来的内容中,作者首先介绍实验设置,然后给出回答上述问题的结果。
4.1 实验设置
数据集和评估协议 作者采用了MovieLens和Pinterest数据集,由于这两个数据集都有一些预处理步骤,如删除稀疏用户和训练测试分离,作者直接对处理后的数据进行评估。表1总结了这两个数据集的统计数据。注意,在训练过程中,每个交互都与4个负实例配对,因此训练实例的数量远大于交互的数量。

在这里插入图片描述作者采用留一分析协议,它将每个用户的最新交互作为测试数据,并使用剩余的交互用行训练。具体来说,每个测试实例与99个随机抽样的负实例配对,然后每个方法输出100个实例的预测分数(1个正的加上99个负的),并且通过命中率(HR)和位置10处的归一化折现累积增益(NDCG)来判断性能。这两种度量方法在信息检索文献中都被广泛应用于评价top-K推荐和排名系统。作者报告所有用户的平均得分,其中HR@10可以解释为一个基于召回的度量,表示成功推荐用户的百分比(即正面实例出现在前10名中),NDCG@10是一个基于精度的度量,说明正面实例的预测位置,越大越好。
Baseline 作者将NAIS与以下项目推荐方法进行了比较:
POP 这是一种非个性化的方法来衡量top-K推荐任务的性能。它根据项目的受欢迎程度对项目进行排序,并根据项目收到的交互次数进行判断。
ItemKNN 这是公式(1)中规定的标准基于项目的CF方法,作者尝试使用不同数量的最近项邻居来考虑,发现使用所有邻居会得到最佳结果。
FISM 这是一个最先进的基于项目的CF模型,如等式(3)所示。作者用0.1的步长对α从0到1进行测试,发现0的值在两个数据集上都会得到最佳结果(当α小于0.6时,方差实际上很小)。
MF-BPR MF-BPR通过优化成对贝叶斯个性化排序(BPR)损失来学习MF。该方法是一种基于隐式反馈的CF推荐方法。
MF-eALS 该方法学习了一个MF模型,但优化了一个不同的点式回归损失,该损失将所有丢失的数据视为有较小权重的负反馈。优化是通过一个元素交替学习平方(eALS)算法来完成的。
MLP 该方法在用户和项目嵌入之上应用一个多层感知器(MLP),从数据中学习评分函数。作者采用了一个三层MLP并优化了相同的点态日志损失,而且在这两个数据集上的性能都很好。
作者特意选择了上述方法来包含各种各样的推荐方法:ItemKNN和FISM是基于项的CF方法的代表,用于验证作者的注意力论证模型的实用性;MF-BPR和MF-eal是有竞争力的基于用户的CF方法,用于证明隐式反馈推荐的最新性能,而MLP是最近提出的一种基于深度神经网络的CF方法。请注意,作者关注的是单个CF模型的比较。因此,由于NeuMF是在潜在空间中融合MF和MLP的一种集成方法,因此作者不进一步与在NCF论文中获得最佳性能的NeuMF进行比较。
参数设置 对于每种方法,作者首先训练不带正则化训练;如果观察到过度拟合(即训练损失持续减少,但性能变差),然后将正则化系数λ调整在[ 10-6,10-5…,1] 的范围内。验证集由每个用户随机抽取的交互组成。对于嵌入大小k,作者测试了[8、16、32、64]的值,并在每个设置中设置与嵌入大小相同的注意因子a。为了与FISM进行公平的比较,作者使用相同的Adagrad学习器在相同的点态对数损失下对其进行优化。作者发现,使用FISM学习的项嵌入初始化NAIS(即预训练步骤)可以获得稍好的性能,但收敛速度要快得多。作者默认设置下的NAIS性能:1)β=0.5,2)k=a=16,3)λ=0,4)学习率为0.01的Adagrad,以及5)使用FISM嵌入的预训练。
实施细节 作者使用TensorFlow来实现NAIS。由于在输入层中,一个项(用户)被表示为一个one-hot向量,其中大多数项为零,为了提高效率和内存,作者采用稀疏表示,只存储非零项的id。这里的实现挑战是,不同的用户有不同数量的非零条目,而TensorFlow要求一个批的所有训练实例必须具有相同的长度(与其他用于深入学习的编程工具如Theano一样)。为了应对挑战,广泛采用的解决方案是使用掩蔽技巧,它添加掩码(即伪非零条目),以确保批处理的所有实例具有相同的长度(即批处理的实例的最大长度)。然而,作者发现这个解决方案在CF数据集上非常耗时,因为一些活跃用户可能已经与超过数千个项目交互,使得一个采样的小批量非常大。为了解决这个问题,作者创新性地将随机抽样的一个用户的所有训练实例构成一个小批量,而不是随机抽样固定数量的训练实例作为一个小批量。这种基于用户的小批量技巧有两个优点:1)不使用掩码,因此速度快得多(根据经验,比掩码技巧快3倍);2)不需要指定任何批量大小,从而避免了调整批量大小的痛苦。此外,根据作者的实验,推荐性能保持不变。
训练时间 表2显示了使用TensorFlow实现的NAIS和basline的每一轮的训练时间。由于负采样率为4,因此训练轮数被定义为训练5 | R+|实例。注意,ItemKNN和MF eal的运行时间没有显示出来,因为它们是用Java实现的,这是其他方法无法比拟的。作者可以看到,基于项目的CF方法(FISM和NAIS)比基于用户的CF方法(MF-BPR和MLP)需要更长的训练时间。这是合理的,因为基于用户的方法只使用ID来表示输入层中的用户,而基于项的方法使用交互项来表示用户。MLP比MF-BPR使用更多的时间,因为它比MF-BPR多三个隐藏层。此外,由于注意网络的额外使用,这两种NAIS方法比FISM花费的时间更长。额外的时间成本是可以接受的,大约是FISM培训时间的0.8倍。在这两种NAIS方法中,NAIS concat比NAIS prod花费的时间稍长,因为连接增加了输入维度,而乘积则没有。

在这里插入图片描述4.2 注意力网络的效果(RQ1)
从技术上讲,作者的NAIS模型通过用注意力网络学习到的可变权重替换估计项目相似性(即pTi qj)的恒定权重(即1/| Ru+|α)来增强FISM。为了证明作者设计的注意网络的有效性,作者首先运行FISM直到收敛,然后使用FISM嵌入来初始化NAIS来训练注意网络。
图3显示了FISM的稳定性能以及作者两种NAIS方法在每个历元嵌入大小16时的得分。作者可以清楚地看到使用注意网络的有效性。具体来说,NAIS的初始化性能接近FISM,而通过训练注意网络,两种NAIS方法明显优于FISM。在这里作者只展示了50个时期的表现,进一步的NAIS培训可以带来更好的表现。在收敛后(结果见表5),两种NAIS方法在MovieLens和Pinterest上的NDCG分别比FISM提高6.3%和3.6%。作者认为,推荐准确率的提高源于NAIS强大的表示能力。此外,作者发现NAIS-prod比NAIS-concat收敛得更快(而它们的最终性能接近)。这证实了作者在第3.3节中的分析,提供了经验证据,证明将pi点积qj输入注意网络有助于学习ppti-qj的权重。

在这里插入图片描述4.2.1定性分析
本文对注意权重进行了定性分析,以说明注意权重的可学习性和可解释性。
首先,在训练过程中注意权重是如何变化的,这很有趣。然而,yˆui的预测具有| R+u |注意权重,并且很难为所有预测绘制注意权重。相反,作者记录所有预测的注意权重的统计-均值和方差,并且注意网络的学习效率通过一个大的方差来证明(注意,FISM的方差为0)。图4显示了NAIS prod在Pinterest的不同时期所学习到的统计数据的散点图,其中每个散点表示测试的预测。作者可以看到,在训练的初始阶段(第1阶段),点集中在x轴附近,即方差接近于零。随着训练时间的增加,点在Y轴上变得更加分散,许多点开始得到高的方差。再加上图3显示了更多的训练阶段会导致更好的表现,作者可以得出结论,注意力权重经过了适当的训练,以便更容易区分历史项目。这揭示了NAIS优于FISM的原因,证明了作者在这项工作中的关键论点,即用户的历史项目在预测中的贡献并不相等。

在这里插入图片描述其次,作者在表3中展示了关于一个抽样用户的一个预测的注意权重的案例研究。权重已被L1标准化,以便与FISM进行明确的比较,FISM假定历史项目的权重是一致的。在这个例子中,目标项1382是测试集中的一个正例,应该得到更大的分数。可以看到,FISM对所有历史项目(更准确地说,它们与目标项目的交互作用)的权重是一致的,这导致预测得分相对较小。相比之下,NAIS prod在项目894上分配了更高的权重,在项目131上分配了更低的权重,成功地将目标项目1382的权重放大,这是理想的。为了证明其合理性,作者进一步研究了这些项目的内容(即Pinterest图像)。作者发现目标项目1382和最高参与项目894都是关于自然风光的,而最低参与项目131是家庭照片。这与预期的一样,因为当预测用户对目标项的偏好时,同一类别的历史项应该比其他不太相关的项具有更大的影响。这很好地证明了作者在导言中的动机示例,为注意权重和项目特征的相关性提供了证据。

在这里插入图片描述4.2.2 预训练的影响
为了演示预训练的效果(也就是使用FISM学习到的嵌入作为模型初始化),作者在表4中显示了嵌入大小为16时,有和没有预训练的NAIS的性能。注意,未经预训练的NAIS的超参数已单独调整。可见,两种NAIS方法使用FISM嵌入进行预训练,都得到了显著的改进。与随机初始化相比,带预训练的NAIS方法在性能提高的同时具有更快的收敛速度。这表明了使用FISM嵌入对初始化NAIS的积极作用。此外,从头开始训练NAIS可以获得比FISM更好的性能,这进一步验证了注意网络的有效性。

在这里插入图片描述
4.3性能比较(RQ2)
作者现在将NAIS的性能与其他项目推荐方法进行比较。对于这些基于嵌入的方法(MF、MLP、FISM和NAIS),嵌入大小控制它们的建模能力;因此,作者将所有方法的嵌入大小设置为16,以便进行公平比较。在超参数研究的第4.4节中,作者改变了每种方法的嵌入大小。表5显示了建议的总体准确性。作者有以下主要观察结果。
•1。两种NAIS方法在两个数据集上都获得了最高的NDCG和HR分数。它们达到了相同的性能水平,与其他方法相比取得了显著的改进(通过单样本配对t检验判断p<10-3)。作者相信这些好处归功于学习项目间互动中注意力网络的有效设计。
•2。基于学习的CF方法比基于启发式的Pop和ItemKNN方法性能更好。特别是,FISM的相对改善率约为10%,优于其对应的ItemKNN。考虑到两种方法使用相同的预测模型,但在估计项目相似性方面存在差异,作者可以清楚地看到定制优化对推荐的积极作用。
•3。在基线中,基于用户的CF模型(MF,MLP)和基于项目的CF模型(FISM)之间没有明显的赢家。具体来说,在MovieLens上,基于用户的模型比FISM性能更好,而在Pinterest上,FISM性能优于基于用户的模型。由于Pinterest数据的用户交互行为更加稀疏,这表明基于项的CF对于稀疏数据集可能更为有利,这与之前的研究结果一致。
值得指出的是,表5中报告的NAI的性能使用了超参数的默认设置(在第4.1节中报告)。通过调整超参数可以观察到进一步的改进,这将在下一小节中探讨。

在这里插入图片描述
4.4超参数研究(RQ3)
通过引入一个注意网络,NAIS有两个额外的超参数-注意网络的隐藏层大小(aka,注意因子a)和平滑指数β。此外,作为一种基于嵌入的模型,嵌入大小是NAIS的另一个关键超参数。本小节研究三个超参数的影响。
表6显示了嵌入大小为8、32和64时基于嵌入的方法的性能,可以看到,性能趋势通常与嵌入大小16时的观察结果一致(在第4.3节中详细说明)。作者的NAIS方法在大多数情况下都能达到最好的性能,除了嵌入大小为8的MLP性能最好的情况外。这是因为当嵌入尺寸较小时,线性模型受嵌入尺寸的限制,而非线性模型比线性模型更容易表现出更强的表示能力。

在这里插入图片描述图5显示了NAIS w.r.t.注意因素的表现,可以看到,无论注意因子的设置如何,两种NAIS方法都优于FISM。在这两种方法中,NAIS-prod对小注意因素的学习效果优于NAIS-concat,证明了在注意网络中使用pi点积qj作为输入对学习pTi-qj权重的积极作用。此外,对NAIS-concat使用一个大的注意因子可以补偿NAIS-prod之间的性能差距,这意味着使用一个表达模型来学习注意权重是有用的。

在这里插入图片描述图6显示了NAIS w.r.t.β的性能,很明显,当β小于1时,两种NAIS方法都表现出良好的性能,并优于FISM。而当β设为1时,NAIS的性能明显下降,且比FISM差。注意,将β设置为1意味着使用softmax规范化注意权重,这是神经注意网络的标准设置。不幸的是,这样的标准设置对CF数据集不起作用。作者认为这是由于用户历史长度的巨大差异造成的。具体来说,在MovieLens和Pinterest上,用户历史长度的(均值,方差)分别为(166,37145)和(27,57)。在处理句子(即对单词的注意)和图像(即对区域的注意)的NLP和CV任务中,注意力成分的数量很少出现如此大的差异。这是这项工作的一个关键见解,即在用户行为数据上使用注意网络,据作者所知,这在以前从未被调查过。

在这里插入图片描述5相关工作
早期CF的工作主要是处理用户评分之类的显式反馈,将其作为评分预测任务来制定,目标是将观测值与相应模型预测值之间的误差降到最小。对于这个基于回归的CF任务,MF:一个线性的潜在因素模型,被认为是最有效的方法。其基本思想是将每个用户和项目与一个潜在向量(aka.嵌入)相关联,将匹配分数建模为潜在向量之间的内积。许多MF的变形都被提出,如SVD++、本地化MF 、层次化MF、社会感知MF 和跨平台MF 。SVD++模型在拟合评分方面显示出强大的表示能力;特别是,据报道它是Netflix挑战赛中最好的单一模型。在作者看来,这应该归功于潜在因素模型下的基于用户的CF和基于项目的CF的集成。而在SVD++的原著中,作者主张通过引入隐式反馈来增强MF,隐式反馈部分的建模本质上是一个基于项目的CF模型。
后来的研究工作已经从隐式反馈转向学习推荐器,隐式反馈本质上是单类数据,只记录用户的交互行为,用户对项目的显式偏好(即喜欢或不喜欢)是未知的。与早期预测评分的CF方法不同,隐式反馈的工作通常将CF视为一个个性化的排名任务,对top-K推荐采用基于排名的评估协议。显然,使用基于排名的协议评估CF方法更具说服力和实用价值,因为推荐对于许多应用程序来说自然是top-K的排名任务。此外,有经验证据表明,评级预测误差较低的CF模型不一定会导致top-K建议的较高准确性。
从技术上讲,评级预测方法和top-K推荐方法的关键区别在于优化CF模型的方式,具体来说,评级预测方法通常只优化观测数据的回归损失,而top-K推荐方法需要考虑缺失数据(aka.消极反馈)。因此,通过简单地调整目标函数进行优化,为隐式反馈定制评级预测CF方法在技术上是可行的。
为了从隐式反馈中学习推荐模型,通常使用两种类型的学习排序(L2R)目标函数:逐点学习和成对学习。逐点L2R方法通过从缺失数据中抽样负反馈或将所有缺失数据视为负反馈 ,优化基于回归的平方损失或基于分类的日志损失。对于诸如MF及其变体的线性CF模型(例如,因子分解机器),存在有效的坐标下降算法,该算法优化了所有丢失数据上的平方损失。但对于神经网络等复杂的非线性CF模型,仅采用了基于SGD的优化方法,为了提高效率,需要对缺失数据进行负反馈采样。成对L2R方法考虑一对用户的正反馈和(采样)负反馈,最大化其预测分数的裕度,而不管其确切值。基本假设是,观察到的交互应该比未观察到的反馈更有可能引起用户的兴趣。一项最新的工作发展了对抗性个性化排名,它采用对抗性的成对学习训练来增强推荐模型的稳健性并提高其泛化性能。
近年来,利用深度神经网络(DNNs,aka。深度学习)进行推荐变得越来越受欢迎。DNNs具有很强的从数据中学习复杂函数的能力,众所周知,它可以从低级原始数据(如图像和音频)中提取高级特征。DNS推荐的现有工作可分为两类:1)使用DNNs从辅助数据中提取特征,例如图像和文本,使用DNNs学习用户项目评分函数。由于作者关注的是只利用用户项交互的CF,所以第二类工作与此工作更为相关。有人提出了一个用前馈神经网络来实现CF的通用NCF框架,并设计了三个基于用户的CF模型。后来,NCF被扩展到包含属性和优化成对排序损失。神经factorization machine(NFM)是一种用于特征间高阶非线性交互的模型,适用于基于属性和上下文感知等信息丰富的推荐场景。最近,Wang等人结合了基于嵌入和基于树的模型的优点,提出了可解释的推荐。
与作者最相似的工作是注意力协作过滤(ACF),它为基于用户的CF开发了一个注意力网络。作者的NAIS不同于ACF和所有以前的工作,作者为基于项目的CF制定了注意力网络。作者发现使用标准的注意力网络在用户交互历史上不起作用,因为在处理变化长度历史时softmax函数存在问题。为了解决这个问题,作者建议平滑softmax函数的分母。这一见解对于开发序列数据的注意网络特别有用,序列数据的长度有很大的变化,据作者所知,这是从未被探索过的。
6结论
在这项工作中,作者开发了项目到项目度协同过滤的神经网络方法。作者的关键论点是,用户画像中的历史项在预测用户对某个项目的偏好的贡献并不相等。为了解决这一问题,作者首先从表征学习的角度重新审视了FISM方法,然后逐步设计了几种注意机制来提高其表征能力。作者发现,传统的神经注意网络设计方法,由于用户历史长度的巨大差异,在基于项目的CF中并不适用。作者提出了一个简单而有效的softmax变体来解决用户行为上的大方差问题。作者进行了实证研究,以验证作者的NAIS方法的有效性。实验结果表明,NAIS显著优于FISM,实现了项目推荐任务的竞争性能。
据作者所知,这是第一个为基于项目的CF设计神经网络模型的工作,为神经推荐模型的未来发展开辟了新的研究可能性。在未来,作者将特别致力于探索NAIS方法的深层架构。目前,作者的NAIS设计只考虑了项目之间的二阶交互,这是因为作者考虑了在在线个性化中保持模型的简单性,这主要是出于推荐方法的实际考虑。为了进一步提高推荐精度,通过在嵌入层上放置完全连接层或卷积层来扩展NAIS是很自然的,建模高阶和非线性特征交互被证明是有帮助的。从技术上讲,另一个值得探索的有趣方向是将深度神经网络与基于图的方法结合起来,它们有其独特的优势,也被广泛用于排名。此外,作者有兴趣探索基于项目的CF上最近的对抗性个性化排名学习,以研究可能的性能改进。最后,作者将研究推荐系统的可解释性,这是最近的一个有希望的方向,并且可以通过引入基于项目的CF方法的注意网络来促进。

NAIS模型论文解析

论文简述:NAIS模型解析PPT下载
百度云下载,提取码为7vtv

NAIS模型论文实验数据

实验中用到的两个数据集于作者另一篇论文《Neural collaborative filtering》中有详细介绍:
1.MovieLens:This movie rating dataset has been widely used to evaluate collaborative filtering algorithms. We used the version containing one million ratings, where each user has at least 20 ratings. While it is an explicit feedback data, we have intentionally chosen it to investigate the performance of learning from the implicit signal [21] of explicit feedback. To this end, we transformed it into im- plicit data, where each entry is marked as 0 or 1 indicating whether the user has rated the item.
2.Pinterest:This implicit feedback data is constructed by [8] for evaluating content-based image recommendation.The original data is very large but highly sparse. For exam- ple, over 20% of users have only one pin, making it difficult to evaluate collaborative filtering algorithms. As such, we filtered the dataset in the same way as the MovieLens data that retained only users with at least 20 interactions (pins). This results in a subset of the data that contains 55,187 users and 1, 500, 809 interactions. Each interaction denotes whether the user has pinned the image to her own board
在这里插入图片描述

NAIS模型论文下载

链接: 点击此处即可下载

论文中数据集详细介绍的论文:NCF

链接: 点击此处即可下载

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值