掌桥专利:专业的专利平台
掌桥专利
首页

产品推荐方法、装置、介质及电子设备

文献发布时间:2023-06-19 13:49:36


产品推荐方法、装置、介质及电子设备

技术领域

本公开涉及人工智能技术领域,特别涉及一种产品推荐方法、装置、介质及电子设备。

背景技术

目前,对于产品推荐,相关技术中更多的是以业务规则集的形式针对不同的场景、客户群体进行推荐,规则集的挖掘及规则的交叉组合都是比较有限的,靠业务经验及简单的统计分析来衍生,导致很难构建完整性及覆盖性高的规则集,只能是通过人工方式不断新增或调整来弥补。因此,传统的基于业务规则集进行产品推荐的方案存在推荐准确性差且效率低的缺陷。而且,基于业务规则集进行产品推荐时,可能为不同的客户推荐完全相同的产品,这样就导致了推荐的特异性较差。

发明内容

在人工智能和产品推荐技术领域,为了解决上述技术问题,本公开的目的在于提供一种产品推荐方法、装置、介质及电子设备。

根据本公开的一方面,提供了一种产品推荐方法,所述方法包括:

根据UserCF算法从产品库中确定出向目标用户推荐的产品,得到包括多个第一产品的第一产品列表,所述产品库包括多个产品以及与各产品对应的产品相关数据;

根据ItemCF算法从所述产品库中确定出向所述目标用户推荐的产品,得到包括多个第二产品的第二产品列表;

根据所述第一产品列表中的第一产品和所述第二产品列表中的第二产品,确定候选推荐产品;

对所述产品库中的产品相关数据进行特征值提取,获取得到与至少一个产品相关特征对应的产品相关特征值,所述产品相关特征包括产品基本信息特征和产品被购买行为特征;

获取所述目标用户的与至少一个用户相关特征对应的用户相关特征值,所述用户相关特征包括用户购买行为特征和用户基本信息特征;

将所述产品相关特征值和所述用户相关特征值输入至预设分类预测模型中,以从所述候选推荐产品中确定出推荐产品,并将所述推荐产品向所述目标用户推荐。

根据本公开的另一方面,提供了一种产品推荐装置,所述装置包括:

第一推荐模块,被配置为根据UserCF算法从产品库中确定出向目标用户推荐的产品,得到包括多个第一产品的第一产品列表,所述产品库包括多个产品以及与各产品对应的产品相关数据;

第二推荐模块,被配置为根据ItemCF算法从产品库中确定出向所述目标用户推荐的产品,得到包括多个第二产品的第二产品列表;

确定模块,被配置为根据所述第一产品列表中的第一产品和所述第二产品列表中的第二产品,确定候选推荐产品;

第一获取模块,被配置为对所述产品库中的产品相关数据进行特征值提取,获取得到与至少一个产品相关特征对应的产品相关特征值,所述产品相关特征包括产品基本信息特征和产品被购买行为特征;

第二获取模块,被配置为获取所述目标用户的与至少一个用户相关特征对应的用户相关特征值,所述用户相关特征包括用户购买行为特征和用户基本信息特征;

最终推荐模块,被配置为将所述产品相关特征值和所述用户相关特征值输入至预设分类预测模型中,以从所述候选推荐产品中确定出推荐产品,并将所述推荐产品向所述目标用户推荐。根据本公开的另一方面,提供了一种计算机可读程序介质,其存储有计算机程序指令,当所述计算机程序指令被计算机执行时,使计算机执行如前所述的方法。

根据本公开的另一方面,提供了一种电子设备,所述电子设备包括:

处理器;

存储器,所述存储器上存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,实现如前所述的方法。

本公开的实施例提供的技术方案可以包括以下有益效果:

