栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python基于神经协同过滤和深度学习实现的电影推荐服务

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python基于神经协同过滤和深度学习实现的电影推荐服务

资源下载地址:https://download.csdn.net/download/sheziqiong/86158890
资源下载地址:https://download.csdn.net/download/sheziqiong/86158890

中间件实现技术课程作业——电影推荐服务 1.概述:

本project实现了一个web服务,基于深度学习实现电影推荐

  • 数据集:movielens
  • 推荐算法:神经协同过滤(neural collaborative filtering)
  • 深度学习框架:pytorch
  • 开发语言:python 3.7
  • web服务框架:django
  • 数据库:mongodb
2.流程图

3.推荐算法介绍 3.1 相关论文

新加坡国立大学 何向南 团队的论文

Xiangnan He, Lizi Liao, Hanwang Zhang, Liqiang Nie, Xia Hu and Tat-Seng Chua (2017). Neural Collaborative Filtering. In Proceedings of WWW '17, Perth, Australia, April 03-07, 2017.

https://arxiv.org/abs/1708.05031

https://github.com/hexiangnan/neural_collaborative_filtering

3.2 协同过滤

使用用户user与item之间的交互记录,计算用户之间相似度,用相似用户的对某个item的评分,预测某个用户对某个item的评分

3.3 矩阵分解

矩阵分解(MF,Matrix Factorization),为每个user和item找到一个隐向量,问题变为:

这里的 K表示隐式空间(latent space)的维度。正如我们所看到的,MF模型是用户和项目的潜在因素的双向互动,它假设潜在空间的每一维都是相互独立的并且用相同的权重将它们线性结合。因此,MF可视为隐向量(latent factor)的线性模型。

论文中给出了一个例子来说明这种算法的局限性:

1(a)是user-item交互矩阵,1(b)是用户的隐式空间,论文中强调了两点来理解这张图片:
1)MF将user和item分布到同样的隐式空间中,那么两个用户之间的相似性也可以用二者在隐式空间中的向量夹角来确定。
2)使用Jaccard系数来作为真实的用户相似性。
通过MF计算的相似性与Jaccard系数计算的相似性也可以用来评判MF的性能。我们先来看看Jaccard系数

上面的示例显示了MF因为使用一个简单的和固定的内积,来估计在低维潜在空间中用户-项目的复杂交互,从而所可能造成的限制。解决该问题的方法之一是使用大量的潜在因子 K (就是隐式空间向量的维度)。然而这可能对模型的泛化能力产生不利的影响(e.g. 数据的过拟合问题),特别是在稀疏的集合上。论文通过使用DNN从数据中学习交互函数,突破了这个限制。

3.4 NCF

本文先提出了一种通用框架:

针对这个通用框架,论文提出了三种不同的实现,三种实现可以用一张图来说明:

4.部署与运行 4.1 django

demo项目,未使用nginx等服务器程序,直接run 即可运行

python manage.py runserver

调用接口

http://127.0.0.1:8000/getRecMovie/?uid=17

4.2 mongodb
安装MongoDB并配置如下 
mongodb.conf #端口号 
port = 27017 #数据目录
dbpath = /usr/local/mongodb/data/db
 #日志目录
 logpath = /usr/local/mongodb/data/logs/mongodb.log 
 #设置后台运行行 
 fork = true
 #日志输出方式
 logappend = true
 #开启认证
 #auth = true
4.3 训练

run NCF-master下的main.py即可

4.4 预测

run NCF-master下的predict.py即可

4.5 输出训练结果到mongodb

run NCF-master下的mongodb_util.py即可

5.可优化项目 5.1 流程

使用产业界成熟的方案(spark等),实现更自动化的更新输入数据和模型更新,

5.2 代码质量 5.3 embedding的预训练与模型调参

资源下载地址:https://download.csdn.net/download/sheziqiong/86158890
资源下载地址:https://download.csdn.net/download/sheziqiong/86158890

暑期编程PK赛 得CSDN机械键盘等精美礼品!
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1015038.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号