胡一帆,杨小健,秦岭
(南京工业大学 计算机科学与技术学院,江苏 南京 210000)
传统的CF 模型[1-2]只针对例如电商平台的购买行为这一单一的用户行为而设计,但对于一些没有购买的新用户,就很难做到很好的推荐。例如浏览记录、分享、收藏、加入购物车等行为平台也极易获得,因此利用这些行为来辅助预测可使得推荐效果进一步提升。现有的研究[3-6]也探讨过这一方面,文献[3]假设不同的行为所代表的重要性不同,通过用一种积极行为和另一种普通行为抽样扩展BPR。文献[5-6]通过建立多任务学习的深度模型,设定了用户不同行为之间的重要程度,但此模型很简单地认为用户的辅助行为的作用就一定弱于目标行为,但有时候分享可能比购买更能反映用户的偏好。文献[7]MBGCN 通过利用图神经网络从不同类型的边和图上的高阶连通性中学习,但却忽略了目标行为之后的评论内容也很大程度上展示了用户对于该项目的最终评价。
近年来对于评论信息的推荐算法主要以深度学习为主,尽管深度学习发展迅速但深度学习可能会忽视词语之间的依赖关系,图学习却可以解决上述问题。因此,本文提出了一种改进的基于图神经网络的推荐算法,对比同类的用户多种辅助行为的推荐方式同时融入用户评论对该项目的最终评价对用户进行推荐。实验结果表明,该算法对推荐效果有一定的提升。
图神经网络的中心思路是通过迭代聚合邻居的特征信息与中心节点的表示集成。图神经网络与图嵌入也有着很密切的关系,图嵌入是指在图结构和图信息不变的情况下,将图中的节点投影到低维向量空间,最终用低维嵌入对数据进行分析。通过图神经网络推荐的实际含义是学习用户和项目的隐含特征。
Kipf等[8]提出的GCNs 模型利用节点属性和图结构学习节点表示,它的每个卷积层将中心节点的表示和其邻居节点的表示相结合作为新的节点表示。Fan等[9]分别建立用户-物品、物品-用户、用户-朋友3 种图,结合起来推荐。Ying等[10]通过将随机游走和图卷积相结合的方式进行网页应用的推荐。Wang等[11]使用目标节点及其邻居节点点积更新。这些模型的成功说明了图神经网络对于推荐效果有着明显的提升。
基于深度学习的推荐算法,很早就对用户评论信息的提取起到了很大的作用:在ConvMF 中K 利用CNN 从用户的评论信息中学习用户和物品的偏好,相较于之前的矩阵分解算法,该算法的结果有着很明显的提升。随后,出现的DeepCoNN[12]并行CNN 结构、LCPMF[13]将LDA模型与CNN 相结合、DIN[14]提出注意力机制、MAGN[15]在此之上增加新的注意力等都使得深度学习在推荐系统领得到了很好的发展。
图神经网络的出现,因其可以学习到用户项目之间深度学习无法学习的关联关系,所以本文使用图的优势,将用户的评论表示成图,分析评论中的情感。
设行为的数量为T,所有的行为矩阵可以表示为{Y1,Y2,…,YT-1,YT},其中YT为目标行为,矩阵中的每个值为1 或0。但每个行为之间并没有严格的时间先后顺序,每个行为对于用户偏好的影响强弱也不是一定的。整个模型的步骤分为4 步:(1)初始化用户和项目的嵌入;(2)学习每个行为的强度,提取基于多行为的协同信号;(3)分析行为类型的行为语义;(4)联合预测。
本文使用无向图G=(V,E)来表示,其中节点为V,由用户节点u∈U 和项目节点i∈I 组成,E 中的边包含不同行为的不同用户-项目交互边,即(u,i)t,t∈Nr,其中Nr是发生在用户和项目之间的所有行为类型的集合。当=1 时,将建立一个边(u,i)。使用不同种类的边来表示不同的行为。基于用户共同行为在项目之间建立元路径,如很多用户同时购买iPhone 和AirPods,在iPhone 和AirPods 节点之间会有物品-购买-用户-购买-物品元路径,元路径类型的数量等于行为类型的数量。
2.1.1 图嵌入
在这里使用矩阵乘法来获得具有一个热矢量的用户(项目)的嵌入,如下所示:
2.1.2 用户嵌入的传播
要根据行为类型的不同的考虑项目对用户的偏好影响,对比与传统多行为算法,本文融入更多的辅助行为,且每个行为对目标行为的贡献不再通过人为地衡量,而是由模型本身来学习。此外,还应同时考虑数据稀疏性。
用户行为传播权重计算时,由于不同的行为对目标行为的贡献不同,因此为每个行为分配一个权重,即wt。为了将行为重要性和行为稀疏性融合在一起,为用户u定义了特定行为t 的传播权重,表示为aut,如下所示:
其中,nut是由用户u 操作的行为t 的计数,该计数因用户而异。。这里注意,wt是通过模型学习的,不需要为每个行为赋值。
对于用户不同行为对目标行为的贡献不同,但同一行为交互的项目反映了用户相似的偏好强度。将用户具有相同行为交互的项目聚集在一起,为每个行为获得一个嵌入即行为t 下的用户u 的嵌入,定义如下:
根据权重α 将邻居项集合嵌入在一起,然后通过一个编码矩阵,得到用户的最终邻居项集合。
2.1.3 项目嵌入的传播
用户到项目的传播与项目到用户不同,因为项目的特性是静态的。假设不同的用户对一个项目有相同的贡献。因此,下面示出了用户到项目的传播方法:
其中,NU(i)是项目I 与之交互的用户集合是用户j在第l 层上的嵌入,W(l)是l 层上信息聚合的编码矩阵。
2.1.4 项目之间的传播
用户交互的项目可能有特殊的联系。将在行为t 下共同行为的项目j 的嵌入与项目I 聚合,以获得下一层嵌入。通过这种机制,与I 项共同作用的项的特征将被聚合到I 的嵌入中,这有助于更好地嵌入学习和最终预测。
2.1.5 联合预测
通过L 层传播后,得到多个表示,对于最终的预测,来自不同邻居的信息都很重要。因此,将它们连接在一起,以获得用户和项目的最终嵌入:
其中,||是串联运算。
传播层学习了用户嵌入和项目嵌入后,就可以计算出基于用户的评分,项目到项目的传播就可以获得项目相关性,由此可以就算出基于项目的评分。
基于用户的CF 评分。这里使用内部产品的简单交互函数,以便基于用户项目传播来计算分数:
基于项目的CF 评分。用户对两个项目的共同行为可能暗示这两个项目之间的相关性,项目之间的相关性可能影响用户的行为,将从不同行为计算的项目相关性分数相加以获得最终相关性分数:
综合评分:
对于评论信息的图学习分为用户模块和项目模块,两个模块的结构相同,因此下面只介绍用户模块。
对于用户ui的评论集Sui,先通过文本预处理挑选出评论文本的关键词,然后将所有关键词作为节点,词与词间的关系作为边,构建有向图。由于评论中词语间的顺序可能会导致用户的不同情感,因此要保留词序,将先出现的关键词指向后出现的关键词的边记为ej,同时生成反向的边eb,此外每个节点还会生成一条自连接的边es以分析自身的信息。
评论信息中的每一个关键词间是相互联系的,可以丰富彼此的含义,对于输入的图G,节点用xh表示,xh的邻接点用Nh={xt|(xh,r,xt)∈G}表示,Nh包含xh。则xt的权重为:
其中,Tanh 为激活函数。
接下来根据用户和项目信息,计算出图中节点关于交互水平的权重,xh的权重为:
由2.1.5 节可知,用户和项目的最终嵌入为pu和qi,本文采用concat 方式将2.1.5 节的最终嵌入与通过评论信息的一般偏好特征融合从而得到最终的特征:
基于用户CF 的评分公式也更新为:
采用了优化的带BPR 损失的模型定义损失函数:
其中,O={(u,i,j)|(u,i)∈R+,(u,j)∈R-}表示成对目标行为训练数据集,R+表示观察到的目标行为,R 表示未观察到的目标行为;σ(·)是sigmoid函数,Θ表示所有可训练参数,β是控制L2归一化强度的系数。
本文实验采用两个数据集(Tmall 数据集、Beibei 数据集)进行实验,这两个数据集为很大规模的真实的电商平台的数据集。在这些数据集中除了目标行为购买之外也都有着各自不同的其他用户行为。
为了评估本文模型的性能选取了召回率准确率和NDCG 3 种指标来测试,计算公式如下:
NDCG 将较高的分数分配给在top-K 排名列表中较高位置的点击。准确率和召回率分别指推荐正确的数量占推荐总数和占用户总共购买数量的比例。
(1)NGCF:通过GCN 模型使用目标行为来构建用户项二分图,是一种经典的图神经网络模型。
(2)GraphSAGE:通过嵌入传播和聚集,用邻居信息丰富节点嵌入,应用十分广泛。
(3)MC-BPR:融入多行为的推荐系统,将用户不同的行为反映出的不同偏好作为先验知识构建训练对。
(4)MBGCN:也是一种融入用户多行为的推荐模型,与此同时也使用图神经网络训练用户行为的重要性,有着很好的推荐效果。
将本文之前提到的所有模型的实验在PyTorch 中实现。对于评论数据针对每个用户和物品选取10 条评论信息。模型的嵌入大小为32,超参数方面,学习率定为5×10-5,最终使用的参数λ 将基于用户的分数与基于项目的分数相结合,在数据集上进行了实验,结果如图1所示。当λ值为0 时,模型只基于项目评分,推荐效果不理想;λ 的值在0~1 之间变化时,推荐结果的变化不大;当λ=1 时,结果会有所下降。从图中看出,当λ=0.7 时,推荐效果最佳。
图1 λ值对推荐结果的影响
通过在两个数据集上的实验,统计出了各个算法分别在推荐数量k 的值分别为10、20、40 时的实验结果。
Tmall 的召回率、准确率和NDCG 的结果如表1~表3所示。
表1 Tmall 数据集召回率对照
表2 Tmall 数据集准确率对照
表3 Tmall 数据集NDCG 对照
Beibei 的召回率、准确率和NDCG 的结果如表4~表6 所示。
表4 Beibei数据集召回率对照
从表1~表6 中可以看出,本文提出的算法在召回率、准确率和NDCG 上都有一定的提升,证明了模型的有效性,对于前两个模型有着很不错的推荐效果,这说明图神经网络确实对于推荐系统有着很大的提升,对于稀疏数据集具有一定的缓解效果,但对于此类型的电商网站上的推荐用户行为的加入也是很必要的。在对于后两个模型的比较中可以发现,融入用户行为的方式对推荐效果确实有一定的提升,MC-BPR 假定用户不同行为反映不同用户偏好,不如MBGCN 根据图信息的自学习,本文算法同时又融入了用户最终行为后的评论信息更进一步提升了MBGCN 的推荐效果。
表6 Beibei数据集NDCG 对照
表5 Beibei数据集准确率对照
为解决电商网站上的冷启动问题,本文将用户的多行为加入到用户-项目的关系图中,利用图卷积网络从复杂的图结构中学习各个节点的表示,又考虑到用户关键行为后的评论信息也可能很大程度地影响到用户的偏好,于是通过评论信息图表示学习评论中的用户和项目偏好与之前多行为相结合,提出了一种融合用户行为与评论信息的图神经网络推荐算法。在真实数据集上的实验结果证明该模型对推荐效果有一定的提升,也在一定程度上对冷启动问题进行了优化。