一种物品推荐方法及装置与流程

文档序号:12722247阅读:169来源:国知局
一种物品推荐方法及装置与流程

本发明涉及互联网技术领域,特别是涉及一种物品推荐方法及装置。



背景技术:

在互联网技术迅速发展的今天,每天面临各大信息的冲击,为了研究如何有效的筛选出用户所需要的信息,推荐系统已成为各大互联网企业解决问题的首选系统。

现有技术中,针对商品领域的推荐系统中,主要有以下的推荐方式:基于物品间因果关系的推荐方法。在基于因果关系的推荐方法中,根据商品-用户的二部图模型,利用过滤算法通过物品的因果关系给用户推荐相关物品,在使用这种推荐方式时,如果物品间没有因果关系时,当用户同时喜欢多个物品时,这种推荐方式不能准确为用户做合理的推荐判断。当出现这种情况时,需要选用基于物品的一致相似性推荐方式为用户推荐物品。一致相似性分为正向相似性和反向相似性。正向相似性是从已选择物品到未选择物品的相似性,反向相似性是从未选择物品到已选择物品的相似性构成。现有技术中只考虑正向相似性的推荐,容易导致物品相似性估计偏差,从而导致只为用户推荐流行物品,影响推荐物品的准确性。



技术实现要素:

本发明实施例的目的在于提供一种物品推荐方法及装置,实现为用户推荐更精准、更趋近用户消费习惯的物品。

为达到上述发明目的,本发明实施例公开了一种物品推荐方法,包括:

获取数据库中全部物品、全部用户、所述全部用户中每个用户已购买的全部物品的对应关系及所述全部物品中每个物品被全部用户已购买的对应关系,建立所述数据库中所述全部物品所述全部用户的第一资源分布矩阵;

对所述全部物品所述全部用户的所述第一资源分布矩阵,通过物质扩散算法,确定所述全部物品所述全部用户的第一正向转移矩阵,确定所述全部物品所述全部用户的第一反向转移矩阵;

根据所述第一正向转移矩阵以及所述第一反向转移矩阵,确定所述全部物品所述全部用户的第一双向转移矩阵;

确定所述第一双向转移矩阵的最优流行性惩罚参数;

利用所述最优流行性惩罚参数,对所述第一双向转移矩阵进行修正,确定修正后对应的、所述数据库中所述全部物品所述全部用户的第二双向转移矩阵;

根据所述第一资源分布矩阵以及所述第二双向转移矩阵,确定所述全部物品所述全部用户的第二资源分布矩阵;

根据所述第二资源分布矩阵的所述全部物品所述全部用户的对应关系,给所述全部用户的每个用户推荐全部物品中对应的至少一个物品。

可选地,所述根据所述第一正向转移矩阵以及所述第一反向转移矩阵,确定所述全部物品所述全部用户的第一双向转移矩阵,包括:

将所述第一正向转移矩阵以及所述第一反向转移矩阵对应的元素相乘,得到第一矩阵;

将所述第一矩阵开平方得到第二矩阵,将所述第二矩阵确定为所述全部物品所述全部用户的所述第一双向转移矩阵。

可选地,所述确定所述第一双向转移矩阵的最优流行性惩罚参数,包括:

通过所述全部物品所述全部用户的所述第一资源分布矩阵,将所述第一资源分布矩阵划分成两个矩阵,对应形成资源分布第一子矩阵和资源分布第二子矩阵,其中,所述资源分布第一子矩阵中有至少一个物品以及至少一个物品对应的至少一个用户,所述资源分布第二子矩阵中有至少一个物品以及至少一个物品对应的至少一个用户;

通过所述资源分布第一子矩阵,确定所述资源分布第一子矩阵对应的第一正向转移矩阵以及所述第一资源分布矩阵对应的第一反向转移矩阵;

通过所述资源分布第一子矩阵对应的所述第一正向转移矩阵以及所述资源分布第一子矩阵对应的所述第一反向转移矩阵,确定所述资源分布第一子矩阵对应的第一双向转移矩阵;

在预设的流行性惩罚参数集合中选取第一流行性惩罚参数,通过所述资源分布第一子矩阵、所述第一流行性惩罚参数以及所述资源分布第一子矩阵对应的所述第一双向转移矩阵,确定所述第一流行性惩罚参数条件下的当前资源分布矩阵;

通过所述流行性惩罚参数集合、所述资源分布第一子矩阵、所述资源分布第一子矩阵对应的所述第一双向转移矩阵,确定所述流行性惩罚参数集合中除第一流行性惩罚参数外剩余的流行性惩罚参数条件下、至少一个当前资源分布矩阵;

通过所述资源分布第二子矩阵,在全部当前资源分布矩阵中确定最优当前资源分布矩阵;

将所述最优当前资源分布矩阵对应的流行性惩罚参数,确定为所述第一双向转移矩阵的所述最优流行性惩罚参数。

可选地,所述利用所述最优流行性惩罚参数,对所述第一双向转移矩阵进行修正,确定修正后对应的、所述数据库中所述全部物品所述全部用户的第二双向转移矩阵,包括:

通过所述第一资源分布矩阵,计算所述全部物品中每个物品被全部用户已购买的所述全部用户数目,得到所述全部物品中每个物品的度函数,将所述每个物品的度函数作为第一结果;

将所述最优流行性惩罚参数作为所述第一结果的指数,得到以所述第一结果为底数、所述最优流行性惩罚参数为指数的幂函数,计算所述幂函数的倒数,得到第二结果;

