融合时间信息的序列商品推荐模型

2023-03-27 02:04徐红艳党依铭王嵘冰
计算机技术与发展 2023年3期
关键词:注意力向量神经网络

徐红艳,党依铭,冯 勇,王嵘冰

(辽宁大学 信息学院,辽宁 沈阳 110036)

0 引 言

随着互联网的快速发展和广泛应用,信息的爆炸性增长使人们为做出合理的选择需要投入更多的时间和精力。个性化推荐系统作为处理信息过载的有效工具,一直倍受学界和业界的关注。大型电商平台的推荐系统既能准确预测用户的偏好,又能快速响应用户当前的需求,而传统的协同过滤推荐和基于内容的推荐等模型[1]主要根据用户的访问记录计算用户间的相似度,为用户寻找近邻用户,利用近邻用户的偏好预测目标用户的偏好进行推荐。这些推荐模型主要对静态用户交互进行建模,而未考虑到用户对项目的交互顺序,因此不能很好地发掘用户历史行为序列中的动态兴趣变化。基于序列的推荐模型对用户历史行为序列进行建模,能够同时捕捉到用户即时的短期兴趣与稳定的长期兴趣,反映出用户在一段时间内的兴趣变化,相较于传统推荐模型可以提高推荐结果的多样性,更加符合用户的需求。

为了更好地利用历史行为序列中的时间信息,建模用户动态兴趣变化,有学者使用不同的时序预测和时间感知预测方法对用户兴趣进行建模。循环神经网络(Recurrent Neural Network,RNN)能够很好地处理序列化数据,在提取信息时保留足够的历史信息[2-4],因此在对用户兴趣偏好的挖掘上起到了比较良好的辅助效果。Li等人[5]提出了BINN模型,分别使用基于用户交互的神经项目嵌入方法和基于LSTM的判别行为模型学习目标用户稳定的长期兴趣与当前的短期兴趣。YouTube[6]使用深度神经网络(DNN)对用户和项目的特征分别学习其嵌入向量,然后对项目向量基于用户搜索最近邻项获得推荐结果。这些对历史行为序列的分析和建模在一定程度上缓解了推荐结果同质性的问题,但用户的兴趣在短时间内可能会发生较大变化,如何及时、准确地捕捉用户行为序列中的动态兴趣变化以提升电商平台的用户体验,是当前亟待解决的难点问题。

基于上述分析,该文考虑到用户历史行为序列中不同时间间隔下的动态兴趣变化,在短期兴趣建模中加入时间信息,提出了融合时间信息的序列商品推荐模型(Sequential Product Recommendation Model Integrating Time Information,SPRTI)。首先,为了明确用户的兴趣变化节点,将历史行为序列以会话为单位,区分用户的短期行为序列与长期行为序列;然后,在传统的门控循环单元结构(Gated Recurrent Unit,GRU)[7]中加入时间信息,建模不同时间间隔对用户兴趣变化的影响,并利用多头自注意力机制(Multi-Head Self-attention)[8]捕捉用户不同的兴趣倾向,获得用户的短期兴趣表示。对于用户的长期行为采用DeepFM网络[9]获得长期兴趣表示;最后,通过自适应门控结构融合用户的长短期兴趣,应用sigmoid函数进行评分预测,选择top-N方法推荐评分靠前的商品。为了验证模型的有效性,在淘宝数据集上进行了对比实验。相较于基准模型,提出的模型在命中率、平均倒数排名两个指标上都明显优于基准模型。

1 相关研究

1.1 基于序列的推荐模型

基于序列的推荐的目的是对用户的偏好进行建模,并根据观察到的用户的历史行为,以基于序列的方式预测用户未来的行为,如下次点击或购买。在早期的工作中,使用基于马尔可夫链(MC)的模型进行序列推荐。基于马尔可夫链的模型是基于之前的行为学习转移矩阵进行推荐。Rendle等[10]提出的分解个性化马尔可夫链(FPMC)将转移矩阵分解为两个潜在的和低秩的子矩阵,以此提高推荐的准确率。Mcauley等[11]提出了基于物品相似模型的分解序列预测方法,对已有物品的潜在表示进行加权和聚合,将基于马尔可夫链的方法推广到高阶。最近,神经网络在序列建模中也取得了不错的效果,王娜等[12]利用深度神经网络词向量模型分析用户播放视频行为序列,提取视频的特征向量,对历史视频进行聚类计算相似度,得到视频推荐结果。葛尧等[13]使用图卷积网络(Graph Convolution Network,GCN),同时利用用户与项目之间的异质顶点交互信息和同质顶点交互信息,挖掘交互图谱中的连接信息。但这些研究没有很好地考虑到历史行为序列中隐藏的用户动态偏好,因此,该文分别建模用户的长短期兴趣,在项目匹配阶段获得更准确的结果。

1.2 基于长短期兴趣的推荐模型

用户的兴趣会随着时间的改变动态变化。通常来说,用户兴趣可以分为易变的短期兴趣和稳定的长期兴趣。在某个时间段内,短期兴趣与用户的当前选择有着密切的联系,用户兴趣中稳定的长期兴趣也反映了用户在过去较长时间的总体偏好。实际上,用户的长短期兴趣仅代表了不同上下文环境下用户关注点的偏移,分别建模长短期兴趣能够利用不同类型的用户输入,获取更全面的用户兴趣。因此,如何提取用户的长短期兴趣并将其有效地融合是研究的重点。蒋武轩等[14]采用时间窗口的方法挖掘用户短期兴趣,利用遗忘曲线跟踪用户长期兴趣变化,在此基础上对用户进行聚类,根据聚类结果为用户推荐兴趣相似用户。为了在建模时取得更好的效果,许多研究者在开发推荐模型时引入了具有强大表征能力的深度神经网络。Hu L等人[15]提出了一个异质图神经网络编码用户、新闻和主题之间的高阶关系,同时设计了一个融合注意力的LSTM模型基于最近的阅读历史来建模用户的短期兴趣。冯永等[16]利用携带历史元素的循环神经网络(RNN)和基于前馈神经网络(FNN)的协调过滤模型分别建模用户的长短期兴趣进行动态推荐。Ma C等[17]提出了一种内存增强图神经网络MA-GNN,利用图神经网络对短期项目进行建模,然后使用共享内存网络捕捉项目之间的长期依赖关系,同时采用双线性函数来捕获相关项目的共现模式。Qi等[18]设计了一个新的模型,在用户行为序列长度增加的情况下建模用户的长期兴趣,首先利用候选商品查询相关行为序列,然后建模相关序列和候选商品的准确关系。

上述研究考虑到了最新的项目比以往的项目对用户当前行为具有更大的影响,但无法很好地建模用户在短期内剧烈变化的偏好特征,并忽略了用户在购买商品时会综合考虑许多不同的因素。因此,该文提出了SPRTI模型,通过改进的GRU模型融合注意力机制捕捉更符合用户偏好的会话意图,使预测结果更符合用户当前的购买需求。

2 模型框架

用户在使用在线购物服务时,对项目进行的各种点击、购买、收藏等交互行为构成了用户历史行为序列,历史行为序列中包含了用户在购买时的上下文信息,隐含了用户在某一时间点的兴趣及其变化过程。SPRTI模型根据用户的历史行为序列,分别提取用户的长短期兴趣特征,预测用户对项目的评分生成推荐结果。模型框架如图1所示,具体分为三部分:第一部分为短期兴趣建模,首先通过一定的规则将历史行为序列划分为不同的会话,并使用会话内项目的Embedding特征向量来表示会话,其中将最新会话视为用户的短期行为,提取短期兴趣,在GRU结构中加入时间门单独处理用户不同行为之间的时间间隔,同时加入多头自注意力机制获取用户意图背后多个不同的关注点;第二部分为长期兴趣建模,将用户的历史会话序列视为长期行为,使用DeepFM模型进行处理;第三部分为评分预测,通过自适应门控单元结合用户的长短期兴趣,根据融合后的用户长短期兴趣向量与目标项目向量预测候选项目的评分,选择topN项进行推荐。下面对模型中核心环节分别进行详细描述。

图1 SPRTI模型整体架构

2.1 短期兴趣建模

在实际的购物场景中,用户的行为序列中隐含着用户兴趣,对行为序列的建模也能反映出用户兴趣的动态变化。用户的各种决策行为不仅与当前的兴趣有关,也与用户的历史兴趣有关,并且通常认为用户在短期会话内的兴趣会对当前决策产生更大的贡献。传统的基于序列的推荐通常采用基于统计学的方法建模依赖关系,缺乏复杂环境下的建模能力。

考虑到循环神经网络(RNN)在处理序列时能够保留前项的历史信息,在处理序列数据时能起到更好的效果,该文采用门控循环单元(GRU)建模短期行为。GRU网络包括更新门和重置门,具体计算过程如公式(1)~公式(4)所示[7]。

zt=σ(xtUz+ht-1Wz)

(1)

rt=σ(xtUr+ht-1Wr)

(2)

ht=tanh(xtUh+(st-1⊙rt)Wh)

(3)

