SBR笔记:Self-Supervised Hypergraph Convolutional Networks for Session-based Recommendation

Abstract

基于会话的推荐(SBR)侧重于某一时间点的下一项预测。由于用户配置文件在这种情况下通常是不可用的,因此捕捉项目转换中的用户意图起着至关重要的作用。目前基于图形神经网络的SBR方法将项目转换视为成对关系,忽略了项目之间复杂的高阶信息。超图提供了一种自然的方式来捕捉超越成对的关系,而它在SBR中的潜力仍未被探索。在本文中,我们通过将基于会话的数据建模为超图来填补这一空白,然后提出了一种超图卷积网络来改进SBR。此外,为了增强超图建模,我们设计了另一个基于超图的线图的图卷积网络,然后通过最大化通过两个网络学习的会话表示之间的互信息,将自监督学习集成到网络的训练中,由于这两种类型的网络都基于超图,可以被视为超图建模的两个通道,我们将我们的模型命名为DHCN(双通道超图卷积网络)。在三个基准数据集上的大量实验证明了我们的模型优于SOTA方法,实验结果验证了超图建模和自监督任务的有效性。
模型代码:https://github.com/xiaxin1998/DHCN

Introduction

​ 基于会话的推荐是一种新兴的推荐模式,在这种模式下,通常无法获得长期的用户档案(王、曹和王,2019;郭等人,2019年)。一般来说,一个会话是一个购物事件中有多个购买项目的交易,而SBR通过使用实时用户行为来关注下一个项目的预测。该领域的大多数研究工作将会话视为有序序列,其中基于循环神经网络(RNNs)和图神经网络(GNNs)(吴等人,2020)的方法显示出很好的性能。

​ 在基于RNNs的方法中,将基于会话的数据建模为单向序列被认为是成功的关键,因为数据通常在短时间内生成,并且可能是时间相关的。然而,这种假设也可能因为它忽略了项目的一致性使基于RNNs的模型陷入困境。实际上,与严格按顺序生成的语言序列不同,在用户行为中,可能没有严格的时间顺序。例如,在Spotify上,用户可以选择随机播放专辑或按顺序播放,这将生成两种不同的收听记录。但是这两种播放模式都是连载同一套歌曲。换句话说,在这种情况下颠倒两个项目的顺序不会导致用户偏好的扭曲。相反,严格地和单独地对项目的相对顺序建模而忽略项目的一致性,可能会使推荐模型倾向于过度拟合。

​ 最近,图神经网络(GNNs)的有效性在包括SBR在内的许多领域都有报告。与基于RNNs的推荐方法不同,基于GNNs的方法将基于会话的数据建模为有向子图,将项目转换建模为成对关系,这稍微放松了连续项目之间时间相关性的假设。然而,与基于RNNs的方法相比,现有模型仅显示出微不足道的改进。潜在的原因是他们忽略了基于会话的数据中复杂的项目相关性。在现实场景中,一个物品转换往往是由之前物品点击的共同作用触发的,物品之间存在多对多、高阶关系。显然,简单的图形无法描述这样的集合关系。

​ 为了克服这些问题,我们提出了一种新的基于超图的SBR方法来建模会话中项目之间的高阶关系。从概念上来说,超图(Bretto 2013)由顶点集和超边集组成,其中超边可以连接任意数量的顶点,可用于编码高阶数据相关性。我们还假设会话中的项目是时间相关的,但不是严格的顺序相关的。超边的特征完全符合我们的假设,因为超边是set-like的,它强调所涉及元素的一致性,而不是相对顺序。因此,它为我们提供了在会话中捕捉复杂交互的灵活性和能力。从技术上来说,我们首先将每个会话建模为一个超边,在这个超边中,所有项目都相互连接,不同的超边通过共享项目连接,构成了包含项目级高阶相关性的超图。然后在超图的基础上,通过将每个超边建模为一个节点来构建线图,并重点关注超边的连通性,这描述了会话级关系。然后,开发了一个双通道超图卷积网络(DHCN),分别从这两个图中两个通道捕获复杂项目相关性和跨会话信息。图1展示了超图构造和所提出方法的管道。

​ 通过在超图通道中堆叠多层,我们可以借用超图卷积的优势来生成高质量的推荐结果。然而,由于每个超边只包含有限数量的项目,固有的数据稀疏问题可能会限制超图建模带来的好处。为了解决这个问题,我们引入线图通道,并创新性地将自监督学习(Hjelm等人,2018)集成到我们的模型中,以增强超图建模。直觉上,我们网络中的两个通道可以被视为描述会话内部和之间信息的两种不同的视图,而它们中的每一个都很少知道另一个的信息。通过自监督学习最大化通过两个通道学习的会话表示之间的互信息,两个通道可以从彼此获取新的信息,以提高它们自己在项目/会话特征提取中的性能。然后,我们将推荐任务和自我监督任务统一在一个主要和辅助学习框架下。通过联合优化这两个任务,推荐任务的性能获得了可观的收益。

