APP下载

时间感知的双塔型自注意力序列推荐模型

2024-01-11余文婷

计算机与生活 2024年1期
关键词:注意力建模维度

余文婷,吴 云+

1.贵州大学 公共大数据国家重点实验室,贵阳 550025

2.贵州大学 计算机科学与技术学院,贵阳 550025

在电子商务的推荐系统中,捕捉用户的偏好以做出适当的推荐是至关重要的。在互动中,用户的兴趣是动态的并随着时间变化。传统的基于协同过滤的推荐模型[1-2]专注于从用户最近一次交互中捕获用户的兴趣,导致它们只能学习到片面的行为偏好。与之相比,基于序列建模的推荐模型[3-6]通过对用户的交互行为序列进行建模,能够学习用户不同时期的行为偏好,提供更准确的推荐。因此,序列推荐在各种推荐方法中变得非常重要。

最初研究者们利用马尔可夫链(Markov chain,MC)来建模序列数据。MC 假设用户的下一次交互受之前的一次交互(或几次交互)影响,因此基于MC的模型[7-9]可以从序列数据中捕捉到短期的项目之间相关性,但这也导致它们在复杂的长序列建模场景中难以发挥作用。近年来,深度学习网络的出现有效地解决了这一问题。递归神经网络(recurrent neural network,RNN)最先被应用于序列推荐算法研究中。基于RNN 的推荐模型包含时间关系,可以有效地建模长序列中交互之间的相关性。但是RNN 强调严格的顺序关系,而用户行为之间并无明确的次序,这使得基于RNN 的模型可能学习到虚假的项目相关性。随后,自注意力机制的出现,解决了基于RNN 算法的局限性[10]。自注意力机制通过计算每个项目对的关注权重来捕捉项目间的依赖关系,淡化了交互的先后顺序。

传统的顺序推荐方法假定交互间拥有相同的时间间隔,它们不考虑时间戳,仅保留互动的顺序关系。然而,用户的兴趣是复杂而多变的。本文认为用户的兴趣在时间上表现为以下两种特性:(1)兴趣聚合。用户在同一阶段的互动是高度相关的。图1显示了Amazon's Beauty 数据集中某用户的行为数据。根据交互的时间,本文将用户的交互划分为不同的阶段。可以看出,每个阶段用户都专注于喜欢某一类商品。(2)兴趣漂移。用户的偏好是动态的,并随着时间的推移而变化。这意味着用户的行为会受到兴趣漂移的影响。建模互动的时间间隔可以学习用户个性化的兴趣漂移。如图2 所示,假设用户1和用户2 拥有相同的交互序列。用户1 在一周内完成了所有行为,而用户2 需要三个月完成。由于交互时间间隔不同,它们的兴趣漂移过程也不同,代表不同的偏好习惯。针对这种情况,推荐系统应该考虑给出不同的预测。

图2 用户兴趣漂移示例图Fig.2 Example of preference drift

近几年来,许多融合时间感知的推荐模型[11-15]通过建模时间戳学习交互之间时间间隔长短对项目相关性的影响。它们利用互动间的时间间隔来提升网络的能力,使其能够学习时间维度上的项目相关性。然而如何更加细粒度地在序列建模框架中探索时间层面项目的相关性,仍然是一个挑战。

因此,本文对交互序列的时间关系进行建模,显性地衡量用户的每次交互行为对其下一次交互的影响程度。本文提出了一个新的时间感知的位置嵌入方法,量化兴趣聚集和兴趣漂移,赋予位置嵌入感知时间的能力。具体来说,首先按照交互时间顺序将行为序列划分为不同的阶段,并将阶段之间的距离定义为一个权重,称之为兴趣权重,表示阶段内的交互行为与下一次交互的行为在时间上的相关性。随后,将兴趣权重与绝对位置嵌入相融合。在计算两个互动之间的位置关系时,其时间上的关系也将会被考虑。

