Learning to Rank系列之Pointwise方法

2019-04-14 20:26发布

上一篇综述文章 里我们简单介绍了L2R三种方法的一个概要,接下来将对这三种方法做详细介绍。本篇文章介绍第一种L2R方法–pointwise方法

1、原理

pointwise方法非常简单,考虑的是文档 (doc) 和查询 (query) 的绝对相关度,基于此,我们可以将排序问题转化为分类或者回归问题。我们以分类问题为例,一般来说,会根据相关度设置五个类别 {perfect ,excellent,good,fair,bad},对应数字 { 5,4,3,2,1 },然后根据查询和返回文档可以标注样本,得到这样的形式 (query, doc, label)。 因此我们准备的样本格式如下,其中 qiq_i 代表第 ii 个query,xj(i)x^{(i)}_{j} 表示和第 ii 个query相关的文档集里的第 jj 个文档,CkC_{k} 代表所属类别。
这里写图片描述

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)}{(x^{1}, y^{1}),(x^{2}, y^{2}),...,(x^{t}, y^{t})},文档特征向量 xiRnx^{i} in mathbb{R^{n}},对应的排序序号 yYyin mathcal{Y},不失一般性,假设 Y={1,2,3,...,k}mathcal{Y}={1,2,3,...,k},并使用 ">gt"作为顺序关系,如果 ys>yty^{s}gt y^{t},那么我们说 xsx^{s} 优于 xtx^{t},反之同理,但是当ys=yty^{s} = y^{t} 时,xsx^{s}xtx^{t} 不可比较。 假设有一个排序规则 H:Rnymathcal{H}: mathbb{R^n}longrightarrow y,对于系数 ww 和 k个阈值集合 b1b2...bk=b_1leq b_2leq ... leq b_k=infty,为方便起见,令 b=(b1,b2,...,bk1)b=(b_1,b_2,...,b_{k-1}),然后就是要找到满足 wx<brwcdot x lt b_r 的最小的 brb_r,这个规则将空间分为若干平行的等值区域:所有满足 br1<wx<brb_{r-1}lt wcdot x lt b_{r} 的样本均属于同样的序号 rr。因此,对于一个给定 wwbb 的排序规则,我们可以预测一个新样本 xx 的序号是:
H(x)=minr{1,2,...,k}{r:wxbr<0}H(x)=min_{rin {1,2,...,k}}{r:wcdot x -b_rlt 0} 具体算法如下: Initialize: Set w1=0,b11,...,bk11=0,bk1=+w^{1}=0,b_{1}^{1},...,b_{k-1}^{1}=0,b_{k}^{1}=+infty
Loop: For t=1,2,...,Tt=1,2,...,T
  • Get a new rank-value xtRnx^{t}in mathbb{R^n}
  • Predict y^t=minr{1,2,...,k}{r:wxbr<0}hat{y}^{t}=min_{rin {1,2,...,k}}{r:wcdot x -b_rlt 0}
  • Get a new label yty^{t}
  • If y^tythat{y}^{t} eq y^{t}, update wtw^{t} (otherwise set wt+1=wt,r:brt+1=brtw^{t+1}=w^{t}, forall r:b_{r}^{t+1}=b_{r}^{t}