基于双向条目注意网络的推荐系统

2020-07-27 09:57赵永建杨振国刘文印
广东工业大学学报 2020年4期
关键词:条目注意力性能

赵永建,杨振国,刘文印

(广东工业大学 计算机学院,广东 广州 510006)

协同过滤(Collaborative Filtering, CF)是一种经典而流行的推荐策略。基于用户的历史数据和邻居信息来预测用户可能感兴趣的项目,可以发现用户的需求和潜在的偏好,从而改善用户体验,增强用户粘性和忠诚度。

基于条目的CF和基于用户的CF是2种典型的协同过滤策略,它们分别从查找与用户历史项相似的项和从目标用户中查找历史项相似的用户的角度出发,实现准确推荐。基于条目的CF在商业中得到了广泛的应用,具有巨大的商业价值,其不可预测性和可扩展性引起了人们的广泛关注。例如,Kabbur等[1]提出了一个因子条目相似度模型(Factored Item Similarity Model, FISM),该模型学习了条目的嵌入向量表示,并将2个条目之间的相似度建模为它们的嵌入向量的内积。然而,FISM基于这样的假设:用户配置文件的所有历史项对目标项的贡献是相等的。例如,要预测用户对一部浪漫电影的偏好,将一部恐怖电影与另一部浪漫电影放在同等重要的位置是不可取的。为此,He等[2]提出了一个神经关注条目相似度(NAIS)模型来区分历史交互条目对目标条目贡献的不同重要性。但是,NAIS过分关注于区分历史项对目标项的贡献,而忽略了它们对用户兴趣的差异化贡献。例如,一个科幻迷通常已经看过或读过一些科幻电影或书籍,他或她可能也看过或读过一些其他类型的电影或书籍,如卡通。就用户兴趣的建模而言,科幻类的条目应比其他类型的条目贡献更大,因为用户的主要兴趣是科幻。这种直觉促使作者通过考虑历史条目对用户兴趣的不同贡献来建模以表达它们之间的潜在关系。

在这项工作中,提出了一个双向条目注意网络(DIAN),该方法联合模拟历史条目和目标条目之间相似性的神经注意模型(NAIS)[2]和建模历史条目之间的相似性的自注意力模型(SAIS),以便对用户个人资料中历史项对目标项的重要性以及这些项之间的潜在关系进行建模。特别是,DIAN使用双归一化机制改进了自注意力网络,这不仅解决了标准的自注意力机制会惩罚活跃用户的问题,而且使模型提取用户兴趣更加准确有效。因此,DIAN同时具有SAIS和NAIS模型的优势,能在保持提取主要兴趣的前提下根据不同的目标条目聚合个性化的兴趣向量。

这项工作的主要贡献概括如下:(1) 本文提出了一种双归一化自注意力网络,具体的是使用双归一化机制改进了标准的自注意力网络。将改进后的自注意力模型应用于推荐系统,不仅能从历史条目中提取用户的兴趣表示,还能使模型不受用户历史条目数量的影响。(2) 通过将神经注意模型与双归一化自注意力条目相似性模型结合,考虑历史项与目标项之间的关系,以及历史条目之间的潜在关系,提出了一个双向条目注意网络(DIAN)。(3) 对真实数据进行的大量实验表明,在用户兴趣表征学习中考虑历史项之间潜在关系是十分重要的。

1 相关工作

在本节中简要总结了隐式协同过滤和神经注意力网络的相关工作。

1.1 隐式协同过滤

隐式反馈的协同过滤[2]经常被表述为一个学习排序问题,通常被称为个性化排序或一类CF[3],在top-N推荐上采用基于排名的评估协议。top-N推荐方法需要考虑丢失的数据(即负面的反馈)[4]。为了解决这个问题,文献[5]建议将所有丢失的数据视为负实例,文献[6]建议从丢失的数据中抽取负实例。这2个开创性的工作定义了隐式反馈的条目推荐模型。利用隐式反馈建立模型具有较强的说服力和实用性。

1.2 神经注意力网络

注意力机制[7-8]与人类的视觉注意有着相似的直觉。注意力机制可以快速提取稀疏数据的重要特征,并已成为捕获其依赖关系的基本组件。自注意力机制[9]是注意力机制的一个变体,引起了研究者的广泛关注,并已成功应用于计算机视觉[10]、自然语言处理、机器翻译[11]等诸多领域。Zhang等[10]提出了SAGAN(Self-attention Generative Adversarial Networks)模型来学习图像内部表征中的全局、长期依赖关系。Vaswani等[11]指出机器翻译模型可以通过自我关注达到最先进的结果。Zhang等[12]提出了一种AttRec模型,将自注意力机制应用于关注用户的历史短期行为,以提取用户的短期兴趣。

2 预备知识

FISM是基于条目的CF模型,是提出DIAN方法的基础。FISM通过条目嵌入向量的内积来计算条目相似度,可以处理大规模数据集以及捕获未交互的条目之间的关系。FISM的预测模型为

FISM的局限性在于建模用户兴趣表征时,它假定所有历史条目对目标条目做出同等贡献。为了解决这个问题,He等[2]提出了NAIS来区分历史项对目标项的不同贡献。形式上,NAIS定义如式(2)~(4)所示。

其中,aij表示历史条目j对目标条目i贡献的个性化权重,通过式(3)和式(4)计算得到。借用函数f ()这样的方式计算aij的基本原理是即使目标项不在历史项中,即目标条目不是用户交互过的条目,它仍然可以获得它们之间的权重;β是aij的归一化平滑指数;w1和b1分别是将输入投影到隐藏层的权重矩阵和偏置向量;是将隐藏层投影到输出注意权重的向量;式(2)中的表示用户u在目标条目i上的个性化兴趣表征,该表征是通过用户的历史交互项和目标项的嵌入向量聚合而来的。

3 双向条目注意网络

在这一节中,介绍本文提出的双向条目注意网络(DIAN),在介绍DIAN之前,首先讨论了解决NAIS局限性即提取用户主要兴趣的注意力机制的设计,并提出了双归一化自注意力网络。然后详细说明了模型参数的优化。

3.1 双归一化自注意力条目相似性(SAIS)模型

每个用户都有很多兴趣,用户对每个兴趣的喜爱程度却不同,一般有主次之分。NAIS过分关注于区分历史项对目标项的贡献,而忽略了它们对用户兴趣的差异化贡献。为了解决NAIS的缺陷,本文引入了自注意力机制[11],称为双归一化自注意力条目相似性(SAIS)模型。它着眼于从用户的历史条目中提取用户的兴趣表示。自注意力机制,也称为内注意机制,旨在通过自身的点积,逐渐更多地关注重要的特征。因此,本文使用自注意力机制来处理用户的历史行为数据,并提取用户主要的兴趣点,以减轻用户实际上不感兴趣或兴趣较低的历史交互项的影响。

(1) SAIS模型的设计1。本文引入自注意力机制建模用户的主要兴趣,即获取用户历史交互项之间的条目相似性(也可称为注意力权重)。注意力权重能区分历史条目对用户兴趣的不同重要性,可以用来提取用户的主要兴趣。具体地说,设计1(见图1)中的自注意力模块的输入由查询(Q ),键(K)和值(V)组成;输出是值(V)的加权和,其中加权的权重矩阵就是注意力权重(auj)。在不失一般性的前提下,让q表示用户u所有历史交互条目嵌入向量的集合矩阵,矩阵的每一行都为一个历史条目的嵌入向量。模型的输入可以表示为

图 1 双归一化自注意力条目相似性(SAIS)模型的结构Fig.1 The architecture of dual normalization self-attention item similarity (SAIS) model

首先,通过共享参数的非线性变换将输入投影到同一共享空间。WQWKWVQ

其中, , , 分别是 ,K,V的投影变换权重矩阵;Relu是激活函数。然后,计算历史条目j对用户u兴趣表示的差异化贡献的注意力权重,

其中,softmax是归一化函数;auj表示用户u对历史项目j偏好的注意力权重;是缩放自注意力权重的缩放因子,起到调节作用,使得内积不至于太大;在softmax之前应用掩蔽操作(mask),掩蔽关联矩阵的对角线,以避免查询(Q )和键(K)的相同向量之间的高匹配分数。用户u对条目i的偏好能被定义为

其中,auj是一个可训练的参数;很明显,当auj固定为1时,SAIS可以恢复为FISM,系数1 /|R|τ作为归一化机制被转化到了auj中。

SAIS模型的目标是提取用户的主要兴趣,使模型更关注用户感兴趣的条目。但实践中,作者发现在设计1中使用softmax函数进行归一化不能很好地处理历史项数量较多的用户。而大多数推荐系统的应用场景中,用户的活跃程度或历史交互条目的数量变化都较大。因此,softmax会限制自注意力网络在推荐系统中的性能表现。

