上一篇综述文章 里我们简单介绍了L2R三种方法的一个概要,接下来将对这三种方法做详细介绍。本篇文章介绍第一种L2R方法–pointwise方法
1、原理
pointwise方法非常简单,考虑的是文档 (doc) 和查询 (query) 的绝对相关度,基于此,我们可以将排序问题转化为分类或者回归问题。我们以分类问题为例,一般来说,会根据相关度设置五个类别 {perfect ,excellent,good,fair,bad},对应数字 { 5,4,3,2,1 },然后根据查询和返回文档可以标注样本,得到这样的形式 (query, doc, label)。
因此我们准备的样本格式如下,其中
qi 代表第
i 个query,
xj(i) 表示和第
i 个query相关的文档集里的第
j 个文档,
Ck 代表所属类别。
2、常见算法
Pointwise方法主要包括以下算法:Pranking (NIPS 2002), OAP-BPM (EMCL 2003), Ranking with Large Margin Principles (NIPS 2002), Constraint Ordinal Regression (ICML 2005)。
我们详细介绍一下Pranking算法,原文地址:
https://pdfs.semanticscholar.org/906f/50f545890ca81231be7cec7c59555c679dba.pdf
2.1 Prank 算法
对于给定的样本集合
{(x1,y1),(x2,y2),...,(xt,yt)},文档特征向量
xi∈Rn,对应的排序序号
y∈Y,不失一般性,假设
Y={1,2,3,...,k},并使用 "
>"作为顺序关系,如果
ys>yt,那么我们说
xs 优于
xt,反之同理,但是当
ys=yt 时,
xs 和
xt 不可比较。
假设有一个排序规则
H:Rn⟶y,对于系数
w 和 k个阈值集合
b1≤b2≤...≤bk=∞,为方便起见,令
b=(b1,b2,...,bk−1),然后就是要找到满足
w⋅x<br 的最小的
br,这个规则将空间分为若干平行的等值区域:所有满足
br−1<w⋅x<br 的样本均属于同样的序号
r。因此,对于一个给定
w 和
b 的排序规则,我们可以预测一个新样本
x 的序号是:
H(x)=r∈{1,2,...,k}min{r:w⋅x−br<0}
具体算法如下:
Initialize: Set w1=0,b11,...,bk−11=0,bk1=+∞
Loop: For
t=1,2,...,T
- Get a new rank-value xt∈Rn
- Predict y^t=minr∈{1,2,...,k}{r:w⋅x−br<0}
- Get a new label yt
- If y^t̸=yt, update wt (otherwise set wt+1=wt,∀r:brt+1=b