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

在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)两种方式,且存在模型训练过程,所以耗时更久)。

设原始特征集为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个脚本,以及配置若干个的任务流。很难做到各环节衔接的准确无误,任一环节出现问题,就可能导致最终训练的模型无法在线上进行使用。因此针对此问题设计开发了一套离线自助模型训练系统,只需在前端页面配置提交相应的信息,后台程序即可自动控制样本、特征、模型训练等环节,中间过程查看及异常信息也可透明传达出来。

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

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

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

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

编辑于

王嘉的专栏

1 篇文章1 人订阅

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏YoungGy

ISLR_BootStrapping

起源 概述 置信区间 限制 比较 起源 有的时候,不只是想检定群体的mean,而是想检定群体的median。 这种情况下,CLT就不适用了,需要有新的方法策...

1809
来自专栏人工智能LeadAI

算法训练和模型部署如何避免多次重写数据预处理代码

前段时间,我们对接算法的工程师哭丧的和我说,模型生成后一般都要部署成API的形态对外提供服务,但是算法工程师并没有提供如何将一条数据转化特征向量的方法,他能拿到...

935
来自专栏智能算法

网页排序算法之PageRank

1. PageRank算法概述 PageRank,即网页排名,又称网页级别、Google左侧排名或佩奇排名。 是Google创始人拉里·佩奇和谢尔盖·布林于...

3418
来自专栏智能算法

数据异常到底该如何检测?(一)

小编在正式进入工作之后,面对的第一个需要去解决的问题:在网络安全监测中,如何发现异常数据?如异常用户登录,异常操作等。对于网络上的问题我确实是第一次接触这样类型...

3587
来自专栏智能算法

网页排序算法之PageRank

1. PageRank算法概述 PageRank,即网页排名,又称网页级别、Google左侧排名或佩奇排名。 是Google创始人拉里·佩奇和谢尔盖·布林于...

4119
来自专栏决胜机器学习

机器学习(十) ——使用决策树进行预测(离散特征值)

机器学习(十)——使用决策树进行预测(离散特征值) (原创内容,转载请注明来源,谢谢) 一、绘制决策树 决策树的一大优点是直观,但是前提是其以图像形式展示。如...

3436
来自专栏Python疯子

数据挖掘关联分析中的支持度、置信度和提升度

一般我们使用三个指标来度量一个关联规则,这三个指标分别是:支持度、置信度和提升度。

888
来自专栏腾讯云数据库(TencentDB)

腾讯云CDB的AI技术实践:CDBTune

CDBTune是腾讯云自主研发的数据库智能性能调优工具。它无需细分负载类型和积累大量样本,通过智能学习参与参数调优,获得较好的参数调优效果。

9K4
来自专栏人工智能LeadAI

如何使用sklearn进行数据挖掘

1.1、数据挖掘的步骤 数据挖掘通常包括数据采集,数据分析,特征工程,训练模型,模型评估等步骤。使用sklearn工具可以方便地进行特征工程和模型训练工作,在《...

2769
来自专栏大数据挖掘DT机器学习

如何使用sklearn进行数据挖掘?

1.1 数据挖掘的步骤 数据挖掘通常包括数据采集,数据分析,特征工程,训练模型,模型评估等步骤。使用sklearn工具可以方便地进行特征工程和模型训练工作,在...

3276

扫码关注云+社区