title:Self-Supervised Graph Co-Training for Session-based Recommendation
link:https://arxiv.org/pdf/2108.10560.pdf
code:https://github.com/xiaxin1998/COTREC
from:CIKM 2021
1. 导读
新年快乐,新年第一篇开张啦,一起来学习吧
本文针对会话推荐提出COTREC方法,该方法通过自监督学习图协同训练来对稀疏的序列进行增强,从而提升模型的性能。
- 一方面通过构建两类图分别从会话内和会话间两个角度来对关系进行挖掘。
- 另一方面在两个图上构建了两个不同的图编码器,它们利用不同的连接信息来生成为标签,通过对比学习相互监督。并且利用KL散度对两个编码器进行约束。
2. 方法
2.1 符号
表示商品的集合,N是商品数,会话session表示为
按时间排序,
表示交互的商品,将商品的特征映射到相同的空间,用
表示商品
(I就是H,表示的有点冗余)在第
层DNN后得到维度为
的表征。所有的商品表征为
,
为随机初始化的商品表征。会话s表示为向量,通过模型预测
对应的商品,返回排序后的商品集合
,然后选取top-K。
2.2 COTREC
image.png
2.2.1 两个图
为了进行协同训练,首先通过利用会话的内部和相互连接模式从会话数据中导出两个不同的图,即商品图和会话图。从商品的视角来说,构建一个有向图,根据商品(i_a, i_b)在会话中的点击顺序,边的权重
为模式[i_a, i_b]出现的次数。从会话的角度,构建会话间的无向图,对于两个会话s_j, s_k他们边的权重
为两个会话中共同包含的商品数除以两个会话包含商品总数。这两个图能够相互提供互补信息,同时保持独立并在一定程度上表现出不同。
2.2.2 编码器
构建了两种不同的图之后,再构建两个基于图卷积的编码器对上面两个图进行编码,提取信息。
2.2.2.1 商品编码器
这部分采用简化的图卷积来作为编码器,定义如下,其中
,I为单位阵。D和A_I分别为度矩阵和邻接矩阵。W为可学习参数,X为embedding。下标
对应的是商品集合。
经过L层图卷积后,将每一层的输出求均值聚合得到商品的embedding
。单纯通过这样的卷积方式无法考虑到会话中商品的顺序关系,因此这里加入位置编码矩阵
,其中m为会话的长度,
表示位置m的位置embedding。会话中第t个商品的embedding可以表示为下式,
然后利用soft-attention注意力机制对会话中不同商品加权后得到整个会话的表征,公式如下,其中
是会话中所有表征的均值,f,c,W是可学习参数。
2.2.2.2 会话编码器
会话图从另一个角度描述商品和会话关系。同样也利用图卷积进行编码,先通过将会话中的商品embedding
求均值后来对会话节点初始化得到embedding
(这里和上面的x_s应该是不一样的,这里是在没经过图卷积的embedding上求均值,而x_s是在经过图卷积后的embedding上求均值)。此处的图卷积定义如下,可以发现公式和商品编码器是类似的。在经过L层卷积后,将所有层的输出求均值,得到最终的会话节点表征
。
2.2.3 用图协同训练挖掘自监督信号
上面构建了两个图编码器,它们可以相互提供互补信息。因此,通过利用来自另一个视图的信息来细化每个编码器是很自然的。这可以通过遵循协同训练来实现。给定会话视角下的会话