具体实施方式
下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
上述相关技术中,还可以利用诸如卷积神经网络(Convolutional NeuralNetworks,CNN)等有监督模型来实现特征工程,以提高特征工程的效率。但是有监督模型在训练过程中需要对样本数据设置标签,造成特征工程的成本较高。此外标签的质量也会影响到提取的特征数据的质量。考虑到上述相关技术中的特征工程的方式效率较低、成本较高的问题,若利用对抗网络(GAN,Generative Adversarial Networks)来实现特征工程,由于对抗网络是一种无监督模型,那么不仅可以提高特征工程的效率,还可以降低特征工程的成本。
请参阅图1。本说明书实施例提供一种对抗网络。
所述对抗网络可以是一种无监督的机器学习模型,具体可以包括生成模型(Generative Model)和判别模型(Discriminative Model)。所述生成模型可以与所述判别模型相连接。其中,所述生成模型可以用于生成与已有真样本数据相类似的假样本数据。在实际应用中,所述真样本数据可以为预先准备的无标签样本数据,用于对所述对抗网络进行训练。所述生成模型具体可以利用服从特定分布(例如随机分布、均匀分布、高斯分布等)的噪声数据生成所述假样本数据;或者,还可以利用已有真样本数据生成所述假样本数据。所述生成模型例如可以采用全连接神经网络、卷积神经网络模型、循环神经网络模型或长短期记忆网络模型等模型来实现。所述判别模型可以用于区分输入自身的数据为真样本数据或假样本数据。所述判别模型例如可以采用全连接神经网络、卷积神经网络模型、循环神经网络模型或长短期记忆网络模型等模型来实现。在实际应用中,所述判别模型例如可以为采用以上模型来实现的二分类器。这样所述判别模型的输出可以为概率值,所述概率值可以用于表示输入自身的数据为真样本数据(或假样本数据)的概率。
所述判别模型还可以进一步包括特征提取子模型和分类子模型。所述特征提取子模型可以与所述生成模型相连接,所述分类子模型可以与所述特征提取子模型相连接。其中,所述特征提取子模型可以用于从输入自身的数据中提取特征数据,所述分类子模型可以用于根据提取的特征数据区分输入特征提取子模型的数据为真样本数据或假样本数据。在实际应用中,所述分类子模型的输出可以为概率值,所述概率值可以用于表示输入特征提取子模型的数据为真样本数据(或假样本数据)的概率。所述特征提取子模型和所述分类子模型可以分别为所述判别模型的不同组成部分。例如,所述判别模型可以采用卷积神经网络来实现。那么所述特征提取子模型可以包括所述卷积神经网络的输入层和隐含层(例如卷积层、采样层等),所述分类子模型可以包括所述卷积神经网络的输出层。
以下介绍在本说明书实施例中所述对抗网络的训练过程。
所述对抗网络的训练过程可以理解为所述生成模型和所述判别模型之间的博弈过程。具体地,所述生成模型可以接收服从特定分布的噪声数据作为输入,其训练目标可以是生成非常逼真的假样本数据来迷惑所述判别模型。将预先准备的无标签样本数据作为真样本数据,所述判别模型可以以所述真样本数据和所述假样本数据为输入,其训练目标可以是区分输入自身的数据为真样本数据或假样本数据。在实际应用中,可以交替训练所述生成模型和所述判别模型,直至满足迭代条件,从而实现对所述对抗网络的训练。所述迭代条件可以包括:迭代次数达到预设次数、所述对抗网络满足收敛条件等等。所述对抗网络的收敛条件可以根据需要灵活设定。所述对抗网络的收敛条件例如可以为:所述判别模型无法准确判断输入自身的数据为真样本数据或假样本数据。
以下基于一个场景示例介绍对抗网络的具体训练过程。所述场景示例可以应用于众多通用或专用的设备中,诸如个人计算机、服务器、手持设备、便携式设备、平板型设备、或多处理器设备等,或者包括以上任何设备的分布式计算环境等等。
第一阶段:保持生成模型不变,单独训练判别模型。
在第一阶段,所述设备可以保持生成模型不变;可以将服从特定分布的噪声数据输入至生成模型,可以将生成模型的输出作为假样本数据。所述设备可以将预先准备的无标签样本数据作为真样本数据。这样所述设备便拥有了真样本数据和假样本数据。如此所述设备可以将所述真样本数据的标签的取值设置为第一数值;可以将所述假样本数据的标签的取值设置为第二数值;可以分别将所述真样本数据和所述假样本数据输入至所述判别模型,以对所述判别模型进行训练。对所述判别模型进行训练的过程,可以理解为对所述判别模型的模型参数进行调整的过程。例如,所述判别模型可以为二分类器。所述第一数值可以为1,所述第二数值可以为0。对所述判别模型进行训练的训练目标可以为:若输入判别模型的数据为真样本数据,则所述判别模型输出的概率值趋近于1;若输入判别模型的数据为假样本数据,则所述判别模型输出的概率值趋近于为0。值得说明的是,这里的1和0仅为示例。实际上根据需要,所述第一数值和所述第二数值还可以分别为其它的数值。
第二阶段:保持判别模型不变,单独训练生成模型。
经过第一阶段便实现了对所述判别模型的训练。在第二阶段,所述设备可以保持训练后的判别模型不变;可以将服从特定分布的噪声数据输入至生成模型,可以将生成模型的输出作为假样本数据。这样所述设备便拥有了假样本数据。所述设备可以将所述假样本数据视作真样本数据,进而将所述假样本数据的标签的取值设置所述第一数值;可以将所述假样本数据输入至训练后的判别模型,得到训练后的判别模型输出的概率值;可以根据所述第一数值和所述概率值计算识别误差;可以根据所述识别误差调整所述生成模型的模型参数,以实现对所述生成模型的训练。在实际应用中,在识别误差较大时,所述设备可以较大幅度地调整所述生成模型的模型参数;在识别误差较小时,所述设备可以较小幅度地调整所述生成模型的模型参数。例如,所述判别模型可以为二分类器。所述第一数值可以为1。对所述生成模型的训练目标可以为:所述识别误差趋近于0。
经过第二阶段便实现了对所述生成模型的训练。在实际应用中可以重复执行所述第一阶段和所述第二阶段,以便对所述判别模型和所述生成模型进行多次训练,直至满足迭代条件。所述迭代条件可以包括:迭代次数达到预设次数、所述对抗网络满足收敛条件等等。所述对抗网络的收敛条件可以根据需要灵活设定。所述对抗网络的收敛条件例如可以为:所述判别模型无法准确判断输入自身的数据为真样本数据或假样本数据。具体地,例如,所述设备可以将预先准备的用于测试的样本数据作为第一测试样本数据,所述第一测试样本数据具体可以为真样本数据。所述设备还可以将服从特定分布的噪声数据输入至生成模型,可以将生成模型的输出作为第二测试样本数据,所述第二测试样本数据具体可以为假样本数据。那么所述对抗网络的收敛条件可以为:所述设备分别将所述第一测试样本数据和所述第二测试样本数据输入至判别模型,所述判别模型输出的概率值均为0.5。
需要说明的是,以上在对抗网络的训练过程中设置的第一数值和第二数值,仅仅是为了区分预先准备的无标签样本数据和生成模型生成的样本数据。并不意味着对预先准备的无标签样本数据设置了标签,以在预先准备的无标签样本数据内部区分不同的无标签样本数据。
请参阅图2。本说明书实施例提供一种特征数据获取方法。该实施例可以应用于众多通用或专用的设备中,诸如个人计算机、服务器、手持设备、便携式设备、平板型设备、或多处理器设备等,或者包括以上任何设备的分布式计算环境等等。该实施例可以包括以下步骤。
步骤S10:将用户行为数据输入至判别模型,将所述判别模型中特征提取子模型的输出作为所述用户行为数据对应的特征数据。
在一些实施例中,所述用户行为数据可以用于描述用户的操作行为,具体可以包括至少一个子用户行为数据。每个子用户行为数据可以对应一个描述维度。所述描述维度可以包括行为标识、发生时刻、设备标识、交易渠道、交易场景、交易金额、付款账户和收款账户等中的至少一个。其中,所述行为标识可以用于标识用户的操作行为,所述操作行为具体可以包括交易操作、商品评论操作和账户登录操作等中的至少一个。所述发生时刻可以为用户操作行为的发生时刻。所述设备标识可以用于标识生成所述用户行为数据的设备。在一个场景示例中,所述描述维可以度包括行为标识、发生时刻和设备标识。下表1具体示出了4个用户行为数据所包括的子用户行为数据。
表1
行为标识 |
发生时刻 |
设备标识 |
1 |
20180430 |
A |
2 |
20180501 |
B |
3 |
20180706 |
C |
1 |
20180930 |
D |
当然,上述场景中的描述维度仅为示例,在实际中可以根据业务的需要,灵活的设定描述维度。例如,在另一个场景示例中,所述描述维度可以包括行为标识、发生时刻、交易渠道、交易场景、交易金额、付款账户、收款账户和设备标识。
在一些实施例中,所述判别模型可以基于无标签样本数据在对抗网络中训练得到,具体的训练过程可以参见前面的描述,在此不再赘述。利用所述判别模型中的特征提取子模型,可以从用户行为数据中提取特征数据。所述特征数据能够很好地反映所述用户行为数据所具有的特征,可以在后续过程中供诸如风险检测模型、分类模型等数据处理模型使用。
在一些实施例中,所述设备可以将至少一个用户行为数据输入至所述判别模型;可以将所述判别模型中特征提取子模型的输出作为所述至少一个用户行为数据对应的特征数据。在一个场景示例中,所述特征数据可以表示为特征向量。那么,在所述设备将一个用户行为数据输入至所述判别模型后,所述判别模型中特征提取子模型输出的特征向量可以包括一个数据元素。在所述设备将多个用户行为数据输入至所述判别模型后,所述判别模型中特征提取子模型输出的特征向量可以包括多个数据元素,每个数据元素可以对应一个用户行为数据。
在本实施例的一个实施方式中,所述设备可以直接将至少一个用户行为数据输入至所述判别模型。
在本实施例的另一个实施方式中,请参阅图3。所述设备还可以对至少一个用户行为数据进行降维处理;可以将降维处理后的至少一个用户行为数据输入至所述判别模型。所述设备可以采用任意方式对至少一个用户行为数据进行降维处理,例如利用神经网络的全连接层对至少一个用户行为数据进行降维处理。在一个场景示例中,所述设备输入至所述判别模型的用户行为数据的数量较少(例如小于或等于第一预设阈值),和/或,每个用户行为数据所包括的子用户行为数据的数量较少(例如小于或等于第二预设阈值),那么,所述设备可以将至少一个用户行为数据转换为一维矩阵;可以对所述一维矩阵进行降维处理;可以将降维处理后的一维矩阵输入至所述判别模型。例如,针对所述至少一个用户行为数据中的每个用户行为数据,所述设备可以将该用户行为数据中的各个子用户行为数据进行拼接,得到该用户行为数据对应的字符串;可以将该字符串作为所述一维矩阵中的一个数据元素。具体地,例如,所述设备输入至所述判别模型的用户行为数据的数量为4个。所述4个用户行为数据具体可以如前面的表1所示。那么,所述设备可以将所述4个用户行为数据转换为一维矩阵[120180430A 220180501B 320180706C 120180930D]。
在本实施例的另一个实施方式中,请参阅图4。所述设备还可以将至少一个用户行为数据转换为二维矩阵;可以将所述二维矩阵输入至所述判别模型。在一个场景示例中,所述设备输入至所述判别模型的用户行为数据的数量较多(例如大于所述第一预设阈值),和/或,每个用户行为数据所包括的子用户行为数据的数量较多(例如大于所述第二预设阈值),那么,所述设备可以将至少一个用户行为数据转换为二维矩阵。例如,针对所述至少一个用户行为数据中的每个用户行为数据,所述设备可以将该用户行为数据中的每个子用户行为数据作为所述二维矩阵中的一个数据元素,从而实现将所述至少一个用户行为数据转换为二维矩阵。具体地,例如,所述设备输入至所述判别模型的用户行为数据的数量为4个。所述4个用户行为数据具体可以如前面的表1所示。那么,所述设备可以将所述4个用户行为数据转换为二维矩阵
本说明书实施例的特征数据获取方法,利用对抗网络中判别模型的特征提取子模型,可以快速提取用户行为数据对应的特征数据,提高了特征工程的效率。
以下介绍本说明书实施例的一个应用场景示例。
在金融风控领域,通常需要使用黑白样本数据对数据处理模型(例如分类模型)进行训练,进而可以使用训练后的数据处理模型从大量的交易数据中识别出涉及欺诈等违法内容的交易数据。其中,所述黑样本数据可以为预先准备的涉及欺诈等违法内容的交易数据,所述白样本数据可以为预先准备的正常的交易数据。通常情况下,所述黑样本数据的数量较少,所述白样本数据的数量较多,这样若直接使用黑白样本数据对数据处理模型进行训练,会导致数据处理模型的过拟合问题。
基于前面实施例中的特征数据获取方法可以解决所述过拟合问题。具体地,在实际应用中,可以将所述黑样本数据输入至判别模型;可以将所述判别模型中特征提取子模型的输出作为所述黑样本数据对应的特征数据(为了便于描述,以下称为第一特征数据);可以采用SMOTE(Synthetic Minority Oversampling Technique)等数据扩充算法对所述第一特征数据进行扩充,得到扩充后的第一特征数据。此外,还可以将所述白样本数据输入至判别模型;可以将所述判别模型中特征提取子模型的输出作为所述白样本数据对应的特征数据(为了便于描述,以下称为第二特征数据)。如此可以利用扩充后的第一特征数据和所述第二特征数据训练所述数据处理模型。这样便解决了所述过拟合问题。
本说明书实施例提供一种服务器。图5是本说明书实施例中一种设备的硬件结构示意图。如图5所示,所述服务器可以包括一个或多个(图中仅示出一个)处理器、存储器和传输模块。当然,本领域普通技术人员可以理解,图5所示的硬件结构仅为示意,其并不对上述服务器的硬件结构造成限定。在实际中所述服务器还可以包括比图5所示更多或者更少的组件单元,或者具有与图5所示不同的配置。
所述存储器可以包括高速随机存储器;或者,还可以包括非易失性存储器,例如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。当然,所述存储器还可以包括远程设置的网络存储器。所述远程设置的网络存储器可以通过诸如互联网、企业内部网、局域网、移动通信网等网络连接至所述服务器。所述存储器可以用于存储应用软件的程序指令或模块,例如本说明书实施例中特征数据获取方法对应的程序指令或模块。
所述处理器可以按任何适当的方式实现。例如,所述处理器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific IntegratedCircuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式等等。所述处理器可以读取并执行所述存储器中的程序指令或模块。
所述传输模块可以用于经由网络进行数据传输,例如经由诸如互联网、企业内部网、局域网、移动通信网等网络进行数据传输。
在所述服务器的软件层面,如图6所示,本说明书实施例提供一种特征数据获取装置。所述特征数据获取装置可以包括以下单元。
获取模块20,用于将用户行为数据输入至判别模型,将所述判别模型中特征提取子模型的输出作为所述用户行为数据对应的特征数据;其中,所述判别模型基于无标签样本数据在对抗网络中训练得到。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同或相似的部分互相参见即可,每个实施例重点说明的都是与其它实施例的不同之处。尤其,对于服务器实施例和装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。另外,可以理解的是,本领域技术人员在阅读本说明书文件之后,可以无需创造性劳动想到将本说明书列举的部分或全部实施例进行任意组合,这些组合也在本说明书公开和保护的范围内。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片2。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog2。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本说明书可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本说明书各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于服务器实施例和装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
虽然通过实施例描绘了本说明书,本领域普通技术人员知道,本说明书有许多变形和变化而不脱离本说明书的精神,希望所附的权利要求包括这些变形和变化而不脱离本说明书的精神。