基于catboost算法与深度学习结合的排序推荐方法及系统与流程

文档序号:20690192发布日期:2020-05-08 19:21阅读:468来源:国知局
基于catboost算法与深度学习结合的排序推荐方法及系统与流程

本发明涉及医疗大数据技术领域,尤其涉及一种基于catboost算法与深度学习结合的排序推荐方法及系统、服务器及介质。



背景技术:

客户端系统通常都有专门的推荐页面,这里是吸引客户的第一线,连接着客户是否会产生消费,以及流量分流等重要作用,用户体验也直接受到推荐页面好快的影响。

目前药店推荐系统一般的做法是依据用户过去曾经浏览,点击,消费的历史记录来进行特征抽取,利用机器学习算法例如(逻辑回归,svm,随机森林等),以将讲点击的结果(1或者0)为label,进行建模预测。机器学习算法进行推荐效果往往不理想,其一,在于需要在海量的药品数据中寻找出用户感兴趣的几十种,其反馈时间一般不能超过0.1秒,否则用户会有不良体验,很难做到。其二,机器学习算法(lr,随机森林)自身非线性表现能力比较弱,无法对真实生活中的非线性场景进行区分,会经常对历史数据中出现过的数据过度记忆,往往倾向于用户曾经购买(点击)过的药品,泛化能力较差。



技术实现要素:

有鉴于此,本发明实施例提供了一种基于catboost算法与深度学习结合的排序推荐方法及系统、服务器及介质,其采用catboost算法与深度学习结合的方式,不仅保留了传统的记忆功能,还增加了泛化的能力并降低了客户的等待时间。

本发明实施例的第一方面,提供了一种基于catboost算法与深度学习结合的排序推荐方法,包括如下步骤:

获取用户的标签数据和药品的特征数据定位候选集药品数据,获取候选集药品数据中的离散特征和连续特征;

将离散特征和连续特征中任意两个特征两两组合并构造新的组合特征,离散并对其one_hot编码,并将组合特征作为模型的输入层;

将离散特征向量利用catboost算法进行转化得到castboost_vector,将组合特征和连续特征利用三层dnn身价网络隐藏层转化(256-128-64)得到64维dnn特征向量,最后将两者特征向量合并一起;

采用adam作为优化器、crossentropy作为损失函数,构建模型进行训练,并根据模型的全连接层的输出结果对药品进行排序推荐。

本发明实施例的第二方面,提供了一种基于catboost算法与深度学习结合的排序推荐系统,包括:

召回模块,其用于获取用户的标签数据和药品的特征数据定位候选集药品数据,获取候选集药品数据中的离散特征和连续特征;

输入模块,其用于将离散特征和连续特征中任意两个特征两两组合并构造新的组合特征,离散并对其one_hot编码,并将组合特征作为模型的输入层;

转化模块,其用于将离散特征向量利用catboost算法进行转化得到castboost_vector,将组合特征和连续特征利用三层dnn身价网络隐藏层转化(256-128-64)得到64维dnn特征向量,最后将两者特征向量合并一起;

构建输出模块,其用于采用adam作为优化器、crossentropy作为损失函数,构建模型进行训练,并根据模型的全连接层的输出结果对药品进行排序推荐。

本发明实施例的第三方面,提供了一种服务器,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上所述基于catboost算法与深度学习结合的排序推荐方法的步骤。

本发明实施例的第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上所述基于catboost算法与深度学习结合的排序推荐方法的步骤。

本发明提供的基于catboost算法与深度学习结合的排序推荐方法及系统、服务器及介质,其采用catboost算法与深度学习结合的方式,不仅保留了传统的记忆功能,还增加了泛化的能力,利用用户的标签数据和药品的特征数据定位候选集药品数据对特征召回,其降低了客户的等待时间,也利于提高点击率。

附图说明

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

图1为本发明实施例提供的基于catboost算法与深度学习结合的排序推荐方法的流程框图;

