用于机器学习模型的特征抽取的方法和装置与流程

文档序号:18884926发布日期:2019-10-15 20:45阅读:187来源:国知局
用于机器学习模型的特征抽取的方法和装置与流程

本公开涉及计算机领域,具体地,涉及一种用于机器学习模型的特征抽取的方法、装置、存储介质和电子设备。



背景技术:

在广告投放领域,往往需要对用户的点击率进行预估。传统的点击率预估方法在线下对历史广告投放日志进行数据挖掘和模型训练,学习得到机器学习预估模型,并利用机器学习预估模型在线上对用户的点击率进行预估。上述线下和线上的过程均需要对用户数据进行特征抽取,然而,线下和线上采用不同的程序语言实现特征抽取,容易导致特征抽取结果不一致的情况,从给机器学习预估模型带来不利影响。



技术实现要素:

在下文中将给出关于本公开的简要概述,以便提供关于本公开的某些方面的基本理解。应当理解,此概述并不是关于本公开的穷举性概述。它并不是意图确定本公开的关键或重要部分,也不是意图限定本公开的范围。其目的仅仅是以简化的形式给出某些概念,以此作为稍后论述的更详细描述的前序。

根据本公开的第一方面,提供了一种用于机器学习模型的特征抽取的方法,包括:

提供公共特征抽取模块,公共特征抽取模块具有第一调用接口和第二调用接口;

线上模块经由第一调用接口调用公共特征抽取模块,对第一输入数据进行特征抽取以获取第一特征数据;以及

线下模块经由第二调用接口调用公共特征抽取模块,对第二输入数据进行特征抽取以获取第二特征数据,

其中,第一特征数据和第二特征数据用于输入到机器学习模型。

在一个实施例中,公共特征抽取模块和线上模块是第一程序语言实现的,第一调用接口是编译链接接口;

线下模块是第二程序语言实现的,第二调用接口是跨语言接口。

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

提供数据结构一致化模块,数据结构一致化模块用于对第一输入数据和第二输入数据进行数据结构一致化处理。

在一个实施例中,公共特征抽取模块具有可配置参数,可配置参数的组合映射到待抽取的特征。

在一个实施例中,线下模块用于向机器学习模型提供用于训练的第二特征数据,线上模块用于向训练后的机器学习模型提供第一特征数据。

根据本公开的第二方面,提供了一种用于机器学习模型的特征抽取的装置,包括:

公共特征抽取模块,公共特征抽取模块具有第一调用接口和第二调用接口;

线上模块,被配置用于经由第一调用接口调用公共特征抽取模块,对第一输入数据进行特征抽取以获取第一特征数据;以及

线下模块,被配置用于经由第二调用接口调用公共特征抽取模块,对第二输入数据进行特征抽取以获取第二特征数据;

其中,第一特征数据和第二特征数据用于输入到机器学习模型。

在一个实施例中,装置还包括:

数据结构一致化模块,被配置用于对第一输入数据和第二输入数据进行数据结构一致化处理。

根据本公开的第三方面,提供一种电子设备,包括:

一个或多个处理器;

存储器,用于存储一个或多个程序,

其中,当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器执行如第一方面的方法。

根据本公开的第四方面,提供一种计算机可读介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行如第一方面的方法。

本公开的技术方案至少具有以下技术效果之一:线上模块和线下模块采用同一个公共特征抽取模块进行特征抽取,保证了特征抽取结果的一致性,同时避免重复劳动,节省人力。

附图说明

本公开可以通过参考下文中结合附图所给出的描述而得到更好的理解,附图连同下面的详细说明一起包含在本说明书中并且形成本说明书的一部分。在附图中:

图1是根据本公开实施例的特征抽取系统的示意图;

图2是线上点击率预估方法的流程示意图;

图3是训练点击率预估模型的方法的流程示意图;

图4是实现本公开实施例的电子设备的结构示意图。

具体实施方式

在下文中将结合附图对本公开的示例性实施例进行描述。为了清楚和简明起见,在说明书中并未描述实际实施例的所有特征。然而,应该了解,在开发任何这种实际实施例的过程中可以做出很多特定于实施例的决定,以便实现开发人员的具体目标,并且这些决定可能会随着实施例的不同而有所改变。

在此,还需要说明的一点是,为了避免因不必要的细节而模糊了本公开,在附图中仅仅示出了与根据本公开的方案密切相关的装置结构,而省略了与本公开关系不大的其他细节。

应理解的是,本公开并不会由于如下参照附图的描述而只限于所描述的实施形式。在本文中,在可行的情况下,实施例可以相互组合、不同实施例之间的特征替换或借用、在一个实施例中省略一个或多个特征。

本公开的实施例提供了一种用于机器学习模型的特征抽取方法,包括:提供公共特征抽取模块,公共特征抽取模块具有第一调用接口和第二调用接口;线上模块经由第一调用接口调用公共特征抽取模块,对第一输入数据进行特征抽取以获取第一特征数据;以及线下模块经由第二调用接口调用公共特征抽取模块,对第二输入数据进行特征抽取以获取第二特征数据,其中,第一特征数据和第二特征数据用于输入到机器学习模型。

