基于复杂结构信息的图神经网络序列推荐算法

2022-05-14 03:28胡承佐王庆梅李迪超
计算机工程 2022年5期
关键词:注意力向量神经网络

胡承佐,王庆梅,李迪超,王 铮

(1.北京科技大学国家材料服役安全科学中心,北京 100083;2.南方海洋科学与工程广东省实验室,广东珠海 519080;3.澳门大学 计算机与信息科学系,澳门 999078;4.北京科技大学 计算机与通信工程学院,北京 100083)

0 概述

推荐系统是数据挖掘和机器学习领域最重要的应用之一,它能够帮助平台用户缓解信息过载的问题,并在电商平台、音乐网站等许多网页应用中挑选出有价值的信息。在大部分推荐系统中用户的行为序列是按照时间排列的,并且呈现出匿名性和大数据量的特征。为了预测用户在下一时刻的行为信息,基于会话序列的推荐通过挖掘用户历史行为中的序列顺序特征信息,从而学习用户的喜好[1]。会话序列是指在一段时间间隔内的由用户点击而产生的项目序列,而基于会话序列的推荐能捕捉到序列内部的依赖关系对序列预测的重要性[2]。用户在某一个会话序列中通常有着一个共同的目的,如购买下装衣物;而用户在不同序列之间的行为特性可能关联性不大,如在别的会话中用户的目的是购买手机配件等。

鉴于其较高的实际价值,基于会话序列的推荐在近年来得到了研究人员很大的关注,并且出现了许多具有良好效果的研究成果。早期的算法主要基于马尔科夫链和循环神经网络(Recurrent Neural Networks,RNN)。随着近期图神经网络(Graph Neural Networks,GNN)的兴起并且在许多下游任务中有着较好的表现[3-4],有研究人员将GNN 应用到了基于会话序列推荐中[5-6]。尽管这些基于GNN 的算法有着较好的表现,但是这些算法也存在以下问题:忽略了点击序列中重复出现的项目,多次出现的项目与其他项目的重要程度是不同的,这些项目在一定程度上能够体现用户偏好信息;在生成项目的向量表示时没有较好地利用会话序列图中的结构信息,只考虑项目之间的方向性还有所欠缺,引入项目之间的无向关系能够更好地学习用户的行为信息。

为解决以上问题,本文提出一种基于复杂结构信息的图神经网络序列推荐算法。利用带注意力的图卷积网络和门控图神经网络,分别提取序列图中项目之间的无向结构信息与有向结构信息,并引入注意力机制建模项目之间的复杂转换,从而得到项目隐含向量,根据隐含向量利用注意力网络结合会话的全局信息与局部信息,生成准确的会话向量表示。

1 相关工作

1.1 传统推荐算法

早期的基于邻域建模算法在用户不匿名的推荐场景中使用最邻近算法进行会话序列预测[7-9],需要测量项目之间或者会话之间的相似度。DAVIDSΟN 等[7]提出一种通过项目共同出现的模式来计算项目之间相似度的算法,并根据待预测会话序列中的项目推荐最有可能跟其共同出现的项目。PARK 等[9]提出一种将会话序列转换成向量的算法,然后计算会话向量之间的余弦相似度。DIAS 等[8]基于PARK 的研究提出用聚类算法将稀疏会话向量转换为稠密向量,然后再计算稠密向量之间的余弦相似度,但它受到数据稀疏性的影响,且没有考虑到会话向量内部项目之间的复杂转换关系。

而基于马尔科夫链的算法可以更好地获得序列中顺序信息。最简单的基于马尔科夫链的算法利用训练集中项目的转换频率来计算得到转换矩阵[10],但不能应对那些在训练集中没出现过的转换关系。FPMC 算法[11]通过一种张量分解的算法将转换矩阵进行分解,从而解决了该问题。另外一种解决算法是马尔科夫隐嵌入[12],首先把项目映射到欧式空间中,然后通过计算项目之间的欧式距离从而估算项目之间的转换概率。因为状态空间存在着数据爆炸的问题,基于马尔科夫链的算法多数都只考虑了用户点击序列对连续项目之间的单向转换,导致会话中的其他项目被忽略。

1.2 基于深度学习的算法

循环神经网络(RNN)对会话序列有着强大的建模能力,能很好地解决基于马尔科夫链算法的不足。GRU4Rec[13]是一个基于RNN 的会话序列推荐算法,它的原理是将多个GRU 层堆叠在一起。受计算机视觉和自然语言处理领域中非常流行的注意力机制启发,LI 等[14]采用带注意力的混合编码算法对用户的序列行为和目标进行建模,并且实验证明了学习到的序列表现结果十分有效。因此,后续基于RNN的工作都融入了注意力的机制[15-17]。

近几年图神经网络在许多任务中都有着较好的表现[18],也有一些研究人员将图神经网络引入到基于会话序列的推荐中。SR-GNN[4]将会话序列建模为不带权重的有向会话图,图中的边代表项目之间的转换关系,然后利用门控图神经网络(Gated Graph Neural Networks,GGNN)在有边相连的节点间进行信息的传 播。XU 等[6]在SR-GNN 的基础上利用GGNN 来提取局部信息,并且用自注意力网络来捕获远距离项目之间的全局依赖关系。上述算法证明,对于基于会话序列的推荐,GNN 是一个值得研究的方向。

本文的主要贡献如下:

1)利用会话序列建立会话图。根据会话图的邻接关系,利用图卷积网络提取图中的无向结构信息,通过门控图神经网络提取图中的有向结构信息,最后对中间项目隐含向量通过线性变换得到最终的项目隐含向量。

2)在提取会话图中的结构信息时,给会话序列中出现的重复点击项目分配更高的注意力,并在生成项目隐含向量时引入注意力机制,根据项目间依赖的程度修改相应项目的权重系数。

3)进行大量的实验并在3 个公开数据集上证明了该算法比现有的算法表现更优。

2 算法描述与模型框架

2.1 公式化描述

基于会话序列的推荐旨在根据用户当前的会话序列数据给出用户下个时刻点击项目的预测,而在该过程中完全不依赖用户的长期偏好信息。

在基于会话序列的推荐中,令V=代表所有会话序列中出现过的m个项目的集合。那么一条长度为n的匿名会话序列能够用列表s=来表示,且会话s中的项目是按时间先后顺序排列的,每个νi∈V代表了用户在会话s中点击的项目。基于会话序列的推荐就是要预测用户的下一个点击,即会话s中的序列标签νn+1。利用基于会话序列的推荐模型,对每个会话s都可以得到所有可能项目的概率其中概 率向 量中包括了出现在当前会话后下一个点击项目的所有可能情况,且每个元素的值都代表了对应项目的推荐得分中排名最高的前K个的项目即为将要推荐的候选项目。

2.2 总体框架

对基于会话序列的推荐,首先从历史会话序列的信息中构建有向会话序列图。GCN 和GNN 分别能提取会话图中项目转换的无向结构信息和有向结构信息,并相应地生成精确的项目隐含向量。而后将得到的项目隐含向量输入到注意力网络中,同时考虑会话的全局信息与局部信息,从而构造出更可靠的会话表示,并以此推断下一次的点击项目。

模型的整体框架如图1 所示。首先将每个会话序列s转换为有向会话序列图Gs=(Vs,εs,As),其中:Vs代表点集;εs代表边集;As代表邻接矩阵的集合。在会话图Gs中每个节点都代表一个项目νi∈V,而且每条边(νi-1,νi)∈εs都代表了用户先后点击了项目νi-1和项目νi。将As定义为3 个邻接矩阵和的拼接,其中表示无向图的带权重邻接矩阵分别表示带权重的入度邻接矩阵和出度邻接矩阵。然后依次对每个会话图Gs进行处理,根据会话图Gs生成每个项目νi∈s对应的初始项目隐含向量xi,依次通过带无向注意力网络的图卷积网络、带有向注意力网络的门控图神经网络,分别得到每个图中涉及的所有节点的中间隐含向量,再通过一个线性层得到精确的最终的项目隐含向量,将得到的项目隐含向量输入目标注意力网络,从而得到每条会话序列所对应的会话隐含向量。最后通过线性变换和一个softmax 层对每个会话预测所有可能项目被点击的概率。

图1 本文模型总体框架Fig.1 Overall framework of the proposed method

2.3 项目隐含向量

在建立好会话图Gs之后,首先将每个节点νi∈V映射到随机嵌入向量空间中得到d维向量表示xi∈Rd,再通过对应的神经网络模型和线性层得到hi∈Rd。图神经网络对基于会话序列的推荐有天然的适应性,因为它可以在考虑到丰富的节点连接关系的前提下自动提取会话图的特征。下面将介绍生成最终节点向量过程中使用的两个网络模型。

2.3.1 带注意力的无向结构信息

本文采用文献[19]算法构建图卷积网络(GCN)。会话图Gs中的带权重无向邻接矩阵是一个稀疏且对称的邻接矩阵,其中,aij代表了节点νi和νj之间的边权重,节点间无相连关系则表示为aij=0。将度矩阵D定义为对角矩阵D=diag(d1,d2,…,dn),且对角线上的值等于邻接矩阵的行元素之和di=图中的每个节点νi都有对应的d维特征向量xi∈Rd,所以总的特征矩阵X∈Rn×d就是图中每个特征向量的堆叠,即X=[x1,x2,…,xn]T。

与卷积神经网络(CNN)和多层感知机(MLP)类似,GCN 在多层结构中对于每个节点的特征νi进行学习并得到新的特征表示,然后再输入对应的线性分类器。对于第k层的图卷积层,矩阵H(k-1)表示所有节点的输入向量,H(k)表示节点的输出向量。最初的d维节点向量即初始输入的特征,并输入到首层GCN 中:

层数为K的GCN 相当于对图中所有节点的特征向量xi应用一个K层的MLP 模型,每个节点的隐含向量表示在每层的一开始都和其邻居节点进行均值化。在每个图卷积层中,节点的向量表示有3 个更新阶段:特征传播,线性转换和逐点非线性激活。本文用于学习项目隐含向量所到的只有特征传播阶段。

特征传播是GCN 和MLP 之间的本质区别。在每层的最开始,每个节点νi的特征都与它的局部邻居的特征向量进行均值化:

上述的更新公式可以用整个图的简单矩阵操作来简化。S代表“对称归一化”后带自环的邻接矩阵:

图2 会话序列图与其对应的带权重无向邻接矩阵和带权重传播矩阵Fig.2 Session sequence graph and its corresponding weighted undirected adjacency matrixand weighted propagation matrix

因此,式(2)的等价更新形式就可以变成一个对于所有节点的简单稀疏矩阵相乘:

上述步骤沿着图上边对节点的隐含向量表示进行局部平滑,将GCN 作为特征预处理算法对特征进行传播后,使得节点能够吸收相邻节点的带注意力信息,并最终使得局部相连的节点能够有相似的预测表现[20]。

2.3.2 带注意力的有向结构信息

本文根据文献[21]构建模型GGNN。对于会话图Gs中的节点νi,节点向量的更新公式如下:

图3 会话序列图与其对应的邻接矩阵Fig.3 Session sequence graph and its corresponding adjacency matrix

所以,对于每个会话图Gs,GGNN 模型在相邻节点之间传播带注意力的节点信息,而重置门控和更新门控分别决定需要进行舍弃或者保留的信息。

2.3.3 项目隐含向量的生成

在经过图卷积网络(GCN)和门控图神经网络(GGNN)的信息处理后,分别得到前者是对初始嵌入向量进行了带注意力的无向结构信息处理;后者在前者的基础上更加精细地提取图结构中带注意力的有向结构信息。

为了平衡带注意力的无向结构信息与有向结构信息的比例,采用式(11)进行控制:

其中:γ为超参数。

2.4 会话向量表示的生成

2.4.1 基于目标注意力的向量

在得到每个项目的向量表示后,进一步构建目标向量,从而能在考虑到目标项目的前提下对历史行为的相关性进行分析,目标项目是指所有待预测的候选项目。因为在实际应用场景中,用户得到的推荐项目只匹配其一小部分的兴趣,所以利用文献[22]提出的目标注意力模型来计算目标会话中所有项目对目标项目的注意力得分。

本文利用局部目标注意力模型来计算会话s中所有项目νi对每个目标项目νt∈V的注意力得分βi,t:

在式(12)中,会话中的项目与候选目标分别匹配,并且用带权重矩阵W∈Rd×d来进行成对的非线性转换。然后再用softmax 函数对得到的自注意力分数进行归一化,并得到最后的注意力分数。

对于每个会话序列s,用户对目标项目νt的兴趣可以表示为:

2.4.2 会话向量的生成

本文利用会话s中涉及到的项目向量进一步地探索用户的短期和长期喜好,从而得到会话中的局部向量与全局向量,并综合2.4.1 节中计算得出的基于目标注意力的向量生成最终的会话向量。

首先是局部向量,在一个会话序列s中,用户最终的行为通常是由当前序列中最后一个交互的项目决定的。所以,将用户的短期兴趣表现为局部向量slocal∈Rd,且该局部向量即为会话序列中最后一个项目的向量表示。

对于全局向量,将用户的长期偏好定义为全局向量sglobal∈Rd,其聚合了会话s中所有出现的项目向量。同时,利用注意力机制来引入最后交互的项目与整个 会话中 出现的项目[ν1,ν2,…,νn]之间的 依赖关系。

其中:q,c∈Rd且W1,W2∈Rd×d是相应的权重参数。

最后对于前面得到局部向量、全局向量和基于目标注意力的向量,将三者进行拼接并利用线性转换得到会话序列s所对应的会话向量。

其中:权重参数W3∈Rd×3d,将3 个向量拼接的结果投射到向量空间Rd中。值得注意的是,对不同的目标项目会对应地生成不同的会话向量。

2.5 推荐生成

对于每个会话图Gs,将损失函数定义为预测值与实际值的交叉熵:

其中:y代表会话序列下一时刻真实点击项目的独热编码向量。

最后使用基于时间的反向传播(BPTT)算法来训练提出的模型。值得注意的是,在基于会话序列的推荐场景中,多数会话都是相对较短的序列。为了防止过拟合的出现,采用较小的训练次数是比较适宜的。

3 实验结果与分析

本节介绍使用的数据集、数据预处理策略和评价指标,将提出算法与其他算法进行比较,最后在不同的实验设置下给出模型的详细分析。

3.1 数据集和数据预处理

本文选择在实际应用中两个有代表性的数据集来评估所提出算法,数据集分别是RecSys Challenge 2015发布的公开数据集Yoochoose 和CIKM Cup 2016 发布的公开数据集Diginetica。Yoochoose 数据集包含了电子购物平台上6 个月内的用户点击流,而Diginetica 数据集中只包含了交易成功的数据,即用户的购买流。

为了公平比较,本文遵循文献[14,23]的预处理算法,在两个数据集中将长度为1 的会话序列和总出现次数小于5 次的项目滤去,同时遵循文献[1]的预处理算法,将长度大于20 的会话序列滤去。因为一个会话序列如果长度过长,那么用户的主要目的在项目转换间很有可能已经发生了改变,后续的推荐如果基于若干目的中的一个进行推荐,则很难达到精准预测的效果。经过上述处理,最终在Yoochoose 数据集中得到了7 897 532 条会话和37 470 个项目,在Diginetica 数据集中得到了185 517 条会话和43 093 个项目。对于训练集和测试集的划分,在Yoochoose 数据集中选择最后一天的数据作为测试集,在Diginetica 数据集中则选择最后一个星期的数据进行测试,剩余的数据则作为训练集输入模型。由于Yoochoose 训练集规模过于庞大,遵循文献[14,23]的做法,将Yoochoose 训练数据中距离测试集时间最近的1/64 和1/4 部分的数据划分出来作为训练数据。

和文献[24]的策略相同,本文进一步通过切分输入序列数据来生成对应的序列和标签。对于输入会话序列s=[ν1,ν2,…,νn],作为一种数据增强策略,生成一系列的 序列和标签([ν1],ν2),([ν1,ν2],ν3),…,([ν1,ν2,…,νn-1],νn),其中[ν1,ν2,…,νn-1]是生成的序列,而νn代表了下一时刻点击的项目,即序列的标签。

数据集具体情况如表1 所示。

表1 实验数据集统计结果Table 1 Statistical results of experimental datasets

3.2 评价指标

本文采用在基于会话序列的推荐中常用的两个度量标准作为算法的评价指标:

1)P@20(Precision)。是一种被广泛使用的预测精度的度量标准,它代表了算法推荐结果的前20 项中正确推荐的比例。

2)MRR@20(Mean Reciprocal Rank)。是算法推荐结果中正确推荐项目的倒数排名均值。当真实结果在算法的推荐排位中超过20 时,对应的倒数排名为0,MMR 度量标准是一种考虑了推荐顺位的算法,较大的MRR 值代表了在推荐列表中真实结果位于排名列表的顶部,这也证明了推荐系统的有效性。

3.3 参数设置

根据文献[4,14,22-23],本文在两个数据集中均将隐含向量的维度设置为d=100。所有超参设置都利用均值为0、标准差为0.1 的高斯分布函数进行初始化。同时还采用小批量Adam 优化器对这些参数进行优化,并且将初始的学习率η设置为0.001,且每3 个训练周期衰减0.1。此外,批处理大小设置为100,L2 正则化参数设置为10-5。

3.4 与相关算法的比较

为了评估所提算法的性能,将其与会话序列推荐问题的现有算法中有代表性的算法进行比较,即PΟP、S-PΟP、Item-KNN、BPR-MF、FPMC、GRU4Rec、RepeatNet、NARM、STAMP、SR-GNN、TAGNN。

1)PΟP 和S-PΟP 算法的策略是分别在训练集和当前会话序列中推荐前K个出现频率最高的项目。

2)Item-KNN[25]推荐与当前会话序列项目相似的项目,其中相似度定义为会话向量之间的余弦相似度。

3)BPR-MF[26]是一种基于贝叶斯后验优化的个性化排序算法,它通过随机梯度下降优化成对项目排序的目标函数。

4)FPMC[11]是一种基于马尔科夫链的序列推荐算法。

5)GRU4Rec[13]使用循环神经网络来对用户序列进行建模。

6)RepeatNet[16]在重复消费的场景下将常规神经推荐算法与新的重复推荐机制集成在一起。

7)NARM[14]使用带有注意力机制的循环神经网络来捕捉用户的主要意图和序列行为特征。

8)STAMP[23]利用自注意力机制捕捉用户在当前会话序列中的大致意图和最后一次点击行为的兴趣点所在。

9)SR-GNN[4]通过使用门控图神经网络来捕捉项目转换之间的关系。

10)TAGNN[20]在使用图神经网络模型的基础上利用注意力网络捕捉会话序列中的项目与目标项目的相似程度。

各算法在P@20 和MRR@20 这2 个指标上的性能表现如表2 所示,其中加粗数字为最佳结果。本文提出算法能够灵活地在会话图上构建项目之间的联系,并且提取其中带注意力的有向结构信息和无向结构信息,使得后续目标注意力的学习能够更加准确,并且综合用户在会话中的全局兴趣和局部兴趣给出最后的推荐。由表2 中的实验数据可以看出,本文算法在3 个数据集上的2 个指标上都获得了最好的表现结果,这也证明了所提算法的有效性。

表2 不同算法实验结果对比Table 2 Comparison of experimental results of different algorithms

从表2 可以看出:传统推荐算法如PΟP 和S-PΟP在基于会话序列的问题上表现不尽如人意,因为其忽略了用户在当前会话中的偏好,仅考虑了前K个最受欢迎的项目。BPR-MF 说明利用会话中的语义信息具有一定意义,而表现更好的FPMC 则说明利用一阶马尔科夫链来建模会话序列是相对有效的算法。同样作为传统推荐算法,Item-KNN 比前两者更优。值得注意的是,Item-KNN 仅依赖计算物品之间的相似度,这说明了物品的同时出现也是一种比较重要的信息。而Item-KNN 没有考虑到会话中的时序信息,不能捕获到物品之间转换的信息。