对于本公开所提供的产品推荐方法、装置、介质及电子设备,该方法包括如下步骤:根据UserCF算法从产品库中确定出向目标用户推荐的产品,得到包括多个第一产品的第一产品列表,所述产品库包括多个产品以及与各产品对应的产品相关数据;根据ItemCF算法从所述产品库中确定出向所述目标用户推荐的产品,得到包括多个第二产品的第二产品列表;根据所述第一产品列表中的第一产品和所述第二产品列表中的第二产品,确定候选推荐产品;对所述产品库中的产品相关数据进行特征值提取,获取得到与至少一个产品相关特征对应的产品相关特征值,所述产品相关特征包括产品基本信息特征和产品被购买行为特征;获取所述目标用户的与至少一个用户相关特征对应的用户相关特征值,所述用户相关特征包括用户购买行为特征和用户基本信息特征;将所述产品相关特征值和所述用户相关特征值输入至预设分类预测模型中,以从所述候选推荐产品中确定出推荐产品,并将所述推荐产品向所述目标用户推荐。

此方法下,通过先利用两个预设推荐算法对目标用户进行产品推荐,然后再利用预设分类预测模型进行产品推荐,而预设分类预测模型所推荐的产品是从两个预设推荐算法的推荐结果中选出的,而且预设分类预测模型是根据产品相关特征值和用户相关特征值进行产品推荐的,从而实现了千人千面的推荐效果,也就是说可以为不同用户推荐不同的产品,并且还能够提高推荐的精准率和召回率。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本发明。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。

图1是根据一示例性实施例示出的一种产品推荐方法的系统架构示意图;

图2是根据一示例性实施例示出的一种产品推荐方法的流程图;

图3是根据一示例性实施例示出的图2中步骤230的细节的流程图;

图4A是根据一示例性实施例示出的第一样本集的划分方式示意图;

图4B是根据一示例性实施例示出的第二样本集的划分方式示意图;

图5是根据一示例性实施例示出的一种产品推荐装置的框图;

图6是根据一示例性实施例示出的一种实现上述产品推荐方法的电子设备示例框图;

图7是根据一示例性实施例示出的一种实现上述产品推荐方法的程序产品。

具体实施方式

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

此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。

本公开首先提供了一种产品推荐方法。产品推荐是确定用户所需且可能购买的产品,然后将该产品向用户推荐的过程。此处的产品可以是各种产品,可以是保险、理财等虚拟产品,可以是家用电器、智能手机等实物产品,还可以是医疗等服务类产品。本公开提供的产品推荐方法能够实现千人千面的推荐,即向用户推荐的产品是因人而异的,而且能够提交推荐的精准性,即与传统的推荐方式相比,基于本公开提供的产品推荐方法推荐的产品更可能是用户所需要的产品,因此也就提高了用户购买向其推荐的产品的可能性。

本公开提供的产品推荐方法可以应用于各种产品营销和推广领域中。

本公开的实施终端可以是任何具有运算、处理以及通信功能的设备,该设备可以与外部设备相连,用于接收或者发送数据,具体可以是便携移动设备,例如智能手机、平板电脑、笔记本电脑、PDA(Personal Digital Assistant)等,也可以是固定式设备,例如,计算机设备、现场终端、台式电脑、服务器、工作站等,还可以是多个设备的集合,比如云计算的物理基础设施或者服务器集群。

可选地,本公开的实施终端可以为服务器或者云计算的物理基础设施。

