基于AGRU-GNN的图网络社交推荐算法①

2021-05-21 07:22卓佳宁雷景生周雪雪
计算机系统应用 2021年5期
关键词:邻域时序物品

卓佳宁,雷景生,周雪雪

(上海电力大学 计算机科学与技术学院,上海 200090)

这是一个信息爆炸的时代,大数据这把双刃剑在为我们带来丰富的知识讯息的同时,也产生了不少“数据泡沫”,用户常常被这些无效信息包围,无从下手,而用户真正感兴趣的信息被阻绝在外.为了解决这一问题,推荐系统应运而生,旨在为每个特定用户从海量数据中筛选出其各自感兴趣的内容并推荐给用户.推荐系统的关键之一在于对用户兴趣以及物品特征的建模表示,从而能够进一步通过评分模型对用户、物品预测相关程度,并以此为依据进行推荐.另一方面,社交网络中好友、大V 等社交关系也可能会影响用户的潜在兴趣,社交网络也越来越多地被结合到推荐系统中来[1-3],在推荐时利用通过社交网络的传播的信息,提高了推荐的针对性与有效性.

基于图神经网络(GNNs)的推荐算法[4,5]是推荐系统应用的热门算法之一.GNN 在图结构拓扑上应用深度神经网络的技术对局部图的邻域信息进行迭代,使得信息能够在非结构化的节点关系中进行交互计算,最终得到各个节点在图拓扑结构下的特征域表示.社交推荐本质上是在非规则的用户-物品关系、用户-用户关系中聚合并表示各个节点的本征信息与交互关系,因此GNN 在社交推荐中得到了广泛的应用[6,7].

图神经网络通常描述的是静态拓扑关系,一方面,节点之间的连接关系不会随时间发生改变.对于推荐系统而言,时时刻刻都有海量新数据产生,新用户、新物品以及新交互事件都会改变已有图网络的拓扑结构.另一方面,对于特定节点,其邻居节点的时序性通常被GNN 所忽略.例如,对于推荐系统中的用户-物品图结构而言,以用户为中心,则其邻居节点即为该用户交互过的物品,而用户与不同物品的交互自然存在时间上的先后,而交互时间的时序性则可能暗含了用户兴趣随时间的变化情况.

本文主要针对第二点提出改进GNN 算法,利用门控循环单元(GRU)对时间序列信息进行选择性遗忘与选择性记忆,以此对用户-物品交互历史以及物品-用户交互历史进行建模,增强了GNN 算法在局部图邻域迭代过程中对时序信息的抽象能力,使得推荐系统对用户节点以及物品节点的表示结合了其特点随时间的变化,提升了推荐的效果.具体而言,我们分别建立了以用户节点为中心的用户-物品图,每个用户节点的相邻节点为其交互过的物品,这些相邻节点通过交互时间戳属性排序,在GNN 进行局部图邻域迭代时通过GRU 学习物品交互历史潜在关联,并通过注意力机制与用户表征进行聚合;类似的,同时建立以物品节点为中心的物品-用户图,每个物品节点的相邻节点为与其交互过的用户,同样按照交互事件的时间戳排序,并通过注意力GRU 模型进行聚合,以此来表征对该物品感兴趣的群体特征变化;另外,还根据用户间的社交关系建立了用户-用户图网络,通过注意力机制来传递社交网络中相邻用户之间的相互作用.

1 相关工作

1.1 基于非时序特征的GNN 推荐算法

深度学习主要关注例如文字的序列结构、例如图片的平面结构,现在处理这些数据的做法也比较成熟,关注序列任务的NLP 领域多用RNN、Transformer、CNN 对数据进行Encoder,而关注平面结构的CV 领域更多使用CNN 及其各种变体对数据进行Encoder.在现实世界中更多的数据表示并不是序列或者平面这种简单的排列,而是表现为更为复杂的图结构.

