CN106407379A - 一种基于Hadoop平台的电影推荐方法 - Google Patents

一种基于Hadoop平台的电影推荐方法 Download PDF

Info

Publication number
CN106407379A
CN106407379A CN201610819073.2A CN201610819073A CN106407379A CN 106407379 A CN106407379 A CN 106407379A CN 201610819073 A CN201610819073 A CN 201610819073A CN 106407379 A CN106407379 A CN 106407379A
Authority
CN
China
Prior art keywords
user
film
represent
scoring
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201610819073.2A
Other languages
English (en)
Inventor
王宝亮
郭宁宁
常鹏
刘青竹
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tianjin University
Original Assignee
Tianjin University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tianjin University filed Critical Tianjin University
Priority to CN201610819073.2A priority Critical patent/CN106407379A/zh
Publication of CN106407379A publication Critical patent/CN106407379A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/70Information retrieval; Database structures therefor; File system structures therefor of video data
    • G06F16/73Querying
    • G06F16/735Filtering based on additional data, e.g. user or group profiles
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/70Information retrieval; Database structures therefor; File system structures therefor of video data
    • G06F16/78Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F16/7867Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using information manually generated, e.g. tags, keywords, comments, title and artist information, manually generated time, location and usage information, user ratings

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Library & Information Science (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及一种基于Hadoop平台的电影推荐方法,包括:对原数据集进行预处理,建立新的用户项目数据集;在Hadoop平台上采用基于评分倾向的双重预测方法对数据集中的空缺值进行填充,形成高密度的用户‑电影数据集;在Hadoop平台上,数据集进行分布式聚类,得到若干聚类单元,再训练分类器,进行分类;形成推荐列表。本发明不仅具有较好的推荐准确度,同时有效减少推荐时间,可以良好地应用于大规模电影信息推荐场景。

Description

一种基于Hadoop平台的电影推荐方法
技术领域
本发明涉及大数据处理,推荐系统、数据挖掘、电影推荐领域,具体涉及一种分布式信息推荐方法。
背景技术
一、云计算平台以及大数据处理方面
在当前的信息社会中,各行各业的数据量以指数速率在不断增长,于此对应,大数据处理技术也在不断进步,最典型的就是分布式处理技术,如Hadoop,MapReduce等。某些公司推出了大数据处理的云平台,提供完整的大数据服务解决方案,如微软的Azure,阿里云的ODPS。借助这些技术和服务,对于任何企业,存储和处理大量用户数据目前都不是问题。大量的数据以及强大的数据处理能力,使得企业可以从数据中挖掘出更多对于业务有价值的信息,设计更多的业务模式,解决一些之前难以解决的问题,从而获得更多利益。
二、推荐系统方面
个性化推荐是根据用户的基础信息、行为偏好、浏览记录,向用户推荐用户感兴趣的信息和商品。随着电子商务规模的不断扩大,商品个数和种类快速增长,顾客需要花费大量的时间才能找到自己想买的商品和信息。这种浏览大量无关的信息和产品过程无疑会使淹没在信息过载问题中的消费者不断流失。为了解决这些问题,个性化推荐系统应运而生。个性化推荐系统是建立在海量数据挖掘基础上的一种高级商务智能平台,以帮助电子商务网站为其顾客购物提供完全个性化的决策支持和信息服务。最典型的推荐算法是协同过滤算法。
三、数据挖掘方面
数据挖掘是数据库知识发现的一个步骤,是指从大量的数据中通过搜索算法搜索隐藏于其中的信息的过程,数据挖掘通常与计算机科学有关,并通过统计、在线分析处理、情报检索、机器学习、专家系统、模式识别等方法实现上述问题。可以使用分类、估计、预测、关联规则、聚类、复杂数据挖掘等分析方法,分析系统输入输出间的潜在关系,帮助用户快速找到自己感兴趣的信息或商品,提高用户体验的满意度。
四、电影推荐方面
随着社会的进步与发展,电影市场的需求量也在不断提升,随着越来越多种类的电影出现,使得用户很难找到自己真正喜欢的电影,或者要花费很长时间来寻找自己喜欢、感兴趣的电影,同样,电影开发者也很难让自己的电影被大众所了解。因此,很多电影开发商谋求和手机、搜索引擎等合作,借助手机、搜索引擎以此来推荐自己拍摄的电影给用户。对于手机或搜索引擎来说,要推荐一部电影给用户,一个非常重要的方式就是发送相关通知给用户,但是,如果推荐的电影是用户不喜欢的,用户就不会观看,造成资源浪费,而且会对用户造成骚扰,造成不良的用户体验,因此,搜索引擎和手机系统在推送电影的时候需要能够精准的找到真正对这部电影感兴趣的用户群体,这需要推荐系统来支持。
随着电影市场信息量的增多,用户很难在短时间内发现自己感兴趣的电影,传统的搜索引擎难以提供个用户个性化的推荐结果,而且大规模的数据处理过程中时耗过长,单机存储能力有限,难以对大数据进行实时处理。
发明内容
本发明的目的是克服现有技术的上述不足,克服大规模电影信息处理过程中耗时问题以及存储PB级文件系统瓶颈的问题,提供一种能够提高大规模电影信息的推荐效率的电影推荐方法,技术方案如下:
一种基于Hadoop平台的电影推荐方法,包括下列步骤:
步骤1.对原数据集进行预处理,建立新的用户项目数据集:
获取用户-电影数据集,经过预处理后,形成新的用户项目数据集,并将数据集存储在Hadoop平台的HDFS分布式系统上,每个用户的数据作为一个单独的split;
步骤2.在Hadoop平台上采用基于评分倾向的双重预测方法对数据集中的空缺值进行填充,形成高密度的用户-电影数据集:
引入用户评分倾向公式(1),电影评分倾向公式(2),然后进行双重预测评分,对于某电影,如果有最近邻电影,且最近邻无空缺,则作为填充数据;如果数据空缺,则用电影的若干近邻和用户的若干近邻加权求得的结果进行填充,如公式(3)、(4)所示:
其中,ua表示用户a,ub表示用户b,其中1a表示电影a,ub表示电影b;
表示用户a和用户b的共同评分集,rai和rbi分别表示用户ua和ub对项目i的评分值,表示用户ua的评分均值,表示用户ub的评分均值,sim(ua,ub)表示两个用户间的评分倾向;
sim(Ia,Ib)分别表示两个用户间和两个电影间的评分倾向,表示对电影a和电影b共同评分的用户集,rua和rub分别表示用户对电影a和b的评分值,表示用户的评分均值;
Ni表示电影i的最近邻项目集,prbi表示基于电影的评分预测值;
Na表示用户a的最近邻用户集,prbi表示基于用户的评分预测值;
步骤3.在Hadoop平台上,对步骤2得到的数据集进行分布式聚类,得到若干聚类单元,再训练分类器,进行分类,步骤如下:
1)对预测评分后的用户电影矩阵首先进行粗聚类,采用canopy算法,得到聚类的个数K,再引入经典的K-means算法进行进一步的细聚类,将用户-电影评分集根据类内方差和最小的原则分为指定的K类;
2)采用BP神经网络的建模方法,训练分类器;
步骤4.形成推荐列表:
目标电影或用户就通过步骤3被分到不同类别,然后在不同类别中进行相似性度量,找到若干最近邻居集形成推荐列表。
本发明针对大规模电影信息推荐运算耗时过多、文件系统及存储架构落后的问题,提出一种基于Hadoop平台的电影推荐方法。实验显示,本发明不仅具有较好的推荐准确度,同时有效减少推荐时间,可以良好地应用于大规模电影信息推荐场景。
附图说明
图1是Hadoop平台的资源调度结构图
图2是本发明的流程图
具体实施方式
本发明将电影推荐过程分为原始数据集矩阵填充、分布式聚类分类、形成推荐三个阶段,在每个阶段进行并行化设计。第一个阶段提出基于评分倾向的双重预测填充模型,提高填充的数据的准确性。第二阶段采用分布式聚类分类聚合模型得到相似性矩阵,提高推荐准确率。第三个阶段将相似性最高的电影或用户形成推荐列表,推荐给用户。本发明选取MovieLens经典用户-电影数据集进行实验,将数据集按照4:1的比例分成训练集和测试集
Hadoop平台资源调度结构图如图1所示。推荐流程如图2所示,下面对本发明做进一步说明。
(1)对原数据集进行质量检测
质量检测主要是指:对从网络上获取用户-电影数据集进行清洗、过滤处理,去除原始数据中的无关数据、重复数据,平滑噪声数据及与主题无关属性。在分布式集群上,编程实现map、reduce过程,并行化步骤是:
步骤1首先将原始的用户电影评分数据存储到hdfs的Hadoop集群上,块式存储在分布式系统上的各个节点上,每个用户的数据作为一个单独的split;
步骤2 Map节点任务:原始数据的<key,value>(key是用户的ID,value是该用户对应的电影-评分数据),通过map过程,形成新的<Key,Value>,其中Key是电影的title,Value是用户电影评分数据rating,Map可以自动完成对所有用户和电影的评分信息的收集,将数据按照键值对的形式进行统计;
步骤3将Map节点产生的数据分布式存储在HDFS集群上,无需进行Reduce过程。
(2)提出基于评分倾向的双重预测模型,填补稀疏矩阵
原始用户电影评分数据集极度稀疏,造成计算准确度和复杂性问题。因此本发明提出一种在Hadoop平台上基于评分倾向的双重预测模型,对数据集中的空缺值进行填充,减少数据稀疏性,形成高密度的用户-电影数据集。具体步骤是:首先引入用户评分倾向公式(1)所示,电影评分倾向公式(2)所示,然后进行双重预测评分,由于电影信息属性稳定性高,因此该电影如果有最近邻电影,且最近邻无空缺,则作为填充数据;如果数据空缺,则用电影的若干近邻和用户的若干近邻加权求得的结果进行填充如公式(3)、(4)所示。
其中,ua表示用户a,ub表示用户b,其中1a表示电影a,ub表示电影b。
表示用户a和用户b的共同评分集,rai和rbi分别表示用户ua和ub对项目i的评分值。表示用户ua的评分均值,表示用户ub的评分均值。sim(ua,ub)表示两个用户间的评分倾向
sim(Ia,Ib)分别表示两个用户间和两个电影间的评分倾向,表示对电影a和电影b共同评分的用户集。rua和rub分别表示用户对电影a和b的评分值,表示用户的评分均值。
Ni表示电影i的最近邻项目集。prbi表示基于电影的评分预测值。
Na表示用户a的最近邻用户集。prbi表示基于用户的评分预测值。
(3)提出分布式聚类分类聚合模型
针对数据处理过程中,过多计算占用大量内存的问题,提出分布式聚类分类聚合模型,具体步骤如下:
步骤1对预测评分后的用户电影矩阵首先进行粗聚类,采用canopy算法,得到聚类的个数K,再引入经典的K-means算法进行进一步的细聚类,将用户-电影评分集根据类内方差和最小的原则分为指定的K类,如公式(5)所示。
式中:Ci表示第i个聚类类别,中心为μi,xi为该类别的数据点。
首先将(2)产生的大量用户电影数据集改为序列文件格式,设置默认最大聚类迭代次数为10,设定聚类中心数为200,产生聚类中心存储在HDFS上。本发明引入canopy、K-means模型算法,canopy算法过程中简单、计算代价较低,同时K值避免了kmeans算法过程中K值选择的盲目性。
步骤2采用BP神经网络的建模方法,训练分类器。
BP神经网络是一种按照误差逆传播算法训练的多层前馈网络,是目前应用最广泛的神经网络模型之一。误差函数常采用二乘误差函数来定义,如公式(6),当误差函数小于某一个设定的值就会停止神经网络的训练。该算法分成两个部分,第一部分是输入信息从输入层经隐层逐层计算各单元的输出值;第二部分输出误差逐层向前计算出隐层各单元的误差,并用此误差修正前层权值。具体编程思想如下:
Yk表示真实值,Tk表示计算值,E表示误差
a)在Hadoop平台各个Mapper节点启动Map任务,输入数据为各个聚类单元数据,利用所训练数据为当前网络权值计算修正值,将所计算的修正值发送到Reducer端;
b)在Hadoop平台各个Reducer节点启动Reduce任务,每个Reducer端输入权值的所有修正值,并将计算出的修正值的平均值作为输出;采用分布式训练方式,修正各层权值;不断重复,直到误差达到预设精度或学习次数大于设定的最大次数,得到分类器模型。
(4)利用测试数据对推荐模型进行测试,形成推荐列表
针对需要推送的电影,依次进行数据清洗过滤、空缺数据的填充后,目标电影或用户就通过(3)被分到不同类别,然后在不同类别中进行相似性度量,找到若干最近邻居集形成推荐列表。
分布式实验环境是由4台Dell R730服务器组成的Hadoop集群,其中包括1个NameNode节点,3个DataNode节点。四台服务器的操作系统均采用Ubuntu14.04,Hadoop版本为2.6.0。测试数据采用MovieLens数据集进行测试,20%的记录作为测试集。
本发明的优点如下:
1.预测评分时提出基于评分倾向的双重预测评分模型,充分利用用户和电影的自身特性,进行分布式预测评分,可以提高预测评分的准确性,降低矩阵稀疏性。
2.基于Hadoop平台提出聚类分类聚合模型,充分利用聚类、分类的双重优势,既能够监督聚类的结果揭示数据的潜在结构,又能创造有效的分类学习机制,获得更好的分类结果。在此基础上采用并行化处理方式,可以提高聚类分类的速度,提高推荐的时效性。
综上所示,本发明可以获得良好的推荐效果,同时充分利用Hadoop环境在分布式存储和并行运算上的优势,显著减少推荐的时间开销。

