本申请涉及计算机技术领域,特别涉及累积型变量特征自动生成技术。
背景技术:
automl是谷歌的一个能够制造子ai的ai系统,是目前比较热门的研究领域,期望能够实现模型学习的自动化。而变量生成是automl领域里最关键的环节之一。另一方面,目前的数据分析行业,特征工程的成本也非常巨大,因此特征自动生成的价值是巨大的。
目前行业内针对velocity变量生成有一些方案,比如随机生成一批velocity变量,之后进行有监督方式进行变量删选,将优秀的变量保留下来,之后再对变量的参数进行随机游走,以进一步生成新的velocity。该类方法的缺点,是在生成新的velocity的时候,没有针对性的往更好的方向生成,因此不容易找到好的velocity变量,或者找到好的velocity变量的效率比较低。
技术实现要素:
本申请的目的在于提供一种累积型变量特征自动生成方法及其系统,可以提高找到理想累积型变量特征的效率。
为了解决上述问题,本申请公开了一种累积型变量特征自动生成方法,对以下步骤至少迭代一次,将最后一次迭代后所得的累积型变量作为自动生成的累积型变量特征:
生成多个累积型变量,其中至少部分累积型变量根据效用矩阵中的概率值生成,该效用矩阵包括至少一个向量,每个向量对应累积型变量的一个参数,向量的长度为对应参数的枚举值个数,向量中的每一个值是参数枚举值生成的概率值;
对生成的该累积型变量的性能进行评估;以及,
根据该评估的评估结果调整该效用矩阵中的概率值。
在一个优选例中,该效用矩阵所包括的向量为:主体,客体,函数,时间和条件。
在一个优选例中,该评估指标包括单变量分析的指标,和/或,多变量分析的指标。
在一个优选例中,该单变量分析的指标包括以下之一或其任意组合:iv,ks,单bin最大准确率,模型重要性。
在一个优选例中,该多变量分析的指标包括以下之一或其任意组合:stepwise,vif,correlation。
在一个优选例中,该生成多个累积型变量的步骤中,至少一个累积型变量以随机方式生成。
在一个优选例中,该生成多个累积型变量的步骤中,至少一个累积型变量进行过主体之间的交叉或者条件之间的交叉。
在一个优选例中,在第一次迭代之前,该效用矩阵中以0-1之间的随机数初始化,或使用其他场景下训练好的效用矩阵。
在一个优选例中,该根据该评估的评估结果调整该效用矩阵中的概率值,进一步包括:
将每一个该累积型变量的该评估结果分配到该累积型变量的所有参数维度中;
计算维度层面的值;
根据该维度层面的值,更新该效用矩阵;
对该效用矩阵中每一个维度进行归一化处理。
在一个优选例中,该更新该效用矩阵的步骤中,该效用矩阵中每一个值的更新公式为:q=q+α(γq'-q),其中q为本次迭代前该效用矩阵中的值,q'为该维度层面的值,α为学习率,取值范围[0~1],γ为衰减因子,取值范围[0~1]。
本申请还公开了一种累积型变量特征自动生成系统,包括:
生成模块,用于生成多个累积型变量,其中至少部分累积型变量根据效用矩阵中的概率值生成,该效用矩阵包括至少一个向量,每个向量对应累积型变量的一个参数,向量的长度为对应参数的枚举值个数,向量中的每一个值是参数枚举值生成的概率值;
评估模块,用于对生成的该累积型变量的性能进行评估;以及,
调整模块,用于根据该评估的评估结果调整该效用矩阵中的概率值;
该生成模块、该评估模块和该调整模块协同进行至少一次迭代,将最后一次迭代后所得的累积型变量作为自动生成的累积型变量特征。
在一个优选例中,该效用矩阵所包括的向量为:主体,客体,函数,时间和条件。
在一个优选例中,该评估指标包括单变量分析的指标,和/或,多变量分析的指标。
在一个优选例中,该单变量分析的指标包括以下之一或其任意组合:iv,ks,单bin最大准确率,模型重要性。
在一个优选例中,该多变量分析的指标包括以下之一或其任意组合:stepwise,vif,correlation。
在一个优选例中,该生成模块生成的多个累积型变量中,至少一个累积型变量以随机方式生成。
在一个优选例中,该生成模块生成的多个累积型变量中,至少一个累积型变量进行过主体之间的交叉或者条件之间的交叉。
在一个优选例中,还包括初始化模块,用于对该效用矩阵进行初始化,其中,该效用矩阵中以0-1之间的随机数初始化,或使用其他场景下训练好的效用矩阵。
在一个优选例中,该调整模块进一步包括:
分配子模块,用于将每一个该累积型变量的该评估结果分配到该累积型变量的所有参数维度中;
计算子模块,用于计算维度层面的值;
更新子模块,用于根据该维度层面的值,更新该效用矩阵;
归一化子模块,用于对该效用矩阵中每一个维度进行归一化处理。
在一个优选例中,该更新子模块使用以下公式更新该效用矩阵:q=q+α(γq'-q),其中q为本次迭代前该效用矩阵中的值,q'为该维度层面的值,α为学习率,取值范围[0~1],γ为衰减因子,取值范围[0~1]。
本申请还公开了一种累积型变量特征自动生成系统,包括:
存储器,用于存储计算机可执行指令;以及,
处理器,用于在执行该计算机可执行指令时实现如前文描述的方法中的步骤。
本申请还公开了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现如前文描述的方法中的步骤。
本申请实施方式能够快速寻找到对业务有显著性的累积型变量特征,对比一般的随机游走方案,该方案的收敛速度更快。
本申请的说明书中记载了大量的技术特征,分布在各个技术方案中,如果要罗列出本申请所有可能的技术特征的组合(即技术方案)的话,会使得说明书过于冗长。为了避免这个问题,本申请上述发明内容中公开的各个技术特征、在下文各个实施方式和例子中公开的各技术特征、以及附图中公开的各个技术特征,都可以自由地互相组合,从而构成各种新的技术方案(这些技术方案均因视为在本说明书中已经记载),除非这种技术特征的组合在技术上是不可行的。例如,在一个例子中公开了特征a+b+c,在另一个例子中公开了特征a+b+d+e,而特征c和d是起到相同作用的等同技术手段,技术上只要择一使用即可,不可能同时采用,特征e技术上可以与特征c相组合,则,a+b+c+d的方案因技术不可行而应当不被视为已经记载,而a+b+c+e的方案应当视为已经被记载。
附图说明
图1是根据本申请第一实施方式的累积型变量特征自动生成方法流程示意图
图2是根据本申请第二实施方式的累积型变量特征自动生成系统结构示意图
图3是根据本申请一个例子的累积型变量特征自动生成方法流程示意图
图4是根据本申请一个例子的进一步结合进化算法的velocity生成方案
具体实施方式
在以下的叙述中,为了使读者更好地理解本申请而提出了许多技术细节。但是,本领域的普通技术人员可以理解,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。
部分概念的说明:
累积型变量(velocity变量),一种变量,一般包含多个参数,且这多个参数中的至少一个参数可基于一定的累积时间和累积方式累积得到。作为一个例子,这多个参数可以包括累积主体、累积时间、累积指标和累积方式,当然还可以包含其他参数。这多个参数任意组合或按一定的顺序组合即可得到一个累积型变量。例如,如果将累积主体、累积时间、累积指标和累积方式这四个参数分别用a、b、c、d表示,将其他参数用e表示,可以得到v=velocity(a,b,c,d,e)这样一个累积型变量,或者得到v=velocity(a,c,d,b,e)这样一个累积型变量,等等。其中,累积主体例如可以是设备或账户等,累积时间例如可以为过去2小时或过去7天等,累积指标例如可以为消费金额或消费次数等,累积方式例如可以为求最大值、求和或求平均值等;其他参数例如可以为是否由手机操作或是否为实物交易等等。具体的,假如a为“账户a”,b为“过去7天”,c为“消费金额”,d为“求和”,e为“实物交易场景”。累积型变量v=velocity(a,b,c,d,e)表示的含义可以为:“账户a”上“过去7天”的“消费金额”的“总和”仅限“实物交易场景”。累积型变量为v=velocity(b,a,c,d,e)表示的含义可以为:“过去7天”“账户a”上的“消费金额”的“总和”仅限“实物交易场景”。
iv:informationvalue,信息值,可以用来衡量自变量的预测能力。
ai:artificialintelligence,人工智能
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请的实施方式作进一步地详细描述。
本申请的第一实施方式涉及一种累积型变量特征自动生成方法,其流程如图1所示,该方法包括以下步骤:
在步骤101中,生成多个累积型变量,其中至少部分累积型变量根据效用矩阵中的概率值生成,效用矩阵包括至少一个向量,每个向量对应累积型变量的一个参数,向量的长度为对应参数的枚举值个数,向量中的每一个值是参数枚举值生成的概率值,每一个向量用于生成累积型变量中的一个参数。在一个实施例中,效用矩阵所包括的向量为:主体,客体,函数,时间和条件。
生成多个累积型变量的方式可以多种多样的。可选地,所有的累积型变量都根据效用矩阵生成。可选地,一部分的累积型变量根据效用矩阵生成,另一部分累积型变量随机生成。可选地,一部分的累积型变量根据效用矩阵生成,另一部分累积型变量随机生成,还有一部分的累积型变量通过主体之间的交叉或者条件之间的交叉生成,这样可以将进化算法结合进来,以增强累积型变量生成的完整性。
此后进入步骤102,对生成的累积型变量的性能进行评估。用于性能评估的评估指标包括单变量分析的指标,和/或,多变量分析的指标。其中单变量分析的指标可以是例如iv,ks,单bin最大准确率或者模型重要性等,多变量分析的指标可以是例如stepwise,vif,correlation等。
此后进入步骤103,根据评估的评估结果调整效用矩阵中的概率值。在一个实施例中,本步骤进一步包括:
将每一个累积型变量的评估结果分配到该累积型变量的所有参数维度中。
计算维度层面的值。每一个向量即一个维度。
根据维度层面的值,更新效用矩阵。其中,效用矩阵中每一个值的更新公式为:q=q+α(γq′-q),其中q为本次迭代前效用矩阵中的值,q′为维度层面的值,α为学习率,取值范围[0~1],γ为衰减因子,取值范围[0~1]。
对效用矩阵中每一个维度进行归一化处理。
在其他实施例中,也可以使用其他算法调整效用矩阵中的概率值。
上述步骤101-103至少迭代一次,将最后一次迭代后所得的累积型变量作为自动生成的累积型变量特征。
在第一次迭代之前,需要对效用矩阵进行初始化。可选地,效用矩阵中以0-1之间的随机数初始化(即效用矩阵中的每一个值被初始化为大于等于0小于等于1的一个随机数)。可选地,使用其他场景下训练好的效用矩阵作为初始的效用矩阵。
为了能够更好地理解本申请的技术方案,下面结合一个具体的例子来进行说明,该例子中罗列的细节主要是为了便于理解,不作为对本申请保护范围的限制。
在自动生成velocity变量的问题中,我们定义效用矩阵q由5个一维向量组成,每一维向量,代表了velocity变量的一个参数,其向量长度为该参数的枚举值个数。velocity变量一般由5个维度参数组成:主体,客体,函数,时间,以及条件。假设一个velocity变量名为“用户历史1天余额宝交易次数”,那么该velocity变量主体为“用户”,客体为“交易”,函数为“cnt”(代表计数的函数),时间为“1天”,条件为“交易渠道=‘余额宝’”。
有了如上定义,下面来解说生成velocity的逻辑,假设我们的velocity变量的参数空间如下:主体:【”用户“,”商户“】,客体:【”交易“,”设备“】,函数:【”cnt“】,时间:【”1天“,”3天“】,条件:【”交易渠道=’余额宝’”】,生成逻辑如下(如图3所示):
步骤301:初始化效用矩阵q,比如可以进行0至1之间(含0和1)的随机数生成,或者可以使用之前其他场景训练好的q直接在该场景中作为最初的q。基于以上的例子,假设我们使用随机数初始化q,则q包含主体向量[0.7(用户),0.3(商户)],客体向量[0.4(交易),0.6(设备)],函数向量[1(cnt)],时间向量[0.3(1天),0.7(3天)],条件向量[1(余额宝)]。其中的0.7、0.3、0.4、0.6、1等数值是初始化产生的随机数,也可以使用经验数值。
此后进入步骤302:q中的每一个值代表的是参数枚举值生成的概率,那么我们可以根据q,生成n个velocity变量(假设n=2,实际应用中,n可以人工设定,或由系统自定义给出)。根据步骤301中的例子,可以知道主体中用户被选择的概率(0.7)要大于商户被选择的概率(0.3),因此很有可能生成的两个velocity的主体均为“用户”。换句话说,在主体向量中有两个可能的取值(用户或商户),其中70%的可能性是用户,30%的可能性是商户,随机产生两个velocity,每个velocity中的主体可能是用户也可能是商户,因为用户的可能性大(70%),如果只生成两个velocity的话,有比较大的可能是两个velocity的主体都是用户。以此类推,可以知道如何根据q去生成velocity。假设这一步中生成了两个velocity分别为,用户历史3天余额宝交易次数,和用户历史1天余额宝交易次数。
此后进入步骤303:评估步骤302生成的变量性能,评估指标包括单变量分析如iv,ks(kolmogorov-smirnov),准确率或者模型重要性等,多变量分析如stepwise,vif,correlation等。然后根据用户的预设,将显著的变量存入到变量池中。假设velocity用户历史3天余额宝交易次数的iv=0.5,用户历史1天余额宝交易次数的iv=0.1,假设用户预设仅将iv>0.2的变量保留,那么在这一步中,velocity用户历史3天余额宝交易次数被保留了下来。
此后进入步骤304:根据步骤302生成的velocity变量的变量性能更新q。假设我们以iv来更新q:
(a)变量iv平均的被分配到每一个参数维度中去,如上举例,由于用户历史3天余额宝交易次数的iv=0.5,那么用户iv=0.5,3天iv=0.5,余额宝iv=0.5,交易iv=0.5,cntiv=0.5,用户历史1天余额宝交易次数的iv=0.1,那么用户iv=0.1,1天iv=0.1,余额宝iv=0.1,交易iv=0.1,cntiv=0.1。
(b)获取维度层面的值,这里使用avg(求平均)。如上举例,得到用户iv=(0.5+0.1)/2=0.3,余额宝iv=0.3,交易iv=0.3,cntiv=0.3,1天iv=0.1,3天iv=0.5。
(c)更新q中对应维度枚举值的q值,q中的每一个值的更新公式如下:
q=q+α(γq′-q),其中,
q代表q中的值,等号右侧的q是当前效用值,即当前q中的值,等号左侧的q是更新后的q中的值;q′是下一步效用值,即当前轮的迭代中计算得到的iv;α是学习率,取值范围[0~1],代表每一轮迭代的q值的更新程度,当学习率=1时,每一次计算的值将直接替换原有的值;γ是衰减因子,取值范围[0~1],代表每一轮迭代得到当前的值去最终影响q的程度,当衰减因子接近0时,当前迭代得到的结果对最终q值的更新几乎不影响。
假设学习率=1,衰减因子=1,如上举例,则
用户iv=0.7(原始用户q值)+(0.3–0.7)=0.3
余额宝iv=0.3
交易iv=0.3
cntiv=0.3
1天iv=0.1
3天iv=0.5
因此q值变为:主体向量[0.3(用户),0.3(商户)],客体向量[0.3(交易),0.6(设备)],函数向量[0.3(cnt)],时间向量[0.1(1天),0.5(3天)],条件向量[0.3(余额宝)]
(d)每一个维度取softmax处理(即归一化处理),如上举例:
主体向量[0.5(用户),0.5(商户)],客体向量[0.33(交易),0.66(设备)],函数向量[1(cnt)],时间向量[0.16(1天),0.84(3天)],条件向量[1(余额宝)]
此后进入步骤305,停止符判断,停止符可以是循环步数、最终var个数、显著性阈值等。如果满足停止符,则停止。若否,返回步骤302。
可选地,可以将进化算法进一步结合进来,以增强velocity生成的完整性。如图4所示,在生成velocity变量时,有90%的概率根据q进行变量生成,有5%的概率进行主体之间的交叉或者条件之间的交叉,另外还有5%的概率进行随机velocity生成,以保证一定概率的“弱势”群体可以被保留下来。在本申请的其他实施例中,三种生成方式的比例是可以根据需要调整的,也可以不一定是三种生成方式,可以只有其中的两种。
步骤302,303以及304的循环,是在不断优化效用矩阵函数q,且优化方式是根据生成的velocity变量的效能进行调整,通过不断迭代优化q,使得根据q生成的velocity变量总是要比上一轮迭代之前的要更优。
上述方案能够快速寻找到对业务有显著性的累积型变量特征,对比一般的随机游走方案,该方案的收敛速度更快。
本申请的第二实施方式涉及一种累积型变量特征自动生成系统,其结构如图2所示,该累积型变量特征自动生成系统包括:
生成模块201,用于生成多个累积型变量,其中至少部分累积型变量根据效用矩阵中的概率值生成,效用矩阵包括至少一个向量,每个向量对应累积型变量的一个参数,向量的长度为对应参数的枚举值个数,向量中的每一个值是参数枚举值生成的概率值。在一个实施例中,效用矩阵所包括的向量为:主体,客体,函数,时间和条件。
生成模块生成多个累积型变量的方式可以多种多样的。可选地,所有的累积型变量都根据效用矩阵生成。可选地,一部分的累积型变量根据效用矩阵生成,另一部分累积型变量随机生成。可选地,一部分的累积型变量根据效用矩阵生成,另一部分累积型变量随机生成,还有一部分的累积型变量通过主体之间的交叉或者条件之间的交叉生成,这样可以将进化算法结合进来,以增强累积型变量生成的完整性。
评估模块202,用于对生成的累积型变量的性能进行评估。用于性能评估的评估指标包括单变量分析的指标,和/或,多变量分析的指标。其中单变量分析的指标可以是例如iv,ks,单bin最大准确率或者模型重要性等,多变量分析的指标可以是例如stepwise,vif,correlation等。
调整模块203,用于根据评估的评估结果调整效用矩阵中的概率值。在一个实施例中,调整模块进一步包括:
分配子模块,用于将每一个累积型变量的评估结果分配到该累积型变量的所有参数维度中。
计算子模块,用于计算维度层面的值。
更新子模块,用于根据维度层面的值,更新效用矩阵。其中,效用矩阵中每一个值的更新公式为:q=q+α(γq′-q),其中q为本次迭代前效用矩阵中的值,q′为维度层面的值,α为学习率,取值范围[0~1],γ为衰减因子,取值范围[0~1]。
归一化子模块,用于对效用矩阵中每一个维度进行归一化处理。
生成模块、评估模块和调整模块协同进行至少一次迭代,将最后一次迭代后所得的累积型变量作为自动生成的累积型变量特征。
在一个实施例中,该系统还包括初始化模块,用于对效用矩阵进行初始化,其中,效用矩阵中以[0~1]之间的随机数初始化,或使用其他场景下训练好的效用矩阵。
第一实施方式是与本实施方式相对应的方法实施方式,第一实施方式中的技术细节可以应用于本实施方式,本实施方式中的技术细节也可以应用于第一实施方式。
需要说明的是,本领域技术人员应当理解,上述累积型变量特征自动生成系统的实施方式中所示的各模块的实现功能可参照前述累积型变量特征自动生成方法的相关描述而理解。上述累积型变量特征自动生成系统的实施方式中所示的各模块的功能可通过运行于处理器上的程序(可执行指令)而实现,也可通过具体的逻辑电路而实现。本申请实施例上述累积型变量特征自动生成系统如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,readonlymemory)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本申请实施例不限制于任何特定的硬件和软件结合。
相应地,本申请实施方式还提供一种计算机可读存储介质,其中存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现本申请的各方法实施方式。计算机可读存储介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括但不限于,相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读存储介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。
此外,本申请实施方式还提供一种累积型变量特征自动生成系统,其中包括用于存储计算机可执行指令的存储器,以及,处理器;该处理器用于在执行该存储器中的计算机可执行指令时实现上述各方法实施方式中的步骤。其中,该处理器可以是中央处理单元(centralprocessingunit,简称“cpu”),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,简称“dsp”)、专用集成电路(applicationspecificintegratedcircuit,简称“asic”)等。前述的存储器可以是只读存储器(read-onlymemory,简称“rom”)、随机存取存储器(randomaccessmemory,简称“ram”)、快闪存储器(flash)、硬盘或者固态硬盘等。本发明各实施方式所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
需要说明的是,在本专利的申请文件中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。本专利的申请文件中,如果提到根据某要素执行某行为,则是指至少根据该要素执行该行为的意思,其中包括了两种情况:仅根据该要素执行该行为、和根据该要素和其它要素执行该行为。多个、多次、多种等表达包括2个、2次、2种以及2个以上、2次以上、2种以上。
在本申请提及的所有文献都被认为是整体性地包括在本申请的公开内容中,以便在必要时可以作为修改的依据。此外应理解,以上所述仅为本说明书的较佳实施例而已,并非用于限定本说明书的保护范围。凡在本说明书一个或多个实施例的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例的保护范围之内。