基于会话的多粒度图神经网络推荐模型

2021-12-07 10:08任俊伟曾诚肖丝雨乔金霞何鹏
计算机应用 2021年11期
关键词:会话类别向量

任俊伟,曾诚,2,3*,肖丝雨,乔金霞,何鹏,2,3

(1.湖北大学计算机与信息工程学院,武汉 430062;2.湖北省软件工程工程技术研究中心(湖北大学),武汉 430062;3.智慧政务与人工智能应用湖北省工程研究中心(湖北大学),武汉 430062)

0 引言

随着互联网信息资源的爆炸式增长,在搜索、电子商务、视频网站等许多的Web 应用中,“信息过载”问题也日益突出。如何快速有效地从纷繁复杂的数据中获取有价值的信息成为了当前的一大难题,而推荐系统作为解决“信息过载”问题的有效方法[1],已经成为学术界和工业界的关注热点并得到了广泛应用。目前,推荐系统在很多领域得到了成功应用,包括电子商务(如Amazon、eBay、Netflix、阿里巴巴等)、信息检索(如iGoogle、MyYahoo、百度等)、社交网络(Facebook、Twitter、腾讯等)、位置服务(如Foursquare、Yelp、大众点评等)、新闻推送(如GoogleNews、GroupLens、今日头条等)等各个领域[2]。

目前,大多数的推荐系统都是基于用户的个人信息和历史行为数据进行推荐。然而,在许多服务中,用户身份可能是未知的,并且只有当前会话中的用户行为数据是可用的。因此,在当前会话中,根据用户有限的行为数据进行相应的推荐是非常重要的,相较于传统的推荐算法,基于会话的推荐不需要足够的用户-物品交互信息就可以进行比较准确的推荐。

近年来,大多数研究工作关注如何更好地建模用户的点击序列,而推荐场景中的一些其他信息,例如类别信息,没有得到足够的重视,类别信息作为物品的一种属性,对物品有聚合作用,可作为物品信息的一种重要补充。本文提出了一种多粒度图神经网络模型来解决上述问题,通过图神经网络得到物品和物品类别的嵌入信息,然后使用注意力机制更好地捕捉用户的注意力信息,减少噪声数据的影响,最后使用循环神经网络(Recurrent Neural Network,RNN)获取会话时序信息进行推荐。

1 相关工作

1.1 基于会话的传统推荐方法

基于会话的传统推荐算法分为矩阵分解、基于物品的邻域方法和马尔可夫决策过程等。

矩阵分解[3-4]是推荐系统的一种常见方法,其基本目标是把用户偏好和物品属性投影到同一个隐因子空间,以用户偏好和物品属性的匹配程度来预测评分。由于基于会话的推荐只有一些用户的点击序列信息,因此,矩阵分解并不太适合基于会话的推荐。基于物品的邻域方法[5]根据同一会话中物品的共现情况来计算物品的相似性从而进行推荐,但是这些方法却很难考虑物品在会话中的顺序,仅仅根据最后一次点击的物品产生预测。Shani 等[6]将基于会话的推荐生成作为一个顺序优化问题,采用马尔可夫决策过程求解。而Gu 等[7]提出了一种马尔可夫决策过程和潜因子模型的融合模型,模型不仅捕捉到用户的长期偏好,还捕捉到了物品交互的顺序对推荐结果所带来的影响。

1.2 基于会话的深度学习推荐方法

循环神经网络由于具有记忆性、参数共享并且图灵完备(Turing Completeness),因此在对序列的非线性特征进行学习时具有一定优势。RNN 在自然语言领域取得了十分显著的成绩,同时也成功地应用于其他很多领域,例如顺序点击预测[8]、位置预测[9]。Hidasi 等[10]将RNN 运用于基于会话的推荐,基于点击和被点击物品的特性对会话进行建模,将一个会话中发生的一系列点击行为当作一个序列,预测该会话下一个最可能点击的物品。Tuan 等[11]将会话点击与内容特性(例如物品描述和物品类别)结合在一起,通过三维卷积神经网络,将所有类型的特征使用字符级表示,进而生成推荐。Li等[12]提出了基于神经注意力会话的推荐(Neural Attentive session-based RecomMendation,NARM)模型,利用RNN 上的注意力机制来捕捉用户的顺序行为特征和主要目的。Liu等[13]提出了短期注意力/记忆优先级(Short-Term Attention/Memory Priority,STAMP)模型,该模型将注意力网络与RNN融合,以有效地捕获用户的一般兴趣和当前兴趣,在捕捉用户会话中用户的主要兴趣的同时有效避免了因为意外点击而引起的兴趣偏移。Meng 等[14]将用户的微行为和物品知识纳入基于会话的推荐的多任务学习中,通过在微行为级别上建模,以充分捕获会话中的过渡模式并减轻数据稀疏性问题。