在近几年的研究中,将项目特征引入序列的建模框架中[16-19],通过建模项目与特征之间的相关性来提高推荐的准确性。此外,由于数据稀疏性问题,对于仅出现一次或几次的项目,模型很难学习到准确的项目表示,并且由于用户兴趣的多样性,模型难以判断哪个特征会最终影响用户的交互。为此,本文将项目特征建模引入整体推荐框架中,在传统序列建模的基础上增加了一个特征级的自注意力模块,用于建模特征级的序列模式,同时采用多维度的注意力分数计算方式,分别从特征-特征、项目-项目以及项目-特征三个维度考虑特征之间的相关性,并且该模块融合了时间感知位置嵌入,能够学习到特征随时间的变化过程。

本文的主要贡献如下:

(1)本文将用户的交互序列视为具有不同时间间隔的序列,通过交互之间的时间间隔提取用户阶段性兴趣特征,并提出兴趣权重用来捕获用户兴趣漂移过程,在此基础上,结合兴趣权重提出了时间感知的位置嵌入方法。

(2)基于时间感知位置嵌入,本文提出了一个时间感知的双塔自注意力网络。TiDSA(time-aware sequential recommendation model based on dual-tower self-attention)分别从项目级和特征级建模序列模式。特别的是,在特征级自注意力模块,TiDSA 采用多维度特征建模方法,通过从三个不同的维度计算特征-特征、项目-项目以及特征-项目的注意力分数,捕获多维度的特征相关性。结合时间感知位置嵌入,TiDSA 通过统一地建模时间与项目以及特征之间的关系来学习用户偏好的时间动态性。

(3)本文在四个不同的真实推荐数据集进行了一系列实验来验证TiDSA 的推荐效果。结果表明,与经典的基线模型相比,TiDSA 在两个排名指标上都取得了优秀的结果。

1 相关工作

1.1 序列推荐算法

早期,顺序推荐的研究利用马尔可夫链从用户交互序列中捕捉顺序模式。基于马尔可夫链的模型首先生成一个项目-项目转移的概率矩阵,然后使用这个矩阵来预测下一次的互动。Shani 等人[7]将推荐生成视为一个序列优化问题,并使用马尔可夫链解决。后来He 等人[8]将矩阵分解和一阶马尔可夫链结合起来,分别对来自用户交互的长期和短期偏好表示进行建模。随后,文献[9,20]将其扩展到高阶马尔可夫链。然而所有基于马尔可夫链的方法都存在相同的缺点,即它们假设用户的下一次交互只与之前的交互或几个交互有关,导致它们只能对几个相邻项目之间的局部顺序模式进行建模。随着深度神经网络的发展,大量的深度学习网络被应用于顺序推荐,如RNN 及其变种网络(如门控递归单元、长短时记忆)。Hidasi 等人[3]提出GRU4Rec,使用门控递归单元对顺序模式进行建模。除了递归神经网络外,各种深度学习模型也被引入到顺序推荐中。例如,文献[21-22]利用卷积神经网络(CNN)建模用户关系,文献[23]通过记忆网络存储更多序列信息,文献[24-25]则通过自注意力机制建模序列关系。

尽管基于RNN 和基于自注意力网络的模型在模拟用户序列模式方面表现良好,但它们忽略了交互的时间信息。研究人员尝试对RNN 与自注意力网络进行改进。其中,文献[12]与文献[13]分别对LSTM(long short-term memory)与GRU(gated recurrent unit)网络进行改进,设计了时间门控来捕获相邻两次交互之间的兴趣转移,以此来获取交互之间的时间相关性。文献[14]改进了自注意力网络,在计算注意力分数时加入了相对时间间隔,探索不同时间间隔对下一次交互的影响。此外,也有研究人员对序列数据进行处理,如进行会话划分、长短序列划分。文献[26]将序列划分为长期序列与短期序列,研究长期序列中交互项目与短期项目之间的时间长短对下一次交互预测的影响。这些方法通过建模交互的时间间隔来学习交互的时间相关性。然而它们仅考虑了互动的时间距离对序列模式的影响,这在时间信息的建模上仍存在局限性。本文将交互序列分割成阶段,并对用户交互的时间间隔以及阶段聚合进行建模,这有助于网络学习更细粒度的时间属性。

1.2 融合上下文的序列推荐算法

