发明内容
本说明书提出一种基于LSTM模型的信用风险预测方法,所述方法包括:
获取目标账户在预设时间段内的用户操作行为数据;其中,所述预设时间段为由若干时间步长相同的时间区间组成的时间序列;
基于所述目标账户在各个时间区间内的用户操作行为数据,生成对应于各个时间区间的用户行为向量序列;
将生成的对应于各个时间区间的用户行为向量序列输入至训练完毕的基于编码-解码架构的LSTM模型中的LSTM编码器进行计算,得到对应于各个时间区间的隐藏状态向量;其中,所述LSTM模型包括LSTM编码器,和引入了注意力机制的LSTM解码器;
将对应于各个时间区间的隐藏状态向量作为风险特征,输入至所述LSTM解码器进行计算,得到所述目标账户在下一时间区间内的风险评分;以及,各隐藏状态向量对应于所述风险评分的权重值;其中,所述权重值表征所述隐藏状态向量对所述风险评分的贡献度。
可选的,所述方法还包括:
获取若干被标记了风险标签的样本账户在所述预设时间段内的用户操作行为数据;
基于所述若干样本账户在各个时间区间内的用户操作行为数据,生成对应于各个时间区间的用户行为向量序列;
将生成的用户行为向量序列作为训练样本训练基于编码-解码架构的LSTM模型。
可选的,基于账户在各个时间区间内的用户操作行为数据,生成对应于各个时间区间的用户行为向量序列,包括:
获取账户在各个时间区间内的多种用户操作行为数据;
从获取到的用户操作行为数据中提取关键因子,并对所述关键因子进行数字化处理,得到与所述用户操作行为数据对应的用户行为向量;
对与各个时间区间内的多种用户操作行为数据对应的用户行为向量进行拼接处理,生成对应于各个时间区间的用户行为向量序列。
可选的,所述多种用户行为包括信贷表现行为、用户消费行为、理财支付行为;
所述关键因子包括与信贷表现行为对应的借贷订单状态和借贷还款金额、与用户消费行为对应的用户消费类目和用户消费笔数、与理财支付行为对应的理财支付类型和理财收益金额。
可选的,所述LSTM编码器采用多层的many-to-one结构;所述LSTM解码器采用输入节点和输出节点数量对称的多层的many-to-many结构。
可选的,所述将生成的对应于各个时间区间的用户行为向量序列输入至训练完毕的基于编码-解码架构的LSTM模型中的LSTM编码器进行计算,得到对应于各个时间区间的隐藏状态向量,包括:
将生成的对应于各个时间区间的用户行为向量序列输入至训练完毕的基于编码-解码架构的LSTM模型中的LSTM编码器进行双向传播计算,得到前向传播计算得到的第一隐藏状态向量;以及,后向传播计算得到的第二隐藏状态向量;其中,在进行前向传播计算和后向传播计算时,对应于各个时间区间的用户行为向量序列的输入顺序相反;
对所述第一隐藏状态向量和所述第二隐藏状态向量进行拼接处理,得到对应于各个时间区间的最终隐藏状态向量。
可选的,所述将对应于各个时间区间的隐藏状态向量作为风险特征,输入至所述LSTM解码器进行计算,得到所述目标账户在下一时间区间内的风险评分,包括:
将对应于各个时间区间的隐藏状态向量作为风险特征,输入至所述LSTM解码器进行计算,得到所述目标账户在下一时间区间内的输出向量;
对所述输出向量进行数字化处理,得到所述目标账户在下一时间区间内的风险评分。
可选的,所述输出向量为多维向量;
所述对所述输出向量进行数字化处理,包括以下中的任一:
提取所述输出向量中取值位于0~1之间的子向量的取值作为风险评分;
如果所述输出向量中包含多个取值位于0~1之间的子向量时,计算该多个子向量的取值的平均值作为风险评分;
如果所述输出向量中包含多个取值位于0~1之间的子向量时,提取该多个子向量的取值中的最大值或者最小值作为风险评分。
本说明书还提出一种基于LSTM模型的信用风险预测装置,所述装置包括:
获取模块,获取目标账户在预设时间段内的用户操作行为数据;其中,所述预设时间段为由若干时间步长相同的时间区间组成的时间序列;
生成模块,基于所述目标账户在各个时间区间内的用户操作行为数据,生成对应于各个时间区间的用户行为向量序列;
第一计算模块,将生成的对应于各个时间区间的用户行为向量序列输入至训练完毕的基于编码-解码架构的LSTM模型中的LSTM编码器进行计算,得到对应于各个时间区间的隐藏状态向量;其中,所述LSTM模型包括LSTM编码器,和引入了注意力机制的LSTM解码器;
第二计算模块,将对应于各个时间区间的隐藏状态向量作为风险特征,输入至所述LSTM解码器进行计算,得到所述目标账户在下一时间区间内的风险评分;以及,各隐藏状态向量对应于所述风险评分的权重值;其中,所述权重值表征所述隐藏状态向量对所述风险评分的贡献度。
可选的,所述获取模块进一步:
获取若干被标记了风险标签的样本账户在所述预设时间段内的用户操作行为数据;
所述生成模块进一步:
基于所述若干样本账户在各个时间区间内的用户操作行为数据,生成对应于各个时间区间的用户行为向量序列;
所述装置还包括:
训练模块,将生成的用户行为向量序列作为训练样本训练基于编码-解码架构的LSTM模型。
可选的,所述生成模块进一步:
获取账户在各个时间区间内的多种用户操作行为数据;
从获取到的用户操作行为数据中提取关键因子,并对所述关键因子进行数字化处理,得到与所述用户操作行为数据对应的用户行为向量;
对与各个时间区间内的多种用户操作行为数据对应的用户行为向量进行拼接处理,生成对应于各个时间区间的用户行为向量序列。
可选的,所述多种用户行为包括信贷表现行为、用户消费行为、理财支付行为;
所述关键因子包括与信贷表现行为对应的借贷订单状态和借贷还款金额、与用户消费行为对应的用户消费类目和用户消费笔数、与理财支付行为对应的理财支付类型和理财收益金额。
可选的,所述LSTM编码器采用多层的many-to-one结构;所述LSTM解码器采用输入节点和输出节点数量对称的多层的many-to-many结构。
可选的,所述第一计算模块:
将生成的对应于各个时间区间的用户行为向量序列输入至训练完毕的基于编码-解码架构的LSTM模型中的LSTM编码器进行双向传播计算,得到前向传播计算得到的第一隐藏状态向量;以及,后向传播计算得到的第二隐藏状态向量;其中,在进行前向传播计算和后向传播计算时,对应于各个时间区间的用户行为向量序列的输入顺序相反;
对所述第一隐藏状态向量和所述第二隐藏状态向量进行拼接处理,得到对应于各个时间区间的最终隐藏状态向量。
可选的,所述第二计算模块:
将对应于各个时间区间的隐藏状态向量作为风险特征,输入至所述LSTM解码器进行计算,得到所述目标账户在下一时间区间内的输出向量;
对所述输出向量进行数字化处理,得到所述目标账户在下一时间区间内的风险评分。
可选的,所述输出向量为多维向量;
所述对所述输出向量进行数字化处理,包括以下中的任一:
提取所述输出向量中取值位于0~1之间的子向量的取值作为风险评分;
如果所述输出向量中包含多个取值位于0~1之间的子向量时,计算该多个子向量的取值的平均值作为风险评分;
如果所述输出向量中包含多个取值位于0~1之间的子向量时,提取该多个子向量的取值中的最大值或者最小值作为风险评分。
本说明书还提出一种电子设备,包括:
处理器;
用于存储机器可执行指令的存储器;
其中,通过读取并执行所述存储器存储的与基于LSTM模型的信用风险预测的控制逻辑对应的机器可执行指令,所述处理器被促使:
获取目标账户在预设时间段内的用户操作行为数据;其中,所述预设时间段为由若干时间步长相同的时间区间组成的时间序列;
基于所述目标账户在各个时间区间内的用户操作行为数据,生成对应于各个时间区间的用户行为向量序列;
将生成的对应于各个时间区间的用户行为向量序列输入至训练完毕的基于编码-解码架构的LSTM模型中的LSTM编码器进行计算,得到对应于各个时间区间的隐藏状态向量;其中,所述LSTM模型包括LSTM编码器,和引入了注意力机制的LSTM解码器;
将对应于各个时间区间的隐藏状态向量作为风险特征,输入至所述LSTM解码器进行计算,得到所述目标账户在下一时间区间内的风险评分;以及,各隐藏状态向量对应于所述风险评分的权重值;其中,所述权重值表征所述隐藏状态向量对所述风险评分的贡献度。
具体实施方式
本说明书旨在提出一种,在对目标账户进行信用风险预测的场景下,基于目标账户在一段时间内的用户操作行为数据来训练基于encoder–decoder(编码-解码)架构的LSTM模型,基于训练完成的LSTM模型对目标账户在未来一段时间内的信用风险进行预测的技术方案。
在实现时,建模方可以预先定义一个需要预测信用风险的目标时间段作为表现窗口,以及预先设计一个观察目标账户的用户行为表现的预设时间段作为观察窗口,并将上述表现窗口和观察窗口基于建模方定义的时间步长,组成时间序列。
例如,在一个例子中,假设建模方需要基于目标账户过去12个月的用户操作行为数据,来预测该目标账户在未来6个月的信用风险,那么可以将表现窗口设计为过去6个月,将观察窗口设计为过去12个月。假设建模方定义的时间步长为1个月,那么可以将表现窗口和观察窗口划分为时间步长为1个月的若干时间区间组成时间序列。此时每一个时间区间称之为上述时间序列中的一个数据节点。
建模方可以准备若干被标记了风险标签的样本账户,并获取这些样本账户在上述观察窗口内的用户操作行为数据,并基于各样本账户在该观察窗口中的各个时间区间内的用户操作行为数据,来构建与各个时间区间对应的用户行为向量序列作为训练样本,来训练基于encoder–decoder架构的LSTM模型;其中,上述LSTM模型包括LSTM编码器和引入了注意力机制(Attention mechanism)的LSTM解码器。
例如,可以基于这些训练样本输入至LSTM编码器进行训练计算,来训练LSTM编码器,然后将训练LSTM编码器时从训练样本中计算得到的,对应于各个时间区间的隐藏状态向量作为训练解码器所需的特征变量,继续输入至LSTM解码器进行训练计算,来训练LSTM解码器,并通过迭代执行以上过程,直到LSTM模型训练完毕。
当建模方基于训练完成的上述LSTM模型对目标账户在上述表现窗口中的信用风险进行预测时,可以采用同样的方式,获取目标账户在上述观察窗口内的用户操作行为数据,并基于该目标账户在该观察窗口内的各个时间区间内的用户操作行为数据,来构建与各个时间区间对应的用户行为向量序列作为预测样本,然后将这些预测样本输入上述LSTM模型的LSTM编码器中进行计算得到与各个时间区间对应的隐藏状态向量。
进一步的,可以将通过LSTM编码器计算得到的与各个时间区间对应的隐藏状态向量作为该目标账户的风险特征,输入至上述LSTM模型进行计算,输入该目标账户的风险评分,以及各个隐藏状态向量相对于上述风险评分的权重值;其中,该权重值表征上述隐藏状态向量对上述风险评分的贡献度。
在以上技术方案中,一方面,由于将目标账户在各个时间区间内的用户行为向量序列,作为输入数据直接输入基于编码-解码架构的LSTM模型中的LSTM编码器中进行计算,就可以得到对应于各个时间区间的隐藏状态向量,进而可以将得到的隐藏状态向量作为风险特征进一步输入至LSTM解码器进行计算,来完成该目标账户的风险预测得到风险评分;因此,可以无需建模人员基于目标账户的用户操作行为数据,来开发和探索建模所需的特征变量,可以避免由于基于建模人员的经验设计的特征变量不够准确,而造成的难以深度挖掘出数据中包含的信息,对模型进行风险预测的准确度造成影响;而且,也不需要对人工设计的特征变量进行存储维护,可以降低系统的存储开销;
另一方面,由于基于编码-解码架构的LSTM模型的LSTM解码器中,引入了注意力机制,因此将LSTM编码器得到的对应于各个时间区间的隐藏特征变量作为风险特征,输入LSTM解码器进行风险预测计算,可以得到对应于各个时间区间的隐藏状态向量对应于最终风险评分的权重值,从而能够直观的评估出各个隐藏特征变量对最终得到的风险评分的贡献度,进而可以提升LSTM模型的可解释性。
下面通过具体实施例并结合具体的应用场景对本说明书进行描述。
请参考图1,图1是本说明书一实施例提供的一种基于LSTM模型的信用风险预测方法,应用于服务端,所述方法执行以下步骤:
步骤102,获取目标账户在预设时间段内的用户操作行为数据;其中,所述预设时间段为由若干时间步长相同的时间区间组成的时间序列;
步骤104,基于所述目标账户在各个时间区间内的用户操作行为数据,生成对应于各个时间区间的用户行为向量序列;
步骤106,将生成的对应于各个时间区间的用户行为向量序列输入至训练完毕的基于编码-解码架构的LSTM模型中的LSTM编码器进行计算,得到对应于各个时间区间的隐藏状态向量;其中,所述LSTM模型包括LSTM编码器,和引入了注意力机制的LSTM解码器;
步骤108,将对应于各个时间区间的隐藏状态向量作为风险特征,输入至所述LSTM解码器进行计算,得到所述目标账户在下一时间区间内的风险评分;以及,各隐藏状态向量对应于所述风险评分的权重值;其中,所述权重值表征所述隐藏状态向量对所述风险评分的贡献度。
上述目标账户,可以包括用户的支付账户,用户可以通过在相应的支付客户端(比如支付APP)上登录目标账户来发起支付交易。
上述服务端,可以包括面向用户的支付客户端提供服务,对用户登录客户端所使用的支付账号进行风险识别的服务器、服务器集群或者基于服务器集群构建的云平台。
上述操作行为数据,可以包括用户在客户端上登录目标账户后执行的一系列与交易相关的操作行为而产生的数据;
例如,上述操作行为可以包括用户的信贷表现行为、用户消费行为、理财支付行、店铺经营行为、日常交友行为等。用户在通过客户端完成以上示出的操作行为时,客户端可以将执行上述操作行为所产生的数据上传至服务端,由服务端在其本地的数据库中作为事件进行保存。
在本说明书中,建模方可以预先定义一个需要预测信用风险的目标时间段作为表现窗口,以及预先设计一个观察目标账户的用户行为表现的预设时间段作为观察窗口,并将上述表现窗口和观察窗口基于建模方定义的时间步长,组成时间序列。
其中,上述表现窗口和观察窗口所对应的时间段的取值大小,可以由建模方基于实际的预测目标来自定义设置,在本说明书中不再进行具体限定。相应的,上述时间步长的取值大小,也可以由建模方基于实际的业务需求,来自定义设置,在本说明书中也不再进行具体限定。
在以下实施例中,将以建模方需要基于目标账户过去12个月的用户操作行为数据,来预测该目标账户在未来6个月的信用风险,以及定义的上述时间步长为1个月为例进行说明。
在这种情况下,可以将上述表现窗口设计为过去6个月,将观察窗口设计为过去12个月。进一步的,还可以按照定义的时间步长,将表现窗口划分为6个时间步长均为1个月的时间区间,然后将这些时间区间组织成时间序列;以及,将观察窗口划分为12个时间步长均为1个月的时间区间,然后将这些时间区间组织成时间序列。
请参见图2,图2为本说明书示出的一种基于encoder–decoder架构的LSTM模型。
如图2所示,上述基于encoder–decoder架构的LSTM模型,具体可以包括LSTM编码器、以及引入了注意力机制的LSTM解码器。
上述LSTM编码器(Encoder),用于对上述观察窗口中的各数据节点输入的用户行为向量序列进行特征发现,并将各数据节点输出的隐藏状态向量(即最终发现的特征),进一步输入至LSTM解码器。其中,LSTM编码器中的数据节点,与上述观察窗口中的各时间区间相对应。上述观察窗口中的每一个时间区间,分别对应LSTM编码器中的一个数据节点。
上述LSTM解码器(Decoder),用于基于LSTM编码器从输入的用户行为向量序列中发现的风险特征,以及用户在观察窗口中各个数据节点中的行为表现,对表现窗口中的各数据节点的信用风险进行预测,输出与表现窗口中的各数据节点对应的预测结果。其中,LSTM解码器中的数据节点,与上述表现窗口中的各时间区间相对应。上述表现窗口中的每一个时间区间,分别对应LSTM解码器中的一个数据节点。
需要说明的是,上述LSTM解码器中的第一个数据节点对应的时间区间,为上述编码器中的最后一个数据节点对应的时间区间的下一个时间区间。比如,图2中,0-M1表示与当前时刻的前一个月对应的时间区间;S表示与当前月对应的时间区间;P-M1表示与当前时刻的下一个月对应的时间区间。
上述注意力机制(Attention),用于为LSTM编码器在观察窗口中的各数据节点输出的特征,分别标注对应于LSTM解码器在表现窗口中的各数据节点输出的预测结果的权重值;其中,该权重值表征LSTM编码器在观察窗口中的各数据节点输出的特征,对应于LSTM解码器在表现窗口中的各数据节点输出的预测结果的贡献度(也称之为影响度)。
通过引入注意力机制,使得建模方可以直观的查看到LSTM编码器在观察窗口中各个数据节点发现的特征,对最终LSTM解码器最终在表现窗口中各个数据节点输出的预测结果的贡献度,提升LSTM模型的可解释性。
在示出的一种实施方式中,为了可以刻画用户的操作行为,上述LSTM编码器和LSTM解码器,均可以采用多层的LSTM网络架构(比如大于3层)。
其中,上述LSTM编码器和LSTM解码器所采用的多层LSTM网络架构的具体形式,在本说明书中不进行特别限定;例如,请参见图3,多层LSTM网络架构的具体形式,通常可以包括one-to-one、one-to-many、many-to-one、输入和输出节点数量不对称的many-to-many、输入和输出节点数量对称的many-to-many等结构形式。
在示出的一种实施方式中,由于LSTM编码器最终需要将观察窗口中的各数据节点输出的隐藏状态向量汇总为一路输入,因此LSTM编码器可以采用如图3中示出的many-to-one结构。而由于LSTM解码器最终需要为表现窗口中的各数据节点分别输出一个对应的预测结果,因此LSTM编码器可以采用如图3中示出的输入和输出节点数量对称的many-to-many结构。
以下通过具体的实施例对以上示出的基于encoder–decoder架构的LSTM模型的训练以及使用过程进行详细描述。
1)用户分群
在本说明书中,由于不同的用户人群的数据厚薄,以及信用行为表现等均存在较大的差异,因此为了避免这种差异对模型准确度的影响,在针对需要进行信用风险评估的用户群体进行建模时,可以按照这些差异对上述用户群体进行用户群体划分,然后针对每一个用户群体分别训练用于对该用户群体中的用户进行信用风险评估的LSTM模型。
其中,在对上述用户群体进行用户群体划分时所采用的特征,以及具体的用户群体划分方式,在本说明书中不进行特别限定;
例如,在实际应用中,可以按照用户数据丰富程度、职业、逾期次数、年龄等特征,来进行用户群体划分;比如,如图4所示,在一个例子中,可以将所有用户划分为数据稀少的群体和数据丰富的群体,然后进一步将数据稀少的群体按照职业划分为诸如工薪族、学生组等用户群体,将数据丰富的群体按照逾期次数,进一步划分为信用良好、信用一般等用户群体。
2)基于encoder–decoder架构的LSTM模型的训练
在本说明书中,在对划分出的某一用户群体进行上述LSTM模型的训练时,建模方可以收集隶属于该用户群体的大量被标记了风险标签的用户账户作为样本账户。
其中,上述风险标签具体可以包括用于指示账户存在信用风险的标签,和用于指示账户不存在信用风险的标签;比如,对于存在信用风险的样本账户可以标记一个标签1;对于不存在信用风险的样本账户可以标记一个标签0。
需要说明的是,建模方准备的被标记了风险标签的样本账户中,被标记了用于指示账户存在信用风险的标签,和被标记了用于指示账户不存在信用风险的标签的样本账户的比例,在本说明书中不进行特别限定,建模方可以基于实际的建模需求来进行设置。
进一步的,建模方可以获取被标记了风险标签的这些样本账户,在上述观察窗口内的用户操作行为数据,并获取这些样本账户在上述观察窗口中的各个时间区间内产生的用户操作行为数据,基于这些样本账户在上述观察窗口中的各个数据节点对应的时间区间内产生的用户操作行为数据,为各数据节点分别构建对应的用户行为向量序列,然后将构建出的用户行为向量序列作为训练样本来训练上述基于encoder–decoder架构的LSTM模型。
在示出的一种实施方式中,建模方可以预先定义多种用于构建用户行为向量序列的用户操作行为,在对观察窗口中的各数据节点分别构建对应的用户行为向量序列时,可以获取上述样本账户在观察窗口中的各个时间区间内,产生的与上述多种用户操作行为对应的的多种用户操作行为数据,并从获取到的用户操作行为数据中分别提取关键因子,然后对提取到的关键因子进行数字化处理,得到与各用户操作行为数据对应的用户行为向量。
进一步的,在得到与各用户操作行为对应的用户行为向量后,可以对上述观察窗口中的各个数据节点对应的时间区间内的多种用户操作行为数据对应的用户行为向量进行拼接处理,生成对应于各个时间区间的用户行为向量序列。
其中,建模方定义的上述多种用户操作行为在本说明书中不进行特别限定,建模方可以基于实际的需求进行自定义;从与上述多种用户操作行为对应的用户操作行为数据中提取的关键因子,在本说明书中也不进行特别限定,上述用户操作行为数据中的重要构成要素,均可以作为上述关键因子,
请参见图5,图5为本说明书示出的一种为LSTM编码器中的各数据节点构建用户行为向量序列的示意图。
在示出的一种实施方式中,建模方定义的多种用户操作行为,具体可以包括信贷表现行为、用户消费行为、理财支付行为;相应的,上述关键因子,具体可以包括与信贷表现行为对应的借贷订单状态和借贷还款金额、与用户消费行为对应的用户消费类目和用户消费笔数、与理财支付行为对应的理财支付类型和理财收益金额等等。
对于观察窗口中的每一个时间区间,可以分别获取样本账户在该时间区间内产生的信贷表现行为数据、用户消费行为数据、理财支付行为数据,然后从信贷表现行为数据中提取出借贷订单状态(图5中示出的为正常、逾期两种状态)和借贷还款金额(图5中示出的为实际的借贷金额和逾期金额;比如,逾期1/50,表示逾期一次,逾期金额50元;正常/10,表示正常还款,还款金额为10元),从用户消费行为数据中提取出用户消费类目(图5中示出的为手机、黄金、充值、服装等四种消费类目)和用户消费笔数,从理财支付行为数据中提取出理财支付类型(图5中示出的为货币基金、基金两种理财产品类型)和理财收益金额。
进一步的,可以对从信贷表现行为数据、用户消费行为数据、理财支付行为数据中提取出的信息进行数字化处理,得到每一种用户操作行为数据对应于各时间区间的用户行为向量,而后可以对以上示出的三种用户操作行为数据对应于各时间区间的用户行为向量进行拼接,得到与各时间区间对应的用户行为向量序列。
在本说明书中,上述基于encoder–decoder架构的LSTM模型中的LSTM编码器所涉及的计算通常包括输入门计算、记忆门(也称之为遗忘门)计算、单元状态计算以及隐藏状态向量计算四部分;其中,由于在本说明书中,LSTM编码器计算得到的隐藏状态向量,最终会汇总后作为LSTM解码器的输入,因此对于LSTM编码器而言,可以不涉及输出门。以上各部分计算所涉及的计算公式如下所示:
f(t)=f(Wf*Xi+Uf*h(t-1)+bf)
i(t)=f(Wi*Xi+Ui*h(t-1)+bi)
m(t)=tanh(Wm*Xi+Um*h(t-1)+bm)
h(t)=f(t)*h(t-1)+i(t)*m(t)
其中,在以上公式中,f(t)表示LSTM编码器第t个数据节点的记忆门;i(t)表示LSTM编码器第t个数据节点的输入门;m(t)表示LSTM编码器第t个数据节点的单元状态(也称之为候选隐藏状态);h(t)表示LSTM编码器第t个数据节点(即第t个时间区间)对应的隐藏状态向量;h(t-1)表示LSTM编码器第t个数据节点的上一数据节点对应的隐藏状态向量;f表示非线性激活函数,可以基于实际的需求选取合适的非线性激活函数;例如,对于LSTM编码器而言,上述f具体可以采用sigmoid函数。Wf和Uf表示记忆门的权重矩阵;bf表示记忆门的偏置项。Wi和Ui表示输入门的权重矩阵;bi表示输入门的偏置项;Wm和Um表示单元状态的权重矩阵;bm表示单元状态的偏置项。
在本说明书中,上述基于encoder–decoder架构的LSTM模型中的LSTM解码器中引入的注意力机制涉及的计算通常包括贡献度取值计算、以及贡献度取值进行归一化处理(归一化至0~1之间)转换成权重值的计算两部分。以上各部分计算所涉及的计算公式如下所示:
etj=tanh(Wa*s(j-1)+Ua*h(t))
atj=exp(etj)/sum_T(exp(etj))
其中,在以上公式中,etj表示LSTM编码器第t个数据节点对应的隐藏状态向量,对LSTM编码器第j个数据节点对应的预测结果的贡献度取值;atj表示对etj进行归一化处理后,得到的权重值;exp(etj)表示对etj进行指数函数运算;sum_T(exp(etj))表示对LSTM编码器的共计T个数据节点的etj进行求和。s(j-1)表示LSTM解码器第j个数据节点对应的隐藏状态向量。Wa和Ua为注意力机制的权重矩阵。
其中,需要说明的是,在以上公式中,对etj进行归一化处理,采用的是将etj的取值进行指数函数运算的结果,与对LSTM编码器的共计T个数据节点的etj进行求和的结果相除的方式,将etj的取值归一化至区间[0,1],在实际应用中,除了以上公式示出的归一化方式以外,本领域技术人员在将本说明书的技术方案付诸实现时,也可以采用其它的归一化方式,在本说明书中不再进行一一列举。
在本说明书中,上述基于encoder–decoder架构的LSTM模型中的LSTM编码器涉及的计算通常包括输入门计算、记忆门计算、输出门计算、单元状态计算、隐藏状态向量计算、以及输出向量计算等六部分。以上各部分计算所涉及的计算公式如下所示:
F(j)=f(WF*Cj+UF*S(j-1)+KF*y(j-1)+bf)
I(j)=f(WI*Cj+UI*S(j-1)+KI*y(j-1)+bI)
O(j)=f(Wo*Cj+UO*S(j-1)+KO*y(j-1)+bO)
n(j)=tanh(Wn*Cj+Un*S(j-1)+Km*y(j-1)+bn)
S(j)=F(j)*S(j‐1)+I(j)*n(j)
y(j)=O(j)*tanh(S(j))
Cj=sum_T(atj*h(t))
其中,在以上公式中,F(j)表示LSTM解码器第j个数据节点的记忆门;I(j)表示LSTM解码器第j个数据节点的输入门;O(j)表示LSTM解码器第j个数据节点的输出门;n(j)表示LSTM解码器第j个数据节点的单元状态;S(j)表示LSTM解码器第j个数据节点对应的隐藏状态向量;S(j-1)表示LSTM解码器第j个数据节点的上一数据节点对应的隐藏状态向量;y(j)表示LSTM解码器第j个节点的输出向量;f表示非线性激活函数,可以基于实际的需求选取合适的非线性激活函数;例如,对于LSTM解码器而言,上述f具体也可以采用sigmoid函数。Cj表示LSTM编码器各个数据节点对应的隐藏状态向量h(t)乘以基于LSTM解码器的注意力机制计算出的注意力权重atj后进行加权计算得到的加权和;WF、UF和KF表示记忆门的权重矩阵;bF表示记忆门的偏置项。WI、UI和KI表示输入门的权重矩阵;bI表示输入门的偏置项;WO、UO和KO表示输出门的权重矩阵;bO表示输出门的偏置项。Wn、Un和Kn表示单元状态的权重矩阵;bn表示单元状态的偏置项。
在本说明书中,以上各公式中示出的Wf、Uf、bf、Wi、Ui、bi、Wm、Um、bm、Wa、Ua、WF、UF、KF、bF、WI、UI、KI、bI、WO、UO、KO、bo、Wn、Un和Kn、bn等参数,即为上述LSTM模型最终需要训练出的模型参数。
在训练上述LSTM模型时,具体可以将基于以上示出的被标记了风险标签的样本账户在观察窗口中的各时间区间内的用户操作行为数据,构建出的与各时间区间对应的用户行为向量序列作为训练样本,输入至LSTM编码器中进行训练计算,再将LSTM编码器的计算结果作为输入继续输入至LSTM解码器中进行训练计算,并通过迭代以上的训练计算过程,不断对以上的模型参数进行调整;当将以上各参数调整至最优值时,此时模型的训练算法收敛,上述LSTM模型训练完毕。
其中,需要说明的是,在训练上述LSTM模型时采用的训练算法,在本说明书中不进行特别限定;例如,在一种实现方式中,可以采用梯度下降法来不断进行迭代运算,来训练上述LSTM模型。
3)基于encoder–decoder架构的LSTM模型的信用风险预测
在本说明书中,按照以上实施例中示出的模型训练流程,针对每一个划分出的用户群体分别训练一个LSTM模型,并基于训练完成的该LSTM模型对隶属于该用户群体的用户账户进行信用风险评估。
当建模方需要针对某一目标账户进行风险评估时,建模方可以获取该目标账户,获取该目标账户在上述观察窗口中的各个时间区间内产生的用户操作行为数据,基于该目标账户在上述观察窗口中的各个数据节点对应的时间区间内产生的用户操作行为数据,为各数据节点分别构建对应的用户行为向量序列。
其中,为上述目标账户构建用户行为向量序列的过程,在本说明书中不再进行赘述,可以参考之前实施例的描述;例如,仍然可以采用图5中示出的方式,为目标账户构建与观察窗口中的各时间区间对应的用户行为向量序列。
当为目标账户构建出对应于观察窗口中的各个时间区间的用户行为向量序列后,首先可以从训练完成的LSTM模型中确定出与该目标账户所属的用户群体对应的LSTM模型,然后将该用户行为向量序列作为预测样本,输入至该LSTM模型的LSTM编码器中的各数据节点进行计算。
其中,对于LSTM模型而言,通常采用正向传播计算或者反向传播计算中的其中一种。所谓正向传播计算,是指对应于观察窗口中的各个时间区间的用户行为向量序列,在LSTM模型中的输入顺序,与LSTM模型中的各数据节点的传播方向相同;反之,所谓反向传播计算,是指对应于观察窗口中的各个时间区间的用户行为向量序列,在LSTM模型中的输入顺序,与LSTM模型中的各数据节点的传播方向相反。
也即,对于反向传播计算和正向传播计算而言,观察窗口中的各个时间区间的用户行为向量序列作为输入数据的输入顺序完全相反。
例如,以正向传播计算为例,对于目标账户对应于观察窗口中的第1个时间区间(即第1个月)的用户行为向量序列X1,可以将其作为LSTM编码器各数据节点的传播方向上的第1个数据节点的数据输入,按照以上示出的LSTM编码计算公式,求解出f(1)、i(1)、m(1),再基于计算出的f(1)、i(1)、m(1)进一步求解出与第1个时间区间对应的隐藏状态向量h(1)。然后再将第2个时间区间的用户行为向量序列X2,作为LSTM编码器各数据节点的传播方向上的第2个数据节点的数据输入,采用相同的计算方式进行计算,以此类推,依次分别进行计算出与第2~12个时间区间对应的隐藏状态向量h(2)~h(12)。
又如,以反向传播计算为例,则可以将目标账户对应于观察窗口中的第12个时间区间(也即最后一个时间区间)的用户行为向量序列X12,作为LSTM编码器各数据节点的传播方向上的第1个数据节点的数据输入,采用相同的计算方式,求解出f(1)、i(1)、m(1),再基于计算出的f(1)、i(1)、m(1)进一步求解出与第1个时间区间对应的隐藏状态向量h(1)。然后再将第11个时间区间的用户行为向量序列X11,作为LSTM编码器各数据节点的传播方向上的第2个数据节点的数据输入,采用相同的计算方式进行计算,以此类推,依次分别进行计算出与第2~12个时间区间对应的隐藏状态向量h(2)~h(12)。
在示出的一种实施方式中,为了提升LSTM编码器的计算精度,LSTM编码器中的计算可以采用双向传播计算。当分别完成反向传播计算和正向传播计算后,对于LSTM编码器中的每一个数据节点而言,可以分别得到一个前向传播计算得到的第一隐藏状态向量,和一个反向传播计算得到的第二隐藏状态向量。
在这种情况下,可以对LSTM编码器中各数据节点对应的第一隐藏状态向量和第二隐藏状态进行拼接,作为与各数据节点对应的最终隐藏状态向量;例如,以LSTM编码器的第t个数据节点为例,假设该数据节点计算出的第一隐藏状态向量记为ht_before,计算出的第二隐藏向量记为ht_after,最终隐藏向量记为ht_final,那么ht_final可以表示为t_final=[ht_before,ht_after]。
在本说明书中,当将为目标账户构建出对应于观察窗口中的各个时间区间的用户行为向量序列作为预测样本,输入至上述LSTM模型的LSTM编码器中的各数据节点完成计算后,可以将LSTM编码器中的各数据节点计算得到的隐藏状态向量作为从目标账户的用户操作行为数据中提取出的风险特征,进一步输入至上述LSTM模型中的LSTM解码器,按照以上是实施例中示出的LSTM解码器的计算公式进行计算,以对上述目标账户在上述表现窗口中的各时间区间的信用风险进行预测。
例如,首先可以基于LSTM解码器的注意力机制,计算出与LSTM编码器中的各数据节点对应的隐藏状态向量的注意力权重atj,再进一步计算出与LSTM编码器中的各数据节点对应的隐藏状态向量乘以对应的注意力权重atj后的加权和Cj。然后,可以基于以上示出的LSTM解码器的计算公式,进一步计算出与LSTM解码器中第一个数据节点对应的输出向量,对上述目标账户在表现窗口中第一个时间区间的信用风险进行预测;以此类推,可以基于相同的方式,按照以上示出的LSTM解码器的计算公式,依次计算出与LSTM解码器中的下一个数据节点对应的输出向量,对上述目标账户在表现窗口中的下一个时间区间的信用风险进行预测。
在本说明书中,当完成LSTM解码器的计算后,可以得到LSTM编码器中的各数据节点对应的隐藏状态向量的注意力权重atj,以及与LSTM解码器中的各数据节点对应的输出向量。
在示出的一种实施方式中,上述LSTM模型可以进一步对与LSTM解码器中的各数据节点对应的输出向量进行数字化处理,将与各数据节点对应的输出向量转换为与各数据节点对应的风险评分,作为目标账户在表现窗口中各个时间区间的信用风险预测结果。
其中,对上述输出向量进行数字化处理,将上述输出向量转换为风险评分的具体方式,在本说明书中,不进行特别限定;
例如,在一种实现方式中,由于最终输出的输出向量为一个多维向量,且输出向量中通常会包含取值位于0~1之间的子向量。因此,在实现时,可以直接提取上述输出向量中取值位于0~1之间的子向量的取值,作为与该输出向量对应的风险评分。
在示出的另一种实现方式中,如果上述输出向量中包含多个取值位于0~1之间的子向量时,可以提取该多个子向量的取值中的最大值或者最小值作为与该输出向量对应的风险评分;或者,也可以计算该多个子向量的取值的平均值作为风险评分。
当完成以上计算后,上述LSTM解码器可以将与LSTM解码器中的各数据节点对应的风险评分,以及与上述LSTM编码器中的各数据节点得到的隐藏状态向量,相对于上述风险评分的权重值,作为最终的预测结果进行输出。
其中,在示出的一种实施方式中,上述LSTM解码器也可以将LSTM解码中的各个数据节点对应的风险评分进行汇总后,转换成为一个上述目标账户在上述表现窗口中是否存在信用风险的预测结果。
在一种实现方式中,上述LSTM解码器可以将LSTM解码中的各个数据节点对应的风险评分进行求和,然后将求和结果与预设的风险阈值进行比较;如果求和结果大于等于该风险阈值,则输出一个1,表示上述目标账户在上述变现窗口中存在信用风险;反之,如果求和结果小于风险阈值,则输出一个0,表示上述目标账户在上述变现窗口中不存在信用风险。
通过以上实施例可见,一方面,由于将目标账户在各个时间区间内的用户行为向量序列,作为输入数据直接输入基于编码-解码架构的LSTM模型中的LSTM编码器中进行计算,就可以得到对应于各个时间区间的隐藏状态向量,进而可以将得到的隐藏状态向量作为风险特征进一步输入至LSTM解码器进行计算,来完成该目标账户的风险预测得到风险评分;因此,可以无需建模人员基于目标账户的用户操作行为数据,来开发和探索建模所需的特征变量,可以避免由于基于建模人员的经验设计的特征变量不够准确,而造成的难以深度挖掘出数据中包含的信息,对模型进行风险预测的准确度造成影响;而且,也不需要对人工设计的特征变量进行存储维护,可以降低系统的存储开销;
另一方面,由于基于编码-解码架构的LSTM模型的LSTM解码器中,引入了注意力机制,因此将LSTM编码器得到的对应于各个时间区间的隐藏特征变量作为风险特征,输入LSTM解码器进行风险预测计算,可以得到对应于各个时间区间的隐藏状态向量对应于最终风险评分的权重值,从而能够直观的评估出各个隐藏特征变量对最终得到的风险评分的贡献度,进而可以提升LSTM模型的可解释性。
与上述方法实施例相对应,本说明书还提供了装置的实施例。
与上述方法实施例相对应,本说明书还提供了一种基于LSTM模型的信用风险预测装置的实施例。本说明书的基于LSTM模型的信用风险预测装置实施例可以应用在电子设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在电子设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图6所示,为本说明书的基于LSTM模型的信用风险预测装置所在电子设备的一种硬件结构图,除了图6所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的电子设备通常根据该电子设备的实际功能,还可以包括其他硬件,对此不再赘述。
图7是本说明书一示例性实施例示出的一种基于LSTM模型的信用风险预测装置的框图。
请参考图7,所述基于LSTM模型的信用风险预测装置70可以应用在前述图6所示的电子设备中,包括有:获取模块701、生成模块702、第一计算模块703和第二计算模块704。
获取模块701,获取目标账户在预设时间段内的用户操作行为数据;其中,所述预设时间段为由若干时间步长相同的时间区间组成的时间序列;
生成模块702,基于所述目标账户在各个时间区间内的用户操作行为数据,生成对应于各个时间区间的用户行为向量序列;
第一计算模块703,将生成的对应于各个时间区间的用户行为向量序列输入至训练完毕的基于编码-解码架构的LSTM模型中的LSTM编码器进行计算,得到对应于各个时间区间的隐藏状态向量;其中,所述LSTM模型包括LSTM编码器,和引入了注意力机制的LSTM解码器;
第二计算模块704,将对应于各个时间区间的隐藏状态向量作为风险特征,输入至所述LSTM解码器进行计算,得到所述目标账户在下一时间区间内的风险评分;以及,各隐藏状态向量对应于所述风险评分的权重值;其中,所述权重值表征所述隐藏状态向量对所述风险评分的贡献度。
在本实施例中,所述获取模块701进一步:
获取若干被标记了风险标签的样本账户在所述预设时间段内的用户操作行为数据;
所述生成模块702进一步:
基于所述若干样本账户在各个时间区间内的用户操作行为数据,生成对应于各个时间区间的用户行为向量序列;
所述装置70还包括:
训练模块705(图7中未示出),将生成的用户行为向量序列作为训练样本训练基于编码-解码架构的LSTM模型。
在本实施例中,所述生成模块702进一步:
获取账户在各个时间区间内的多种用户操作行为数据;
从获取到的用户操作行为数据中提取关键因子,并对所述关键因子进行数字化处理,得到与所述用户操作行为数据对应的用户行为向量;
对与各个时间区间内的多种用户操作行为数据对应的用户行为向量进行拼接处理,生成对应于各个时间区间的用户行为向量序列。
在本实施例中,所述多种用户行为包括信贷表现行为、用户消费行为、理财支付行为;
所述关键因子包括与信贷表现行为对应的借贷订单状态和借贷还款金额、与用户消费行为对应的用户消费类目和用户消费笔数、与理财支付行为对应的理财支付类型和理财收益金额。
在本实施例中,所述LSTM编码器采用多层的many-to-one结构;所述LSTM解码器采用输入节点和输出节点数量对称的多层的many-to-many结构。
在本实施例中,所述第一计算模块703:
将生成的对应于各个时间区间的用户行为向量序列输入至训练完毕的基于编码-解码架构的LSTM模型中的LSTM编码器进行双向传播计算,得到前向传播计算得到的第一隐藏状态向量;以及,后向传播计算得到的第二隐藏状态向量;其中,在进行前向传播计算和后向传播计算时,对应于各个时间区间的用户行为向量序列的输入顺序相反;
对所述第一隐藏状态向量和所述第二隐藏状态向量进行拼接处理,得到对应于各个时间区间的最终隐藏状态向量。
在本实施例中,所述第二计算模块704:
将对应于各个时间区间的隐藏状态向量作为风险特征,输入至所述LSTM解码器进行计算,得到所述目标账户在下一时间区间内的输出向量;
对所述输出向量进行数字化处理,得到所述目标账户在下一时间区间内的风险评分。
在本实施例中,所述输出向量为多维向量;
所述对所述输出向量进行数字化处理,包括以下中的任一:
提取所述输出向量中取值位于0~1之间的子向量的取值作为风险评分;
如果所述输出向量中包含多个取值位于0~1之间的子向量时,计算该多个子向量的取值的平均值作为风险评分;
如果所述输出向量中包含多个取值位于0~1之间的子向量时,提取该多个子向量的取值中的最大值或者最小值作为风险评分。
上述装置中各个模块的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
上述实施例阐明的系统、装置、模块或模块,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
与上述方法实施例相对应,本说明书还提供了一种电子设备的实施例。该电子设备包括:处理器以及用于存储机器可执行指令的存储器;其中,处理器和存储器通常通过内部总线相互连接。在其他可能的实现方式中,所述设备还可能包括外部接口,以能够与其他设备或者部件进行通信。
在本实施例中,通过读取并执行所述存储器存储的与基于LSTM模型的信用风险预测的控制逻辑对应的机器可执行指令,所述处理器被促使:
获取目标账户在预设时间段内的用户操作行为数据;其中,所述预设时间段为由若干时间步长相同的时间区间组成的时间序列;
基于所述目标账户在各个时间区间内的用户操作行为数据,生成对应于各个时间区间的用户行为向量序列;
将生成的对应于各个时间区间的用户行为向量序列输入至训练完毕的基于编码-解码架构的LSTM模型中的LSTM编码器进行计算,得到对应于各个时间区间的隐藏状态向量;其中,所述LSTM模型包括LSTM编码器,和引入了注意力机制的LSTM解码器;
将对应于各个时间区间的隐藏状态向量作为风险特征,输入至所述LSTM解码器进行计算,得到所述目标账户在下一时间区间内的风险评分;以及,各隐藏状态向量对应于所述风险评分的权重值;其中,所述权重值表征所述隐藏状态向量对所述风险评分的贡献度。
在本实施例中,通过读取并执行所述存储器存储的与基于LSTM模型的信用风险预测的控制逻辑对应的机器可执行指令,所述处理器还被促使:
获取若干被标记了风险标签的样本账户在所述预设时间段内的用户操作行为数据;基于所述若干样本账户在各个时间区间内的用户操作行为数据,生成对应于各个时间区间的用户行为向量序列;将生成的用户行为向量序列作为训练样本训练基于编码-解码架构的LSTM模型。
在本实施例中,通过读取并执行所述存储器存储的与基于LSTM模型的信用风险预测的控制逻辑对应的机器可执行指令,所述处理器还被促使:
获取账户在各个时间区间内的多种用户操作行为数据;
从获取到的用户操作行为数据中提取关键因子,并对所述关键因子进行数字化处理,得到与所述用户操作行为数据对应的用户行为向量;
对与各个时间区间内的多种用户操作行为数据对应的用户行为向量进行拼接处理,生成对应于各个时间区间的用户行为向量序列。
在本实施例中,通过读取并执行所述存储器存储的与基于LSTM模型的信用风险预测的控制逻辑对应的机器可执行指令,所述处理器还被促使:
将生成的对应于各个时间区间的用户行为向量序列输入至训练完毕的基于编码-解码架构的LSTM模型中的LSTM编码器进行双向传播计算,得到前向传播计算得到的第一隐藏状态向量;以及,后向传播计算得到的第二隐藏状态向量;其中,在进行前向传播计算和后向传播计算时,对应于各个时间区间的用户行为向量序列的输入顺序相反;
对所述第一隐藏状态向量和所述第二隐藏状态向量进行拼接处理,得到对应于各个时间区间的最终隐藏状态向量。
在本实施例中,通过读取并执行所述存储器存储的与基于LSTM模型的信用风险预测的控制逻辑对应的机器可执行指令,所述处理器还被促使:
将对应于各个时间区间的隐藏状态向量作为风险特征,输入至所述LSTM解码器进行计算,得到所述目标账户在下一时间区间内的输出向量;
对所述输出向量进行数字化处理,得到所述目标账户在下一时间区间内的风险评分。
在本实施例中,所述输出向量为多维向量;通过读取并执行所述存储器存储的与基于LSTM模型的信用风险预测的控制逻辑对应的机器可执行指令,所述处理器还被促使执行以下中的任一:
提取所述输出向量中取值位于0~1之间的子向量的取值作为风险评分;
如果所述输出向量中包含多个取值位于0~1之间的子向量时,计算该多个子向量的取值的平均值作为风险评分;
如果所述输出向量中包含多个取值位于0~1之间的子向量时,提取该多个子向量的取值中的最大值或者最小值作为风险评分。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本说明书的其它实施方案。本说明书旨在涵盖本说明书的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本说明书的一般性原理并包括本说明书未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本说明书的真正范围和精神由下面的权利要求指出。
应当理解的是,本说明书并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本说明书的范围仅由所附的权利要求来限制。
以上所述仅为本说明书的较佳实施例而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。