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

一种产品推荐方法和系统

文献发布时间:2024-04-18 19:58:21


一种产品推荐方法和系统

技术领域

本发明涉及金融技术领域,尤其涉及一种产品推荐方法和系统。

背景技术

随着信息技术的不断发展,信息过载问题突出。及时有效地在海量信息中为用户推荐适合的信息,对提高用户召回率和用户体验具有重要意义。

现有的推荐方法过于依赖历史数据,忽略用户的实际需求,且不能满足用户个性化需求,推荐的可靠性、全面性以及推荐效率相对较低。

针对上述问题,目前尚未提出有效的解决方案。

发明内容

本说明书实施例提供了一种产品推荐方法和系统,以解决现有技术无法及时地为用户提供准确、全面以及个性化的推荐服务的问题。

第一方面,本说明书实施例提供一种产品推荐方法,该方法应用于综合处理模块,包括:

接收产品推荐请求,所述产品推荐请求中包括用户标识信息;

从数据库中获取与用户标识信息匹配的隐式反馈数据,将所述隐式反馈数据输入至预设的离线推荐模型中,确定所述隐式反馈数据对应向量的交互矩阵,以根据所述交互矩阵得到与用户标识信息匹配的离线产品推荐结果;

从数据库中获取与用户标识信息匹配的显式反馈数据,确定所述显式反馈数据对应向量间的相似度,以根据所述相似度得到与用户标识信息匹配的在线产品推荐结果;

将所述离线产品推荐结果和所述在线产品推荐结果进行融合;

反馈融合得到的混合推荐结果。

在一个实施例中,所述数据库中还存储历史产品推荐结果,相应地,所述方法还包括:

从数据库中获取与所述用户标识信息匹配的历史产品推荐结果;

所述将所述离线产品推荐结果和所述在线产品推荐结果进行融合,包括:

将所述离线产品推荐结果、在线产品推荐结果和历史产品推荐结果进行融合。

在一个实施例中,所述方法还包括:

将所述与用户标识信息匹配的离线产品推荐结果发送并存储在数据库中;

将所述与用户标识信息匹配的在线产品推荐结果发送并存储在数据库中;

相应地,所述将所述离线产品推荐结果和所述在线产品推荐结果进行融合,包括:

从数据库中获取与用户标识信息匹配的离线产品推荐结果、与用户标识信息匹配的在线产品推荐结果,将所述离线产品推荐结果和所述在线产品推荐结果进行融合。

在一个实施例中,所述隐式反馈数据包括用户与产品的交互行为数据,所述预设的离线推荐模型包括:向量转换模块、向量处理模块、交互模块;相应地,所述将所述隐式反馈数据输入至预设的离线推荐模型中,确定所述隐式反馈数据对应向量的交互矩阵,包括:

将所述交互行为数据输入至所述向量转换模块,提取所述交互行为数据的用户特征数据和产品特征数据,并将所述用户特征数据转换为用户向量,将产品特征数据转换为产品向量;

将所述用户向量和产品向量输入至所述向量处理模块,分别对所述用户向量和所述产品向量进行加权处理,得到目标用户向量和目标产品向量;

将所述目标用户向量和目标产品向量输入至所述交互模块,得到目标用户向量和目标产品向量的交互矩阵。

在一个实施例中,所述预设的离线推荐模型还包括:预测模块,相应地,所述根据所述交互矩阵得到与用户标识信息匹配的离线产品推荐结果,包括:

将所述交互行为数据输入至所述预测模块,得到与用户标识信息匹配的离线产品推荐结果。

在一个实施例中,所述显式反馈数据包括用户对产品的评分数据,相应地,所述确定所述显式反馈数据对应向量间的相似度,包括:

提取所述用户对产品的评分数据中的评分产品的特征向量和用户偏好向量;

根据预设相似度算法,确定所述评分产品的特征向量和所述用户偏好向量的相似度。

第二方面,本说明书实施例还提供了一种产品推荐系统,包括:离线推荐模型、在线推荐模型、综合处理模块,其中,

所述综合处理模块接收产品推荐请求,所述产品推荐请求中包括用户标识信息;

所述离线推荐模块从数据库中获取与用户标识信息匹配的隐式反馈数据,将所述隐式反馈数据输入至预设的离线推荐模型中,确定所述隐式反馈数据对应向量的交互矩阵,以根据所述交互矩阵得到与用户标识信息匹配的离线产品推荐结果;

所述在线推荐模块从数据库中获取与用户标识信息匹配的显式反馈数据,确定所述显式反馈数据对应向量间的相似度,以根据所述相似度得到与用户标识信息匹配的在线产品推荐结果;

所述综合处理模块将所述离线产品推荐结果和所述在线产品推荐结果进行融合;反馈融合得到的混合推荐结果。

在一个实施例中,所述综合处理模块还将所述产品推荐请求发送至所述离线推荐模块,相应地,所述离线推荐模块从数据库中获取与用户标识信息匹配的隐式反馈数据,包括:所述离线推荐模块接收所述产品推荐请求,从数据库中获取与用户标识信息匹配的隐式反馈数据。