图是一种结构化数据,包含着十分丰富的关系型信息,它是由顶点和边构成的一种数学关系。而图神经网络(Graph Neural Network,GNN)是一种连接主义模型,它靠图中节点之间的信息传递来捕捉图中的依赖关系。近年来,GNN 得到了广泛的应用,如脚本事件预测[15]、情景识别[16]和图像分类[17]。

卷积神经网络(Convolutional Neural Network,CNN)是GNN 起源的首要动机,另一个动机就是图嵌入,即如何将图中的节点、边和子图以低维向量的形式表现出来。基于表示学习,无监督的算法DeepWalk[18]被认为是第一种使用图嵌入技术的模型,该模型基于随机游走学习图节点的表示。此外,还有node2vec[19]、LINE(Large-Scale Information Network Embedding)[20]等。将经典的神经网络CNN 和RNN 应用在图结构数据上,Duvenaud 等[21]引入了可以直接对任意尺寸和形状进行操作的卷积神经网络,Gori 等[22]以循环神经网络的形式,将图神经网络用于处理有向图。由于基于会话的推荐中用户交互的物品信息能够构成图结构,Wu等[23]提出了一种图神经网络模型,将会话信息建模为图结构化的数据,保留物品之间的关系结构。Xu 等[24]提出了一种基于图神经网络的图上下文自注意力模型,利用自注意力网络和图神经网络之间的互补性来增强推荐性能。Song等[25]认为用户的兴趣是动态的,每个时段兴趣不同,并且用户的兴趣容易受他们朋友的兴趣影响,基于此提出了一种动态图注意力网络,用于对用户动态兴趣和上下文相关的社交影响进行建模。Yu 等[26]提出了一种目标注意力图神经网络(Target Attentive GNN,TAGNN)模型,自适应地激活了用户对不同目标项目的不同兴趣,学习到的兴趣表示向量随目标项目的不同而变化,极大提高了模型的表达能力。Wang 等[27]提出了全局上下文增强图神经网络(Global Context Enhanced GNN,GCE-GNN),利用会话图和全局图中的项目转换,从而更好地推断当前会话的用户偏好。

基于会话的传统推荐方法大多未考虑会话序列的点击顺序,而基于会话的深度学习推荐方法往往忽视了物品类别这一重要信息。基于此,本文提出了一种基于会话的多粒度图神经网络推荐模型(Session-based Recommendation model of Multi-granular GNN,SRMGNN),通过图神经网络不仅利用了会话序列的点击顺序信息,考虑了节点间的相互关系,而且使用了物品类别信息作为重要补充,极大提升了推荐的准确率。

2 基于会话的多粒度图神经网络推荐模型

2.1 模型提出动机

在现实场景中,用户在一次会话中点击的物品之间是存在某种内在联系的,并且会话中用户的兴趣可能会发生偏移,例如用户点击物品的类别会发生变化。如图1 所示,当前会话中,用户点击了一双运动鞋,然后查看了一部手机。接下来用户又点击了与手机相关的电子产品“耳机”,为了与之前查看的手机进行比较,用户又点击了另一款手机,最后用户又选择了另一款耳机与之前的一款进行比较。在整个会话中,用户的兴趣发生了两次偏移,从“运动鞋”到“手机”再到“耳机”,从类别上来看,用户最感兴趣的“手机”和“耳机”同属于电子产品这一个类别,并且这两个类别之间是存在某种内在联系的,用户两次点击的手机或者耳机之间也是存在某种内在的联系。利用上述物品类别上的信息以及物品之间的内在联系,推荐系统得到如图1中所示的推荐列表。

图1 基于会话的推荐系统Fig.1 Session-based recommendation system

