Rank教程: 09-Learning to Rank Listwise
欢迎转载,作者:Ling,注明出处:Rank教程: 09-Learning to Rank Listwise
本文不打算详细介绍每个算法,具体算法细节可以看Paper,但是本文会大致给出算法的核心思想。实际上所有算法都可以对应到机器学习的基础算法中。
文档列表方法(ListWise Approach):
定义:
简单说就是根据一个查询q和相应的所有文档O,每个q和o对都会有特征x,以及label y,我们训练一个模型,该模型可以给定一q和o对应的特征x,可以给出y值(分数值),有了y值,我们可以可以计算出不同排列组合的概率分布,如果模型给出的不同排列组合概率分布和最优结果概率分布相似,则学习到的模型是最佳模型。当给定一个新的查询q和所有文档时,我们就可以算出每个文档分数,然后按分数进行对文档进行排序。
形式化:
主要方法:
- ListNet
- ListMLE
- AdaRank
- SVM MAP
- SoftRank
Luce-Plackett model:LPM
TopK
举例说明含义:
有ABC三个文档,假设有个函数f可以得到每个文档的分数sA > sB > sC
特性:
- 和为1
- 越好的排列,概率越高
- 求和
ListNet:
提出者:
Cao et al.
原理简述:
用Luce-Plackett model计算不同排列的概率分布,或者说top k个文档的概率分布。
用KL divergence作为loss function测量学到的ranking list和标准ranking list的概率分布差异情况,差异越小越好。
用神经网络作为训练模型进行训练。
图示:
g是标准函数,输入一个q的特征x,可以得到y值
通过LPM概率公式,可以求的每个排列的概率,各种排列在一起可以构成一个概率分布,我们目标就是找到一个f函数,使得f(x)得到的y,然后用LPM概率公式计算出来的概率,构成的概率分布额g得到的概率分布类似,则我们就找到了最优的f函数
算法:
Top K 概率:
ListNet KL Divergence Loss Function:
ListMLE:
提出者:
Xia et al.
原理简述:
和ListNet主要不同在于Loss Function,采用Maximum Likelihood Estimation作为loss function
算法:
AdaRank:
提出者:
Xu & Li
原理简述:
基于Boosting技术直接优化loss函数
算法:
SVM MAP:
提出者:
Yue et al.
原理简述:
基于MAP,结合SVM算法直接优化loss函数
SoftRank:
提出者:
Taylor et al.
原理简述:
找到个近似评估函数比如NDCG,直接优化loss函数
算法:
留言