Learn To Rank
在信息检索中,给定一个query,搜索引擎召回一系列相关的Documents,然后对这些Documents进行排序,最后将Top N的Documents输出。
排序问题最关注的是各Documents之间的相对顺序关系,而不是各个Documents的预测分最准确。
训练数据
方法 | 人工标注 | 行为日志 |
---|---|---|
简介 | 人工对抽样出来作为training data的query-doc pair进行相关程度的判断和标注 | 根据用户的实际搜索和点击行为,来判断query-doc的相关性。比如同一个query下,不同doc的点击数来作为它们相关程度的大小 |
优点 | 准确性高 | 无须人工干预,成本低 |
缺点 | 代价高且耗时 | 用户行为日志存在大量偏差,比如: |
评价指标
这里主要介绍NDCG
三大rank算法
pointwise
pointwise方法损失函数计算只与单个document有关,本质上是训练一个分类模型或者回归模型,判断这个document与当前的这个query相关程度,最后的排序结果就是从模型对这些document的预测分值进行一个排序。
- 优点:实现简单
- 缺点:
- 精确打分,而不是相对打分,无法实现排序
- 损失函数也没有建模到预测排序中的位置信息
pairwise
pairwise方法在计算目标损失函数的时候,每一次需要基于一个pair的document的预测结果进行损失函数的计算。其中模型输入和对应的标签label形式如下:
- 输入:一个文档对(docA, docB)
输出:相对序(1 or 0.5 or 0)
优点:实现简单;建模了两个文档相对序关系
- 缺点
- 样本对量级高,$O(n^2)$
- 对错误标注数据敏感,会造成多个pair对错误
- 仅考虑了文档对pair的相对位置,仍然没有建模到预测排序中的位置信息
经典模型RankNet
listwise
Listwise方法是直接对整个list的document的排序进行优化,目标损失函数中优化整个list的document的排序结果。其中模型输入和对应的标签label形式如下:
- 输入: 整个list document
输出: 排序好的document list
优点:直接建模list内的所有文档序关系,与评估目标一致
- 缺点
- 计算复杂度高
经典模型ListMLE
直接以真实标签顺序为目标,最大化预测结果排序与目标一致的概率即可。