牟志,殷鋒,袁平
(1.四川大學(xué)計算機學(xué)院,成都610065;2.西南民族大學(xué)計算機科學(xué)與技術(shù)學(xué)院,成都610041;3.重慶第二師范學(xué)院數(shù)學(xué)與信息工程學(xué)院,重慶400067)
神經(jīng)網(wǎng)絡(luò)近年來在計算機領(lǐng)域發(fā)展迅速,應(yīng)用范圍廣泛,如人臉識別、情感分析、無人駕駛等都用到了深度神經(jīng)網(wǎng)絡(luò)(DNN),性能甚至可以媲美人工判別。近年來隨著對DNN 技術(shù)的深入研究,神經(jīng)網(wǎng)絡(luò)模型的一些問題也暴露了出來,其中就包括模型面對對抗樣本攻擊時表現(xiàn)出的弱魯棒性。
神經(jīng)網(wǎng)絡(luò)模型可以簡化為函數(shù)形式f(x)=y,其中x 作為原始輸入,假使在原有輸入x 上添加細(xì)微擾動,令x*=x+Δx,使得f(x*)≠f(x),這樣的一種行為被稱為對抗攻擊。這種攻擊行為極大地威脅了基于深度學(xué)習(xí)誕生的智能系統(tǒng),對于圖像處理領(lǐng)域而言,攻擊者對于交通指示牌添加人眼不可查覺的修改,可以使得無人駕駛系統(tǒng)做出錯誤的判斷從而引發(fā)重大交通事故;對于自然語言處理領(lǐng)域,攻擊者對垃圾郵件、短信通過添加修改刪除字詞等手段,使其規(guī)避掉垃圾文本識別系統(tǒng)的檢查,從而散播不良信息到社會網(wǎng)絡(luò)空間當(dāng)中,因此,如何抵御對抗攻擊成為了一個亟待解決的問題,前人做了大量研究和實驗來探索對抗樣本存在的原因,總體上可以概括為如下兩點:
(1)有限的訓(xùn)練樣本無法涵蓋空間內(nèi)所有可能性,因此無法通過這樣的訓(xùn)練樣本訓(xùn)練處一個包含所有特征的模型。
(2)訓(xùn)練模型的時候為了獲得更好的分類效果,模型會盡量擴(kuò)大樣本和分類邊界之間的距離,但也在每一個分類區(qū)域中涵蓋了很多不屬于這個類別的樣本空間。
面對上述攻擊問題,Goodfellow 等人提出了對抗訓(xùn)練的方法,在原有訓(xùn)練數(shù)據(jù)集的基礎(chǔ)上主動添加攻擊樣本從而完善神經(jīng)網(wǎng)絡(luò)的邊界;Liao F 等人嘗試用去噪網(wǎng)絡(luò)DAE 和DUNET 將對抗樣本還原成原始樣本[1]。Danish 在前人的研究基礎(chǔ)上,利用ScRNN 文本糾錯網(wǎng)絡(luò)結(jié)合自定義的補償策略來達(dá)到還原對抗樣本的目的。ScRNN 能夠識別出輸入文本中疑似經(jīng)過對抗攻擊處理過的詞匯,通過補償策略將其替換為中性詞從而削弱其對模型輸出結(jié)果的影響。但是Danish 提出的補償策略并沒有很好地定義中性詞(Neutral)概念,本文基于詞向量的高斯分布,重新定義中性詞(GSNeutral),并在情感分類等多個任務(wù)上取得了優(yōu)異的結(jié)果。
計算機無法直接識別現(xiàn)實世界中的表達(dá)符號,如圖片、文字、語音等,自然語言處理(NLP)致力于研究文字類智能系統(tǒng)。NLP 任務(wù)可以簡答地概括為上游任務(wù)和下游任務(wù),上游任務(wù)將文字進(jìn)行編碼表達(dá)為計算機能夠識別的符號,常見的下游任務(wù)包括實體識別、文本分類、摘要提取等等。上游任務(wù)是一個詞向量表達(dá)的構(gòu)建過程,一種樸素的做法是使用One-hot 編碼,但會導(dǎo)致輸入空間極度稀疏,Miklov 等人提出改進(jìn)的Word2Vec 用有限的維度地建立了更高質(zhì)量的詞向量,Google 公司通過使用mask 技巧,使得雙向訓(xùn)練稱為可能,構(gòu)建出了與上下文聯(lián)系更緊密的Bert[2]。
優(yōu)秀的詞向量直接影響著下游文本任務(wù)的結(jié)果,因此本文對于詞向量的構(gòu)建采用了Bert,直接使用開源社區(qū)訓(xùn)練好的Bert 模型應(yīng)用到詞嵌入層。人在理解一段文本中某個詞語時,不僅僅依托于這個詞語自身的意義,還與其上下文有著緊密的關(guān)系[3]。Bert 自身通過雙向訓(xùn)練賦予了其更加豐富的上下文語義,相比于Word2Vec,Bert 本身就具備一定的對抗防御能力,因此在本文提出的方法里,使用Bert 用作上游任務(wù)的詞向量構(gòu)建。
歐美書寫體系中以英文為代表,為了檢測其中的書寫錯誤,前人做了大量的工作,其中ScRNN 作為一種典型的半監(jiān)督網(wǎng)絡(luò),可以有效地發(fā)現(xiàn)輸入文本中的拼寫錯誤,并且根據(jù)經(jīng)驗?zāi)P瓦M(jìn)行一定程度的矯正,對錯誤的書寫發(fā)現(xiàn)有著很大的幫助??梢钥闯?,對于發(fā)現(xiàn)輸入文本中的可疑段落,目前已經(jīng)有相關(guān)技術(shù)可以實現(xiàn)。
自然語言處理的上游任務(wù)可以歸納為一個構(gòu)建詞向量表達(dá)的過程,原始輸入樣本在文本任務(wù)中為句子s,通過分詞以及停用詞可以將其分割成若干個詞匯,得到有若干Token 組成的輸入序列s( )t ={t1,t2…tn},序列經(jīng)過神經(jīng)網(wǎng)絡(luò)模型的詞嵌入層Embedding,每一個單詞Token 得到其對應(yīng)的詞嵌入表達(dá)e(token)。在詞向量構(gòu)建過程完成后,可以得到字典Vn*m,其中n 是訓(xùn)練語料中所有Token 的個數(shù),m 是詞嵌入層指定的維度,即每個Token 可以表達(dá)為一個m 維度的向量{v1,v2…,vm}。
圖1 ScRNN網(wǎng)絡(luò)結(jié)構(gòu)圖
高斯分布作為自然界最常見的連續(xù)概率分布,在許多領(lǐng)域都有著重要作用,本文提出一種新的方法根據(jù)高斯分布來重組中性詞。通過上述詞向量訓(xùn)練的過程得到字典Vn*m,進(jìn)行統(tǒng)計分析該字典中m 個維度的分布。假使其中一個維度i 上(1 ≤i ≤m)每個單詞的分量為{ v1,i,v2,i,…,vn,i},對該分量上的所有值做求和運算得到,依此方法遍歷計算每個維度上的和,得到一系列值{v1,v2,…,vm},計算上述所有值的均值,根據(jù)均值μ 和高斯分布構(gòu)造出連續(xù)密度函數(shù),中性詞根據(jù)構(gòu)造出的高斯概率分布確定中性詞在每個維度上的值,得到中性詞
圖2 字典的詞向量矩陣表達(dá)
根據(jù)對詞向量的維度統(tǒng)計得到了一個更加合理的中性詞word*,下面將闡述如何將其運用到ScRNN 網(wǎng)絡(luò)中,以及如何進(jìn)行對抗攻擊的防御。對于英文文本,對抗攻擊可以通過更改單詞中某個字符達(dá)到目的,但是更改后的單詞極有可能是一個并不存在的單詞,如apple 修改為apble,這樣的單詞稱為UNK,ScRNN 網(wǎng)絡(luò)可以做到識別出UNK。在識別出一個UNK 后,用上述中性詞word*將其替換,其目的就是極大地削弱這個單詞的傾向性,防止其對神經(jīng)網(wǎng)絡(luò)模型的輸入造成誤導(dǎo)。
圖3 GScRNN整體流程圖
為了更好地評判實驗結(jié)果,現(xiàn)需要給出對比指標(biāo)的定義。在機器學(xué)習(xí)的研究中,準(zhǔn)確率(Accuracy)是一個評判模型優(yōu)劣的最常見的指標(biāo),本文依然會采用該指標(biāo),根據(jù)SMSSpamCollection 已經(jīng)打好的標(biāo)簽和本文模型預(yù)測結(jié)果來計算準(zhǔn)確率,準(zhǔn)確率越高意味著模型性能越好。
除了精確率之外,引用Danish 等人定義的另一項指標(biāo):敏感度(Sensitivity)。由于文本的詞向量空間有著離散的特性,即使通過某些手段獲取到連續(xù)的詞向量,但該向量在現(xiàn)實世界中可能并不存在對應(yīng)的詞匯,因此攻擊者的攻擊空間有限,據(jù)此本文希望盡可能的削減攻擊空間,減少能夠引起神經(jīng)網(wǎng)絡(luò)模型誤判的輸入樣本[4]。這種特性定義為敏感度,W 表達(dá)詞匯識別器,式(1)中W 可以生成的不同近似值。顯然,SAW,V值越高模型的魯棒性就越弱[5]。
本文將文本分類作為下游任務(wù)來考評模型面對對抗攻擊時的性能,使用公開的短信數(shù)據(jù)集SMSSpam-Collection。Bert 在多項自然語言處理任務(wù)中取得了優(yōu)異的結(jié)果,在嵌入層上使用它構(gòu)建詞向量。通過字符級別的攻擊手段修改、增加、刪除單詞中某個字符達(dá)到攻擊目的,比較不同的防御手段面對上述攻擊可以達(dá)到的分類正確率。
實驗對比幾種常見的防御方法:數(shù)據(jù)增強(DA)、對抗訓(xùn)練(Adv)以及基于原補償策略的ScRNN 矯正網(wǎng)絡(luò)。模型在不同防御方法下的文本分類正確率的如表1 所示,結(jié)果顯示Bert 在不使用任何防御方法進(jìn)行一個普通文本分類任務(wù)時正確率高達(dá)88.4%,但是在面對存在攻擊樣本的數(shù)據(jù)集時正確率大幅度下降:替換字符(61.1%)、刪除字符(57.6%)、增加字符(47.2%)。在添加防御方法后,在無攻擊狀態(tài)下雖然正確率有小幅下降,如BERT+ScRNN(86.9%),但是在對抗攻擊樣本的攻擊狀態(tài)中卻有著更優(yōu)異的表現(xiàn)(80.2%)。在引入基于高斯分布的重構(gòu)中性詞后,效果在原實驗結(jié)果上提升了1 個百分點(81.8%)。
表1 Bert 模型面對不同攻擊時的性能指標(biāo)
此外,為了評估不同防御方法下模型的敏感度,本文做了進(jìn)一步實驗,對語料中的詞匯做隨機擾動,記錄其在各個防御方法下的敏感度,由于本文提出了對中性詞的重新定義與計算方法,實驗重點關(guān)注,相較于以前人工指出中性詞,新的中性詞定義方法對實驗結(jié)果的影響。攻擊后新生成的單詞相較于原詞匯的范式距離可以使用單詞錯誤率(WER)進(jìn)行衡量,WER 值越大則表示攻擊程度越高,同時由于過高的WER 違背了輕微擾動的前提,需要將其限制在一定范圍之內(nèi)。作者在同一語料下進(jìn)行了10 次實驗對比,結(jié)果揭示了在語料上WER 與Sensitivity 之間的關(guān)系,本文提出的GSNeutral應(yīng)用到機器學(xué)習(xí)模型后整體有著更低的敏感度。
圖4 模型分別應(yīng)用GSNeutral與Neutral的敏感度對比
本文在ScRNN 網(wǎng)絡(luò)的矯正UNK 補償策略的基礎(chǔ)上,提出了一種新的中性詞定義方法GSNeutral,根據(jù)語料的詞向量概率分布來重新計算每個維度上的向量值,使其整體滿足高斯概率分布,當(dāng)ScRNN 識別到UNK 時,用上述中性詞進(jìn)行替換。本文實驗證明該方法相比原ScRNN 在進(jìn)行文本分類任務(wù)時,可以更好地抵擋對抗攻擊,同時定義了用于對抗攻擊領(lǐng)域的新指標(biāo)敏感度,該指標(biāo)在使用了本文所述方法之后有所下降,即新的模型有著更低的敏感度,縮小了攻擊者能利用的攻擊空間,提高了模型的魯棒性。但是目前的方法只適用于英文文本,接下來的工作是如何將其延伸到中文的自然語言處理任務(wù)中。