【推荐算法】排序学习

传统的检索模型靠人工来拟合排序公式,并通过不断地实验确定最佳的参数组合,以此构成相关性打分函数。机器学习排序与传统的检索模型不同,可通过机器学习获得最合理的排序公式,而人只需要给机器学习提供训练数据。

可以将机器学习排序方法分为以下三种:

  • 单文档方法(Pointwise): 处理对象是单一文档,将文档转化成特征向量后,将排序问题转化为机器学习中常规的分类或回归问题。CTR方法是单文档方法的典型应用,相对比较成熟,广泛用于广告、搜索、推荐中。CTR方法的数学表达式: y = f ( x ) y=f(x) y=f(x),其中y的范围为[0,1],y的值越大表示拥护点击率越高。
  • 文档对方法(Pairwise):相比于单文档方法算法,文档对方法将重点转向文档顺序关系,是目前相对比较流行的方法。其输入是文档对,输出是局部的优先顺序,主要是将排序问题归结为二元分类问题。对于同一query的相关文档集中,任何两个不同标记的文档都可以得到一个训练实例 ( d i , d j ) (d_i,d_j) (di,dj),如果 d i > d j d_i>d_j di>dj,则赋值+1,反之为-1。于是我们就得到了二元分类器所需要的训练样本,预测时可以得到所有文档的一个偏序关系,从而实现排序。
  • 文档列表方法(Listwise):与上述两种方法不同,其将每个查询对应的所有搜索结果列表作为一个训练样例。根据训练样例训练得到最优评分函数F,评分函数F对每个文档打分,然后根据得分由高到低排序,得到最终的排序结果。这种方法的输入是文档集合,输出是排好顺序的列表。

三者之间的区别在于训练数据之间的关系对预测目标的影响不同。单文档排序算法是点点之间排序,训练数据之间的关系与最终排序无关。换句话说,样本经过模型训练形成的是一种评分方式,而所有样本按照评分结果由大到小排序即可。模型生成后,每个样本的输出结果是固定的、静态的、不会发生变化。

而对于文档对排序方法,输入的是文档对,比如有三个文档D1、D2、D3,排序为D1>D2>D3,那么输入应该是<D1,D2>, <D2,D3>, <D3,D1>,对应的训练目标是“文档1是否应该排在文档2的前面”。这种方法在模型构造上与大部分单文档方法可以公用原始模型,好处在于模型训练出来的是对应文档组的排序关系,在复杂、高维度、不易解析的情况下,有时会比单文档方法的排序结果更接近真实值。但是其缺点也很明显,其中一个缺点是由于模型输出的两个文档之间有排序先后关系,如果靠前的位置出现错误,那么对于整体排序的影响是远远大于单文档方法。另一个缺点是模型较难对输出结果进行评价且训练困难,由于不同情况下文档之间的关系多种多样,而且不同情况下,不同的输入对训练产生的影响不同,因此很难对模型整体输出结果做出评价。同时,文档对方法一方面增加了标注的难度,另一方面增加了训练的时间。

文档列表方法与前两者都不同,其考虑的是模型整体的排序结果,输入是一个文档列表,且每一个文档的对应位置都已经锁定。例如,锁定是[D1,D2,D3],那么该方法认为单次样本的输入中,排序为D1>D2>D3。该方法的代表模型有Lamda Rank、Ada Rank等。得益于NDCG等新的评价方式,文档列表排序在模型的训练过程中可以有效地迭代数据。而且由于输入的单个样本是一组标注好的序列,模型在迭代的过程中也更容易贴近用户需求。文档列表排序方法的缺点也有很多。首先,在理想情况下,其确实更容易保证模型的排序结果贴近用户需求,但是这需要更前期大量的标注工作或者说对于使用场景有着明显的限制。其次,由于独立样本复杂,模型的训练成本大于其他两种方法。

参考资料:

智能搜索和推荐系统 原理、算法与应用 机械工业出版社 刘宇、赵宏宇、刘书斌、孙明珠 著

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值