写点什么

基于 Wide & Deep 网络和 TextCNN 的敏感字段识别

  • 2020-03-22
  • 本文字数:2132 字

    阅读完需:约 7 分钟

基于 Wide & Deep 网络和 TextCNN 的敏感字段识别

01 数据探索性分析

首先,我们对接入整个数据仓库贴源层中的所有表所有字段的敏感类型 (也就是模型的目标变量 Y)进行了统计,其中敏感类型的字段占全部字段 2% 左右,主要的敏感信息类型包括:姓名,身份证号,手机号,固定电话号,银行卡号,邮箱等。可以看出这一个样本极度不均衡的问题。


其次,我们对于所能获取到的用于判断一个字段敏感类型的信息 (也就是模型的自变量 X)统计如下:



对于上表中的原始特征,通过统计分析确定相应的数据预处理方法和参数,从而衍生出更多的特征。例如,对于数据库名称 (db_name),我们衍生出数据库名称长度 (db_name_len)特征,并对其在是否为敏感字段上的分布统计如下:



从上图中不难看出,数据库名称长度对于字段是否为敏感具有一定的区分性。从字段类型 (column_type) 角度分析,不同字段类型的敏感和非敏感字段占比如下:



最终,通过数据预处理,特征衍生等多种手段得到模型最终的输入特征。

02 Wide&Deep 网络和 TextCNN

Wide&Deep 网络

Wide & Deep 网络是由 Google 提出的一种用于推荐系统的深度神经网络模型 [2]。整个网络框架如下图所示:



模型 Wide Models 部分的输入为数值型和利用 One-Hot 编码的分类型特征,Deep Models 部分通过学习得到了分类特征的 Embedding 编码。对两部分进行合并得到最终的 Wide & Deep 网络,模型预测的条件概率为:



其中,Y 为预测标签,为 Sigmoid 函数,为原始特征的 X 的特征组合,为偏置项,为 Wide 部分的权重,为应用在 Deep 部分最后一层的权重。原文中 Wide 部分采用 FTRL 进行优化,Deep 部分采用 AdaGrad 进行优化。


敏感字段识别问题的输入中包含了大量的数值型特征和分类型特征,因此可以采用 Wide & Deep 网络进行处理。

TextCNN

TextCNN 是由 Kim 等人提出的一种利用卷积神经网络对文本进行分类的深度神经网络模型[3]。整个网络框架如下图所示:



在卷积层中,一个特征由一个窗口内的词生成:



其中, h 为窗口的大小,为词向量表示,为卷积核参数,为偏置项, k 为词向量的维度。


敏感字段识别问题的输入中包含了大量的文本特征,因此可以采用 TextCNN 网络进行处理。

03 敏感字段识别模型

对于敏感字段识别问题,从问题和数据的特点出发,对原始的 Wide & Deep 模型和 TextCNN 做出了如下改进:

Wide&Deep 网络改进

原始 Wide & Deep 网络的深度模型的输入均为分类型特征,但在敏感字段识别问题还存在大量的文本特征。考虑到 CNN 在文本分类上具有较好的效果,因此对于文本特征在通过 Embedding 层后利用 CNN 网络对其进行处理,其它的分类型特征在通过 Embedding 层后仍使用全连接网络进行处理。改进后的网络框架如下图所示:


TextCNN 改进

原始的 TextCNN 解决的是英文文本的分类问题,对于敏感字段识别问题,文本特征中存在大量的汉语信息。不同于英文,汉语没有天然的分隔符,传统的做法是采用分词技术对汉语文本进行预处理。但是这样模型的效果就会受制于分词效果的好坏,同时计算效率也会有一定的下降,因此我们选择不分词,直接采用字向量处理文本。


同时需要注意的是 CNN 会隐含地利用到文本的位置信息,因此对于不同的文本特征组合成一个定长的文本时,需先对每个文本特征进行截取和补全,再将其进行拼接得到最终的定长文本。改进后的网络框架如下图所示:


模型训练

在数据探索性分析阶段,我们指出了数据的不平衡性。因此在处理数据不平衡问题时可以采用如下两个方法:


  1. 数据的过采样和欠采样。即对较少类型的数据多采样一些,或者对于较多类型的数据少采样一些。

  2. 代价敏感学习。即在损失函数中赋予较少类型的样本更大的损失值,增加其在一批数据中的重要程度。


对于训练数据的生成,由于字段数量是有限的,但字段内容值 (column_value) 是大量的。因此我们以一个不为空的字段内容值搭配其他特征为一个训练样本。数据的划分采用常用的模式:训练集测试集划分 7:3,训练集内部训练集验证集划分 8:2。


