推荐方法、装置、设备及计算机可读存储介质与流程

文档序号:18869881发布日期:2019-10-14 19:17阅读:191来源:国知局
推荐方法、装置、设备及计算机可读存储介质与流程

本发明实施例涉及互联网技术领域,尤其涉及一种推荐方法、装置、设备及计算机可读存储介质。



背景技术:

随着互联网技术的高速发展,在线信息也呈爆炸式增长。用户在面临海量的选择时往往会无从下手,推荐系统的提出,能够帮助用户快速定位到其感兴趣的目标。一方面推荐系统可以有效提升用户在面临海量选择时的体验,另一方面,推荐系统可以帮助平台进行用户导流,并吸引来更多的用户。

目前,现有的推荐方法主要有基于内容的方法、基于协同过滤的方法以及混合方法。基于内容的方法是根据物品本身的内容信息,如物品的文本描述,属性标签等,然后基于这些内容信息计算文本相似度,从而得到物品间相似度,最后将与用户历史物品相似的物品推荐给用户。但基于内容的方法对于相似度的计算是物品在一维空间中的相似度,从而导致推荐多样性较低。



技术实现要素:

本发明实施例提供一种推荐方法、装置、设备及计算机可读存储介质,以提高推荐多样性。

第一方面,本发明实施例提供一种推荐方法,包括:基于推荐系统中第一用户的多个已评分对象的属性张量和多个未评分对象的属性张量,计算第一用户对未评分对象的第一预测评分;对确定的第一用户的多个待推荐对象,计算第一用户对待推荐对象的第二预测评分;基于第一预测评分和第二预测评分,在多个未评分对象和多个待推荐对象中确定至少一个目标推荐对象,以进行推荐。

第二方面,本发明实施例提供一种推荐装置,包括:第一计算模块,用于基于推荐系统中第一用户的多个已评分对象的属性张量和多个未评分对象的属性张量,计算第一用户对未评分对象的第一预测评分;第二计算模块,用于对确定的第一用户的多个待推荐对象,计算第一用户对待推荐对象的第二预测评分;确定模块,用于基于第一预测评分和第二预测评分,在多个未评分对象和多个待推荐对象中确定至少一个目标推荐对象,以进行推荐。

第三方面,本发明实施例提供一种推荐设备,包括:存储器;

处理器;以及

计算机程序;

其中,计算机程序存储在存储器中,并被配置为由处理器执行以实现如第一方面的方法。

第四方面,本发明实施例提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行以实现第一方面的方法。

本发明实施例提供的推荐方法、装置、设备及计算机可读存储介质,通过基于推荐系统中第一用户的多个已评分对象的属性张量和多个未评分对象的属性张量,计算第一用户对未评分对象的第一预测评分;对确定的第一用户的多个待推荐对象,计算第一用户对待推荐对象的第二预测评分;基于第一预测评分和第二预测评分,在多个未评分对象和多个待推荐对象中确定至少一个目标推荐对象,以进行推荐。由于已评分对象和未评分对象分别表达为属性张量,使得第一预测评分的计算考虑了推荐系统中各个对象的属性之间的关联,因此,能够缓解数据稀疏性问题,实现推荐结果的多样化。

附图说明

图1为本发明实施例提供的推荐方法流程图;

图2为本发明另一实施例提供的推荐方法流程图;

图3为本发明另一实施例提供的推荐方法流程图;

图4为本发明实施例提供的用户、对象和标签的节点关系图;

图5为本发明实施例提供的用户、对象-标签对的节点关系图;

图6为本发明实施例提供的原理图;

图7为本发明另一实施例提供的推荐方法流程图;

图8为本发明实施例提供的推荐装置的结构示意图;

图9为本发明实施例提供的推荐设备的结构示意图。

通过上述附图,已示出本公开明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本公开构思的范围,而是通过参考特定实施例为本领域技术人员说明本公开的概念。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。

