張影
(安徽理工大學(xué) 計算機(jī)科學(xué)與工程學(xué)院,安徽 淮南 232001)
近年來,有研究發(fā)現(xiàn)在自然語言處理(Natural Language Processing,NLP)領(lǐng)域中,機(jī)器學(xué)習(xí)(Machine Learning,ML)模型容易受到一些合法但帶有微小擾動輸入所影響。這種影響會使得模型受到欺騙,做出錯誤的決策,而人類往往無法感知,這也引起了人們對其在文本分類、有毒內(nèi)容檢測、情感分析等方面的安全性和完整性的高度關(guān)注。有研究指出,對抗樣本的質(zhì)量與模型的魯棒性和泛化性能有密不可分的關(guān)系,因此越來越多的關(guān)于文本對抗樣本的研究專注于提高其質(zhì)量。
雖然對抗樣本的研究早已在圖像領(lǐng)域涉及,但是在NLP領(lǐng)域的發(fā)展也不過六七年的時間,并且由于文本數(shù)據(jù)的離散特性,文本對抗樣本的生成仍是個的挑戰(zhàn)?,F(xiàn)有的NLP 攻擊方法根據(jù)擾動粒度的大小可分為字符級攻擊、單詞級攻擊和句子級攻擊三大類。在字符級對抗攻擊中,通常是對字符進(jìn)行增加字符、刪除字符、交換字符等操作對文本進(jìn)行擾動。Gao 等人在基于黑盒設(shè)置下進(jìn)行攻擊。他們首先利用設(shè)計的評分函數(shù)對字符的重要性進(jìn)行排序,再根據(jù)排序順序?qū)ψ址M(jìn)行擾動。然而,字符的修改很大程度上會出現(xiàn)語法錯誤、語句不通順的情況。句子級攻擊方法主要通過對原始句子進(jìn)行轉(zhuǎn)述從而產(chǎn)生擾動。Iyyer 等人利用將輸入樣本進(jìn)行轉(zhuǎn)述的方式達(dá)到對抗攻擊的效果。而這種對句子整體進(jìn)行擾動的方法往往樣本的修改幅度較大,容易被察覺。單詞級的攻擊方法相對以上兩種攻擊方法來說,對抗樣本的語法正確性、語義相似性有所提升以及文本的修改率相對較小。Ren等人用輸入樣本中單詞與之相對應(yīng)的同義詞進(jìn)行替換生成對抗樣本,很好地保持了語義的一致性并且具有相對較低的單詞替換率。Jin 等人在兩種NLP 任務(wù)上進(jìn)行攻擊,先對單詞重要性進(jìn)行排序再對候選詞進(jìn)行余弦相似度、詞性檢查、語義相似度篩選工作生成質(zhì)量良好的對抗樣本。
然而現(xiàn)有的單詞級的擾動大部分是通過WordNet 搜索空間得到,能夠搜索到的同義詞的數(shù)量有限,不一定能找到合適的候選詞。HowNet是基于義原形成的數(shù)據(jù)庫,可以找到更多與語義有關(guān)的詞。因此,本文利用HowNet 語義知識庫尋找原始樣本中單詞的替換詞,再對替換詞進(jìn)行多次過濾保留適合的替換詞,以此生成有效的對抗樣本。
1.1.1 文本對抗樣本
給定一個包含個樣本的語料庫數(shù)據(jù)集={,, …,x}和相對應(yīng)的一組類別標(biāo)簽={,, …,y}及一個預(yù)先訓(xùn)練好的文本分類模型:→,它將輸入樣本語料庫映射到標(biāo)簽集合。對于樣本∈,若要生成一個有效的對抗樣本x,應(yīng)滿足(x)≠()=且x=+Δ的約束條件,Δ為添加的不可感知的擾動。圖1為文本對抗攻擊示意圖。
圖1 文本對抗攻擊示意圖
1.1.2 義原
第一,全面向污染宣戰(zhàn),成效顯著。國務(wù)院先后發(fā)布實(shí)施大氣、水、土壤污染防治三大行動計劃,生態(tài)環(huán)境狀況明顯得到改善?!洞髿馐畻l》順利收官,全面完成空氣質(zhì)量改善目標(biāo),京津冀、長三角、珠三角等區(qū)域PM2.5平均濃度分別下降39.6%、34.3%、27.7%。其中,北京超額實(shí)現(xiàn)“京60”目標(biāo),珠三角區(qū)域PM2.5平均濃度連續(xù)三年達(dá)標(biāo)。全國地表水優(yōu)良(I-III類)水質(zhì)斷面比例增至67.9%,劣Ⅴ類降至8.3%。36個重點(diǎn)城市建成區(qū)的黑臭水體已基本消除。全面開展土壤污染狀況詳查,完成基本農(nóng)田劃定工作,城市生活垃圾無害化處理率達(dá)97.14%,農(nóng)村生活垃圾得到處理的行政村比例達(dá)74%。
在這一節(jié)中,將詳細(xì)介紹本文攻擊方法。具體來說,此攻擊可以分為三個步驟:單詞的重要性排序、生成候選替換詞和攻擊目標(biāo)模型。在每次迭代中,攻擊首先從原始文本中選擇一個單詞,然后用與它有同一義原的單詞替換選定的單詞,以構(gòu)建一個對抗樣本。本節(jié)的其余部分將詳細(xì)介紹本文方法的攻擊。圖2展示了本文攻擊算法示意圖。
圖2 本文攻擊算法示意圖
統(tǒng)計學(xué)處理 整理數(shù)據(jù)用Excel 2007軟件,數(shù)據(jù)處理用SPSS 19.0軟件,計數(shù)資料用百分?jǐn)?shù)(%)表示,組間比較用χ2檢驗(yàn),等級資料采用Mann-Whitney 檢驗(yàn)比較,P<0.05為差異有統(tǒng)計學(xué)意義。
腦梗死形成的主要原因包括有動脈管壁病損、血流動力學(xué)出現(xiàn)異常、血液成分改變等,血液粘滯性高,是腦梗死的主要危險因素[1]。彩色多普勒超聲和頸動脈血管超聲在臨床中為常用的影像學(xué)診斷方式,本次主要探究彩色多普勒超聲+頸動脈血管超聲聯(lián)合在診斷中的應(yīng)用價值,研究如下:
(1)詞性(part-of-speech,PSO)過濾器。在NLP 任務(wù)中,一個基本任務(wù)是識別樣本中單詞的詞性,借助詞性標(biāo)注器把它們分為動詞、形容詞、名詞等10 種詞性。為滿足對抗樣本的語法結(jié)構(gòu)和流暢性,引入了PSO 過濾器,它可以清除掉C中與原始輸入文本中詞性不一致的候選詞,只保留詞性相同的候選詞,從而保證樣本的語法結(jié)構(gòu)不被破壞。
這種生成候選替換詞方法與基于同義詞替換方法相比前者不僅能夠找到更多的候選詞,還可以在候選詞的數(shù)量和質(zhì)量之間實(shí)現(xiàn)更好的平衡,由此可保留更多潛在的對抗樣本。
重要性分?jǐn)?shù)越高對分類結(jié)果的影響就越高,根據(jù)單詞的重要性對單詞進(jìn)行排序。此外,為保證生成的對抗樣本語法被破壞,借助停用詞集過濾掉像“in”“are”等對分類結(jié)果不起作用的沒有實(shí)際意義的詞。
義原作為人類語言學(xué)中的最小語義單位,不可分割,用于解釋單詞隱含的詞語信息。即一個單詞的含義可以用其義原的組成來表示。知網(wǎng)(HowNet)是最有名的一個義原知識庫,早以被應(yīng)用于像情感分析、反向詞典、詞語表征學(xué)習(xí)等多個NLP 任務(wù)中。它已經(jīng)為超過100 000 個英語單詞和漢字進(jìn)行注釋,維護(hù)了16 種語義關(guān)系,而僅用了2 134 個義原的預(yù)定義集合。
為原始輸入文本中的單詞生成替代后候選詞是生成擾動的關(guān)鍵步驟,因?yàn)樗鼤@著影響對抗樣本的攻擊成功率及其生成質(zhì)量。在此過程中采用基于義原的單詞替換方法,由義原的定義可知,它是指能夠準(zhǔn)確表述某個單詞的含義,因此若多個詞被同一義原注釋,可直接互為替換。例如,單詞“movie”在HowNet 中的注釋為“produce”“shows”,而具有同樣注釋的單詞有“picture”“film”和“cinema”,這三個單詞就是單詞“movie”的候選替換詞。通過這種方式,為單詞w建立一個候選替換詞集合C,每一個候選替換詞用w表示。
(3)語法檢查過濾器。為了進(jìn)一步維護(hù)對抗樣本的語法正確性,采用已有的語法檢查器去除可能會導(dǎo)致文本語法錯誤的候選替換詞w。
在執(zhí)行攻擊目標(biāo)模型時,按照公式(3)計算得到單詞w的替換順序,用原始單詞相匹配的候選詞w與之替換,并迭代的執(zhí)行此操作,直到分類標(biāo)簽改變即攻擊成功,或者替換詞數(shù)量達(dá)到上限即攻擊失敗。在本文中,替換上限為原始樣本中單詞能被修改的比例,設(shè)置為閾值。
其中,為原始輸入的干凈樣本,′為干凈樣本通過替換未知標(biāo)記“UNK”得到的。對于干凈樣本的每個單詞的重要性得分由無標(biāo)記依存正確率(UAS)和帶標(biāo)記依存正確率(LAS)的變化計算得到的。如式(3)計算所示:
(2)詞嵌入相似性過濾器。對于每一個替換詞w∈C,通過反擬合方法將語言約束注入到向量空間中,計算單詞w與候選詞w之間的余弦相似度,并過濾掉余弦相似度小于閾值ε的詞。
上式中,UAS 表示標(biāo)記關(guān)系的正確率,LAS 表示標(biāo)記關(guān)系和關(guān)系標(biāo)簽都相對應(yīng)的正確率,Δ(,)表示UAS 的變化,Δ(,)表示LAS 的變化,是控制依賴弧及其標(biāo)簽的相對重要性的系數(shù)。
輸入:原始樣本x=w,w,…,w,…,w,替換上限,目標(biāo)模型
1.2.3 攻擊目標(biāo)模型
對于對抗樣本而言,最根本的目的是成功攻擊目標(biāo)模型使其判斷錯誤。然而,為了生成質(zhì)量良好的對抗樣本,僅誤導(dǎo)模型分類錯誤還遠(yuǎn)遠(yuǎn)不夠,還需要滿足單詞的正確性、語法的正確性以及語義的相似性,這樣才不容易被人類察覺。因此,對于每一個候選替換詞w,采用不同種類的過濾器過濾掉不能滿足要求的詞,旨在生成攻擊成功率較高且不易感知的對抗樣本。
(4)困惑度過濾器。借助GPT-2 計算候選替換詞w的和 ix之間的困惑度差值,并給其設(shè)置一定的閾值。其中,x為樣本語句中第個單詞被w替換后的文本。
算法:基于單詞替換的文本對抗樣本攻擊算法
輸出:對抗樣本x
本文實(shí)驗(yàn)的主要環(huán)境采用Windows10、Python3.7,深度學(xué)習(xí)模塊使用PyTorch1.4,具如表1所示。
表1 實(shí)驗(yàn)環(huán)境設(shè)置
在文本分類任務(wù)中,數(shù)據(jù)集選用PTB-SD-3.3.0。在該文本數(shù)據(jù)集中使用第2 ~21 節(jié)作為訓(xùn)練集,第22 節(jié)作為開發(fā)集,第23 節(jié)作為測試集。目標(biāo)模型選用兩種解析器:Biaffine 解析器和Stack-Pointer 解析器。對于相同的數(shù)據(jù)集和目標(biāo)模型,選用DepAttack 攻擊方法與本文方法進(jìn)行比較。
一個有效的對抗樣本不僅要使得模型錯誤預(yù)測分類標(biāo)簽,還應(yīng)不易被感知。為滿足約束條件,從兩個方面評估對抗樣本的質(zhì)量,分別為對抗樣本分類精度(Classification Accuracy,CA)和困惑度(Perplexity,PP)。其中分類精度為被模型正確分類對抗樣本占輸入原始樣本的比例,值越小誤導(dǎo)模型判斷力的能力越強(qiáng),也就越有效;困惑度用于衡量對抗樣本的流利程度,值越小越貼近人類是敘述手法越不易被察覺。
其中,success_count 為攻擊目標(biāo)模型成功的對抗樣本的數(shù)量,sum_count 為輸入模型的干凈樣本的總數(shù)量。
根據(jù)如上的實(shí)驗(yàn)設(shè)置,在自動評估方面的主要結(jié)果如圖表2所示。相較于DepAttack 方法,本文所采用的方法使得對抗樣本的分類準(zhǔn)確率(CA)和困惑度(PP)都有所下降。如前所述,兩者的值越小,對抗樣本質(zhì)量越高。此外,#word 表示樣本單詞替換數(shù)量的平均值,表示著對抗樣本與原始樣本的相似度,反映被人類感知的輕易程度。由表2可知,本文方法替換的單詞數(shù)量更少,與原始樣本更接近,隱蔽性也就越強(qiáng)。
表2 自動評估結(jié)果
在人工評估中,從數(shù)據(jù)集中隨機(jī)抽取100 個原始樣本,生成相對于的對抗樣本并對兩者重新組合為一個新樣本集。由5 位通過國家英語四級等級考試的志愿者根據(jù)Likert 量表對每個對抗樣本進(jìn)行打分(1 ~5):是對抗樣本為1 分,可能是對抗樣本為2 分,保持中立態(tài)度為3 分,可能是原始樣本為4 分,是原始樣本為5 分。結(jié)果如表3表示,兩種方法都比較接近原始樣本,但本文方法更勝一籌。也就是說,從人類角度來看,大多數(shù)的對抗樣本與原始樣本具有相同的屬性,會更不容易被發(fā)現(xiàn)。
表3 人工評估結(jié)果
如圖3中,顯示了本文方法與DepAttack 方法生成對抗樣本示例。從表中可看出本文方法生成的對抗樣本質(zhì)量更好,更有效。
圖3 對抗樣本示例對比
本文通過利用HowNet 搜索尋找更多的替換詞,再經(jīng)過詞性、相似性、語法檢查和困惑度過濾后生成單詞級的擾動,產(chǎn)生良好的攻擊效果。在自動評估和人工評估下的結(jié)果表明本文方法同時保持了較小的對抗樣本分類精度和困惑度,證明了該方法的有效性。