張影
(安徽理工大學 計算機科學與工程學院,安徽 淮南 232001)
近年來,有研究發現在自然語言處理(Natural Language Processing,NLP)領域中,機器學習(Machine Learning,ML)模型容易受到一些合法但帶有微小擾動輸入所影響。這種影響會使得模型受到欺騙,做出錯誤的決策,而人類往往無法感知,這也引起了人們對其在文本分類、有毒內容檢測、情感分析等方面的安全性和完整性的高度關注。有研究指出,對抗樣本的質量與模型的魯棒性和泛化性能有密不可分的關系,因此越來越多的關于文本對抗樣本的研究專注于提高其質量。
雖然對抗樣本的研究早已在圖像領域涉及,但是在NLP領域的發展也不過六七年的時間,并且由于文本數據的離散特性,文本對抗樣本的生成仍是個的挑戰?,F有的NLP 攻擊方法根據擾動粒度的大小可分為字符級攻擊、單詞級攻擊和句子級攻擊三大類。在字符級對抗攻擊中,通常是對字符進行增加字符、刪除字符、交換字符等操作對文本進行擾動。Gao 等人在基于黑盒設置下進行攻擊。他們首先利用設計的評分函數對字符的重要性進行排序,再根據排序順序對字符進行擾動。然而,字符的修改很大程度上會出現語法錯誤、語句不通順的情況。句子級攻擊方法主要通過對原始句子進行轉述從而產生擾動。Iyyer 等人利用將輸入樣本進行轉述的方式達到對抗攻擊的效果。而這種對句子整體進行擾動的方法往往樣本的修改幅度較大,容易被察覺。單詞級的攻擊方法相對以上兩種攻擊方法來說,對抗樣本的語法正確性、語義相似性有所提升以及文本的修改率相對較小。Ren等人用輸入樣本中單詞與之相對應的同義詞進行替換生成對抗樣本,很好地保持了語義的一致性并且具有相對較低的單詞替換率。Jin 等人在兩種NLP 任務上進行攻擊,先對單詞重要性進行排序再對候選詞進行余弦相似度、詞性檢查、語義相似度篩選工作生成質量良好的對抗樣本。
然而現有的單詞級的擾動大部分是通過WordNet 搜索空間得到,能夠搜索到的同義詞的數量有限,不一定能找到合適的候選詞。HowNet是基于義原形成的數據庫,可以找到更多與語義有關的詞。因此,本文利用HowNet 語義知識庫尋找原始樣本中單詞的替換詞,再對替換詞進行多次過濾保留適合的替換詞,以此生成有效的對抗樣本。
1.1.1 文本對抗樣本
給定一個包含個樣本的語料庫數據集={,, …,x}和相對應的一組類別標簽={,, …,y}及一個預先訓練好的文本分類模型:→,它將輸入樣本語料庫映射到標簽集合。對于樣本∈,若要生成一個有效的對抗樣本x,應滿足(x)≠()=且x=+Δ的約束條件,Δ為添加的不可感知的擾動。圖1為文本對抗攻擊示意圖。

圖1 文本對抗攻擊示意圖
1.1.2 義原
第一,全面向污染宣戰,成效顯著。國務院先后發布實施大氣、水、土壤污染防治三大行動計劃,生態環境狀況明顯得到改善?!洞髿馐畻l》順利收官,全面完成空氣質量改善目標,京津冀、長三角、珠三角等區域PM2.5平均濃度分別下降39.6%、34.3%、27.7%。其中,北京超額實現“京60”目標,珠三角區域PM2.5平均濃度連續三年達標。全國地表水優良(I-III類)水質斷面比例增至67.9%,劣Ⅴ類降至8.3%。36個重點城市建成區的黑臭水體已基本消除。全面開展土壤污染狀況詳查,完成基本農田劃定工作,城市生活垃圾無害化處理率達97.14%,農村生活垃圾得到處理的行政村比例達74%。
在這一節中,將詳細介紹本文攻擊方法。具體來說,此攻擊可以分為三個步驟:單詞的重要性排序、生成候選替換詞和攻擊目標模型。在每次迭代中,攻擊首先從原始文本中選擇一個單詞,然后用與它有同一義原的單詞替換選定的單詞,以構建一個對抗樣本。本節的其余部分將詳細介紹本文方法的攻擊。圖2展示了本文攻擊算法示意圖。