与传统算法不同,基于深度学习的算法在所有数据集上的结果都有更好的表现。GRU4Rec 是一种基于循环神经网络的算法,它的表现结果优于大部分传统算法,与一部分传统算法达到相近的程度。这说明了循环神经网络对于序列数据有着一定的建模能力。然而GRU4Rec 主要聚焦在对会话序列进行建模,无法捕获会话中的用户偏好,其后出现的算法如NARM 和STAMP 都对GRU4Rec 有着显著的提升。NARM 显式地捕获用户在会话中的主要偏好,而STAMP 利用注意力机制考虑用户的短期兴趣,也优于GRU4Rec。RepeatNet 通过考虑用户的重复点击行为达到了较好的预测效果,这说明对用户的行为习惯进行建模具有一定的重要性。RepeatNet相比NARM 与STAMP 提升有限,可能是因为仅通过项目特征来对用户的重复点击习惯进行建模是不充分的,且基于RNN 的结构无法捕获会话内的一些共同的依赖关系。

基于图神经网络的算法将每个会话序列都构建成一张子图,并且通过图神经网络对会话中的所有项目进行编码。SR-GNN 和TAGNN 比所有基于RNN 的模型有着更好的结果。SR-GNN 利用门控图神经网络来学习会话序列内项目之间的依赖关系,TAGNN 进一步利用注意力机制挖掘会话内的项目与目标项目之间的依赖关系。然而,这些算法都完全根据会话图的有向关系进行学习,而没有综合考虑会话图中的无向关系,因为会话序列中物品和物品之间的关系有时往往不是单向的关系而是双向的,利用无向的结构信息能够捕获到物品之间更加全面的关系,且它们都忽视了会话序列中出现的重复点击特征,从直觉上来讲一个序列中重复出现项目的重要性应当是更大的。此外,在实际推荐场景中项目和项目之间的关联程度是多变的,而这些算法对于会话内项目和项目之间的依赖关系采用的是平均化算法,不能通过权重或者注意力的算法体现出某一项目对其他项目的依赖程度。

本文提出算法相比其他算法表现都要更优。具体而言,在3 个数据集上,对于P@20,相对表现最佳的相关算法有3.55%、1.38%、1.37%的相对提升,对于MRR@20,对表现最佳的相关算法有1.92%、4.34%、2.63%的相对提升。本文算法能够很好地提取会话图中的结构信息,先后利用图卷积网络和门控图神经网络对图中的无向结构信息和有向结构信息进行提取,并将两者进行线性组合从而达到向量的精准表示。考虑到会话序列中的重复点击项目,通过注意力网络提高重复信息的权重,同时通过增加自环和矩阵操作提高会话图中节点的自我信息比例,使得节点不容易受到其他节点的噪声干扰。根据项目与项目之间不同的依赖关系,利用注意力网络分配不同的权重,从而使得网络能够生成精确的向量表示。

3.5 消融实验

本文提出的算法能够灵活地捕捉会话图中的结构信息和项目之间的关系。为了验证模型中各组成成分的实际作用,设置了几种模型变体进行消融实验。在实验环节中选择SR-GNN[4]作为对比的基准算法,实验中的数据以对比SR-GNN 的相对提升百分比的形式展示。

本文进行以下有向结构信息和无向结构信息的组合分析:1)GCN,只提取会话图中的无向结构信息;2)GNN,只提取会话图中的有向结构信息;3)GCN+GNN,将随机初始向量同时输入到两个神经网络中,然后把模型输出结果进行线性组合;4)GCN+GNN(GCN),首先将随机初始向量输入到GCN 中,然后把GCN 模型的输出向量作为GNN 模型的输入,最后将2 个模型的输出结果进行线性组合。实验对比结果如图4 所示,其中AVG 代表4 种组合条件在3 个数据集上的平均表现。

图4 不同结构信息的实验结果Fig.4 Experimental results of different structural information

