用于下一项推荐的序列感知深度网络

2020-07-13 04:33:46赵串串游进国李晓武
小型微型计算机系统 2020年7期
关键词:集上注意力神经网络

赵串串,游进国,2,李晓武

1(昆明理工大学 信息工程与自动化学院,昆明 650500) 2(云南省计算机应用重点实验室,昆明 650500)

1 引 言

随着万维网的发展,人们的购买习惯逐渐从大街上的实体店转向互联网,例如淘宝、京东、亚马逊等在线购物平台.然而在线购物平台存在着一个显著的问题,项目的数量对用户来说可能是巨大的,用户难以寻找自身感兴趣的项目.推荐系统的引入,能有效的解决信息过载问题.

如今,推荐系统在现实世界的业务中发挥着重要作用,预测用户的下一次交互是实现个性化推荐的核心[1].在各种各样的领域中,存在大量的历史交互数据,例如点击日志,购买历史,浏览等,这些数据多年来实现了许多高效的推荐系统.然而,大多数现有的推荐系统理论都面临着各种问题[2],例如倾向于重复推荐与用户可能已经购买的项目类似的项目[3].实际上,用户可能更喜欢新颖且与已有的物品更相关的物品.

如图1所示,用户按照先后顺序把 “牛奶,苹果,香蕉,牛油果”加入购物车中,然后又把“面包”也加入了购物车.最后,用户按照“牛奶,苹果,香蕉,牛油果,面包”顺序下单成功.如果是用现有的基于上下文的推荐方法,就会把前面加入的“牛奶,苹果,香蕉,牛油果”四个项目当作是上下文,则用户最后又加入购物车的“面包”看作是系统推荐的那个目标项目.如果是这样的话,系统就会把用户最近加入购物车的(苹果,香蕉,牛油果)看的很重要,根据这三个项目,很可能推荐给用户的项目是“蔬菜”类,如“绿色沙拉”.但是,最后的订单显示用户把“面包”作为最后的选择,因为选择“面包”可能是取决于用户加入购物车的第一个项目(牛奶).从这个情况来看,一个好的推荐系统就应该对那些与目标项目(面包)更相关的项目(牛奶)加以重视,而不应该过于关注最新添加的、不太相关的项目“苹果,香蕉,牛油果”.

图1 序列推荐示例

上述实例表明,部分之前购买的项目中存在对下一项推荐影响甚微的项目,因此建模历史项目的不同相关性是至关重要的.然而,现有的推荐方法并没有做到既考虑项目序列,又考虑每个项目对下一个项目的重要性,并不能充分挖掘项目序列和项目对于交互的下一个项目影响的重要性.例如,采用马尔可夫链[4]来模拟用户行为序列,它假设下一个动作仅以前一个动作(或前几个动作)为条件,并已成功用于表征短程项目转换以进行推荐.因此,推荐给用户的项目列表仅仅只是利用了项目序列,并没有发现项目序列中的项目彼此之间的影响.为了解决上述问题,本文基于自注意力机制提出一种序列感知深度网络(SeqaDN),并将自注意力机制与深度双向循环神经网络结合到项目推荐中.由于自注意力机制的引入,所提出的模型能够更多地关注更相关的项目,而更少关注不太相关的项目.因此,SeqaDN更有效,更健壮,可以预测具有较少约束的序列中的下一个项目.

2 相关工作

2.1 一般的推荐系统

推荐系统专注于基于历史反馈对用户和项目之间的兼容性建模.用户反馈可以是显式的(例如评分)或隐式的(例如点击,购买,评论).由于解释“未观察到的”(例如,未购买的)数据的模糊性,对隐式反馈进行建模可能具有挑战性.

文献[5]考虑到用户之间都具有相互的影响力且拥有共同评分的用户更相似,利用Cloud-model来计算用户在评分上的相似性,根据相似性值得到与目标用户相似的N个最近邻,然后利用矩阵分解模型进行评分预测.但是文献[5]未考虑到用户之间的影响力不是永久的,其是具有时效性的,且评分矩阵也具有稀疏性,降低了推荐效果.基于矩阵分解的方法[6]将从当前项目到下一项目的转移概率矩阵分解为潜在因子.然而,由于现实世界中的幂律分布数据,矩阵分解很容易受到稀疏性问题的困扰.此外,另一项工作是基于项目相似性模型,并没有明确地为每个用户建模潜在因素(例如FISM[7]).以上方法学习项目到项目的相似性矩阵,并通过测量用户之前与之交互的项目的相似性来估计用户对项目的偏好.

