推荐系统(二):使用Tensorflow构造隐语义模型 —— MovieLens电影评分

基于TensorFlow+CNN+协同过滤算法的智能电影推荐系统——深度学习算法应用(含微信小程序、ipynb工程源码)+MovieLens数据集(二) 本项目专注于MovieLens数据集,并采用TensorFlow中的2D文本卷积网络模型。它结合了协同过滤算法来计算电影之间的余弦相似度,并通过用户的交互方式,以单击电影的方式,提供两种不同的电影推荐方式。项目融合了协同过滤和深度学习技术,为用户提供了两种不同但有效的电影推荐方式。这可以提高用户体验,使他们更容易找到符合他们口味的电影。 阅读详情

版权声明:本文为博主原创文章,未经博主允许不得转载。



一、理论知识

1.1 论文

  • 论文题目:《Factorization Meets the Neighborhood: a Multifaceted Collaborative Filtering Model 》
  • 发表时间:KDD 2008
  • 论文作者及单位:Yehuda Koren (AT&T Labs – Research)
  • 论文地址:https://dl.acm.org/citation.cfm?id=1401944&preflayout=flat
  • 论文译文:待整理

1.2 理解

① 均值、用户偏差、电影偏差在这里插入图片描述
② 例如:在这里插入图片描述

二、数据简介

  • 推荐系统研究中常用的九大数据集
  • 推荐系统数据中的几个类别:
    Item: 即我们要推荐的东西,如产品、电影、网页或者一条信息片段
    User:对item进行评分以及接受推荐系统推荐的项目的人
    Rating:用户对item的偏好的表达。评分可以是二分类的(如喜欢和不喜欢),也可以是整数(如1到5星)或连续(某个间隔的任何值)。 另外,还有一些隐反馈,只记录一个用户是否与一个项目进行了交互。

2.1 描述

These files contain 1,000,209 anonymous ratings of approximately 3,900 movies made by 6,040 MovieLens users who joined MovieLens in 2000.

1.ratings file description:ratings.dat

UserID MovieID Rating Timestamp
1 1193 5 978300760
1 661 3 978302109
… … … …
  • UserIDs range between 1 and 6040
  • MovieIDs range between 1 and 3952
  • Ratings are made on a 5-star scale (whole-star ratings only)
  • Timestamp is represented in seconds since the epoch as returned by time(2)
  • Each user has at least 20 ratings

2.users file description:users.dat

UserID Gender Age Occupation Zip-code
1 F 1 10 48067
2 M 56 16 70072
… … … … …
  • Gender is denoted by a “M” for male and “F” for female
  • Age is chosen from the following ranges:
         * 1: “Under 18”
         * 18: “18-24”
         * 25: “25-34”
         * 35: “35-44”
         * 45: “45-49”
         * 50: “50-55”
         * 56: “56+”
  • Occupation is chosen from the following choices:
         * 0: “other” or not specified
         * 1: “academic/educator”
         * 2: “artist”
         * 3: “clerical/admin”
         * 4: “college/grad student”
         * 5: “customer service”
         * 6: “doctor/health care”
         * 7: “executive/managerial”
         * 8: “farmer”
         * 9: “homemaker”
         * 10: “K-12 student”
         * 11: “lawyer”
         * 12: “programmer”
         * 13: “retired”
         * 14: “sales/marketing”
         * 15: “scientist”
         * 16: “self-employed”
         * 17: “technician/engineer”
         * 18: “tradesman/craftsman”
         * 19: “unemployed”
         * 20: “writer”

3.movies file description:movies.dat

MovieID Title Genres
1 Toy Story (1995) Animation
2 Jumanji (1995) Adventure
… … …
  • Titles are identical to titles provided by the IMDB (includingyear of release)
  • Genres are pipe-separated and are selected from the following genres:
         * Action
         * Adventure
         * Animation
         * Children’s
         * Comedy
         * Crime
         * Documentary
         * Drama
         * Fantasy
         * Film-Noir
         * Horror
         * Musical
         * Mystery
         * Romance
         * Sci-Fi
         * Thriller
         * War
         * Western
  • Some MovieIDs do not correspond to a movie due to accidental duplicate entries and/or test entries
  • Movies are mostly entered by hand, so errors and inconsistencies may exist

三、代码实现

3.1 数据介绍

# Imports for data io operations
from collections import deque
from six import next
# 调用 reader.py
import reader

# Main imports for training
import tensorflow as tf
import numpy as np

# Evaluate train times per epoch
import time
# Constant seed for replicating training results
np.random.seed(42)

# Number of users in the dataset
u_num = 6040

# Number of movies in the dataset
i_num = 3952

# Number of samples per batch
batch_size = 1000

# Dimensions of the data, 15
dims = 5

# Number of times the network sees all the training data
max_epochs = 50

# Device used for all computations
place_device = '/cpu:0'

3.2 加载数据、划分数据集和测试集

def 
基于KNN与TensorFlow的可落地电影推荐系统 推荐系统是信息过载时代的关键技术,其核心在于利用用户行为数据建模偏好关系。协同过滤作为最基础且实用的范式,以用户-物品交互矩阵为输入,通过相似度计算实现个性化预测。其中,近邻算法(Nearest Neighbours)因其可解释性强、冷启动友好、工程轻量等优势,在影视类垂直场景中具备独特价值。结合TensorFlow这一工业级数值计算框架,不仅能实现GPU加速的实时相似度检索,还可导出标准化SavedModel,无缝对接线上服务。本文聚焦Movie Recommendation任务,详解如何用User-Ba 阅读详情

相关推荐

TensorFlow实战——深度学习训练个性化推荐系统