图1是根据一示例性实施例示出的一种产品推荐方法的系统架构示意图。如图1所示,该系统架构包括个人计算机110、服务器120和数据库130,个人计算机110和服务器120之间、服务器120和数据库130之间均通过通信链路相连,可以用于发送或接收数据。服务器120为本实施例中的实施终端,其上部署有产品购买平台和预设分类预测模型,此处的产品购买平台可以电商平台,还可以是其他各种能够购买产品的平台,产品购买平台上包括多个可以购买的商品,用户可以在产品购买平台上进行商品浏览,还可以对产品进行收藏、加入购物车、购买等操作。产品购买平台的各种数据存储在数据库130中,个人计算机110上部署有产品购买平台对应的客户端。当本公开提供的一种产品推荐方法应用于图1所示的系统架构中时,该方法执行的整个过程可以在目标用户登录产品购买平台时执行,该过程可以是这样的:首先,服务器120通过从数据库130中获取数据,然后基于这些数据并利用第一预设推荐算法确定出要推荐的第一产品,以及基于这些数据并利用第二预设推荐算法确定出要推荐的第二产品;然后,服务器120根据这些第一产品和第二产品,确定出候选推荐产品;接下来,服务器120从获取到的数据中提取出产品相关特征对应的产品相关特征值以及与用户相关特征对应的用户相关特征值,这里的用户相关特征值是属于目标用户的;最后,服务器120将产品相关特征值和用户相关特征值输入至部署的预设分类预测模型中,预设分类预测模型能够输出最终要推荐的产品,这样,当目标用户登录产品购买平台之后,产品购买平台可以通过在平台首页等位置展示该最终要推荐的产品,以此实现产品推荐。

值得一提的是,图1仅为本公开的一个实施例。虽然在本实施例中产品购买平台的所有数据都存储在一个数据库上,但在其他实施例中,产品购买平台的数据可以分散存储于多个数据库上;虽然在本实施例中,实施终端上部署的是产品购买平台,但在本申请的其他实施例中,实施终端上可以仅部署产品推荐模块,产品购买平台可以部署在能够与实施终端相交互的其他终端上;虽然本实施例中的实施终端为服务器,但在其他实施例中,实施终端可以为台式计算机等各种设备。本公开对此不作任何限定,本公开的保护范围也不应因此而受到任何限制。

图2是根据一示例性实施例示出的一种产品推荐方法的流程图。本实施例提供的产品推荐方法可以由服务器执行,如图2所示,包括以下步骤:

步骤210,根据UserCF算法从产品库中确定出向目标用户推荐的产品,得到包括多个第一产品的第一产品列表。

所述产品库包括多个产品以及与各产品对应的产品相关数据。

本公开实施例中的所有数据(包括产品库中的数据),均可以从一个产品购买平台上获取。

如前所述,此处的产品可是各种类型的产品,既可以是家用电器、服装衣帽等实物产品,还可以是保险、理财等虚拟的产品。第一产品是基于UserCF算法向目标用户推荐的产品。

UserCF算法是基于用户的协同过滤算法(User-based CollaborativeFiltering),其简称还可以为UCF,UserCF算法向用户推荐和他兴趣相似的其他用户喜欢的物品。UserCF算法可以通过根据客户购买产品的记录信息构建客户购买产品相似度矩阵进行推荐。

步骤220,根据ItemCF算法从所述产品库中确定出向所述目标用户推荐的产品,得到包括多个第二产品的第二产品列表。

ItemCF算法是基于物品的协同过滤算法(Item-based CollaborativeFiltering),其简称还可以为ICF,ItemCF算法向用户推荐和他之前喜欢的物品相似的物品。ItemCF算法也可以根据客户购买产品的记录信息通过构建产品相似度矩阵进行产品推荐。

第二产品列表中的第二产品与第一产品列表中的第一产品相比,可以相同,也可以不同。

步骤230,根据所述第一产品列表中的第一产品和所述第二产品列表中的第二产品,确定候选推荐产品。

在一个实施例中,所述根据所述第一产品列表中的第一产品和所述第二产品列表中的第二产品,确定候选推荐产品,包括:

将所述第一产品列表中的第一产品和所述第二产品列表中的第二产品的并集,作为候选推荐产品。

在一个实施例中,所述将所述第一产品列表中的第一产品和所述第二产品列表中的第二产品的并集,作为候选推荐产品,包括:获取所述第一产品列表中的第一产品,得到第一产品集合;针对所述第二产品列表中的每一第二产品,若所述第一产品集合中不存在与所述第二产品一致的第一产品,则将所述第二产品加入至所述第一产品集合中;当所述第二产品列表中的所有不与第一产品一致的第二产品均加入至了所述第一产品集合中,将添加了所述第二产品的所述第一产品集合中的所有产品作为候选推荐产品。