圖2 本文攻擊算法示意圖
統計學處理 整理數據用Excel 2007軟件,數據處理用SPSS 19.0軟件,計數資料用百分數(%)表示,組間比較用χ2檢驗,等級資料采用Mann-Whitney 檢驗比較,P<0.05為差異有統計學意義。
腦梗死形成的主要原因包括有動脈管壁病損、血流動力學出現異常、血液成分改變等,血液粘滯性高,是腦梗死的主要危險因素[1]。彩色多普勒超聲和頸動脈血管超聲在臨床中為常用的影像學診斷方式,本次主要探究彩色多普勒超聲+頸動脈血管超聲聯合在診斷中的應用價值,研究如下:

(1)詞性(part-of-speech,PSO)過濾器。在NLP 任務中,一個基本任務是識別樣本中單詞的詞性,借助詞性標注器把它們分為動詞、形容詞、名詞等10 種詞性。為滿足對抗樣本的語法結構和流暢性,引入了PSO 過濾器,它可以清除掉C中與原始輸入文本中詞性不一致的候選詞,只保留詞性相同的候選詞,從而保證樣本的語法結構不被破壞。

這種生成候選替換詞方法與基于同義詞替換方法相比前者不僅能夠找到更多的候選詞,還可以在候選詞的數量和質量之間實現更好的平衡,由此可保留更多潛在的對抗樣本。
重要性分數越高對分類結果的影響就越高,根據單詞的重要性對單詞進行排序。此外,為保證生成的對抗樣本語法被破壞,借助停用詞集過濾掉像“in”“are”等對分類結果不起作用的沒有實際意義的詞。
義原作為人類語言學中的最小語義單位,不可分割,用于解釋單詞隱含的詞語信息。即一個單詞的含義可以用其義原的組成來表示。知網(HowNet)是最有名的一個義原知識庫,早以被應用于像情感分析、反向詞典、詞語表征學習等多個NLP 任務中。它已經為超過100 000 個英語單詞和漢字進行注釋,維護了16 種語義關系,而僅用了2 134 個義原的預定義集合。
為原始輸入文本中的單詞生成替代后候選詞是生成擾動的關鍵步驟,因為它會顯著影響對抗樣本的攻擊成功率及其生成質量。在此過程中采用基于義原的單詞替換方法,由義原的定義可知,它是指能夠準確表述某個單詞的含義,因此若多個詞被同一義原注釋,可直接互為替換。例如,單詞“movie”在HowNet 中的注釋為“produce”“shows”,而具有同樣注釋的單詞有“picture”“film”和“cinema”,這三個單詞就是單詞“movie”的候選替換詞。通過這種方式,為單詞w建立一個候選替換詞集合C,每一個候選替換詞用w表示。
(3)語法檢查過濾器。為了進一步維護對抗樣本的語法正確性,采用已有的語法檢查器去除可能會導致文本語法錯誤的候選替換詞w。
在執行攻擊目標模型時,按照公式(3)計算得到單詞w的替換順序,用原始單詞相匹配的候選詞w與之替換,并迭代的執行此操作,直到分類標簽改變即攻擊成功,或者替換詞數量達到上限即攻擊失敗。在本文中,替換上限為原始樣本中單詞能被修改的比例,設置為閾值。
其中,為原始輸入的干凈樣本,′為干凈樣本通過替換未知標記“UNK”得到的。對于干凈樣本的每個單詞的重要性得分由無標記依存正確率(UAS)和帶標記依存正確率(LAS)的變化計算得到的。如式(3)計算所示:
(2)詞嵌入相似性過濾器。對于每一個替換詞w∈C,通過反擬合方法將語言約束注入到向量空間中,計算單詞w與候選詞w之間的余弦相似度,并過濾掉余弦相似度小于閾值ε的詞。

