基于用户相似度的跨领域评分方法以及评分设备与流程

文档序号:15559877发布日期:2018-09-29 01:59阅读:196来源:国知局

本发明涉及网络推荐技术领域,尤其涉及一种基于用户相似度的跨领域评分方法以及评分设备。



背景技术:

在这个信息爆炸的时代,如何使用户快速高效地从浩瀚的数据海洋中获取所需信息变得越来越紧迫,因此个性化推荐系统被广泛用于帮助用户探索和发现新的有趣的内容。协同过滤是个性化推荐系统中一种常用的方法,且丰富的用户行为数据是协同过滤算法准确推荐的必要条件,然而,大部分实际使用的推荐系统都面临数据缺失的问题,数据缺失通常表现在数据稀疏和冷启动,其中数据稀疏是指单个用户只对海量项目中的一部分项目有行为,冷启动是指新注册用户的行为数据少,为解决目标领域数据稀疏和冷启动的问题,引入其他相关领域即辅助领域的数据来进行跨领域推荐,该辅助领域的共同特征是用户活跃度高,对辅助领域中的很多项目都有行为。

依据相似的用户有相似的喜好,目标领域的项目和辅助领域的项目在某些特征上是相似的,那么目标领域和辅助领域的用户-评分矩阵也会有相似的用户-项目评分模式的原理,现有技术采用以下三个步骤:

步骤1:基于辅助领域的用户-项目评分矩阵计算辅助领域的评分模式;

步骤2:将该评分模式迁移到目标领域,填充目标领域稀疏的用户-项目评分矩阵;

步骤3:基于填充后的目标领域用户-项目评分矩阵,使用协同过滤算法为用户推荐项目。

现有技术通过从辅助领域得到的用户评分模式填充数据稀疏的目标领域的用户-项目评分矩阵,提高已经在目标领域中有行为数据的用户的推荐准确率。

然而,对于只在辅助领域有行为数据而在目标领域没有行为数据的用户,即目标领域的潜在用户,现有技术所采用的迁移学习的方法,对该潜在用户的推荐并没有涉及,故没有解决目标领域潜在用户冷启动的问题。



技术实现要素:

本申请实施例提供了一种基于用户相似度的跨领域评分方法以及评分设备,用于解决目标领域的潜在用户冷启动的问题。

本申请实施例的第一方面提供一种基于用户相似度的跨领域评分方法,包括:从目标领域获取用户-项目评分矩阵并且从辅助领域获取用户-项目评分矩阵,所述目标领域的用户包含于所述辅助领域的用户;按照预置的方法计算所述辅助领域的用户-项目评分矩阵,得到所述辅助领域中各用户之间的相似度值;再根据所述辅助领域中各用户之间的相似度值和获取到的所述目标领域的用户-项目评分矩阵,计算所述辅助领域中各用户对所述目标领域中对应的所述辅助领域中各用户在所述目标领域中未进行评分的项目的预测评分。本申请实施例中,评分设备根据获得的辅助领域的用户-项目评分矩阵计算得到了辅助领域中各用户之间的相似度值,再根据该相似度值和目标领域的用户-项目评分矩阵计算了辅助领域中各用户在目标领域中未进行评分的项目,辅助领域的用户均为目标领域的潜在用户,即得到了目标领域的潜在用户对目标领域中未评分的项目的预测评分,本申请实施例解决了目标领域的潜在用户冷启动的问题。

在一种可能的设计中,在本申请实施例第一方面的第一种实现方式中,当所述辅助领域包括一个子辅助领域时,所述按照预置的方法计算所述辅助领域的用户-项目评分矩阵,得到所述辅助领域中各用户之间的相似度值包括:按照如下方式计算所述辅助领域中各用户之间的相似度值:

或,

所述sim(i,j)表示所述辅助领域中用户i和用户j之间的相似度值;

所述ri,a表示所述辅助领域中用户i对项目a的评分;

所述rj,a表示所述辅助领域中用户j对所述项目a的评分;

所述表示所述辅助领域中用户i对所有项目的评分的平均值;

所述表示所述辅助领域中用户j对所有项目的评分的平均值;

所述i表示所述辅助领域中项目的集合。

该实现方式中,当辅助领域仅包括一个领域时,给出了计算辅助领域中各用户之间的相似度值的方式,使本申请实施例更加具有可操作性。

在一种可能的设计中,在本申请实施例第一方面的第二种实现方式中,当所述辅助领域包括多个子辅助领域时,所述根据所述辅助领域的用户-项目评分矩阵计算得到所述辅助领域中各用户之间的相似度值包括:按照预置的方法计算所述各子辅助领域的用户-项目评分矩阵,得到所述各子辅助领域中各用户之间的相似度值;将所述辅助领域中所有子辅助领域的用户-项目评分矩阵进行整合得到整合的用户-项目评分矩阵,按照预置的方法根据所述整合的用户-项目评分矩阵计算得到所述整合的用户-项目评分矩阵中各用户之间的相似度值;或者,还可以根据所述各子辅助领域的用户-项目评分矩阵计算出所述各子辅助领域中各用户之间的相似度值,然后根据所述各子辅助领域与所述目标领域的相似性权重系数,以及所述各子辅助领域中各用户之间的相似度值,计算所述各子辅助领域之间用户的相似度值。

该实现方式中,当辅助领域包括多个子辅助领域时,将各子辅助领域整合为一个整合的用户-项目评分矩阵,再计算该矩阵中各用户之间的相似度值,考虑了辅助领域包括多个子辅助领域时的情况,使本申请实施例逻辑更加完善。

在一种可能的设计中,在本申请实施例第一方面的第三种实现方式中,所述根据所述各子辅助领域与所述目标领域的相似性权重系数,以及所述各子辅助领域中各用户之间的相似度值,计算所述各子辅助领域之间用户的相似度值包括:按照如下方式计算所述各子辅助领域之间用户的相似度值:

所述d表示所述多个子辅助领域的集合;

所述wd表示子辅助领域d与所述目标领域的相似性权重系数;

所述(si,j)d表示根据所述子辅助领域d的用户-项目评分矩阵计算得到的用户i和用户j的相似度值。

该实现方式中,当辅助领域仅包括多个子辅助领域时,给出了计算整合的用户-项目评分矩阵中各用户之间的相似度值的方式,使本申请实施例更加具有可操作性。

在一种可能的设计中,在本申请实施例第一方面的第四种实现方式中,所述根据所述辅助领域中各用户之间的相似度值和所述目标领域的用户-项目评分矩阵计算所述辅助领域中各用户对所述目标领域中目标项目的预测评分包括:根据所述辅助领域中各用户之间的相似度值确定所述辅助领域中各用户的相似用户;根据所述辅助领域中各用户与对应的相似用户之间的相似度值,以及所述目标领域的用户-项目评分矩阵,计算所述辅助领域中各用户对所述目标领域中目标项目的预测评分。

该实现方式中,给出了计算根据辅助领域中各用户之间的相似度值和目标领域的用户-项目评分矩阵计算辅助领域中各用户对目标领域中目标项目的预测评分的方式,使本申请实施例更加具有可操作性。

在一种可能的设计中,在本申请实施例第一方面的第五种实现方式中,所述根据所述辅助领域中各用户之间的相似度值确定所述辅助领域中各用户的相似用户包括:基于所述辅助领域中各用户之间的相似度值,确定得到与第一用户的相似度值大于第一预设值的用户集合,所述第一用户为所述辅助领域中的用户;按照相似度值从大到小的顺序从所述用户集合中确定预置数目个用户作为所述第一用户的相似用户。

该实现方式中,先得到与第一用户的相似度值大于第一预设值的用户集合,再按照相似度值从大到小的顺序从用户集合中确定预置数目个用户作为第一用户的相似用户,增加了本申请实施例的实现方式。

在一种可能的设计中,在本申请实施例第一方面的第六种实现方式中,所述根据所述辅助领域中各用户与对应的相似用户之间的相似度值,以及所述目标领域的用户-项目评分矩阵,计算所述辅助领域中各用户对所述目标领域中目标项目的预测评分包括:按照如下方式计算所述辅助领域中各用户对所述目标领域中目标项目的预测评分:

所述pi,b表示所述辅助领域中用户i对所述目标领域中目标项目b的预测评分;

所述n表示所述辅助领域中与所述用户i相似且对所述目标领域的项目有评分的用户的用户集合;

所述si,k表示所述辅助领域中用户i和用户k之间的相似度值,其中所述用户k包含于所述用户集合n中;

所述rk,b表示所述用户k对所述目标领域中目标项目b的评分。

该实现方式中,提供了计算辅助领域中各用户对目标领域中目标项目的预测评分的方式,使本申请实施例的可操作性更强。

在一种可能的设计中,在本申请实施例第一方面的第七种实现方式中,所述根据所述辅助领域中各用户之间的相似度值和所述目标领域的用户-项目评分矩阵计算所述辅助领域中各用户对所述目标领域中目标项目的预测评分之后,所述方法还包括:根据所述目标项目的预测评分,生成所述辅助领域中各用户的推荐项目,所述推荐项目包含于所述目标项目。

该实现方式中,根据目标项目的预测评分,生成辅助领域中各用户的推荐项目,既得到了给目标领域已有用户推荐的项目,也得到了给目标领域潜在用户推荐的项目,使本申请实施例应用性更加广泛。

在一种可能的设计中,在本申请实施例第一方面的第八种实现方式中,所述根据所述目标项目的预测评分,生成所述辅助领域中各用户的推荐项目包括:若第一用户对应的目标项目中存在预测评分大于第二预设值的项目时,则确定所述预测评分大于第二预设值的项目为所述第一用户的推荐项目,所述第一用户为所述辅助领域中的用户;或,按照预测评分从大到小的顺序从所述第一用户对应的目标项目中选取预置数目个项目,作为所述第一用户的推荐项目。

该实现方式中,提供了具体的生成辅助领域中各用户的推荐项目的方式,增加了本申请实施例的实现方式。

本申请实施例第二方面提供了一种评分设备,包括:获取单元,用于获取目标领域的用户-项目评分矩阵和辅助领域的用户-项目评分矩阵,所述目标领域的用户包含于所述辅助领域的用户;第一计算单元,用于根据所述辅助领域的用户-项目评分矩阵计算得到所述辅助领域中各用户之间的相似度值;第二计算单元,用于根据所述辅助领域中各用户之间的相似度值和所述目标领域的用户-项目评分矩阵,计算所述辅助领域中各用户对所述目标领域中对应的目标项目的预测评分,所述目标项目为所述辅助领域中各用户在所述目标领域中未进行评分的项目。

本申请实施例中,第一计算单元根据获取单元获得的辅助领域的用户-项目评分矩阵计算得到了辅助领域中各用户之间的相似度值,再由第二计算单元根据该相似度值和目标领域的用户-项目评分矩阵计算了辅助领域中各用户在目标领域中未进行评分的项目,辅助领域的用户均为目标领域的潜在用户,即得到了目标领域的潜在用户对目标领域中未评分的项目的预测评分,本申请实施例解决了目标领域的潜在用户冷启动的问题。

在一种可能的设计中,在本申请实施例第二方面的第一种实现方式中,当所述辅助领域包括一个子辅助领域时,所述第一计算单元包括:第一计算模块,用于按照如下方式计算所述辅助领域中各用户之间的相似度值:

或,

所述sim(i,j)表示所述辅助领域中用户i和用户j之间的相似度值;

所述ri,a表示所述辅助领域中用户i对项目a的评分;

所述rj,a表示所述辅助领域中用户j对所述项目a的评分;

所述表示所述辅助领域中用户i对所有项目的评分的平均值;

所述表示所述辅助领域中用户j对所有项目的评分的平均值;

所述i表示所述辅助领域中项目的集合。

该实现方式中,当辅助领域仅包括一个领域时,给出了计算辅助领域中各用户之间的相似度值的方式,使本申请实施例更加具有可操作性。

在一种可能的设计中,在本申请实施例第二方面的第二种实现方式中,当所述辅助领域包括多个子辅助领域时,所述第一计算单元包括:整合模块,用于将所述辅助领域中所有子辅助领域的用户-项目评分矩阵进行整合得到整合的用户-项目评分矩阵;第二计算模块,用于根据所述整合的用户-项目评分矩阵计算得到所述整合的用户-项目评分矩阵中各用户之间的相似度值;或,第三计算模块,用于根据所述各子辅助领域的用户-项目评分矩阵计算得到所述各子辅助领域中各用户之间的相似度值;第四计算模块,用于根据所述各子辅助领域与所述目标领域的相似性权重系数,以及所述各子辅助领域中各用户之间的相似度值,计算所述整合的用户项目评分矩阵中各用户之间的相似度值。

该实现方式中,当辅助领域包括多个子辅助领域时,整合模块将各子辅助领域整合为一个整合的用户-项目评分矩阵,第二计算模块再计算该矩阵中各用户之间的相似度值,考虑了辅助领域包括多个子辅助领域时的情况,使本申请实施例逻辑更加完善。

在一种可能的设计中,在本申请实施例第二方面的第三种实现方式中,所述第三计算模块包括:第一计算子模块,用于按照如下方式计算所述各子辅助领域之间用户的相似度值:

所述d表示所述多个子辅助领域的集合;

所述wd表示子辅助领域d与所述目标领域的相似性权重系数;

所述(si,j)d表示根据所述子辅助领域d的用户-项目评分矩阵计算得到的用户i和用户j的相似度值。

该实现方式中,当辅助领域仅包括多个子辅助领域时,给出了计算整合的用户-项目评分矩阵中各用户之间的相似度值的方式,使本申请实施例更加具有可操作性。

在一种可能的设计中,在本申请实施例第二方面的第四种实现方式中,所述第二计算单元包括:第一确定模块,用于根据所述辅助领域中各用户之间的相似度值确定所述辅助领域中各用户的相似用户;第四计算模块,用于根据所述辅助领域中各用户与对应的相似用户之间的相似度值,以及所述目标领域的用户-项目评分矩阵,计算所述辅助领域中各用户对所述目标领域中目标项目的预测评分。

该实现方式中,给出了计算根据辅助领域中各用户之间的相似度值和目标领域的用户-项目评分矩阵计算辅助领域中各用户对目标领域中目标项目的预测评分的方式,使本申请实施例更加具有可操作性。

在一种可能的设计中,在本申请实施例第二方面的第五种实现方式中,所述第一确定模块包括:第一确定子模块,基于所述辅助领域中各用户之间的相似度值,用于确定得到与第一用户的相似度值大于第一预设值的用户集合,所述第一用户为所述辅助领域中的用户;第二确定子模块,用于按照相似度值从大到小的顺序从所述用户集合中确定预置数目个用户作为所述第一用户的相似用户。

该实现方式中,先得到与第一用户的相似度值大于第一预设值的用户集合,再按照相似度值从大到小的顺序从用户集合中确定预置数目个用户作为第一用户的相似用户,增加了本申请实施例的实现方式。

在一种可能的设计中,在本申请实施例第二方面的第六种实现方式中,所述第四计算模块包括:第二计算子模块,用于按照如下方式计算所述辅助领域中各用户对所述目标领域中目标项目的预测评分:

所述pi,b表示所述辅助领域中用户i对所述目标领域中目标项目b的预测评分;

所述n表示所述辅助领域中与所述用户i相似且对所述目标领域的项目有评分的用户的用户集合;

所述si,k表示所述辅助领域中用户i和用户k之间的相似度值,其中所述用户k包含于所述用户集合n中;

所述rk,b表示所述用户k对所述目标领域中目标项目b的评分。

该实现方式中,提供了计算辅助领域中各用户对目标领域中目标项目的预测评分的方式,使本申请实施例的可操作性更强。

在一种可能的设计中,在本申请实施例第二方面的第七种实现方式中,所述评分设备还包括:生成单元,用于根据所述目标项目的预测评分,生成所述辅助领域中各用户的推荐项目,所述推荐项目包含于所述目标项目。

该实现方式中,根据目标项目的预测评分,生成辅助领域中各用户的推荐项目,既得到了给目标领域已有用户推荐的项目,也得到了给目标领域潜在用户推荐的项目,使本申请实施例应用性更加广泛。

在一种可能的设计中,在本申请实施例第二方面的第八种实现方式中,所述生成单元还包括:第二确定模块,若第一用户对应的目标项目中存在预测评分大于第二预设值的项目时,则用于确定所述预测评分大于第二预设值的项目为所述第一用户的推荐项目,所述第一用户为所述辅助领域中的用户;或,所述第二确定模块还用于按照预测评分从大到小的顺序从所述第一用户对应的目标项目中选取预置数目个项目,作为所述第一用户的推荐项目。

该实现方式中,提供了具体的生成辅助领域中各用户的推荐项目的方式,增加了本申请实施例的实现方式。

本申请实施例第三方面提供了一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。

本申请实施例第四方面提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。

从以上技术方案可以看出,本申请实施例具有以下优点:评分设备先获取目标领域的用户-项目评分矩阵和辅助领域的用户-项目评分矩阵,目标领域的用户包含于辅助领域的用户;并根据辅助领域的用户-项目评分矩阵计算得到辅助领域中各用户之间的相似度值;再根据辅助领域中各用户之间的相似度值和目标领域的用户-项目评分矩阵,计算辅助领域中各用户对所述目标领域中对应的目标项目的预测评分,目标项目为辅助领域中各用户在目标领域中未进行评分的项目。本申请实施例中,评分设备根据获得的辅助领域的用户-项目评分矩阵计算得到了辅助领域中各用户之间的相似度值,再根据该相似度值和目标领域的用户-项目评分矩阵计算了辅助领域中各用户在目标领域中未进行评分的项目,辅助领域的用户均为目标领域的潜在用户,即得到了目标领域的潜在用户对目标领域中未评分的项目的预测评分,本申请实施例解决了目标领域的潜在用户冷启动的问题。

附图说明

图1为本申请实施例中用户-项目评分矩阵的一个示例图;

图2为本申请实施例中的一个应用场景示意图;

图3为本申请实施例基于用户相似度的跨领域评分方法的一个实施例示意图;

图4.a为本申请实施例中用户-项目评分矩阵的另一示例图;

图4.b为本申请实施例中用户-项目评分矩阵的另一示例图;

图5为本申请实施例基于用户相似度的跨领域评分方法的另一实施例示意图;

图6为本申请实施例基于用户相似度的跨领域评分方法的应用场景示意图;

图7为本申请实施例中评分设备的一个实施例示意图;

图8.a为本申请实施例中评分设备的另一个实施例示意图;

图8.b为本申请实施例中评分设备的另一个实施例示意图。

具体实施方式

本申请实施例提供了一种基于用户相似度的跨领域评分方法以及评分设备,用于解决目标领域的潜在用户冷启动的问题。

本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

协同过滤,顾名思义,就是用户间可以相互协作,通过与系统的交互,从大量的信息中过滤出自己真正感兴趣的内容。根据协同过滤的定义,协同过滤算法的核心思想是用户会对与自己兴趣爱好相似的用户喜欢过的物品感兴趣,因此协同过滤算法需要计算用户间的兴趣相似度,为每个用户生成兴趣爱好相似的邻居,从而把邻居用户喜欢的物品推荐给目标用户。协同过滤算法的输入是用户-项目评分矩阵,如图1所示为用户-项目评分矩阵,一共有5个用户,4个项目,该矩阵的每个元素是用户对项目的评分,例如用户3对项目2的评分是5,用户对项目的评分与用户对该项目的喜爱正相关,符号“?”表示用户对这个项目没有评分,可以假设该用户对项目的评分为0,可以有效的提升相似性计算的性能,例如用户3对项目1未进行评分,协同过滤算法的目的就是预测未知的评分,然后给用户推荐预测评分高的项目。

与本申请密切相关的是基于用户相似的协同过滤,它先基于用户的行为数据即用户-项目评分矩阵计算用户的相似性,找到用户的相似用户集合,然后给用户推荐与他相似的用户喜欢的项目。同时,由于存在数据缺失的情况,引入辅助领域的数据的方法来解决目标领域数据稀疏和冷启动问题。跨领域推荐场景如图2所示,图2的左边是辅助领域的用户-项目评分矩阵,右边是目标领域的用户-项目评分矩阵,目标领域和辅助领域是共享用户的相关领域,共享是指用户有交叉,并且辅助领域的用户都是目标领域的潜在用户,相关主要是指目标领域和辅助领域的项目在某些特性上是相关的。图2中,用户集合u1是在目标领域和辅助领域都有行为数据的用户,用户集合u2是只在辅助领域有行为数据的用户,这一部分用户是目标领域的潜在用户。目标领域的用户行为数据比较稀疏,而且很多用户没有行为数据,相比之下,辅助领域的用户行为数据比较丰富。由于目标领域的行为数据比较稀疏,直接使用协同过滤推荐的准确率比较低,而且对于新进入到目标领域的用户,因为行为数据少,推荐也会不准确。

有鉴于此,本申请中,评分设备先获取目标领域的用户-项目评分矩阵和辅助领域的用户-项目评分矩阵,目标领域的用户包含于辅助领域的用户;并根据辅助领域的用户-项目评分矩阵计算得到辅助领域中各用户之间的相似度值;再根据辅助领域中各用户之间的相似度值和目标领域的用户-项目评分矩阵,计算辅助领域中各用户对所述目标领域中对应的目标项目的预测评分,目标项目为辅助领域中各用户在目标领域中未进行评分的项目。本申请实施例中,评分设备根据获得的辅助领域的用户-项目评分矩阵计算得到了辅助领域中各用户之间的相似度值,再根据该相似度值和目标领域的用户-项目评分矩阵计算了辅助领域中各用户在目标领域中未进行评分的项目,辅助领域的用户均为目标领域的潜在用户,即得到了目标领域的潜在用户对目标领域中未评分的项目的预测评分,本申请实施例解决了目标领域的潜在用户冷启动的问题。

为便于理解,下面对本申请实施例的具体流程进行描述,请参阅图3,本申请实施例中基于用户相似度的跨领域评分方法一个实施例包括:

301、获取目标领域的用户-项目评分矩阵和辅助领域的用户-项目评分矩阵;

评分设备获取得到目标领域的用户-项目评分矩阵和辅助领域的用户-项目评分矩阵,且目标领域的用户包含于辅助领域的用户。设图4.a为辅助领域的用户-项目评分矩阵,该矩阵共有m个用户,n个项目,用户用i或者j来表示,项目用a来表示,矩阵里的每个元素ri,a是用户i对项目a的评分,例如在辅助领域,用户2对项目2的评分是4。图4.b为目标领域的用户-项目评分矩阵,共有p个用户,q个项目,用户用k来表示,项目用b来表示,矩阵里的每个元素rk,b是用户k对项目b的评分,例如在目标领域,用户2对项目2的评分是2。

需要说明的是,评分的计算时基于用户的行为的,例如评分行为、浏览行为和购买行为等。评分的计算分两种方式,一种是主动评分,使用用户的评分或者给予的评价计算评分,另一种是被动评分,根据用户的行为模式由系统代替用户完成评价,例如在电商领域,如果只是浏览了一个商品的详情,那么系统认为用户对该商品的评分为3,如果购买了一个商品,那么认为用户对该商品的评分为5。在用户-项目评分矩阵中,符号“?”代表用户对这个项目没有行为数据,所以用户对项目的评分是未知的,为更好的提升相似性计算的性能,实际应用中假设用户对该项目的评分是0。

另外,目标领域和辅助领域的用户评分的规则可以相同,也可以不同,例如,目标领域为电商领域,辅助领域为视频领域,目标领域根据用户浏览商品的时长进行阶梯型评分,在某个限制范围内,浏览的时长越长,则系统认为用户对该商品的评分越高,并依据用户最终是否购买进行综合评分;在辅助领域,系统向用户发送信息以请求用户对视频进行评分,并将接收到的评分作为辅助领域中用户的行为数据。因此,目标领域和辅助领域所采用的评分规则具体此处不做限定。

302、根据辅助领域的用户-项目评分矩阵计算得到辅助领域中各用户之间的相似度值;

评分设备获取到辅助领域的用户-项目评分矩阵后,根据辅助领域的用户-项目评分矩阵计算辅助领域中各用户之间的相似度值。辅助领域仅为一个领域时,可以使用余弦相似性计算用户之间的相似度值,计算公式如下:

其中sim(i,j)表示辅助领域中用户i和用户j之间的相似度值,ri,a表示辅助领域中用户i对项目a的评分,rj,a表示辅助领域中用户j对所述项目a的评分,i表示辅助领域中项目的集合。需要说明的是,实际应用中还可以使用协相关相似性计算用户间的相似度值,计算公式如下:

其中sim(i,j)表示辅助领域中用户i和用户j之间的相似度值,ri,a表示辅助领域中用户i对项目a的评分,rj,a表示辅助领域中用户j对项目a的评分,表示辅助领域中用户i对所有项目的评分的平均值,表示辅助领域中用户j对所有项目的评分的平均值,i表示辅助领域中项目的集合。

可以理解的是,除了应用余弦相似性计算或者协相关相似性计算用户间的相似度值,实际应用中还可以使用皮尔逊相似度方法或词频-反文档频率的统计方法来计算,故具体此处不做限定。

303、基于辅助领域中各用户之间的相似度值,确定得到与第一用户的相似度值大于第一预设值的用户集合;

评分设备计算得到了辅助领域中各用户之间的相似度值之后,针对第一用户,将第一用户与辅助领域中其他各用户之间的相似度值分别与第一预设值进行比较,得到与第一用户的相似度值大于第一预设值的用户集合,可以理解的是,第一用户可以为辅助领域中的任一用户。依照该方式,评分设备确定了辅助领域中每个用户的用户集合,该用户集合中的任一用户与对应的用户之间的相似度均大于第一预设值。

304、按照相似度值从大到小的顺序从用户集合中确定预置数目个用户作为第一用户的相似用户;

评分设备得到了与第一用户的相似度值大于第一预设值的用户集合后,按照相似度从大到小的顺序对用户集合中的用户进行排序,从该排序中选择前预置数目个用户作为第一用户的相似用户。例如,可以为每个用户选取相似性最高的100个用户,且相似度的最小值为0.02,如果用户与他的相似性最高的100个相似用户的相似度都大于0.02,那就选择这100个用户作为他的相似用户集合,如果用户的相似度大于0.02的相似用户只有80个,那就选择这80个用户作为他的相似用户集合。

需要说明的是,实际应用中,除了按照相似度从大到小的顺序确定第一用户的相似用户外,还可以在用户集合中随机确定预置数目个用户作为第一用户的相似用户,故第一用户的相似用户的确定方式具体此处不做限定。

另外,本申请实施例中,步骤303至步骤304根据辅助领域中各用户之间的相似度值确定了辅助领域中各用户的相似用户,实际应用中,评分设备还可以直接将辅助领域中的其他所有用户作为第一用户的相似用户、或者将与第一用户的相似度值大于第一预设值的用户都作为第一用户的相似用户、或者按照相似度从大到小的顺序确定预置数目个用户作为第一用户的相似用户即不考虑相似度值是否大于第一预设值,故评分设备确定辅助领域中各用户的相似用户的方式具体此处不做限定。

305、根据辅助领域中各用户与对应的相似用户之间的相似度值,以及目标领域的用户-项目评分矩阵,计算辅助领域中各用户对目标领域中目标项目的预测评分;

评分设备确定了辅助领域中各用户与对应的相似用户后,根据辅助领域中各用户与对应的相似用户之间的相似度值,以及目标领域的用户-项目评分矩阵,计算辅助领域中各用户对目标领域中目标项目的预测评分,可以按照如下方式计算辅助领域中各用户对目标领域中目标项目的预测评分:

其中,pi,b表示辅助领域中用户i对目标领域中目标项目b的预测评分;n表示辅助领域中与用户i相似且对目标领域的项目有评分的用户的集合;si,k表示辅助领域中用户i和用户k之间的相似度值,其中用户k包含于用户集合n中;rk,b表示用户k对目标领域中目标项目b的评分。

306、根据目标项目的预测评分,生成辅助领域中各用户的推荐项目。

评分设备计算完辅助领域中各用户对目标领域中目标项目的预测评分后,基于目标项目的预测评分,若第一用户对应的目标项目中存在预测评分大于第二预设值的项目时,则确定该预测评分大于第二预设值的项目为第一用户的推荐项目,第一用户为辅助领域中的任一用户,例如,第一用户的目标项目为{项目1,项目4,项目9,项目11},与该目标项目对应的预测评分的集合为{4,2,5,3},将预测评分大于3的目标项目作为推荐项目,则可以确定第一用户的推荐项目为{项目1,项目9}。故依照该方法,可以确定辅助领域中每个用户的推荐项目。

需要说明的是,实际应用中,确定第一用户的推荐项目的方式有多种,例如按照预测评分从大到小的顺序从第一用户对应的目标项目中选取预置数目个项目,作为第一用户的推荐项目,例如,第一用户的目标项目为{项目1,项目4,项目9,项目11},与该目标项目对应的预测评分的集合为{4,2,5,3},将预测评分排在前三位的目标项目作为第一用户的推荐项目,则可以确定第一用户的推荐项目为{项目1,项目9,项目11}。故具体确定第一用户的推荐项目的方式此处不做限定。

本申请实施例中,评分设备根据获得的辅助领域的用户-项目评分矩阵计算得到了辅助领域中各用户之间的相似度值,再根据该相似度值和目标领域的用户-项目评分矩阵计算了辅助领域中各用户在目标领域中未进行评分的项目,辅助领域的用户均为目标领域的潜在用户,即得到了目标领域的潜在用户对目标领域中未评分的项目的预测评分,并根据该预测评分向辅助领域中的各用户进行项目推荐,本申请实施例解决了目标领域的潜在用户冷启动的问题以及通过较少的计算量便能确定推荐项目。

上述图3示出了当辅助领域仅包括一个子辅助领域时的情况,实际应用中,还存在辅助领域包括多个子辅助领域的情况,有鉴于此,下面图5将对该情况进行说明。

请参阅图5,本申请实施例中基于用户相似度的跨领域评分方法另一个实施例包括:

501、获取目标领域的用户-项目评分矩阵和辅助领域的用户-项目评分矩阵;

本申请实施例中,步骤501与图3的步骤301类似,此处不再赘述。

502、根据各子辅助领域的用户-项目评分矩阵计算得到各子辅助领域中各用户之间的相似度值;

评分设备获取到辅助领域中各子辅助领域的用户-项目评分矩阵后,根据各子辅助领域的用户-项目评分矩阵计算各子辅助领域中各用户之间的相似度值。其中相似度值的计算方式可以使用余弦相似性方法,计算公式如下:

其中sim(i,j)表示辅助领域中用户i和用户j之间的相似度值,ri,a表示辅助领域中用户i对项目a的评分,rj,a表示辅助领域中用户j对所述项目a的评分,i表示辅助领域中项目的集合。

需要说明的是,实际应用中还可以使用协相关相似性计算用户间的相似度值,计算公式如下:

其中sim(i,j)表示辅助领域中用户i和用户j之间的相似度值,ri,a表示辅助领域中用户i对项目a的评分,rj,a表示辅助领域中用户j对项目a的评分,表示辅助领域中用户i对所有项目的评分的平均值,表示辅助领域中用户j对所有项目的评分的平均值,i表示辅助领域中项目的集合。

可以理解的是,除了应用余弦相似性计算或者协相关相似性计算用户间的相似度值,实际应用中还可以使用皮尔逊相似度方法或词频-反文档频率的统计方法来计算,故具体此处不做限定。

需要说明的是,不同领域的用户相似性计算可以使用相同的相似性计算方法,也可以使用不同的相似性计算方法,具体此处不做限定。

503、根据各子辅助领域与目标领域的相似性权重系数,以及各子辅助领域中各用户之间的相似度值,计算各子辅助领域之间用户的相似度值;

评分设备得到整合的用户-项目评分矩阵后,基于该矩阵,根据各子辅助领域与目标领域的相似性权重系数,以及各子辅助领域中各用户之间的相似度值,计算各子辅助领域之间用户的相似度值,按照如下方式进行计算:

其中,d表示多个子辅助领域的集合,wd表示子辅助领域d与目标领域的相似性权重系数,可以理解的是,相关性高的辅助领域对应的相似性权重系数高,相关性低的辅助领域对应的相似性权重系数低,(si,j)d表示根据子辅助领域d的用户-项目评分矩阵计算得到的用户i和用户j的相似度值。

需要说明的是,当辅助领域包括多个子辅助领域时,评分设备根据步骤502和步骤503计算得到了各子辅助领域之间用户的相似度值,实际应用中,还有多种方式计算该相似度值,例如,将辅助领域中所有子辅助领域的用户-项目评分矩阵进行整合处理,得到整合的用户-项目评分矩阵,可以理解为整合的用户-项目评分矩阵中的行是辅助领域中所有的用户,列是辅助领域中所有的项目,然后基于该整合的用户-项目评分矩阵计算该矩阵中用户的相似性值,即得到辅助领域中各用户之间的相似度值,故当辅助领域包括多个子辅助领域时,评分设备计算各用户之间的相似度值的方式具体此处不做限定。

504、基于辅助领域中各用户之间的相似度值,确定得到与第一用户的相似度值大于第一预设值的用户集合;

505、按照相似度值从大到小的顺序从用户集合中确定预置数目个用户作为第一用户的相似用户;

506、根据辅助领域中各用户与对应的相似用户之间的相似度值,以及目标领域的用户-项目评分矩阵,计算辅助领域中各用户对目标领域中目标项目的预测评分;

507、根据目标项目的预测评分,生成辅助领域中各用户的推荐项目。

本申请实施例中,步骤504至步骤507与图3的步骤303至步骤306类似,此处不再赘述

本申请实施例中,当辅助领域中包括多个子辅助领域时,根据各子辅助领域的用户-项目评分矩阵计算得到各子辅助领域中各用户之间的相似度值,并引入了子辅助领域与目标领域的相似性权要系数,增加了本申请实施例的实现方式,使本申请实施例更具有可操作性。

为便于理解,下面结合具体的例子对本实施例进行描述:

第一步,将视频领域作为辅助领域,图书领域作为目标领域,假设辅助领域和目标领域的用户-项目评分矩阵如图6所示,其中辅助领域有4个用户和4个项目,图书领域有2个用户和4个项目。

第二步,基于辅助领域的用户-项目评分矩阵计算辅助领域的用户之间的相似度值,使用余弦相似性计算辅助领域中个用户之间的相似性。计算过程如下:

用户1与用户2之间的相似度值:

用户1与用户3之间的相似度值:

用户1与用户4之间的相似度值:

用户2与用户3之间的相似度值:

用户2与用户4之间的相似度值:

用户3与用户4之间的相似度值:

设定每个用户的相似用户的个数为2,且相似度值最小为0.2,则可以得出用户1的相似用户集合为{用户3,用户4},用户2的相似用户集合为{用户3,用户4},用户3的相似用户集合为{用户2,用户4},用户4的相似用户集合为{用户1,用户2}。

第三步,基于辅助领域中各用户的相似用户在目标领域的喜好,计算出辅助领域中各用户对目标领域中目标项目的预测评分,计算过程如下:

辅助领域中用户1对目标领域中对应的目标项目的预测评分:

用户1对图书i的预测评分:

用户1对图书ii的预测评分:

用户1对图书iii的预测评分:

用户1对图书iv的预测评分:

辅助领域中用户2对目标领域中对应的目标项目的预测评分,用户2在目标领域以对图书i和图书iii进行评分,则其对应的目标项目为图书ii和图书iv:

用户2对图书ii的预测评分:

用户2对图书iv的预测评分:

辅助领域中用户3对目标领域中对应的目标项目的预测评分:

用户3对图书i的预测评分:

用户3对图书ii的预测评分:

用户3对图书iii的预测评分:

用户3对图书iv的预测评分:

辅助领域中用户4对目标领域中对应的目标项目的预测评分,用户4在目标领域以对图书i、图书ii和图书iv进行评分,则其对应的目标项目为图书iii:

用户4对图书iii的预测评分:

设定推荐项目的预测评分阈值为4,即预测评分不少于4分的为对应用户的推荐项目。那么向用户1推荐的项目为图书ii和图书iv,给用户2推荐的项目为图书ii和iv,给用户3推荐的项目为图书ii、图书iii和图书iv,给用户4推荐的项目为图书iii。因此,既得到了给目标领域中已有用户推荐的项目,也得到了给目标领域潜在用户推荐的项目。

上面对本申请实施例中的基于用户相似度的跨领域评分方法进行了描述,下面对本发明实施例中的评分设备进行描述请参阅图7,本发明实施例中评分设备一个实施例包括:

获取单元701,用于获取目标领域的用户-项目评分矩阵和辅助领域的用户-项目评分矩阵,目标领域的用户包含于辅助领域的用户;

第一计算单元702,用于根据辅助领域的用户-项目评分矩阵计算得到辅助领域中各用户之间的相似度值;

第二计算单元703,用于根据辅助领域中各用户之间的相似度值和目标领域的用户-项目评分矩阵,计算辅助领域中各用户对目标领域中对应的目标项目的预测评分,目标项目为辅助领域中各用户在目标领域中未进行评分的项目。

可选的,第一计算单元702可进一步包括:

第一计算模块7021,用于按照如下方式计算辅助领域中各用户之间的相似度值:

或,

sim(i,j)表示辅助领域中用户i和用户j之间的相似度值;

ri,a表示辅助领域中用户i对项目a的评分;

rj,a表示辅助领域中用户j对所述项目a的评分;

表示辅助领域中用户i对所有项目的评分的平均值;

表示辅助领域中用户j对所有项目的评分的平均值;

i表示辅助领域中项目的集合。

可选的,第一计算单元702可进一步包括:

整合模块7022,用于将辅助领域中所有子辅助领域的用户-项目评分矩阵进行整合得到整合的用户-项目评分矩阵;

第二计算模块7023,用于根据所述整合的用户-项目评分矩阵计算得到所述整合的用户-项目评分矩阵中各用户之间的相似度值;

或,

第三计算模块7024,用于根据各子辅助领域的用户-项目评分矩阵计算得到各子辅助领域中各用户之间的相似度值;

第四计算模块7025,用于根据各子辅助领域与目标领域的相似性权重系数,以及各子辅助领域中各用户之间的相似度值,计算各子辅助领域之间用户的相似度值。

可选的,第四计算模块7025可进一步包括:

第一计算子模块70251,用于按照如下方式计算整合的用户项目评分矩阵中各用户之间的相似度值:

d表示多个子辅助领域的集合;

wd表示子辅助领域d与目标领域的相似性权重系数;

(si,j)d表示根据子辅助领域d的用户-项目评分矩阵计算得到的用户i和用户j的相似度值。

可选的,第二计算单元703可进一步包括:

第一确定模块7031,用于根据辅助领域中各用户之间的相似度值确定辅助领域中各用户的相似用户;

第四计算模块7032,用于根据辅助领域中各用户与对应的相似用户之间的相似度值,以及目标领域的用户-项目评分矩阵,计算辅助领域中各用户对目标领域中目标项目的预测评分。

可选的,第一确定模块7031可进一步包括:

第一确定子模块70311,基于辅助领域中各用户之间的相似度值,用于确定得到与第一用户的相似度值大于第一预设值的用户集合,第一用户为辅助领域中的用户;

第二确定子模块70312,用于按照相似度值从大到小的顺序从用户集合中确定预置数目个用户作为第一用户的相似用户。

可选的,第四计算模块7032可进一步包括:

第二计算子模块70321,用于按照如下方式计算所述辅助领域中各用户对所述目标领域中目标项目的预测评分:

pi,b表示辅助领域中用户i对目标领域中目标项目b的预测评分;

n表示辅助领域中与用户i相似且对目标领域的项目有评分的用户的用户集合;

si,k表示辅助领域中用户i和用户k之间的相似度值,其中用户k包含于用户集合n中;

rk,b表示用户k对目标领域中目标项目b的评分。

可选的,评分设备可进一步包括:

生成单元704,用于根据所述目标项目的预测评分,生成所述辅助领域中各用户的推荐项目,所述推荐项目包含于所述目标项目。

可选的,生成单元704可进一步包括:

第二确定模块7041,若第一用户对应的目标项目中存在预测评分大于第二预设值的项目时,则用于确定预测评分大于第二预设值的项目为第一用户的推荐项目,第一用户为辅助领域中的用户;

或,

第二确定模块7041还用于按照预测评分从大到小的顺序从第一用户对应的目标项目中选取预置数目个项目,作为第一用户的推荐项目。

本申请实施例中,第一计算单元根据获取单元获得的辅助领域的用户-项目评分矩阵计算得到了辅助领域中各用户之间的相似度值,第二计算单元再根据该相似度值和目标领域的用户-项目评分矩阵计算了辅助领域中各用户在目标领域中未进行评分的项目,辅助领域的用户均为目标领域的潜在用户,即得到了目标领域的潜在用户对目标领域中未评分的项目的预测评分,并根据该预测评分向辅助领域中的各用户进行项目推荐,本申请实施例解决了目标领域的潜在用户冷启动的问题以及通过较少的计算量便能确定推荐项目。

上面图7从模块化功能实体的角度分别对本申请实施例中的评分设备进行详细描述,下面从硬件处理的角度对本申请实施例中的评分设备进行详细描述。

图8.a是本申请实施例提供的评分设备的结构示意框图,参考图8.a。在采用集成的单元的情况下,图8.a示出了上述实施例中所涉及的评分设备的一种可能的结构示意图。评分设备800包括:处理单元802和通信单元803。处理单元802用于对评分设备的动作进行控制管理,例如,处理单元802用于支持评分设备执行图3中的步骤301至步骤306,和/或用于本文所描述的技术的其它过程。通信单元803用于支持评分设备与其他网络实体的通信。评分设备还可以包括存储单元801,用于存储评分设备的程序代码和数据。

其中,处理单元802可以是处理器或控制器,例如可以是中央处理器(centralprocessingunit,cpu),通用处理器,数字信号处理器(digitalsignalprocessor,dsp),专用集成电路(application-specificintegratedcircuit,asic),现场可编程门阵列(fieldprogrammablegatearray,fpga)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,dsp和微处理器的组合等等。通信单元803可以是通信接口、收发器、收发电路等,其中,通信接口是统称,可以包括一个或多个接口,例如收发接口。存储单元801可以是存储器。

当处理单元802为处理器,通信单元803为通信接口,存储单元801为存储器时,本申请实施例所涉及的评分设备可以为图8.b所示的评分设备。

参阅图8.b所示,该评分设备810包括:处理器812、通信接口813、存储器811。可选的,评分设备810还可以包括总线814。其中,通信接口813、处理器812以及存储器811可以通过总线814相互连接;总线814可以是外设部件互连标准(peripheralcomponentinterconnect,pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,eisa)总线等。总线814可以分为地址总线、数据总线、控制总线等。为便于表示,图8.b中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。

所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘(solidstatedisk(ssd)))等。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

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

以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1