开发者社区> 技术小能手> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

融合 MF 和 RNN 的电影推荐系统

简介:
+关注继续查看

随着互联网技术飞速发展,在线数据越来越庞大,如何帮助用户从海量数据中找到所需信息是急需解决的问题。

个性化推荐系统能够有效的解决信息过载问题,推荐系统根据用户的历史偏好和约束为用户提供排序的个性化物品(item)推荐列表,更精准的推荐系统可以提升和改善用户体验。所推荐的物品可以包括电影、书籍、餐厅、新闻条目等等。

本文主要针对电影推荐做了深入研究,但所提出的方法可以很方便地迁移到其他物品推荐中。

目前,协同过滤技术已成为最广泛采用的推荐技术,已经被广泛应用到了很多商业系统中,比较著名的有 Amazon、Netflix、淘宝等。

传统的基于协同过滤的推荐系统是认为用户偏好和电影属性都是静态的,但他们实质是随着用时间的推移而缓慢变化的。例如,一个电影的受欢迎程度可能由外部事件(如获得奥斯卡奖)所改变。

除了对时间演化进行建模的需求外,协同过滤方法使用了未来的评分来评估当前的喜好,这一定程度违背了统计分析中的因果关系。

另一方面,随着深度学习应用的爆发式发展,特别是在计算机视觉、自然语言处理和语音方面的进展,基于深度学习的推荐系统越来越引发大家的关注。循环神经网络(RNN)理论上能够有效地对用户偏好和物品属性的动态性进行建模,基于当前的趋势,预测未来的行为。

为了有效地利用传统协同过滤推荐技术(i.e., 矩阵分解)和深度学习方法(i.e., 循环神经网络)各自的优点,捕获用户和电影之间的长期(全局)和短期(局部)关联,本文主要研究和探索矩阵分解(Matrix Factorization, MF)和循环神经网络(Recurrent Neural Network, RNN)在推荐系统上的互补性。

该项工作已经发表在 arXiv 上,更多细节可以点击本文底部的“阅读原文”查看原论文,我们会在论文发表后放出代码。

我们提出一种 LSIC 模型(Leveraging Long and Short-term Information in Context-aware movie recommendation),具体框架如下:

de2b0720308ed7eba9c2fc9c5d9c13d6a9368dac

LSIC 模型采用了生成对抗网络(GAN)框架将基于 MF 和 RNN 的模型融合,同时捕获用户长期偏好和短期会话信息,从而最大限度地提高推荐系统的最终性能,达到 state-of-the-art 的效果。我们介绍了 4 种方法来融合 MF 模型和 RNN 模型,具体如下:

0aa73643c8be34fc1be6d9fbb1371aef9630dd3b

LSIC-V1: Hard 机制  

采用简单的求和方法混合 MF 和 RNN 预测的分数,如图 Figure2(a),公式如下:

4fc878c1f2688f7a446767373ce2db0a8563e6dd

LSIC-V2 

我们通过预训练 MF 得到用户和视频的 latent factors,再初始化用户 LSTM 和视频 LSTM 的隐状态,如图 Figure2(b)。

LSIC-V3 

我们对 LSIC-V2 进展扩展,采样 MF 得到的 latent factors 作为两个 LSTM 的 static context vectors 加到每个时刻 t 的输入中,如图 Figure2(c)。

LSIC-V4 

我们采用 attention 机制动态调整 MF 和 RNN 的融合方式,如图 Figure2(d),公式如下:

619cf3ccc4540571595741e8a0c21d9d28ade549

生成对抗网络:判别器尝试区别视频的真假,它是来自训练集中的高分视频还是生成器生成出来的伪高分视频。生成器尝试去生成真高分视频来欺骗判别器。具体细节请参考【5】,我们以这篇工作为基础做了许多改进,比如通过 GAN 有效结合用户长期偏好的短期会话的模型等。

生成器:(Figure1 的左边)类似于条件 GAN,我们的生成器 G 输入用户偏好数据和时刻 t,给用户 i 生成推荐列表,具体公式如下:

36019f8115ee587d8ee21f33f29f15cc1170d5c0

其中,M 是视频集合,m_(g, t) 是在 t 时刻生成的视频 index。

判别器(Figure1 的右边)我们采用 Siamese 网络构建判别器 D,并且以 pair-wise 的方法融合长短时模型。具体来说,判别器 D 有两个对称的 point-wise 网络,她们共享参数并且采用 pair-wise 的损失函数来更新。具体的目标函数如下:

907116d84c249758e6834e0eef5506ca37cd6f42

U 是用户集合,u_i 是用户 i,m_+ 是高分视频,m__ 是随机从视频集合中采样出的低分视频,最后我们采用 hinge 损失函数来优化判别器 D,具体公式如下:

e0d7d6f2b8b4be62551d288489929003724d111c

强化学习:由于视频采样的过程是离散的,不能采用标准的 GAN 公式来优化。因此,我们采用 policy gradient 来优化生成器 G,使得 G 能生成高收益的推荐列表来欺骗判别器 D。具体来说,推导如下:

f1646a1adfa4fcd65a5880b55557ee2d156335b4

数据集:为了验证我们模型的有效性,我们在两个广泛使用的数据集进行测试 Movielens100K 和 Netflix,为了评估模型的鲁棒性,我们分别进行了 3 个月 Netflix 和全集 Netflix 的实验,数据集细节如下:

87e2fc7ab8e7b3535c3380b50e795b8585b2b2f8

对比算法: 在实验中,我们和一些 baseline 和 state-of-art 进行对比:BPR [1],PRFM [2],LambdaFM [3],RRN [4],IRGAN [5]。

实验结果:

4c34f12078c1bdf2cb5790d7732ac2081e5ca649

此外,我们还进行了 case study 的分析。我们从 Netflix 数据集中随机选择两个用户并为其生成推荐列表。LSIC 模型可以更有效的进行推荐。例如,用户“8003”的电影“9 Souls”从排名5(LambdaFM)增加到排名 1(LSIC-V4)。

33b4d1010035258ec72418ba55a6bb5282f28096

总结:我们提出了一种新颖的基于生成对抗网络的推荐系统,采用强化学习动态调整历史长期偏好和短期会话的模型,此外,我们加入了封面图片特征进一步提升系统性能,最后在两个数据集上做到 state-of-art 的性能。

参考文献

1. Steffen Rendle, Christoph Freudenthaler, Zeno Gantner, and Lars SchmidtThieme. 2009. BPR: Bayesian personalized ranking from implicit feedback. InProceedings of the twenty- fth conference on uncertainty in articial intelligence. AUAI Press, 452–461.

2. Runwei Qiang, Feng Liang, and Jianwu Yang. 2013. Exploiting ranking factorization machines for microblog retrieval. In Proceedings of the 22nd ACM international conference on Conference on information & knowledge management. ACM, 1783–1788.

3. Fajie Yuan, Guibing Guo, Joemon M Jose, Long Chen, Haitao Yu, and Weinan Zhang. 2016. Lambdafm: learning optimal ranking with factorization machines using lambda surrogates. In Proceedings of the 25th ACM International on Conference on Information and Knowledge Management. ACM, 227–236.

4. Chao-YuanWu, Amr Ahmed, Alex Beutel, Alexander J Smola, and How Jing. 2017. Recurrent recommender networks. In Proceedings of the Tenth ACM International Conference on Web Search and Data Mining. ACM, 495–503.

5. Jun Wang, Lantao Yu, Weinan Zhang, Yu Gong, Yinghui Xu, Benyou Wang, Peng Zhang, and Dell Zhang. 2017. IRGAN: A Minimax Game for Unifying Generative and Discriminative Information Retrieval Models. In Proceedings of the 40th International ACM SIGIR Conference on Research and Development in Information Retrieval. 515–524.


原文发布时间为:2017-12-28

本文作者:杨敏

本文来自云栖社区合作伙伴“PaperWeekly”,了解相关信息可以关注“PaperWeekly”微信公众号

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
为什么说低代码是内部系统开发的未来趋势?
如果开发内部系统是用来提高我们的生产力,那么浪费大量开发人员的生产力来实现它是否事与愿违?
72 0
TypeScript 4.6 beta 发布:递归类型检查增强、参数的控制流分析支持、索引访问的类型推导
TypeScript 已于 2022.1.21 发布 4.6 beta 版本,你可以在 [4.6 Milestone](https://github.com/microsoft/TypeScript/milestone/151) 查看所有被包含的 Issue 与 PR。如果想要抢先体验新特性,执行: ```bash $ npm install typescript@beta ``` 来安装 b
1091 0
ML之RS:基于用户的CF+LFM实现的推荐系统(基于相关度较高的用户实现电影推荐)
ML之RS:基于用户的CF+LFM实现的推荐系统(基于相关度较高的用户实现电影推荐)
50 0
机器人操作系统(ROS)教程4:ROS的框架【转】
转自:http://www.arduino.cn/thread-11351-1-1.html 在进行ROS的代码开发前,有必要了解一些ROS的概念。首先,ROS的系统代码分为两部分:main和universe。
916 0
推荐系统
推荐系统的目标:根据用户的喜好,为不同的用户推荐不同的物品,促成更多的交易。 1.协同过滤 具有相似消费行为的人,可以相互推荐。比如用户a、b同时购买了手机,a又购买了手机壳,那么b也是手机壳的潜在买家。 往往需要一个物品评分矩阵R,元素ri,jr_{i,j}表示用户i对物品j的评分。一般采用5分制,从1(非常不喜欢)到5(非常喜欢)。形如: 表1.1 一个
1506 0
“C代码”获取系统当前负载
       线上服务器(主要指基于linux系统的)负载的获取,其方法有很多。可以用系统提供的命令,可以用各种脚本语言。此博文中提供的方法是:用C代码获取。至于在系统运维的过程中,该选用哪一种,要取决于你的具体应用场景。
610 0
+关注
技术小能手
云栖运营小编~
7194
文章
9
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载