2.2 序列推荐

为了对用户的个体和序列信息进行联合建模,传统的推荐方法引入了马尔可夫链.文献[4]结合因子分解方法模拟用户一般的偏好,结合马尔可夫链以挖掘用户序列模式.基于文献[4],研究人员使用了不同的方法来提取这两种不同的用户偏好.文献[8]使用度量嵌入将项目投射到低维欧氏空间中的点上,用于播放列表预测和连续位置推荐.文献[9]利用词嵌入从项目-项目的共现中提取信息,提高矩阵分解性能.除了基于马尔可夫链的方法,另一项工作采用循环神经网络来模拟用户交互的项目序列[10-12].例如,GRU4Rec[9]使用门控循环单元来模拟基于会话的点击序列推荐.文献[12]中,冯永等人提出了一种MN-HDRM推荐模型,作者首先是通过RNN学习出了用户在某一个短时期内的兴趣变化,同时利用FNN来学习目标用户长时期内的稳定兴趣,最后融合两种网络构建了一种长短兴趣多神经网络混合动态推荐模型,并取得了相对优越的性能.

由于不同项目的权重是固定的,好的推荐方法应当有效地加权上下文中的项目,即更多地关注那些相关项目.这种注意区别非常重要,特别是对于长期交互,这些交互通常包含许多与下一个选择无关的项目,现有方法在捕获高级用户-项目交互方面的能力有限.

2.3 基于Attention机制的推荐

研究者已经证明了注意机制可以在各种任务中起到高效的作用,如图像字幕和机器翻译等.Attention机制的主要思想:根据序列而输出的每个结果都依赖于模型对输入序列中与实际结果“相关”部分的关注,而且基于注意力的方法通常更易于理解.

注意机制已经被应用到了推荐系统,例如,Attentional Factorization Machines(AFM)[13]了解了每个特征交互对于内容感知推荐的重要性.最近,纯粹基于注意力的Seq2Seq方法Transfomer[14]在机器翻译任务上实现了较好的性能和效率,这些任务以前一直由基于RNN/CNN的方法主导.Transformer模型在很大程度上依赖于Self-Attention模块来捕获句子中的复杂结构,并检索相关单词(在源语言中)以生成下一个单词(在目标语言中).受Transformer的启发,本文寻求基于Self-Attention方法来构建一种序列感知的下一项推荐模型.

3 序列感知深度网络

本文提出的一种序列感知深度网络(SeqaDN),分别从项目嵌入、序列感知自注意力神经网络和基于深度双向循环神经网络(Dbi-LSTM)的用户偏好学习展开.

3.1 SeqaDN框架

SeqaDN的框架如图2所示,SeqaDN将用户实际交互的下一个项目和其点击的项目序列作为输入.对于每个项目,使用Item2vec[15]来处理并生成项目的嵌入向量.Item2vec是自然语言处理领域中的Word2vec的扩展,允许灵活地将项目本身的ID作为输入并捕获项目之间的相似性.然后使用自注意力神经网络学习历史项目对下一个项目的不同影响权重,最后使用深度神经网络学习用户的偏好,生成偏好向量.

图2 SeqaDN框架的图示

3.2 项目嵌入

Item2vec是Skip-gram与负抽样的重要扩展之一,用于为基于项目的协同过滤推荐产生项目嵌入.类比于词向量模型,本文将每个项目看作是一个单词,用户已经交互的项目序列看作是一个句子,拥有共同上下文的项目嵌入离得更近.

给定所有用户交互的项目集H=(U1,U2,U3,…,Um),其中Ui表示用户i交互的项目序列Ui={I1,I2,I3,…,In},项目嵌入的目的是为每个项目生成低维的项目向量.本文采用Item2vec为项目生成嵌入向量.

给定一个用户交互序列集合,Skip-gram的目标是最大化以下目标函数:

(1)

其中,L是交互序列长度,p(Ij|Ii)为softmax函数:

(2)

其中,σ(x)是一个常用的Sigmoid激活函数,N是正样本中负样本的个数.

3.3 序列感知自注意力神经网络

在顺序推荐系统中,长期偏好对应于用户的一般品味.由于用户的长期项目集通常随时间变化,因此学习用户长期项目对下一个项目的不同影响权重是有必要的.

注意力定义如下:

(3)

自注意力是注意力机制的一个特例,并已成功应用于各种任务.其通过将单个序列与自身匹配来细化表示.与基本注意力不同,自注意力可以不管序列中项目之间的距离如何,也可保持上下文序列信息并捕获序列中元素之间的关系.为了满足上述要求,本文使用自注意机制来计算给定用户的长期项目集中每个项目的重要性.

在本文的上下文中,Q=K=V,且用户u的历史交互记录表示为:

其中,矩阵每一行表示项目嵌入得到的d维项目,矩阵的行数n表示用户u的历史交互记录长度,本文中用户u的查询,键和值在时间步t处等于U′i.

本文通过使用共享参数的非线性变换将查询和键映射到同一空间.

Q′=ReLU(VjMQ)

(4)

K′=ReLU(VjMK)

(5)

(6)

本文保持V等于U′i不变,即:V′=U′i.因此,注意力模块的最终加权输出为:

Au=SuV′

(7)

3.4 基于深度双向循环神经网络的用户偏好学习

深度循环神经网络在NLP领域内性能表现良好,在NLP领域用的是深层门限循环网络,由于循环神经网络中的LSTM本身就是一种处理序列预测问题性能表现很好的模型,所以本文利用深度双向LSTM学习用户的偏好,并做出推荐.

一个好的推荐系统就要考虑到用户稳定的历史偏好信息,RNN是一个可以循环学习的网络,可以高效的学习用户的偏好.受到文献[16,17]的启发,本文采用改进的深度双向LSTM(即Dbi-LSTM),使得模型能够更好的利用前向和后向的上下文长期表示,以及深度循环神经网络可以更好地抽象表示用户的特征.

如图3所示是本文中所提出的偏好学习模型,一个具有两个隐藏层的网络Dbi-LSTM.该网络结构中,前一个时间步会产生一组参数,并把这组参数传递给在其后一个时间步(在同一个Bi-LSTM层中)的中间神经元,与此同时,中间神经元需要在时间步接收来自前一层Bi-LSTM隐藏层的两组相关参数;在模型中每一个隐藏层的输入序列从两个方向开始:从左到右、从右到左.

本文使用的Dbi-LSTM结构的关系式是通过将文献[17]中的前向传播和后向传播关系增加了层次的表示,如式(8)、式(9),其中在同一时间步t时,第i-1层Bi-LSTM的每个输出作为第i层每个中间神经元的输入.在训练模型过程中的每个时间步,通过连接所有输入参数在隐藏层传播过程中产生的结果作为最后隐藏层的输出P(式(10)).

(8)

(9)

(10)

图3 基于Dbi-LSTM的用户偏好学习模型

Au矩阵中的每一行表示项目的最终嵌入得到的n维向量.

将项目的最终嵌入Au作为该模型的输入,在模型训练过程中,本文中使用均方误差(Mean-Square Error,MSE)对模型进行训练,如式(11)所示,并使用Adagrad优化器对模型进行学习优化,使得模型能够很好学习每个用户的偏好,帮助本方法更好地理解和表示用户的长时期稳定偏好.

(11)

4 实验分析

4.1 实验环境及数据集

本实验环境:操作系统为Windows 10,编程语言为Python 3.6,深度学习框架为TensorFlow1.2.0.

本文使用来自电影领域MovieLens的两个数据集,即1M1和HetRec2011-MovieLens-2k2.MovieLens-1M是电影推荐中广泛使用的基准数据集,它包含MovieLens网站上71567位用户对10681部电影的大约100万个显式评分(范围从1到5),数据集中所选择的用户都是至少包含对20部电影进行评分的用户以及评分数据集中包含着用户交互的时间戳,数据集的稀疏度为4.46%.HetRec 2011是一系列用户喜好的数据,其中HetRec2011-MovieLens-2k(ML-HetRec)包含2113位用户对10197部电影855598个显式评分,数据集的稀疏度为4.01%.

