LTR(Learning to Rank)小结

预知

这篇文章能被您看到令我很开心,但有些话我必须提前告知您,以免浪费您的时间。

这仅仅是本人的学习笔记,非常粗浅和凌乱,不深入浅出,也不确定未来是否还会对其继续更新。此文仅适合您用来速览或消磨时间,内容大体上适合顺序阅读,如有必要,欢迎您联系我交流。

正文

LTR在信息检索领域使用很多,往往将它定性为判别式模型,被认为更加现代与激进,一般而言有三种方法:

  • 单文档方法(Pointwise)
  • 文档对方法(Pairwise)
  • 文档列表方法(Listwise)

LTR的应用场景很有趣,数据也并非人工进行标注的,在开始三种方法之前,先谈谈这些。

LTR训练数据的获取

搜索引擎可以通过用户点击查询对应的文档来获取训练数据,经验上认为用户会优先点击用户想查找的结果,而这些结果往往是与查询非常相关的。你可以认为这个思路不是百分百严谨的,但是效果不错。 一般典型的数据集如下:

Pointwise

查询+文档共同抽离为特征向量,即上一节图中的任一行都可以是一个训练样本。有特征向量,有标签,这就是一个多分类问题。

当模型训练完毕后,给定新的查询与文档,此模型进行打分。得到一个数值,再根据这个数值对文档进行排序。

缺点

  1. 输入为单个文档与对应查询构成的特征向量,输出为相应的相关度。当一个查询有许多相关文档时,毕竟是个多分类,类别数量是有上限的,同一类之间无法排序,而搜素引擎返回的第一页非常重要。

Pairwise

首先调整训练数据,输入为一个查询与对应的两个具有不同标签的文档,现在不能继续使用之前的标签了,定义新的标签:

  • 如果标签i>标签j,则新的标签为+1,表示查询与查询对应的文档i相关性大于文档j的。
  • 反之类似,新标签为-1

留意到训练数据中一个查询往往有多个文档对应,就将任意两个不同标签的文档加对应查询构成输入训练样本,标签则按照上面提到的规则设置,现在可以开始训练了。 在训练完成后,输入一对文档,如果A与查询更加相关,则为1。将测试文档(候选文档,LTR仅仅是排序算法)输入,会得到一组偏序关系从而构成整体的排序。

比如一个查询对应有三个不同标签的文档,我们暂且命名为a,b,c,全排列并送入训练好的模型,为ab(1),ba(-1),ac(1),ca(-1),cb(1),bc(-1),括号里为预测后的分类。我们可以从所有分类为1的组合中找出文档排列顺序:acb。

缺点

Pairwise算法将更多的精力放在寻找全排列的文档对以及训练分类模型上,复杂度非常高,Listwise解决了这个问题。

Listwise

这种方法不再将查询问题变成分类或者回归问题。给定查询与对应的有序文档集合,使用专门设计的损失函数度量出测试集的文档排序与训练集的文档排序(最优排序)之间的差值。

在训练过中,给定一个查询和与之相关联的文档集,我们把整个文档集的函数打分和人工打分转换成概率分布然后计算差值,利用梯度下降估计出打分函数的最优参数(优化的过程),然后用测试集提高泛化能力。

更多

  • LTR是监督式学习,是排序方法,并不是凭空生成新文档。
  • 应用:用于IR中排序返回的文档,推荐系统中的候选产品排序,翻译候选结果排序。
  • 归纳训练过程:对于特定的标注训练集,选定LTR方法,确定损失函数,对损失函数做最小化求得排序模型的相关参数。

以上。

转载于:https://juejin.im/post/5b7e83d96fb9a01a0158011c

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值