一种行为预测方法、装置、设备和存储介质
技术领域
本发明实施例涉及数据处理技术,尤其涉及一种行为预测方法、装置、设备和存储介质。
背景技术
时间序列数据是指同一统计指标按其发生的时间先后顺序排列而成的数列。通常在日常生活中会产生大量的时间序列数据。例如,每天更新一次的股票收盘价格;每月统计一次的电能消耗量;每使用手机支付一次所生成的一张带有订单金额和支付时间的账单;每季度公布一次的上市公司收入情况;每点击一次浏览器网页所生成的历史记录。
通常,可以基于时间序列模型对时间序列数据进行研究分析,获得研究对象的发展变化的规律,以便对研究对象未来情况进行预测。目前,现有的时间序列模型主要分为两大类:一类是以统计理论为依据的传统时间序列分析模型,比如:自回归模型(Autoregressive Model,AR)、滑动平均模型(Moving Average Model,MA)、自回归滑动平均模型(Autoregressive Moving Average Model,ARMA)、自回归条件异方差模型(Autoregressive Conditional Heteroskedasticity model,ARCH)、广义自回归条件异方差模型(Generalized Autoregressive Conditional Heteroskedasticity model,GARCH);另一类是以机器学习为基础的序列模型,比如:循环神经网络(Recurrent NeuralNetwork,RNN)、长短期记忆网络(Long Short Term Memory network,LSTM)、门限循环神经网络(Gated Recurrent Unit,GRU)。
在基于现有的时间序列模型对时间序列数据进行研究分析,以对用户行为进行预测时,都需要存在一个基本假设:数据点的采集是规律的,即数据之间的时间间隔相等。然而,由于观测者的数据观察记录方式不同,使得这一假设在实际应用中难以满足。比如,每年统计一次的公司年报所形成的时间序列数据一定是等时间间隔的;但对于每下单一次所生成的订单数据而言,由于下单时间是随机的,从而会形成一组时间间隔不等的序列数据。
针对于此,现有技术中存在两种方式对时间间隔不相等的时间序列数据进行研究处理。第一种处理方式是:将时间序列数据中当前时刻与上一时刻的间隔作为一个特征,并入到当前时刻的特征空间中,比如某客户在1月3日和1月20日各完成一笔订单,订单的特征空间为:[金额(元),付款方式(1为在线支付,0为货到付款),配送方式(0为陆运,1为空运)],即这两笔订单对应的特征数据可以表示为[100,1,0]和[78,1,1],若在考虑时间间隔的情况下这两笔订单对应的特征数据变更为:[100,1,0,0],[78,1,1,17]其中0表示1月3日订单前没用订单,17表示1月20日订单的前17天有一笔订单。第二种处理方式是:将时间间隔中间的数据使用0进行填充,即在上面例子中,这两条特征数据将被填充变为18条特征数据,第一条和最后一条分别为[100,1,0]和[78,1,1],中间的16条特征数据均是[0,0,0]。
然而,在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
第一种处理方式仅仅是将时间间隔作为一种特征,从而导致无法体现出时间间隔对其他特征的影响,使得预测结果并不准确。第二种处理方式会导致数据量的急剧增加,并且增加的数据都是无用数据,过多的无效值会大大降低模型的拟合效率以及训练效果,从而也会降低预测结果的准确性。
发明内容
本发明实施例提供了一种行为预测方法、装置、设备和存储介质,以提高行为预测结果的准确性和预测效率。
第一方面,本发明实施例提供了一种行为预测方法,包括:
获取目标行为对应的已有时间序列数据,其中,所述已有时间序列数据包括至少两个采集时刻采集的特征数据;
将各所述特征数据以及两两相邻采集时刻之间的时间间隔输入至预设时间递归神经网络模型中,其中,所述预设时间递归神经网络模型根据训练样本预先训练获得;所述预设时间递归神经网络模型包括预设时间间隔处理模块,所述预设时间间隔处理模块用于将所述时间间隔与所述特征数据进行融合处理;
根据所述预设时间递归神经网络模型的输出确定所述目标行为对应的预测结果。
第二方面,本发明实施例还提供了一种行为预测装置,包括:
已有时间序列数据获取模块,用于获取目标行为对应的已有时间序列数据,其中,所述已有时间序列数据包括至少两个采集时刻采集的特征数据;
数据输入模块,用于将各所述特征数据以及两两相邻采集时刻之间的时间间隔输入至预设时间递归神经网络模型中,其中,所述预设时间递归神经网络模型根据训练样本预先训练获得;所述预设时间递归神经网络模型包括预设时间间隔处理模块,所述预设时间间隔处理模块用于将所述时间间隔与所述特征数据进行融合处理;
预测结果确定模块,用于根据所述预设时间递归神经网络模型的输出确定所述目标行为对应的预测结果。
第三方面,本发明实施例还提供了一种设备,所述设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本发明任意实施例所提供的行为预测方法步骤。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明任意实施例所提供的行为预测方法步骤。
上述发明中的实施例具有如下优点或有益效果:
两两相邻采集时刻之间的时间间隔并未作为一个特征并入至特征数据组成的特征空间中,而是与特征数据分别独立地输入至预设时间递归神经网络模型中,该预设时间递归神经网络模型中增加了一个预设时间间隔处理模块,通过该预设时间间隔处理模块可以将输入的时间间隔与特征数据进行融合处理,从而从模型层面直接对时间序列数据对应的时间间隔进行建模,使得预测结果可以考虑到时间间隔对特征数据的影响,并且无需增加无用数据,从而提高了预测准确性和预测效率。
附图说明
图1是本发明实施例一提供的一种行为预测方法的流程图;
图2是本发明实施例一所涉及的一种预设时间递归神经网络模型的结构示意图;
图3是本发明实施例一所涉及的一种预设神经元的结构示意图;
图4是本发明实施例二提供的一种行为预测方法的流程图;
图5是本发明实施例二所涉及的一种预设神经元的结构示意图;
图6是本发明实施例三提供的一种行为预测装置的结构示意图;
图7是本发明实施例四提供的一种设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1为本发明实施例一提供的一种行为预测方法的流程图,本实施例可适用于根据用户行为产生的已有时间序列数据,对该用户行为的未来情况进行预测,比如根据用户的已有借贷行为,预测未来借贷行为的贷款违约概率,或者根据用户的已有消费行为,预测未来消费行为的消费能力等。该方法可以由行为预测装置来执行,该装置可以由软件和/或硬件的方式来实现,集成于具有信息处理功能的设备中。该方法具体包括以下步骤:
S110、获取目标行为对应的已有时间序列数据,其中,已有时间序列数据包括至少两个采集时刻采集的特征数据。
其中,目标行为可以是指任意一个随时间推移可以多次发生的事件,比如在电商平台上的用户借贷行为、用户购物消费行为、浏览页面行为、订单支付行为等。已有时间序列数据可以是由目标行为在每个历史时刻产生的已有数据组成的数列。本实施例可以通过在目标行为每次发生时采集相应的已有数据作为该采集时刻的特征数据,其中采集时刻为目标行为的发生时刻。已有时间序列数据可以是按照时间先后顺序对每个采集时刻采集的特征数据进行排列而成的数列。每个采集时刻采集的特征数据可以包括一个或多个特征参数,以表征在该采集时刻下的目标行为数据。其中,各个特征参数可以组成该采集时刻的特征空间。
示例性地,在目标行为是用户购物消费行为时,用户每次消费会产生一笔订单,每笔订单均包括但不限于付款金额、付款方式和配送方式等信息。本实施例可以将付款金额、付款方式和配送方式这三个信息作为特征参数,即每个采集时刻采集的特征数据为:付款金额、付款方式和配送方式。比如在付款方式中1表示在线支付,0表示货到付款;在配送方式中0表示陆运,1表示空运时,某个采集时刻采集的特征数据可以利用向量的方式表示为:[100,1,0]。目标行为对应的已有时间序列数据是指由各个采集时刻采集的特征数据按照时间先后顺序进行排列而成的数列,比如已有时间序列数据为:[100,1,0],[78,1,1],[150,1,1]。
S120、将各特征数据以及两两相邻采集时刻之间的时间间隔输入至预设时间递归神经网络模型中,其中,预设时间递归神经网络模型根据训练样本预先训练获得;预设时间递归神经网络模型包括预设时间间隔处理模块,预设时间间隔处理模块用于将时间间隔与特征数据进行融合处理。
其中,预设时间递归神经网络模型可以是指基于网络节点的连接顺序对输入信息进行时间递归的人工神经网络模型,即利用历史时刻输入信息的记忆部分和当前时刻的输入信息共同决定当前时刻对应的输出结果,从而可以根据历史数据来预测未来情况。预设时间递归网络模型的具体结构可以基于业务场景和实际需求进行预先设置。预设时间间隔处理模块是从模型层面直接对时间序列数据对应的时间间隔进行建模而得到的模块,其用于将时间间隔与特征数据进行融合处理,以便分析时间间隔对特征数据的影响。
具体地,本实施例通过将每个采集时刻对应的特征数据以及两两相邻采集时刻之间的时间间隔分别独立地输入至预设时间递归神经网络模型中。预设时间递归神经网络模型可以包括多个预设神经元,并且每个预设神经元与每个采集时刻采集的特征数据一一对应。每个预设神经元均可以包括一个预设时间间隔处理模块,以利用该预设时间间隔处理模型可以对当前采集时刻之前输入的特征数据和当前采集时刻与上一采集时刻之间的时间间隔进行融合处理,以便获得该时间间隔对之前输入的特征数据的影响情况,并基于该融合结果对当前采集时刻的特征数据进行整合处理,以便使得预设时间递归神经网络模型的输出结果可以考虑到时间间隔对特征数据的影响。
需要注意的是,在使用预设时间递归神经网络模型之前,还包括对预设时间递归神经网络模型的训练过程。本实施例中的训练样本可以包括目标行为对应的多个时间序列数据样本以及每个时间序列数据样本对应的期望输出结果。通过将每个时间序列数据样本以及时间序列数据样本中两两相邻采集时刻之间的时间间隔输入至预设时间递归神经网络模型中,获得预设时间递归神经网络模型的实际输出结果,并根据该实际输出结果和对应的期望输出结果确定输出误差,在输出误差大于允许误差时将输出误差反向传播至预设时间递归神经网络模型中,调整预设时间递归神经网络模型中的网络参数,从而利用反向传播机制对预设时间递归神经网络模型进行训练,直到在输出误差小于或等于预设误差时,表明预设时间递归神经网络模型训练完成。
S130、根据预设时间递归神经网络模型的输出确定目标行为对应的预测结果。
具体地,本实施例可以将预设时间递归神经网络模型的输出结果作为目标行为对应的预测结果。例如在预测未来借贷行为的贷款违约概率时,预设时间递归神经网络模型的输出数值即为借贷行为对应的预测贷款违约概率。通过利用预设时间递归神经网络模型中的预设时间间隔处理模块可以分析时间间隔对特征数据的影响,使得预测结果也可以考虑到时间间隔的影响,从而提高了预测结果的准确性。
在本实施例的技术方案中,两两相邻采集时刻之间的时间间隔并未作为一个特征并入至特征数据组成的特征空间中,而是与特征数据分别独立地输入至预设时间递归神经网络模型中,该预设时间递归神经网络模型中增加了一个预设时间间隔处理模块,通过该预设时间间隔处理模块可以将输入的时间间隔与特征数据进行融合处理,从而从模型层面直接对时间序列数据对应的时间间隔进行建模,使得预测结果可以考虑到时间间隔对特征数据的影响,并且无需增加无用数据,从而提高了预测准确性和预测效率。
在上述技术方案的基础上,图2给出了一种预设时间递归神经网络模型的结构示意图。图3给出了一种预设神经元的结构示意图。如图2所示,预设时间递归神经网络模型10包括至少两个预设神经元20,并且相邻两个预设神经元20相连接,以便进行时间递归,将通过某个预设神经元之前的预设神经元获得的记忆信息传递至该预设神经元中进行处理,从而可以利用历史数据来预测未来情况。如图3所示,每个预设神经元20均包括遗忘模块21、输入模块22、细胞记忆状态模块23、隐状态模块24、输出模块25和预设时间间隔处理模块26。不同位置处的预设神经元中的同一模块的功能相同,本实施例以当前预设神经元为例,对预设神经元中的各个模块21-26的功能进行了如下解释说明。
在当前预设神经元中,遗忘模块21用于从当前采集时刻对应的特征数据和历史时间序列数据对应的历史编码数据中确定待丢弃数据,其中历史时间序列数据包括当前采集时刻之前的各个历史采集时刻对应的特征数据;历史编码数据是上一预设神经元中的隐状态模块24的输出结果;输入模块22用于从当前采集时刻对应的特征数据和历史编码数据中确定待增加数据和候选细胞记忆状态数据;预设时间间隔处理模块26具体用于:将上一细胞记忆状态数据和当前采集时刻与上一采集时刻之间的时间间隔进行融合处理,以更新上一细胞记忆状态数据,其中上一细胞记忆状态数据可以是指从当前采集时刻之前的各历史采集时刻对应的特征数据中筛选后的有用特征数据;上一细胞记忆状态数据是上一预设神经元中的细胞记忆状态模块23的输出结果数据;细胞记忆状态模块23用于将更新后的上一细胞记忆状态数据中丢掉待丢弃数据,并根据待增加数据和候选细胞记忆状态数据进行数据添加,获得当前细胞记忆状态数据,并输出当前细胞记忆状态数据;隐状态模块24用于根据从当前采集时刻对应的特征数据和历史时间序列数据对应的历史编码数据中确定待输出数据,并根据待输出数据和当前细胞记忆状态数据确定当前时间序列数据对应的当前编码数据;其中当前时间序列数据包括当前采集时刻和各个历史采集时刻对应的特征数据;输出模块25用于根据当前编码数据确定目标行为在当前采集时刻对应的输出数据。
在当前预设神经元中,通过利用预设时间间隔处理模块26将当前采集时刻与上一采集时刻之间的时间间隔对上一细胞记忆状态数据进行更新,以使更新后的上一细胞记忆状态数据为在时间间隔作用后的数据,从而使得最终输出数据可以考虑到时间间隔的影响。
在预设时间递归神经网络模型10中,预设神经元的数量可以与特征数据的数量相等,每个预设神经元与特征数据一一对应,以便将当前采集时刻对应的特征数据、当前采集时刻与上一采集时刻之间的时间间隔输入至相应的当前预设神经元中。如图3所示,相邻两个预设神经元之间的连接方式为:当前预设神经元中的预设时间间隔处理模块26的第一输入端1与上一预设神经元中的细胞记忆状态模块23的输出端连接;当前预设神经元中的遗忘模块21的输入端、输入模块22的输入端、隐状态模块24的第一输入端1均与上一预设神经元中的隐状态模块24的输出端连接。需要注意的是,预设时间递归神经网络模型10中的第一个预设神经元的上一细胞记忆状态数据和历史编码数据均为空数据,即第一个预设神经元中的预设时间间隔处理模块26的第一输入端1设置为空。
如图3所示,在当前预设神经元中的各个模块的连接方式为:细胞记忆状态模块23的第一输入端1与预设时间间隔感知模块26的输出端连接;细胞记忆状态模块23的第二输入端2与遗忘模块21的输出端连接;细胞记忆状态模块23的第三输入端3与输入模块22的输出端连接;细胞记忆状态模块23的输出端与隐状态模块24的第二输入端2连接;隐状态模块24的输出端与输出模块25的输入端连接。
在上述技术方案的基础上,S120中将各特征数据以及两两相邻时刻之间的时间间隔输入至预设时间递归神经网络模型中,包括:将当前采集时刻与上一采集时刻之间的时间间隔输入至当前预设神经元中的预设时间间隔处理模块26的第二输入端2;将当前采集时刻对应的特征数据均输入至当前预设神经元中的遗忘模块21的输入端、输入模块22的输入端以及隐状态模块24的第二输入端2。
具体地,在将各个采集时刻对应的特征数据以及两两相邻采集时刻之间的时间间隔输入至预设时间递归神经网络模型时,是分别将每个采集时刻对应的特征数据以及相邻两个采集时刻之间的时间间隔输入至该特征数据对应的预设神经元中。示例性地,将已有时间序列数据中的第一个特征数据以及时间间隔输入至预设时间递归神经网络模型中的第一个预设神经元,其中在第一预设神经元中输入的时间间隔为零;将已有时间序列数据中的第二个特征数据以及第二个采集时刻与第一个采集时刻之间的时间间隔分别输入至预设时间递归神经网络模型中的第二个预设神经元;依次类推,直到将已有时间序列数据中的最后一个特征数据以及最后一个采集时刻与上一个采集时刻之间的时间间隔分别输入至预设时间递归神经网络模型中的最后一个预设神经元中。
需要注意的是,预设时间递归神经网络模型中的每个预设神经元均对应一个输出模块,从而可以获得每个采集时刻对应的输出数据,即可以获得每个采集时刻对应的预测结果,实现了目标行为的动态预测和监控,并且由于最后一个预设神经元的输出数据是综合了之前所有的特征数据,从而使得最后一个预设神经元的预测结果更加准确,更具有参考价值。
实施例二
图4为本发明实施例二提供的一种行为预测方法的流程图,本实施例在上述实施例的基础上,提供了一种预设时间递归神经网络模型中的预设神经元的优选实例,如图5所示,并基于该预设时间递归神经网络模型对行为预测过程进行了详细说明。其中与上述实施例相同或相应的术语的解释在此不再赘述。
参见图4和图5,本实施例提供的行为预测方法包括以下步骤:
S410、获取目标行为对应的已有时间序列数据,其中,已有时间序列数据包括至少两个采集时刻采集的特征数据。
具体地,预设时间递归神经网络模型中的预设神经元的数量与特征数据的数量相同,即预设神经元与特征数据一一对应。在将各特征数据以及两两相邻采集时刻之间的时间间隔输入至预设时间递归神经网络模型中时,是将每个采集时刻采集的特征数据以及该采集时刻与上一采集时刻之间的时间间隔输入至预设时间递归神经网络模型中相应的预设神经元中。对于已有时间序列数据中的每个采集时刻采集的特征数据而言,执行以下步骤S420-S470的操作。
S420、将当前采集时刻与上一采集时刻之间的时间间隔输入至预设时间间隔处理模块26,并通过预设时间间隔处理模块26将上一细胞记忆状态数据和输入的时间间隔进行融合处理,并输出更新后的上一细胞记忆状态数据。
其中,图5给出了一个当前预设神经元的结构示意图。本实施例中的每个预设神经元的结构相同。上一细胞记忆状态数据是当前预设神经元的上一预设神经元中的细胞记忆状态模块23的输出结果数据。
具体地,如图5所示,预设时间间隔处理模块26的内部操作包括一个折现函数和一个Hadamard阿达玛乘法运算,即基于折现函数对当前采集时刻与上一采集时刻之间的时间间隔输入进行函数运算,并将运算结果和上一细胞记忆状态数据进行Hadamard乘法运算,获得的结果即为更新后的上一细胞记忆状态数据。
示例性地,预设时间间隔处理模块26可以基于如下公式将上一细胞记忆状态数据和当前采集时刻与上一采集时刻之间的时间间隔进行融合处理,以更新上一细胞记忆状态数据:
其中,ct-1 *为更新后的上一细胞记忆状态数据对应的特征向量;ct-1为是上一细胞记忆状态数据对应的特征向量;Wr是根据训练样本预先训练获得的融合权重矩阵;Δt是当前采集时刻t与上一采集时刻t-1之间的时间间隔;⊙为Hadamard阿达玛乘法。
其中,本实施例中的折现函数的表达式为
通过该折现函数可以对当前采集时刻与上一采集时刻之间的时间间隔对上一细胞记忆状态数据的影响。融合权重矩阵W
r是基于训练样本预先训练获得的,其可以具体反映出时间间隔对未来行为的影响。示例性地,当W
r为正值时,折现函数
是关于Δt的单调递增函数,即时间间隔越长,
的数值越大,比如,在预测贷款违约概率时,以前发生的每一次违约金额对未来的影响是一个累计增加的过程。当W
r为负值时,折现函数
是关于Δt的单调递减函数,即时间间隔越长,
的数值越小,比如,在预测消费能力时,以前发生的每一次消费金额对未来的影响是一个累计递减的过程,即时间间隔越长,以前的消费能力越不能代表现在的消费能力。
S430、将当前采集时刻对应的特征数据输入至遗忘模块21,并通过遗忘模块21将从当前采集时刻对应的特征数据和历史编码数据中确定并输出待丢弃数据。
其中,历史编码数据是上一预设神经元中的隐状态模块24的输出结果。具体地,本实施例中的遗忘模块的内部结构可以包括一个遗忘门sigmoid,以选择性地对当前采集时刻对应的特征数据和历史编码数据进行数据过滤,确定待丢弃数据。
示例性地,遗忘模块21可以基于如下公式从当前采集时刻对应的特征数据和历史时间序列数据对应的历史编码数据中确定待丢弃数据:
ft=σ(Wfxt+Ufht-1+bf)
其中,ft为待丢弃数据对应的数据向量;xt为当前采集时刻t对应的特征数据对应的特征向量;ht-1为历史时间序列数据对应的历史编码数据;Wf和Uf均是根据训练样本预先训练获得的遗忘权重矩阵;bf是根据训练样本预先训练获得的遗忘偏置向量;σ为Sigmoid生长曲线函数。
具体地,本实施例中的遗忘模块21将当前采集时刻对应的特征数据和历史编码数据先进行一个线性变换,然后再进行Sigmoid激活,从而确定在当前采集时刻对应的特征数据和历史编码数据中的待丢弃数据ft,此时输出的ft为一个0到1之间的数据,其中“1”表示“完全保留”;“0”表示“完全舍弃”。
S440、将当前采集时刻对应的特征数据输入至输入模块22,并通过输入模块22从当前采集时刻对应的特征数据和历史编码数据中确定并输出待增加数据和候选细胞记忆状态数据。
具体地,本实施例中的输入模块22的内部结构可以包括一个输入门sigmoid和一个tanh层,其中,通过输入门sigmoid可以选择性地对当前采集时刻对应的特征数据和历史编码数据进行数据更新,确定待增加数据;通过tanh层可以创建一个新的候选细胞记忆状态数据,以便加入到细胞记忆状态数据中。
示例性地,输入模块22可以基于如下公式从当前采集时刻对应的特征数据和历史时间序列数据对应的历史编码数据中确定待增加数据和候选细胞记忆状态数据:
it=σ(Wixt+Uiht-1+bi)
其中,i
t为待增加数据对应的数据向量;
为候选细胞记忆状态数据对应的特征向量;x
t为当前采集时刻t对应的特征数据所对应的特征向量;h
t-1为历史时间序列数据对应的历史编码数据;W
i和U
i均是根据训练样本预先训练获得的输入权重矩阵;b
i是根据训练样本预先训练获得的输入偏置向量;W
c和U
c均是根据训练样本预先训练获得的记忆权重矩阵;b
c是根据训练样本预先训练获得的记忆偏置向量;σ为Sigmoid生长曲线函数;tanh为双曲正切函数。
具体地,本实施例中的输入模块22将当前采集时刻对应的特征数据和历史编码数据先进行一个线性变换,然后再进行Sigmoid激活,从而确定在当前采集时刻对应的特征数据和历史编码数据中的待增加数据it,此时输出的it为一个0到1之间的数据,其中“1”表示“增加”;“0”表示“不增加”。输入模块22还将当前采集时刻对应的特征数据和历史编码数据先进行一个线性变换,然后再进行tanh激活,从而获得一个候选细胞记忆状态数据。
S450、通过细胞记忆状态模块23将更新后的上一细胞记忆状态数据中丢掉待丢弃数据,并根据待增加数据和候选细胞记忆状态数据进行数据添加,获得当前细胞记忆状态数据,并输出当前细胞记忆状态数据。
示例性地,细胞记忆状态模块23可以基于如下公式将更新后的上一细胞记忆状态数据中丢掉待丢弃数据,并根据待增加数据和候选细胞记忆状态数据进行数据添加,获得当前细胞记忆状态数据:
其中,c
t为当前采集时刻t对应的当前细胞记忆状态数据所对应的特征向量;f
t为待丢弃数据对应的数据向量;c
t-1 *为更新后的上一细胞记忆状态数据对应的特征向量;i
t为待增加数据对应的数据向量;
为候选细胞记忆状态数据对应的特征向量;⊙为Hadamard阿达玛乘法。
具体地,在细胞记忆状态模块23中,先将待丢弃数据与更新后的上一细胞记忆状态数据进行相乘f
t⊙c
t-1 *,丢弃掉确定待丢弃数据,然后将待增加数据与候选细胞记忆状态数据进行相乘
添加上待增加数据,最后再将两个计算结果进行相加,获得当前细胞记忆状态数据。
S460、将当前采集时刻对应的特征数据输入至隐状态模块24,并通过隐状态模块24根据从当前采集时刻对应的特征数据和历史编码数据中确定待输出数据,并根据待输出数据和当前细胞记忆状态数据确定当前时间序列数据对应的当前编码数据。
其中,隐状态模块24包括一个输出门sigmoid,以选择性地对当前采集时刻对应的特征数据和历史编码数据进行数据筛选,确定待输出数据。
示例性地,隐状态模块24可以基于如下公式根据从当前采集时刻对应的特征数据和历史时间序列数据对应的历史编码数据中确定待输出数据,并根据待输出数据和当前细胞记忆状态数据确定当前时间序列数据对应的当前编码数据:
ot=σ(Woxt+Uoht-1+bo)
ht=ot⊙tanh(ct)
其中,ht为当前时间序列数据对应的当前编码数据;ot为待输出数据对应的数据向量;xt为当前采集时刻t对应的特征数据对应的特征向量;ht-1为历史时间序列数据对应的历史编码数据;Wo和Uo均是根据训练样本预先训练获得的隐状态权重矩阵;bo是根据训练样本预先训练获得的隐状态偏置向量;ct为当前采集时刻t对应的当前细胞记忆状态数据所对应的特征向量;tanh为双曲正切函数;⊙为Hadamard阿达玛乘法。
具体地,本实施例中的隐状态模块24先将当前采集时刻对应的特征数据和历史编码数据先进行一个线性变换,然后再进行Sigmoid激活,从而确定在当前采集时刻对应的特征数据和历史编码数据中的待输出数据ot,此时输出的ot为一个0到1之间的数据,其中“1”表示“输出”;“0”表示“不输出”。当前细胞记忆状态数据ct通过tanh进行处理,得到一个在-1到1之间的数值,并将它和Sigmoid门的输出相乘,从而可以仅输出有用数据ht。当前采集时刻和之前采集时刻分别对应的特征数据均编码入当前编码数据ht中,此时的当前编码数据ht是一个时间间隔对特征数据进行作用后的数据。
S470、通过输出模块25根据当前编码数据确定目标行为在当前采集时刻对应的输出数据。
具体地,输出模块25的内部结构可以根据业务场景和实际情况预先进行设置。示例性地,若在预测未来借贷行为的贷款违约概率时,输出模块25可以将根据训练样本预先训练获得的输出权重与当前编码数据进行相乘等处理操作,输出借贷行为对应的预测贷款违约概率,从而可以根据输出数据获得目标行为在当前采集时刻对应的预测结果。
本实施例的技术方案,通过利用预设时间间隔处理模块26中的折现函数对当前采集时刻与上一采集时刻之间的时间间隔输入进行函数运算,并将运算结果和上一细胞记忆状态数据进行Hadamard乘法运算,获得的结果即为更新后的上一细胞记忆状态数据,从而可以更加准确地考虑到时间间隔对特征数据的影响,进一步提高了预测结果的准确性。
在上述技术方案的基础上,在根据训练样本预先训练获得的融合权重矩阵Wr后,还可以包括:将融合权重矩阵Wr进行输出,以便获得时间间隔对特征数据的影响结果;其中,融合权重矩阵Wr为正值或负值。本实施例中的融合权重矩阵Wr是根据训练样本数据学习确定的参数,表明Wr这一参数取正值还是负值均由数据本身决定,从而Wr的正负值可以表现出时间间隔对特征数据中的某一统计量的影响是一种累积增加的影响还是一种累积递减的影响。本实施例通过将融合权重矩阵Wr进行输出,从而根据Wr的正负值可以直接展示出时间间隔对特征数据是累积递增还是递减的影响,以使用户可以更加清晰直观地获得时间间隔对特征数据的影响结果。
以下是本发明实施例提供的行为预测装置的实施例,该装置与上述各实施例的行为预测方法属于同一个发明构思,在行为预测装置的实施例中未详尽描述的细节内容,可以参考上述行为预测方法的实施例。
实施例三
图6为本发明实施例三提供的一种行为预测装置的结构示意图,本实施例可适用于根据用户行为产生的已有时间序列数据,对该用户行为的未来情况进行预测的情况,该装置包括:已有时间序列数据获取模块610、数据输入模块620和预测结果确定模块630。
其中,已有时间序列数据获取模块610,用于获取目标行为对应的已有时间序列数据,其中,已有时间序列数据包括至少两个采集时刻采集的特征数据;数据输入模块620,用于将各特征数据以及两两相邻采集时刻之间的时间间隔输入至预设时间递归神经网络模型中,其中,预设时间递归神经网络模型根据训练样本预先训练获得;预设时间递归神经网络模型包括预设时间间隔处理模块,预设时间间隔处理模块用于将时间间隔与特征数据进行融合处理;预测结果确定模块630,用于根据预设时间递归神经网络模型的输出确定目标行为对应的预测结果。
可选地,预设时间递归神经网络模型包括至少两个预设神经元,每个预设神经元包括遗忘模块、输入模块、细胞记忆状态模块、隐状态模块、输出模块和预设时间间隔处理模块;其中,
遗忘模块用于从当前采集时刻对应的特征数据和历史时间序列数据对应的历史编码数据中确定待丢弃数据,其中历史时间序列数据包括当前采集时刻之前的各个历史采集时刻对应的特征数据;历史编码数据是上一预设神经元中的隐状态模块的输出结果;
输入模块用于从当前采集时刻对应的特征数据和历史编码数据中确定待增加数据和候选细胞记忆状态数据;
预设时间间隔处理模块,具体用于:将上一细胞记忆状态数据和当前采集时刻与上一采集时刻之间的时间间隔进行融合处理,以更新上一细胞记忆状态数据,其中上一细胞记忆状态数据是上一预设神经元中的细胞记忆状态模块的输出结果数据;
细胞记忆状态模块用于将更新后的上一细胞记忆状态数据中丢掉待丢弃数据,并根据待增加数据和候选细胞记忆状态数据进行数据添加,获得当前细胞记忆状态数据,并输出当前细胞记忆状态数据;
隐状态模块用于根据从当前采集时刻对应的特征数据和历史编码数据中确定待输出数据,并根据待输出数据和当前细胞记忆状态数据确定当前时间序列数据对应的当前编码数据;其中当前时间序列数据包括当前采集时刻和各个历史采集时刻对应的特征数据;
输出模块用于根据当前编码数据确定目标行为在当前采集时刻对应的输出数据。
可选地,预设神经元的数量与特征数据的数量相等;其中,当前预设神经元中的预设时间间隔处理模块的第一输入端与上一预设神经元中的细胞记忆状态模块的输出端连接;当前预设神经元中的遗忘模块的输入端、输入模块的输入端、隐状态模块的第一输入端均与上一预设神经元中的隐状态模块的输出端连接;
其中,在当前预设神经元中,细胞记忆状态模块的第一输入端与预设时间间隔感知模块的输出端连接;细胞记忆状态模块的第二输入端与遗忘模块的输出端连接;细胞记忆状态模块的第三输入端与输入模块的输出端连接;细胞记忆状态模块的输出端与隐状态模块的第二输入端连接;隐状态模块的输出端与输出模块的输入端连接。
可选地,数据输入模块620,具体用于:将当前采集时刻与上一采集时刻之间的时间间隔输入至当前预设神经元中的预设时间间隔处理模块的第二输入端;将当前采集时刻对应的特征数据均输入至当前预设神经元中的遗忘模块的输入端、输入模块的输入端以及隐状态模块的第二输入端。
可选地,预设时间间隔处理模块基于如下公式将上一细胞记忆状态数据和当前采集时刻与上一采集时刻之间的时间间隔进行融合处理,以更新上一细胞记忆状态数据:
其中,ct-1 *为更新后的上一细胞记忆状态数据对应的特征向量;ct-1为是上一细胞记忆状态数据对应的特征向量;Wr是根据训练样本预先训练获得的融合权重矩阵;Δt是当前采集时刻t与上一采集时刻t-1之间的时间间隔;⊙为Hadamard阿达玛乘法。
可选地,该装置还包括:
融合权重矩阵输出模块,用于将融合权重矩阵Wr进行输出,以便获得时间间隔对特征数据的影响结果;其中,融合权重矩阵Wr为正值或负值。
可选地,遗忘模块基于如下公式从当前采集时刻对应的特征数据和历史时间序列数据对应的历史编码数据中确定待丢弃数据:
ft=σ(Wfxt+Ufht-1+bf)
其中,ft为待丢弃数据对应的数据向量;xt为当前采集时刻t对应的特征数据对应的特征向量;ht-1为历史时间序列数据对应的历史编码数据;Wf和Uf均是根据训练样本预先训练获得的遗忘权重矩阵;bf是根据训练样本预先训练获得的遗忘偏置向量;σ为Sigmoid生长曲线函数。
可选地,输入模块基于如下公式从当前采集时刻对应的特征数据和历史时间序列数据对应的历史编码数据中确定待增加数据和候选细胞记忆状态数据:
it=σ(Wixt+Uiht-1+bi)
其中,i
t为待增加数据对应的数据向量;
为候选细胞记忆状态数据对应的特征向量;x
t为当前采集时刻t对应的特征数据所对应的特征向量;h
t-1为历史时间序列数据对应的历史编码数据;W
i和U
i均是根据训练样本预先训练获得的输入权重矩阵;b
i是根据训练样本预先训练获得的输入偏置向量;W
c和U
c均是根据训练样本预先训练获得的记忆权重矩阵;b
c是根据训练样本预先训练获得的记忆偏置向量;σ为Sigmoid生长曲线函数;tanh为双曲正切函数。
可选地,细胞记忆状态模块基于如下公式将更新后的上一细胞记忆状态数据中丢掉待丢弃数据,并根据待增加数据和候选细胞记忆状态数据进行数据添加,获得当前细胞记忆状态数据:
其中,c
t为当前采集时刻t对应的当前细胞记忆状态数据所对应的特征向量;f
t为待丢弃数据对应的数据向量;c
t-1 *为更新后的上一细胞记忆状态数据对应的特征向量;i
t为待增加数据对应的数据向量;
为候选细胞记忆状态数据对应的特征向量;⊙为Hadamard阿达玛乘法。
可选地,隐状态模块基于如下公式根据从当前采集时刻对应的特征数据和历史时间序列数据对应的历史编码数据中确定待输出数据,并根据待输出数据和当前细胞记忆状态数据确定当前时间序列数据对应的当前编码数据:
ot=σ(Woxt+Uoht-1+bo)
ht=ot⊙tanh(ct)
其中,ht为当前时间序列数据对应的当前编码数据;ot为待输出数据对应的数据向量;xt为当前采集时刻t对应的特征数据对应的特征向量;ht-1为历史时间序列数据对应的历史编码数据;Wo和Uo均是根据训练样本预先训练获得的隐状态权重矩阵;bo是根据训练样本预先训练获得的隐状态偏置向量;ct为当前采集时刻t对应的当前细胞记忆状态数据所对应的特征向量;tanh为双曲正切函数;⊙为Hadamard阿达玛乘法。
本发明实施例所提供的行为预测装置可执行本发明任意实施例所提供的行为预测方法,具备执行行为预测方法相应的功能模块和有益效果。
实施例四
图7为本发明实施例四提供的一种设备的结构示意图。图7示出了适于用来实现本发明实施方式的示例性设备72的框图。图7显示的设备72仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图7所示,设备72以通用计算设备的形式表现。设备72的组件可以包括但不限于:一个或者多个处理器或者处理单元11,系统存储器12,连接不同系统组件(包括系统存储器12和处理单元11)的总线13。
总线13表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
设备72典型地包括多种计算机系统可读介质。这些介质可以是任何能够被设备72访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器12可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。设备72可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图7未显示,通常称为“硬盘驱动器”)。尽管图7中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线13相连。系统存储器12可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如系统存储器12中,这样的程序模块42包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
设备72也可以与一个或多个外部设备16(例如键盘、指向设备、显示器17等)通信,还可与一个或者多个使得用户能与该设备72交互的设备通信,和/或与使得该设备72能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口14进行。并且,设备72还可以通过网络适配器15与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器15通过总线13与设备72的其它模块通信。应当明白,尽管图中未示出,可以结合设备72使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
处理单元11通过运行存储在系统存储器12中的程序,从而执行各种功能应用以及数据处理,例如实现本发实施例所提供的行为预测方法步骤,该方法包括:
获取目标行为对应的已有时间序列数据,其中,已有时间序列数据包括至少两个采集时刻采集的特征数据;
将各特征数据以及两两相邻采集时刻之间的时间间隔输入至预设时间递归神经网络模型中,其中,预设时间递归神经网络模型根据训练样本预先训练获得;预设时间递归神经网络模型包括预设时间间隔处理模块,预设时间间隔处理模块用于将时间间隔与特征数据进行融合处理;
根据预设时间递归神经网络模型的输出确定目标行为对应的预测结果。
当然,本领域技术人员可以理解,处理器还可以实现本发明任意实施例所提供的保留库存量的确定方法的技术方案。
实施例五
本实施例五提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明任意实施例所提供的行为预测方法步骤,该方法包括:
获取目标行为对应的已有时间序列数据,其中,已有时间序列数据包括至少两个采集时刻采集的特征数据;
将各特征数据以及两两相邻采集时刻之间的时间间隔输入至预设时间递归神经网络模型中,其中,预设时间递归神经网络模型根据训练样本预先训练获得;预设时间递归神经网络模型包括预设时间间隔处理模块,预设时间间隔处理模块用于将时间间隔与特征数据进行融合处理;
根据预设时间递归神经网络模型的输出确定目标行为对应的预测结果。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是但不限于:电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
本领域普通技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个计算装置上,或者分布在多个计算装置所组成的网络上,可选地,他们可以用计算机装置可执行的程序代码来实现,从而可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件的结合。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。