APP下载

融合注意力LSTM的协同过滤推荐算法

2019-12-30夏鸿斌

中文信息学报 2019年12期
关键词:注意力向量辅助

罗 洋,夏鸿斌,2,刘 渊,2

(1. 江南大学 数字媒体学院,江苏 无锡 214122;2. 江苏省媒体设计与软件技术重点实验室,江苏 无锡 214122)

0 引言

随着互联网技术的不断发展,用户能获取到的信息成倍增长。当面临海量的信息时,用户很难找到想要的信息,这就造成了信息过载的问题。为解决这个问题,一个强而有效的个性化推荐就显得十分重要。传统的推荐方法可分为: 基于内容的推荐方法[1],根据用户过去喜欢的内容,为用户推荐与其过去喜欢的相似的内容;基于协同过滤的推荐方法[2-3],根据用户过去的历史行为和评级评分对用户进行推荐;混合推荐方法[4-5]则是将前面两者结合的方法。而基于矩阵的隐因子模型[6-7]在传统的协同过滤推荐方法中使用最为广泛。矩阵分解[8]是使用潜在特征向量表示用户和项目,将潜在特征向量投影到共享的潜在空间中,并利用潜在特征向量来补全评分矩阵。虽基于矩阵分解的推荐方法表现出较好的效果, 但仍存在数据 稀疏和冷启动问题。为了解决这些问题,Mnih[9]等提出概率矩阵分解,有效解决了评分数据的稀疏性问题。

近年来,将传统的推荐算法和深度学习相结合的方式逐渐受到研究者们的关注。Zhang[10]等介绍了深度学习与推荐系统相结合的研究现状和发展状况。由于深度学习具有很强的特征提取能力,因此越来越多的研究已经应用深度学习和辅助信息来产生有效的特征表示,从而提高推荐性能。附加的堆叠降噪自编码器(additional stacked denoising autoencoder,aSDAE)[11]擅长在没有文档的情况下提取用户和项目的潜在向量,该模型扩展了堆叠降噪自编码器,将辅助信息集成到输入中。Seo[12]等致力于利用卷积神经网络来提取用户和项目辅助信息的特征。近年来,基于注意力机制的神经网络在自然语言处理中受到广泛关注。Cheng[13]等提出了三种结合卷积神经网络和注意力机制的建模方式。Yin[14]在推荐系统中使用注意机制从用户短期的交互记录中学习用户近期的兴趣。Pal[15]等使用长短期记忆网络进行文本特征提取,但只关注了整个文本信息,却忽略了关键信息。Liu[16]等结合了附加堆叠降噪自编码器(aSDAE)[11]和基于卷积神经网络的矩阵分解(Convolutional Matrix Factorization,ConvMF)[17]用于特征提取,虽表现出了好的结果,但由于卷积层的输入文档包含了许多没有关键词的噪声信息,使得卷积层无法自动区分关键词,同时忽略了词的上下文关系和词的顺序,且存在无法捕捉序列信息的问题。

针对这些问题,在Liu[16]模型的基础上,结合辅助信息的aSDAE与基于注意力机制的长短期记忆网络(LSTM-Attention)来构建推荐模型(Auxiliary LSTM-Attention Matrix Factorization ,ALAMF)。首先,将评分数据与用户的辅助信息作为aSDAE的输入,用于提取用户的潜在向量。其次,Word2Vec词向量工具对项目的辅助信息进行预处理后输入到LSTM网络层,LSTM网络层对输入的信息进行特征提取,LSTM层之后再引入attention层提取更深层次特征并突出项目的关键信息,输出项目的潜在向量。最后,将用户和项目的潜在向量集成到概率矩阵中来预测用户评分。通过利用深度学习的深层特征表示,优化特征向量来提高推荐性能。

本文工作的主要贡献包括以下两点:

(1) 使用基于注意力机制的LSTM来增强特征提取能力,获取文档的上下文语义与关键词信息。

