Aligning Distillation For Cold-start Item Recommendation
(SIGIR 2023)
采用数据集:CiteULike、XING
源码:https://github.com/zfnWong/ALDI
一、提出问题
现有致力于解决冷启动物品的模型分为生成模型和dropout模型两大类,但是它们仅仅只聚焦于冷启动物品的推荐,忽视了冷物品与热物品的差异性,因此,生成模型可能会过于极端,要么只推荐冷物品要么只推荐热物品,dropout模型会降低热物品推荐的性能。
二、解决方案
提出了一个对齐提取框架(ALigning Distillation,简称ALDI),利用热物品作为“老师”将其行为信息传递给“学生”冷物品。ALDI通过比较并减小学生和老师之间的差异,将冷热物品联系起来。不仅如此,还根据热物品的流行度分配了不同的权重,防止错误的信息传递给冷物品。
三、具体过程
1. 用于的训练batch
构建三元组 ( u , i , j ) (u,i,j) (u,i,j),其中物品 i i i是用户 u u u交互过的,物品 j j j是用户 u u u没有交互过的,物品 i i i和 j j j都是热物品。
2. 老师模型和学生模型定义
利用老师模型结合热物品的行为信息去预测用户-物品对评分,利用学生模型结合冷物品自身的内容特征去预测评分(本文中冷物品指没有任何交互记录的物品)。给定用户-物品对
(
u
,
i
)
(u,i)
(u,i),老师模型计算其相关分数采用直接将其embedding点积的方式:
y
^
u
i
(
t
)
=
e
u
T
⋅
e
i
\hat{y}_{ui}^{(t)}=e_u^T\cdot e_i
y^ui(t)=euT⋅ei
而对于没有任何交互记录的冷物品来说,学生模型用于将其内容特征以及用户的行为特征映射到特征空间中,并进行点积评分:
y
^
u
i
(
s
)
=
f
U
(
e
u
)
T
⋅
f
I
(
c
i
)
\hat{y}_{ui}^{(s)}=f_U(e_u)^T\cdot f_I(c_i)
y^ui(s)=fU(eu)T⋅fI(ci)
函数
f
U
(
⋅
)
f_U(\cdot)
fU(⋅)和
f
I
(
⋅
)
f_I(\cdot)
fI(⋅)将用户行为特征和物品内容特征映射到特征空间中,用一个两层的多层感知机来代替,因此在评分环节不仅利用到了热物品推荐的能力还利用了映射函数处理了冷启动物品的特征信息,结合了两者的优点,既有利于冷启动物品也不至于使得热启动物品的推荐效果变差。
3. 3种差异的对齐、缩小
接下来的做法主要是致力于得到训练良好的映射函数 f U ( ⋅ ) f_U(\cdot) fU(⋅)和 f I ( ⋅ ) f_I(\cdot) fI(⋅),将热物品去除掉其交互信息(作为冷物品)送入学生模型进行训练,可以发现老师模型和学生模型之间的差异,基于内容特征信息映射出来的冷启动物品的embedding与热物品的embedding最终有三种差异,训练的目的是缩小两个模型之间的差异,有利于真正的冷启动物品的embedding生成:
3.1 评分分布差异
基于热物品行为信息预测的老师模型(相对正确的),可以精准的预测用户意图,基于热物品内容特征信息的学生模型则不一样,其预测评分分布中,正负样本区分度不高,且与老师模型的预测分布相差较大,为了缩减这种差距,设计了一个损失项:
L
r
a
t
e
=
D
i
s
(
D
B
I
(
t
)
,
D
B
I
(
s
)
)
+
D
i
s
(
D
B
J
(
t
)
,
D
B
J
(
s
)
)
\mathcal{L}_{rate}=Dis(\mathcal{D}_{B_I}^{(t)},\mathcal{D}_{B_I}^{(s)})+Dis(\mathcal{D}_{B_J}^{(t)},\mathcal{D}_{B_J}^{(s)})
Lrate=Dis(DBI(t),DBI(s))+Dis(DBJ(t),DBJ(s))
其中
D
i
s
(
⋅
,
⋅
)
Dis(\cdot,\cdot)
Dis(⋅,⋅)表示两种分布的距离:
D
i
s
(
D
B
I
(
t
)
,
D
B
I
(
s
)
)
=
1
∣
B
∣
∑
(
u
,
i
,
j
)
∈
B
∣
y
^
u
i
(
t
)
−
y
^
u
i
(
s
)
∣
2
Dis(\mathcal{D}_{B_I}^{(t)},\mathcal{D}_{B_I}^{(s)})=\frac{1}{|B|}\sum_{(u,i,j)\in B}|\hat{y}_{ui}^{(t)}-\hat{y}_{ui}^{(s)}|^2
Dis(DBI(t),DBI(s))=∣B∣1(u,i,j)∈B∑∣y^ui(t)−y^ui(s)∣2
D i s ( D B J ( t ) , D B J ( s ) ) = 1 ∣ B ∣ ∑ ( u , i , j ) ∈ B ∣ y ^ u j ( t ) − y ^ u j ( s ) ∣ 2 Dis(\mathcal{D}_{B_J}^{(t)},\mathcal{D}_{B_J}^{(s)})=\frac{1}{|B|}\sum_{(u,i,j)\in B}|\hat{y}_{uj}^{(t)}-\hat{y}_{uj}^{(s)}|^2 Dis(DBJ(t),DBJ(s))=∣B∣1(u,i,j)∈B∑∣y^uj(t)−y^uj(s)∣2
B B B代表用于训练的batch, D B ( t ) \mathcal{D}_{B}^{(t)} DB(t)表示老师模型下的评分分布, D B ( s ) \mathcal{D}_{B}^{(s)} DB(s) 表示学生模型下的评分分布, I I I、 J J J分别表示正样本和负样本。
3.2 排名分差差异
正样本和负样本的评分预测差异应该尽可能大,老师模型的评分差值显然大于学生模型,设计了一个交叉熵损失项:
L
r
a
n
k
=
−
∑
(
u
,
i
,
j
)
∈
B
(
r
u
i
j
(
t
)
ln
r
u
i
j
(
s
)
+
(
1
−
r
u
i
j
(
t
)
)
ln
(
1
−
r
u
i
j
(
s
)
)
)
\mathcal{L}_{rank}=-\sum_{(u,i,j)\in B}(r_{uij}^{(t)}\ln{r_{uij}^{(s)}}+(1-r_{uij}^{(t)})\ln{(1-r_{uij}^{(s)}}))
Lrank=−(u,i,j)∈B∑(ruij(t)lnruij(s)+(1−ruij(t))ln(1−ruij(s)))
r u i j ( t ) = σ ( y ^ u i ( t ) − y ^ u j ( t ) ) r_{uij}^{(t)}=\sigma(\hat{y}_{ui}^{(t)}-\hat{y}_{uj}^{(t)}) ruij(t)=σ(y^ui(t)−y^uj(t))
r u i j ( s ) = σ ( y ^ u i ( s ) − y ^ u j ( s ) ) r_{uij}^{(s)}=\sigma(\hat{y}_{ui}^{(s)}-\hat{y}_{uj}^{(s)}) ruij(s)=σ(y^ui(s)−y^uj(s))
σ \sigma σ为Sigmoid激活函数, r u i j ( t ) r_{uij}^{(t)} ruij(t)表示老师模型中对正样本评分高于负样本的能力。
3.3 特征向量空间距离差异
由于有历史行为特征,热物品的在特征空间中的位置更容易与别的物品区分(空间距离更大),而基于内容特征映射的embedding则区分度较小,定义损失函数如下:
L
i
d
e
n
=
−
∑
i
∈
B
I
(
d
‾
i
(
t
)
ln
d
‾
i
(
s
)
+
(
1
−
d
‾
i
(
t
)
)
ln
(
1
−
d
‾
i
(
s
)
)
)
\mathcal{L}_{iden}=-\sum_{i\in B_I}(\overline{d}_i^{(t)}\ln{\overline{d}_i^{(s)}}+(1-\overline{d}_i^{(t)})\ln{(1-\overline{d}_i^{(s)})})
Liden=−i∈BI∑(di(t)lndi(s)+(1−di(t))ln(1−di(s)))
其中,
d
‾
i
(
t
)
\overline{d}_i^{(t)}
di(t)和
d
‾
i
(
s
)
\overline{d}_i^{(s)}
di(s)表示正样本物品
i
i
i在两个模型下的平均分辨距离(该距离越大,表示越容易区分正样本,训练结果越好):
d
‾
B
J
(
t
)
=
1
∣
B
∣
∑
j
∈
B
J
e
j
,
d
‾
B
J
(
s
)
=
1
∣
B
∣
∑
j
∈
B
J
f
I
(
c
i
)
\overline{d}_{B_J}^{(t)}=\frac{1}{|B|}\sum_{j\in B_J}e_j,\overline{d}_{B_J}^{(s)}=\frac{1}{|B|}\sum_{j\in B_J}f_I(c_i)
dBJ(t)=∣B∣1j∈BJ∑ej,dBJ(s)=∣B∣1j∈BJ∑fI(ci)
d ‾ i ( t ) = σ ( e i T ⋅ ( e i − d ‾ B J ( t ) ) ) \overline{d}_i^{(t)}=\sigma(e_i^T\cdot (e_i-\overline{d}_{B_J}^{(t)})) di(t)=σ(eiT⋅(ei−dBJ(t)))
d ‾ i ( s ) = σ ( f I ( c i ) T ⋅ ( f I ( c i ) − d ‾ B J ( s ) ) ) \overline{d}_i^{(s)}=\sigma(f_I(c_i)^T\cdot(f_I(c_i)-\overline{d}_{B_J}^{(s)})) di(s)=σ(fI(ci)T⋅(fI(ci)−dBJ(s)))
为了计算方便,计算出负样本的平均特征空间位置 d ‾ B J ( t ) \overline{d}_{B_J}^{(t)} dBJ(t)和 d ‾ B J ( s ) \overline{d}_{B_J}^{(s)} dBJ(s)。
4. 为热物品分配权重
以上方法是以有历史交互行为的热物品作为老师,然而,由于特征学习潜在的不准确性,历史交互行为记录较少的老师可能训练出的embedding并不好,因此需要指配较低的权重,因此采用如下公式为每个老师分配权重:
w
i
=
2
1
+
e
−
ω
⋅
N
i
/
N
^
−
1
w_i=\frac{2}{1+e^{-\omega\cdot N_i/\hat{N}}}-1
wi=1+e−ω⋅Ni/N^2−1
其中,
N
i
N_i
Ni表示训练集中物品
i
i
i交互过的用户数量,
N
^
\hat{N}
N^表示热物品交互过的用户平均数量,
ω
\omega
ω表示超参数。
因此可以修订排名分差损失函数和特征向量空间距离差异损失函数:
L
r
a
n
k
=
−
∑
(
u
,
i
,
j
)
∈
B
w
i
(
r
u
i
j
(
t
)
ln
r
u
i
j
(
s
)
+
(
1
−
r
u
i
j
(
t
)
)
ln
(
1
−
r
u
i
j
(
s
)
)
)
\mathcal{L}_{rank}=-\sum_{(u,i,j)\in B}w_i(r_{uij}^{(t)}\ln{r_{uij}^{(s)}}+(1-r_{uij}^{(t)})\ln{(1-r_{uij}^{(s)}}))
Lrank=−(u,i,j)∈B∑wi(ruij(t)lnruij(s)+(1−ruij(t))ln(1−ruij(s)))
L i d e n = − ∑ i ∈ B I w i ( d ‾ i ( t ) ln d ‾ i ( s ) + ( 1 − d ‾ i ( t ) ) ln ( 1 − d ‾ i ( s ) ) ) \mathcal{L}_{iden}=-\sum_{i\in B_I}w_i(\overline{d}_i^{(t)}\ln{\overline{d}_i^{(s)}}+(1-\overline{d}_i^{(t)})\ln{(1-\overline{d}_i^{(s)})}) Liden=−i∈BI∑wi(di(t)lndi(s)+(1−di(t))ln(1−di(s)))
5. 最终损失函数
为了消除热物品和冷物品推荐之间的差异,最终的损失函数定义如下:
min
θ
f
L
b
a
s
i
c
+
α
L
r
a
t
e
+
β
L
r
a
n
k
+
γ
L
i
d
e
n
\min_{\theta_f}\mathcal{L}_{basic}+\alpha\mathcal{L}_{rate}+\beta\mathcal{L}_{rank}+\gamma\mathcal{L}_{iden}
θfminLbasic+αLrate+βLrank+γLiden
θ
f
\theta_f
θf表示映射函数
f
U
(
⋅
)
f_U(\cdot)
fU(⋅)和
f
I
(
⋅
)
f_I(\cdot)
fI(⋅)的参数,
L
b
a
s
i
c
\mathcal{L}_{basic}
Lbasic表示推荐任务的损失函数。
四、实验结果
评价指标:recall、NDCG