(2) SAIS模型的设计2。为解决设计1的限制,根据参考文献[2],本研究在softmax函数的分母中引入了一个平滑因子。具体地说,本文在标准的自注意力网络之后添加了一个隐藏层(见图2),有效地减轻了对活跃用户注意力权重的惩罚。隐藏层由一个调整后的s oftmax′函数组成。隐藏层的输入是自注意力机制的输出和矩阵q的点积,即设计1的输出。最终,用户u对条目i的偏好能被定义为其中,表示用户u对历史项目j偏好的注意力权重;γ是 a′uj归一化的平滑指数,在[0,1]范围内设置的超参数,显然,当γ设置为1时,它恢复为softmax函数;w2和b2分别是将输入投影到隐藏层的权重矩阵和偏置向量;是将隐含层元素输出到双归一化自注意力网络输出层的向量;借用函数g()的方式计算的原理是引入非线性规则,增加模型的泛化能力;公式(9)中的表示用户的主要兴趣表征,由用户历史交互条目的嵌入向量聚合而来。实验发现当γ<1时模型能实现比标准的softmax函数更好的性能(实现结果在4.8节)。

图 2 softmax′的结构Fig.2 The architecture of softmax′

最终的SAIS算法模型(见图1)中使用了2次归一化机制,一次专注于从历史条目中提取用户的兴趣表示,另一次使模型不受用户历史条目数量的影响,本文称这种机制为双归一化自注意力网络(如图1设计2)。作者认为这种设计可以把适用于图像领域的自注意力网络很好地迁移到机器学习中,特别对文本数据或者数目变化较大的数据效果可能更好。SAIS能提取用户的主要兴趣,使模型推荐的条目更符合用户的兴趣要求。

3.2 双向条目注意网络

给定了NAIS和SAIS模块,可以清楚地看到这两个模型可以相互补充,本文提出的双向条目注意网络(DIAN)模型通过与神经张量网络(NTN)[13]相似的方式将2个模块结合在一起(见图3)。具体地,DIAN的定义如式(15)所示。

图 3 双向条目注意网络(DIAN)模型的结构Fig.3 The architecture of dual-aspect item attention network (DIAN)model

其中,α是设置在[0,1]范围内的参数,用来控制2个模块的影响,当α=0时DIAN可以省略为SAIS模型,当α=1时DIAN可以省略为NAIS模型。DIAN将用户的主要兴趣向量添加到NAIS聚合的用户对目标项目i的个性化兴趣表示中。DIAN认为历史条目对目标条目和用户兴趣的贡献均存在差异性。DIAN除了关注目标条目外,更加关注用户感兴趣的条目。DIAN双向关注用户的历史条目,能更多地挖掘历史条目中的隐藏信息。

优化推荐模型的两种主流方法是逐点学习排名优化算法和成对学习排名优化算法。根据作者的知识和经验,两种学习类型之间没有永久的赢家,而且性能在很大程度上取决于预测模型和数据集。在本文中,选择了逐点对数损失函数,它已经被广泛用于最近提出的神经推荐模型[2,14]中并表现出良好的性能。它将模型的学习作为二分类任务,最小化目标函数如式(16)所示。

其 中 Θ={{pi},{qj},WQ,WK,WV,w1,b1,h1,w2,b2,h2}表示所有可训练的参数;n表示训练实例的总数量;λ是控制 L2正则化强度的超参数,可以防止过拟合;R+和R-分别是正例子和负例子的集合。值得注意的是,DIAN是隐式反馈的推荐模型,在数据集中没有显式的负例子。根据参考文献[14],本文在用户历史没有交互的条目中随机抽取一定数量的条目作为负例子。逐点学习排名优化算法通过正负对训练的方式,使模型对正例子的偏好越来越高,对负例子的预测分数越来越低。

本文采用随机梯度下降(Stochastic Gradient Descent, SGD)的一种变体Adagrad[15]来优化模型的参数,它为每个参数应用自适应学习率。在每个训练时期,本文首先生成所有负面实例,然后将它们与正实例一起馈送到训练算法中以进行参数更新,对于每个正实例(u, i),本文随机将用户之前从未交互过的X项作为负实例进行随机抽样。在本文的实验中,将X设置为5,这是一个经验数。

由于深度神经网络模型的非线性和逐点学习排名损失函数的非凸性,梯度下降方法会很容易地陷入次优的局部最优解。因此,模型参数的初始化在模型的最终性能中起着至关重要的作用。根据经验,当所有模型参数随机初始化时,模型会遇到收敛慢和性能差的问题。本文通过使用FISM的嵌入参数来初始化模型(NAIS, SAIS, DIAN)解决了上述难题。因为当获取用户兴趣的表示时,FISM能平等地对待用户的所有历史项。

