CN103514304A - 一种项目推荐方法和装置 - Google Patents

一种项目推荐方法和装置 Download PDF

Info

Publication number
CN103514304A
CN103514304A CN201310522662.0A CN201310522662A CN103514304A CN 103514304 A CN103514304 A CN 103514304A CN 201310522662 A CN201310522662 A CN 201310522662A CN 103514304 A CN103514304 A CN 103514304A
Authority
CN
China
Prior art keywords
scoring
project
similarity
related object
destination object
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.)
Granted
Application number
CN201310522662.0A
Other languages
English (en)
Other versions
CN103514304B (zh
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.)
Hainan University
Original Assignee
Hainan 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 Hainan University filed Critical Hainan University
Priority to CN201310522662.0A priority Critical patent/CN103514304B/zh
Publication of CN103514304A publication Critical patent/CN103514304A/zh
Application granted granted Critical
Publication of CN103514304B publication Critical patent/CN103514304B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9535Search customisation based on user profiles and personalisation

Abstract

本发明提供了一种项目推荐方法和装置。本发明通过对记录的评分对象及其对项目的评分,首先确定评分对象对项目的评分均值以及各个项目所属的项目类型,进一步统计评分对象对项目类型的评分均值,然后确定目标对象具有相似类型喜好的第一相关对象,再从第一相关对象中找出具有相似项目喜好的第二相关对象,在目标对象对未评分的项目中提取符合条件的项目推荐给目标对象。通过本发明实施例,利用用户对不同类型项目的兴趣程度,筛选出喜好项目类型相关的用户,去掉用户不感兴趣的无效信息,在计算用户之间的相似度时使用的都是有效信息,因此相似度计算更加准确,可以有效地改善计算用户之间相似度的准确率,有效提高推荐系统的推荐质量。

Description

