前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >安全 AI 的智能对抗系统之架构实现篇

安全 AI 的智能对抗系统之架构实现篇

原创
作者头像
王嘉
修改2017-06-19 17:55:49
1.9K0
修改2017-06-19 17:55:49
举报
文章被收录于专栏:王嘉的专栏王嘉的专栏

在AI的浪潮下,在现有的安全系统的基础上,SNG 业务安全中心将机器学习应用到业务安全对抗中,自研建设并搭建了 ——安全 AI 的智能对抗系统。

1. 整体介绍

机器学习逐步应用到多个业务安全业务中。旨在建立一套高可用,可配置,可扩展的智能对抗系统。

智能对抗系统现已应用在 QQ,空间等7个业务的线上对抗中。该系统旨在建立一套完整的将机器学习应用在业安的体系。包括:业务数据的统一接入方式、离线自助模型训练、模型部署上线、线上实时预测。

[整体过程图]
[整体过程图]

从业务的视角来看,智能对抗系统是一个与外部解耦,独立的机器学习线上线下整合系统。主体过程如下图:

[线上线下过程图示]
[线上线下过程图示]

线上部分接收业务分类请求数据、提取特征数据、实时预测并返回结果。

离线部分则进行样本数据处理,特征工程及模型训练。

2. 功能详解

2.1 线上过程

[线上过程流程图]
[线上过程流程图]

(1)实时分类预测

智能对抗线上系统对外通过统一接入 API,业务侧调用此 API 将数据上报并进行实时分类预测。具体线上架构如下图所示:

[线上架构图]
[线上架构图]

线上系统的配置数据分两类分别存储于本机的 XML 文件和 DB 中。XML 文件用于本地配置加载(包括:业务关联的模型信息,上线/空跑模式,监控配置,数据上报配置等);DB 中配置模型与业务、特征的对应关系,该部分的配置与模型训练进行打通。

不同的分类器关联到的特征集合是不同的,因此要保证离线训练过程中使用到的特征集合及顺序与线上预测输入的特征集合完全一致,否则会引起预测结果偏差。为了确保线上线下特征集合的一致性,在 DB 中设置模型与特征的配置表,线上读取配置表信息,并根据配置进行特征提取操作,配置表示例如下:

[模型特征配置示例表]
[模型特征配置示例表]

通过配置表中的关联关系来确定具体模型所对应的特征集。在离线过程中,新建模型训练任务时,则自动生成相应的记录。从而做到线上线下模型关联特征集的一致性。

实时分类请求流水和分类结果数据入库到数据库中进行统一存储,用于在离线训练模型时根据业务流水进行训练数据提取。

(2)模型获取及加载

机器学习线上预测系统不同于传统的后台服务,线上预测过程需要使用离线训练好的模型文件。在分布式后台服务中,为了确保服务的高可用、高可扩展,智能对抗系统中将离线训练好的模型文件进行统一存储,线上服务根据配置信息主动拉取模型文件到本地。

[模型拉取示例图]
[模型拉取示例图]

配置更改或设备扩容时,通过服务发布及配置下发工具进行统一操作处理。

2.2 离线过程

[离线过程流程图]
[离线过程流程图]

2.3 样本选择

在现有业务安全的打击模型数据基础上,基于已积累的大量恶意样本库,因此在样本标注环节可以得到较高质量的样本数据。此外,除了使用已有的恶意数据作为正样本,还使用了无监督聚类方法,通过标识恶意聚类来增加有监督样本的输入,从而扩展更多的恶意覆盖。

纯粹使用已有规则模型的历史恶意数据作为样本数据,会导致训练得到的模型在覆盖面上过窄,不能对新的恶意有强的识别能力。因此,在样本选择过程中,增加了无监督的过程,通过对请求流水进行聚类,从而发现新的样本数据作为有监督模型的训练数据。离线过程中增加了无监督环节后,总体流程变化为:

[无监督流程图]
[无监督流程图]

2.4 特征选择

特征选择过程现主要有三种方式:

(1)经验法则

根据业务经验进行选择。

(2)信息增益

抽取包含标签的样本数据集,进行特征的信息增益的计算,选择信息增益高的特征作为模型训练输入特征。

(3)包裹法

先粗选特征,使用训练数据集进行模型训练,根据训练得到的模型输出其对应的特征权重(如下图所示)。根据权重的高低对特征进行二次选择。在筛选过后的特征集合基础上(可再增加其他特征或不增加),进一步迭代上述步骤,直到满足收敛条件(如验证数据集的准确率)(此方式本质结合了1),2)两种方式,且存在模型训练过程,所以耗时更久)。

[特征权重柱状图]
[特征权重柱状图]
代码语言:txt
复制
设原始特征集为S;
训练数据集为T;
收敛条件为E;
模型训练算法XGBoost(简写为XGB);
While ! E
Do
	XGB(T, S)
	S = S/S-low-weight
	E = f(AUC)
Done
S 为最终的特征集

2.5 模型训练