4 实验

在本节中进行了大量的定量和定性实验,以评估所提出的推荐系统模型的性能。

4.1 数据集

(1) MovieLens[14]数据集包括来自6 040个用户对3 706部电影的1 000 209个评分,每个用户至少有20个评级。对于隐式推荐任务,通过跟随[2, 14]将评级转换为0或1,表明用户是否对该项目进行了评级。

(2) Pinterest[16]数据集都是隐式反馈数据,包含来自55 187个用户对9 916张图像的1 500 809个评级。每次评级就代表用户和条目进行了交互。

4.2 评估指标

本文使用留一法的策略评估本文提出的模型。考虑到数据集条目的数量多,为每个用户排列所有条目是非常耗时的。本文遵循参考文献[17]中的策略,即随机抽样99个用户没有交互的条目,并将测试(目标)条目在100个条目中进行排序。本文使用命中率(Hit Rate,HR)和归一化折损累计增益(Normalized Discounted Cumulative Gain,NDCG)2个指标客观度量模型的性能。HR@10衡量的是模型中排名前10的项目的命中率(即积极的例子出现在前10)。NDCG@10度量推荐结果与用户兴趣之间的相关性,越大越好。这2个指标可以客观准确地评价算法模型推荐的条目是否符合用户的兴趣,在推荐系统中得到了广泛的应用[1,2,10,12,16]。

4.3 对比算法

(1) POP:该方法根据条目的受欢迎程度对条目进行排名,并向用户推荐最受欢迎的条目。

(2) ItemKNN[18]:该方法根据候选项与历史项的相似性提出建议,是一种标准的基于条目的协同过滤方法。该方法通过余弦相似度估量条目的相似性。

(3) MF-BPR[19]:该方法通过优化成对贝叶斯个性化排序损失函数(BPR)来学习矩阵分解(MF)模型,使正例子与负例子之间的距离越来越大。该方法是推荐中应用最广泛的方法之一。

(4) MF-eALS[6]:该方法用逐点式交替最小二乘法(eALS)优化MF模型,并提出将所有缺失的数据视作负例子。

(5) MLP[14]:该方法利用深度神经网络进行推荐并且取得了很好的性能。

(6) FISM[1]:该方法将条目相似矩阵通过两个低维潜在因子矩阵的乘积来学习,并提出使用结构方程建模方法学习低维潜在因子矩阵。这是一个最先进的基于条目的CF模型。

(7) NAIS[2]:该方法通过在FISM模型中加入注意力网络以区分不用历史条目对目标条目的差异化贡献,从而获得最先进的性能。

4.4 实现细节

在文中没有特别提及时,本文使用以下默认设置报 告D I A N 的 性能: β=γ=0.8,α =0.5,λ =0,d=e=a=16,学习率是0.01,以及使用FISM嵌入进行预训练。在实验中 β,γ是平滑指数,d是式(9)中的缩放因子,e和a被设置为一样的值,它们分别表示嵌入尺寸和注意力因子。λ表示正则化系数,对于每种方法,本文首先训练它而不进行正则化(λ设为0);如果观察到过拟合(即训练损失持续减少,但性能变差),则在[10–8, 10–7, ···,1]范围内微调λ。本文使用Tensorflow软件实现SAIS和DIAN模型,并且对于每个正例子随机抽取5个负例子去优化式(16)。

4.5 双归一化自注意力网络的有效性

图4显示了测试阶段各种方法的性能,从中可以观察到一些现象。(1) SAIS的性能优于FISM,说明了双归一化自注意力网络的有效性。由于SAIS关注的是符合用户主要兴趣的目标条目,而NAIS关注的是与用户历史条目相似的目标条目,后者范围明显比前者大,因此SAIS性能劣于NAIS是意料之中的。(2) 本文提出的DIAN显著优于NAIS和SAIS,说明了同时考虑用户档案中的历史条目对目标条目贡献的差异性以及这些条目之间的潜在联系很有意义。

图 4 测试每一种模型(FISM, NAIS, SAIS, DIAN)在不同数据集的性能Fig.4 Testing Performance of FISM, NAIS, SAIS and DIAN on different datasets

4.6 预训练策略的有效性

为了评估预训练策略的有效性,本文在表1中总结了有无预训练的SAIS和DIAN的性能,可以看到一些结论。(1) 对于4种模型,使用FISM嵌入的预训练策略性能均有显著提高。除了性能改进以外,模型参数的初始化可以避免SGD优化模型陷入局部性能最小值,并使模型快速收敛。(2) DIAN在进行或不进行预训练的情况下都比其他方法的性能好。特别是在MovieLens数据集上,在没有进行预训练的情况下,DIAN的性能也优于其他进行预训练的模型,作者认为这得益于同时注意历史项、目标项和历史项、目标用户的差异化关系。

