Learn To Rank

在信息检索中,给定一个query,搜索引擎召回一系列相关的Documents,然后对这些Documents进行排序,最后将Top N的Documents输出。

排序问题最关注的是各Documents之间的相对顺序关系,而不是各个Documents的预测分最准确。

训练数据

方法 人工标注 行为日志
简介 人工对抽样出来作为training data的query-doc pair进行相关程度的判断和标注 根据用户的实际搜索和点击行为,来判断query-doc的相关性。比如同一个query下,不同doc的点击数来作为它们相关程度的大小
优点 准确性高 无须人工干预,成本低
缺点 代价高且耗时 用户行为日志存在大量偏差,比如: * 位置偏差:用户倾向于点击列表靠前的item * 样本选择偏差:有用户点击的query知识总体query的一个子集,无法获取全部的query下doc的label

评价指标

这里主要介绍NDCG

三大rank算法

pointwise

pointwise方法损失函数计算只与单个document有关,本质上是训练一个分类模型或者回归模型,判断这个document与当前的这个query相关程度,最后的排序结果就是从模型对这些document的预测分值进行一个排序。

  • 优点:实现简单
  • 缺点:
    • 精确打分,而不是相对打分,无法实现排序
    • 损失函数也没有建模到预测排序中的位置信息

pairwise

pairwise方法在计算目标损失函数的时候,每一次需要基于一个pair的document的预测结果进行损失函数的计算。其中模型输入和对应的标签label形式如下:

  • 输入:一个文档对(docA, docB)

  • 输出:相对序(1 or 0.5 or 0)

  • 优点:实现简单;建模了两个文档相对序关系

  • 缺点

    • 样本对量级高, O ( n 2 ) O(n^2) O(n2)
    • 对错误标注数据敏感,会造成多个pair对错误
    • 仅考虑了文档对pair的相对位置,仍然没有建模到预测排序中的位置信息
经典模型RankNet

listwise

Listwise方法是直接对整个list的document的排序进行优化,目标损失函数中优化整个list的document的排序结果。其中模型输入和对应的标签label形式如下:

  • 输入: 整个list document

  • 输出: 排序好的document list

  • 优点:直接建模list内的所有文档序关系,与评估目标一致

  • 缺点

    • 计算复杂度高
经典模型ListMLE

直接以真实标签顺序为目标,最大化预测结果排序与目标一致的概率即可。


参考