第三方面,本说明书实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述产品推荐方法。

第四方面,本说明书实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述产品推荐方法。

本说明书实施例提供的产品推荐方法和系统,首先,接收产品推荐请求,所述产品推荐请求中包括用户标识信息。其次,从数据库中获取与用户标识信息匹配的隐式反馈数据,将所述隐式反馈数据输入至预设的离线推荐模型中,确定所述隐式反馈数据对应向量的交互矩阵,以根据所述交互矩阵得到与用户标识信息匹配的离线产品推荐结果。然后,从数据库中获取与用户标识信息匹配的显式反馈数据,确定所述显式反馈数据对应向量间的相似度,以根据所述相似度得到与用户标识信息匹配的在线产品推荐结果。最后,将所述离线产品推荐结果和所述在线产品推荐结果进行融合,再反馈融合得到的混合推荐结果。本说明书实施例中,在接收到产品推荐请求后,从数据库中获取与用户标识信息匹配的隐式反馈数据,基于预设的离线推荐模型先确定隐式反馈数据对应向量的交互矩阵,再基于交互矩阵确定出离线产品推荐结果,可以解决现有技术无法准确快速地确定出交互矩阵,从而无法准确快速地得到离线产品推荐结果的问题。通过从数据库中获取与用户标识信息匹配的显式反馈数据,确定显式反馈数据对应向量间的相似度,再根据相似度可以准确地得到与用户标识信息匹配的在线产品推荐结果。通过将离线产品推荐结果和在线产品推荐结果进行融合,可以提高推荐的准确性和全面性,能够满足用户个性化需求。通过反馈融合得到的混合推荐结果可以使用户及时查看相关的推荐结果,提高用户体验。

附图说明

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

图1是本说明书实施例提供的产品推荐系统的模块交互流程示意图;

图2是本说明书实施例提供的产品推荐方法的流程示意图;

图3是本说明书实施例提供的应用于离线推荐模块的产品推荐方法的流程示意图;

图4是本说明书实施例提供的应用于在线推荐模块的产品推荐方法的流程示意图;

图5是本说明书实施例提供的信用卡推荐系统结构图;

图6是本说明书实施例提供的后端框架图;

图7是本说明书实施例提供的计算机设备的示意图。

具体实施方式

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

随着信息技术的不断发展,信息过载问题突出。及时有效地在海量信息中为用户推荐适合的信息,对提高用户召回率和用户体验具有重要意义。

现有的推荐方法或推荐系统可以通过以下方式完成推荐:

1、数据挖掘技术:通过对客户历史数据、财务数据以及市场数据等进行数据挖掘,得出客户的消费习惯、收支状况、信用水平等信息,从而更好地推荐适合的产品(如:信用卡产品)。

2、机器学习技术:利用机器学习中的分类、聚类等算法,对客户的数据进行分析,识别客户的需求和偏好,并根据这些信息进行产品的推荐。

3、自然语言处理技术:将客户输入的文字信息转化为结构化数据,为推荐算法提供更多信息。

4、推荐算法:常见的推荐算法包括基于内容的推荐、协同过滤推荐等。其中,基于内容的推荐算法是根据客户的历史记录、浏览记录等分析用户的兴趣爱好,进而推荐相似的产品,而协同过滤推荐则是根据用户的行为模式以及其他用户的评价、行为进行预测,为用户推荐产品。

5、个性化推荐技术:对于每位客户提供个性化的推荐,以满足不同客户的需求。该技术可以根据客户的行为模式、地理位置等信息进行定制化推荐。

但上述方法或系统存在以下问题:

1、过于依赖历史数据:基于客户历史数据进行推荐,可能会忽略潜在客户的需求变化。

2、缺乏个性化推荐:对于用户的实际需求缺乏深入了解,难以为每个用户提供个性化的推荐服务。

3、算法不透明:现有的推荐算法运作原理不透明性,可信度低。

4、风险评估不足:一些待推荐的产品,如:信用卡产品,可能带有较高的风险,但现有的推荐系统可能忽略该风险,可能会造成财产损失。

5、推荐的倾向性较高:现有的推荐系统或方法在推荐时可能存在偏向性,未考虑客户的实际情况。

针对现有方法存在的上述问题以及产生上述问题的具体原因,本申请考虑引入一种产品推荐方法和系统,以提高推荐效率和推荐的可靠性、全面性,同时满足用户的个性化需求。

