Learning To Rank中Pairwise方法的学习
由于
Pairwise
方式的排序学习方法 训练样本构建方便、速度快同时效果也还可以,因此在工业界和学术的应用非常广泛^_^
2002-RankSvm
RankSvm
是最经典的一种,将其余的相关实现方法学习总结简单的记录到本文中。RankSvm
的学习记录在这里
2006-IRSVM
IRSVM
直接是RankSvm
的改进,RankSvm
的训练目标是让序列pair的不一致pair对
对最少,其优化函数为:
$$\tau(r_a,r_b)=\frac{P-Q}{P+Q}=1-\frac{2Q}{\binom{m}{2}}$$
因此直接暴露了两大问题:
问题1:位置误差
Example1:
档位:3,2,1
排序1:2 3 2 1 1 1 1
排序2:3 2 1 2 1 1 1
从样例1中可以看到如果是按$\tau$最大化进行优化的话,排序1
中2 3
为不一致pair,排序2中1 2
为不一致pair,因此他们的$\tau$得分是一致的,但是明显可以看到排序2的应该为更优,因为越top
级别的重要性越大
因此IRSVM
考虑了计算$\tau$时将位置顺序纳入误差
问题2:长度误差
Example2:
档位:3,2,1
排序3:3 2 2 1 1 1 1
排序4:3 3 2 2 2 1 1 1 1 1
现观察样例2,可以发现排序3
和排序4
中均未出现不一致pair
的文档对,因此他们的$\tau$得分是一样的,并且均为1,但是排序3
中存在28
个文档对,而排序4
中存在45
个文档对,所以排序4
存在更多的训练数据,因此排序4
的数据相当于RankSvm
来说更加重要。
因此IRSVM
将召回的文档个数纳入了排序
其实这点比较纠结,实际使用中会进行数据过滤,而且最终训练的时候也一般都是取
top10
进行训练,所以这个问题并不会很明显
优化学习方法
所以IRSVM
考虑了不同排序位置的不同重要性,以及各个query
召回的数量,对原始的RankSVM
损失函数进行修改得到如下:
$$\underset{w}{min} \sum_{i=1}^N \tau_{k(i)} \mu_{q(i))} [1-y_i(w,x_i^{(1)}-x_i^{(2)})]_+ + \lambda||w||^2$$
其实重要是添加了位置得分因子$\tau_{k(i)}$,使用NDCG@1
中的方法进行折损,以及添加了query
召回的文档长度因子$\mu_{q(i)}$,使用的是最简单粗暴的$\frac{1}{n_q}$进行计算,其中$n_q$表示召回的文档数量。
[2]中提出IRSVM
的时候还使用了SGD
和线性规划
进行了优化
2005-RankNet
RankNet
的相关学习记录在这里
2007-GBRank
GBRank
的相关学习记录在这里
参考
- 《Learning to Rank for Information Retrieval and Natural Language Processing》.Hang Li
- Cao Y, Xu J, Liu T Y, et al. Adapting ranking SVM to document retrieval[C]// SIGIR 2006: Proceedings of the International ACM SIGIR Conference on Research and Development in Information Retrieval, Seattle, Washington, Usa, August. 2006:186-193.