根据本公开的实施例,线上模块和线下模块采用同一个公共特征抽取模块进行特征抽取,保证了特征抽取结果的一致性,同时避免重复劳动,节省人力。

以下结合附图来详细描述本公开的实施例及其优点。

图1示出了根据本公开实施例的特征抽取系统100的示意图。特征抽取系统100包括线上模块110、线下模块120、公共特征抽取模块130和数据结构一致化模块140。以下对各个模块的功能进行详细描述。

公共特征抽取模块130具有第一调用接口131和第二调用接口132,线上模块110经由第一调用接口131调用公共特征抽取模块130,对第一输入数据进行特征抽取以获取第一特征数据,线下模块120经由第二调用接口132调用公共特征抽取模块130,对第二输入数据进行特征抽取以获取第二特征数据,第一特征数据和第二特征数据用于输入到机器学习模块。这里,公共特征抽取模块130和线上模块110是第一程序语言实现的,第一调用接口131是编译链接接口,考虑到线上处理需要提供高性能服务,需在短时间内完成模块计算,第一程序语言可以采用c、c++或go语言;线下模块120是第二程序语言实现的,第二调用接口132是跨语言接口,考虑到线下处理需要处理海量日志数据,处理数据可以借助hadoop分布式平台,第二程序语言例如可以采用java、scala或python语言,第二调用接口132可以为jni接口,也可以为其他任何能够跨语言调用的接口,此处不作具体限定。

图2示出了线上点击率预估方法200的流程示意图。方法200开始于步骤210,获取点击率预估模型。

然后,在步骤220,获取第一输入数据。这里,第一输入数据可以包括广告文件中的广告属性信息和服务器请求中的用户属性信息。

然后,在步骤230,对第一输入数据进行特征抽取,得到第一特征数据。该步骤可以由公共特征抽取模块130执行。

然后,在步骤240,将第一特征数据输入到点击率预估模型中,得到预估结果。这里,根据点击率预估模型中存储的第一特征数据与分值的对应关系,输出用户的点击率预估结果,并对预估结果进行日志记录。

图3示出了训练点击率预估模型的方法300的流程示意图。方法300开始于步骤310,获取第二输入数据。这里,第二输入数据可以为广告投放日志数据,广告投放日志数据中可以包括广告id、用户id等。

然后,在步骤320,对第二输入数据进行特征抽取,得到第二特征数据。该步骤可以由公共特征抽取模块130执行。

然后,在步骤330,基于第二特征数据训练得到点击率预估模型。

然后,在步骤340,对点击率预估模型进行离线评估,得到评估结果;这里,离线评估可采用计算模型评估指标的方式,例如可以为计算模型评估指标auc(areaunderthecurve)的值。

然后,在步骤350,根据评估结果判断点击率预估模型是否正常,则正常,则输出点击率预估模型,否则,返回步骤320。

考虑到线上模块110和线下模块120采用不同的程序语言实现的,且均需要调用公共特征抽取模块130,为了提高程序运行的安全性、可移植性和保密性,可以对公共特征抽取模块130进行封装,形成封装文件,该封装文件可以为so文件,so文件可以是动态链接库。

数据结构一致化模块140用于对第一输入数据和第二输入数据进行数据结构一致化处理。考虑到第一输入数据和第二输入数据的获取来源不同,二者数据结构存在不一致的情况,在这里,可以对第一输入数据和第二输入数据均采用protobuf(序列化数据数据结构协议)进行数据填充,实现第一输入数据和第二输入数据的数据结构相同。在其他实施例中,数据结构一致化处理还可以采用apachethrift、hadoopprc等,此处不作具体限定。

本公开的实施例提供了一种用于机器学习模型的特征抽取方法,包括:提供公共特征抽取模块,公共特征抽取模块具有第一调用接口和第二调用接口;线上模块经由第一调用接口调用公共特征抽取模块,对第一输入数据进行特征抽取以获取第一特征数据;以及线下模块经由第二调用接口调用公共特征抽取模块,对第二输入数据进行特征抽取以获取第二特征数据,其中,第一特征数据和第二特征数据用于输入到机器学习模型,线下模块用于向机器学习模型提供用于训练的第二特征数据,线上模块用于向训练后的机器学习模型提供第一特征数据。

本实施例中,公共特征抽取模块和线上模块是第一程序语言实现的,第一调用接口是编译链接接口,考虑到线上处理需要提供高性能服务,短时间内完成模块计算,第一程序语言可以采用c、c++或go语言;线下模块是第二程序语言实现的,第二调用接口是跨语言接口,考虑到线下处理需要处理海量日志数据,处理数据可以借助hadoop分布式平台,第二程序语言例如可以采用java、scala或python语言,第二调用接口可以为jni接口,也可以为任何其他能够跨语言调用的接口,此处不作具体限定。第一输入数据可以包括广告文件中的广告属性信息和服务器请求中的用户属性信息。第二输入数据可以为广告投放日志数据,广告投放日志数据中可以包括广告id、用户id等。