图1是本说明书实施例提供的产品推荐系统的模块交互流程示意图,如图1所示,所述产品推荐系统可以包括可视化模块、综合处理模块、离线推荐模块、在线推荐模块、数据库。其中,可视化模块可以为用户可以看见的可视化界面或可视化页面,可视化界面中可以向用户展示综合处理模块反馈的混合推荐结果,可视化界面中还可以设置有多种操作按钮,如:分类显示按钮、搜索按钮等,当触发分类显示按钮时,可以将混合推荐结果进行分类显示,当触发搜索按钮时,可以向综合处理模块发送包括用户标识信息的产品推荐请求等。综合处理模块还可以向离线推荐模块发送包括用户标识信息的产品推荐请求,离线推荐模块在接收到包括用户标识信息的产品推荐请求后,可以从数据库中获取与用户标识信息匹配的隐式反馈数据,基于获取的隐式反馈数据,得到与用户标识信息匹配的离线产品推荐结果,并将与用户标识信息匹配的离线产品推荐结发送至数据库中进行存储。综合处理模块还可以向在线推荐模块发送包括用户标识信息的产品推荐请求,在线推荐模块在接收到包括用户标识信息的产品推荐请求后,可以从数据库中获取与用户标识信息匹配的显式反馈数据,基于获取的显式反馈数据,得到与用户标识信息匹配的在线产品推荐结果,并将与用户标识信息匹配的在线产品推荐结果发送至数据库中进行存储。综合处理模块还可以从数据库中获取与所述用户标识信息匹配的离线产品推荐结果和与用户标识信息匹配的在线产品推荐结果,将所述离线产品推荐结果和所述在线产品推荐结果进行融合,最后向可视化模块反馈融合得到的混合推荐结果。可视化模块在接收到混合推荐结果后,可以将混合推荐结果在可视化界面中进行展示。

图2是本说明书实施例提供的产品推荐方法的流程示意图。虽然本说明书提供了如下述实施例或附图所示的方法操作步骤或装置结构,但基于常规或者无需创造性的劳动在所述方法或装置中可以包括更多或者部分合并后更少的操作步骤或模块单元。在逻辑性上不存在必要因果关系的步骤或结构中,这些步骤的执行顺序或装置的模块结构不限于本说明书实施例或附图所示的执行顺序或模块结构。所述的方法或模块结构的在实际中的装置、服务器或终端产品应用时,可以按照实施例或者附图所示的方法或模块结构进行顺序执行或者并行执行(例如并行处理器或者多线程处理的环境、甚至包括分布式处理、服务器集群的实施环境)。

具体的一个实施例如图2所示,本说明书提供的产品推荐方法的一个实施例中,所述方法可以应用在产品推荐系统,所述方法可以包括如下步骤:

S201:接收产品推荐请求,所述产品推荐请求中包括用户标识信息。

在一些实施例中,可以在用户登录前端可视化界面或可视化页面后,触发可视化界面中的某些操作按钮,如:搜索按钮时,产生包括用户标识信息的产品推荐请求,并将包括用户标识信息的产品推荐请求发送至综合处理模块。其中,所述用户标识信息可以包括用户的身份信息(ID)、用户登录可视化界面的登录信息,如:登录名称、登录密码等,本说明书对用户标识信息包括的内容不作具体限定。其中,所述产品可以为不同类型的购物卡、信用卡、消费券等,本说明书对此不作具体限定。

在一些实施例中,上述综合处理模块可以采用MVC(Model-View-Controller)设计模式(MVC是一种支持软件应用程序的架构模型,用于实现计算机中的数据和用户界面之间的耦合与分离)即可以将综合处理模块分为数据访问层、业务逻辑层和视图层。其中,数据访问层可以负责与数据库中的数据进行交互,业务逻辑层可以负责完成整体的业务逻辑处理,视图层可以负责将业务逻辑层处理得到的数据发送到前端进行展示。

需要说明的是,本申请中所涉及到的与用户相关的信息数据均为在用户知晓且同意的前提下获取和使用的。并且,对于上述信息数据的获取、存储、使用、处理等均符合国家法律法规的相关规定。

S202:从数据库中获取与用户标识信息匹配的隐式反馈数据,将所述隐式反馈数据输入至预设的离线推荐模型中,确定所述隐式反馈数据对应向量的交互矩阵,以根据所述交互矩阵得到与用户标识信息匹配的离线产品推荐结果。

在一些实施例中,上述数据库可以包括业务数据库和缓存数据库,其中,业务数据库可以为MongoDB数据库(MongoDB是一个基于分布式文件存储的数据库),业务数据库可以用于存储用户的业务逻辑数据,如:用户对产品的评分数据、用户与产品的交互行为数据等。缓存数据库可以为Redis数据库(Redis是一款内存高速缓存数据库,Redis数据库与其他的数据库的数据存储位置不同,Redis数据库可以将数据存储在内存中,Redis数据库还可以用来做分布式锁,除此之外Redis数据库还可以支持事务、持久化、LUA脚本、LRU驱动事件和多种集群方案),缓存数据库可以用于存储离线推荐结果、在线推荐结果、混合推荐结果等,以使得用户能够在前端的可视化界面中快速地获得相关的推荐结果数据,从而提高推荐效率。

