. E3 {+ ~ M" e/ B极限多标签分类-评价指标 4 N, k' ^8 w N1 z) I: X! l2 K6 l, T3 j5 A8 f
极限多标签分类-评价指标+ w* g% l7 H0 h% _4 |0 o
References:% H' j; T E7 o' B7 E. c
http://manikvarma.org/downloads/XC/XMLRepository.html$ N+ L0 q8 x8 P- N
https://blog.csdn.net/minfanphd/article/details/126737848?spm=1001.2014.3001.55021 H/ b$ A% K0 P5 r: {- S, Q& {& ~
https://en.wikipedia.org/wiki/Discounted_cumulative_gain9 V/ S+ P A7 f, m8 G. q% O
& j/ V v- [' t. @
什么是极限多标签分类 (eXtreme multi-label Classification (XC))? " Q' b- |+ ?, t9 i9 ]3 D" ]标签数非常多(Million),典型的就是BoW数据标签。+ E3 Q0 N6 {1 u: h- [% S/ A3 s
极限多标签分类的典型应用:Image Caption(头大)。不过在Image Caption里面,Word之间存在序关系。XC可以看成是Image Caption的一个关键阶段,它能够选出与当前Image最相关的BoW。( s1 ` C) Z& R- r# n7 B: Q; F
(上述都是靠过往经验吹的,近期没调研)。 # ?4 K& N. E1 ^5 m/ X* k5 F/ ?8 `" o/ ^. l5 X
先来看一下评价指标: G5 n+ L# f3 ~: u7 S9 a# o
由于标签数非常多,且GroundTruth又非常小,因此通常意义上的分类精度、召回(多标签分类用macro或者micro的acc或者recall)等指标不work。& y) L- q* }- Q. u2 [7 ^
这些评价指标通常考虑了head/tail labels,也就是高频标签和低频标签;以及reciprocal pairs(互惠对)去除? ( f7 U5 K$ v: g* r互惠对似乎?是指彼此相关的标签对,比如针对一个数据点,如果预测了标签A,如果标签B和A相关,那可以自然预测B。8 I; n) `+ a! f6 ^% Z
为了避免这种trival prediction, reciprocal pairs应该被去除。) c' g4 @4 p) ^ i' e: o" ]3 A
" n# q9 \7 L! a8 `0 e5 g(1) Top-k kk Performance: + b) j- p+ @; H& m: z- l- F/ f }(Precision@ k ) P @ k : = 1 k ∑ l ∈ rank k ( y ^ ) y l \text{(Precision@$k$)}\text{P}@k := \frac{1}{k}\sum_{l \in \text{rank}_k (\hat{\mathbf{y}})} \mathbf{y}_l 1 V: l6 b; G( ?(Precision@k)P@k:= ' \: T) }* W4 x2 b3 x- l' y' q' y' D
k4 u1 z- I. I: K; p' H' l L
12 ^3 L' y% }7 s+ L8 W
. o7 Q. j5 J; b+ J1 ] 8 Y4 G" J9 m D kl∈rank ! e3 f: T' F4 yk / q9 k# k" v' P2 p 5 g8 ^/ I3 A! z& o, i ( # f2 D# N3 `: O% U' \
y- r# o6 }3 ~ z+ s
^* ]. O4 T: ^; B# V
: p- i S' b1 P$ T6 N0 k
)# ~0 f" ]6 K9 U& r+ f( E# E6 w
∑ S2 s! s, m1 ]9 y" L! ~. r5 u( x0 v ?8 M
y 2 u" D0 e. a, A% k! m
l 5 o! m( G, d- g' v$ l( |1 ^5 c/ W$ G0 w2 z+ G
1 S! o0 I* d- g
+ \/ k J9 }% P
(Discounted Cumulative Gain (贴现累积收益))DCG @ k : = ∑ l ∈ rank k ( y ^ ) y l log ( l + 1 ) \text{(Discounted Cumulative Gain (贴现累积收益))} \text{DCG}@k := \sum_{l \in \text{rank}_k(\hat{\mathbf{y}})} \frac{\mathbf{y}_l}{\log(l+1)} , {: I" N' h4 \; w+ Y0 Z- I1 r3 j(Discounted Cumulative Gain (贴现累积收益))DCG@k:= 7 n/ S( ^( Z O; H) B
l∈rank 4 Z# ^5 r1 K$ j& p6 d! A. ik + [9 G* ~2 q. o( e2 o1 v 1 u5 o* U* f9 G. \! P ( ' h j5 `' e% M
y - y- J$ M4 @ l* ]^ * u9 K6 u- V, s% i) l* q, k 5 k3 N, {1 W# i( t5 A )) y9 l3 c9 x1 q! w- p% H' Q
∑2 |: e T+ s E# T# j) L
/ Z. L8 D# n0 E 2 n# U- p7 @4 [3 j4 Klog(l+1)) J7 R3 ~9 I+ S, r
y 8 v( e, w0 C) {# x2 Z3 ol 4 Y9 A1 G9 O& I1 e7 K# n% ~$ k
+ S; V/ a! J4 _0 J3 P, i
! d2 Q4 M7 @0 m) H/ E
) f4 K9 B0 v/ n* [8 F + ?/ S& V$ r1 q5 h' h) {(Normalized DCG)nDCG @ k : = DCG@ k ∑ l = 1 min ( k , ∣ ∣ y ∣ ∣ 0 ) 1 log ( l + 1 ) \text{(Normalized DCG)} \text{nDCG}@k := \frac{\text{DCG@$k$}}{\sum_{l=1}^{\min(k,||\mathbf{y}||_0)} \frac{1}{\log(l+1)}} B: T, h6 M0 r1 m& X2 K) z4 w' _
(Normalized DCG)nDCG@k:= # f n/ R8 z# E* u2 O
∑ " }3 {; s9 k( m6 hl=12 Q: u% Y v# u( o. ]( W
min(k,∣∣y∣∣ * n& u2 G4 t* [, S) t
03 {( w' f) t: p
' a1 Z h2 u: E) {% y# q& w# n; l. V
) ! m/ G$ S) ]( z( _7 r$ W - n! @% C' R W+ n! S- V0 k' G; r- M5 G
log(l+1) 6 t7 q9 I+ Q ^2 N( w K1 % z* h" p) M. R( S# D; e / U2 o" J( ^; J$ L' f5 ?/ w6 |( ?
DCG@k - N. }4 v9 L2 M: E3 z+ K # `5 e' c2 x& S2 R2 L) C" Q! N- D+ V- e5 s2 X% n$ P7 P3 ^
- M }4 o6 G" arank k ( y ) \text{rank}_k(\mathbf{y})rank # M/ w; d! F! w- `, U
k ( j2 g7 C( {0 O8 V. L: k1 I( m2 J( P& |
(y)为逆序排列y \mathbf{y}y的前k个下标。Note: DCG公式里的分母实际上不是l,而是from 1 to k., Y, i9 I7 s# m$ D
2 k/ M A) G- k3 w7 A2 O% o
靠后的标签按照对数比例地减小,说白了就是加权。至于为什么用log?两个事实:1. 平滑缩减; 2. Wang等人提供了理论支撑说明了log缩减方式的合理性。The authors show that for every pair of substantially different ranking functions, the nDCG can decide which one is better in a consistent manner. (看不懂,暂时不管)/ U- J- C9 O8 O
6 a1 [* |4 }( O/ b- W# P(2) Top-k kk Propensity-score:0 w: o( z% q" B/ x; R
! b8 r1 n" S1 r# ?5 ~
有些数据集包含一些频度很高的标签(通常称之为head labels),可以通过简单地重复预测头部标签来实现高的P @ k \text{P}@kP@k。Propensity-score可以检查这种微不足道的行为。 ) ?( P6 s# v7 e0 m0 y! a( Propensity-score Precision ) PSP @ k : = 1 k ∑ l ∈ rank k ( y ^ ) y l p l (\text{Propensity-score Precision}) \text{ PSP}@k := \frac{1}{k} \sum_{l\in \text{rank}_k(\hat{\mathbf{y}})} \frac{\mathbf{y}_l}{p_l}' V& y( T) p4 g$ b# \& `
(Propensity-score Precision) PSP@k:= 9 A7 I3 P9 L5 A/ _% x2 h) |
k 7 C& H3 S" N6 M1 J" \. H0 B F 1 [9 _; w3 L* I V2 U* k5 d$ C- k: X1 O8 N( T: K
l∈rank + ~7 m) G4 ]- r- |/ b$ Dk 7 I' {5 t6 `$ z3 t2 ^; g7 o! ]* v! H' [( P& F( v
( 8 X6 \* P& l1 f
y. }2 y. q& n4 p
^ * \, q5 \/ `1 [, Q( s. Q8 } " B2 R) k5 D& v7 A& D ), G& t& V6 y. D7 w& r/ e
∑ - ^/ y$ d( C2 a5 x7 i ! | ?4 D) w- @6 y$ @ + }0 z6 g$ x! F1 sp 6 ~' J; ?+ f; O- r2 @+ Ml/ u/ B- ]: L# J8 X% N+ [6 h
( N: k$ i, |# o! P9 D 7 V* ^6 }- V9 K& L# \& }y 1 }+ A) l2 p H0 Q
l+ d3 o; o: F+ E! n
9 e, m" |. N0 b$ _; L/ s( ^9 s
* ~. [8 s) W7 ?+ S7 j4 k! ]3 o' e
; L' Z0 x! I! k- V+ w4 z
3 h7 T6 x5 S, R" o 5 @, s! R& N- Y4 Y+ I# \+ ^/ UPSDCG @ k : = ∑ l ∈ rank k ( y ^ ) y l p l log ( l + 1 ) \text{PSDCG}@k := \sum_{l \in \text{rank}_k(\hat{\mathbf{y}})} \frac{\mathbf{y}_l}{p_l\log(l+1)} # y- h0 w1 ?* T: ?! `PSDCG@k:= $ p, t0 g3 @6 E- v. ?% w0 al∈rank . R) L6 W" P, i% ^
k 9 t) C& z/ W! d! Z8 o' C' i7 |" u: l. @/ C( m+ m, Q* I! h
( ( a+ c/ W H- v9 ty) L2 m+ r/ O9 N$ y! L& a1 f5 j2 z
^ 3 y! R3 l. B6 Y " Y; o6 p# M% q) V7 d6 y0 e( r+ i )+ h4 @( c6 M% }' A
∑4 |" L' W* ^, B, A h# ~
" P+ W4 n5 r; Q' L- |; s4 m+ Z1 r1 h& N! a8 h
p * s6 i8 P1 A% J, ]
l9 k8 M J% c3 J% Y
9 [; f) ~4 z. B, s' |& @ log(l+1)3 P( ?7 o6 W/ C7 d
y 2 o j5 ]4 b5 Wl 6 U# K+ _5 P8 X: S. ^/ Q9 C% j , H4 i1 T$ n* N% C$ v Q" Z) y3 Q8 B7 e( R& N+ f' m+ N
6 T- h- \- E, g: b, K' w& S
7 p' F; ~$ W- W: C7 A; r5 B
0 d" m/ S( t3 m7 w/ kPSnDCG @ k : = PSDCG@ k ∑ l = 1 k 1 log ( l + 1 ) \text{PSnDCG}@k := \frac{\text{PSDCG@$k$}}{\sum_{l=1}^{k} \frac{1}{\log(l+1)}}, k& M! e3 A- \! v
PSnDCG@k:= 9 m" H- c, E( k$ Q- V8 b, X∑ ( B' Q+ ~/ f! a( \* sl=1 5 f& r, b& K0 b" r- Hk- l- s9 Q' \5 u8 l) s: x
) i$ x, T% {2 U" T: {
. Z9 Z# t0 _. F7 N+ ?2 q( ylog(l+1) 6 F0 v; ~ z1 ~2 s' g1 " k. o0 b4 r" r: l' M/ u, Y0 X, ?8 U3 l# U% I1 c" D. Z