根据本公开的实施例,线上模块和线下模块采用同一个公共特征抽取模块进行特征抽取,保证了特征抽取结果的一致性,同时避免重复劳动,节省人力。

根据本公开的另一实施例,用于机器学习模型的特征抽取方法,还包括:

提供数据结构一致化模块,数据结构一致化模块用于对第一输入数据和第二输入数据进行数据结构一致化处理。这里,考虑到第一输入数据和第二输入数据的获取来源不同,二者数据结构存在不一致的情况,在这里,可以对第一输入数据和第二输入数据均采用protobuf(序列化数据数据结构协议)进行数据填充,在其他实施例中,数据结构一致化处理还可以采用apachethrift、hadoopprc等,此处不作具体限定。

为了提高公共特征抽取模块对特征抽取逻辑的可配置度,公共特征抽取模块可以具有可配置参数,可配置参数的组合映射到待抽取的特征。也就是说,实现公共特征抽取模块的代码中包括特征与代号的映射关系。例如,单个特征可以采用字母表示,组合特征可以采用多个字母进行组合表示,从而保证特征抽取的逻辑可配置度较高。举例来说,单个特征可以为广告id、也可以为用户id,广告id用ai表示,用户id用ui表示,组合特征可以为用户id和广告id的组合,可以用aiui表示。上述映射关系的建立避免了特征抽取过程中根据抽取特征的不同,需要多次修改代码带来的麻烦。

本公开第二方面还提供一种用于机器学习模型的特征抽取的装置,包括:公共特征抽取模块、线上模块以及线下模块。公共特征抽取模块具有第一调用接口和第二调用接口。线上模块被配置用于经由第一调用接口调用公共特征抽取模块,对第一输入数据进行特征抽取以获取第一特征数据。线下模块被配置用于经由第二调用接口调用公共特征抽取模块,对第二输入数据进行特征抽取以获取第二特征数据;其中,第一特征数据和第二特征数据用于输入到机器学习模型。

本实施例中,公共特征抽取模块和线上模块是第一程序语言实现的,第一调用接口是编译链接接口,考虑到线上处理需要提供高性能服务,短时间内完成模块计算,第一程序语言可以采用c、c++或go语言;线下模块是第二程序语言实现的,第二调用接口是跨语言接口,考虑到线下处理需要处理海量日志数据,处理数据可以借助hadoop分布式平台,第二程序语言例如可以采用java、scala或python语言,第二调用接口可以为jni接口,也可以为任何其他能够跨语言调用的接口,此处不作具体限定。第一输入数据可以包括广告文件中的广告属性信息和服务器请求中的用户属性信息。第二输入数据可以为广告投放日志数据,广告投放日志数据中可以包括广告id、用户id等。

根据本公开的实施例,线上模块和线下模块采用同一个公共特征抽取模块进行特征抽取,保证了特征抽取结果的一致性,同时避免重复劳动,节省人力。

根据本公开的另一实施例,用于机器学习模型的特征抽取装置,还包括:

数据结构一致化模块,数据结构一致化模块被配置用于对第一输入数据和第二输入数据进行数据结构一致化处理。这里,考虑到第一输入数据和第二输入数据的获取来源不同,二者数据结构存在不一致的情况,在这里,可以对第一输入数据和第二输入数据均采用protobuf(序列化数据数据结构协议)进行数据填充,在其他实施例中,数据结构一致化处理还可以采用apachethrift、hadoopprc等,此处不作具体限定。

图4示出了根据本公开实施例的电子设备400的结构示意图。如图4所示,电子设备400包括中央处理单元(cpu)401,其可以根据存储在只读存储器(rom)402中的程序或者从存储部分408加载到随机访问存储器(ram)403中的程序而执行各种适当的动作和处理。在ram403中,还存储有电子设备操作所需的各种程序和数据。cpu401、rom402以及ram403通过总线404彼此相连。输入/输出(i/o)接口405也连接至总线404。

以下部件连接至i/o接口405:包括键盘、鼠标等的输入部分406;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分407;包括硬盘等的存储部分408;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分409。通信部分409经由诸如因特网的网络执行通信处理。驱动器410也根据需要连接至i/o接口405。可拆卸介质411,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器410上,以便于从其上读出的计算机程序根据需要被安装入存储部分408。

特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,包括承载指令的在计算机可读介质,在这样的实施例中,该指令可以通过通信部分409从网络上被下载和安装,和/或从可拆卸介质411被安装。在该指令被中央处理单元(cpu)401执行时,执行本发明中描述的各个方法步骤。

综上所述,本发明从代码一致性、配置参数一致性和数据格式一致性的方面保证了线上模块和线下模块的特征提取的一致性和通用型,能够真正做到线上线下特征抽取逻辑完全一致。以下的表1列出了本发明和现有技术的比对。

表1

尽管已经描述了示例实施例,但是对于本领域技术人员来说显而易见的是,在不脱离本发明构思的精神和范围的情况下,可以进行各种改变和修改。因此,应当理解,上述示例实施例不是限制性的,而是说明性的。

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