【论文阅读】Self-Supervised Hypergraph Convolutional Networks for Session-based Recommendation
目录
-
摘要
-
介绍
-
- 本文创新
-
提出方法
-
- 一些定义
- 超图构建
- 双通道超图卷积网络
-
- 超图通道和卷积
- 模型优化和推荐生成
- 线图通道和卷积
- 自监督学习
-
实验
-
- 与其它方法相比
- 消融实验
- 模型深度和自监督学习作用
文章链接:Self-Supervised Hypergraph Convolutional Networks for Session-based Recommendation
源代码: https://github.com/xiaxin1998/DHCN
摘要
基于图的会话推荐忽略了高阶关系,本文采用超图进行建模,提出一种双通道的超图卷积网络,并将自监督学习的思想集成其中,通过最大化通过DHCN中的两个通道学习的会话表示之间的互信息,作为改进推荐任务的辅助任务
介绍
基于会话的推荐系统从用户在交易过程中产生的会话 (session) 数据来挖掘和学习用户的偏好。每一个会话包含在一段连续的时间段内发生的多个「用户–物品交互行为」,比如某用户在一次交易会话 (比如从登录电商平台的账号到退出账号这段时间)中购买了一篮子物品。通过将每一个会话作为最基本的输入数据单元,一个基于会话的推荐系统能够从一个用户的最近产生的会话中捕获他的短期偏好,以及从一个会话到另一个会话之间的偏好的变化,从而进行更精准和实时的推荐。参考:基于会话推荐系统最新长文综述
不同于其他传统的推荐系统,如基于内容的推荐系统和协同过滤推荐系统,通常建模用户的长期和静态的偏好,基于会话的推荐系统旨在捕获用户短期和动态的偏好来给用户提供更实时和精准的推荐服务基于会话推荐系统最新长文综述
user-用户,item-物品
一般来说,一个会话是在一个购物事件中有多个购买物品的交易,SBR通过使用实时用户行为来预测下一个物品。
在基于RNN的方法中,由于数据通常是在短时间内生成的,并且可能与时间有关,因此将会话数据建模为单向序列,但是在实际的用户行为中,可能没有严格的时间顺序,颠倒两个物品的顺序并不会影响用户偏好。相反,严格且仅对项目的相对顺序建模可能会使推荐模型过拟合 。、
本文创新
引入超图 :在真实场景中,物品转换通常是由之前的物品点击的联合效应触发的,物品之间存在多对多和高阶关系。显然,简单的图无法描述这样的集合关系。为了克服这些问题,我们提出了一种基于超图的SBR方法来模拟会话中物品之间的高阶关系。首先将每个会话构建为一条超边,并将每个超边作为点构建一个图来探索各个会话之间的关系 。开发了一个双通道超图卷积网络(DHCN),分别从两个图中获取复杂的物品相关性和跨会话信息。
引入自监督学习 :然而,由于每个hyperedge只包含有限数量的项,固有的数据稀疏性问题可能会限制hypergraph建模带来的好处。为了解决这个问题,我们创新性地将自监督学习集成到我们的模型中
直观地说,我们网络中的两个通道可以被视为描述会话内部和之间的两个不同视图,而它们中的每一个对另一个几乎一无所知。通过自监督学习,通过最大化两个通道学习到的会话表示之间的互信息,两个通道可以相互获取新信息,以提高各自在物品\会话特征提取中的性能。
提出方法
一些定义
物品集合:I=\left\{i_1,i_2,...,i_N\right\},N为物品数量
会话集合:s=[i_{s,1},i_{s,2},...,i_{s,m}],i_{s,k}表示会话中匿名用户已发生交互的物品
X为物品特征向量x_i^{(l)}组成的矩阵,其中l表示在网络中的第l层。(第l层对应的向量表示为x_i^{(l)})
SBR任务:预测给定会话的下一项i_{s,m+1}
超图定义:G={V,E},关联矩阵H,超边权重矩阵W,超边度矩阵B,顶点度矩阵D
超图的线图:L(G)=(V_L,E_L),图中每个顶点v_e代表一个超边,如果超图中的超边中含有共享顶点,则在线图中连接顶点v_e。边权重W_{p,q}=\frac{|e_p\cap e_q|}{|e_p\cup e_q|}
超图构建
将每个会话表示为一条超边,每个item表示为一个顶点。[i_{s,1},i_{s,2},...,i_{s,m}]\in E,i_{s,m}\in V。
构建超图以后,将超边中的顶点两两连接起来,我们将会话序列转换为无向图,这符合我们的直觉,即会话中的项目是时间相关的,而不是顺序相关的。
并根据超图构建线图,每个会话被建模为一个节点,不同的会话通过共享项连接。与描述项目级高阶关系的超图相比,折线图描述的是会话级关系,也称为跨会话信息
双通道超图卷积网络
在超图构造之后,我们开发了一个双通道超图卷积网络DHCN,以捕获item级高阶关系和会话级关系。网络中的每个通道负责从一个(超)图中提取有用信息,通过(超)图卷积提高SBR。
超图通道和卷积
预滤波器(SGU):X_c^{(0)}=f_gate^c (X^{(0)})=X^{(0)}\odot \sigma(X^{(0)}W_g^c+b_g^c)
其中W_g^c和b_g^c为门控参数,c\in \left\{h,l\right\}分别代表两个通道,\sigma为sigmoid函数
自我调节门控机制通过特征粒度的对特征进行重赋权,得到超图通道的embedding
根据HGNN(Feng et al. 2019)并且参考SGC去掉了其中的非线性部分:
x_i^{(l+1)}=\sum_{j=1}^N\sum_{\epsilon=1}^MH_{i\epsilon}H_{j\epsilon}W_{\epsilon\epsilon}x_j^{(l)}P^{(l)}
超图卷积可以看作是对超图结构进行“节点-超边-节点”特征变换的两阶段细化。
经过L层的超图卷积后,对所有得到的embeddings进行平均X_h=\frac{1}{L+1}\sum_{l=0}^LX_h^{(l)}
虽然这项工作主要强调了会话一致性的重要性,但为了获得更好的推荐结果,时间信息也是不可避免的。位置嵌入是Transformer(V aswani et al.2017)中引入的一种有效技术,已在许多情况下用于存储项目的位置信息。
在我们的方法中,我们通过一个可学习的位置矩阵将反向位置嵌入 与学习项表示集成在一起 P_r=[p_1,p_2,...,p_m]:
x_t^*=tanh(W_1[x_t||p_{m-i+1}]+b)
参考SR-GNN(Wu et al. 2019b)来对会话s的embedding进行进一步计算:
\alpha_t=f^T\sigma(W_2x^{\ast}_s+W_3x^{\ast}_t+c)
其中,f^T,W_1,W_2,W_3为可学习参数,x^*_s为会话s中所有item的平均,x^*_t为会话中第t个item。
把最后一个item作为用户当前的intent,用户在整个会话中的interest通过一个soft-attention机制来聚合。
就是将x^*_m作为中心,会话(超边)中其它顶点为其邻接点,计算得到上式中的\alpha_t为会话中其它顶点的重要性系数,再进行聚合:
\theta_h=\sum_{t=1}^m\alpha_tx_t^*
模型优化和推荐生成
给定一个会话,对所有的item,计算其分数\tilde z:
\tilde z_i=\theta_h^Tx_i
再经过一个softmax函数,计算会话中每个item成为下一个item的概率:
\tilde y=softmax(\tilde z)
损失函数为交叉熵损失函数:
L_r=-\sum_{i=1}^Ny_ilog(\tilde y_i)+(1-y_i)log(1-\tilde y_i)
线图通道和卷积
线图可以看作是一个简单的图,其中包含跨会话信息,并描述了超边的连通性。
首先通过门控SGU获得线图通道的embeddings X_l^{(0)}。由于线图通道中不涉及任何item,遍历每个会话中的item,对其特征向量进行平均,得到会话的embeddings \Theta_l^{(0)}。
邻接矩阵A,并且A_{p,q}=W_{p,q}。并令\tilde A=A+I,\tilde D为对应的度矩阵。
线图卷积为:
\Theta_l^{(l+1)}=\tilde D^{-1}\tilde A\Theta^{(l)}Q^{(l)}
其中Q为权重矩阵,在每次卷积中,会话都从邻居那里收集信息。同样地将通过l层卷积得到的embedding进行平均,得到最终的embedding:\Theta_l=\frac{1}{L+1}\sum_{l=0}^L\Theta_l^{(l)}
自监督学习
超图建模使模型能够实现显著的性能,然而,会话数据的稀疏性可能会阻碍超图建模,从而导致次优的推荐性能。受简单图自监督学习成功实践的启发,本文创新性地将自监督学习集成到网络中,以增强模型性能:
-
创建自监督信号。在DHCN中,通过两个通道学习了两组特定于通道的会话embedding,由于每个通道编码一个(超)图,该图仅描述item级(会话内)或会话级(会话间)结构信息,因此这两组embedding彼此了解甚少,但可以互补。
对于训练中的每个batch,两组会话embedding之间有一个映射,这两个embedding可以成为自监督学习的基础,并且这种一对一的映射被视为标签增强。如果两个会话embedding表示同一个会话,则将这一对embedding标记为正样本,否则为负样本。 -
对比学习。将DHCN中的两个通道作为两个视图,代表会话的两种表示。采用InfoNCE作为损失函数:
L_s=-log\sigma (f_D(\theta_i^h,\theta_i^l))-log\sigma(1-f_D(\tilde \theta_i^h,\theta_i^l))
其中f_D(\cdot)为判别函数,计算两个向量的一致性(点积运算)。
这一学习目标被解释为最大化在不同视角下学习的会话嵌入之间的互信息
他们可以从彼此获取信息,通过卷积运算提高他们在物品\会话特征提取中的性能。特别是,那些只包含少数物品的会话可以利用跨会话信息来优化其嵌入。
最后将推荐任务和自监督任务统一到一个主辅助学习框架中,前者是主任务,后者是辅助任务:
L=L_r+\beta L_s
实验
实验据说有比较大的改动,这个是我下载的论文里面的实验
datasets:两个来自真实世界的数据集: Tmall,Nowplaying 和 Diginetica
使用序列分割 方法对数据集进行扩充和标记,生成多个带有相应标签的标记序列
与其它方法相比
Baseline:
- Item KNN(Sarwar et al.2001)推荐与会话中先前单击的物品相似的物品,其中使用会话向量之间的余弦相似性
- FPMC(Rendle、Freudenthaler和Schmidt-Thieme 2010)是一种基于马尔可夫链的顺序方法
- GRU4REC(Hidasi et al.2015)利用会话并行小批量训练过程,并采用基于排名的损失函数来建模用户序列
- NARM(Li et al.2017):是一个基于RNN的模型,对产生建议的顺序行为进行建模
- STAMP(Liu等人,2018):利用自我关注机制来增强基于会话的推荐
- SR-GNN(Wu等人,2019b):应用门控图卷积层来学习物品转换
- FGNN(邱等人,2019年):将会话中的下一个物品建议作为一个图分类问题来制定。

消融实验
DHCN-P:无位置嵌入
DHCN-NA:无soft attention

对于Tmall来说,当删除反向位置嵌入或软注意时,简化版在两个指标上都实现了性能提升,而且性能甚至比完整版更好。考虑到天猫数据集是在真实的电子商务环境中收集的,这一发现在一定程度上验证了我们的假设,即一致性可能比严格的订单建模更重要。
模型深度和自监督学习作用