在一些实施例中,综合处理模块还可以将包括用户标识信息的产品推荐请求发送至离线推荐模块,离线推荐模块在接收到包括用户标识信息的产品推荐请求后,可以从业务数据库中获取与用户标识信息匹配的隐式反馈数据,并基于隐式反馈数据,得到与用户标识信息匹配的离线产品推荐结果,离线推荐模块还可以将得到的离线产品推荐结果再发送至业务数据库中进行存储。其中,隐式反馈数据可以包括用户与产品的交互行为数据,所述交互行为数据为除用户对产品评分外的浏览量、点击量和是否购买等数据,所述与用户标识信息匹配的隐式反馈数据,例如:身份为A的用户与产品的交互行为数据。

在一些实施例中,上述离线推荐模块可以使用Azkaban(Azkaban是一个批量工作流任务调度器)完成服务的调度,Azkaban可以根据设定的运行时间对任务进行触发执行。上述离线统计模块还可以从业务数据库中加载数据,并计算出用户对产品的平均评分和产品的评分个数等。之后会将计算出的用户对产品的平均评分和产品的评分个数等重新回写数据库中。

在一些实施例中,上述隐式反馈数据可以包括用户与产品的交互行为数据,上述预设的离线推荐模型可以包括:向量转换模块、向量处理模块、交互模块;相应地,上述将所述隐式反馈数据输入至预设的离线推荐模型中,确定所述隐式反馈数据对应向量的交互矩阵,在具体实施时,可以包括:

将所述交互行为数据输入至所述向量转换模块,提取所述交互行为数据的用户特征数据和产品特征数据,并将所述用户特征数据转换为用户向量,将产品特征数据转换为产品向量;

将所述用户向量和产品向量输入至所述向量处理模块,分别对所述用户向量和所述产品向量进行加权处理,得到目标用户向量和目标产品向量;

将所述目标用户向量和目标产品向量输入至所述交互模块,得到目标用户向量和目标产品向量的交互矩阵。

在一些实施例中,上述向量转换模块可以对应于预设的离线推荐模型中的嵌入层(embedding层),可以用于提取交互行为数据中的用户特征数据和产品特征数据,并分别将用户特征数据和产品特征数据转换为用户向量和产品向量。上述向量处理模块可以对应于预设的离线推荐模型中的多个传播层、级联层,可以将用户向量和产品向量输入至向量处理模块,先根据用户向量和产品向量确定对应的权重(即传播层可赋予用户向量和产品向量对应的权重,该权重可以根据实际情况发生变化,可以为可变权重,通过设置为可变权重可以增强模型的可解释性和模型预测精度),再根据用户向量对应的权重对用户向量进行加权处理,得到目标用户向量,根据产品向量对应的权重对产品向量进行加权处理,得到目标产品向量(即级联层可得到最终的向量表示形式下的用户向量和产品向量)。上述交互模块可以对应于预设的离线推荐模型中的交互层,可以用于将目标用户向量和目标产品向量进行拼接,得到目标用户向量和目标产品向量的交互矩阵。通过对用户向量、产品向量分别进行加权处理,得到目标用户向量和目标产品向量,可以提高离线推荐模型的可解释性。通过离线推荐模型的交互模块得到目标用户向量和目标产品向量的交互矩阵,可以解决现有技术无法准确快速地确定交互矩阵,从而无法准确快速地得到离线产品推荐结果的问题。通过得到交互矩阵可以为得到离线产品推荐结果奠定基础。

在一些实施例中,上述交互行为数据可以包括交互行为图,可以提取交互行为图中的用户特征数据和产品特征数据,再将用户特征数据和产品特征数据分别转换为用户向量和产品向量。

在一些实施例中,上述预设的离线推荐模型还可以包括:预测模块,相应地,上述根据所述交互矩阵得到与用户标识信息匹配的离线产品推荐结果,在具体实施时,可以包括:

将所述交互矩阵输入至所述预测模块,得到与用户标识信息匹配的离线产品推荐结果。

在一些实施例中,上述预测模块可以对应于预设的离线推荐模型中的输出层,可以用于根据目标用户向量和目标产品向量的交互矩阵,得到离线产品推荐结果。

通过获取目标用户向量和目标产品向量的交互矩阵,并基于交互行为数据获得离线产品的推荐结果,可以提高推荐结果获取的准确性,从而更好地为用户进行推荐。

在一些实施例中,上述预设的离线推荐模型可以根据图神经网络和协同过滤算法构建的初始离线推荐模型进行训练后得到。通过将图神经网络的消息传递机制和协同过滤算法联系起来,可以更好的捕获协同信号,从而获得更好的推荐效果。其中,可以根据用户与产品的交互行为数据、用户的信用评级等数据样本对图神经网络和协同过滤算法构建的初始离线推荐模型进行训练,在训练的精度满足预设精度阈值时,得到预设的离线推荐模型。在实际应用时,可直接基于上述预设的离线推荐模型得到离线产品推荐结果。

S203:从数据库中获取与用户标识信息匹配的显式反馈数据,确定所述显式反馈数据对应向量间的相似度,以根据所述相似度得到与用户标识信息匹配的在线产品推荐结果。

