发明内容
本申请提出一种账户风险识别方法,该方法包括:
基于目标账户在预设时长内的操作行为数据生成用户行为序列;所述用户行为序列包括若干按照发生时间排序的数据节点;
提取所述行为序列中各数据节点的风险识别特征;
将提取出的各数据节点的风险识别特征作为输入数据输入至预设的长短期记忆LSTM模型中进行计算;其中,所述预设的LSTM模型基于从若干风险账户的用户行为序列中提取出的风险识别特征样本训练得到;
基于所述LSTM模型输出的计算结果对所述目标账户进行风险识别。
可选的,所述基于目标账户在预设时长内的操作行为数据生成行为序列包括:
采集目标账户在预设时长内的操作行为数据;
基于预设时间周期将采集到的所述操作行为数据划分为若干数据集合;
将划分出的所述若干数据集合分别作为数据节点按照发生时间进行排序以生成所述行为序列。
可选的,所述基于目标账户在预设时长内的操作行为数据生成行为序列包括:
采集目标账户的操作行为数据;
确定所述操作行为数据是否包含指定的关键行为;
当所述操作行为数据中包含指定的关键行为时,采集该目标账户在所述指定的关键行为的发生时间以前预设时长内产生的所有关键行为数据;
将采集到的所有关键行为数据分别作为数据节点按照发生时间进行排序以生成所述行为序列。
可选的,所述数据节点包括若干按照发生时间排序的操作行为数据;
所述提取所述行为序列中各数据节点的风险识别特征包括:
提取与所述行为序列中各数据节点中的操作行为数据关联的风险评估信息,作为所述风险识别特征;其中,所述风险评估信息包括与所述目标账户相关的风险评估信息,以及与所述目标账户对应的业务对端账户相关的风险评估信息;或者
判定所述行为序列中各数据节点中的操作行为数据是否具有设定的风险特征,并对判定结果进行编码,将编码得到的字符串作为所述风险识别特征。
可选的,所述将提取出的各数据节点的风险识别特征作为输入数据输入至预设的LSTM模型中进行计算包括:
将所述各数据节点的风险识别特征作为输入数据,按照发生时间顺序依次输入至所述LSTM模型进行计算,并将前一数据节点的计算结果与下一数据节点的风险识别特征进行加权求和后继续进行计算,直到所述各数据节点的风险识别特征在所述LSTM模型中均计算完成;
其中,所述用户行为序列中已发生的数据节点的风险识别特征在所述风险识别模型中进行离线计算,所述离线计算的结果与所述用户行为序列中最新的数据节点的风险识别特征在所述风险识别模型中进行实时计算。
可选的,所述方法还包括:
在指定的数据节点或者在检测到指定的关键行为时,输出所述LSTM模型的计算结果。
可选的,搭载所述LSTM模型的硬件处理器为GPU。
本申请还提出一种账户风险识别装置,该装置包括:
生成模块,用于基于目标账户在预设时长内的操作行为数据生成用户行为序列;所述用户行为序列包括若干按照发生时间排序的数据节点;
提取模块,用于提取所述行为序列中各数据节点的风险识别特征;
计算模块,用于将提取出的各数据节点的风险识别特征作为输入数据输入至预设的LSTM模型中进行计算;其中,所述预设的LSTM模型基于从若干风险账户的用户行为序列中提取出的风险识别特征样本训练得到;
识别模块,用于基于所述LSTM模型输出的计算结果对所述目标账户进行风险识别。
可选的,所述生成模块具体用于:
采集目标账户在预设时长内的操作行为数据;
基于预设时间周期将采集到的所述操作行为数据划分为若干数据集合;
将划分出的所述若干数据集合分别作为数据节点按照发生时间进行排序以生成所述行为序列。
可选的,所述生成模块具体用于:
采集目标账户的操作行为数据;
确定所述操作行为数据是否包含指定的关键行为;
当所述操作行为数据中包含指定的关键行为时,采集该目标账户在所述指定的关键行为的发生时间以前预设时长内产生的所有关键行为数据;
将采集到的所有关键行为数据分别作为数据节点按照发生时间进行排序以生成所述行为序列。
可选的,所述数据节点包括若干按照发生时间排序的操作行为数据;
所述提取模块具体用于:
提取与所述行为序列中各数据节点中的操作行为数据关联的风险评估信息,作为所述风险识别特征;其中,所述风险评估信息包括与所述目标账户相关的风险评估信息,以及与所述目标账户对应的业务对端账户相关的风险评估信息;或者
判定所述行为序列中各数据节点中的操作行为数据是否具有设定的风险特征,并对判定结果进行编码,将编码得到的字符串作为所述风险识别特征。
可选的,所述计算模块具体用于
将所述各数据节点的风险识别特征作为输入数据,按照发生时间顺序依次输入至所述LSTM模型中进行计算,并将前一数据节点的计算结果与下一数据节点的风险识别特征进行加权求和后继续进行计算,直到所述各数据节点的风险识别特征在所述LSTM模型中均计算完成;
其中,所述用户行为序列中已发生的数据节点的风险识别特征在所述风险识别模型中进行离线计算,所述离线计算的结果与所述用户行为序列中最新的数据节点的风险识别特征在所述风险识别模型中进行实时计算。
可选的,所述装置还包括:
输出模块,用于在指定的数据节点或者在检测到指定的关键行为时,输出所述LSTM模型的计算结果。
可选的,搭载所述LSTM模型的硬件处理器为GPU。
本申请中,通过基于目标账户在预设时长内的操作行为数据生成用户行为序列,并提取该行为序列中各数据节点的风险识别特征,将提取出的各数据节点的风险识别特征作为输入数据输入至基于从若干风险账户的用户行为序列中提取出的风险识别特征样本训练得到的LSTM模型中进行计算,然后基于该LSTM模型输出的计算结果对所述目标账户进行风险识别,实现了可以基于若干风险账户在预设时长内的行为序列来构建用于风险账户识别的LSTM模型,并通过构建的LSTM模型对从用户的行为序列中提取出的风险识别特征进行计算,来对目标账户进行风险评估;由于在构建LSTM模型以及使用LSTM模型时充分考虑了风险识别特征间的时序关系,构建模型以及使用模型时所输入的特征变量将不再是零散的特征变量,因此可以从整体上提升对目标账户进行风险评估的灵敏度和准确度。
具体实施方式
在现有的交易风险防范体系中,通常可以通过提供大量风险账户作为训练样本,并从这些风险交易中提取风险特征作为特征变量进行训练,来构建用于对用户的交易账户进行风险预测和评估的交易模型。
当使用交易模型对用户的交易账户进行风险预测和评估时,可以从用户发起的交易中提取与构建交易模型时所使用的风险特征维度相同的交易特征作为特征变量,然后输入至交易模型基于交易模型的算法进行计算,通过计算结果(通常为该交易为风险交易的概率值)对本次交易进行风险预测和评估。
然而,现有交易风险防范体系中的交易模型,至少存在以下不足:
第一,现有的交易模型通常具有实时性的要求,需要在用户确认付款至用户感知到交易付款成功的间隙(时间以毫秒记)作出实时响应,因此需要在交易模型中计算的特征变量数据往前追溯的时间不能太长,一旦过长,数量量过大可能就不能满足实时性的要求。
第二,现有的交易模型在训练阶段以及使用阶段所使用的特征变量,并通常均为一些离散的特征(比如可以包括用户登录特征,当前交易特征,以及用户历史操作特征等),并不能有效的反映不同时间点的特征变量之间的时序关系;例如,并不能有效的反映出用户几个月以前的登录、浏览及交易等环节的特征信息与当前登录、浏览、交易环节的特征信息之间的时序关系。
因此,鉴于以上的不足,现有的交易模型在一些特殊的风险防范场景中,比如囤号风险,可能无法满足实际的风险防范需求。
所谓囤号风险,是指非法用户在盗取用户的账户后,并不急于把该账户的资金迅速转走,而是通过小金额操作等多种手段(比如给正常用户进行小额度充值)进行长期尝试(比如可能长达数月),以绕过交易模型的风险监控,并在绕过交易模型的风险监控后潜伏一段时间,然后再逐步提升转移资金的额度,使得被盗账号损失严重。
囤号风险之所以防范难度较大,在于在线交易的数据处理量通常极大,盗号者前期小金额的试探性交易一旦未能被交易模型有效防范,那么这些小金额的试探性交易就会混入正常的用户交易中,随着正常的用户交易的数量不断增长,后续针对这些交易的识别难度就会增大,可能会造成对这类风险交易防范不及时而对用户的资金造成损失。
可见,基于现有的交易模型针对囤号风险交易进行风险防范时,由于交易模型中计算处理的特征变量的追溯周期有限,并且所使用的特征变量为离散的特征,并不能有效的反映不同时间点的特征变量之间的时序关系的时序关系,因此对于盗号初期那些小金额的试探性交易无法进行及时识别,从而可能会导致对囤号风险交易防范不及时而对用户的资金造成损失。
有鉴于此,本申请提出一种账户风险识别方法,通过基于目标账户在预设时长内的操作行为数据生成用户行为序列,并提取该行为序列中各数据节点的风险识别特征,将提取出的各数据节点的风险识别特征作为输入数据输入至基于从若干风险账户的用户行为序列中提取出的风险识别特征样本训练得到的LSTM模型中进行计算,然后基于该LSTM模型输出的计算结果对所述目标账户进行风险识别,实现了可以基于若干风险账户在预设时长内的行为序列来构建用于风险账户识别的LSTM模型,并通过构建的LSTM模型对从用户的行为序列中提取出的风险识别特征进行计算,来对目标账户进行风险评估;由于在构建LSTM模型以及使用LSTM模型时充分考虑了风险识别特征间的时序关系,构建模型以及使用模型时所输入的特征变量将不再是零散的特征变量,因此可以从整体上提升对目标账户进行风险评估的灵敏度和准确度。
下面通过具体实施例并结合具体的应用场景对本申请进行描述。
请参考图1,图1是本申请一实施例提供的一种账户风险识别方法,应用于服务端,所述方法执行以下步骤:
步骤101,基于目标账户在预设时长内的操作行为数据生成用户行为序列;所述用户行为序列包括若干按照发生时间排序的数据节点;
步骤102,提取所述行为序列中各数据节点的风险识别特征;
步骤103,将提取出的各数据节点的风险识别特征作为输入数据输入至预设的LSTM模型中进行计算;其中,所述预设的LSTM模型基于从若干风险账户的用户行为序列中提取出的风险识别特征样本训练得到;
步骤104,基于所述LSTM模型输出的计算结果对所述目标账户进行风险识别。
上述目标账户,可以包括用户的支付账户,用户可以通过在相应的支付客户端(比如支付APP)上登录目标账户来发起支付交易。
上述服务端,可以包括面向用户的支付客户端提供服务,对用户登录客户端所使用的支付账号进行风险识别的服务器、服务器集群或者基于服务器集群构建的云平台。
上述操作行为数据,可以包括用户在客户端上登录目标账户后执行的一系列与交易相关的操作行为而产生的数据;例如,上述操作行为可以包括用户的登录、绑定手机、修改密码、绑定银行卡、充值、交易创建以及付款等用户在执行交易的过程中各环节的操作行为,客户端在检测到上述操作行为后,可以将客户端在执行上述操作行为产生的数据上传至服务端,由服务端在本地的数据库中作为事件进行保存。
在本例中,可以预先提供大量已标定出的风险账户,并针对这些风险账户在预设时长内的用户操作行为数据生成用户行为序列,然后从生成的这些用户行为序列中提取风险识别特征作为训练样本进行深度学习训练,来构建LSTM(Long-Short Term Memory,长短期记忆)模型。
当上述LSTM模型构建完成后,在基于该LSTM模型对目标账户进行风险识别时,可以按照相同的方式,针对目标账户在预设时长内的用户操作行为数据生成用户行为序列,从生成的该用户行为序列中提取风险识别特征作为特征变量,并将提取出的特征变量作为输入数据输入至该LSTM模型中进行计算,然后基于计算结果来对该目标账户进行风险识别。
由于在构建LSTM模型以及使用LSTM模型时所使用的特征变量均为基于用户行为序列提取出的风险识别特征,充分考虑了不同时间点上特征变量之间的时序关系,因此在构建模型以及使用模型时输入的特征变量将不再是零散的特征,从而可以从整体上提升对目标账户进行风险评估的灵敏度和准确度。
以下结合服务端对目标账户发起的交易进行风险识别的应用场景对本申请的技术方案进行详细描述。
请参见图2,图2为本例示出的一种LSTM模型的架构图。
本例中示出的该LSTM模型,是一种基于LSTM网络搭建的,可以在模型中对具有时序关系的连续的特征样本进行记忆的深度学习模型,在实际应用中,可以作为风险识别模型对用户的目标账户进行风险识别。
请继续参见图2,在本例中,该LSTM模型为一种三层模型,可以包括输入层、记忆层(也称为隐藏层)和输出层。
需要说明的是,在实际应用中,该LSTM模型的层数并不限定为三层,本领域技术人员可以根据实际的深度学习需求,在本例中示出的三层架构的基础上适当增加模型的层数。
1)输入层
上述输入层,用于接收从用户行为序列中提取到的风险识别特征,可以包括若干个数据节点,每一个数据点都可以作为输入层的一个数据输入源。
其中,对于输入层来说,包含的数据节点的个数,以及各数据节点需要输入的风险识别特征,均可以由LSTM模型的设计者根据具体的风险评估需求来进行设计。
一方面,上述输入层的数据节点的个数,通常取决于上述风险识别模型的时序设计。
在示出的一种时序设计中,可以采用设定的时间周期来组织序列。
上述模型的设计者可以为用户行为序列设定一个预设时长(比如3个月),此时上述用户行为序列可以基于该预设时长内的所有操作行为数据生成。同时,上述模型的设计者还可以设定一个用于组织序列的时间周期(比如该时间周期可以为小时、天、周或者月),然后基于设定的该时间周期对上述预设时长内的操作行为数据进行划分,得到若干数据集合(每一个时间周期产生的操作行为数据为一个数据集合),并按照发生时间将各数据集合作为数据节点进行排序,以生成用户行为序列。
此时生成的用户行为序列包括按照发生时间排序的若干数据节点,每一个数据节点中包括若干按照发生时间排序的操作行为数据。其中,不同的数据节点中包含的操作行为数据可以互不相同。
请参见图3,图3为本例中示出的一种按天组织时序的LSTM模型的架构图。
假设模型的设计者设定的用户行为序列的长度为90天,设定的时间周期为按天组织序列,那么可以将用户在这90天内的操作行为数据按天划分为90个数据节点,此时每一天的操作行为数据都为输入层的一个输入源。
在示出的一种时序设计中,可以采用设定的关键行为来组织序列。
上述模型的设计者可以设定若干关键行为,其中上述关键行为可以包括日常交易过程中可以用于对交易风险进行评估的操作行为;例如,上述关键行为可以包括在日常交易过程中的“登录”、“修改密码”、“创建交易”以及“支付”等操作行为。
同时,上述模型的设计者,还可以为用户行为序列设定一个预设时长,在组织序列时,可以读取预设时长内的所有关键行为数据,然后将读取到的所有关键行为数据分别作为一个数据节点,按照发生时间对所有数据节点进行排序,以生成用户行为序列。此时生成的用户行为序列仍然包括按照发生时间排序的若干数据节点,每一个数据节点中包括若干按照发生时间排序的关键行为数据。
其中,需要说明的是,对于风险识别模型来说,通常都会具有实时的响应用户的关键操作行为的需求;例如,当利用风险识别模型对用户通过目标账户发起的交易进行风险识别时,模型可以在用户发起的这笔交易最终的支付环节来进行响应,实时的对本次交易进行风险评估。
因此,上述LSTM模型的设计者,在基于设定的关键行为来设计时点特征组织序列时,可以从设定的若干关键行为中指定一个关键行为(例如可以将支付这种操作行为指定为关键行为),该指定的该关键行为即为模型的响应节点,模型会在检测到该指定的关键行为时,输出最终的计算结果。
当从设定的若干关键行为中指定出关键行为后,在基于关键行为组织时序时,可以采集目标账户在该指定的关键行为的发生时间以前预设时长内的产生的所有关键行为数据,并将采集到的所有关键行为数据分别作为数据节点,按照发生时间进行排序,以生成上述用户行为序列。
请参见图4,图4为本例中示出的一种基于关键行为组织时序的LSTM模型的架构图。
假设模型的设计者设定的用户行为序列的长度为90天,设定的关键行为“登录”、“修改密码”、“创建交易”以及“支付”等日常交易过程中的关键行为,其中关键行为“支付”为指定的关键行为,作为模型的响应节点,那么可以采集“支付”这一关键行为的发生时间以前90天内,用户的目标账户产生的所有关键行为数据,此时采集到的每一个关键行为数据均为一个独立的数据节点,每一个关键行为数据都为输入层的一个输入源。
当然,在实际应用中,除了以上描述的时序设计,也可以基于其它策略来设计时序,在本例中不在进行一一详述。
另一方面,当完成时序设计,确定出上述LSTM模型输入层的数据节点的个数后,则可以进一步确定每一个数据节点上需要输入的风险识别特征。
其中,上述输入层上各数据节点需要输入的风险识别特征,通常取决于上述LSTM模型的时点特征设计。
在示出的一种时点特征设计中,可以将与各数据节点中的操作行为数据关联的风险评估信息作为当前数据节点的风险识别特征。
其中,上述风险评估信息可以包括与目标账户相关的风险评估信息,以及与上述目标账户对应的交易对端账户相关的风险评估信息。
例如,在现有的风险防范体系中,对于目标账户的用户行为序列中的每一次用户操作行为(尤其是一些关键行为),都会由服务端来分别进行风险评估。在针对用户操作行为进行风险评估时,通常不仅需要对该目标账户进行风险评估,同时也需要基于账户关系针对该目标账户的关联账户进行风险评估,当目标账户所属的交易本端与目标账户对应的交易对端账户所属的交易对端任意一方存在交易风险时,都会由服务端将当前的用户操作行为判断为风险操作。
因此,服务端在针对用户操作行为进行风险评估时,可以针对该目标账户的交易本端以及与该目标账户对应的交易对端账户所属的交易对端分别进行风险评估,以得到与目标账户相关的风险评估信息,以及与上述目标账户对应的交易对端账户相关的风险评估信息。
在实际应用中,上述风险评估信息具体可以是服务端在进行风险评估后得到的风险评分。服务端在针对目标账户的用户行为序列中的用户操作行为进行风险评估时,可以基于预设的风险评估策略从不同维度来分别进行风险评估。其中,服务端上的上述风险评估策略,可以根据实际的风险评估需求进行制定,在本例中不再详述,本领域技术人员在将本申请的技术方案付诸实施时,可以参考相关技术中的记载。
请参见图5,图5为本例中示出的一种将风险评分作为时点特征的LSTM模型的架构图。
在图5示出的模型架构中,服务端在针对目标账户的用户行为序列中的用户操作行为进行风险评估时,可以分别基于账户、所在设备、所在设备的网络环境等多个维度针对目标账户和上述交易对端账户分别进行风险评估,得到目标账户的评分、目标账户的设备评分、目标账户的环境评分、交易对端账户的评分、交易对端账户的设备评分以及交易对端账户的环境评分。
例如,服务端在基于预设的风险评估策略针对账户进行评分时,可以综合考虑当前账户是否异地登录、是否频繁登录等多种因素进行综合评分,如果出现异地登录、频繁登录则相应的降低评分;在针对设备进行评分时,可以综合考虑该设备的使用用户是否较多等因素,如果该设备的使用用户较多,比如网吧中的PC设备,则可以判定该设备安全风险较大,可以相应的降低评分;在针对环境进行评分时,可以综合考虑当前网络环境中的IP地址、安全扫描结果等因素进行综合评分,如果当前网络环境中的IP地址为防火墙管控的黑名单中IP地址,或者当前网络环境安全扫描结果较差,则可以相应的降低评分。
当然,除了以上描述的服务端可以基于账户、所在设备、所在设备的网络环境等多个维度针对目标账户和上述交易对端账户分别进行风险评估以外,在实际应用中也可以通过其它维度针对目标账户和上述交易对端账户进行评分,在本例中不再进行一一详述,本领域技术人员在将本申请的技术方案付诸实施时,可以参考相关技术中的记载。
在示出的另一种时点特征设计中,可以判定各数据节点中的操作行为数据是否具有设定的风险特征,并对判定结果进行编码,然后将编码得到的字符串作为各数据节点的风险识别特征。
在本例中,在针对各数据节点进行时点特征设计时,可以针对各数据节点分别设定若干组风险特征,其中上述风险特征可以包括能够用于对各数据节点中的操作行为进行风险评估的特征;例如,在实现时,上述风险特征可以包括交易次数是否达到N次、是否异地登录、是否频繁登录、是否修改密码等交易特征。
当为各数据节点设定了若干组风险特征后,可以判定各数据节点中的操作行为数据是否具有设定的风险特征,然后对判定结果进行编码;例如,可以采用0、1编码的方式,具有某种设定的风险特征则编码为1,不具有某种设定的风险特征则编码为0,最终编码完成得到一个由0和1组成的字符串。当编码完成后,可以将编码完成的字符串作为当前数据节点需要输入的风险识别特征。当然,如果任一数据节点中的操作行为数据均不具有设定的风险特征,此时该数据节点的风险识别特征可以为空值。
其中,需要说明的是,在为各数据节点设置风险特征时,可以为各数据节点设置统一的风险特征,也可以针对不同的数据节点分别设置不同的风险特征。
例如,在如图3所示出的基于预设时间周期来组织时序的模型架构中,各数据节点中可能会包含相同的操作行为,因此在这种情况下,可以针对各数据节点分别设置统一的风险特征;比如,该风险特征可以是当天的交易次数是否达到N次等交易特征。
又如,在如图4所示出的基于关键行为组织时序的模型架构中,由于不同的数据节点包含的关键行为特征均不相同,因此在这种情况下,可以针对各数据节点对应的关键行为的特点分别设置不同的风险特征;例如,对于与登录该关键行为对应的数据节点,为该数据节点设定的风险特征可以包括是否异地操作、是否频繁登录、密码是否过于简单、是否修改密码等风险特征。而对于与其它关键行为对应的数据节点,也可以结合当前数据节点对应的关键行为的特点,来相应设置风险特征,在本例中不再进行一一详述,本领域技术人员在将本申请的技术方案付诸实施时,可以参考相关技术中的记载。
请参见图6,图6为本例中示出的一种将上述编码得到的字符串作为各数据节点的风险识别特征的LSTM模型的架构图。
在图6示出的模型架构中,为输入层各数据节点设置了统一的四组风险特征,在确定各数据节点需要输入的风险识别特征时,可以采用0、1编码的方式,具有某种设定的风险特征则编码为1,不具有某种设定的风险特征则编码为0,然后将编码完成的字符串作为当前数据节点需要输入的风险识别特征。
当然,在实际应用中,在针对模型设计时点特征时,也可以对以上描述的两种时点特征设计方案进行有机结合;比如,可以将风险评估评分作为一种风险特征,与设定的风险特征进行组合编码(组合顺序可以基于实际需求进行调整),然后将编码得到的字符串作为风险识别特征。
2)记忆层
上述记忆层,用于调用LSTM模型中的算法对输入层上各数据节点的风险识别特征进行计算。
请继续参见图2,记忆层在进行计算时,可以按照发生时间顺序,对输入层上各数据节点的风险识别特征依次进行计算,并采用递归计算的方式,将前一数据节点的计算结果与下一数据节点输入的风险识别特征进行加权求和后继续进行计算,直到各数据节点的风险识别特征在所述LSTM模型中均计算完成。
例如,记忆层可以按照发生时间的先后顺序,首先对发生时间最早的数据节点进行计算,当计算完成后将计算结果与下一个数据节点输入的风险识别特征进行加权求和继续进行计算,以此递归,直到所述数据节点的风险识别特征均计算完成。
可见,通过这种方式,可以通过递归的方式,将用户行为序列中的各数据节点的风险识别特征按照发生时间在模型中完成记忆,从而可以对用户行为序列中的历史操作行为数据与最新的操作行为数据在模型中进行融合,由模型综合的完成风险评估。
其中,记忆层在将前一数据节点的计算结果与后一数据节点的风险识别特征进行加权求和时,还可以通过设定加权比例,对前一数据节点计算结果中的部分信息进行筛除,以降低计算的数据处理量。
在例中,由于用户行为序列中各数据节点可能携带大量的特征信息,而模型在处理较长的用户行为序列,可能会存在处理耗时较长而无法满足模型实时性需求的问题。
一方面,为了满足模型实时性需求,记忆层在针对各数据节点的风险识别特征进行计算时,可以采用离线计算和实时计算相结合的方式。
在示出的一种实施方式中,记忆层可以提前对用户行为序列中已发生的数据节点的风险识别特征在模型中进行离线预计算,当模型接收到了最新的数据节点,需要进行风险评估时,再将离线计算的结果实时导入线上生产系统,将上述离线计算结果与该用户行为序列中最新的数据节点的风险识别特征一起进行实时计算。
通过这种方式,可以避免针对所有数据节点的风险识别特征均进行实时计算时,可能导致的处理耗时较长而无法满足模型实时性需求的问题。
另一方面,为了满足模型实时性需求,可以使用高性能的硬件来承载模型,提升计算速度。
在示出的一种实施方式中,服务端可以在其硬件架构中设置GPU(Graphics Processing Unit,图形处理器),将GPU作为承载上述LSTM模型的处理硬件(即使用图形处理器来处理数据),从而可以利用GPU的高性能的处理能力来完成记忆层的计算,提升整体的计算速度。
3)输出层
上述输出层,用于基于记忆层针对用户行为序列中各数据节点的计算结果,做出综合的风险评估,并在指定的数据节点或者检测到指定的关键行为时对风险评估结果进行输出。
例如,在如图3所示出的基于预设时间周期来组织时序的LSTM模型架构中,可以在用户行为序列中指定一个模型的输出节点,比如将用户行为序列中最新的数据节点(即当天的数据节点)设定为模型的输出节点,从而模型可以在接收到当天的数据节点时进行响应,触发对目标账户进行风险评估,并将风险评估结果输出。
或者,也可以在用户行为序列中最新的数据节点中指定关键行为,当在最新的数据节点中的操作行为数据中检测到关键行为时进行响应,触发对目标账户进行风险评估,并将风险评估结果输出。
例如,上述指定关键行为可以是支付行为,当在当天的数据节点中的操作行为数据中检测到了用户的支付行为时,LSTM模型可以实时的进行响应,输出风险评估结果。
又如,在如图4所示出的基于关键行为组织时序的模型架构中,由于不同的数据节点包含的关键行为特征均不相同,因此在这种情况下,可以所有数据节点对应的关键行为中指定一个关键行为,并将与该指定的关键行为对应的数据节点作为模型输出的节点。当检测到了该指定的关键行为时,LSTM模型可以实时的进行响应,输出风险评估结果;比如,上述指定关键行为可以是支付行为,上述LSRM模型输出计算结果的节点可以是与支付这一关键行为对应的数据节点,当在用户的操作行为数据中检测到了用户的支付行为时,LSTM模型可以实时的进行响应,向用户输出风险评估结果。
以下结合图2示出的模型架构对LSTM模型的训练以及应用过程分别进行描述。
一、模型训练
在本例中,在基于图2示出的模型架构来训练LSTM模型时,可以预先准备大量已被标定出的风险账户,并针对这些风险账户在预设时长内的用户操作行为数据生成用户行为序列。
例如,当上述LSTM模型采用设定的时间周期来组织序列,则可以采集各风险账户在预设时长内的所有操作行为数据,并基于设定的时间周期将采集到的操作行为数据划分为若干个数据集合,然后将划分出的数据集合分别作为数据节点按照时间发生顺序生成用户行为数列;比如,假设设定的时间周期为按天组织序列,设定的预设时长为90天,则可以针对各风险账户在90天内所有用户操作行为按天进行数据划分,划分为90个数据集合,此时每一天的操作行为数据都将作为模型输入层的一个输入源。
又如,当上述LSTM模型采用设定的关键行为来组织序列,则可以为各风险账户设定若干关键行为,并在这些关键行为中指定一个关键行为作为模型的响应节点,然后可以采集各风险账户的所有操作行为数据,并确定采集到的操作行为数据中是否包含指定的关键行为;如果包含指定的关键行为,则可以采集在该指定的关键行为发生的时间之前预设时长内各风险账户产生的所有关键行为数据,并将采集到的所有关键行为数据分别作为数据节点按照发生时间排序生成用户行为序列。比如,假设设定的预设时长为90天,设定的关键行为包括登录、修改密码、创建交易以及支付等操作行为,指定的关键行为为“支付”,当确定各风险账户的操作行为数据中包含“支付”行为时,则可以采集该“支付”行为的发生时刻之前90天内各风险账户产生的所有关键行为数据作为数据节点按照发生时刻进行排序生成用户行为序列。
当针对这些风险账户在预设时长内的用户操作行为数据生成了用户行为序列后,可以从生成的这些用户行为序列中提取风险识别特征,以作为训练样本进行训练来构建LSTM模型。
其中,如果上述LSTM模型将与各数据节点中的操作行为数据关联的风险评估信息作为时点特征,则可以提取与已经生成的用户行为序列中各数据节点中的操作行为数据关联的风险评估信息,作为数据节点的风险识别特征。
如果上述模型将通过判定各数据节点中的操作行为数据是否具有设定的风险特征的判定结果的编码结果作为时点特征,则可以针对已经生成的用户行为序列中各数据节点中的操作行为数据进行是否具有设定的风险特征的判定,然后对判定结果进行编码(比如可以进行0、1编码),并将编码得到的字符串作为数据节点的风险识别特征。
在本例中,当从为各风险账户生成的这些用户行为序列中提取出风险识别特征后,可以将提取出的风险识别特征作为训练样本基于LSTM算法进行深度学习训练,来构建上述LSTM模型。
其中,针对上述训练样本进行训练来构建图2所示出的LSTM模型的过程,以及对训练完成的LSTM模型的预测性能进行评估(比如可以通过AUC、PR曲线来评估模型的性能)的过程,在本例中不再进行详述,本领域技术人员在将本申请的技术方案付诸实施时,可以参考相关技术中的记载。
另外,需要说明的是,在构建上述LSTM模型时所使用的风险账户的类型,取决于在构建上述模型时的深度学习目标;例如,当需要基于上述LSTM模型来针对交易过程中的囤号风险进行风险评估,此时在构建上述模型时的深度学习目标则为囤号风险交易的概率,在这种情况下,在构建上述LSTM模型时则可以使用大量已被标定为存在囤号风险的风险账户作为训练样本进行深度学习;相似的,当需要基于上述风险评估模型来针对整个交易的风险进行评估,那么在构建上述LSTM模型时则可以使用大量已被标定为存在交易风险的风险账户(不限于存在囤号风险的账户)作为训练样本进行深度学习。
二、模型使用
当上述LSTM模型构建完成,服务端可以基于构建完成的该LSTM模型对目标账户进行风险识别。
在本例中,服务端首先可以采集目标账户在预设时长内的操作行为数据来生成用户行为序列。
一方面,当上述模型采用设定的时间周期来组织序列,服务端可以采集目标账户在预设时长内的所有操作行为数据,然后基于设定的时间周期将采集到的操作行为数据划分为若干个数据集合,然后将划分出的数据集合分别作为数据节点按照时间发生顺序生成用户行为数列。
另一方面,当上述模型采用设定的关键行为来组织序列,则可以为目标账户设定若干关键行为,并在这些关键行为中指定一个关键行为作为模型的响应节点,然后可以采集目标账户的所有操作行为数据,并确定采集到的操作行为数据中是否包含指定的关键行为;如果包含指定的关键行为,则可以采集该指定的关键行为的发生时间之前预设时长内该目标账户产生的所有关键行为数据,并将采集到的所有关键行为数据分别作为数据节点按照发生时间排序生成用户行为序列。
其中,生成的用户行为序列可以包括若干按照发生时间排序的数据节点;在数据节点中可以包括若干按照发生时间排序的操作行为数据。
在本例中,当服务端为目标账户生成用户行为序列后,可以提取该用户行为序列中各数据节点的风险识别特征。
一方面,当上述LSTM模型将与各数据节点中的操作行为数据关联的风险评估信息作为时点特征时,服务端可以提取与已经生成的用户行为序列中各数据节点中的操作行为数据关联的风险评估信息,作为数据节点的风险识别特征。
另一方面,当上述模型将通过判定各数据节点中的操作行为数据是否具有设定的风险特征的判定结果的编码结果作为时点特征时,则可以对判定结果进行编码,然后将编码得到的字符串作为各数据节点的风险识别特征。
在本例中,当服务端提取出目标账户的用户行为序列中各数据节点的风险识别特征后,可以将提取出的各数据节点的风险识别特征作为输入数据,按照发生时间的顺序依次输入至上述LSTM模型的输入层,然后由上述LSTM模型的记忆层进行计算。
其中,记忆层在针对各数据节点的风险识别特征进行计算时,可以按照发生时间顺序,对输入层上各数据节点的风险识别特征依次进行计算,并采用递归计算的方式,将前一数据节点的计算结果与下一数据节点输入的风险识别特征进行加权求和后继续进行计算,直到各数据节点的风险识别特征在所述LSTM模型中均计算完成。
同时,记忆层还可以采用离线计算和实时计算相结合的方式,对于用户行为序列中已经发生的数据节点的风险识别特征,可以进行离线预计算,当LSTM模型接收到了用户行为序列中最新的数据节点,需要进行风险评估时,再将离线计算结果实时导入线上生产系统,将上述离线计算结果与该最新的数据节点的风险识别特征一起进行实时计算。
当计算完成后,LSTM模型可以在指定的数据节点或者检测到指定的关键行为时,通过输出层将计算结果输出,后续系统可以通过解析该计算结果,针对目标账户进行风险识别,然后根据风险识别结果来针对目标账户执行相应的安全防护策略。
例如,假设指定的关键行为为支付行为时,当使用目标账户的用户进行支付操作时,上述LSTM模型可以做出响应,对目标账户进行风险评估计算并输出计算结果,此时支付系统可以基于输出的计算结果来判定该笔交易是否为风险交易,比如输出的计算结果具体为该笔交易为风险交易的概率值,支付系统可以将该概率值是否大于预设阈值,来确定该笔交易是否为风险交易。如果支付系统基于计算结果判定该笔交易为风险交易,则可以针对该目标账户进行支付限制操作,阻断该笔支付以防止对用户资金造成损失。
通过以上实施例可知,本申请通过基于目标账户在预设时长内的操作行为数据生成用户行为序列,并提取该行为序列中各数据节点的风险识别特征,将提取出的各数据节点的风险识别特征作为输入数据输入至预设的基于从若干风险账户的用户行为序列中提取出的风险识别特征样本训练得到的LSTM模型中进行计算,然后基于该LSTM模型输出的计算结果对所述目标账户进行风险识别,实现了可以基于用于在预设时长内的行为序列来构建用于风险账户识别的LSTM模型,并通过构建的LSTM模型对从用户的行为序列中提取出的风险识别特征进行计算,来对目标账户进行风险评估。
另外,由于在构建LSTM模型以及使用LSTM模型时充分考虑了风险识别特征间的时序关系,因此可以对用户在一定时长内的历史操作行为信息在模型中进行记忆,将用户的历史操作行为信息与最新发生的操作行为信息进行融合,共同对目标账户进行风险评估,因此对于诸如囤号风险交易盗号初期那些小金额的试探性交易也能够及时识别,从而可以解决相关技术中,由于模型使用到的特征变量为零散的特征变量,并未反映特征变量的时序关系,而导致的诸如囤号风险交易盗号初期那些小金额的试探性交易无法进行及时识别的问题,可以从整体上提升对目标账户进行风险评估的灵敏度和准确度。
与上述方法实施例相对应,本申请还提供了装置的实施例。
请参见图7,本申请提出一种账户风险识别装置70,应用于服务端;其中,请参见图8,作为承载所述账户风险识别装置70的服务端所涉及的硬件架构中,通常包括CPU、内存、非易失性存储器、网络接口以及内部总线等;以软件实现为例,所述账户风险识别装置70通常可以理解为加载在内存中的计算机程序,通过CPU运行之后形成的软硬件相结合的逻辑装置,所述装置70包括:
生成模块701,用于基于目标账户在预设时长内的操作行为数据生成用户行为序列;所述用户行为序列包括若干按照发生时间排序的数据节点;
提取模块702,用于提取所述行为序列中各数据节点的风险识别特征;
计算模块703,用于将提取出的各数据节点的风险识别特征作为输入数据输入至预设的LSTM模型中进行计算;其中,所述预设的LSTM模型基于从若干风险账户的用户行为序列中提取出的风险识别特征样本训练得到;
识别模块704,用于基于所述LSTM模型输出的计算结果对所述目标账户进行风险识别。
在本例中,所述生成模块701具体用于:
采集目标账户在预设时长内的操作行为数据;
基于预设时间周期将采集到的所述操作行为数据划分为若干数据集合;
将划分出的所述若干数据集合分别作为数据节点按照发生时间进行排序以生成所述行为序列。
在本例中,所述生成模块701具体用于:
采集目标账户的操作行为数据;
确定所述操作行为数据是否包含指定的关键行为;
当所述操作行为数据中包含指定的关键行为时,采集该目标账户在所述指定的关键行为的发生时间以前预设时长内产生的所有关键行为数据;
将采集到的所有关键行为数据分别作为数据节点按照发生时间进行排序以生成所述行为序列。
在本例中,所述数据节点包括若干按照发生时间排序的操作行为数据;
所述提取模块702具体用于:
提取与所述行为序列中各数据节点中的操作行为数据关联的风险评估信息,作为所述风险识别特征;其中,所述风险评估信息包括与所述目标账户相关的风险评估信息,以及与所述目标账户对应的业务对端账户相关的风险评估信息;或者
判定所述行为序列中各数据节点中的操作行为数据是否具有设定的风险特征,并对判定结果进行编码,将编码得到的字符串作为所述风险识别特征。
在本例中,所述计算模块703具体用于
将所述各数据节点的风险识别特征作为输入数据,按照发生时间顺序依次输入至所述LSTM模型中进行计算,并将前一数据节点的计算结果与下一数据节点的风险识别特征进行加权求和后继续进行计算,直到所述各数据节点的风险识别特征在所述LSTM模型中均计算完成;
其中,所述用户行为序列中已发生的数据节点的风险识别特征在所述风险识别模型中进行离线计算,所述离线计算的结果与所述用户行为序列中最新的数据节点的风险识别特征在所述风险识别模型中进行实时计算。
在本例中,所述装置70还包括:
输出模块705,用于在指定的数据节点或者在检测到指定的关键行为时,输出所述LSTM模型的计算结果。
在本例中,搭载所述LSTM模型的硬件处理器为GPU。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。