​ 总的来说,本文的主要贡献总结如下:1.我们提出了一种新的双通道超图卷积网络,它可以通过超图建模来获取项目之间的超对关系和跨会话信息。2.我们创新性地将自我监督任务集成到我们的网络训练中,以增强超图建模并改进推荐任务。3.大量实验表明,我们提出的模型比最先进的基线具有压倒性的优势,并在基准数据集上实现了统计上的显著改进。

Related Work

Session-based Recommendation

SBR的初步探索主要集中在序列建模上,马尔可夫决策过程是这一阶段的首选技术。(妮莎,赫克曼,和布朗夫曼2005;Rendle,Freudenthaler,Schmidt-Thieme 2010;Zimdars,Chickering,Meek 2013)就是这一研究路线的代表作品。深度学习的兴起为利用顺序数据提供了替代方案。深度学习模型,如循环神经网络(Hochreiter和Schmidhuber 1997Cho等人(2014年)和卷积神经网络(Tuan和Phuong 2017年)随后被应用于SBR,并取得了巨大成功。(Hidasi等人,2015年;谭、徐、刘2016;李等2017;刘等2018)是经典的基于RNNs的模型,它们借用RNNs的优势来对基于会话的数据进行建模。

​ 图神经网络(GNNs)(吴等2020;周等人(2018)最近越来越受到关注,他们在SBR中的应用也显示出良好的效果(王等人,2020b,c;Y uan等人,2019年;陈、王2020)。与基于RNNs的方法处理顺序数据不同,基于GNNs的方法通过会话诱导图学习项目转换。SR-GNN(吴等2019b)是使用门控图神经网络将会话建模为图结构数据的开创性工作。GC-SAN(徐等2019)利用自我注意机制通过图形信息聚合来捕捉项目依赖。FGNN(邱等2019)构建了一个会话图来学习项目转移模式,并重新思考了项目在SBR中的顺序。GCE-GNN(王等,2020c)在单会话图和全局会话图上进行图卷积来学习会话级和全局级嵌入。虽然这些研究表明,基于GNN的模型优于其他方法,包括基于RNNs的方法,但它们都无法捕捉复杂和高阶项目的相关性。

Hypergraph Learning

​ 超图为复杂的高阶关系提供了一种自然的方法。随着深度学习的兴起,超图神经网络也受到了广泛的关注。HGNN(冯等2019)和HyperGCN (Yadati等2019)首次将图卷积应用于超图。(蒋等2019)提出的动态超图神经网络 and (Bandyopadhyay,Das,Murty 2020)发展了线超图卷积网络。

​ 也有少数研究将超图学习与推荐系统相结合(Bu等2010;李、李2013)。与我们的工作最相关的是HyperRec(王等,2020a),它使用超图来为下一项推荐建模短期用户偏好。但是,它不利用超边间信息,也不是为基于会话的场景设计的。此外,这种模型的高度复杂性使得它无法在实际场景中部署。目前还没有桥接超图神经网络和SBR的研究,我们是第一个填补这一空白的。

Self-supervised Learning

​ 自监督学习(Hjelm等人,2018)是一种新兴的机器学习范式,旨在从原始数据中学习数据表示。它首先被用于视觉表征学习(Bachman,Hjelm和Buchwalter 2019)。这一领域的最新进展扩展了自我监督学习到图表示学习(Velickovic等人,2019年)。基于对比学习的主导范式(Hassani和Khasahmadi 2020;邱等人2020a)提出,将互信息最大化图的全等和不全等视图进行对比有助于对丰富的图/节点表示进行编码。

​ 由于自监督学习还处于起步阶段,将其与推荐系统相结合的研究还比较少(周等,2020;Ma等人,2020年;Xin等人,2020年)。与我们的工作最相关的是用于顺序推荐的 S 3 − R e c S^3-Rec S3Rec(周等人,2020),其使用特征掩码来创建自我监督信号。但是它不适用于SBR,因为会话数据非常稀疏,屏蔽特征不能产生强自监督信号。目前,自监督学习在超图表示学习和SBR中的潜力还没有得到研究。我们是第一个将自监督学习集成到SBR和超图建模场景中的人。

The Proposed Method

​ 在这一节中,我们首先介绍贯穿本文的概念和定义,然后展示如何将基于会话的数据建模为超图。之后,我们提出了我们的双通道超图卷积网络。最后,我们将自监督学习集成到网络中,以增强超图建模。

Notations and Definitions

​ 设 I = { i 1 , i 2 , i 3 , … … , i N } I=\{i_1,i_2,i_3,……,i_N\} I={i1,i2,i3,,iN}表示项目集,其中N是项目数。每个会话表示为一个集合 s = [ i s , 1 , i s , 2 , i s , 3 , … … , i s , m ] s=[i_{s,1},i_{s,2},i_{s,3},……,i_{s,m}] s=[is,1,is,2,is,3,,is,m] i s , k ∈ I ( 1 ≤ k ≤ m ) i_{s,k} \in I(1 ≤ k ≤ m) is,kI(1km)表示会话s内匿名用户的一个交互项,我们把每个项i ∈ I嵌入到同一个空间中,让 x i ( l ) ∈ R d ( l ) x^{(l)}_i \in R^{d^{(l)}} xi(l)Rd(l)表示深度神经网络第l层维数为 d l d^l dl的项目i的向量表示。整个项目集的表示表示为 X ( l ) ∈ R N × d ( l ) X^{(l)} \in R^{N×d^{(l)}} X(l)RN×d(l)。每个会话由一个向量s表示。SBR的任务是为任何给定的会话s预测下一个项目,即 i s , m + 1 i_{s,m+1} is,m+1

Definition 1. Hypergraph.

​ 设G = (V,E)表示超图,其中V是包含N个唯一顶点的集合,E是包含M个超边的集合。每个超边 ϵ ∈ E \epsilon \in E ϵE包含两个或更多顶点,并被赋予正权重 W ϵ ϵ W_{\epsilon\epsilon} Wϵϵ,所有的权值公式化为一个对角矩阵 W ∈ R M × M W\in R^{M×M} WRM×M。超图可以用关联矩阵 H ∈ R N × M H∈R^{N×M} HRN×M来表示,如果超边 ϵ ∈ E \epsilon∈ E ϵE包含一个顶点 v i ∈ V v_i∈V viV H i ϵ = 1 H_{i\epsilon}= 1 Hiϵ=1,否则为0。对于每个顶点和超边,它们的度 D i i , B ϵ ϵ D_{ii},B_{\epsilon\epsilon} Dii,Bϵϵ分别定义为 D i i = ∑ ϵ = 1 M W ϵ ϵ H i ϵ , B ϵ ϵ = ∑ i = 1 N H i ϵ D_{ii}=\sum^M_{\epsilon=1}W_{\epsilon\epsilon}H_{i\epsilon},B_{\epsilon\epsilon}=\sum^N_{i=1}H_{i\epsilon} Dii=ϵ=1MWϵϵHiϵ,Bϵϵ=i=1NHiϵ。D和B是对角矩阵

Definition 2. Line graph of hypergraph.

​ 给定超图G = (V,E),超图的线图L(G)是这样一个图,其中L(G)的每个节点是G中的超边,并且如果L(G)的两个节点在G中的相应超边共享至少一个公共节点,则它们是连接的。形式上, L ( G ) = ( V L , E L ) L(G)= (V_L,E_L) L(G)=(VLEL)其中 V L = { v e : v e ∈ E } , E L = { ( v e p , v e q ) : e p , e q ∈ E , ∣ e P ∩ e q ∣ ≥ 1 } V_L= \{v_e:v_e∈ E\},E_L= \{(v_{e_p},v_{e_q}) : e_p,e_q∈ E,|e_P∩e_q |≥1\} VL={ve:veE}EL={(vepveq):epeqEePeq1}。我们给每条边 ( v e p , v e q ) {(v_{e_p},v_{e_q})} (vepveq)分配一个权重 W p , q W{p,q} Wp,q,其中 W p , q = ∣ e p ∩ e q ∣ / ∣ e p ∪ e q ∣ W_{p,q}=| e_p\cap e_q|/|e_p∪e_q| Wp,q=epeq/epeq

Hypergraph Construction.

​ 为了捕捉基于会话的推荐中的超越成对关系,我们采用超图G=(V,E)将每个会话表示为一个超边。形式上,我们将每个超边表示为 [ i s , 1 , i s , 2 , i s , 3 , … … , i s , m ] ∈ E [i_{s,1},i_{s,2},i_{s,3},……,i_{s,m}]∈ E [is,1,is,2,is,3,,is,m]E,每一项 i s , m ∈ V i_{s,m}∈ V is,mV,超图构造前后数据结构的变化如图1左边部分所示。如图所示,原始会话数据被组织为线性序列,其中只有当用户与项目 i s , m i_{s,m} is,m之前项目 i s , m − 1 i_{s,m-1} is,m1交互时,两个项目 i s , m − 1 , i s , m i_{s,m-1},i_{s,m} is,m1,is,m才更紧密地连接。在将会话数据转换为超图之后,在会话中单击的任何两个项目都是连接的。应该注意的是,我们将会话序列转换成无向图,这符合我们的直觉,即会话中的项目是时间相关的,而不是顺序相关的。通过这样做,我们设法使多对多的高阶关系具体化。此外,我们根据定义2进一步归纳超图的线图。每个会话都被建模为一个节点,不同的会话通过共享项连接在一起。与描述项目级高阶关系的超图相比,折线图描述了会话级关系,也称为跨会话信息。

旧版

Dual Channel Hypergraph Convolutional Network

​ 在超图构造之后,我们开发了双通道超图卷积网络DHCN,以捕获项目级高阶关系和会话级关系。网络中的每个通道负责从一个(超)图中提取有用的信息,以通过(超)图卷积来提高SBR。

Hypergraph Channel and Convolution.

​ 超图通道对超图进行编码。由于有两个通道,直接向两个通道馈送完整的基本项目嵌入 X ( 0 ) ∈ R N × d X^{(0)}∈R^{N×d} X(0)RN×d是不明智的。为了控制流向每个通道的嵌入量,我们采用了一个带有自选通单元 (self-gating units,SGUs)的前置滤波器,其定义如下:

X c ( 0 ) = f g a t e c ( X ( 0 ) ) = X ( 0 ) ⨀ σ ( X ( 0 ) W g c + b g c ) X^{(0)}_c=f^c_{gate}(X^{(0)})=X^{(0)}\bigodot \sigma(X^{(0)}W^c_g+b^c_g) Xc(0)=fgatec(X(0))=X(0)σ(X(0)Wgc+bgc) (1)

​ 其中 W g c ∈ R d × d , b g c ∈ R d W^c_g∈R^{d×d},b^c_g∈R^d WgcRd×d,bgcRd是待学习门控参数,c∈{h,l}代表通道, ⨀ \bigodot 表示逐元素乘积,σ是sigmoid函数。自门控机制通过维度重加权在特征粒度上调节基本项目嵌入,然后我们获得超图特定通道项目嵌入 X h ( 0 ) X^{(0)}_h Xh(0)

​ 在超图上定义卷积运算的主要挑战是如何传播项目的嵌入。参考(冯等2019)中提出的谱超图卷积,我们将超图卷积定义为:

x i ( l + 1 ) = ∑ j = 1 N ∑ ϵ = 1 M H i ϵ H j ϵ W ϵ ϵ x j ( l ) P ( l ) x_i^{(l+1)}=\sum^N_{j=1}\sum^M_{\epsilon=1}H_{i\epsilon}H_{j\epsilon}W_{\epsilon\epsilon}x_j^{(l)}P^{(l)} xi(l+1)=j=1Nϵ=1MHiϵHjϵWϵϵxj(l)P(l) (2)

其中 P ( l ) ∈ R d × d P^{(l)}∈R^{d×d} P(l)Rd×d是两个卷积层之间的可学习参数矩阵。按照(吴等2019a)中的建议,我们不使用非线性激活函数。对于 W ϵ ϵ W_{\epsilon\epsilon} Wϵϵ,我们给每个超边分配相同的权重1。Eq.(1)用行规范化的矩阵形式是:

X h ( l + 1 ) = D − 1 H W B − 1 H T X h ( l ) P ( l ) X_h^{(l+1)}=D^{-1}HWB^{-1}H^TX_h^{(l)}P^{(l)} Xh(l+1)=D1HWB1HTXh(l)P(l) (3)

超图卷积可以看作是对超图结构进行“节点-超边-节点”特征变换的两阶段细化。乘法运算 H T X h ( l ) H^TX^{(l)}_h HTXh(l)定义了从节点到超边的信息聚合,然后预乘H被看作是从超边到节点的信息聚合。

​ 在将 X h ( 0 ) X^{(0)}_h Xh(0)通过L超图卷积层后,我们对每一层获得的项目嵌入进行平均,得到最终的项目嵌入 X h ∗ = 1 L + 1 ∑ l = 0 L X h ( l ) X^*_h=\frac{1}{L+1}\sum^L_{l=0}X^{(l)}_h Xh=L+11l=0LXh(l)。会话嵌入可以通过聚合该会话中项目表示来表示。我们遵循在SR-GNN(吴等2019b)中使用的策略来细化会话 s = [ i s , 1 , i s , 2 , i s , 3 , … … , i s , m ] s=[i_{s,1},i_{s,2},i_{s,3},……,i_{s,m}] s=[is,1,is,2,is,3,,is,m]的嵌入。

α t = f T σ ( W 1 x m ∗ + W 2 x t ∗ + c ) \alpha_t=f^T\sigma(W_1x^*_m+W_2x^*_t+c) αt=fTσ(W1xm+W2xt+c)

s g = ∑ t = 1 m α t x t ∗ , θ h = W 3 [ x m ∗ ; s g ] s_g=\sum^m_{t=1}\alpha_tx^*_t,\theta_h=W_3[x^*_m;s_g] sg=t=1mαtxt,θh=W3[xm;sg]

其中 x m ∗ x^*_m xm是会话s中最后一个项目的嵌入, x t ∗ x^*_t xt是会话s中第t个项目的嵌入。让 x m ∗ x^*_m xm表示当前用户意图,并且通过软注意机制聚集项目嵌入来表示用户在该会话中用户的一般兴趣嵌入 s g s_g sg,其中项目具有不同级别的优先级。 f ∈ R d , W 1 ∈ R d × d , W 2 ∈ R d × d f ∈ R^d,W_1∈R^{d×d},W_2∈R^{d×d} fRdW1Rd×d,W2Rd×d注意参数用于学习项目权重 α t α_t αt。混合会话嵌入 θ h θ_h θh连接 x m ∗ , s g x^*_m,s_g xmsg表示从超图结构推断的完整用户偏好, W 3 ∈ R d × 2 d W_3∈R^{d×2d} W3Rd×2d将混合会话嵌入转换到 R d R^d Rd空间。请注意,根据我们在第一节中的动机,我们放弃了其他SBR模型中使用的GRU单位和自注意力等序列建模技术。当前的意图是我们使用的唯一时间因素,因此我们的模型非常高效和轻量级。

Line Graph Channel and Convolution

​ 线图通道对超图的线图进行编码。图1显示了我们如何将超图转换成它的线图。折线图可以看作是一个简单的图,它包含了跨会话信息,并描述了超边的连通性。在卷积操作之前,类似地,我们通过SGU传递 X ( 0 ) X^{(0)} X(0)以获得线图特定通道项目嵌入 X l ( 0 ) X^{(0)}_l Xl(0)。由于线图通道中不涉及任何项目,我们首先通过查找属于每个会话的项目来初始化特定通道会话嵌入 Θ L ( 0 ) \Theta^{(0)}_L ΘL(0),然后平均 X l ( 0 ) X^{(0)}_l Xl(0)中的相应项目嵌入。根据定义2,L(G)的关联矩阵定义为 A ∈ R M × M A ∈ R^{M×M} ARM×M,M是线图中的节点数, A p , q = W p , q A_{p,q}= W_{p,q} Apq=Wpq。设 A ^ = A + I \hat A = A + I A^=A+I,其中I为单位矩阵, D ^ ∈ R M × M \hat D ∈ R^{M×M} D^RM×M为对角度矩阵,其中 D ^ p , p = ∑ q = 1 m A ^ p , q \hat D_{p,p}=\sum^m_{q = 1} \hat A_{p,q} D^pp=q=1mA^pq,线图卷积定义为

Θ l ( l + 1 ) = D ^ − 1 A ^ Θ ( l ) Q ( l ) \Theta^{(l+1)}_l=\hat D^{-1}\hat A\Theta^{(l)}Q^{(l)} Θl(l+1)=D^1A^Θ(l)Q(l) (5)

其中 Q ( l ) ∈ R d × d Q^{(l)}∈R^{d×d} Q(l)Rd×d为权重矩阵。在每次卷积中,会话从邻居那里收集信息。通过这样做,学习的 Θ \Theta Θ可以捕获跨会话信息。同样,我们通过L图卷积层传递 Θ l ( 0 ) \Theta^{(0)}_l Θl(0),然后对每层获得的会话嵌入进行平均,得到最终的会话嵌入 Θ l = 1 L + 1 ∑ l = 0 L Θ l ( l ) \Theta_l=\frac{1}{L+1}\sum^L_{l=0}\Theta^{(l)}_l Θl=L+11l=0LΘl(l)

Model Optimization and Recommendation Generation

​ 给定一个会话s,我们通过分别在基础项嵌入 X 0 X^0 X0 θ s h θ^h_s θsh以及 θ s l θ^l_s θsl之间进行内积来计算所有候选项i∈ I的得分 z ^ \hat z z^。然后我们将两个预测值相加,得到最终的预测值。

z ^ i = ( θ s h + θ s l ) T x i \hat z_i=(θ^h_s+θ^l_s)^Tx_i z^i=(θsh+θsl)Txi (6)

之后,应用softmax函数来计算每个项目成为会话中下一个项目的概率:

y ^ = s o f t m a x ( z ^ ) \hat y=softmax(\hat z) y^=softmax(z^)

我们将学习目标表述为交叉熵损失函数,它在推荐系统中被广泛使用,定义为:

L r = − ∑ i = 1 N y i l o g ( y ^ i ) + ( 1 − y i ) l o g ( 1 − y ^ i ) L_r=-\sum^N_{i=1}y_ilog(\hat y_i)+(1-y_i)log(1-\hat y_i) Lr=i=1Nyilog(y^i)+(1yi)log(1y^i)

其中y是基本事实的one hot编码向量。为了简单起见,我们省略了L2正则项。通过使用Adam最小化 L r L_r Lr,我们可以获得高质量的基于会话的推荐。

Enhancing DHCN with Self-Supervised Learning

​ 超图建模使我们的模型能够获得显著的性能。然而,我们认为会话数据的稀疏性可能会阻碍超图建模,这将导致次优的推荐性能。受简单图的自监督学习的成功实践的启发,我们创新性地将自监督学习集成到网络中,以增强超图建模。具有自我监督信号的学习被视为有利于我们的推荐任务的辅助任务,它通过以下两个步骤进行:

(1)创造自我监督信号。回想一下,在DHCN中,我们通过两个通道学习两组特定于通道的会话嵌入。由于每个通道都编码了一个(超)图,该图只描述了会话诱导超图的项目级(类内)或会话级(会话间)结构信息,因此两组嵌入彼此知之甚少,但可以相互补充。对于训练中包含n个会话的每个小批量,两组会话嵌入之间有一个双射映射。直截了当地说,这两个群体可以作为彼此的基本真理进行自我监督学习,这种一对一的映射被视为标签增加。如果两个会话嵌入都表示两个视图中的同一个会话,我们将这一对标记为基本事实,否则我们将其标记为否定的。

(2)对比学习。以下(V elickovic等人,2019年;Bachman,Hjelm和Buchwalter 2019),我们认为DHCN中的两个通道是表征会话不同方面的两种观点。然后,我们对比通过这两个视图学习的两组会话嵌入。我们采用在来自基础真值(正)的样本和来自受损样本(负)的样本之间的具有标准二元交叉熵损失的InfoNCE(Oord,Li,Vinyals 2018)作为我们的学习目标,并将其定义为:

L s = − l o g σ ( f D ( θ i h , θ i l ) ) − l o g σ ( 1 − f D ( θ ~ i h , θ i l ) ) L_s=-log\sigma(f_D(\theta^h_i,\theta^l_i))-log\sigma(1-f_D(\tilde\theta^h_i,\theta^l_i)) Ls=logσ(fD(θih,θil))logσ(1fD(θ~ih,θil))

其中 θ ~ i h ( o r   θ ~ i l ) \tilde\theta^h_i(or\ \tilde\theta^l_i) θ~ih(or θ~il)是通过逐行和逐列洗牌破坏 Θ h ( Θ l ) \Theta_h(\Theta_l) Θh(Θl)获得的负样本,而 f D ( ⋅ ) : R d × R d → R f_D(·):R^d×R^d→R fD():Rd×RdR是将两个向量作为输入并对它们之间的一致性进行评分的鉴别函数。我们简单地将鉴别器实现为两个向量之间的点积。这个学习目标被解释为最大化在不同视图中学习的会话嵌入之间的相互信息(V . elickovic等人,2019)。通过这样做,他们可以从彼此获取信息,以通过卷积运算提高他们自己在项目/会话特征提取中的性能。特别是,那些只包含几个项目的会话可以利用跨会话信息来细化它们的嵌入。

​ 最后,我们将推荐任务和自监督任务统一到一个主辅助学习框架中,前者是主任务,后者是辅助任务。在形式上,联合学习目标被定义为:

L = L r + β L s L=L_r+\beta L_s L=Lr+βLs

其中β控制自我监督任务的大小。

新版

Hypergraph Convolutional Network

​ 在超图构造之后,我们开发了一个超图卷积网络来捕获项目级的高阶关系。

Hypergraph Channel and Convolution

​ 在超图上定义卷积运算的主要挑战是如何传播项目的嵌入。参考(冯等2019)中提出的谱超图卷积,我们将超图卷积定义为:

x i ( l + 1 ) = ∑ j = 1 N ∑ ϵ = 1 M H i ϵ H j ϵ W ϵ ϵ x j ( l ) x_i^{(l+1)}=\sum^N_{j=1}\sum^M_{\epsilon=1}H_{i\epsilon}H_{j\epsilon}W_{\epsilon\epsilon}x_j^{(l)} xi(l+1)=j=1Nϵ=1MHiϵHjϵWϵϵxj(l) (1)

按照(吴等2019a)中的建议,我们不使用非线性激活函数和卷积滤波器参数矩阵。对于 W ϵ ϵ W_{\epsilon\epsilon} Wϵϵ,我们给每个超边分配相同的权重1。Eq(1)的矩阵形式用行规范化是:

X h ( l + 1 ) = D − 1 H W B − 1 H T X h ( l ) X_h^{(l+1)}=D^{-1}HWB^{-1}H^TX_h^{(l)} Xh(l+1)=D1HWB1HTXh(l) (2)

(Sen:每个项目与其他项目同时出现在某一个会话中,将其其他项目emb相加。行规范化:D是每个顶点所在会话数。B是每个会话拥有顶点数)

超图卷积可以看作是对超图结构进行“节点-超边-节点”特征变换的两阶段细化。乘法运算 H T X h ( l ) H^TX_h^{(l)} HTXh(l)定义了从节点到超格的信息聚合,然后预乘H被看作是从超边到节点的信息聚合。

​ 在将 X ( 0 ) X^{(0)} X(0)通过L超图卷积层后,我们对每一层获得的项目嵌入进行平均,得到最终的项目嵌入 X h = 1 L + 1 ∑ l = 0 L X h ( l ) X_h=\frac1{L+1}\sum^L_{l=0}X^{(l)}_h Xh=L+11l=0LXh(l)。虽然这项工作主要强调会话一致性的重要性,但为了获得更好的推荐结果,时间信息也是不可避免的。位置嵌入是在Transformer(V . as Wani等人,2017年)中被引入一种有效的技术,并在许多情况下被用于项目位置信息的记忆。在我们的方法中,我们通过可学习位置矩阵 P r = [ p 1 , p 2 , p 3 , … … , p m ] P_r=[p_1,p_2,p_3,……,p_m] Pr=[p1p2p3,,pm]来整合反向位置嵌入和学习项目表示,其中m是当前会话的长度。会话 s = [ i s , 1 , i s , 2 , i s , 3 , … … , i s , m ] s = [i_{s,1},i_{s,2},i_{s,3},……,i_{s,m}] s=[is,1,is,2,is,3,,is,m]的第t项嵌入为:

x t ∗ = t a n h ( W 1 [ x t ∣ ∣ p m − i + 1 ] + b ) x_t^*=tanh(W_1[x_t||p_{m-i+1}]+b) xt=tanh(W1[xtpmi+1]+b)

其中 W 1 ∈ R d × 2 d , b ∈ R d W_1∈R^{d×2d},b∈R^d W1Rd×2dbRd为可学习参数。

​ 会话嵌入可以通过聚合该会话中项目的表示来表示。我们遵循在SR-GNN(吴等2019b)中使用的策略来细化会话 s = [ i s , 1 , i s , 2 , i s , 3 , … … , i s , m ] s = [i_{s,1},i_{s,2},i_{s,3},……,i_{s,m}] s=[is,1,is,2,is,3,,is,m]的嵌入

α t = f T σ ( W 2 x s ∗ + W 3 x t ∗ + c ) , θ h = ∑ t = 1 m α t x t ∗ \alpha_t=f^T\sigma(W_2x_s^*+W_3x_t^*+c),\theta_h=\sum^m_{t=1}\alpha_tx_t^* αt=fTσ(W2xs+W3xt+c),θh=t=1mαtxt

其中 x s ∗ x^*_s xs是会话s的嵌入,这里它是通过平均它包含的项目嵌入来表示的,其中 x s ∗ = 1 m ∑ t = 1 m x m , x t ∗ x_s^*=\frac{1}{m}\sum^m_{t=1}x_m,x^*_t xs=m1t=1mxmxt是在会话s中第t个项目的嵌入。用户在该会话中的一般兴趣嵌入 θ h θ_h θh是通过软注意机制聚集项目嵌入来表示的,其中项目具有不同的优先级。 f ∈ R d , W 2 ∈ R d × d , W 3 ∈ R d × d f∈R^d,W_2∈R^{d×d},W_3∈R^{d×d} fRd,W2Rd×d,W3Rd×d用于学习项目权重 α t α_t αt的注意力参数。请注意,根据我们在第一节中的动机,我们放弃了其他SBR模型中使用的GRU单位和自注意力等序列建模技术。位置嵌入是我们使用的唯一时间因素,因此我们的模型非常高效和轻量级。

Model Optimization and Recommendation Generation

​ 给定一个会话s,我们通过从超图通道中学习到的项目嵌入 X h X_h Xh s g s_g sg之间进行内积来计算所有候选项目 i ∈ I i∈I iI的分数 z ^ \hat z z^:

z ^ i = θ h T x i \hat z_i=\theta^T_hx_i z^i=θhTxi (5)

之后,应用softmax函数计算每个项目成为会话中下一个项目的概率:

y ^ = s o f t m a x ( z ^ ) \hat y=softmax(\hat z) y^=softmax(z^) (6)

​ 我们将学习目标表述为交叉熵损失函数,它在推荐系统中被广泛使用,定义为:

L r = − ∑ i = 1 N y i l o g ( y ^ i ) + ( 1 − y i ) l o g ( 1 − y ^ i ) L_r=-\sum^N_{i=1}y_ilog(\hat y_i)+(1-y_i)log(1-\hat y_i) Lr=i=1Nyilog(y^i)+(1yi)log(1y^i) (7)

其中y是基本事实的one hot编码向量。为了简单起见,我们省略了L2正则项。通过Adam最小化 L r L_r Lr,我们可以获得高质量的基于会话的推荐。

Enhancing SBR with Self-Supervised Learning

​ 超图建模使我们的模型能够获得显著的性能。然而,我们认为会话数据的稀疏性可能会阻碍超图建模,这将导致次优的推荐性能。受简单图的自监督学习的成功实践的启发,我们创新性地将自监督学习集成到网络中,以增强超图建模。我们首先基于会话诱导超图的线图设计另一个图卷积网络来产生自监督信号。然后,通过对比学习,最大化通过两个通道学习的会话表示之间的互信息,推荐模型可以获得更多的信息,从而提高推荐性能。由于这两种网络都是基于超图的,可以看作是超图建模的两个通道,我们将我们的模型命名为DHCN(双通道超图卷积网络)。

Line Graph Channel and Convolution

​ 线图通道对超图的线图进行编码。图1显示了我们如何将超图转换成它的线图。折线图可以看作是一个简单的图,它包含了跨会话信息,并描述了超边的连通性。由于线图信道中不涉及任何项目,我们首先通过查找 X ( 0 ) X^{(0)} X(0)中属于每个会话的项目然后平均相应项目嵌入来初始化特定通道的会话嵌入 Θ l ( 0 ) \Theta^{(0)}_l Θl(0)。根据定义2,L(G)的关联矩阵定义为 A ∈ R M × M A∈R^{M×M} ARM×M其中M是线图中的节点数, A p , q = W p , q A_{p,q}=W_{p,q} Ap,q=Wp,q。设 A ^ = A + I \hat A = A + I A^=A+I,其中I为单位矩阵, D ^ ∈ R M × M \hat D ∈ R^{M×M} D^RM×M为对角度矩阵,其中 D ^ p , p = ∑ q = 1 m A ^ p , q \hat D_{p,p}=\sum^m_{q = 1} \hat A_{p,q} D^pp=q=1mA^pq,线图卷积定义为

Θ l ( l + 1 ) = D ^ − 1 A ^ Θ ( l ) \Theta^{(l+1)}_l=\hat D^{-1}\hat A\Theta^{(l)} Θl(l+1)=D^1A^Θ(l) (8)

在每次卷积中,会话从邻居那里收集信息。通过这样做,学习的 Θ \Theta Θ可以捕获跨会话信息。同样,我们通过L图卷积层传递 Θ l ( 0 ) \Theta^{(0)}_l Θl(0),然后对每层获得的会话嵌入进行平均,得到最终的会话嵌入 Θ l = 1 L + 1 ∑ l = 0 L Θ l ( l ) \Theta_l=\frac{1}{L+1}\sum^L_{l=0}\Theta^{(l)}_l Θl=L+11l=0LΘl(l)

Creating self-supervision signals.

​ 到目前为止,我们通过这两个通道学习了两组特定于通道的会话嵌入。由于每个通道编码一个(超)图,该图只描述了会话诱导超图的项目级(会话内)或会话级(会话间)结构信息,两组嵌入彼此知之甚少,但可以相互补充。对于在训练中包含n个会话的每个小批量,在两组会话嵌入之间有一个双射映射。直截了当地说,这两个群体可以作为彼此的基本真理进行自我监督学习,这种一对一的映射被视为标签增加。如果两个会话嵌入都表示两个视图中的同一个会话,我们将这一对标记为基本事实,否则我们将其标记为否定的。

Contrastive learning

根据(V elickovic等人,2019年;Bachman,Hjelm和Buchwalter 2019),我们认为DHCN中的两个通道是表征会话不同方面的两种观点。然后,我们对比通过这两个视图学习的两组会话嵌入。我们采用在来自基础真值(正)的样本和来自受损样本(负)的样本之间的具有标准二元交叉熵损失的InfoNCE(Oord,Li,Vinyals 2018)作为我们的学习目标,并将其定义为:

L s = − l o g σ ( f D ( θ i h , θ i l ) ) − l o g σ ( 1 − f D ( θ ~ i h , θ i l ) ) L_s=-log\sigma(f_D(\theta^h_i,\theta^l_i))-log\sigma(1-f_D(\tilde\theta^h_i,\theta^l_i)) Ls=logσ(fD(θih,θil))logσ(1fD(θ~ih,θil))

其中 θ ~ i h ( o r   θ ~ i l ) \tilde\theta^h_i(or\ \tilde\theta^l_i) θ~ih(or θ~il)是通过逐行和逐列洗牌破坏 Θ h ( Θ l ) \Theta_h(\Theta_l) Θh(Θl)获得的负样本,而 f D ( ⋅ ) : R d × R d → R f_D(·):R^d×R^d→R fD():Rd×RdR是将两个向量作为输入并对它们之间的一致性进行评分的鉴别函数。我们简单地将鉴别器实现为两个向量之间的点积。这个学习目标被解释为最大化在不同视图中学习的会话嵌入之间的相互信息(V . elickovic等人,2019)。通过这样做,他们可以从彼此获取信息,以通过卷积运算提高他们自己在项目/会话特征提取中的性能。特别是,那些只包含几个项目的会话可以利用跨会话信息来细化它们的嵌入。

​ 最后,我们将推荐任务和自监督任务统一到一个主辅助学习框架中,前者是主任务,后者是辅助任务。在形式上,联合学习目标被定义为:

L = L r + β L s L=L_r+\beta L_s L=Lr+βLs

其中β控制自我监督任务的大小。

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值