在一些实施例中,综合处理模块还可以将包括用户标识信息的产品推荐请求发送至在线推荐模块,在线推荐模块在接收到包括用户标识信息的产品推荐请求后,可以从业务数据库中获取与用户标识信息匹配的显式反馈数据,并基于显式反馈数据,得到与用户标识信息匹配的在线产品推荐结果,在线推荐模块还可以将得到的在线推荐结果再发送至业务数据库中进行存储。

在一些实施例中,上述在线推荐模块可以对用户对项目的评分数据进行采集并发送至日志中心。上述在线推荐模块还可以进行消息缓存:即可以使用Kafka(Kafka是一种分布式、基于发布/订阅的消息系统)作为流式数据的缓存组件,接受数据采集请求。上述在线推荐模块还可以进行实时推荐:即可以接收缓存的数据,通过预设算法(如:基于内容的推荐算法)对数据处理得到在线产品推荐结果,将推荐结果合并更新到数据库(如:业务数据库)中。

在一些实施例中,上述显式反馈数据可以包括用户对产品的评分数据,相应地,上述确定所述显式反馈数据对应向量间的相似度,在具体实施时,可以包括:

提取所述用户对产品的评分数据中的评分产品的特征向量和用户偏好向量;

根据预设相似度算法,确定所述评分产品的特征向量和用户偏好向量的相似度。

在一些实施例中,可以提取用户对产品的评分数据中的评分产品的特征向量和用户偏好向量,再根据预设相似度算法,确定出评分产品的特征向量和用户偏好向量的相似度(预设相似度算法如:可以计算评分产品的特征向量和用户偏好向量的余弦相似度,若余弦相似度的值接近1,则可以表示评分产品比较接近用户的偏好,若余弦相似度的值接近-1,则可以表示评分产品比较不适合该用户)。通过计算用户的偏好向量和评分产品的特征向量的相似度,可以更准确地了解用户更偏好哪个评分产品,从而提高在线产品推荐结果获取的准确性。

需要说明的是,预设相似度算法不限上述举例,所属领域技术人员在本说明书实施例技术精髓的启示下,还可能做出其它变更,如:还可以皮尔逊相似度、杰卡德相似度、欧式距离等相似度计算方法计算相似度,只要其实现的功能和效果与本说明书实施例相同或相似,均应涵盖于本说明书实施例保护范围内。

S204:将所述离线产品推荐结果和所述在线产品推荐结果进行融合。

在一些实施例中,上述数据库中还可以存储历史产品推荐结果,相应地,上述方法在具体实施时,还可以包括:

从数据库中获取与与所述用户标识信息匹配的历史产品推荐结果。

上述将所述离线产品推荐结果和所述在线产品推荐结果进行融合,在具体实施时,可以包括:

将所述离线产品推荐结果、在线产品推荐结果和历史产品推荐结果进行融合。

在一些实施例中,上述方法还可以包括:

将所述与用户标识信息匹配的离线产品推荐结果发送并存储在数据库中;

将所述与用户标识信息匹配的在线产品推荐结果发送并存储在数据库中;

相应地,上述将所述离线产品推荐结果和所述在线产品推荐结果进行融合,在具体实施时,可以包括:

从数据库中获取与用户标识信息匹配的离线产品推荐结果、与用户标识信息匹配的在线产品推荐结果,将所述离线产品推荐结果和所述在线产品推荐结果进行融合。

在一些实施例中,为了提高推荐效率,离线推荐模块可以将离线产品推荐结果,在线推荐模块可以将在线产品推荐结果存储在数据库中,综合处理模块在接收到产品推荐请求后,可以从数据库中获取对应的离线产品推荐结果和在线产品推荐结果,从而达到及时地为用户进行推荐的目的。

在一些实施例中,综合处理模块可以将离线产品推荐结果和在线产品推荐结果进行加权,实现离线产品推荐结果和所述在线产品推荐结果的融合,还可以将离线产品推荐结果、在线产品推荐结果、历史产品推荐结果进行加权,实现离线产品推荐结果、在线产品推荐结果、历史产品推荐结果的融合,可以将融合后得到的推荐结果作为混合推荐结果。

在一些实施例中,上述历史产品推荐结果可以为上一次为用户提供的混合推荐结果,可以将历史产品推荐结果发送并存储在数据库中,如:可以存储在缓存数据库中,从而可以提高综合处理模块获取历史产品推荐结果的效率。

S205:反馈融合得到的混合推荐结果。

在一些实施例中,在对多个推荐结果进行融合后,综合处理模块还可以向前端可视化界面反馈融合得到的混合推荐结果,使得混合推荐结果能够可视化界面或可视化页面进行展示,从而实现为用户提供准确、高效、个性化的推荐服务。

在一些实施例中,可以将ElasticSearch(Elasticsearch是位于Elastic Stack核心的分布式搜索和分析引擎)作为模糊搜索服务器,基于该模糊搜索服务器可以实现搜索功能,并得到相应的推荐结果。例如:用户可以输入某个搜索关键词,并触发搜索按钮(相当于用户发出产品推荐请求),搜索服务器可以在搜索按钮被触发后,接收用户输入的搜索关键词,获得搜索结果,该搜索结果可以包括搜索到与搜索关键词匹配的搜索结果和未搜索到与搜索关键词匹配的搜索结果,可以在搜到与搜索关键词匹配的搜索结果时,在可视化界面中展示在线产品推荐结果,还可以在未搜索到与搜索关键词匹配的搜索结果时,在可视化界面中展示离线产品推荐结果。