传统的序列推荐算法在建模用户兴趣时仅考虑项目ID 中蕴含的序列模式,这使得模型信息获取不充分,进而影响模型的性能。为此,研究人员将用户或项目上下文信息引入到建模过程中。Zhang等人[16]提出FDSA(feature-level deeper self-attention network)模型,分别对项目ID 和项目特征的序列数据进行建模,提高推荐的准确性。此外,除了项目的属性特征,研究人员也尝试将文本特征与图片特征引入到序列建模过程中。Cui等人[19]融合图片与文本特征获取多模态数据,并利用RNN 动态捕获用户的兴趣。Lin 等人[27]设计了获取用户上下文信息的辅助学习任务,来获取特定类型用户喜欢项目的变化趋势,进而增加模型预测的准确性。然而,文本特征和图片特征等上下文信息的提取多采用预训练模型,在最终的特征融合模块仍存在融合不充分问题。因此,本文将重点研究属性特征对模型的提升作用。

2 本文方法

本章包含三部分内容。首先是问题陈述,随后详细介绍时间感知位置嵌入方法,最后以自下而上的方式阐述了TiDSA 的关键组成部分:嵌入层、双塔型自注意层和预测层。TiDSA 模型结构如图3 所示。

2.1 问题陈述

定义U={u1,u2,…,u|U|}表示用户集,I={i1,i2,…,i|I|}表示项目集,其中|U|和|I|分别表示用户个数和项目个数。由于用户行为序列长度不固定,首先将其转换为固定长度。对于长度小于n的序列,采用左填充“0”的方式使其长度达到n;而对于长度大于n的序列,截取最新n次交互作为该用户的行为序列,得到用户u的行为序列表示t时刻用户交互的项目。随后,定义Ci={ai,1,ai,2,…,ai,|C|}表示项目i的特征集合。例如类别、品牌和价格等。此外,定义表示用户u的交互时间戳序列。最终,模型的目标是预测用户u在(n+1)时刻的交互项目。

2.2 时间感知位置嵌入方法

本文为建模时间层面的项目相关性,提出了一种新的时间感知位置嵌入方法。首先,由于用户兴趣的聚集性,本文将行为序列Su划分为m阶段,使每个阶段拥有相同的时间间距。给定用户u的交互时间序列,设置阶段的间距为ε,用户的交互行为被划分到不同的阶段中:

其中,mi∈[1,2,…,m]表示项目i所在的阶段。

为了量化兴趣偏移,本文将阶段距离之差定义为兴趣权重,用来衡量不同阶段内的交互行为对下一次交互预测的影响程度。兴趣权重定义如式(2)所示:

其中,ri表示项目i的兴趣权重。可以看出,同一阶段内的交互拥有相同的兴趣权重,表明它们对下一次交互预测的影响程度相同。

定义Pu=[p1,p2,…,pi,…,pn]表示绝对位置嵌入,其中Pu∈Rn×d并且d表示向量维度。时间感知位置嵌入定义如式(3)所示:

其中,⊙表示哈达玛积,hi表示项目i的时间感知位置嵌入向量。

如Hu∈Rn×d图4 所示,将序列中所有项目的位置嵌入向量拼接得到用户u的位置嵌入矩阵Hu=[h1,h2,…,hi,…,hn]。与传统的绝对位置嵌入不同,时间感知位置嵌入引入了用户时间层面的个性化信息,能够标识具有不同行为习惯的用户。

图4 时间感知位置嵌入的生成Fig.4 Sample of generating time-aware positions

2.3 TiDSA 模型结构

2.3.1 嵌入层

在大多数相关研究中,用户交互序列中的项目通过项目ID 唯一标识[28]。然而基于这种表示方法的模型在具有高稀疏性的数据中不能很好地工作。对于只出现一次或几次的项目,它们无法有效学习到准确的项目表示,会极大地限制模型的推荐准确性。为此,本文引入了一个特征级的自注意力模块来学习特征级序列模式,作为项目级序列模式的补充。在嵌入层中,本文分别对项目ID 和项目的特征进行编码。

(1)项目ID 嵌入表示:本文将项目ID 视为项目的一个特殊属性,通过嵌入查找操作将所有的项目转换为d维的嵌入向量M∈R|I|×d。对于每个序列,检索n个项目的嵌入,并将它们堆叠得到项目嵌入矩阵。

