APP下载

基于序列特征提取的个性化推荐

2021-12-07陈昀张瑞林

智能计算机与应用 2021年7期
关键词:注意力机制推荐系统卷积神经网络

陈昀 张瑞林

摘 要: 基于序列的推荐是推荐系统研究的热点,序列中包含许多重要信息,如物品的点击规律和用户的兴趣,有效利用序列信息是提高推荐准确率的关键。为了有效提取序列信息,提出了ACRec推荐系统模型,利用多头自注意力机制和卷积神经网络从动态和静态两个方面提取序列信息,并利用矩阵分解增强模型中用户与序列的语义关系。在MovieLen-1M和Video_Games兩大公开数据集上实验证明,相比于其他基线模型,ACRec提高了推荐的准确率,Hit@10分别提高了1.03%和18.4%,NDCG@10分别提高了2.6%和20.9%。

关键词: 推荐系统; 注意力机制; 卷积神经网络; 矩阵分解

文章编号: 2095-2163(2021)07-0166-06中图分类号:TP391文献标志码: A

Personalized recommendation based on sequence feature extraction

CHEN Yun, ZHANG Ruilin

(School of Informatics Science and Technology, Zhejiang Sci-Tech University, Hangzhou 310018, China)

【Abstract】Sequential recommendation is a hot topic in the research of recommendation system. Sequences contain a lot of important information, such as item click rules and user interests. Effective use of sequence information is the key to improve the accuracy of recommendation. In order to effectively extract the sequence information, a model of recommendation system called ACRec is proposed, which uses multi-head self-attention mechanism and Convolutional Neural Network to extract sequence information from both dynamic and static aspects, and uses matrix factorization to enhance the semantic relationship between users and sequences in the model. Experiments on the two public data sets of MovieLen-1M and Video_Games prove that compared with other baseline models, ACRec improved the accuracy of recommendation, the Hit@10 increased by 1.03% and 18.4%, and the NDCG@10 increased by 2.6% and 20.9%.

【Key words】recommendation system; attention; Convolutional Neural Network; matrix factorization

0 引 言

在互联网时代,信息过载已经成为不可避免的问题[1]。推荐系统是解决信息过载问题的重要方法。传统的推荐系统对用户和物品的每一次交互进行建模。但在现实生活中,用户的下一次交互往往与用户的上一次交互有关。基于序列的推荐系统考虑了用户历史点击序列对下一次点击的影响,如Zhou等人[2]提出了DIN推荐系统模型,通过注意力模型计算目标物品与序列中物品的相关性,Hidasi等人[3]提出了利用GRU进行会话推荐。

虽然目前已有许多基于序列的推荐模型,但还存在一些问题:首先,对于序列特征提取只考虑序列的发展变化特征或只考虑序列的静态特征,没有对2方面特征同时进行处理;其次,模型只对序列进行计算,忽略了用户与序列的语义关系。

为了解决上述问题,本文使用注意力机制和卷积神经网络分别学习序列的动态特征和静态特征,提出了基于注意力机制和卷积神经网络的ACRec(Attention and Convolutional Based Recommendation)模型,并利用矩阵分解加强用户和序列的语义关系。本文的主要贡献如下:

(1)使用注意力机制和卷积神经网络对序列从动态特征和序列的静态特征两方面进行特征提取;

(2)利用矩阵分解增强用户和序列的语义关系;

(3)本文在2个公共数据集上进行比较实验,验证ACRec的有效性。

1 相关工作

在现实世界中,用户的行为是连续发生的,用户下一个点击往往与用户上一个点击的物品相关。近年来,基于序列推荐的研究也日渐增多。最早对序列进行建模的是基于马尔科夫链的推荐系统,FPMC[4]是由Rendle等人提出的利用马尔科夫链和矩阵分解来求解下一项推荐物品。Cheng等人[5]在FPMC的基础上改进了转移矩阵提出了FPMC-LR模型,将转矩阵分解成2个小矩阵的乘积。He等人[6]通过结合相似度和马尔科夫链提出了Fossil推荐模型,利用相似度来计算用户的长期喜好,利用高阶马尔科夫链来计算用户的短期需求。