Claims (1)

1.一种基于Hadoop平台的电影推荐方法,包括下列步骤:
步骤1.对原数据集进行预处理,建立新的用户项目数据集:
获取用户-电影数据集,经过预处理后,形成新的用户项目数据集,并将数据集存储在Hadoop平台的HDFS分布式系统上,每个用户的数据作为一个单独的split;
步骤2.在Hadoop平台上采用基于评分倾向的双重预测方法对数据集中的空缺值进行填充,形成高密度的用户-电影数据集:
引入用户评分倾向公式(1),电影评分倾向公式(2),然后进行双重预测评分,对于某电影,如果有最近邻电影,且最近邻无空缺,则作为填充数据;如果数据空缺,则用电影的若干近邻和用户的若干近邻加权求得的结果进行填充,如公式(3)、(4)所示:
s i m ( u a , u b ) = &Sigma; i &Element; I a b ( 1 - | r a i - r b i | k ) I a &cup; I b &Sigma; i &Element; I a b ( r a i - r a &OverBar; ) &CenterDot; ( r b i - r b &OverBar; ) &Sigma; i &Element; I a b ( r a i - r a &OverBar; ) 2 &Sigma; i &Element; I a b ( r b i - r b &OverBar; ) 2 - - - ( 1 )
其中,us表示用户a,ub表示用户b,其中ls表示电影a,ub表示电影b;
表示用户a和用户b的共同评分集,rai和rbi分别表示用户ua和ub对项目i的评分值,表示用户ua的评分均值,表示用户ub的评分均值,sim(ua,ub)表示两个用户间的评分倾向;
s i m ( I a , I b ) = &Sigma; u &Element; u a b ( 1 - | r u a - r u b | k ) U a &cup; U b &Sigma; u &Element; U a b ( r u a - r u &OverBar; ) &CenterDot; ( r u b - r u &OverBar; ) &Sigma; u &Element; U a b ( r u a - r a &OverBar; ) 2 &Sigma; u &Element; U a b ( r u b - r b &OverBar; ) 2 - - - ( 2 )
sim(Ia,Ib)分别表示两个用户间和两个电影间的评分倾向,表示对电影a和电影b共同评分的用户集,rua和rub分别表示用户对电影a和b的评分值,表示用户的评分均值;
Ni表示电影i的最近邻项目集,prbi表示基于电影的评分预测值;
pr b i = r a &OverBar; + &Sigma; b &Element; N a s i m ( u a , u b ) &CenterDot; ( r b i - r b &OverBar; ) &Sigma; b &Element; N a ^ s i m ( u a , u b ) - - - ( 4 )
Na表示用户a的最近邻用户集,prbi表示基于用户的评分预测值;
步骤3.在Hadoop平台上,对步骤2得到的数据集进行分布式聚类,得到若干聚类单元,再训练分类器,进行分类,步骤如下:
1)对预测评分后的用户电影矩阵首先进行粗聚类,采用canopy算法,得到聚类的个数K,再引入经典的K-means算法进行进一步的细聚类,将用户-电影评分集根据类内方差和最小的原则分为指定的K类;
2)采用BP神经网络的建模方法,训练分类器;
步骤4.形成推荐列表:
目标电影或用户就通过步骤3被分到不同类别,然后在不同类别中进行相似性度量,找到若干最近邻居集形成推荐列表。
CN201610819073.2A 2016-09-13 2016-09-13 一种基于Hadoop平台的电影推荐方法 Pending CN106407379A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610819073.2A CN106407379A (zh) 2016-09-13 2016-09-13 一种基于Hadoop平台的电影推荐方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610819073.2A CN106407379A (zh) 2016-09-13 2016-09-13 一种基于Hadoop平台的电影推荐方法

