CN103116639B - 基于用户-物品二分图模型的物品推荐方法及系统 - Google Patents
基于用户-物品二分图模型的物品推荐方法及系统 Download PDFInfo
- Publication number
- CN103116639B CN103116639B CN201310054742.8A CN201310054742A CN103116639B CN 103116639 B CN103116639 B CN 103116639B CN 201310054742 A CN201310054742 A CN 201310054742A CN 103116639 B CN103116639 B CN 103116639B
- Authority
- CN
- China
- Prior art keywords
- article
- user
- list
- similarity
- weight
- 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.)
- Active
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于用户-物品二分图模型的物品推荐方法及系统。该方法包括:提取获取的用户行为信息,构建用户-物品二分图模型;基于构建的用户-物品二分图模型,构建物品到用户的倒排列表模型并计算物品权重,构建用户-物品权重列表;根据构建的用户-物品权重列表,计算用户对应的物品对权重以及物品对的共同用户权重,构建物品对-共同用户权重列表;按照预先设置的相似度算法进行运算,获取物品间相似度列表;查询构建的用户-物品二分图模型,获取待推荐用户映射的物品,根据待推荐用户映射的物品查询物品间相似度列表,获取查询结果,根据查询结果生成推荐列表。应用本发明,可以降低推荐所需的计算量、提升推荐效率。
Description
技术领域
本发明涉及计算机信息处理技术,尤其涉及一种基于用户-物品二分图模型的物品推荐方法及系统。
背景技术
个性化物品推荐是指通过挖掘用户的兴趣特点和历史用户行为等用户行为信息,定期向用户推荐物品的一种网络推荐方法。基于个性化推荐的个性化推荐系统(简称推荐系统),是建立在海量用户行为信息挖掘基础上的一种高级智能平台,用于为用户提供完全个性化的决策支持和信息服务,提升用户的业务体验。
图1为现有基于用户-物品二分图模型的物品推荐方法流程示意图。参见图1,该流程包括:
步骤101,提取用户行为信息;
本步骤中,用户行为信息是推荐系统进行物品推荐的基础,通过推荐系统中的日志模块监测用户访问互联网的行为,抓取用户访问互联网的行为信息,存储至推荐系统中的用户行为信息库中。
用户行为信息包括:浏览物品信息、评论物品信息以及给物品打分信息等。
在接收到用户的推荐请求或主动对用户进行物品推荐时,根据需要推荐的用户信息,从用户行为信息库中读取存储的相应用户行为信息。
步骤102,根据提取的用户行为信息构建推荐数据模型;
本步骤中,不同的推荐系统可能采用不同的推荐数据模型,因而,在进行物品推荐之前,需要将用户行为信息按照推荐系统的要求进行组织,组织成满足推荐系统要求的数据模型。例如,对于进行物品推荐的推荐系统,数据模型可以是用户-物品二分图模型等。
以用户-物品二分图模型为例,将提取的用户行为信息表示在用户-物品二分图上,从而构建推荐数据模型。
图2为用户-物品二分图模型结构示意图。参见图2,令G(V,E)表示用户-物品二分图模型,其中,V表示用户-物品二分图模型中的节点,E表示用户-物品二分图模型中,用户节点与物品节点形成的边。
V=U′UF′,其中,U′表示用户-物品二分图模型中的用户节点集合,F′表示用户-物品二分图模型中的物品节点集合。本申请中,每一用户对应一用户节点,每一物品对应一物品节点。如果用户uk对物品fi产生过用户行为,则在用户-物品二分图模型中,用户节点Uk与物品节点Fi具有对应的边E(Uk,Fi),边的权重系数可以设置为该用户对该物品的影响程度。其中,
在图2中,左边表示三个用户A、B、C,分别对应用户节点UA、UB、UC,右边表示四个物品a、b、c、d,分别对应物品节点Fa、Fb、Fc、Fd,其中,用户A对物品a、b具有用户行为,用户B对物品b、c、d具有用户行为,用户C对物品a、c具有用户行为。
步骤103,根据预先设置的推荐算法,对构建的数据模型进行推荐运算,获取初步推荐结果;
本步骤中,推荐引擎中的推荐算法是推荐系统的核心,是生成初步推荐结果的关键。
常用的推荐算法包括协同过滤推荐算法、基于内容的推荐算法、社会化推荐算法等。
以协同过滤推荐算法中的TopicRank算法为例,通过用户-物品二分图模型为用户推荐物品,可以转化为度量用户-物品二分图模型中所有物品节点与目标用户节点的相关度,通过获取与目标用户节点相关的物品节点,得到初步推荐结果(推荐列表),按照相关度对初步推荐结果中的物品节点进行排序,使得相关度越高的物品,在推荐列表中的位置越靠前。
以下对基于用户-物品二分图模型进行推荐运算的流程进行简要说明。
如图2所示,假设需要为用户u进行推荐,则以用户u对应的用户节点Vu为初始节点,进行迭代,即在用户-物品二分图模型中随机游走,当游走到任意一个物品节点时,按照预先设置的概率d(取值在0到1之间,一般取0.85)继续向前游走,并从当前物品节点指向的用户节点中,按照均匀分布,随机选择一个用户节点作为下次游走的节点;并以(1-d)的概率停止本次游走,从Vu重新开始。这样,经过多次重复,可以得到待推荐用户与各物品节点的相似度,将相似度计算时获取的物品节点作为初步推荐结果。
TopicRank的迭代公式如下:
式中,
PR(Vi)为节点Vi的相关度,节点Vi包括用户节点以及物品节点;
d为继续游走的概率;
in(Vi)为指向节点Vi的所有节点集合,对于图2中的节点UA,指向节点uA的节点集合为Fa和Fb,分别对应物品a和物品b;
out(Vj)为节点Vj指向的所有节点集合,对于图2中的节点UA,节点UA指向的节点集合为Fa和Fb,分别对应物品a和物品b;
rk表示对用户节点Uk进行推荐,k∈K,设置用户节点Uk的初始值为1,其他用户节点的初始值为0。
在上述用户-物品二分图模型中,以对用户A进行推荐为例,取d=0.85,利用TopicRank的迭代公式,可以计算出所有物品节点相对于用户节点UA的相关性值,迭代运算流程如下:
A11,构建用户-物品二分图模型,设置待推荐用户的相关度初始值;
本步骤中,设置rA=1,其他用户节点的PR值均为0。
A12,根据获取的用户行为信息,进行第一次迭代;
本步骤中,基于TopicRank的第一次迭代运算如下:
PR(VA)=(1-0.85)x1+0.85x(PR(Va)/out(Va)+PR(Vb)/out(Vb))
=0.15+0.85x(0/2+0/2)=0.15
PR(Va)=(1-0.85)x0+0.85x(PR(VA)/out(VA)+PR(VC)/out(VC))
=0.85x(1/2+0/2)=0.425
PR(Vb)=(1-0.85)x0+0.85x(PR(VA)/out(VA)+PR(VB)/out(VB))
=0.85x(1/2+0/3)=0.425
A13,基于第一次迭代运算结果进行第二次迭代;
本步骤中,基于第一次迭代运算结果以及TopicRank,第二次迭代运算如下:
PR(VB)=(1-0.85)x0+0.85x(PR(Vb)/out(Vb)+PR(Vc)/out(Vc)+PR(Vd)/out(Vd))
=0.85x(0.425/2+0/2+0/1)=0.181
PR(VC)=(1-0.85)x0+0.85x(PR(Va)/out(Va)+PR(Vc)/out(Vc))
=0.85x(0.425/2+0/2)=0.181
A14,基于第二次迭代运算结果进行第三次迭代。
本步骤中,基于第二次迭代运算结果以及TopicRank,第三次迭代运算如下:
PR(Vc)=(1-0.85)x0+0.85x(PR(VB)/out(VB)+PR(VC)/out(VC))
=0.85x(0.181/3+0.181/2)=0.128
PR(Vd)=(1-0.85)x0+0.85x(PR(VB)/out(VB))=0.85x(0.181/3)=0.051
步骤104,按照预先设置的过滤策略对初步推荐结果进行过滤;
本步骤中,通过推荐引擎中推荐算法的运算,生成的结果仅是初步推荐结果,还需要根据过滤策略,例如,过滤掉用户有过行为的、质量较差的等对用户来说是不感觉兴趣的、没有价值的物品。
步骤105,对过滤的初步推荐结果,按物品的相关度进行排序,获取排序前N位的物品作为最终推荐结果。
本步骤中,得到过滤的初步推荐结果后,按照进行迭代运算得到的物品的相关度,从高到低进行排序,并取TopN个结果,组成最终推荐结果,即对物品c、d按相关度进行排序,得到最终推荐结果<c,d>,向用户进行推荐,并将最终推荐结果展现给用户。
由上述可见,现有基于用户-物品二分图模型的物品推荐方法,在对用户进行物品推荐时,需要在整个用户-物品二分图模型中进行迭代,推荐所需的计算量大,并需要占用大量的临时存储空间;同时,需要迭代的次数较多,不仅增加了计算量,也大大增加了计算所需的时间,导致用户需要较长时间才能获取推荐物品,推荐效率较低。例如,对于图2所示的示例,仅包含7个节点和7条边,需要迭代9次才能获取物品节点的相似度值,而实际应用中,节点和边的数目众多,数据量更大,所需的迭代次数更多,使得大数据量运算的时间复杂度和空间复杂度更高,难以实时获取推荐结果,降低了推荐效率。
发明内容
本发明的实施例提供一种基于用户-物品二分图模型的物品推荐方法,降低推荐所需的计算量、提升推荐效率。
本发明的实施例还提供一种基于用户-物品二分图模型的物品推荐系统,降低推荐所需的计算量、提升推荐效率。
为达到上述目的,本发明实施例提供的一种基于用户-物品二分图模型的物品推荐方法,该方法包括:
提取用户行为信息,根据提取的用户行为信息构建用户-物品二分图模型;
基于构建的用户-物品二分图模型,构建物品到用户的倒排列表模型;
根据构建的物品到用户的倒排列表模型,计算物品权重,构建用户-物品权重列表;
根据构建的用户-物品权重列表,计算用户对应的物品对权重以及物品对的共同用户权重,构建物品对-共同用户权重列表;
根据构建的物品对-共同用户权重列表,按照预先设置的相似度算法进行运算,获取物品间相似度列表;
查询构建的用户-物品二分图模型,获取待推荐用户映射的物品,根据待推荐用户映射的物品查询物品间相似度列表,获取查询结果,根据查询结果生成推荐列表。
其中,在所述获取物品间相似度列表之后,查询构建的用户-物品二分图模型之前,所述方法进一步包括:
根据获取的物品间相似度列表构建物品间相似度矩阵,对构建的物品间相似度矩阵进行一次或多次迭代,生成迭代的物品间相似度矩阵;
所述根据待推荐用户映射的物品查询物品间相似度列表具体包括:
根据待推荐用户映射的物品查询所述迭代的物品间相似度矩阵。
其中,所述方法进一步包括:
依据预先设置的过滤策略对推荐列表进行过滤;
对推荐列表或过滤后的推荐列表,按照物品间相似度进行排序,获取排序前N位的物品向用户显示。
其中,所述基于构建的用户-物品二分图模型构建物品到用户的倒排列表模型包括:
以用户-物品二分图模型中的物品为关键词,统计对该物品具有用户行为信息的用户,建立物品与用户的映射关系,根据映射关系构建物品到用户的倒排列表模型;
所述根据构建的物品到用户的倒排列表模型,计算物品权重,构建用户-物品权重列表包括:
在物品到用户的倒排列表模型中,统计物品指向的用户节点集合数,得到物品权重;
以用户为关键字,获取该用户指向的物品的物品权重,得到用户-物品权重列表。
其中,所述根据构建的用户-物品权重列表,计算用户对应的物品对权重以及物品对的共同用户权重,构建物品对-共同用户权重列表包括:
以各用户为关键字,遍历用户-物品权重列表,获取该用户对应的物品及物品权重;
对获取的用户对应的物品及物品权重,分别进行两两组合,得到该用户对应的物品对及物品对权重;
获取物品对对应的用户节点指向的物品节点集合数,得到该物品对的共同用户权重,根据物品对、物品对权重以及共同用户权重,构建物品对-共同用户权重列表。
其中,所述根据构建的物品对-共同用户权重列表,按照预先设置的相似度算法进行运算,获取物品间相似度列表包括:
统计物品对-共同用户权重列表中相同的物品对,按照预先设置的相似度算法进行运算,计算相同物品对中物品间相似度;
以物品为关键字,根据计算的物品间相似度构建物品间相似度列表;
所述相似度算法公式为:
式中,
simij为物品fi到物品fj的相似度;
uwtk为物品对中物品fi、fj的共同用户权重;
L为相同的物品对数;
fwti为物品fi权重。
其中,所述查询构建的用户-物品二分图模型,获取待推荐用户映射的物品,根据待推荐用户映射的物品查询物品间相似度列表,获取查询结果,根据查询结果生成推荐列表包括:
根据待推荐用户信息,在用户-物品二分图模型中检索,获取待推荐用户映射的物品;
根据待推荐用户映射的物品,查询物品间相似度列表,获取待推荐用户映射的物品对应的物品间相似度;
对获取的相同物品的物品间相似度进行累加,得到与待推荐用户映射的物品相关联的物品;
从得到的与待推荐用户映射的物品相关联的物品中,删除待推荐用户映射的物品,得到用户的推荐列表。
一种基于用户-物品二分图模型的物品推荐系统,该系统包括:二分图模型生成器、倒排列表模型生成器、物品权重列表生成器、共同用户权重列表生成器、物品间相似度列表生成器以及推荐列表生成器,其中,
二分图模型生成器,用于提取用户行为信息,根据提取的用户行为信息构建用户-物品二分图模型;
倒排列表模型生成器,用于基于二分图模型生成器构建的用户-物品二分图模型,构建物品到用户的倒排列表模型;
物品权重列表生成器,用于根据倒排列表模型生成器构建的物品到用户的倒排列表模型,计算物品权重,构建用户-物品权重列表;
共同用户权重列表生成器,用于根据物品权重列表生成器构建的用户-物品权重列表,计算用户对应的物品对权重以及物品对的共同用户权重,构建物品对-共同用户权重列表;
物品间相似度列表生成器,用于根据构建的物品对-共同用户权重列表,按照预先设置的相似度算法进行运算,获取物品间相似度列表;
推荐列表生成器,用于查询构建的用户-物品二分图模型,获取待推荐用户映射的物品,根据待推荐用户映射的物品查询物品间相似度列表,获取查询结果,根据查询结果生成推荐列表。
较佳地,进一步包括:
迭代器,用于根据物品间相似度列表生成器获取的物品间相似度列表,构建物品间相似度矩阵,对构建的物品间相似度矩阵进行一次或多次迭代,生成迭代的物品间相似度矩阵,以使推荐列表生成器根据待推荐用户映射的物品查询迭代的物品间相似度矩阵获取查询结果;和/或
过滤器,用于依据预先设置的过滤策略,对推荐列表生成器生成的推荐列表进行过滤;和/或
排序器,用于对推荐列表生成器生成的推荐列表或过滤器过滤的推荐列表,按照物品间相似度进行排序,获取排序前N位的物品向用户显示。
较佳地,所述倒排列表模型生成器包括:关键词获取模块、统计模块以及倒排列表模型生成模块,其中,
关键词获取模块,用于依序获取用户-物品二分图模型中的物品,作为关键词输出至统计模块;
统计模块,用于根据接收的物品关键词,统计对该物品具有用户行为信息的用户,将该物品与统计的用户输出至倒排列表模型生成模块;
倒排列表模型生成模块,用于根据接收的物品与统计的用户信息,建立物品与用户的映射关系,根据映射关系构建物品到用户的倒排列表模型。
较佳地,所述物品权重列表生成器包括:物品权重生成模块以及物品权重列表生成模块,其中,
物品权重生成模块,用于在物品到用户的倒排列表模型中,统计物品指向的用户节点集合数,得到物品权重;
物品权重列表生成模块,用于以用户为关键字,获取该用户指向的物品的物品权重,得到用户-物品权重列表。
较佳地,所述共同用户权重列表生成器包括:物品权重获取模块、物品对权重获取模块以及共同用户权重列表生成模块,其中,
物品权重获取模块,用于以各用户为关键字,遍历用户-物品权重列表,获取该用户对应的物品及物品权重;
物品对权重获取模块,用于对获取的用户对应的物品及物品权重,分别进行两两组合,得到该用户对应的物品对及物品对权重;
共同用户权重列表生成模块,用于获取物品对对应的用户节点指向的物品节点集合数,得到该物品对的共同用户权重,根据物品对、物品对权重以及共同用户权重,构建物品对-共同用户权重列表。
较佳地,所述物品间相似度列表生成器包括:物品间相似度计算模块以及物品间相似度列表生成模块,其中,
物品间相似度计算模块,用于统计物品对-共同用户权重列表中相同的物品对,按照预先设置的相似度算法进行运算,计算相同物品对中物品间相似度;
物品间相似度列表生成模块,以物品为关键字,根据计算的物品间相似度构建物品间相似度列表;
所述推荐列表生成器包括:检索模块、物品间相似度获取模块、关联物品获取模块以及推荐列表生成模块,其中,
检索模块,用于根据待推荐用户信息,在用户-物品二分图模型中检索,获取待推荐用户映射的物品;
物品间相似度获取模块,用于根据待推荐用户映射的物品,查询物品间相似度列表,获取待推荐用户映射的物品对应的物品间相似度;
关联物品获取模块,用于对获取的相同物品的物品间相似度进行累加,得到与待推荐用户映射的物品相关联的物品;
推荐列表生成模块,用于从得到的与待推荐用户映射的物品相关联的物品中,删除待推荐用户映射的物品,得到用户的推荐列表。
由上述技术方案可见,本发明实施例提供的一种基于用户-物品二分图模型的物品推荐方法及系统,提取用户行为信息,根据提取的用户行为信息构建用户-物品二分图模型;基于构建的用户-物品二分图模型,构建物品到用户的倒排列表模型;根据构建的物品到用户的倒排列表模型,计算物品权重,构建用户-物品权重列表;根据构建的用户-物品权重列表,计算用户对应的物品对权重以及物品对的共同用户权重,构建物品对-共同用户权重列表;根据构建的物品对-共同用户权重列表,按照预先设置的相似度算法进行运算,获取物品间相似度列表;查询构建的用户-物品二分图模型,获取待推荐用户映射的物品,根据待推荐用户映射的物品查询物品间相似度列表,获取查询结果,根据查询结果生成推荐列表。这样,无需在整个用户-物品二分图模型中进行迭代,且所需的迭代次数少,可以大幅简化计算量,从而降低推荐所需的计算量、提升推荐效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,以下将对实施例或现有技术描述中所需要使用的附图作简单地介绍。显而易见地,以下描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员而言,还可以根据这些附图所示实施例得到其它的实施例及其附图。
图1为现有基于用户-物品二分图模型的物品推荐方法流程示意图。
图2为用户-物品二分图模型结构示意图。
图3为本发明实施例基于用户-物品二分图模型的物品推荐方法流程示意图。
图4为本发明实施例基于用户-物品二分图模型的物品推荐系统结构示意图。
具体实施方式
以下将结合附图对本发明各实施例的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施例,都属于本发明所保护的范围。
现有基于用户-物品二分图模型的物品推荐方法,在对用户进行物品推荐时,需要在整个用户-物品二分图模型中,对用户节点以及物品节点依序进行迭代,使得需要迭代的次数较多、推荐所需的计算量大,导致推荐效率较低。
应用在推荐系统中的用户-物品二分图模型,根据用户与物品的关系,可将用户-物品二分图模型分为四层,第一层为目标用户节点层,第二层为与目标用户节点层紧邻的物品节点层,在该层中,用户对物品具有用户行为,因而,在实际应用中,该层中的物品不会被推荐;物品节点层的下一层是非目标用户节点层,为第三层,是非推荐物品,即不会向目标用户推荐该层中的用户;第四层为非目标用户节点层相邻的物品节点层,只有该层中的物品为待推荐物品。
本发明实施例中,考虑在用户-物品二分图模型中,第二层对应的与目标用户节点相关的物品节点以及第三层对应的非目标用户节点,都非用户的推荐物品;而且,推荐系统中,物品数量相对稳定,并远低于用户数量。因而,在进行物品推荐时,通过将用户-物品二分图模型转化成物品到用户的倒排列表模型,这样,在物品到用户的倒排列表模型中,可以基于较少数量的物品构建模型,并基于物品到用户的倒排列表模型以及预先设置的相似度算法,采用映射化简(MapReduce)框架算法方式构建物品间相似度矩阵,根据构建的物品间相似度矩阵以及请求推荐的用户行为信息,得到物品推荐列表,从而实现物品推荐。由于构建物品间相似度矩阵涉及的迭代运算次数少,因而,通过构建的物品间相似度矩阵,可以降低进行物品推荐时所需的计算量,有效解决高时间复杂度和空间复杂度,能够并行处理、实时计算,从而提升推荐效率。
图3为本发明实施例基于用户-物品二分图模型的物品推荐方法流程示意图。参见图3,该流程包括:
步骤301,提取获取的用户行为信息,根据提取的用户行为信息构建用户-物品二分图模型;
本步骤中,用户行为信息包括:浏览物品信息、评论物品信息以及给物品打分信息等。
本发明实施例中,用户行为信息存储在用户行为信息库中,如果用户行为信息库中存储有用户行为信息,表明用户对用户行为信息中包含的物品具有用户行为。
获取用户行为信息包括:
监测用户访问互联网上商店中物品的行为;
抓取用户访问物品的行为信息,存储至用户行为信息库中。
本步骤中,通过实时监测、抓取用户行为信息,并存储至用户行为信息库,可以实时获取用户对物品的行为信息。
实际应用中,可以按照推荐系统预先设置的周期提取用户行为信息,即可以按照预先设置的周期,定时对构建的用户-物品二分图模型进行更新,这样,在后续进行物品推荐时,可以使得对用户推荐的物品与用户的相关性更强。
关于构建用户-物品二分图模型的流程,具体可参见相关技术文献,在此不再赘述。
步骤302,基于构建的用户-物品二分图模型,构建物品到用户的倒排列表模型;
本步骤中,以用户-物品二分图模型中的物品为关键词,统计对该物品具有用户行为信息的用户,建立物品与用户的映射关系,根据映射关系构建物品到用户的倒排列表模型。
表1为基于图2的用户-物品二分图模型构建的物品到用户的倒排列表模型。
表1
表1中,物品到用户的倒排列表模型分为左右两栏,左栏为物品栏,每一物品在左栏中占用一行,右栏为物品映射的用户栏。其中,用户A、C对物品a有过用户行为,用户A、B对物品b有过用户行为,用户B、C对物品c有过用户行为,用户B对物品d有过用户行为。
步骤303,根据构建的物品到用户的倒排列表模型,计算物品权重,构建用户-物品权重列表;
本步骤中,采用映射化简框架算法方式进行运算,计算物品权重,构建用户-物品权重列表。即以构建的物品到用户的倒排列表模型作为映射化简(MapReduce)框架算法的输入,经过预设次数的MapReduce运算,最终可以得到用于物品推荐的物品间相似度矩阵。
本发明实施例中,通过预先设置的映射(Map)函数,可以将物品到用户的倒排列表模型中的一组键值对映射成一组新的键值对,并通过预先设置的并发的化简(Reduce)函数,可以保证所有映射的键值对中的每一个共享相同的键组。由于Map框架算法可以执行并行运算,可以有效提高运算效率,降低运算所需的时间。关于MapReduce框架算法的详细描述,具体可参见相关技术文献,在此不再赘述。
本步骤具体包括:
A21,在物品到用户的倒排列表模型中进行映射运算,统计物品指向的用户节点集合数,得到物品权重;
本步骤中,首先进行映射运算,即根据输入物品(fi)到用户(uk)的倒排列表模型(fi-vector<ui>),计算物品权重(fwti)。其中,
fwti=|out(i)|
式中,
fwti为物品fi的权重,也即物品的出度;
out(i)为物品fi指向的用户节点集合数,例如,本发明实施例中,对于物品a,指向的用户节点为A、C,因而,用户节点集合数为2,即物品a的物品权重为2。依据相类似的映射运算,对于表1,计算得到的物品b、c、d的物品权重分别为2、2、1。
A22,以用户为关键字,将该用户指向的物品的物品权重进行化简运算,得到用户-物品权重列表(ui-vector<fi,fwti>)。
本步骤中,进行化简运算即获取该用户指向的物品的物品权重,经过第一次MapReduce运算,得到的用户-物品权重列表如表2所示。
表2
表2中,以用户A为例,用户A对物品a、b具有用户行为,物品a、b对应的物品权重为2、2,则用户A在用户-物品权重列表中表示为:A-<a,2>、<b,2>。
步骤304,根据构建的用户-物品权重列表,计算用户对应的物品对权重以及物品对的共同用户权重,构建物品对-共同用户权重列表;
本步骤具体包括:
A31,以各用户为关键字,遍历用户-物品权重列表,获取该用户对应的物品及物品权重;
本步骤中,采用映射化简框架算法方式来构建物品对-共同用户权重列表。
以表2为例,以用户A为关键字进行查询,可以获取用户A对应的物品及物品权重:<a,2>、<b,2>;以用户B为关键字进行查询,可以获取用户B对应的物品及物品权重:<b,2>、<c,2>、<d,1>;以用户C为关键字进行查询,可以获取用户C对应的物品及物品权重:<a,2>、<c,2>。
A32,对获取的用户对应的物品及物品权重,分别进行双重循环,得到该用户对应的物品对及物品对权重;
本步骤中,物品对由具有同一用户行为信息的物品中的任意两物品组成,物品对权重分别为物品对中各物品的物品权重。进行双重循环即在用户对应的物品及物品权重组成的集合中,将任意两个物品及物品权重进行组合。
如前所述,对用户A对应的物品及物品权重<a,2>、<b,2>进行双重循环,可以得到该用户A对应的物品对及物品对权重:<a,b,2,2>;对用户B对应的物品及物品权重<b,2>、<c,2>、<d,1>进行双重循环,可以得到该用户B对应的物品对及物品对权重:<b,c,2,2>、<b,d,2,1>以及<c,d,2,1>;对用户C对应的物品及物品权重<a,2>、<c,2>进行双重循环,可以得到该用户C对应的物品对及物品对权重:<a,c,2,2>。
A33,获取物品对对应的用户节点指向的物品节点集合数,得到该物品对的共同用户权重,根据物品对、物品对权重以及共同用户权重,构建物品对-共同用户权重列表。
本步骤中,通过执行Map运算,可以获取各用户指向的物品节点集合数,物品对的共同用户权重计算公式如下:
uwtk=|out(ki,j)|
式中,
uwtk为物品对中物品fi、fj的共同用户权重,即共同用户的出度,其中,物品对包括:第一物品以及第二物品,第一物品对应物品i,第二物品对应物品j;
out(ki,j)为物品对中物品fi、fj对应的用户节点Uk指向的物品节点集合数。
这样,根据物品对、物品对权重以及共同用户权重,可以构建物品对-共同用户权重列表,构建的物品对-共同用户权重列表表示为:<fi,fj,fwti,fwtj>-<ui,uwti>,如表3所示。
表3
表3中,物品对<a,b>的共同用户(用户A)权重为2;物品对<b,c>、<b,d>以及<c,d>的共同用户(用户B)权重为3;物品对<a,c>的共同用户(用户C)权重为2。
步骤305,根据构建的物品对-共同用户权重列表,按照预先设置的相似度算法进行运算,获取物品间相似度列表;
本步骤具体包括:
A41,统计物品对-共同用户权重列表中相同的物品对,按照预先设置的相似度算法进行运算,计算相同物品对中物品间相似度;
本步骤中,物品对中物品间相似度包括:第一物品到第二物品的相似度以及第二物品到第一物品的相似度,统计物品对-共同用户权重列表中相同的物品对,基于预先设置的相似度算法计算相同物品对中物品间相似度(sim),可以采用Reduce方式进行运算,例如,对于包含物品fi、fj的物品对,根据相似度算法,采用Reduce方式进行计算,分别得到物品fi到物品fj的相似度以及物品fj到物品fi的相似度。
对于物品fi到物品fj(fi→fj)的相似度(simij),相似度算法计算公式为:
式中,
uwtk为物品对中物品fi、fj的共同用户权重;
L为相同的物品对数,即共同用户数;
fwti为物品fi权重。
对于物品fj到物品fi(fj→fi)的相似度(simji),相似度算法计算公式为:
可见,本发明实施例中,物品fi到物品fj的相似度以及物品fj到物品fi的相似度可能不相等,与现有基于物品的协同过滤并不相同。
A42,以物品为关键字,根据计算的物品间相似度构建物品间相似度列表。
本步骤中,对于共同用户B,包含的物品为b、c、d,则对应的物品间相似度包括:物品b到物品c的相似度、物品c到物品b的相似度、物品b到物品d的相似度、物品d到物品b的相似度、物品c到物品d的相似度以及物品d到物品c的相似度。
基于表3,经过Reduce运算得到的物品间相似度如表4所示。
表4
表4中,对于共同用户A,包含2个物品,物品间相似度个数为2个,对于共同用户B,包含3个物品,物品间相似度个数为6个,对于共同用户C,包含2个物品,物品间相似度个数为2个。
对表4中的物品栏进行合并,即以物品为关键字,合并计算得到的物品间相似度,从而构建物品间相似度列表,如表5所示。
表5
表5中,经过MapReduce运算,可以得到物品间相似度列表。
当然,实际应用中,也可以将物品间相似度列表以物品间相似度矩阵方式表示。例如,表5对应的物品间相似度矩阵可以表示如下:
矩阵中,simi,j表示物品fi到物品fj的相似度。
所应说明的是,步骤301至步骤305并非在每次进行物品推荐时都需要执行,可以是按照预先设置的时间周期执行,并根据执行结果对原有存储的结果进行更新。
实际应用中,上述计算得到的物品间相似度列表为物品的一度相似度列表,在一度相似度列表中,可能具有多个物品间相似度相同的情况,这样,在进行推荐时,如果只需推荐排序前N位的物品,可能存在多个并行的排序第N位的物品,不能具体区分物品的排序,使得推荐效率不高。
为了进一步提高物品的推荐效率,本发明实施例所述方法可以进一步包括:
步骤306,根据获取的物品间相似度列表构建物品间相似度矩阵,对构建的物品间相似度矩阵进行一次或多次迭代,生成迭代的物品间相似度矩阵。
本步骤中,通过采用矩阵相乘对获取的物品间相似度矩阵进行迭代处理,可以计算多度物品间相似度矩阵,从而达到迭代的效果。本发明实施例中,为了处理大数据量以及达到数据处理的实时性,选用MapReduce框架算法方式对获取的物品间相似度矩阵进行迭代运算,下面对迭代运算进行详细描述。
迭代运算涉及两个矩阵,设矩阵M中第i行第j列的元素为mij,矩阵N中第j行第k列的元素为njk,矩阵M的列数与矩阵N的行数相等,则进行迭代运算得到的矩阵P=M×N,其中,矩阵P中的第i行第k列元素pik=∑(mij*njk)。
MapReduce的计算过程如下:
Map:对矩阵M中的每个元素mij,产生一系列键值对((i,k)-(M,j,mij)),其中,k=1,2,…,直到矩阵N的列数。同样,对矩阵N中的每个元njk,也产生一系列键值对((i,k)-(N,j,njk)),其中i=1,2,…,直到矩阵M的行数。
Reduce:每个键(i,k)相关联的值(M,j,mij)和(N,j,njk),将每对j相同的值相乘,即mij*njk,并将这些积相加∑(mij*njk),得到pik。
因此,对于一度相似度矩阵S1,采用上述方法,可计算二度相似度矩阵S2=S1×S1,三度相似度矩阵S3=S2×S1,依据与此相似的运算,可以得到多度相似度矩阵SN=S(N-1)·S(N-2)。
本发明实施例中,由于用户线上的实时用户行为对物品间相似度矩阵的影响较小,且物品间相似度矩阵的计算相对耗时。因此,较佳地,物品间相似度矩阵的运算采用离线方式。
实际应用中,在获取运算的物品间相似度矩阵以及迭代的物品间相似度矩阵后,可以将运算结果存放到物品间相似度数据库中,以便于后续检索。并且,通过实时抓取用户行为信息,存储在用户行为信息库中,周期性从用户行为信息库读取用户行为信息,根据读取的用户行为信息重新计算物品间相似度矩阵,以更新相似度数据库,可以使得向用户进行的物品推荐更为准确。
步骤307,查询构建的用户-物品二分图模型,获取待推荐用户映射的物品,根据待推荐用户映射的物品查询物品间相似度列表,获取查询结果,根据查询结果生成推荐列表。
本步骤中,当推荐系统接收到用户输出的推荐请求或根据预先的推荐策略对用户进行推荐时,首先在用户-物品二分图模型中检索待推荐用户的历史用户行为信息,即有过该待推荐用户行为的物品;接着,依次对每个物品,从物品间相似度列表中检索,获取与该物品相关联的物品及其权重,即获取该物品所在物品间相似度列表中的行;最后,将相同物品的物品间相似度进行累加,并从中删除待推荐用户映射的物品,得到用户的推荐列表,从而完成推荐。
具体来说,本步骤包括:
A51,根据待推荐用户信息,在用户-物品二分图模型中检索,获取待推荐用户映射的物品;
A52,根据待推荐用户映射的物品,查询物品间相似度列表,获取待推荐用户映射的物品对应的物品间相似度;
A53,对获取的相同物品的物品间相似度进行累加,得到与待推荐用户映射的物品相关联的物品;
A54,从得到的与待推荐用户映射的物品相关联的物品中,删除待推荐用户映射的物品,得到用户的推荐列表。
本发明实施例中,通过检索数据库操作,可以实时并行处理多用户的推荐请求。
举例来说,如果对用户A进行推荐,首先查询用户-物品二分图模型,获取用户A的历史用户行为,得到用户行为信息(a,b),然后,依次根据a、b,查询物品间相似度数据库,得到与物品a、b相关联的物品及物品间相似度:(<b,1/4>、<c,1/4>)和(<a,1/4>、<c,1/6>、<d,1/6>),将相同物品的物品间相似度进行累加,得到(<a,1/4>、<b,1/4>、<c,5/12>、<d,1/6>),从中删除用户A具有用户行为信息的物品a、b,得到(<c,5/12>、<d,1/6>),即为推荐列表。
较佳地,该方法可以进一步包括:
步骤308,依据预先设置的过滤策略对推荐列表进行过滤。
本步骤中,可以依据预先设置的过滤策略,例如,过滤黑名单中的物品,或是设置为低质量、低价值的物品,这样,可以提升推送至用户的推荐列表的质量。
本发明实施例中,还可以对推荐列表进行排序,或是对过滤的推荐列表进行排序,然后将经排序处理的推荐列表向用户展示。因而,该方法可以进一步包括:
步骤309,对推荐列表或过滤的推荐列表,按照物品间相似度进行排序,获取排序前N位的物品向用户显示。
本步骤中,对待推荐列表,按物品间相似度从大到小进行排序,并取TopN个结果,组成最终推荐结果,本发明实施例中,将得到的最终推荐列表(c,d)推荐给用户,从而完成推荐。
由上述可见,本发明实施例的基于用户-物品二分图模型的物品推荐方法,基于较少数量的物品,通过用户-物品二分图模型构建物品到用户的倒排列表模型,进行物品权重计算,根据物品权重,计算物品对权重以及共同用户权重,根据物品对权重以及共同用户权重计算并构建物品间相似度列表,从而根据用户信息以及物品间相似度列表进行物品推荐。由于无需在整个用户-物品二分图模型中进行迭代,可以大幅简化计算量,从而降低时间复杂度和空间复杂度,有利于并行、实时进行推荐;进一步地,构建物品间相似度列表,所需的迭代次数少,获取推荐结果的实时性较强,提升了推荐效率;而且,采用MapReduce框架算法方式进行运算,能够对大数据量进行处理,有效降低了进行物品推荐所需的时间。具体来说,具有如下有益技术效果:
一、通过将用户-物品二分图模型转化成物品到用户的倒排列表模型,大幅简化了计算量,并且相似度矩阵只计算一次,降低了时间复杂度和空间复杂度。
二、基于MapReduce框架算法方式计算物品间相似度列表,可以将计算分布到多个终端,能够对大数据量进行处理,时间复杂度较低。
三、物品间相似度列表通过离线方式获取,在线进行物品推荐的主要操作是数据库检索,有利于对多用户进行并行推荐、实时计算推荐结果。
图4为本发明实施例基于用户-物品二分图模型的物品推荐系统结构示意图。参见图4,该系统包括:二分图模型生成器、倒排列表模型生成器、物品权重列表生成器、共同用户权重列表生成器、物品间相似度列表生成器以及推荐列表生成器,其中,
二分图模型生成器,用于提取用户行为信息,根据提取的用户行为信息构建用户-物品二分图模型;
本发明实施例中,用户行为信息包括:浏览物品信息、评论物品信息以及给物品打分信息等。
倒排列表模型生成器,用于基于二分图模型生成器构建的用户-物品二分图模型,构建物品到用户的倒排列表模型;
本发明实施例中,倒排列表模型生成器包括:关键词获取模块、统计模块以及倒排列表模型生成模块(图中未示出),其中,
关键词获取模块,用于依序获取用户-物品二分图模型中的物品,作为关键词输出至统计模块;
统计模块,用于根据接收的物品关键词,统计对该物品具有用户行为信息的用户,将该物品与统计的用户输出至倒排列表模型生成模块;
倒排列表模型生成模块,用于根据接收的物品与统计的用户信息,建立物品与用户的映射关系,根据映射关系构建物品到用户的倒排列表模型。
物品权重列表生成器,用于根据倒排列表模型生成器构建的物品到用户的倒排列表模型,计算物品权重,构建用户-物品权重列表;
本发明实施例中,物品权重列表生成器包括:物品权重生成模块以及物品权重列表生成模块(图中未示出),其中,
物品权重生成模块,用于在物品到用户的倒排列表模型中,统计物品指向的用户节点集合数,得到物品权重;
物品权重列表生成模块,用于以用户为关键字,获取该用户指向的物品的物品权重,得到用户-物品权重列表。
共同用户权重列表生成器,用于根据物品权重列表生成器构建的用户-物品权重列表,计算用户对应的物品对权重以及物品对的共同用户权重,构建物品对-共同用户权重列表;
本发明实施例中,共同用户权重列表生成器包括:物品权重获取模块、物品对权重获取模块以及共同用户权重列表生成模块(图中未示出),其中,
物品权重获取模块,用于以各用户为关键字,遍历用户-物品权重列表,获取该用户对应的物品及物品权重;
物品对权重获取模块,用于对获取的用户对应的物品及物品权重,分别进行两两组合,得到该用户对应的物品对及物品对权重;
共同用户权重列表生成模块,用于获取物品对对应的用户节点指向的物品节点集合数,得到该物品对的共同用户权重,根据物品对、物品对权重以及共同用户权重,构建物品对-共同用户权重列表。
物品间相似度列表生成器,用于根据构建的物品对-共同用户权重列表,按照预先设置的相似度算法进行运算,获取物品间相似度列表;
本发明实施例中,物品间相似度列表生成器包括:物品间相似度计算模块以及物品间相似度列表生成模块(图中未示出),其中,
物品间相似度计算模块,用于统计物品对-共同用户权重列表中相同的物品对,按照预先设置的相似度算法进行运算,计算相同物品对中物品间相似度;
本发明实施例中,物品fi到物品fj(fi→fj)的相似度(simij)计算公式为:
uwtk为物品对中物品fi、fj的共同用户权重;
L为相同的物品对数,即共同用户数;
fwti为物品fi权重。
物品间相似度列表生成模块,以物品为关键字,根据计算的物品间相似度构建物品间相似度列表。
推荐列表生成器,用于查询构建的用户-物品二分图模型,获取待推荐用户映射的物品,根据待推荐用户映射的物品查询物品间相似度列表,获取查询结果,根据查询结果生成推荐列表。
本发明实施例中,推荐列表生成器包括:检索模块、物品间相似度获取模块、关联物品获取模块以及推荐列表生成模块(图中未示出),其中,
检索模块,用于根据待推荐用户信息,在用户-物品二分图模型中检索,获取待推荐用户映射的物品;
物品间相似度获取模块,用于根据待推荐用户映射的物品,查询物品间相似度列表,获取待推荐用户映射的物品对应的物品间相似度;
关联物品获取模块,用于对获取的相同物品的物品间相似度进行累加,得到与待推荐用户映射的物品相关联的物品;
推荐列表生成模块,用于从得到的与待推荐用户映射的物品相关联的物品中,删除待推荐用户映射的物品,得到用户的推荐列表。
较佳地,该推荐系统进一步包括:
迭代器,用于根据物品间相似度列表生成器获取的物品间相似度列表,构建物品间相似度矩阵,对构建的物品间相似度矩阵进行一次或多次迭代,生成迭代的物品间相似度矩阵,以使推荐列表生成器根据待推荐用户映射的物品查询迭代的物品间相似度矩阵获取查询结果。
实际应用中,该推荐系统还可以进一步包括:
过滤器,用于依据预先设置的过滤策略,对推荐列表生成器生成的推荐列表进行过滤。和/或,
排序器,用于对推荐列表生成器生成的推荐列表或过滤器过滤的推荐列表,按照物品间相似度进行排序,获取排序前N位的物品向用户显示。
本发明实施例中,可以依据预先设置的过滤策略,例如,过滤掉黑名单中的物品,或是过滤掉设置为低质量、低价值的物品,并对推荐列表进行排序,或是对过滤的推荐列表进行排序,然后将经排序处理的推荐列表向用户展示,以提升推送至用户的推荐列表的质量。
显然,本领域技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若对本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也包含这些改动和变型在内。
Claims (13)
1.一种基于用户-物品二分图模型的物品推荐方法,该方法包括:
提取用户行为信息,根据提取的用户行为信息构建用户-物品二分图模型;
基于构建的用户-物品二分图模型,构建物品到用户的倒排列表模型;
根据构建的物品到用户的倒排列表模型,计算物品权重,构建用户-物品权重列表;
根据构建的用户-物品权重列表,计算用户对应的物品对权重以及物品对的共同用户权重,构建物品对-共同用户权重列表;
根据构建的物品对-共同用户权重列表,按照预先设置的相似度算法进行运算,获取物品间相似度列表;
查询构建的用户-物品二分图模型,获取待推荐用户映射的物品,根据待推荐用户映射的物品查询物品间相似度列表,获取查询结果,根据查询结果生成推荐列表。
2.根据权利要求1所述的方法,其中,在所述获取物品间相似度列表之后,查询构建的用户-物品二分图模型之前,所述方法进一步包括:
根据获取的物品间相似度列表构建物品间相似度矩阵,对构建的物品间相似度矩阵进行一次或多次迭代,生成迭代的物品间相似度矩阵;
所述根据待推荐用户映射的物品查询物品间相似度列表具体包括:
根据待推荐用户映射的物品查询所述迭代的物品间相似度矩阵。
3.根据权利要求2所述的方法,其中,所述方法进一步包括:
依据预先设置的过滤策略对推荐列表进行过滤;
对推荐列表或过滤后的推荐列表,按照物品间相似度进行排序,获取排序前N位的物品向用户显示。
4.根据权利要求1至3任一项所述的方法,其中,所述基于构建的用户-物品二分图模型构建物品到用户的倒排列表模型包括:
以用户-物品二分图模型中的物品为关键词,统计对该物品具有用户行为信息的用户,建立物品与用户的映射关系,根据映射关系构建物品到用户的倒排列表模型;
所述根据构建的物品到用户的倒排列表模型,计算物品权重,构建用户-物品权重列表包括:
在物品到用户的倒排列表模型中,统计物品指向的用户节点集合数,得到物品权重;
以用户为关键字,获取该用户指向的物品的物品权重,得到用户-物品权重列表。
5.根据权利要求4所述的方法,其中,所述根据构建的用户-物品权重列表,计算用户对应的物品对权重以及物品对的共同用户权重,构建物品对-共同用户权重列表包括:
以各用户为关键字,遍历用户-物品权重列表,获取该用户对应的物品及物品权重;
对获取的用户对应的物品及物品权重,分别进行两两组合,得到该用户对应的物品对及物品对权重;
获取物品对对应的用户节点指向的物品节点集合数,得到该物品对的共同用户权重,根据物品对、物品对权重以及共同用户权重,构建物品对-共同用户权重列表。
6.根据权利要求5所述的方法,其中,所述根据构建的物品对-共同用户权重列表,按照预先设置的相似度算法进行运算,获取物品间相似度列表包括:
统计物品对-共同用户权重列表中相同的物品对,按照预先设置的相似度算法进行运算,计算相同物品对中物品间相似度;
以物品为关键字,根据计算的物品间相似度构建物品间相似度列表;
所述相似度算法公式为:
式中,
simij为物品fi到物品fj的相似度;
uwtk为物品对中物品fi、fj的共同用户权重;
L为相同的物品对数;
fwti为物品fi权重。
7.根据权利要求1至3任一项所述的方法,其中,所述查询构建的用户-物品二分图模型,获取待推荐用户映射的物品,根据待推荐用户映射的物品查询物品间相似度列表,获取查询结果,根据查询结果生成推荐列表包括:
根据待推荐用户信息,在用户-物品二分图模型中检索,获取待推荐用户映射的物品;
根据待推荐用户映射的物品,查询物品间相似度列表,获取待推荐用户映射的物品对应的物品间相似度;
对获取的相同物品的物品间相似度进行累加,得到与待推荐用户映射的物品相关联的物品;
从得到的与待推荐用户映射的物品相关联的物品中,删除待推荐用户映射的物品,得到用户的推荐列表。
8.一种基于用户-物品二分图模型的物品推荐系统,其特征在于,该系统包括:二分图模型生成器、倒排列表模型生成器、物品权重列表生成器、共同用户权重列表生成器、物品间相似度列表生成器以及推荐列表生成器,其中,
二分图模型生成器,用于提取用户行为信息,根据提取的用户行为信息构建用户-物品二分图模型;
倒排列表模型生成器,用于基于二分图模型生成器构建的用户-物品二分图模型,构建物品到用户的倒排列表模型;
物品权重列表生成器,用于根据倒排列表模型生成器构建的物品到用户的倒排列表模型,计算物品权重,构建用户-物品权重列表;
共同用户权重列表生成器,用于根据物品权重列表生成器构建的用户-物品权重列表,计算用户对应的物品对权重以及物品对的共同用户权重,构建物品对-共同用户权重列表;
物品间相似度列表生成器,用于根据构建的物品对-共同用户权重列表,按照预先设置的相似度算法进行运算,获取物品间相似度列表;
推荐列表生成器,用于查询构建的用户-物品二分图模型,获取待推荐用户映射的物品,根据待推荐用户映射的物品查询物品间相似度列表,获取查询结果,根据查询结果生成推荐列表。
9.根据权利要求8所述的系统,其特征在于,进一步包括:
迭代器,用于根据物品间相似度列表生成器获取的物品间相似度列表,构建物品间相似度矩阵,对构建的物品间相似度矩阵进行一次或多次迭代,生成迭代的物品间相似度矩阵,以使推荐列表生成器根据待推荐用户映射的物品查询迭代的物品间相似度矩阵获取查询结果;和/或
过滤器,用于依据预先设置的过滤策略,对推荐列表生成器生成的推荐列表进行过滤;和/或
排序器,用于对推荐列表生成器生成的推荐列表或过滤器过滤后的推荐列表,按照物品间相似度进行排序,获取排序前N位的物品向用户显示。
10.根据权利要求8或9所述的系统,其特征在于,所述倒排列表模型生成器包括:关键词获取模块、统计模块以及倒排列表模型生成模块,其中,
关键词获取模块,用于依序获取用户-物品二分图模型中的物品,作为关键词输出至统计模块;
统计模块,用于根据接收的物品关键词,统计对该物品具有用户行为信息的用户,将该物品与统计的用户输出至倒排列表模型生成模块;
倒排列表模型生成模块,用于根据接收的物品与统计的用户信息,建立物品与用户的映射关系,根据映射关系构建物品到用户的倒排列表模型。
11.根据权利要求10所述的系统,其特征在于,所述物品权重列表生成器包括:物品权重生成模块以及物品权重列表生成模块,其中,
物品权重生成模块,用于在物品到用户的倒排列表模型中,统计物品指向的用户节点集合数,得到物品权重;
物品权重列表生成模块,用于以用户为关键字,获取该用户指向的物品的物品权重,得到用户-物品权重列表。
12.根据权利要求11所述的系统,其特征在于,所述共同用户权重列表生成器包括:物品权重获取模块、物品对权重获取模块以及共同用户权重列表生成模块,其中,
物品权重获取模块,用于以各用户为关键字,遍历用户-物品权重列表,获取该用户对应的物品及物品权重;
物品对权重获取模块,用于对获取的用户对应的物品及物品权重,分别进行两两组合,得到该用户对应的物品对及物品对权重;
共同用户权重列表生成模块,用于获取物品对对应的用户节点指向的物品节点集合数,得到该物品对的共同用户权重,根据物品对、物品对权重以及共同用户权重,构建物品对-共同用户权重列表。
13.根据权利要求12所述的系统,其特征在于,所述物品间相似度列表生成器包括:物品间相似度计算模块以及物品间相似度列表生成模块,其中,
物品间相似度计算模块,用于统计物品对-共同用户权重列表中相同的物品对,按照预先设置的相似度算法进行运算,计算相同物品对中物品间相似度;
物品间相似度列表生成模块,以物品为关键字,根据计算的物品间相似度构建物品间相似度列表;
所述推荐列表生成器包括:检索模块、物品间相似度获取模块、关联物品获取模块以及推荐列表生成模块,其中,
检索模块,用于根据待推荐用户信息,在用户-物品二分图模型中检索,获取待推荐用户映射的物品;
物品间相似度获取模块,用于根据待推荐用户映射的物品,查询物品间相似度列表,获取待推荐用户映射的物品对应的物品间相似度;
关联物品获取模块,用于对获取的相同物品的物品间相似度进行累加,得到与待推荐用户映射的物品相关联的物品;
推荐列表生成模块,用于从得到的与待推荐用户映射的物品相关联的物品中,删除待推荐用户映射的物品,得到用户的推荐列表。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310054742.8A CN103116639B (zh) | 2013-02-20 | 2013-02-20 | 基于用户-物品二分图模型的物品推荐方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310054742.8A CN103116639B (zh) | 2013-02-20 | 2013-02-20 | 基于用户-物品二分图模型的物品推荐方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103116639A CN103116639A (zh) | 2013-05-22 |
CN103116639B true CN103116639B (zh) | 2016-05-11 |
Family
ID=48415012
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310054742.8A Active CN103116639B (zh) | 2013-02-20 | 2013-02-20 | 基于用户-物品二分图模型的物品推荐方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103116639B (zh) |
Families Citing this family (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103544632B (zh) * | 2013-07-22 | 2016-09-21 | 杭州师范大学 | 一种网络商品个性化推荐方法及系统 |
CN103605718A (zh) * | 2013-11-15 | 2014-02-26 | 南京大学 | 一种基于hadoop的改进的物品推荐方法 |
CN103995866A (zh) * | 2014-05-19 | 2014-08-20 | 北京邮电大学 | 一种基于链路预测的商品信息推送方法及装置 |
CN104063589B (zh) * | 2014-06-16 | 2018-01-16 | 百度移信网络技术(北京)有限公司 | 一种推荐方法以及系统 |
CN104112022B (zh) * | 2014-07-29 | 2018-06-05 | 青岛海信医疗设备股份有限公司 | 医疗冷柜系统中样品的推荐方法 |
CN104346476B (zh) * | 2014-11-20 | 2017-07-04 | 西安电子科技大学 | 基于物品相似度和网络结构的个性化物品推荐方法 |
CN104966125B (zh) * | 2015-05-06 | 2018-07-24 | 同济大学 | 一种社交网络的物品评分及推荐方法 |
CN105718951B (zh) * | 2016-01-21 | 2020-05-12 | 腾讯科技(深圳)有限公司 | 用户相似度的估算方法及估算系统 |
CN107437182B (zh) * | 2016-05-25 | 2021-01-08 | 百度在线网络技术(北京)有限公司 | 资料分发方法及装置 |
CN106850750B (zh) * | 2016-12-26 | 2020-11-10 | 北京五八信息技术有限公司 | 一种实时推送信息的方法和装置 |
CN108429865B (zh) * | 2017-02-13 | 2020-10-16 | 中国移动通信集团广东有限公司 | 一种产品推荐处理方法及装置 |
CN109903105B (zh) * | 2017-12-08 | 2021-11-30 | 北京京东尚科信息技术有限公司 | 一种完善目标商品属性的方法和装置 |
CN108280738A (zh) * | 2017-12-13 | 2018-07-13 | 西安电子科技大学 | 基于图像和社会化标签的商品推荐方法 |
CN108712663B (zh) * | 2018-05-03 | 2021-02-02 | 武汉斗鱼网络科技有限公司 | 基于二分图的直播间推荐方法、相关存储介质和设备 |
CN110610393A (zh) * | 2018-06-15 | 2019-12-24 | 阿里巴巴集团控股有限公司 | 一种信息推荐的方法和装置 |
CN109241412B (zh) * | 2018-08-17 | 2020-12-11 | 深圳先进技术研究院 | 一种基于网络表示学习的推荐方法、系统及电子设备 |
CN109165847B (zh) * | 2018-08-24 | 2021-11-26 | 广东工业大学 | 一种基于推荐系统的项目推荐方法、装置及设备 |
CN109471978B (zh) * | 2018-11-22 | 2022-01-28 | 腾讯科技(深圳)有限公司 | 一种电子资源推荐方法及装置 |
CN110209927B (zh) * | 2019-04-25 | 2020-12-04 | 北京三快在线科技有限公司 | 个性化推荐方法、装置、电子设备及可读存储介质 |
CN110275952A (zh) * | 2019-05-08 | 2019-09-24 | 平安科技(深圳)有限公司 | 基于用户短期兴趣的新闻推荐方法、装置及介质 |
CN110175172B (zh) * | 2019-05-22 | 2021-08-31 | 深圳大学 | 基于稀疏二分图的极大二分团并行枚举方法 |
CN110659416B (zh) * | 2019-09-09 | 2022-05-17 | 秒针信息技术有限公司 | 一种浏览资源的推荐方法、推荐装置及可读存储介质 |
CN110837578B (zh) * | 2019-11-06 | 2021-05-04 | 合肥工业大学 | 一种基于图卷积网络的视频片段推荐方法 |
CN111104606B (zh) * | 2019-12-06 | 2022-10-21 | 成都理工大学 | 一种基于权重的条件游走图推荐方法 |
CN113220983A (zh) * | 2020-02-06 | 2021-08-06 | 北京沃东天骏信息技术有限公司 | 基于深度学习的选品方法和装置 |
CN111523048B (zh) * | 2020-04-15 | 2024-04-12 | 达观数据有限公司 | 社交网络中好友的推荐方法、装置、存储介质及终端 |
US11334935B2 (en) | 2020-09-04 | 2022-05-17 | International Business Machines Corporation | Method, system, and manufacture for light hypergraph based recommendation |
CN112364252B (zh) * | 2021-01-12 | 2021-04-23 | 北京世纪好未来教育科技有限公司 | 内容推荐方法、装置、电子设备及存储介质 |
CN112380453B (zh) * | 2021-01-15 | 2021-06-11 | 腾讯科技(深圳)有限公司 | 物品推荐方法、装置、存储介质及设备 |
CN113065771B (zh) * | 2021-04-06 | 2022-08-19 | 青岛科技大学 | 基于指标权值优化的化工企业事故风险评估方法及系统 |
CN113434756B (zh) * | 2021-06-18 | 2022-05-27 | 山东省人工智能研究院 | 基于图双向聚合网络链接预测模型的个性化评论推荐方法 |
CN116738035B (zh) * | 2023-02-02 | 2024-05-28 | 量子数科科技有限公司 | 一种基于窗口滑动的推荐重排方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011103020A (ja) * | 2009-11-10 | 2011-05-26 | Nippon Telegr & Teleph Corp <Ntt> | 検索条件推薦装置、検索条件推薦方法および検索条件推薦プログラム |
CN102231166A (zh) * | 2011-07-12 | 2011-11-02 | 浙江大学 | 基于社会上下文的协同推荐方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110110587A1 (en) * | 2009-11-12 | 2011-05-12 | Banner Ron | Generating Harmonic Images |
-
2013
- 2013-02-20 CN CN201310054742.8A patent/CN103116639B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011103020A (ja) * | 2009-11-10 | 2011-05-26 | Nippon Telegr & Teleph Corp <Ntt> | 検索条件推薦装置、検索条件推薦方法および検索条件推薦プログラム |
CN102231166A (zh) * | 2011-07-12 | 2011-11-02 | 浙江大学 | 基于社会上下文的协同推荐方法 |
Non-Patent Citations (1)
Title |
---|
启发式的物品相似度传播的协同过滤算法研究;李琳娜等;《现代图书情报技术》;20130131(第1期);第30-35页 * |
Also Published As
Publication number | Publication date |
---|---|
CN103116639A (zh) | 2013-05-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103116639B (zh) | 基于用户-物品二分图模型的物品推荐方法及系统 | |
CN103886047B (zh) | 面向流式数据的分布式在线推荐方法 | |
CN109816482B (zh) | 电商平台的知识图谱构建方法、装置、设备及存储介质 | |
CN112613602A (zh) | 基于知识感知超图神经网络的推荐方法及系统 | |
CN104615779B (zh) | 一种Web文本个性化推荐方法 | |
CN102298650B (zh) | 一种海量数字信息的分布式推荐方法 | |
CN106951489A (zh) | 一种用于稀疏大数据的个性化推荐方法和装置 | |
CN106708844A (zh) | 一种用户群体的划分方法和装置 | |
CN107103000A (zh) | 一种基于关联规则与贝叶斯网络集成的推荐技术 | |
CN104636978B (zh) | 一种基于多标签传播的重叠社区检测方法 | |
CN106021457A (zh) | 基于关键词的rdf分布式语义搜索方法 | |
CN104778237A (zh) | 一种基于关键用户的个性化推荐方法和系统 | |
Lappas et al. | Efficient and domain-invariant competitor mining | |
CN103995866A (zh) | 一种基于链路预测的商品信息推送方法及装置 | |
CN105654307A (zh) | 基于用户反馈的商品推荐方法和系统 | |
CN104376015B (zh) | 关系网络中节点的处理方法及装置 | |
CN112632296B (zh) | 基于知识图谱具有可解释性的论文推荐方法及系统、终端 | |
CN104809161B (zh) | 一种对稀疏矩阵进行压缩和查询的方法及系统 | |
CN114265986A (zh) | 一种融合知识图谱结构与路径语义的信息推送方法和系统 | |
CN107562966A (zh) | 用于网页链接检索排序的基于智能学习的优化系统及方法 | |
CN108228787A (zh) | 按照多级类目处理信息的方法和装置 | |
CN112905906B (zh) | 一种融合局部协同与特征交叉的推荐方法及系统 | |
CN102270204A (zh) | 一种基于矩阵分解对在线论坛用户影响力进行计算的方法 | |
CN101635001B (zh) | 从数据库提取信息的方法和设备 | |
CN114417161A (zh) | 基于异构图的虚拟物品时序推荐方法、装置、介质及设备 |
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 | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20230414 Address after: Room 501-502, 5/F, Sina Headquarters Scientific Research Building, Block N-1 and N-2, Zhongguancun Software Park, Dongbei Wangxi Road, Haidian District, Beijing, 100193 Patentee after: Sina Technology (China) Co.,Ltd. Address before: 100080, International Building, No. 58 West Fourth Ring Road, Haidian District, Beijing, 20 floor Patentee before: Sina.com Technology (China) Co.,Ltd. |