Kipf和Welling[8]提出了用于半监督图分类的图卷积网络(GCNs).模型通过利用节点属性和图结构来学习节点表示,它由多个图卷积层组成,每个图卷积层使用当前节点的表示及其相邻节点的表示的组合来更新节点表示.通过这个过程,可以捕获节点之间的依赖关系,然而在原来的公式中,当更新节点表示时,所有的邻居被赋予静态权值.Fan 等[9]通过构建用户-物品关系二元图 (用户购买的所有物品)、用户-朋友关系单元图 (用户的社交关系)、物品-用户关系二元图 (物品被用户购买的记录)这3 个无向图用于对物品进行评分预测.Ying 等[10]构建了用户-标签无向二元图,通过 PinSage 算法 (随机游走和图卷积结合)成功应用于超大规模的网页内容推荐.Wang 等[11]构建用户—物品图,不同之处在于 GNN 算法中使用目标节点及其邻居节点的点积进行更新,并且通过协同过滤的方法进行推荐.上述文献证明了图网络在推荐上的有效性,但都没有考虑时序性对用户兴趣以及物品的影响.

1.2 基于时序特征的推荐算法

对于随时间变化的用户兴趣进行建模在推荐系统领域也引起了大量关注,这些模型大多基于(高斯)矩阵分解[12].例如,Xiong 等[13]通过分解(用户、物品、时间)张量来学习时间表示.Koren[14]开发了一个类似的模型叫做timeSVD++.Gopalan 等进行了类似的建模,但是使用了泊松分解[15].但是,这些方法假定用户的兴趣在长期范围内缓慢而平稳地变化,通常以月或年为序.

为了有效地捕捉用户的短期兴趣,最近的研究将RNN 引入到用户最近的(有序的)行为模型中.例如,Hidasi 等[16]首先提出了SessionRNN 来模拟用户在会话中的兴趣.Wu 等[17]使用两个独立的RNNs 根据新的观察结果更新用户和项的表示.Beutel 等[18]构建了一个基于rnnde的推荐器,可以包含辅助上下文信息.本文基于这种思路将GRU 引入图网络,并且辅之以注意力机制,来捕捉用户的时变兴趣和物品的时变特征,进而提升了推荐系统在时序评分数据集上的有效性.

2 基于AGRU的图网络社交推荐算法

本文以图网络为骨架建立推荐系统,定义用户集合{U|u1,u2,···,uN} 与物品集合{V|v1,v2,···,vM},则图顶点集合为U ∪V.图网络中存在两种非同质边缘,第一种边表示用户与物品之间的交互关系,即{R|U×V}=描述了用户ui对物品vj进行过评价,边ri,j的权重记为,表示用户ui对物品vj的评分量化分值,边ri,j的时间戳记为,表示此次评分事件发生的时刻;第二种边表示用户与用户之间的有向交互,即{S|U×U}={S|si,j:=(ui→uj),ui,uj∈U},表示用户ui在 社交平台上关注了用户uj,边si,j的权重记为,表示用户ui与uj社交关系重要性的量化值,本文不考虑社交网络的时序特征,因此边si,j无时间戳属性.

因此,本文推荐系统可描述为:给定用户集合 U、物品集合 V,以及评分边集合R、社交边集合S,经过一定的训练算法得到优化预测函数 F,使得对于任意ui∈U,vj∈V,ri,j∉R,可预测用户ui对物品vj的评分=F(ui,vj),作为是否推荐的依据.以下将分别以用户节点与物品节点为中心,展开介绍图网络局部图邻域聚合的具体算法细节.

2.1 图网络局部图邻域聚合

GNN 中常用局部图邻域聚合技术[8,19]来传递邻近节点之间的信息,并迭代训练各节点的抽象表示.对于给定图G(ν,E),定义k阶邻域函数Neighk(vi)={vk|(vi,vi,1),···,(vi,k-1,vk)∈E},即vi与vk之间存在长度为k的路径.本文采用一阶邻域函数,简记为N.则GNN 局部图邻域聚合算法可见算法1.