除了马尔科夫链,许多学者使用深度学习的方法来研究基于序列的推荐。考虑到RNN对序列计算的优势,因此许多学者提出了基于RNN的推荐系统。Hidasi等人利用GRU对短期会话进行建模,提出了GRU4Rec模型。Donkers等人[7]设计了融入用户信息的循环神经网络单元,使用户信息在计算过程中可以动态表示。Li等人[8]提出了NARM模型,NARM分為编码和解码两个部分,在编码部分对GRU计算出的隐藏状态进行全局和局部编码,在解码部分计算物品的点击概率。为了提取序列信息,也有许多学者利用卷积神经网络进行研究。Liu等人[9]提出了CCPM模型将卷积神经网络应用到推荐算法中,将序列排列成二维矩阵进行特征提取。Liu等人[10]提出了Caser模型,对卷积核大小进行限制,从水平和垂直两个方向对序列进行了特征提取。Yuan等人[11]利用一维卷积对序列进行特征提取。

注意力机制在基于序列的推荐系统中应用得也十分广泛。 Zhou等人提出了DIN模型,通过注意力机制计算目标物品与历史序列中物品的相似度,计算了目标物品对历史序列中物品的注意力权值。之后,Zhou等人[12]改进了DIN,提出了DIEN,利用注意力机制和GRU计算用户兴趣的发展变化。Kang等人[13]提出了SASRec算法模型,利用多层多头自注意力机制来提取历史序列的发展规律。Guo等人[14]提出了IMfOU算法模型,利用图卷积和注意力机制计算序列的顺序信息,并结合了顺序模型和非顺序模型来更好地计算物品之间的依赖关系。从这些研究可以看出,如何对序列特征进行提取是关键,本文使用注意力机制和卷积神经网络从序列的发展变化特征和序列的静态特征进行特征提取。

2 个性化推荐模型

本节将详细介绍文中提出的个性化推荐模型(AcRec),如图1所示,ACRec总体由嵌入层、特征提取层、乘积层和全连接层组成。在特征提取层,ACRec先后使用多头自注意力机制提取序列的动态特征和卷积神经网络来提取序列特征静态特征。

2.1 嵌入层

由于用户与物品总量大,而用户交互的物品少,因此推荐系统模型的输入是十分稀疏的高维输入。例如用户U={u1,u2,u3,…,um},物品I={i1,i2,i3,…,in},其中m和n分别为用户和物品的总数。独热码是常用的物品向量表示方式。在独热码中,只有一个位置是1,其他位置都为0,通过改变1的位置来代表不同的物品。如果用独热码表示每个用户,则u1=[1,0,0,…,0], i1=[1,0,0,…,0]。如果系统有1 000个物品,则一个物品的独热码表式中就会有999个0,1个1,且在这1 000个数据中只有一个有用。这样的数据数量大且十分稀疏,不易于计算,因此引入了嵌入层。

嵌入层的思想来源于自然语言处理中用不同的向量来表示每个单词,通过Skip-gram或者CBOW模型训练单词向量,使得向量能代表单词的意思。在推进系统模型中引入嵌入层思想,用一个向量代表一个物品或用户,使输入数据变得稠密。本文在嵌入层中为每类输入数据都定义了一个嵌入空间,用户的嵌入空间为EU∈RUv×k,物品的嵌入空间为EI∈RIv×k , k为嵌入维度,且k|U|, k|I|,相比独热码表示,向量表示极大地减少了占用的内存空间。经过嵌入层,第一位用户就表示为EU的第一行数据,第一个物品就表示为EI的第一行数据。

2.2 动态特征提取层

动态特征提取层结构如图2所示,研究认为序列中的物品之间是有关联的,如序列中的电脑和键盘、牛奶和面包,为了提取序列中不同物品的关联性,本文使用多头自注意力机制提取序列的关联特征,动态地改变序列中物品的权重。并且由于相同的序列对不同的用户有不同的意义,因此本文使用注意力机制计算用户对序列中物品的注意力权重。

注意力机制是将查询Q和键值对K、V映射为输出的函数,其计算公式如下所示:

其中,Q为当前关注的矩阵、如用户矩阵;V为需要求解关注度的矩阵、如序列中的物品组成的矩阵;K是V的映射、代表了V特性,K和V可以相等,“T”为转置。计算注意力权重的方法除了公式(1)中使用的点积之外,还可以通过神经网络来计算。

多头自注意力机制在Transformer中被提出,通过多个线性变换将输入转换成多组不同的查询、键和值,使得模型能够关注不同方面的注意力权重。Transformer利用多头自注意力机制来代替RNN,计算当翻译不同单词时句子中其他单词的权重。其计算公式如下所示:

其中,WQ,WK,WV,WO为转换矩阵,在自注意力机制中Q=K=V都为序列中物品组成的矩阵。多头自注意力机制可以很好地发现序列中物品的关系,因此本文使用多头自注意力机制来动态计算序列中不同物品的权重。经过计算得到序列矩阵S′,为了不丢失序列的原始信息,本文将原始的序列矩阵S加入到了S′中,其计算公式为:

在经过多头注意力机制后,本文计算了用户对序列中物品的注意力权重。研究认为不同用户对相同序列的注重点有所不同,用户自身的特性对用户未来的选择有很大影响。例如,同样是面对序列,电脑、键盘、牛奶、面包,用户A会更注意前两项,而用户B会更注意后两项。因此即使有相同的历史点击序列,用户A和用户B未来的点击也是不同的。根据公式(1),本文将用户A作为查询,将B作为键和值计算注意力权重。

2.3 静态特征提取层

在静态特征提取层,本文通过卷积神经网络提取序列的特征。本文认为不同时间间隔的特征应该分别提取,因此本文用m个大小为v×1的卷积核沿着行与列的方向移动对序列矩阵S′进行特征提取,v∈{2,…,|S|},通过改变v的大小提取不同时间间隔的物品之间的特征,本文用Fvj∈Rv×1表示第j个高度为v的卷积核,1≤j≤|S|。Fvj对历史序列矩阵S′从左到右、从上到下地进行卷积计算得到大小为(|S|-v+1)×k的特征矩阵C。然后再将C输入池化层,池化层的核大小为(K-h+1)×1,进行最大池化a=max(C), a表示C的最大数值。最后将m×(|S|-1)个卷积核提取的特征组成m×(|S|-1)×k的矩阵,并输入平均池化层,得到大小为m×1×k的特征矩阵C′,然后再对C′进行重新排列得到1×(m×k)的矩阵。

在经过卷积层特征提取后,本文将提取的特征C′和用户向量U进行非线性变换,融合用户特征和序列特征,计算公式如下所示:

2.4 乘积层

研究可知,在之前的基于序列的推荐都只对序列特征进行了提取,没有利用用户已经点击过序列中的物品这个信息,使得模型不能明确用户与序列中的物品的关系。为了利用用户与序列中物品的关系,本文提出了乘积层,增强用户和序列中物品的已点击关系。

本文根据矩阵分解算法来计算用户对序列的点击值。在矩阵分解算法中将用户和物品用向量表示,用户对物品的评分为用户向量与物品向量的乘积,通过矩阵分解求解出用户矩阵和物品矩阵就可以预测用户对未评分的物品的评分。因此本文的乘积层利用矩阵分解算法计算用户对历史序列中每个物品的点击概率,并通过Sigmoid激活函数使输出限制在0和1的范围内。由于用户已经点击过历史序列中的物品,所以乘积层的输出都应该接近于1。乘积层的公式如下所示:

其中,U和S为用户矩阵和序列矩阵。由于乘积层的标签只有一个值1,因此本文使用交叉熵损失函数计算乘积层的损失值L0。乘积层的损失函数公式为:

乘积层仅使用在训练阶段调整数据的更新方向,总体的损失函数为L0乘以影响因子τ∈[0,1]加上全连接层的损失值。

3 实验

3.1 实验数据

