基于TensorFlow+CNN+协同过滤算法的智能电影推荐系统——深度学习算法应用(含微信小程序、ipynb工程源码)+MovieLens数据集(七)

2023-09-21 20:41:17


在这里插入图片描述

前言

本项目专注于MovieLens数据集,并采用TensorFlow中的2D文本卷积网络模型。它结合了协同过滤算法来计算电影之间的余弦相似度,并通过用户的交互方式,以单击电影的方式,提供两种不同的电影推荐方式。

首先,项目使用MovieLens数据集,这个数据集包含了大量用户对电影的评分和评论。这些数据用于训练协同过滤算法,以便推荐与用户喜好相似的电影。

其次,项目使用TensorFlow中的2D文本卷积网络模型,这个模型可以处理电影的文本描述信息。模型通过学习电影的文本特征,能够更好地理解电影的内容和风格。

当用户与小程序进行交互时,有两种不同的电影推荐方式:

  1. 协同过滤推荐:基于用户的历史评分和协同过滤算法,系统会推荐与用户喜好相似的电影。这是一种传统的推荐方式,通过分析用户和其他用户的行为来推荐电影。

  2. 文本卷积网络推荐:用户可以通过点击电影或输入文本描述,以启动文本卷积网络模型。模型会分析电影的文本信息,并推荐与输入的电影或描述相匹配的其他电影。这种方式更注重电影的内容和情节相似性。

综合来看,本项目融合了协同过滤和深度学习技术,为用户提供了两种不同但有效的电影推荐方式。这可以提高用户体验,使他们更容易找到符合他们口味的电影。

总体设计

本部分包括系统整体结构图和系统流程图。

系统整体结构图

系统整体结构如图所示。
在这里插入图片描述

系统流程图

系统流程如图所示。

在这里插入图片描述

模型训练流程如图所示。

在这里插入图片描述

服务器运行流程如图所示。

在这里插入图片描述

运行环境

本部分包括Python环境、TensorFlow环境、 后端服务器、Django和微信小程序环境

模块实现

本项目包括3个模块:模型训练、后端Django、 前端微信小程序模块,下面分别给出各模块的功能介绍及相关代码。

1. 模型训练

下载数据集,解压到项目目录下的./ml-1m文件夹下。数据集分用户数据users.dat、电影数据movies.dat和评分数据ratings.dat。

1)数据集分析

数据集网站地址为http://files.grouplens.org/datasets/movielens/ml-1m-README.txt对数据的描述。

相关博客:https://blog.csdn.net/qq_31136513/article/details/133124641#1_44

2)数据预处理

通过研究数据集中的字段类型,发现有一些是类别字段,将其转成独热编码,但是UserID、MovieID的字段会变稀疏,输入数据的维度急剧膨胀,所以在预处理数据时将这些字段转成数字。

相关博客:https://blog.csdn.net/qq_31136513/article/details/133124641#2_123

3)模型创建

相关博客:https://blog.csdn.net/qq_31136513/article/details/133125845#3_50

4)模型训练

相关博客:https://blog.csdn.net/qq_31136513/article/details/133130704#4_57

5)获取特征矩阵

本部分包括定义函数张量、生成电影特征矩阵、生成用户特征矩阵。

相关博客:https://blog.csdn.net/qq_31136513/article/details/133130704#5_240

2. 后端Django

该模块实现了推荐算法的封装与前端数据交互功能。

相关博客:https://blog.csdn.net/qq_31136513/article/details/133131103#2_Django_67

3. 前端微信小程序

该模块实现用户交互以及与后端数据的传输功能,通过微信开发者平台进行前端开发。

1)小程序全局配置文件

全局配置文件通常以APP开头,包括app.jsapp.jsonapp.wxss等, 这些文件在新建小程序时,由微信开发者平台自动生成。

相关博客:https://blog.csdn.net/qq_31136513/article/details/133146411#1_75

2)推荐电影页面