请安装TensorFlow1.0,Python3.5 项目地址:https://github.com/xiaobingchan/movie_recommender 前言 本项目使用文本卷积神经网络,并使用MovieLens数据集完成电影推荐的任务。 推荐系统在日常的网络应用中无处不在,比如网上购物、网上买书、新闻app、社交网络、音乐网站、电影网站等等等等,有人的地方就有推荐。根据个人的喜好,相同喜好人群的习惯等信息进行个性化的内容推荐。比如打开新闻类的app,因为有了个性化的内容,每个人看到的新闻首页都

sinat_28371057的博客 1473

推荐系统(三)使用 TensorFlow 构建电影推荐系统

本文将介绍基于MovieLens 数据集创建一个电影推荐系统的方法。具体而言,包括探索电影数据,训练矩阵分解模型,检查嵌入,矩阵分解中的正则化,Softmax 模型训练等内容。

Jin_Kwok的博客 1816

从零实现电影推荐系统:Python+TensorFlow深度协同过滤实战

推荐系统是互联网产品中解决信息过载的核心技术,常见于电影、电商、短视频等场景。协同过滤作为推荐算法的主流范式,不依赖物品元数据,仅通过用户行为矩阵挖掘偏好,因而在实践中被广泛采用。在深度学习时代,Embedding技术将用户和物品映射为稠密向量,配合神经网络结构的非线性交互建模,形成了深度协同过滤(如NCF),其表达能力优于传统矩阵分解,并能在稀疏评分数据下获得更稳定的推荐效果。这类模型的落地通常需要完成评分数据清洗、ID连续化映射、负样本采样、离线指标评估以及线上服务部署等环节。围绕MovieLens公开

weixin_33755557的博客 311

MovieLens 1M数据集

MovieLens 1M数据集

EndNoteX9完整详细安装教程

EndNoteX9完整详细安装教程

rothschild666的博客 10万+

Gamit10.71添加新的天线类型

添加新的天线类型需要涉及到四个文件:antmod.dat,rcvant.dat,guess_rcvant.dat,hi.dat。 注意:格式要一致!!! 举例说明,我要添加一个JCA229的天线(带JCAD天线罩),对应接收机使用的是南方的South Net-S9。

Penny的博客 2711

(OSTrack)Joint Feature Learning and Relation Modeling for Tracking A One-Stream Framework

Joint Feature Learning and Relation Modeling for Tracking A One-Stream Framework (OSTrack)

小火山的博客 1653

DSP28377内存不够用?手把手教你合并RAM/FLASH块,解决CCS20链接器报错

本文详细介绍了在CCS20开发环境中解决DSP28377内存不足问题的方法,通过合并RAM/FLASH块优化CMD文件配置,有效解决链接器报错。文章包含内存布局对比、改写步骤、FreeRTOS集成注意事项及调试技巧,帮助开发者提升内存利用率与项目性能。

weixin_42524762的博客 143

绿盾用户使用看图软件每次都需要把图片解密之后才能打开查看,怎么才能不用这么麻烦打开就能看

Win10专业版绿盾控制台7.0看图软件FastStone Image Viewer。

本博客,博文仅代表个人操作经验,不能完全解决你的问题,仅供参考,佛系回复。 1202

图神经网络实战(6)——使用PyTorch构建图神经网络

图数据集通常比简单的连接集合更加丰富,因为节点和边可以具有表示分数、颜色、单词等特征。包含这些额外信息在输入数据中对于生成最佳嵌入至关重要。在本节中,我们将使用 Cora 和 Facebook Page-Page 数据集,首先将它们视为表格数据集,观察香草神经网络在节点特征上的表现如何。然后,尝试在神经网络中加入拓扑信息,实现图神经网络 (Graph Neural Networks, GNN) 架构:一个同时考虑节点特征和边的简单模型。最后,我们将比较两种架构的性能。

盼小辉丶的博客 2万+

Vue3 - 超详细“纯前端“将文件上传到阿里云OSS对象存储,最新阿里云前端直传音频、视频、图片、文件、office文档等任意文件,vue3单个或批量从本地选择文件,秒传到阿里云oss无需后端接口!

vue3,阿里云oss存储,前端直传oss,上传图片/office文档/音视频/zip压缩包到阿里云oss,项目中上传文件到阿里云oss详细教程,如何将本地文件上传到阿里云OSS存储,纯前端实现阿里云OSS上传,纯前端直传至阿里OSS对象存储教程,如何解决上传文件到阿里云OSS本地环境调试出现跨域问题,直传阿里云oss跨域报错解决,前端直接上传文件到oss服务端,不经过后端直传,浏览器直接上传文件,阿里云oss上传sdk官方文档,阿里云错误,解决这个问题,上传很慢,一直签名失败,权限,不经过后端,纯前端直传

🏆 前端领域优质创作者 1万+

【PCIe硬件】PCIe引脚PRSNT与热插拔

热插拔的基本目的是要让PCIe设备按照规定的顺序、原则,从系统中移除或插入到系统中来,并能正常的工作,且不影响系统的正常运行。事实上,PCIe“热插拔”的关键目的就是为前面面所提到的系统RAS服务的,是提升系统RAS能力的非常重要的手段!注意,这里有两个相关概念,前面我们讲的热插拔,其实是广义的“热插拔”。这里的Hot-Plug,为了方便,我们叫做PCIe热插拔,也就是我们现在及后面将要讨论的内容。

smartvxworks的博客 2803

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

上一篇: 推荐系统(一):使用Surprise库建立推荐系统 —— MovieLens电影推荐
下一篇: 推荐系统(三):Python从零开始构建音乐推荐系统 —— ★★
InitialHeart2021
博客等级 码龄5年 49粉丝 182原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

InitialHeart2021

你的鼓励是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值