融合自注意力的旅游电商智能推荐方法
2022-05-18王国泰许艳阳贺名流
何 倩, 王国泰, 许艳阳, 贺名流
(桂林电子科技大学 卫星导航定位与位置服务国家地方联合工程研究中心,广西 桂林 541004)
随着互联网、物联网、通信技术、云计算等相关技术的迅猛发展,“互联网+”不断为产业赋能,智慧城市、智慧医疗、智慧出行等概念不断产生,并由机器学习、大数据从软件层面为产业发展提供动力。“互联网+”为旅游领域赋能催生出智慧旅游,为传统旅游领域带来了深刻的变革,为人们的出游提供越来越便捷的智能服务,出游选择更加丰富。除传统的跟团游外,个性化出游愈加地成为人们的出游选择。当今旅游景点门票、酒店、餐饮、游玩资源,除传统的线下售票模式外,越来越多地被整合构建为旅游电商平台。旅游电商平台与传统的电商平台在商品内容上存在一定的差异化,商品间存在的时空连续性具有较大的关联度,浏览序列的前后具有较高的逻辑性,商品在类别上具有较好的区分度。基于旅游电商与传统电商存在以上差异,运用序列推荐类方法,并结合商品的分类特征,能够在旅游电商领域更好地捕捉到用户偏好,并给出合适的推荐结果。
图1 商品分类信息下用户的商品选择过程
近年来,序列推荐在捕获用户的动态偏好上已成为推荐系统的主要利器[1-3],对序列交互的建模已在社交网络的用户推荐、新闻推荐等领域取得了不错的效果。在挖掘用户序列交互的相关工作中,研究者主要从2个角度考虑:一是通过关注序列发生的绝对时间来捕获用户和商品的时间动态变化,即商品的流行度可能随时间而动态改变,用户的偏好也会随时间而发生偏移,如流式推荐[4];另一个关注点聚焦于用序列中绝对位置预测下一个可能的商品交互,常用的方法为马尔可夫链[5]和循环神经网络[6]。马尔可夫链在处理高稀疏数据集、获取短期偏好变化的推荐场景中取得了不错的效果,但在长期复杂的场景中无法胜任。循环神经网络通过对大量数据的学习,能够对用户的长期偏好进行建模记忆,完成基于马尔可夫链模型无法胜任的工作。
当今,受谷歌Transformer[7]模型在机器翻译领域取得巨大成功的启发,自注意力机制越来越多被研究者运用于推荐系统以解决用户偏好的变化,基于自注意力机制的方法在推荐结果上显著优于MC/CNN/RNN方法。序列中所有商品都有两两独特的时间间隔,借鉴TiSASrec[1]模型,充分考虑时间间隔和相对位置作为注意力的参考因素,随着时间跨度的增长,对于权重的贡献将会逐渐减弱。
在序列推荐领域,已有方法[28]很难从用户行为中感知到类别信息对用户交互的影响。对于辅助信息的利用,往往直接将上下文信息衍生出来的特征向量作为辅助输入[8-10],这样的策略导致模型很难利用上下文信息的结构特征去增强推荐性能,如商品的分类信息。为了充分提升序列推荐对上下文特征的利用程度,借鉴TMRN[2]中的多跳推理网络模型,并运用旅游电商商品层次性和关联性分布规律,运用分类信息来指导用户的选择过程。图1给出了一个直观的例子,桂林市爱就订电商平台中的关于用户进行商品选择交互的过程。从图1可看出,商品分类信息本质上是一个树状层级结构,其中非叶节点代表一个分类标签为分组标签或具有一些商品的语义属性,叶子结点代表具体的商品。在进行序列推荐时可利用这些结构性信息提升推荐准确率,在这样的过程下用户的偏好将被更加准确地锁定。
将用户交互序列通过自注意力机制,对相对时间间隔和相对位置表示进行特征处理,获得用户特征偏好序列;将该序列与商品分类信息输入类别感知多跳推理层,在多跳推理网络中运用GRU进行长期记忆,运用层次分类信息进行多跳推理,最终获得用户的偏好表示。
1 相关工作
1.1 序列推荐
运用基于序列的推荐算法挖掘用户交互序列中的行为模式及偏好特征,为用户提供下一个项目的推荐。一些研究通过捕获不同商品之间的转移矩阵来预测下一个商品。如FPMC[11]使用矩阵分解和转移矩阵的方式对用户的长期偏好和动态转换进行建模。该转移矩阵是一个一阶马尔可夫链,仅考虑当前商品与之前商品的相关关系。Fossil[12]使用基于相似度的方法和高阶马尔可夫链,其假定下一个商品与前几个商品存在密切关系,并证明了基于高阶马尔可夫链的方法在稀疏数据集中有很高的性能。基于卷积神经网络(convolutional neural network,简称CNN)[13-14]方法将序列中前面的几个商品视为“图像”,并通过一个CNN来联合这些“图像”,挖掘商品间的转移关系。基于循环神经网络(recurrent neural network,简称RNN)及其变体GRU和LSTM的相关方法[2,15]使用RNN对整个用户交互序列进行建模。这些方法在稠密的数据集下取得了良好的结果,但在稀疏的数据集上通常表现出较差的性能。
商品分类数据是一种特定类型的上下文信息,通常划分为树形结构。与基于知识[16]的相关方法相比,该类数据更容易获取,在现实系统中被广泛运用。以往的方法通常使用分类数据来解决推荐模型中的稀疏性问题[17]。Kanagal等[18]将分类信息和潜在因子模型相结合来改进序列推荐。Zhang等[19]从购物数据中自动发现分类,共同学习一个基于分类的推荐系统。Wang等[20]用树增强的嵌入模型构建可解释的推荐器。Huang等[2]使用分类数据的结构组织构造分层的多跳推理网络。
1.2 注意力机制
注意力机制已被证明在处理看图说话(image caption)、机器翻译(machine translation)等任务时具有极高的可靠性和高效性。从本质上讲,注意力机制背后的理念是,输出取决于输入的特定相关部分,即输入的某些部分可能会比其他部分对决策更有帮助,这种机制可以计算输入的权重,使模型更易于解释。现今,注意机制已经被纳入推荐系统[1,15,22],Transformer[7]在机器翻译领域中运用注意力机制实现了超高的优越性能。Transformer使用缩放点积注意力机制,其定义为
(1)
其中:Q、K、V分别表示查询、键和值。在自我注意中,3种输入通常使用同一对象。Transformer的自注意力模块在顺序推荐方面被广泛运用,并取得了不错的成果[1,15,21]。随着对自注意力机制研究的深入,发现由于自注意力模型不包含任何循环或卷积模块,其无法对前面项目的位置进行感知。一种解决方案是以一个确定性函数或可学习的位置嵌入[7]在输入中添加位置编码。另一种解决方案使用相对位置表示[22],着眼于商品两两间的相对位置关系。
2 SATMSRec模型架构
2.1 问题描述
令U、I分别表示用户和商品集,在融合商品分类信息时间间隔感知的序列推荐环境中,对于用户u∈U,用户行为序列表示为
(2)
(3)
2.2 SATMSRec用户偏好获取概述
模型在特征处理阶段的输入为用户交互序列,如式(2),时间间隔矩阵:
(4)
其中:
Mu∈N(|Su|-1)×(|Su|-1);
序列输入和时间间隔矩阵进入嵌入层,实现低维到高维的转换,之后进入时间感知自注意力层,完成序列权重的初始化,RELU逐元素前馈层使序列具备非线性特征,并解决过拟合和梯度消失问题,最终获得用户偏好感知特征序列,如图2所示。随后用户偏好感知特征序列结合商品分类信息在类别感知多跳推理层进行用户偏好的最终学习。
图2 时间间隔感知自注意力机制特征处理
在类别感知多跳推理层,首先将用户偏好感知特征序列输入GRU网络以获取长期记忆和当前状态,当前状态结合商品多层次分类信息进行多跳学习,获取一个多跳偏好,将多跳偏好与长期记忆结合以获取用户最终偏好表示,如图3所示。
图3 类别感知多跳推理层
3 SATMSRec实现细节
将进入SATMSRec方法中的各个组件进行详细描述,包括嵌入层、时间感知自注意力层和类别感知多跳推层。
3.1 嵌入层
在本层中,针对商品序列和时间间隔矩阵构建嵌入层矩阵。首先构建商品嵌入层矩阵MI∈R|I|×d,其中d是潜因子变量的维度,常向量0作为嵌入层的填充项。对当前商品查询检索其序列前n个商品的嵌入层向量,将其转置横排列后,得到n×d维向量,EI∈Rn×d:
(5)
(6)
类似位置的嵌入模型,得到键和值的嵌入矩阵分别为:
(7)
这2个相对时间间隔嵌入矩阵是对称矩阵,且对角线上元素均为0。
3.2 时间间隔感知自注意力层
考虑到同一个序列中同样的2个商品的不同时间间隔对用户偏好具有不同的影响程度,提出了一个基于自注意力的扩展。在同一个序列中到目标商品的时间间隔rij越小,其在用户决策中的影响力越大,该类时间间隔关系增加了基于时间间隔衰减的衰减系数:
(8)
其中:rmax为序列中时间间隔的最大值;k为系数常数。构建时间间隔感知自我注意力机制:对每个序列EI中的n个商品,计算一个新的序列Z=(z1,z2,…,zn),
(9)
式中:WV∈Rd×d为注意力机制中值的输入投影;wij为综合考虑用户序列输入、时间间隔和位置信息因素,经一个改良后的自注意力机制中的兼容性函数计算得到,
(10)
其中:WQ∈Rd×d,WK∈Rd×d分别为自注意力机制中的查询和键的输入投影,
(11)
为经由softmax函数处理后的权重参数,比例因子d用以防止当维度特别大时产生一个较大的内积。
3.3 RELU逐元素前馈层
经过时间间隔感知自注意力层后的输出序列包含同序列中之前的所有商品、绝对位置、带有可更新权重的相对时间信息。之后进入RELU逐元素前馈层,由于之前的操作都是在线性变换的基础上进行的,在该部分用2个带有ReLU激活函数的线性变换使模型具有非线性特征:
FFN(zi)=max(0,ziW1+b1)W2+b2,
(12)
式中:W1、W2∈Rd×d;b1、b2∈Rd。
想到年少的梦,竟然如此苍白。紫云瞧不起林志,女人味太浓了,生来就不是做大事的。林志没有正式工作,在学校做勤杂工,负责修剪校园里的花草。
由于增添了自注意力层和前向反馈层,过拟合和梯度消失的问题随之出现,且需要更多的训练时间。借鉴文献[7]和文献[22]中的解决方案,采用层归一化、残差连接和dropout正则化技术来解决上述问题:
(13)
其中:⊙为逐元素乘运算符;μ、σ分别为z的均值和标准差;α、β分别为学习率和偏置项。
Zi=zi+Dropout(FFN(LayerNorm(zi)))。
(14)
整个特征处理流程如图2所示。至此,经过使用嵌入层和注意力机制的特征工程,得到用户u的偏好感知特征序列:
(15)
3.4 类别感知多跳推理层
(16)
(17)
(18)
(19)
(20)
3.5 模型预测
(21)
4 实验分析
4.1 数据集
实验收集2个真实世界的数据集,分别为京东数据集[23]和自建桂林市爱就订旅游电商数据集,并收集了相关商品分类信息。京东数据集的分类信息包含主类别、子类别和品牌3层。爱就订数据集中包含主类别、一级类别和二级类别3层。在经数据脱敏后收集到自2018年至2020年11月的相关用户的浏览购买的部分数据,同时为了构建爱就订商品分类信息,对商品信息使用TextRank进行关键词提取并构建词向量,用k-means进行聚类,通过综合评估Calinski-Harabaz指数、轮廓系数和到聚类中心距离,选取合适的聚类数。同时针对2个数据集,过滤掉不活跃用户和商品。当交互数少于k时,对京东数据集设置k=5,爱就订数据集设置k=8,对这2个数据集的详细描述如表1所示。
表1 数据集统计
4.2 评价指标
采用2个常用Top-N评价标准:Hit@10和NDCG@10对推荐结果进行评估。Hit@10统计测试集中正例排名出现在Top10的数目占总数的比率。NDCG@10考虑到排名位置对结果的影响,排名越靠前应当分配更高的权重。对于每个用户u,随机采100个样例,并将一个期望正例混在其中,基于这101个样例计算Hit@10和NDCG@10。
4.3 对比方法
收集了如下方法与SATMSRec进行对照,分别为:不考虑序列模式的基本推荐方法BPR,基于一阶马尔可夫链的方法FPMC、TransRec,基于深度神经网络的方法GRU4Rec+、CVRCF、TMRN和TiSASRec。
1)BPR[25]。贝叶斯个性化排名是一个用于商品推荐的经典方法,采用矩阵分解和贝叶斯公式构建用户的偏好模型。
2)FPMC[11]。该模型结合矩阵分解和一阶马尔可夫链能够分别捕获用户的长期偏好和动态变化。
3)TransRec[26]。该方法将用户建模为商品到商品的转换向量,基于一阶马尔可夫链捕获用户状态转移。
4)GRU4Rec+[27]。该模型对用户交互序列进行建模,为基于会话的推荐算法。对比GRU4Rec,GRU4Rec+采用一个新颖的损失函数设计和采样策略,性能提升显著。
5)Caser[28]。该模型将用户最近交互序列嵌入时间和潜因子空间,将其理解为“图像”的概念,并将卷积滤波器学习序列模式作为“图像”的局部特征,在Top-N推荐中取得了不错的效果。
6)TMRN[2]。该模型基于商品分类信息构建基于GRU和记忆网络的多跳推理网络,将序列推荐中的偏好学习与商品分类的层次信息相结合。
7)TiSASRec[1]。该模型将自注意力机制引入序列推荐中的时间间隔,同时对商品的绝对位置和时间间隔进行建模。
为了保证对比的可靠性,通过改造并使用Cornac[29]完成了BPR、FPMC、TransRec算法的实验;使用DeepRec[30]完成了GRU4Rec+、Caser;对于TMRN和TiSASRec关于实验参数,使用作者提供的代码进行了实验验证。选用潜因子空间维度为{10,20,30,40,50},正则化超参范围为{0.000 1,0.001,0.01,0.1,1},学习率为{0.1,0.0,1,0.001,0.000 1}。对于其他参数,使用对应文献的默认设置。在训练过程中,使用验证集进行参数调整,若验证集经20个时期未有性能提升,则结束训练。
4.4 实现细节
用Tensorflow进行了模型实现,通过验证集进行细粒度的调参。在特征处理阶段,使用2个时间间隔感知的自注意力层,在多跳推理层使用3个MLP学习分类层次信息,对于所有的数据集,学习率为0.001,批次大小为128,dropout设置为0.2,其余相关参数在表2中给出。所有实验在Docker环境下用一个NVIDIA Tesla M10,显存为8 GiB的显卡进行。
表2 超参设置
4.5 推荐性能
表3为在2个数据集下8种方法的推荐性能。SATMSRec对比最优的TiSASRec基准方法,无论是在传统电商数据集还是爱就订旅游电商数据集上都取得了不错的性能提升,本模型使用了文献[1]中的依据商品、绝对位置和时间间隔来调整权重的注意力机制,能够更好地捕获用户的偏好。同时相较于TMRN[2]中的复杂模型架构,设计了一个精简的基于GRU的多跳推理网络,使用GRU的长期偏好记忆替代了全局保存的记忆组件。
表3 推荐性能统计
4.6 超参对模型的影响
潜因子维度d对模型的影响:图4为NDCG@10在保持其他因素不变的条件下,对于维度d从16到256的变化曲线。大部分情况下,更大的维度d会得到更好的性能。
图4 潜因子维度d对推荐性能的影响(NDCG@10)
最大序列长度n对模型的影响:图5为NDCG@10在保证其他参数不变的情况下,最大序列长度n从10到50的变化曲线。随着序列长度的增加,推荐性能会先增长,而后达到拟合。
图5 最大序列长度n对推荐性能的影响(NDCG@10)
5 结束语
面向旅游电商领域向游客提供高准确度的商品推荐,提出了一种基于自注意力机制并结合商品分类信息的推荐方法(SATMSRec)。SATMSRec在充分考虑序列的绝对位置和相对时间间隔的基础上,引入了商品侧结构性分类信息,提升了对用户偏好捕获的准确度,在对未来商品预测上取得了不错的效果。实验结果表明,SATMSRec无论在传统的电商数据集,还是旅游电商数据集中都优于其他对照方法。在今后的工作中,将进一步挖掘辅助信息对推荐效果的提升,并考虑在面对大规模的数据集时如何在分布式架构下提升模型的训练速度。