1.本发明涉及请求拦截领域,尤其涉及一种服务器。
背景技术:2.智能手机的普及为移动app的创新与应用提供了良好的环境,加之疫情使人们活动范围受限,各企业app开发与应用的关注比重也逐步上升。以此同时,其面临的商业数据被爬取等各种信息系统安全问题也日益凸显。在小数据环境下,可以通过基础的规则与策略进行反爬。
3.然而,随着app业务的复杂程度增加,如何更好的系统性的融合离线数据与实时数据、灵活的构建基于不同业务的模型、更好让模型与算法参与用户异常行为检测也成为更为普遍性的课题。针对这类问题,传统的解决方案尽管通过规则、数据挖掘与模型等手段与方法对异常用户进行检测,但由于离线分析模块与实时分析模块相对分离,导致分析效果不理想。
技术实现要素:4.有鉴于此,本发明提供一种服务器,至少部分解决现有技术中存在的问题。
5.根据本技术的一个方面,提供一种服务器,包括:数据采集与存储模块,用于获取客户端发送的用户数据并进行存储,每一所述用户数据均具有对应的时间戳和标识信息;第一分析模块,用于从所述数据采集与存储模块获取第一类数据,并根据所述第一类数据确定每一标识信息对应的第一异常值;所述第一类数据为时间戳对应时间早于第一时间的用户数据;所述第一时间根据当前时间确定;第二分析模块,用于根据接收到的目标标识,从所述数据采集与存储模块持续获取目标标识对应第二类数据,并将所述第二类数据添加至数据集合中;以及根据所述数据集合确定所述目标标识对应的第二异常值;所述第二类数据为时间戳对应时间晚于第二时间且标识信息与目标标识相同的用户数据,所述第一时间早于所述第二时间,所述第二时间根据当前时间确定;第三分析模块,用于根据接收到的目标标识,从所述数据采集与存储模块持续获取目标标识对应实时数据,并根据所述实时数据确定所述目标标识对应的第三异常值;融合模块,用于根据接收到的第一控制指令中的业务类型,确定目标融合函数,以及获取目标标识对应的第一异常值、第二异常值和第三异常值中的至少二者作为待融合分值,并根据所述目标融合函数和所述待融合分值生成第四异常值,其中,目标标识存储于第一控制指令内;拦截模块,用于根据接收到的第二控制指令中的目标标识,获取目标标识对应的第一异常值、第二异常值、第三异常值和第四异常值中的至少一者作为目标分值,并根据所述目标分值确定对所述目标标识对应的请求信息的目标拦截函数;以及执行所述目标拦截
函数。
6.在本技术的一种示例性实施例中,所述服务器进一步包括处理器和存储有计算机程序的非瞬时性存储介质,当所述计算机程序被所述处理器执行时,实现以下方法:获取第一设备发送的待处理请求消息;所述待处理请求消息内包含有目标标识和请求数据;根据所述请求数据确定所述请求消息对应的目标业务类型;在所述目标业务类型为第一类业务的情况下,将所述目标标识发送至所述第三分析模块,以使所述第三分析模块能够根据所述目标标识,从所述数据采集与存储模块获取所述目标标识对应的实时数据,并根据所述实时数据确定所述目标标识对应的第三异常值;向所述融合模块发送第一控制指令,所述第一控制指令包括所述目标标识和所述目标业务类型,以使所述融合模块根据所述目标业务类型确定所述目标业务类型对应的目标融合函数,从所述第一分析模块获取所述目标标识对应的第一异常值,从所述第三分析模块获取所述目标标识对应的第三异常值,根据所述所述目标业务类型对应的目标融合函数将所述目标标识对应的第一异常值和第三异常的融合,得到所述目标标识对应的第四异常值;向所述拦截模块发送第二控制指令,所述第二控制指令包括所述目标标识,以使所述拦截模块从所述融合模块获取所述目标标识对应的第四异常值作为目标分值,并根据所述目标分值确定对所述待处理请求信息的目标拦截函数,以及执行所述目标拦截函数。
7.在本技术的一种示例性实施例中,所述方法还包括:确定数据采集与存储模块中是否存储有与所述待处理请求信息对应的当日历史请求,若存在,则在所述目标业务类型为第一类业务的情况下,所述方法还包括:将所述目标标识发送至所述第二分析模块,以使所述第二分析模块能够根据所述目标标识,从所述数据采集与存储模块获取所述目标标识对应的第二类数据,并根据所述第二类数据确定所述目标标识对应的第二异常值;并将所述第二异常值发送至所述融合模块,以使所述融合模块能够根据所述目标业务类型对应的目标融合函数将所述目标标识对应的第一异常值、第二异常值和第三异常的融合,得到所述目标标识对应的第四异常值。
8.在本技术的一种示例性实施例中,所述服务器还包括:结果验证模块,所述结果验证模块用于获取已分析请求集合p,并根据所述已分析请求集合,绘制出第一结果验证图、第二结果验证图和第三结果验证图;所述第一结果验证图用于表征第一分析模块和第二分析模块的验证结果分布情况,所述第二结果验证图用于表征第一分析模块和第三分析模块的验证结果分布情况,所述第三结果验证图用于表征第二分析模块和第三分析模块的验证结果分布情况;其中,p={p1,p2,...pn},pi={g
i1
,g
i2
,g
i3
},i的取值范围为1到n,g
i1
为第一分析模块对pi输出的第一异常值,g
i2
为第二分析模块对pi输出的第二异常值,g
i3
为第三分析模块对pi输出的第三异常值。
9.在本技术的一种示例性实施例中,所述服务器还包括:配置模块,用于根据第一结果验证图、第二结果验证图和第三结果验证图得到参数修改数据,并将所述参数修改数据发送至以下至少之一:所述数据采集与存储模块、第一
分析模块、第二分析模块、第三分析模块、融合模块。
10.在本技术的一种示例性实施例中,所述服务器还包括:监控模块,用于根据所述第一分析模块的输入数据集合和输出数据集合生成所述第一分析模块对应的输入-输出关系图;根据所述第二分析模块的输入数据集合和输出数据集合生成所述第二分析模块对应的输入-输出关系图;根据所述第三分析模块的输入数据集合和输出数据集合生成所述第三分析模块对应的输入-输出关系图。
11.在本技术的一种示例性实施例中,所述第一类数据对应的数据类型数量大于所述第二类数据对应的数据类型数量大于所述实时数据对应的数据类型数量。
12.在本技术的一种示例性实施例中,所述第一类数据对应的数据体量大于所述第二类数据对应的数据体量大于所述实时数据对应的数据体量。
13.本技术提供的服务器,内部设置有第一分析模块、第二分析模块和第三分析模块,且每一分析模块均能够从数据采集与存储模块获取对应的数据,并分别进行处理得到对应的异常值。同时,融合模块能够根据不同业务类型的需求,从第一分析模块、第二分析模块和第三分析模块中获取需要的异常值并进行融合,并将融合后的第四异常值发送给拦截模块。拦截模块能够根据接收到的异常值,确定并执行目标拦截函数,以实现对异常请求的拦截。本技术提供的服务器,内部的第一分析模块、第二分析模块和第三分析模块得到的异常值能够通过融合模块进行融合,已解决分析模块之间相对独立的问题。
附图说明
14.为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
15.图1为本发明实施例中一种服务器的结构框图;图2为本发明实施例中不同模型的风险区域的交叉结果示意图;图3为本发明实施例中特征编码示意图。
具体实施方式
16.下面结合附图对本发明实施例进行详细描述。
17.需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合;并且,基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
18.需要说明的是,下文描述在所附权利要求书的范围内的实施例的各种方面。应显而易见,本文中所描述的方面可体现于广泛多种形式中,且本文中所描述的任何特定结构及/或功能仅为说明性的。基于本公开,所属领域的技术人员应了解,本文中所描述的一个方面可与任何其它方面独立地实施,且可以各种方式组合这些方面中的两者或两者以上。举例来说,可使用本文中所阐述的任何数目个方面来实施设备及/或实践方法。另外,可使用除了本文中所阐述的方面中的一或多者之外的其它结构及/或功能性实施此设备及/或实践此方法。
19.请参考图1,根据本技术的一个方面,提供一种服务器,包括:
数据采集与存储模块,用于获取客户端发送的用户数据并进行存储,每一所述用户数据均具有对应的时间戳和标识信息。
20.具体的,用户数据可以包括服务日志数据、数据库业务数据、客户端埋点数据、情报信息库以及风控衍生出的各类数据等。
21.所述数据采集与存储模块中,对服务日志数据和客户端埋点数据通过flink实时采集kafka消息队列并进行日志数据实时落盘,通过flink 对接kafka ,然后将数据落盘在hdfs上,以parquet 格式进行存储。对数据库业务数据通过sqoop大数据etl组件进行抽取、解析最终落盘在hdfs中供hive、flink、spark 等调用;对数据库业务数据基于“t+1”方式落盘。情报数据数据源较多,通过对外接口接入存在mysql 中、或将csv 等文件落盘在hdfs中。其中,“t+1”方式落盘指的是,数据采集与存储模块在每日会将前一日的数据进行整体处理,形成设定的储存格式并进行存储,存储的数据是以标识信息(如id)为单位进行存储的,且存储时数据均具有对应的时间戳或时间标识,使得第一分析模块能够根据时间戳或时间标识直接获取对应日期的所有数据,并进行分析得到第一异常值。
22.第一分析模块,用于从所述数据采集与存储模块获取第一类数据,并根据所述第一类数据确定每一标识信息对应的第一异常值;所述第一类数据为时间戳对应时间早于第一时间的用户数据;所述第一时间根据当前时间确定。其中,第一时间可以为当天的0点。第一分析模块可以设置为每日的0点以后,具体的,第一分析模块可以采用lightgbm构建离线特征判研模型,提取多数据源数据中(即数据采集与存储模块中的用户数据)的离线特征并进行离线特征判研,得出异常概率分数(第一异常值)。其中,第一分析模块使用的是第一类数据(可以理解为历史数据),故而对实时性的需求较低,故而第一分模块中的离线特征判研模型可以采用大数据和多维度的判断计算方式,可以根据需求设置多个维度的计算函数,以实现对第一类数据的精确分析。
23.具体的,离线特征判研模型通过hive提取离线特征,以天为统计粒度,包含当日、近30/60/180日等不同时间维度的特征;为提升特征构建过程中的灵活性,离线特征包括全局性特征与业务性特征(分别存储于通用性特征库和业务化特征库);全局性特征包括基础设备、环境特征等,业务性特征包括访问某些服务与业务时具备的特征。
24.所述lightgbm(light gradient boosting machine是基于一套基于决策树的快速、分布式、高性能的一个轻量级梯度提升算法框架、在本技术实施场景中运算效率较高、支持分类变量的特征,同时准确度也较高)构建离线特征判研模型过程为:步骤一:通过hive计算引擎进行特征计算,形成各业务的特征表(含前期分析及无用户感知状态下收集而来的标签);步骤二:通过feature_importance 在模型中进行特征选取。同时针对不同业务,每隔一段时间则基于样本池进行训练,训练出各业务(如航班动态、机票等)使用的lightgbm模型,并存储为pkl文件在hdfs中。
25.步骤三:针对前一日的数据,输入至训练好的以pkl 为载体的模型中,将得出对应的异常分数并输出。
26.lightgbm 算法使用的生长策略是leaf-wise,每次在当前叶子节点中找出分裂增益最大的叶子节点进行分裂,而不是所有节点都进行分裂(大部分决策算法采用的生长策略是level-wise生长策略,即同一层的叶子节点每次都一起分裂)。因该策略在样本较小时容易造成过拟合,可以通过max_depth 限制树的深度来防止过拟合。
27.第二分析模块,用于根据接收到的目标标识,从所述数据采集与存储模块持续获取目标标识对应第二类数据,并将所述第二类数据添加至数据集合中;以及根据所述数据集合确定所述目标标识对应的第二异常值;所述第二类数据为时间戳对应时间晚于第二时间且标识信息与目标标识相同的用户数据,所述第一时间早于所述第二时间,所述第二时间根据当前时间确定。第二分析模块采用的第二类数据,由于对应的第二时间是晚于第一时间的,所以是完全区别与第一类数据的,一定程度上可以理解为当天的历史数据。通过第二分析模块,能够对当天产生的历史数据进行处理和分析,相较于现有的只采用当天以前的历史数据和实时数据的分析方式,很好不补充了分析数据在时间维度上的全面性,使得本服务器在对待处理请求进行分析时,也能够对当天产生的非实时数据进行分析。同时第二时间可以是当天的0点,也可以是一个变化值,如,第二时间为当前时间-5小时。使得第二类数据中,包含的是对应一个5小时的时间窗口的动态数据集合。
28.具体的,第二分享模块可以采用gbdt+lr构建准实时特征判研模型,基于spark streaming 提取多数据源数据中不同业务域的小时级别的特征并进行准实时特征判研,得出异常概率分数(第二异常值),结果用于异常用户的拦截。其中,gbdt是gradient boosting decision tree的简写,中文为梯度提升决策树,是一种迭代的决策树算法。
29.spark streaming是构建在spark上的实时计算框架,且是对spark core api的一个扩展,它能够实现对流数据进行实时处理,并具有很好的可扩展性、高吞吐量和容错性。
30.通过gbdt进行特征组合与筛选,回归树每个节点的分裂是一个自然的特征选择过程,多层节点结对特征进行了有效的自动组合,解决了特征选择与特征组合问题。模型的输入可以是原始的特征向量,不必在特征工程上投入过多的特征筛选与模型设计,实现真正的端到端的训练。
31.lr中不同的特征会确认为不同的权重,代表不同特征的重要性,所输出的异常概率符合业务认知;因此,该模型在预测概率上,具备可解释性强、硬件环境要求低、可快速训练与部署的优势,较为适用于异常用户的预测场景中。
32.gbdt+lr构建准实时特征判研模型过程为:步骤一:使用离线数据集模仿流式数据,以n秒、n小时为时间滑窗进行特征统计。特征如各维度的版本,user-agent连续协议调用次数、会话连接与统计、访问服务统计以及其他风控类特征;步骤二:在已有的统计特征基础上,利用gbdt 多次迭代(即生成多少树),最终产生有效的特征组合与筛选,输出离散的特征向量;步骤三:将特征以one-hot形式传入lr 线性分类器进行加权预测。通过sigmoid 函数,预测结果将被映射为0-1区间的异常概率,并处理得到第二异常值;步骤四:通过kafaka 将模型判研分数输出,业务方通过拦截系统针对不同业务的特点进行拦截模式的选择。
33.使用gbdt 构建特征工程,利用lr 预估异常概率这两步是独立训练的,所以不存
在如何将lr 的梯度回传到gbdt 这类复杂的问题。
34.第三分析模块,用于根据接收到的目标标识,从所述数据采集与存储模块持续获取目标标识对应实时数据,并根据所述实时数据确定所述目标标识对应的第三异常值。第三分析模块可以对实时数据进行分析从而的得到第三异常值,因为第三分析模块使用的是实时数据,所以对结果的输出时效具有较高的要求,故而需要提高处理速度。故而,第三分析模块在接收到实时数据后,可以对实时数据进行数据清理,以将多余的或不必要的数据进行删除,只对符合要求的重点数据进行分析。
35.具体的,第三分析模块可以采用实时流计算模型,基于设置于数据采集与存储模块中的实时流引擎flink进行实时计算,接入kafka数据后,进行数据清洗与实时风险指标计算,得出异常分数,并将实时计算结果持久化(将计算结果发送至数据采集与存储模块并存储);实时计算结果用于判断是否触发实时策略,对触发实时策略的用户或设备进行不同策略的拦截。
36.实时流计算模型因强调及时性,则主要采用规则过滤+ 通过lr对各特征进行赋权的模型结构。
37.对于无需存疑的规则,如值机协议、航班动态协议等,正常用户无法做到每毫秒调用很多次的异常情况;也不会短时间内更换大量ip等,此类规则的配置由业务根据先验经验配置在配置数据中,通过分布式配置中心apollo进行参数传输,最终触发flink 随时计算并触发重新登录或短时间禁止登陆的拦截策略,业务人员可随时根据知识累积进行调整。
38.而通过了规则过滤模型的样本,则通过添加更多维度的风险指标计算,通过训练好的lr模型权重获取相应的得分。
39.当得分超过一定程度,则直接输出至业务kafka,各业务将根据不同策略进行即时性拦截。
40.所述实时风险指标计算主要有通过flink 实时流计算的指标及配置性数据。
41.实时计算的指标包括:该用户/设备/ip 等在一定的时间窗口内所请求的次数、调用某协议前的路径、次数、周期、经过持久化的当日及前一日其他标记特征、更换的账号个数以及对应账号的相关特征等;配置性数据主要包含各种黑白名单、协议对应的规则。
42.在本技术的一种示例性实施例中,所述第一类数据对应的数据类型数量大于所述第二类数据对应的数据类型数量大于所述实时数据对应的数据类型数量。所述第一类数据对应的数据体量大于所述第二类数据对应的数据体量大于所述实时数据对应的数据体量。以使得第一分析模块、第二分析模块和第三分析模块可以根据不同业务类型的优先级需求,进行不同响应速度的计算,从而适应更加全面的场景。
43.融合模块,用于根据接收到的第一控制指令中的业务类型,确定目标融合函数,以及获取目标标识对应的第一异常值、第二异常值和第三异常值中的至少二者作为待融合分值,并根据所述目标融合函数和所述待融合分值生成第四异常值,其中,目标标识存储于第一控制指令内。其中,第一控制指令可以有处理器或其他控制模块生成并发送。由于不同的业务类型需要的响应速度是不同的,故而,融合模块会根据接收到的业务类型,从候选融合函数集合中,确定出目标融合函数,目标融合函数标注有需要使用的异常值。根据目标融合
函数的需求,确定从第一分析模块、第二分析模块和第三分析模块中的至少两者获取对应的异常值并进行融合,解决分析模块间相互独立的问题。
44.具体的,融合模块可以运用投票、加权、瀑布融合法等策略将结果融合起来,可以加强模型效果,并降低误判率。
45.在用户异常行为检测中,因爬虫也存在不断进化、模拟正常用户的行为,不同时间区间内的行为模式具有多样性。
46.若单独依赖于一种模型,存在过拟合、泛化能力差、稳定性不高等缺点。而通过融合模块对不同分析模块的结果进行融合,可以充分利用用户请求时的数据特征,不单独依赖于某一个分析模块的结果,从而提高整体模型的稳定性,降低系统性风险。
47.在融合模块中,可根据业务类型不同,使用不同的融合方法。
48.如线性加权融合法、瀑布融合法、交叉融合法与特征融合法等,在用户异常行为检测中,因对于部分业务而言,模型输出结果的及时性是重点考虑的因素,而对于另外一部分业务而言,对准确性的要求更高,为兼顾不同业务间的策略,所述模型融合模块中,采用瀑布融合法与线性加权融合法作为模型的融合方法,具体的:对及时性优先级高的业务,根据实时流计算模型的计算结果优先进行拦截,其次再持续进行观察,结合离线特征判研模型、准实时特征判研模型的判研结果进行手段叠加,得到最高级别的拦截;对准确性优先级高的业务,将离线特征判研模型、准实时特征判研模型、实时流计算模型中两种或者三种模型的的异常分数进行权重加权后,得出拦截措施,必要时可通过人工审核后采取。
49.线性加权融合法公式为:βk为分析模块k(第k分析模块)结果的权重,reck(u)为用户u在分析模块k中的异常分数,score(u)为最终加权得分(即第四异常值),在本实施例中,n=3,但若有更多个分析模块,可陆续进行叠加。
50.拦截模块,用于根据接收到的第二控制指令,获取目标标识对应的第一异常值、第二异常值、第三异常值和第四异常值中的至少一者作为目标分值,并根据所述目标分值确定对所述目标标识对应的请求信息的目标拦截函数;以及执行所述目标拦截函数。
51.拦截模块可以采用的拦截手段包括:强制登录、强制退出重新登录、验证码、短信验证、信息受限、人脸识别、投毒假数据等,可灵活根据业务属性及风险承受程度进行调整。
52.例如,当第一分析模块、第二分析模块、第三分析模块均认为该账号或用户风险级别最高时,则可采用最高拦截手段进行拦截。
53.本技术提供的服务器,内部设置有第一分析模块、第二分析模块和第三分析模块,且每一分析模块均能够从数据采集与存储模块获取对应的数据,并分别进行处理得到对应的异常值。同时,融合模块能够根据不同业务类型的需求,从第一分析模块、第二分析模块和第三分析模块中获取需要的异常值并进行融合,并将融合后的第四异常值发送给拦截模块。拦截模块能够根据接收到的异常值,确定并执行目标拦截函数,以实现对异常请求的拦
截。本技术提供的服务器,内部的第一分析模块、第二分析模块和第三分析模块得到的异常值能够通过融合模块进行融合,已解决分析模块之间相对独立的问题。
54.在本技术的一种示例性实施例中,所述服务器进一步包括处理器和存储有计算机程序的非瞬时性存储介质,当所述计算机程序被所述处理器执行时,实现以下方法:获取第一设备发送的待处理请求消息;所述待处理请求消息内包含有目标标识和请求数据。服务器接收到待处理请求后可以只将将待处理请求存储至数据采集与存储模块中。
55.根据所述请求数据确定所述请求消息对应的目标业务类型;在所述目标业务类型为第一类业务(实时性要求较高的业务)的情况下,将所述目标标识发送至所述第三分析模块,以使所述第三分析模块能够根据所述目标标识,从所述数据采集与存储模块获取所述目标标识对应的实时数据,并根据所述实时数据确定所述目标标识对应的第三异常值;向所述融合模块发送第一控制指令,所述第一控制指令包括所述目标标识和所述目标业务类型,以使所述融合模块根据所述目标业务类型确定所述目标业务类型对应的目标融合函数,从所述第一分析模块获取所述目标标识对应的第一异常值,从所述第三分析模块获取所述目标标识对应的第三异常值,根据所述目标业务类型对应的目标融合函数将所述目标标识对应的第一异常值和第三异常的融合,得到所述目标标识对应的第四异常值;向所述拦截模块发送第二控制指令,所述第二控制指令包括所述目标标识,以使所述拦截模块从所述融合模块获取所述目标标识对应的第四异常值作为目标分值,并根据所述目标分值确定对所述待处理请求信息的目标拦截函数,以及执行所述目标拦截函数。
56.本实施例中,由于实时性要求较高,而第二分析模块需要一定时间长度的第二类数据,故而,在当前场景下,可以直接获取第一分析模块和第三分析模块的结果并进行融合,得到第四异常值,从而使得拦截模块可以快速的确定目标拦截函数进行拦截。
57.在本技术的一种示例性实施例中,所述方法还包括:确定数据采集与存储模块中是否存储有与所述待处理请求信息对应的当日历史请求,若存在,则在所述目标业务类型为第一类业务的情况下,所述方法还包括:将所述目标标识发送至所述第二分析模块,以使所述第二分析模块能够根据所述目标标识,从所述数据采集与存储模块获取所述目标标识对应的第二类数据,并根据所述第二类数据确定所述目标标识对应的第二异常值;并将所述第二异常值发送至所述融合模块,以使所述融合模块能够根据所述目标业务类型对应的目标融合函数将所述目标标识对应的第一异常值、第二异常值和第三异常的融合,得到所述目标标识对应的第四异常值。
58.本实施例中,若数据采集与存储模块存储有与所述待处理请求信息对应的当日历史请求,则表明该目标标识对应的设备或用户已经持续进行了一定时间的请求发送。故而需要在前一实施例的基础上引入第二分析模块的第二异常值进行融合得到第四异常值,使得能够实现对目标标识对应的设备或用户进行持续性的识别。
59.在本技术的一种示例性实施例中,所述服务器还包括:结果验证模块,所述结果验证模块用于获取已分析请求集合p,并根据所述已分析请求集合,绘制出第一结果验证图、第二结果验证图和第三结果验证图;所述第一结果验证
图用于表征第一分析模块和第二分析模块的验证结果分布情况,所述第二结果验证图用于表征第一分析模块和第三分析模块的验证结果分布情况,所述第三结果验证图用于表征第二分析模块和第三分析模块的验证结果分布情况;其中,p={p1,p2,...pn},pi={g
i1
,g
i2
,g
i3
},i的取值范围为1到n,g
i1
为第一分析模块对pi输出的第一异常值,g
i2
为第二分析模块对pi输出的第二异常值,gi3为第三分析模块对pi输出的第三异常值。
60.具体的,第一分析模块、第二分析模块和第三分析模块的判研因基于不同的时间区间,模型所依赖的行为特征也具备不同的特点。因第一分析模块、第二分析模块和第三分析模块最终输出的异常值不尽相同,此时需要在“t+1”定时对三类结果通过结果验证模块构建交叉矩阵进行交叉验证,了解各类模型在不同场景的优劣,从而实现稳定性的监控。
61.具体操作步骤如下:获取不同设备、用户、ip,将其对应的第一异常值、第二异常值和第三异常值进行汇总,得到第一结果验证图、第二结果验证图、第三结果验证图,并划分高、中高、中低、低4个风险区间,根据不同模型的风险区间的交叉结果,进行模型交叉验证、异常模式分析、拦截效果分析,校验模型结果。
62.风险区间的划分以及异常模式是有效调整拦截策略的依据,如针对一个段时间内大量集中访问的用户,和一个频繁更换设备号,但访问极为低频的用户,其策略设置应该不同,此时业务人员需要通过模式进行参考;模型交叉验证通过对各模型得出的异常概率分数进行拦截策略配置,实现拦截(拦截策略:如航班动态本身用户无需登录,但在异常情况下其拦截策略可设置为,根据不同的分数可分别要求用户登录、限制用户请求次数、返回验证码、短信验证等拦截手段);异常模式分析则是基于一个设备/用户本身带有的业务化属性,经过抽象而形成的较为统一的特征模式集合。同时,由于机器学习的分数对于业务人员来说过于抽象,同样的90分可能模式不同,需要使用不同的策略进行拦截。因此异常模式补充了模型可解释性差的弱点,方便业务人员进行灵活配置。
63.所述异常模式分析中异常模式包括:1)业务异常:注册、安装、登录、航班动态、值机、机票搜索等业务异常2)请求量异常:如调用某业务或/某协议频次过多、间隔过低、或者频率分布明显异常等;3)账号异常:如同一个设备更换大量用户号,或同一个用户更换大量设备或ip等;4)参数异常:如user-agent、不对外开放的版本号或者调用的业务参数异常等;5)访问行为异常:如或本不应该调用某协议、访问路径不正确、缺少埋点等。
64.拦截效果分析为对最终拦截的有效性进行对应评估(主要通过用户无感知的方式返回、验证码或用户投诉等渠道确定);校验模型结果是评价系统中哪些模块需要进一步调整的有力反馈渠道。通过几者的有力关联,从而形成一套较为系统、可解释性较强的闭环。
65.如图2所示,其中a1、a2区域为两类交叉模型识别高度一致的区域,b1、b2为预测较为一致区域,而c1、c2 则存在不同模型因特征或分类器的不同,使最终模型结果存在较大差异。
66.而通过对a1,a2,b1,b2,c1,c2与总量的占比的统计及趋势可视化,若c1、c2在一定比例且存在可解释性时,选择接受此比例,并以此作为参照。当c1、c2的比例不断扩大、且a1、a2的比例不断减小到一定程度时,借助可视化工具grafana 进行邮件报警,注意异常模式可能发生较大变化,需要引起关注。以此实现模型相互独立而又相互可校准的功能。
67.在本技术的一种示例性实施例中,所述服务器还包括:配置模块,用于根据第一结果验证图、第二结果验证图和第三结果验证图得到参数修改数据,并将所述参数修改数据发送至以下至少之一:所述数据采集与存储模块、第一分析模块、第二分析模块、第三分析模块、融合模块。
68.具体的,配置模块用于统一管理、配置服务器中各模块和不同环境、不同集群、不同策略的参数。
69.所述参数包括:全局参数、第一分析模块分析参数、第二分析模块分析参数、第三分析模块分析参数、模型融合参数、拦截参数等。
70.基于开源工具apollo(阿波罗)以及数据库mysql,能够灵活实现配置修改后实时推送到应用端,并且具备规范的权限、流程治理等特性。
71.其中:a.全局参数配置,主要实现工程整体中涉及到的参数与配置表调用。如各种风控信息(如黑白名单)、协议与服务及中文名映射表、风控模式与策略映射表等。
72.b.第一分析模块分析参数、第二分析模块分析参数、第三分析模块分析参数的参数配置,主要涉及构建模型时,基于mysql 中的配置表,能够实现特征的灵活组合、选择样本范围(如仅访问航班动态、值机服务的用户进行特征模型构建,通过业务区分实现样本噪声的降低)、通过风控信息库指定信息进行打标等。
73.c.模型融合参数配置,主要负责配置对哪些分析模块的得出的异常值进行融合、以何种权重及策略进行融合等,方便调整最优策略。
74.d.拦截参数配置,主要用于可以针对不同服务、不同客户端及版本、不同级别的用户采取灵活的配置方案。通过apollo(阿波罗)对相关参数进行修改,从而同步在协议调用层或客户端进行相应操作的拦截操作。
75.在本技术的一种示例性实施例中,所述服务器还包括:监控模块,用于根据所述第一分析模块的输入数据集合和输出数据集合生成所述第一分析模块对应的输入-输出关系图;根据所述第二分析模块的输入数据集合和输出数据集合生成所述第二分析模块对应的输入-输出关系图;根据所述第三分析模块的输入数据集合和输出数据集合生成所述第三分析模块对应的输入-输出关系图。
76.监控模块可以根据每一分析模块的输入数据集合和输出数据集合得到每一分析模块的输入-输出关系图,通过输入-输出关系图可以体现每一分析模块在计算过程中输入参数对结果的影响,从而增强了每一分析模块的解释性。
77.监控模块也可以用于对分析性数据、模型结果进行可视化监控,从而更清晰展示更丰富的信息。同时,借助可视化工具grafana的报警功能,针对变化较大的指标进行及时报警提示。
78.所述监控模块,还包括数据源可视化监控模块、特征监控模块、模型监控模块、异常模式监控模块和数据分析时的可视化监控模块
a.数据源可视化监控模块,主要负责分别针对实时与离线落盘数据,对其进行高峰与平峰统计监控,一但数据量存在异常或较大波动,则发送报警提醒关注。
79.b.特征监控模块,主要负责针对建立的特征进行监控,也实现了对数据源进行一定程度的结构性监控。
80.c.模型监控模块,用于实现对有监控模型训练的各种参数进行持续监控,如准确率、召回率等指标。针对每次模型训练好的分类器,在测试集测试后将各指标同步至mysql中,通过superset/ grafana 可视化开源工具进行可视化并进行监控。
81.d.异常模式监控模块,则可较好解决算法模型解释性便弱的痛点,通过对模型中较为显著的特征进行自动抽象,将其与模型进行映射。传统机器学习经常被应用于生产领域,但如本发明中在离线模型中使用到的lightgbm、准实时模型使用的gbdt等集成算法一样,效果虽好,但一直无法解决其可解释性的问题,始终作为黑盒存在。尤其在具体任务及生产条件下,为降低模型风险,获得样本每个特征与其结果之间的关系,如果能够从特征和结果的角度进行分析,对于提高模型效果或是分析异常样本,以及更好行成一种对业务人员较为友好、具备较强解释性的服务输出。为解决此问题,本发明尝试对显著性特征进行提取后,通过对其进行特征编码,如图3所示。
82.图3中,risk_label为某业务的特征编码,risk_labeltype为特征解释。通过该种较为简单的方式,既保留了系统中算法应用的精准度,也大大提高了检测的可解释性,方便业务人员及分析人员随时监控不同特征模式的识别占比及拦截情况,根据不同模式及时改变拦截策略等。
83.e.数据分析时的可视化监控模块:有助于从全局及不同业务角度及时发现异常变化。监控维度除了分各业务外,还具备各版本、模式的异常监控。
84.通过对协议调用链进行可视化,可快速发现爬虫较为集中的区域,从而有针对性的进行追踪及提升风控能力。
85.此外,上述附图仅是根据本发明示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
86.应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
87.以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。