Publications (1)

Publication Number Publication Date
CN106407379A true CN106407379A (zh) 2017-02-15

Family

ID=57999242

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610819073.2A Pending CN106407379A (zh) 2016-09-13 2016-09-13 一种基于Hadoop平台的电影推荐方法

Country Status (1)

Country Link
CN (1) CN106407379A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108710703A (zh) * 2018-05-28 2018-10-26 苏州大学 一种基于聚类算法的影片评分预测方法及相关装置
CN108921673A (zh) * 2018-07-16 2018-11-30 广州友米科技有限公司 基于大数据的商品推荐方法
CN110427358A (zh) * 2019-02-22 2019-11-08 北京沃东天骏信息技术有限公司 数据清洗方法及装置和信息推荐方法及装置
CN110659424A (zh) * 2019-09-23 2020-01-07 长沙理工大学 基于Kruskal算法改进的K均值双重聚类推荐的方法、系统及计算机可读存储介质
CN111797875A (zh) * 2019-04-09 2020-10-20 Oppo广东移动通信有限公司 场景建模方法、装置、存储介质及电子设备

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108710703A (zh) * 2018-05-28 2018-10-26 苏州大学 一种基于聚类算法的影片评分预测方法及相关装置
CN108921673A (zh) * 2018-07-16 2018-11-30 广州友米科技有限公司 基于大数据的商品推荐方法
CN108921673B (zh) * 2018-07-16 2021-06-01 广州天高软件科技有限公司 基于大数据的商品推荐方法
CN110427358A (zh) * 2019-02-22 2019-11-08 北京沃东天骏信息技术有限公司 数据清洗方法及装置和信息推荐方法及装置
CN110427358B (zh) * 2019-02-22 2021-04-30 北京沃东天骏信息技术有限公司 数据清洗方法及装置和信息推荐方法及装置
CN111797875A (zh) * 2019-04-09 2020-10-20 Oppo广东移动通信有限公司 场景建模方法、装置、存储介质及电子设备
CN111797875B (zh) * 2019-04-09 2023-12-01 Oppo广东移动通信有限公司 场景建模方法、装置、存储介质及电子设备
CN110659424A (zh) * 2019-09-23 2020-01-07 长沙理工大学 基于Kruskal算法改进的K均值双重聚类推荐的方法、系统及计算机可读存储介质