上式中,UAS 表示標記關系的正確率,LAS 表示標記關系和關系標簽都相對應的正確率,Δ(,)表示UAS 的變化,Δ(,)表示LAS 的變化,是控制依賴弧及其標簽的相對重要性的系數。
輸入:原始樣本x=w,w,…,w,…,w,替換上限,目標模型

1.2.3 攻擊目標模型
對于對抗樣本而言,最根本的目的是成功攻擊目標模型使其判斷錯誤。然而,為了生成質量良好的對抗樣本,僅誤導模型分類錯誤還遠遠不夠,還需要滿足單詞的正確性、語法的正確性以及語義的相似性,這樣才不容易被人類察覺。因此,對于每一個候選替換詞w,采用不同種類的過濾器過濾掉不能滿足要求的詞,旨在生成攻擊成功率較高且不易感知的對抗樣本。
(4)困惑度過濾器。借助GPT-2 計算候選替換詞w的和 ix之間的困惑度差值,并給其設置一定的閾值。其中,x為樣本語句中第個單詞被w替換后的文本。
算法:基于單詞替換的文本對抗樣本攻擊算法
輸出:對抗樣本x

本文實驗的主要環境采用Windows10、Python3.7,深度學習模塊使用PyTorch1.4,具如表1所示。

表1 實驗環境設置
在文本分類任務中,數據集選用PTB-SD-3.3.0。在該文本數據集中使用第2 ~21 節作為訓練集,第22 節作為開發集,第23 節作為測試集。目標模型選用兩種解析器:Biaffine 解析器和Stack-Pointer 解析器。對于相同的數據集和目標模型,選用DepAttack 攻擊方法與本文方法進行比較。
一個有效的對抗樣本不僅要使得模型錯誤預測分類標簽,還應不易被感知。為滿足約束條件,從兩個方面評估對抗樣本的質量,分別為對抗樣本分類精度(Classification Accuracy,CA)和困惑度(Perplexity,PP)。其中分類精度為被模型正確分類對抗樣本占輸入原始樣本的比例,值越小誤導模型判斷力的能力越強,也就越有效;困惑度用于衡量對抗樣本的流利程度,值越小越貼近人類是敘述手法越不易被察覺。

其中,success_count 為攻擊目標模型成功的對抗樣本的數量,sum_count 為輸入模型的干凈樣本的總數量。
根據如上的實驗設置,在自動評估方面的主要結果如圖表2所示。相較于DepAttack 方法,本文所采用的方法使得對抗樣本的分類準確率(CA)和困惑度(PP)都有所下降。如前所述,兩者的值越小,對抗樣本質量越高。此外,#word 表示樣本單詞替換數量的平均值,表示著對抗樣本與原始樣本的相似度,反映被人類感知的輕易程度。由表2可知,本文方法替換的單詞數量更少,與原始樣本更接近,隱蔽性也就越強。

表2 自動評估結果
在人工評估中,從數據集中隨機抽取100 個原始樣本,生成相對于的對抗樣本并對兩者重新組合為一個新樣本集。由5 位通過國家英語四級等級考試的志愿者根據Likert 量表對每個對抗樣本進行打分(1 ~5):是對抗樣本為1 分,可能是對抗樣本為2 分,保持中立態度為3 分,可能是原始樣本為4 分,是原始樣本為5 分。結果如表3表示,兩種方法都比較接近原始樣本,但本文方法更勝一籌。也就是說,從人類角度來看,大多數的對抗樣本與原始樣本具有相同的屬性,會更不容易被發現。

表3 人工評估結果
如圖3中,顯示了本文方法與DepAttack 方法生成對抗樣本示例。從表中可看出本文方法生成的對抗樣本質量更好,更有效。

圖3 對抗樣本示例對比
本文通過利用HowNet 搜索尋找更多的替換詞,再經過詞性、相似性、語法檢查和困惑度過濾后生成單詞級的擾動,產生良好的攻擊效果。在自動評估和人工評估下的結果表明本文方法同時保持了較小的對抗樣本分類精度和困惑度,證明了該方法的有效性。