将所述第二结果与所述第一双向转移矩阵相乘得到的矩阵,确定为修正后对应的、所述数据库中所述全部物品所述全部用户的所述第二双向转移矩阵。

可选地,所述根据所述第二资源分布矩阵的所述全部物品所述全部用户的对应关系,将所述全部物品中至少一个物品推荐给所述全部用户中对应的每个用户,包括:

通过所述第二资源分布矩阵的所述全部物品所述全部用户的对应关系,获取所述全部用户中第一用户对应的全部物品的概率值;

按照所述第一用户对应的所述全部物品的概率值从大到小的顺序,将所述全部物品中前N个所述第一用户未购买的物品推荐给所述第一用户,其中,所述N为等于或者大于1的自然数;

按照所述全部用户中除第一用户以外的剩余用户对应的所述全部物品的概率值从大到小的顺序,将所述全部物品中前N个、每个所述剩余用户未购买的物品推荐给所述全部用户中对应的每个所述剩余用户,其中,所述N为等于或者大于1的自然数。

可选地,在所述通过所述第二资源分布矩阵的所述全部物品所述全部用户的对应关系,获取所述全部用户中第一用户对应的全部物品的概率值之后,所述方法还包括:

按照所述第一用户对应的所述全部物品的概率值从小到大的顺序,将所述全部物品中后N个所述第一用户未购买的物品推荐给所述第一用户,其中,所述N为等于或者大于1的自然数;

按照所述全部用户中除第一用户以外的剩余用户对应的所述全部物品的概率值从小到大的顺序,将所述全部物品中后N个、每个所述剩余用户未购买的物品推荐给所述全部用户中对应的每个所述剩余用户,其中,所述N为等于或者大于1的自然数。

为达到上述发明目的,本发明实施例还公开了一种物品推荐装置,包括:

第一资源分布矩阵确定模块,用于获取数据库中全部物品、全部用户、所述全部用户中每个用户已购买的全部物品的对应关系及所述全部物品中每个物品被全部用户已购买的对应关系,建立所述数据库中所述全部物品所述全部用户的第一资源分布矩阵;

第一单向转移矩阵确定模块,用于对所述全部物品所述全部用户的所述第一资源分布矩阵,通过物质扩散算法,确定所述全部物品所述全部用户的第一正向转移矩阵,确定所述全部物品所述全部用户的第一反向转移矩阵;

第一双向转移矩阵确定模块,用于根据所述第一正向转移矩阵以及所述第一反向转移矩阵,确定所述全部物品所述全部用户的第一双向转移矩阵;

最优流行性惩罚参数确定模块,用于确定所述第一双向转移矩阵的最优流行性惩罚参数;

第二双向转移矩阵确定模块,用于利用所述最优流行性惩罚参数,对所述第一双向转移矩阵进行修正,确定修正后对应的、所述数据库中所述全部物品所述全部用户的第二双向转移矩阵;

第二资源分布矩阵确定模块,用于根据所述第一资源分布矩阵以及所述第二双向转移矩阵,确定所述全部物品所述全部用户的第二资源分布矩阵;

物品推荐模块,用于根据所述第二资源分布矩阵的所述全部物品所述全部用户的对应关系,给所述全部用户的每个用户推荐所述全部物品中对应的至少一个物品。

可选地,所述第一双向转移矩阵确定模块,包括:

第一矩阵确定子模块,用于将所述第一正向转移矩阵以及所述第一反向转移矩阵对应的元素相乘,得到第一矩阵;

第一双向转移矩阵确定子模块,用于将所述第一矩阵开平方得到第二矩阵,将所述第二矩阵确定为所述全部物品所述全部用户的所述第一双向转移矩阵。

可选地,所述第二双向转移矩阵确定模块,包括:

第一结果确定子模块,用于通过所述第一资源分布矩阵,计算所述全部物品中每个物品被全部用户已购买的所述全部用户数目,得到所述全部物品中每个物品的度函数,将所述每个物品的度函数作为第一结果;

第二结果确定子模块,用于将所述最优流行性惩罚参数作为所述第一结果的指数,得到以所述第一结果为底数、所述最优流行性惩罚参数为指数的幂函数,计算所述幂函数的倒数,得到第二结果;

第二双向转移矩阵确定子模块,用于将所述第二结果与所述第一双向转移矩阵相乘得到的矩阵,确定为修正后对应的、所述数据库中所述全部物品所述全部用户的所述第二双向转移矩阵。

可选地,所述物品推荐模块,包括:

概率值获取子模块,用于通过所述第二资源分布矩阵的所述全部物品所述全部用户的对应关系,获取所述全部用户中第一用户对应的全部物品的概率值;

第一用户物品推荐子模块,用于按照所述第一用户对应的所述全部物品的概率值从大到小的顺序,将所述全部物品中前N个所述第一用户未购买的物品推荐给所述第一用户,其中,所述N为等于或者大于1的自然数;

剩余用户物品推荐子模块,用于按照所述全部用户中除第一用户以外的剩余用户对应的所述全部物品的概率值从大到小的顺序,将所述全部物品中前N个、每个所述剩余用户未购买的物品推荐给所述全部用户中对应的每个所述剩余用户,其中,所述N为等于或者大于1的自然数。

本发明实施例公开的一种物品推荐方法及装置中,通过获取数据库中历史数据的全部物品全部用户的第一资源分布矩阵,得到第一正向转移矩阵以及第一反向转移矩阵,进而得到全部物品全部用户的第一双向转移矩阵,利用第一双向转移矩阵很好的解决了现有技术中只考虑正向相似性,导致为用户推荐的物品偏差的问题。通过第一双向转移矩阵,确定第一双向转移矩阵的最优流行性惩罚参数,比起需要计算多个流行性惩罚参数,简化了计算过程以及提高了计算效率。通过利用最优流行性惩罚参数对第一双向转移矩阵进行修正,得到第二双向转移矩阵,使第二双向转移矩阵对应得到的第二资源分布矩阵准确性更高,实现为用户推荐更趋近用户消费习惯的物品。另外,通过将第一正向转移矩阵以及第一反向转移矩阵的乘积开平方得到第一双向转移矩阵,减少了最终计算第二资源分布矩阵的计算量,提高了整个物品推荐方法的工作效率。需要说明的是,实施本发明的任一产品或方法必不一定需要同时到以上所述的所有优点。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例的一种物品推荐方法流程图;

图2为本发明实施例全部物品全部用户的第一双向转移矩阵实现方法流程图;

图3为本发明实施例的一种物品推荐装置图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

以下通过具体实施例,对本发明进行详细说明。

为达到上述发明目的,本发明实施例公开了一种物品推荐方法,如图1所示,图1为本发明实施例的一种物品推荐方法流程图,包括:

S101,获取数据库中全部物品、全部用户、全部用户中每个用户已购买的全部物品的对应关系及全部物品中每个物品被全部用户已购买的对应关系,建立数据库中全部物品全部用户的第一资源分布矩阵;

具体地,本发明实施例的一种物品推荐方法,在利用历史数据中全部用户以及全部用户已购买的全部物品的关联性为每个用户推荐物品。本发明实施例中将数据库中全部物品全部用户的初始资源分布作为第一资源分布,将第一资源分布对应形成的二维矩阵作为第一资源分布矩阵。具体为在该系统数据库中获取到全部用户以及全部用户已购买的全部物品,按照全部用户中每个用户已购买的全部物品的对应关系及全部物品中每个物品被全部用户已购买的对应关系,建立物品-用户二维矩阵,可以为每个物品分配相同的初始资源,最终得到该数据库中全部物品全部用户的初始资源分布矩阵,对应本发明实施例为数据库中全部物品全部用户的第一资源分布矩阵。

S102,对全部物品全部用户的第一资源分布矩阵,通过物质扩散算法,确定全部物品全部用户的第一正向转移矩阵,确定全部物品全部用户的第一反向转移矩阵;

具体地,从已选择物品到未选择物品称为正向转移矩阵,相应的从未选择物品到已选择物品成为反向转移矩阵。目前大多数物品推荐方法都是基于正向转移矩阵的得到的物品推荐方法。本发明实施例中,将数据库中全部物品全部用户的第一资源分布矩阵对应的全部物品全部用户的正向转移矩阵定义为第一正向转移矩阵,将数据库中全部物品全部用户的第一资源分布矩阵对应的全部物品全部用户的反向转移矩阵定义为第一反向转移矩阵。在上述得到全部物品全部用户的第一资源分布矩阵后,通过物质扩散算法,也就是从数据库的历史数据中用户已选择过的物品扩散到用户未选择过的物品,进而得到全部物品全部用户的正向转移矩阵,对应本发明实施例为全部物品全部用户的第一正向转移矩阵,在得到全部物品全部用户的第一正向转移矩阵后,将该第一正向转移矩阵转置即可得到全部物品全部用户的第一反向转移矩阵。

S103,根据第一正向转移矩阵以及第一反向转移矩阵,确定全部物品全部用户的第一双向转移矩阵;

具体地,本发明实施例中,将数据库中全部物品全部用户的第一资源分布矩阵对应的全部物品全部用户的第一正向转移矩阵、以及全部物品全部用户的第一反向转移矩阵确定的双向转移矩阵定义为全部物品全部用户的第一双向转移矩阵。在上述得到第一正向转移矩阵以及第一反向转移矩阵后,需要确定出第一双向转移矩阵。该第一双向转移矩阵可表明数据库中全部物品全部用户的物品分配状况,即表明每个物品被每个用户已购买、每个用户已购买的每个物品的物品流动状况。本发明实施例中可通过公式以及函数关系,将第一正向转移矩阵以及第一反向转移矩阵函数运算,得到全部物品全部用户的第一双向转移矩阵。

S104,确定第一双向转移矩阵的最优流行性惩罚参数;

具体地,流行性惩罚参数修正为用户推荐流行物品的参数。由于实际推荐应用环境复杂,涉及的应用场景和数据种类繁多,在不同情况下,物品流行性对于物质扩散的影响不同,这些对于一致性协作推荐的适应性和有效性影响较大,为了分析一致性推荐机理,并使其在实际推荐系统中具有良好的适应性,可通过实验数据以及历史经验分析预设设定一个流行性惩罚参数范围,在该流行性惩罚参数范围内,通过与上述确定好的第一双向转移矩阵函数运算以及最后得到的推荐物品与历史数据中实际推荐物品的准确性作比较,在该流行性惩罚参数范围内确定一个最优参数,将该最优参数定义为第一双向转移矩阵的最优流行性惩罚参数。该参数的选择决定着最终为用户推荐物品的准确性与实用性。

S105,利用最优流行性惩罚参数,对第一双向转移矩阵进行修正,确定修正后对应的、数据库中全部物品全部用户的第二双向转移矩阵;

具体地,在本发明实施例中,将经过正向转移矩阵、反向转移矩阵变换后得到的双向转移矩阵,将该双向转移矩阵利用最优流行性惩罚参数修正后得到的双向转移矩阵,定义为该数据库中全部物品全部用户的第二双向转移矩阵。该双向转移矩阵对应最终得到的资源分布矩阵。具体为在上述得到最优流行性惩罚参数后,通过将该最优流行性惩罚参数与第一双向转移矩阵函数运算得到第二双向转移矩阵。

S106,根据第一资源分布矩阵以及第二双向转移矩阵,确定全部物品全部用户的第二资源分布矩阵;

具体地,在上述得到第二双向转移矩阵后,通过上述全部物品全部用户的第一资源分布矩阵以及该全部物品全部用户的第二双向转移矩阵,得到全部物品全部用户的第二资源分布矩阵,该第二资源分布矩阵为最终分配给每个用户对应的每个物品的概率值,按照该资源分布矩阵中每个用户下每个物品的对应关系形成的资源分布矩阵。

S107,根据第二资源分布矩阵的全部物品全部用户的对应关系,给全部用户的每个用户推荐全部物品中对应的至少一个物品。

具体地,按照上述的资源分配矩阵中用户与物品的对应关系以及分配给每个用户对应的每个物品的概率值,为每个用户分配物品。

本发明实施例公开的一种物品推荐方法中,通过获取数据库中历史数据的全部物品全部用户的第一资源分布矩阵,得到第一正向转移矩阵以及第一反向转移矩阵,进而得到全部物品全部用户的第一双向转移矩阵,利用第一双向转移矩阵很好的解决了现有技术中只考虑正向相似性,导致为用户推荐的物品偏差的问题。通过第一双向转移矩阵,确定第一双向转移矩阵的最优流行性惩罚参数,比起需要计算多个流行性惩罚参数,简化了计算过程以及提高了计算效率。通过利用最优流行性惩罚参数对第一双向转移矩阵进行修正,得到第二双向转移矩阵,使第二双向转移矩阵对应得到的第二资源分布矩阵准确性更高,实现为用户推荐更趋近用户消费习惯的物品。

可选地,在本发明实施例的一种物品推荐方法的一种实施例中,根据第一正向转移矩阵以及第一反向转移矩阵,确定全部物品全部用户的第一双向转移矩阵,包括:

步骤一,将第一正向转移矩阵以及第一反向转移矩阵对应的元素相乘,得到第一矩阵;

具体地,在得到全部物品全部用户的第一资源分布矩阵后,利用物质扩散算法得到该第一资源分布矩阵的第一正向转移矩阵以及第一反向转移矩阵,将该第一正向转移矩阵以及第一反向转移矩阵对应位置的元素相乘,得到一个相乘后的矩阵,将该矩阵定义为第一矩阵,该第一矩阵为得到该第一双向转移矩阵的中间过渡矩阵。

步骤二,将第一矩阵开平方得到第二矩阵,将第二矩阵确定为全部物品全部用户的第一双向转移矩阵。

具体地,在上述将第一正向转移矩阵以及第一反向转移矩阵对应位置的元素相乘得到的第一矩阵,开平方运算得到第二矩阵,将该第二矩阵定义为全部物品全部用户的第一双向转移矩阵。该第一双向转移矩阵为第一资源分布矩阵对应的双向转移矩阵。

可见,本发明实施例通过利用正向转移矩阵与反向转移矩阵相乘并将该矩阵开平方得到的矩阵定义为双向转移矩阵,比起现有技术中其他计算方法,本发明实施例的这种双向转移矩阵的计算方式更加准确、方便,减少计算量。

在本发明实施例中,通过物质扩散算法,确定全部物品全部用户的第一资源分布矩阵对应的第一正向转移矩阵,可按照如下方式:

在历史数据中为已购买过物品oj的每个用户分配初始资源1。在历史数据库中查找已购买过物品oj的用户上,将该物品oj资源平均分配,如果在该历史数据中有l个用户已购买物品oj,则该l个用户中每个用户得到的物品oj的资源为k(oj)为已购买物品oj的人数,在本发明实施例中,将k(oj)定义为物品的度函数。alj为第一资源分布矩阵里的元素,如果用户ul已购买物品oj,则alj=1,否则alj=0;

在历史数据库中查找用户ul已购买过的全部物品,将该用户ul的资源平均分配给每个物品,则每个物品获得的资源为k(ul)为用户ul已购买的物品数目,在本发明实施例中,将k(ul)定义为用户的度函数。

计算历史数据中全部用户的资源分配情况,则通过物质扩散算法得到全部物品全部用户第一资源分布矩阵对应的第一正向转移矩阵为:

其中,wij为第一正向转移矩阵的i行j列的元素,即为第i个物品和第j个物品的相似度,ali为第一资源分布矩阵中的l行i列的元素,alj为第一资源分布矩阵中的l行j列的元素,m为第一资源分布矩阵中用户的个数。

在得到全部物品全部用户的第一资源分布矩阵对应的第一正向初始转移矩阵后,将第一正向初始转移矩阵转置运算,并进行归一化即得到全部物品全部用户的第一资源分布矩阵对应的第一反向转移矩阵。