通过以上分析可以看出,物品之间存在某种内在联系,物品对应的类别同样也包含了一些内在联系,而当前大多数的推荐系统却忽略了物品的类别信息,因此本文提出了多粒度的图神经网络模型,使用图神经网络学习物品的信息,同时学习物品的类别信息作为物品信息的补充,以提高推荐系统的推荐准确度。

2.2 相关定义

基于会话的推荐问题主要是根据用户当前会话的点击序列信息,预测用户下一次点击的物品。如图1 所示,用户在当前会话的一段时间内点击了一系列的物品,将此点击序列信息作为模型的输入,模型对序列信息进行建模,预测用户可能感兴趣的物品,输出top-K个物品的推荐列表。

基于会话的推荐问题的形式化定义可以描述为,令I={i1,i2,…,im} 表示所有物品的集合,s={(ts,1,is,1),(ts,2,is,2),…,(ts,n,is,n)}表示用户一次会话的点击序列,其中,ts,n表示会话序列s第n次点击发生的时间,is,n∈I表示会话序列s第n次点击的物品。而基于会话的推荐问题的任务就是构建一个模型M,对于任意给定的一次会话序列sj的n个点击物品的序列作为输入,预测第n+1 个最可能点击的物品isj,n+1。模型M 对所有的物品进行打分,得到所有物品在会话序列sj中的分数向量,然后对得分从大到小进行排序,选取得分最高的k个物品作为会话序列sj的推荐物品列表。

2.3 解决方案

本文提出的基于会话的多粒度图神经网络推荐模型(SRMGNN)主要由物品图神经网络层(Item Graph Neural Network)、物品类别图神经网络层(Item Category Graph Neural Network)、注意力网络层(Attention Network)、向量表示融合层(Fusion Layer)以及门限循环单元(Gated Recurrent Unit,GRU)[28]层组成,模型结构如图2所示。首先使用物品图神经网络层学习物品点击序列中物品的嵌入向量Ei,物品类别图神经网络层学习物品类别点击序列中物品类别的嵌入向量Ti,然后使用注意力网络,通过对物品嵌入向量Ei和物品类别嵌入向量Ti赋予不同的注意力权重,使用向量表示融合层融合得到融合后的嵌入向量Vi,最后生成推荐列表,方案的详细实施步骤如下。

图2 多粒度图神经网络推荐模型结构Fig.2 Multi-granular graph neural network recommendation model structure

1)获取用户会话中的物品点击序列信息,将其转换成有向图Gi=(vi,εi),图中每个节点vi,k∈vi表示物品,每条边(vi,k-1,vi,k)∈εi表示用户在点击了物品vi,k-1后点击了物品vi,k。

2)获取用户物品点击序列中的物品对应的类别信息后,构建出物品类别点击序列信息,将其转换成有向图Gc=(vc,εc),图中每个节点vc,k∈vc表示物品类别,每条边(vc,k-1,vc,k)∈εi表示用户在点击了物品类别vc,k-1后点击了物品类别vc,k。例如对于物品点击序列(I1,I2,I3,I2,I4,I5)和物品类别点击序列(C1,C2,C3,C2,C4,C5),可以转换成如图3 所示的有向图。

图3 用户点击序列与对应的有向图Fig.3 User click sequence and corresponding directed graph

3)为方便神经网络进行处理,使用邻接矩阵存储有向图数据,并为每个有向图构建一个节点连接关系矩阵As,由出度矩阵和入度矩阵组成,同时对度值进行归一化处理[23]。以计算出度矩阵中A2,3的值为例,使用I2节点到I3节点的出边的数量1 除以I2节点总出边数量2 得到A2,3的值1/2。构建节点连接关系矩阵可以让模型学到丰富的双向关系,而不是简单的单向转移关系。例如对于物品点击序列(I1,I2,I3,I2,I4,I5),节点连接关系矩阵如图4 所示。同理,也可以生成物品类别点击序列(C1,C2,C3,C2,C4,C5)的节点连接关系矩阵。

图4 节点连接关系矩阵Fig.4 Node connection relationship matrix