现有技术中,基于协同过滤的方法大体上是为用户找到与之兴趣相似的其他用户,将他们感兴趣的内容推荐给原用户。它不需要处理用户和物品的属性和内容信息。混合方法是将多类型推荐方法以一定的方法结合,或是将多种推荐方法得到的结果进行融合,或是将多种方法融合成一个混合框架。而基于协同过滤的方法算法存在以下两个问题:1、数据稀疏性问题,即对于不活跃的用户,很难单纯根据其历史记录获取其兴趣;2、效率问题,即目前大多数的协同过滤方法很容易面临大规模计算和高维矩阵存储的问题。而混合策略大多数是预定义的,混合的策略都较为生硬,不能根据实际情况进行适应性的调整。

本发明实施例提供的推荐方法,旨在解决现有技术的如上至少一个技术问题。

下面以具体地实施例对本发明的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本发明的实施例进行描述。

图1为本发明实施例提供的推荐方法流程图。本发明实施例针对现有技术的如上技术问题,提供了推荐方法,该方法具体步骤如下:

步骤101、基于推荐系统中第一用户的多个已评分对象的属性张量和多个未评分对象的属性张量,计算第一用户对每个未评分对象的第一预测评分。

具体的,推荐系统包括多个用户和多个对象,推荐系统能够根据用户的兴趣特点和购买行为,向用户推荐用户感兴趣的对象,从而实现个性化推荐。其中,每一用户可以对应多个对象,对象可以是信息,也可以是物品,例如一部影片、一首音乐、一本书、一个商品等等。第一用户是指待进行推荐的用户,可以是推荐系统中的任一个用户。用户对对象可以进行评分,例如,某一用户对一部影片、一首音乐、一本书或一个商品进行评分。可选的,用户对一部影片、一首音乐、一本书或一个商品的评分可以是用户对该影片、音乐、书或商品的直接打分,也可以是平台根据用户对该影片、音乐、书或商品的评价信息计算得到的评分,本发明对此不做具体限定。

可选的,每一对象具有多个属性。例如,某一部电影的属性可以包括电影名称、导演、演员、类型等属性信息。某一首音乐的属性可以包括音乐名称、歌手名称、风格等属性信息。某一件商品的属性可以包括商品名称、商品价格、商品类别等属性信息。总之,属性构成对某一对象的表达,本发明在此不再一一列举。

在本发明实施例中,已评分对象的属性张量是指将推荐系统中第一用户已进行评分的对象的属性采用张量来表达。假设已评分对象为x,则该已评分对象x可以表达为一个n阶张量,该n阶张量的每一个维度,即每一阶对应已评分对象x的一个属性,ii表示第i个属性的所有取值的集合大小。

未评分对象的属性张量与已评分对象的属性张量类似,具体可参见已评分对象的属性张量的介绍,在此不再赘述。

本发明实施例中,未评分对象可以作为第一用户的待推荐对象,推荐系统可以计算第一用户对每个未评分对象的第一预测评分,来预测第一用户对该未评分对象的兴趣程度。

步骤102、对确定的第一用户的多个待推荐对象,计算第一用户对每个待推荐对象的第二预测评分。

具体的,可以是通过协同过滤方法来确定的第一用户的多个待推荐对象。例如,首先找到第一用户的兴趣对象和/或第一用户对该兴趣对象标注的标签,进而通过第一用户的兴趣对象和/或第一用户对该兴趣对象标注的标签找到与第一用户具有相同对象和/或同一对象的相同标签的第二用户,最后再找到第二用户的兴趣对象,然后将第二用户的兴趣对象作为第一用户的待推荐对象,计算第一用户对每个待推荐对象的第二预测评分,来预测第一用户对该待推荐对象的兴趣程度。

需要说明的是,步骤101和步骤102并不具体限定先后执行顺序,可以是先执行步骤101,再执行步骤102,也可以是先执行步骤102,再执行步骤101,还可以是同时执行步骤101和步骤102。