在一些实施例中,上述模糊搜索服务器可以与上述综合处理模块进行交互,即综合处理模块可以在接收到产品推荐请求时,将产品推荐请求发送至模糊搜索服务器,其中,产品推荐请求中还可以包括搜索关键词,模糊搜索服务器基于搜索关键词进行搜索,得到搜索结果,在搜索结果为未搜索到与搜索关键词匹配的搜索结果时,从数据库中获取离线产品推荐结果并将离线推荐结果发送至综合处理模块,综合处理模块在将未搜索到与搜索关键词匹配的搜索结果时获取的离线产品推荐结果反馈到前端可视化页面中进行展示。在搜索结果为搜索到与搜索关键词匹配的搜索结果时,从数据库中获取在线产品推荐结果并将在线推荐结果发送至综合处理模块,综合处理模块在将搜索到与搜索关键词匹配的搜索结果时获取的在线产品推荐结果反馈到前端可视化页面中进行展示。

在上述实施例的基础上,本说明书一些实施例中,还可以提供一种应用于离线推荐模块的产品推荐方法,所述离线推荐模块可以为计算机、平板电脑、服务器等终端,图3是本说明书实施例提供的应用于离线推荐模块的产品推荐方法的流程示意图,如图3所示,所述方法可以包括:

S301:接收产品推荐请求,所述产品推荐请求中包括用户标识信息;

S302:从数据库中获取与所述用户标识信息匹配的隐式反馈数据;

S303:根据所述隐式反馈数据,得到与用户标识信息匹配的离线产品推荐结果并将所述离线产品推荐结果发送并存储在数据库中。

在上述实施例的基础上,本说明书一些实施例中,还可以提供一种应用于在线推荐模块的产品推荐方法,所述在线推荐模块可以为计算机、平板电脑、服务器等终端,图4是本说明书实施例提供的应用于在线推荐模块的产品推荐方法的流程示意图,如图4所示,所述方法可以包括:

S401:接收产品推荐请求,所述产品推荐请求中包括用户标识信息;

S402:从数据库中获取与所述用户标识信息匹配的显式反馈数据;

S403:根据所述显式反馈数据,得到与用户标识信息匹配的在线产品推荐结果并将所述在线产品推荐结果发送并存储在数据库中。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。具体的可以参照前述相关处理相关实施例的描述,在此不做一一赘述。

上述对本法进行说明,然而值得注意的是,该具体实施例仅是为了更好地说明本申请,并说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

下面结合一个具体实施例对上述方不构成对本申请的不当限定。

在具体实施前,用户可以先进行注册,推荐系统中的可视化模块则可以收集用户注册的基本信息,并将收集到的注册信息发送给推荐系统中的综合处理模块,综合处理模块则可以根据这些基本信息,判断用户的消费习惯、收支状况、信用水平和能接受的清偿方式以及适合的信用卡类别,最后将这些信息更新到推荐系统中的数据库中进行保存。用户通过创建的账号完成登录,推荐系统后端会通过对比数据库中的账号和密码验证,完成验证后用户就能进入到推荐的主界面中。

在具体实施时,用户可以通过输入关键词的方式完成对想要查询的产品的检索,推荐系统根据用户输入的关键字利用ElasticSearch搜索引擎完成模糊搜索,并将搜索到的内容在前端进行展示。需要说明的是,当用户不使用搜索的情况下用户的主界面展示的就是离线推荐的推荐内容(离线产品推荐结果),这个内容可以通过用户更新用户的基本信息完成自我更新。用户可以根据推荐内容选择适合自己的信用卡方案。用户不想只看推荐系统推荐的内容时,就可以选择可视化模块中的分类展示功能,分类展示可以根据信用卡分类不同,按照不同分类标准进行分类展示。

通过上述方法,可以达到以下技术效果:

1、整体视角:上述推荐系统能够以整体视角看待用户的个人信息等,能够及时了解用户需求和风险状况。

2、精准度高:上述推荐系统可以对用户进行精确区分和分类,为用户提供更加符合实际需求的产品推荐。

3、个性化推荐:上述推荐系统能够对用户的消费习惯、信用记录、社交网络等多方面数据进行综合考虑,并为每个用户提供个性化的产品推荐。

4、透明度高:上述推荐系统运作原理较为透明,有助于提高用户对系统的信任感和满意度。

5、可扩展性强:上述荐系统依赖于大规模的图数据存储和处理技术,但是随着技术的发展,可以不断扩展和完善。

6、无冷启动问题:用户第一次进入推荐界面时,这时还不能根据用户与产品的交互数据完成推荐,此时存在“冷启动问题”,首先需要注册自己的账户,需要填写消费习惯、收支状况、所属地域和年龄等等基础信息。根据这些注册信息完成推荐。

