Learning2Rank 学习

总览

Learning to Rank: pointwise 、 pairwise 、 listwise

  • PointWise:有时候排序的先后顺序是很重要的,而PointWise方法学习到全局的相关性,并不对先后顺序的优劣做惩罚
  • PairWise:文档对方法将排序问题转化为多个pair的排序问题,比较不同文章的先后顺序。
    • 文档对方法考虑了两个文档对的相对先后顺序,却没有考虑文档出现在搜索列表中的位置,排在搜索结果前面的文档更为重要,如果靠前的文档出现判断错误,代价明显高于排在后面的文档。
    • 同时不同的査询,其相关文档数量差异很大,所以转换为文档对之后, 有的查询对能有几百个对应的文档对,而有的查询只有十几个对应的文档对,这对机器学习系统的效果评价造成困难
  • ListWise:ListWise方法直接考虑整体序列,针对Ranking评价指标进行优化。比如常用的MAP, NDCG

BPR

贝叶斯个性化排序(BPR)算法小结

用tensorflow学习贝叶斯个性化排序(BPR)

李航 - A Short Introduction to Learning to Rank

Bayesian Personalized Ranking from Implicit Feedback

在这里插入图片描述

用简洁的语言讲清楚BPR:

  • 每个用户之间的偏好行为相互独立
    • 用户 u u u在商品 i i i j j j之间的偏好和其他用户无关。
  • 同一用户对不同物品的偏序相互独立,也就是用户 u u u在商品 i i i j j j之间的偏好和其他的商品无关。
  • 用户矩阵 W W W,物品矩阵 H H H
  • 计算出每一个用户u对应的任意一个商品的排序分: x ˉ u i = w u ⋅ h i \bar{x}_{u i}=w_{u} \cdot h_{i} xˉui=wuhi,最终选择排序分最高的若干商品输出。

一句话:样本是u,i,j,目标函数是 − σ ( u ⋅ i − u ⋅ j ) + λ ( ∣ ∣ u ∣ ∣ 2 2 + ∣ ∣ i ∣ ∣ 2 2 + ∣ ∣ j ∣ ∣ 2 2 ) -\sigma(u\cdot i-u\cdot j)+\lambda (||u||_2^2+||i||_2^2+||j||_2^2) σ(uiuj)+λ(u22+i22+j22)

funkSVD只需要用户物品对应评分数据二元组做训练集,而BPR则需要用户对商品的喜好排序三元组做训练集。

LambdaRank

Ranking算法评测指标之 CG、DCG、NDCG

LTR排序算法LambdaRank原理详解

pdf - Learning to Rank with Nonsmooth Cost Functions

猜你喜欢

转载自blog.csdn.net/TQCAI666/article/details/115206621