算法1.GNN 局部图邻域聚合算法的第n 次迭代1)遍历图的顶点,对每个顶点,执行第2)~4)步操作;vi N(vi)=Neigh(vi)G V vi 2)计算的邻域节点集合;Agg N(vi)vagg i=Agg(N(vi))3)利用聚合函数 计算的聚合表示结果;vagg i 4)将聚合结果 与顶点自身 拼接,并进行线性仿射与非线性激活,得到该顶点本次迭代的表示.vi v(n)i

上述算法中聚合函数Agg有多种选择,常见的如拼接、注意力、卷积等.本文根据边ri,j存在时序性的特点,选择基于注意力机制的门控循环单元作为邻域聚合函数,以提取各节点邻域集合中的时序信息,提高推荐系统对时序数据的学习能力.

本文推荐系统图模型中(如图1所示),顶点集合由用户集合 U、物品集合 V两部分组成,边集合由评分关系集合 R、社交关系集合 S构成,其中不包含关于物品集合 V的闭集边集,因此整个图可划分为3 个局部图:用户-物品图、用户-用户图以及物品-用户图,以下将分别讨论其邻域聚合算法.另外,用户ui、物品vj分别通过嵌入层获得其向量表示,;考虑到数据集中评分的取值为离散整数0-5,权重也通过对评分分值的嵌入向量表示,即.

2.2 用户模型:AGRU 聚合+社交影响力聚合

考虑图模型中的用户节点ui以及以其为端点的评分边Rui构成的局部图(图1左上角子图),即用户-物品图.则ui的邻域节点为用户ui所 评价过的物品集合NV(ui),根据各评分边的时间戳t,可得到用户评分事件的时序排列.为提取用户评价物品的时序特征,本文在用户-物品图邻域聚合采用基于注意力的门控循环单元(Attention-GRU)来提取评分序列特征,算法如算法2 所示.

算法2.用户-物品图AGRU 聚合算法,第n 次迭代1)遍历用户集合,对每个顶点,执行第2)~8)步操作;ui V NV(ui)=NeighV(ui)L=■■■NV(ui)■■■U ui 2)计算 在物品集合 上的邻域节点集合,邻域节点数量;NV(ui)v jti,j S eq(ui)=[v1,v2,···,vL] ti,1≤ti,2≤···≤ti,L 3)将 中的物品节点 按时间戳 升序排列,得到长度为L的物品序列,其中;S eq(ui)v jeVj wRi,jeRi,jeVjeRi,j e j′ S eq(ui)=[e1′,e2′,···,eL′]4)对序列 中的每个物品元素,查询其嵌入表示,以及对应评分的嵌入表示;将 与 拼接输入多层感知机降维得到包含评分分值信息的物品表示;更新;S eq(ui)h0 Outseq=[h(k)1,h(k)2,···,h(k)L 5)将序列 作为GRU的输入,同时输入初始隐藏状态,得到GRU 在每个时刻末层输出构成的长度为L的序列,其中k为GRU的纵向堆叠层数;h(k)L]6)以GRU 末层最后时刻的隐藏状态为参考,用注意力机制对中的L 个元素进行加权平均得到;h′ h(k)L Outseqh′7)拼接 与,并经过线性层以及非线性ReLU 激活,得到,作为邻域集合的聚合结果,即;uagg i NV(ui)Agg(NV(ui))=uagg uagg i i eUi 8)将聚合结果 与顶点自身嵌入表示拼接,并进行线性仿射与非线性激活,得到该用户节点第n 次迭代的表示.u(n)i

上述算法中,第4)步采用双层感知机降维:

第5)步中第m=1,2,···,k层GRU[20]在时刻t=1,2,···,L执行下列计算:

其中,δ表示Dropout 函数,*表示Hadamard 乘积,σ表示Sigmoid 激活函数:

每个GRU 单元的内部结构如图2所示,xt表示当前时刻的输入,h(t-1)则表示该GRU 单元上一时刻的隐藏状态.两者拼接并分别通过独立全连接层得到重置因子rt和遗忘因子zt,由于经过了Sigmoid 激活,两种因子的取值范围均在0 到1 之间.重置因子对上一时刻的隐藏状态进行重置,并将结果与当前输入拼接后传递给tanh 激活的全连接层,得到以当前输入为主、隐藏状态为辅的表示nt.另一方面,遗忘因子zt与记忆因子1-zt分别对h(t-1)和nt调制,实现了对序列历史隐含信息的选择遗忘以及当前输入的选择记忆.

