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

栏目: 数据库 · 发布时间: 7年前

内容简介:安全 AI 的智能对抗系统之架构实现篇

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

1. 整体介绍

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

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

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

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

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

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

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

2. 功能详解

2.1 线上过程

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

(1)实时分类预测

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

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

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

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

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

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

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

(2)模型获取及加载

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

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

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

2.2 离线过程

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

2.3 样本选择

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

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

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

2.4 特征选择

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

(1)经验法则

根据业务经验进行选择。

(2)信息增益

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

(3)包裹法

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

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

设原始特征集为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 ]

选择每次迭代的模型,有两种选择:

  • gbtree:基于树的模型
  • gbliner:线性模型

Booster Parameters:

(1) eta [默认0.3]

学习率,更改学习率可变更模型的训练速度,不过调整过大容易让效果有所损失。

通过减少每一步的权重,可以提高模型的鲁棒性。

典型值为0.01-0.2。

(2) max_depth [默认6]

这个值为树的最大深度。

这个值是用来避免过拟合的。max_depth越大,模型会学到更具体更局部的样本。

典型值:3-10

(3) subsample [默认1]

这个参数控制对于每棵树,随机采样的比例。

减小这个参数的值,算法会更加保守,避免过拟合。但是,如果这个值设置得过小,它可能会导致欠拟合。

典型值:0.5-1

Task Paramters:

(1) objective [默认reg:linear]

这个参数定义需要被最小化的损失函数。最常用的值有:

  • reg:linear 线性回归。
  • reg:logistic 逻辑回归。
  • binary:logistic 二分类的逻辑回归,返回预测的概率(不是类别)。
  • multi:softmax 使用softmax的多分类器,返回预测的类别(不是概率)。 在这种情况下,你还需要多设一个参数:num_class(类别数目)。
  • multi:softprob 和multi:softmax参数一样,但是返回的是每个数据属于各个类别的概率。

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

3. 配置管理

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

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

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

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

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

4. 离线流程自助化

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

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

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

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


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

VC++.NET入门

VC++.NET入门

Davis Chapman / 中国电力出版社 / 2003-5 / 55.0

《VC++.NET入门》提供了学习Visual C++工具的循序渐进的指导和创建应用程序的向导。你将学习设计应用程序窗口、使用控件、显示图形、创建SDI和MDI应用程序、操作数据库以及创建多任务程序,也将学习在微软的新.E平台下使用Visual C++的一些基本技巧,以及学习它影响设计和编写应用程序的方式。一起来看看 《VC++.NET入门》 这本书的介绍吧!

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具