前言
Session-based recommendation (SBR) 也就是会话推荐主要的任务就是基于目前已有的多个用户物品交互序列,完成 next-item 预测。在这种情况下,用户配置文件不可用,因此从多个用户物品交互序列中提取用户意图嵌入就格外重要。
基于此本文将会话数据建模为超图,提出了一种双通道超图卷积网络 - DHCN。同时本文为了增强超图建模,创新性地将自监督学习融入到网络训练中,最大化通过 DHCN 中两个通道学习的会话表示之间的互信息,作为改进推荐任务的辅助任务。
总结来说文本的创新点如下:
- 为 SBR 任务提出了一种双通道超图卷积网络 DHCN,通过超图建模,可以捕获项目之间的超配对关系和交叉会话信息。
- 首次将自监督学习学习的概念放入到推荐任务的网络训练中,自监督学习可以加强模型的表达能力和推荐任务的完成效果。
论文链接:https://arxiv.org/pdf/2012.06852v2
github: https://github.com/xiaxin1998/DHCN
1. DHCN
1.1 Notations and Definitions
设 I = { i 1 , i 2 , i 3 , … , i N } I=\{i_1,i_2,i_3,\dots,i_N\} I={i1,i2,i3,…,iN} 代表 N N N 个物品的集合。会话可以表示为 s = [ i s , 1 , i s , 2 , i s , 3 , … , i s , m ] s=[i_{s,1},i_{s,2},i_{s,3},\dots,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\leq k\leq m) is,k∈I(1≤k≤m) 表示在会话 s s s 中存在一个匿名用户与物品的交互。在神经网络中设 x i ( l ) ∈ R d ( l ) \mathbf{x}_i^{(l)}\in\mathbb{R}^{d^{(l)}} xi(l)∈Rd(l) 代表物品 i i i 在第 l l l 层维度为 d l d^l dl 的向量表示。全部物品的向量表示为 X ( l ) ∈ R N × d ( l ) \mathbf{X}^{(l)}\in\mathbb{R}^{N \times d^{(l)}} X(l)∈RN×d(l)。每一个会话也可以表示为向量的嵌入 s \mathbf{s} s。所以 SBR 的任务就是给定一个会话 s s s 进行预测 i s , m + 1 i_{s,m+1} is,m+1 的具体物品。
Definition 1. Hypergraph
令 G = ( V , E ) G=(V,E) G=(V,E) 代表一个超图, V V V 为超图 N N N 个节点集合, E E E 为超图 M M M 个超边的集合,每一条超边 ϵ ∈ E \epsilon \in E ϵ∈E 包含两个及两个以上的顶点,并且每一条超边伴随着一个超边权重参数 W ϵ ϵ W_{\epsilon\epsilon} Wϵϵ。所有的超边权重参数组成一个超边权重对角矩阵 W ∈ R M × M \mathbf{W} \in \mathbb{R}^{M \times M} W∈RM×M。其中超边的关联矩阵表示为 H ∈ R N × M \mathbf{H} \in \mathbb{R}^{N\times M} H∈RN×M。由此可得超图中点和超边的度矩阵为 D i i = ∑ ϵ = 1 M W ϵ ϵ H i ϵ D_{ii}=\sum_{\epsilon=1}^MW_{\epsilon\epsilon}H_{i\epsilon} Dii=∑ϵ=1MWϵϵHiϵ 和 B ϵ ϵ = ∑ i = 1 N H i ϵ B_{\epsilon\epsilon}=\sum_{i=1}^NH_{i\epsilon} Bϵϵ=∑i=1NHiϵ。
Definition 2. Line graph of hypergraph
给出一个超图
G
=
(
V
,
E
)
G=(V,E)
G=(V,E),该超图的线超图
L
(
G
)
L(G)
L(G) 意味着其中每一个节点代表
G
G
G 中的一条超边,同时
L
(
G
)
L(G)
L(G) 中两个节点之间相连的条件是两条超边在
G
G
G 中共享至少一个节点。上述定义可用公式表示为
L
(
G
)
=
(
V
L
.
E
L
)
,
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
}
L(G)=(V_L.E_L),V_L=\{v_e:v_e \in E\},E_L=\{(v_{e_p},v_{e_q}):e_p,e_q \in E,|e_p \cap e_q| \geq1\}
L(G)=(VL.EL),VL={ve:ve∈E},EL={(vep,veq):ep,eq∈E,∣ep∩eq∣≥1},同时线超图每个便都带有一个权重
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 \cup e_q|
Wp,q=∣ep∩eq∣/∣ep∪eq∣。
1.2 Hypergraph Construction
这一步骤是该篇论文的基础,也就是用超图结构来建模会话。具体来说,定义每一条超边为 [ i s , 1 , i s , 2 , i s , 3 , … i s , m ] ∈ E [i_{s,1},i_{s,2},i_{s,3},\dots i_{s,m}] \in E [is,1,is,2,is,3,…is,m]∈E,其中超边中包含的每一个节点 i s , m ∈ V i_{s,m} \in V is,m∈V。具体的构建方式可以参考图1左侧部分。在将会话数据转换为超图之后,在会话中的任意两个物品将被连接。需要注意的是,会话序列被转换成一个无向图,会话中的物品是时间相关的,而不是顺序相关的。通过这样做具体化了多对多的高阶关系。并根据定义2进一步导出超图的线超图。每个会话被建模为一个节点,并且不同的会话通过共享物品连接。与描述物品级高阶关系的超图相比,线超图描述了会话级关系,也称为跨会话信息。
1.3 Dual Channel Hypergraph Convolutional Network
本文在将会话信息建模为超图结构的时候生成了两种结构,分别是超图结构重点在于建模物品之间的高阶相关性,和线超图建模会话层面的联系。基于此作者提出了一种双通道超图卷积来分别处理这两种结构提取特征信息完成嵌入。也就是说 DHCN 用来捕获物品级的高阶关联合会话级的联系。每个通道网络负责从一个(超)图中提取有用的信息,通过(超)图卷积来改进SBR。
Hypergraph Channel and Convolution
超图通道部分主要对超图进行编码,因此作者认为对于该通道,直接将全部的物品嵌入
X
(
0
)
∈
R
N
×
d
\mathbf{X}^{(0)} \in \mathbb{R}^{N\times 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
)
(1)
\mathbf{X}_c^{(0)}=f_{gate}^c(\mathbf{X}^{(0)})=\mathbf{X}^{(0)}\odot\sigma(\mathbf{X}^{(0)}\mathbf{W}_g^c+\mathbf{b}_g^c) \tag{1}
Xc(0)=fgatec(X(0))=X(0)⊙σ(X(0)Wgc+bgc)(1)
其中 W g c ∈ R d × d \mathbf{W}_g^c \in \mathbb{R}^{d \times d} Wgc∈Rd×d, b g c ∈ R d \mathbf{b}_g^c \in \mathbb{R}^d bgc∈Rd 是自我门控单元的可训练参数, c ∈ { h , l } c \in \{h,l\} c∈{h,l} 代表两种不同的通道, ⊙ \odot ⊙ 代表点积, σ ( ⋅ ) \sigma(\cdot) σ(⋅) 代表 Sigmoid 函数。自我门控单元机制通过维度加权在特征粒度上调节基本物品嵌入,从而得到超图通道特定的物品嵌入 X h ( 0 ) \mathbf{X}_h^{(0)} Xh(0)。
定义超图上的卷积运算的主要挑战是如何传播物品的嵌入。本文中定义的超图卷积形式为:
x
i
(
l
+
1
)
=
∑
j
=
1
N
∑
ϵ
=
1
M
H
i
ϵ
H
j
ϵ
W
ϵ
ϵ
x
j
(
l
)
P
(
l
)
}
(2)
\mathbf{x}_i^{(l+1)}=\sum_{j=1}^N\sum_{\epsilon=1}^ MH_{i\epsilon}H_{j\epsilon}W_{\epsilon\epsilon}\mathbf{x}_j^{(l)}\mathbf{P}^{(l)}\}\tag{2}
xi(l+1)=j=1∑Nϵ=1∑MHiϵHjϵWϵϵxj(l)P(l)}(2)
其中
P
(
l
)
\mathbf{P}^{(l)}
P(l) 代表层与层之间的可学习的权重矩阵,并且作者收到 SGC 的启发决定舍弃非线性变换,最终超图卷积的矩阵传播模型可以定义为:
X
h
(
l
+
1
)
=
D
−
1
H
W
B
−
1
H
T
X
h
(
l
)
P
(
l
)
(3)
\mathbf{X}_h^{(l+1)}=\mathbf{D}^{-1}\mathbf{HWB}^{-1}\mathbf{H}^T\mathbf{X}_h^{(l)}\mathbf{P}^{(l)}\tag{3}
Xh(l+1)=D−1HWB−1HTXh(l)P(l)(3)
在经过
L
L
L 层的超图卷积层后,通过对之前所有计算结果取平均得到最终的嵌入结果,可以表示为
X
h
∗
=
1
L
+
1
∑
l
=
0
L
X
h
(
l
)
\mathbf{X}_h^*=\frac{1}{L+1}\sum_{l=0}^L\mathbf{X}_h^{(l)}
Xh∗=L+11∑l=0LXh(l)。此时我们已经通过超图卷积的到每个节点的嵌入表示,下一步就是根据节点的嵌入得到会话的嵌入表示,会话的嵌入表示可以根据该会话包含的所有节点嵌入得到,因此对于
s
=
[
i
s
,
1
,
i
s
,
2
,
i
s
,
3
…
,
i
s
,
m
]
s=[i_{s,1},i_{s,2},i_{s,3}\dots,i_{s,m}]
s=[is,1,is,2,is,3…,is,m],会话的嵌入表示为:
α
t
=
f
T
σ
(
W
1
x
m
∗
+
W
2
x
t
∗
+
c
)
,
s
g
=
∑
t
=
1
m
α
t
x
t
∗
,
θ
h
=
W
3
[
x
m
∗
;
s
g
]
\alpha_t=\mathbf{f}^T\sigma(\mathbf{W}_1\mathbf{x}_m^*+\mathbf{W}_2\mathbf{x}_t^*+\mathbf{c}),\\\mathbf{s}_g=\sum_{t=1}^m\alpha_t\mathbf{x}_t^*,\theta_h=\mathbf{W}_3[\mathbf{x}_m^*;\mathbf{s}_g]
αt=fTσ(W1xm∗+W2xt∗+c),sg=t=1∑mαtxt∗,θh=W3[xm∗;sg]
其中 x m ∗ \mathbf{x}_m^* xm∗ 代表会话 s s s 中最后的物品的嵌入表示可以当作用户当前的意图嵌入, x t ∗ \mathbf{x}_t^* xt∗ 代表会话中的第 t t t 的物品的嵌入。上述过程可以看成是一种注意力机制,对于用户当前意图,之前的物品嵌入注意力权重进行加权表示得到会话嵌入 s g \mathbf{s}_g sg。 f ∈ R d , W 1 ∈ R d × d , W 2 ∈ R d × d \mathbf{f}\in\mathbb{R}^d,\mathbf{W}_1 \in \mathbb{R}^{d \times d},\mathbf{W}_2 \in \mathbb{R}^{d \times d} f∈Rd,W1∈Rd×d,W2∈Rd×d 代表注意力机制的参数矩阵来学习注意力系数 α t \alpha_t αt。最终混合会话嵌入 θ h \theta_h θh 是 x m ∗ \mathbf{x}_m^* xm∗ 和 s g \mathbf{s}_g sg 的级联,表示了从超图中学习到的用户当前完整意图嵌入。之后接一个变换矩阵 W 3 ∈ R d × 2 d \mathbf{W}_3 \in\mathbb{R}^{d \times 2d} W3∈Rd×2d 完成特征空间的映射。本文假定当前的用户意图唯一的影响是时间因素,因此放弃序列建模的过程,因此作者认为该模型是非常高效和轻量级的。
Line Graph Channel and Convolution
该部分可以理解成辅助超图卷积进行特征表示的普通图卷积模块,在本文中当作是一个独立的通道进行处理,因此与上文一样,首先要将输入经过自我门控单元的处理得到适用于线超图通道的输入
X
l
(
0
)
\mathbf{X}_l^{(0)}
Xl(0)。因为线超图中没有物品,因此首先通过查找属于每个会话的物品来初始化通道特定的会话嵌入
Θ
l
(
0
)
\Theta_l^{(0)}
Θl(0),然后求
X
l
(
0
)
\mathbf{X}_l^{(0)}
Xl(0) 中相应的物品嵌入的平均值。传播过程就是普通图卷积,定义为:
Θ
l
(
l
+
1
)
=
D
^
−
1
A
^
Θ
(
l
)
Q
(
l
)
(5)
\Theta_l^{(l+1)}=\hat{\mathbf{D}}^{-1}{\mathbf{\hat{A}}}\Theta^{(l)}\mathbf{Q}^{(l)}\tag{5}
Θl(l+1)=D^−1A^Θ(l)Q(l)(5)
其中 Q ( l ) ∈ R d × d \mathbf{Q}^{(l)} \in \mathbb{R}^{d \times d} Q(l)∈Rd×d 代表可训练的权重矩阵。在普通图卷积的过程中,每一个会话学习到其邻域会话的嵌入表示,学习到的嵌入可以捕获会话间的联系,最终也是取每一个层的表示然后均值作为最后的输出: Θ l = 1 L + 1 ∑ l = 0 L Θ l ( l ) \Theta_l=\frac{1}{L+1}\sum_{l=0}^L\Theta_l^{(l)} Θl=L+11∑l=0LΘl(l)
Model Optimization and Recommendation Generation
给出一个会话
s
s
s,需要计算出预测下一个点击物品的预测分数,计算的依据就是物品嵌入和我们通过双通道学习到的会话嵌入表示和会话级联系的嵌入表示
θ
s
h
\theta_s^h
θsh 和
θ
s
l
\theta_s^l
θsl。通过这三项的到最后的预测:
z
^
i
=
(
θ
s
h
+
θ
s
l
)
T
x
i
(6)
\hat{\mathbf{z}}_i=(\theta_s^h+\theta_s^l)^T\mathbf{x}_i\tag{6}
z^i=(θsh+θsl)Txi(6)
之后,应用 Softmax 函数来计算每一件物品成为下一件物品的概率:
y ^ = s o f t m a x ( z ^ ) (7) \hat{\mathbf{y}}=softmax(\hat{\mathbf{z}}) \tag{7} y^=softmax(z^)(7)
目标函数为交叉熵损失函数,该函数在推荐系统中被广泛使用,定义为:
L
r
=
−
∑
i
=
1
N
y
i
l
o
g
(
y
^
i
)
+
(
1
−
y
i
)
l
o
g
(
1
−
y
^
i
)
(8)
\mathcal{L}_r=-\sum_{i=1}^N\mathbf{y}_ilog(\hat{\mathbf{y}}_i)+(1-\mathbf{y}_i)log(1-\hat{\mathbf{y}}_i)\tag{8}
Lr=−i=1∑Nyilog(y^i)+(1−yi)log(1−y^i)(8)
其中 y \mathbf{y} y 是真是标签的 one-hot 向量。
1.4 Enhancing DHCN with Self-Supervised Learning
超图建模使模型能够实现良好性能。作者认为会话数据的稀疏性可能会阻碍超图建模,这将导致次优推荐性能。受自监督学习在简单图上的成功实践的启发,作者将自监督学习集成到网络中以增强超图建模。利用自监督信号进行学习被视为有利于推荐任务的辅助任务,它分为两个步骤:
Creating self-supervision signals
在DHCN中,通过这两个通道学习两组特定于通道的会话嵌入。由于每个通道编码一个(超)图,该图只描述由会话诱导的超图的物品级(插入)或会话级(会话间)结构信息,所以两组嵌入对象彼此了解很少,但可以互补。在训练中,两组会话嵌入之间有一个客观映射。简单地说,这两组映射可以成为彼此的基础用于自监督学习,这种一对一的映射被视为标签的增广。如果两个会话嵌入在两个视图中都表示同一个会话,就将这一对标记为 ground- truth,否则将其标记为 negative。
Contrastivelearning
DHCN中的两个通道看作是表征会话不同方面的两个视图。然后对比通过这两个视图学习到的两组会话嵌入。定义目标函数为:
L
s
=
−
l
o
g
σ
(
f
D
(
θ
i
h
,
θ
i
l
)
)
−
l
o
g
σ
(
1
−
f
D
(
θ
~
i
h
,
θ
i
l
)
)
(9)
\mathcal{L}_s=-log\sigma(f_D(\theta_i^h,\theta_i^l))-log\sigma(1-f_D(\widetilde{\theta}_i^h,\theta_i^l))\tag{9}
Ls=−logσ(fD(θih,θil))−logσ(1−fD(θ
ih,θil))(9)
其中 θ ~ i h \widetilde{\theta}_i^h θ ih 或 θ ~ j h \widetilde{\theta}_j^h θ jh 是通过对 Θ h \Theta_h Θh 或 Θ j \Theta_j Θj 的行列进行腐蚀变换得到的。 f D ( ⋅ ) : R d × R d → R f_D(\cdot):\mathbb{R}^d \times \mathbb{R}^d \rightarrow \mathbb{R} fD(⋅):Rd×Rd→R 是取两个向量作为输入,然后对它们之间的一致性进行评分的鉴别函数。简单地将鉴别器实现为两个向量的点积。这个学习目标被解释为最大化在不同观点中学习的会话嵌入之间的互信息。
通过这样做,它们可以从对方那里获取信息,从而通过卷积运算提高各自在物品/会话特征提取中的性能。特别是,那些只包含少数项目的会话可以利用交叉会话信息来细化其嵌入。最后,将推荐任务和自监督任务统一为一个初级和辅助的学习框架-,前者是主要任务,后者是辅助任务。正式的联合学习目标定义为:
L = L r + β L s (10) \mathcal{L}=\mathcal{L}_r +\beta\mathcal{L}_s\tag{10} L=Lr+βLs(10)
β \beta β 作为超参进行训练。
2.Experimetns