Learning2Rank-lambda loss解读(1)

本文探讨了Learning2Rank的概念及其在排序问题中的应用,包括point-wise、pair-wise和list-wise方法。重点解析了LambdaLoss,介绍了LambdaRank的NDCG表征和LambdaLoss框架,讨论了排序中遇到的问题,如损失形式和优化目标。文章指出LambdaRank的梯度放缩策略,并展望了后续将要讲解的Lambda Loss的似然拆分和矩阵驱动的损失函数。
摘要由CSDN通过智能技术生成

先说点废话,上次写博客还是一年前换工作的时候,自从转行做了算法,学到了很多有趣的东西,是该好好记录一下了。
本来打算在Github上建个博客,说真的Hexo还真是好用,但是公司电脑不能上传基佬hub,东西就先写到CSDN吧,等以后有了自己的电脑再传过去。

废话就不说了,这次文章的主题是关于Learning Loss的。
在进入主题之前首先介绍一下什么是Learning2Rank

什么是Learning2rank

Learning2rank是用来解决排序问题的。排序是人们经常遇到的问题,对于简单的排序问题,人们会找到一个比较重要的因素,然后根据这个因素的大小对事物进行排列。
但是当问题变得复杂之后,例如

  1. 需要排序的数目变得很多
  2. 如何指定排序的标准

对于第一个问题,只需要计算资源足够大即可。但是第二个问题,需要我们从现有的数据中发现规律,找到影响排序先后的因素,于是引入了learning to rank,从已知资料的排序中找到影响排序的因素。

那么如何从数据中找到影响排序的因素呢?人们提出了排序的三种方法:

  1. point-wise:将问题转换为多分类模型或者回归模型,分类可以预测排序的评价指标(prefect,good,acceptable,bad),回归则可以回归文档的得分。但是对于ranking,我们并不需要每个资料的得分,只要知道资料的序列即可
  2. pair-wise:问题转化为有序的文档对,排序正确为good,排序错误为bad。这也是目前比较流行的做法。但是这种方法并不考虑网格文档在资料中的位置
  3. list-wise:将所有资料的列表作为训练样本,通过学习评分函数,对文档打分。由于对于不同评分函数,得到特定排序列表的概率也是不同的。通过类似似然的方法,可以找出最合适的打分。

Leaning2Rank的算法模型可以参考这一篇论文《From ranknet to lambdarank to lambdamart: An overview》。
文中介绍了如何加速RankNet的训练,融合NDCG指标的LambdaRank,以及LambdaRank的Mart版本,也就是LambdaMart。论文写的很好,建议大家可以看看。

Learning2Rank评测

对于信息检索问题有很多评价指标,如MRR,ARP,NDCG等等,这些指标具体是什么意思,网络上资源很多,这里就不叙述了。
这里需要注意的是,对接对Learning2rank的梯度进行求导,并不能合理的优化它的评价指标。而Learning2rank的评价指标大多是不可导的,为了解决这个问题引入了LambdaRank。然而LambdaRank缺乏必要的理论依据,因此Xuanhui Wang在《The LambdaLoss Framework for Ranking Metric Optimization》中提出了Lambda loss framework,并推导出LambdaRank其实是LambdaLoss的特殊形式,基于LambdaLossFramewor可以使我们自定义很多由评测指标驱动的损失函数。下面的内容都是基于这一篇论文展开的。

LambdaLoss

Lambda Loss的解读分为如下几个方面

  1. 排序中会遇到的问题
  2. LambdaLoss Framework解读
  3. 由评测指标驱动的损失函数的定义

1. 排序中会遇到的问题

1.1 损失的形式

Learning2rank的核心问题是对文档进行打分,即
s = Φ ( x ) s = \Phi(x) s=Φ(x)
其中s为文档的得分,x为文档的特征。通过不同形式 Φ \Phi Φ的定义,我们可以得到不同的模型。
Φ \Phi Φ为线性模型 --> RankSVM
Φ \Phi Φ为树模型 --> LambdaMart
Φ \Phi Φ为神经网络 --> RankNet
令T为文档的集合,y为文档的label,定义模型的损失为
L ( Φ ) = 1 ∣ T ∣ ∑ ( x , y ) ∈ T l ( y , Φ ( x ) ) L(\Phi) = \frac{1}{\left|T\right|} \sum_{(x,y)\in T} l(y,\Phi(x)) L(Φ)=T1(x,y)Tl(y,Φ(x))
注意这里同时使用labe和得分作为损失的构成,learning2rank要做的事就是找到最合适的 Φ \Phi Φ来最小化这个损失。
如果 Φ \Phi Φ是平方损失,那么问题可以转化为类似point-wise的损失。
l ( y , s ) = ∑ i = 1 n ( y i − s i ) 2 l(y,s) = \sum_{i=1} ^{n}(y_i - s_i)^2 l(y,s)=i=1n(yi

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值