预测业务指标的方法及装置
技术领域
本说明书一个或多个实施例涉及机器学习领域,尤其涉及利用机器学习预测业务实体的业务指标的方法和装置。
背景技术
随着计算机技术的发展,机器学习已经应用到各种各样的技术领域,用于分析、预测各种业务数据。在许多应用场景中,需要对业务实体的各种业务指标进行预测,便于在预测值出现较大波动,或预测值与真实值差异较大的情况下,提前预警,或发现异常。
例如,在电商场景中,常常需要对商家的各种指标序列进行预测,如商家的每日营业额序列预测。有些场景会涉及到多个指标序列的联合预测,比如同时预测商家的每日交易笔单价,每日交易笔数等,如此,可以提前预警或尽快注意到一些异常现象,例如刷单现象。又例如,在互联网借贷场景中,常常需要对用户的各种业务指标进行预测,从而预知风险。
然而,常规技术中,面对多个业务实体,多种业务指标的情况,常常存在建模效率低,预测准确率低等问题。因此,希望能有改进的方案,更加有效地实现多业务指标的准确预测。
发明内容
本说明书一个或多个实施例描述了预测业务指标的方法和装置,其中采用循环神经网络针对多业务实体多业务指标进行联合建模,得到的联合模型可以适用于多实体多指标的预测,全面提高多指标预测的准确性和效率。
根据第一方面,提供了一种计算机执行的预测业务指标的方法,包括:
获取数据集序列,所述数据集序列包括对应于连续的m个时间段、且按照时间顺序排列的m个数据集,所述m个数据集中第i个数据集包括,第i时间段中,待测业务实体的实体特征,以及该待测业务实体的多个待测业务指标各自的指标值;
将所述数据集序列输入预先训练的循环神经网络,获得输出结果;
根据所述输出结果,确定第m时间段的下一时间段中,所述待测业务实体的所述多个待测业务指标各自的指标值。
在一个实施例中,上述待测业务实体包括商家;相应的,所述实体特征包括以下中的至少一项:注册时长,商家规模,信誉等级,商品数目,商品类别,上架时长;所述多个待测业务指标包括以下指标中的多个:交易笔数,交易笔单价,交易总额,成交比例。
在另一实施例中,所述待测业务实体包括用户;相应的,所述多个待测业务指标包括,与消费行为相关的多个指标,和/或,与借贷行为的相关的多个指标。
在一种实施方式中,所述待测业务实体的实体特征包括,第一特征和第二特征,所述第一特征的特征值在所述m个时间段中保持不变,所述第二特征的特征值在所述m个时间段中不完全相同。
根据一个实施例,所述m个时间段包括,当前时刻所处的当前时间段,和从所述当前时间段向前追溯的m-1个时间段。
在一个实施例中,所述循环神经网络包括,长短期记忆神经网络LSTM。
根据一种实施方式,所述循环神经网络通过以下过程预先训练:
获取多个训练样本,其中包括第一训练样本,所述第一训练样本包括第一训练数据序列和第一标签,所述第一训练数据序列包括对应于连续的m个时间段、且按照时间顺序排列的m个训练数据集,所述m个训练数据集中第j个训练数据集包括,第j时间段中,第一业务实体的实体特征,以及该第一业务实体的所述多个待测业务指标各自的指标值;所述第一标签包括,采集到的所述第一业务实体的所述多个待测业务指标在第m时间段后的下一时间段中各自的指标值;
将所述第一训练数据序列输入所述循环神经网络,获得第一输出结果;
至少基于所述第一输出结果和所述第一标签,确定与第一训练样本对应的第一预测误差;
基于与所述多个训练样本中各个训练样本对应的预测误差,确定损失函数;
根据所述损失函数调整所述训练神经网络的网络参数,使得所述损失函数相比调整前减小。
根据一个实施例,所述循环神经网络包括,输入层,循环单元和输出层;将所述第一训练数据序列输入所述循环神经网络,获得第一输出结果包括:
通过所述输入层将所述m个训练数据集依次输入到所述循环单元,使得所述循环单元依次处理所述m个训练数据集,得到m次处理后的处理向量;
通过所述输出层对所述处理向量进行线性变换,得到所述第一输出结果。
在一个实施例中,通过以下方式确定损失函数:
基于所述多个样本中各个样本对应的预测误差确定总误差;
确定所述网络参数的正则化项;
将所述总误差和所述正则化项的和,确定为所述损失函数。
根据第二方面,提供一种计算机执行的预测业务指标的装置,包括:
数据序列获取单元,配置为获取数据集序列,所述数据集序列包括对应于连续的m个时间段、且按照时间顺序排列的m个数据集,所述m个数据集中第i个数据集包括,第i时间段中,待测业务实体的实体特征,以及该待测业务实体的多个待测业务指标各自的指标值;
输出结果获取单元,配置为将所述数据集序列输入预先训练的循环神经网络,获得输出结果;
指标值确定单元,配置为根据所述输出结果,确定第m时间段的下一时间段中,所述待测业务实体的所述多个待测业务指标各自的指标值。
在一个实施例中,所述循环神经网络通过训练单元训练,所述训练单元包括:
样本获取模块,配置为获取多个训练样本,其中包括第一训练样本,所述第一训练样本包括第一训练数据序列和第一标签,所述第一训练数据序列包括对应于连续的m个时间段、且按照时间顺序排列的m个训练数据集,所述m个训练数据集中第j个训练数据集包括,第j时间段中,第一业务实体的实体特征,以及该第一业务实体的所述多个待测业务指标各自的指标值;所述第一标签包括,采集到的所述第一业务实体的所述多个待测业务指标在第m时间段后的下一时间段中各自的指标值;
结果获取模块,配置为将所述第一训练数据序列输入所述循环神经网络,获得第一输出结果;
误差确定模块,配置为至少基于所述第一输出结果和所述第一标签,确定与第一训练样本对应的第一预测误差;
损失确定模块,配置为基于与所述多个训练样本中各个训练样本对应的预测误差,确定损失函数;
参数调整模块,配置为根据所述损失函数调整所述训练神经网络的网络参数,使得所述损失函数相比调整前减小。
根据第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面的方法。
根据第四方面,提供了一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面的方法。
根据本说明书实施例提供的方法和装置,通过利用多个业务实体的实体特征和待测业务指标的已知值的数据序列作为训练样本,训练循环神经网络,可以得到一个联合模型。该联合模型可以适用于多个待测业务实体的多个待测业务指标的预测。由于训练过程中所基于的训练数据,即包含实体的特征又包含指标数据,因此训练得到的联合模型更好地考虑和挖掘了实体间/指标间的关联关系,并且由于训练数据丰富,也使得预测的准确度更高,效果更好。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本说明书披露的一个实施例的实施场景示意图;
图2示出根据一个实施例的训练基于循环神经网络的联合模型的方法流程图;
图3示出根据一个实施例的通过LSTM神经网络处理训练数据序列的示意图;
图4示出根据一个实施例的预测业务指标的方法;
图5示出根据一个实施例的预测业务指标的装置的示意性框图。
具体实施方式
下面结合附图,对本说明书提供的方案进行描述。
如前所述,在多种应用场景中,都需要对业务实体的多个业务指标进行预测。在一种方案中,考虑到对于不同的实体(例如不同的商家)的同一指标预测模型应该具有个性化的差异,针对单个实体单个指标进行单独建模。然而,只对单一的指标序列进行建模预测,难以充分挖掘序列间的关联关系,并且,单个实体单个指标单独建模会面临这单个模型训练数据不足和模型太多的问题。
在另一种方案中,提出针对多个指标序列进行联合预测。然而,面对多个实体多个指标的预测问题,往往会因为实体数量太多(如支付宝交易涉及的商家上亿)而导致联合建模效率太低,最终只能针对单个实体的多个指标进行建模。
针对多实体多指标序列联合预测的问题,进一步的,在本说明书中的实施例中,提出一种基于特征的联合建模方法。根据该方法,对多个业务实体多个业务指标使用统一模型进行建模,既避免了对单个实体单个指标建模遇到的训练数据不足和模型太多的问题,也充分考虑到了实体间/指标间的关联,使得建模更快,预测更准。
图1为本说明书披露的一个实施例的实施场景示意图。如图1所示,采集来自多个业务实体、关于多个业务指标的历史数据作为训练样本,训练基于循环神经网络的联合模型。更具体的,一个训练样本可以对应一个业务实体,例如一个商家,该样本用于训练的特征数据包括,该业务实体在m个连续时间段的实体特征,以及在该m个时间段中待测的多个业务指标各自的指标值。这些特征数据按照上述时间段整理成m个训练向量形式的数据集。该训练样本的标签数据可以是,上述业务实体在第m+1个时间段中,上述多个业务指标的指标值。
基于这样的多个训练样本,可以训练上述基于循环神经网络的联合模型,确定模型参数。
在模型训练完成后,就可以实现多业务实体、多业务指标的预测。具体的,对于待测的业务实体p,获取该业务实体p的特征数据,该特征数据可以包括m个特征向量构成的序列,各个特征向量包括,业务实体p在m个时间段的对应时间段中的实体特征,以及待测的多个业务指标各自的指标值。将这样的特征数据输入上述训练好的联合模型,即可得到,该业务实体p在下一时间段中,待测的多个业务指标的指标值,从而实现多个指标共同预测。
下面首先描述上述联合模型的训练过程。
图2示出根据一个实施例的训练基于循环神经网络的联合模型的方法流程图。可以理解,该方法可以通过任何具有计算、处理能力的装置、设备、平台、设备集群来执行。如图2所示,训练过程至少包括以下步骤。
首先,在步骤21,获取多个训练样本,所述多个训练样本涉及多个业务实体关于多个业务指标的历史数据,更具体的,其中每个训练样本包括与一个业务实体相关的训练数据序列和标签。为了描述的清楚,将其中任意的一个样本称为第一训练样本。需要理解,本文中的“第一”、“第二”的用语仅仅是为了描述和区分类似的对象,而不具有顺序或其他方面的限定。
具体而言,多个训练样本中任意的第一训练样本包括与第一业务实体相关的第一训练数据序列和第一标签,其中第一训练数据序列包括对应于连续的m个时间段、且按照时间顺序排列的m个训练数据集,第j个训练数据集包括,第j时间段中,第一业务实体的实体特征,以及该第一业务实体的多个待测业务指标各自的指标值;所述第一标签包括,采集到的所述第一业务实体的所述多个待测业务指标在第m时间段后的下一时间段中各自的指标值。
更清楚的,将上述第一业务实体记为E1,对应的第一训练数据序列可以记为(D1,D2,…,Dm),其中包括了m个训练数据集D1,D2到Dm。这m个训练数据集分别对应于连续的m个时间段,其中第j个训练数据集Dj对应于m个时间段中的第j时间段Tj。每个训练数据集都包含实体特征和待测指标值两部分。具体地,第j个训练数据集Dj包括,在第j时间段Tj中,上述第一业务实体E1的实体特征X,以及该业务实体E1在Tj时间段中待预测的k个业务指标的指标值Y。实体特征X和指标值Y分别可以构成向量x(j),和向量y(j),其中y(j)为k维向量。第j训练数据集Dj可以表示为,向量x(j)和y(j)的拼接[X(j);y(j)]。如此,第一训练数据序列可以表示为:
{[x(1);y(1)],[x(2);y(2)],...,[X(j);y(j)],...,[x(m);y(m)]}
第一训练样本还包括与该第一训练数据序列相对应的第一标签。与前述第一训练数据序列的表示方式对应的,第一标签包括,采集到的第一业务实体E1的所述k个待测业务指标在第m+1时间段中各自的指标值。因此,第一标签可以记为向量y(m+1)。
下面结合具体例子进行描述。
如前所述,要训练的联合模型适用于各种业务实体,因此,上述作为训练数据的第一业务实体可以是任意的具体的业务实体,例如是一个具体商家,或者是一个具体用户。
在上述第一业务实体为某个商家的情况下,业务实体的实体特征X可以包括,该商家的总体属性特征,例如,注册时长,商家规模,信誉等级等,也可以包括该商家所售卖的商品相关特征,例如,商品数目,商品类别,上架时长,等等。
上述这些特征中,一部分特征可以是固定不变的特征,例如商家的属性特征,这些特征在所采集的m个时间段中是相同的;还可以有一部分特征是随时间变化的特征,例如,商品数目。这样的特征在所采集的m个时间段中不完全相同。
在上述第一业务实体为某个商家的情况下,k个待测业务指标可以包括以下指标中的多个:交易笔数,交易笔单价,交易总额,成交比例,等等。
上述时间段的长短可以根据需要设定。例如,时间段可以是一天,1小时,1周,一个月等等,m的数目也可以根据训练和预测的需要而设定,例如m为7,10,30等等。
在一个具体例子中,第一训练样本中的第一业务实体为商户标识等于ID1的商家,业务实体的实体特征X选取,注册时长,商家规模,信誉等级,商品数目,商品类别等20项特征,待测业务指标Y包括交易笔数,交易笔单价,交易总额3项指标,即k=3。并且,假定时间段设定为天,m设定为7。如此,针对该第一业务实体的第一训练数据序列即为,连续7天对应的7个训练数据集,第j天的训练数据集包括,第j天中该商家的实体特征构成的20维向量,和该商家在第j天中3个待测业务指标的指标值构成的3维向量。
对应的,第一训练样本的标签数据,即为上述商家在第8天中上述3个待测业务指标的指标值。这样的训练样本,相当于利用一周7天的训练数据序列,预测第8天的待测业务指标。
以上结合了第一业务实体为商家的例子进行了描述。在另一实施例中,第一业务实体也可以是具体的用户。在第一业务实体为某个用户的情况下,提取的实体特征可以包括该用户的属性特征,例如,注册时长,性别,年龄,职业类别,收入范围等等;也可以包括该用户的一些行为特征,例如,与好友的交互次数,浏览购物网站的时长,等等。用户的待测业务指标主要根据业务需求和业务场景而定,在分析和预测用户的消费行为的场景下,待测业务指标可以是与消费行为相关的多个指标,例如包括,消费笔数,单笔消费金额,消费总金额,等等;在分析和预测用户的借贷行为的场景下,待测业务指标可以是与借贷行为的相关的多个指标,例如包括,借贷次数,借贷总额,还款总额,等等。
尽管以上给出了业务实体、实体特征和业务指标的具体例子,但是,本说明书实施例的方案并不局限于这些具体例子,而是可以扩展到更多业务场景。
并且,可以理解,以上所描述的第一训练样本是多个训练样本中的任意一个。每个训练样本都具有上述第一训练样本同样数据结构的训练数据序列和对应标签。
在如上所述获取到多个训练样本的基础上,在步骤22,将上述第一训练样本中的第一训练数据序列输入循环神经网络,获得第一输出结果。
可以理解,循环神经网络(RNN,Recurrent Neural Networks)是一种时间递归神经网络,可用于处理序列数据。从网络结构的角度来说,循环神经网络包括,输入层,循环单元和输出层;输入层用于获取序列数据,循环单元对应于神经网络的一个或多个隐含层,用于依次循环处理序列数据,输出层可以对循环单元经循环处理得到的处理向量进行进一步变换处理,得到整个神经网络的输出结果。
循环神经网络的时间递归性主要体现在循环单元,即隐含层的处理过程。在RNN中,隐含层的各个神经元节点会对之前的信息进行记忆并应用于当前输出的计算中。具体的,隐含层神经元的输入不仅包括来自输入层的输入,还包括该隐含层神经元上一时刻的状态输出,相应的,隐含层神经元的输出不仅与当前时刻输入层输入的向量相关,还与该节点之前的状态相关联。也就是说,t时刻隐含层神经元状态可以表示为:
St=f(U*Xt+W*St-1)
其中,Xt为t时刻输入层的状态,St-1为t-1时刻隐含层神经元的状态,f为计算函数,W,U为权重。如此,循环单元将之前的状态循环回当前输入,考虑了历史输入的影响,因而适合于具有时序的数据序列。
在一个实施例中,在步骤22,采用包含多个隐含层的RNN作为上述循环神经网络。
更进一步地,在一个实施例中,在传统RNN架构下,采用长短期记忆(LSTM,LongShort Term Memory)神经网络作为上述循环神经网络。
如前所述,在RNN中当前隐含层状态依赖于之前的状态输出,因此在处理长期记忆的情况下,需要将当前的隐含态的计算与前n次的计算关联,即St=f(U*Xt+W1*St-1+W2*St-2+…+Wn*St-n)。随着n的增大,计算量呈指数式增长,导致模型训练的时间大幅增加。为此,提出LSTM模型来解决长期依赖的问题。
在LSTM中,通过设置让信息选择性通过的“遗忘门”来丢弃某些不再需要的信息,如此对输入的不必要的干扰信息进行判断和屏蔽,从而更好地对长期数据进行分析处理。
下面结合LSTM神经网络描述对第一训练数据序列进行处理的具体过程。
与前述常规循环神经网络类似的,LSTM神经网络包括输入层,LSTM单元和输出层,其中LSTM单元作为循环单元,可以包含若干隐含层,依次循环处理第一训练数据序列中的各个数据集。
图3示出根据一个实施例的通过LSTM神经网络处理训练数据序列的示意图。如图3所示,第一训练数据序列通过输入层被依次输入到LSTM单元,使得LSTM单元依次处理第一训练数据序列中的各个训练数据集。
具体而言,如前所述,第一训练数据序列包括按照对应的时间段顺序排列的m个训练数据集,其中,第j个训练数据集Dj可以表示为,向量x(j)和y(j)的拼接[x(j);y(j)],其中x(j)为实体特征,y(j)为待测业务指标的指标值。LSTM单元按照数据集排列顺序,依次读取和处理这m个训练数据集。
在第1次处理中,读取第1个训练数据集D1=[x(1);y(1)],将该训练数据集D1和初始的处理向量h0共同输入到LSTM单元。LSTM单元对D1和h0进行处理,得到处理向量h1。
在下一时刻进行第2次处理,读取第2个训练数据集D2=[x(2);y(2)],将该训练数据集D2和前一时刻对第1个训练数据集的处理结果h1,共同作为当前输入,对D2和h1进行处理,从而得到处理向量h2。如此继续。
在第i次处理中,LSTM单元将第i个训练数据集,以及前一时刻对第i-1个训练数据集的处理结果hi-1,共同作为当前输入,得到处理向量hi。直到第m次处理,LSTM单元将第m个训练数据集,以及前一时刻对第m-1个训练数据集的处理结果hm-1,共同作为当前输入,得到处理向量hm。
然后,输出层将LSTM单元经过m次处理后得到的处理向量hm进行线性变换,得到第一输出结果:
其中是一个待优化的参数矩阵。
可以理解,该第一输出结果是基于第一训练样本中与连续m个时间段对应的第一训练数据序列,对第m+1个时间段的待测业务指标的指标值的预测。
另一方面,步骤21获取的第一训练样本还包括与第一训练数据序列对应的第一标签。因此,接下来,在步骤23,至少基于上述第一输出结果和所述第一标签,确定与第一训练样本对应的第一预测误差。
可以通过多种具体算法确定上述第一预测误差。例如,第一输出结果和第一标签均可表示为k维向量(如前所述,k为待测业务指标数目),因此,在一个例子中,可以计算第一输出结果对应向量和第一标签对应向量之间的距离,例如余弦距离,欧式距离等,将该距离作为第一预测误差。还可以将上述距离的平方作为第一预测误差。在其他实施例中,还可以通过其他方式计算上述预测误差。
如此,确定出与第一训练样本对应的第一预测误差。可以理解,上述第一训练样本是多个训练样本中任意的一个样本。因此,可以按照步骤22和23的方式,处理每个训练样本,从而得到多个训练样本中各个训练样本对应的预测误差。
于是在步骤24,至少基于与各个样本对应的预测误差,确定损失函数。
可以理解,对于一批训练样本,损失函数是对这批训练样本的模型预测值与标准标签值之间误差的综合衡量。因此,在一个实施例中,基于各个训练样本对应的预测误差确定总误差,基于该总误差确定损失函数。例如,在一个例子中,损失函数可以表示为:
在上式中,第i个训练样本的预测误差表示为损失函数是将n个训练样本的预测误差求和而得到。
进一步的,在一个实施例中,在基于各个训练样本对应的预测误差确定总误差之外,还确定循环神经网络的网络参数的正则化项,将所述总误差和所述正则化项的和,确定为损失函数。例如,损失函数可以表示为:
其中,Reg(·)为正则化项,例如可以是L2正则化项。L2正则化又可以表示为可以通过对所有网络参数的平方求和∑(wi)2而得到。因此,正则化项可以刻画网络参数整体的数值范围。
可以理解,还可以采用其他具体公式或算法来确定损失函数。
接着,在步骤25,根据上述损失函数调整所述循环神经网络的网络参数,使得所述损失函数相比调整前减小。
可以理解,神经网络的训练目标是使得损失函数尽可能小,从而使得预测值与真实的标签值尽可能接近。在一个实施例中,通过误差反向传播的方式,调整各个网络参数,以最小化损失函数。
如前所述,正则化项刻画了网络参数整体的数值范围。在损失函数中添加正则化项的情况下,为了达到损失函数最小化的目标,网络参数的整体数值范围也会被优化到较小的范围,从而避免出现参数取值差异过大的过拟合现象。
综合以上,通过采集多个业务实体在连续的各个时间段中的实体特征数据和待测业务指标的指标数据作为特征数据序列,采集下一时间段中待测业务指标的指标数据作为标签数据,由此形成了多个训练样本,用这样的多个训练样本训练循环神经网络,就可以得到用于多实体多业务指标的联合模型。换而言之,在以上的循环神经网络训练完成后,就可以作为所需的联合模型,针对待测业务实体,预测多个待测业务指标的指标值。
图4示出根据一个实施例的预测业务指标的方法。该方法可以通过任何具有计算、处理能力的装置、设备、平台、设备集群来执行。如图4所示,该预测方法包括以下步骤。
在步骤41,获取用于待测业务实体的数据集序列,该数据集序列包括对应于连续的m个时间段、且按照时间顺序排列的m个数据集,所述m个数据集中第i个数据集包括,第i时间段中,待测业务实体的实体特征,以及该待测业务实体的多个待测业务指标各自的指标值。
需要理解,上述预测用的数据集序列,与训练过程中的训练数据序列具有对应一致的数据结构。具体而言,以上数据集序列中时间段的长短,m的数目需要与训练数据序列中的相同,待测业务实体的实体特征与训练样本中的业务实体的实体特征处于相同的特征空间,且待测业务指标也与训练样本的相同。
例如,在一个例子中,多个训练样本中的业务实体为各个商家,实体特征包括与商家有关的20项特征,待测业务指标包括3项指标,时间段为天,m设定为7。
在这样的情况下,待测业务实体可以是某个具体的待测商家Ep,步骤41的数据集序列可以包括对应于连续7天的7个数据集,第i天的数据集包括,商家Ep的实体特征构成的20维向量,例如包括,注册时长,商家规模,信誉等级,商品数目,商品类别等,以及商家Ep的待测业务指标在第i天的指标值构成的3维向量,例如包括交易笔数,交易笔单价,交易总额。
在训练样本中的业务实体为各个用户的情况下,上述待测业务实体对应也为某个具体的待测用户,其实体特征和待测业务指标可以参照对训练样本的描述,不再赘述。
与训练样本序列类似的,待测业务实体的实体特征可以包括,在m个时间段中保持不变的特征,也可以包括在m个时间段中不完全相同的特征。
在一个实施例中,为了对下一时间段的多个业务指标进行预测,一般地,采集从当前时间段向前追溯m-1个时间段,共m个时间段的m个数据集,用于预测下一时间段中多个待测业务指标的指标值。例如,在时间段为天,m=7的情况下,可以采集从今天向前追溯6天,加上今天一共是连续7天各自的数据集,用于预测明天的业务指标值。
然而,可以理解,这并不是必须的。在一个实施例中,上述m个时间段也可以均对应于已经过去的时间段,这可以适用于已知第m+1个时间段中待测业务指标的真实值,想要通过联合模型得到预测值,然后通过预测值与真实值的差异,判定真实值是否出现异常的情况。
在获取到上述的数据集序列后,在步骤42,将该数据集序列输入通过图2的方法训练的循环神经网络,获得输出结果。
如前所述,在一个实施例中,上述循环神经网络包括,长短期记忆神经网络LSTM。
更具体的,循环神经网络包括,输入层,循环单元和输出层。相应的,在步骤42,通过输入层将数据集序列中的m个数据集依次输入到循环单元,使得循环单元依次处理所述m个数据集,得到m次处理后的处理向量。
上述处理过程与结合图4所述的训练过程的处理相同。其中,在第i次处理中,循环单元将第i个数据集,以及前一时刻对第i-1个数据集的处理结果hi-1,共同作为当前输入,得到处理向量hi。直到第m次处理,循环单元将第m个数据集,以及前一时刻对第m-1个数据集的处理结果hm-1,共同作为当前输入,得到m次处理后的处理向量hm。
接着,通过输出层对处理向量hm进行线性变换,就可以得到输出结果。
以上处理过程的网络参数,包括线性变换矩阵W,均通过训练过程而确定和优化。
于是,在步骤43,根据上述输出结果,即可确定出,第m时间段后的下一时间段中,即第m+1时间段中,待测业务实体的所述多个待测业务指标各自的指标值。
具体的,如式(4)所示,循环神经网络通过将循环单元的处理向量进行线性变换得到输出结果,经过线性变换后的输出结果通常为k维向量。通过该k维向量的各个元素值,可以确定出k个待测业务指标在第m+1个时间段中分别对应的指标值。
通过以上过程可以看到,通过利用多个业务实体的实体特征和待测业务指标的已知值的数据序列作为训练样本,训练循环神经网络,可以得到一个联合模型。该联合模型可以适用于多个待测业务实体的多个待测业务指标的预测。由于训练过程中所基于的训练数据,即包含实体的特征又包含指标数据,因此训练得到的联合模型更好地考虑和挖掘了实体间/指标间的关联关系,并且由于训练数据丰富,也使得预测的准确度更高,效果更好。
根据另一方面的实施例,提供了一种预测业务指标的装置,该装置可以部署在任何具有计算、处理能力的设备、平台或设备集群中。图5示出根据一个实施例的预测业务指标的装置的示意性框图。如图5所示,该预测装置500包括:
数据序列获取单元51,配置为获取数据集序列,所述数据集序列包括对应于连续的m个时间段、且按照时间顺序排列的m个数据集,所述m个数据集中第i个数据集包括,第i时间段中,待测业务实体的实体特征,以及该待测业务实体的多个待测业务指标各自的指标值;
输出结果获取单元52,配置为将所述数据集序列输入预先训练的循环神经网络,获得输出结果;
指标值确定单元53,配置为根据所述输出结果,确定第m时间段的下一时间段中,所述待测业务实体的所述多个待测业务指标各自的指标值。
根据一个实施例,上述待测业务实体包括商家;在这样的情况下,实体特征包括以下中的至少一项:注册时长,商家规模,信誉等级,商品数目,商品类别,上架时长;所述多个待测业务指标包括以下指标中的多个:交易笔数,交易笔单价,交易总额,成交比例。
根据另一实施例,上述待测业务实体包括用户;所述多个待测业务指标包括,与消费行为相关的多个指标,和/或,与借贷行为的相关的多个指标。
根据一种可能的实施方案,上述待测业务实体的实体特征包括,第一特征和第二特征,所述第一特征的特征值在所述m个时间段中保持不变,所述第二特征的特征值在所述m个时间段中不完全相同。
在一个实施例中,上述m个时间段包括,当前时刻所处的当前时间段,和从所述当前时间段向前追溯的m-1个时间段。
根据一个实施例,上述循环神经网络包括,长短期记忆神经网络LSTM。
在一种实施方式中,所述循环神经网络通过训练单元54训练,该训练单元可以包含在预测装置500之中,也可以位于预测装置500之外。相应的,输出结果获取单元52可连接到该训练单元54。在一个实施例中,训练单元54包括:
样本获取模块541,配置为获取多个训练样本,其中包括第一训练样本,所述第一训练样本包括第一训练数据序列和第一标签,所述第一训练数据序列包括对应于连续的m个时间段、且按照时间顺序排列的m个训练数据集,所述m个训练数据集中第j个训练数据集包括,第j时间段中,第一业务实体的实体特征,以及该第一业务实体的所述多个待测业务指标各自的指标值;所述第一标签包括,采集到的所述第一业务实体的所述多个待测业务指标在第m时间段后的下一时间段中各自的指标值;
结果获取模块542,配置为将所述第一训练数据序列输入所述循环神经网络,获得第一输出结果;
误差确定模块543,配置为至少基于所述第一输出结果和所述第一标签,确定与第一训练样本对应的第一预测误差;
损失确定模块544,配置为基于与所述多个训练样本中各个训练样本对应的预测误差,确定损失函数;
参数调整模块545,配置为根据所述损失函数调整所述训练神经网络的网络参数,使得所述损失函数相比调整前减小。
在一个实施例中,所述循环神经网络包括,输入层,循环单元和输出层,上述结果获取模块542配置为:
通过所述输入层将所述m个训练数据集依次输入到所述循环单元,使得所述循环单元依次处理所述m个训练数据集,得到m次处理后的处理向量;
通过所述输出层对所述处理向量进行线性变换,得到所述第一输出结果。
根据一种实施方式,所述损失确定模块544配置为,
基于所述多个样本中各个样本对应的预测误差确定总误差;
确定所述网络参数的正则化项;
将所述总误差和所述正则化项的和,确定为所述损失函数。
如此,通过训练单元54训练循环神经网络作为联合模型,预测装置500通过利用训练单元54训练好的循环神经网络,实现多业务实体多业务指标的预测。
根据另一方面的实施例,还提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行结合图2和图4所描述的方法。
根据再一方面的实施例,还提供一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现结合图2和图4所述的方法。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。