表 1 每一种方法有无预训练的性能Table 1 Performance of the approaches with or without pre-training %

4.7 性能比较

本文在表2中报告了2个基准数据集上几种先进推荐算法的性能。从表2中可得出以下结论。(1) 具有注意力机制的方法(SAIS,NAIS和DIAN)具有更好的性能,这得益于注意力能够区分条目的差异化贡献。(2) DIAN在2个数据集上均获得了最高的HR和NDCG分数,并且与其他方法相比有了显著改进(其中,相对于最先进的NAIS在2个数据集上分别平均提升了1.83%),从而证明了DIAN的提出很有意义和价值。(3) 在基线方法之间,基于用户的CF模型(MF,MLP)和基于条目的CF模型(FISM)之间没有明显的优胜者。具体而言,在Pinterest数据集上,FISM的性能优于基于用户的CF模型,而在MovieLens数据集上,基于用户的CF模型的性能优于FISM。这表明基于用户的协同过滤也具有不可忽视的优势,基于用户和基于条目的CF的结合或者在基于用户的CF中引入注意力机制将是本文作者未来研究探讨的方向。

表 2 比较几种最先进推荐算法的推荐准确性Table 2 Recommendation accuracy scores of compared methods %

4.8 超参数的影响

DIAN模型具有2个超参数,包括NAIS的平滑指数β和SAIS的平滑指数γ。2个参数的影响如图5所示,从中可以看出SAIS和NAIS在数据集上有相似的表现。如 果 将β 和γ 设 置 为1,则 意 味 着 使 用 标 准softmax函数对注意力权重进行归一化,性能会急剧下降。作者认为原因是不同用户历史交互项的数量差异很大,这与参考文献[2]的发现是一致的。

图6显示了负实例采样率对DIAN模型的影响,从图中可以清楚地看到,每个正实例只有一个负采样不足以实现良好的性能,对负实例进行更多的采样非常重要。对于这2个数据集,DIAN模型的每个正实例采样的负实例的最佳数量约为5个。

此外,嵌入尺寸的大小对性能的影响见表3。从表3中可以看出在所有情况下,本文提出的DIAN模型都实现了最佳的性能。特别地,与NAIS不同,DIAN不受较小的嵌入尺寸的限制,并且在嵌入尺寸较小时具有良好的性能。在所有的结果中,DIAN相对于NAIS平均提升了1.9%以上,证明了双归一化自注意网络的有效性,能辅助DIAN从模型的输入中挖掘出更多的隐藏信息。

5 结论

本文将自注意力网络引入基于条目的CF的推荐系统中并对标准的自注意力网络进行改进,提出了更适用于推荐系统的双归一化自注意力网络。在此基础上还提出了一个双向条目注意网络(DIAN),它通过考虑用户的历史条目分别对目标条目和用户兴趣的差异化贡献来建模用户的个性化兴趣表示。在2个真实数据集上进行的大量实验证明了DIAN模型的有效性,且证明了该模型具有良好的竞争力。

这项工作侧重于仅基于条目建模条目的关系,但基于用户的协同过滤确实能发现许多条目的隐藏关系。将来,作者计划在2个方面改进DIAN。一是,尝试把用户邻居信息输入到模型中;二是,探索对抗性的个性化排名学习,以研究可能的性能改进。

图 5 NAIS的平滑指数β和SAIS的平滑指数γ对模型性能的影响Fig.5 Impact of smoothing exponent β in NAIS and smoothing exponent γ in SAIS

图 6 每个正实例采样的负实例的个数影响Fig.6 Performance of DIAN model for the number of negative instances per positive instance

表 3 嵌入尺寸对模型性能的影响Table 3 Impact of embedding size on the performance %

猜你喜欢
条目注意力性能
让注意力“飞”回来
提供将近80 Gbps的带宽性能 DisplayPort 2.0正式发布
《词诠》互见条目述略
Can we treat neurodegenerative diseases by preventing an age-related decline in microRNA expression?
“扬眼”APP:让注意力“变现”
A Beautiful Way Of Looking At Things
Al-Se双元置换的基于LGPS的thio-LISICON的制备与性能表征
强韧化PBT/PC共混物的制备与性能
RDX/POLY(BAMO-AMMO)基发射药的热分解与燃烧性能
对县级二轮修志采用结构体式的思考