Project Icon

recommender-system-tutorial

使用TensorFlow和Keras构建推荐系统的实践教程

本项目提供了一个详细的推荐系统开发教程,基于TensorFlow Recommenders和Keras。教程介绍了信息检索和推荐系统基础,通过Jupyter notebook展示了MovieLens数据集处理、特征预处理、检索和排序模型构建,以及Spotify Annoy相似项搜索。内容涵盖了推荐系统的核心技术和实践方法,适合学术研究者和业界专业人士学习。

使用TensorFlow和Keras构建推荐系统

这是一个使用TensorFlow RecommendersKeras开发实用推荐系统(检索排序任务)并使用TensorFlow Serving部署的分步教程。

在这里,你可以找到关于信息检索和推荐系统的介绍,然后你可以探索Jupyter笔记本并在Google Colab中运行它以学习代码。

在Colab中打开 在Studio中打开

在笔记本中,我们使用TesorFlow Datasets加载MovieLens数据集,使用Keras预处理层预处理其特征,使用TensorFlow Recommenders构建检索排序任务,并使用Spotify Annoy对相似项目进行索引和搜索。

本教程推荐给学术和行业爱好者。

简介

什么是推荐系统?

在线服务通常提供数千、数百万甚至数十亿的项目,如产品、视频片段、电影、音乐、新闻、文章、博客帖子、广告等。例如,Google Play商店提供数百万的应用程序,而YouTube提供数十亿的视频。[1]

然而,用户更喜欢看到一个简短的可能感兴趣的项目列表,而不是在完整的语料库中挣扎。他们通常可以搜索或过滤列表以找到最佳的几个项目,但有时他们甚至不知道自己真正想要什么(例如生日礼物)。在实体店中,专业销售员会通过有用的推荐来帮助解决这种情况。那么,为什么在在线商店中不这样做呢?

推荐系统可以检索、过滤并推荐最适合用户的个性化结果——用户可能会购买的结果。因此,它是现代企业提高转化率的主要要求之一。2009年9月21日,Netflix向一个团队颁发了100万美元的大奖,该团队的算法在预测评分方面比Netflix自己的算法提高了10.06%。[2]

推荐系统是一个根据查询(上下文)(即我们所知道的喜好列表)来过滤语料库(完整的项目目录)并生成候选项(项目、文档)简短列表的系统。查询(上下文)可以是用户ID用户的地理位置用户的历史购买记录,而生成的候选项可以是我们猜测用户可能感兴趣的一些新项目。

查询也可以是项目ID其图像其文本描述,而候选项可以是语料库中的一些相似或相关项目。

 

 

推荐阶段(任务)

在实践中,处理大型语料库并将其过滤成简短列表是一项难以处理且效率低下的任务。因此,实际的推荐系统通常有两个(或三个)过滤阶段:

  1. 检索(候选生成)
  2. 排序(评分)
  3. 重新排序或优化等

基于内容的过滤与协同过滤

过滤项目是基于相似性的。我们可以基于相似的候选项(基于内容的过滤)或基于查询和候选项之间的相似性(协同过滤)来过滤列表。协同过滤算法通常比基于内容的方法表现更好。

### 查询或候选项的表示

查询或候选项有许多不同的特征。例如,查询可以由以下特征构成:

  • 用户ID
  • 用户历史记录
  • 用户职业
  • 等等

而候选项可以具有如下特征:

  • 项目描述
  • 项目图片
  • 项目价格
  • 发布时间
  • 等等

这些明显的特征可以是"数值变量"、"分类变量"、"位图"或"原始文本"。然而,这些低级特征还不够,我们应该从这些明显特征中提取一些更抽象的"潜在特征",以将查询或候选项表示为数值型高维向量 - 即"嵌入向量"。

"矩阵分解"(MF)是一种经典的协同过滤方法,用于从"用户ID"、"项目ID"和"评分"特征中学习一些"潜在因子"(潜在特征),并用潜在(嵌入)向量表示用户项目

矩阵分解方法只使用"用户ID"和"候选项ID"特征协同学习"潜在特征"。事实上,它并不关心其他侧面特征,如"候选项描述"、"价格"、"用户评论"等。

为了在学习潜在特征(嵌入)时同时涉及侧面特征和ID,我们可以使用深度神经网络(DNN)架构,如"softmax"或"双塔"神经模型。

YouTube的双塔神经模型使用侧面特征将查询和候选项表示为抽象的高维嵌入向量。

Movielens数据集

"Movielens"数据集是推荐系统研究领域的一个基准数据集,包含一组用户对电影的评分,这些数据收集自MovieLens网站 - 一个电影推荐服务。

Movielens有5个不同版本可用于不同目的:"25m"、"latest-small"、"100k"、"1m"和"20m"。在本教程中,我们将使用"100k"版本。有关不同版本的更多信息,请访问官方网站

movielens/100k-ratings

MovieLens数据集的最早版本,包含943名用户对1,682部电影的100,000条评分。每个用户至少对20部电影进行了评分。评分以整星增量给出。除了电影和评分数据外,该数据集还包含用户的人口统计数据。

movielens/100k-movies

这个数据集包含movielens/100k-ratings数据集中被评分的1,682部电影的数据。

 

探索Jupyter笔记本

 

 

 

 

捐赠

如果这个项目对你有帮助,请给个⭐!

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号