模型训练前需先将数据格式进行转换:当前智能对抗系统的有监督模型部分采用 XGBoost 算法,训练数据输入应转换为 libsvm 格式。

XGBoost算法介绍的文章很多,这里就不做多余的介绍了,主要说下涉及到的主要参数的设置。XGBoost需要配置的参数主要有三类:general parameters,booster parameters 和 task parameters。

  • General parameters:参数控制在提升(boosting)过程中使用哪种 booster,常用的 booster 有树模型(tree)和线性模型(linear model)。
  • Booster parameters:这取决于使用哪种 booster。
  • Task parameters:学习目标参数,控制训练目标的表现。

主要的参数有以下几个:

General Parameters:

(1) booster 默认 gbtree

代码语言:txt
复制
  选择每次迭代的模型,有两种选择: 
  • gbtree:基于树的模型
  • gbliner:线性模型

Booster Parameters:

(1) eta 默认0.3

代码语言:txt
复制
	学习率,更改学习率可变更模型的训练速度,不过调整过大容易让效果有所损失。
代码语言:txt
复制
	通过减少每一步的权重,可以提高模型的鲁棒性。
代码语言:txt
复制
	典型值为0.01-0.2。

(2) max_depth 默认6

代码语言:txt
复制
	这个值为树的最大深度。
代码语言:txt
复制
	这个值是用来避免过拟合的。max_depth越大,模型会学到更具体更局部的样本。
代码语言:txt
复制
	典型值:3-10

(3) subsample 默认1

代码语言:txt
复制
	这个参数控制对于每棵树,随机采样的比例。
代码语言:txt
复制
	减小这个参数的值,算法会更加保守,避免过拟合。但是,如果这个值设置得过小,它可能会导致欠拟合。
代码语言:txt
复制
	典型值:0.5-1
代码语言:txt
复制
	

Task Paramters:

(1) objective 默认reg:linear

代码语言:txt
复制
	这个参数定义需要被最小化的损失函数。最常用的值有: 
  • reg:linear 线性回归。
  • reg:logistic 逻辑回归。
  • binary:logistic 二分类的逻辑回归,返回预测的概率(不是类别)。
  • multi:softmax 使用softmax的多分类器,返回预测的类别(不是概率)。 在这种情况下,你还需要多设一个参数:num_class(类别数目)。
  • multi:softprob 和multi:softmax参数一样,但是返回的是每个数据属于各个类别的概率。

模型存储:模型训练完毕后,保存到模型存储池中,之后通过模型拉取工具将模型拉取并存储到本地并在线上服务进行加载。

3. 配置管理

当前已有的配置关系主要包括:

(1)样本数据配置表:用于配置原始数据表信息,恶意数据表,正/负样本数据表等;

(2)模型-特征选择配置表:模型选择,特征选择集合,模型上线状态;

(3)模型训练信息配置表:抽样比例,抽样的历史数据量,训练数据表等;

构造这几个配置表,便于线上模型的快速部署,线上线下模型关联特征集合的一致性,并基于此,建设了自助训练系统,大大减少了离线模型训练的人力投入。

4. 离线流程自助化

在离线进行模型训练过程时,在样本数据处理、特征筛选、训练数据集生成、数据格式转换、模型训练等各个环节,需要编写M个SQL和N个脚本,以及配置若干个的任务流。很难做到各环节衔接的准确无误,任一环节出现问题,就可能导致最终训练的模型无法在线上进行使用。因此针对此问题设计开发了一套离线自助模型训练系统,只需在前端页面配置提交相应的信息,后台程序即可自动控制样本、特征、模型训练等环节,中间过程查看及异常信息也可透明传达出来。

[自助训练架构图]
[自助训练架构图]

通过在 WEB 页配置并提交待训练模型的相关信息,后台逻辑程序在相关配置表中新增配置,然后驱动相应脚本开始进行处理(包括:样本数据筛选,特征提取,构造训练数据集),在完成训练数据集之后,自行启动并模型训练任务。

通过离线模型训练功能的整合,大幅度降低了模型训练的整体过程耗时和人力消耗,并保证了模型训练和线上预测时特征集合的一致性。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 整体介绍
  • 2. 功能详解
    • 2.1 线上过程
      • 2.2 离线过程
        • 2.3 样本选择
          • 2.4 特征选择
            • 2.5 模型训练
            • 3. 配置管理
            • 4. 离线流程自助化
            相关产品与服务
            业务风险情报
            业务风险情报(Business Risk Intelligence,BRI)为您提供全面、实时、精准的业务风险情报服务。通过简单的 API 接入,您即可获取业务中 IP、号码、APP、URL 等的画像数据,对其风险进行精确评估,做到对业务风险、黑产攻击实时感知、评估、应对、止损。您也可利用业务风险情报服务搭建或完善自身的风控体系,补充自身风险情报数据,提升对风险的感知、应对能力。BRI 支持按需付费,您可根据您的需求,选取不同的套餐,更易优化成本。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档