[神盾推荐系统]在手Q动漫Feeds流推荐实现PRFM算法

作者:徐匆,黄俊|腾讯社交网络运营部高级研究员

腾讯神盾开放通用推荐系统一般将推荐问题转化为分类问题,而对于列表推荐场景,推荐问题更近似于排序问题。本文将介绍排序学习技术与推荐算法结合的Pairwise方法及其具体实现 – Pairwise Ranking Factorization Machines (PRFM) 算法,并分享PRFM算法在手Q动漫Feeds流推荐场景的应用,供想在其他场景应用此算法的同学参考。

1. 概述

目前神盾推荐中的算法一般将推荐问题形式化为二元分类问题:以动漫推荐为例,如下图所示,对于用户与他所曝光的物品集合,把点击看作正样本 (标签=1),未点击看作负样本 (标签=0),可以构造由<用户,物品>与标签构成的训练样本,用于训练一个二分类模型

这种方法称为Pointwise方法,即模型在参数训练阶段只考虑对每个<用户,物品>独立的打分,目标是使得所有正样本的打分高于负样本的打分。如上图的例子所示,Pointwise方法的训练目标是:模型给<小蓝,狐妖小红>,<小蓝,浪客剑心>,<小黄,龙珠>的打分都高于<小蓝,妖神记>,<小黄,名侦探柯南>。

 仔细思考不难发现Pointwise方法的缺点,比如对小黄来说,只需要模型给<小黄,龙珠>的打分高于<小黄,名侦探柯南>即可,至于<小黄,龙珠>的打分是不是高于<小蓝,妖神记>并不重要。抽象来说就是:Pointwise方法没有考虑对同一个用户而言物品与物品之间的排序关系。

本文介绍的Pairwise方法对Pairwise方法的不足做了改进,训练样本由<用户,物品1,物品2>三元组构成,其中物品1为此用户点击了的物品,物品2为此用户未点击的物品。Pairwise方法侧重于判断物品对<物品1,物品2>是否满足顺序关系 (即<用户,物品1>的打分是否高于<用户,物品2>)。如下图所示,Pairwise方法在模型训练阶段的目标是:<小蓝,狐妖小红娘>打分高于<小蓝,妖神记>,<小蓝,浪客剑心>打分高于<小蓝,妖神记>,<小黄,龙珠>打分高于<小黄,名侦探柯南>。

另一方面,在Pointwise方法的样本构造中,我们简单地将点击看作正样本、未点击看作负样本,等于给Pointwise方法加了一个假设:用户点击的物品是用户明确喜欢的,未点击的物品是用户明确不喜欢的。事实上,点击行为属于隐式反馈,这个假设显得过于强烈。而Pairwise方法的假设更符合实际:相对于用户未点击的物品,用户更喜欢那些他点击了的物品。

Pairwise方法作为排序学习 (learning to rank) 技术与推荐系统算法的结合,近年来得到了学术界与工业界的密切关注与研究。本文介绍的Pairwise Ranking Factorization Machines (PRFM) 算法是Pairwise方法的一种具体实现,我们在神盾推荐中实现了PRFM算法,并应用在手Q动漫首页Feeds流推荐场景。与Pointwise FM算法对比,使用同样的特征,PRFM算法在uv点击率上获得了大约5%的相对提升

其中

为需要训练的参数。参数训练中用到的损失函数定义为:

3. 排序算法离线评价指标与参数调优

与分类问题使用AUC作为评价指标不同,用于衡量排序性能的常用评价指标主要有Precision at k, MAP (mean average precision), 与NDCG (normalized discounted cumulative gain) at k。下面我们通过一个例子简单介绍这几个指标的定义与计算方法 (如下图所示的曝光物品列表中,绿色代表用户有点击的物品,灰色代表用户未点击的物品)。

Precision at k: (Prec@k)

用户有点击的物品在列表的前k个物品中的比例,值越大表示推荐质量越高。如上图的例子中,列表(a)的Prec@5 = 2 / 5 = 0.4,列表(b)的Prec@5 = 1 / 5 = 0.2。对每个用户可以计算一个Precision at k,对所有用户取平均即得到用户集合的Precision at k。

MAP (mean average precision):

可以看成Precision at k的加强版,把用户有点击的物品在列表中出现的位置加入指标的计算中,值越大表示推荐质量越高。AP (average precision) 指在每个用户有点击的物品所在位置k求一次Precision at k,然后求平均。如列表(a)的AP=(1/2+2/4)/2=0.5,列表(b)的AP=(1/4+2/7)/2=0.268,由此可见,从Precision at 10的角度看,列表(a)与(b)没有优劣之分,但从AP的角度看,列表(a)优于列表(b)。同样地对每个用户可以计算一个AP,对所有用户取平均即得到用户集合的MAP。

NDCG (Normalized Discounted Cumulative Gain) at k: (NDCG@k)

NDCG at k的计算较为复杂,不在这里详细介绍,感兴趣的同学可以参考NDCG的计算。简单来说,在NDCG的计算中,用户有点击的物品在列表中出现得越靠前被认为越有价值,与MAP的思路一致。

了解算法的离线评价指标后,我们可以对其进行参数调优。与Pointwise FM算法相同,PRFM算法可以调优的参数有:模型参数初始化时使用的正态分布标准差(init_std)、正则化系数(reg)、隐向量维度(factor)。下图展示了在手Q动漫Feeds流上的调优示例,根据调优结果我们决定使用的参数为:init_std=0.005,reg=0.0001,factor=100。

注:橙色框表示调整的参数,绿色框表示各指标的最大值

4. 算法改进计划

上文中提到,PRFM算法的样本构造方法是对每个用户随机选取100个<物品1,物品2>的物品对,但有研究表明,使用不同的抽样策略可以提升模型效果 (见参考资料1)。例如:对每个用户,将物品对<物品1,物品2>按物品1与物品2在曝光列表中出现的位置之差从大到小排序,取排在前面的100个。此抽样策略的思路是:物品1与物品2在曝光列表中出现的位置之差越大,表示在这个物品对中,相对用户未点击的物品,用户有点击的物品排得越靠后,即<物品1,物品2>的在列表中顺序关系错误,模型更需要在这些物品对上进行训练。后续我们将在神盾推荐中尝试各种不同的抽样策略,再把经验分享给大家,欢迎感兴趣的同学与我们一起探索!

参考资料

  1. PRFM论文 (http://wnzhang.net/papers/lambdafm.pdf)
  2. 排序评价指标 (https://spark.apache.org/docs/2.2.0/mllib-evaluation-metrics.html)
本站文章资源均来源自网络,除非特别声明,否则均不代表站方观点,并仅供查阅,不作为任何参考依据!
如有侵权请及时跟我们联系,本站将及时删除!
如遇版权问题,请查看 本站版权声明
THE END
分享
二维码
海报
[神盾推荐系统]在手Q动漫Feeds流推荐实现PRFM算法
本文将介绍排序学习技术与推荐算法结合的 Pairwise 方法及其具体实现。
<<上一篇
下一篇>>