图1 基于AGRU-GNN的图网络社交推荐算法架构

图2 GRU 单元内部结构

取GRU 第k层的隐藏状态Outseq=作为输出,并基于输出单元数量为1的多层感知机+Softmax 实现注意力机制(如图3所示),获得的注意力权重系数pi:

则邻域NV(ui)聚合特征:

图3 基于注意力机制的GRU 聚合算法架构

另一方面,考虑用户节点ui以及以其为起始端点的社交边 Sui构成的局部图,即用户-用户图(图1右上角子图).本算法中社交边集为有向边集,每条边表示用户的单向关注关系,则ui的邻域节点为用户ui所关注的用户集合NU(ui).社交边si,j的权重量化为被关注者uj的影响力因子:

在用户-用户局部图的邻域聚合的第n次迭代中,使用用户-物品局部图第n次迭代聚合的结果u作为节点ui的向量表示,使得AGRU 捕获到的时序特征也能够通过社交边进行传播.具体聚合过程如下:

首先,查询用户-物品图在用户集合NU(ui)上的迭代结果得到:随后通过如式(10)-(14)所示的注意力网络得到关于其每个邻域节点的边权加权表示的注意力权重pj.则社交局部图的邻域聚合特征

最终经过式(16)-式(18),将与节点自身特征融合降维后得到,即为用户ui在第n次迭代后的最终向量表示.

2.3 物品模型:对偶AGRU 聚合

类似地,考虑以物品节点为中心情形下的局部图邻域聚合算法.由于评分边集 R是无向边集,因此物品-用户图(图1左下角子图)与用户-物品图完全对偶,对于物品vi,其邻域用户集合NU(vi)也可通过评分边的时间戳排序得到用户时间序列,表示对物品vi评价过的用户在时间上的先后次序.因此对于物品的特征迭代算法与算法2 关于 (U,V)对偶,可对称地得到物品vi在第n次迭代后的表示.显然地,物品社交图没有明显的物理意义,因此物品模型中不包含自身社交影响力聚合,用户ui在 第n次迭代后的最终向量表示=.当然,用户社交的影响因素会在物品进行邻域聚合时传播给物品模型.

2.4 评分预测模型

根据第2.2、2.3 节对用户ui、物品vi的AGRU 聚合算法,分别得到第n次迭代后的向量表示,.将其拼接后经过单输出多层感知机(如图1右下角子图),得到对评分关系ri,j权重(即评分分值)的预测值.

在训练过程中,以一个批次(batch)数据的均方误差MSE作为目标函数对模型中的参数进行优化:

其中,bsize为批次规模.

在推理过程中,则即为推荐系统给出的用户ui对物品vi的评分分值预测.

3 实验结果与分析

3.1 数据集选取与预处理

实验采用Ciao 数据集和Epinions 数据集对算法进行验证,两者均为包含社交关系信息的在线购物数据[21].数据集包含两部分数据:(1)评分信息,每条评分数据包括用户索引、物品索引、评分分值(0-5)以及时间戳4 个维度;(2)社交信息,每条社交数据包括关注者用户索引以及被关注者用户索引,表示用户单向关注关系.Ciao 数据集与Epinions 数据集的特点如表1所示.

对数据集的预处理包括数据清洗、索引重映射、数据集切分、图建模、时间戳排序5 个步骤.数据清洗主要完成数据去重,评分数据中包含少量重复评分边ri,j,根据其时间戳t保留较新的数据;随后对数据集用户集合 U、物品集合 V分别进行索引重映射,将原始索引映射至 [1,2,···,|U|],[1,2,···,|V|]范围内,方便嵌入层映射;之后将数据集中的评分边 R集随机划分为训练评分边集 Rtrain和测试评分边集Rtest,分别比较训练集比重为60%和80%的实验结果;对训练集和测试集,分别建立第2 节中描述的推荐图模型,并对每个用户节点的邻域物品节点按时间戳提前排序,则图网络迭代过程中无需重复排序,以降低计算量,对于物品节点的邻域用户节点,也按同样方法提前排序.