根据推荐系统领域普通的数据划分方式,将数据集化分为训练集和测试集两个部分,随机地选取90%的数据用作训练集来完成整个算法模型的训练,利用剩余10%的数据作为测试集来衡量模型的实际性能.在训练模型的时候,本文将训练集中用户评分小于3的项目从交互序列中过滤,使得模型性能更优,更加贴切用户的偏好.

4.2 对比方法

为了验证本方法的有效性,本文选取了三种非序列推荐方法和两种序列推荐方法进行最对比.

·POP.此方法根据项目在系统中的受欢迎程度对项目进行排名,并向用户推荐最受欢迎的项目.

·BPRMF[18].Bayesian Personalized Ranking Matrix Factorization,是一种从隐式反馈中学习个性化排名的经典方法.其使用贝叶斯方法中的成对排序损失,利用隐式反馈优化潜在因子模型.

·MC[4].描述了一种序列推荐方法,其将基于相似性的方法与马尔可夫链融合.

·TransRec[19].该模型应用了将嵌入转换为序列推荐的思想.它将用户视为关系向量,并假设下一个项目由用户最近交互的项目加上用户关系向量确定.

·DBi-LSTM[20].该方法是仅仅基于循环神经网络进行序列推荐的方法,并使用双向LSTM作为模型,更好地学习用户的长期偏好.

4.3 评估标准

本文采用了三种评估指标,包括Hit@k,MRR@k,Recall@k来衡量所提出的方法的实际效用,本文将这两个的排名列表截断k均为50.

命中率(Hit Rate,Hit)是基于召回的度量,测量了推荐的准确性,能直观地衡量测试目标项目是否存在于列表的前k项中.Hit的定义为:

(12)

其中,GT表示测试集合中所有项目,NumberofHit@k表示用户的推荐列表中的项目与所有测试集中所有项目的交集.

1https://grouplens.org/datasets/movielens/1m/

2http://ir.ii.uam.es/hetrec2011

平均倒数排名(Mean Reciprocal Rank,MRR),目标用户实际交互的项目序列的下一个项目在推荐列表中倒数排名的平均值,如果高于k,则等级设置为零.MRR的定义为:

(13)

其中,|Q|是测试集中用户实际交互的项目个数,rankx是用户实际交互的项目在推荐列表的第x个位置.

Recall@k:本文中它是主要的评估指标,定义为目标用户实际交互序列的下一个项目出现在Top-k推荐列表中,即所有测试案例中Top-k项中具有所需项目的案例的比例.

4.4 实验结果与分析

通过在真实数据集上进行实验证明了本文所提出的模型具有一定的实际意义,本文将本方法与其他方法在两个MovieLens数据集上的实验结果进行了对比,实验结果如表1所示:

整体的模型性能:表1列出了两种推荐任务的不同方法的结果,可以观察到:

1)在非序列推荐方法中,BPRMF在两个数据集上性能表现良好,但在ML-HetRec数据集上的性能略差一些,因为这个数据集相对于ML-1M较为稀疏.总的来说,BPRMF整体性能是优于POP的,因为POP仅仅是利用了所有用户对项目的显式反馈的流行度进行推荐的,而显式反馈(如评分)存在较多的噪音数据,相反隐式反馈更能体现出用户对项目的喜好程度,BPRMF则是使用了贝叶斯方法中的成对排序损失,利用隐式反馈优化潜在因子模型来学习用户的偏好.

2)在序列推荐方法中,经典的基于马尔可夫链的模型(MC)在相对密集和稀疏数据上实现良好的性能.另一方面,TransRec似乎在两个数据集上与MC相比表现不佳.TransRec的一个重要假设是用户的下一个项目仅受其最新动作的影响.这种假设可能适用于稀疏数据,因为交互在时间上是非常离散的,但是当用户经常与系统交互时可能不成立.TransRec通过引入用户特定关系向量作为中介来在一定程度上克服了这个缺点.