推荐电影页面movies,包含movies.jsmovies.jsonmovies.wxmlmovies.wxss。其中movies.js记录的是逻辑层; movies.wxml记录的是视图层; movies.wxss记录页面元素的样式表;movies.json 类似于app.json,记录这个页面的相关配置信息。

相关博客:https://blog.csdn.net/qq_31136513/article/details/133146411#2_177

3)个人信息界面以及用户登录记录页面

这两个页面是新建小程序时系统自动生成的,不做改动。以下个人信息页面由index.jsindex.htmlindex.jsonindex.wxss等文件构成。

相关博客:https://blog.csdn.net/qq_31136513/article/details/133146411#3_383

系统测试

本部分包括模型损失曲线及测试效果。

1. 模型损失曲线

模型使用真实评分与预测评分的MSE作为损失函数,随着迭代次数的增多,在训练数据、测试数据上的损失逐渐降低,最终趋于稳定,经过5次迭代后,损失稳定为1。

训练损失如图所示。

在这里插入图片描述

测试损失如图所示。

在这里插入图片描述

2. 测试效果

前端小程序开发完成后,在微信开发者平台中进行预览,操作界面如图所示。

在这里插入图片描述

Movies页面中有两种推荐方式选择按钮,下面还有5部随机显示的电影信息。选择其中一种方式进行电影推荐,也就是“同类型电影”的推荐方式,再选择其中一部电影,例如,选择当前屏幕中的第一部电影Last Night,可以看到推荐了很多同类型的电影,如图所示。
在这里插入图片描述

选择另一种方式,即“看过这个的还喜欢看”的推荐方式,继续选择第一部电影,出现其他电影,如图所示。
在这里插入图片描述

相关其它博客

基于TensorFlow+CNN+协同过滤算法的智能电影推荐系统——深度学习算法应用(含微信小程序、ipynb工程源码)+MovieLens数据集(一)

基于TensorFlow+CNN+协同过滤算法的智能电影推荐系统——深度学习算法应用(含微信小程序、ipynb工程源码)+MovieLens数据集(二)

基于TensorFlow+CNN+协同过滤算法的智能电影推荐系统——深度学习算法应用(含微信小程序、ipynb工程源码)+MovieLens数据集(三)

基于TensorFlow+CNN+协同过滤算法的智能电影推荐系统——深度学习算法应用(含微信小程序、ipynb工程源码)+MovieLens数据集(四)

基于TensorFlow+CNN+协同过滤算法的智能电影推荐系统——深度学习算法应用(含微信小程序、ipynb工程源码)+MovieLens数据集(五)

基于TensorFlow+CNN+协同过滤算法的智能电影推荐系统——深度学习算法应用(含微信小程序、ipynb工程源码)+MovieLens数据集(六)

工程源代码下载

详见本人博客资源下载页


其它资料下载

如果大家想继续了解人工智能相关学习路线和知识体系,欢迎大家翻阅我的另外一篇博客《重磅 | 完备的人工智能AI 学习——基础知识学习路线,所有资料免关注免套路直接网盘下载
这篇博客参考了Github知名开源平台,AI技术平台以及相关领域专家:Datawhale,ApacheCN,AI有道和黄海广博士等约有近100G相关资料,希望能帮助到所有小伙伴们。

更多推荐

SkyWalking快速上手(五)——存放在内存、数据持久化

文章目录存放在内存一、概述二、数据存放方式1.指标数据2.跟踪数据三、优势和注意事项四、总结数据持久化一、指标数据的持久化二、跟踪数据的持久化三、注意事项四、总结存放在内存一、概述SkyWalking是一个开源的分布式系统追踪和性能监控工具,用于帮助开发人员和运维人员监控和分析分布式系统的性能问题。在SkyWalkin

SkyWalking入门之Agent原理初步分析

一、简介当前稍微上点体量的互联网公司已经逐渐采用微服务的开发模式,将之前早期的单体架构系统拆分为很多的子系统,子系统封装为微服务,彼此间通过HTTP协议RESETAPI的方式进行相互调用或者gRPC协议进行数据协作。早期微服务只有几个的情况下,我们遇到问题可以直接简单、快速地通过采集日志进行分析,是A服务存在问题还是B

ReadWriteLock(读写锁)和阻塞队列BlockingQueue与同步队列SynchronousQueue

1.ReadWriteLockpackagecom.kuang.rw;importjava.util.HashMap;importjava.util.Map;importjava.util.concurrent.locks.ReadWriteLock;importjava.util.concurrent.locks.R

传导和辐射EMI有什么区别?

当我们设计原型或使用开发板时,通常可以忽略电磁干扰。但EMI在现实生活中的电子设备和系统中是一个重要的主题,工程师有责任确保电路能够在预期的EMI水平下正常运行,并且不会产生过多的EMI。我倾向于将EMI与无线干扰联系起来,考虑到名称,这并不令人惊讶:它被称为电磁干扰,我们自然将其与电磁辐射联系起来。但正如您从本文标题

实在智能携手40+央企,探索财务大模型及数智化实践与应用

“这次培训给我一个最大的感触就是,过去以为AI智能化、大模型技术是很高深的事情。但现在,我们通过RPA等数字化工具,自主根据自己的工作岗位,完成业务自动化流程的开发和设计。AI技术没有想象中的那么难入门。”这是一位参加了“财务大模型及AI+RPA数智化实践与应用”专题研修班的学员,培训后有感而发的心得。探索财务数智化落

基于矩阵分解算法的智能Steam游戏AI推荐系统——深度学习算法应用(含python、ipynb工程源码)+数据集(三)

目录前言总体设计系统整体结构图系统流程图运行环境模块实现1.数据预处理2.模型构建1)定义模型结构2)优化损失函数3.模型训练及保存1)模型训练2)模型保存4.模型应用1)制作页面2)模型导入及调用3)模型应用代码相关其它博客工程源代码下载其它资料下载前言本项目采用了矩阵分解算法,用于对玩家已游玩的数据进行深入分析。它

10年经验之谈 —— 如何做接口测试呢?接口测试有哪些工具?

回想入职测试已经10年时间了,初入职场的我对于接口测试茫然不知。后来因为业务需要,开始慢慢接触接口测试。从最开始使用工具进行接口测试到编写代码实现接口自动化,到最后的测试平台开发。回想这一路走来感触颇深,因此为了避免打算学习接口测试的同学走冤枉路,特此分享我的学习经验。之前我已经在知乎做过几次接口的分享一、接口的重要性

5W2H分析法

1.概念它的历史可以追溯到二战时期的美国陆军兵器修理部,虽然具体由谁发明可能存在争议,但可以肯定的是,这种方法在当时被广泛应用,并被证明是一种非常有效的创新和问题解决方法。5W2H分析法以五个以W开头的英语单词和两个以H开头的英语单词为线索,帮助人们发现问题,寻找解决方案,进行设计构思,从而创新和发明新的项目。它与其他

QT Day5

目录1.针对登入框,新加入了注册功能,使用数据库存储账号密码信息widget.hwidget.cppsecond.hsecond.cpp2.思维导图1.针对登入框,新加入了注册功能,使用数据库存储账号密码信息widget.h#ifndefWIDGET_H#defineWIDGET_H#include<QWidget>#

7.1 实现进程内存块枚举

在Windows操作系统中,每个进程的虚拟地址空间都被划分为若干内存块,每个内存块都具有一些属性,如内存大小、保护模式、类型等。这些属性可以通过VirtualQueryEx函数查询得到。该函数可用于查询进程虚拟地址空间中的内存信息的函数。它的作用类似于Windows操作系统中的TaskManager中的进程选项卡,可以

安达发|APS软件多工厂架构引领生产管理新革命

APS多工厂架构是一种生产管理系统,它通过将多个工厂的生产过程进行整合和优化,实现了生产效率的提高和成本的降低。在APS多工厂架构中,每个工厂都有自己的生产线和生产计划,但是它们之间可以进行协调和协作,以确保整个生产过程的顺利进行。APS多工厂架构的核心是生产计划和调度。在生产过程中,需要对各个工厂的生产计划进行协调和

热文推荐