(2)特征嵌入表示:特征分为离散型和连续型两类。给定项目i的特征集Ci={ai,1,ai,2,…,ai,|C|},对于离散型特征,通过嵌入查找操作检索得到它们的嵌入表示;而对于连续型特征,将检索得到的嵌入向量乘以它们的值得到最终的嵌入表示。将所有特征的嵌入向量堆叠得到项目i的特征嵌入矩阵。对于序列中的其他项目,采用同样的方式获取它们的特征嵌入向量。通过堆叠操作得到特征嵌入矩阵EA∈Rn×|C|×d。具体操作如图5所示。

图5 特征嵌入矩阵的生成Fig.5 Sample of generating feature embedding

最终,将时间感知位置嵌入矩阵Hu分别与项目嵌入矩阵EI和特征嵌入矩阵EA,i相结合,如式(4)所示:

其中,“+”表示element-wise加法。

2.3.2 双塔型自注意力层

该层由项目级自注意力模块和特征级自注意力模块组成,分别建模特征级与项目级的序列模式。

(1)特征级自注意力模块:传统的特征级序列建模方式多采用拼接或池化等技术对特征嵌入矩阵进行压缩,例如池化、拼接等。这些技术只能从二维的角度学习特征之间的相关性。由于用户兴趣的多样性,推荐模型难以把握哪些特征会影响用户的选择。为此,在传统自注意力分数的基础上,增加了特征维度以及项目维度的自注意力分数,将从三个不同的维度捕获特征与特征、项目与项目以及特征与项目之间的相关性。

具体来说,给定特征嵌入矩阵EA∈Rn×|C|×d,首先,通过线性映射得到三个矩阵QueryQA=[qi,j]、KeyKA=[ki,j]和ValueVA=[vi,j],i∈[1,2,…,n]和j∈[1,2,…,|C|],如式(5)所示:

随后,依次计算三个不同维度的注意力分数。

①特征维度。计算同一项目不同类别的特征的注意力权重,如式(6)所示:

其中,[qz,j]∈QA和[kz,j′]∈KA为一个向量,表示项目z的不同特征向量,j,j′∈[1,2,…,|C|]。“∙”为哈达玛乘积。

②项目维度。衡量同类特征中不同项目之间的相关性,如式(7)所示:

其中,[qi,z]和[ki′,z]表示项目i与项目i′中对应的特征z的向量,i,i′∈[1,2,…,n]。同样的,通过哈达玛乘积计算它们的相关性。

③项目与特征交叉维度。该维度相当于传统的自注意力层,计算所有Query 向量与Key 向量之间的注意力分数,得到的每个自注意力分数都融合了来自不同项目、不同特征带来的综合影响,如式(8)所示:

其中,[qi,j]∈QA和[kz,j′]∈KA表示一个向量,并且i,i′∈[1,2,…,n]和j,j′∈[1,2,…,|C|]。

最后,将三个维度的注意力分数通过加权求和得到最终的注意力分数,如式(9)所示:

其中,α1、α2和α3为三个可训练参数,表示三种注意力分数对应的权重。为避免内积值过大的比例因子。

受文献[29]启发,本文采用多头注意力,在h个子空间中分别学习不同维度的特征交互,如式(10)所示:

随后,通过一个双层的前馈神经网络赋予模型非线性特征。本文采用GELU(Gaussian error linear unit)[5]作为激活函数。

随着网络的加深,本文采用Layer Normalization和Dropout操作来缓解过拟合和梯度消失问题。

其中,g(x)表示自注意力层和前馈神经网络层。

最终,通过堆叠b(b>1)个自注意力模块学习复杂的特征级序列模式。

其中,∀k∈[1,2,…,b]。

(2)项目级自注意力模块:该模块采用传统的Transformer 网络来捕获项目之间的相关性。给定EI作为本模块的输入,首先通过线性映射得到自注意力层的三个输入矩阵QI、KI和VI。其注意力分数计算如式(14)所示:

同样地,利用多头注意力来学习不同子空间的信息,并通过Layer Normalization 和Dropout 操作来缓解过拟合和梯度消失问题。

2.3.3 预测层

