TransFM:基于因子分解机的序列推荐方法

概述

今天解读的论文是由 Rajiv Pasricha 和 Julian McAuley 两位大佬提出的发表在 RecSys18 上的,是 TransRec 和 FM 的结合版本。论文下载地址:

https://cseweb.ucsd.edu/~jmcauley/pdfs/recsys18a.pdf

在下面会简单介绍 TransRec 和 FM。

对于电商网站(如亚马逊),媒体网站(如 Netflix,Youtube)等而言,推荐系统是其中至关重要的一环。传统的推荐方法尝试对用户和物品的全局交互进行建模。例如矩阵分解和其派生模型,虽然能够有效的捕获到用户的偏好,但是未考虑到时序特征,其忽略了用户的最近交互行为,提供了一个静态的推荐列表。

序列推荐的目的是基于用户的历史行为序列去预测用户将来的行为。Julian McAuley 作为主要作者的另一篇论文 ( Translation-based Recommendation ) 提出了“翻译”空间的概念,将物品作为一个点嵌入到“翻译”空间内,用户的序列行为则作为一个翻译向量存在于该空间,然后通过距离计算便根据用户 u 的当前行为物品 i,预测其接下来可能有行为的物品,具体可参考:

序列推荐模型 TransRec

TransRec 的主要思路如下图所示:

640?wx_fmt=png

本论文中提出了 TransFM,其结合了 FM 和 TransRec 的思想,将其应用在序列推荐中,这样做的好处是使用简单的模型对复杂的交互之间进行建模并能取得不错的效果。

FM 能够对任意的实值特征向量进行操作,并通过参数分解对特征之间的高阶交互进行建模。他可以应用在一般的预测任务里,并可以通过特征替换,取代常见的推荐算法模型。

TransFM 的主要思路如下图所示:

640?wx_fmt=png

TransFM 是对所有观察到的行为之间可能的交互进行建模,对于每一个特征 i,模型学习到两部分:一个低维的 embedding 向量 640?wx_fmt=jpeg 和一个翻译向量 640?wx_fmt=jpeg 特征之间的交互强度使用平方欧几里德距离来进行计算,在上图中,展示了 user,item,time 的 embedding 特征和翻译向量,交互行为之间的权重由起始点和结束点之间的平方欧几里德距离进行计算。与 FM 一样,TransFM 可以在参数和特征纬度的线性时间内进行计算,从而有效的实现大规模数据集的计算。

相关研究

1. 序列推荐

已经存在了许多基于 MC ( 马尔可夫链,Markov Chains ) 的序列推荐模型,比如 FPMC ( Factorized Personalized Markov Chains ),使用独立分解矩阵对三阶交互行为进行分解,继而来模拟成对的相互作用。PRME 使用欧几里德距离替换内积对用户-物品之间的交互行为进行建模。TransRec 同样也是一个序列推荐模型,通过共享物品的 embedding 向量空间,将用户行为转化为翻译向量,其计算公式如下:

640?wx_fmt=jpeg

这些对于给定的用户历史行为序列十分有效,但是在不改变模型结构的前提下,并不能捕获时间,地理和其他的上下文特征。

2. 因子分解机

FM 对于任意的机器学习任务来讲是一个通用的学习框架,他模型任意任意特征之间的二阶交互,并很容易扩展到更高阶,每个特征的交互通过参数之间的内积来权衡。其公式如下 ( 这里讨论的是 FM 的二阶形式 ):

640?wx_fmt=jpeg

通过选择合适的损失函数,FM 可以应用在任意的分类,回归或者排序任务中,在这篇文章里主要是针对隐式反馈结合 BPR 算法框架去优化预测的结果。

3. 混合推荐

混合推荐结合了协同和 conetnt-based,目的在于提升效果并且为行为很较少的用户提供有效的选择,在一定程度上缓解了用户冷启动。这里可以利用的潜在的信息包括:时间特征,地理特征,社交特征等。最近的一些关于混合推荐的工作结合了图像特征,或者是使用深度学习自动生成有用的内容特征。

虽然这些方法都取得了不错的表现,但依赖于专门的模型和技术。相比之间,论文里提出的 TransFM 是一种更广义的办法,可以对任意的特征向量和预测任务进行操作,通过适当的特征工程,TransFM 模型可以结合时间,地理,人口统计和其他内容特征,而无需更改模型本身结构。

TransFM 模型

1. 问题定义

640?wx_fmt=jpeg

TransFM 使用平方欧几里德距离替换 FM 中的内积计算,并用 embedding 向量和翻译向量之和表示特征 v_i 的向量,其公式如下:

640?wx_fmt=jpeg

其中距离计算方式为:

640?wx_fmt=jpeg

使用平方欧几里德距离替换内积的好处是:提高模型的泛化能力,更有效的捕获 embedding 之间的传递性。比如 (a,b),(b,c) 之间有很高的交互权重,那么 (a,c) 之间的相关性也会更强。

下图展示了 TransFM 和其他几种算法的预测方法,从中可以看出 PRME 学习的是两个用户的 embedding 向量之间的距离,FM 学习的是任意特征与相应参数之间的内积,TransRec 学习的是物品的 embedding 向量和用户行为的翻译序列,TransFM 学习的是每个特征的 embedding 向量和翻译向量,使用平方欧几里德距离去度量特征之间的交互。

640?wx_fmt=jpeg

2. 模型计算

FM 是可以将计算复杂度降低到 nk 的,同样 TransFM 也可以降低其计算负责度。首先:

640?wx_fmt=jpeg

其次进行化简得:

640?wx_fmt=jpeg

上面的第一个总和可以分成六个单独项,每一项又可以继续进行化简:

640?wx_fmt=jpeg

假设输入的特征是 n 维,隐向量长度为 k,那么时间复杂度就是 O(nk),而不是 O(n^2k)。

3. 参数优化

模型使用 S-BPR ( Sequential Bayesian Personalized Ranking ) 进行优化,其优化方式如下:

640?wx_fmt=jpeg

其中 Ω(Θ) 为 L2 正则。

4. 实践和推断

作者等人在 TensorFlow 中对 TransFM 进行了实现,用的是 mini-batch gradient descent 和 Adam 进行模型的训练 ( adam 对于有大量参数且稀疏的数据集上表现良好)。

作者这里也把代码进行了开源,包括数据集,已经不同算法实现实现对比,其地址为:

https://github.com/rpasricha/TransFM

实验

作者结合了一些算法在亚马逊和谷歌数据集上进行测试,其中评价的指标是 AUC,效果如下:

640?wx_fmt=jpeg

640?wx_fmt=jpeg

上边的 Table 3 是指从 Amazon 选取 top5 品类 ,从 Google Local 中选取6个城市作为实验依据。

FM 模型和其他模型的融合

PRME ( Personalized Ranking Metric Embedding )

640?wx_fmt=jpeg

和 TransFM 对比的不同在于 TransFM 中 i 的向量是 embedding 向量和 translation 向量和,而这里没有 translation 向量。实时证明 TransFM 效果要好很多。

HRM ( Hierarchical Representation Model )

640?wx_fmt=jpeg

对比的实验结果如下:

640?wx_fmt=jpeg

我的总结

1. TransFM 结合了 TransRec 和 FM 和优势,在大量,稀疏的数据集上取得了不错的效果。

2. 在参数和特征纬度下,计算时间线性增大(nk)。

3. 改变 FM 中的内积计算方式,使用平方欧几里德距离,提高了模型的泛化能力,和样本特征之间的传递性。

4. 在不改变模型结构的前提下,可以轻易将时间,地域或者其他内容特征加入到模型中。

5. 数据集拆分时避免了从整体数据集中的随机拆分,而是按照时间先后的顺序进行拆分。保证了一定的时间连续性,很多论文中划分训练集和测试集时都是这样做的,在工业界中模型的训练和评估大部分也是这样做的。

6. 根据经验将参数限定在一个范围内,根据网格搜索法寻找最佳参数。

7. 实验对比的丰富性,使结论更具有说服力。

附:最近推出了推荐系统系列教程,已推出九期,没看过的朋友们可以点历史消息或点击下面的链接查看。本系列教程全部免费,希望大家每期都不要落下,这样可成体系,也希望各位粉丝朋友多多转发,并在看完后点个“在看”,以示鼓励。

640?wx_fmt=png

「 更多干货,更多收获 」

640?wx_fmt=gif

推荐系统教程之九:解密“看了又看”和“买了又买”(Item-Based)

每天超50亿推广流量、3亿商品展现,阿里妈妈的推荐技术有多牛?

互联网人职业发展之路:三年升高工,七年做架构,十年送外卖

个性化推荐之用户画像

2.5亿用户的美团智能推荐系统是如何构建的?

推荐系统召回四模型之:全能的FM模型

一名女大学生的反思:深度揭露大学最露骨生活!

全面揭秘快手和抖音的内容推荐算法

今日头条推荐系统原理

feed流设计:那些谋杀你时间的APP

如何搭建一套个性化推荐系统

从零开始搭建创业公司后台技术栈

关注我们

智能推荐

个性化推荐技术与产品社区

长按并识别关注

640?wx_fmt=png

一个「在看」,一段时光!?

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值