7、长尾推荐,提高用户收益:当有交互数据后,就可以利用基于离线推荐模型挖掘用户偏好,传统推荐倾向于推荐高利率产品,导致现有推荐系统可能存在偏向性,导致用户收益较低。而基于离线推荐模型挖掘用户偏好的方式可以很好的解决长尾推荐问题,提高用户的收益。

在一个具体实施场景中,以进行信用卡产品推荐为例,参阅图5所示,图5示出了一种信用卡推荐系统结构图,在进行信用卡推荐时,可以进行如下流程:

0.用户数据、内容数据,行为数据等系统初始化数据经过SparkSQL加载到的业务数据库MongoDB和搜索服务器ElasticSearch中。

1.使用Azkaban完成服务的调度,Azkaban会根据设定的运行时间对任务进行触发执行。

2.离线统计会从MongoDB数据库中加载数据,并计算出不同类型的信用卡产品的平均评分和评分个数。之后会将计算结果重新回写数据库中;离线推荐服务是将从数据库中加载到的数据经过基于离线推荐模型得到信用卡产品的推荐列表,并将该推荐列表写到数据库中。

3.Flume从综合业务处理中心的运行日志中获取日志更新,同时将得到的更新日志送至Kafka中。在收到这些日志之后,Kafka通过kafkaStream程序将得到的日志信息进行过滤处理,获得评分数据流,并发送到另外一个Kafka队列。SparkStreaming监听获取用户评分数据流(用户的实时评分数据),将最新的评分数据与存储在缓存中的用户最近评分队列数据进行融合。再提交至实时推荐算法,由基于内容的推荐算法计算出推荐结果。得到计算结果之后,将新的推荐结果和数据库中的推荐结果进行加权和得到最终的实时推荐。

4.推荐结果展示,从数据库(上一次的推荐结果)、离线推荐结果、实时推荐结果进行加权和得到最终的推荐列表,并在页面首页进行展示。

5.项目信息查询:连接MongoDB实现对项目信息的查询操作并将查询结果保存在缓存Redis中。

6.项目评分,前端收集用户通过给出的评分并将结果发送到后端,后端会将数据更新到数据库中,同时将数据写入Redis群中,还会通过预设的日志框架将结果发送到Tomcat中的日志中。

7.项目搜索,项目通过ElasticSearch实现对项目关键词的模糊检索。

8.项目标签,系统允许用户对项目打标签,并将标签实时更新到数据库中。

上述信息卡推荐系统的后端可以基于Spring框架完成,Spring框架主要负责完成各种业务逻辑,达到前端业务与后端数据交互的目的,应用的后端主要分为五个部分:REST接口服务层、业务层、工具组件和业务模型,具体如下:REST接口服务通过Spring框架为UI提供通信的接口。业务模型主要完成推荐和业务请求,同时对业务数据创建模型。工具组件完成对Redis和MongoDB数据库的支持同时还对系统常量进行定义。具体的后端框架如图6所示,图6中RestAPI(Application Programming Interface,应用程序接口)可以提供用户接口、推荐接口、评分接口、查询接口、标签接口和统计接口。服务层可以提高5个用户接口。业务模型层可以提供3个用户接口,工具组件可以提高3个用户接口和常量定义。

基于上述产品推荐方法,本说明书一个或多个实施例还提供一种产品推荐系统。所述系统可以包括使用了本说明书实施例所述方法的系统(包括分布式系统)、软件(应用)、模块、组件、服务器、客户端等并结合必要的实施硬件的装置。所述系统包括:离线推荐模型、在线推荐模型、综合处理模块,其中,

所述综合处理模块接收产品推荐请求,所述产品推荐请求中包括用户标识信息;

所述离线推荐模块从数据库中获取与用户标识信息匹配的隐式反馈数据,将所述隐式反馈数据输入至预设的离线推荐模型中,确定所述隐式反馈数据对应向量的交互矩阵,以根据所述交互矩阵得到与用户标识信息匹配的离线产品推荐结果;

所述在线推荐模块从数据库中获取与用户标识信息匹配的显式反馈数据,确定所述显式反馈数据对应向量间的相似度,以根据所述相似度得到与用户标识信息匹配的在线产品推荐结果;

所述综合处理模块将所述离线产品推荐结果和所述在线产品推荐结果进行融合;反馈融合得到的混合推荐结果。

本说明书实施例还提供一种产品推荐设备,包括:至少一个处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现上述实施例的产品推荐方法,如:接收产品推荐请求,所述产品推荐请求中包括用户标识信息;从数据库中获取与用户标识信息匹配的隐式反馈数据,将所述隐式反馈数据输入至预设的离线推荐模型中,确定所述隐式反馈数据对应向量的交互矩阵,以根据所述交互矩阵得到与用户标识信息匹配的离线产品推荐结果;从数据库中获取与用户标识信息匹配的显式反馈数据,确定所述显式反馈数据对应向量间的相似度,以根据所述相似度得到与用户标识信息匹配的在线产品推荐结果;将所述离线产品推荐结果和所述在线产品推荐结果进行融合;反馈融合得到的混合推荐结果。

