ListNet和ListMLE

背景

ListNet和ListMLE都是listwise的排序方法

 

ListNet

ListNet用如下公式表示一种排列的概率:

举个例子:

假设有3个doc <doc1, doc2, doc3>,对应的score为 <s1, s2, s3>,那么对于这样一种排列 <s2, s3, s1>,其概率为:

这样,得到排列的概率分布后,我们就可以用交叉熵来计算loss了:

 可以看出LIstNet的计算一个query时间复杂度为n!,非常高。再实践中只会计算top k文档排列概率,时间复杂度降为n!/(n-k)!

 

ListMLE

ListMLE和ListNet的主要不同点在与,ListMLE采用了最大似然估计来计算损失,ListMLE的loss可以表示为:

 

参考资料

Learning to Rank: From Pairwise Approach to Listwise Approach

Listwise Approach to Learning to Rank - Theory and Algorithm

 

posted @ 2023-05-16 20:50  xd_xumaomao  阅读(335)  评论(2编辑  收藏  举报