Learning to rank

尊重知识产权

漫谈Learning to Rank——排序学习算法

[Rank教程](http://www.bdpt.net/cn/2018/11/03/rank教程-01-概述/)

用户提出问题Query,然后检索算法检索出最相关的结果,并且对结果进行排序,这个排序的过程就是Rank过程。它是信息检索(infornation retrieval)和自然语言处理NLP处理的很核心的一个内容。
一个典型的信息检索过程:
在这里插入图片描述
用户问题q,然后输入一堆文档D,检索系统去检索哪些文档与问题相关,然后在排个序。

实际应用:

  • QA问答
  • 在线广告:广告排序
  • 个性化搜索
    Rank方法发展到现在主要有五大类方法:
    • 布尔模型(Boolean Model)
    • 空间向量模型(Vector Space Model)
    • 概率检索模型(Probabilistic Retrieval Model):主要分为二元独立模型,BM25BM25F
    • 语言模型(Language Model)
    • 机器学习模型(Learning to Rank):
      主要分为:
      • Rank Creation
      • Rank Aggregation

这里我们会重点记录 Learning to Rank.

常见指标:

精确率和召回率:

在这里插入图片描述

  • Precision=N/(N + M)
  • Recall=N/(N+K)

P@n指标:关注搜索结果排名最靠前文档的结果质量

在这里插入图片描述
头十个文档中包含了五个文档,所以精度为0.5

MAP指标(Mean Average Precision)

AP(Average Precision): 针对单个查询
在这里插入图片描述
图中有3个相关文档,排在了第2,4,6位,如上计算

理想情况是1,2,3位
(1/1+2/2+3/3)/3=1
对多组查询,每个查询AP相加求平均值,就是MAP
形式化表示:注意y只有0,1两个取值,表示相关或者不相关
分母是相关文档数目,分子是到某个位置,看看其中相关文档所占数目,累加所有和即可,就是上图的计算方式
A P = ∑ j = 1 n i P ( j ) ⋅ y i , j ∑ j = 1 n i y i , j A P=\frac{\sum_{j=1}^{n_{i}} P(j) \cdot y_{i, j}}{\sum_{j=1}^{n_{i}} y_{i, j}} AP=j=1niyi,jj=1niP(j)yi,j

Mean reciprocal rank (MRR):

reciprocal rank是指,第一个正确答案的排名的倒数。MRR是指多个查询语句的排名倒数的均值。公式如下:

M R R = 1 ∣ Q ∣ ∑ i = 1 ∣ Q ∣ 1 r a n k i M R R=\frac{1}{|Q|} \sum_{i=1}^{|Q|} \frac{1}{r a n k_{i}} MRR=Q1i=1Qranki1
其中ranki表示第i个查询语句的第一个正确答案的排名。

LTR for Ranking Creation

单文档方法(PointWise Approach)

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

在这里插入图片描述

文档对方法(PairWise Approach):

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

文档列表方法(ListWise Approach)

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值