模型训练的超参数采用常用的模式:


  • Wide 部分 Dropout 比例:0.5

  • Deep 部分 Dropout 比例:0.5

  • Concat 部分 Dropout 比例:0.5

  • Embedding 维度:128

  • 优化器: Adam(lr=0.001, beta_1=0.9, beta_2=0.999)

  • 训练数据 Batch Size: 128

模型性能

敏感字段识别问题为一个多分类问题,训练好的模型在测试集上的整体准确率为 93% 左右。但其在一些具体类型上的效果略有欠缺,通过具体的分析定位问题在于训练数据中包含了一些标注错误的样本,例如:敏感类型为“地址”,但该字段保存的却不是地址类型的数据。

实施流程

模型的整个实施流程如下:



[1] https://en.wikipedia.org/wiki/Data_governance


[2] Cheng, H.-T., Koc, L., Harmsen, J., Shaked, T., Chandra, T.,Aradhye, H., … Shah, H. (2016). Wide & Deep Learning for RecommenderSystems. ArXiv:1606.07792 [Cs, Stat].


[3] Kim, Y. (2014). Convolutional Neural Networks for SentenceClassification. In Proceedings of the 2014 Conference on Empirical Methods inNatural Language Processing (EMNLP) (pp. 1746–1751).


2020-03-22 21:041861

评论

发布
暂无评论
发现更多内容

智能BI新突破,看思迈特新品背后的第二增长曲线!

ToB行业头条

第65期 | GPTSecurity周报

云起无垠

智能未来:低代码与AI如何重塑企业应用开发

天津汇柏科技有限公司

低代码 企业级应用程序开发 AI 人工智能

在线文库网站程序系统源码/app/小程序开发定制

网站,小程序,APP开发定制

第六届金蝶云苍穹开发者大赛院校赛道圆满落幕!61支队伍获颁国家级奖项

金蝶云·苍穹

开发者大赛 金蝶 金蝶云苍穹 中国软件杯

Quartz Plus - 基于Spring的Quartz任务调度框架扩展

redcoder54

quartz spring-boot Java development springboot整合quartz 作业调度

数据存储“取经路”,HBlock轻松“渡”!

天翼云开发者社区

云计算 存储 天翼云

RPA是如何为企业创造价值的

八爪鱼采集器︱RPA机器人

RPA 自动化 RPAxAI

类似咸鱼/转转闲置二手商品交易回收商城系统源码定制开发搭建

网站,小程序,APP开发定制

YETUADMIN 野兔二手交易系统 ThinkPHP8

保定等保测评机构有吗?在哪里?

行云管家

网络安全 等保 堡垒机 保定

荣誉+1 !入选十大科技领先成果!

天翼云开发者社区

云计算 大数据博览会

ps 2022下载:Photoshop 2022 (Win&Mac) 软件直装版下载

你的猪会飞吗

mac软件下载 PS2022下载 ps 2022破解下载

海外广告投放成功的关键点有哪些?

IPIDEA全球HTTP

RPA项目:RPA工作原理及其应用领域

八爪鱼采集器︱RPA机器人

RPA 自动化 RPAxAI

天猫商品详情API:解锁商品收藏与加购信息的秘密

代码忍者

API 测试 API 策略

从零到精通!新手实测ToDesk云电脑、易腾云、顺网云,云端畅玩黑神话悟空、魔兽世界

颜淡慕潇

游戏 云桌面

好多kafka难题啊,看看其中的化解之道

王中阳Go

Go kafka 面试 面经

免费试听 | AI自动化副业创收班手把手带你提升副业收益

测试人

软件测试

如何理解RPA的技术架构与原理

八爪鱼采集器︱RPA机器人

RPA 自动化 RPAxAI

《算力服务产业图谱(2024年)》发布,天翼云两款产品重磅入选!

天翼云开发者社区

云计算 云服务

【论文速读】|RO-SVD:一种用于 AIGC 应用的可重构硬件版权保护框架

云起无垠

基于 INFINI Pizza 为 Hugo 静态站点添加搜索功能

极限实验室

搜索引擎 Pizza

基于Spring Initializr的Spring Boot项目脚手架rc-initializr

redcoder54

spring spring-boot Java脚手架 Java development Web App开发

大语言模型数据增强与模型蒸馏解决方案

阿里云大数据AI技术

人工智能 自然语言处理 通义千问 大语言模型

NGINX 专业概念文章合集

NGINX开源社区

微服务 网络安全 物联网 经验分享

基于 Wide & Deep 网络和 TextCNN 的敏感字段识别_文化 & 方法_京东数字科技产业AI中心_InfoQ精选文章