前言
- 发表在SIGIR2020上的基于GNN进行序列推荐的研究
- 从全局上下文角度对原有的GNN工作进行改进
基于会话的推荐(Session-based,SBR)是一项具有挑战性的任务,其目的是基于匿名行为序列推荐物品。
现有的 SBR 模型只基于当前会话进行用户偏好建模,而没有利用其他会话,这些会话可能包含与当前会话相关和不相关的物品转换(item transition)。本文提出了一种全局上下文增强图形神经网络(GCE-GNN),以更精细的方式(in a more subtle way)利用所有会话中的物品转换,更好地推断出用户对当前会话的偏好。
具体来说,GCE-GNN 分别从会话图(session graph)和全局图(global graph)中学习了两个层次的物品嵌入: (i)会话图,即通过在当前会话中建模成对物品转换来学习会话级物品嵌入; (ii)全局图,即通过在所有会话中建模成对物品转换来学习全局级物品嵌入。
引言
传统的推荐算法(CF/CB)依赖用户属性和长期历史交互,在现实场景中可能表现不好,当用户没有登录或者只有短期交互数据,信息有限时。
session-based rec基于给定的匿名行为序列预测下一个感兴趣的物品。早期研究主要是分为两类:基于相似度的(similarity-based)和基于马尔可夫链的(chain-based):
similarity-based: 严重会话/序列中物品的共现信息,忽略了序列行为模型(sequential patterns)。
chain-based:推导所有可能的序列,计算复杂度高。
现在基于DL的方法使用pair-wise item-transition 信息来建模用户偏好,这些方法存在一些问题:
1、大部分方法基于RNN,按照时序有序地提取会话中pairwise item-transition信息。然而,一个会话可能包含多个用户选择甚至噪声,因此这些方法可能不足以生成所有正确的依赖关系,这些依赖关系的缺点是无法用嵌入建模转换模式的复杂内在顺序。
2.基于自我注意机制的GNN方法,如 SR-GNN ,通过根据session的每个物品与最后一个物品之间的pairwise item-transition来计算相对重要性,学习整个session的表征,而效果在很大程度上取决于最后一个物品与当前session用户偏好的相关性。
-
这些方法忽略了来自其他session中有用的item-transition模型,只基于当前会话进行建模。 CRSM模型(2019)从最近m个会话中整合协同信息来增强当前会话的表征,但是同时将其他序列中无关的信息也引入到当前session,可能影响模型效果(deteriorate)。
如上图所示,使用其他会话中的物品转换信息可能辅助当前session的推荐;但同时也可能引入噪声,即无关的物品。
Preliminaries
1.问题定义
给定物品集合 对于每个匿名会话,包含交互序列(按时序排列):,给定当前session S,推荐最可能被当前会话用户点积的TopN个物品
session graph & global graph
session graph: 学习当前session内成对近邻物品,每个session构成一个有向图,同时包含一个自环
global graph:建模全局的item transition information,通过整合所有session中的成对的item transition来构建大图,将所有物品对链接起来,打破了序列独立性假设。:Neighbor Set: 对于当前session中的物品,近邻集合即在一定步长内交互过的物品:
参数 ε 更倾向于建立短距离的物品转换的模型,因为如果超出范围,它在捕获全局级物品转换信息方面是没有帮助的(甚至噪声,例如,无关依赖)global-level item transition可以定义为:
根据近邻集合构建得到的全局图,即为global graph,对于图中的边,使用该对序列在所有session中出现的频次作为边权重。为了计算效率,对于每个节点,仅保留权重TopN的边,构成了一个无向图,在测试阶段,该图结构不会动态更新。
模型方法
1. Global-level Item Representation Learning
对global graph进行构图处理,消息构成,对当前节点的近邻集合节点进行消息计算:
其中注意力分值计算如下: ,在对当前节点进行消息计算时考虑当前节点所在的session信息,计算近邻节点和当前session的亲和力(affinity),跟当前session兴趣更匹配的节点重要度更高: 然后将当前节点表征和近邻节点表征进行拼接聚合 多层迭代如下:通过这种方式,一个物品的 k 阶表示是它的初始表示和它的邻居的混合,最高可达 k 跳。这样可以将更有效的消息合并到当前会话的表示中。
2. Session-level Item Representation Learning
对于session graph,同样使用注意力机制来学习不同节点间的权重 作者在session-graph中定义了不同的边类型:self-loop, in ,out,in-out,共四类不同的关系:并给不同的关系设置对应的embedding
,通过GAT的形式进行节点处理,这样得到的邻接矩阵是非对称的。3. Session Representation Learning
对于每个节点,通过如下sum pooling得到:与以往主要集中在最后一物品的工作不同,本文提出了一个更全面的策略,以了解每一部分对预测的贡献。在本文的方法中,会话表示是基于会话中涉及的所有项构建的。不同项目对下一个预测的贡献是不同的。
直观地说,会话中稍后点击的物品更能代表用户的当前首选项,这表明它们对于推荐的重要性更大。(考虑位置信息)
此外,在当前会话中找到用户的主要目的和过滤噪声也很重要。因此,我们结合反向位置信息和会话信息,以做出更好的预测。
将位置信息和节点信息融合,并通过和会话信息进行attention计算得到最终的结果(并非以往与最后一个物品的表征进行注意力计算的做法)
完整模型图如下:实验结果
模型详细设计实验小结
本文与之前的SR-GNN等工作相比,考虑了全局信息的影响,同时分析了加入其他session信息的利弊,利用近邻节点进行图构建,并在具体的建模时通过合理的设计来最大化利用相关物品,降低噪声物品的影响,总体工作还是比较有趣的。
网友评论