下图为机器学习排序的原理图,机器学习排序系统由4个步骤组成——人工标注训练数据、文档特征抽取、学习分类函数、在实际搜索系统中采用机器学习模型。

Learning to Rank主要包含pointwise方法、pairwise方法和listwise方法三种类型。
GBRank是一种pairwise的学习排序算法,它是基于回归来解决pair对的先后排序问题。在GBRank中使用的回归算法是GBT(Gradient Boosting Tree)
一般来说在搜索引擎里面,与用户搜索query相关度越高的网页越应该排在前面。现在query-doc的特征使用向量
x
x
x或者
y
y
y表示,假设现在有一个文档对
<
x
i
,
y
i
>
在实际用的时候可以将 x i x_i xi 当作doc_x的特征, y i y_i yi 当作doc_y的特征。这样的话 h ( x i ) h(x_i) h(xi) 可以理解为doc_x 的分数, h ( y i ) h(y_i) h(yi) 可以理解为doc_y 的分数。
我们含顺序的pair对用如下集合表示(也就是真的
x
i
x_i
xi排在真的
y
i
y_i
yi前面):

现假设学习的排序函数为
h
(
x
)
h(x)
h(x),我们希望当
h
(
x
i
)
>
h
(
y
i
)
h(x_i) > h(y_i)
h(xi)>h(yi)时,满足
x
i
>
y
i
x_i > y_i
xi>yi的样本的数量越多越好。
现将
h
(
x
)
h(x)
h(x)的风险函数用如下的式子表示:

从
R
(
h
)
R(h)
R(h)可以知道每个pair对
<
x
i
,
y
i
>

可以发现当:
上述风险函数直接优化比较困难,这里一个巧妙的解决方案是使用回归的方法,也就是让 x i x_i xi去拟合 y i y_i yi的预测值,让 y i y_i yi去拟合 x i x_i xi的目标值。
为了避免优化函数
h
(
x
)
h(x)
h(x)是一个常量函数,风险函数一般会增加一个平滑项
τ
\tau
τ(
0
<
τ
≤
1
0< \tau \leq 1
0<τ≤1):

因为当
h
(
x
)
h(x)
h(x)为常量函数时,先前的
R
(
h
)
=
0
R(h)=0
R(h)=0 就没有再优化的空间了,加入平滑项就变相地转为:如果希望
x
i
>
y
i
x_i > y_i
xi>yi,就得有
h
(
x
i
)
>
h
(
y
i
)
+
τ
h(x_i) > h(y_i) + \tau
h(xi)>h(yi)+τ,也就更为严格了,多了一个gap。
对于
R
(
h
)
R(h)
R(h)计算
h
(
x
i
)
h(x_i)
h(xi)和
h
(
y
i
)
h(y_i)
h(yi)的负梯度为:

可以发现当pair对符合
<
x
i
,
y
i
>

到了这里我们就知道所谓的训练样本就是对于
x
i
>
y
i
x_i > y_i
xi>yi 但是
h
(
y
i
)
>
h
(
x
i
)
h(y_i) > h(x_i)
h(yi)>h(xi) 的那些样本,并且使用的是回归的方法,GBRank为其巧妙地找到了
x
i
x_i
xi的 目标为
h
(
y
i
)
+
τ
h(y_i) + \tau
h(yi)+τ 以及
y
i
y_i
yi 的目标为
h
(
x
i
)
−
τ
h(x_i) - \tau
h(xi)−τ, 也就是在每次迭代的时候将会构建以下的训练集:

这里可以这样理解:
让 h ( t ) ( x i ) + τ h_{(t)}(x_i) + \tau h(t)(xi)+τ 向着 h ( t − 1 ) ( y i ) h_{(t-1)}(y_i) h(t−1)(yi) 逼近,让 h ( t ) ( y i ) + τ h_{(t)}(y_i) + \tau h(t)(yi)+τ 向着 h t − 1 ( x i ) h_{t-1}(x_i) ht−1(xi) 逼近。
这是因为在有效的训练集中,即 x i > y i x_i > y_i xi>yi 但是 h ( y i ) > h ( x i ) h(y_i) > h(x_i) h(yi)>h(xi) ,我们的目标是更新函数 h ( x ) h(x) h(x) 使得经 h ( x i ) h(x_i) h(xi) 算出来的 x i x_i xi 的分数更高,经 h ( y i ) h(y_i) h(yi) 算出来的 y i y_i yi 的分数更低。所以 h ( t ) ( x i ) + τ h_{(t)}(x_i) + \tau h(t)(xi)+τ 的目标就是更大一些的 h ( t − 1 ) ( y i ) h_{(t-1)}(y_i) h(t−1)(yi), h ( t ) ( y i ) + τ h_{(t)}(y_i) + \tau h(t)(yi)+τ 的目标就是更小一些的 h t − 1 ( x i ) h_{t-1}(x_i) ht−1(xi)。