Similar Documents

Publication Publication Date Title
CN111428147B (zh) 结合社交和兴趣信息的异源图卷积网络的社交推荐方法
CN110955834B (zh) 一种知识图谱驱动的个性化精准推荐方法
CN106407379A (zh) 一种基于Hadoop平台的电影推荐方法
CN110929161B (zh) 一种面向大规模用户的个性化教学资源推荐方法
CN111178624B (zh) 一种新产品需求预测的方法
CN110503531A (zh) 时序感知的动态社交场景推荐方法
CN108960488B (zh) 一种基于深度学习与多源信息融合的饱和负荷空间分布精准预测方法
CN111611488B (zh) 基于人工智能的信息推荐方法、装置、电子设备
CN104050242A (zh) 基于最大信息系数的特征选择、分类方法及其装置
WO2021208535A1 (zh) 基于自动特征分组的推荐方法及装置
CN109902235A (zh) 基于蝙蝠优化的用户偏好聚类协同过滤推荐算法
Zou et al. Reinforcement learning to diversify top-n recommendation
CN105913159A (zh) 基于社交网络事件的用户影响力预测方法
CN112380433A (zh) 面向冷启动用户的推荐元学习方法
CN109754122A (zh) 一种基于随机森林特征提取的bp神经网络的数值预测方法
CN110222838B (zh) 文档排序方法、装置、电子设备及存储介质
CN115114421A (zh) 一种问答模型训练方法
CN113111256A (zh) 基于深度知识图谱的生产工单推荐方法
Caschera et al. MONDE: a method for predicting social network dynamics and evolution
CN112148994A (zh) 信息推送效果评估方法、装置、电子设备及存储介质
CN109885758A (zh) 一种基于二部图的新型随机游走的推荐方法
CN115982373A (zh) 结合多级交互式对比学习的知识图谱推荐方法
CN115344794A (zh) 一种基于知识图谱语义嵌入的旅游景点推荐方法
CN113159976B (zh) 一种微博网络重要用户的识别方法
CN115309985A (zh) 推荐算法的公平性评估方法及ai模型选择方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20170215