4)将物品会话图和物品类别会话图同时输入到对应的图神经网络(GNN)中,GNN 提取会话图中节点信息以及节点的连接关系信息进行学习,得到物品嵌入向量Ei以及物品类别的嵌入向量Ti。学习以及更新过程的计算式如下:

5)将得到的物品嵌入向量Ei和物品类别嵌入向量Ti输入到注意力网络中,使用注意力机制,对不同的物品和物品类别添加不同的注意力获取得到不同注意力级别的物品嵌入向量和物品类别嵌入向量。随后将和输入到向量表示融合层(Fusion Layer),通过融合相加得到增强后的物品嵌入向量Vi。

6)将物品嵌入向量Vi序列输入到GRU 中,通过对用户点击序列时序信息的提取与学习,得到嵌入向量Sh。将嵌入向量Sh与所有候选物品vi进行计算,得到每个候选物品vi的得分,最后经过softmax激活函数后得到模型的预测输出:

模型使用交叉熵函数作为损失函数,计算式如下:

3 实验与结果分析

3.1 数据处理

本文在公开的Yoochoose 数据集和Diginetica 数据集上进行实验。Yoochoose 数据集是在RecSys Challenge 2015上发布的一个公开数据集,由英国的在线零售商提供的用户在2014年的行为记录,包括点击、购买等组成。数据集共包含了9249729 件商品的共计33003994 条用户点击记录,每条记录包含SessionID、商品ID、商品类别以及时间戳四个信息,数据集并未提供用户的相关信息。Diginetica 数据集来自CIKM Cup 2016比赛,包含43097件商品共计204771条用户点击记录,每条记录包含SessionID、用户ID、商品ID、商品类别ID、时间戳和日期六个信息,数据集中虽然有用户ID 字段,但是字段值均为NA。

由于会话长度过短或者物品浏览次数过少的数据可使用价值不高,故参照Li等[12]和Liu 等[13]的做法,本文过滤了会话长度等于1和物品出现次数少于5次的会话数据。同时,参照Tan 等[29]的做法,对于输入的会话序列进行了序列生成,通过对会话序列的拆分,生成了对应的会话序列和标签。本文对数据集进行了拆分:对于Yoochoose 数据集,使用最后一天的数据作为测试集,其他数据作为训练集;而对于Diginetica 数据集,使用最后7 天的数据作为测试集,其他的数据作为训练集。由于Yoochoose数据集数据量很大,为了便于模型的训练和测试,本文使用常用的切分方式,将数据集切分成了1/64和1/4两个数据集。数据集的相关统计信息如表1所示。

表1 数据集统计信息Tab.1 Dataset statistics

3.2 基准方法

为了评估本文所提出的模型的有效性,将该模型与相关工作中提出的8种模型进行了对比。

1)POP[10]:是一种最简单的流行度预测方法,该方法将数据集中出现频率最高的商品进行推荐。该方法思想简单,实现也不复杂,在某些场景中仍然十分有效。

2)S-POP[10]:是一种基于当前会话的流行度预测方法,该方法为用户推荐当前会话下出现频率最高的商品,推荐列表会随着会话的变化而不断变化。

3)Item-KNN(Item-basedK-Nearest Neighbour)[5,30]:基于物品的K-近邻算法,通过召回和会话最相似的物品进行推荐。该方法主要通过计算物品与物品之间的余弦相似度来衡量物品之间的相似性,在会话推荐中主要根据物品的共现度来计算物品的相似度。

4)BPR-MF(Bayesian Personalized Ranking-Matrix Factorization)[31]:目前最常用的矩阵算法之一,主要通过随机梯度下降法优化pairwise排序损失函数。

5)FPMC(Factoring Personalized Markov Chains)[32]:该模型将马尔可夫链模型和矩阵分解结合,为每个用户生成单独的转移概率矩阵,然后生成转移矩阵立方体。该模型主要用于推荐系统中预测未知物品引起用户兴趣的可能性,并以此排出物品推荐列表。

6)GRU4REC[10]:第一个提出将循环神经网络用于会话推荐任务的方法,利用循环神经网络建模用户的点击序列,并根据物品“热门程度”进行采样,根据采样结果划分正负样本,使用基于排名的损失函数。