一种项目推荐方法和装置
技术领域
本发明涉及网络技术领域,特别是涉及一种项目推荐方法,以及,一种项目推荐装置。
背景技术
随着云计算、物联网、社交网络等新兴服务的迅猛发展,大数据时代已经来临,各个领域的数据信息量都爆炸式地增长,导致所谓的“信息泛滥”、“信息迷航”等问题。大量错综复杂的数据信息使得用户在查找感兴趣的信息时感到迷茫和困惑。而同时这对于企业来说既是一种机遇又是一种挑战,如何获取、掌握有用信息是企业保持竞争优势的基石。
个性化推荐是解决信息过载问题的最有效的工具之一,其中,协作过滤算法被认为是推荐系统中最为有效和普遍使用的推荐技术,包括基于用户(User-based)推荐和基于项目(Item-based)推荐,较多使用的是User-based协作过滤算法。
传统的User-based协作过滤算法对目标用户进行推荐之前,首先通过用户-项目(User-Item)评分数据集计算目标用户与其他用户之间的相似度,并选择最近的多个邻居作为最近邻居,通过最近邻居预测目标用户对目标项目的预测评分。在整个推荐的过程中,相似度的计算精度是影响推荐质量的主要因素。
以上背景技术中存在的问题是:在实际的推荐系统中,用户可能仅仅对某几个甚至一个项目打分,目标用户的最近邻居中大部分用户没有对目标项目进行评分,虽然相似度很高,但这样的相似度计算结果存在较大的偶然因素,无法得到准确的预测结果。
发明内容
本发明提供了一种项目推荐方法和装置,以缓解用户评分数据稀疏所带来的问题,并有效提高预测的准确率。
本发明提供了一种项目推荐方法,包括:
提取记录的多个评分对象及其对多个项目的评分;
针对每个项目,依据多个评分对象对所述项目的评分,统计所有评分对象对所述项目的评分均值,并确定各个项目所属的至少一个项目类型;
依据所述评分对象对各个项目的评分均值,以及各个项目所属的项目类型,分别统计各个评分对象对各个项目类型的评分均值;
计算目标对象与其他评分对象针对各个项目类型的评分均值的第一相似度,根据所述第一相似度确定所述目标对象具有相似类型喜好的第一相关对象;
通过计算所述目标对象与所述第一相关对象对各个项目的评分均值的第二相似度,根据所述第二相似度从所述第一相关对象中确定所述目标对象具有相似项目喜好的第二相关对象;
在所述第二相关对象所评分的所有项目中,提取所述目标对象未评分的项目作为候选推荐项目,通过所述目标对象的第二相关对象,计算所述目标对象对所述候选推荐项目的预测评分;
提取所述预测评分符合预设范围的至少一个候选推荐项目推荐给所述目标对象。
优选地,所述针对每个项目,依据多个评分对象对项目的评分,统计所有评分对象对项目的评分均值的步骤包括:
在多个评分对象对所述项目的评分中,提取所有的项目,并去除其中重复的项目;
针对各个项目,查找各个用户对所述项目的评分,并计算各个用户对所述项目的评分的平均值。
优选地,所述依据评分对象对各个项目的评分均值,以及各个项目所属的项目类型,分别统计各个评分对象对各个项目类型的评分均值的步骤包括:
针对各个项目类型,查找属于所述项目类型的各个项目,并提取评分对象对查找的各个项目的评分;
计算提取的评分的平均值,作为所述项目类型的评分均值。
优选地,所述计算目标对象与其他评分对象针对各个项目类型的评分均值的第一相似度,根据所述第一相似度确定目标对象具有相似类型喜好的第一相关对象的步骤包括:
针对各个评分对象b,通过以下公式(1)计算所述评分对象b与所述目标对象a的第一相似度Pearson(a,b):
Pearson ( a , b ) = Σ i ∈ I a , b ( R a , i - R a ‾ ) ( R b , i - R b ‾ ) Σ i ∈ I a , b ( R a , i - R a ‾ ) 2 Σ i ∈ I a , b ( R b , i - R b ‾ ) 2 公式(1)
其中,Ra,i表示评分对象a对项目i的评分,Ia表示所述评分对象a评分的项目组成的集合,Ia,b表示所述评分对象a和评分对象b共同评分的项目组成的集合,
Figure BDA0000404298190000032
表示所述评分对象a对所有已评分的项目的平均评分;
提取第一相似度大于第一预设阀值的评分对象,或是第一相似度从大到小排序靠前的至少一个评分对象作为所述第一相关对象。
优选地,所述通过计算目标对象与第一相关对象对各个项目的评分均值的第二相似度,根据第二相似度从第一相关对象中确定目标对象具有相似项目喜好的第二相关对象的步骤包括:
针对各第一相关对象u2,依据所述第一相关对象u2与所述目标对象u1分别对各个项目的评分,通过以下公式(2)计算各第一相关对象u2与所述目标对象u1之间的第二相似度FinalSimi(u1,u2):
FinalSi m i ( u 1 , u 2 ) = Sim ( u 1 , u 2 ) if r i u 2 ≠ 0 Sim ( u 1 , u 2 ) * Sim ( u 2 , u other ) if r i u 2 = 0 公式(2)
其中,ri u2表示u2对项目i的评分,
Figure BDA0000404298190000034
表示存在u2对项目i的评分,
Figure BDA0000404298190000035
表示不存在u2对项目i的评分,Sim(u1,u2)为Weight(u1,u2)与Pearson(u1,u2)之积,Weight(u1,u2)为con和r中的最小值与r的比值,con为u1和u2共同评分数量,r为预设阈值,Pearson(u1,u2)为u1和u2的第一相似度,uother表示的u1除去u2之外的第一相关对象;
提取相似度大于第二预设阀值的第一相关对象,或是第二相似度从大到小排序靠前的至少一个第一相关对象作为所述第二相关对象。
优选地,所述目标对象的第二相关对象还包括所述目标对象的第一相关对象对应的第一相关对象,所述通过目标对象的第二相关对象,计算目标对象对候选推荐项目的预测评分的步骤包括:
针对各个候选推荐对象i,通过以下公式(3)计算目标对象u对候选推荐对象i的评分Pui
P ui = R u ‾ + Σ a ∈ Ne Sim ( u , a ) * ( R a , i - R a ‾ ) Σ a ∈ Ne Sim ( u , a ) 公式(3)
其中,
Figure BDA0000404298190000042
表示u对所有已评分的项目的平均评分,表示所述目标对象的第二相关对象a对所有已评分的项目的平均评分,Nu表示u的第二相关对象集合,Sim(u,a)为u与a的第二相似度。
本发明还提供了一种项目推荐装置,包括:
评分提取模块,用于提取记录的多个评分对象及其对多个项目的评分;
项目均值计算模块,用于针对每个项目,依据多个评分对象对所述项目的评分,统计所有评分对象对所述项目的评分均值;
类型确定模块,用于确定各个项目所属的至少一个项目类型;
类型均值计算模块,用于依据所述评分对象对各个项目的评分均值,以及各个项目所属的项目类型,分别统计各个评分对象对各个项目类型的评分均值;
第一对象确定模块,用于计算目标对象与其他评分对象针对各个项目类型的评分均值的第一相似度,根据所述第一相似度确定所述目标对象具有相似类型喜好的第一相关对象;
第二对象确定模块,用于通过计算所述目标对象与所述第一相关对象对各个项目的评分均值的第二相似度,根据所述第二相似度从所述第一相关对象中确定所述目标对象具有相似项目喜好的第二相关对象;
预测评分模块,用于在所述第二相关对象所评分的所有项目中,提取所述目标对象未评分的项目作为候选推荐项目,通过所述目标对象的第二相关对象,计算所述目标对象对所述候选推荐项目的预测评分;
推荐模块,用于提取所述预测评分符合预设范围的至少一个候选推荐项目推荐给所述目标对象。
优选地,所述第一对象确定模块包括:
第一相似度计算子模块,用于针对各个评分对象b,通过以下公式(1)计算所述评分对象b与所述目标对象a的第一相似度Pearson(a,b):
Pearson ( a , b ) = Σ i ∈ I a , b ( R a , i - R a ‾ ) ( R b , i - R b ‾ ) Σ i ∈ I a , b ( R a , i - R a ‾ ) 2 Σ i ∈ I a , b ( R b , i - R b ‾ ) 2 公式(1)
其中,Ra,i表示评分对象a对项目i的评分,Ia表示所述评分对象a评分的项目组成的集合,Ia,b表示所述评分对象a和评分对象b共同评分的项目组成的集合,
Figure BDA0000404298190000052
表示所述评分对象a对所有已评分的项目的平均评分;
第一相关对象提取子模块,用于提取第一相似度大于第一预设阀值的评分对象,或是第一相似度从大到小排序靠前的至少一个评分对象作为所述第一相关对象。
优选地,所述第二对象确定模块包括:
第二相似度计算子模块,用于针对各第一相关对象u2,依据所述第一相关对象u2与所述目标对象u1分别对各个项目的评分,通过以下公式(2)计算各第一相关对象u2与所述目标对象u1之间的第二相似度FinalSimi(u1,u2):
FinalSi m i ( u 1 , u 2 ) = Sim ( u 1 , u 2 ) if r i u 2 ≠ 0 Sim ( u 1 , u 2 ) * Sim ( u 2 , u other ) if r i u 2 = 0 公式(2)
其中,ri u2表示u2对项目i的评分,
Figure BDA0000404298190000054
表示存在u2对项目i的评分,
Figure BDA0000404298190000055
表示不存在u2对项目i的评分,Sim(u1,u2)为Weight(u1,u2)与Pearson(u1,u2)之积,Weight(u1,u2)为con和r中的最小值与r的比值,con为u1和u2共同评分数量,r为预设阈值,Pearson(u1,u2)为u1和u2的第一相似度,uother表示的u1除去u2之外的第一相关对象;
第二相关对象提取子模块,用于提取相似度大于第二预设阀值的第一相关对象,或是第二相似度从大到小排序靠前的至少一个第一相关对象作为所述第二相关对象。
优选地,所述目标对象的第二相关对象还包括所述目标对象的第一相关对象对应的第一相关对象,所述预测评分模块包括:
预测评分计算子模块,用于针对各个候选推荐对象i,通过以下公式(3)计算目标对象u对候选推荐对象i的评分Pui
P ui = R u ‾ + Σ a ∈ Ne Sim ( u , a ) * ( R a , i - R a ‾ ) Σ a ∈ Ne Sim ( u , a ) 公式(3)
其中,表示u对所有已评分的项目的平均评分,
Figure BDA0000404298190000063
表示所述目标对象的第二相关对象a对所有已评分的项目的平均评分,Nu表示u的第二相关对象集合,Sim(u,a)为u与a的第二相似度。
与背景技术相比,本发明包括以下优点:
本发明通过对记录的评分对象及其对项目的评分,首先确定评分对象对项目的评分均值以及各个项目所属的项目类型,进一步统计评分对象对项目类型的评分均值,然后确定目标对象具有相似类型喜好的第一相关对象,再从第一相关对象中找出具有相似项目喜好的第二相关对象,在目标对象对未评分的项目中提取符合条件的项目推荐给目标对象。通过本发明实施例,利用用户对不同类型项目的兴趣程度,筛选出喜好项目类型相关的用户,去掉用户不感兴趣的无效信息,在计算用户之间的相似度时使用的都是有效信息,因此相似度计算更加准确,可以有效地改善计算用户之间相似度的准确率,有效提高推荐系统的推荐质量。
本发明实施例中,用户之间的相似度是建立在目标项目类型相似度以及项目相似度的基础上计算的,而背景技术是建立在用户对项目的评分基础上计算的,并没有考虑到用户评分项目之间的差异性。通过本发明的实验数据证实,本发明可以提高相似度的计算精度,其次,在计算用户之间的相似度时,是针对目标项目计算,避免了用户项目评分差异带来的无效数据信息,改善了误差性能。
附图说明
图1是本发明实施例所述一种项目推荐方法的流程图;
图2是基于类型的最近邻居个数数对推荐结果影响的比对示意图;
图3本发明实施例的推荐算法与其他推荐算法的推荐精度比对示意图
图4是本发明实施例所述一种项目推荐装置的结构框图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
协作过滤推荐算法主要分为基于内存推荐、基于模型推荐和混合推荐三类。基于内存推荐法通过直接计算相似度并选取最近邻居并以此预测、推荐。基于模型推荐先利用训练数据集学习一个预测模型,再将模型应用到应用系统上,并对在线用户根据预测模型对其进行推荐,该方法主要关键在于建立一个有效的预测模型。混合模型推荐是将基于内存推荐和基于模型推荐结合,提高推荐性能。目前,大量的学者对基于内存推荐进行了研究,基于内存的推荐算法主要分为基于用户(User-based)推荐和基于项目(Item-based)推荐。User-based推荐算法目前存在的问题是,由于用户仅仅对某几个甚至一个项目打分导致相似度计算的结果不够准确。本发明为解决传统算法未考虑用户之间的差异性,提出一种针对目标项目选择近邻的协作过滤算法,避免在计算用户之间的相似度时,仅考虑用户对项目的评分,而未考虑用户评分项目差异性的问题,缓解用户评分数据稀疏所带来的问题,并有效提高预测的准确率。
下面通过实施例对本发明所述方法的实现流程进行详细说明。
参照图1,其示出了本发明实施例所述一种项目推荐方法流程图。
步骤101、提取记录的多个评分对象及其对多个项目的评分。
本发明实施例中,评分对象即对项目进行评分的用户,所述项目可以是视频、音频、文字信息、网页信息、广告或是应用程序等。首先选择一个有意义的用户评分数据集作为推荐项目的基本数据集,记为BDS,通过分析系统数据信息,获取基本的用户信息和项目信息。
在具体的实现中,可以在BDS中分离出用户和项目数据集,分别记为U和I,并通过用户评分建立用户-项目评分矩阵,如下例所示,
I1 I2 Ij Im
U1 r11 r12 r1j r1m
U2 r21 r22 r2j r2m
Ui ri1 ri2 rij rim
Un rn1 rn2 rnj rnm
表1用户-项目评分矩阵
其中,行表示用户,列表示项目,rij表示用户ui对项目j的评分,且1≤i≤n,1≤j≤m,min≤rij≤max,min和max由不同系统的评分区间所定,若用户ui没有对项目j评分,则rij=0。
步骤102、针对每个项目,依据多个评分对象对所述项目的评分,统计所有评分对象对所述项目的评分均值,并确定各个项目所属的至少一个项目类型。
本发明实施例中,一个项目可能会存在一个或多个用户的评分,针对各个项目,可以统计不同用户对其评分的均值,另外,各个项目会存在至少一个所属的类型,例如,电影a可能被多个用户评分,其中包含属性类型:动作、冒险、喜剧。
具体的,本发明实施例中,统计平均值的步骤可以包括:
子步骤S11、在多个评分对象对所述项目的评分中,提取所有的项目,并去除其中重复的项目;
子步骤S12、针对各个项目,查找各个用户对所述项目的评分,并计算各个用户对所述项目的评分的平均值。
在统计平均值时,可以首先统计出所有的项目,具体而言,先提取所有评分数据中对应的项目,然后去除其中可能会重复存在的项目,确保每个都是唯一项目,从而得到实际存在的项目,针对各个项目,找出其对应的评分,然后将评分进行平均,得到各个项目对应的评分均值。
步骤103、依据所述评分对象对各个项目的评分均值,以及各个项目所属的项目类型,分别统计各个评分对象对各个项目类型的评分均值。
通过上述步骤得到了多个用户对各个项目的评分均值,以及各个项目所属的项目类型,本发明实施例的核心构思在于,在筛选相关用户时,对喜好不同项目类型的相关用户进行去除,从而保证推荐的准确度,此处还需要进一步统计出每个用户对各个项目类型的评分情况。
具体的,所述步骤103可以包括:
子步骤S21、针对各个项目类型,查找属于所述项目类型的各个项目,并提取评分对象对查找的各个项目的评分;
子步骤S22、计算提取的评分的平均值,作为所述项目类型的评分均值。
针对各个项目类型有对应的多个项目,针对某一项目类型,首先提取出项目类型对应的所有项目,进一步提取这些项目对应的用户评分,然后将所有的用户评分进行平均计算,结果作为用户对项目类型的评分均值。
在具体的实现中,可以在用户-项目评分矩阵的基础上结合项目类型集合建立用户-类型评分矩阵,首先在步骤102得到项目所属的项目类型之后,建立项目所对应的类型集合后,Attr={a1,a2,...,am},其中ai表示类型集合中的第i属性,m表示类型集合中属性总数。然后根据用户-项目评分矩阵结合项目类型集合建立用户-类型评分矩阵。
例如,用户Ua对项目i评分rai=5,而项目i属于类型t1和t4,那么对应的用户-类型评分矩阵中,Ua对类型t1和t4的评分为5分,若其他用户对这两种类型也有评分则进行累加,最后求平均值作为用户对类型的评分值,评分矩阵如表2所示。
t1 t2 tj tm
U1 v11 v12 v1j v1m
U2 v21 v22 v2j v2m
Ui vi1 vi2 vij vim
Un vn1 vn2 vnj vnm
表2用户-类型评分矩阵
其中,行表示用户,列表示类型,vij表示用户ui对类型j的评分,且1≤i≤n,1≤j≤m,min≤rij≤max,min和max由不同系统的评分区间所定,若用户ui没有对类型j评分,则vij=0。
步骤104、计算目标对象与其他评分对象针对各个项目类型的评分均值的第一相似度,根据所述第一相似度确定所述目标对象具有相似类型喜好的第一相关对象。
目标对象即待推荐项目的用户,通过步骤103得出各个用户对不同项目类型的评分后,可以进一步依据对项目类型的评分,统计用户之间在项目类型喜好上的相似度,即第一相似度,第一相似度较大则说明两个用户之间在项目类型上具有更接近的喜好,即两个用户喜欢的项目类型是较为相似的,因此,根据第一相似度的大小可以确定目标对象具有相似类型喜好的第一相关对象。
最常用的相似度计算方法有夹角余弦和Pearson相关性,夹角余弦公式为:
Con sin e ( a , b ) = Σ i ∈ I a , b R a , i R b , i Σ i ∈ I a R 2 a , i Σ i ∈ I b R 2 b , i
优选地,本发明实施例可以采用Pearson相关性来计算,一方面,消除了用户评分随意性问题,另一方面此方法有更广泛的应用,所述步骤104可以包括:
子步骤S31、针对各个评分对象b,通过以下公式(1)计算所述评分对象b与所述目标对象a的第一相似度Pearson(a,b):
Pearson ( a , b ) = Σ i ∈ I a , b ( R a , i - R a ‾ ) ( R b , i - R b ‾ ) Σ i ∈ I a , b ( R a , i - R a ‾ ) 2 Σ i ∈ I a , b ( R b , i - R b ‾ ) 2 公式(1)
其中,Ra,i表示评分对象a对项目i的评分,Ia表示所述评分对象a评分的项目组成的集合,Ia,b表示所述评分对象a和评分对象b共同评分的项目组成的集合,
Figure BDA0000404298190000112
表示所述评分对象a对所有已评分的项目的平均评分。
子步骤S32、提取第一相似度大于第一预设阀值的评分对象,或是第一相似度从大到小排序靠前的至少一个评分对象作为所述第一相关对象。
第一相似度的计算可以参照上述公式,可以提取第一相似度较大的用户作为较为相关的第一相关对象,例如,第一相似度大于第一预设阀值,第一预设阀值可以按照具体的需求来设定;也可以将第一相似度按照从大到小进行排序,提取排序靠前即较大的多个用户作为第一相关对象,提取的个数也可以按照具体的需求来设定。
步骤105、通过计算所述目标对象与所述第一相关对象对各个项目的评分均值的第二相似度,根据所述第二相似度从所述第一相关对象中确定所述目标对象具有相似项目喜好的第二相关对象。
在统计出用户具备相似项目类型爱好的第一相关对象,也即是最近邻居,可以进一步按照,用户之间对项目爱好的相关度,进一步筛选出与用户具有相似项目爱好的相关用户,所述步骤105可以包括:
子步骤S41、针对各第一相关对象u2,依据所述第一相关对象u2与所述目标对象u1分别对各个项目的评分,通过以下公式(2)计算各第一相关对象u2与所述目标对象u1之间的第二相似度FinalSimi(u1,u2):
FinalSi m i ( u 1 , u 2 ) = Sim ( u 1 , u 2 ) if r i u 2 ≠ 0 Sim ( u 1 , u 2 ) * Sim ( u 2 , u other ) if r i u 2 = 0 公式(2)
也可以表示为 FinalSi m i ( u 1 , u 2 ) = ExtendUse r i ( u 2 ) if r i u 2 = 0 Sim ( u 1 , u 2 ) if r i u 2 ≠ 0 公式(4)
其中,ri u2表示u2对项目i的评分,表示存在u2对项目i的评分,此时,FinalSimi(u1,u2)=Sim(u1,u2);
Figure BDA0000404298190000125
表示不存在u2对项目i的评分,此时,FinalSimi(u1,u2)=ExtendUseri(u2)=Sim(u1,u2)*Sim(u2,uother),ExtendUseri(u2)表示当不存在u2对项目i的评分时,目标对象u1相对u2在项目i上的扩展邻居,uother表示的u1除去u2之外的一个或多个第一相关对象,也可以称之为扩展邻居,
Figure BDA0000404298190000126
表示扩展邻居须在大范围的近邻用户集合里面,以排除将对截然不同类型的项目感兴趣的用户作为扩展邻居。
近邻用户可能未对目标项目评分,本发明实施例创造性的提出计算目标用户的扩展邻居,最后为目标对象预测和推荐,u2未对项目i评分,那么就无法给u1推荐项目i,但是通过u2的第一相关对象(最近邻居)间接对u1推荐项目i,因此,第二相似度为u1和u2的第二相似度与u2和uother的第二相似度之积。
在筛选第二相关对象时,针对没有对项目i的评分的u2,增加了扩展邻居,因此第二相关对象实际上是从第一相关对象和扩展邻居中筛选,第二相关对象可能包含第一相关对象,也可能包含扩展邻居,因此,目标对象的第二相关对象还包括目标对象的第一相关对象对应的第一相关对象。
Sim(u1,u2)为Weight(u1,u2)与Pearson(u1,u2)之积,可以表示为Sim(u1,u2)=Weight(u1,u2)*Pearson(u1,u2),Pearson(u1,u2)为u1和u2的第一相似度,Weight(u1,u2)表示用户u1和u2相似度的加权值,可以表示为:
Weight ( u 1 , u 2 ) = Min ( con , r ) r 公式(5)
Weight(u1,u2)为con和r中的最小值与r的比值,con为u1和u2共同评分数量,r为预设阈值。
子步骤S42、提取相似度大于第二预设阀值的第一相关对象,或是第二相似度从大到小排序靠前的至少一个第一相关对象作为所述第二相关对象。
在具体的实现中,建立了用户-项目评分矩阵后,可以进一步通过用户-项目评分矩阵计算用户之间的相似度,在某个第一相关对象对目标项目未评分时,选取与该第一相关对象的多个第一相关对象(第一相关度靠前)作为目标对象的扩展邻居,在统计第二相似度时,直接计算多个扩展邻居的第二相似度的加权相似度,作为目标对象与该第一相关对象的第二相关度。
在计算了各个第一相关对象与目标对象的第二相关度之后,可以进一步提取第二相似度较大的用户作为较为相关的第二相关对象,例如,第二相似度大于第二预设阀值,第二预设阀值可以按照具体的需求来设定;也可以将第二相似度按照从大到小进行排序,提取排序靠前即较大的多个用户作为第二相关对象,提取的个数也可以按照具体的需求来设定。
步骤106、在所述第二相关对象所评分的所有项目中,提取所述目标对象未评分的项目作为候选推荐项目,通过所述目标对象的第二相关对象,计算所述目标对象对所述候选推荐项目的预测评分。
在从用户具备相似项目类型爱好的第一相关对象中,进一步筛选中具备相似项目爱好的第二相关对象后,可以进一步进行项目的筛选。
具体而言,首先提取目标对象的第二相关对象所评分的所有项目,其中可能存在目标对象已经评分过的项目,可以进一步找出目标对象没有评分过的项目作为候选推荐项目,然后对目标用户可能对候选推荐项目的评分进行预测。
具体而言,所述步骤106可以包括:
针对各个候选推荐对象i,通过以下公式(3)计算目标对象u对候选推荐对象i的评分Pui
P ui = R u ‾ + Σ a ∈ Ne Sim ( u , a ) * ( R a , i - R a ‾ ) Σ a ∈ Ne Sim ( u , a ) 公式(3)
其中,表示u对所有已评分的项目的平均评分,
Figure BDA0000404298190000133
表示所述目标对象的第二相关对象a对所有已评分的项目的平均评分,Ne表示u的第二相关对象集合,Ne表示最近邻居和扩展邻居的并集,如果在直接近邻和扩展邻居中存在相同用户时,直接去除对应的扩展邻居),Sim(u,a)为u与a的第二相似度。
通过上述公式中传统的预测方法可以计算出预测的目标对象预测未评分项目的评分。
在具体的实现中,在建立上述公式(3)对应的预测模型时,可以将步骤101中获取的BDS数据集按一定的比例(例如8:2)划分为训练集,训练集用于训练预测模型,测试集用于对模型的准确性进行检测。
在用户项目评分数据集稀疏的情况下,使用上述传统的方法计算将导致预测结果不准确,主要的原因在于相似度计算中未考虑用户之间共同评分数量,如下表3中用户u1和u2虽然相似度很高,但其共同评分数量为1;在选取用户最近邻居时,仅通过相似度排序选取前k个作为最近邻居,并未考虑在最近邻居中大部分用户没有对目标项目进行评分,因此不宜作为最近邻居,如表3中用户u3和u4,对u3预测目标项目I8,虽然u3和u4之间的相似度很高,但u4对项目I8的评分为0,因此不太适合作为预测I8的近邻用户。计算目标用户的扩展邻居,但未考虑到用户对项目类型的兴趣程度,如表3中i1、i2、i3、i4属于A类型,而i5、i6、i7、i8属于B类型,按照其计算方法,通过计算和u4相似的邻居确定u3的扩展邻居,其中u5为u3的扩展邻居,但是u3所评分的项目都属于A类型,而u5所评分的项目的都属于B类型,而目标项目也属于B类型,因此通过u5预测得出的评分不准确,但通过相似度略低的u6预测其评分会更为准确点,因为u6所评分的项目大部分为A类型,表明和u3的兴趣方向一致,因此预测的更为准确。
i1A i2A i3A i4A i5B i6B i7B i8B
u1 3 0 0 0 0 0 0 0
u2 3 0 0 0 0 0 0 0
u3 2 3 1 0 0 0 0 ?
u4 2 3 2 5 1 2 5 0
u5 0 0 0 0 1 2 5 3
u6 4 3 4 5 0 0 5 2
表3用户项目评分表(0表示用户未对项目评分)
步骤107、提取所述预测评分符合预设范围的至少一个候选推荐项目推荐给所述目标对象。
预测用户对候选推荐项目的评分后,可以选取预测评分符合预设范围的至少一个候选推荐项目推荐给用户,预设范围可以有一个或多个,例如,大于某个预设值,或是符合某个预设区间,或是符合多个预设区间,也可以将对目标用户预测的候选推荐项目按照预测评分进行排序,选择前n个目标项目推荐给目标用户。
本发明实施例通过对记录的评分对象及其对项目的评分,首先确定评分对象对项目的评分均值以及各个项目所属的项目类型,进一步统计评分对象对项目类型的评分均值,然后确定目标对象具有相似类型喜好的第一相关对象,再从第一相关对象中找出具有相似项目喜好的第二相关对象,在目标对象对未评分的项目中提取符合条件的项目推荐给目标对象。通过本发明实施例,利用用户对不同类型项目的兴趣程度,筛选出喜好项目类型相关的用户,去掉用户不感兴趣的无效信息,在计算用户之间的相似度时使用的都是有效信息,因此相似度计算更加准确,可以有效地改善计算用户之间相似度的准确率,有效提高推荐系统的推荐质量。
本发明实施例中,用户之间的相似度是建立在目标项目类型相似度以及项目相似度的基础上计算的,而背景技术是建立在用户对项目的评分基础上计算的,并没有考虑到用户评分项目之间的差异性。通过本发明的实验数据证实,本发明可以提高相似度的计算精度,其次,在计算用户之间的相似度时,是针对目标项目计算,避免了用户项目评分差异带来的无效数据信息,改善了误差性能。
并且,本发明实施例在近邻用户未对目标项目评分的情况下,创造性的提出计算目标用户的扩展邻居,最后为目标对象预测和推荐。
以下通过实验来评估本发明实施例改进的推荐算法的预测精度,本实验采用MovieLens站点提供的数据集(http://moviel-ens.umn.edu/)。该数据集包括943位用户对1682个项目的评分记录,评分记录总数达100000条。其评分区间为[1,5]。用户-项目评分矩阵的稀疏度为1-100000/(943*1682)=0.936953。
1)推荐质量的度量标准
统计精度度量方法中的平均绝对偏差MAE(mean absolute error)易于理解,可以直观地对推荐质量进行度量,是最常用的一种推荐质量度量方法,本文使用MAE方法,通过计算测试数据集中用户的预测评分与实际评分之间的平均偏差来度量预测算法的准确性,MAE越小,推荐质量越高。
设实验数据集中的测试计算得到的用户评分集合为{p1,p2,......,pn},对应的实际用户评分集合为{q1,q2,......,qn},则MAE定义为:
MAE = Σ i = 1 N | p i - q i | N 公式(6)
2)实验设计与结果分析
在在此实验数据集中,包括19中电影类型,因此在仿真测试时建立的用户-类型评分矩阵的类型划分为19种类型。为了便于算法的仿真及仿真的真实性,实验中从评分数据集中随机获取300位用户对项目的评分数据集作为测试集合,并将其分以8:2的比例分为训练集和测试集进行测试、分析。在测试中,设定用户之间共同评分数量的阈值r=20,扩展邻居的最近邻个数m=10,topN=30。
a、用户-类型矩阵中近邻数k的变化对推荐结果的影响
本实验主要分析大范围近邻用户的数量对推荐结果的影响,目的是选择最佳的近邻数量,来进行基于项目的相似度计算,为下一步实验打下基础。其中以k作为横坐标,从50近邻开始,逐步增加10,一直增加值120位近邻。在选取最近邻居时选择最近邻数n=40,实验结果如图2所示,为本发明实施例中基于类型的最近邻居个数数对推荐结果影响的比对示意图。
从图2中可以看出来,起初随着近邻数的增加,MAE值越来越低,算法的推荐精度越来越高,而在近邻数增加至90后,随着近邻数增加,MAE值呈增长趋势,因此,在近邻数为90时,算法的推荐质量最好。主要由于在随着近邻数增加,项目类型增加或者更多的相似用户考虑进来,但在大的范围内于目标用户感性趣的项目近似,所以推荐精度越来越高。但是随着近邻数更多地增加,项目类型或相似用户超出目标用户感兴趣的范围,因此推荐质量逐渐降低。
b、本发明实施例的推荐算法与其他推荐算法的比较
本实验主要为了比较提出的算法(NETCF)和传统的经典User-Based算法(TCF)及近期业界相似的比较领先的文献(宣照国,苗静,党延忠.基于扩展邻居的协同过滤算法[J].情报学报.2010.29(3).443-448)算法(ETCF)进行比较,直接用户近邻数n作为横坐标,其变化区间为[30,80],在通过用户-类型评分矩阵计算的大范围近邻用户时选取前90个近邻作为目标用户的最近邻居。实验结果如图3所示,为本发明实施例的推荐算法与其他推荐算法的推荐精度比对示意图。
从实验图3中,随着近邻数量n的增加,NETCF和ETCF算法的MAE值在小幅度递减,而传统的算法的MAE值起伏变化较大。但总体而言,各种算法的推荐精度都逐渐增高,说明随着目标用户的参考近邻越多,其推荐质量越高。NETCF和ETCF在预测精度上都比传统的推荐算法有明显的提高,但二者相比较来看,NETCF算法的预测精度比ETCF更好一些,主要是NETCF在计算扩展邻居时考虑到了与目标用户兴趣度近似的用户而排除了不一致的用户,因此得到了较为理想的推荐结果。
需要说明的是,对于前述的方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明所必需的。
基于上述方法实施例的说明,本发明还提供了相应的应用推荐装置实施例,来实现上述方法实施例所述的内容。
参照图4,其示出了本发明实施例所述一种项目推荐装置结构框图。
评分提取模块201,用于提取记录的多个评分对象及其对多个项目的评分;
项目均值计算模块202,用于针对每个项目,依据多个评分对象对所述项目的评分,统计所有评分对象对所述项目的评分均值;
类型确定模块203,用于确定各个项目所属的至少一个项目类型;
类型均值计算模块204,用于依据所述评分对象对各个项目的评分均值,以及各个项目所属的项目类型,分别统计各个评分对象对各个项目类型的评分均值;
第一对象确定模块205,用于计算目标对象与其他评分对象针对各个项目类型的评分均值的第一相似度,根据所述第一相似度确定所述目标对象具有相似类型喜好的第一相关对象;
第二对象确定模块206,用于通过计算所述目标对象与所述第一相关对象对各个项目的评分均值的第二相似度,根据所述第二相似度从所述第一相关对象中确定所述目标对象具有相似项目喜好的第二相关对象;
预测评分模块207,用于在所述第二相关对象所评分的所有项目中,提取所述目标对象未评分的项目作为候选推荐项目,通过所述目标对象的第二相关对象,计算所述目标对象对所述候选推荐项目的预测评分;
推荐模块208,用于提取所述预测评分符合预设范围的至少一个候选推荐项目推荐给所述目标对象。
本发明实施例中,优选地,所述项目均值计算模块202包括:
项目提取子模块,用于在多个评分对象对所述项目的评分中,提取所有的项目,并去除其中重复的项目;
第一均值计算子模块,用于针对各个项目,查找各个用户对所述项目的评分,并计算各个用户对所述项目的评分的平均值。
本发明实施例中,优选地,所述类型均值计算模块204包括:
项目查找子模块,用于针对各个项目类型,查找属于所述项目类型的各个项目
项目平分提取子模块,用于提取评分对象对查找的各个项目的评分;
第二均值计算子模块,用于计算提取的评分的平均值,作为所述项目类型的评分均值。
本发明实施例中,优选地,所述第一对象确定模块包括:
第一相似度计算子模块,用于针对各个评分对象b,通过以下公式(1)计算所述评分对象b与所述目标对象a的第一相似度Pearson(a,b):
Pearson ( a , b ) = Σ i ∈ I a , b ( R a , i - R a ‾ ) ( R b , i - R b ‾ ) Σ i ∈ I a , b ( R a , i - R a ‾ ) 2 Σ i ∈ I a , b ( R b , i - R b ‾ ) 2 公式(1)
其中,Ra,i表示评分对象a对项目i的评分,Ia表示所述评分对象a评分的项目组成的集合,Ia,b表示所述评分对象a和评分对象b共同评分的项目组成的集合,
Figure BDA0000404298190000192
表示所述评分对象a对所有已评分的项目的平均评分;
第一相关对象提取子模块,用于提取第一相似度大于第一预设阀值的评分对象,或是第一相似度从大到小排序靠前的至少一个评分对象作为所述第一相关对象。
本发明实施例中,优选地,所述第二对象确定模块包括:
第二相似度计算子模块,用于针对各第一相关对象u2,依据所述第一相关对象u2与所述目标对象u1分别对各个项目的评分,通过以下公式(2)计算各第一相关对象u2与所述目标对象u1之间的第二相似度FinalSimi(u1,u2):
FinalSi m i ( u 1 , u 2 ) = Sim ( u 1 , u 2 ) if r i u 2 ≠ 0 Sim ( u 1 , u 2 ) * Sim ( u 2 , u other ) if r i u 2 = 0 公式(2)
其中,ri u2表示u2对项目i的评分,表示存在u2对项目i的评分,
Figure BDA0000404298190000195
表示不存在u2对项目i的评分,Sim(u1,u2)为Weight(u1,u2)与Pearson(u1,u2)之积,Weight(u1,u2)为con和r中的最小值与r的比值,con为u1和u2共同评分数量,r为预设阈值,Pearson(u1,u2)为u1和u2的第一相似度,uother表示的u1除去u2之外的第一相关对象;
第二相关对象提取子模块,用于提取相似度大于第二预设阀值的第一相关对象,或是第二相似度从大到小排序靠前的至少一个第一相关对象作为所述第二相关对象。
本发明实施例中,优选地,所述目标对象的第二相关对象还包括所述目标对象的第一相关对象对应的第一相关对象,所述预测评分模块包括:
预测评分计算子模块,用于针对各个候选推荐对象i,通过以下公式(3)计算目标对象u对候选推荐对象i的评分Pui
P ui = R u ‾ + Σ a ∈ Ne Sim ( u , a ) * ( R a , i - R a ‾ ) Σ a ∈ Ne Sim ( u , a ) 公式(3)
其中,
Figure BDA0000404298190000202
表示u对所有已评分的项目的平均评分,
Figure BDA0000404298190000203
表示所述目标对象的第二相关对象a对所有已评分的项目的平均评分,Nu表示u的第二相关对象集合,Sim(u,a)为u与a的第二相似度。
本发明实施例通过对记录的评分对象及其对项目的评分,首先确定评分对象对项目的评分均值以及各个项目所属的项目类型,进一步统计评分对象对项目类型的评分均值,然后确定目标对象具有相似类型喜好的第一相关对象,再从第一相关对象中找出具有相似项目喜好的第二相关对象,在目标对象对未评分的项目中提取符合条件的项目推荐给目标对象。通过本发明实施例,利用用户对不同类型项目的兴趣程度,筛选出喜好项目类型相关的用户,去掉用户不感兴趣的无效信息,在计算用户之间的相似度时使用的都是有效信息,因此相似度计算更加准确,可以有效地改善计算用户之间相似度的准确率,有效提高推荐系统的推荐质量。
本发明实施例中,用户之间的相似度是建立在目标项目类型相似度以及项目相似度的基础上计算的,而背景技术是建立在用户对项目的评分基础上计算的,并没有考虑到用户评分项目之间的差异性。通过本发明的实验数据证实,本发明可以提高相似度的计算精度,其次,在计算用户之间的相似度时,是针对目标项目计算,避免了用户项目评分差异带来的无效数据信息,改善了误差性能。
对于上述项目推荐装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见图1所示方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域技术人员易于想到的是:上述各个实施例的任意组合应用都是可行的,故上述各个实施例之间的任意组合都是本发明的实施方案,但是由于篇幅限制,本说明书在此就不一一详述了。
本发明可用于众多通用或专用的计算系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
在本发明中,“组件”、“装置”、“系统”等等指应用于计算机的相关实体,如硬件、硬件和软件的组合、软件或执行中的软件等。详细地说,例如,组件可以、但不限于是运行于处理器的过程、处理器、对象、可执行组件、执行线程、程序和/或计算机。还有,运行于服务器上的应用程序或脚本程序、服务器都可以是组件。一个或多个组件可在执行的过程和/或线程中,并且组件可以在一台计算机上本地化和/或分布在两台或多台计算机之间,并可以由各种计算机可读介质运行。组件还可以根据具有一个或多个数据包的信号,例如,来自一个与本地系统、分布式系统中另一组件交互的,和/或在因特网的网络通过信号与其它系统交互的数据的信号通过本地和/或远程过程来进行通信。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”,不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括......”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
而且,上文中的“和/或”表示本文既包含了“和”的关系,也包含了“或”的关系,其中:如果方案A与方案B是“和”的关系,则表示某实施例中可以同时包括方案A和方案B;如果方案A与方案B是“或”的关系,则表示某实施例中可以单独包括方案A,或者单独包括方案B。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
以上对本发明所提供的一种项目推荐方法和应用推荐装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (10)

1.一种项目推荐方法,其特征在于,包括:
提取记录的多个评分对象及其对多个项目的评分;
针对每个项目,依据多个评分对象对所述项目的评分,统计所有评分对象对所述项目的评分均值,并确定各个项目所属的至少一个项目类型;
依据所述评分对象对各个项目的评分均值,以及各个项目所属的项目类型,分别统计各个评分对象对各个项目类型的评分均值;
计算目标对象与其他评分对象针对各个项目类型的评分均值的第一相似度,根据所述第一相似度确定所述目标对象具有相似类型喜好的第一相关对象;
通过计算所述目标对象与所述第一相关对象对各个项目的评分均值的第二相似度,根据所述第二相似度从所述第一相关对象中确定所述目标对象具有相似项目喜好的第二相关对象;
在所述第二相关对象所评分的所有项目中,提取所述目标对象未评分的项目作为候选推荐项目,通过所述目标对象的第二相关对象,计算所述目标对象对所述候选推荐项目的预测评分;
提取所述预测评分符合预设范围的至少一个候选推荐项目推荐给所述目标对象。
2.根据权利要求1所述的方法,其特征在于,所述针对每个项目,依据多个评分对象对项目的评分,统计所有评分对象对项目的评分均值的步骤包括:
在多个评分对象对所述项目的评分中,提取所有的项目,并去除其中重复的项目;
针对各个项目,查找各个用户对所述项目的评分,并计算各个用户对所述项目的评分的平均值。
3.根据权利要求1所述的方法,其特征在于,所述依据评分对象对各个项目的评分均值,以及各个项目所属的项目类型,分别统计各个评分对象对各个项目类型的评分均值的步骤包括:
针对各个项目类型,查找属于所述项目类型的各个项目,并提取评分对象对查找的各个项目的评分;
计算提取的评分的平均值,作为所述项目类型的评分均值。
4.根据权利要求1所述的方法,其特征在于,所述计算目标对象与其他评分对象针对各个项目类型的评分均值的第一相似度,根据所述第一相似度确定目标对象具有相似类型喜好的第一相关对象的步骤包括:
针对各个评分对象b,通过以下公式(1)计算所述评分对象b与所述目标对象a的第一相似度Pearson(a,b):
Pearson ( a , b ) = Σ i ∈ I a , b ( R a , i - R a ‾ ) ( R b , i - R b ‾ ) Σ i ∈ I a , b ( R a , i - R a ‾ ) 2 Σ i ∈ I a , b ( R b , i - R b ‾ ) 2 公式(1)
其中,Ra,i表示评分对象a对项目i的评分,Ia表示所述评分对象a评分的项目组成的集合,Ia,b表示所述评分对象a和评分对象b共同评分的项目组成的集合,
Figure FDA0000404298180000023
表示所述评分对象a对所有已评分的项目的平均评分;
提取第一相似度大于第一预设阀值的评分对象,或是第一相似度从大到小排序靠前的至少一个评分对象作为所述第一相关对象。
5.根据权利要求1所述的方法,其特征在于,所述通过计算目标对象与第一相关对象对各个项目的评分均值的第二相似度,根据第二相似度从第一相关对象中确定目标对象具有相似项目喜好的第二相关对象的步骤包括:
针对各第一相关对象u2,依据所述第一相关对象u2与所述目标对象u1分别对各个项目的评分,通过以下公式(2)计算各第一相关对象u2与所述目标对象u1之间的第二相似度FinalSimi(u1,u2):
FinalSi m i ( u 1 , u 2 ) = Sim ( u 1 , u 2 ) if r i u 2 ≠ 0 Sim ( u 1 , u 2 ) * Sim ( u 2 , u other ) if r i u 2 = 0 公式(2)
其中,ri u2表示u2对项目i的评分,
Figure FDA0000404298180000024
表示存在u2对项目i的评分,
Figure FDA0000404298180000025
表示不存在u2对项目i的评分,Sim(u1,u2)为Weight(u1,u2)与Pearson(u1,u2)之积,Weight(u1,u2)为con和r中的最小值与r的比值,con为u1和u2共同评分数量,r为预设阈值,Pearson(u1,u2)为u1和u2的第一相似度,uother表示的u1除去u2之外的第一相关对象;
提取相似度大于第二预设阀值的第一相关对象,或是第二相似度从大到小排序靠前的至少一个第一相关对象作为所述第二相关对象。
6.根据权利要求1所述的方法,其特征在于,所述目标对象的第二相关对象还包括所述目标对象的第一相关对象对应的第一相关对象,所述通过目标对象的第二相关对象,计算目标对象对候选推荐项目的预测评分的步骤包括:
针对各个候选推荐对象i,通过以下公式(3)计算目标对象u对候选推荐对象i的评分Pui
P ui = R u ‾ + Σ a ∈ Ne Sim ( u , a ) * ( R a , i - R a ‾ ) Σ a ∈ Ne Sim ( u , a ) 公式(3)
其中,
Figure FDA0000404298180000032
表示u对所有已评分的项目的平均评分,
Figure FDA0000404298180000033
表示所述目标对象的第二相关对象a对所有已评分的项目的平均评分,Nu表示u的第二相关对象集合,Sim(u,a)为u与a的第二相似度。
7.一种项目推荐装置,其特征在于,包括:
评分提取模块,用于提取记录的多个评分对象及其对多个项目的评分;
项目均值计算模块,用于针对每个项目,依据多个评分对象对所述项目的评分,统计所有评分对象对所述项目的评分均值;
类型确定模块,用于确定各个项目所属的至少一个项目类型;
类型均值计算模块,用于依据所述评分对象对各个项目的评分均值,以及各个项目所属的项目类型,分别统计各个评分对象对各个项目类型的评分均值;
第一对象确定模块,用于计算目标对象与其他评分对象针对各个项目类型的评分均值的第一相似度,根据所述第一相似度确定所述目标对象具有相似类型喜好的第一相关对象;
第二对象确定模块,用于通过计算所述目标对象与所述第一相关对象对各个项目的评分均值的第二相似度,根据所述第二相似度从所述第一相关对象中确定所述目标对象具有相似项目喜好的第二相关对象;
预测评分模块,用于在所述第二相关对象所评分的所有项目中,提取所述目标对象未评分的项目作为候选推荐项目,通过所述目标对象的第二相关对象,计算所述目标对象对所述候选推荐项目的预测评分;
推荐模块,用于提取所述预测评分符合预设范围的至少一个候选推荐项目推荐给所述目标对象。
8.根据权利要求7所述的装置,其特征在于,所述第一对象确定模块包括:
第一相似度计算子模块,用于针对各个评分对象b,通过以下公式(1)计算所述评分对象b与所述目标对象a的第一相似度Pearson(a,b):
Pearson ( a , b ) = Σ i ∈ I a , b ( R a , i - R a ‾ ) ( R b , i - R b ‾ ) Σ i ∈ I a , b ( R a , i - R a ‾ ) 2 Σ i ∈ I a , b ( R b , i - R b ‾ ) 2 公式(1)
其中,Ra,i表示评分对象a对项目i的评分,Ia表示所述评分对象a评分的项目组成的集合,Ia,b表示所述评分对象a和评分对象b共同评分的项目组成的集合,
Figure FDA0000404298180000042
表示所述评分对象a对所有已评分的项目的平均评分;
第一相关对象提取子模块,用于提取第一相似度大于第一预设阀值的评分对象,或是第一相似度从大到小排序靠前的至少一个评分对象作为所述第一相关对象。
9.根据权利要求7所述的装置,其特征在于,所述第二对象确定模块包括:
第二相似度计算子模块,用于针对各第一相关对象u2,依据所述第一相关对象u2与所述目标对象u1分别对各个项目的评分,通过以下公式(2)计算各第一相关对象u2与所述目标对象u1之间的第二相似度FinalSimi(u1,u2):
FinalSi m i ( u 1 , u 2 ) = Sim ( u 1 , u 2 ) if r i u 2 ≠ 0 Sim ( u 1 , u 2 ) * Sim ( u 2 , u other ) if r i u 2 = 0 公式(2)
其中,ri u2表示u2对项目i的评分,
Figure FDA0000404298180000044
表示存在u2对项目i的评分,
Figure FDA0000404298180000045
表示不存在u2对项目i的评分,Sim(u1,u2)为Weight(u1,u2)与Pearson(u1,u2)之积,Weight(u1,u2)为con和r中的最小值与r的比值,con为u1和u2共同评分数量,r为预设阈值,Pearson(u1,u2)为u1和u2的第一相似度,uother表示的u1除去u2之外的第一相关对象;
第二相关对象提取子模块,用于提取相似度大于第二预设阀值的第一相关对象,或是第二相似度从大到小排序靠前的至少一个第一相关对象作为所述第二相关对象。
10.根据权利要求7所述的装置,其特征在于,所述目标对象的第二相关对象还包括所述目标对象的第一相关对象对应的第一相关对象,所述预测评分模块包括:
预测评分计算子模块,用于针对各个候选推荐对象i,通过以下公式(3)计算目标对象u对候选推荐对象i的评分Pui
P ui = R u ‾ + Σ a ∈ Ne Sim ( u , a ) * ( R a , i - R a ‾ ) Σ a ∈ Ne Sim ( u , a ) 公式(3)
其中,
Figure FDA0000404298180000052
表示u对所有已评分的项目的平均评分,表示所述目标对象的第二相关对象a对所有已评分的项目的平均评分,Nu表示u的第二相关对象集合,Sim(u,a)为u与a的第二相似度。
CN201310522662.0A 2013-10-29 2013-10-29 一种项目推荐方法和装置 Active CN103514304B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310522662.0A CN103514304B (zh) 2013-10-29 2013-10-29 一种项目推荐方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310522662.0A CN103514304B (zh) 2013-10-29 2013-10-29 一种项目推荐方法和装置

Publications (2)

Publication Number Publication Date
CN103514304A true CN103514304A (zh) 2014-01-15
CN103514304B CN103514304B (zh) 2017-01-18

Family

ID=49897028

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310522662.0A Active CN103514304B (zh) 2013-10-29 2013-10-29 一种项目推荐方法和装置

Country Status (1)

Country Link
CN (1) CN103514304B (zh)

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104102813A (zh) * 2014-06-04 2014-10-15 百度移信网络技术(北京)有限公司 一种白噪声补偿方法以及装置
CN104143137A (zh) * 2014-07-29 2014-11-12 青岛海信医疗设备股份有限公司 医疗冷柜系统中样品的存储方法
CN104794635A (zh) * 2015-04-17 2015-07-22 南京大学 基于协同过滤推荐算法的机型推荐系统
CN104794636A (zh) * 2015-04-17 2015-07-22 南京大学 基于用户显示评分的机型推荐方法
CN105045849A (zh) * 2015-06-30 2015-11-11 北京奇艺世纪科技有限公司 一种目标对象的选取、推送方法及装置
CN105260460A (zh) * 2015-10-16 2016-01-20 桂林电子科技大学 一种面向多样性的推荐方法
CN105989106A (zh) * 2015-02-12 2016-10-05 广东欧珀移动通信有限公司 一种基于兴趣相似度的推荐方法及装置
CN106202474A (zh) * 2016-07-14 2016-12-07 Tcl集团股份有限公司 一种对象推荐方法和装置
CN106528643A (zh) * 2016-10-13 2017-03-22 上海师范大学 一种基于社交网络的多维度综合推荐方法
CN106651542A (zh) * 2016-12-31 2017-05-10 珠海市魅族科技有限公司 一种物品推荐的方法及装置
CN106779825A (zh) * 2016-12-02 2017-05-31 乐视控股(北京)有限公司 一种物品推荐方法、装置及电子设备
CN107133292A (zh) * 2017-04-25 2017-09-05 深圳市茁壮网络股份有限公司 对象推荐方法及系统
CN107230002A (zh) * 2017-06-09 2017-10-03 天津大学 基于项目的评分矩阵预测算法
CN107483982A (zh) * 2017-07-11 2017-12-15 北京潘达互娱科技有限公司 一种主播推荐方法与装置
CN107766446A (zh) * 2017-09-22 2018-03-06 北京网众共创科技有限公司 资讯信息的推送方法、装置、存储介质及处理器
CN108200505A (zh) * 2018-03-02 2018-06-22 深圳明创自控技术有限公司 一种能够自主控制的智能耳机
CN108446951A (zh) * 2018-02-13 2018-08-24 李杰波 评分展示方法及系统
CN109508405A (zh) * 2018-12-24 2019-03-22 北京爱奇艺科技有限公司 一种推荐视频的确定方法、装置、电子设备及存储介质
CN110033851A (zh) * 2019-04-02 2019-07-19 腾讯科技(深圳)有限公司 信息推荐方法、装置、存储介质及服务器

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI626847B (zh) * 2017-08-28 2018-06-11 中華電信股份有限公司 個人化影音資料評分綜合加權資訊之系統與方法
CN107943989B (zh) * 2017-12-01 2021-12-10 工业互联网创新中心(上海)有限公司 基于SaaS平台的模块推荐装置及方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110295762A1 (en) * 2010-05-30 2011-12-01 Scholz Martin B Predictive performance of collaborative filtering model
CN102495837A (zh) * 2011-11-01 2012-06-13 中国科学院计算技术研究所 一种数字信息推荐预测模型的训练方法和系统
CN102609533A (zh) * 2012-02-15 2012-07-25 中国科学技术大学 一种基于核方法的协同过滤推荐系统及方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110295762A1 (en) * 2010-05-30 2011-12-01 Scholz Martin B Predictive performance of collaborative filtering model
CN102495837A (zh) * 2011-11-01 2012-06-13 中国科学院计算技术研究所 一种数字信息推荐预测模型的训练方法和系统
CN102609533A (zh) * 2012-02-15 2012-07-25 中国科学技术大学 一种基于核方法的协同过滤推荐系统及方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
刘芹: "结合项目分类和云模型的协同过滤算法研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》, 15 March 2013 (2013-03-15) *
王正武: "基于用户喜好类型的协同过滤推荐算法研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》, 15 October 2011 (2011-10-15) *

Cited By (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104102813A (zh) * 2014-06-04 2014-10-15 百度移信网络技术(北京)有限公司 一种白噪声补偿方法以及装置
CN104143137B (zh) * 2014-07-29 2017-07-07 青岛海信医疗设备股份有限公司 医疗冷柜系统中样品的存储方法
CN104143137A (zh) * 2014-07-29 2014-11-12 青岛海信医疗设备股份有限公司 医疗冷柜系统中样品的存储方法
CN105989106A (zh) * 2015-02-12 2016-10-05 广东欧珀移动通信有限公司 一种基于兴趣相似度的推荐方法及装置
CN104794635A (zh) * 2015-04-17 2015-07-22 南京大学 基于协同过滤推荐算法的机型推荐系统
CN104794636A (zh) * 2015-04-17 2015-07-22 南京大学 基于用户显示评分的机型推荐方法
CN104794636B (zh) * 2015-04-17 2018-04-06 南京大学 基于用户显示评分的机型推荐方法
CN105045849A (zh) * 2015-06-30 2015-11-11 北京奇艺世纪科技有限公司 一种目标对象的选取、推送方法及装置
CN105260460B (zh) * 2015-10-16 2018-08-14 桂林电子科技大学 一种面向多样性的推荐方法
CN105260460A (zh) * 2015-10-16 2016-01-20 桂林电子科技大学 一种面向多样性的推荐方法
CN106202474A (zh) * 2016-07-14 2016-12-07 Tcl集团股份有限公司 一种对象推荐方法和装置
CN106528643A (zh) * 2016-10-13 2017-03-22 上海师范大学 一种基于社交网络的多维度综合推荐方法
CN106779825A (zh) * 2016-12-02 2017-05-31 乐视控股(北京)有限公司 一种物品推荐方法、装置及电子设备
CN106651542A (zh) * 2016-12-31 2017-05-10 珠海市魅族科技有限公司 一种物品推荐的方法及装置
CN107133292A (zh) * 2017-04-25 2017-09-05 深圳市茁壮网络股份有限公司 对象推荐方法及系统
CN107230002A (zh) * 2017-06-09 2017-10-03 天津大学 基于项目的评分矩阵预测算法
CN107483982B (zh) * 2017-07-11 2020-08-21 北京潘达互娱科技有限公司 一种主播推荐方法与装置
CN107483982A (zh) * 2017-07-11 2017-12-15 北京潘达互娱科技有限公司 一种主播推荐方法与装置
CN107766446A (zh) * 2017-09-22 2018-03-06 北京网众共创科技有限公司 资讯信息的推送方法、装置、存储介质及处理器
CN108446951A (zh) * 2018-02-13 2018-08-24 李杰波 评分展示方法及系统
CN108200505A (zh) * 2018-03-02 2018-06-22 深圳明创自控技术有限公司 一种能够自主控制的智能耳机
CN108200505B (zh) * 2018-03-02 2019-11-19 江华智酷科技有限公司 一种能够自主控制的智能耳机
CN109508405B (zh) * 2018-12-24 2020-07-31 北京爱奇艺科技有限公司 一种推荐视频的确定方法、装置、电子设备及存储介质
CN109508405A (zh) * 2018-12-24 2019-03-22 北京爱奇艺科技有限公司 一种推荐视频的确定方法、装置、电子设备及存储介质
CN110033851A (zh) * 2019-04-02 2019-07-19 腾讯科技(深圳)有限公司 信息推荐方法、装置、存储介质及服务器
CN110033851B (zh) * 2019-04-02 2022-07-26 腾讯科技(深圳)有限公司 信息推荐方法、装置、存储介质及服务器

Also Published As

Publication number Publication date
CN103514304B (zh) 2017-01-18

Similar Documents

Publication Publication Date Title
CN103514304B (zh) 一种项目推荐方法和装置
CN104935963B (zh) 一种基于时序数据挖掘的视频推荐方法
Zhang et al. A research of job recommendation system based on collaborative filtering
CN105373597A (zh) 基于k-medoids项目聚类和局部兴趣融合的用户协同过滤推荐方法
Goel et al. Discovering similar users on twitter
CN105069072A (zh) 基于情感分析的混合用户评分信息推荐方法及其推荐装置
Zhou et al. Online video recommendation in sharing community
CN107391670A (zh) 一种融合协同过滤和用户属性过滤的混合推荐方法
CN104298787A (zh) 一种基于融合策略的个性化推荐方法及装置
CN103530416A (zh) 项目数据预测评分库的生成、项目数据的推送方法和系统
CN106980646A (zh) 基于流行度对用户兴趣的影响机制分析及其在推荐算法中应用的方法
CN105389590A (zh) 一种视频聚类推荐方法和装置
CN103559303A (zh) 一种对数据挖掘算法的评估与选择方法
CN105678590A (zh) 一种面向社交网络基于云模型的topN推荐方法
CN104008193B (zh) 一种基于典型用户群组发现技术的信息推荐方法
CN103853789A (zh) 一种用于向用户推荐信息的方法和设备
CN103745380A (zh) 一种广告投放方法和装置
Aliannejadi et al. User model enrichment for venue recommendation
Santos et al. Aggregated search result diversification
CN104123321B (zh) 一种确定推荐图片的方法及装置
Wei et al. Online education recommendation model based on user behavior data analysis
KR101910424B1 (ko) 태그의 감성 분석을 이용한 영화 평점 예측 방법, 이를 수행하기 위한 기록 매체 및 장치
CN103678709A (zh) 一种基于时序数据的推荐系统攻击检测算法
CN113836395B (zh) 一种基于异构信息网络的服务开发者按需推荐方法及系统
Chen et al. Trust-based collaborative filtering algorithm in social network

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant