章淯淞 夏鸿斌,2 刘 渊,2
随着大数据时代的到来,推荐系统变得愈发重要,可为用户提供广泛的符合其兴趣爱好的选择与决策.在传统的推荐系统中,较主流的三类算法分别为基于内容[1]的推荐算法、基于协同过滤[2]的推荐算法及混合推荐算法,但都面临数据稀疏及冷启动问题[3],难以面对数据量爆炸式增长的互联网环境.
随着深度学习技术的不断更新迭代,相继出现卷积神经网络(Convolutional Neural Networks, CNN)、循环神经网络(Recurrent Neural Network, RNN)、图神经网络(Graph Neural Network, GNN),为推荐系统解决上述问题提供新的方向.与此同时,随着互联网朝着安全化的方向发展,现实业务场景中出现越来越多的匿名化数据.针对这一情况,基于会话的推荐系统(Session-Based Recommendation, SBR)被提出,广泛应用于电影、网络购物等推荐场景中[4].
SBR早期研究一般利用传统的数据挖掘或机器学习技术,捕获会话序列中物品之间的依赖关系并生成嵌入表示,包括基于马尔可夫链的推荐算法和基于协同过滤的推荐算法[5].
基于马尔可夫链的推荐算法通过马尔可夫链对会话序列中的物品转换进行建模,用于预测下一项物品的概率[6].Zhang等[7]结合一阶和二阶马尔可夫模型,提出高精度网页推荐模型.Rendle等[8]提出FPMC(Factorized Personalized Markov Chains),分解概率矩阵,估计交互物品之间的潜在转移状态.然而,上述方法忽略物品之间的长期依赖与高阶信息.
基于协同过滤的推荐算法主要思想是协同用户的反馈、评价或意见,过滤海量信息,通过计算每个物品最相似的物品列表,筛选出用户可能感兴趣的信息.Garg等[9]考虑到会话中随时可用的顺序和时间信息,提出STAN(Sequence and Time Aware Neigh-borhood),通过聚合按序排列邻居信息,增强物品表示.Wang等[10]提出CSRM(Collaborative Session-Based Recommendation Machine),首先对每个项目转换进行编码,然后探索邻域信息以补充当前的会话表示,最后利用融合门控机制学习不同来源的物品特征.但是,上述方法容易引入噪声,从而影响推荐精度.
由于RNN在处理序列数据时展现出的强大能力,逐渐成为SBR领域的主流方法.Tan等[11]使用适当的数据增强,并考虑用户行为的时间顺序,提升模型性能.Li 等[12]提出NARM(Neural Attentive Re-commendation Machine),建模用户的顺序行为,捕捉用户在当前会话中的主要目的,并将其组合为统一的会话表示.然后,使用双线性匹配方案计算每个候选物品的推荐得分,进行推荐.Liu 等[13]结合简单的多层感知机网络与注意力网络,提出STAMP(Short-Term Attention/Memory Priority Model),更多地关注短期物品以捕获用户的当前偏好.但是,对于会话数据而言,RNN严格对顺序建模会影响其推荐精度.
近年来,GNN在处理结构化数据并捕获其中高阶信息方面的表现突出,因此在会话推荐领域取得较大进展.它首先使用图结构建模原始会话数据,然后运用GNN捕获高阶关系并学习物品表示和会话表示.Wu等[14]提出SR-GNN(Session-Based Reco-mmendation with GNN),使用带权有向图建模原始会话数据,再利用门控图神经网络学习会话图上每个物品的向量表示,在获得所有物品的向量表示后,进行特征融合,获得会话的向量表示,最后通过预测层计算每个候选物品的分数与概率,达到推荐目的.Wang等[15]提出GCE-GNN(Global Context Enhanced GNN),不再将会话数据建模为单一图结构,而是构建会话图和全局图,分别生成局部物品嵌入与全局物品嵌入,由此捕获复杂的高阶关系,再融合二者生成会话表示.Chen等[16]提出LESSR(Lossless Edge-Or-der Preserving Aggregation and Shortcut Graph Attention for Session-Based Recommendation),Guo等[17]提出MIHSG(Multi-granularity Intent Heterogeneous Session Graph),都旨在从更细粒度的表示中挖掘用户意图.
最新的研究表明数据成为重要瓶颈,因此从无标签的数据中学习有效信息成为一个重要的研究方向.越来越多的模型引入自监督学习,弥补短时会话稀疏性带来的影响.Xie等[18]提出CP4Rec(Contras-tive Pre-training for Sequential Recommendation),使用3种数据增强策略,从原始用户行为序列中构建自监督信号,提取有意义的用户模式,并编码有效的用户表示.Xia等[19]提出DHCN(Dual Channel Hyper-graph Convolutional Networks),先通过两个编码器生成不同的会话表示作为正样本,再将它们与数据增强后的负样本进行对比学习,利用自监督任务作为辅助任务,最大化不同通道学习到的会话嵌入的互信息,提升推荐性能.Xia等[20]又提出COTREC(Self-Supervised Graph Co-training Framework for Se-ssion-Based Recommendation),在DHCN的基础上采用协同训练[21]的思想,在两个不同的视图上训练两个分类器,之后迭代预测无标签样本的伪标签以相互监督.目前的自监督任务中通常需要构建许多复杂的正负样本,这为模型带来负担.
现有结合GNN和对比学习的会话推荐方法仍存在一些问题.首先,自监督任务中的对比学习损失起到和交叉熵损失类似的作用,忽略表示空间的优化.此外,这些方法通常创建许多复杂的正负样本以进行数据增强,会加重模型的负担.其次,用户在短时间内的点击序列只占物品集的一小部分,缺乏其它物品可能会导致用户的兴趣偏差,简单地将one-hot编码作为物品的真实标签也会导致偏差[22].最后,在会话数据中,用户会产生一些随机用户行为,例如:用户因好奇点击一两个与其兴趣关联不大的物品,但很快又回到主要兴趣,普通的线性预测模块不能较好地应对用户随机行为带来的影响.
为了克服上述问题,本文提出结合自对比图神经网络与双预测器的会话推荐模型(Session-Based Recommendation Model with Self Contrastive GNN and Dual Predictor, SCGNN).首先,通过低阶与高阶两个物品视图编码原始会话数据,然后分别通过改进的图注意力网络和图卷积网络生成不同的物品表示,二者融合并结合位置信息生成会话嵌入.与此同时,采用自对比学习代替对比学习,消除创建复杂正负样本的需要,并增强会话表示的一致性.最后,使用用户行为感知因子缓解用户随机行为对预测的影响,并结合线性预测器与决策森林预测器完成推荐任务.此外,还利用与当前会话最相似的历史会话进行协同过滤,生成待预测用户偏好的软标签以辅助预测.
本文提出结合自对比图神经网络与双预测器的会话推荐模型(SCGNN),整体框架如图1所示.
在基于会话的推荐系统中,包含N个候选物品的完整集合
I={i1,i2,…,iN},
M个物品组成的会话
1.2.1 低阶物品图注意力网络
本文遵循GCE-GNN[15],使用带权有向图建模每个会话,表示为Gl=(V,E).其中:V为节点集,表示用户点击的物品;E为边集,表示会话中相邻的两个物品.
为了精准捕获用户的意图,分别定义出边、入边、双向边和自循环边4种边类型,并为其分配可训练的权重向量ei,eo,eio,es.假设有一条边连接物品a、b,出边表示用户先点击物品a,后点击物品b,反之为入边.双向边表示aba的点击顺序.由于用户不同的点击顺序表示不同的意图,相同的两个物品之间也存在不同的重要性,因此需要分配不同的注意力.此外,由于单个会话中的物品通常不是两两相邻,本文只考虑一阶邻居的重要性.
其中,vi、vj表示物品的特征向量,eij表示边关系权重向量.
考虑到真实生活中物品具有许多属性,也会对用户的偏好产生影响,因此本文使用多头注意力充分挖掘物品特征,捕获用户意图,其中每个物品的输出为:
其中K表示注意力头数.将所有物品的向量集合表示为
Il=[v1,v2,…,vN].
1.2.2 高阶物品图卷积网络
遵循DHCN[19],本文使用超图建模所有会话,表示为Gh=(V,E).其中,V表示N个物品组成的节点集,E表示M条超边组成的边集.每条超边ε∈E都被赋予一个正权重Wεε,所有权重组成一个权重矩阵W∈RM×M.使用关联矩阵H∈RN×M表示超图,当超边ε包含一个节点vi时,Hiε=1,否则Hiε=0.对于每个节点与每条超边,度矩阵
均为对角矩阵.
在超图上的图卷积过程可被看作为两阶段特征变换,分别为由节点到超边的信息聚合与超边到节点的信息聚合.本文根据LightGCN[23],删除对推荐帮助有限的非线性激活函数与卷积矩阵,则物品i在第l+1层图卷积层的向量表示为:
与其不同的是,考虑到GNN往往会因为层数过深而引发梯度消失问题,使所有的表示都变得十分相似,无法进行分类.本文设计一种残差注意力机制,将不同卷积层的物品表示与其上一层的表示通过残差注意力进行分配,从而尽可能地保留物品特征.残差注意力定义如下:
其中
α表示注意力权重,W1∈Rd表示权重向量,W2∈Rd×d,W3∈Rd×d表示权重矩阵.在得到每一层学习到的物品表示之后,通过平均池化得到物品最后的输出向量:
其中L表示卷积层层数.
目前共得到两组物品表示,Il重点关注当前会话,融合自身及邻居表示,并带有多维度特征.Ih带有所有物品在内的高阶信息.对于其中的每项物品,通过门控函数,结合二者以获得最终的物品表示:
I=rIl+(1-r)Ih,
其中,r表示控制两组物品表示信息量的权重,
r=sigmoid(WlIl+WhIh).
因为在真实场景中的用户意图下,时间越靠后的物品越能反映用户的当前偏好.所以在得到最终物品表示后,根据文献[24],定义物品表示拼接位置矩阵:
P=[p1,p2,…,pm],
其中m表示当前会话的长度.会话中第k个物品的向量表示:
i′k=tanh(W4[ik‖pm-k+1]+b),
其中,ik表示会话中第k个物品的向量表示,W4∈Rd×2d表示参数矩阵,b∈Rd表示偏差.
最后通过注意力机制聚合每个会话中的物品表示,得到当前会话表示:
其中
c∈Rd,W5∈Rd×d,W6∈Rd×d,均表示可学习的参数矩阵.
现有的融合自监督学习的会话推荐模型均采用对比学习的方法[19],目的是将目标样本的表示与其对应的正样本对的表示拉得更近,同时远离负样本对的表示.这些模型通常会采用InfoNCE函数[25]作为对比学习的损失函数.Shi等[26]经过大量实验证实,当对比学习损失和交叉熵损失采用的评分函数相同时,前者可以看作后者的替代表达式,尽管二者在实际运用中可能存在边际变化,但在表示空间的优化方向是相同的,都有能力使会话表示与下一个物品的表示保持一致,并与其它物品表示区分,从而不断学习物品表示与会话表示,并且它们在表示空间中的优化方向是相同的.相比对比学习需要构造复杂的正负样本对,自对比学习直接将锚样本本身看作正样本,其余物品看作负样本,使模型更轻量化.所以本文采用自对比学习,提高表示空间的一致性,弥补交叉熵损失函数的作用.具体地,对学习到的所有物品表示ik∈I,自对比学习损失为:
其中,cos(·,·)表示将所有物品表示从表示空间中分开,τ表示温度系数.
本文采用双预测器融合预测的方式,并提出软标签生成策略以辅助预测.
1.5.1 软标签生成
由于硬标签不能真实反映用户意图,本文通过协同过滤的方式生成软标签,全面捕获用户偏好.给定当前会话s,利用SimHash函数的局部敏感性[27],将会话表示作为输入,输出其二进制码,并从中选取与s最相近的Top-k个会话,使用
表示k个会话的one-hot编码集,
表示对应的权重集,则
Ns,Ws=Top-k(-H(SimHash(s),SimHash(s′)),
其中,H(·)表示汉明距离,s′表示候选会话中的剩余会话.
在获得k个最相似的会话之后,对其对应的one-hot编码进行加权求和,构建当前会话s的软标签:
1.5.2 决策森林预测器
考虑到简单的线性预测器并不能较好应对用户复杂的决策过程,本文构建决策森林预测器以辅助预测,在此过程中,设计用户行为感知因子(User Behavior-Aware Factor, UBF)应对随机用户行为.根据经验贝叶斯的思想,观测数据是一个在真实值周围具有一定分布的样本.给定学习到的会话表示
其中sj表示第j个会话表示,则对应的真实分布为:
用户行为感知因子的目标就是在给定S的情况下获得μ的估计器,受SR-PredictAO(Session-Based Recommendation with Predictor Add-On)[28]的启发,采用JSE-SR(James-Stein Estimator for Session-Based Recommendation)估计器进行评估,定义如下:
将上式应用于所有会话中的每个物品,可得到缓解用户随机行为的会话表示:
下面构建决策森林预测器.决策森林由若干棵决策树组成,每棵树使用神经网络进行分裂,并与编码器一起通过反向传播进行优化,由一个决策函数f∶Rn→R2d-1与一个可训练的概率得分矩阵
W=[wij]=[w1,w2,…,w2d]T
组成,其中wij表示第i个叶节点中第j个物品的概率.整个决策流程可描述为,先通过决策函数计算每个分支的得分,再通过sigmoid函数得到左右分支的概率:
由此,通过递归计算可得到到达每个叶节点的概率,因为树模型对数据较敏感,容易发生过拟合[29],所以对其进行随机掩码处理.然后将其与归一化后的概率得分矩阵相乘,得到会话中每个物品的概率分布:
通过堆叠多棵决策树,采用平均池化处理计算结果,可得到随机森林预测器的结果:
1.5.3 预测器融合
在获得2个预测器的预测结果后,采用线性组合的方式融合二者,获得候选物品最终的预测概率:
总损失共由3部分组成:基于双预测器的交叉熵损失,基于软标签的KL散度损失与自对比学习损失,即
其中y表示真实标签的one-hot编码.
本文采用Tmall、Diginetica、Nowplaying这3个会话推荐领域常用数据集.Tmall数据集来自IJCAI-15竞赛,包含匿名用户在天猫平台上的购物日志.Diginetica数据集来自CIKM Cup 2016.Now-playing数据集描述用户的音乐收听行为.本文按照文献[14]的标准,首先将所有会话按时间顺序排列,并按时间戳将数据分为训练集和测试集.然后过滤出现次数小于5的物品或只出现在测试集上的物品,以及长度为1的会话,以数据集最新数据的时间戳向前推算一周作为划分时间,最后通过滑动窗口进行数据增强.例如:存在会话
s=[vs,1,vs,2,…,vs,m],
将其拆分为
([vs,1],vs,2),…,([vs,1,vs,2,…,vs,m-1],vs,m),
其中每个会话的标签均为最后一项物品.3个数据集的统计数据如表1所示.
表1 数据集统计信息
遵循本领域广泛采用的方法[14-18],使用P@K(Precision)和MRR@K(Mean Reciprocal Rank)作为评估指标.P@K表示最终的预测列表中正确物品的比例,MRR@K表示多个正确物品在预测列表中排名倒数的均值,具体公式如下:
其中,nhit表示目标商品在top-K列表中的数量,ranki表示目标商品i在top-K列表中的位置,N表示样本总数.
遵循文献[12]的设置,隐向量的维度设为100,批次大小设为100.SimHash中的散列矩阵维度设为64,使用初始学习率为0.001的Adam(Adaptive Moment Estimation)优化器,该学习率在每3个轮次后衰减为原来的0.1倍.对所有参数初始化使用一个平均值为0、标准差为0.1的高斯分布.为了公平对比,在所有实验中,保持上述参数设置在所有模型中均一致.
本文共选用如下9个对比基线模型.
1)FPMC[8].基于传统方法的会话推荐模型.
2)NARM[12].基于RNN和注意力机制的会话推荐模型.
3)STAMP[13].采用自注意力机制替代RNN,将会话中最后一个物品作为用户短期兴趣,增强基于会话的推荐.
4)SR-GNN[14].将会话构建为子图,应用门控图神经网络学习项目转换关系.
5)GCE-GNN[15].使用局部图和全局图建模会话,引入反向位置信息,使用图注意力网络学习物品嵌入与会话嵌入.
6)DHCN[19].通过双编码器学习物品表示,引入自监督学习辅助推荐.
7)GC-SAN(Graph Contextualized Self-Attention Model)[30].应用门控图神经网络,将下一个物品推荐作为一个图分类问题.
8)Disen-GNN(Disentangled GNN)[31].使用独立因素表示每个物品,从因子级别学习物品嵌入.
9)FAPAT(Frequent Attribute Pattern Augmented Transformer)[32].构建属性转移图和匹配属性模式,表征用户意图.
各模型在3个数据集上的指标值对比如表2所示,表中黑体数字表示每项指标的最优值,斜体数字表示每项指标的次优值,Gain表示SCGNN比次优模型提升的百分比.由表可得如下结论.
表2 各模型在3个数据集上的指标值对比
传统的推荐模型(FPMC)性能远低于基于RNN的模型(NARM、STAMP),说明会话推荐中的序列位置信息十分重要.由于用户存在于会话中的动态偏好会随着时间变化,NARM与STAMP均引入注意力机制应对这一问题,也取得性能的提升,说明为会话中的不同物品赋予不同的权重有助于准确捕获用户的偏好.此外,STAMP因重点关注会话中最后一个物品而性能优于NARM,说明物品的短期优先级也应得到重视.
基于GNN的模型(SR-GNN、GC-SAN、GCE-GNN、DHCN、Disen-GNN、FAPAT)在性能上又取得进一步提升,说明图结构在处理繁杂物品之间的高阶信息时更具优势.其中,GCE-GNN表现优于单视图建模的SR-GNN与GC-SAN,说明全局会话之间的物品转换关系与当前会话同样重要.DHCN在一些指标上取得次优值,表明自监督学习可利用不同通道之间的互信息缓解会话数据稀疏性带来的影响,但由于其对比损失与交叉熵损失的作用相近,仅取得较小提升.最后,Disen-GNN、FAPAT在Tmall、Now-playing数据集上表现良好,表明在这2个数据集上对用户意图进行建模可有效促进推荐.
SCGNN首先通过双视图建模会话构建多头图注意力网络与残差图卷积网络,学习物品表示与会话表示,再经过用户随机行为感知因子缓解随机用户行为带来的影响,最后结合软标签与双预测器架构全面捕获用户意图.此外,利用自对比学习辅助预测,优化表示空间并减轻模型负担.SCGNN在3个数据集上的实验结果均取得一定提升,这表明SCGNN的有效性.在Tmall数据集上提升明显,考虑到该数据集是真实电商环境下收集的,相比另外2个数据集拥有更高的一致性,可更好地进行推荐,由此说明一致性可能比严格的顺序建模更重要.此外,Tmall数据集的平均长度较长,意味着物品之间包含更丰富的信息,可对捕获用户的意图起到帮助作用.
为了研究SCGNN中各模块的贡献,设计不同变体进行相关实验.
1)w/o SCL.去除自对比学习.
2)w/o Label.去除协同过滤生成的软标签.
3)w/o UBF.去除用户行为感知因子.
4)w/o Forest.仅保留普通的线性预测器.
不同变体在3个数据集上的消融实验结果如表3所示.
表3 各模型在3个数据集上的消融实验结果
由表3可看到,SCGNN在去除上述模块后,性能都有不同程度的下降,说明各模块对推荐都有贡献.
自对比学习与用户行为感知因子在Tmall数据集上影响最小,考虑到Tmall数据集是具有高一致性的电商数据集,用户随机行为的影响小于另外两个数据集.
去除软标签带来的性能下滑则表明利用与当前会话行为模式相似的历史会话也可有效缓解用户偏好的偏差以辅助预测,这与现实生活中的直觉是一致的.
双预测器结构在一定程度上可模拟用户复杂的决策过程,为推荐带来帮助.
为了研究决策森林预测器中决策树数量对推荐性能的影响,本文将会话数量限制在{16,32,64,128,256}内,具体P@20和MRR@20结果如图2所示.
(a1)P@20 (a2)MRR@20
由图2可见,在Diginetica、Tmall数据集上,当决策树数量分别为64棵和128棵时,达到最优性能.但是,随着决策树棵数增多,性能出现大幅下滑,原因可能是出现严重过拟合,影响模型的学习能力.
为了研究软标签策略中协同过滤会话数量对推荐性能的影响,本文将会话数量限制在{10,20,30,40,50,60}内,具体P@20和MRR@20结果如图3所示.
(a1)P@20 (a2)MRR@20
由图3可看到,在Diginetica、Tmall数据集上,会话数量均为30时达到最优性能,之后性能大幅下滑.由此说明相比单一会话,合适的会话数量可补充更多的信息,缓解用户偏好的偏差.当协同过滤会话太多时,会引入噪声,从而影响推荐性能.
现有的基于图神经网络与自监督学习的会话推荐模型都有复杂的创建正负样本的过程,对比学习损失也起着与交叉熵损失类似的作用,此外,这些模型通常使用的硬编码与线性预测器不能较好地捕获用户意图.因此,本文提出结合自对比图神经网络与双预测器的会话推荐模型(SCGNN),可较好地解决上述问题.首先,双视图建模可处理复杂的高阶信息,多头图注意力网络可从多个维度捕获用户意图,残差图卷积网络能缓解多层堆叠带来的过度平滑问题.其次,用户行为感知因子与软标签生成策略可全面感知用户偏好,并缓解随机用户行为带来的影响.最后,自对比学习可消除构建复杂样本的过程,并优化物品的表示空间.对比实验表明SCGNN具有一定的优势,消融实验验证上述模块对推荐性能均有一定贡献.今后可考虑在SCGNN的基础上将物品进行更细粒度分解,并引入更丰富的用户侧信息,充分捕获用户的真实意图,从而进一步提升推荐精度.