内容纲要

欢迎转载,作者:Ling,注明出处:Rank教程: 06-Learning to Rank 概述

 

机器学习排序:Learning to Rank

之前考虑的特征种类非常少,当特征数目增多的时候,我们可以采用机器学习方法进行排序,也叫做Learning to Rank,或者简称LTR

问题:

机器学习需要大量标注样本,如何获得?

通过用户点击,自动标注

LTR流程图示:

RK_06_001

标注训练样本,训练机器学习模型,输入查询和文档集合,进行排序

常用特征:

  • 查询词在文档中词频
  • 查询词IDF
  • 文档长度
  • 网页入链数量
  • 网页出链数量
  • 网页PageRank值
  • 网页URL长度

LTR分类:

分类图示:

RK_06_002

Rank Creation:

定义:

简单说就是给定查询Query和文档O(这里我们用Object替换Document),得到文档得排序结果。

形式化:

Q ={q1, q2, · · · , qi, · · · , qM}

O = {o1, o2, · · · , oj, · · · , oN}

F (q, O) : Q ×On → Rn

SO = F (q, O)

π = sortSO(O)

其中:

 n = |O|

q是Q中得元素

O是整个文档

SO是O在q下的得分

π 是文档基于SO的排序结果

注意对于不同的q,SO可以不一样

通常我们会用

f (q, o) : Q × O → R

替代大F

so = f (q, o)

so 表示一个查询和一个文档的分数

π = sortso,o∈O(O)

是对所有文档的排序

图示:

RK_06_003

输入Q和O,经过Ranking System得到O的子集,然后排序

如果加上Learning system,则如下图所示:

RK_06_004

Rank Aggregation:

定义:

简单说就是给定Query和文档O,我们有不同的Ranking System得到不同的排序结果,然后综合考虑这些排序结果,给出最终排序结果。

形式化:

Q ={q1, q2, · · · , qi, · · · , qM}

O = {o1, o2, · · · , oj, · · · , oN}

∑= {πi|π ∈ ∏, i = 1, · · · , k}

F(q, ∑) : Q × ∏k → Rn

SO = F (q, ∑) 简写F(q, ∑) = F(∑)

π = sortSO(O)

∑表示k个ranking list

F是对k个ranking list求最终排序

图示

RK_06_005

LTR for Ranking Creation分类:

单文档方法(PointWise Approach):

定义:

简单说就是一个查询q和一个文档o可以得到输入特征x,以及输出label y,用机器学习方法学习模型,当给定q和o时,我们得到相应输入特征x,输入给模型,得到结果y,然后根据结果y进行排序,这就是PointWise方法。实际上就是把Rank问题转化成了分类问题。

形式化:

RK_06_006

文档对方法(PairWise Approach):

定义:

简单说就是根据一个查询q和两个文档o1,o2,得到输入特征x1和x2,以及对应label y1-y2的值,然后用机器学习方法学习模型,当给定一个q和多个文档时 ,我们可以得q的每个文档pair对之间的rank关系,基于这些rank关系我们对结果进行排序。

形式化:

RK_06_007 

文档列表方法(ListWise Approach):

定义:

简单说就是根据一个查询q和相应的所有文档O,每个q和o对都会有特征x,以及label y,我们训练一个模型,该模型可以给定一q和o对应的特征x,可以给出y值(分数值),有了y值,我们可以可以计算出不同排列组合的概率分布,如果模型给出的不同排列组合概率分布和最优结果概率分布相似,则学习到的模型是最佳模型。当给定一个新的查询q和所有文档时,我们就可以算出每个文档分数,然后按分数进行对文档进行排序。

形式化:

RK_06_008

以上每种方法都有具体相应的很多算法,这里首先给出一些对比结果:

RK_06_009

RK_06_010

RK_06_011

后面的文章我们将简要学习具体的LTR方法。