为了应对项目冷启动问题,本文将项目的特征作为项目的信息补充。在预测阶段,将特征级自注意力模块的输出与项目级自注意力模块的输出相拼接作为预测层的输入。

2.4 模型训练

本文中,用户行为被转换为一个固定长度的序列,定义ot表示模型在t时刻的期望输出:

TiDSA 以用户行为序列作为输入,旨在训练模型预测用户下一次交互的能力。为此,输出序列{o1,o2,…,ot,…,on}中的元素都代表一个预测结果。预测值与标签越接近,表示模型的性能就越好。

本文采用标准交叉熵作为优化器:

其中,D表示所有的训练样本,yi表示训练样本中的标签,为预测层的输出。

3 实验

3.1 数据集

实验所有数据集分别来自两个不同领域的四个公共数据集。它们具有不同的大小和稀疏性。

(1)Amazon Beauty,Sports,and Toys:这是来自Amazon[30]的商品评论数据集。本实验将使用其中的三个子集“Beauty”“Sport and Outdoors”和“Toys and Games”。方便起见,下文采用“Beauty”“Sports”和“Toys”作为简称。此外,实验使用类别、品牌和价格作为项目的特征。

(2)Yelp(https://www.yelp.com/dataset):这是一个商务推荐数据集。由于其数据量巨大,本次实验仅使用了2019 年1 月至6 月的交易记录。

在数据预处理上,实验遵循文献[4-5]中的做法。对于所有数据集,忽略所有的评分和评论数据,并将所有的记录转换为隐式反馈1,表明用户与该项目进行了交互。随后,将用户的交互行为按时间戳排序,为每个用户构造交互序列。此外,为保证数据质量,删除反馈少于5 次的用户。经预处理后的数据集信息如表1 所示。

表1 预处理后数据集统计特征Table 1 Statistics of datasets after preprocessing

3.2 基线模型

为了验证TiDSA 的有效性,该模型与以下具有代表性的基线模型进行了比较,包括不考虑序列建模的PopRec、基于RNN 的GRU4Rec、基于自注意力机制的SASRec 和BERT4Rec、融合特征建模的FDSA,以及时间感知建模的TiSASRec。此外,本文还改进了SASRec模型,命名为SASRec+。

(1)PopRec:此模型为最简单的基线。根据受欢迎程度对项目进行排序,并根据排序结果,将最受欢迎的项目推荐给用户。

(2)GRU4Rec[3]:该模型利用GRU 建模用户交互序列。本次实验采用嵌入向量来表示项目,而非onehot向量。

(3)SASRec[4]:该模型是一种基于自注意力机制的序列推荐。

(4)SASRec+:该模型在SASRec 模型的基础上,引入了时间感知位置嵌入。SASRec+可以看作TiDSA 的简易版本,即它只建模项目级的序列模式。

(5)BERT4Rec[5]:该模型利用双向自注意力机制对用户序列进行建模。

(6)FDSA[16]:该模型构建了一个特征建模模块,用于建模特征级的序列模式。

(7)TiSASRec[14]:该模型显性地将交互时间间隔引入Transformer网络中。

3.3 实验设置

对于GRU4Rec、SASRec 和TiSASRec,使用原作者提供的源代码进行实验。对于BERT4Rec,利用PyTorch 框架进行复现该模型。所有模型均按原论文设置超参数,并在最优参数设置下得到基线结果。所有实验均在GTX-3090Ti GPU 上进行。

TiDSA采用PyTorch实现,设置自注意力块b=2、注意力头数h=4、嵌入维度d=64、最大序列长度n=50。对于Beauty、Toys 和Sports 数据集,阶段间距离ε=30,对于Yelp,ε=7。TiDSA 使用Adam 优化器[31],其中,学习率设置为1E-3 并采用线性衰减的方式调整学习率,β1=0.9,β2=0.99 以及正则项l2=0.001。遵循文献[4-5]中的设置,本实验采用留一策略,即对于每个用户的交互序列,最后一个项目作为测试数据,倒数第二个项目作为验证数据。批量大小设置为100,当验证集性能在20 个周期内没有提高,则终止训练。

3.4 评价指标

本实验采用两种常用的Top-N评估指标,命中率(hit rate,HR)和归一化折损累计增益(normalized discounted cumulative gain,NDCG)。其中,命中率用于衡量推荐的正确性,而NDCG 是一种位置感知的指标,为排名靠前的位置分配更大的权重。

由于真实数据集的项目集合巨大,将所有项目作为测试的候选项会耗费大量时间。因此,本文采用文献[4-5,14]中的策略,随机抽取99 个该用户未交互的项目作为负样本,与唯一正样本一起进行排名,并计算对应的HR 和NDCG 的值。

3.5 实验结果与分析

表2 显示了所有模型在四个数据集上的模型性能。实验结果分析如下:

表2 模型性能对比Table 2 Performance comparison of models

(1)PopRec 在所有数据集上的表现最差,这表明了个性化推荐方法的有效性和必要性。在基线模型中,SASRec、BERT4Rec、FDSA 和TiSASRec 的表现都超过了GRU4Rec。这表明,自注意力机制具有更强大的序列建模能力。此外,本次实验中,SASRec在两个指标上的表现比BERT4Rec 更好。一种可能的原因是在稀疏的数据集和较短的序列中,双向Transformer 模型出现了过拟合,限制了模型的建模能力。此外,在大多数情况下,FDSA 在所有基线模型中表现最好。这表明对序列数据建模时考虑项目特征可以提高模型的性能。

(2)SASRec+中融合了时间感知位置嵌入,从实验结果可以看出,SASRec+的表现优于SASRec,表明时间感知的位置嵌入有助于模型学习时间层面的项目相关性和把握用户兴趣动态变化的过程,能够更好地建模序列模式。而与TiSASRec 相比,在Beauty数据集上(NDCG@10)SASRec+的模型性能提高了12%。在时间建模方面,TiSASRec 仅考虑了相邻项目之间的时间间隔对与项目的相关性,忽略了用户兴趣在时间层面的聚集性,因此其性能不及SASRec+。

(3)TiDSA 在四个数据集上的表现都优于本文对比的基线模型。与FDSA 相比,TiDSA 的性能提升了11.7%,与TiSASRec 相比,TiDSA 的性能提升了23%。这说明了TiDSA 在建模用的动态偏好上具有明显的优势。

3.6 消融实验

3.6.1 时间感知位置嵌入的影响

本小节讨论时间感知位置嵌入对模型性能的影响。为此,实验对TiDSA 进行了以下两种修改:

(1)将时间感知位置嵌入替换为绝对位置嵌入,修改后的模型称为TiDSA-T。

(2)删除TiDSA 中的位置嵌入,修改后的模型称为TiDSA-P。

为了公平,本次消融实验在上述四个数据集中进行,并使用3.3 节中的参数设置。如表3 所示,TiDSA 拥有更出色的预测能力。这表明时间感知位置嵌入通过整合来自时间维度与空间维度的位置信息,帮助模型学习到更丰富的项目相关性。

表3 三种位置嵌入方法的比较Table 3 Comparison among three position representation methods

3.6.2 兴趣权重对兴趣漂移捕获的影响

本小节讨论兴趣权重捕获用户兴趣漂移的可行性与有效性。给定具体用户的行为序列(userID:2232),本实验对TiDSA 与TiDSA-T 的具体推荐预测(Top20)进行统计分析,其中,TiDSA-T 采用绝对位置嵌入方式,即不考虑交互时间对用户的下一次交互的影响。

如图6 所示,对于用户当前兴趣(Skin Care),TiDSA 给出的推荐结果中占最大比例,而对于最多交互类别(Nail&Nail Tools),由于时间的推移,存在用户兴趣漂移的可能性,TiDSA 给出较少的推荐,TiDSA-T 则是给出较平均的推荐结果。这说明,兴趣权重让TiDSA 具有较强的捕获用户兴趣漂移的能力。

图6 TiDSA 和TiDSA-T Top20 推荐的统计结果Fig.6 Recommended results statistics of top 20 of TiDSA and TiDSA-T

3.6.3 自注意力模块的影响

(1)双塔自注意力模块对模型性能的影响

为了验证两个模块的有效性,在Beauty、Toys、Sports 和Yelp 四个数据集上进行消融实验,并采用NDCG@10 作为评估指标。在完整模型TiDSA 的基础上,定义以下两个消融模型,以验证每个模块的有效性。

①仅建模项目级的序列模式,此时,TiDSA 将退化为SASRec+模型。

②仅建模特征级的序列模式,为了方便,称之为TiSSA。

从图7 的结果中可以观察到,去除任一模块都会影响模型的性能。这表明,每个模块都有助于提高推荐的性能。此外,特征级自注意力模块比项目级自注意力模块更重要。可以看到,SASRec+仅考虑项目级建模产生较大的性能下降,这说明特征级自注意力模块建模了多种特征之间的相关性,增强了序列建模中的交互相关性的提取,可以得到更准确的项目表示。

(2)特征级自注意力模块对模型性能的影响

在特征级自注意力模块,本文设计了三个不同维度的注意力分数计算方式。为了验证每种注意力的有效性,在Beauty、Toys、Sports 和Yelp 四个数据集上进行消融实验,“-FA”“-IA”“-AA”分别表示去除相应维度的注意力分数得到的模型,而其他设置保持不变。实验采用HR@10 作为评估指标。

实验结果如图8 所示,可以观察到,去除任一维度的注意力分数都会导致性能下降,它们对提高推荐性能都是有用的。此外,它们的重要性在不同的数据集上是不同的。总的来说,FA、IA 和AA 的共同作用加强了模型建模项目与特征相关性的能力,并且FA 和AA 更加重要,缺少FA 或AA 都会产生较大的性能下降。

3.7 超参数的影响

本节将讨论超参数对模型的影响来进一步验证TiDSA 的稳定性。

3.7.1 维度d 的影响

嵌入维度d是一个关键超参数,本实验分析了嵌入维度d从16 到64 变化时,模型性能的变化情况。为了公平,实验保持其他超参数的值不变。如图9 和图10 所示,三个基线模型(SASRec、BERT4Rec 和TiSASRec)随着d的增大会出现过拟合现象,而TiDSA 的预测能力会逐渐趋于临界值,最终收敛。

图9 嵌入维度d 对模型性能的影响(NDCG@10)Fig.9 Impact of embedding dimensionality d on ranking performance(NDCG@10)

图10 嵌入维度d 对模型性能的影响(HR@10)Fig.10 Impact of embedding dimensionality d on ranking performance(HR@10)

3.7.2 最大序列长度n 的影响

图11 显示了最大长度n的值从10 到50 变化时,模型性能的变化过程。实验比较了TiDSA和TiDSA-T的模型性能,可以看到,在所有数据集上TiDSA 拥有很强的稳定性。TiDSA 的性能随着n的增加而提升,并最终收敛。另一方面,TiDSA-T 的稳定性较差,当n较大时就会导致过拟合。

图11 最大长度n 对模型性能的影响(NDCG@10)Fig.11 Impact of maximum length n on ranking performance(NDCG@10)

4 结束语

本文将交互时间信息建模融入到用户序列建模过程中,以捕获用户的偏好随时间变化的过程,提高了推荐的准确性。首先,本文设计了一个具有时间感知能力的位置嵌入方法。它能够学习用户的每个历史行为与下一次交互的相关性,获取用户兴趣聚集与兴趣漂移信息。随后,基于时间感知位置嵌入,本文提出了时间感知的双塔型自注意力网络,分别从项目和特征的层面学习用户偏好的时间动态,充分把握用户偏好的变化过程。最后,对比实验结果证明TiDSA 的性能优于许多先进的序列推荐基线模型。并且消融实验结果进一步验证了时间感知位置嵌入与双塔型网络对模型性能提升的促进作用。

在未来的工作中,考虑引入文本特征、图片特征等更多项目的上下文信息,并研究如何实现不同上下文特征之间的有效融合。

猜你喜欢

注意力建模维度
让注意力“飞”回来
联想等效,拓展建模——以“带电小球在等效场中做圆周运动”为例
浅论诗中“史”识的四个维度
基于PSS/E的风电场建模与动态分析
不对称半桥变换器的建模与仿真
“扬眼”APP:让注意力“变现”
A Beautiful Way Of Looking At Things
光的维度
“五个维度”解有机化学推断题
三元组辐射场的建模与仿真