用于预测最佳电影的推荐引擎
摘 要
推荐系统是寻求的信息过滤系统的子类预测用户将给予项目的“评级”或“偏好”。建议系统近年来变得非常普遍,并且被用于各种各样的领域:一些流行的应用程序包括电影,音乐,新闻,书籍,研究文章,搜索查询,社交标签和一般产品。对于这项研究,我们正在考虑
基于来自电影数据集的内容的电影推荐系统。一般来说,两个推荐系统中使用的过滤方法类型是基于内容的过滤和基于协作的过滤。对于这项研究,我们不仅使用这两种方法单一但不同的电影信息内容,如评级,流派。我们的推荐引擎会考虑先前存储的电影的评级和类型
由用户选择,以训练用户可能喜欢的系统和项目电影名称列表。在这项研究,用于构建推荐引擎我们已经使用了基于内容的GraphLab包中提供的算法和协同过滤算法在python下的表现。最后,将这两种方法进行比较,以显示哪种推荐引擎在大多数情况下,比其他算法效果更好。
关键词:推荐系统,基于内容的过滤。协同过滤
1.简介
最近互联网费用变得更便宜,然后互联网的用户日复一日地增加。随着互联网用户也在增加数据内容增加。这会导致用户重载大量信息。推荐引擎通过对这个大的分类来帮助处理这种过载信息列表,以后可用于推荐。最近推荐系统可以在各种服务中找到,例如新闻,音乐,
电影,网上购物网站等等。推荐系统是一个寻求预测“评级”或信息过滤系统的子类用户将给予项目的“偏好”。推荐系统已成为近年来越来越受欢迎的系统,并被用于各种领域,包括
电影,音乐,新闻,书籍,研究文章,搜索查询,社交标签和产品。还有针对专家,合作者的推荐系统,以及笑话,餐馆,服装,金融服务,人寿保险,浪漫伴侣,和Twitter页面。推荐系统通常会生成一个列表建议采用两种方式之一通过协作和基于内容的方式
过滤或基于个性的方法。协作过滤方法根据用户过去的行为(先前购买或选择的项目)构建模型和/或给予这些项目的数字评级)以及由此作出的类似决定收到(2017年9月26日)评论结果(2018年1月4日),接受(2018年1月18日)国际高等科学技术期刊
其他用户。然后,该模型用于预测项目(或项目的评级)用户可能有兴趣。基于内容的过滤方法使用一系列项目的离散特征,以便推荐其他项目类似的属性。这些方法经常结合起来。推荐系统是一个搜索算法的有用替代方法,因为它们可以帮助用户发现他自己找到了。有趣的是,推荐系统经常出现使用索引非传统数据的搜索引擎实现。
2.现有产品和服务
社交网站于1995年开始在www.classmates.com上出现它在人们中间受到欢迎。不同的专业网站仅供审核像Yelp和Tribe允许用户对不同类型的产品进行评论。不同的博客网站如Windows Live Spaces,Vox和Blogger开始使用对用户发布的不同博客的评论。一些学术界也出现在90年代,它开始使用这个概念来评估研究工作或他们网站上引用的不同作品。后来,一些更复杂的程序由LinkedIn,Ecademy和ActiveRain等专业网站采用。这些网站不仅考虑了星级,还考虑了不同的用户参数,如工作经验,技术知识和领域知识。在2000年初,许多人匹配使网站像Match.com和Multiply一样开始使用它建议最合适的新娘或新郎的推荐概念。像Picasa一样发布和分享的专业摄影网站也加入进来比赛根据用户搜索推荐不同的照片。还有其他的这个领域的组织,如Webshots,MyPhotoBucket和Flickr。社会像Orkut,Google 和Facebook这样的网络网站使用了相同的概念推荐使用新名称作为聊天,允许用户提供实时打开评论和图像。但建议是广泛使用的一个视频共享主要YouTube,然后由Last.fm等不同网站使用,潘多拉,Netflix。在此推荐引擎开始提供各种服务之后目的,针对所有类型的用户。
3.社交电影平台在这里,我们采用了Movie Lens - 100k数据集进行测试和评估推荐引与之相比,我们的项目有了显着的改进现有产品和服务。现有的电影网站,如IMDB,AOL等在其数据库上提供每部电影的全球用户评级。电影分类通过元数据信息,如时代,流派和导演等。所以,这个系统缺乏个人推荐系统并没有人群智慧和优势社交网络社区的意见。雅虎电影使用个人收视率和建议目前在电视,影院和DVD上播放的电影。其他电影网站,
比如Flixster,使用不同的方法。 Flixster使基于Web的社区成为电影和推荐电影他们的朋友评价。
4.相关工作
Netflix是另一个受人们用来观看电影和网站的热门网站电视频道。 Netflix还提供用户可能希望观看的视频在他以前看过的视频上。对于这个建议,Netflix主要使用两个算法。使用的算法是受限玻尔兹曼机器(RBM)和形式矩阵分解。受限制的玻尔兹曼机器使用神经网络
矩阵分解形式使用SVD 。这是SVD的不对称形式它使用隐含信息。用户评级的电影推荐是HansBystrouml;m的一篇论文用于电影的k-means聚类和softmax回归分类建议。均方根误差(RMSE)用于评估结果。在这项研究中,整个电影数据集被使用Softmax进行考虑和分类回归。回归是对数值执行的。所以,这里只有评级栏从数据集中使用。这将推荐所有确定的电影星级。这是用户想要所有最佳电影的第一级搜索条件无论其类型或发布年份。基于用户相似性的电影推荐系统是Gaurav Arora的论文。在这项研究中,建议设计比较了用户的口味和安排具有相同品味的用户。建议将电影推荐给其他人属于同一类别的人当用户搜索任何电影名称,类似的流派电影建议先前进行过审核。在这项研究中,数据科学技术就像使用城市街区距离和欧几里德距离。计算相似度量在搜索的类型和来自数据集的各个类型之间。基于这种相似性建议测量评分最高的电影。
4.1。研究差距
电影推荐还有很多弊端。对于电影推荐一些人使用与具有相同品味的其他人进行比较,这不是有效的推荐的方法,而其他一些人使用全球电影评级建议最好的电影。在这里,我们拍摄了由个人和电影评级的电影数据集在预测时也采用了电影的类型。因此用户可以选择最佳电影根据流派和评级。
5.考虑问题
现有的电影网站,如IMDB,AOL电影等提供有关的信息我们只选择的电影。评级也由他们确定。它没有连接人们如何评价各种社交网站上的电影。这里我们计划将此功能添加到用户。在这里,用户可以对电影进行评分登录。基于每个用户评级,数据将被训练。国际先进科学技术杂志
6.设计
设计广泛使用的推荐系统的一种方法是协同过滤。协同过滤方法基于收集和分析大量有关用户行为,活动或信息的信息偏好和根据用户与其他人的相似性预测用户会喜欢什么用户。协同过滤方法的一个关键优势是它不依赖在机器可分析内容上,因此它能够准确在不需要“理解”的情况下推荐电影等复杂项目该项目本身。许多算法已被用于测量用户相似度或推荐系统中的项目相似性。例如,最近由Allen实施的k-最近邻(kNN)方法和Pearson相关。
6.1。协同过滤
协同过滤是基于同意的人的假设过去将在未来达成一致,他们会在过去喜欢喜欢类似的物品。从用户的行为构建模型时,区别在于通常在显式和隐式形式的数据收集之间进行。如图所示
显式数据收集的示例包括以下内容:
要求用户按比例缩放项目。
要求用户进行搜索。
要求用户将喜爱的项目集合排列为最喜欢的项目。
向用户呈现两个项目并要求他/她选择更好的项目
他们要求用户创建他/她喜欢的项目列表。
隐式数据收集的示例包括以下内容:
观察用户在在线商店中查看的项目。
分析项目/用户查看时间。
记录用户在线购买的物品。国际先进科学技术杂志
获取用户在其计算机上收听或观看的项目列表。
分析用户的社交网络并发现类似的好恶。
协作过滤方法经常遇到三个问题:冷启动,可扩展性和稀疏性。
冷启动:这些系统通常需要用户的大量现有数据为了提出准确的建议。
可伸缩性:在这些系统所处的许多环境中建议,有数百万用户和产品。因此,大量的计算能力通常是计算推荐所必需的。
稀疏性:主要电子商务网站上销售的商品数量非常大。
最活跃的用户只会评估整个数据库的一小部分。因此,即使是最受欢迎的商品也只有很少的评级。
6.2。基于内容的过滤算法
基于内容的过滤方法基于项目的描述和简档用户的偏好。在基于内容的推荐系统中,关键字用于描述项目并构建用户简档以指示该用户喜欢的项目类型。在换句话说,这些算法尝试推荐与用户类似的项目在过去喜欢(或正在审查现在)。特别是,各种候选项目是
与先前由用户评定的项目和最匹配的项目进行比较推荐的。这种方法的根源在于信息检索和信息
为了抽象系统中项目的特征,项目呈现算法是
应用。广泛使用的算法是tf-idf表示。基于内容的过滤的一个关键问题是系统是否能够从用户的操作中学习用户首选项关于一个内容源并在其他内容类型中使用它们。当系统是仅限于推荐与用户已使用相同类型的内容,价值国际高等科学技术期刊从推荐系统中显着少于其他内容类型可以推荐其他服务。例如,推荐基于的新闻文章浏览新闻很有用,但在音乐,视频,产品,可以基于新闻浏览推荐来自不同服务的讨论等。
7.方法论
7.1。 Graphlab
由于GraphLab项目由Carnegie的Carlos Guestrin教授发起梅隆大学,2009年。它是一个使用Apache许可证的开源项目。虽然GraphLab最初是为机器学习任务开发的,但它已经找到了在广泛的其他数据挖掘任务中取得巨大成功;表现不佳抽象数量级。 GraphLab提供高级编程接口,允许快速部署分布式机器学习算法。
GraphLab设计背后的主要设计考虑因素是:
使用本地依赖关系稀疏数据
迭代算法
潜在的异步执行
GraphLab的主要特点是:
统一的多核和分布式API:在两者中有效地运行一次
共享和分布式内存系统
针对性能进行调整:优化的C 执行引擎广泛应用
多线程和异步IO
可扩展:GraphLab使用智能地放置数据和计算
复杂的新算法
HDFS集成
强大的机器学习工具包
GraphLab是python的付费软件包。但出于教育目的,他们会给予它
免费给学生1年。需要的人可以在他们的网站上注册以获得免费
访问其所有功能1年。我们使用了GraphLab的两个主要功能
实施项目。
功能是:
graphlab.popularity_recommender.create() - 用于实现
基于内容的推荐系统。
graphlab.item_similarity_recommender.create() - 用于实现
协同过滤推荐系统。
7.2。数据集描述
在本研究中,我们选择了Movie Lens - 100k数据集进行测试和测试
评估推荐引擎。数据集包含数据总数观察次数为90570,共有943名用户及其评分和评论至少20部电影。此数据集包含不同的列,如Movie_Id,Movie_Name,类型,评级,评论Release_Year和imdb_link。用于设计推荐引擎,我们将使用Movie_Id,流派,评级和评论
列。
7.3。构建引擎
推荐系统是在GraphLab和python的帮助下构建的。该整个数据集被加载到python中。其次,数据集分为内部数据和人口推荐算法和基于内容过滤的测试数据。国际先进科学技术杂志算法。最后,这些划分的数据集用于设计推荐发动机。
7.4。提出建议
现在使用训练的数据来构建流行度推荐和内容基于过滤算法。引擎将提供适当的推荐根据他指定的类型向用户播放电影。
7.5。评估算法
推荐电影后,每个算法都使用单独评估精确召回方法。 Precision和Recall帮助我们了解了多少预测结果是准确的,它回忆起来的正确程度。精确度是相关的检索结果的一部分,并给出为
8.实施
使用首先从此站点下载GraphLab“https://turi.com/download/installgraphlab-create.html”。注册免费试用或作为学术用户免费使用软件。按照站点中的给定过程成功安装
软件。在此之前,请确保安装并配置了最新版本的python系统中最新的pip版本。
现在下载用于测试和分析算法的Movie Lens数据集。
数据集可以从站点下载
“http://grouplens.org/datasets/movielens/100k/”。该数据集包括:
1,00,000个评分(1-5),来自943个用户,约1682部电影。
每位用户至少评了20部电影。
它包含电影的类型信息。
它还包含用户的详细信息,如年龄,性别,职业和邮政编码。
将此数据集加载到python中。
接下来在加载的数据集上训练Simple Popularity模型。代码是给出的
下面:
参数:
Train_data:包含必需的培训数据。
User_id:表示每个用户ID的列。
Titem_id:这里我们提到要推荐的项目。
目标:代表用户给出的评级的列。
例如,前五个用户的前5项建议:
资料编号:[3233]
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。