首页> 中国专利> 项目推荐系统、项目推荐装置以及项目推荐方法

项目推荐系统、项目推荐装置以及项目推荐方法

摘要

本发明公开一种项目推荐系统、项目推荐装置以及项目推荐方法。在候选项目数据库系统中与访问项目关联地存储有准备向访问了该访问项目的用户推荐的候选项目。通信模块获取用户近期访问的一个或多个访问项目。处理器基于一个或多个访问项目,从候选项目数据库系统中获取一个或多个候选项目及其相关性指数,并且产生项目推荐列表,项目推荐列表包括一个或多个候选项目及其推荐权重,推荐权重是基于相关性指数确定的。本发明的方案能实时地根据用户近期访问行为产生推荐结果。

著录项

  • 公开/公告号CN105760443A

    专利类型发明专利

  • 公开/公告日2016-07-13

    原文格式PDF

  • 申请/专利权人 广州市动景计算机科技有限公司;

    申请/专利号CN201610075016.8

  • 发明设计人 姚文清;龙荣深;

    申请日2016-02-03

  • 分类号G06F17/30(20060101);G06K9/62(20060101);

  • 代理机构11452 北京展翼知识产权代理事务所(特殊普通合伙);

  • 代理人屠长存

  • 地址 510627 广东省广州市天河区黄埔大道西平云路163号广电平云广场B塔14层

  • 入库时间 2023-06-19 00:06:42

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-07-31

    专利权的转移 IPC(主分类):G06F17/30 登记生效日:20200710 变更前: 变更后: 申请日:20160203

    专利申请权、专利权的转移

  • 2017-11-21

    授权

    授权

  • 2016-08-10

    实质审查的生效 IPC(主分类):G06F17/30 申请日:20160203

    实质审查的生效

  • 2016-07-13

    公开

    公开

说明书

技术领域

本发明涉及移动互联网技术领域,具体涉及一种项目推荐系统、项目推荐装置以及项目推荐方法。

背景技术

目前随着互联网技术的高速发展,网络上的信息内容呈爆发式增长。但是丰富的网络信息内容在给用户带来极大便利的同时,也加大了用户搜寻感兴趣内容的成本。

现有技术一般是通过推荐技术解决上述问题,例如主要通过用户行为数据的挖掘,给用户推荐感兴趣的内容,从而缩短用户搜寻信息的路径,提高用户获取内容的效率。

但是,现有的推荐系统大多数是基于离线挖掘的结果进行推荐,不能满足用户实时兴趣的推荐需求。因此,用户希望能提供了一种快速响应用户的需求且能实时地根据用户访问行为调整推荐结果的方法。

发明内容

为解决上述技术问题,本发明提供了一种项目推荐系统、项目推荐装置以及项目推荐方法,能实时地根据用户近期访问行为产生推荐结果。

根据本发明的一个方面,提供了一种项目推荐系统,包括:候选项目数据库系统,其中与所述访问项目关联地存储有准备向访问了所述访问项目的用户推荐的候选项目;通信模块,获取用户近期访问的一个或多个访问项目;处理器,基于所述一个或多个访问项目,从所述候选项目数据库系统中获取一个或多个候选项目及其相关性指数,并且产生项目推荐列表,所述项目推荐列表包括所述一个或多个候选项目及其推荐权重,所述推荐权重是基于所述相关性指数确定的。

由此,可以根据用户的访问行为,实时产生有针对性的推荐结果。

优选地,项目推荐系统还可以包括:存储器,用于存储用户的历史推荐列表,所述历史推荐列表包括曾经向所述用户推荐的历史推荐项目及其历史推荐权重,其中,所述处理器还从所述存储器读取曾经向所述用户推荐的历史推荐项目及其历史推荐权重,所述项目推荐列表是通过融合所述历史推荐项目和所述一个或多个候选项目产生的,并且所述处理器还根据所述项目推荐列表更新所述历史推荐列表。

由此,在基于用户实时访问行为向用户进行推荐的同时,可以进一步参考过去推荐的内容。

根据本发明的另一个方面,提供了一种项目推荐装置,包括:获取模块,用于基于用户近期访问的一个或多个访问项目,从候选项目数据库中获取一个或多个候选项目及其相关性指数,在所述候选项目数据库中,与所述访问项目关联地存储有准备向访问了所述访问项目的用户推荐的候选项目;推荐模块,用于根据所述获取模块获取的候选项目及其相关性指数产生项目推荐列表,所述项目推荐列表包括所述一个或多个候选项目及其推荐权重,所述推荐权重是基于所述相关性指数确定的。

由此,可以根据用户的访问行为,实时产生有针对性的推荐结果。

优选地,其中,所述获取模块是从包括项目关联数据库和/或聚类关联数据库的候选项目数据库中获取一个或多个候选项目及其相关性指数;且,所述项目关联数据库中存储有与各个访问项目分别关联的候选项目,所述相关性指数为所述候选项目相对于所述访问项目的关联系数;所述聚类关联数据库存储有各个访问项目所属的聚类以及所述聚类所包含的候选项目,所述相关性指数为所述访问项目和所述候选项目相对于所述聚类的隶属度。

优选地,所述推荐模块可以包括:第一推荐模块和第二推荐模块。

第一推荐模块用于在所述候选项目数据库包括项目关联数据库的情况下,针对从所述项目关联数据库获取的候选项目,根据下述公式确定第一推荐权重,基于候选项目的第一推荐权重确定所述候选项目的所述推荐权重:

>ruj=ΣiR(u)kuisim(i,j)---(1)>

其中,ruj为候选项目Ij相对于用户u的第一推荐权重,R(u)为用户近期访问的访问项目Ii的集合,kui为系数,sim(i,j)是候选项目Ij相对于所述访问项目Ii的关联系数。

第二推荐模块用于在所述候选项目数据库包括聚类关联数据库的情况下,针对从所述聚类关联数据库获取的候选项目,根据下述公式确定第二推荐权重,基于候选项目的第二推荐权重确定所述候选项目的所述推荐权重:

>ruj=ΣiR(u)ΣcC(i)kuisim(c,i)sim(c,j)---(2)>

r'uj为候选项目Ij相对于用户u的第二推荐权重,R(u)为用户近期访问的访问项目Ii的集合,C(i)为项目Ii所属聚类的集合,k'ui为系数,sim'(c,i)为访问项目Ii相对于聚类c的隶属度,sim'(c,j)是候选项目Ij相对于聚类c的隶属度;第三推荐模块,用于在所述候选项目数据库包括项目关联数据库和聚类关联数据库的情况下,基于同一个候选项目的所述第一推荐模块的第一推荐权重与所述第二推荐模块的第二推荐权重的组合确定所述候选项目的所述推荐权重。

优选地,所述推荐模块还可以包括:第四推荐模块,用于在所述获取模块从所述用户的历史推荐列表中获取曾经向所述用户推荐的历史推荐项目及其历史推荐权重的情况下,融合所述历史推荐项目和所述一个或多个候选项目,其中,针对所述历史推荐项目和所述一个或多个候选项目中相同的候选项目,基于该候选项目的所述相关性指数和所述历史推荐权重确定所述推荐权重。

优选地,所述装置还可以包括:更新模块,用于使用所述第四推荐模块产生的项目推荐列表,更新所述用户的历史推荐列表。

根据本发明的另一个方面,提供了一种项目推荐方法,包括:基于用户近期访问的一个或多个访问项目,从候选项目数据库中获取一个或多个候选项目及其相关性指数,在所述候选项目数据库中,与所述访问项目关联地存储有准备向访问了所述访问项目的用户推荐的候选项目;以及产生项目推荐列表,所述项目推荐列表包括所述一个或多个候选项目及其推荐权重,所述推荐权重是基于所述相关性指数确定的。

由此,可以根据用户的访问行为,实时产生有针对性的推荐结果。

优选地,所述候选项目数据库包括项目关联数据库和/或聚类关联数据库,所述项目关联数据库中存储有与各个访问项目分别关联的候选项目,所述相关性指数为所述候选项目相对于所述访问项目的关联系数;所述聚类关联数据库存储有各个访问项目所属的聚类以及所述聚类所包含的候选项目,所述相关性指数为所述访问项目和所述候选项目相对于所述聚类的隶属度。

由此,可以根据项目关联数据库中项目之间的直接相关性信息和/或聚类关联数据库中项目的聚类信息,来获得项目之间的相关性。

优选地,在所述候选项目数据库包括项目关联数据库的情况下,针对从所述项目关联数据库获取的候选项目,可以根据下述公式确定第一推荐权重,基于候选项目的第一推荐权重确定所述候选项目的所述推荐权重:

>ruj=ΣiR(u)kuisim(i,j)---(1)>

其中,ruj为候选项目Ij相对于用户u的第一推荐权重,R(u)为用户近期访问的访问项目Ii的集合,kui为系数,sim(i,j)是候选项目Ij相对于所述访问项目Ii的关联系数。

在所述候选项目数据库包括聚类关联数据库的情况下,针对从所述聚类关联数据库获取的候选项目,可以根据下述公式确定第二推荐权重,基于候选项目的第二推荐权重确定所述候选项目的所述推荐权重:

>ruj=ΣiR(u)ΣcC(i)kuisim(c,i)sim(c,j)---(2)>

r'uj为候选项目Ij相对于用户u的第二推荐权重,R(u)为用户近期访问的访问项目Ii的集合,C(i)为项目Ii所属聚类的集合,k'ui为系数,sim'(c,i)为访问项目Ii相对于聚类c的隶属度,sim'(c,j)是候选项目Ij相对于聚类c的隶属度;在所述候选项目数据库包括项目关联数据库和聚类关联数据库的情况下,基于同一个候选项目的所述第一推荐权重与所述第二推荐权重的组合确定所述候选项目的所述推荐权重。

优选地,项目推荐方法还可以包括:从所述用户的历史推荐列表中获取曾经向所述用户推荐的历史推荐项目及其历史推荐权重,其中,所述产生项目推荐列表的步骤包括:融合所述历史推荐项目和所述一个或多个候选项目,其中,针对所述历史推荐项目和所述一个或多个候选项目中相同的候选项目,基于该候选项目的所述相关性指数和所述历史推荐权重确定所述推荐权重。

由此,在基于用户实时访问行为向用户进行推荐的同时,可以进一步参考过去推荐的内容。

优选地,项目推荐方法还可以包括:使用所述项目推荐列表,更新所述用户的历史推荐列表。

由此,可以将当前的推荐结果保存,作为以后进行推荐的参考。

优选地,项目推荐方法还可以包括:根据大量用户的项目访问日志获取彼此之间具有相关性的项目,从而形成所述候选项目数据库。

由此,可以基于大量用户的项目访问行为来初步预测值得推荐的候选项目。

从上述本发明实施例方案可以发现,本发明实施例是基于用户近期访问的一个或多个访问项目从候选项目数据库中获取一个或多个候选项目及其相关性指数,并以此为基础产生项目推荐列表来作为推荐结果,因此能实现实时地根据用户近期访问行为产生推荐结果,即可以通过在线挖掘结果满足用户实时兴趣的推荐需求。

进一步地,本发明实施例中的候选项目数据库可以包括项目关联数据库和/或聚类关联数据库,并可以根据所包括的不同内容实现不同的推荐结果,例如在所述候选项目数据库包括项目关联数据库的情况下,可以针对从所述项目关联数据库获取的候选项目,根据设定公式确定第一推荐权重;在所述候选项目数据库包括聚类关联数据库的情况下,可以针对从所述聚类关联数据库获取的候选项目,根据设定公式确定第二推荐权重;在所述候选项目数据库包括项目关联数据库和聚类关联数据库的情况下,可以基于同一个候选项目的所述第一推荐权重与所述第二推荐权重的组合确定所述候选项目的所述推荐权重。

进一步地,本发明实施例还可以从所述用户的历史推荐列表中获取曾经向所述用户推荐的历史推荐项目及其历史推荐权重,并融合所述历史推荐项目和所述一个或多个候选项目进行推荐。

附图说明

通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。

图1是根据本发明的一个实施例的一种项目推荐系统的示意性方框图;

图2是根据本发明的一个实施例的一种项目推荐装置的第一示意性方框图;

图3是根据本发明的一个实施例的一种项目推荐装置的第二示意性方框图;

图4是根据本发明的一个实施例的一种项目推荐方法的第一示意性流程图;

图5是根据本发明的一个实施例的一种项目推荐方法的第二示意性流程图;

图6是根据本发明的一个实施例的项目推荐方法中的第一推荐结果中的算法关系示意性图;

图7是根据本发明的一个实施例的项目推荐方法中的第二推荐结果中的算法关系示意性图。

具体实施方式

下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。

本发明提供了一种项目推荐系统,能实时地根据用户近期访问行为产生推荐结果。

图1是根据本发明的一个实施例的一种项目推荐系统的示意性方框图。

如图1,在本发明实施例的项目推荐系统100包括:候选项目数据库系统11、通信模块12、处理器13、存储器14。

在候选项目数据库系统11中与访问项目关联地存储有准备向访问了访问项目的用户推荐的候选项目。

通信模块12用于获取用户近期访问的一个或多个访问项目。

处理器13基于一个或多个访问项目,从候选项目数据库系统11中获取一个或多个候选项目及其相关性指数,并且产生项目推荐列表,项目推荐列表包括一个或多个候选项目及其推荐权重,推荐权重是基于相关性指数确定的。

存储器14用于存储用户的历史推荐列表,历史推荐列表包括曾经向用户推荐的历史推荐项目及其历史推荐权重。

其中,处理器13还从存储器14读取曾经向用户推荐的历史推荐项目及其历史推荐权重,项目推荐列表是通过融合历史推荐项目和一个或多个候选项目产生的,并且处理器13还根据项目推荐列表更新历史推荐列表。

项目推荐系统100中的处理器13中,还可以包括多个子模块,具体可以参见图2中项目推荐装置的结构示意图。图2是根据本发明的一个实施例的一种项目推荐装置的第一示意性方框图。该项目推荐装置200可以相当于图1项目推荐系统100中的处理器13。

图2的项目推荐装置200包括获取模块21、推荐模块22。进一步地,参见图3,项目推荐装置的第二示意性方框图,项目推荐装置200中的推荐模块22可以包括:第一推荐模块221、第二推荐模块222、第三推荐模块223、第四推荐模块224。另外,项目推荐装置200还可以包括更新模块23。

第一推荐模块221用于在候选项目数据库包括项目关联数据库的情况下,针对从项目关联数据库获取的候选项目,根据下述公式确定第一推荐权重,基于候选项目的第一推荐权重确定候选项目的推荐权重:

>ruj=ΣiR(u)kuisim(i,j)---(1)>

其中,ruj为候选项目Ij相对于用户u的第一推荐权重,R(u)为用户近期访问的访问项目Ii的集合,kui为系数,sim(i,j)是候选项目Ij相对于访问项目Ii的关联系数。

第二推荐模块222用于在候选项目数据库包括聚类关联数据库的情况下,针对从聚类关联数据库获取的候选项目,根据下述公式确定第二推荐权重,基于候选项目的第二推荐权重确定候选项目的推荐权重:

>ruj=ΣiR(u)ΣcC(i)kuisim(c,i)sim(c,j)---(2)>

r'uj为候选项目Ij相对于用户u的第二推荐权重,R(u)为用户近期访问的访问项目Ii的集合,C(i)为项目Ii所属聚类的集合,k'ui为系数,sim'(c,i)为访问项目Ii相对于聚类c的隶属度,sim'(c,j)是候选项目Ij相对于聚类c的隶属度。

第三推荐模块223用于在候选项目数据库包括项目关联数据库和聚类关联数据库的情况下,基于同一个候选项目的第一推荐模块的第一推荐权重与第二推荐模块的第二推荐权重的组合确定候选项目的推荐权重。

第四推荐模块224用于在获取模块从用户的历史推荐列表中获取曾经向用户推荐的历史推荐项目及其历史推荐权重的情况下,融合历史推荐项目和一个或多个候选项目,其中,针对历史推荐项目和一个或多个候选项目中相同的候选项目,基于该候选项目的相关性指数和历史推荐权重确定推荐权重。

另外,还可以通过更新模块23,使用第四推荐模块224产生的项目推荐列表,更新用户的历史推荐列表。

以上描述了本发明实施例的项目推荐系统和项目推荐装置的结构,以下则结合上述结构及方法流程详细描述本发明实施例的项目推荐方法的详细方案。

图4是根据本发明的一个实施例的一种项目推荐方法的第一示意性流程图。

如图4所示,在步骤401中,例如可以由处理器13或项目推荐装置200(例如可以由项目推荐装置200中的获取模块21),基于用户近期访问的一个或多个访问项目,从候选项目数据库中获取一个或多个候选项目及其相关性指数,在候选项目数据库中,与访问项目关联地存储有准备向访问了访问项目的用户推荐的候选项目。

其中,候选项目数据库包括项目关联数据库和/或聚类关联数据库,项目关联数据库中存储有与各个访问项目分别关联的候选项目。聚类关联数据库存储有各个访问项目所属的聚类以及聚类所包含的候选项目。

其中,本发明实施例是根据大量用户的项目访问日志获取彼此之间具有相关性的项目,从而形成候选项目数据库。

在步骤402中,例如可以由处理器13或项目推荐装置200(例如可以由项目推荐装置200中的推荐模块22),产生项目推荐列表,项目推荐列表包括一个或多个候选项目及其推荐权重,推荐权重是基于相关性指数确定的。

候选项目数据库为项目关联数据库时,相关性指数为候选项目相对于访问项目的关联系数;候选项目数据库为聚类关联数据库时,相关性指数为访问项目和候选项目相对于聚类的隶属度。

需说明的是,产生的项目推荐列表,可以基于推荐权重进行排序并向用户呈现推荐项目,该基于推荐权重进行排序可以是以从大到小为例但不局限于此。

其中,在候选项目数据库包括项目关联数据库的情况下,项目推荐装置中的推荐模块针对从项目关联数据库获取的候选项目,根据下述公式确定第一推荐权重,基于候选项目的第一推荐权重确定候选项目的推荐权重:

>ruj=ΣiR(u)kuisim(i,j)---(1)>

其中,ruj为候选项目Ij相对于用户u的第一推荐权重,R(u)为用户近期访问的访问项目Ii的集合,kui为系数,sim(i,j)是候选项目Ij相对于访问项目Ii的关联系数。

在候选项目数据库包括聚类关联数据库的情况下,项目推荐装置中的推荐模块针对从聚类关联数据库获取的候选项目,根据下述公式确定第二推荐权重,基于候选项目的第二推荐权重确定候选项目的推荐权重:

>ruj=ΣiR(u)ΣcC(i)kuisim(c,i)sim(c,j)---(2)>

其中,r'uj为候选项目Ij相对于用户u的第二推荐权重,R(u)为用户近期访问的访问项目Ii的集合,C(i)为项目Ii所属聚类的集合,k'ui为系数,sim'(c,i)为访问项目Ii相对于聚类c的隶属度,sim'(c,j)是候选项目Ij相对于聚类c的隶属度。

在候选项目数据库包括项目关联数据库和聚类关联数据库的情况下,项目推荐装置中的推荐模块基于同一个候选项目的第一推荐权重与第二推荐权重的组合确定候选项目的推荐权重。

从上述本发明实施例方案可以发现,本发明实施例是基于用户近期访问的一个或多个访问项目从候选项目数据库中获取一个或多个候选项目及其相关性指数,并以此为基础产生项目推荐列表来作为推荐结果,因此能实现实时地根据用户近期访问行为产生推荐结果,即可以通过在线挖掘结果满足用户实时兴趣的推荐需求。

图5是根据本发明的一个实施例的一种项目推荐方法的第二示意性流程图。图5相对于图4更详细地描述了本发明实施例的技术方案。

本发明实施例的项目推荐方法是一种可应用于不同领域的基于用户近期访问项目的实时个性化推荐方法。该方法基于用户近期访问的一个或多个访问项目从候选项目数据库中获取一个或多个候选项目及其相关性指数,并以此为基础产生项目推荐列表来作为推荐结果,从而达到根据用户访问实时调整推荐结果的效果,满足用户实时推荐的需求,提升用户体验。其中的候选项目数据库包括项目关联数据库和/或聚类关联数据库。项目关联数据库,例如可以是item-item(项目-项目)列表,但不局限于此。其中item-item列表可以是基于预先离线挖掘的item-item关系建立的。聚类关联数据库,例如可以是聚类-item正排索引和item-聚类倒排索引但不局限于此,其中聚类-item正排索引和item-聚类倒排索引可以是基于预先离线挖掘的item-聚类关系及聚类-item关系建立。

也就是说,本发明实施例可以使用用户近期访问的item及其聚类对用户的实时兴趣进行建模,并通过预先离线挖掘好的item-item关系、item-聚类关系及聚类-item关系检索得到相关的item作为实时推荐结果。聚类是指将数据分类到不同的类或者簇这样的一个过程,也可以指通过这个过程得到的聚类结果。所以同一个簇中的对象有很大的相似性,而不同簇间的对象有很大的相异性。

本发明实施例可以利用离线挖掘的结果实现在线推荐。

其中,离线挖掘主要是预先挖掘item-item相关性、item-聚类关系以及聚类-item关系,并导入到在线存储的候选项目数据库中。离线挖掘的过程包括:首先,利用现有的相关技术离线挖掘item-item的相关性,为每个item生成相关的item列表,得到item-item列表;其次,对item进行聚类,得到各个item隶属的聚类团,并建立聚类-item正排索引和item-聚类倒排索引;最后,导入到在线存储的候选项目数据库中,供在线检索查询推荐结果及生成实时推荐结果。

在线推荐主要是检索推荐结果,生成实时推荐结果。首先,使用当前访问item对用户实时兴趣进行建模,检索离线预先挖掘好的item-item推荐结果,得到第一候选推荐项目列表;其次,使用当前访问item聚类对用户短期类目偏好进行建模,检索离线预先挖掘好的聚类-item列表,得到第二候选推荐项目列表,再融合第一候选推荐项目列表和第二候选推荐项目列表,排序后得到最终的实时推荐结果列表。

需说明的是,当在线存储的候选项目数据库中只包括item-item列表,或者只包括聚类-item正排索引和item-聚类倒排索引的情况下,上述可以是直接得到第一候选推荐项目列表或第二候选推荐项目列表。

需说明的是,还可以是进一步使用用户标识ID检索保存的历史推荐列表,例如最新实时个性化推荐结果列表,得到第三候选推荐项目列表;最后,融合第一候选推荐项目列表、第二候选推荐项目列表和第三候选推荐项目列表,排序后得到最终的实时推荐结果列表,并更新存储的历史推荐列表。

以下结合附图5详细描述本发明实施例的技术方案。

如图5所示,在步骤501中,例如可以由处理器13或项目推荐装置200(例如可以由项目推荐装置200中的获取模块21),获取用户近期访问的一个或多个访问项目。

在步骤502中,例如可以由处理器13或项目推荐装置200(例如可以由项目推荐装置200中的推荐模块22),基于用户近期访问的一个或多个访问项目,从项目关联数据库中得到第一候选推荐项目列表。

该步骤从项目关联数据库中得到第一候选推荐项目列表,是指从候选项目数据库中获取一个或多个候选项目及其相关性指数。本发明实施例的候选项目数据库可以包括项目关联数据库和/或聚类关联数据库,也就是说,项目之间可以直接进行关联,也可以通过聚类间接关联。该步骤中,是从项目关联数据库中得到第一候选推荐项目列表。

本发明实施例在候选项目数据库中,与访问项目关联地存储有准备向访问了访问项目的用户推荐的候选项目。

例如,项目关联数据库中存储有与各个访问项目分别关联的候选项目,此时从候选项目数据库中获取的候选项目的相关性指数是指候选项目相对于访问项目的关联系数。

其中的各个访问项目,可以是当前用户最近访问的访问项目,也可以是之前访问的项目,或任意的用户可能访问因而需要相应给出候选项目的访问项目。各个访问项目与候选项目集合可以相同,也可以不同。

其中,候选项目数据库中的项目关联数据库和聚类关联数据库是预先通过离线挖掘得到,离线挖掘过程包括:

1)挖掘item-item相关性,生成item-item列表(也可以称为item推荐结果列表)。其中,关于item-item相关性的挖掘方法,可以使用现有技术的关联规则、互信息、卡方检验量、余弦相似度等算法进行度量,此处不作赘述。

2)对item进行聚类,建立聚类-item正排索引和item-聚类倒排索引。对item进行聚类的一种可选方式是,根据用户对item的访问行为建立偏好矩阵,并采用k-means算法进行聚类。k-means算法是典型的基于距离的聚类算法,采用距离作为相似性的评价指标,即认为两个对象的距离越近,其相似度就越大。此外,也可以从语义层面表征item后再聚类。生成聚类结果之后,构建item-聚类倒排索引和聚类-item正排索引,前者可以用于实时推荐时获取当前访问item的聚类,后者可以用于查询该聚类下的候选item,进而生成候选推荐项目。

3)将item-item列表、item-聚类倒排索引和聚类-item正排索引导入在线存储的候选项目数据库中。例如,可以将离线挖掘生成的item-item列表、item-聚类倒排索引和聚类-item正排索引导入到redis中,实时推荐时可以检索redis得到相应的推荐结果列表。其中,redis是一个高性能的key-value(键--值)数据库。

该步骤502中,项目关联数据库中存储有与各个访问项目分别关联的候选项目,在候选项目数据库包括项目关联数据库的情况下,针对从项目关联数据库获取的候选项目,根据下述公式(1)确定候选项目的第一推荐权重,基于候选项目的第一推荐权重确定候选项目的推荐权重:

>ruj=ΣiR(u)kuisim(i,j)---(1)>

其中,ruj为候选项目Ij相对于用户u的第一推荐权重,R(u)为用户近期访问的访问项目Ii的集合,kui为代表权重的系数,sim(i,j)是候选项目Ij相对于访问项目Ii的关联系数。其中,系数kui一般可以取值为1,也可以为不同的Ii分配不同的系数,例如,用户u访问Ii的时间越靠后,系数kui可以越大。这里,如果R(u)取为所有访问项目的集合(不论该用户是否访问过),则对于用户近期没有访问过的访问项目,系数kui=0。

也就是说,该步骤检索item-item列表(也称为item推荐结果列表),生成第一候选推荐项目列表。该步骤中的算法示意可参见图6所示。

图6中,uesrs表示用户集合,u1和u2是用户,items表示项目集合,i1和i2是访问项目,j1、j2、j3、j4是候选项目。

用户u1访问了项目i1。在项目关联数据库中,候选项目j1和候选项目j4与访问项目i1关联。因此,可以向用户u1推荐候选项目j1和候选项目j4。根据候选项目j1与访问项目i1的关联系数、候选项目j4与访问项目i1的关联系数,可以确定候选项目j1和j4的推荐权重。

用户u2访问了项目i1和项目i2.在项目关联数据库中,候选项目j1和候选项目j4与访问项目i1关联,候选项目j2、候选项目j3和候选项目j4与访问项目i2关联。因此,可以向用户u2推荐候选项目j1、j2、j3、j4。其中,可以根据候选项目j1与访问项目i1的关联系数确定候选项目j1的推荐权重;根据候选项目j2与访问项目i2的关联系数确定候选项目j2的推荐权重;根据候选项目j3与访问项目i2的关联系数确定候选项目j3的推荐权重;结合候选项目j4分别与访问项目i1和访问项目i2的关联系数,确定候选项目j4的推荐权重。

在步骤503中,例如可以由处理器13或项目推荐装置200(例如可以由项目推荐装置200中的推荐模块22),基于用户近期访问的一个或多个访问项目,从聚类关联数据库中得到第二候选推荐项目列表。

需说明的是,步骤502和步骤503没有必然的顺序关系。

该步骤从聚类关联数据库中得到第二候选推荐项目列表,是指从候选项目数据库中获取一个或多个候选项目及其相关性指数。

聚类关联数据库存储有各个访问项目所属的聚类以及聚类所包含的候选项目,包括存储聚类-item正排索引和item-聚类倒排索引。此时从候选项目数据库中获取的候选项目的相关性指数是指访问项目和候选项目相对于聚类的隶属度。

在候选项目数据库包括聚类关联数据库的情况下,针对从聚类关联数据库获取的候选项目,根据下述公式(2)确定候选项目的第二推荐权重,基于候选项目的第二推荐权重确定候选项目的推荐权重:

>ruj=ΣiR(u)ΣcC(i)kuisim(c,i)sim(c,j)---(2)>

其中,r'uj为候选项目Ij相对于用户u的第二推荐权重,R(u)为用户近期访问的访问项目Ii的集合,C(i)为项目Ii所属聚类的集合,k'ui为系数,sim'(c,i)为访问项目Ii相对于聚类c的隶属度,sim'(c,j)是候选项目Ij相对于聚类c的隶属度。其中,系数k'ui一般可以取值为1,也可以为不同的Ii分配不同的系数,例如,用户u访问Ii的时间越靠后,系数k'ui可以越大。这里,如果R(u)取为所有访问项目的集合(不论该用户是否访问过),则对于用户近期没有访问过的访问项目,系数k'ui=0。

也就是说,该步骤使用访问项目(item)查询对应的聚类ID,并使用聚类ID检索该聚类下的item-聚类倒排索引和聚类-item正排索引,生成第二候选推荐项目列表。该步骤中的算法示意可参见图7所示。

图7中,uesrs表示用户集合,u1和u2是用户,items表示项目集合,clusters表示聚类集合,c1、c2是聚类,i1、i2、i3、i4是访问项目,j1、j2、j3是候选项目。

用户u1访问了项目i2和i4。访问项目i2和i4都属于聚类c2。同属于聚类c2的候选项目还有j2。因此,可以向用户u1推荐候选项目j2。其中,可以结合候选项目j2相对于聚类c2的隶属度,访问项目i2和访问项目i4各自相对于聚类c2的隶属度,确定候选项目j2的推荐权重。

用户u2访问了项目i1和i3。访问项目i1和i3都属于聚类c1。同属于聚类c1的候选项目还有j1和j3。因此,可以向用户u2推荐候选项目j1和j3。其中,可以结合候选项目j1和j3相对于聚类c1的隶属度,以及访问项目i1和访问项目i3各自相对于聚类c1的隶属度,分别确定候选项目j1和j3的推荐权重。

在步骤504中,例如可以由处理器13或项目推荐装置200(例如可以由项目推荐装置200中的推荐模块22),基于用户近期访问的一个或多个访问项目,从用户的历史推荐列表中得到第三候选推荐项目列表。

该步骤中,使用用户ID检索保存的历史推荐列表也即最新实时个性化推荐结果列表,生成第三候选推荐项目列表。

在步骤505中,例如可以由处理器13或项目推荐装置200(例如可以由项目推荐装置200中的推荐模块22),融合第一候选推荐项目列表、第二候选推荐项目列表和第三候选推荐项目列表,排序后得到最终的实时推荐结果列表。

该步骤中,可以融合第一候选推荐项目列表、第二候选推荐项目列表和第三候选推荐项目列表,生成最终的实时推荐结果列表。其中的融合方法,可以是简单加和,也可以是加权求和,也可以是其它形式。也就是说,可以是直接线性叠加,可以是加权线性叠加,也可以是乘积或其它组合形式等,此处不加以限定。

在步骤506中,例如可以由处理器13或项目推荐装置200(例如可以由项目推荐装置200中的更新模块23),更新存储的历史推荐列表。

该步骤中,更新存储的历史推荐列表也即用户实时个性化推荐结果,这样一方面可以用于下次个性化推荐,另一方面,可以作为下次实时推荐时的第三候选推荐项目列表。

需说明的是,当在线存储的候选项目数据库中只包括item-item列表,或者只包括聚类-item正排索引和item-聚类倒排索引的情况下,上述可以是直接得到第一候选推荐项目列表或第二候选推荐项目列表。

还需说明的是,也可以不考虑历史推荐列表,只融合第一候选推荐项目列表和第二候选推荐项目列表,排序后得到最终的实时推荐结果列表。

以下进一步举例说明本发明实施例应用的技术方案。

应用场景:

以视频推荐场景为例但不局限于此。假设视频库包括视频A、视频B、视频C、视频D和视频E。预先通过离线挖掘视频间的相关性可以得到以下相关关系:

视频A:视频B/0.8、视频C/0.6

视频B:视频A/0.8

视频C:视频D/0.8、视频A/0.6、视频E/0.5

视频D:视频C/0.8

视频E:视频C/0.5

其中,斜杠后面的数字表示斜杠前的项目与该条记录所针对的项目的相关性得分的关联系数(该关联系数可以作为前述“相关性指数”)。例如“视频A:视频B/0.8、视频C/0.6”就表示视频B与视频A的关联系数为0.8,视频C与视频A的关联系数为0.6。

需说明的是,上述是以视频A和视频B的关联系数相同举例说明,但不局限于此,视频A相对于视频B的关联系数和视频B相对于视频A的关联系数也可以不同。例如存在项目A和项目B,那么项目A相对于项目B的关联系数(例如相关性得分)和项目B相对于项目A的关联系数可以相同,也可以不同。

进一步地,预先通过离线处理对上述视频进行聚类得到以下2个聚类:

聚类1:视频A/0.8、视频B/0.6

聚类2:视频C/0.8、视频D/0.7、视频E/0.6

其中,斜杠后面的数字表示聚类隶属度(该聚类隶属度可以作为前述“相关性指数”)。例如“聚类1:视频A/0.8、视频B/0.6”就表示视频A对于聚类1的隶属度为0.8,视频B对于聚类1的隶属度为0.6。

假设对于用户u,历史推荐列表中保存的推荐结果为:视频E/0.35。其中,斜杠后面的数字表示历史推荐权重(例如可以是先前产生该推荐列表时得到的推荐权重),例如“视频E/0.35”表示视频E的历史推荐权重为0.35。

当用户u访问视频C时,按本发明实施例的方案的处理过程如下:

在item-item列表中,查询视频C的相关视频,得到按相关性得分从大到小排列的第一候选推荐项目列表:视频D/0.8、视频A/0.6、视频E/0.5。

在item-聚类倒排索引中,查询视频C所在的聚类为“聚类2/0.8”,表示视频C在聚类2的聚类隶属度为0.8。进一步通过聚类-item正排索引查询聚类2下的视频,得到按聚类隶属度从大到小排列的第二候选推荐项目列表:视频D/0.7、视频E/0.6。

在历史推荐列表也即最新实时个性化推荐结果列表中,查询为用户u保存的先前的最新实时推荐结果,得到第三候选推荐项目列表:视频E/0.35。

根据设定方法融合上述三种候选推荐项目列表,得到最终的实时推荐结果:

视频A:0.6

视频D:0.8+0.8*0.7=1.36

视频E:0.5+0.8*0.6+0.35=1.33

因为视频A只在第一候选推荐项目列表中出现,因此结果为视频A:0.6,此时表示视频A的推荐权重为0.6。

视频D在第一候选推荐项目列表中为视频D/0.8,在第二候选推荐项目列表中为视频D/0.7,因为视频C在聚类2的聚类隶属度为0.8,因此将视频D在聚类2中的聚类隶属度0.7与视频C在聚类2的聚类隶属度为0.8进行乘积运算,再与视频D在第一候选推荐项目列表中的相关性得分0.8进行相加运算,得到视频D的推荐权重为1.36。

视频E在第一候选推荐项目列表中为视频E/0.5,在第二候选推荐项目列表中为视频E/0.6,在第三候选推荐项目列表中为视频E/0.35,因为视频C在聚类2的聚类隶属度为0.8,因此将视频E在聚类2中的聚类隶属度0.6与视频C在聚类2的聚类隶属度为0.8进行乘积运算,再与视频D在第一候选推荐项目列表中的相关性得分0.8及在第三候选推荐项目列表中的推荐权重0.35进行相加运算,得到视频E的推荐权重为1.33。

需说明的是,根据设定方法融合上述三个候选推荐项目列表,可以是直接线性叠加,可以是加权线性叠加,也可以是乘积或其它组合形式等。

最后,再按推荐权重从大到小排序,最终推荐结果为:视频D/1.36,视频E/1.33,视频A/0.6。

需说明的是,上述是基于推荐权重进行排序、向用户呈现推荐项目,该基于推荐权重进行排序是以从大到小举例说明但不局限于此。

接下来,可以在历史推荐列表中更新针对用户u的最新实时推荐结果为:视频D/1.36,视频E/1.33,视频A/0.6。

同理,当用户u后续访问其它视频,推荐结果也会按上述过程进行实时调整。

可以发现,本发明实施例方案,可以根据用户访问行为实时调整推荐结果,能够立刻反映用户的实时兴趣,符合用户实时兴趣和类目偏好,快速响应用户的需求,提高推荐的时效性,满足用户的需求,提升用户体验。

进一步地,本发明实施例可以根据候选项目数据库所包括的不同内容实现不同的推荐结果,例如在候选项目数据库包括项目关联数据库的情况下,可以针对从项目关联数据库获取的候选项目,根据设定公式确定第一推荐权重;在候选项目数据库包括聚类关联数据库的情况下,可以针对从聚类关联数据库获取的候选项目,根据设定公式确定第二推荐权重;在候选项目数据库包括项目关联数据库和聚类关联数据库的情况下,可以基于同一个候选项目的第一推荐权重与第二推荐权重的组合确定候选项目的推荐权重。本发明实施例还可以从用户的历史推荐列表中获取曾经向用户推荐的历史推荐项目及其历史推荐权重,并融合历史推荐项目和一个或多个候选项目进行推荐。

上文中已经参考附图详细描述了根据本发明的一种项目推荐方法。

此外,根据本发明的方法还可以实现为一种计算机程序,该计算机程序包括用于执行本发明的上述方法中限定的上述各步骤的计算机程序代码指令。或者,根据本发明的方法还可以实现为一种计算机程序产品,该计算机程序产品包括计算机可读介质,在该计算机可读介质上存储有用于执行本发明的上述方法中限定的上述功能的计算机程序。本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。

附图中的流程图和框图显示了根据本发明的多个实施例的系统和方法的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标记的功能也可以以不同于附图中所标记的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号