为了能够更加准确地完成上述指令,参阅图7所示,本说明书实施例还提供了另一种具体的电子设备,其中,所述电子设备包括网络通信端口701、处理器702以及存储器703,上述结构通过内部线缆相连,以便各个结构可以进行具体的数据交互。

其中,所述网络通信端口701,具体可以用于接收产品推荐请求,所述产品推荐请求中包括用户标识信息。

所述处理器702,具体可以用于从数据库中获取与用户标识信息匹配的隐式反馈数据,将所述隐式反馈数据输入至预设的离线推荐模型中,确定所述隐式反馈数据对应向量的交互矩阵,以根据所述交互矩阵得到与用户标识信息匹配的离线产品推荐结果;从数据库中获取与用户标识信息匹配的显式反馈数据,确定所述显式反馈数据对应向量间的相似度,以根据所述相似度得到与用户标识信息匹配的在线产品推荐结果;将所述离线产品推荐结果和所述在线产品推荐结果进行融合;反馈融合得到的混合推荐结果。

所述存储器703,具体可以用于存储相应的指令程序。

在本实施例中,所述网络通信端口701可以是与不同的通信协议进行绑定,从而可以发送或接收不同数据的虚拟端口。例如,所述网络通信端口可以是负责进行web数据通信的端口,也可以是负责进行FTP数据通信的端口,还可以是负责进行邮件数据通信的端口。此外,所述网络通信端口还可以是实体的通信接口或者通信芯片。例如,其可以为无线移动网络通信芯片,如GSM、CDMA等;其还可以为Wifi芯片;其还可以为蓝牙芯片。

在本实施例中,所述处理器702可以按任何适当的方式实现。例如,处理器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application SpecificIntegrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式等等。本说明书并不作限定。

在本实施例中,所述存储器703可以包括多个层次,在数字系统中,只要能保存二进制数据的都可以是存储器;在集成电路中,一个没有实物形式的具有存储功能的电路也叫存储器,如RAM、FIFO等;在系统中,具有实物形式的存储设备也叫存储器,如内存条、TF卡等。

本说明书实施例还提供了一种基于上述产品推荐方法的计算机存储介质,所述计算机存储介质存储有计算机程序指令,在所述计算机程序指令被执行时实现:接收产品推荐请求,所述产品推荐请求中包括用户标识信息;从数据库中获取与用户标识信息匹配的隐式反馈数据,将所述隐式反馈数据输入至预设的离线推荐模型中,确定所述隐式反馈数据对应向量的交互矩阵,以根据所述交互矩阵得到与用户标识信息匹配的离线产品推荐结果;从数据库中获取与用户标识信息匹配的显式反馈数据,确定所述显式反馈数据对应向量间的相似度,以根据所述相似度得到与用户标识信息匹配的在线产品推荐结果;将所述离线产品推荐结果和所述在线产品推荐结果进行融合;反馈融合得到的混合推荐结果。

在本实施例中,上述存储介质包括但不限于随机存取存储器(Random AccessMemory,RAM)、只读存储器(Read-Only Memory,ROM)、缓存(Cache)、硬盘(Hard DiskDrive,HDD)或者存储卡(Memory Card)。所述存储器可以用于存储计算机程序指令。网络通信单元可以是依照通信协议规定的标准设置的,用于进行网络连接通信的接口。

虽然本说明书提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的手段可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或客户端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至为分布式数据处理环境)。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、产品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、产品或者设备所固有的要素。在没有更多限制的情况下,并不排除在包括所述要素的过程、方法、产品或者设备中还存在另外的相同或等同要素。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。

本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内部包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。

本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构、类等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

通过以上的实施例的描述可知,本领域的技术人员可以清楚地了解到本说明书可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书的技术方案本质上可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,移动终端,服务器,或者网络设备等)执行本说明书各个实施例或者实施例的某些部分所述的方法。

本说明书中的各个实施例采用递进的方式描述,各个实施例之间相同或相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。本说明书可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。

虽然通过实施例描绘了本说明书,本领域普通技术人员知道,本说明书有许多变形而不脱离本说明书的精神,希望所附的权利要求包括这些变形而不脱离本说明书的精神。

相关技术
  • 一种推荐信系统及其推荐信的索取方法
  • 一种基于推荐系统的项目推荐方法、装置及设备
  • 一种物品推荐方法、装置、存储介质及程序产品
  • 一种产品的推荐方法、终端设备及计算机可读存储介质
  • 一种金融产品推荐方法及装置
  • 重定向广告产品推荐用户装置和服务提供装置、包括该重定向广告产品推荐用户装置和服务提供装置的广告产品推荐系统、其控制方法以及其中记录有计算机程序的记录介质
  • 一种产品推荐方法、产品推荐系统及计算机设备
技术分类

06120116484101