步骤103、基于第一预测评分和第二预测评分,在多个未评分对象和多个待推荐对象中确定至少一个目标推荐对象,以进行推荐。

可选的,基于第一预测评分和第二预测评分,在多个未评分对象和多个待推荐对象中确定至少一个目标推荐对象,形成推荐列表推荐给第一用户。

本发明实施例通过基于推荐系统中第一用户的多个已评分对象的属性张量和多个未评分对象的属性张量,计算第一用户对每个未评分对象的第一预测评分;对确定的第一用户的多个待推荐对象,计算第一用户对每个待推荐对象的第二预测评分;基于第一预测评分和第二预测评分,在多个未评分对象和多个待推荐对象中确定至少一个目标推荐对象,以进行推荐。由于已评分对象和未评分对象分别表达为属性张量,使得第一预测评分的计算考虑了推荐系统中各个对象的属性之间的关联,因此,能够缓解数据稀疏性问题,实现推荐结果的多样化。

图2为本发明另一实施例提供的推荐方法流程图。在上述实施例的基础上,本实施例提供的推荐方法具体包括如下步骤:

步骤201、基于推荐系统中第一用户的已评分对象各自的属性张量和未评分对象的属性张量,计算已评分对象和未评分对象之间的相似度。

可选的,基于推荐系统中第一用户的已评分对象各自的属性张量和未评分对象的属性张量,计算已评分对象和未评分对象之间的相似度,包括:分别对将已评分对象和未评分对象进行张量表达得到的属性张量分别进行张量分解;根据已评分对象和未评分对象各自的张量分解结果,计算已评分对象和未评分对象之间的相似度。具体的,分别对将已评分对象和未评分对象进行张量表达得到的属性张量分别进行张量分解是指对已评分对象和未评分对象各自的属性张量分别进行张量分解,其中,已评分对象和未评分对象的属性张量是分别对已评分对象和未评分对象的各个属性进行张量表达得到。具体的,根据已评分对象和未评分对象各自的张量分解结果,计算已评分对象和未评分对象之间的相似度是指根据已评分对象的属性张量和未评分对象的属性张量的张量分解结果,计算已评分对象和未评分对象之间的相似度。在一个具体的实施方式中,基于推荐系统中第一用户的已评分对象各自的属性张量和未评分对象的属性张量,计算已评分对象和未评分对象之间的相似度,包括:分别对已评分对象的属性张量和未评分对象的属性张量进行张量分解,得到多个第一特征张量和多个第二特征张量,每个第一特征张量对应已评分对象的一个属性,每个第二特征张量对应未评分对象的一个属性;根据多个第一特征张量和多个第二特征张量,计算已评分对象和未评分对象之间的相似度。

具体的,假设已评分对象为x1,未评分对象为x2,则已评分对象x1可以表达为一个n阶张量,该n阶张量的每一个维度,即每一阶对应已评分对象x1的一个属性,i1i表示已评分对象x1的第i个属性的所有取值的集合大小。同理,未评分对象x2也可以表达为一个n阶张量,该n阶张量的每一个维度,即每一阶对应未评分对象x2的一个属性,i2i表示未评分对象x2的第i个属性的所有取值的集合大小。

下面以对已评分对象为x1的张量分解为例进行说明。例如,使用张量分解的方法将已评分对象为x1的属性张量分解成一个与属性张量维度相同的核心张量和每个维度上的因子矩阵进行mode-i矩阵乘法的近似表达,表达式具体如下:

其中,核心张量代表了已评分对象x1的各个属性的隐式因子间的关系,每个维度上的因子矩阵a(i)代表该属性上的特征与隐式因子间的关系。例如,电影网络可以表示成一个四阶张量,其中每个维度分别表示电影名称、导演、演员、类型。经过张量分解后,核心张量是一个d×d×d×d的张量,且d是比较小的常数,而每一个因子矩阵是d×in大小的矩阵。假设a(1)代表了电影名称子空间因子矩阵,那么表示所有电影的特征张量,是一个i1×d×d×d大小的张量,每一个电影可以用d×d×d的特征张量表示。

