On Sampled Metrics for Item Recommendation
论文链接:https://dl.acm.org/doi/abs/10.1145/3394486.3403226 accepted by KDD2020
文章目录
1. 研究目标
由于在个性化推荐中物品(item)的数量十分之大,且在数据集中,对于每一位用户而言,未交互的数据量十分大,无法得知哪些物品是用户不喜欢的,大多数得到的是用户喜欢的物品,因此难以得到有效的负样本用于模型的训练,故大多数算法都采用采样的方法从未交互的物品中得到负样本,这一过程一般称为负采样。为了评价模型的好坏,需要采用一些评价指标对模型进行评价,常见的评价指标有以下几种:
- AUC
- Precise@k
- Recall@k
- Average Precise@k
- NDCG@k
而在评测过程中,如果采用采样的办法得出来排序用于计算评测指标,本文发现以下几点:
- 用采样的物品计算出来的排序最后得到的评测指标和真正的指标不一致。比如A模型得到的采样后的指标比B好,而实际上精确的指标比B差;
- 采样的样本数越少,各个评价指标之间的差异越小,最后都近似于AUC指标;
基于以上发现,本文提出几种用于纠正的方法,用以在采样后评估时保持各个模型的序和精确指标保持一致。
2. 模型建立
-
问题模型
有n个item,对于每个用户x,算法A返回该用户对所有物品的排序, R ( A , x ) R(A, x) R(A,x) 表示真正被用户喜欢的物品在该排序中的序号(排名)。
用 M ( ⋅ ) M(\cdot) M(⋅) 函数表示对排序的评分,如此建模,对所有用户集合 D = { x 1 , x 2 , ⋯ } D=\{x_1, x_2,\cdots\} D={x1,x2,⋯}都进行排序并评价,得到平均指标:
1 ∣ D ∣ ∑ x ∈ D M ( R ( A , x ) ) \frac{1}{|D|}\sum_{x\in D}M(R(A,x)) ∣D∣1x∈D∑M(R(A,x)) -
评价指标与简化
-
AUC
A U C ( R ) n = 1 ∣ R ∣ ( n − ∣ R ∣ ) ∑ r ∈ R ∑ r ′ ∈ ( { 1 , ⋯ , n } \ R ) δ ( r < r ′ ) = n − ∣ R ∣ − 1 2 − 1 ∣ R ∣ ∑ r ∈ R r n − ∣ R ∣ AUC(R)_n=\frac{1}{|R|(n-|R|)}\sum_{r\in R}\sum_{r'\in(\{1,\cdots,n\}\backslash R)}\delta(r<r')=\frac{n-\frac{|R|-1}{2}-\frac{1}{|R|}\sum_{r\in R}r}{n-|R|} AUC(R)n=∣R∣(n−∣R∣)1r∈R∑r′∈({1,⋯,n}\R)∑δ(r<r′)=n−∣R∣n−2∣R∣−1−∣R∣1∑r∈Rr -
Precise@k
Prec ( R ) k = ∣ { r ∈ R : r ≤ k } ∣ k \operatorname{Prec}(R)_{k}=\frac{|\{r \in R: r \leq k\}|}{k} Prec(R)k=k∣{r∈R:r≤k}∣ -
Recall@k
Recall ( R ) k = ∣ { r ∈ R : r ≤ k } ∣ ∣ R ∣ \operatorname{Recall}(R)_{k}=\frac{|\{r \in R: r \leq k\}|}{|R|} Recall(R)k=∣R∣∣{r∈R:r≤k}∣ -
Average Precise@k
A P ( R ) k = 1 min ( ∣ R ∣ , k ) ∑ i = 1 k δ ( i ∈ R ) Prec ( R ) i \mathrm{AP}(R)_{k}=\frac{1}{\min (|R|, k)} \sum_{i=1}^{k} \delta(i \in R) \operatorname{Prec}(R)_{i} AP(R)k=min(∣R∣,k)1i=1∑kδ(i∈R)Prec(R)i -
NDCG@k
NDCG ( R ) k = 1 ∑ i = 1 min ( ∣ R ∣ , k ) 1 log 2 ( i + 1 ) ∑ i = 1 k δ ( i ∈ R ) 1 log 2 ( i + 1 ) \operatorname{NDCG}(R)_{k}=\frac{1}{\sum_{i=1}^{\min (|R|, k)} \frac{1}{\log _{2}(i+1)}} \sum_{i=1}^{k} \delta(i \in R) \frac{1}{\log _{2}(i+1)} NDCG(R)k=∑i=1min(∣R∣,k)log2(i+1)11i=1∑kδ(i∈R)log2(i+1)1
简单的考虑,如果每个用户只有一个偏好的物品,即考虑 |R|=1,令该物品在推荐中的排名为 r r r,此时,上所述指标简化如下:
AUC ( r ) n = n − r n − 1 Prec ( r ) k = δ ( r ≤ k ) 1 k Recall ( r ) k = δ ( r ≤ k ) AP ( r ) k = δ ( r ≤ k ) 1 r NDCG ( r ) k = δ ( r ≤ k ) 1 log 2 ( r + 1 ) \begin{aligned} \operatorname{AUC}(r)_{n} &=\frac{n-r}{n-1} \\ \operatorname{Prec}(r)_{k} &=\delta(r \leq k) \frac{1}{k} \\ \operatorname{Recall}(r)_{k} &=\delta(r \leq k) \\ \operatorname{AP}(r)_{k} &=\delta(r \leq k) \frac{1}{r} \\ \operatorname{NDCG}(r)_{k} &=\delta(r \leq k) \frac{1}{\log _{2}(r+1)} \end{aligned} AUC(r)nPrec(r)kRecall(r)kAP(r)kNDCG(r)k=n−1n−r=δ(r≤k)k1=δ(r≤k)=δ(r≤k)r1=δ(r≤k)log2(r+1)1 -
3. 采样后的指标
由于在通常的数据中和用户不相干的物品数量十分之大,所以要想在所有物品上面进行全部的排序所需要的时间代价和计算资源超乎想象,因此一般在不相干物品中采样一小部分物品用于训练。通常采样的数量级在百的数量级。
将相关的物品在采样后得到的排序中的排名记为 R ~ \widetilde{R} R ,采样数量记为m
(1)一致性
假定用来评估的用户集合
D
D
D 固定,定义算法A的评估指标M是一致的当且仅当任意两个推荐算法都保持采样后的指标和未采样在全部数据上的指标大小顺序相同。如下:
1
∣
D
∣
∑
x
∈
D
M
(
R
(
A
,
x
)
)
>
1
∣
D
∣
∑
x
∈
D
M
(
R
(
B
,
x
)
)
⟺
E
[
1
∣
D
∣
∑
x
∈
D
M
(
R
~
(
A
,
x
)
)
]
>
E
[
1
∣
D
∣
∑
x
∈
D
M
(
R
~
(
B
,
x
)
)
]
\begin{aligned} \frac{1}{|D|} \sum_{\mathbf{x} \in D} M(R(A, \mathbf{x}))>\frac{1}{|D|} \sum_{\mathbf{x} \in D} M(R(B, \mathbf{x})) \\ \Longleftrightarrow E\left[\frac{1}{|D|} \sum_{\mathbf{x} \in D} M(\tilde{R}(A, \mathbf{x}))\right]>E\left[\frac{1}{|D|} \sum_{\mathbf{x} \in D} M(\tilde{R}(B, \mathbf{x}))\right] \end{aligned}
∣D∣1x∈D∑M(R(A,x))>∣D∣1x∈D∑M(R(B,x))⟺E[∣D∣1x∈D∑M(R~(A,x))]>E[∣D∣1x∈D∑M(R~(B,x))]
文中特意举出例子来展现这种采样后评价指标的顺序关系和没有采样的不一致性,如下:
有A,B,C三个推荐模型,有 n = 10000 n=10000 n=10000 个物品,每个模型使用5个用户来进行评估,即 ∣ D ∣ = 5 \lvert D\rvert=5 ∣D∣=5,且对于每个用户均只有一个相关物品,即 ∣ R ∣ = 1 \lvert R\rvert=1 ∣R∣=1
- 未进行采样时各个评价指标如下表
- 对于每个用户进行不相干的物品采样,采样数量 m = 99 m=99 m=99 ,此时各个评价指标如下
对比可以明显看到表2和表1各个指标对于三个模型其顺序发生了变化,这就是不一致性的体现。
而后,随着采样大小的变化,做出三个模型评价指标随之变化的曲线如下图:
由图可以看出,在采样大小不同时,三个模型之间的评价指标的顺序随之会发生改变。可以得出,采样过后的评价指标和精确的指标之间是有偏差的,而偏差的大小是根据模型以及采样大小而变化的。
(2)采样后的排名分布
精确排名:没有采样时的排名
采样排名:采样后物品在被采样到的物品中的排名
此处考虑一种简单的情况,每个用户只有一个相关的物品,即 ∣ R ∣ = 1 \lvert R\rvert=1 ∣R∣=1。将不经采样得到的相关物品的排名记作 r r r,采样后得到的相干物品排名记作 r ~ \tilde r r~.
考虑均匀的采样不相关物品,那么每个被采样的不相干物品的精确排名可以比
r
r
r 大或者小,那么采样到精确排名
j
j
j 比
r
r
r 小的物品的概率是
p
(
j
<
r
)
=
r
−
1
n
−
1
p(j<r)=\frac{r-1}{n-1}
p(j<r)=n−1r−1
采样m个物品可以看成m次采样,由于总样品数
n
n
n 数量很大,可以看作是一种二项分布,即采样到的精确排名比
r
r
r 小的物品的数量
k
∼
B
(
m
,
r
−
1
n
−
1
)
k\sim B(m,\frac{r-1}{n-1})
k∼B(m,n−1r−1)。换而言之,在采样后相关物品的采样排名
r
~
=
k
+
1
\tilde r=k+1
r~=k+1 。
期望指标(评价指标的期望)表示如下:
E
[
M
(
r
~
)
]
=
∑
i
=
1
m
+
1
p
(
r
~
=
i
)
M
(
i
)
E[M(\tilde r)]=\sum_{i=1}^{m+1}p(\tilde r=i)M(i)
E[M(r~)]=i=1∑m+1p(r~=i)M(i)
(3)期望指标
-
AUC
AUC n ( r ) = n − r n − 1 = const 1 r + const 2 \operatorname{AUC}_{n}(r) =\frac{n-r}{n-1}=\operatorname{const}_1r+\operatorname{const}_2 AUCn(r)=n−1n−r=const1r+const2
所以,
E [ AUC m + 1 ( r ~ ) ] = AUC m + 1 ( r ) ( E [ r ~ ] ) = AUC m + 1 ( 1 + m r − 1 n − 1 ) = n − r n − 1 = AUC n ( r ) E[\operatorname{AUC}_{m+1}(\tilde r)]=\operatorname{AUC}_{m+1}(r)(E[\tilde r])=\operatorname{AUC}_{m+1}(1+m\frac {r-1}{n-1})=\frac{n-r}{n-1}=\operatorname{AUC}_{n}(r) E[AUCm+1(r~)]=AUCm+1(r)(E[r~])=AUCm+1(1+mn−1r−1)=n−1n−r=AUCn(r)
可以看出,采样后的AUC的期望和精确指标是一样的,即满足一致性,这和上面figure2中AUC不变相吻合。其实这一点也很好理解,因为AUC指标可以被理解为一个随机的相关物品排名在随机不相关物品前的期望。实际上,即使考虑采样为不放回无重复的超几何分布,其对于 r ~ \tilde r r~ 的期望仍然是 1 + r − 1 n − 1 1+\frac{r-1}{n-1} 1+n−1r−1
-
截断指标(如Recall,Precise)
E [ Recall k ( r ~ ) ] = ∑ i = 1 m + 1 p ( r ~ = i ) Recall k ( i ) = ∑ i = 1 k = CDF ( k − 1 ; m , r − 1 n − 1 ) E[\operatorname{Recall}_k(\tilde r)]=\sum_{i=1}^{m+1}p(\tilde r=i)\operatorname{Recall}_k(i)=\sum_{i=1}^{k}=\operatorname{CDF}(k-1;m,\frac{r-1}{n-1}) E[Recallk(r~)]=i=1∑m+1p(r~=i)Recallk(i)=i=1∑k=CDF(k−1;m,n−1r−1) -
Average Precision
若 r = 1 r=1 r=1,那么 r ~ = 1 \tilde r=1 r~=1,那么AP=1
若 r > 1 r>1 r>1,那么有:
E [ A P ( r ~ ) ] = ∑ i = 1 m + 1 p ( r ~ = i ) A P ( i ) = ∑ i = 1 m + 1 p ( r ~ = i ) 1 i = 1 − ( 1 − p ( j < r ) ) m + 1 p ( j < r ) ( m + 1 ) = 1 − ( n − r n − 1 ) m + 1 ( r − 1 ) m + 1 n − 1 \begin{aligned} E[\mathrm{AP}(\tilde{r})] &=\sum_{i=1}^{m+1} p(\tilde{r}=i) \mathrm{AP}(i)=\sum_{i=1}^{m+1} p(\tilde{r}=i) \frac{1}{i} \\ &=\frac{1-(1-p(j<r))^{m+1}}{p(j<r)(m+1)}=\frac{1-\left(\frac{n-r}{n-1}\right)^{m+1}}{(r-1) \frac{m+1}{n-1}} \end{aligned} E[AP(r~)]=i=1∑m+1p(r~=i)AP(i)=i=1∑m+1p(r~=i)i1=p(j<r)(m+1)1−(1−p(j<r))m+1=(r−1)n−1m+11−(n−1n−r)m+1
可以写成:
1 − A U C n ( r ) m + 1 r − 1 ( n − 1 m + 1 ) = 1 − A U C n ( r ) m + 1 r − 1 const \frac{1-\mathrm{AUC}_{n}(r)^{m+1}}{r-1}\left(\frac{n-1}{m+1}\right)=\frac{1-\mathrm{AUC}_{n}(r)^{m+1}}{r-1} \text { const } r−11−AUCn(r)m+1(m+1n−1)=r−11−AUCn(r)m+1 const发现当排名 r r r 足够高时, AUC n ( r ) \operatorname{AUC}_n(r) AUCn(r) 逼近1,???(原文中没有理解)
-
采样样本大小
当采样数量 m = 1 m=1 m=1 时,排名 r ~ ∈ { 1 , 2 } \tilde{r}\in\{1, 2\} r~∈{1,2},此时
E [ M ( r ~ ) ] = p ( r ~ = 1 ) M ( 1 ) + ( 1 − p ( r ~ = 1 ) ) M ( 2 ) E[M(\tilde r)]=p(\tilde r=1)M(1)+(1-p(\tilde r=1))M(2) E[M(r~)]=p(r~=1)M(1)+(1−p(r~=1))M(2)
当考虑 p ( r ~ = 1 ) = n − r n − 1 p(\tilde r=1)=\frac{n-r}{n-1} p(r~=1)=n−1n−r 时,可以得到
E [ M ( r ~ ) ] = n − r n − 1 ( M ( 1 ) − M ( 2 ) ) + M ( 2 ) = r M ( 2 ) − M ( 1 ) n + n M ( 1 ) − M ( 2 ) n = r const 1 + const 2 \begin{aligned} E[M(\tilde{r})] &=\frac{n-r}{n-1}(M(1)-M(2))+M(2) \\ &=r \frac{M(2)-M(1)}{n}+\frac{n M(1)-M(2)}{n}=r \text { const }_{1}+\text { const }_{2} \end{aligned} E[M(r~)]=n−1n−r(M(1)−M(2))+M(2)=rnM(2)−M(1)+nnM(1)−M(2)=r const 1+ const 2
可以看出,当样本量只有1时,指标与精确排名 r r r 成线性关系,且系数的正负取决于 M ( 2 ) − M ( 1 ) M(2)-M(1) M(2)−M(1),这表示把相关物品排名为2和排名为1那个更好。而对于recall,precise这类不考虑排名内关系的指标而言,这个系数就是一个常数根本没有用处(此处有一个疑惑,recall@k这种还是需要考虑这个顺序的,像这种小样本情况,肯定会需要用小的k来做评估,不是没有用)总结:
- 当m=1时,没有必要考虑选择哪个评价指标,因为任何指标都无法给出两个模型的比较;
- 当m=1时,定性的结果都与完全的AUC相符。因为所有的指标在m=1时都是线性的,无法分辨的;且采样的AUC和完全的AUC是一致的。
4. 评价指标的修正
下面探索如何选择好的评价指标,用于采样后的评估
(1)排名的无偏估计
由上面分析知: r ~ ∣ r ∼ B ( m , r − 1 n − 1 ) + 1 \tilde r\vert r\sim B(m, \frac{r-1}{n-1})+1 r~∣r∼B(m,n−1r−1)+1,若假定 p = r − 1 n − 1 p=\frac{r-1}{n-1} p=n−1r−1,那么给出p的无偏估计 r ~ − 1 m \frac{\tilde r-1}{m} mr~−1。因此对于排名的无偏估计写成: r ^ = 1 + ( n − 1 ) ( r ~ − 1 ) m \hat r=1+\frac{(n-1)(\tilde r-1)}{m} r^=1+m(n−1)(r~−1)
修正后的评价指标写成:
M
^
(
r
~
)
=
M
(
1
+
(
n
−
1
)
(
r
~
−
1
)
m
)
\hat{M}(\tilde{r})=M\left(1+\frac{(n-1)(\tilde{r}-1)}{m}\right)
M^(r~)=M(1+m(n−1)(r~−1))
由于排名是一个整数,所以还需要对得到的
r
^
\hat r
r^进行整数化,如四舍五入或向上向下取整
(2)最小偏差估计(基于最小二乘法)
上面对评价指标的估计建立在评价指标是线性的基础上,否则仍然存在偏差。此时需要最小化偏差 ∑ r p ( r ) ( E [ M ^ ( r ~ ) ∣ r ] − M ( r ) ) 2 \sum_rp(r)(E[\hat M(\tilde r)|r]-M(r))^2 ∑rp(r)(E[M^(r~)∣r]−M(r))2
其中, p ( r ) p(r) p(r) 是一个先验分布,本文采取均匀分布。
将
M
^
\hat M
M^ 看作一个长度为
m
m
m 的向量,那么可以得到二次优化问题:
argmin
M
^
∈
R
m
+
1
∑
r
=
1
n
p
(
r
)
(
E
[
M
^
r
~
∣
r
]
−
M
(
r
)
)
2
=
argmin
M
^
∈
R
m
+
1
∑
r
=
1
n
p
(
r
)
(
∑
r
~
p
(
r
~
∣
r
)
M
^
r
~
−
M
(
r
)
)
2
\begin{aligned} & \underset{\hat{M} \in \mathbb{R}^{m+1}}{\operatorname{argmin}} \sum_{r=1}^{n} p(r)\left(E\left[\hat{M}_{\tilde{r}} \mid r\right]-M(r)\right)^{2} \\ =& \underset{\hat{M} \in \mathbb{R}^{m+1}}{\operatorname{argmin}} \sum_{r=1}^{n} p(r)\left(\sum_{\tilde{r}} p(\tilde{r} \mid r) \hat{M}_{\tilde{r}}-M(r)\right)^{2} \end{aligned}
=M^∈Rm+1argminr=1∑np(r)(E[M^r~∣r]−M(r))2M^∈Rm+1argminr=1∑np(r)(r~∑p(r~∣r)M^r~−M(r))2
解二次优化问题使用最小二乘法,对 M ^ r ~ \hat M_{\tilde r} M^r~ 求偏导使其为0
得到最优解:
M
^
=
(
A
T
A
)
−
1
A
T
b
\hat{M}=\left(A^{T} A\right)^{-1} A^{T} \mathbf{b}
M^=(ATA)−1ATb
其中,
A
∈
R
n
×
m
+
1
,
A
r
,
r
~
=
p
(
r
)
p
(
r
~
∣
r
)
b
∈
R
n
,
b
r
=
p
(
r
)
M
(
r
)
\begin{array}{r} A \in \mathbb{R}^{n \times m+1}, \quad A_{r, \tilde{r}}=\sqrt{p(r)} p(\tilde{r} \mid r) \\ \mathbf{b} \in \mathbb{R}^{n}, \quad b_{r}=\sqrt{p(r)} M(r) \end{array}
A∈Rn×m+1,Ar,r~=p(r)p(r~∣r)b∈Rn,br=p(r)M(r)
注意,当
m
+
1
<
n
m+1<n
m+1<n 时,该问题是不定的(为什么?小于号是不是反了)
期望当 r ~ \tilde r r~ 越大时,评估指标越小,这样上面问题变成了一个有约束的二次优化问题。
(3)偏差方差折中
上面最小偏差估计带来的一种后果可能是方差太大,提出将方差放在二次优化问题中,得到如下问题:
argmin
M
^
∈
R
m
+
1
∑
r
=
1
n
p
(
r
)
(
(
E
[
M
^
r
~
∣
r
]
−
M
(
r
)
)
2
+
γ
Var
[
M
^
r
~
∣
r
]
)
\underset{\hat{M} \in \mathbb{R}^{m+1}}{\operatorname{argmin}} \sum_{r=1}^{n} p(r)\left(\left(E\left[\hat{M}_{\tilde{r}} \mid r\right]-M(r)\right)^{2}+\gamma \operatorname{Var}\left[\hat{M}_{\tilde{r}} \mid r\right]\right)
M^∈Rm+1argminr=1∑np(r)((E[M^r~∣r]−M(r))2+γVar[M^r~∣r])
解得:
M
^
=
(
(
1.0
−
γ
)
A
T
A
+
γ
diag
(
c
)
)
−
1
A
T
b
\hat{M}=\left((1.0-\gamma) A^{T} A+\gamma \operatorname{diag}(\mathbf{c})\right)^{-1} A^{T} \mathbf{b}
M^=((1.0−γ)ATA+γdiag(c))−1ATb
其中,
c
r
~
=
∑
r
=
1
n
p
(
r
)
p
(
r
~
∣
r
)
c_{\tilde r}=\sum_{r=1}^{n}p(r)p(\tilde r\vert r)
cr~=r=1∑np(r)p(r~∣r)
当
γ
=
1
\gamma =1
γ=1 时,变成如下形式:
M
^
r
~
=
∑
r
=
1
n
p
(
r
~
∣
r
)
p
(
r
)
M
(
r
)
∑
r
=
1
n
p
(
r
~
∣
r
)
p
(
r
)
=
∑
r
=
1
p
(
r
∣
r
~
)
M
(
r
)
\hat{M}_{\tilde{r}}=\frac{\sum_{r=1}^{n} p(\tilde{r} \mid r) p(r) M(r)}{\sum_{r=1}^{n} p(\tilde{r} \mid r) p(r)}=\sum_{r=1} p(r \mid \tilde{r}) M(r)
M^r~=∑r=1np(r~∣r)p(r)∑r=1np(r~∣r)p(r)M(r)=r=1∑p(r∣r~)M(r)
但是在实际应用中,会在很多评估点上进行评估,所以一般取
γ
<
1
\gamma <1
γ<1