[发明专利]基于多维偏好模型的电影评分预测与偏好估计方法有效
申请号: | 201710880804.9 | 申请日: | 2017-09-26 |
公开(公告)号: | CN107730306B | 公开(公告)日: | 2021-02-02 |
发明(设计)人: | 王珊蕾;岳昆;潘良辰;李劲 | 申请(专利权)人: | 云南大学 |
主分类号: | G06Q30/02 | 分类号: | G06Q30/02;G06N5/04 |
代理公司: | 成都行之专利代理事务所(普通合伙) 51220 | 代理人: | 温利平;陈靓靓 |
地址: | 650091*** | 国省代码: | 云南;53 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种基于多维偏好模型的电影评分预测与偏好估计方法,采用多维偏好模型表达多个维度的用户偏好,在多维偏好模型的基础上采用变量消元法获取消元结果集合,实现对节点信息的整合,然后生成联合集合,再根据联合集合进行评分预测和偏好估计;整个过程都是基于Spark计算框架实施并行推理,充分利用Spark在大规模数据上的优势,提高评分预测和偏好估计的效率。 | ||
搜索关键词: | 基于 多维 偏好 模型 电影 评分 预测 估计 方法 | ||
【主权项】:
一种基于多维偏好模型的电影评分预测与偏好估计方法,其特征在于,包括以下步骤:S1:读取由电影多维偏好模型,包括模型结构和条件概率表集合θ,其中,是模型的有向无环图结构,V是图中节点的集合,E是有向边的集合,θ是所有节点条件概率表的集合;S2:根据多维偏好模型的节点集合V生成项目集合Name_RDD,RDD表示弹性分布式数据集,Name_RDD表示为集合形式为{R,C1,C2,…,CM,I1,I2,…,IN,L1,L2,…,LN},其中R表示用户评分,Ci表示第i个用户信息,i=1,2,…,M,M表示用户信息的项目数量,Ij表示第j个维度的电影信息,j=1,2,…,N,N表示电影信息的项目数量,Lj表示用户对第j个维度电影信息的用户偏好;定义条件概率集合F_RDD,其元素格式为P(v)或P(v|π(v)),v为当前节点序号,v∈V,π(v)为节点v的父节点集合,P(v)或P(v|π(v))表示条件概率表集合θ中节点v对应的条件概率,条件概率集合F_RDD的生成方式如下:对Name_RDD应用转化操作map,针对Name_RDD中的每一个节点v,查询多维偏好模型判断其是否存在父节点:若没有父节点,则将元素转化成P(v);若有父节点,则将元素转化成P(v|π(v));S3:对条件概率集合F_RDD应用转化操作filter,挑选v是用户信息的元素,划分至用户信息条件概率集合filter1_F_RDD,其余元素划分至非用户信息条件概率集合fileter0_F_RDD;S4:根据最大势搜索的方法确定节点的消元顺序,记消元顺序集合为ρ,定义消元结果集合RF_RDD,生成方式如下:按照消元顺序依次选择消元顺序集合ρ中的消元元素,对于当前消元元素x∈ρ,查找非用户信息条件概率集合filter0_F_RDD中的所有元素,针对非用户信息条件概率集合filter0_RDD中每个元素P(v|π(v)),若v或π(v)与x相同,则将其作为消元元素x的求和项,并从非用户信息条件概率集合filter0_RDD中删除,否则不作任何操作;记得到的消元元素x的求和项数量为K,每个求和项分别记为fk(x),k=1,2,…,K,则得到对应的求和公式∑xF(x),F(x)=f1(x)*…*fK(x),将生成的求和公式放入消元结果集合RF_RDD中,选择下一消元元素,直至消元顺序集合ρ中的元素遍历结束;如果遍历结束后非用户信息条件概率集合filter0_F_RDD不为空,则直接将其中的元素放入消元结果集合RF_RDD中,否则不作任何操作;S5:对消元结果集合RF_RDD应用转化操作union,将用户信息条件概率集合filter1_F_RDD中的所有元素并入RF_RDD中,生成联合集合union_RDD;S6:当需要进行评分预测时,按照以下方法进行:S6.1:对union_RDD应用转化操作map,将求和变量是电影信息集合I中的元素或者是评分R的求和公式元素替换成求和公式括号内的表达式,生成评分条件概率集合R_RDD;S6.2:生成评分预测公式,其具体步骤包括:S6.2.1:读取需要进行评分预测的用户信息EC={C1=c1,C2=c2,…,CM=cM},以及多个维度的电影信息EI={I1=i1,I2=i2,…,IN=iN},将EC和EI的并集记为E,将{C1,C2,…,CM,I1,I2,…,IN}记为CI;S6.2.2:对评分条件概率集合R_RDD应用转化操作map,针对评分条件概率集合R_RDD中每一个形如∑xF(x)或者P(v|π(v))的元素,如果x、v或π(v)属于集合CI,则将其替换为集合E中对应的元素,生成证据集合RE_RDD;S6.2.3:定义查询评分概率表集合RS_RDD,生成方式如下:对证据集合RE_RDD应用转化操作map,针对每一个元素,查询条件概率表集合θ中的所有元素,若能得到证据集合RE_RDD中元素对应的概率数值,则将该元素替换为概率数值;S6.2.4:对查询评分概率表集合RS_RDD应用转化操作filter进行划分,将形如P(v|π(v))或∑xF(x)的元素划分至filter0_RS_RDD,其余元素划分至filter1_RS_RDD。按照v或x在消元集合中的顺序将filter0_RS_RDD中的元素反向进行排序,选择最后一个元素y,若元素y的前一个元素y′形如∑xF(x),则将前一个元素替换为∑xF(x)*y,否则将前一个元素替换为y′*y;然后删除元素y,继续选择当前的最后一个元素进行处理,直到只剩下一个元素;然后将最后剩下的元素表达式与filter0_RS_RDD中的所有元素相乘,相乘的表达式记为评分预测项hr(R);S6.2.5:根据评分预测项hr(R)生成评分预测公式如下:P(R|Ec,EI)=hr(R)ΣRhr(R)]]>S6.3:定义评分预测结果集合RMap_RDD,RMap_RDD的格式为<key,value>,生成方式如下:遍历评分R的所有取值,将当前R的取值作为key,将当前R取值代入评分预测公式所计算到的结果记为value;S6.4:对RMap_RDD应用动作操作collect,收集偏好估计结果集合RMap_RDD的内容,进而对RMap_RDD应用foreach函数,遍历评分预测结果集合RMap_RDD中的所有<key,value>对,选择value最大的<key,value>对的key值作为评分预测结果;S7:当需要进行偏好估计时,按照以下方法进行:S7.1:确定需要进行偏好估计的电影信息集合L′,对union_RDD应用转化操作map,当求和变量属于集合L′,则将对应的求和公式元素替换成求和公式括号内的表达式,生成偏好条件概率集合L_RDD;S7.2:生成偏好估计公式,其具体步骤包括:S7.2.1:读取需要进行偏好估计的用户信息EC={C1=c1,C2=c2,…,CM=cM},将{C1,C2,…,CM}记为C;S7.2.2:对联合集合L_RDD应用转化操作map,针对联合集合union_RDD中每一个形如∑xF(x)或者P(v|π(v))的元素,如果x、v或π(v)属于集合C,则将其替换为集合EC中对应的元素,生成偏好证据集合LE_RDD;S7.2.3:定义查询偏好概率表集合LS_RDD,生成方式如下:对偏好证据集合LE_RDD应用转化操作map,针对每一个元素,查询条件概率表集合θ中的所有元素,若能得到偏好证据集合LE_RDD中元素对应的概率数值,则将该元素替换为概率数值;S7.2.4:对查询偏好概率表集合LS_RDD应用转化操作filter进行划分,将形如P(v|π(v))或∑xF(x)的元素划分至filter0_LS_RDD,其余元素划分至filter1_LS_RDD;按照v或x在消元集合中的顺序将filter0_LS_RDD中的元素进行排序,选择最后一个元素y,若元素y的前一个元素y′形如∑xF(x),则将前一个元素替换为∑xF(x)*y,否则将前一个元素替换为y′*y;然后删除元素y,继续选择当前的最后一个元素进行处理,直到只剩下一个元素;然后将最后剩下的元素表达式与filter1_LS_RDD中的所有元素相乘,相乘的表达式记为偏好估计项hl(L′);S7.2.5:根据hl(L′)生成偏好估计公式:P(L′|Ec)=hr(L′)ΣL′hr(L′);]]>S7.3:定义偏好估计结果集合LMap_RDD,LMap_RDD的格式为<key,value>,生成方式如下:遍历偏好估计的电影信息集合L′的所有取值组合,将当前集合L′中各电影信息的取值作为key,将当前集合L′中各电影信息取值代入评分预测公式所计算到的结果为value;S7.4:对LMap_RDD应用动作操作collect,收集偏好估计结果集合LMap_RDD的内容,进而对LMap_RDD应用foreach函数,遍历偏好估计结果集合选择value最大的<key,value>对的key值作为偏好估计的结果。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于云南大学,未经云南大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201710880804.9/,转载请声明来源钻瓜专利网。