具体地,全部物品全部用户的第一资源分布矩阵对应的第一反向转移矩阵为:

其中,w'ij为第一反向转移矩阵的i行j列的元素,即为第i个用户已购买第j个物品的概率值,wji为第一反向转移矩阵w'ij转置之前对应的第一正向转移矩阵,为归一化因子,用来保证双向物质扩散能力处于同一量纲下。

将第一正向转移矩阵以及第一反向转移矩阵对应的元素相乘,得到第一矩阵,将第一矩阵开平方得到第二矩阵,将第二矩阵确定为全部物品全部用户的第一双向转移矩阵。则全部物品全部用户的第一双向转移矩阵为:

在本发明实施例的一种物品推荐方法的一种实施例中,全部物品全部用户的第一双向转移矩阵实现方法可如图2所示。图2为本发明实施例全部物品全部用户的第一双向转移矩阵实现方法流程图。

步骤一,建立数据库中全部物品全部用户的第一资源分布矩阵。

历史数据中的全部用户可表示为U1,U2,U3,U4,U5。该全部用户U1,U2,U3,U4,U5已购买的全部物品可表示为O1,O2,O3。为物品O1分配初始资源x,为物品O2分配初始资源y,为物品O3分配初始资源z。

步骤二,通过物质扩散算法,确定数据库中全部物品全部用户的第一资源分布矩阵对应的第一正向转移矩阵。

以用户得到的所有物品资源的角度,将该物品资源平均分配,则用户U1分得的物品资源为用户U2分得的物品资源为用户U3分得的物品资源为用户U3分得的物品资源为用户U5分得的物品资源为

以物品被用户已购买的角度,将该每个用户的资源平均分配给自己买过的物品,则物品O1的资源为物品O2的资源为物品O3的资源为

通过全部物品全部用户第一资源分布矩阵对应的第一正向转移矩阵公式求得第一正向转移矩阵为:

步骤三,确定数据库中全部物品全部用户的第一资源分布矩阵对应的第一反向转移矩阵。

通过第一反向转移矩阵公式求得第一反向转移矩阵为:

步骤四,通过第一正向转移矩阵以及第一反向转移矩阵,确定数据库中全部物品全部用户的第一资源分布矩阵对应的第一双向转移矩阵。

通过全部物品全部用户的第一双向转移矩阵计算公式求得第一双向转移矩阵为:

可选地,在本发明实施例的一种物品推荐方法的一种实施例中,确定第一双向转移矩阵的最优流行性惩罚参数,包括:

步骤一,通过全部物品全部用户的第一资源分布矩阵,将第一资源分布矩阵划分成两个矩阵,对应形成资源分布第一子矩阵和资源分布第二子矩阵,其中,资源分布第一子矩阵中有至少一个物品以及至少一个物品对应的至少一个用户,资源分布第二子矩阵中有至少一个物品以及至少一个物品对应的至少一个用户;

具体地,在数据库的历史数据中选取一小部分历史数据的用户与该一小部分用户已购买的全部物品,通过该部分用户以及该部分用户购买的全部物品的对应关系建立资源分布矩阵,在本发明实施例中将该部分用户以及该部分用户已购买的全部物品的对应关系、建立的该部分用户以及该部分用户对应购买的全部物品的资源分布矩阵的资源分布矩阵称为资源分布第一子矩阵。将历史数据中剩余的用户以及该剩余用户的全部物品的对应关系建立的资源分布矩阵称为资源分布第二子矩阵。资源分布第二子矩阵的元素少于资源分布第一子矩阵的元素。将资源分布第一子矩阵作为寻找最优流行性惩罚参数的样本矩阵,将资源分布第二子矩阵作为对应参照矩阵。

需要说明的是,资源分布第二子矩阵的元素必不一定少于资源分布第一子矩阵的元素,将资源分布第二子矩阵作为寻找最优流行性惩罚参数的样本矩阵,将资源分布第一子矩阵作为对应参照矩阵,也是可取的,实现的方法与思想是相同的,都属于本发明实施例的保护范围。

步骤二,通过资源分布第一子矩阵,确定资源分布第一子矩阵对应的第一正向转移矩阵以及第一资源分布矩阵对应的第一反向转移矩阵;

具体地,在上述得到资源分布第一子矩阵后,通过物质扩散方法,将从已购买物品到未购买物品的物品分配方式作为正向转移矩阵,即将第一资源分布矩阵从已购买物品到未购买物品的物品分配方式作为资源分布第一子矩阵对应的第一正向转移矩阵,在得到第一正向转移矩阵将该矩阵转置运算即可得到资源分布第一子矩阵对应的第一反向转移矩阵。

步骤三,通过资源分布第一子矩阵对应的第一正向转移矩阵以及资源分布第一子矩阵对应的第一反向转移矩阵,确定资源分布第一子矩阵对应的第一双向转移矩阵;

具体地,在上述得到资源分布第一子矩阵对应的第一正向转移矩阵以及资源分布第一子矩阵对应的第一反向转移矩阵后,通过函数运算得到资源分布第一子矩阵对应的第一双向转移矩阵,该资源分布第一子矩阵对应的第一双向转移矩阵为得到资源分布第一子矩阵对应的第二双向转移矩阵的过渡矩阵。

步骤四,在预设的流行性惩罚参数集合中选取第一流行性惩罚参数,通过资源分布第一子矩阵、第一流行性惩罚参数以及资源分布第一子矩阵对应的第一双向转移矩阵,确定第一流行性惩罚参数条件下的当前资源分布矩阵;

具体地,通过历史数据的经验分析以及实验数据分析,预先给定一个惩罚推荐物品趋于流行性的参数范围,将该参数范围定义为流行性惩罚参数集合。在该流行性惩罚参数集合中,可给定一个遍历该流行性惩罚参数集合的长度值。具体做法为,从该流行性惩罚参数集合中选取第一个流行性惩罚参数,将该流行性惩罚参数定义为第一流行性惩罚参数。将该第一流行性惩罚参数与资源分布第一子矩阵对应的第一双向转移矩阵函数运算,得到资源分布第一子矩阵对应的第二双向转移矩阵函数运算,该资源分布第一子矩阵对应的第二双向转移矩阵对应该第一流行性惩罚参数下的资源分布矩阵,将该第一流行性惩罚参数下的资源分布矩阵定义为当前资源分布矩阵。

可在预设的流行性惩罚参数集合中选择第一流行性惩罚参数α,将该第一流行性惩罚参数α与资源分布第一子矩阵对应的第一双向转移矩阵函数运算,得到资源分布第一子矩阵对应的第二双向转移矩阵。通过第二双向转移矩阵以及第一初始资源分布矩阵,计算出选择的第一流行性惩罚参数α条件下的当前资源分布矩阵。

步骤五,通过流行性惩罚参数集合、资源分布第一子矩阵、资源分布第一子矩阵对应的第一双向转移矩阵,确定流行性惩罚参数集合中除第一流行性惩罚参数外剩余的流行性惩罚参数条件下、至少一个当前资源分布矩阵;

具体地,按照上述给定的流行性惩罚参数集合以及给定的遍历该流行性惩罚参数集合的长度值,依次选取该流行性惩罚参数集合中的流行性惩罚参数,按照上述方式计算出每个流行性惩罚参数条件下的当前资源分布矩阵。最终计算出该流行性惩罚参数集合中所有流行性惩罚参数对应的当前资源分布矩阵。

在实施过程中,可按照给定的遍历该流行性惩罚参数集合的长度值0.01流行性惩罚程度α赋值,对流行性惩罚参数集合0~1遍历搜索,第1次α=0,第2次α=0.01,第三次α=0.02,就这么循环下去,到第100次α=1,每次计算出选择的流行性惩罚程度α对应的当前资源分布矩阵和推荐的结果。

步骤六,通过资源分布第二子矩阵,在全部当前资源分布矩阵中确定最优当前资源分布矩阵;

具体地,通过将上述得到的所有当前资源分布矩阵与第一资源分布矩阵中的资源分布第二子矩阵作比较,比较所有当前资源分布矩阵中哪个物品以及用户的分配对应方式以及概率值最接近第一资源分布矩阵中的资源分布第二子矩阵,将最接近的当前资源分布矩阵定义为最优当前资源分布矩阵。

步骤七,将最优当前资源分布矩阵对应的流行性惩罚参数,确定为第一双向转移矩阵的最优流行性惩罚参数。

具体地,在上述得到最优当前资源分布矩阵后,可知最优当前资源分布矩阵的流行性惩罚参数,将该流行性惩罚参数定义为第一双向转移矩阵的最优流行性惩罚参数。

在实施过程中,将该最优当前资源分布矩阵对应的流行性惩罚程度α确定为该历史数据库中全部用户全部物品的第一双向转移矩阵对应的最优流行性惩罚参数。

可见,通过本发明实施例可确定出第一双向转移矩阵的修正参数,且确定第一双向转移矩阵的修正参数比起现有技术确定多个修正参数的方法,本发明实施例的确定一个参数,计算量小,计算方法更加简便。通过确定出第一双向转移矩阵的修正参数,可实现最后得到更加精确的双向转移矩阵,更符合为用户推荐的物品的准确性。

可选地,在本发明实施例的一种物品推荐方法的一种实施例中,利用最优流行性惩罚参数,对第一双向转移矩阵进行修正,确定修正后对应的、数据库中全部物品全部用户的第二双向转移矩阵,包括:

步骤一,通过第一资源分布矩阵,计算全部物品中每个物品被全部用户已购买的全部用户数目,得到全部物品中每个物品的度函数,将每个物品的度函数作为第一结果;

具体地,在本发明实施过程中,如果在该历史数据中有l个用户已购买物品oj,则k(oj)为已购买物品oj的人数,将k(oj)定义为物品oj的度函数,将k(oj)作为物品oj度函数的第一结果,按照此方式计算出该历史数据全部物品的度函数。

步骤二,将最优流行性惩罚参数作为第一结果的指数,得到以第一结果为底数、最优流行性惩罚参数为指数的幂函数,计算幂函数的倒数,得到第二结果;

具体地,在本发明实施过程中,将最优流行性惩罚参数α作为第一结果k(oj)的指数,得到以第一结果k(oj)为底数、最优流行性惩罚参数α为指数的幂函数k(oj)α。计算该幂函数k(oj)α的倒数,得到第二结果

步骤三,将第二结果与第一双向转移矩阵相乘得到的矩阵,确定为修正后对应的、数据库中全部物品全部用户的第二双向转移矩阵。

具体地,将第二结果与第一双向转移矩阵相乘得到的矩阵,定义为本发明实施例的修正后对应的、数据库中全部物品全部用户的第二双向转移矩阵。该第二双向转移矩阵具体可为:

其中,为第二双向转移矩阵的第i行第j列对应的元素,α为最优流行性惩罚参数,wij为第一正向转移矩阵的i行j列的元素,w'ij为第一反向转移矩阵的i行j列的元素。

可见,通过利用最优流行性惩罚参数,对第一双向转移矩阵进行修正,得到数据库中全部物品全部用户的第二双向转移矩阵,通过该第二双向转移矩阵得到的最终资源分布矩阵可实现为用户推荐的物品更加准确。

可选地,在本发明实施例的一种物品推荐方法的一种实施例中,根据第二资源分布矩阵的全部物品全部用户的对应关系,将全部物品中至少一个物品推荐给全部用户中对应的每个用户,包括:

通过第二资源分布矩阵的全部物品全部用户的对应关系,获取全部用户中第一用户对应的全部物品的概率值;

具体地,在本发明实施例中,在第二资源分布矩阵中选取一个用户,将该用户定义为第一用户。在得到全部物品全部用户的第二资源分布矩阵后,可通过该第二资源分布矩阵得到全部物品全部用户的对应关系。在第二资源分布矩阵获取到分配给第一用户的全部物品以及全部物品的概率值。

按照第一用户对应的全部物品的概率值从大到小的顺序,将全部物品中前N个第一用户未购买的物品推荐给第一用户,其中,N为等于或者大于1的自然数;

具体地,在上述获得到第二资源分布矩阵的第一用户的全部物品以及全部物品的概率值后,可按照第一用户对应的全部物品的概率值从大到小的顺序,将该第一用户的全部物品排序,将该全部物品中前N个第一用户未购买的物品推荐给该第一用户,N具体的大小值可由系统开发者自行设定。

按照全部用户中除第一用户以外的剩余用户对应的全部物品的概率值从大到小的顺序,将全部物品中前N个、每个剩余用户未购买的物品推荐给全部用户中对应的每个剩余用户,其中,N为等于或者大于1的自然数。

具体地,按照给第二资源分布矩阵的第一用户推荐物品的方式,为第二资源分布矩阵中全部用户除第一用户以外的剩余用户推荐物品。

可见,通过本发明实施例,可实现按照物品的概率值从大到小的顺序,将全部用户下的全部物品的前N个、每个剩余用户未购买的物品推荐给每个用户,实现为用户智能推荐概率的物品,以及为用户推荐的物品更加多样性。

可选地,在本发明实施例的一种物品推荐方法的一种实施例中,在通过第二资源分布矩阵的全部物品全部用户的对应关系,获取全部用户中第一用户对应的全部物品的概率值之后,方法还包括:

按照第一用户对应的全部物品的概率值从小到大的顺序,将全部物品中后N个第一用户未购买的物品推荐给第一用户,其中,N为等于或者大于1的自然数;

具体地,在本发明实施例中,在第二资源分布矩阵中选取一个用户,将该用户定义为第一用户。在得到全部物品全部用户的第二资源分布矩阵后,具体在为全部用户中第一用户推荐物品时,可获取该第一用户下的所有物品的概率值,将该第一用户下所有物品的概率值按照从小到大的方式排序,将所有第一用户下所有排序好的物品的后N个第一用户未购买的物品推荐给该第一用户。

按照全部用户中除第一用户以外的剩余用户对应的全部物品的概率值从小到大的顺序,将全部物品中后N个、每个剩余用户未购买的物品推荐给全部用户中对应的每个剩余用户,其中,N为等于或者大于1的自然数。

具体地,按照给第二资源分布矩阵的第一用户推荐物品的方式,为第二资源分布矩阵中全部用户除第一用户以外的剩余用户推荐物品。

可见,通过本发明实施例,可实现按照物品的概率值从大到小的顺序,将全部用户下的全部物品的后N个、每个剩余用户未购买的物品推荐给每个用户,实现为用户推荐的物品更加多样以及更加准确。

为达到上述发明目的,本发明实施例还公开了一种物品推荐装置,如图3所示,图3为本发明实施例的一种物品推荐装置图,包括:

第一资源分布矩阵确定模块301,用于获取数据库中全部物品、全部用户、全部用户中每个用户已购买的全部物品的对应关系及全部物品中每个物品被全部用户已购买的对应关系,建立数据库中全部物品全部用户的第一资源分布矩阵;

第一单向转移矩阵确定模块302,用于对全部物品全部用户的第一资源分布矩阵,通过物质扩散算法,确定全部物品全部用户的第一正向转移矩阵,确定全部物品全部用户的第一反向转移矩阵;

第一双向转移矩阵确定模块303,用于根据第一正向转移矩阵以及第一反向转移矩阵,确定全部物品全部用户的第一双向转移矩阵;

最优流行性惩罚参数确定模块304,用于确定第一双向转移矩阵的最优流行性惩罚参数;

第二双向转移矩阵确定模块305,用于利用最优流行性惩罚参数,对第一双向转移矩阵进行修正,确定修正后对应的、数据库中全部物品全部用户的第二双向转移矩阵;

第二资源分布矩阵确定模块306,用于根据第一资源分布矩阵以及第二双向转移矩阵,确定全部物品全部用户的第二资源分布矩阵;

物品推荐模块307,用于根据第二资源分布矩阵的全部物品全部用户的对应关系,给全部用户的每个用户推荐全部物品中对应的至少一个物品。

本发明实施例公开的一种物品推荐装置中,通过获取数据库中历史数据的全部物品全部用户的第一资源分布矩阵,得到第一正向转移矩阵以及第一反向转移矩阵,进而得到全部物品全部用户的第一双向转移矩阵,利用第一双向转移矩阵很好的解决了现有技术中只考虑正向相似性,导致为用户推荐的物品偏差的问题。通过第一双向转移矩阵,确定第一双向转移矩阵的最优流行性惩罚参数,比起需要计算多个流行性惩罚参数,简化了计算过程以及提高了计算效率。通过利用最优流行性惩罚参数对第一双向转移矩阵进行修正,得到第二双向转移矩阵,使第二双向转移矩阵对应得到的第二资源分布矩阵准确性更高,实现为用户推荐更趋近用户消费习惯的物品。

需要说明的是,本发明实施例的装置是应用上述物品推荐方法的装置,则上述物品推荐方法的所有实施例均适用于该装置,且均能达到相同或相似的有益效果。

可选地,在本发明实施例的一种物品推荐装置的一种实施例中,第一双向转移矩阵确定模块303,包括:

第一矩阵确定子模块,用于将第一正向转移矩阵以及第一反向转移矩阵对应的元素相乘,得到第一矩阵;

第一双向转移矩阵确定子模块,用于将第一矩阵开平方得到第二矩阵,将第二矩阵确定为全部物品全部用户的第一双向转移矩阵。

可选地,在本发明实施例的一种物品推荐装置的一种实施例中,最优流行性惩罚参数确定模块304,包括:

矩阵划分子模块,用于通过全部物品全部用户的第一资源分布矩阵,将第一资源分布矩阵划分成两个矩阵,对应形成资源分布第一子矩阵和资源分布第二子矩阵,其中,资源分布第一子矩阵中有至少一个物品以及至少一个物品对应的至少一个用户,资源分布第二子矩阵中有至少一个物品以及至少一个物品对应的至少一个用户;

单向转移矩阵确定子模块,用于转移矩阵通过资源分布第一子矩阵,确定资源分布第一子矩阵对应的第一正向转移矩阵以及第一资源分布矩阵对应的第一反向转移矩阵;

第一双向转移矩阵确定子模块,用于通过资源分布第一子矩阵对应的第一正向转移矩阵以及资源分布第一子矩阵对应的第一反向转移矩阵,确定资源分布第一子矩阵对应的第一双向转移矩阵;

当前资源分布矩阵确定子模块,用于在预设的流行性惩罚参数集合中选取第一流行性惩罚参数,通过资源分布第一子矩阵、第一流行性惩罚参数以及资源分布第一子矩阵对应的第一双向转移矩阵,确定第一流行性惩罚参数条件下的当前资源分布矩阵;

全部资源分布矩阵确定子模块,用于通过流行性惩罚参数集合、资源分布第一子矩阵、资源分布第一子矩阵对应的第一双向转移矩阵,确定流行性惩罚参数集合中除第一流行性惩罚参数外剩余的流行性惩罚参数条件下、至少一个当前资源分布矩阵;

最优当前资源分布矩阵确定子模块,用于通过资源分布第二子矩阵,在全部当前资源分布矩阵中确定最优当前资源分布矩阵;

最优流行性惩罚参数确定子模块,用于将最优当前资源分布矩阵对应的流行性惩罚参数,确定为第一双向转移矩阵的最优流行性惩罚参数。

可选地,在本发明实施例的一种物品推荐装置的一种实施例中,第二双向转移矩阵确定模块305,包括:

第一结果确定子模块,用于通过第一资源分布矩阵,计算全部物品中每个物品被全部用户已购买的全部用户数目,得到全部物品中每个物品的度函数,将每个物品的度函数作为第一结果;

第二结果确定子模块,用于将最优流行性惩罚参数作为第一结果的指数,得到以第一结果为底数、最优流行性惩罚参数为指数的幂函数,计算幂函数的倒数,得到第二结果;

第二双向转移矩阵确定子模块,用于将第二结果与第一双向转移矩阵相乘得到的矩阵,确定为修正后对应的、数据库中全部物品全部用户的第二双向转移矩阵。

可选地,在本发明实施例的一种物品推荐装置的一种实施例中,物品推荐模块307,包括:

概率值获取子模块,用于通过第二资源分布矩阵的全部物品全部用户的对应关系,获取全部用户中第一用户对应的全部物品的概率值;

第一用户物品推荐子模块,用于按照第一用户对应的全部物品的概率值从大到小的顺序,将全部物品中前N个第一用户未购买的物品推荐给第一用户,其中,N为等于或者大于1的自然数;

剩余用户物品推荐子模块,用于按照全部用户中除第一用户以外的剩余用户对应的全部物品的概率值从大到小的顺序,将全部物品中前N个、每个剩余用户未购买的物品推荐给全部用户中对应的每个剩余用户,其中,N为等于或者大于1的自然数。

可选地,在本发明实施例的一种物品推荐装置的一种实施例中,物品推荐模块307,还用于,按照第一用户对应的全部物品的概率值从小到大的顺序,将全部物品中后N个第一用户未购买的物品推荐给第一用户,其中,N为等于或者大于1的自然数;按照全部用户中除第一用户以外的剩余用户对应的全部物品的概率值从小到大的顺序,将全部物品中后N个、每个剩余用户未购买的物品推荐给全部用户中对应的每个剩余用户,其中,N为等于或者大于1的自然数。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

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