(2) 使用辅助信息和评级信息来缓解数据稀疏性问题,将LSTM-Attention与aSDAE集成到PMF框架中,并应用用户和项目的正则化参数来平衡评级信息和项目文档信息。

1 融合注意力LSTM的协同过滤推荐模型

1.1 ALAMF模型

融合辅助信息和注意力LSTM的概率矩阵分解模型结构如图1所示。辅助信息包括用户的辅助信息,例如,用户的年龄、职业、性别等;项目的辅助信息,例如,项目的类型、评论信息等。该模型分为三个部分: LSTM-Attention部分为注意力长短期记忆网络学习项目辅助信息的潜在特征向量矩阵V;aSDAE部分基于用户辅助信息的aSDAE学习用户的潜在特征向量矩阵U;PMF部分将用户和项目的潜在特征向量矩阵作为概率矩阵分解(Probabilistic Matrix Factorization, PMF)的输入,学习用户和项目的交互,最终进行预测评分。X和Y分别表示用户和项目的辅助信息,R为用户—项目评分矩阵,S为用户的评分信息,W+和W分别表示aSDAE与LSTM-Attention的权重参数。σ2为高斯正态分布的方差,K为潜在向量维度。

图1 ALAMF模型

1.1.1 概率矩阵分解

评分R、用户潜在向量U和项目潜在向量V的条件分布如式(1)所示。

其中,N(x|μ,σ2)是高斯正态分布概率密度函数,ui是用户i的潜在向量,vj是项目j的潜在向量,μ是高斯正态分布的均值。

1.1.2 长短期记忆网络

LSTM作为一种特殊的RNN神经网络,为了避免序列数据中的梯度消失和梯度爆炸问题,建立文本的长距离依赖关系。LSTM由输入门、遗忘门、输出门和一个cell单元组成。LSTM原理如下:

t时刻的输入为xt,上一时刻LSTM的输出为ht-1。

输入门计算决定是否将当前信息更新到cell单元中,如式(2)所示。

遗忘门决定保留信息或舍弃信息,实现存储,如式(3)所示。

候选cell单元,如式(4)所示。

记忆单元cell状态由ct-1和ccdt对it及ft调节所得,如式(5)所示。

其中,*表示两个矩阵元素点乘操作。

输出门决定记忆单元状态值的输出,如式(6)所示。

LSTM最后的隐层状态的输出如式(7)所示。

1.1.3 用户特征提取

图2 附加堆叠降噪自编码器结构

对于aSDAE模型的每层隐藏层l∈{1,...,L-1},第l层的隐藏表示hl如式(8)所示。

第L层输出表示如式(9)、式(10)所示。

L/2层的输出即为用户的潜在向量U,每个用户i输出的潜在向量如式(11)所示。

那么用户的潜在向量U的条件分布如式(13)所示。

1.1.4 项目特征提取

注意力长短期记忆网络(LSTM-Attention)从项目的文档辅助信息中获取潜在向量V。其中,在LSTM提取文本特征后引入attention层,为每个词向量分配相应的概率权重,进一步提取文本特征。LSTM-Attention的框架如图3所示。

图3 LSTM-Attention结构图

LSTM层LSTM网络接受上一层的输出,作为该层的输入。在t时刻输入到网络的句子序列xi1,xi2,...,xit根据t-1时刻的LSTM的cell状态ct-1和隐藏层的状态ht-1进行更新得到隐藏层输出hi。 在不同时刻LSTM对xi1,xi2,...,xit每个词输出对应的隐藏层的状态为hi1,hi2,...,hit∈Rn_hid,n_hid为LSTM隐藏层神经元个数,hit作为句子特征向量输入到下一层网络。因此采用这样的方式可以学习到单词与句子序列的上下文信息。文本信息的特征提取表示如式(14)所示。

Attention层将LSTM的输出作为输入,实现提取重要单词的特征信息,对每个单词创建上下文向量,再将上下文向量与单词特征向量加权求和,可以表示如式(15)所示。