从图4 可以看出,综合有向结构信息与无向结构信息的GCN+GNN(GCN)模型在3 个数据集的2 个指标P@20、MRR@20 上都取得了最佳的结果,这证明了综合考虑有向结构信息和无向结构信息的重要性。图4中平均数据AVG 还显示了单独考虑无向结构信息相比单独考虑有向结构信息表现更加优异。从单个数据集的表现上可以看出,在Yoochoose 1/4 数据集和Diginetica 数据集的MRR@20 指标上,考虑有向结构信息表现稍好于无向结构信息。这一定程度上反映了在基于会话序列的推荐中用户的偏好与项目之间的联系、项目之间的转换方向在不同的场景下有着不同的重要程度,但平均而言还是无向结构信息更重要。这说明在基于会话序列推荐的场景下用户在项目之间的转换方向虽然值得考虑,但还是需要重点考虑用户浏览的项目之间的联系,才能更好地学习到用户的偏好。而比前两者更好的做法是综合考虑有向结构信息和无向结构信息,图4 中GCN 结合GNN 的方法在3 个数据集的综合表现及平均表现AVG 上,基本都要比单独使用GCN 或GNN 的表现要好。而其中GCN+GNN 的方法中2 个网络模型的输入数据都是随机嵌入向量,而GCN+GNN(GCN)的方法中GNN 模型的输入是经过GCN 模型提取无向结构信息的向量,这说明了相比直接使用随机向量,先对无向结构信息进行提取而后再进行有向结构信息的提取能够得到更精准表示的嵌入向量。

本文进行重复点击注意力信息和项目间依赖关系的组合分析如下:1)GCN+GNN,不考虑重复点击注意力信息和项目间不同的依赖关系;2)AttGCN+GNN,只在GCN 中考虑重复点击项目的注意力信息;3)GCN+AttGNN,只在GNN 中考虑项目之间不同程度的依赖关系;4)AttGCN+AttGNN,同时在GCN 中融合重复点击的注意力信息和在GNN 中融合带注意力的项目依赖关系。实验结果如图5 所示。

图5 不同注意力信息组成成分的实验结果Fig.5 Experimental results of different attention information composition

从图5 可以看出,综合考虑重复点击注意力信息和项目间依赖关系的AttGCN+AttGNN 在3 个数据集的2 个指标上均取得了最佳的实验结果,这说明重复点击行为和项目间的依赖关系在基于会话序列的推荐中有一定的重要性。根据图5(a),单独考虑重复点击注意力和项目间关系的注意力比不考虑任何注意力信息的GCN+GNN 要有更好的表现,综合考虑两者的AttGCN+AttGNN 效果最佳,说明了注意力信息确实能够使得重要的信息尽可能地保留并得到更加精准表现的嵌入向量。根据图5(b),虽然综合考虑两种注意力的AttGCN+AttGNN 仍能获得最佳的实验表现,但是单独考虑两者注意力其中之一的表现会略差于不考虑任何注意力信息的GCN+GNN 的表现,即单独使用注意力信息虽然能够提高推荐结果的精确率,但是对推荐排名的预测效果并不好。可能是向量在输入GCN 和GNN 模型时,如果一个模型考虑了注意力而另一个模型没有考虑,那么2 个模型中邻接矩阵的表现模式也就没有统一,导致向量在两个模型之间输入输出时不能同时利用注意力保留结构信息,反而使得结构信息因为注意力模式不一致受到干扰,所以最后没有生成精准表示的嵌入向量,即不能在预测阶段计算出每个项目准确的预测得分。

4 结束语

在基于会话序列的推荐场景中,用户的重复点击行为和图结构信息都能在不知用户历史偏好的情况下很好地预测出用户的行为。本文提出一种基于有向与无向信息同注意力相融合的图神经网络序列推荐算法。利用GCN 与GNN 模型提取会话序列图中的有向结构信息与无向结构信息并进行线性组合,在2 个模型的内部引入注意力机制,对用户的重复点击和项目之间的复杂转换信息进行有效提取,使得生成的会话向量在推荐过程中预测更准确。在3 个数据集上的实验结果表明,该算法精度优于目前现有的算法,并验证了注意力机制和复杂的结构信息的有效性。下一步将在研究复杂图结构的基础上,寻找更好的隐含向量表现方式和向量组合方式,提高会话序列推荐的准确率。

猜你喜欢
注意力向量神经网络
基于递归模糊神经网络的风电平滑控制策略
向量的分解
让注意力“飞”回来
聚焦“向量与三角”创新题
如何培养一年级学生的注意力
神经网络抑制无线通信干扰探究
基于神经网络的中小学生情感分析
A Beautiful Way Of Looking At Things
向量垂直在解析几何中的应用
向量五种“变身” 玩转圆锥曲线