邱 叶,邵雄凯,高 榕,王春枝,李 晶
1.湖北工业大学 计算机学院,武汉 430068
2.武汉大学 计算机学院,武汉 430072
随着信息时代的不断发展,人们获取信息的数量也不断增长。如何在呈几何式增长的数据里找到所需要的数据,推荐系统为此提供了一种可能的解决方案,利用用户的历史数据进行个性化推荐[1],节约时间成本的同时也更加符合当今时代的需求。事实上,如果用户通过推荐获取了感兴趣的内容,即为推荐模型增添数据,利于企业更加精准刻画用户画像,进而实现更精确的推荐。
但是,不断发展的推荐系统同样面临着数据稀疏的难题。网络时代使人们的生活方式从线下转向线上,社交关系不断发展。迅速增长的社交数据在一定程度上为解决数据稀疏问题提供了可能。近年来,社会化推荐成为学者们趋之若鹜的研究热点,层出不穷的算法和实验结果都充分彰显了社会化推荐的有效性及其所具有的现实意义。
尽管研究者们在此方面开展了许多工作[2-3],但仍有以下问题尚未解决:
(1)在采用用户信息和辅助信息进行推荐建模时,由于数据来源不同,所表达的信息不同,导致两者不能很好地融合。尤其在社会化推荐中,因为数据异构而不能很好融合,从而降低了用户偏好推荐的准确性[4-6]。
(2)先前的研究将不同朋友在不同方面的影响都一视同仁地看待。在现实场景中,用户与不同朋友拥有不同相似兴趣。如图1所示,用户B有两个朋友,B与A同时喜欢打排球,与C同样偏好唱歌。显然,在进行室外活动时,B更考虑A的建议;进行室内活动时更考虑C的建议,且唱歌和打排球给予用户的影响程度不同。对此Chen等人[7]提出SAMN算法,旨在利用注意力机制来解决问题。然而普通注意力仅考虑朋友重要性,忽视了在不同方面朋友影响的重要性,例如在用户对于进行室内或室外活动举棋不定时,由于C在唱歌方面对用户B的影响更大,B更可能进行室内活动。
图1 用户与朋友兴趣偏好Fig.1 Preferences of user and friends.
因而,本文提出了一种新的推荐算法——MAGN(multi-head attention gated neural network),即基于多头注意力门控神经网络的社会化推荐算法。首先,利用门控神经网络对输入的用户和朋友用户对做融合,获得丰富的交互嵌入表示。将得到的融合嵌入通过注意力记忆网络,获得朋友在不同方面对于用户的影响。其次,采用多头注意力机制来调节朋友之间的影响力大小。最后,基于用户本身的兴趣爱好,利用门控网络融合朋友影响,得到综合用户兴趣表示。在公开数据集的实验表明,本文提出的方法优于主流先进的社会化推荐算法。
本文研究工作的贡献如下:
(1)为了在考虑用户本身兴趣的基础上更好融合其社交影响,更好模拟了现实场景,本文采用门控网络来建模用户与朋友之间的复杂交互关系及其非线性交互关系。
(2)为了在进行社会化推荐全面考虑朋友影响,本文利用多头注意力机制,不仅突出了不同朋友对于最终推荐结果的影响,也深层次彰显了在某一方面给出重要建议朋友对于最终推荐结果的重要影响。
(3)在两个真实数据集上的实验表明,本文的方法优于主流先进的社会化推荐算法。
在这个部分将回顾与多头注意力门控神经网络社会化推荐相关的发展情况。分为两个部分:注意力机制与社会化推荐,基于融合策略的推荐算法。
由于网络交流方式的兴起,线上社交成为了人们生活中不可或缺的一部分,从而给推荐系统的发展带来了新思路。而随着文献[8]的发表,研究者们开始考虑利用注意力机制来对现有相关社会化推荐算法进行改善,并进行了卓有成效的研究工作[9],验证了注意力机制在各种社会化推荐任务中的良好效果。
Pei等人[10]考虑到现有推荐假设用户项目交互历史中所有时间步都与推荐具有同等相关性,在真实场景中并不适用,同时许多研究都是对用户和项目分别进行动态建模,而没有考虑两者交互的影响。因而提出交互注意门控递归网络,采用注意力机制来度量时间步的相关性。柴玉梅等人[11]发现现有研究都局限地处理项目评分与评论,忽略了评论文本所蕴含的信息,从而提出基于双注意力机制和迁移学习的跨领域推荐模型。通过将注意力机制添加到词的上下文关系中,来提升对文本中重点信息的关注度。Ji等人[12]考虑到原本的转换器中,自注意力部分是一个没有关系偏好的方法,导致先前的工作在采用转换器来解决问题的时候有所限制。基于此他们提出为转换器中自注意力里的值添加一个潜在空间,并利用这个潜在空间,从推荐任务的关系中对上下文进行建模。Tay等人[13]提出潜在度量学习算法来学习用户和项目之间的自适应关系向量,通过尝试在每个交互对之间找到最优的转换向量,来对隐式数据进行协同过滤和排序。
近几年,深度学习在计算机视觉、语音识别和自然语言处理等许多领域取得了巨大的成功。一些研究人员还尝试利用不同的神经网络结构来提高推荐性能。Lu等人[14]为了融合丰富的异构信息,在社会化影响注意力神经网络中设计了注意力特征聚合器,学习节点级和类型级上的用户和项目表示。同时,利用一个社会影响耦合器来获取朋友推荐的影响。吴宾等人[15]考虑社会化推荐中物品之间的关联关系,提出了一种度量物品关系关联程度的方法,融合关联关系以及社会关系,构建了联合正则化的矩阵分解推荐模型。Ma等人[16]考虑到现如今推荐系统依然存在的数据稀疏问题,以及混合异构数据的困难,提出了一种门控式自动编码器算法,该算法能够通过一种神经门控结构来学习物品内容和二进制等级的融合隐藏表示。基于融合表示形式,算法利用项目之间的相邻关系来帮助推断用户的偏好。Xia等人[17]提出了一种混合式深度协同过滤算法来同时学习评分和评论特征,其中两个嵌入层用于学习用户和项目的特征,两个基于注意力的门控循环网络从用户和商品评论中学习上下文感知。
本文提出的MAGN算法在如下几个方面与前人的研究工作[10-17]有很大不同。首先,文献[10-13]的工作仅仅将普通注意力机制应用在基于机器学习方法实现推荐建模的过程中,从而突显用户及各种辅助信息等对最终推荐结果的影响。但是,少有工作研究利用更加多头注意力机制建模探索用户及各种辅助信息在社会化推荐建模中对于推荐结果的深层次影响。其次,文献[14-17]基于异构数据融合的艰巨性,提出了几种简单的融合策略,缺乏建模推荐过程用户及朋友的深层次的复杂交互关系以及非线性交互关系。相对比,本文提出的MAGN算法是一个基于门控网络和多头注意力机制的社会化推荐算法。与上述方法存在如下不同:(1)本文采用多头注意力机制而不是普通注意力机制,实现了更加全面且多方面建模不同朋友的重要程度,有效减少了不同朋友对于最终社会化推荐结果的影响偏差;(2)本文在社会化推荐建模融合过程中采用了少有的门控神经网络,利用门控神经网络具有的深层次非线性网络结构,及其强大的学习数据本质特征的能力,获取了用户和朋友的深层特征表示,成功实现了用户及其朋友之间的复杂交互及其非线性交互的建模。
在这个部分将详细介绍所提出的多头注意力门控神经网络(MAGN)算法。算法的目标是基于用户社交关系和隐式反馈来做推荐。对于给定的输入:用户表示,项目表示和用户朋友关系,将输出一个带有来自不同朋友在不同方面影响的用户兴趣特征表示。总体分为三个部分:注意力记忆网络部分,将用户和用户朋友对进行处理得到用户及其朋友之间的偏好关系,即用户与其朋友在哪一个部分具有相似的偏好;多头注意力部分,在基于得到的与朋友在不同方面的偏好,得出各个不同朋友的重要程度从而计算出带有不同朋友影响的特征表示。最后,根据得到的不同朋友在不同方面的影响,尤其考虑到权重更大的朋友对用户的影响,将朋友影响向量和用户自身所具有的兴趣点进行融合,得到总体的用户特征表示。结构图如图2所示。其中多头注意力将在2.3节中展示详细图示。
图2 多头注意力门控神经网络算法Fig.2 Multi-head attention gated neural network algorithms
对于给定的用户和用户朋友对,首先要获得其嵌入表示。在此算法中,采用如下公式(1)、(2)得到融合特征向量,得到更好的特征表达。
其中,tanh为激活函数,w1和w2、bias分别为门控网络的权重参数和偏置,ui和u(i,l)表示用户及用户朋友对。利用门控网络将用户嵌入和用户朋友嵌入做特征融合得到融合嵌入向量表示s。
用户与社会关系中的朋友各自有其兴趣爱好,并在大多数情况下,用户拥有多方面的兴趣,与其朋友只是在某些方面拥有相同的偏好。然而,在现实场景中,并不能确定用户和朋友的相似兴趣方面,即用户朋友对之间的关系并不能反映出用户和朋友是在哪一方面具有共同的兴趣。对此,本文采用了文献[9,18]中基于注意力的记忆模块,来学习用户及其朋友之间的关系向量。模块的记忆矩阵记为M,其中d为用户和项目嵌入的维度,n为记忆片的大小。在记忆矩阵M里,把每一个记忆片记为Mj。在这一模块中对于输入的用户和朋友嵌入,输出能够代表用户和朋友共同兴趣偏好的向量。
在得到融合嵌入向量s后,从注意力权重矩阵K中学习注意力向量。注意向量a的每个元素被定义为:
其中,Ki∈Rd。然后,使用softmax函数对a进行归一化,得到最终的结果:
朋友嵌入u(i,l)首先经由记忆矩阵M扩展到矩阵:
式中,⊙表示向量的元素积。矩阵F表示不同潜在方面中的朋友偏好。
最后,为了生成朋友向量表示,使用注意力分数来计算F的加权表示:
输出是一个特定的关系向量f(i,l),可以看作是用户i的第l个朋友对此用户偏好的影响向量。设f(i,1),f(i,2),…,f(i,l)为注意力记忆模块生成的用户i的朋友关系向量。
注意力机制被广泛应用于各个领域,在计算机视觉、机器翻译和推荐系统均获得了令人满意的成果。
而对于每一个用户,此部分致力于获得与其相关性最高或联系紧密能给予用户更高影响的朋友,并输出在不同方面对用户更有影响的几个朋友向量。给定输入为朋友对用户的影响f(i,l),普通注意力机制即为朋友分配不同权重,且当用户使用不同交互方式进行交互时权重会发生变化。
然而在真实场景中,用户并非将每一朋友建议都同等对待,与用户关系更加亲密,或者在某方面更加专业的朋友显然能给予用户更精准的建议。因而,采用多头注意力极大满足了用户对朋友建议的有所侧重。因此,本文利用多头注意力机制从目标对象中选择多个信息,考虑输入信息的不同部分来获得在不同方面对用户的重要程度。结构图如图3所示。
图3 多头注意力Fig.3 Multi-head attention
对于每一个用户(Query),将其与从上层得到的输入朋友向量(Key)进行比较,得到不同朋友的分数,公式如下:
在本文中将K和V设为同一个变量f(i,l),表示需要计算的是朋友对用户的影响。
多头注意操作将业务嵌入f(i,l)作为输入并将其馈送到不同的头注意层,其结果被进一步连接为最终输出:
每个融合嵌入f(i,l)是通过比较权重得出的朋友重要性,权重越大代表此朋友对于用户的影响就越大。
利用从上述两个模块中获得的朋友影响向量,将此向量与用户本身兴趣相融合,得到用户综合兴趣偏好。受长短时记忆网络中门控机制的影响,门控G和最终得到的用户在受不同朋友的不同方面影响之下的综合兴趣Ii的计算公式为:
其中T(i,l)、w1、w2分别表示朋友影响向量以及门控层中的权重参数。
基于矩阵分解技术本文的最终预测部分,评级预测和建模隐式反馈的公式如下:
其中,Rij是对各个项目的预测分数。而本文旨在研究隐式反馈,为此,本文利用BPR标准成对学习目标,对于每个正用户项目对(表示用户对当前项目表示明显喜好)<ui,vj>,从用户未观察到的项目中随机抽取一个负样本(即用户对该项目并未展现喜好),记为vk,损失函数如下:
其中,σ(x)=1/(1+exp(-x))是逻辑sigmoid函数,D表示成对训练实例的集合,同时用它控制正规化的强度。在本文中,考虑小批量Adagrad[19]可以自适应学习速率,因而使用作为优化器。
在这个部分,基于两个公开数据集进行实验,分别为Delicious[20]和Epinions[21]。Delicious(https://grouplens.org/datasets/hetrec-2011/)是一个社交书签网络,允许用户查看和共享其他用户的书签信息。数据集约有两千个用户数据,包括社交网络、资源消耗(网页书签和音乐艺术家收听)和标签信息,在本文中仅仅使用社交网络和资源消耗(即用户书签)信息。Epinions(http://alchemy.cs.washington.edu/data/epinions/)是一个提供项目评估和评论服务的在线社交网络,可将其他用户添加到自己的信任列表,表示对此用户的评分和评论的认可。该数据集包含用户给予项目的评分列表,以及用户与信任用户之间的社交关系。对于数据预处理,本文将去除所有少于五个评分的项目,并将用户评分小于4的用户评分设为0,将用户评分大于等于4的用户评分设为1(作为隐式反馈)。表1给出了数据集的统计详细信息。
表1 数据集统计Table 1 Dataset statistics
为评估所使用算法的性能,本文选择两种在推荐中经常使用的评估指标——Recall@K(召回率)和NDCG@K(归一化折损累计增益),其中K为推荐列表的长度。其计算公式为:
其中,relj表示在推荐列表中排名j的项目是否在测试集中,表示用户u在测试集中评分的项目数。IDCG表示通过理想排名获得的最大DCG。在本文实验中,对于Recall@K和NDCG@K,设置K=10,20,50来评估算法性能。
为了证明所提算法的有效性,从多个角度对本文提出的算法进行测试。
(1)与主流先进算法进行对比,验证本文所提出算法的高效性与先进性;(2)与注意力机制进行对比,验证采用的多头注意力机制的有效性;(3)潜在维度因子分析,基于不同潜在维度因子测试不同情况下的有效维度,验证本文提出算法的鲁棒性。
首先,选定四个近几年提出的社会化推荐算法进行对比:
(1)NFM[22]。这是最近提出的神经分解机,它是最先进的深度学习方法之一,使用双向交互层将功能和历史反馈信息集成在一起。在本文中,通过将用户社交关系设为特征,将优化功能更改为BPR以适应本文的任务。
(2)NCF[23]。一个最近提出的基于深度学习的最新框架,该框架结合了矩阵分解(MF)和多层感知模型(MLP)进行项目排行。
(3)SNCF。通过调整NCF[22]来模拟社交关系,将用户好友插入到输入的特征向量中,并利用特征向量和用户id进行连接,将此改进模型称为SNCF。
(4)SAMN[7]。是一种最新的深度学习方法,利用注意力机制为社会化感知推荐建模方面和朋友级别的差异。
其次,将无注意力、自注意力[14]以及多头注意力机制进行对比,验证本文采用的多头注意力的有效性。最后,本文测试了在不同潜在维度下对于此算法的影响,验证了本文所采用的潜在维度所展现的算法鲁棒性。
按照70%、20%、10%的概率随机将数据集分为训练集、验证集和测试集。其中验证集用来调整超参数,通过训练集得出预测数据与测试集比对得到最终结果。算法的学习率均在[0.01,0.05,0.1]之间调整,批次大小在[64,128,256]之间调整,隐含层皆在[16,32,64,128,256]之间调整,记忆片在[8,16,32,64]之间调整,多头数量在[4,8,16,32]之间调整。
3.4.1 主流先进算法对比分析
在两个数据集上所有对比算法的实验结果如图4和5所示。由两个评估指标Recall和NDCG的实验结果,本文可以得出:
图4 基于Delicious数据集MAGN与其他主流先进算法对比Fig.4 Comparison between MAGN and other mainstreamadvanced algorithms based on Delicious dataset
(1)在两个数据集上,NFM、SNCF、SAMN及MAGN算法效果比NCF良好,可见社交关系信息对于推荐的有效影响。
(2)在基于社会化推荐的算法中,SAMN效果比NFM及SNCF算法表现更好,则表明在社会化推荐中,仅考虑单纯的社交关系信息还远远不够,更需考虑丰富的社交关系对用户带来的影响。
(3)MAGN比SAMN效果更加显著,这意味着在考虑用户和项目的特征融合时,利用门控神经网络能达到更好效果。且显而易见的,在社交影响基础上,采纳更重要的朋友,并考虑不同方面影响的方法获得了更大的进步。
(4)在两个数据集上,本文提出的基于注意力门控神经网络的社会化推荐算法的性能优于其他对比算法,验证了本文提出算法的有效性。
(5)在所有的评价指标上,所有对比算法在Delicious数据集上的效果比Epinions数据集效果要好。这是由于相对于Delicious数据集,Epinions数据集更加稀疏。
3.4.2 注意力机制对比分析
为了验证有无注意力机制以及不同注意力机制对算法带来的不同影响,本文进行了实验与对比分析。实验结果如图6、7所示,其中None指代无注意力机制,Self指代自注意力机制,Multi-head指代多头注意力机制。
图5 基于Epinions数据集MAGN与其他主流先进算法对比Fig.5 Comparison between MAGN and other mainstream advanced algorithms based on Epinions dataset
图6 基于Delicious数据集的不同注意力对比Fig.6 Comparison of different attention based on Delicious dataset
图7 基于Epinions数据集的不同注意力对比Fig.7 Comparison of different attention based on Epinions dataset
首先,在两个数据集中,MAGN都表现出更良好的性能。且无注意力会比自注意力机制效果稍好,一种可能的解释是,自注意力的网络结构反而导致了过拟合,以至于效果表现欠佳。多头注意力比自注意力效果更好也验证了上述所提,对用户进行推荐时,着重考虑在不同方面朋友对用户的影响,而非考虑朋友之间的相互影响更加合适的想法。最后,多头注意力对于无注意力并未展现明显差距,一种可能的解释是,类似于自注意力机制,多头注意力的网络结构同样会产生过拟合。
3.4.3 潜在维度分析
潜在维度的变化同样对实验结果存在一定程度的影响,对此进行对比分析,观察不同潜在维度对于算法的适应性。实验结果如图8所示。
图8 基于Delicious和Epinions数据集的MAGN算法潜在维度分析Fig.8 Analysis of potential dimensions of MAGN algorithms based on Delicious and Epinions datasets
由实验结果可得,维度越大时,效果也愈加明显,而相对的,在增大潜在维度时,会增加对于内存的使用率和运算时间。更为明显的是,在潜在维度增加到一定程度时,算法的效果提升会趋于平稳。因而可见本文所采用的潜在维度256是综合考虑之后的最好选择。
社交信息为提高推荐系统的精确度做了一个非常好的铺垫。因而,本文充分利用了这一优势,基于用户可能会考虑不同朋友的意见,并受到不同程度影响的现实情况,首先考虑用户拥有一定影响的朋友数目,在此基础上利用多头注意力更加全面考虑朋友在不同方面给用户带来的影响力,深层次地突出了相关重要朋友在某一个方面的重要影响。同时,利用门控网络进行融合,提高了最终推荐的准确率。而在两个真实数据集上的实验则验证了本文所提出的算法优于主流先进社会化推荐算法。在将来,本文将进一步考虑如何基于图模型更加精确地得到朋友对用户的影响,并不断提升当前算法的可解释性。