也就是说,候选推荐产品是第一产品或者第二产品。在本申请实施例中,通过将第一产品列表中的第一产品和第二产品列表中的第二产品的并集,作为候选推荐产品,保证了候选推荐产品的数量。

图3是根据一示例性实施例示出的图2中步骤230的细节的流程图。如图3所示,步骤230可以包括以下步骤:

步骤230',将第一产品列表中的第一产品和第二产品列表中的第二产品的交集,作为候选推荐产品。

也就是说,选出的候选推荐产品既是第一产品列表中的第一产品,也是第二产品列表中的第二产品。在本申请实施例中,通过将第一产品列表中的第一产品和第二产品列表中的第二产品的并集,作为候选推荐产品,换而言之,候选推荐产品是由第一预设推荐算法和第二预设推荐算法共同进行推荐的,因而,保证了候选推荐产品的更可能与用户相匹配,进而提高了选出的最终向目标用户推荐的产品的准确性。

在一个实施例中,在将第一产品列表中的第一产品和第二产品列表中的第二产品的交集,作为候选推荐产品之后,所述方法还包括:确定已选择出的候选推荐产品的数量;根据所述数量小于预设数量阈值,获取热门产品列表,所述热门产品列表包括至少一个热门产品;从所述热门产品列表中随机选择至少一热门产品作为候选推荐产品,使得所选择出的候选推荐产品达到预设数量阈值。

热门产品列表中的热门产品可以基于各种方式统计得到。比如,可以对各产品按照一段时间内产品的销量从大到小进行排序,将排最前的预定数目个产品作为热门产品加入到热门产品列表中。预定数目比如可以是10,那么,可以将在一段时间内销量排在前10的产品作为热门产品。

在本申请实施例中,通过在利用第一产品列表和第二产品列表选出的候选推荐产品的数量不足预设数量阈值时,再从热门产品列表继续选择热门产品作为候选推荐产品,从而保证了选出的候选推荐产品的数量。

在一个实施例中,所述根据所述第一产品列表中的第一产品和所述第二产品列表中的第二产品,确定候选推荐产品,包括:获取热门产品列表,所述热门产品列表包括至少一个热门产品;将第一产品列表中的第一产品、第二产品列表中的第二产品以及所述热门产品列表中的热门产品的交集,作为候选推荐产品。

在本申请实施例中,最终确定出的候选推荐产品既位于第一产品列表中,也位于第二产品列表中,同时还是热门产品,因此能够进一步提高候选推荐产品与用户相匹配的可能性,从而使得最终推荐的推荐产品更可能满足用户需求。

步骤240,对所述产品库中的产品相关数据进行特征值提取,获取得到与至少一个产品相关特征对应的产品相关特征值。

所述产品相关特征包括产品基本信息特征和产品被购买行为特征,产品基本信息特征可以包括产品的类型、产品的详细介绍、产品的价格等等,比如产品的类型可以分为财产保险和养老保险;产品被购买行为特征可以包括购买产品的用户类型、购买产品的用户偏好等等。产品相关特征值是通过对产品相关数据进行汇总、统计而得到的。

步骤250,获取所述目标用户的与至少一个用户相关特征对应的用户相关特征值。

所述用户相关特征包括用户购买行为特征和用户基本信息特征。

用户购买行为特征可以包括用户购买的产品的种类、数量等等,用户基本信息特征可以包括用户职业、年龄、性别等等。目标用户的用户相关特征值也可以通过从产品购买平台获取,比如可以利用目标用户的用户标识在购买平台的数据库中进行检索,进而获取到目标用户的用户相关数据,然后可以从用户相关数据中提取出用户相关特征值。

步骤260,将所述产品相关特征值和所述用户相关特征值输入至预设分类预测模型中,以从所述候选推荐产品中确定出推荐产品,并将所述推荐产品向所述目标用户推荐。

预设分类预测模型比如可以是利用XGBOOST集成算法建立的分类预测模型。XGBOOST模型是即为极端梯度提升(eXtreme Gradient Boosting)模型,其是一种将多个弱分类器组成的强分类器模型,是一种提升树模型。

在一个实施例中,所述对所述产品库中的产品相关数据进行特征值提取,得到与至少一个产品相关特征对应的产品相关特征值,包括:

对所述产品库中所述候选推荐产品对应的产品相关数据进行特征值提取,得到所述候选推荐产品的产品相关特征值;

所述将所述产品相关特征值和所述用户相关特征值输入至预设分类预测模型中,以从所述候选推荐产品中确定出推荐产品,并将所述推荐产品向所述目标用户推荐,包括:

将所述候选推荐产品的产品相关特征值和所述用户相关特征值输入至预设分类预测模型中,以从所述候选推荐产品中确定出推荐产品,并将所述推荐产品向所述目标用户推荐。

在本申请实施例中,所有推荐产品都是预设分类预测模型从候选推荐产品中选择出来的,可以使得选出的推荐产品更能符合用户需要。

在一个实施例中,所述将所述产品相关特征值和所述用户相关特征值输入至预设分类预测模型中,以从所述候选推荐产品中确定出推荐产品,并将所述推荐产品向所述目标用户推荐,包括:将所述产品相关特征值和所述用户相关特征值输入至预设分类预测模型中,获得所述预设分类预测模型输出的预测推荐产品;将所述预测推荐产品和所述候选推荐产品的交集,作为推荐产品,并将所述推荐产品向所述目标用户推荐。

在本申请实施例中,输入至预设分类预测模型中的有些产品相关特征值并不仅仅是候选推荐产品的产品相关特征值,还可以包括其他产品的产品相关特征值,最终选出的推荐产品是预测推荐产品和候选推荐产品的交集,也就是说,最终选出的推荐产品是预设分类预测模型、第一预设推荐算法、第二预设推荐算法都推荐的产品,从而进一步提高了确定出的推荐产品的准确性。

在一个实施例中,在将所述产品相关特征值和所述用户相关特征值输入至预设分类预测模型中之前,所述方法还包括:

获取原始数据集,所述原始数据集包括多个样本数据,所述样本数据包括在预定时间区间内用户对产品的购买记录信息、与产品相关特征对应的产品相关特征值以及与用户相关特征对应的用户相关特征值;

将所述原始数据集分为训练集和测试集;

针对多个分类预测模型中每一分类预测模型,将该分类预测模型与所述第一预设推荐算法及所述第二预设推荐算法的组合作为一个产品推荐模型;

针对每一产品推荐模型,利用所述训练集对所述产品推荐模型进行训练,并利用所述测试集对训练后的所述产品推荐模型进行测试;

根据对各训练后的所述产品推荐模型的测试结果,从各所述产品推荐模型中选出目标产品推荐模型,并将所述目标产品推荐模型中的分类预测模型作为预设分类预测模型。

可以按照预定比例(如8:2)将原始数据集分为训练集和测试集。预定时间区间可以是任意的时间区间,比如可以是2020年1月1日-2021年1月1日。样本数据中用户对产品的购买记录信息相当于标识用户是否购买了某个产品的标签,因此,基于样本数据可以训练得到一个对用户进行产品推荐的模型。

将分类预测模型与第一预设推荐算法及第二预设推荐算法进行组合是指将三种算法按照一定方式进行对接,一种算法可以在另一种算法的输出结果基础上继续进行推荐,比如,在第一预设推荐算法和第二预设推荐算法分别推荐出第一产品和第二产品之后,分类预测模型可以在第一产品和第二产品中选择出最终要推荐的产品。

在一个实施例中,所述将所述原始数据集分为训练集和测试集,包括:

将所述原始数据集划分为第一数目等份,以每一等份作为一个数据子集;

针对所述第一数目等份的数据子集中的每一数据子集,选择该数据子集作为测试集,将第一数目等份的数据子集中除选择的该数据子集之外的其他数据子集作为训练集,将所述测试集和所述训练集的整体作为一个第一样本集;

所述针对每一产品推荐模型,利用所述训练集对所述产品推荐模型进行训练,并利用所述测试集对训练后的所述产品推荐模型进行测试,包括:

针对每一产品推荐模型,针对每一第一样本集,分别利用所述第一样本集中的训练集对所述产品推荐模型进行训练,并利用所述第一样本集中的测试集对训练后的所述产品推荐模型进行测试,得到训练后的所述产品推荐模型与该第一样本集对应的准确率;

所述根据对各训练后的所述产品推荐模型的测试结果,从各所述产品推荐模型中选出目标产品推荐模型,包括:

针对每一产品推荐模型,获取训练后的该产品推荐模型与各个第一样本集对应的准确率的平均值,作为该产品推荐模型的准确率;

根据各所述产品推荐模型的准确率,从各所述产品推荐模型中选出目标产品推荐模型。

图4A是根据一示例性实施例示出的第一样本集的划分方式示意图。如图4A所示,Data为原始数据集,实线部分为训练集,虚线部分为测试集,每一行对应着划分得到的一个第一样本集,可以看到,各个第一样本集中测试集的大小都是相同的,即都等于对原始数据集划分为的一等份。

在一个实施例中,所述将所述原始数据集划分为第一数目等份,以每一等份作为一个数据子集包括:

将所述原始数据集中的样本数据按照数据类型划分为若干组,每一组包含与一个数据类型对应的样本数据;

将每一组中的样本数据划分为第一数目等份;

分别从每一组中选取一等份样本数据,将从各组选取的样本数据的集合作为一个数据子集,其中,同一组中各个等份样本数据用于构建不同的数据子集。

数据类型可以是各种各样的,比如,可以是用户的性别为男女、用户收入按照高低划分的区间等等。

比如,原始数据集中的样本数据可以按照数据类型划分为A和B两组,可以将A组划分为A1、A2和A3共3等份,将B组划分为B1、B2和B3共3等份,最终可以将原始数据集划分为3等份,即得到3个数据子集,第1个数据子集包括A1和B1中的样本数据,第2个数据子集包括A2和B2中的样本数据,第3个数据子集包括A3和B3中的样本数据。

在本申请实施例中,通过将原始数据集中的样本数据按照数据类型划分为若干组,每一组中的样本数据也被划分为第一数目等份,最终构建的每一个数据子集中的样本数据是分别从各个组中选取的,因此,能够使得各个数据子集中样本数据的分布保持一致,从而提高了选出的目标产品推荐模型准确性。

在一个实施例中,所述将所述原始数据集分为训练集和测试集,包括:

以n-1个时间窗口作为初始的时间窗口数,迭代执行第二样本集获取步骤,直至时间窗口数等于指定值,其中,n为所述原始数据集中样本数据所属的时间窗口的总数,所述第二样本集获取步骤包括:将所述原始数据集中在前时间窗口数内产生的样本数据划分为训练集,将在所述训练集中样本数据之后的1个时间窗口内产生的样本数据划分为测试集,将所述训练集和所述测试集的整体作为一个第二样本集;对所述时间窗口数减1;

所述针对每一产品推荐模型,利用所述训练集对所述产品推荐模型进行训练,并利用所述测试集对训练后的所述产品推荐模型进行测试,包括:

针对每一产品推荐模型,针对每一第二样本集,分别利用所述第二样本集中的训练集对所述产品推荐模型进行训练,并利用所述第二样本集中的测试集对训练后的所述产品推荐模型进行测试,得到训练后的所述产品推荐模型与该第二样本集对应的准确率;

所述根据对各训练后的所述产品推荐模型的测试结果,从各所述产品推荐模型中选出目标产品推荐模型,包括:

针对每一产品推荐模型,获取训练后的该产品推荐模型与各个第二样本集对应的准确率的平均值,作为该产品推荐模型的准确率;

针对每一产品推荐模型,获取训练后的该产品推荐模型与各个第二样本集对应的准确率的方差,作为该产品推荐模型的方差;

根据各所述产品推荐模型的准确率和方差,从各所述产品推荐模型中选出目标产品推荐模型。

图4B是根据一示例性实施例示出的第二样本集的划分方式示意图。如图4B所示,Data为原始数据集,其中Data对应的方框中包含的数据是按照时间顺序排序的,也就是说,Data对应的方框中左侧部分的数据的产生时间位于右侧部分对应的数据之前。实线部分为训练集,虚线部分为测试集,每一行对应着划分得到的一个第二样本集。可以看到,训练集和测试集是按照时间窗口进行划分的,比如,第二样本集可以通过如下方式依次获取:选取2021年1月-2021年6月产生的数据为训练集,选取2021年7月产生的数据为测试集,得到第一个第二样本集;选取2021年1月-2021年5月产生的数据为训练集,选取2021年6月产生的数据为测试集,得到第二个第二样本集,以此类推。

在一个实施例中,所述根据各所述产品推荐模型的准确率和方差,从各所述产品推荐模型中选出目标产品推荐模型,包括:针对每一产品推荐模型,确定该产品推荐模型的准确率与方差的加权和;将对应的所述加权和最大的产品推荐模型作为目标产品推荐模型。

确定准确率与方差的加权和所用到的权重可以预先根据经验设置;方差反映了产品推荐模型的稳定性,本申请实施例中,通过根据产品推荐模型的准确率与方差的加权和进行目标产品推荐模型的选择,使得最终选择出的目标产品推荐模型具有优异的整体性能。

在一个实施例中,所述根据各所述产品推荐模型的准确率和方差,从各所述产品推荐模型中选出目标产品推荐模型,包括:

对各所述产品推荐模型按照产品推荐模型的准确率从小到大进行排序,得到各所述产品推荐模型的准确率排名序号;

对各所述产品推荐模型按照产品推荐模型的方差从大到小进行排序,得到各所述产品推荐模型的方差排名序号;

针对每一产品推荐模型,确定该产品推荐模型的准确率排名序号和方差排名序号之和,作为该产品推荐模型对应的可靠度;

选取对应的可靠度最大的产品推荐模型作为目标产品推荐模型。

由于准确率与方差的量纲不一样,这导致了直接根据两者之和或者两者之间的其他计算方式容易导致误差;本申请实施例中,通过对产品推荐模型按照准确率和方差的进行排序后的排名序号进行计算,有效规避了由于准确率与方差的量纲不一样而带来的误差,从而提高了选择目标产品推荐模型的准确性。

在一个实施例中,所述方法还包括:每隔预定时间段,对所述预设分类预测模型的至少一项性能指标进行监控,得到相应的性能指标值;根据所述预设分类预测模型的性能指标值不在相应的性能指标限值范围内,发送监控警报信息,并利用在当前时刻之前的预定时间段内产生的数据继续对所述预设分类预测模型进行训练。

可以以周或月为频率进行性能指标监控。

监控的性能指标比如可以是KS、AUC、PSI等。其中,KS(Kolmogorov-Smirnov)评价指标,通过衡量好坏样本累计分布之间的差值,来评估模型的风险区分能力。若KS在持续下降,则模型的风险区分能力在下降,下降到0.2以下,则模型无区分度。AUC(Area Under ROCCurve)指标是ROC曲线下与坐标轴围成的面积,可以用于评价分类器好坏,其值越大越好;群体稳定性指标(Population Stability Index,PSI)指标可用于对比“本次统计周期”与“上次统计周期”对应的预测分布变动,即模型的稳定性。当PSI≤0.1时,需要关注;当0.1<PSI≤0.2时,需要警戒。