表1 Ciao 数据集与Epinions 数据集特征

3.2 评价指标

本文采用衡量推荐系统推荐效果的两个常用指标作为评判标准:均方根误差RMSE和平均绝对误差MAE:

其中,y表示测试集所有评分边的权重(真实值)则表示推荐系统对测试集各评分边的预测权重(预测值)RMSE与MAE越小,表明推荐系统预测的评分与真实值差距越小,推荐效果越好.

3.3 对比模型

我们选取下列模型作为本算法对比的基准模型:

(1)概率矩阵分解(PMF)[12]:对用户潜在因子、物品潜在因子建模,利用用户-物品评分概率矩阵进行推荐;

(2)社交推荐(SoRec)[22]:基于用户-物品评分矩阵提取联合潜在因子特征,并结合社交矩阵进行推荐;

(3)社交矩阵分解(SocialMF)[3]:考虑了社交信任度在用户-物品评分矩阵分解空间中的传播;

(4)神经网络矩阵分解(NCF)[23]:将神经网络与矩阵分解结合进行推荐;

(5)深度社交网络推荐(Deep-SoR)[24]:利用深度神经网络对用户在社交关系中的特征进行训练,并通过概率矩阵分解实现推荐;

(6)图网络推荐(GraphRec)[9]:根据社交关系和评分关系建立图网络,利用注意力机制迭代图节点,训练用户、物品的嵌入表示来实现推荐.

3.4 实验环境与超参数设置

本文采用Python 3.8,PyTorch 1.6,Cuda 10.2 作为搭建算法的环境,工作站CPU为4 核Intel(R)Core(TM)i5-7500@3.40 GHz,GPU 型号为NVIDIA GP102 [TITAN Xp].

本算法以batch为单位进行训练,为了避免过拟合,在各非线性激活函数输出端增加dropout 层,丢弃概率全局统一设置;同时在图网络的每一批次迭代中,对同一batch的用户、物品向量表示进行批次归一化.算法中的超参数经过验证集(从训练集中抽取20%得到)反复调整得到:嵌入维度(用户、物品、评分采用统一嵌入维度)为64,GRU 纵向堆叠层数k=2,dropout 丢弃概率为0.5,批次大小为64,学习率为0.0005.

3.5 结果分析

本文在Ciao、Epionions 数据集分别选取60%、80%作为训练集,其余作为测试集对提出的算法进行了验证,并与第3.3 节列出的几种基准模型进行了对比,RMSE和MAE比较结果如表2.

从表2的结果可以看出,本文所提出的基于AGRUGNN 算法在Ciao 数据集和Epinions 数据集上比表中所列的基准模型误差更小.其中PMF和NCF 只利用了用户与物品的评分数据,而SoRec、SocialMF、Deep-SoR和GraphRec 均使用了数据集中的社交关系数据,因此平均比同类模型具有更小的误差.本文所采用的AGRU 聚合算法,通过GRU 对评分事件的时序信息提取,并加以注意力机制对不同时刻的输出进行了有选择的加权平均,结合社交局部图使得用户对物品的时变兴趣信息能够基于社交影响关系在用户之间传播,从而达到了更好的推荐效果.这证明了本文提出的算法在时序推荐数据集上具有一定的优越性.

我们还探究了不同超参数设置下,对本文推荐算法效果的影响.以Ciao(80%)数据集为例,基准超参数的设置为GRU 纵向堆叠层数k=2,dropout 概率为0.5,迭代周期数为5.图4展示了在基准超参数设置下,模型预测误差随迭代周期数(epoch)的变化,一次迭代周期表示图网络中所有顶点U ∪V均被聚合迭代了一次.可以看出模型的收敛速度较快,5 个周期后便达到了最优值,随着迭代次数的增加,模型出现了一定程度的过拟合.收敛速度快得益于GRU 对时序信息具有较强的表示能力,快速地提取了用户、物品的时变特征;另一方面,由于GRU 内部结构较为复杂,也增大了模型的参数量,因此随即出现了一定程度的过拟合现象.

