用姓名字段统计人数_基于 Wide amp; Deep 网络和 TextCNN 的敏感字段识别
數(shù)據(jù)治理 (Data Governance) [1]作為一種數(shù)據(jù)管理的重要一環(huán),主要目的在于保證數(shù)據(jù)在整個(gè)生命周期內(nèi)的高質(zhì)量性。數(shù)據(jù)治理的核心包括:數(shù)據(jù)的可用性 (Availability),易用性 (Usability),一致性 (Consistency),完整性 (Integrity) 和安全性 (Security)。數(shù)據(jù)的安全性作為關(guān)鍵的一項(xiàng),旨在保護(hù)數(shù)據(jù)中敏感和隱私數(shù)據(jù),因此對(duì)于數(shù)據(jù)中敏感和隱私信息的識(shí)別至關(guān)重要。利用機(jī)器學(xué)習(xí)算法對(duì)敏感字段識(shí)別不僅能夠提高識(shí)別的準(zhǔn)確率,同時(shí)也能極大的提高識(shí)別的效率,從而幫助數(shù)據(jù)倉(cāng)庫(kù)運(yùn)營(yíng)人員高效地完成敏感數(shù)據(jù)的存儲(chǔ)策略制定和數(shù)據(jù)落庫(kù)。
本文實(shí)現(xiàn)了一種基于 Wide & Deep 網(wǎng)絡(luò)和 TextCNN 的敏感字段識(shí)別算法,主要探究:
- 數(shù)據(jù)探索性分析
- Wide & Deep 網(wǎng)絡(luò)和 TextCNN
- 敏感字段識(shí)別模型
數(shù)據(jù)探索性分析
首先,我們對(duì)接入整個(gè)數(shù)據(jù)倉(cāng)庫(kù)貼源層中的所有表所有字段的敏感類型 (也就是模型的目標(biāo)變量Y)進(jìn)行了統(tǒng)計(jì),其中敏感類型的字段占全部字段 2% 左右,主要的敏感信息類型包括:姓名,身份證號(hào),手機(jī)號(hào),固定電話號(hào),銀行卡號(hào),郵箱等。可以看出這一個(gè)樣本極度不均衡的問題。
其次,我們對(duì)于所能獲取到的用于判斷一個(gè)字段敏感類型的信息 (也就是模型的自變量X)統(tǒng)計(jì)如下:
對(duì)于上表中的原始特征,通過統(tǒng)計(jì)分析確定相應(yīng)的數(shù)據(jù)預(yù)處理方法和參數(shù),從而衍生出更多的特征。例如,對(duì)于數(shù)據(jù)庫(kù)名稱 (db_name),我們衍生出數(shù)據(jù)庫(kù)名稱長(zhǎng)度 (db_name_len)特征,并對(duì)其在是否為敏感字段上的分布統(tǒng)計(jì)如下:
從上圖中不難看出,數(shù)據(jù)庫(kù)名稱長(zhǎng)度對(duì)于字段是否為敏感具有一定的區(qū)分性。從字段類型 (column_type) 角度分析,不同字段類型的敏感和非敏感字段占比如下:
最終,通過數(shù)據(jù)預(yù)處理,特征衍生等多種手段得到模型最終的輸入特征。
Wide&Deep網(wǎng)絡(luò)和TextCNN
Wide & Deep 網(wǎng)絡(luò)是由 Google 提出的一種用于推薦系統(tǒng)的深度神經(jīng)網(wǎng)絡(luò)模型 [2]。整個(gè)網(wǎng)絡(luò)框架如下圖所示:
模型 Wide Models 部分的輸入為數(shù)值型和利用 One-Hot 編碼的分類型特征,Deep Models 部分通過學(xué)習(xí)得到了分類特征的Embedding 編碼。對(duì)兩部分進(jìn)行合并得到最終的 Wide & Deep 網(wǎng)絡(luò),模型預(yù)測(cè)的條件概率為:
TextCNN是由 Kim 等人提出的一種利用卷積神經(jīng)網(wǎng)絡(luò)對(duì)文本進(jìn)行分類的深度神經(jīng)網(wǎng)絡(luò)模型[3]。整個(gè)網(wǎng)絡(luò)框架如下圖所示:
敏感字段識(shí)別問題的輸入中包含了大量的文本特征,因此可以采用 TextCNN 網(wǎng)絡(luò)進(jìn)行處理。
敏感字段識(shí)別模型
對(duì)于敏感字段識(shí)別問題,從問題和數(shù)據(jù)的特點(diǎn)出發(fā),對(duì)原始的 Wide & Deep 模型和 TextCNN 做出了如下改進(jìn):
Wide&Deep網(wǎng)絡(luò)改進(jìn)
原始 Wide & Deep 網(wǎng)絡(luò)的深度模型的輸入均為分類型特征,但在敏感字段識(shí)別問題還存在大量的文本特征。考慮到 CNN 在文本分類上具有較好的效果,因此對(duì)于文本特征在通過 Embedding 層后利用 CNN 網(wǎng)絡(luò)對(duì)其進(jìn)行處理,其它的分類型特征在通過 Embedding 層后仍使用全連接網(wǎng)絡(luò)進(jìn)行處理。改進(jìn)后的網(wǎng)絡(luò)框架如下圖所示:
原始的 TextCNN 解決的是英文文本的分類問題,對(duì)于敏感字段識(shí)別問題,文本特征中存在大量的漢語(yǔ)信息。不同于英文,漢語(yǔ)沒有天然的分隔符,傳統(tǒng)的做法是采用分詞技術(shù)對(duì)漢語(yǔ)文本進(jìn)行預(yù)處理。但是這樣模型的效果就會(huì)受制于分詞效果的好壞,同時(shí)計(jì)算效率也會(huì)有一定的下降,因此我們選擇不分詞,直接采用字向量處理文本。
同時(shí)需要注意的是 CNN 會(huì)隱含地利用到文本的位置信息,因此對(duì)于不同的文本特征組合成一個(gè)定長(zhǎng)的文本時(shí),需先對(duì)每個(gè)文本特征進(jìn)行截取和補(bǔ)全,再將其進(jìn)行拼接得到最終的定長(zhǎng)文本。改進(jìn)后的網(wǎng)絡(luò)框架如下圖所示:
模型訓(xùn)練
在數(shù)據(jù)探索性分析階段,我們指出了數(shù)據(jù)的不平衡性。因此在處理數(shù)據(jù)不平衡問題時(shí)可以采用如下兩個(gè)方法:
對(duì)于訓(xùn)練數(shù)據(jù)的生成,由于字段數(shù)量是有限的,但字段內(nèi)容值 (column_value) 是大量的。因此我們以一個(gè)不為空的字段內(nèi)容值搭配其他特征為一個(gè)訓(xùn)練樣本。數(shù)據(jù)的劃分采用常用的模式:訓(xùn)練集測(cè)試集劃分 7:3,訓(xùn)練集內(nèi)部訓(xùn)練集驗(yàn)證集劃分 8:2。
模型訓(xùn)練的超參數(shù)采用常用的模式:
- Wide 部分 Dropout 比例:0.5
- Deep 部分 Dropout 比例:0.5
- Concat 部分 Dropout 比例:0.5
- Embedding 維度:128
- 優(yōu)化器: Adam(lr=0.001, beta_1=0.9, beta_2=0.999)
- 訓(xùn)練數(shù)據(jù) Batch Size: 128
模型性能
敏感字段識(shí)別問題為一個(gè)多分類問題,訓(xùn)練好的模型在測(cè)試集上的整體準(zhǔn)確率為 93% 左右。但其在一些具體類型上的效果略有欠缺,通過具體的分析定位問題在于訓(xùn)練數(shù)據(jù)中包含了一些標(biāo)注錯(cuò)誤的樣本,例如:敏感類型為“地址”,但該字段保存的卻不是地址類型的數(shù)據(jù)。
實(shí)施流程
模型的整個(gè)實(shí)施流程如下:
[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).
文章來(lái)源:京東數(shù)科技術(shù)說(shuō)總結(jié)
以上是生活随笔為你收集整理的用姓名字段统计人数_基于 Wide amp; Deep 网络和 TextCNN 的敏感字段识别的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 儿子变性想断绝父子关系!马斯克回应:“她
- 下一篇: 国产造车新势力第二家!小鹏汽车累计交付量