图2为本发明实施例提供的基于catboost算法与深度学习结合的排序推荐系统的结构框图。

具体实施方式

为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

如图1所示,本发明实施例提供的一种基于catboost算法与深度学习结合的排序推荐方法,包括如下步骤:

s1、获取用户的标签数据和药品的特征数据定位候选集药品数据,获取候选集药品数据中的离散特征和连续特征;

由于本实施例是以大数据平台的海量数据源为潜在目标药品,故本实施例在召回阶段利用用户的标签数据和药品的特征数据定位候选集药品数据,具体来说,其可利用用户的标签和药品的分类标签以从海量的药品中迅速定位到想要的候选集药品数据,其有利于提高对于服务器资源利用,进而极大的缩短用户的等待时间。

定位候选集药品数据后,利用spark集群进行分析,具体来说,对于用户而言,可根据用户的属性特征和用户的购买行为特征确定用户的标签数据,例如,所述用户的属性特征至少包括用户的性别、年龄、积分,所述用户的购买行为特至少包括用户最近一次购买的时间、购买的次数、平均金额;而对于药品而言,则是至少根据药品的属性特征和药品在推荐面上的上下文特征来确定药品的特征数据,例如,所述药品的属性特征至少包括要求的种类、规格、品类,所述药品在推荐面上的上下文特征至少包括药品在推荐面上的页面位置、尺寸大小。

而为了便于后续的模型构建,本实施例需要药品的特征数据进行处理,具体来说,其将用户的标签数据、药品的属性特征和药品在推荐面上的上下文特征依次进行合并、清洗、转换、过滤,并过滤后的数据进行结构化、标准化、向量化处理,通过上述处理后,可形成与用户的标签数据、药品的属性特征及其在推荐面上的上下文特征相结合的多个离散特征和连续特征。

s2、将离散特征和连续特征中任意两个特征两两组合并构造新的组合特征,离散并对其one_hot编码,并将组合特征作为模型的输入层;

在实际应用中,一般根据实际业务场景构建新的特征,具体可通过多个离散特征和连续特征中任意两个特征两两组合并构成形成新的组合特征,例如,类别变量进行两两组合构造成新的组合特征,然而离散并对其one_hot编码以保持数据的稳健性,得到上述组合特征后,将其作为模型的输入层。

s3、将离散特征向量利用catboost算法进行转化得到castboost_vector,将组合特征和连续特征利用三层dnn身价网络隐藏层转化(256-128-64)得到64维dnn特征向量,最后将两者特征向量合并一起;

本实施例中catboost算法本身比lr天然对于离散特征有处理优势,其保存对历史数据的记忆效果,而深度神经网络,可以通过低维密集的特征,学习到以前没出现过的一些item和特征之间的关系,并且相比于线性模型大幅降低了对于特征工程的需求,于是将线性模型组件和深度神经网络进行融合,形成了在一个模型中实现记忆和泛化的宽深度学习框架。

s4、采用adam作为优化器、crossentropy作为损失函数,构建模型进行训练,并根据模型的全连接层的输出结果对药品进行排序推荐。

本实施例正是将catboost算法与深度神经网络结合,并基于tensorflow的keras作为模型引擎,在训练时,我们分别对样本数据进行清洗和提权。在特征方面,对于连续特征,我们用min-max方法做归一化。在交叉特征方面,我们结合业务需求,提炼出多个在业务场景意义比较重大的交叉特征。在模型方面我们用adam做为优化器,用crossentropy做为损失函数。

在实验阶段,分别将深度学习、宽深度学习以及逻辑回归做了一系列的对比,将表现比较好的宽深度模型放在线上与原本的base模型进行ab实验。从结果上来看,宽深度学习模型在线下/线上都有比较好的效果,auc取得相比于basemodel10.21%的提升。