st=(1-zt)⊙st-1+zt⊙ht

(4)

其中,σ表示sigmoid激活函数,zt为更新门,rt为重置门,⊙表示向量的点积,xt表示GRU网络的输入,表示用户在t时刻历史行为序列的嵌入向量,ht为当前时刻的候选隐藏状态,最后输出st代表用户t时刻的偏好状态。

但在建模序列的过程中,传统的RNN模型及其变体通常将用户行为序列中的项目视为均匀分布的顺序序列,忽略了在实际购物场景中,用户的不同交互行为之间存在着不同的时间间隔,短时间内用户的交互可能代表了相同的购买意向,经过比较大的时间间隔后用户的兴趣可能已经发生了转移,这些时间信息对于建模用户的动态兴趣也是十分重要的。为了解决这一问题,该文在GRU模型中加入时间门单独存储时间间隔信息,对于模型的影响,使用改进后的GRU模型建模短期行为来捕获短期序列中的全局时间关联性。融合时间信息的门控单元网络如图2所示,时间门控单元以及改进后的隐藏状态计算过程如公式(5)~公式(7)所示。

图2 融合时间间隔的门控循环单元结构

Tm=σ(xtUt+σ(ΔtWt)+b)

(5)

ht=tanh(xtUh+(st-1⊙rt⊙Tm)Wh)

(6)

st=(1-zt)⊙st-1+zt⊙ht

(7)

其中,Δt为历史行为与当前时刻的时间间隔,Wt,Wh∈Rnh且Wt≤0,Tm表示时间门,用于存储时间间隔对模型造成的影响。显然,公式(5)为单调递减函数,随着时间间隔的增大,函数值会减小,这就保证时间间隔较小时Tm输出比较大的值,时间间隔较大时Tm输出比较小的值,为更近的历史行为赋予了更大的权重。

一般来说,用户在单个会话内的兴趣较为稳定,不同会话之间的兴趣漂移比较明显。但是即使是在同一个会话内,也可能会产生用户兴趣漂移,比如用户在一段时间内对衣服感兴趣,另一段时间可能又对日用品感兴趣,而这两种项目类型所代表的用户兴趣是完全不同的,且不同的历史兴趣对于当前意图的影响也是完全不同的。因此,要想从用户的行为中更精准地捕捉相对随机且无序的用户兴趣,除了考虑用户行为随时间演化的变化规律,捕捉项目之间存在的意图距离也能有效地从复杂的综合序列中提取与用户当前需求相关的用户兴趣。除此之外,在实际购物场景中,用户通常会随机点击一些与当前会话内兴趣无关的商品,这些随机点击的商品在一定程度上也会影响对短期兴趣的建模。

该文采用自注意力机制调整每个分量的权重,决定哪些历史即时兴趣应该被重点关注,同时降低随机点击造成的影响。考虑到用户的点击行为背后可能会包含不同的兴趣点,如商品的价格、品牌、店铺等,单一的注意力机制无法对多个方面进行表征,因此,该文引入多头自注意力机制[8],更好地建模短期序列,并尽可能保留与用户兴趣相关的点击。

多头自注意力网络对原始的Q、K、V矩阵进行线性变换,分成不同的注意头,每个head单独进行点积操作,得到的结果拼接后进行线性变换,获得最终输出。计算过程如公式(8)~公式(9)所示[19]。

(8)

(9)

(10)

则注意头的计算可以通过公式(11)实现:

(11)

针对不同的用户,每个会话中的即时兴趣序列对用户短期兴趣的贡献也不尽相同,因此在自注意力网络的基础上,使用用户的嵌入向量作为查询向量来进一步挖掘用户的短期兴趣表示。计算过程如公式(12)~公式(13)所示。

(12)

(13)

其中,eu为用户的嵌入表示,αk为权重分数,pshort为用户的短期兴趣表示。

2.2 长期兴趣建模

在较短的用户行为周期序列中,用户的兴趣会发生剧烈的变化,所以基于短期偏好的推荐效果比较明显。但从长远来看,用户长久以来的稳定偏好也会影响当前的决策。例如,如果一个用户是游戏爱好者,他可能会点击或者购买大量主机游戏相关条目。当他选择购买电脑时,高性能的游戏本会比普通的轻薄笔记本更吸引他。因此,该文将历史会话序列视为用户的长期行为,采用DeepFM模型提取用户稳定的长期兴趣。

如图3所示,DeepFM模型分为FM和Deep两部分,FM层可以抽取低维特征,Deep层抽取学习高维特征,而这两部分的分量共享相同的原始特征向量。因此DeepFM模型能够结合广度和深度模型的优点,同时学习到各阶特征之间的组合关系。

图3 DeepFM架构

首先,将用户的长期行为序列经过嵌入层得到低维稠密向量,将稠密向量进行横向拼接,作为FM层和Deep层的输入。

FM层即因子分解机,不仅可以建模1阶特征,还可以通过隐向量点积的方法高效地获得2阶特征交互。Deep层为前馈神经网络,通过几层全连接计算学习高阶交互表述,DeepFM的计算过程如公式(14)~公式(16)所示[9]:

(14)

al+1=σ(Wlal+bl)

(15)

LDNN=σ(W|H|+1·aH+bH+1)

(16)

其中,Vi为特征i的潜在向量,FM层的输出分为一阶计算和二阶计算两部分,一阶计算为原始特征的线性交互,二阶计算部分对经过embedding的结果做二阶交叉计算。al为前馈神经网络的第l层输出结果,经过H个隐藏层,得到Deep部分的预测结果LDNN。

将FM部分的结果和Deep部分的结果累加,之后再经过sigmoid非线性转换,得到用户的长期兴趣表示,如公式(17)所示[9]。

plong=sigmoid(LFM+LDNN)

(17)

2.3 评分预测

基于上述两种神经网络得到了用户的短期兴趣表征和长期兴趣表征,在实际推荐中,长期兴趣和短期兴趣对用户当前需求的影响会随着不同的环境因素发生变化。一些推荐方法通过时间衰减函数控制这两种表征对用户兴趣的贡献程度,但这种方法会导致短期兴趣的影响远远大于长期兴趣,从而造成推荐结果的同质性。为了更好地表征用户的兴趣向量,该文通过一个自适应的门控网络将这两种表征进行结合,门控单元Gt用于控制在当前时间t下长短期兴趣的贡献度。如公式(18)~公式(19)所示[20]:

Gt=sigmoid(W1eu+W2pshort+W3plong+b)

(18)

pu=(1-Gt)⊙plong+Gt⊙pshort

(19)

其中,eu为用户的嵌入表示,plong和pshort分别为用户的长期兴趣和短期兴趣,W为权重矩阵,⊙为元素的点积操作,pu为最终的用户长短期兴趣向量表示。

根据融合后的用户长短期兴趣向量与目标项目向量预测候选项目的评分,选择topN项进行推荐,如公式(20)所示。

(20)

其中,ei为目标项目的嵌入向量表征。

该文将评分数据采用交叉熵损失函数作为目标函数进行训练,通过随机梯度下降算法(SGD)优化目标函数直至收敛,如公式(21)所示。

(21)

其中,N为训练集的样本数量,K为抽样实例集,包括正负样本,σ为sigmoid函数,将预测评分转换为相应概率,λ为正则项参数。

3 实验及结果分析

3.1 数据集与对比模型

为了验证模型的准确性,选取采集自淘宝App的用户点击购买行为数据集进行了对比实验。数据集中包含了一个月时间内来自50万个用户与商品的交互记录,用户-商品交互记录为用户ID、项目ID、交互类型和时间戳组成的四元组,其中交互类型包括点击、收藏、加购物车和购买。参照前人的工作经验[21],在数据集中根据历史行为数量与交互频率选取了连续8天内与超过40个项目进行交互的活跃用户。对于每个用户,将其前7天的交互数据作为训练用例,第8天的交互数据作为测试用例,以最大不超过20的会话长度将历史行为序列划分为多个不同的会话,其中用户的每一次最新会话视为短期行为,在此之前的所有行为视为长期行为。训练集与测试集的统计信息如表1所示。

表1 数据集的基本统计信息

为了验证模型的有效性,选取Item-based CF、RNN、DNN和BINN模型进行了对比实验,模型介绍如下。

(1)Item-based CF[1]:基于项目的协同过滤算法,最主要的推荐算法之一,通过生成商品-商品相似度矩阵进行推荐。

(2)RNN[3]:基于循环神经网络的推荐算法,利用RNN网络对顺序序列进行建模。

(3)DNN[5]:基于深度神经网络的YouTube视频推荐算法,将视频向量与用户向量连接后反馈给多层前馈神经网络生成推荐列表。

(4)BINN[4]:采用基于RNN的方法对当前消费动机和历史行为进行编码,同时加入了时间刻度信息。

(5)SPRTI:融合时间信息的序列商品推荐模型,即该文提出的模型。

3.2 评价指标

为了评估提出的模型的有效性,使用命中率HR@K(HitRate)和平均倒数排名MRR(Mean Reciprocal Rank)这两个评价指标进行测试。在模型返回的推荐列表中,选取评分最高的前K个项目作为最终的推荐结果推荐给用户。

