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》
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