基于注意机制的个性化图形神经网络会话推荐
发表于:IEEE(2019)
摘要
基于个性化会话的推荐问题旨在根据用户的连续行为预测用户的下一次点击。现有的基于会话的推荐方法只将用户的所有会话看作一个序列,忽略了会话之间的关系。除此之外,他们大多忽视了项目的复杂转换以及用户与项目之间的协作关系。为此,为了简洁起见,我们提出了一种新的方法,即带有注意机制的个性化图神经网络,A-PGNN。A-PGNN主要由两部分组成:一部分是个性化图神经网络(PGNN),用于捕捉用户会话序列中的复杂转换。与传统的图神经网络(GNN)模型相比,它还考虑了用户在序列中的作用。另一种是点乘注意机制来模拟历史会话对当前会话的影响。这两部分使我们能够以特定于用户的方式了解项目和会话之间的多级转换关系。
INTRODUCTION
当前存在的问题:现有的算法但很难明确区分不同历史会话对当前会话的影响。
作者提出:作者提出的模型对于每个用户,其用户行为图反映了用户的个性化行为。(1)为基于个性化会话的推荐场景设计了一种新的图形神经网络PGNN,它能够以特定于用户的方式捕获复杂的项目转换关系。(2)使用点乘注意机制来明确建模用户历史兴趣对当前会话的影响。
Preliminaries
模型
下图是我们提出的方法的概述。每个用户u的所有会话Su可以建模为用户行为图Gu(第3.3节)。然后,我们将用户行为图、项目嵌入和用户嵌入输入个性化图神经网络(PGNN)(第3.4节),以捕获项目相对于用户u的转换。然后,我们使用最大池层来获得会话嵌入,并可以获得历史会话嵌入矩阵。然后,我们通过Dot产品注意层计算历史会话对当前会话的显式影响。因此,我们可以得到用户的动态兴趣表示(第3.5节)。最后,我们将用户嵌入与动态兴趣表示连接起来,形成用户的统一表示(第3.6节)。使用这些表示,我们输出所有候选项的概率ˆy,其中元素yi∈ ˆy是对应项目vi的推荐得分∈ V(第3.7节)。具有top-k值的项目将成为推荐的候选项目。
构建用户行为图
对于每个用户,我们将其所有会话Su建模为一个有向图,在每个用户行为图中,假设vi对vj的影响和vj对vi的影响是不同的,这会产生两种类型的边,表示两种不同的过渡关系。一条称为输出边,权重为,另一条有向边称为输入边,权重为。其权重可通过以下方式计算:
用户行为图Gu的拓扑结构可以用两个邻接矩阵表示,可以写成:
Personalizing Graph Neural Network
SR-GNN中的图神经网络不适合个性化推荐场景,也不能充分利用用户的个性化信息。为了解决这一局限性,作者提出了PGNN。
用GRU更新每个节点的隐藏状态
在总共T个传播步骤之后,可以在图Gu中获得每个节点i的最终隐藏状态向量,我们使用hi代替。每个节点的最终隐藏状态不仅包含其节点特征,还聚合了其T阶邻居的信息。
通过注意网络生成用户动态兴趣表示
如果用户以前在购物网站上浏览或单击过数码相机,则其当前单击的项目是SD和Micro SD卡。在这种情况下,历史会话和当前会话项目之间存在很强的关系。如果他当前的互动是与汽车产品的互动,那么相机和汽车属于两个不相关的类别,这表明历史会话对当前会话的影响较小。总之,明确建模历史会话和当前会话项目之间的关系对于捕获用户行为模式具有重要意义。
计算历史会话对当前会话的影响:
Dot-Product Attention:
计算历史会话对当前会话影响。输入为维度为dk的queries和keys,以及维度为dv的values,用所有键计算查询的点积。
用隐向量对历史会话序列和当前会话序列建模,历史会话中的被表示为,由最大池化计算得到
由此,历史会话序列的嵌入可以被表示为。对于当前会话,我们简单的定义其嵌入矩阵为,用当前会话嵌入来查询历史会话嵌入,Q由决定,键和值由决定。通过非线性变换将和投影到相同的潜在空间。
此时,当前会话的嵌入为
生成用户动态表示:
我们使用注意机制将当前嵌入矩阵分别编码为全局表示和局部表示,其中全局表示指用户的一般兴趣,局部指用户的当前兴趣。全局表示为:
局部表示为:
用户的动态表示为: