具体实施方式
本说明书的实施例提出一种新的基于关联关系的特征提取方法,以N维基础向量描述某个主体与其他主体之间的关联关系,将基础向量输入限制玻尔兹曼机模型得到降维后的M维二值向量(即各个维度的可能取值为两个预定值之一的向量),并以M维向量作为该主体的特征向量,从而极大的降低了相似度比较和机器学习模型训练时的运算量,减轻了计算压力,提高了运算效率。
本说明书的实施例可以运行在任何具有计算和存储能力的设备上,如手机、平板电脑、PC(Personal Computer,个人电脑)、笔记本、服务器等设备;还可以由运行在两个或两个以上设备的逻辑节点来实现本说明书实施例中的各项功能。
本说明书的实施例中,从用来进行数据挖掘的数据源中,能够提取出主体之间的关联关系。其中,数据源可以是各种各样网络活动的记录,网络活动可以与用户相关,例如用户通过账户发起请求、服务端对用户请求进行响应、用户A向用户B购买商品等;也可以只与网络中非用户的节点有关,如业务服务端向数据库服务端请求数据等等。主体可以是网络活动的参与方、以及进行这些网络活动时所需要使用的各种资源中的部分或全部。其中,网络活动的参与方可以是用户账户、提供某项网络服务的服务端等;需要使用的各种资源可以是用户设备的标识(即设备的唯一标识,如安卓设备的Device-ID、苹果设备的唯一设备识别符等)、用户设备的IMEI(International Mobile Equipment Identity,国际移动设备身份码)、用户设备接入网络的WiFi(无线保真)标识、用户移动终端号码、用户设备或运行服务端的设备的MAC(Media Access Control,媒体访问控制)地址、用户设备或运行服务端的设备的IP地址等等,在一些特定的业务过程中还可以是用户的身份证号、银行卡号等。
网络活动的进行通常需要多个主体的参与,一个具体的网络活动在其所涉及的各个主体之间建立了关联关系。例如,用户A使用手机C向用户B购买商品,则这一购买商品的网络活动在用户A、手机C和用户B这三个主体的两两之间都可以建立关联关系。
本说明书的实施例中,以用来进行数据挖掘的数据源为基础,可以构建出其中记录的网络活动所涉及的所有主体之间的关联关系。可以根据实际应用场景的特点和数据挖掘需求,来选择将数据源中的哪些网络活动的参与方、和/或进行网络活动时需要使用的哪些资源作为主体,以及确定当实施的网络活动具备哪些特点时在这些主体之间建立关联关系;均不做限定
本说明书的实施例中,基于关联关系的特征提取方法的流程如图1所示。上述关联关系建立在N(N为大于1的自然数)个主体之间。
步骤110,根据主体之间的关联关系生成单个主体的N维基础向量。
对N个主体中确定的某一个主体(以下称之为当前主体),都可以用一个N维向量来描述当前主体与其他主体之间的关联关系,称为当前主体的N维基础向量。基础向量的每一维代表N个主体中的一个(包括当前主体自己),该维度的值用来量化该维度所代表的主体与当前主体之间的关联程度。其中,主体之间的关联程度可以包括主体之间有无关联、以及有关联的主体之间的关联强弱度。
在一些应用场景中,对数据挖掘而言有意义的关联关系不仅包括两个主体之间直接的关联关系,还包括两个没有直接关联关系的主体之间以其他主体为中介建立的关联关系。本说明书的实施例中,如果当前主体与某个其他主体之间的具有关联关系,则该其他主体为当前主体的一度关联主体,当前主体与其一度关联主体之间的关联关系称为一度关系;可见,当前主体的一度关联主体包括与当前主体具有关联关系的所有其他主体。设K为大于1的自然数,与当前主体的(K-1)度关联主体具有关联关系、并且不属于当前主体的从一度关联主体到(K-1)度关联主体的所有其他主体,是当前主体的K度关联主体;当前主体与K度关联主体之间的关联关系称为K度关系,当前主体与每个K度关联主体之间的K度关系包括K个关联关系,即从当前主体、经过将当前主体与某个K度关联主体关联起来的(K-1)个作为中介的其他主体、直到该K度关联主体的K个关联关系。在这样应用场景中,可以根据实际需要确定一个K值,当两个主体之间具有K度以内的关联关系(即从一度关系到K度关系中的任意一个)时,认为两个主体之间是有关联的,否则两个主体之间没有关联。
有关联的主体之间的关联强弱度可以从不同的角度来衡量,例如形成两个主体之间的关联关系的网络活动的次数(如两个主体之间进行了10次网络活动,比进行了一次的关联程度更紧密)、网络活动的性质(如进行转账活动的主体之间,比进行加好友的主体之间的关联程度更紧密)、网络活动的额度(如大额支付比小额支付的关联程度更紧密)等,在K度关系的应用场景中还可以包括两个主体之间的关系度数(如一度关系比三度关系的关联程度更紧密)。实际应用场景中,可以采用一个到多个角度来评价主体之间的关联强弱度,不做限定。
在量化当前主体与某个其他主体的关联程度时,可以采用二值来区分这两个主体之间有无关联,如有关联赋值1,无关联赋值0;也可以采用多个实值,不仅区分这两个主体之间有关关联,而且在有关联时反映出关联强弱度,如在无关联赋值0,在有关联时按照关联强弱度从1到5赋值。
可以根据实际应用场景中网络活动的特点、主体的特性、以及数据挖掘的具体需求等因素,来决定在生成单个主体的基础向量时,如何确定两个主体之间有无关联、是否考虑关联强弱度、以及在考虑关联强弱度时如何衡量关联强弱度,本说明书的实施例均不做限定。以下给出几个例子来进行说明。
第一个例子:按照当前主体与其他主体之间的一度关系来生成当前主体的基础向量。即,在当前主体的基础向量中对应于某个其他主体的维度,以不同的值来表示当前主体与该其他主体之间是否具有一度关系、以及一度关系的关联强弱度。
第二个例子:按照当前主体与其他主体之间符合第一筛选条件的关联关系,生成当前主体的基础向量。即,采用第一筛选条件对当前主体与其他主体之间的一度关系进行筛选,在与某个其他主体的一度关系符合第一筛选条件时认为与该其他主体有关联,否则认为与该其他主体没有关联;在当前主体的基础向量中对应于该其他主体的维度,以不同的值表示当前主体与该其他主体之间是否有关联。此外,在有关联时,还可以以不同的值表示关联强弱度。其中,第一筛选条件可以参考衡量一度关系的关联强弱度的各个因素来设置,不做限定。
第三个例子:查找当前主体与其他主体之间的K度关系,按照当前主体与其他主体之间的一度关系到K度关系,生成当前主体的基础向量。即,如果当前主体与某个其他主体之间具有从一度关系到K度关系中的某一个,则认为当前主体与该其他主体有关联,否则认为当前主体与该其他主体无关联;在当前主体的基础向量中对应于该其他主体的维度,以不同的值表示当前主体与该其他主体之间是否有关联。此外,在有关联时,还可以以不同的值表示关联强弱度。
第四个例子:查找当前主体与其他主体之间的K度关系,按照当前主体与其他主体之间的符合第二筛选条件的一度关系到K度关系,生成当前主体的基础向量。即:如果当前主体与某个其他主体之间具有从一度关系到K度关系中的某一个,并且所具有的某度关系满足第二筛选条件,则认为当前主体与该其他主体有关联,否则认为当前主体与该其他主体无关联;在当前主体的基础向量中对应于该其他主体的维度,以不同的值表示当前主体与该其他主体之间是否有关联。此外,在有关联时,还可以以不同的值表示关联强弱度。其中,第二筛选条件针对从一度关系到K度关系中的一个到多个,参考衡量关联强弱度的各个因素来设置,不做限定。
对在当前主体的基础向量中对应于当前主体的维度,可以取值为某个既定值,该既定值可以与对应于某个其他主体的维度的取值相同,也可以与所有对应于所有其他主体的维度的取值均不同,不做限定。
步骤120,将某个主体的基础向量输入训练后的降维模型,以降维模型输出的向量作为该主体的特征向量。
本说明书的实施例中,采用限制玻尔兹曼机(RBM,Restricted BoltzmannMachine)模型来生成降维模型。限制玻尔兹曼机模型是一种可通过输入数据集学习概率分布的随机生成神经网络,由输入层和隐藏层组成,可以用来将高维度的输入数据转化成一个较低维度的二值输出数据。
对二值的主体基础向量,降维模型可以采用二值到二值的限制玻尔兹曼机模型;对实值到二值的主体基础向量,降维模型可以采用实值到二值的限制玻尔兹曼机模型。
降维模型的输入为主体的N维基础向量,输出为主体的M(M为小于N的自然数)维特征向量。在训练降维模型时,可以采用若干个主体的基础向量作为训练样本进行无监督学习,即用步骤110中生成的所有主体基础向量中的部分到全部进行无监督模型训练。
在降维模型训练完毕后,将某个主体的基础向量输入到降维模型,降维模型的输入的二值向量即为该主体的特征向量。
在一些应用场景中,用来进行数据挖掘的数据源中包括两种以上类型的主体,而数据挖掘主要是针对其中一种到多种特定类型的主体来进行,这些特定类型即为本说明书实施例中的目标类型。其中,主体类型的划分可以根据实际应用场景中不同主体对数据挖掘结果的影响来确定,例如在某个账户使用的设备数量对挖掘结果有一定的影响的应用场景中,可以将账户作为一种主体类型,将用户使用的设备作为另一种主体类型;再如,在数据源中记录的网络活动无需登录即可进行、并且网络活动是否由相同账户或相同设备进行对挖掘结果基本没有影响的应用场景中,可以将账户和用户使用的设备作为一种主体类型。目标类型可以根据数据挖掘的具体需求、主体类型的划分、不同类型主体对挖掘结果的影响等因素来确定,例如,在识别黑产团伙的应用场景中,账户通常是挖掘目标类型;再如,在以用户端设备来预测用户消费行为的应用场景中,可以将手机和平板电脑这两种主体类型都作为挖掘目标类型。
在这样的应用场景中,可以只生成目标类型主体的基础向量,即根据与其他主体的关联关系生成每个目标类型主体的基础向量;以若干个目标类型主体的基础向量构成训练样本对降维模型进行训练,训练完毕后,将某个目标类型主体的基础向量输入训练后的降维模型,以降维模型输出的向量作为所述目标类型主体的特征向量。
可见,本说明书的实施例中,以N维基础向量描述某个主体与其他主体之间的关联关系,采用以N维向量为输入、以M维向量为输出的限制玻尔兹曼机模型,将N维基础向量降维为M维特征向量,极大的降低了相似度比较和机器学习模型训练时的运算量,提高了运算效率,加快了数据挖掘的速度。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
在本说明书的一个应用示例中,第三方支付平台以预定时间段内用户账户之间的资金往来记录为数据源,通过用户账户之间的资金往来关系,来发现协同从事非法行为的黑产团伙。反映某个账户与其他账户之间的资金往来关系的特征,是用于黑产团伙发现的机器学习模型的重要输入变量。第三方支付平台采用图2所示的流程来进行基于资金往来关系(一种关联关系)的特征提取。
步骤210,关联关系图构建:以数据源中资金往来记录为依据,以账户作为主体,在数据源涉及的所有账户之间建立关联关系。具体而言,以数据源涉及的每个账户(即每个主体)为一个节点,以账户之间曾经发生资金往来活动为边,生成反映资金往来的关联关系图。设关联关系图中共N个节点(即账户总数为N)。
步骤220,邻居发现及基础向量生成:为每个节点生成一个N维向量作为该节点的基础向量,所有基础向量的每一个维度对应于关联关系图中的一个节点。
分别以关联关系图中的每个节点作为当前主体,查找与该节点通过边直接相连的每个邻居,作为当前主体的一度关联主体;再查找该节点与该节点每个邻居通过边直接相连的节点,将这些节点中除当前主体及其一度关联主体以外的节点作为当前节点的二度关联主体。如果某个其他节点是当前节点的一度关联主体或二度关联主体,则将当前节点的基础向量中对应于该其他节点的维度值置为1,否则置为0。基础向量中对应于当前节点的维度值置为1。重复上述过程
对所有节点执行上述过程,可以得到N个节点的基础向量。
步骤230,降维模型训练:以输入为N维向量、输出为二值M维向量的限制玻尔兹曼机模型作为降维模型,以N个节点的基础向量中的一部分作为训练样本,对降维模型进行无监督训练。
步骤240,降维模型保存:保存训练完毕的降维模型。
步骤250,特征压缩:将节点的基础向量输入保存的降维模型,即可得到该节点的M维二值特征向量。
与上述流程实现对应,本说明书的实施例还提供了一种基于关联关系的特征提取装置。该装置可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为逻辑意义上的装置,是通过所在设备的CPU(Central Process Unit,中央处理器)将对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,除了图3所示的CPU、内存以及存储器之外,基于关联关系的特征提取装置所在的设备通常还包括用于进行无线信号收发的芯片等其他硬件,和/或用于实现网络通信功能的板卡等其他硬件。
图4所示为本说明书实施例提供的一种基于关联关系的特征提取装置,所述关联关系建立在N个主体之间,N为大于1的自然数;所述装置包括基础向量单元和降维输出单元,其中:基础向量单元用于根据主体之间的关联关系生成单个主体的N维基础向量;降维输出单元用于将某个主体的基础向量输入训练后的降维模型,以降维模型输出的向量作为所述主体的特征向量;所述降维模型是输入为N维向量、输出为M维向量的限制玻尔兹曼机模型,采用若干个所述主体的基础向量作为样本进行模型训练,M为小于N的自然数。
在一种实现方式中,所述基础向量单元包括K度关系子单元和向量生成子单元,其中:K度关系子单元用于查找当前主体与其他主体之间的K度关系,K为大于1的自然数;每个所述K度关系为当前主体与当前主体的某个K度关联主体之间的K个关联关系;所述当前主体的K度关联主体包括与当前主体的(K-1)度关联主体具有关联关系、并且不属于当前主体的一度关联主体到(K-1)度关联主体的所有其他主体;所述当前主体的一度关联主体包括与当前主体具有关联关系的所有其他主体;向量生成子单元用于按照当前主体与其他主体之间的一度关系到K度关系,生成当前主体的N维基础向量;所述一度关系为当前主体与当前主体的一度关联主体之间的关联关系。
上述实现方式中,所述向量生成子单元具体用于:按照当前主体与其他主体之间符合第二筛选条件的一度关系到K度关系,生成当前主体的N维基础向量。
可选的,所述基础向量单元具体用于:按照当前主体与其他主体之间符合第一筛选条件的关联关系,生成当前主体的N维基础向量。
可选的,所述主体包括至少两种类型,其中至少一种类型为目标类型;所述基础向量单元具体用于:根据与其他主体的关联关系生成每个目标类型主体的N维基础向量;所述降维输出单元具体用于:将某个目标类型主体的基础向量输入训练后的降维模型,以降维模型输出的向量作为所述目标类型主体的特征向量;所述降维模型采用若干个所述目标类型主体的基础向量作为样本进行模型训练。
可选的,所述降维模型为实值到二值的玻尔兹曼机模型、或二值到二值的玻尔兹曼机模型。
本说明书的实施例提供了一种计算机设备,该计算机设备包括存储器和处理器。其中,存储器上存储有能够由处理器运行的计算机程序;处理器在运行存储的计算机程序时,执行本说明书实施例中基于关联关系的特征提取方法的各个步骤。对基于关联关系的特征提取方法的各个步骤的详细描述请参见之前的内容,不再重复。
本说明书的实施例提供了一种计算机可读存储介质,该存储介质上存储有计算机程序,这些计算机程序在被处理器运行时,执行本说明书实施例中基于关联关系的特征提取方法的各个步骤。对基于关联关系的特征提取方法的各个步骤的详细描述请参见之前的内容,不再重复。
以上所述仅为本说明书的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书的实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书的实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。