Rank教程: 06-Learning to Rank 概述
欢迎转载,作者:Ling,注明出处:Rank教程: 06-Learning to Rank 概述
机器学习排序:Learning to Rank
之前考虑的特征种类非常少,当特征数目增多的时候,我们可以采用机器学习方法进行排序,也叫做Learning to Rank,或者简称LTR
问题:
机器学习需要大量标注样本,如何获得?
通过用户点击,自动标注
LTR流程图示:
标注训练样本,训练机器学习模型,输入查询和文档集合,进行排序
常用特征:
- 查询词在文档中词频
- 查询词IDF
- 文档长度
- 网页入链数量
- 网页出链数量
- 网页PageRank值
- 网页URL长度
LTR分类:
分类图示:
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)
是对所有文档的排序
图示:
输入Q和O,经过Ranking System得到O的子集,然后排序
如果加上Learning system,则如下图所示:
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求最终排序
图示
LTR for Ranking Creation分类:
单文档方法(PointWise Approach):
定义:
简单说就是一个查询q和一个文档o可以得到输入特征x,以及输出label y,用机器学习方法学习模型,当给定q和o时,我们得到相应输入特征x,输入给模型,得到结果y,然后根据结果y进行排序,这就是PointWise方法。实际上就是把Rank问题转化成了分类问题。
形式化:
文档对方法(PairWise Approach):
定义:
简单说就是根据一个查询q和两个文档o1,o2,得到输入特征x1和x2,以及对应label y1-y2的值,然后用机器学习方法学习模型,当给定一个q和多个文档时 ,我们可以得q的每个文档pair对之间的rank关系,基于这些rank关系我们对结果进行排序。
形式化:
文档列表方法(ListWise Approach):
定义:
简单说就是根据一个查询q和相应的所有文档O,每个q和o对都会有特征x,以及label y,我们训练一个模型,该模型可以给定一q和o对应的特征x,可以给出y值(分数值),有了y值,我们可以可以计算出不同排列组合的概率分布,如果模型给出的不同排列组合概率分布和最优结果概率分布相似,则学习到的模型是最佳模型。当给定一个新的查询q和所有文档时,我们就可以算出每个文档分数,然后按分数进行对文档进行排序。
形式化:
以上每种方法都有具体相应的很多算法,这里首先给出一些对比结果:
后面的文章我们将简要学习具体的LTR方法。
留言