融合 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”微信公众号

相关文章
|
移动开发 搜索推荐 算法
Python基于Django的电影推荐系统和论坛项目完整源码
Python基于Django的电影推荐系统和论坛项目完整源码
791 0
Python基于Django的电影推荐系统和论坛项目完整源码
|
26天前
|
机器学习/深度学习 数据采集 算法
基于Apriori关联规则的电影推荐系统(附python代码)
这是一个基于Apriori算法的电影推荐系统概览。系统通过挖掘用户评分数据来发现关联规则,例如用户观看某部电影后可能感兴趣的其他电影。算法核心是逐层生成频繁项集并设定最小支持度阈值,之后计算规则的置信度。案例中展示了数据预处理、频繁项集生成以及规则提取的过程,具体包括用户评分电影的统计分析,如1-5部电影的评分组合。最后,通过Python代码展示了Apriori算法的实现,生成推荐规则,并给出了一个简单的推荐示例。整个过程旨在提高推荐的精准度,基于用户已评分的电影推测他们可能尚未评分但可能喜欢的电影。
基于Apriori关联规则的电影推荐系统(附python代码)
|
1月前
|
搜索推荐 算法 Java
基于springboot+vue协同过滤算法的电影推荐系统
基于springboot+vue协同过滤算法的电影推荐系统
|
1月前
|
设计模式 搜索推荐 测试技术
电影推荐系统的设计与实现(论文+系统)_kaic
电影推荐系统的设计与实现(论文+系统)_kaic
|
3月前
|
搜索推荐 前端开发 算法
协同过滤算法|电影推荐系统|基于用户偏好的电影推荐系统设计与开发
协同过滤算法|电影推荐系统|基于用户偏好的电影推荐系统设计与开发
|
4月前
|
机器学习/深度学习 搜索推荐 大数据
[机器学习]电影推荐系统设计(五)
[机器学习]电影推荐系统设计(五)
56 0
|
6月前
|
机器学习/深度学习 搜索推荐 算法
基于卷积神经网络的电影推荐系统
基于卷积神经网络的电影推荐系统
94 0
|
11月前
|
机器学习/深度学习 分布式计算 搜索推荐
基于Spark的电影推荐系统实现
基于Spark的电影推荐系统实现
|
搜索推荐 算法
使用 BERT 嵌入解决冷电影问题:推荐系统
推荐冷启动问题是指添加到目录中的项目没有或只有很少的交互。这主要是协同过滤算法的一个问题,因为它们依赖于项目的交互来进行推荐。解决这个问题 我使用 BERT Embeddings。我嵌入所有电影类型并保存所有 . 还将新电影类型转换为BERT 嵌入并使用最近邻。我找到最近的 k 部电影的新电影并将它们推荐给用户。我没有使用预训练电影嵌入层。因为每部电影都有 1 X 50 维度表示。在查询时,我需要计算每个点之间的距离,如果每个点都是 50 个或更多维度,这将非常耗时。
103 0
|
机器学习/深度学习 搜索推荐 算法
基于协同过滤算法的电影推荐系统设计(二) - 推荐系统介绍(上)
基于协同过滤算法的电影推荐系统设计(二) - 推荐系统介绍(上)
391 0
基于协同过滤算法的电影推荐系统设计(二) - 推荐系统介绍(上)