可选的,对于已评分对象vi和vj,其属性张量分别为xi和xj,则已评分对象vi和vj之间的相似度为:

式(2)中,中的l、m、n分别代表该属性张量xi在三个维度上的取值。

进一步的,可以采用上述计算方法遍历数据库中的所有对象,计算两两之间的相似度,得到这些对象的相似度矩阵。

步骤202、基于已评分对象和未评分对象之间的相似度,以及第一用户对已评分对象的评分,计算第一用户对未评分对象的第一预测评分。

具体的,采用以下公式可以计算得到第一预测评分:

式(3)中,r(ui,vk)代表用户ui对某一对象vk的评分,sim(vi,vk)代表对象vi和对象vk之间的相似度,可以采用公式(2)计算得到。

例如,用户u1对v1、u2和v3三个对象分别进行了打分,分数分别为r1、r2、r3,对象v4未打分,v4与v1、u2和v3的相似度分别为s1、s2、s3,则可以采用上述公式(2)预测用户u1对对象v4的得分,得到v4的预测得分为(s1*r1+s2*r2+s3*r3)/(s1+s2+s3)。

同样的,利用公式(2)和公式(3)可以计算得到对于第一用户的未打分对象进行预测评分,推荐系统中所有用户对所有对象的评分或预测评分可以采用预测矩阵rt(ui,vj)来表示,其预测矩阵的每一行代表推荐系统中的某一个用户,每一列代表某一用户对某一个对象的打分或预测评分。

本发明实施例将对象的各属性构成张量,使用张量分解方法抽取抽象的对象特征张量,与传统的方法相比,能够捕捉不同对象各个属性之间的联系,并且由于抽象的对象特征张量各维度都较小,因此只需要少量的存储空间。

图3为本发明另一实施例提供的推荐方法流程图。图4为本发明实施例提供的用户、对象和标签的节点关系图。图5为本发明实施例提供的用户、对象-标签对的节点关系图。在上述实施例的基础上,本实施例提供的推荐方法具体包括如下步骤:

步骤301、确定待推荐对象的多个关联关系,关联关系是第一用户、第一用户的兴趣对象和/或对兴趣对象标注的标签、与第一用户具有相同兴趣对象和/或相同标签的第二用户以及第二用户的兴趣对象之间的关联关系。

如图4所示,假设第一用户为u1,第一用户u1的兴趣对象为v1,第一用户u1对兴趣对象v1打的标签为t1。根据兴趣对象v1和标签t1找到多个第二用户u2、u3和u4,以及第二用户u2的兴趣对象v2和v3,第二用户u3的兴趣对象vn,第二用户u4的兴趣对象v3。在本实施例中,兴趣对象可以是用户选择过的对象、浏览过的对象或者使用过的对象,还可以是购买过的对象。应当理解的是,图4中也可以是仅通过第一用户的兴趣对象或第一用户打过的标签来找到与其共享这些兴趣对象或标签的第二用户,本发明实施例在此仅以第一用户的兴趣对象和标签为例进行说明。图4中的标签是为了找到更多相关的第二用户,因为有些第一用户和第二用户之间可能没有共同的物品,但是有共同的标签,因此,通过标签找到更多的第二用户后,又能往下挖掘出更多的相关物品。如图4所示,每个第一用户的邻居节点包括了物品和标签。例如,在豆瓣读书中,第一用户对读过的《巴黎圣母院》评分,同时打上标签如“浪漫”。那么《巴黎圣母院》就是第一用户邻接的对象,“浪漫”就是第一用户邻接的标签。