(1)MovieLens-1M(https://grouplens.org/datasets/movielens/1m/):MovieLens-1M是在推荐算法中常用的数据集,包含了1 000 209条用户对电影的评分,3 883部电影和6 040个用户,其中每个用户至少评分过20部电影,电影总共有18个类别,一部电影可以有多个类别。本文把用户看过的电影都标注为1,并随机从用户未看过的电影中选取负样本标注为0,使正负样本的比例为1:1。

(2)Video_Games(http://deepyeti.ucsd.edu/jianmo/amazon/categoryFilesSmall/Video_Games.csv): Video_Games是Amazon Review Data提供的数据集之一。Amazon Review Data提供了许多数据集,如Amazon Fashion、Electronics、Books等。这些数据都包含很多用户对物品的评价和物品信息。Video_Games是有关游戏产品的数据集,包含了用户对游戏的评价、打分、产品描述等信息。Game数据集一共包含2 565 349條用户打分、71 982款游戏、1 540 618个用户,平均每个用户有1.7条评论,平均每个物品有35.6条评论。本文对数据集进行了处理,除去数据集中的重复记录和用户交互数量比较少的数据,最终剩余32 232个用户和42 247个游戏,396 983条评论。

本文按用户ID和用户评论时间排列数据,把用户评论过的每5个物品作为历史序列,第6个物品作为目标物品,预测用户观看第6个物品概率,并按留一法把每个用户的最后一组序列作为测试集数据。在测试数据中对每个用户通过负采样随机采样了99个不同的负样本,因此每个用户的测试数据一共为100个,其中99个负样本、1个正样本。经过处理的数据集统计详见表1。

3.2 对比模型

本文选取了3个推荐系统模型作为本实验的对比模型进行仿真实验,这三个模型是十分具有代表性的推荐模型。一个是基于矩阵分解型,一个是基于卷积神经网,一个是基于多头注意力机制,从不同方面对推荐系统进行了研究。

NeuMF[15]结合了矩阵分解和深度神经网络,通过矩阵分解和深度神经网络分别计算用户对物品的兴趣程度,将传统推荐算法与神经网络相结合,然后连接2部分结果输入全连接层得到最终结果。

Caser利用卷积神经网络提取历史序列特征,通过不同大小的卷积核提取不同维度的特征组合,实现水平特征提取和垂直特征提取,然后将特征和目标物品向量输入全连接层进行计算得到最终结果。

SASRec将Transformer模型转化为推荐算法模型,利用堆叠多层多头自注意力机制和前馈神经网络层交替学习用户历史序列的发展规律,最后将多头自注意力机制的结果与目标物品进行计算预测点击概率。

3.3 评估标准

命中率Hit@N和归一化折损累计增益NDCG@N是TopN推荐问题中常用的评价指标,本文选择这两个评价指标作为实验的评价指标,用于评价算法的好坏。

TopN推荐为利用模型计算用户对候选物品的点击概率并根据结果进行倒序排列,将前N个物品作为推荐列表推荐给用户。Hit@N计算TopN推荐中是否包含正样本,若是则命中,否则未命中。NDCG@N计算在TopN推荐中正样本的排序位置,位置越靠前则NDCG@N值越大,若不包含正样本则NDCG@N值为0。Hit@N和NDCG@N的计算公式如下所示:

3.4 参数设置

本文所有实验都选择Adam作为优化器,初始学习率都为0.001,正则化参数为10-6,批量大小为128,嵌入层维度为64,dropout大小设置为0.3。ACRec的多头自注意力机制的头数设置为4,层数设置为1,垂直卷积核的个数为1,全连接层隐藏层数为3,大小为64、32、16,乘积层的影响因子大小在MovieLens-1M上为0.2,在Video_Games上为0.6。NeuMF的神经网络隐藏层设置为4层,大小分别为64、32、16、8。Caser的每层水平卷积核数位16,垂直卷积核数为4。SASRec的多头自注意力机制和神经网络层交替层数设置为2,多头自注意力机制的头数也设置为4。

3.5 分析与结论

实验结果详见表2,本文分别对比了Top5和Top10推荐的Hit@N和NDCG@N值。从表2中的数据可以看出不论在MovieLens-1M数据集上、还是在Video_Games数据集上,本文提出的ACRec模型都要优于其他基线对比模型。

在MovieLens-1M數据集上,本文提出的ACRec明显优于Caser和SASRec模型,说明从动态和静态两方面提取序列特征的有效性。而NeuMF的结果明显弱于其他3个模型,这是因为NeuMF不是基于序列的,只利用矩阵分解计算了用户和物品的内在特征,而序列给模型提供了更多信息。但在Video_Games数据集上NeuMF模型优于Caser和SASRec,这是因为Video_Games中用户兴趣单一,用户兴趣比序列对用户的选择影响更大。相比Caser和SASRec,本文提出的ACRec模型在计算过程中不断融入用户信息,并且加入了乘积层计算用户与序列的关系,因此得到了好的结果,且与NeuMF相比有很大提升。

4 结束语

本文主要研究了基于序列的推荐系统。首先利用注意力机制对序列进行动态特征提取,使序列中的物品有不同的权重。然后使用卷积神经网络对序列进行静态特征提取,接着通过改变卷积核的大小提取不同序列长度的特征。并且在模型中增加了乘积层用于加强用户与序列的语义关系。本文在两大公共数据集上进行了对比实验,实验结果证明了本文提出的ACRec模型的有效性,无论是Hit@N还是NDCG@N都要优于其他3个对比模型。序列数据是刻画用户特征的重点,在未来的工作中可以继续对序列提取方面进行研究,并引入知识图谱增加物品信息和关联,来提高推荐的准确率。

参考文献

[1]黄剑波,陈方灵,丁友东,等. 基于情感分析的个性化电影推荐[J]. 计算机技术与发展,2020,30(9): 132-136.

[2]ZHOU G R, ZHU X Q, SONG C R, Ying Fan, et al.Deep interest network for click-through rate prediction[C]//Proceedings of the 24th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining. New York: ACM, 2018: 1059-1068.

[3]HIDASI B, KARATZOGLOU A, BALTRUNAS L, et al. Session-based recommendations with recurrent neural networks[J]. arXiv Preprint arXiv:1511.06939, 2015.

[4]RENDLE S, FREUDENTHALER C, SCHMIDT-THIEME L. [JP4]Factorizing personalized markov chains for next-basket recommendation[C]//Proceedings of the 19th International Conference on World Wide Web. New York: ACM, 2010: 811-820.

[5]CHENG C, YANG H Q, LYU R M, et al. Where you like to go next: Successive point-of-interest recommendation[C]//Proceedings of the Twenty-Third International Joint Conference on Artificial Intelligence. California: AAAI Press, 2013: 2605-2611.

[6]HE R, MCAULEY J. Fusing similarity models with markov chains for sparse sequential recommendation[C]//2016 IEEE 16th International Conference on Data Mining (ICDM). Barcelona: IEEE, 2016: 191-200.

[7]DONKERS T, LOEPP B, ZIEGLER J. Sequential user-based recurrent neural network recommendations[C]// Proceedings of the Eleventh ACM Conference on Recommender Systems. New York: ACM, 2017: 152-160.

[8]LI J, REN P J, CHEN Z M, et al. Neural attentive session-based recommendation[C]// Proceedings of the 2017 ACM on Conference on Information and Knowledge Management. New York: ACM, 2017: 1419-1428.

[9]LIU Q, YU F, WU S, et al. A convolutional click prediction model[C]// Proceedings of the 24th ACM International on Conference on Information and Knowledge Management. New York: ACM, 2015: 1743-1746.

[10]LIU B, TANG R M, CHEN Y Z, et al. Feature generation by convolutional neural network for click-through rate prediction[C]//The World Wide Web Conference (WWW '19). New York: ACM, 2019: 1119-1129.

[11]YUAN F J, KARATZOGLOU A, ARAPAKIS I, et al. A simple convolutional generative network for next item recommendation[C]//  Proceedings of the Twelfth ACM International Conference on Web Search and Data Mining. New York: ACM, 2019: 582-590.

[12]ZHOU G, MOU N, Fan Y, et al. Deep interest evolution network for click-through rate prediction[C]// Proceedings of the AAAI Conference on Artificial Intelligence. California: AAAI Press, 2019: 5941-5948.

[13]KANG W, MCAULEY J. Self-attentive sequential recommendation[C]// 2018 IEEE International Conference on Data Mining (ICDM). Singapore: IEEE, 2018: 197-206.

[14]GUO X L, SHI C Y, LIU C M. Intention modeling from ordered and unordered facets for sequential recommendation[C]//Proceedings of The Web Conference 2020. New York: ACM, 2020: 1127-1137.

[15]HE X N, LIAO L Z, ZHANG H W, et al. Neural collaborative filtering[C]// Proceedings of the 26th International Conference on World Wide Web. New York: ACM, 2017: 173-182.

作者簡介: 陈 昀(1995-),女,硕士研究生,主要研究方向:推荐系统; 张瑞林(1961-),男,博士,教授,主要研究方向:人工智能。

通讯作者: 张瑞林Email:hzzhangrl@163.com

收稿日期: 2021-05-05

猜你喜欢

注意力机制推荐系统卷积神经网络
基于深度学习的问题回答技术研究
基于LSTM?Attention神经网络的文本特征提取方法
基于注意力机制的双向LSTM模型在中文商品评论情感分类中的研究
InsunKBQA:一个基于知识库的问答系统
基于用户偏好的信任网络随机游走推荐模型
基于深度卷积神经网络的物体识别算法
基于个性化的协同过滤图书推荐算法研究
个性化推荐系统关键算法探讨
浅谈Mahout在个性化推荐系统中的应用
深度学习算法应用于岩石图像处理的可行性研究