掌桥专利:专业的专利平台
掌桥专利
首页

一种基于好奇用户协同过滤的电影推荐方法及装置

文献发布时间:2023-06-19 18:30:43


一种基于好奇用户协同过滤的电影推荐方法及装置

技术领域

本发明涉及计算机技术领域,尤其是一种基于好奇用户协同过滤的电影推荐方法及装置。

背景技术

近年互联网发展迅速,互联网的数据也呈现爆炸式的增长。对于个人用户来说,信息量的增大使得他们更难找到有用的信息。推荐系统正是解决信息过载为标题的有效方法之一。推荐系统记录并学习用户在网络系统上的行为(浏览、购买、收藏等)从而主动为用户推荐感兴趣的物品。由于推荐系统的有效性,推荐系统已被多个领域应用,如电商、娱乐、旅游、社交网络等等。

协同过滤是推荐系统应用最广泛的方法之一。协同过滤分为基于物品的协同过滤和基于用户的协同过滤。其中基于用户的协同过滤是根据目标用户与其他用户对共同选择的物品评分相似性为目标用户寻找k个近邻用户,并使用k个近邻用户相似性与k个近邻用户对目标物品评分预测目标用户对目标物品的评分,生成推荐物品列表按照预测评分从高到低排序。由于基于用户协同过滤算法较为简单易于实现,并且推荐准确度较好,因此得到广泛应用。

尽管基于用户协同过滤算法非常受欢迎,但是由于基于用户协同过滤算法偏向推荐与目标用户之前已选物品非常相似的物品,这些物品可能不需要通过推荐目标用户早已了解,因此容易让使得目标用户感到沉闷。

从心理学角度解释,用户之所以感到沉闷是因为这些推荐不能刺激用户的好奇心。社会好奇心指出,每个人都会对其他人的生活、行为、想法感到好奇。基于用户的协同过滤算法从其他相似近邻用户所选物品生成推荐列表,符合社会好奇心的假设。但是由于基于用户的协同过滤算法偏向于推荐与目标用户之前所选物品相似的物品,因此较难引起目标用户的好奇心。

同时,推荐与目标用户之前所选物品相似的物品,不能开拓目标用户的视野,也不利于商家提高其他物品的曝光率和销售量。

发明内容

有鉴于此,本发明实施例提供一种准确度高且新颖性高的,基于好奇用户协同过滤的电影推荐方法及装置。

本发明实施例的一方面提供了一种基于好奇用户协同过滤的电影推荐方法,包括:

获取用户对电影的评分记录,建立用户评分矩阵;

计算任意两个用户之间的相似度,建立用户相似度矩阵;

计算每部电影的平均流行度;

根据电影类别信息,构建电影类别矩阵;

根据每个用户所选电影的类别,构造用户对每个电影的类别选择频率矩阵,根据所述类别选择频率矩阵计算每个用户的类别选择频率向量的方差;

根据所述用户相似度矩阵、所述平均流行度以及所述类别选择频率向量的方差,计算用户之间的综合相似度,并根据所述综合相似度确定每个用户的好奇用户集合;

根据目标用户的好奇用户集合对目标电影的打分,预测目标用户对所述目标电影的相关度;

根据所述电影类别矩阵和所述方差,计算每部电影类别与用户所选电影类别的频率距离,构造电影-用户类别距离矩阵;

根据所述目标用户对所述目标电影的相关度以及所述电影-用户类别距离矩阵,计算目标用户对目标电影的综合相关度,根据所述综合相关度向所述目标用户推荐电影。

可选地,所述计算任意两个用户之间的相似度,建立用户相似度矩阵这一步骤中,所述相似度的计算公式为:

其中,sim(u

可选地,所述计算每部电影的平均流行度这一步骤中,所述平均流行度的计算公式为:

其中,Pop

可选地,所述根据所述用户相似度矩阵、所述平均流行度以及所述类别选择频率向量的方差,计算用户之间的综合相似度这一步骤中,所述综合相似度的计算公式为:

其中,score(u

可选地,所述根据目标用户的好奇用户集合对目标电影的打分,预测目标用户对所述目标电影的相关度这一步骤中,所述目标用户对所述目标电影的相关度的计算公式为:

其中,rel(u

可选地,所述根据所述电影类别矩阵和所述方差,计算每部电影类别与用户所选电影类别的频率距离这一步骤中,所述每部电影类别与用户所选电影类别的频率距离的计算公式为:

其中,diff(u

本发明实施例的另一方面还提供了一种基于好奇用户协同过滤的电影推荐装置,包括:

第一模块,用于获取用户对电影的评分记录,建立用户评分矩阵;

第二模块,用于计算任意两个用户之间的相似度,建立用户相似度矩阵;

第三模块,用于计算每部电影的平均流行度;

第四模块,用于根据电影类别信息,构建电影类别矩阵;

第五模块,用于根据每个用户所选电影的类别,构造用户对每个电影的类别选择频率矩阵,根据所述类别选择频率矩阵计算每个用户的类别选择频率向量的方差;

第六模块,用于根据所述用户相似度矩阵、所述平均流行度以及所述类别选择频率向量的方差,计算用户之间的综合相似度,并根据所述综合相似度确定每个用户的好奇用户集合;

第七模块,用于根据目标用户的好奇用户集合对目标电影的打分,预测目标用户对所述目标电影的相关度;

第八模块,用于根据所述电影类别矩阵和所述方差,计算每部电影类别与用户所选电影类别的频率距离,构造电影-用户类别距离矩阵;

第九模块,用于根据所述目标用户对所述目标电影的相关度以及所述电影-用户类别距离矩阵,计算目标用户对目标电影的综合相关度,根据所述综合相关度向所述目标用户推荐电影。

本发明实施例的另一方面还提供了一种电子设备,包括处理器以及存储器;

所述存储器用于存储程序;

所述处理器执行所述程序实现如前面所述的方法。

本发明实施例的另一方面还提供了一种计算机可读存储介质,所述存储介质存储有程序,所述程序被处理器执行实现如前面所述的方法。

本发明实施例还公开了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器可以从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行前面的方法。

本发明的实施例获取用户对电影的评分记录,建立用户评分矩阵;计算任意两个用户之间的相似度,建立用户相似度矩阵;计算每部电影的平均流行度;根据电影类别信息,构建电影类别矩阵;根据每个用户所选电影的类别,构造用户对每个电影的类别选择频率矩阵,根据所述类别选择频率矩阵计算每个用户的类别选择频率向量的方差;根据所述用户相似度矩阵、所述平均流行度以及所述类别选择频率向量的方差,计算用户之间的综合相似度,并根据所述综合相似度确定每个用户的好奇用户集合;根据目标用户的好奇用户集合对目标电影的打分,预测目标用户对所述目标电影的相关度;根据所述电影类别矩阵和所述方差,计算每部电影类别与用户所选电影类别的频率距离,构造电影-用户类别距离矩阵;根据所述目标用户对所述目标电影的相关度以及所述电影-用户类别距离矩阵,计算目标用户对目标电影的综合相关度,根据所述综合相关度向所述目标用户推荐电影。本发明的准确度高且新颖性高。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的整体步骤流程图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

针对现有技术存在的问题,本发明实施例的一方面提供了一种基于好奇用户协同过滤的电影推荐方法,包括:

获取用户对电影的评分记录,建立用户评分矩阵;

计算任意两个用户之间的相似度,建立用户相似度矩阵;

计算每部电影的平均流行度;

根据电影类别信息,构建电影类别矩阵;

根据每个用户所选电影的类别,构造用户对每个电影的类别选择频率矩阵,根据所述类别选择频率矩阵计算每个用户的类别选择频率向量的方差;

根据所述用户相似度矩阵、所述平均流行度以及所述类别选择频率向量的方差,计算用户之间的综合相似度,并根据所述综合相似度确定每个用户的好奇用户集合;

根据目标用户的好奇用户集合对目标电影的打分,预测目标用户对所述目标电影的相关度;

根据所述电影类别矩阵和所述方差,计算每部电影类别与用户所选电影类别的频率距离,构造电影-用户类别距离矩阵;

根据所述目标用户对所述目标电影的相关度以及所述电影-用户类别距离矩阵,计算目标用户对目标电影的综合相关度,根据所述综合相关度向所述目标用户推荐电影。

可选地,所述计算任意两个用户之间的相似度,建立用户相似度矩阵这一步骤中,所述相似度的计算公式为:

其中,sim(u

可选地,所述计算每部电影的平均流行度这一步骤中,所述平均流行度的计算公式为:

其中,Pop

可选地,所述根据所述用户相似度矩阵、所述平均流行度以及所述类别选择频率向量的方差,计算用户之间的综合相似度这一步骤中,所述综合相似度的计算公式为:

其中,score(u

可选地,所述根据目标用户的好奇用户集合对目标电影的打分,预测目标用户对所述目标电影的相关度这一步骤中,所述目标用户对所述目标电影的相关度的计算公式为:

其中,rel(u

可选地,所述根据所述电影类别矩阵和所述方差,计算每部电影类别与用户所选电影类别的频率距离这一步骤中,所述每部电影类别与用户所选电影类别的频率距离的计算公式为:

其中,diff(u

本发明实施例的另一方面还提供了一种基于好奇用户协同过滤的电影推荐装置,包括:

第一模块,用于获取用户对电影的评分记录,建立用户评分矩阵;

第二模块,用于计算任意两个用户之间的相似度,建立用户相似度矩阵;

第三模块,用于计算每部电影的平均流行度;

第四模块,用于根据电影类别信息,构建电影类别矩阵;

第五模块,用于根据每个用户所选电影的类别,构造用户对每个电影的类别选择频率矩阵,根据所述类别选择频率矩阵计算每个用户的类别选择频率向量的方差;

第六模块,用于根据所述用户相似度矩阵、所述平均流行度以及所述类别选择频率向量的方差,计算用户之间的综合相似度,并根据所述综合相似度确定每个用户的好奇用户集合;

第七模块,用于根据目标用户的好奇用户集合对目标电影的打分,预测目标用户对所述目标电影的相关度;

第八模块,用于根据所述电影类别矩阵和所述方差,计算每部电影类别与用户所选电影类别的频率距离,构造电影-用户类别距离矩阵;

第九模块,用于根据所述目标用户对所述目标电影的相关度以及所述电影-用户类别距离矩阵,计算目标用户对目标电影的综合相关度,根据所述综合相关度向所述目标用户推荐电影。

本发明实施例的另一方面还提供了一种电子设备,包括处理器以及存储器;

所述存储器用于存储程序;

所述处理器执行所述程序实现如前面所述的方法。

本发明实施例的另一方面还提供了一种计算机可读存储介质,所述存储介质存储有程序,所述程序被处理器执行实现如前面所述的方法。

本发明实施例还公开了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器可以从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行前面的方法。

下面结合说明书附图,对本发明的具体实施过程进行详细描述:

针对以上提到的经典基于用户的协同过滤算法局限性,本发明提供一种改进的基于好奇用户的协同过滤算法。如图1所示,本发明首先寻找目标用户k个近邻好奇用户,并根据好奇用户对目标物品的综合评分和目标物品与目标用户之前所选的物品区别性生成推荐列表,所述步骤如下:

步骤(1)根据用户对电影的评分记录,建立用户评分矩阵。

步骤(2)使用pearson度量计算每对用户之间的相似度,建立用户相似度矩阵,计算用户相似度方法:

其中,R

用户相似度矩阵可以表示为:

步骤(3)计算每部电影的流行度,并计算用户所选电影的平均流行度。用户所选电影平均流行度计算公式如下:

式中,|U(I

步骤(4)根据电影类别信息,构造电影类别矩阵。每个电影类别向量I

表1

其中,I

步骤(5)中用户对所选电影类别频率向量为g

Div(u

用户对每个电影类别选择频率矩阵具体示例如下表2所示:

表2

Div(u

步骤(6)融合步骤(2)(3)(5)计算用户之间综合相似度,并为每个用户找到前k个用户,这k个用户称为目标用户u

综合来说,和目标用户u

步骤(7)根据k个好奇用户对目标电影的打分,预测目标用户对目标电影的相关度,其计算方式如下:

式中,K(u

步骤(8)融合步骤(4)(5)计算每部电影类别与用户所选电影类别频率距离,构造电影-用户类别距离矩阵。每部电影类别与用户所选电影类别频率距离计算公式如下:

g

表3

diff(u

步骤(9)融合步骤(7)(8)计算目标用户对目标电影的综合相关度,并且按照综合相关度从高到低进行排序,将前n个电影推荐给目标用户,其中综合相关度计算公式如下:

prob(u

其中,rel′(u

综合来说,如果一个电影符合目标用户u

至此,本发明实施例的电影推荐方法的整体实施过程结束。

下面讲述本发明所进行的实验过程及结果。

实验在Movielens的ml-100k数据集进行实验,对用户-电影评分数据按照时间从早到晚排序,选择前80%作为训练集,20%作为测试集。

对比方法有:基于用户的协同过滤算法(UserCF)、基于项目的协同过滤算法(ItemCF)和本发明所述方法CuriCF。采用准确率(precision),召回率(recall),和f1分数(f1-score)度量推荐的准确度。准确度反映了推荐列表的电影与用户测试集的电影重合程度,重合越多,说明方法推荐准确度越高。

除了三个准确度以外,度量推荐电影是否和用户以往所选电影不一样的指标diff@N也纳入考虑,计算公式如下:

式中,diff(u

diff(u

准确率(precision)实验结果如表4和表5所示,其中,表4展示的是当近邻个数k=5时,N取不同值的准确率(precision),表5展示的是当近邻个数k=10时,N取不同值的准确率(precision):

表4

表5

召回率(recall)实验结果如表6、表7所示;其中,表6展示的是当近邻个数k=5时,N取不同值的召回率(recall);表7展示的是当近邻个数k=10时,N取不同值的召回率(recall)。

表6

表7

f1分数(f1-score)实验结果如表8、表9所示;其中,表8展示的是当近邻个数k=5时,N取不同值的f1分数(f1-score),表9展示的是当近邻个数k=10时,N取不同值的f1分数(f1-score)。

表8

表9

具体地,表4和表5的准确率(precision)结果显示,CuriCF准确率是最高的,说明与其他方法相比,在前N个推荐电影当中,CuriCF能预测较多用户真正选择的电影。召回率(recall)度量的是推荐列表中真正被用户选择的电影数量与测试集电影数量的比值,召回率越高,说明该方法越能找到符合用户兴趣电影。表6和表7结果表明,CuriCF的召回率比UserCF和ItemCF都要高。f1分数(f1-score)是综合准确率(precision)和召回率(recall)的指标,只有准确率(precision)和召回率(recall)同时高,f1分数(f1-score)才会高。表8和表9结果表明,CuriCF的f1分数(f1-score)显著高于UserCF和ItemCF。

diff@N实验结果如表10、表11所示;其中,表10展示的是当近邻个数k=5时,N取不同值的diff@N,表11展示的是当近邻个数k=10时,N取不同值的diff@N。

表10

表11

diff@N度量推荐列表的电影与用户之前所选电影类别的距离,diff@N越大说明该方法越能推荐与用户之前所选电影不一样的的电影,提高推荐新颖性同时,也能给用户带来新鲜感。如果只是着重推荐与用户之前选择不一样的电影,那么很可能会偏离用户兴趣爱好。如果推荐与用户之前选择相似的电影,可能准确率会提高,但是也容易引起用户感到沉闷。从表4-表11的实验结果可以看到,CuriCF在准确度和新鲜感两者之间获得较好的平衡,CuriCF获得较高的准确率同时也推荐与用户之前选择电影不一样的电影。

综上所述,本发明的一种基于好奇用户协同过滤的电影推荐方法及装置。首先,本发明引入了好奇用户替代了相似用户。好奇用户与相似用户一样,都跟目标用户拥有相似的兴趣爱好,但是好奇用户更积极尝试新的物品、不太流行的物品,因此比起相似用户更有可能带来不一样的推荐物品。

其次,本发明寻找不仅着重寻找符合目标用户兴趣物品,也与目标用户之前所选物品类别不一样的物品。实验结果证明,与经典的基于用户的协同过滤算法相比,该算法不仅提高了准确度,同时也提高了推荐的新颖性

可以理解的是,经典协同过滤算法是基于相似用户度推荐算法,偏向于推荐与用户之前选购过的物品相似的物品,这样容易造成用户对推荐感到沉闷。好奇用户热衷于尝试新的物品、并且积极尝试不同类型的物品,因此基于好奇用户的协同过滤推荐算法能够推荐一些与用户之前所选物品不同的、并且用户喜欢的物品。实验证明该算法不仅提高了精确度,同时提高推荐多样性。

在一些可选择的实施例中,在方框图中提到的功能/操作可以不按照操作示图提到的顺序发生。例如,取决于所涉及的功能/操作,连续示出的两个方框实际上可以被大体上同时地执行或所述方框有时能以相反顺序被执行。此外,在本发明的流程图中所呈现和描述的实施例以示例的方式被提供,目的在于提供对技术更全面的理解。所公开的方法不限于本文所呈现的操作和逻辑流程。可选择的实施例是可预期的,其中各种操作的顺序被改变以及其中被描述为较大操作的一部分的子操作被独立地执行。

此外,虽然在功能性模块的背景下描述了本发明,但应当理解的是,除非另有相反说明,所述的功能和/或特征中的一个或多个可以被集成在单个物理装置和/或软件模块中,或者一个或多个功能和/或特征可以在单独的物理装置或软件模块中被实现。还可以理解的是,有关每个模块的实际实现的详细讨论对于理解本发明是不必要的。更确切地说,考虑到在本文中公开的装置中各种功能模块的属性、功能和内部关系的情况下,在工程师的常规技术内将会了解该模块的实际实现。因此,本领域技术人员运用普通技术就能够在无需过度试验的情况下实现在权利要求书中所阐明的本发明。还可以理解的是,所公开的特定概念仅仅是说明性的,并不意在限制本发明的范围,本发明的范围由所附权利要求书及其等同方案的全部范围来决定。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。

计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置)、便携式计算机盘盒(磁装置)、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编辑只读存储器(EPROM或闪速存储器)、光纤装置以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。

应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。

以上是对本发明的较佳实施进行了具体说明,但本发明并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。

相关技术
  • 一种基于用户兴趣的电影推荐方法及其装置
  • 一种基于三支决策用户聚类的协同过滤电影推荐方法
  • 一种基于用户协同过滤的供应商推荐方法及装置
技术分类

06120115593571