温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
结合
注意力
机制
循环
神经网络
序列
推荐
模型
第 22卷 第 10期2023年 10月Vol.22 No.10Oct.2023软 件 导 刊Software Guide结合注意力机制与循环神经网络的序列推荐模型吴晓,成卫青(南京邮电大学 计算机学院,江苏 南京 210046)摘要:在真实场景的推荐系统中,使用用户所有数据以训练推荐模型,存在忽略数据间时间顺序和学习到的用户兴趣是静态的问题。鉴于此,提出一种结合注意力机制与GRU循环神经网络的序列推荐模型,对用户的行为序列进行显式的动态建模,挖掘用户的长期偏好与短期偏好,并结合用户自身信息构建自适应分配权重的门控单元,将长期偏好与短期偏好结合,以此预测用户可能发生的下一个行为。在Amazon数据集上的实验结果表明,相较于目前基准推荐模型GRU4REC、STAMP、SASREC等,该模型在归一化折损累计增益(NDCG)和命中率(HIT)指标上分别至少提升了14.7%和8.8%,表明该模型能够更加准确地捕捉用户兴趣。关键词:序列推荐;注意力机制;循环神经网络;深度学习;长短期偏好DOI:10.11907/rjdk.222134开 放 科 学(资 源 服 务)标 识 码(OSID):中图分类号:TP183 文献标识码:A文章编号:1672-7800(2023)010-0095-10Sequence Recommendation Model Combining Attention Mechanism and Recurrent Neural NetworkWU Xiao,CHENG Weiqing(School of Computer Science,Nanjing University of Posts and Telecommunications,Nanjing 210046,China)Abstract:In a real-world recommendation system,all user data is used to train the recommendation model,but there is a problem of ignoring the temporal order between data and the static learning of user interests.In view of this,a sequence recommendation model combining attention mechanism and GRU recurrent neural network is proposed,which explicitly and dynamically models the users behavior sequence,mines the users long-term and short-term preferences,and combines the users own information to construct an adaptive weighted gating unit to combine long-term and short-term preferences,in order to predict the next behavior that the user may experience.The experimental results on the Amazon dataset show that compared to the current benchmark recommendation models GRU4REC,STAMP,SASREC,etc.,the model has improved at least 14.7%and 8.8%in normalized discounted cumulative gain(NDCG)and hit rate(HIT)indicators,respectively,indicating that the model can more accurately capture user interest.Key Words:sequence recommendation;attention mechanism;recurrent neural network;deep learning;long-term and short-term preference0 引言随着互联网技术的迅速发展,用户逐渐迷失在海量的信息之中,推荐系统(Recommender System,RS)作为一个信息过滤工具,以个性化的方式发现产品和服务,为用户提供向导。从用户角度而言,推荐系统旨在解决信息过载情况下用户如何高效获得感兴趣信息的问题;从公司角度而言,推荐系统解决产品能够最大限度吸引用户、留存用户、增加用户黏性、提高用户转化率的问题。推荐系统要解决的问题可以被定义为:对于用户 U,在特定的场景C下针对大量的物品信息构建一个函数,预测用户对特定候选物品I的喜好程度,再根据喜好程度对所有候选物品进行排序,生成推荐列表的问题。推荐系统框架如图1所示。近些年,深度学习被引入推荐系统领域。深度学习主收稿日期:2022-09-29基金项目:江苏省研究生教育教学改革项目(JGZZ19_038)作者简介:吴晓(1997-),男,南京邮电大学计算机学院硕士研究生,研究方向为推荐系统;成卫青(1972-),女,博士,南京邮电大学计算机学院教授、硕士生导师,研究方向为网络测量与网络行为学。本文通讯作者:成卫青。2023 年软 件 导 刊要用来克服传统推荐模型的缺点从而得到高质量的推荐1-2。其可以有效地捕获非线性的用户物品关系和数据本身的复杂联系,例如上下文、文本和视觉等丰富复杂的信息。随着Transformer模型在自然语言处理NLP领域中的流行,Transformer被尝试应用于各领域,并且取得了不错的效果3。SASRec4作为基于自注意力构建的序列推荐模型,虽然整个模型仍与原始的Transformer相似,但是依然取得了较好成效。目前,绝大多数模型都认为从用户序列中能够完全捕捉到用户当前兴趣,例如上文提到的SASRec模型。但在现实中,用户的意图往往很难确定,特别是处于一个长期行为状态中。其在模型中仅考虑用户的短期兴趣,没有结合用户的长期兴趣。在模型个性化能力方面,由于没有加入用户信息,导致模型个性化能力也较差。在用户的长期行为中,AttRec5、STAMP6等模型,通过对用户行为求平均值,再进行高阶线性变换以建立长期偏好模块,采用的方法较为简单并且忽略了数据间的时间顺序,随着用户序列逐渐增长,准确度快速下降。本文认为,评价一个新产品能否吸引用户的正确方法是评估它与用户短期偏好和长期偏好的匹配程度。为了能够获得较为准确的推荐结果,提出了一种基于 GRU 神经网络和注意力机制的长期偏好模块,结合辅助损失函数,捕获用户一个长期行为中所有可能出现的偏好,并将它们聚合为用户最终的长期偏好,以改善随着用户序列增长,用户兴趣获取准确性逐渐下降的问题。并且,基于自注意力机制获取用户短期偏好,添加可学习的位置矩阵,以避免忽略物品间的时间顺序。同时,探讨了在何处融入用户信息,以提高模型个性化能力。本文尝试了3种不同的门控函数将用户的长期偏好与短期偏好相结合以预测用户下一个时刻可能交互的物品。此外,本文利用随机共享嵌入(Stochastic Shared Embeddings)技术,在模型训练阶段对用户行为序列中交互过的物品和物品集合中的物品按照一定概率进行替换,以提高模型表现力,避免过拟合。1 相关工作1.1序列推荐序列推荐与协同过滤和基于内容的过滤不同7,其通过对用户序列进行建模,从而向用户推荐可能感兴趣的物品8。传统推荐模型都以静态方式对用户项目交互历史进行建模,只能捕获用户的静态偏好。相反,序列推荐将用户项目交互视为动态序列,并考虑到顺序依赖性,捕获用户当前偏好以获得更准确的推荐结果9。序列推荐模型普遍可以分为两类:专注于用户通用兴趣的全局模型和强调用户当前兴趣的短期模型。获取用户兴趣的方法一般有3种:基于用户交互历史,使用协同过滤的方法,如矩阵分解10;基于领域的方法,基于共同交互物品的相似性进行推荐11;基于马尔科夫链的方法,利用用户行为之间的顺序进行预测12-13。1.2深度神经网络推荐随着序列推荐领域的不断发展,从马尔科夫链(Markov Chain)到循环神经网络(RNN)、卷积神经网络(CNN)模型,以及Transformer,每个时期的序列推荐模型,基本上都对应着该时期应用较多的NLP模型。早期,贝叶斯模型是序列推荐中的主流模型。基于马尔科夫链的FPMC14,通过历史数据构建商品之间的转移矩阵,根据转移矩阵预测用户下一个可能购买的商品。基于高阶马尔科夫链的 Fossil模型15则是通过高阶马尔科夫链学习更多的信息,再结合相似性模型解决序列推荐预测中的稀疏性问题。当进入到深度学习时代,RNN模型既能够学到类似马尔科夫链的转移信息,也能够通过一些其他方式,比如使用长短期记忆LSTM学习用户序列中的信息。由此,出现许多基于 RNN 解决序列推荐的研究,如 GRU4Rec16、RRN17、HRNN18等模型都是采用 RNN 模型或者其变体进行序列推荐,还有一些基于CNN的序列推荐模型。尽管序列推荐中更加关心行为之间的关联性,而CNN主要用于提取局部到整体的信息,但是3D-CNN19、Caser20、HierTCN21等模型从不同角度介绍了CNN模型在序列推荐中应用的可能性。其中,Caser模型提出了union-level的概念,即通过组合前几个行为信息,以预测用户下一个或者下几个行为,展现了 CNN注重于整体的特性;HierTCN模型则是通过将卷积网络与 GRU 结合起来进行预测,这样既保持了卷积的特性,也保持了RNN的序列建模特性。从NLP中的Self-Attention模型开始,注意力模型开始被逐渐应用于各个领域。Bert4Rec22作为基于 Bert模型的序列推荐,其弥补了SASRec单向建模的缺点,采用双向建模。SSE-PT23则是考虑了用户信息在序列建模中的重要性,并且提出了使用随机共享嵌入SSE这一方法以提升模型表现能力。1.3注意力模型随着注意力模型在深度学习领域的广泛应用,图像处理、语音识别、自然语言处理和推荐系统等领域中各种不用户信息候选物品集物品信息推荐模型f(U,l,C)场景信息推荐结果Fig.1Recommender system framework图1推荐系统框架 96第 10 期吴晓,成卫青:结合注意力机制与循环神经网络的序列推荐模型同类型的任务24-26中都出现了注意力模型的身影。从注意力模型的命名方式看,其借鉴了人类的注意力机制,核心目标是从众多信息中选择出对当前任务目标更关键的信息。注意力机制将 Source中的构成元素想象成是由一系列的键值对构成,此时给定Target中的某个元素 Query,通过计算 Query和各 Key的相似性或者相关性,得到每个Key对应Value的权重系数,然后对Value进行加权求和,即得到了最终的Attention数值。因此,本质上Attention 机制是对 Source 中元素的 Value 值进行加权求和,而 Query 和 Key 用来计算对应 Value 的权重系数,如图 2所示。自注意力模型,顾名思义“自”即是自己,其指的不是Target 和 Source 之间的 Attention 机制,而是 Source 内部元素之间或者Target内部元素之间发生的Attention机制,也可以理解为 Target=Source 这种特殊情况下的注意力计算机制。2 方法模型2.1模型框架序列推荐的目标是在任何时间内,为任何给定的用户学习获得一个较好的物品个性化排名。现定义实验数据集格式:设S表示一组用户集合,物品索引集合I,其中记|S|为L1,|I|记 为L2,定 义 用 户 i 的 用 户 序 列Si=(Si1,Si2,Si3,Si|Si)。用户序列Si按照时间顺序记录用户i在一段时间内交互过的物品索引。对于不同的用户而言,其交互的序列长度是可变的,但在实验过程中,本文选择对于较短的用户序列在左侧进行填充,对于较长的用户序列则选择最近的T个交互索引,使每个用户序列都具有相同的序列长度T。由于序列推荐是根据用户的交互历史预测下一时刻用户可能交互的物品,因此不能简单随意地划分训练集、验证集和测试集。对于每一个用户序列而言,将其前T-2个用户交互索引归入训练集,第T-1个交互索引归入验证集,最后一个交互索引T归入测试集。图3为本文模型PAGRURec简略结构图。本文采用排名指标NDCGK和HITK对模型性能进行评价。2.2嵌入层本文创建了一个可训练的物品嵌入矩阵M RL2 d,并根据物品嵌入矩阵得到用户 i 的初步输入嵌入矩阵E RT d。其中,0作为填充项,dm表示物品嵌入矩阵的隐藏维度,du表示用户嵌入矩阵的隐藏维度,本文中du=dm=d。用户的最终选择不仅取决于物品信息,还需要考虑到自身信息,因而创建一个可训练用户信息矩阵U RL1 d,在输入嵌入矩阵中加入用户信息,以完成个性化推荐。在用户i的输入嵌入矩阵E RT d中拼接该用户的用户信息得到新的输入嵌入矩阵E RT 2d:E=MSi1;UiMSi2;UiMSiT;Ui RT 2d(1)由于自注意力模型中没有包含任何可以反映位置信息的模块,故本文创建了一个可训练的位置矩阵P RT 2d嵌入到输入嵌入矩阵中最终得到可训练输入嵌入矩阵E RT 2d:E=MSi1;Ui+P1MSi2;Ui+P2MSiT;Ui+PT RT 2d(2)图4展示了嵌入层对用户i的历史行为序列所进行的操作,对用户i每个时刻所交互过的物品拼接了用户i的用户信息,并加上能够代表该物品所处位置的信息。2.3短期偏好对于用户的短期偏好,本文采用自注意力模型建模,通过堆叠自注意力模块得到用户的短期偏好ms。图5为Fig.2Attention mechanism图2注意力机制Fig.3Schematic of model framework图3模型框架简略 972023 年软 件 导 刊SASRec的提取用户短期偏好的一个自注意力模块。2.3.1注意力计算公式Attention(Q,K,V)=softmax(QKT2d)V(3)其中,Q代表查询向量,K和V代表键值对,通过该式可计算所有值的加权和。在自注意力模型中,Q、K、V由同一输入得到,为捕捉用户序列中的复杂关系。对输入矩阵E进行3次不同的线性变换得到Q、K、V。其中,WQ、WK、WV RT 2d代表3种不同的线性变换,将输入矩阵E映射至不同的空间。S=SA(E)=Attention(EWQ,EWK,EWV)(4)2.3.2前馈神经网络自注意力机制自适应地分配权重聚合了整个用户序列的交互历史,但其本质仍是一个线性模型。物品隐藏维度之间并不是相互独立的,为了能够捕捉物品隐藏维度d之间的非线性关系,在自注意力机制后加入前馈神经网络。其中,W1、W2 RT 2d,b1、b2是2d维向量,ReLU为激活函数。Fi=FFN(Si)=ReLU(SiW1+b1)W2+b2(5)2.3.3残差连接与归一化在一定程度上,神经网络越深,其表达能力也越强。本文采用堆叠多层自注意力模块获取更加准确的兴趣表达。但随着网络的加深,也会面临梯度消散、梯度爆炸等问题27。残差连接缓解了梯度消散、爆炸等问题,提高了模型表达能力。残差连接就是将输出表述为输入和输入的非线性变换的线性叠加28-29。具体地,假设输入为x,非线性变换为H,其参数为WH,输出为y,残差连接可表示为:y=H(x,WH)+x(6)层归一化用于归一化特征的输入,有利于稳定和加速神经网络训练30。与批量归一化不同,层归一化中使用的统计信息与相同批次中的其他样本无关。具体地,假设输入是包含样本的所有特征的向量x,层归一化可被定义为:LayerNorm(x)=x-2+(7)2.3.4堆叠自注意力模块为了能准确获得用户的短期兴趣,本文堆叠多个自注意力模块以学习用户序列中更复杂的内在联系。将多个自注意力层之后的输出作为用户的短期偏好ms。一个自注意力模块定义如下(其中,b表示堆叠自注意力模块的数量):S(b)=SA(F(b-1)(8)Fbj=FFN(S(b)j),j 1,2,n(9)ms=Fbj(10)为了减轻深度神经网络中的过拟合问题,本文使用Dropout正则化31。2.4长期偏好对于用户的长期偏好,本文假设其在t时刻长度内固定不变,表示为ml,图6为本文的长期偏好模块。对用户i而言,首先使用GRU神经网络提取每个时间步的输出ht作为用户该时刻的兴趣。ht=GRU(Si;Ui)(11)Fig.4Schematic of embedded layer图4嵌入层简图Fig.5Short term preference module图5短期偏好模块Fig.6Long term preference module图6长期偏好模块 98第 10 期吴晓,成卫青:结合注意力机制与循环神经网络的序列推荐模型图7展示了一个GRU单元及其内部公式。zt=(Wzxt+Uzht-1+bz)(12)rt=(Wrxt+Urht-1+br)(13)ht=tanh(Whxt+Uh(rtht-1)+bh)(14)ht=ztht-1+(1-zt)ht(15)其中,Wz、Wr、Wh R2d 2d,bz、br、bh R2d为偏置,()为 Sigmoid 函数。zt(0,1)为更新门,式(15)表示当前状态ht需要从历史状态ht-1中保留多少信息,以及从候选状态ht中接受多少新信息。当zt=0时,ht和ht-1之间为非线性函数关系;当zt=1时,ht和ht-1之间为线性函数关系。rt为重置门,用来控制候选状态ht的计算是否依赖上一个时刻的状态ht-1。用户i的长期兴趣表示为:j=softmax(WKSij;Ui)Thj)(16)ml=j=1Tjhj(17)其中,Sij表示用户i交互过的物品j,j 1,2,T,与用户信息Ui拼接后通过WK R2d 2d线性变换至“键”空间,然后与通过 GRU 神经网络获得的相对应的兴趣ht相乘,得到两者之间的权重,最后对每个时间步的用户兴趣加权求和得到用户i的长期偏好ml。2.5门控函数考虑到在不同的时刻,用户的长期偏好与短期偏好对正确推荐结果的贡献不相同,本文设计了3个类似GRU神经网络的门控函数,这里选择效果最好的一种加以介绍,两外两种将在3.3.3中提及。=W0(W1Sit;Ui+W2ms+W3ml+ba)(18)Yt=ms+(1-)ml(19)其中,W0、W1、W2、W3 R2d 2d,Sit;Ui表示 t 时刻用户 i所交互的物品信息,ba R2d为偏置,()为 Sigmoid 函数,Yt为用户 t时刻最终的兴趣表达,为 t时刻短期兴趣 ms在最终兴趣Yt所占的权重。2.6预测层为了预测用户i在t+1时刻可能交互的物品,取用户在t时刻的最终兴趣表示Yt,相关性分数计算如下:rj,t=YtMj;UiT(20)其中,rj,t表示物品j在t+1时刻与用户t时刻兴趣的相关性得分,M RL2 d为物品嵌入矩阵,Ui表示用户 i的用户信息。相关性得分越高,表示用户在下一时刻(即t+1时刻)与该物品交互的可能性越高,以此为用户生成个性化的推荐列表。2.7网络训练对于每个用户序列,本文通过填充或者截断使每个用户序列为固定长度T。本文定义ot为t时间步的预期输出:ot=if St is a padding itemSt+11 t TSTt=T(21)其中,表示为填充项,模型采用用户序列Si作为输入,ot为相应时刻的输出。最终交叉熵损失函数,并且计算损失函数时不考虑填充项。l1=-Si St 1,2,T log(rot,t)+j Silog(1-(rj,t)(22)为提高长期模块中每个时间步ht的准确性,计算GRU神经网络每个时间步输出的兴趣与用户交互物品的交叉熵损失作为辅助损失。首先计算 t时刻用户兴趣,即 GRU 神经网络 t时刻的输出ht与t+1时刻用户可能交互的物品相关性得分。pj,t=htMTj(23)同时,定义ht为t时间步的预期输出:qt=if Stis a padding itemht+11 t ThTt=T(24)其中,pj,t表示物品j在t+1时刻与用户t时刻的用户信息相关性得分,相关性得分越高,表示通过GRU神经网络提取的用户兴趣更加准确。GRU 辅 助 交 叉 熵 损 失 函 数 表 示 为:l2=-Si St 1,2,T log(pqt,t)+j Silog(1-(pj,t)(25)最终的损失函数表示为:L=l1+l2(26)其中,为权重。2.8模型复杂度从空间复杂度和时间复杂度两个方面考虑:(1)空间复杂度。本文模型中可学习的参数主要来自于短期偏好中的自注意力层,前馈网络层、归一化层和长期偏好中的循环神经网络层和注意力层。总参数量为:O(L1du+L2dm+nd+d2)。其中,d=du+dm,dm表示物品嵌入矩阵的隐藏维度,du表示用户嵌入矩阵的隐藏维度,本文中du=dm。(2)时间复杂度。本文模型的时间复杂度主要来自于注 意 力 计 算 和 前 馈 神 经 网 络 等,时 间 复 杂 度 为Fig.7GRU diagram图7GRU简略图 992023 年软 件 导 刊(n2d+nd2)。3 实验与结果分析3.1对比实验3.1.1实验设置本文模型使用 Pytorch 实现,选用 Adam 优化器,学习率为 0.001,批量尺寸为 128,隐藏维度设置 d为 50。在嵌入层和预测层使用同一个物品嵌入矩阵和用户嵌入矩阵,并且使用随机共享嵌入概率为0.02。MoviesLens-1M最大序列长度设置为200,Dropout为0.2,其余3个数据集最大序列长度设置为50,Dropout为0.5,权重为0.2。3.1.2数据集本文使用4个来自于真实世界的数据集,并将数据集划分为训练集、验证集和测试集。其中,Beauty 和 Games数据集是McAuley32等从亚马逊爬取的产品评论数据集;Steam 数据集是游戏平台 Steam 的评论数据;Movielens1M数据集是被广泛使用的基准数据集,包含了一百万用户的电影评级33。数据集详细信息如表1所示。3.1.3评估指标本 文 选 用 两 个 常 见 的 Top-N 评 价 指 标 HITK 和NDCGK 评价推荐模型的性能。HIT是衡量召回率的一种常用指标,NDCG(归一化折扣累计收益)是一个0到1之间的数,主要思想是对推荐列表中的每一项都会根据其所处位置除以一个递增的数,然后累加得到DCG,最后对所有的DCGs作归一化处理得到NDCG。其代表着用户喜欢的商品被排在推荐列表前面比排在后面能更大程度地提升用户体验。为了避免对所有用户物品进行计算,本文遵循相应的策略34-35。对每一个用户,随机采样 100个负样品,并与真实交互物品一起排名,基于这101个物品计算HITK和NDCGK。3.1.4推荐模型本文在对比实验中选择了7个推荐模型。FPMC14:通过矩阵分解和一阶马尔科夫链,获得物品的转移矩阵和用户的通用兴趣,而进行推荐的模型。GRU4Rec+36:GRU4Rec16的改进版本,采用了不同的损失函数和采样策略,在 Top-N 推荐中取得了显著效果。STAMP6:利用注意力机制构建推荐模型而不是使用RNN或CNN构建模型。SASRec4:使用从左到右的Transformer模型进行推荐的模型,在序列推荐中取得了显著的效果。Bert4Rec22:其弥补了 SASRec4的单向建模,采用了双向建模序列。TiSASRec37:融入了时间戳的自注意力模型,不仅考虑物品的绝对位置,还考虑序列中物品之间的时间间隔。LSAN38:利用组合嵌入的方式并且融入了上下文感知的注意力网络,同时消除了传统多头自我注意力的冗余。3.1.5实验结果本文推荐模型(PAGRURec)在4个数据集上都取得了较为明显的效果,实验结果如表2所示。Table 1Dataset information表1数据集信息Dataset#users#itemsAvg.action/userAvg.action/items#actions/MBeauty52 02457 2897.66.90.4Games31 01323 7159.312.10.3Steam334 73013 04711.0282.53.7ML-1M6 0403 416163.5289.11.0Table 2Experimental result表2实验结果DatasetsBeautyGamesSteamML-1MMetricsHIT5HIT10NDCG5NDCG10HIT5HIT10NDCG5NDCG10HIT5HIT10NDCG5NDCG10HIT5HIT10NDCG5NDCG10FPMC0.278 40.431 00.210 10.289 10.440 60.680 20.327 10.468 00.531 90.771 00.396 10.501 10.609 10.759 90.440 20.517 6GRU4Rec+0.245 30.394 90.197 80.255 60.427 80.659 90.317 70.475 90.571 30.801 80.480 60.559 50.579 00.750 10.506 60.551 3STAMP0.373 30.460 70.258 90.302 00.531 10.683 80.331 80.455 70.601 60.762 40.512 00.605 20.620 40.741 30.493 70.566 9SASRec0.364 40.480 70.274 90.319 90.624 30.730 10.486 90.529 90.745 20.867 40.575 30.620 30.719 00.822 60.556 80.592 3Bert4Rec0.384 50.492 40.301 30.340 40.653 70.758 10.505 50.562 00.770 10.873 30.589 00.639 80.732 10.827 90.553 40.634 5TiSASRec0.387 70.504 50.298 30.331 80.612 20.728 70.485 50.539 70.746 00.810 30.585 10.589 70.729 80.823 80.567 40.610 6LSAN0.401 90.512 90.303 00.358 80.659 90.763 20.512 20.549 20.795 90.881 40.600 80.644 70.735 50.829 90.580 20.639 0PAGRURec0.416 40.523 10.310 70.367 10.668 00.751 80.525 00.553 10.786 40.893 70.619 00.650 50.742 80.833 50.589 10.641 2 100第 10 期吴晓,成卫青:结合注意力机制与循环神经网络的序列推荐模型在各数据集上,本文推荐模型与其他模型相比,各项指标得到较大提升。以Beauty数据集为例,与非深度学习中的FPMC模型相比,HIT10提升21.3%,NDCG10提升了26.9%;与深度学习中的SASRec模型相比,HIT10提升8.8%,NDCG10 提升 14.7%;与最近的 LSAN 模型相比,HIT10提升2%,NDCG10提升2.3%。3.2消融实验本文进行消融实验如下:(1)删除位置嵌入(RemovePE)。自注意力模型本身并不具备感知位置信息的能力,删除短期偏好中的位置信息,忽略了用户交互历史的顺序关系。在长序列中,由于短期偏好与最近的一个或者几个历史行为有着较大的联系,因而删除位置嵌入可能会导致模型性能下降,但对用户序列较短的稀疏数据集影响较小。(2)删除残差连接(RemoveRC)。残差网络能将网络的浅层信息传递到深层,避免产生网络的退化等问题。删除残差连接使信息的传递出现较大问题,导致浅层网络参数无法更新,模型性能变差。(3)删除 Dropout(RemoveDropout)。Dropout是指在深度学习网络训练过程中,对神经网络单元,按照一定的概率将其暂时从网络中丢弃,是防止模型过拟合和提高效果的手段,删除Dropout使得模型性能有所下降。(4)删除随机共享嵌入(RemoveSSE)。SSE23的主要思想是将嵌入矩阵中的某一内容以事先定义好的概率随机替换为另一个内容,从而使嵌入层具有正则化的效果。删除过后模型发生严重的过拟合现象。(5)增加或删除自注意力模块数(Block=1,Block=3)。在密集数据集如ML-1M中,堆叠更多的自注意力模块能够学习用户历史行为中更加复杂的关系,能够在一定程度上提升模型性能。在稀疏数据集例如Beauty中,增加或删除自注意力模块个数对整体影响不大。(6)使用多头注意力机制(Multi-Head,Head=2)。用户的兴趣往往是多方面、多维度的。例如,用户对一件商品的喜爱可能不仅仅因为它的品牌,还可能因为它的价格或者质量等。因此,使用多头注意力机制能够更加准确地获得用户的兴趣。消融实验结果如表3所示。3.3实验分析3.3.1用户长期偏好用户长期偏好中的注意力机制不同于短期偏好中的自注意力,其Q、K、V并非由同一输入经过线性变换得到。对于输入用户序列,首先经过 GRU 神经网络得到用户每个时刻的初步兴趣ht,将其视为查询向量Q,同时也视为V,并通过计算辅助损失l2提高V的准确性;然后对输入用户序列经过线性变换得到K;通过计算注意力,最后求和得到用户的长期偏好。如图8所示,QKT表示了每个时刻用户兴趣与用户交互物品之间的注意力权重。从宏观角度看,本文长期偏好与以往的长期偏好一样是静态、全局的,但获取方式却与以往求均值等方式不同,其内部是动态的,充分利用了用户的每个交互历史,采用每个时间点兴趣ht动态组成用户的长期偏好,解决了信息遗漏、平均等问题。例如,在用户一个长期购物行为中,用户购买的商品中大多为运动鞋、运动袜等运动产品,小部分为数码产品。随着用户序列的增加,根据求均值的方法获取用户长期兴趣,数码产品在用户长期兴趣中的占比可能被稀释,因而占比极小,那下一个推荐的产品大概率就是运动产品。而本文长期偏好模块能较为精确地获取用户一个长期行为中每个时刻的兴趣,再通过注意力机制将所有的兴趣融合为用户的长期兴趣,能够充分利用用户交互过的每个商品,避免上述问题。如图9所示,在稀疏数据集Beauty中,用户序列平均长度仅为7.6,STAMP长期偏好模块与本文长期偏好模块在性能上相差不大。由于用户序列较短,STAMP通过对用户序列求均值,进行高阶线性变换可以简单高效获得用户的长期偏好,并且用户序列越短,准确度也越高。本文长期偏好模块较为复杂,在短用户序列中可能会产生过拟合现象,因此在稀疏数据集中表现一般。但随着隐藏维度的提Table 3Ablation experiment(based on NDCG10)表3消融实验(以NDCG10为例)ArcHITectureDefaultRemove PERemove RCRemove DpRemove SSE1 Block3 BlockMulti-HeadBeauty0.367 10.360 20.328 50.343 30.331 60.362 80.367 40.362 9Games0.553 10.547 00.507 70.521 20.489 40.547 90.555 50.559 8Steam0.650 50.639 10.614 50.621 70.590 30.649 60.657 60.652 9ML-1M0.641 20.627 10.599 20.599 50.597 20.638 10.640 60.649 3Fig.8Visual diagram of attention weight图8注意力权重可视化图 1012023 年软 件 导 刊高,其捕捉物品隐藏维度d之间非线性关系的能力得到了体现,两者之间的差距逐渐缩小。如图10所示,在密集数据集ML-1M中,用户序列平均长度为163.5,本文长期偏好模块对比STAMP模型取得了约60%的提升。在密集数据集中,本文长期偏好模块通过非线性变换注意力机制加权求和3个阶段,结合l2损失函数,充分利用了用户每个时刻所交互过的物品,避免了 STAMP 长期偏好模块可能导致的信息遗漏、平均现象。3.3.2用户信息SASRec 模型中,预测层将用户信息与兴趣相加进行预测,实验结果表明添加用户信息并没有提高模型性能,因此认为用户兴趣已经能够充分地表示用户信息。但推荐模型中用户信息显然必不可少,其有助于提高模型个性化能力。本文在模型输入阶段,将用户信息与用户序列进行拼接,结合随机共享嵌入正则化技术,按照0.02的概率随机替换用户序列中交互过的物品,提高模型个性化能力。图11表示了ML-1M数据集在不同隐藏维度d下添加用户信息与不添加用户信息NDCG10指标的表现情况。3.3.3门控函数本文先后尝试了3种方法将短期偏好ms和长期偏好ml相结合。除上文提到的方法外,还有2种方法:将短期偏好与长期偏好直接相加得到最终的用户偏好;分别求短期偏好与长期偏好对用户序列的相似性权重,再进行加权求和得到最终的用户偏好。本文采用的方法相比于第一种直接相加的方法,能够自适应分配短期偏好与长期偏好的权重;相较于第二种方法中短期偏好与长期偏好的权重取决于各自对用户序列的相似度,本文中的权重由短期偏好与长期偏好共同决定,长期偏好与短期偏好并不是孤立的,因而取得了最好的效果。3.3.4训练效率图12展示了ML-1M数据集下基于GPU的训练效率。GRU4Rec由于其性能较差而被省略。为了公平比较,所有模型仅使用最近的 200个操作进行训练。在计算速度方面,本文模型只花费了 1.5 s进行一次模型更新,比 LSAN和SASRec快1倍以上,比STAMP快10倍以上,比Caser快Fig.11Performance diagram of user information图11用户信息性能表现图Fig.9Beauty dataset图9Beauty数据集Fig.10ML-1M dataset图10ML-1M数据集Table 4Comparison of gating functions表4门控函数比较DatasetsBeautyGamesSteamML-1MMetricsHIT5HIT10NDCG5NDCG10HIT5HIT10NDCG5NDCG10HIT5HIT10NDCG5NDCG10HIT5HIT10NDCG5NDCG10Method10.361 10.483 20.270 10.307 80.619 50.735 90.473 30.534 00.742 90.868 20.580 90.621 70.709 60.812 00.553 90.601 7Method20.389 90.500 70.303 90.339 10.641 30.745 10.506 50.549 90.759 00.880 40.605 30.640 30.719 00.827 60.566 80.625 0Method30.416 40.523 10.310 70.367 10.668 00.751 80.525 00.553 10.786 40.893 70.619 00.650 50.742 80.833 50.589 10.641 2 102第 10 期吴晓,成卫青:结合注意力机制与循环神经网络的序列推荐模型12倍。在ML-1M数据集上,本文模型在大约300 s内收敛到最佳性能,而其他模