7)神经注意力模型(Neural Attentive session-based Recom Mendation,NARM)[12]:在循环神经网络会话推荐模型的基础上,加入了注意力机制。该模型利用注意力机制从隐状态捕获用户在当前会话的目的,并结合用户浏览时的序列行为进行物品推荐。

8)STAMP[13]:该模型引入记忆力与注意力机制,同时考虑用户长/短期兴趣,并通过提高短期兴趣的权重来减轻兴趣漂移对推荐结果的影响。

3.3 评价指标

在推荐场景中,大多数基于会话的推荐能够推荐的物品数量都受到一定因素的影响,因此大多数推荐问题仍然是Top-K推荐问题。本文在评测模型时,采用Precision@K和MRR@K(Mean Reciprocal Rank@K)两种评价指标,这两种指标也是目前基于会话的推荐场景中最常用的评价指标。

Precision@K用于衡量基于会话的推荐系统的预测准确性,表示推荐结果列表中排在前K个推荐物品中,有正确物品的样本所占的比例,该算法的定义为:

其中:nhit表示前K个推荐物品中有正确物品的样本数量;N表示测试集的总样本数。

MRR@K表示平均倒数排名,在Precision@K方法的基础上,加入了商品位置的影响。在推荐物品列表中物品的位置越靠前,则其值越大,反之越小,当物品不在前20 个推荐物品中时,该值为0。该算法的定义为:

其中:N代表测试集的总样本数;rank(i)表示第i个测试样本的推荐列表中正确物品所在的排列位置。

本文在评价模型时,取用K=20,因为在大多数的基于会话的推荐系统的实际场景中,大多数用户仅仅关注出现在第一页的推荐物品。

3.4 参数设置

本文模型的参数设定如下:初始学习率为0.001,学习率衰减系数为0.1,训练的Batch 大小为100,迭代次数为10。物品向量以及物品类别向量的维度均为100,物品图神经网络嵌入表示层、物品类别图神经网络嵌入表示层以及GRU 层的隐层节点个数均为100。所有权重矩阵均采用服从N(0,0.1)的高斯分布的随机数初始化,L2 惩罚系数为10-5。模型的损失函数使用交叉熵损失函数,使用Adam 优化方法对模型参数进行求解。

3.5 结果分析

为了验证本文提出的基于会话的多粒度图神经网络推荐模型(SRMGNN)在加入了类别信息之后对模型效果的提升,本文将该模型与未加入类别信息的基于会话的图神经网络推荐模型(Session-based Recommendation with Graph Neural Network,SRGNN)进行了对比实验,对比实验在Yoochoose 1/64、Yoochoose 1/4和Diginetica三个数据集进行。

在Yoochoose 1/64 数据集上,模型SRMGNN 与模型SRGNN的Precision@20和MRR@20的效果如图5所示。

在Yoochoose 1/64 数据集上,SRMGNN 和SRGNN 在第4个epoch 之后准确率未出现较大波动,模型趋于稳定。在模型达到稳定状态后,SRMGNN 相较于SRGNN,在Precision@20和MRR@20 两种评价指标上,均有更好的表现,表明融合了物品类别信息后的模型能够学习到点击序列更多的信息,在推荐时有更好的表现。同时从图5 中模型准确率的走势来看,SRMGNN效果提升更快更明显。

图5 Yoochoose 1/64数据集上的实验结果Fig.5 Experimental results on Yoochoose 1/64 dataset

在Yoochoose 1/4数据集上,模型SRMGNN 与模型SRGNN的Precision@20和MRR@20的效果如图6所示。

在Yoochoose 1/4 数据集上,SRMGNN 和SRGNN 在第6 个epoch之后准确率未出现较大波动,模型趋于稳定。在模型达到稳定状态后,SRMGNN 在Precision@20 和MRR@20 两种评价指标上,效果明显优于SRGNN,峰值差达到了1.25 个百分点和1.54 个百分点,且相较于Yoochoose 1/64 数据集的峰值差0.51 个百分点和0.55 个百分点,效果提升更明显。从图6模型准确率的走势来看,SRGNN 在前几次的迭代过程中,准确率明显有较大的波动情况,而SRMGNN 的准确率处于不断上升的状态。可以看出,SRMGNN 在融合了类别信息后具有更强的鲁棒性,更不容易受到其他因素的影响。

图6 Yoochoose 1/4数据集上的实验结果Fig.6 Experimental results on Yoochoose 1/4 dataset

在Diginetica 数据集上,模型SRMGNN 与模型SRGNN 的Precision@20和MRR@20的效果如图7所示。

在Diginetica 数据集上,SRMGNN 和SRGNN 在 第6 个epoch之后准确率未出现较大波动,模型趋于稳定。在模型达到稳定状态后,SRMGNN 在Precision@20 和MRR@20 两种评价指标上,效果均优于SRGNN,峰值差达到了1.12 个百分点和0.36 个百分点。在模型效果的最佳效果上,SMRGNN 在Precision@20 的评价指标上比SRGNN 高1.72 个百分点,SMRGNN 在MRR@20 的评价指标上比SRGNN 高0.49 个百分点。从图7 模型准确率的走势来看,两种模型在前几次的迭代过程中,准确率走势比较类似,在后续的迭代过程中,SMRGNN 在两种评价指标上的结果均高于SRGNN,并且差距明显且稳定。综合来看,SMRGNN 在Diginetica 数据集上相较于SRGNN有更好的表现。

图7 Diginetica数据集上的实验结果Fig.7 Experimental results on Diginetica dataset

综合在Yoochoose 1/64、Yoochoose 1/4和Diginetica数据集上的表现可知,融合物品类别信息,对模型的效果确实起到了提升作用,且在数据量较大的Yoochoose 1/4 数据集和Diginetica数据集上,效果提升更明显。

在与其他8 个基准方法的对比上,本文提出的SRMGNN同样也有更优异的表现,具体结果如表2所示。表2中加粗的为本文所提出的模型的实验效果,由于内存不足,无法初始化FPMC 模型,因此在Yoochoose 1/4 数据集上,FPMC 的实验结果并未公布。

表2 不同方法的实验结果对比 单位:%Tab.2 Experimental result comparison of different methods unit:%

从表2 可以看出,在Yoochoose 1/64 数据集上,STAMP 模型较NARM 模型,在Precision@20上提升了0.42个百分点,在MRR@20 上提升了1.04 个百分点,而本文所提出的模型SRMGNN 在STAMP 模型的基础之上,在Precision@20 上进一步提升了0.42 个百分点,在MRR@20 上进一步提升了0.13个百分点。在Yoochoose 1/4 数据集上,STAMP 模型相较NARM 模 型,在Precision@20 上提升了0.71 个百分点,在MRR@20 上提升了0.77 个百分点,而本文提出的模型SRMGNN 在STAMP 模型的基础之上,在Precision@20 上进一步提升了0.18 个百分点,在MRR@20 上进一步提升了1.28个百分点。在Diginetica 数据集上,本文提出的模型SMRGNN在NARM 模型基础之上,在Precision@20 上进一步提升了0.46个百分点,在MRR@20上进一步提升了0.87个百分点。

综上,本文提出的基于会话的多粒度图神经网络推荐模型(SRMGNN)在融合了物品类别信息后,模型更加稳定,准确率也进一步提升,在数据量较大时,模型效果提升更加明显。

4 结语

在基于会话的推荐问题中,目前大多数方法都只是使用点击序列中物品的信息,而物品的其他信息如类别信息等没有使用,导致模型学到的信息不够充分。针对此问题,本文提出了基于会话的多粒度图神经网络推荐模型(SRMGNN),通过引入更粗粒度的物品的类别信息,模型可以学到更充分的信息,模型的泛化能力得到了提升。

但是,对于会话点击序列的长度对模型效果的影响,本文未作研究,后续可以针对点击序列的长度,进行对比实验,研究较长会话点击序列和较短会话点击序列之间的差异。另外,用户的长期兴趣和短期兴趣对推荐的效果也有很大的影响,后续也可将用户的长短期兴趣信息作为补充,进一步研究用户的长短期兴趣对模型泛化能力的影响。

猜你喜欢
会话类别向量
向量的分解
聚焦“向量与三角”创新题
QQ和微信会话话轮及话轮转换特点浅析
一起去图书馆吧
简析基于概率预测的网络数学模型建构
用绘画导入英语教学
向量垂直在解析几何中的应用
向量五种“变身” 玩转圆锥曲线
选相纸 打照片
年龄大小的种种说法