(15)

其中,Ww是权重系数,bw为偏置系数,uw为随机初始化的attention矩阵,si表示特征向量。

整个注意力LSTM网络结构接受项目的原始文档作为输入,并输出每个项目的潜在向量,定义如式(16)所示。

(16)

其中,asdae表示提取用户的特征信息,W表示权重和偏置向量,Yj和vj分别表示项目j的原始文档和潜在向量,εj表示高斯噪音。

对于W中的每个权重参数wk,W和项目潜在向量V条件分布分别如式(17)所示。

1.2 ALAMF模型参数学习

本文采用Liu[16]模型的参数优化方法,使用最大后验估计来优化参数: 用户潜在向量参数U、LSTM-Attention提取的项目潜在向量参数V、权重W+和W等参数。

根据贝叶斯定理,对给定的输入x,输出为ck,可以得到最大后验估计如式(19)所示。

其中,分母对所有ck都是相同的,所以,

(20)

式(21)中给定的输入为: 用户对项目的评分R、用户的辅助信息X、项目的辅助信息Y。

U、V、W+、W、R相互独立,根据式(20)可以得到:

对式(21)取负对数,转化为:

其中,Ii,Ij是Iij的一个对角矩阵,i=1,2,...,N,j=1,2,...,M,假如用户i对项目j有评分,则Iij=1,否则为0。Ik∈Rk×k是单位矩阵,Rj是所有用户对于项目j的评分。注意到W+和W不能像U和V那样优化,因为W+、W和aSDAE与LSTM-Attention部分有关,当把U,V和W+(或W)看作一个常量c时,优化函数L可以被视为具有L2正则项的平方误差函数,如式(25)~式(28)所示。

(25)

(26)

(27)

+λWwk

(28)

使用随机梯度下降算法来优化W+和W直到收敛。最终的预测评分如式(29)所示。

(29)

ALAMF的参数优化过程如算法ALAMF所示,通过交替更新来优化用户和项目的潜在向量、aSDAE和LSTM-Attention的权重参数,直到达到收敛或者达到设定的最大交互值。

算法: ALAMF输入 用户—项目评分矩阵R,用户辅助信息X,项目辅助信息Y输出 最优U,V,W+,WStep1: 随机初始化U,W+,WStep2: 当j≤M时,循环执行: vj←alstmW,Yj 初始化VStep3: 当i≤N时,循环执行: ui←VIiVT+λUIk -1VRi+λUasdaeW+,Xi,Si 更新UStep4: 当 ΦW+ 没有收敛且未超过最大交互值时,循环执行: 当i≤N时,循环执行: ㈱w+kΦW+ =-λU∑Niui-㈱w+kasdaeW+,Xi,Si +λW+w+k通过反向传播更新W+Step5: 当j≤M时,循环执行: vj←UIjUT+λVIk -1URj+λValstmW,Yj 更新VStep6: 当 ΦW 没有收敛且未超过最大交互值时,循环执行: 当j≤M时,循环执行: ㈱wkΦW =-λV∑Mjvj-㈱wkalstmW,Yj +λWwk通过反向传播更新W

2 实验及分析

为了验证提出的ALAMF模型的推荐性能,采用Tensorflow作为深度学习的框架,在Windows 10 64位操作系统,PyCharm 2017 ,Inter(R) Core(TM) i7-8700k CPU @ 3.70GHz,16 GB内存,Python 3.5的环境下进行对比实验分析。

2.1 数据集

MovieLens 公开数据集被广泛的应用在电影推荐系统中。选取带有辅助信息的ML-100k和 ML-1M作为实验数据集,评分范围1—5分。ML-100k包含943个用户对1 682的项目的10万多条评分数据。ML-1M包含6 040个用户对3 706个项目的100万多条评分数据,其中每个用户评分过的电影数据均大于20。用户辅助信息包括年龄、职业和性别等属性,将其转化成二进制信息,项目辅助信息包括电影描述和电影类型等信息,使用word2vec将其文本信息转化成词向量。本实验将数据集按8∶1∶1的比例划分为训练集、验证集和测试集。