表2 本文算法AGRU-GNN 与其他推荐模型对比结果

图4 模型预测误差随迭代周期数的变化

GRU的层数一定程度上决定了模型的复杂程度,为了避免严重的过拟合,我们研究了不同GRU 层数设置对模型误差的影响,如图5.可以看出,双层GRU 在此数据集上具有较好的推荐效果,而层数过大则存在较严重的过拟合,层数过小则削弱了模型对时序信息的学习能力.

为了更好地抑制过拟合,模型中在大部分非线性激活单元的输出端以及GRU 层间加入了dropout 层,并通过全局统一的dropout 概率加以调节.图6展示了模型最佳预测误差随dropout 概率的变化,以50%概率进行丢弃时,模型在预测误差和过拟合之间达到了较好的平衡.即使以较大的概率75%进行丢弃,模型的功能依然没有受损,但预测误差开始陡增.

另外,我们还对比了本文模型的若干变种模型,分别为:

图5 模型最佳预测误差随GRU 层数的变化

图6 模型最佳预测误差随dropout 概率的变化

(1)AGRU-GNN:采用GRU 作为图网络时序聚合模型,并在物品-用户图、社交图的邻域聚合均采用了注意力机制,即本文提出的最终模型;

(2)GRU-GNN:禁用了模型中的注意力机制,其余参数与(1)相同;

(3)ARNN-GNN:采用Vanilla RNN 作为图网络时序聚合模型,也同时采用了注意力机制;

(4)GNN(即GraphRec[9]):基准图网络模型,主要采用注意力聚合.

四种变种模型分别在Ciao(80%)和Epinions(80%)数据集上进行了对比,结果如图7所示.GRU 对时序信息的提取筛选能力明显优于普通RNN,普通RNN对时序信息的选择记忆、遗忘能力不足,导致ARNNGNN的推荐有效性甚至弱于基准模型GraphRec;另外,注意力机制的存在也对模型整体性能有一定提升,这说明注意力机制有助于在用户的物品交互时间序列关注重点事件,同样地,在社交图中也对不同的好友存在不同的关注权重.

图7 变种模型最佳预测误差RMSE 对比

综上所述,本文提出的基于AGRU的图网络聚合算法,在带有时间戳及社交信息的推荐数据集Ciao、Epinions 上取得了良好的性能,证明了本算法中采用的AGRU 聚合从用户时序评价历史中提取了有效信息,提升了推荐系统的准确度.

4 结论与展望

本文在图神经网络GNN 架构的基础上,基于推荐系统中评价事件的时序性以及用户特征、物品特征的时变特点,提出了一种基于门控循环单元的注意力聚合算法.通过Ciao、Epinions 数据集,证明了本算法在时序评价数据集上具有更低的预测误差,说明用户的时变兴趣、物品的时变特征对于推荐系统也至关重要.GRU 对于时间序列有较强的学习能力,后续工作可考虑基于此算法实现推荐系统的在线训练,即输入数据是随时间流动的流式数据,图结构也随数据的增长动态变化,使GRU 从流式数据中捕获动态的时序特征,以此实现推荐系统的在线演变和动态推荐.在线的动态推荐更加接近实际生活中的推荐系统产品,当然,还需要解决冷启动、计算开销大甚至是分布式架构设计等问题.

猜你喜欢
邻域时序物品
顾及多种弛豫模型的GNSS坐标时序分析软件GTSA
基于混合变邻域的自动化滴灌轮灌分组算法
清明
基于GEE平台与Sentinel-NDVI时序数据江汉平原种植模式提取
你不能把整个春天都搬到冬天来
基于近邻稳定性的离群点检测算法
图画捉迷藏
找物品
创意,源自生活的可爱小物品
对函数极值定义的探讨