具体的,对于每一个第一用户来说,都对应有一个与第一用户关联的对象或一个标签、一个第二用户、第二用户的一个对象或标签之间会存在一个关联关系,将这些关联关系采用线条连接起来,可以得到如图4所示的节点关系示意图。可以看到,u1、v1、u2和v3之间的连线可以称之为v3的一个关联关系,或者一条路径,而对于v3来说,还存在u1、t1、u4和v3这一条路径或者关联关系,在实际应用中,每一个待推荐对象可以像这样子具有多个关联关系或者多条路径。如此,对于v3而言,图4中具有两个关联关系或者两条路径。

第一用户和第二用户之间的连接可以通过对象或者标签,也可以通过一个对象标签对,即对象和该对象对应的标签,对象标签对为<vl,tm>。例如图5中所示的<v1,t1>。对于图5而言,u1、<v1,t1>、u2和v3即为v3的一个关联关系或者一条路径,同样的,u1、<v1,t1>、u3和v3也为v3的一个关联关系或者一条路径,如此,对于v3而言,图5中具有两个关联关系或者两条路径。

步骤302、将第二用户的兴趣对象作为待推荐对象,计算待推荐对象在每一关联关系下的正面率。

步骤303、将待推荐对象在多个关联关系下的正面率累加,得到第二预测评分。

如图4所示,对于v3而言,u1、v1、u2和v3之间的路径会有一个评分,u1、t1、u4和v3之间的路径会有一个评分,将这两条路径上的评分累加起来,即得到u1对v3的第二预测评分。

同样的,如图5所示,对于v3而言,u1、<v1,t1>、u2和v3之间的路径会有一个评分,u1、<v1,t1>、u3和v3之间的路径也会有一个评分,将这两条路径上的评分累加起来,即得到u1对v3的第二预测评分。

可选的,待推荐对象在每一关联关系下的正面率是根据第一预设参数、第二预设参数,以及每一待推荐对象的正面评分数量和负面评分数量计算得到。

可选的,第一预设参数和第二预设参数是根据推荐系统中所有对象的正面评分的概率平均值确定。

可选的,推荐系统中每一对象的正面评分的概率是根据高于该对象平均评分的数量与该对象所有评分数量的比值确定。

本发明实施例中,待推荐对象在一个关联关系或者一条路径上的评分pv根据如下公式计算得到:

式中,a为第一预设参数,b为第二预设参数,为待推荐对象的正面评分数,即高于该待推荐对象平均评分的评分数量,为待推荐对象的负面评分数,即低于该待推荐对象平均评分的评分数量。

对于第一预设参数和第二预设参数的确定可以通过如下方法来确定:假设待推荐对象v的正面概率θv的分布服从贝塔分布θ~beta(a,b),则对于每一个待推荐对象,取其在推荐系统中所有评分的平均值,然后计算高于该平均值的评分数量占据总评分数量的比重,即为该物品的正面概率θv。将推荐系统中所有对象的正面概率取平均值得到进而根据所有对象的正面概率平均值来确定a和b,即令等于正面概率平均值即可。例如所有物品的正面概率平均值为0.6,则a取600,b取400即可。当然,a和b也可以取其他的数值,例如a取900,b取600。对于a和b的取值,本领域技术人员可以根据实际需求来设定,只要使其满足即可。

下面通过举例对上述公式的实际应用进行说明:

假如物品v3的所有评分的平均值为3.5,所有评分中低于3.5的评分数量为20,高于3.5的评分数量为15,则通过该公式(4)可以得到待推荐对象在某一条路径上的评分,根据待推荐对象的路径评分叠加,可以得出所有以往未评分的待推荐对象的得分。对于用户ui从物品vl出发到用户uj再到对象vm的一条路径ρ(ui,vl,uj,vm),其得分为sρ(ui,vl,uj,vm)=pvm。如图4所示,u1到v1到u2再到v2的路径得分为u1到t1到u4再到v3的路径得分为pv3。