2.2 实验评价指标

在推荐系统中常用的评价指标有三类[18]。采用召回率来衡量Top-N推荐,均方根误差RMSE(Root Mean Square Error)作为算法准确度的评价指标[19],定义如式(30)所示。

其中,u是用户集合,N是向用户推荐的前N个项目数,R(u)是向用户u推荐的项目列表,T(u) 是用户观看的项目列表。

2.3 对比模型和实验设置

为了验证提出的ALAMF 模型的性能,对比模型如下:

(1) PMF: Mnih[9]等提出的概率矩阵分解模型。

(2) ConvMF: Kim[17]等使用卷积神经网络提取用户和项目的潜在向量。

(3) aSDAE: Dong[11]等使用堆叠降噪自编码器提取用户和项目的潜在向量。

(4) PHD: Liu[16]等融合堆叠降噪自编码器与卷积神经网络来分别提取用户和项目的潜在向量。

(5) ALAMF: 本文提出的融合LSTM和基于注意力机制的方法。

(6) ALAMF-N: 不加注意力的ALAMF模型。

在实验中,最大交互值设置为200。在附加堆叠降噪自编码器部分,设置噪声率为0.4,隐藏层数为三层,激活函数为Sigmoid函数。使用最小化批次的RMSprop进行优化,batch_size为128;在注意力长短期记忆网络部分设置每个单词的嵌入维度为200,每个项目文档的最大长度为300。dropout为0.2,LSTM网络层设置隐藏层的神经元个数为32,batch_size为128,激活函数采用Relu,使用最小化批次的Adam进行优化。因其偏置矫正后,在每一次迭代后学习率都会有一个稳定范围,使得训练的参数会更加平缓。

2.4 实验结果及分析

2.4.1 参数设置

几种对比方法参数设置如表1所示,ALAMF-N是不加注意力机制的模型,ALAMF是加上注意力机制的模型。

表1 不同方法的参数设置

续表

考虑参数λU和λV对ALAMF模型的RMSE的影响,结果如表2所示。

表2 λU和λV对ALAMF模型的影响

ML-1Mλu1112.53λv200500700500900RMSE0.85210.84880.84910.85070.8557

从表2的两个数据集可以看出对参数λU和λV恰当的设置,会让模型达到好的效果,这说明适当的λU和λV值能将用户的辅助信息和项目辅助信息映射到适当的潜在空间。这样可以很好地平衡用户辅助信息和项目辅助信息,从而提高了ALAMF模型的评级预测精度。

2.4.2 模型分析

(1) 讨论在相同的环境下不同算法对于评估标准recall的表现。在两个不同稀疏度的数据集上进行实验,如图4所示。

图4 Top-N值对recall的影响

从图4中可以看出在两个数据集上随着N值的增加几个算法都是呈上升的变化趋势,但发现传统方法PMF效果最低。这是因为PMF忽略了辅助信息的作用,使得推荐结果不佳。结合了aSDAE和CNN的PHD模型效果明显好于aSDAE模型和CNN模型,这说明模型的结合可以更好提取辅助信息,学习更有效的潜在因子。而ALAMF模型和不使用注意力机制的ALAMF-N模型都明显优于PHD模型,这说明能建立单词之间的长期依赖的LSTM能弥补CNN提取文本信息的不足,从而提高推荐性能。从两个数据集可以看出,基于注意力机制的ALAMF模型优于ALAMF-N模型。这是因为注意力机制通过给予不同权重对重要词语进行提取,实现对文本信息不同的关注度。这说明注意力机制在模型训练时可以突出关键信息,从而提高模型性能。

(2) 讨论在两个数据集上进行10次迭代的实验结果,并将最低的RMSE作为该模型的RMSE,如表3所示。

表3 不同模型的RMSE值

续表

从表3可以看出ALAMF模型在两个数据集上的RMSE表现均优于其他模型。在ML-100k数据集中ALAMF模型比较aSDAE模型、ConvMF模型、PHD模型分别提高了4.7%、4.35%、2.68%,这说明了ALAMF模型上使用LSTM和引入注意力机制可有效提高模型性能。从ML-1M数据集中看出,ALAMF-N比较aSDAE和ConvMF模型分别提高了2.44%、1.53%,ALAMF比较aSDAE和ConvMF模型分别提高了2.49%、1.58%,既说明了结合用户和项目辅助信息的有效性,也说明了ALAMF模型具有更有效地选择和提取辅助信息的能力。ALAMF和ALAMF-N的RMSE性能都优于PHD模型,前面两者模型都利用了LSTM神经网络来提取文本的潜在信息,强调单词间的长期依赖信息关系。

ALAMF-N 模型相比较于PHD模型提高了1.05%。这是因为CNN对于项目的特征提取往往会忽略单词之间的长期依赖,从而缺乏辨别关键字的能力,而LSTM克服了这个问题,因此表现出了更好的效果。ALAMF模型相比较于PHD模型提高了1.1%,这说明注意力机制在强调关键信息的方面要优于卷积的最大池化层。从两个数据集来看,加了注意力层的ALAMF模型与未加注意力的ALAMF-N模型相比分别提高了0.19%、0.05%,说明注意力机制不仅能表述重要词语的特征信息,而且通过给予不同权重来突出文本的重点信息。这也验证了注意力机制的有效性。

(3) 讨论训练模型的参数,我们通常会关注迭代次数是怎么影响我们方法的性能。因此,比较了几种方法在不同迭代次数下的性能。在数据集ML-1M上进行实验,如图5所示。

图5 迭代次数对模型RMSE的影响

图5是在不同的迭代次数下几种模型在 ML-1M 数据集下RMSE影响的表现。首先从图5中可以看出几种模型的整体趋势都是RMSE随着迭代次数的增加逐渐下降,最终有平稳的趋势,但也可以看到迭代次数过多会使得RMSE的值增加,这是因为迭代次数过多会导致模型过拟合,使推荐性能下降。其次还可以发现,ALAMF模型的RMSE低于PHD模型,说明LSTM和注意力层提取文本特征比卷积神经网络的最大池化层更能快速突出关键信息、提取文本深层次特征并能快速收敛,能使推荐结果更好。最后ALAMF模型和ALAMF-N模型能在迭代次数较少的情况下达到很好的实验效果,模型收敛较快,并且在最初训练时的RMSE就低于其他4种模型,能有较好的推荐性能。

3 结束语

由于传统推荐系统存在数据稀疏问题,并且卷积神经网络缺乏提取文本上下文信息和关键信息的能力。对此,本文采用添加辅助信息的方式和基于注意力机制的长短期记忆网络来提高推荐性能。此外,对比了几种深度学习模型,实验结果显示,ALAMF模型在MovieLens数据集上表现出较好的结果,这说明充分提取文本信息的上下文语义关系和关键信息能提高推荐性能。

尽管ALAMF模型的精确度有一定提高,但由于辅助信息和评分信息过于稀疏,实验结果提高的幅度不是很大。因此这也为接下来的工作提出挑战,如何更加有效的处理稀疏数据。另外,可以考虑序列推荐(sequential recommendation)[20]来构建合理的推荐框架。

猜你喜欢

注意力向量辅助
向量的分解
让注意力“飞”回来
小议灵活构造辅助函数
倒开水辅助装置
聚焦“向量与三角”创新题
如何培养一年级学生的注意力
基于大数据分析的易混淆车辅助识别系统设计与实现
A Beautiful Way Of Looking At Things
向量垂直在解析几何中的应用
向量五种“变身” 玩转圆锥曲线