监控警报信息可以通过短信、邮件、弹窗等多种方式进行发送。在本申请实施例中,通过定期对预设分类预测模型进行监控,并在通过监控发现性能指标不达标时,利用已生成的数据再次对预设分类预测模型进行训练,实现了对预设分类预测模型进行的持续迭代。

综上所述,根据图2实施例提供的产品推荐方法,通过先利用两个预设推荐算法对目标用户进行产品推荐,然后再利用预设分类预测模型进行产品推荐,而预设分类预测模型所推荐的产品是从两个预设推荐算法的推荐结果中选出的,而且预设分类预测模型是根据产品相关特征值和用户相关特征值进行产品推荐的,从而实现了千人千面的推荐效果,也就是说可以为不同用户推荐不同的产品,并且还能够提高推荐的精准率和召回率。

本公开还提供了一种产品推荐装置,以下是本公开的装置实施例。

图5是根据一示例性实施例示出的一种产品推荐装置的框图。如图5所示,装置500包括:

第一推荐模块510,被配置为根据UserCF算法从产品库中确定出向目标用户推荐的产品,得到包括多个第一产品的第一产品列表,所述产品库包括多个产品以及与各产品对应的产品相关数据;

第二推荐模块520,被配置为根据ItemCF算法从所述产品库中确定出向所述目标用户推荐的产品,得到包括多个第二产品的第二产品列表;

确定模块530,被配置为根据所述第一产品列表中的第一产品和所述第二产品列表中的第二产品,确定候选推荐产品;

第一获取模块540,被配置为对所述产品库中的产品相关数据进行特征值提取,获取得到与至少一个产品相关特征对应的产品相关特征值,所述产品相关特征包括产品基本信息特征和产品被购买行为特征;

第二获取模块550,被配置为获取所述目标用户的与至少一个用户相关特征对应的用户相关特征值,所述用户相关特征包括用户购买行为特征和用户基本信息特征;

最终推荐模块560,被配置为将所述产品相关特征值和所述用户相关特征值输入至预设分类预测模型中,以从所述候选推荐产品中确定出推荐产品,并将所述推荐产品向所述目标用户推荐。

根据本公开的第三方面,还提供了一种能够实现上述方法的电子设备。

所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。

下面参照图6来描述根据本发明的这种实施方式的电子设备600。图6显示的电子设备600仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。

如图6所示,电子设备600以通用计算设备的形式表现。电子设备600的组件可以包括但不限于:上述至少一个处理单元610、上述至少一个存储单元620、连接不同系统组件(包括存储单元620和处理单元610)的总线630。

其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元610执行,使得所述处理单元610执行本说明书上述“实施例方法”部分中描述的根据本发明各种示例性实施方式的步骤。

存储单元620可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)621和/或高速缓存存储单元622,还可以进一步包括只读存储单元(ROM)623。

存储单元620还可以包括具有一组(至少一个)程序模块625的程序/实用工具624,这样的程序模块625包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。

总线630可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。

电子设备600也可以与一个或多个外部设备800(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备600交互的设备通信,和/或与使得该电子设备600能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口650进行,比如与显示单元640通信。并且,电子设备600还可以通过网络适配器660与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器660通过总线630与电子设备600的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备600使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。

通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施方式的方法。

根据本公开的第四方面,还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。

参考图7所示,描述了根据本发明的实施方式的用于实现上述方法的程序产品700,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。

计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。

可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。

可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。

此外,上述附图仅是根据本发明示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。

应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围执行各种修改和改变。本发明的范围仅由所附的权利要求来限制。

相关技术
  • 重定向广告产品推荐用户装置和服务提供装置、包括该重定向广告产品推荐用户装置和服务提供装置的广告产品推荐系统、其控制方法以及其中记录有计算机程序的记录介质
  • 推荐重新定向广告产品的用户装置和提供服务的装置、包括其的推荐广告产品的系统、其控制方法以及记录有计算机程序的记录介质
技术分类

06120113820846