31

推荐技术系列04:利用社交关系的隐式矩阵分解原理和实践

 4 years ago
source link: http://bourneli.github.io/recommendation/imf/sns/2019/11/16/recommend04-sns-imf.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

问题背景

本文主要介绍一种融合社交关系的隐式矩阵分解的方法,在物品推荐时,融合关系链可以进一步提升推荐效果。 物以类聚,人以群分 ,此现象启发了笔者在此方向做尝试,举几个例子:

  1. 好友给你推荐了几本书,你会发现有一种相见恨晚的感觉
  2. 你可能和你的朋友喜欢相同的一款奈雪果茶
  3. 坐了你朋友的车后,你也买了同样的车型。

基于这些现象,笔者总结一个基本假设:朋友之间有相同的特质,这种特质使得我们成为好友的可能性变大,同时也控制着我们对物品的喜好。通过关系链,将朋友交互过的物品传递给用户,应该可以提升推荐效果。

恰好笔者的工作环境中有大量的关系链数据,并且之前笔者研究过隐式矩阵分解(IMF)推荐技术,并且在实践中大规模的应用该方法,该方法在大部分场景上取得了不错的效果。IMF的主要优势是仅需用户物品的隐式交互数据(如购买次数,使用次数,消耗时长等)即可快速上线,无需大量特征工程,并且可以使用廉价CPU进行大规模并行计算(SPARK),轻松处理上亿数据。所以,希望能够在保留这些特性的基础上充分利用关系链,达到一举两得的效果。

IMF算法本质上可以抽象为,

若在此算法基础上融合关系链,新的算法可以抽象为,

下面介绍算法具体如何实现。

算法推导

经过对原始IMF的算法原理分析后,有两种可能的改进思路:

  1. 社交关系融入目标函数
  2. 社交关系融入Confidence,详细定义参考我的博客

方向1:社交关系融入目标函数

目标函数的修改如下

IMF算法的符号与这里保持一致。引入的新符号如下,

  • $n(u)$ 表示用户u的好友
  • $s(x_u, x_v)$ 表示用户u和v的关系权重
  • $\beta$ 表示用户偏好和好友偏好的权重,介于0-1之间

虽然公式(1)考虑的好友的关系,但是这个算法计算复杂度非常高,无法利用现有IMF的优化方法在线性时间内完成计算,所以无法支撑大规模工业级别计算,故放弃此方向。

方向2:社交关系融入Confidence

首先回忆IMF中Confidence的计算过程,

(2)或(3)均可,根据实际效果显示,(3)的离线效果往往较好。 $r_{ui}$ 是用于u和物品i的交互,如果将该值考虑关系,那么可以仍然利用现有IMF的实现,即可融合关系数据,如下

其中$\delta$是衰减系数,控制关系传递的confidence的显著程度。

$s(x_u, x_v)$最简单的方法是好友权重相同,即$s(x_u, x_v)=1$。但是,有些社交关系带权重,此时可以直接利用这些权重,即$s(x_u, x_v) = w_{uv}$。如果希望利用社交关系链本身的特征,并且关系链没有显示的权重,可以通过我们团队林博研发的 Personalized PageRank 算法计算出隐式的关系权重(该算法可以高效处理上百亿的关系链),即$s(x_u, x_v) = PPR(u,v)$。

此方法对原有IMF的计算框架无任何修改,保留了IMF的所有优点,仅需要在“特征”上将社交关系融如其中。笔者使用此方法分别进行了离线实验和线上验证,取得了不错的效果。

实验效果

离线和在线实验均是在一个实际推荐场景中进行,该场景是一个大型多人在线角色扮演游戏(MMORPG)中的商城推荐,推荐列表定期刷新。该场景关系链数据没有权重,所以使用等权重,对比算法是原始IMF,离线AUC平均相对提升$7.18\%$。离线数据显示改进后的算法明显优于原始算法,所以将离线算法推到线上验证,算法上线时添加了基于PPR的隐式关系链权重,以期望得到更好的效果,线上算法效果如下,

%5Cimg%5Cimf_evaluation.png

评估指标是平均曝光购买金额(曝光ARPU),笔者对绝对值做了脱敏处理,但是不影响算法效果对比。数据显示,无论是等权重社交关系,或是PPR计算的社交权重,融合了IMF后,均相比原始IMF有明显的提升。经过实践,此方法确实在此场景上有显著效果,但是该方法是否具有普适性,今后需要在更多场景下进行验证。

参考资料


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK