Pointwise和pairwise损失函数挖掘的信息太少了,只是采样样本,然后更新权重
为了从可用的偏好信息中挖掘更多的信号,考虑了难样本和全局信息。
E E E是欧式距离。
难正样本是指正样本的距离比 距离最小的负样本的距离减阈值 还要大的样本。
E
u
j
>
min
k
∈
N
u
E
u
k
−
ϵ
E_{u j}>\min _{k \in N_{u}} E_{u k}-\epsilon
Euj>k∈NuminEuk−ϵ
难负样本是指负样本的距离比 距离最大的正样本的距离加阈值 还要小的样本。
E
u
k
<
max
j
∈
P
u
E
u
j
+
ϵ
E_{u k}<\max _{j \in P_{u}} E_{u j}+\epsilon
Euk<j∈PumaxEuj+ϵ

采集得到的正负样本集合分别为:
P
u
s
,
N
u
s
\mathrm{P}_{\mathrm{u}}^{\mathrm{s}}, \mathrm{N}_{\mathrm{u}}^{\mathrm{s}}
Pus,Nus。在训练过程中,给定一个batch B(包含m个用户),定义损失函数:
L
M
C
L
=
1
α
log
[
1
+
1
m
∑
u
∈
B
∑
j
∈
P
u
s
e
α
(
E
u
j
+
λ
p
)
]
+
1
β
log
[
1
+
1
m
∑
u
∈
B
∑
k
∈
N
u
s
e
−
β
(
E
u
k
+
λ
n
)
]
解释为什么设计这个loss,这个loss对于一对正样本的影响:
∂
L
∂
E
u
j
=
w
u
j
+
=
1
m
⋅
e
α
E
u
j
e
−
α
λ
p
+
1
m
∑
u
′
∈
B
∑
i
∈
P
u
′
s
e
α
E
u
′
i
=
1
m
⋅
1
w
1
+
(
u
,
j
)
+
w
2
+
(
u
,
j
)
+
w
3
+
(
u
,
j
)