HR@K代表测试结果中被正确推荐的项目在列表前K位的比例,关心的是是否正确推荐了用户想要的项目,即推荐的准确性。MRR@K主要关心推荐结果对于用户是否显眼,MRR通过对推荐列表内项目排名的倒数取平均值来评价推荐顺序的质量,这两个指标的定义如公式(22)~公式(23)所示:

(22)

(23)

其中,N表示测试项目的数目,nhit为推荐列表中推荐正确的商品数量,ranki表示项目在推荐列表中的排名。HR@K和MRR@K的值越大,代表模型的推荐质量越高。

3.3 实验结果分析

在训练的过程中,采用学习率为0.001的Adam优化器进行优化,超参数的设置根据验证集进行调整,对比模型采用对应论文中的默认参数,根据相关实验结果设置多头注意力机制的头数为4。在K取值为5、10、15、20下进行了对比实验,不同的模型在数据集下的实验结果如表2和表3所示,SPRTI模型在不同K值下的命中率和平均倒数排名指标均取得了更好的效果。

表2 各个算法在淘宝数据集上命中率对比

表3 各个算法在淘宝数据集上平均倒数排名对比

其中,传统的协同过滤算法无法建模用户行为序列,推荐效果并不理想,其他基于深度学习的方法能够建模更加深层次的特征,在处理序列时表现明显优于传统的推荐算法。相较于传统的RNN和DNN模型,BINN模型同时考虑了用户长短期兴趣的演化,取得了更好的效果。由此可以看出,细分用户的长短期兴趣能够对用户的动态兴趣进行更精准地建模,使推荐结果更加符合用户偏好。但由于BINN模型在提取短期兴趣时,使用的还是传统的RNN结构,未能建模用户在不同时刻下更精准的兴趣转变,因此最终的推荐性能不如提出的SPRTI模型。

在淘宝数据集中,用户在会话内的交互行为十分频繁,会话间的行为联系紧密。频繁的交互行为使得基于循环神经网络的模型结构无法区分短期时间内用户剧烈的兴趣变化,而提出的SPRTI模型能够根据两次不同交互行为之间的时间间隔确定用户的购买意图是否已经发生了转变,从而建模更加准确的短期兴趣表示,因此取得了更好的推荐效果。相较于其他对比模型,SPRTI模型在不同K值下的命中率和平均倒数排名指标中都取得了最好的效果,可以看到当推荐列表长度为15时,在命中率指标上SPRTI模型较BINN模型提升得最高,达到了8百分点;推荐列表长度为20时在平均倒数排名指标上,SPRTI模型较BINN模型有最高提升,达到了5百分点。

在SPRTI模型中,多头自注意力机制使得短期内用户的兴趣表示更加准确。为了探明注意力头数对模型性能的影响,在淘宝数据集上进行了验证,采用命中率HR和平均到数排名MRR这两个评价指标,实验设置中只有SPRTI模型注意力头的数量不同,其他参数保持一致,实验结果如图4所示。从图4中可以看到,开始时随着注意力头数的增加,模型在HR和MRR这两个指标上的表现也越来越好,而当注意力头数超过4时,模型的性能并没有随着注意力头数量的增加而提高,可能是由于每个注意力头内的向量维度过小而导致了性能下降。因此在对比实验中设置多头自注意力机制的注意力头数为4,由此取得最好的效果。

图4 SPRTI模型在不同注意力头数下的结果

4 结束语

该文提出了一个融合时间信息的序列商品推荐模型,通过结合长短期兴趣来捕捉用户的动态偏好。首先,将用户行为序列划分为不同的会话,并将最新会话视为用户的短期行为,其余历史会话视为用户的长期行为;然后,利用融合时间间隔信息的GRU模型和多头自注意力机制提取用户的短期兴趣,同时采用DeepFM模型建模用户的长期兴趣;最后,利用自适应门控单元融合用户的动态偏好。在淘宝数据集上的实验结果表明,模型在命中率和平均倒数排名上较其他主流推荐模型取得了比较突出的效果,证明了该模型的有效性。

猜你喜欢
注意力向量神经网络
向量的分解
让注意力“飞”回来
聚焦“向量与三角”创新题
神经网络抑制无线通信干扰探究
“扬眼”APP:让注意力“变现”
A Beautiful Way Of Looking At Things
向量垂直在解析几何中的应用
基于神经网络的拉矫机控制模型建立
向量五种“变身” 玩转圆锥曲线
复数神经网络在基于WiFi的室内LBS应用