概述

今天解读的论文是由 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 的主要思路如下图所示:

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

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

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

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

相关研究

1. 序列推荐

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

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

2. 因子分解机

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

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

3. 混合推荐

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

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

TransFM 模型

1. 问题定义

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

其中距离计算方式为:

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

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

2. 模型计算

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

其次进行化简得:

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

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

3. 参数优化

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

其中 Ω(Θ) 为 L2 正则。

4. 实践和推断

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

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

https://github.com/rpasricha/TransFM

实验

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

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

FM 模型和其他模型的融合

PRME ( Personalized Ranking Metric Embedding )

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

HRM ( Hierarchical Representation Model )

对比的实验结果如下:

我的总结

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

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

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

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

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

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

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

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

「 更多干货,更多收获 」

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

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

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

个性化推荐之用户画像

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

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

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

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

今日头条推荐系统原理

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

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

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

关注我们

智能推荐

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

长按并识别关注

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

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

  1. 基于时域表示的序列数据分类方法(一)——基于距离度量的序列数据分类方法

    基于时域表示的序列数据分类方法(一)--基于距离度量的序列数据分类方法 基于传统机器学习的序列数据分类算法主要分为两个步骤, 第一步是特征提取 第二步是利用分类器在特征空间中划分决策边界,判别序列数据 ...

  2. #Reading Paper# 【序列推荐综述】IJCAI‘19:Sequential Recommender Systems: Challenges, Progress and Prospects

    #论文题目:[序列推荐]Sequential Recommender Systems: Challenges, Progress and Prospects(序列推荐系统:挑战.进程和前景) #论文地 ...

  3. 推荐系统6——基于标签的推荐方法

    在之前我也看了很多人写的推荐系统的博客,理论的.算法的都有,多是个人的理解和感悟,虽然很深刻,但是对于自己而言还是不成系统,于是我参考大牛项亮编著的<推荐系统实践>将该领域知识系统整理一遍 ...

  4. 【推荐系统->论文阅读】Dynamic Graph Neural Networks for Sequential Recommendation(用于序列推荐的动态图神经网络)

    Dynamic Graph Neural Networks for Sequential Recommendation(用于序列推荐的动态图神经网络) Mengqi Zhang, Shu Wu,Mem ...

  5. WWW‘22 推荐系统论文之序列推荐篇

    专栏系列文章 - 知乎一.算法面经篇枫桦:深度学习算法工程师面经(微软.阿里.商汤.滴滴.华为.海康.平安.陌陌等offer)之上篇 枫桦:深度学习算法工程师面经(微软.阿里.商汤.滴滴.华为.海康. ...

  6. 【AI周报】首款高容错通用量子计算机原型登上Nature;SIGIR 2022 | 快手联合武汉大学提出序列推荐的多粒度神经模型

    01 # 行业大事件 首款高容错通用量子计算机原型登上Nature 理论上,量子计算机可以解决常规计算机在宇宙生命周期时间内也无法解决的问题.然而,我们需要大量的工程和技术才能将其「理论上」的能力兑现 ...

  7. 【毕业设计_课程设计】基于大数据个性化音乐推荐算法分析

    文章目录 0 前言 1 研究目的 2 研究方法 2.1 传统推荐算法 2.2 基于LightGBM决策树模型的推荐算法 3 研究结论 4 最后 0 前言 基于大数据个性化音乐推荐算法分析 提示:适合用 ...

  8. 基于Mahout实现协同过滤推荐算法的电影推荐系统

    1 Mahout介绍 Apache Mahout 是 Apache Software Foundation(ASF) 旗下的一个开源项目,提供一些可扩展的机器学习领域经典算法的实现,旨在帮助开发人员更 ...

  9. 基于大数据个性化音乐推荐算法分析(附代码github地址)

    github网址:https://github.com/ciecus/music_lgb_recommend_kkbox 欢迎fork我,和我讨论呀~ 摘  要:音乐推荐算法针对当今时代信息过载的问题 ...

最新文章

  1. noah的前端面试题(三)|掘金技术征文
  2. 厉害的组件_企业级React UI组件库——React Suite
  3. 终端下中文乱码解决方法
  4. OpenCV2:应用篇 QT+OpenCV实现图片编辑器
  5. 转,数组遍历的三种方式
  6. 高德地图API路径规划结果清除
  7. 1207.1——C语言 函数
  8. Addressable系统的加载资源API总结
  9. fpga驱动oled iic显示代码_Arduino提高篇02—OLED屏汉字显示
  10. scholarscope不显示影响因子_Cancer Cell | 冯嘉怡博士等揭示精氨酸甲基转移酶抑制剂可通过影响RNA剪接发挥抑癌效果...
  11. AndroidStuido连接不上手机的解决方法
  12. 联想y7000p安全锁孔怎么用_Y7000P-个人使用感受_拯救者笔记本-联想社区
  13. (转载)你的个人信息是如何被盗走的?MySQL脱库,脱库的原理,怎么脱库,脱库的步骤,一库三表六字段
  14. 超全!52个数据可视化图表鉴赏~~
  15. 对办公文档加密 到了外部计算机就无法打开,使用文件夹加密超级大师加密了文件,更换电脑后加密文件打不开了怎么办?...
  16. spyder 护眼背景--纯黑色
  17. scipy.sparse学习
  18. Linux vsftp
  19. 零售价9000美元!索尼发布首款专业无人机;三星推出最小尺寸高像素图像传感器 | 美通社头条...
  20. 香八拉 北京 香山 八大处 防火通道

热门文章

  1. 外媒:伊朗政府封锁加密通讯应用Signal
  2. 《数字金融消费者权益保护实践与探索》正式发布
  3. Hudson Jameson将在柏林硬分叉后卸任以太坊基金会社区经理
  4. SAP License:SAP行业近期走向
  5. Hive与Hbase数据表关联
  6. emacs在windows下打开报错原因
  7. Win8 64位安装Oracle 11g时错
  8. 使用getGenericSuperclass()和getActualTypeArguments()将DAO做成泛型
  9. Python——eventlet.wsgi
  10. careercup-数学与概率 7.7