可选的,对确定的第一用户的多个待推荐对象,计算第一用户对待推荐对象的第二预测评分,包括:将推荐系统中所有用户与所有对象的交互采用第一矩阵表示;将多个待推荐对象在每一关联关系下的正面率采用第二矩阵表示;根据第一矩阵、第一矩阵的转置矩阵和第二矩阵,计算得到第三矩阵,第三矩阵包括第一用户对待推荐对象的第二预测评分。具体的,可以判断确定的第一用户的多个待推荐对象的数量是否达到阈值,若达到阈值,则计算推荐系统中所有对象的正面率,从而形成第二矩阵;若未达到阈值,则计算确定的第一用户的多个待推荐对象的正面率,从而形成第二矩阵,这种情况下,推荐系统中其余对象的正面率为0。

在本实施例,如图6所示,对于推荐系统中的所有用户和所有对象,可以采用第一矩阵来a表示,该第一矩阵的行代表推荐系统中的所有用户,列代表推荐系统中的所有对象和/或所有对象的标签。在该第一矩阵中,对于用户与对象和/或标签有交互的位置(也即打过分或者标过标签的位置)设置为1,没有交互的设置为0。此外,还可以将推荐系统中所有用户与所有对象的交互采用第二矩阵p来表示,第二矩阵的行代表推荐系统中的所有用户,列代表推荐系统中每一对象在每一关联关系下的正面率。如此,则可以直接通过a×at×p计算得到一个第三矩阵,该第三矩阵的行代表推荐系统中的所有用户,列代表某一用户对一个对象的打分或第二预测评分。

例如,假设有用户u1、u2、u3和对象v1、v2、v3,用户u1与对象v1、v3均有交互,用户u2与对象v2有交互,用户u3与对象v2、v3均有交互,其邻接矩阵表示为矩阵a的每一行分别代表用户u1、u2、u3,每一列分别代表对象v1、v2、v3,则a的转置为首先计算将对角线均修改为0,则得到代表推荐系统中所有用户两两之间是否具有关联关系,其中,1代表该行和该列对应的两个用户之间具有相同兴趣对象和/或相同标签,0代表该行和该列对应的两个用户之间没有相同兴趣对象和/或相同标签;假设交互矩阵表示为则根据矩阵相乘原则,将对角线都修改为0之后的结果与交互矩阵相乘,得到预测矩阵可选的,为了与第一预测评分取值一致,还可以将预测矩阵中每个元素映射到评分区间中。映射的具体方法举例如下:假设评分范围是0~5,则将r矩阵中最大值映射到5,r矩阵每一项修正值由以下公式计算:修正值/初始值=5/r中最大值,例如r中第一行第一列=5/1*1/2=5/2。最终得到修正后的预测矩阵最终得到的预测矩阵中的每个元素即为推荐系统中每个用户对每个对象的打分或者第二预测评分。

需要说明的是,本发明实施例中所有用户是指推荐系统中所包含的所有使用该推荐系统的用户或者在推荐系统中注册的用户,所有对象是指推荐系统中包含的所有与用户可能存在交互关系的对象。例如,推荐系统为购物系统,则所有用户是指在该购物系统中进行注册的用户或者使用该购物系统的用户,所有对象是指该购物系统中所有的商品,包括与用户发生过交互的商品,以及从未与任何用户发生过交互的商品。

本发明实施例利用第一用户的邻接节点信息(包括第一用户的兴趣对象和/或标签)和推荐系统中待推荐对象的正面率实现协同过滤。相较于传统的方法,第二预测评分的计算可以通过三个矩阵的运算实现并行计算,因此,能够有效地提高计算效率。

图7为本发明另一实施例提供的推荐方法流程图。在上述实施例的基础上,本实施例提供的推荐方法具体包括如下步骤:

步骤701、基于第一预测评分和第二预测评分,计算第一用户对每个未评分对象和每个待推荐对象的综合预测评分。

可选的,基于第一预测评分和第二预测评分,计算第一用户对每个未评分对象和每个待推荐对象的综合预测评分,包括:确定第一用户的活跃度和未评分对象的新鲜度;根据第一用户的活跃度和未评分对象的新鲜度,确定第一预测评分的权重;根据第一预测评分的权重确定第二预测评分的权重;根据第一预测评分的权重、第一预测评分、第二预测评分的权重和第二预测评分,确定第一用户对待推荐对象的综合预测评分。其中,第一用户的活跃度是根据第一用户对推荐系统中对象的交互程度和第一调节参数确定;未评分对象的新鲜度是根据未评分对象受推荐系统中用户的关注程度和第二调节参数确定;第一预测评分的权重和第二预测评分的权重之和为1。

具体的,第一用户的活跃度可以反映出来第一用户对推荐系统中对象的交互程度。第一用户的活跃度与第一用户对已评分对象的交互程度正相关,即如果第一用户在推荐系统中的历史记录越多,则代表第一用户的活跃度越高,反之亦然。第一用户的活跃度可以采用如下公式来表达:

式(5)中,nr(u)表示用户u在推荐系统中与对象之间的历史记录数,α是第一调节参数,可以根据经验值来设定。

具体的,未评分对象的新鲜度代表该未评分对象受推荐系统中所有用户的关注程度。未评分对象的新鲜度与未评分对象受推荐系统中所有的关注程度负相关,即如果未评分对象在推荐系统中被交互的记录越多,其新鲜度越低,反之亦然。未评分对象的新鲜度可以采用如下公式来表达:

式中,nr(v)表示对象v在推荐系统中被交互的次数,β是第二调节参数,可以根据经验值来设定。

进一步的,根据上述公式(5)和公式(6),则可以得到综合预测评分的表达式:

r(u,v)=w(u,v)·rt(u,v)+(1-w(u,v))·rc(u,v)(7)

式中,rt(u,v)为第一用户对未评分对象的第一预测评分,rc(u,v)为第一用户对待推荐对象的第二预测评分,w(u,v)是第一预测评分的权重,1-w(u,v)第二预测评分的权重,第一预测评分的权重与第二预测评分的权重之和为1。

在本发明实施例中,第一预测评分的权重w(u,v)的表达式如下:

由上述公式(8)可以看出,随着第一用户的活跃度的提高或者待推荐对象的新鲜度的降低,第一预测评分的权重逐渐降低。

步骤702、根据综合预测评分在未评分对象和待推荐对象中确定至少一个目标推荐对象。

具体的,是计算第一用户对每个未评分对象和每个待推荐对象的综合预测评分,并根据综合预测评分对所有未评分对象和所有待推荐对象进行降序排列,并取排名靠前的预设数量个对象推荐给第一用户。

本发明实施例通过根据第一用户的活跃度和未评分对象的新鲜度自适应地调整第一预测评分和第二预测评分,能够充分地利用第一预测评分和第二预测评分的计算方法的优势。相比以往的预定义的混合策略,本发明实施例的方法更加灵活与合理。

图8为本发明实施例提供的推荐装置的结构示意图。本发明实施例提供的推荐装置可以执行推荐方法实施例提供的处理流程,如图8所示,推荐装置80包括:第一计算模块81、第二计算模块82和确定模块83;其中,第一计算模块81,用于基于推荐系统中第一用户的多个已评分对象的属性张量和多个未评分对象的属性张量,计算第一用户对每个未评分对象的第一预测评分;第二计算模块82,用于对确定的第一用户的多个待推荐对象,计算第一用户对每个待推荐对象的第二预测评分;确定模块83,用于基于第一预测评分和第二预测评分,在多个未评分对象和多个待推荐对象中确定至少一个目标推荐对象,以进行推荐。

可选的,第一计算模块81在基于推荐系统中第一用户的已评分对象的属性张量和未评分对象的属性张量,计算第一用户对未评分对象的第一预测评分,具体用于:基于已评分对象的属性张量和未评分对象的属性张量,计算已评分对象和未评分对象之间的相似度;基于已评分对象和未评分对象之间的相似度,以及第一用户对已评分对象的评分,计算第一用户对未评分对象的第一预测评分。

可选的,第一计算模块81在基于已评分对象的属性张量和未评分对象的属性张量,计算已评分对象和未评分对象之间的相似度时,具体用于:分别对将已评分对象和未评分对象进行张量表达得到的属性张量分别进行张量分解;根据已评分对象和未评分对象各自的张量分解结果,计算已评分对象和未评分对象之间的相似度。

可选的,第二计算模块82对确定的第一用户的多个待推荐对象,计算第一用户对每一待推荐对象的第二预测评分时,具体用于:确定待推荐对象的多个关联关系,关联关系是第一用户、第一用户的兴趣对象和/或对兴趣对象标注的标签、与第一用户具有相同兴趣对象和/或相同标签的第二用户以及第二用户的兴趣对象之间的关联关系;将第二用户的兴趣对象作为待推荐对象,计算待推荐对象在每一关联关系下的正面率;将待推荐对象在多个关联关系下的正面率累加,得到第二预测评分。

可选的,第二计算模块82对确定的第一用户的多个待推荐对象,计算第一用户对每一待推荐对象的第二预测评分时,具体用于:将推荐系统中所有用户与所有对象的交互采用第一矩阵表示;将多个待推荐对象在每一关联关系下的正面率采用第二矩阵表示;根据第一矩阵、第一矩阵的转置矩阵和第二矩阵,计算得到第三矩阵,第三矩阵包括第一用户对待推荐对象的第二预测评分。

可选的,待推荐对象在每一关联关系下的正面率是根据第一预设参数、第二预设参数,以及每一待推荐对象的正面评分数量和负面评分数量计算得到。

可选的,第一预设参数和第二预设参数是根据推荐系统中所有对象的正面评分的概率平均值确定。

可选的,推荐系统中每一对象的正面评分的概率是根据高于该对象平均评分的数量与该对象所有评分数量的比值确定。

可选的,确定模块83基于第一预测评分和第二预测评分,在多个未评分对象和多个待推荐对象中确定至少一个目标推荐对象时,具体用于:基于第一预测评分和第二预测评分,计算第一用户对每个未评分对象和每个待推荐对象的综合预测评分;根据综合预测评分在未评分对象和待推荐对象中确定至少一个目标推荐对象。

可选的,确定模块83基于第一预测评分和第二预测评分,计算第一用户对每个未评分对象和每个待推荐对象的综合预测评分,包括:确定第一用户的活跃度和未评分对象的新鲜度;根据第一用户的活跃度和未评分对象的新鲜度,确定第一预测评分的权重以及第二预测评分的权重;根据第一预测评分的权重、第一预测评分、第二预测评分的权重和第二预测评分,确定第一用户对待推荐对象的综合预测评分。

可选的,第一用户的活跃度是根据第一用户对推荐系统中对象的交互程度和第一调节参数确定;未评分对象的新鲜度是根据未评分对象受推荐系统中用户的关注程度和第二调节参数确定。

图8所示实施例的推荐装置可用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。

图9为本发明实施例提供的推荐设备的结构示意图。该推荐设备可以执行推荐方法实施例提供的处理流程,如图9所示,推荐设备90包括:存储器91、处理器92、计算机程序和通讯接口93;其中,计算机程序存储在存储器91中,并被配置为由处理器92执行推荐方法实施例提供的处理流程。

图9所示实施例的推荐设备可用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。

另外,本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行以实现上述实施例的推荐方法。

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

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

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

上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例方法的部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

本领域技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

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

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