尊重知识产权
[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):主要分为二元独立模型,BM25,BM25F - 语言模型(
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,j∑j=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=∣Q∣1∑i=1∣Q∣ranki1
其中ranki表示第i个查询语句的第一个正确答案的排名。
LTR for Ranking Creation
单文档方法(PointWise Approach)
简单说就是一个查询q和一个文档a可以得到输入特征x,以及输出label y,用机器学习方法学习模型,当给定q和a时,我们得到相应输入特征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和所有文档时,我们就可以算出每个文档分数,然后按分数进行对文档进行排序。
本文探讨排序学习(Learning to Rank)的基本概念及其在信息检索和自然语言处理中的应用。介绍了几种常见的排序方法,包括单文档、文档对及文档列表方法,并讨论了评估排序效果的相关指标。
1万+

被折叠的 条评论
为什么被折叠?



