一种动态的多维情境感知电影推荐系统及其实现方法
【专利摘要】本发明公开了一种动态的多维情境感知电影推荐系统及其实现方法,包括系统交互界面模块、用户-物品-情境-评分数据库模块以及情境感知推荐引擎模块;本发明充分考虑了情境感知推荐过程中情境的动态变化性,主要体现在情境建模,情境添加,情境权重的变化等几个方面,在原有情境感知推荐系统基础上,将情境建模中的情境静态泛化改进为动态聚类泛化,在情境选择过程中提出一种动态新增情境的算法,并根据变化的情境计算不同用户的情境权重,最终实现一个动态的多维情境感知推荐系统,为用户提供更加个性化,精度更高的推荐。
【专利说明】一种动态的多维情境感知电影推荐系统及其实现方法
【技术领域】
[0001]本发明涉及一种动态的多维情境感知电影推荐系统及其实现方法。
【背景技术】
[0002]随着互联网技术的飞速发展,人们接收到的信息越来越多以致有大量无效或冗余信息影响效率和时间,为了解决信息过载的问题,推荐系统应运而生。推荐系统为用户提供最可能需要的信息帮助用户节省精力和时间。情境感知推荐系统是推荐系统的一个热门研究分支,它将情境信息融入到推荐系统中,因为在很多应用中,在不同的情境下,用户的兴趣选择是不同的,所以推荐的信息也应该随之变化。
[0003]情境感知推荐系统所考虑的情境和具体应用有关,不同应用所需要的情境信息并不相同。情境可以是物理环境中的情境,如天气,地点,时间等,也可以是与应用相关的用户信息,物品信息等,只要是在用户与该应用交互过程中可能产生影响的实体均可称之为情境。
[0004]情境感知推荐过程大体可分为三个范式:情境前置过滤,情境后置过滤和情境推荐建模。前置过滤是将多维数据空间根据情境值进行降维处理,得到情境化的数据空间,然后用传统的推荐算法进行计算。后置过滤是不考虑情境信息,用传统的推荐算法进行计算得到推荐结果,然后再通过情境和用户行为之间的关系进行推荐结果的情境化过滤。情境推荐建模是指在推荐算法中加入情境信息。
[0005]目前的一些情境感知推荐算法能够为用户提供精度较高的推荐,但现有的技术仍存在一些问题:情境的类型和对应取值在初始被设定之后,便不会再改变,这主要表现在以下几点:1,情境建模过程中,情境泛化过程往往依赖于领域专家知识,设定情境区间后,区间值不会随着数据集的变化而变化,移植性和动态性比较欠缺;2,传统的情境感知推荐算法较少考虑新增了情境该如何处理;3,传统的情境感知推荐算法大多将不同情境类型平等对待,而实际上不同用户对不同的情境类型看重程度都是不同的。
【发明内容】
[0006]针对现有技术中存在的问题,本发明的目的是提供一种动态的多维情境感知电影推荐系统及其实现方法,其充分考虑随着数据集的变化,情境的选择和相关的取值也会随之变化,可以较好的将情境的动态性以及用户对上下文的不同侧重性融合起来,从而为用户提供更加合理的推荐。
[0007]为了实现上述目的,本发明通过一定方式体现情境的动态性和推荐的动态性,为用户提供更加灵活和个性化的推荐。本发明的具体方案为:一种动态的多维情境感知电影推荐系统,它包括交互界面模块、用户-电影-情境-评分数据库以及情境感知电影推荐引擎模块;其中,所述交互界面模块作为用户与系统交互的接口,包括用户向系统填写观影时的情境信息和评分以及系统为用户在特定情境下推荐合适的歌曲;所述用户-电影-情境-评分数据库用于存储用户在不同情境下对电影的评分信息,包括用户的标识符、电影的标识符、情境信息和评分;所述时序推荐引擎模块是系统的核心部件,用于从用户-电影-情境-评分数据库中读取数据并对情境和评分行为建模,通过将多维情境数据空间分解,然后加权再综合的方法为用户在特定情境下推荐电影。
[0008]上述的情境感知电影推荐系统,其进一步特征在于:
[0009]所述交互界面模块分为两个单元:展示区单元和操作区单元。展示区单元用于展示电影对应的图片、电影演员,导演,影片简介和评分。操作区单元用于供用户填写观影时的情境信息和评分以及推荐操作。
[0010]所述情境感知推荐引擎模块用来分析用户在不同情境下评分偏好的不同,进而为用户生成在不同情境下的推荐列表。该模块情境建模、情境动态添加,情境权重计算,情境过滤和推荐列表生成工作。
[0011]本发明同时公开了一种动态的多维情境感知电影推荐方法,组建上述的情境感知电影推荐系统,其特征在于:
[0012]步骤一、用户在系统上产生动作:
[0013]包含η个用户的用户集U= Iu1, U2,…,uj ;对于用户U,其在系统上产生的动作分为填写情境信息和评分信息。供用户填写的情境信息为显示情境信息,包括观影同伴,观看地点,观看方式,观影心情等。评分信息是用户对该电影的评分,评分范围为I到5分。
[0014]步骤二、系统将用户动作收集到用户-电影-情境-评分数据库:
[0015]系统将用户的行为以四元组(user, movie, contexts, rate)的形式存储到用户-电影-情境-评分数据库;其中,user表示用户及其标识符,movie表示电影及其标识符,contexts表示用户对电影movie打分时显示填写的情境信息和系统隐式生成的情境信息,rate表示用户user在情境contexts下对电影item的评分;
[0016]步骤三、动态情境感知推荐引擎模块读取用户-电影-情境-评分数据库和当前用户情境信息,通过建模与分析为用户生成一个包含若干电影的推荐列表:
[0017]包含k部电影的电影集M= Im1, m2,...,mk};对于用户u根据其当前情境信息,为其推荐的电影列表为R(u) = {mul, mu2,...,,其中N为推荐列表长度,muj e M(I≥j≥N)表示为用户u推荐的电影列表中的第j部电影,所述第j部电影存在于电影集M中;
[0018]步骤四、交互界面模块将推荐列表展示出来。
[0019]上述的动态的多维情境感知电影推荐方法,步骤三中动态情境感知推荐引擎模块,具体工作步骤为:
[0020]步骤3.1、读取情境信息,进行情境建模:
[0021]情境信息表示为cN个情境类型(context type)的情境集C = Icontext1, context2,..., contextcN};每一种情境类型有多个情境值(context value),我们采用动态聚类的方法对其进行情境泛化,生成相应的情境值区间(context segment);
[0022]步骤3.2、选择推荐结果优于无情境推荐结果的情境区间作为情境过滤的候选,用cType表示候选情境类型的个数,然后对每个情境类型(cType ,)进行情境前置过滤,得
到其对应的用户-电影-评分矩阵M (cType J ;
[0023]步骤3.3、对每个用户计算其情境权重,每个情境类型cType i都有一个在某个用户u下的权重值W (u,cType ;
[0024] 步骤3.4、对每个情境类型对应的用户-电影-评分矩阵M(cType ,)采用传统的协同过滤算对每个用户U得出预测评分列表R(u, cType J ,列表的每一项是一个三元组(u, m, R (u, m, cType )),表示用户U,电影m,用户u对电影m在情境类型cType ^下的预测评分 R (u, m, cType J ;
[0025]步骤3.5、利用步骤3.3得到的情境权重对步骤3.4中的不同情境下的预测评分列表进行加权,在每个情境类型下得到加权后的预测评分列表WR (u,cType ,),该列表的每一项为三元组(u, m, WR(u, m, cType D),表示用户u,电影m,用户u对某个电影m在情境类型cType i 下的加权预测评分 WR (u, m, cType J = W (u, cType i)R(u, m, cType J ;然后综合各个情境下的加权预测评分得到最终的对用户u的加权预测评分列表R(u) = SWR(u,CTypei)(I <= i <= |cType|)列表中的每一项为三元组(u,m, R(u,m)),表示用户u,电影m,用户u对电影m的加权预测评分R(u, m) = Σ WR(u, m, CTypei) (I < = i < = cType |);然后根据预测评分高低对预测评分列表R(U)进行排序,根据需要推荐列表里前N个电影给用户U。
[0026]步骤3.6、当出现新的情境类型时,利用动态添加算法添加到原有系统中。
[0027]步骤3.7、当添加新的情境类型时,重新计算各情境类型的权值。
[0028]步骤3.8、根据步骤3.7中得到的更新后的情境权值,重复步骤3.4,3.5对每个用户生成新的推荐列表。
[0029]上述的动态的多维情境感知电影推荐方法,其进一步特征在于:
[0030]步骤3.1中进行动态情境泛化:将多维的推荐评分数据空间分解为多个三维的评分数据空间,每个三维空间包含用户,电影,情境类型三个维度,该三维空间中的评分表示某用户在某个情境类型下对某电影的评分。对每个三维空间进行数据降维,得到情境-电影的二维数据。对每个情境类型CTypei的初始取值集合context values采用聚类的方法进行自动划分,动态泛化,聚类出的每个簇即为泛化后的一个情境区间context segment ο
[0031]步骤3.3中进行情境权值计算:先计算用户u在情境类型CTypei下的评分波动性Voli,波动性计算公式为:
【权利要求】
1.一种动态的多维情境感知电影推荐系统,其特征在于: 包括交互界面模块、用户-电影-情境-评分数据库模块以及情境感知推荐引擎模块;所述交互界面模块为用户与系统交互的接口,包括用户向系统提交自己观看电影时的情境信息和电影评分以及系统为用户推荐合适的电影;所述用户-电影-情境-评分数据库模块用于存储评分信息,记录用户在特定情境下对某个电影的评分;所述情境感知推荐引擎模块是系统的核心部件,用于从所述用户-电影-情境-评分数据库模块中读取数据并进行情境建模和用户评分建模,并在分析情境特征的基础上从候选电影中为用户在当前情境下推荐电影。
2.根据权利要求1所述的多维情境感知电影推荐系统,其特征在于: 所述交互界面模块分为展示区单元和操作区单元;所述展示区单元用于展示电影对应的图片、电影演员、导演、影片简介和评分;所述操作区单元用于供用户填写观影时的情境信息和评分以及推荐操作。
3.根据权利要求1所述的多维情境感知电影推荐系统,其特征在于: 所述情境感知推荐引擎模块用于情境建模、情境动态添加、情境权重计算、情境过滤和推荐列表生成工作。
4.一种动态的多维情境感知电影推荐方法,组建权利要求1所述的多维情境感知电影推荐系统,其特征在于: 步骤一、用户在系统上产生动作: 包含η个用户的用户集U = {Ul,U2,, un};对于用户U,在系统上产生的动作分为填写情境信息和评分信息;供用户填写的情境信息为显式情境信息,包括观影同伴,观看地点,观看方式,观影心情;评分信息是用户对该电影的评分,评分范围为I到5分; 步骤二、系统将用户动作收集到用户-电影-情境-评分数据库: 系统将用户的行为以四元组(user, movie, contexts, rate)的形式存储到用户_电影-情境-评分数据库;其中,user表示用户及其标识符,movie表示电影及其标识符,contexts表示用户对电影movie打分时显示填写的情境信息和系统隐式生成的情境信息,rate表示用户user在情境contexts下对电影item的评分; 步骤三、动态情境感知推荐引擎模块读取用户-电影-情境-评分数据库和当前用户情境信息,通过建模与分析为用户生成一个包含若干电影的推荐列表: 包含k部电影的电影集M= 1!?,!?,...,!?};对于用户u根据其当前情境信息,为其推荐的电影列表为R(u) = {mul, mu2,...,,其中N为推荐列表长度,muj e M(1≤j≤N)表示为用户u推荐的电影列表中的第j部电影,所述第j部电影存在于电影集M中; 步骤四、交互界面模块将推荐列表展示出来。
5.根据权利要求4所述的多维情境感知电影推荐方法,其特征在于:所述步骤三的具体工作步骤为: 步骤3.1、读取情境信息,进行情境建模: 情境信息表示为cN个情境类型(context type)的情境集Contexts = Icontext1, context2,..., ContextdJ ;每一种情境类型有多个情境值(context value),采用动态聚类的方法对其进行情境泛化,生成相应的情境值区间(context segment); 步骤3.2、选择推荐结果优于无情境推荐结果的情境区间作为情境过滤的候选,用cType表示候选情境类型的个数,然后对每个情境类型(cType ,)进行情境前置过滤,得到其对应的用户-电影-评分矩阵M (cType J ; 步骤3.3、对每个用户计算其情境权重,每个情境类型cType i都有一个在某个用户u下的权重值W (u, cType J ; 步骤3.4、对每个情境类型对应的用户-电影-评分矩阵M(cType ,)采用传统的协同过滤算对每个用户u得出预测评分列表R(u, cType ^ ,列表的每一项是一个三元组(u, m, R (u, m, cType )),表示用户U,电影m,用户u对电影m在情境类型cType ^下的预测评分 R (u, m, cType J ; 步骤3.5、利用步骤3.3得到的情境权重对步骤3.4中的不同情境下的预测评分列表进行加权,在每个情境类型下得到加权后的预测评分列表WR(u,cType J,该列表的每一项为三元组(u, m, WR (u, m, cType )),表示用户u,电影m,用户u对某个电影m在情境类型cTypei下的加权预测评分WR (u, m, cType J = W (u, cType i)R(u, m, cType J ;然后综合各个情境下的加权预测评分得到最终的对用户u的加权预测评分列表R(U) = ΣWR(u, CTypei) (I < =i <= |cType|)列表中的每一项为三元组(u, m, R(u, m)),表示用户u,电影m,用户u对电影m的加权预测评分R(u, m) = XffR(u, m, CTypei) (I <= i <= cType |);然后根据预测评分高低对预测评分列表R(U)进行排序,根据需要推荐列表里前N个电影给用户u ; 步骤3.6、出现新的情境类型时,利用动态添加算法添加到原有系统中; 步骤3.7、添加新的情境类型时,重新计算各情境类型的权值; 步骤3.8、根据步骤3.7中得到的更新后的情境权值,重复步骤3.4和步骤3.5对每个用户生成新的推荐列表。
6.根据权利要求5所述的多维情境感知电影推荐方法,其特征在于,所述步骤3.1中进行动态情境泛化是指: 将多维的推荐评分数据空间分解为多个三维的评分数据空间,每个三维空间包含用户、电影、情境类型三个维度,该三维空间中的评分表示某用户在某个情境类型下对某电影的评分;对每个三维空间进行数据降维,得到情境-电影的二维数据;对每个情境类型CTypei的初始取值集合context values采用聚类的方法进行自动划分,动态泛化,聚类出的每个簇即为泛化后的一个情境区间context segment ο
7.根据权利要求5所述的多维情境感知电影推荐方法,其特征在于,所述步骤3.3中进行情境权值计算是指: 先计算用户u在情境类型CTypei下的评分波动性Voli,波动性计算公式为:
8.根据权利要求5所述的多维情境感知电影推荐方法,其特征在于:所述步骤4中,将多维的推荐评分数据空间分解为多个三维的评分数据空间,每个三维空间包含用户,电影,情境类型三个维度,分别计算每个三维空间的预测评分列表,然后再在步骤5中进行加权综合。
9.根据权利要求5所述的多维情境感知电影推荐方法,其特征在于,所述步骤3.6中,动态添加新增情境到原有系统中,添加算法为: 对新增情境进行动态聚类,生成相应的情境区间;对新增情境对应的三维数据空间进行计算得到预测评分列表;计算新增情境类型权重;综合各个情境下的预测评分列表得到最终的预测列表,比较新增情境后的推荐结果与未增加该情境时的推荐结果,若新增情境后的推荐结果更好, 则增加该情境类型,否则不增加。
【文档编号】G06F17/30GK104008204SQ201410270608
【公开日】2014年8月27日 申请日期:2014年6月17日 优先权日:2014年6月17日
【发明者】余萍, 吕建, 陈斌 申请人:南京大学