内容纲要

欢迎转载,作者:Ling,注明出处:Rank教程: 09-Learning to Rank Listwise

 

本文不打算详细介绍每个算法,具体算法细节可以看Paper,但是本文会大致给出算法的核心思想。实际上所有算法都可以对应到机器学习的基础算法中。

文档列表方法(ListWise Approach):

定义:

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

形式化:

RK_09_001

主要方法:

  • ListNet
  • ListMLE
  • AdaRank
  • SVM MAP
  • SoftRank

Luce-Plackett model:LPM

RK_09_002

TopK

RK_09_003

举例说明含义:

有ABC三个文档,假设有个函数f可以得到每个文档的分数sA > sB > sC

RK_09_004

特性:

  • 和为1

RK_09_005

  • 越好的排列,概率越高

RK_09_006

  • 求和

RK_09_007

ListNet:

提出者:

Cao et al.

原理简述:

用Luce-Plackett model计算不同排列的概率分布,或者说top k个文档的概率分布。

用KL divergence作为loss function测量学到的ranking list和标准ranking list的概率分布差异情况,差异越小越好。

用神经网络作为训练模型进行训练。

图示:

RK_09_008

g是标准函数,输入一个q的特征x,可以得到y值

通过LPM概率公式,可以求的每个排列的概率,各种排列在一起可以构成一个概率分布,我们目标就是找到一个f函数,使得f(x)得到的y,然后用LPM概率公式计算出来的概率,构成的概率分布额g得到的概率分布类似,则我们就找到了最优的f函数

算法:

Top K 概率:

RK_09_009

ListNet KL Divergence Loss Function:

RK_09_010

ListMLE:

提出者:

Xia et al.

原理简述:

和ListNet主要不同在于Loss Function,采用Maximum Likelihood Estimation作为loss function

算法:

RK_09_011

AdaRank:

提出者:

Xu & Li

原理简述:

基于Boosting技术直接优化loss函数

算法:

RK_09_012

SVM MAP:

提出者:

Yue et al.

原理简述:

基于MAP,结合SVM算法直接优化loss函数

SoftRank:

提出者:

Taylor et al.

原理简述:

找到个近似评估函数比如NDCG,直接优化loss函数

算法:

RK_09_013

RK_09_014