3)最后,将本文提出的模型SeqaDN与以上对比方法进行比较.很明显,SeqaDN比这些方法更好,而且同样使用循环神经网络做序列推荐,但是,从表中可以看出:SeqaDN模型的整体性能比模型DBi-LSTM更优.SeqaDN具有项目序列和RNN的优点:项目序列可以捕获序列效应和用户的一般兴趣,而RNN则更能够准确表示顺序依赖性.同时,本文还添加了Self-Attention,其能够学习出每个项目对目标项目的不同影响权重,更加符合用户的兴趣偏好.我们的实验表明这三个方面对于改进序列推荐很重要.SeqaDN相对于所有基线的另一个潜在好处是推荐结果更加准确.

表1 在所有数据集上的命中率和MRR方面的性能比较

Table 1 Performance comparison of hit rate and MRR across all data sets

数据集评估标准POPBPRMFMCTransRecDBi-LSTMSeqaDNML-1MHit@500.14400.23780.34190.33580.32350.3719MRR@500.02310.03680.06540.05610.06700.0962ML-HetRecHit@500.10650.14620.19230.19120.26150.2654MRR@500.01770.02150.03590.03370.04020.0404

嵌入维度的影响:如图4所示,显示了在两个数据集上的Recall@50,同时保持其他超参数不变.从图4(a)中可以观察到:1)对于不同的数据集有不同的最佳嵌入维度,不同的推荐结果,因为数据集的稀疏度不一样;2)嵌入维度越大,推荐性能并没有提高,反而有所下降,可以看出较大的嵌入维度不一定会得到更好的模型性能,因为嵌入维度过大会导致过拟合现象.从图4(b)中可以观察到:在两个数据集上,SeqaDN的运行时间随着嵌入维度的增加而增加,这是由于输入SeqaDN模型的维度越高,需要训练的参数就越多,计算量就随之变大了,参数更新、模型寻优等都将耗费时间越长.

序列长度L的影响:如图5(a)所示,显示了在两个数据集上序列长度L的影响.可以观察到适当长度L对数据集的密度是有所依赖的,在相对密集的ML-1M数据集上,将L设置为更大的值对性能是有利的,但是,在相对较为稀疏的ML-HetRec数据集上L应该设置为比ML-1M更小的值是合理的.因为增加L将会导致训练样本减少,模型训练不佳.值得注意的是,Self-Attention能够处理远距离位置直接的依赖关系,理论上允许在非常冗长的序列上进行学习.如图5(b)所示,不管是在哪个数据集上的实验,模型训练时间与序列长度成正比,这是由于深度学习是一个参数优化,模型寻优的过程,随着模型输入的序列长度的增加,模型需要训练的数据就越多,模型需要优化的参数也随着变多,时间也就随之增加.

通过实验分析,SeqaDN模型训练出的推荐列表的点击率和平均倒数排名高于基线,验证了在做序列推荐时,序列上下文嵌入和注意力加权所有上下文项目的重要性.

5 结 论

为了有效地推荐项目序列上下文中用户可能交互的下一个项目,本文提出了一种序列感知深度网络(SeqaDN),将自注意力机制与深度双向循环神经网络结合到项目推荐中.SeqaDN是一种基于内容的推荐框架.其把用户已经交互的项目序列通过Item2vec进行上下文嵌入学习,这种上下文嵌入使得拥有共同用户的项目离得更近,并将自注意力机制加入到深度双向循环神经网络中区别学习每个项目对预测项目的不同影响权重,进而学习到用户的历史偏好向量.对现实世界交易数据的实证评估表明,SeqaDN在解决现有技术方法的差距方面具有显着的优势.在下一步工作中,本文将合并用户和项目方面信息以克服稀疏性问题.

猜你喜欢
集上注意力神经网络
让注意力“飞”回来
Cookie-Cutter集上的Gibbs测度
链完备偏序集上广义向量均衡问题解映射的保序性
神经网络抑制无线通信干扰探究
电子制作(2019年19期)2019-11-23 08:42:00
复扇形指标集上的分布混沌
“扬眼”APP:让注意力“变现”
传媒评论(2017年3期)2017-06-13 09:18:10
A Beautiful Way Of Looking At Things
基于神经网络的拉矫机控制模型建立
重型机械(2016年1期)2016-03-01 03:42:04
复数神经网络在基于WiFi的室内LBS应用
基于支持向量机回归和RBF神经网络的PID整定