KDD20 | 基于元学习的异质信息网络推荐冷启动方案
引用参考北邮实验室
[1] https://mp.weixin.qq.com/s/ycjaQT1me7DBCnSIdN_Uig
[2] https://dl.acm.org/doi/abs/10.1145/3394486.3403207
代码链接:https://github.com/rootlu/MetaHIN
Abstract
冷启动问题一直是推荐系统领域的富有挑战性的问题,由于用户与项目交互的稀疏性,所以冷启动问题一直存在,现存的方法从数据层面已经一定程度上减轻了冷启动的影响,最近的方法利用异质图信息网络(HIN)通过高层图结构去捕获丰富的语义信息。另一方面,最近元学习范式启发解决冷启动推荐在模型层面,由于它能快速适应缺乏标签的新任务,或者内容冷启动推荐,新来的用户和项目由于缺少交互。但是它们没有利用异质图结构和语义信息。
因此,我们受此启发提出一种新元学习方法MetaHIN去解决在HIN冷启动问题,同时利用了模型层面元学习以及数据层面HINs。这个方法并不容易,如何在元学习环境中捕获基于HIN的语义,以及如何学习可轻松适应多方面语义的常识,仍然是悬而未决的问题。在MetaHIN中,我们构建一个协同适应元学习器,该学习器既具有语义层面的适应性又具有任务层面的适应性。模型整体框架如下:
2 Model
2.1 概述
如图2所示,MetaHIN由两部分组成:基于任务的语义增强构造器如图2中a,和图2中b所示的协同适应元学习器。首先,针对推荐问题的已有元学习方法仅仅考虑了用户-商品交互,但异质信息网络通常包含丰富有价值的语义信息。因此,我们设计了一个语义增强的任务构造器,以使用异质语义上下文来增强对用户任务的支撑和查询集,这些语义上下文包括通过异质信息网络中元路径与用户相关的商品。语义上下文本质上是多方面的,因此,通过每个元路径关联的商品表示异质语义的不同方面。
其次,已有的方法仅仅采用全局先验 Θ \Theta Θ 的任务级的适应。但是,由于语义上下文是多方面的,因此语义上的自适应也是至关重要的,以便在任务中的不同方面(即元路径)之间对全局先验适应到细粒度的语义先验中。全局先验捕获用于编码推荐中的上下文通用知识,并且可以以基本模型的形式实现。因此,本文提出的协同适应元学习器在支撑集上进行语义和任务两层面的适应,然后进一步在查询集上优化全局先验。
2.2 语义增强任务构造器
给定用户u,其对应的任务定义为
T
u
=
(
S
u
,
Q
u
)
Tu = (Su, Qu)
Tu=(Su,Qu) ,语义增强型支撑集定义为:
S
u
=
(
S
u
R
,
S
u
P
)
S_u = (S^R_u,S^P_u)
Su=(SuR,SuP)
其中
S
u
R
S^R_u
SuR 是由用户u评分过的商品集合,
S
u
p
S^p_u
Sup表示基于元路径集合的语义上下文,用于在任务中编码多方面语义信息。对于一个新来用户冷启动,
S
u
R
S^R_u
SuR 通常很少评分项目,另一方面,语义上下文
S
u
p
S^p_u
Sup用于将多方面的语义编码到任务中。 具体来说,假设有一组元路径
P
P
P,使得每个路径$ p∈P
以
U
s
e
r
–
I
t
e
m
开
头
,
并
以
最
大
路
径
长
度
为
l
的
I
t
e
m
结
尾
。
例
如
,
在
图
1
(
a
)
中
,
如
果
我
们
设
置
以User–Item开头,并以最大路径长度为l的Item结尾。 例如,在图1(a)中,如果我们设置
以User–Item开头,并以最大路径长度为l的Item结尾。例如,在图1(a)中,如果我们设置l$ = 3,则$ P = {UM,UMAM,UMDM,UMUM}
。
对
于
每
个
用
户
项
交
互
。对于每个用户项交互
。对于每个用户项交互 ⟨u,i⟩$,我们定义⟨u的语义上下文, 由元路径p引起的i⟩如下:
C
u
,
i
p
=
{
j
:
j
∈
i
t
e
m
s
r
e
a
c
h
a
b
l
e
a
l
o
n
g
p
s
t
a
r
t
i
n
g
f
r
o
m
u
–
i
}
.
(
3
)
C^p _{u,i} = \{j : j ∈ items\ reachable\ along\ p\ starting\ from\ u–i\}. (3)
Cu,ip={j:j∈items reachable along p starting from u–i}.(3)
例如,由
U
M
A
M
UMAM
UMAM诱导的$ ⟨u2,m2⟩
的
语
义
上
下
文
为
的语义上下文为
的语义上下文为 {m2,m3,。 。 }$ 。 由于在每个任务中u可能与多个项目交互,因此我们为任务Tu构建了p诱导的语义上下文,如下所示:
S
u
p
=
⋃
i
∈
S
u
R
C
u
,
i
p
S^p _u = \bigcup _{i ∈S^R _u}C^p _ {u,i}
Sup=i∈SuR⋃Cu,ip
最后,考虑到
P
=
{
p
1
,
p
2
,
.
.
.
,
p
n
}
P = \{p1,p2,...,pn\}
P={p1,p2,...,pn}中的所有元路径,任务
T
u
T_u
Tu的语义上下文
S
u
P
S^P_ u
SuP表示为
S
u
P
=
(
S
u
p
1
,
S
u
p
2
,
.
.
.
,
S
u
p
n
)
S^P_u = (S^{p1}_u , S^{p2}_ u , . . . , S^{pn}_ u )
SuP=(Sup1,Sup2,...,Supn)
本质上,
S
u
p
S^p_u
Sup也是商品的集合,即用户通过所有其评分过的商品并沿着元路径可达的商品,这融合了多方面的语义上下文信息。同样地,我们可以构建语义增强的查询集
Q
u
=
(
Q
u
R
,
Q
u
P
)
Qu = (Q^R_u , Q^P_u )
Qu=(QuR,QuP)。需要注意的是,在任务
T
u
T_u
Tu中,支撑集和查询集中的商品集合是互斥的,即
S
u
R
∩
Q
u
R
=
∅
S^R _u ∩ Q^R _u = ∅
SuR∩QuR=∅。
2.3 协同适应元学习器
当被给语义增强任务时,协同适应元学习器结合语义和任务适应为了学习细粒度先验知识。
2.3.1 基础模型
基础模型包括用于生成用户表示的上下文聚合函数,和用于预测评分的偏好预测函数。在上下文聚合中,用户的表示由其上下文聚合而来,即:
x
u
=
g
ϕ
(
u
,
C
u
)
=
σ
(
m
e
a
n
(
{
W
e
j
+
b
:
j
∈
C
u
}
)
)
xu = g_ϕ(u, C_u) = σ ( mean(\{Wej + b : j ∈ Cu \}) )
xu=gϕ(u,Cu)=σ(mean({Wej+b:j∈Cu}))
其中
C
u
C_u
Cu表示用户通过直接交互或元路径关联的商品集合。这里的是
g
ϕ
g_ϕ
gϕ由
ϕ
=
{
W
∈
R
d
×
d
I
,
b
∈
R
d
}
ϕ = \{W ∈ R^{d×dI}, b ∈ Rd\}
ϕ={W∈Rd×dI,b∈Rd}参数化的上下文聚合函数,其用于抽取语义信息。
在偏好预测中,给定用户的向量表示和商品的向量表示,用户对商品的预测评分可定义为:
r
^
u
i
=
h
ω
(
x
u
,
e
i
)
=
M
L
P
(
x
u
⊕
e
i
)
\hat{r}_{ui} = hω(x_u, e_i ) = MLP(x_u ⊕ e_i )
r^ui=hω(xu,ei)=MLP(xu⊕ei)
这里的
h
ω
h_\omega
hω表示评分预测函数,其参数为
ω
\omega
ω,包括的权重和偏置。最后,我们最小化如下损失函数,以学习用户u的偏好:
L
u
=
1
∣
R
u
∣
∑
i
∈
R
u
(
r
u
i
−
r
^
u
i
)
2
L_u = \frac{1}{|Ru |}\sum _{i ∈Ru} (r_{ui} − \hat{r}_{ui} )^2
Lu=∣Ru∣1i∈Ru∑(rui−r^ui)2
需要注意的是,基础模型 f Θ = ( g ϕ , h ω ) f_\Theta=(g_ϕ,h_\omega) fΘ=(gϕ,hω)是一个针对推荐系统的监督模型,其需要大量的样本训练以获得较好的推荐结果,这在冷启动场景下是不可行的。正如前文所述,我们将冷启动推荐重构为一个元学习问题。具体地,我们将基础模型 f Θ = ( g ϕ , h ω ) f_\Theta=(g_ϕ,h_\omega) fΘ=(gϕ,hω)抽象为编码如何利用异质信息网络上的语义上下文学习用户偏好的先验知识 θ = { ϕ , ω } θ = \{ϕ,ω\} θ={ϕ,ω}。
2.3.2 协同适应
协同适应元学习器得到目标是学习一个先验知识 θ = { ϕ , ω } θ = \{ϕ,ω\} θ={ϕ,ω},其可以利用少量的样本评分快速适应到一个新的用户学习任务上。如图2所示,每个任务由多方面的语义上下文增强。因此,先验知识应该不仅编码任务间共享的全局知识,还应该能够在同一任务内泛化到不同的语义上。为此,我们设计了协同适应元学习器,其包括语义级适应和任务级适应
语义级适应,编码如何学习异质信息网络上语义上下文的全局先验,被适应到当前元路径
p
p
p限定的语义空间内,接下来,我们在
w
.
r
.
t
.
w.r.t.
w.r.t. 用一个梯度下降步骤在任务
T
u
Tu
Tu中的每个语义空间中损失p,以获得语义先验
ϕ
p
u
ϕp _u
ϕpu。 因此,元学习者可以针对各种语义方面学习更细粒度的先验知识,如下所示
L
T
u
(
ω
,
x
u
p
,
S
u
R
)
=
1
∣
S
u
R
∣
∑
i
∈
S
u
R
(
r
u
i
−
h
ω
(
x
u
p
,
e
i
)
)
2
L_{T_u} (ω, x^p_ u, S^R_ u ) = \frac{1}{|S^R_u|} \sum _ {i ∈S^R_u} (r_{ui} − h_ω(x^p_ u, e_i ))^2
LTu(ω,xup,SuR)=∣SuR∣1i∈SuR∑(rui−hω(xup,ei))2
ϕ u p = ϕ − α L T u ( ω , x u p , S u R ) ∂ ϕ = ϕ − α ∂ L T u ( ω , x p u , S R u ) ∂ x u p ∂ x u p ∂ ϕ ϕ^p_u = ϕ − α\frac{L_{T_u} (ω, x^p_u, S^R_u )}{∂\phi} = ϕ − α\frac{∂L_{T_u} (ω, xpu, SRu )} {∂x^p_u} \frac{∂x^p_u}{∂ϕ} ϕup=ϕ−α∂ϕLTu(ω,xup,SuR)=ϕ−α∂xup∂LTu(ω,xpu,SRu)∂ϕ∂xup
任务级适应,进一步适应全局预测先验,其编码模型如何学习用户的评分预测,即,
x
u
p
⟨
S
⟩
=
g
ϕ
u
p
(
u
,
S
p
u
)
x^{p ⟨S⟩} _u = g_{ϕ^p_u} (u, Sp u )
xup⟨S⟩=gϕup(u,Spu)
ω p = ω ⊙ κ ( x u p ⟨ S ⟩ ) ω^p = ω ⊙ κ(x^{p ⟨S⟩}_u ) ωp=ω⊙κ(xup⟨S⟩)
ω u p = ω p − β ∂ L T u ( ω p , x u p ⟨ S ⟩ , S u R ) ∂ ω p ω^p_ u = ω^p − β \frac{∂L_{T_u} (ωp, x^{p ⟨S⟩} _u , S^R_ u )} {∂ωp} ωup=ωp−β∂ωp∂LTu(ωp,xup⟨S⟩,SuR)
优化,经过语义级和任务级适应,我们已经将全局先验 适应到语义特定和任务特定的参数中,即在限定的语义空间,任务的特定参数 。给定元路径集合,通过优化适应后的参数在查询集上的表现,训练元学习器。全局先验通过反向传播得以优化:
m
i
n
Θ
∑
L
T
u
(
ω
u
,
x
u
,
Q
u
R
)
min _\Theta \sum L_{T_u} (ω_u, x_u, Q^R _u )
minΘ∑LTu(ωu,xu,QuR)
其中
ω
u
ω_u
ωu和
x
u
x_u
xu是从多个语义空间(即P中的元路径)融合而成的。 具体来说,
ω
u
=
∑
p
∈
P
a
p
ω
u
p
,
x
u
=
∑
p
∈
P
a
p
x
p
⟨
Q
⟩
ω_u = \sum _{p∈P} a_pω^p _u, x_u = \sum _ {p∈P} a_px^{p ⟨Q⟩}
ωu=p∈P∑apωup,xu=p∈P∑apxp⟨Q⟩
其中
a
p
=
s
o
f
t
m
a
x
(
−
L
T
u
(
ω
p
u
,
x
u
p
⟨
Q
⟩
,
Q
u
R
)
)
a_p = softmax(−L_{Tu}(ω_{pu},x^{p⟨Q⟩}_u,Q^R _u))
ap=softmax(−LTu(ωpu,xup⟨Q⟩,QuR))是p诱导语义空间的权重,
x
u
p
⟨
Q
⟩
=
g
ϕ
u
p
(
u
,
Q
u
p
)
{x^{p⟨Q⟩}_u = g_{ϕ^p_u}(u,Q^p _u)}
xup⟨Q⟩=gϕup(u,Qup)是u嵌入的u 查询集。 由于损失值反映了模型效率
综上所述,共自适应元学习器旨在优化多个任务的全局先验θ,以使使用自适应参数 { θ u p : p ∈ P } \{θ^p_u:p∈P\} {θup:p∈P}的每个元训练任务 T u T_u Tu的查询损失可以是 最小化(即“学习中学习”);它不会直接使用任务数据来更新全局优先级,特别是,通过协同适应机制,我们不仅将参数适应于每个任务,而且还适应于其中的每个语义方面 一个任务。
3 实验
本文在三个冷启动推荐场景和一个传统推荐场景下验证MetaHIN的有效性,进行模型分析和参数分析。在三个公开数据集上,实验结果如下表所示。可以看到,我们提出的MetaHIN在各个数据集上都有较好的表现。