CN107368540A - 基于用户自相似度的多模型相结合的电影推荐方法 - Google Patents
基于用户自相似度的多模型相结合的电影推荐方法 Download PDFInfo
- Publication number
- CN107368540A CN107368540A CN201710493196.6A CN201710493196A CN107368540A CN 107368540 A CN107368540 A CN 107368540A CN 201710493196 A CN201710493196 A CN 201710493196A CN 107368540 A CN107368540 A CN 107368540A
- Authority
- CN
- China
- Prior art keywords
- movie
- matrix
- user
- symbol
- similarity
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 54
- 238000001914 filtration Methods 0.000 claims abstract description 27
- 238000010801 machine learning Methods 0.000 claims abstract description 7
- 239000011159 matrix material Substances 0.000 claims description 117
- 238000012549 training Methods 0.000 claims description 51
- 238000011156 evaluation Methods 0.000 claims description 34
- 238000003066 decision tree Methods 0.000 claims description 31
- 238000002790 cross-validation Methods 0.000 claims description 18
- 238000012360 testing method Methods 0.000 claims description 18
- 238000012795 verification Methods 0.000 claims description 13
- 238000012216 screening Methods 0.000 claims description 10
- 238000004364 calculation method Methods 0.000 claims description 6
- 239000012535 impurity Substances 0.000 claims description 6
- NAWXUBYGYWOOIX-SFHVURJKSA-N (2s)-2-[[4-[2-(2,4-diaminoquinazolin-6-yl)ethyl]benzoyl]amino]-4-methylidenepentanedioic acid Chemical compound C1=CC2=NC(N)=NC(N)=C2C=C1CCC1=CC=C(C(=O)N[C@@H](CC(=C)C(O)=O)C(O)=O)C=C1 NAWXUBYGYWOOIX-SFHVURJKSA-N 0.000 claims description 3
- 238000000354 decomposition reaction Methods 0.000 claims description 3
- 230000008569 process Effects 0.000 claims description 3
- 238000012545 processing Methods 0.000 claims description 3
- 238000012552 review Methods 0.000 claims description 3
- 238000005516 engineering process Methods 0.000 abstract description 3
- 239000013598 vector Substances 0.000 abstract description 3
- 238000007418 data mining Methods 0.000 abstract description 2
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000000295 complement effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/25—Fusion techniques
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种基于用户自相似度的多模型相结合的电影推荐方法,属于数据科学与数据挖掘技术领域。本发明基于用户对电影的评分信息的自相似度来动态地将协同过滤与内容过滤所得结果进行融合,得到推荐结果。在电影的多值属性与机器学习中的分类树模型的结合时,提出了将一部电影的多个属性值分开,使之成为独立的特征向量,将多值属性与分类树模型很好地结合在一起。本发明提出的基于用户自相似度的多模型相结合的电影推荐方法与已有方法相比较,优点是:本发明基于用户对电影的评分信息的自相似度来动态地将协同过滤与内容过滤所得结果进行融合,得到的推荐结果更符合用户需求,推荐质量更高。
Description
技术领域
本发明涉及一种基于用户自相似度的多模型相结合的电影推荐方法,属于数据科学与数据挖掘技术领域。
背景技术
“信息超载”使得用户往往难以从茫茫的信息海洋中寻找有帮助的信息,因此用户需要信息筛选。而机器学习使得机器逐渐承担了部分重复工作,还有可能发现人类难以看到的信息。因此各种推荐引擎发挥了较好作用。现有的推荐算法主要分为单一推荐模型和多个推荐模型相融合的方法。由于多个推荐模型相融合能够起到互补作用,因此推荐准确度更高。在将基于用户的协同过滤与基于内容的协同过滤结合时,赵晨婷等人在文献《深入推荐引擎相关算法》中提出了计算用户自相似度的模型,即根据用户的自相似度,混合两种协同过滤技术产生的推荐集。但文献中并未给出详细解决方案。在利用多值属性的信息作为推荐系统的物品信息输入时,吕世嘉在文献《基于耦合相似度的协同过滤算法的研究及应用》中提出了以耦合相似度来计算多值属性下的协同过滤中的用户、物品的相似度的协同过滤技术,即根据多值属性中每个项目的多个取值的耦合程度,来计算每个项目的相似度,用于协同过滤技术中相似邻居、相似物品的查找计算。该方法未考虑用户自相似度的问题。
基于内容的协同过滤中,有个基本假设:用户会喜欢和他以前喜欢的东西相似的东西,因此如果考虑到一个用户喜欢的物品的自相似度,则推荐结果将更准确。目前针对电影的推荐算法中,还未见考虑用户自相似度的推荐方法。
发明内容
本发明的目的是提出一种基于用户自相似度的多模型相结合的电影推荐方法。本发明基于用户对电影的评分信息的自相似度来动态地将协同过滤与内容过滤所得结果进行融合,得到推荐结果。在电影的多值属性与机器学习中的分类树模型的结合时,提出了将一部电影的多个属性值分开,使之成为独立的特征向量,将多值属性与分类树模型很好地结合在一起。
本发明的目的是通过以下技术方案实现的。
本发明的目的是提出一种基于用户自相似度的多模型相结合的电影推荐方法,具体操作为:
步骤一、构建数据库。
获取影评信息,从所述影评信息中抽取影评信息中的用户ID、电影ID及对应的评分信息,构建电影评分数据库;从所述影评信息中抽取电影信息构建电影内容数据库。
所述电影信息包括电影ID、电影名称、电影类型。
步骤二、构建和训练协同过滤模型。
在步骤一操作的基础上,构建和训练协同过滤模型。所述协同过滤模型为交替最小二乘法ALS(alternating least squares)模型。
所述交替最小二乘法模型选用Spark分布式计算框架中的机器学习库Mllib的ALS模型。
将影评训练数据集导入交替最小二乘法ALS模型,训练最小二乘法ALS模型的具体操作步骤为:
步骤2.1:切分数据集。将电影评分数据库中的数据分为3部分,分别为:影评训练数据集、交叉验证数据集、影评测试数据集。其中,影评训练数据集中的数据多于1000条,交叉验证数据集中的数据多于300条。
步骤2.2:将影评训练数据集导入交替最小二乘法ALS(alternating leastsquares)模型,同时设置3个参数的值,分别是:潜在因子个数,用符号rank表示;矩阵分解的迭代次数,用符号iterations表示;过拟合参数,用符号Lambda表示;其中,rank<m/20并且rank<n/20,m为影评训练数据集中用户的数量,n为影评训练数据集中电影的数量;iterations>10;Lambda<10。训练后获得最佳ALS模型。具体操作步骤为:
步骤2.2.1:设定rank∈{8,10,12},iterations∈{10,20},Lambda∈{0.01,0.1,1};并将rank、iterations、Lambda的取值进行排列组合,获得18组rank、iterations、Lambda值。
步骤2.2.2:将步骤2.2.1得到的rank、iterations、Lambda的18组取值分别作为交替最小二乘法ALS模型的参数设定值,训练18次所述最小二乘法ALS模型,获得18个ALS模型,所述ALS模型中包含用户特征矩阵、电影特征矩 阵以及特征数,分别用符号U、V和rank表示。
步骤2.2.3:将交叉验证数据集中的数据表示为一个p行3列的矩阵,用符号B表示,其中,p为交叉验证数据集中数据的数量。
步骤2.2.4:将交叉验证数据集中的数据分别导入到步骤2.2.2所述的18个ALS模型中,每次得到一个q行3列的预测评分矩阵,用符号B′表示,然后使用公式(1)计算对应的RMSE值。其中,q=m1×n1,m1为交叉验证数据集中用户的数量,n1为交叉验证数据集中电影的数量。
其中,bi,3为矩阵B中第i行第3列的值,i∈[1,p];b′j,3为矩阵B′中第j行第3列的值,并且满足b′j,1=bi,1,b′j,2=bi,2;bi,1为矩阵B中第i行第1列的值,bi,2为矩阵B中第i行第2列的值;b′j,1为矩阵B′中第j行第1列的值,b′j,2为矩阵B′中第j行第2列的值,j∈[1,q]。
步骤2.2.5:从18个RMSE值找最小值,记为RMSEmin,将RMSEmin对应的ALS模型作为最佳ALS模型。
步骤三、测试最佳ALS模型的扩展度。
步骤3.1:将影评测试数据集中的数据表示为一个p′行3列的矩阵,用符号C表示,其中,p′为影评测试数据集中数据的数量。
步骤3.2:将影评测试数据集中的数据导入到最佳ALS模型中,得到一个q′行3列的预测评分矩阵,用符号C′表示,然后使用公式(2)计算对应的RMSE′值。其中,q′=m2×n2,m2为影评测试数据集中用户的数量,n2为影评测试数据集中电影的数量。
其中,ci′,3为矩阵C中第i′行第3列的值,i′∈[1,p′];c′j″,3为矩阵C′中第j′行第3列的值,j′∈[1,q′],并且满足c′j″,1=ci′,1,c′j′,2=ci′,2;ci′,1为矩阵C中第i′行第1列的值,ci′,2为矩阵C中第i′行第2列的值;c′j′,1为矩阵C′中第j′行第1列的值,c′j″,2为矩阵C′中第j′行第2列的值。
步骤3.3:如果公式(3)成立,则认为最佳ALS模型具备较好的扩展度, 找到最佳ALS模型;否则,返回步骤二,重新设置rank、iterations、Lambda三个参数,重新寻找最佳ALS模型。
|RMSEmin-RMSE′|<ε (3)
其中,ε为以人为设定的阈值,ε<0.1。
步骤四、对于目标用户(用符号u表示),使用最佳ALS模型产生第一电影推荐集。
步骤4.1:将电影评分数据库中的全部数据表示为一个s行3列的评分矩阵,用符号G表示。其中,s为电影评分数据库中数据的数量。
步骤4.2:将电影评分数据库中的全部数据导入到最佳ALS模型中,得到一个s′行3列的预测评分矩阵,用符号G′表示。
步骤4.3:生成第一电影推荐集,用符号C1表示。
步骤4.3.1:从预测评分矩阵G′中抽出目标用户u的全部预测评分数据,表示为一个m3行2列的目标用户u的预测矩阵,用符号H′表示,其中,m3为电影评分数据库中电影的总量,矩阵第一列为电影ID,第二列为预测评分。
步骤4.3.2:从电影评分数据库中筛选出目标用户u已经评分过的电影,构成目标用户u的电影集合,用符号H表示。
步骤4.3.3:利用目标用户u的电影集合H,从目标用户u的预测矩阵H′中筛选出目标用户u未评分过的电影及其预测评分,构建矩阵Q。
步骤4.3.4:将矩阵Q根据预测评分降序排序,选择前N项的电影ID,即预测评分值最大的N个电影,作为第一电影推荐集C1。其中,N为人为预先设定值,N≤50。
步骤五、构建和训练分类树模型。
步骤5.1:建立电影评级数据库,用符号R表示。如果电影评分数据库中的评分有小数,则将电影评分数据库中的数据扩大整数倍,全部转换为整数,将所述整数作为电影评级,然后用电影ID、电影名称以及对应的电影评级构建电影评级数据库R。
步骤5.2:统计电影内容数据库中电影类型的所有取值,电影类型的所有取值的数量用符号k表示;然后建立一个K行(k+1)列的电影属性矩阵,用符号V表示;K表示电影内容数据库中数据的数量。电影属性矩阵V的第一列对应电影ID,其它每一列对应一个电影类型取值。电影属性矩阵V中的任一元素,用符号 vrt表示,0≤r≤K-1,0≤t≤k。当t=0时,vrt的值为电影ID;否则,vrt∈{0,1},0表示电影内容数据库中的第r条数据中的电影,不属于第t个电影类型;1表示电影内容数据库中的第r条数据中的电影,属于第t个电影类型。
所述分类类别包括:
步骤5.3:从电影评级数据库里抽选出目标用户u评分过的电影记录,构建目标用户评级记录表;用其余数据构建目标用户未评级电影记录表。
步骤5.4:对应目标用户评级记录表中的每条记录,到电影分类属性数据库抽出每部电影的属性矩阵,构成电影评级及分类属性数据表。
步骤5.5:为了避免分类树模型过拟合问题,将目标用户评级记录表中的数据按照7:3比例分为训练集和验证集。
步骤5.6:设置3个参数的值,分别是:最大深度,用符号maxDepth表示,maxDepth∈[1,50];最大桶数,用符号maxBin表示,maxBin∈[1,200];不纯度度量,用符号impurity表示,impurity∈{"gini","entropy"},gini指基尼不纯度,entropy是熵不纯度。然后将训练集放入分类树模型中进行训练,得到训练好的决策树。训练过程具体为:
步骤5.7.1:设定maxDepth∈{5,10,15},maxBin∈{5,10,20,30,100,200},impurity∈{"gini","entropy"},并将maxDepth、maxBin和impurity的值进行排列组合,得到36组参数组合。
步骤5.7.2:将36组参数组合分别放入分类树模型中进行训练,得到36棵决策树。
步骤5.8:验证模型。将验证集中的数据分别放入步骤5.7.2得到的36棵决策树中进行验证,得到每棵决策树模型对应的分类错误率。具体操作为:
步骤5.8.1:验证数据集放入决策树中进行预测,得到每部电影的预测评级;
步骤5.8.2:将步骤5.8.1得到的每部电影的预测评级与电影评级数据库R中的相应电影评级进行比较,统计所述预测评级与电影评级数据库R中的电影评级不一致的电影的数量,用符号t表示;然后通过公式(4)得到分类错误率,用符号px表示。
其中,nc表示验证集中的电影总量。
步骤5.9:从步骤5.8中得到的36棵决策树对应的分类错误率px中找出最小值,记为pmin,将pmin对应的决策树模型为最佳决策树模型。
步骤六、对于目标用户u,使用最佳决策树模型产生第二电影推荐集。具体为:
步骤6.1:将目标用户未评级电影记录表中的数据作为输入,放入最佳决策树中,得到目标用户未评分过的电影及其预测评级,构建一个nw行2列的预测评级矩阵,用符号记为W表示。其中,W的第1列为电影ID,第2列为预测评级;nw为目标用户未评级电影记录表中电影的数量。
步骤6.2:将预测评级矩阵W按预测评级降序排序,筛选出前N个记录,作为第二推荐电影集,用符号C2表示。
步骤七、将第一推荐电影集C1和第二推荐电影集C2进行融合,得到最终电影推荐集。具体为:
步骤7.1:从电影评分数据库中抽出目标用户u的所有评分记录,并计算用户u的平均评分,用符号表示,选出评分高于平均评分的电影ID,组成用户u电影集,用符号Iu′表示。
步骤7.2:计算用户的协同自相似度。具体为:
步骤7.2.1:从电影评分数据库中抽出用户u电影集Iu′中所有电影的评分记录,组成用户u喜欢的电影的评分矩阵,用符号D表示。
步骤7.2.2:通过公式如式(5)计算用户u电影集Iu′中某一部电影(用符号x表示)与其他电影的协同相似度,用符号sim(x)表示。
其中,为用户u电影集Iu′中电影的数量;y为用户u电影集Iu′中除x以外的一部电影;u′∈Eu;Eu为评分矩阵D中的用户的集合;ru′,x为用户u′对电影x的评分;ru′,y为用户u′对电影y的评分。
步骤7.2.3:通过公式如式(6)计算用户u的协同自相似度,用符号sim(u)'表示。
其中,表示用户u电影集Iu′中电影的数量。
步骤7.2.4:通过公式(7)调整用户u的协同自相似度。为电影评分数据库中的每一位用户计算协同自相似度,使用所有用户的协同自相似度的平均值来减小计算偏差。
其中,sim(u)1′为调整后的用户u的协同自相似度;为电影评分数据库中所有用户的协同自相似度的平均值。
步骤7.3:计算用户u的内容自相似度。
步骤7.3.1:从步骤5.2中得到的电影属性矩阵V中抽取用户u电影集Iu′中的电影的属性矩阵,用符号E表示。
步骤7.3.2:通过公式(8)计算用户u电影集Iu′中每部电影x的内容自相似度,用符号sim(x)′表示。
其中,|N(x)∩N(y)|指电影x的属性集与电影y的属性集的交集中属性的数量;|N(x)|表示电影x的属性数量;|N(y)|表示电影y的属性数量。
步骤7.3.3:通过公式(9)计算用户u的内容自相似度,用符号sim(u)″表示。
步骤7.3.4:通过公式(10)调整用户u的内容自相似度。为电影评分数据库中的每一位用户计算内容自相似度,使用所有用户的内容自相似度的平均值来减小计算偏差。
其中,sim(u)1″为调整后的用户u的内容自相似度;为电影评分数据库中所有用户的内容自相似度的平均值。
步骤7.4:通过公式(11)计算目标用户u喜欢的电影的自相似度,用符号pu。
步骤7.5:对步骤四得到的第一电影推荐集C1和步骤六得到的第二电影推荐集C2进行处理,得到最终的推荐电影集。具体操作为:
步骤7.5.1:分别将第一电影推荐集C1和第二电影推荐集C2中的电影倒序编号。
步骤7.5.2:通过公式(12)计算第一电影推荐集C1中每部电影的分值,用符号score1表示。
score1=(1-pu)×nb (12)
其中,nb表示第一电影推荐集C1中第b部电影的编号,b∈[1,N];
步骤7.5.3:通过公式(13)计算第二电影推荐集C2中每部电影的分值,用符号score2表示;
score2=(1-pu)×nb′ (13)
其中,nb′表示第二电影推荐集C2中第b部电影的编号。
步骤7.5.4:生成最终电影推荐集。将第一电影推荐集C1和第二电影推荐集C2合并,对得到的全部score1和score2值降序排序,取前N部电影,作为最终电影推荐集推荐给用户u。
有益效果
本发明提出的基于用户自相似度的多模型相结合的电影推荐方法与已有方法相比较,具有以下优点:
①本发明基于用户对电影的评分信息的自相似度来动态地将协同过滤与内容过滤所得结果进行融合,得到的推荐结果更符合用户需求,推荐质量更高;
②在电影的多值属性与机器学习中的分类树模型的结合时,提出了将一部电影的多个属性值分开,使之成为独立的特征向量,将多值属性与分类树模型很好地结合在一起。
附图说明
图1为本发明具体实施方式中基于用户自相似度的多模型相结合的电影推荐方法的操作流程如图。
具体实施方式
下面结合附图和实施例对本发明技术方案做详细描述。
使用本发明的基于用户自相似度的多模型相结合的电影推荐方法为用户推荐电影,其操作流程如图1所示,具体操作为:
步骤一、构建数据库。
获取影评信息,从所述影评信息中抽取影评信息中的用户ID、电影ID及对应的评分信息,构建电影评分数据库;从所述影评信息中抽取电影信息构建电影内容数据库。
所述电影信息包括电影ID、电影名称、电影类型。
本实施例中影评信息是从GroupLens官网下载Movielens 100k离线数据集作为数据库。官网下载的最新数据集有4个数据集文件,包含的信息如表1所示。
表1 Movielens 100k数据集内含的文件
文件名 | 包含的数据 |
movies.csv | movieID、title、genres |
rating.csv | userID、movieID、rating、timestamp |
tags.csv | userID、movieID、tag、timestamp |
links.csv | movieID、imdbID、tmdbID |
从“ratings.csv”文件中抽取影评信息中的userID(用户ID)、movieID(电影ID)、rating(评分),构建电影评分数据库;从“movies.csv”文件中抽取movieID(电影ID)、title(电影名称)、genres(电影类型),构建电影内容数据库。
步骤二、构建和训练协同过滤模型。
在步骤一操作的基础上,构建和训练协同过滤模型。所述协同过滤模型为交替最小二乘法ALS(alternating least squares)模型。构建和训练协同过滤模型的具体操作为:
步骤2.1:切分数据集。将电影评分数据库中的数据按照6:2:2的比例分为为:影评训练数据集、交叉验证数据集、影评测试数据集。
步骤2.2:将影评训练数据集导入交替最小二乘法ALS(alternating leastsquares)模型,同时设置3个参数的值,分别是:潜在因子个数,用符号rank表 示;矩阵分解的迭代次数,用符号iterations表示;过拟合参数,用符号Lambda表示;其中,rank<m/20并且rank<n/20,m为影评训练数据集中用户的数量,n为影评训练数据集中电影的数量;iterations>10;Lambda<10。训练后获得最佳ALS模型。
所述交替最小二乘法模型选用Spark分布式计算框架中的机器学习库Mllib的ALS模型。
具体操作步骤为:
步骤2.2.1:设定rank∈{8,10,12},iterations∈{10,20},Lambda∈{0.01,0.1,1};并将rank、iterations、Lambda的取值进行排列组合,获得18组rank、iterations、Lambda值。
步骤2.2.2:将步骤2.2.1得到的rank、iterations、Lambda的18组取值分别作为交替最小二乘法ALS模型的参数设定值,训练18次所述最小二乘法ALS模型,获得18个ALS模型,所述ALS模型中包含用户特征矩阵、电影特征矩阵以及特征数,分别用符号U、V和rank表示。
步骤2.2.3:将交叉验证数据集中的数据表示为一个p行3列的矩阵,用符号B表示,其中,p为交叉验证数据集中数据的数量。
步骤2.2.4:将交叉验证数据集中的数据分别导入到步骤2.2.2所述的18个ALS模型中,每次得到一个q行3列的预测评分矩阵,用符号B′表示,然后使用公式(1)计算对应的RMSE值。其中,q=m1×n1,m1为交叉验证数据集中用户的数量,n1为交叉验证数据集中电影的数量。
其中,bi,3为矩阵B中第i行第3列的值,i∈[1,p];b′j,3为矩阵B′中第j行第3列的值,并且满足b′j,1=bi,1,b′j,2=bi,2;bi,1为矩阵B中第i行第1列的值,bi,2为矩阵B中第i行第2列的值;b′j,1为矩阵B′中第j行第1列的值,b′j,2为矩阵B′中第j行第2列的值,j∈[1,q]。
步骤2.2.5:从18个RMSE值找最小值,记为RMSEmin,将RMSEmin对应的ALS模型作为最佳ALS模型。本实施例中,当rank、iterations、Lambda取值为(8,0.1,20)时,得到RMSEmin=0.94386667。
步骤三、测试最佳ALS模型的扩展度。
步骤3.1:将影评测试数据集中的数据表示为一个p′行3列的矩阵,用符号C表示,其中,p′为影评测试数据集中数据的数量。
步骤3.2:将影评测试数据集中的数据导入到最佳ALS模型中,得到一个q′行3列的预测评分矩阵,用符号C′表示,然后使用公式(2)计算对应的RMSE′值。其中,q′=m2×n2,m2为影评测试数据集中用户的数量,n2为影评测试数据集中电影的数量。
其中,ci′,3为矩阵C中第i′行第3列的值,i′∈[1,p′];c′j″,3为矩阵C′中第j′行第3列的值,j′∈[1,q′],并且满足c′j″,1=ci′,1,c′j′,2=ci′,2;ci′,1为矩阵C中第i′行第1列的值,ci′,2为矩阵C中第i′行第2列的值;c′j′,1为矩阵C′中第j′行第1列的值,c′j″,2为矩阵C′中第j′行第2列的值。
实施例中,得到RMSE′=0.94530394。
步骤3.3:如果公式(3)成立,则认为最佳ALS模型具备较好的扩展度,找到最佳ALS模型;否则,返回步骤二,重新设置rank、iterations、Lambda三个参数,重新寻找最佳ALS模型。
|RMSEmin-RMSE′|<ε (3)
实施例中,设置ε=0.01,|RMSEmin-RMSE′|=0.00143727<ε,因此找到最佳ALS模型。
步骤四、对于目标用户(用符号u表示),使用最佳ALS模型产生第一电影推荐集。
步骤4.1:将电影评分数据库中的全部数据表示为一个s行3列的评分矩阵,用符号G表示。其中,s为电影评分数据库中数据的数量。
步骤4.2:将电影评分数据库中的全部数据导入到最佳ALS模型中,得到一个s′行3列的预测评分矩阵,用符号G′表示。
步骤4.3:生成第一电影推荐集,用符号C1表示。
步骤4.3.1:从预测评分矩阵G′中抽出目标用户u的全部预测评分数据,表示为一个m3行2列的目标用户u的预测矩阵,用符号H′表示,其中,m3为电影 评分数据库中电影的总量,矩阵第一列为电影ID,第二列为预测评分。
步骤4.3.2:从电影评分数据库中筛选出目标用户u已经评分过的电影,构成目标用户u的电影集合,用符号H表示。
步骤4.3.3:利用目标用户u的电影集合H,从目标用户u的预测矩阵H′中筛选出目标用户u未评分过的电影及其预测评分,构建矩阵Q。
步骤4.3.4:将矩阵Q根据预测评分降序排序,选择前N项的电影ID,即预测评分值最大的N个电影,作为第一电影推荐集C1。其中,N为人为预先设定值,N≤50。
实施例中,以用户ID为“2”的用户为例,取N=10,得到的推荐电影集及其预测评分如表2所示。
表2 ALS模型得到排名前10的电影及其预测评分
电影ID | 预测评分 |
67504 | 4.756351277595497 |
83411 | 4.756351277595497 |
83359 | 4.756351277595497 |
83318 | 4.756351277595497 |
89904 | 4.630605225404368 |
8535 | 4.59962803550836 |
42418 | 4.589065042697284 |
65037 | 4.565093552921484 |
59684 | 4.565093552921484 |
178 | 4.5279683399571375 |
步骤五、构建和训练分类树模型。
步骤5.1:建立电影评级数据库,用符号R表示。如果电影评分数据库中的评分有小数,则将电影评分数据库中的数据扩大整数倍,全部转换为整数,将所述整数作为电影评级,然后用电影ID、电影名称以及对应的电影评级构建电影评级数据库R。
步骤5.2:统计电影内容数据库中电影类型的所有取值,电影类型的所有取值的数量用符号k表示;然后建立一个K行(k+1)列的电影属性矩阵,用符号V表示;K表示电影内容数据库中数据的数量。电影属性矩阵V的第一列对应电影 ID,其它每一列对应一个电影类型取值。电影属性矩阵V中的任一元素,用符号vrt表示,0≤r≤K-1,0≤t≤k。当t=0时,vrt的值为电影ID;否则,vrt∈{0,1},0表示电影内容数据库中的第r条数据中的电影,不属于第t个电影类型;1表示电影内容数据库中的第r条数据中的电影,属于第t个电影类型。
所述分类类别包括:奇幻(Fantasy)、喜剧(Comedy)、儿童(Children)、动画(Animation)、冒险(Adventure)、爱情(Romance)、剧情(Drama)、惊悚(Thriller)、犯罪(Crime)、动作(Action)、恐怖(Horror)、推理(Mystery)、科幻小说(Sci-Fi)、巨幕电影(IMAX)、记录片(Documentary)、战争(War)、音乐(Musical)、西部(Western)、黑色电影(Film-Noir)、未知题材(no genres listed)。
例如,movieID为1、2、3、4、5的电影属性如表3所示,将多值属性分离后得到的属性矩阵如表4所示。
表3电影属性
表4电影属性矩阵
步骤5.3:从电影评级数据库里抽选出目标用户u评分过的电影记录,构建目标用户评级记录表;用其余数据构建目标用户未评级电影记录表。
步骤5.4:对应目标用户评级记录表中的每条记录,到电影分类属性数据库抽出每部电影的属性矩阵,构成电影评级及分类属性数据表。
步骤5.5:为了避免分类树模型过拟合问题,将目标用户评级记录表中的数据随机分为训练集(70%)和验证集(30%)。
步骤5.6:设置3个参数的值,分别是:最大深度,用符号maxDepth表示,maxDepth∈[1,50];最大桶数,用符号maxBin表示,maxBin∈[1,200];不纯度度量,用符号impurity表示,impurity∈{"gini","entropy"},gini指基尼不纯度,entropy是熵不纯度。然后将训练集放入分类树模型中进行训练,得到训练好的决策树。训练过程具体为:
步骤5.7.1:设定maxDepth∈{5,10,15},maxBin∈{5,10,20,30,100,200},impurity∈{"gini","entropy"},并将maxDepth、maxBin和impurity的值进行排列组合,得到36组参数组合。
步骤5.7.2:将36组参数组合分别放入分类树模型中进行训练,得到36棵决策树。
步骤5.8:验证模型。将验证集中的数据分别放入步骤5.7.2得到的36棵决策树中进行验证,得到每棵决策树模型对应的分类错误率。具体操作为:
步骤5.8.1:验证数据集放入决策树中进行预测,得到每部电影的预测评级;
步骤5.8.2:将步骤5.8.1得到的每部电影的预测评级与电影评级数据库R中的相应电影评级进行比较,统计所述预测评级与电影评级数据库R中的电影评级不一致的电影的数量,用符号t表示;然后通过公式(4)得到分类错误率,用符号px表示。
其中,nc表示验证集中的电影总量。
步骤5.9:从步骤5.8中得到的36棵决策树对应的分类错误率px中找出最小值,记为pmin,将pmin对应的决策树模型为最佳决策树模型。
本实施例中,以用户ID为“2”的用户为例,训练并验证用户2的评分电影数据后得到的最佳参数组合为(impurity,maxDepth,maxBin)=(gini,10,5)时,得到pmin=0.09210526。
步骤六、对于目标用户u,使用最佳决策树模型产生第二电影推荐集。具体为:
步骤6.1:将目标用户未评级电影记录表中的数据作为输入,放入最佳决策树中,得到目标用户未评分过的电影及其预测评级,构建一个nw行2列的预测评级矩阵,用符号记为W表示。其中,W的第1列为电影ID,第2列为预测评 级;nw为目标用户未评级电影记录表中电影的数量。
步骤6.2:将预测评级矩阵W按预测评级降序排序,筛选出前N个记录,作为第二推荐电影集,用符号C2表示。
实施例中,以用户ID为“2”的用户为例,取N=10,得到的推荐电影集及其预测评级如表5所示。
表5决策树模型得到的推荐电影集
电影ID | 预测评分 |
53 | 10.0 |
163 | 10.0 |
201 | 10.0 |
329 | 10.0 |
383 | 10.0 |
392 | 10.0 |
426 | 10.0 |
443 | 10.0 |
458 | 10.0 |
506 | 10.0 |
步骤七、将第一推荐电影集C1和第二推荐电影集C2进行融合,得到最终电影推荐集。具体为:
步骤7.1:从电影评分数据库中抽出目标用户u的所有评分记录,并计算用户u的平均评分,用符号表示,选出评分高于平均评分的电影ID,组成用户u电影集,用符号Iu′表示。
步骤7.2:计算用户的协同自相似度。具体为:
步骤7.2.1:从电影评分数据库中抽出用户u电影集Iu′中所有电影的评分记录,组成用户u喜欢的电影的评分矩阵,用符号D表示。
步骤7.2.2:通过公式如式(5)计算用户u电影集Iu′中某一部电影(用符号x表示)与其他电影的协同相似度,用符号sim(x)表示。
其中,为用户u电影集Iu′中电影的数量;y为用户u电影集Iu′中除x以外的一部电影;u′∈Eu;Eu为评分矩阵D中的用户的集合;ru′,x为用户u′对电影x的评分;ru′,y为用户u′对电影y的评分。
步骤7.2.3:通过公式如式(6)计算用户u的协同自相似度,用符号sim(u)'表示。
其中,表示用户u电影集Iu′中电影的数量。
实施例中,以用户ID为“2”的用户为例,得到sim(u)'=0.33046389。
步骤7.2.4:通过公式(7)调整用户u的协同自相似度。为电影评分数据库中的每一位用户计算协同自相似度,使用所有用户的协同自相似度的平均值来减小计算偏差,公式如式(6)所示。
其中,sim(u)1′为调整后的用户u的协同自相似度;为电影评分数据库中所有用户的协同自相似度的平均值。
实施例中,抽取13位用户计算平均协同自相似度,得到以用户ID为“2”的用户为例,得到sim(u)1′=0.53537417。
步骤7.3:计算用户u的内容自相似度。
步骤7.3.1:从步骤5.2中得到的电影属性矩阵V中抽取用户u电影集Iu′中的电影的属性矩阵,用符号E表示。
步骤7.3.2:通过公式(8)计算用户u电影集Iu′中每部电影x的内容自相似度,用符号sim(x)′表示。
其中,|N(x)∩N(y)|指电影x的属性集与电影y的属性集的交集中属性的数 量;|N(x)|表示电影x的属性数量;|N(y)|表示电影y的属性数量。
步骤7.3.3:通过公式(9)计算用户u的内容自相似度,用符号sim(u)″表示。
本实施例中,以用户ID为“2”的用户为例,得到sim(u)″=0.27116689。
步骤7.3.4:通过公式(10)调整用户u的内容自相似度。为电影评分数据库中的每一位用户计算内容自相似度,使用所有用户的内容自相似度的平均值来减小计算偏差。
其中,sim(u)1″为调整后的用户u的内容自相似度;为电影评分数据库中所有用户的内容自相似度的平均值。
本实施例中,全部用户(671位)的平均内容自相似度为以用户ID为“2”的用户为例,得到sim(u)1″=0.42660247。
步骤7.4:通过公式(11)计算目标用户u喜欢的电影的自相似度,用符号pu。
本实施例中,以用户ID为“2”的用户为例,得到pu=0.48098832。
步骤7.5:对步骤四得到的第一电影推荐集C1和步骤六得到的第二电影推荐集C2进行处理,得到最终的推荐电影集。具体操作为:
步骤7.5.1:分别将第一电影推荐集C1和第二电影推荐集C2中的电影倒序编号。
步骤7.5.2:通过公式(12)计算第一电影推荐集C1中每部电影的分值,用符号score1表示。
score1=(1-pu)×nb
其中,nb表示第一电影推荐集C1中第b部电影的编号,b∈[1,N]。
步骤7.5.3:通过公式(13)计算第二电影推荐集C2中每部电影的分值,用符号score2表示。
score2=(1-pu)×nb′
其中,nb′表示第二电影推荐集C2中第b部电影的编号。
步骤7.5.4:生成最终电影推荐集。将第一电影推荐集C1和第二电影推荐集C2合并,对得到的全部score1和score2值降序排序,取前10部电影,使用这些电影的ID生成推荐给用户u的最终电影推荐集,用符号recommandset表示。以用户ID为“2”的用户为例,recommandset={53,163,67504,83411,201,83359,329,83318,383,89904}。
Claims (2)
1.一种基于用户自相似度的多模型相结合的电影推荐方法,其特征在于:其具体操作步骤为:
步骤一、构建数据库;
获取影评信息,从所述影评信息中抽取影评信息中的用户ID、电影ID及对应的评分信息,构建电影评分数据库;从所述影评信息中抽取电影信息构建电影内容数据库;
所述电影信息包括电影ID、电影名称、电影类型;
步骤二、构建和训练协同过滤模型;
在步骤一操作的基础上,构建和训练协同过滤模型;所述协同过滤模型为交替最小二乘法ALS模型;
构建和训练协同过滤模型的具体操作为:
步骤2.1:切分数据集;将电影评分数据库中的数据分为3部分,分别为:影评训练数据集、交叉验证数据集、影评测试数据集;其中,影评训练数据集中的数据多于1000条,交叉验证数据集中的数据多于300条;
步骤2.2:将影评训练数据集导入交替最小二乘法ALS模型,同时设置3个参数的值,分别是:潜在因子个数,用符号rank表示;矩阵分解的迭代次数,用符号iterations表示;过拟合参数,用符号Lambda表示;其中,rank<m/20并且rank<n/20,m为影评训练数据集中用户的数量,n为影评训练数据集中电影的数量;iterations>10;Lambda<10;训练后获得最佳ALS模型;
将影评训练数据集导入交替最小二乘法ALS模型,训练最小二乘法ALS模型的具体操作步骤为:
步骤2.2.1:设定rank∈{8,10,12},iterations∈{10,20},Lambda∈{0.01,0.1,1};并将rank、iterations、Lambda的取值进行排列组合,获得18组rank、iterations、Lambda值;
步骤2.2.2:将步骤2.2.1得到的rank、iterations、Lambda的18组取值分别作为交替最小二乘法ALS模型的参数设定值,训练18次所述最小二乘法ALS模型,获得18个ALS模型,所述ALS模型中包含用户特征矩阵、电影特征矩阵以及特征数,分别用符号U、V和rank表示;
步骤2.2.3:将交叉验证数据集中的数据表示为一个p行3列的矩阵,用符号B表示,其中,p为交叉验证数据集中数据的数量;
步骤2.2.4:将交叉验证数据集中的数据分别导入到步骤2.2.2所述的18个ALS模型中,每次得到一个q行3列的预测评分矩阵,用符号B′表示,然后使用公式(1)计算对应的RMSE值;其中,q=m1×n1,m1为交叉验证数据集中用户的数量,n1为交叉验证数据集中电影的数量;
其中,bi,3为矩阵B中第i行第3列的值,i∈[1,p];b′j,3为矩阵B′中第j行第3列的值,并且满足b′j,1=bi,1,b′j,2=bi,2;bi,1为矩阵B中第i行第1列的值,bi,2为矩阵B中第i行第2列的值;b′j,1为矩阵B′中第j行第1列的值,b′j,2为矩阵B′中第j行第2列的值,j∈[1,q];
步骤2.2.5:从18个RMSE值找最小值,记为RMSEmin,将RMSEmin对应的ALS模型作为最佳ALS模型;
步骤三、测试最佳ALS模型的扩展度;
步骤3.1:将影评测试数据集中的数据表示为一个p′行3列的矩阵,用符号C表示,其中,p′为影评测试数据集中数据的数量;
步骤3.2:将影评测试数据集中的数据导入到最佳ALS模型中,得到一个q′行3列的预测评分矩阵,用符号C′表示,然后使用公式(2)计算对应的RMSE′值;其中,q′=m2×n2,m2为影评测试数据集中用户的数量,n2为影评测试数据集中电影的数量;
其中,ci′,3为矩阵C中第i′行第3列的值,i′∈[1,p′];c′j′,3为矩阵C′中第j′行第3列的值,j′∈[1,q′],并且满足c′j′,1=ci′,1,c′j′,2=ci′,2;ci′,1为矩阵C中第i′行第1列的值,ci′,2为矩阵C中第i′行第2列的值;c′j′,1为矩阵C′中第j′行第1列的值,c′j′,2为矩阵C′中第j′行第2列的值;
步骤3.3:如果公式(3)成立,则认为最佳ALS模型具备较好的扩展度,找到最佳ALS模型;否则,返回步骤二,重新设置rank、iterations、Lambda三个参数,重新寻找最佳ALS模型;
|RMSEmin-RMSE′|<ε (3)
其中,ε为以人为设定的阈值,ε<0.1;
步骤四、对于目标用户,用符号u表示,使用最佳ALS模型产生第一电影推荐集;
步骤4.1:将电影评分数据库中的全部数据表示为一个s行3列的评分矩阵,用符号G表示;其中,s为电影评分数据库中数据的数量;
步骤4.2:将电影评分数据库中的全部数据导入到最佳ALS模型中,得到一个s′行3列的预测评分矩阵,用符号G′表示;
步骤4.3:生成第一电影推荐集,用符号C1表示;
步骤4.3.1:从预测评分矩阵G′中抽出目标用户u的全部预测评分数据,表示为一个m3行2列的目标用户u的预测矩阵,用符号H′表示,其中,m3为电影评分数据库中电影的总量,矩阵第一列为电影ID,第二列为预测评分;
步骤4.3.2:从电影评分数据库中筛选出目标用户u已经评分过的电影,构成目标用户u的电影集合,用符号H表示;
步骤4.3.3:利用目标用户u的电影集合H,从目标用户u的预测矩阵H′中筛选出目标用户u未评分过的电影及其预测评分,构建矩阵Q;
步骤4.3.4:将矩阵Q根据预测评分降序排序,选择前N项的电影ID,即预测评分值最大的N个电影,作为第一电影推荐集C1;其中,N为人为预先设定值,N≤50;
步骤五、构建和训练分类树模型;
步骤5.1:建立电影评级数据库,用符号R表示;如果电影评分数据库中的评分有小数,则将电影评分数据库中的数据扩大整数倍,全部转换为整数,将所述整数作为电影评级,然后用电影ID、电影名称以及对应的电影评级构建电影评级数据库R;
步骤5.2:统计电影内容数据库中电影类型的所有取值,电影类型的所有取值的数量用符号k表示;然后建立一个K行(k+1)列的电影属性矩阵,用符号V表示;K表示电影内容数据库中数据的数量;电影属性矩阵V的第一列对应电影ID,其它每一列对应一个电影类型取值;电影属性矩阵V中的任一元素,用符号vrt表示,0≤r≤K-1,0≤t≤k;当t=0时,vrt的值为电影ID;否则,vrt∈{0,1},0表示电影内容数据库中的第r条数据中的电影,不属于第t个电影类型;1表示电 影内容数据库中的第r条数据中的电影,属于第t个电影类型;
所述分类类别包括:
步骤5.3:从电影评级数据库里抽选出目标用户u评分过的电影记录,构建目标用户评级记录表;用其余数据构建目标用户未评级电影记录表;
步骤5.4:对应目标用户评级记录表中的每条记录,到电影分类属性数据库抽出每部电影的属性矩阵,构成电影评级及分类属性数据表;
步骤5.5:为了避免分类树模型过拟合问题,将目标用户评级记录表中的数据按照7:3比例分为训练集和验证集。;
步骤5.6:设置3个参数的值,分别是:最大深度,用符号maxDepth表示,maxDepth∈[1,50];最大桶数,用符号maxBin表示,maxBin∈[1,200];不纯度度量,用符号impurity表示,impurity∈{"gini","entropy"},gini指基尼不纯度,entropy是熵不纯度;然后将训练集放入分类树模型中进行训练,得到训练好的决策树;训练过程具体为:
步骤5.7.1:设定maxDepth∈{5,10,15},maxBin∈{5,10,20,30,100,200},impurity∈{"gini","entropy"},并将maxDepth、maxBin和impurity的值进行排列组合,得到36组参数组合;
步骤5.7.2:将36组参数组合分别放入分类树模型中进行训练,得到36棵决策树;
步骤5.8:验证模型;将验证集中的数据分别放入步骤5.7.2得到的36棵决策树中进行验证,得到每棵决策树模型对应的分类错误率;具体操作为:
步骤5.8.1:验证数据集放入决策树中进行预测,得到每部电影的预测评级;
步骤5.8.2:将步骤5.8.1得到的每部电影的预测评级与电影评级数据库R中的相应电影评级进行比较,统计所述预测评级与电影评级数据库R中的电影评级不一致的电影的数量,用符号t表示;然后通过公式(4)得到分类错误率,用符号px表示;
其中,nc表示验证集中的电影总量;
步骤5.9:从步骤5.8中得到的36棵决策树对应的分类错误率px中找出最小值,记为pmin,将pmin对应的决策树模型为最佳决策树模型;
步骤六、对于目标用户u,使用最佳决策树模型产生第二电影推荐集;具体为:
步骤6.1:将目标用户未评级电影记录表中的数据作为输入,放入最佳决策树中,得到目标用户未评分过的电影及其预测评级,构建一个nw行2列的预测评级矩阵,用符号记为W表示;其中,W的第1列为电影ID,第2列为预测评级;nw为目标用户未评级电影记录表中电影的数量;
步骤6.2:将预测评级矩阵W按预测评级降序排序,筛选出前N个记录,作为第二推荐电影集,用符号C2表示;
步骤七、将第一推荐电影集C1和第二推荐电影集C2进行融合,得到最终电影推荐集;具体为:
步骤7.1:从电影评分数据库中抽出目标用户u的所有评分记录,并计算用户u的平均评分,用符号表示,选出评分高于平均评分的电影ID,组成用户u电影集,用符号I′u表示;
步骤7.2:计算用户的协同自相似度;具体为:
步骤7.2.1:从电影评分数据库中抽出用户u电影集I′u中所有电影的评分记录,组成用户u喜欢的电影的评分矩阵,用符号D表示;
步骤7.2.2:通过公式如式(5)计算用户u电影集I′u中某一部电影x与其他电影的协同相似度,用符号sim(x)表示;
其中,为用户u电影集I′u中电影的数量;y为用户u电影集I′u中除x以外的一部电影;u′∈Eu;Eu为评分矩阵D中的用户的集合;ru′,x为用户u′对电影x的评分;ru′,y为用户u′对电影y的评分;
步骤7.2.3:通过公式如式(6)计算用户u的协同自相似度,用符号sim(u)'表示;
其中,表示用户u电影集I′u中电影的数量;
步骤7.2.4:通过公式(7)调整用户u的协同自相似度;为电影评分数据库中的每一位用户计算协同自相似度,使用所有用户的协同自相似度的平均值来减小计算偏差;
其中,sim(u)′1为调整后的用户u的协同自相似度;为电影评分数据库中所有用户的协同自相似度的平均值;
步骤7.3:计算用户u的内容自相似度;
步骤7.3.1:从步骤5.2中得到的电影属性矩阵V中抽取用户u电影集I′u中的电影的属性矩阵,用符号E表示;
步骤7.3.2:通过公式(8)计算用户u电影集I′u中每部电影x的内容自相似度,用符号sim(x)′表示;
其中,|N(x)∩N(y)|指电影x的属性集与电影y的属性集的交集中属性的数量;|N(x)|表示电影x的属性数量;|N(y)|表示电影y的属性数量;
步骤7.3.3:通过公式(9)计算用户u的内容自相似度,用符号sim(u)″表示;
步骤7.3.4:通过公式(10)调整用户u的内容自相似度;为电影评分数据库中的每一位用户计算内容自相似度,使用所有用户的内容自相似度的平均值来减小计算偏差;
其中,sim(u)″1为调整后的用户u的内容自相似度;为电影评分数据库中所有用户的内容自相似度的平均值;
步骤7.4:通过公式(11)计算目标用户u喜欢的电影的自相似度,用符号pu;
步骤7.5:对步骤四得到的第一电影推荐集C1和步骤六得到的第二电影推荐 集C2进行处理,得到最终的推荐电影集;具体操作为:
步骤7.5.1:分别将第一电影推荐集C1和第二电影推荐集C2中的电影倒序编号;
步骤7.5.2:通过公式(12)计算第一电影推荐集C1中每部电影的分值,用符号score1表示;
score1=(1-pu)×nb (12)其中,nb表示第一电影推荐集C1中第b部电影的编号,b∈[1,N];
步骤7.5.3:通过公式(13)计算第二电影推荐集C2中每部电影的分值,用符号score2表示;
score2=(1-pu)×n′b (13)
其中,n′b表示第二电影推荐集C2中第b部电影的编号;
步骤7.5.4:生成最终电影推荐集;将第一电影推荐集C1和第二电影推荐集C2合并,对得到的全部score1和score2值降序排序,取前N部电影,作为最终电影推荐集推荐给用户u。
2.如权利要求1所述的一种基于用户自相似度的多模型相结合的电影推荐方法,其特征在于:其步骤二中所述交替最小二乘法模型选用Spark分布式计算框架中的机器学习库Mllib的ALS模型。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710493196.6A CN107368540A (zh) | 2017-06-26 | 2017-06-26 | 基于用户自相似度的多模型相结合的电影推荐方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710493196.6A CN107368540A (zh) | 2017-06-26 | 2017-06-26 | 基于用户自相似度的多模型相结合的电影推荐方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107368540A true CN107368540A (zh) | 2017-11-21 |
Family
ID=60305649
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710493196.6A Pending CN107368540A (zh) | 2017-06-26 | 2017-06-26 | 基于用户自相似度的多模型相结合的电影推荐方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107368540A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108776673A (zh) * | 2018-05-23 | 2018-11-09 | 哈尔滨工业大学 | 关系模式的自动转换方法、装置及存储介质 |
CN109948668A (zh) * | 2019-03-01 | 2019-06-28 | 成都新希望金融信息有限公司 | 一种多模型融合方法 |
CN110046647A (zh) * | 2019-03-08 | 2019-07-23 | 同盾控股有限公司 | 一种验证码机器行为识别方法及装置 |
CN110191363A (zh) * | 2019-05-31 | 2019-08-30 | 电子科技大学 | 一种面向家庭组用户的推荐模型 |
CN110288444A (zh) * | 2019-06-28 | 2019-09-27 | 第四范式(北京)技术有限公司 | 实现用户相关推荐的方法和系统 |
CN110390059A (zh) * | 2019-07-10 | 2019-10-29 | 南京工业大学 | 一种基于类型相关的电影推荐算法 |
CN110532330A (zh) * | 2019-09-03 | 2019-12-03 | 四川长虹电器股份有限公司 | 基于hive的协同过滤推荐方法 |
CN110569374A (zh) * | 2019-08-20 | 2019-12-13 | 成都信息工程大学 | 一种基于改进协同过滤算法的电影推荐方法 |
CN117078112A (zh) * | 2023-10-16 | 2023-11-17 | 云境商务智能研究院南京有限公司 | 应用于企业异常用电管理的能耗检测方法及数据分析系统 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100185579A1 (en) * | 2009-01-22 | 2010-07-22 | Kwang Seok Hong | User-based collaborative filtering recommendation system and method for amending similarity using information entropy |
CN102184199A (zh) * | 2011-04-22 | 2011-09-14 | 北京志腾新诺科技有限公司 | 网络信息推荐方法及系统 |
CN102495864A (zh) * | 2011-11-25 | 2012-06-13 | 清华大学 | 基于评分的协同过滤推荐方法及系统 |
CN103996143A (zh) * | 2014-05-12 | 2014-08-20 | 华东师范大学 | 一种基于隐式偏见和好友兴趣的电影评分预测方法 |
CN104063481A (zh) * | 2014-07-02 | 2014-09-24 | 山东大学 | 一种基于用户实时兴趣向量的电影个性化推荐方法 |
CN104462383A (zh) * | 2014-12-10 | 2015-03-25 | 山东科技大学 | 一种基于用户多种行为反馈的电影推荐方法 |
CN104462385A (zh) * | 2014-12-10 | 2015-03-25 | 山东科技大学 | 一种基于用户兴趣模型的电影个性化相似度计算方法 |
CN105868334A (zh) * | 2016-03-28 | 2016-08-17 | 云南财经大学 | 一种基于特征递增型的电影个性化推荐方法及系统 |
CN106056427A (zh) * | 2016-05-25 | 2016-10-26 | 中南大学 | 一种基于Spark的大数据混合模型的移动推荐方法 |
-
2017
- 2017-06-26 CN CN201710493196.6A patent/CN107368540A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100185579A1 (en) * | 2009-01-22 | 2010-07-22 | Kwang Seok Hong | User-based collaborative filtering recommendation system and method for amending similarity using information entropy |
CN102184199A (zh) * | 2011-04-22 | 2011-09-14 | 北京志腾新诺科技有限公司 | 网络信息推荐方法及系统 |
CN102495864A (zh) * | 2011-11-25 | 2012-06-13 | 清华大学 | 基于评分的协同过滤推荐方法及系统 |
CN103996143A (zh) * | 2014-05-12 | 2014-08-20 | 华东师范大学 | 一种基于隐式偏见和好友兴趣的电影评分预测方法 |
CN104063481A (zh) * | 2014-07-02 | 2014-09-24 | 山东大学 | 一种基于用户实时兴趣向量的电影个性化推荐方法 |
CN104462383A (zh) * | 2014-12-10 | 2015-03-25 | 山东科技大学 | 一种基于用户多种行为反馈的电影推荐方法 |
CN104462385A (zh) * | 2014-12-10 | 2015-03-25 | 山东科技大学 | 一种基于用户兴趣模型的电影个性化相似度计算方法 |
CN105868334A (zh) * | 2016-03-28 | 2016-08-17 | 云南财经大学 | 一种基于特征递增型的电影个性化推荐方法及系统 |
CN106056427A (zh) * | 2016-05-25 | 2016-10-26 | 中南大学 | 一种基于Spark的大数据混合模型的移动推荐方法 |
Non-Patent Citations (1)
Title |
---|
荣辉桂 等: ""基于用户相似度的协同过滤推荐算法"", 《通信学报》 * |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108776673B (zh) * | 2018-05-23 | 2020-08-18 | 哈尔滨工业大学 | 关系模式的自动转换方法、装置及存储介质 |
CN108776673A (zh) * | 2018-05-23 | 2018-11-09 | 哈尔滨工业大学 | 关系模式的自动转换方法、装置及存储介质 |
CN109948668A (zh) * | 2019-03-01 | 2019-06-28 | 成都新希望金融信息有限公司 | 一种多模型融合方法 |
CN110046647A (zh) * | 2019-03-08 | 2019-07-23 | 同盾控股有限公司 | 一种验证码机器行为识别方法及装置 |
CN110191363A (zh) * | 2019-05-31 | 2019-08-30 | 电子科技大学 | 一种面向家庭组用户的推荐模型 |
CN110288444B (zh) * | 2019-06-28 | 2022-03-01 | 第四范式(北京)技术有限公司 | 实现用户相关推荐的方法和系统 |
CN110288444A (zh) * | 2019-06-28 | 2019-09-27 | 第四范式(北京)技术有限公司 | 实现用户相关推荐的方法和系统 |
CN110390059A (zh) * | 2019-07-10 | 2019-10-29 | 南京工业大学 | 一种基于类型相关的电影推荐算法 |
CN110569374A (zh) * | 2019-08-20 | 2019-12-13 | 成都信息工程大学 | 一种基于改进协同过滤算法的电影推荐方法 |
CN110569374B (zh) * | 2019-08-20 | 2022-03-18 | 成都信息工程大学 | 一种基于改进协同过滤算法的电影推荐方法 |
CN110532330A (zh) * | 2019-09-03 | 2019-12-03 | 四川长虹电器股份有限公司 | 基于hive的协同过滤推荐方法 |
CN110532330B (zh) * | 2019-09-03 | 2022-06-03 | 四川长虹电器股份有限公司 | 基于hive的协同过滤推荐方法 |
CN117078112A (zh) * | 2023-10-16 | 2023-11-17 | 云境商务智能研究院南京有限公司 | 应用于企业异常用电管理的能耗检测方法及数据分析系统 |
CN117078112B (zh) * | 2023-10-16 | 2024-01-02 | 云境商务智能研究院南京有限公司 | 应用于企业异常用电管理的能耗检测方法及数据分析系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107368540A (zh) | 基于用户自相似度的多模型相结合的电影推荐方法 | |
CN106802956B (zh) | 一种基于加权异构信息网络的电影推荐方法 | |
CN111797321B (zh) | 一种面向不同场景的个性化知识推荐方法及系统 | |
West et al. | Knowledge base completion via search-based question answering | |
CN105138653B (zh) | 一种基于典型度和难度的题目推荐方法及其推荐装置 | |
CN102799671B (zh) | 基于PageRank算法的网络个性化推荐方法 | |
Selke et al. | Pushing the boundaries of crowd-enabled databases with query-driven schema expansion | |
WO2018112696A1 (zh) | 一种内容推荐方法及内容推荐系统 | |
CN106250545A (zh) | 一种基于用户搜索内容的多媒体推荐方法及系统 | |
CN109902823B (zh) | 一种基于生成对抗网络的模型训练方法及设备 | |
CN107633444A (zh) | 基于信息熵与模糊c均值聚类的推荐系统噪声过滤方法 | |
CN104298787A (zh) | 一种基于融合策略的个性化推荐方法及装置 | |
CN107391577B (zh) | 一种基于表示向量的作品标签推荐方法和系统 | |
CN112464100B (zh) | 信息推荐模型训练方法、信息推荐方法、装置及设备 | |
CN111125540A (zh) | 一种融合知识图谱表示学习和偏置矩阵分解的推荐方法 | |
CN106791964A (zh) | 广播电视节目推荐系统及方法 | |
CN107169830B (zh) | 一种基于聚类pu矩阵分解的个性化推荐方法 | |
CN113342994B (zh) | 一种基于无采样协作知识图网络的推荐系统 | |
CN108804492B (zh) | 用于多媒体对象推荐的方法及装置 | |
Sappadla et al. | Movie Recommender System | |
KR102600697B1 (ko) | 제한적 볼츠만 머신 구동 기반의 인터랙티브 맞춤형 검색 방법 | |
Saadati et al. | Movie recommender systems: Implementation and performance evaluation | |
CN111259223B (zh) | 基于情感分析模型的新闻推荐和文本分类方法 | |
Insuwan et al. | Improving missing values imputation in collaborative filtering with user-preference genre and singular value decomposition | |
Chuanyan et al. | Neural graph filtering for context-aware recommendation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB03 | Change of inventor or designer information |
Inventor after: Zhang Xin Inventor after: Lin Ling Inventor after: Lv Kun Inventor after: Dong Hao Inventor before: Zhang Xin Inventor before: Lin Ling Inventor before: Lv Kun |
|
CB03 | Change of inventor or designer information | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20171121 |
|
WD01 | Invention patent application deemed withdrawn after publication |