上一篇文章中,介绍Lambda Loss Framework的理论依据,下面开始讲lambda Loss的具体使用方式。
参考论文为《The LambdaLoss Framework for Ranking Metric Optimization》
Lambda Loss 在ARP和NDCG的使用
对于排序问题,传统监控指标关注的是资料的顺序,也就是label;而损失函数关注的确实资料的得分。通过LambdaLoss Framework可以将二者结合起来。首先,我们可以注意到对于label-link的损失函数和score-link的损失函数有如下的关系。
I s i < s j < l o g 2 ( 1 + e ( − σ ( s i − s j ) ) ) I_{s_i<s_j} < log_2 (1+e^(-\sigma(s_i-s_j))) Isi<sj<log2(1+e(−σ(si−sj)))
其次,基于之前提到的损失可以用似然函数和分布函数表征。对于分布函数,可以用已知的分布来表征,并且用排好序的资料表征 π s \pi_s πs。
-
Average Relevance Position ~ 可过渡为RankNet
A R P = ∑ i = 1 n y i i ARP = \sum_{i=1}^{n} y_i i ARP=i=1∑nyii
这里i指序列中的位置i,y指数据在i位置相关性得分。i的位置,由排在它之前资料的数据决定
i = ∑ j = 1 n I s i < s j + 1 i = \sum_{j=1}^{n} I_{s_i<s_j} +1 i=j=1∑nIsi<sj+1
A R P = ∑ i = 1 n y i ( ∑ j = 1 n I s i < s j + 1 ) = ∑ i = 1 n ∑ j = 1 n y i I s i < s j + c 1 ≤ ∑ i = 1 n ∑ j = 1 n y i l o g 2 ( 1 + e ( − σ ( i i − s j ) + c 1 ) ARP = \sum_{i=1}^{n}yi(\sum_{j=1}^{n} I_{s_i<s_j+1})\\ =\sum_{i=1}^{n}\sum_{j=1}^{n}y_i I_{s_i<s_j}+c_1\\ \leq \sum_{i=1}^{n}\sum_{j=1}^{n}y_i log_2 (1+e^(-\sigma(i_i-s_j)+c_1) ARP=i=1∑nyi(j=1∑nIsi<sj+1)=i=1∑nj=1∑nyiIsi<sj+c1≤i=1∑nj=1∑nyilog2(1+e(−σ(ii−sj)+c1)
l ( y , s ) = l o g 2 ∑ i = 1 n ∑ j = 1 n y i l o g 2 ( 1 + e ( − σ ( i i − s j ) + c 1 ) H ( π ∣ s ) = − ∑ i = 1 n ∑ j = 1 n l o g 2 ∑ Π ( 1 1 + e − σ ( s i − s j ) y i ) y i H ( π ∣ s ) l(y,s) = log_2 \sum_{i=1}^{n}\sum_{j=1}^{n}y_i log_2 (1+e^(-\sigma(i_i-s_j)+c_1) H(\pi|s)\\ = -\sum_{i=1}^{n}\sum_{j=1}^{n}log_2 \sum_{\Pi} (\frac{1}{1+e^{-\sigma(s_i-s_j)^{y_i}}})^{y_i} H(\pi|s) l(y,s)=log2i=1∑nj=1∑nyilog2(1+e(−σ(ii−sj)+c1)H(π∣s)=−i=1∑nj=1∑nlog2Π∑