本发明提供的基于catboost算法与深度学习结合的排序推荐方法及系统、服务器及介质,其采用catboost算法与深度学习结合的方式,不仅保留了传统的记忆功能,还增加了泛化的能力,利用用户的标签数据和药品的特征数据定位候选集药品数据对特征召回,其降低了客户的等待时间,也利于提高点击率。

应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。

上面主要描述了一种基于catboost算法与深度学习结合的排序推荐方法,下面将对一种基于catboost算法与深度学习结合的排序推荐系统进行详细描述。

图2示出了本发明实施例提供的基于catboost算法与深度学习结合的排序推荐系统的一个功能模块框图。如图2所示,所述基于catboost算法与深度学习结合的排序推荐系统包括:

召回模块10,其用于获取用户的标签数据和药品的特征数据定位候选集药品数据,获取候选集药品数据中的离散特征和连续特征;

输入模块20,其用于将离散特征和连续特征中任意两个特征两两组合并构造新的组合特征,离散并对其one_hot编码,并将组合特征作为模型的输入层;

转化模块30,其用于将离散特征向量利用catboost算法进行转化得到castboost_vector,将组合特征和连续特征利用三层dnn身价网络隐藏层转化(256-128-64)得到64维dnn特征向量,最后将两者特征向量合并一起;

构建输出模块40,其用于采用adam作为优化器、crossentropy作为损失函数,构建模型进行训练,并根据模型的全连接层的输出结果对药品进行排序推荐。

本实施例还提供一种服务器,所述服务器为提供计算服务的终端设备,通常指具有较高计算能力,通过网络提供给多个用户使用的计算机,本实施例的所述服务器包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述基于catboost算法与深度学习结合的排序推荐方法的步骤。

下面对终端设备的各个构成部件进行具体的介绍:

存储器可用于存储软件程序以及模块,处理器通过运行存储在存储器的软件程序以及模块,从而执行终端的各种功能应用以及数据处理。存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据终端的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

在存储器上包含基于catboost算法与深度学习结合的排序推荐方法的可运行程序,所述可运行程序可以被分割成一个或多个模块/单元,所述一个或多个模块/单元被存储在所述存储器中,并由处理器执行,以完成通知的传递并获取通知实现过程,所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述服务器中的执行过程。例如,所述计算机程序可以被分割为数据获取模块、数据验证模块、唤醒模块。

处理器是服务器的控制中心,利用各种接口和线路连接整个终端设备的各个部分,通过运行或执行存储在存储器内的软件程序和/或模块,以及调用存储在存储器内的数据,执行终端的各种功能和处理数据,从而对终端进行整体监控。可选的,处理器可包括一个或多个处理单元;优选的,处理器可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器中。

系统总线是用来连接计算机内部各功能部件,可以传送数据信息、地址信息、控制信息,其种类可以是例如pci总线、isa总线、vesa总线等。处理器的指令通过总线传递至存储器,存储器反馈数据给处理器,系统总线负责处理器与存储器之间的数据、指令交互。当然系统总线还可以接入其他设备,例如网络接口、显示设备等。

所述服务器应至少包括cpu、芯片组、内存、磁盘系统等,其他构成部件在此不再赘述。

在本发明实施例中,该终端所包括的处理器执行的可运行程序具体为:一种基于catboost算法与深度学习结合的排序推荐方法,包括如下步骤:

获取用户的标签数据和药品的特征数据定位候选集药品数据,获取候选集药品数据中的离散特征和连续特征;

将离散特征和连续特征中任意两个特征两两组合并构造新的组合特征,离散并对其one_hot编码,并将组合特征作为模型的输入层;

将离散特征向量利用catboost算法进行转化得到castboost_vector,将组合特征和连续特征利用三层dnn身价网络隐藏层转化(256-128-64)得到64维dnn特征向量,最后将两者特征向量合并一起;

采用adam作为优化器、crossentropy作为损失函数,构建模型进行训练,并根据模型的全连接层的输出结果对药品进行排序推荐。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各实施例的模块、单元和/或方法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

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

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