本發(fā)明涉及一種對(duì)抗文本生成方法,尤其涉及一種基于注意力機(jī)制和局部敏感哈希的黑盒對(duì)抗文本生成方法。
背景技術(shù):
1、近年來,自然語言處理領(lǐng)域發(fā)展迅速,尤其是gpt-4等大語言模型的出現(xiàn)更是將該領(lǐng)域的發(fā)展推到了一個(gè)新高度,自然語言處理技術(shù)也因此被廣泛應(yīng)用到情感分析、文本生成、多輪對(duì)話系統(tǒng)等一系列真實(shí)場(chǎng)景中。然而,已有研究表明,現(xiàn)有自然語言處理模型面臨著嚴(yán)峻的對(duì)抗攻擊威脅。
2、對(duì)抗攻擊是一種模型推理階段的安全威脅,攻擊者通過向輸入樣本添加不影響人類判斷的微小噪聲來構(gòu)造對(duì)抗樣本,從而使人工智能模型產(chǎn)生錯(cuò)誤輸出。具體而言,以文本分類任務(wù)為例,給定由n個(gè)詞構(gòu)成的原始文本x=[w1,w2,…,wn],文本分類模型f對(duì)其正確分類,即f(x)=y(tǒng),對(duì)抗攻擊中,攻擊者向x添加特殊的微小噪聲∈以生成對(duì)抗文本x*=x+∈,對(duì)人而言,x*和x在語義上相似,卻被f錯(cuò)誤分類,即f(x*)≠f(x)。
3、近年來,為驗(yàn)證現(xiàn)有自然語言處理模型面對(duì)對(duì)抗樣本的魯棒性、發(fā)現(xiàn)其存在的潛在安全漏洞,研究者們紛紛提出了不同的對(duì)抗文本生成方法,但受限于文本樣本自身的特殊性(離散性、存在語義信息、易被人眼察覺),要在僅能獲得目標(biāo)模型輸出標(biāo)簽的黑盒場(chǎng)景下生成具備高語義相似度、低擾動(dòng)率的對(duì)抗文本仍面臨巨大挑戰(zhàn)。
4、目前,根據(jù)對(duì)目標(biāo)模型的訪問能力的不同,現(xiàn)有針對(duì)自然語言處理模型的對(duì)抗攻擊方法可分為白盒攻擊和黑盒攻擊方法。其中,白盒攻擊方法是指攻擊者對(duì)目標(biāo)模型具有完全的訪問能力,能夠獲取到目標(biāo)模型的所有信息,包括模型架構(gòu)、參數(shù)、梯度等,并利用這些信息來生成對(duì)抗文本,因此,這類攻擊方法通常能夠生成具備強(qiáng)攻擊能力的對(duì)抗樣本。而在黑盒攻擊場(chǎng)景下,攻擊者只能獲取到目標(biāo)模型對(duì)輸入文本的概率分布(稱為軟標(biāo)簽設(shè)置)或最終標(biāo)簽(稱為硬標(biāo)簽設(shè)置),因此,這類攻擊方法產(chǎn)生的對(duì)抗文本的攻擊能力一般比白盒攻擊產(chǎn)生的對(duì)抗文本的低。但是,由于黑盒攻擊方法不需要獲取目標(biāo)模型的信息,黑盒攻擊方法更適合應(yīng)用于真實(shí)世界中,用以驗(yàn)證現(xiàn)有人工智能系統(tǒng)的魯棒性。
5、與軟標(biāo)簽設(shè)置相比,在僅能獲得目標(biāo)模型輸出的最終標(biāo)簽的硬標(biāo)簽設(shè)置下生成對(duì)抗文本具有更大的挑戰(zhàn)性。目前,研究者們已經(jīng)提出了一些在硬標(biāo)簽設(shè)置下的黑盒對(duì)抗文本生成方法。例如:maheshwary等人首次提出了“初始化-搜索空間縮減-基于種群的優(yōu)化”的三階段策略。其中第三階段:“基于種群的優(yōu)化”階段采用遺傳算法,通過“選擇-雜交-變異”三個(gè)過程的迭代,在保證對(duì)抗攻擊能力的前提下,盡可能使對(duì)抗文本向目標(biāo)模型的決策邊界靠近,從而優(yōu)化對(duì)抗文本和原始文本之間的語義相似度。但是,基于遺傳算法的優(yōu)化過程需要維持大量的候選樣本,導(dǎo)致該方法需要向目標(biāo)模型進(jìn)行大量查詢,因而無法滿足在查詢次數(shù)有限的真實(shí)場(chǎng)景下驗(yàn)證自然語言處理模型的魯棒性的需求。liu等人提出了sspattack方法,該方法沿用了maheshwary等人所提出的隨機(jī)初始化策略,并提出了一個(gè)迭代執(zhí)行“移除不必要替換詞”和“將替換詞推向原詞”兩個(gè)過程的優(yōu)化策略。liu等人提出了hqa-attack,該方法是對(duì)sspattack的改進(jìn)。
6、但這些方法依然存在以下問題:
7、(1)現(xiàn)有硬標(biāo)簽設(shè)置下的黑盒對(duì)抗文本生成方法,普遍存在需要對(duì)目標(biāo)模型進(jìn)行大量查詢的問題,無法滿足在查詢次數(shù)有限的真實(shí)場(chǎng)景下驗(yàn)證自然語言處理模型魯棒性的需求。sspattack和hqa-attack等在對(duì)抗文本生成過程中只需要維持一個(gè)候選樣本的方法,雖然較需要維持多個(gè)候選樣本的基于種群的優(yōu)化方法在一定程度上減少了對(duì)目標(biāo)模型的查詢次數(shù),但其所需的查詢次數(shù)仍然有縮減空間。
8、(2)與maheshwary等人提出的方法相比,sspattack和hqa-attack在對(duì)抗文本生成過程中只需要維持一個(gè)候選樣本,因而在一定程度上減少了對(duì)目標(biāo)模型的查詢次數(shù),提高了在真實(shí)場(chǎng)景下驗(yàn)證自然語言模型魯棒性的可用行。但是,優(yōu)化過程中采用了大量的的隨機(jī)選擇策略,這在一定程度上引發(fā)了得到次優(yōu)解及增加對(duì)目標(biāo)模型的查詢次數(shù)的問題,因而對(duì)抗文本的語義相似度和擾動(dòng)率有待進(jìn)一步提升。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明的目的就在于提供一種解決上述問題,實(shí)現(xiàn)具有硬標(biāo)簽設(shè)置的黑盒場(chǎng)景下以盡量少的查詢次數(shù)生成具備高語義相似度、低擾動(dòng)率的對(duì)抗文本,從而滿足在查詢次數(shù)有限的真實(shí)場(chǎng)景下驗(yàn)證現(xiàn)有自然語言處理模型在面臨對(duì)抗攻擊時(shí)的魯棒性的,基于注意力機(jī)制和局部敏感哈希的黑盒對(duì)抗文本生成方法。
2、為了實(shí)現(xiàn)上述目的,本發(fā)明采用的技術(shù)方案是這樣的:一種基于注意力機(jī)制和局部敏感哈希的黑盒對(duì)抗文本生成方法,用于根據(jù)原文本x=[w1,…,wi,…,wn]生成針對(duì)目標(biāo)模型f的對(duì)抗文本,wi為x中位置i的詞,1≤i≤n,原文本x的真實(shí)分類標(biāo)簽為y,目標(biāo)模型f用于輸出文本的分類識(shí)別結(jié)果f(·),包括以下步驟;
3、s1,基于注意力機(jī)制初始化對(duì)抗文本,得到第二對(duì)抗文本x2,包括步驟s11~s15;
4、s11,依次處理x中每個(gè)詞,若wi的詞性為名詞、動(dòng)詞、形容詞或副詞,則將其標(biāo)記為可擾動(dòng)詞,將i添加到初始可擾動(dòng)詞位置列表i中,第j次添加的位置i標(biāo)記為hj,得到i=[h1,…,hj,…,hm],1≤j≤m,m為x中可擾動(dòng)詞的總數(shù);
5、s12,將x輸入到預(yù)訓(xùn)練的注意力模型a中,得到每個(gè)hj對(duì)應(yīng)的詞的注意力分?jǐn)?shù)歸一化處理得到的歸一化值ej,構(gòu)成歸一化表e=[e1,…,ej,…,em];
6、s13,以e為概率分布對(duì)i中元素進(jìn)行非重復(fù)采樣,得到第一可擾動(dòng)詞位置列表為i1中第j個(gè)元素;
7、s14,令第一對(duì)抗文本x1=x,按i1順序,對(duì)x1中的可擾動(dòng)詞,用其同義詞進(jìn)行替換,替換后用目標(biāo)模型f對(duì)x1識(shí)別,得到識(shí)別結(jié)果f(x1);
8、s15,判斷f(x1),若f(x1)=y(tǒng),重復(fù)s14直至f(x1)≠y;
9、若f(x1)≠y,將此時(shí)x1標(biāo)記為第二對(duì)抗文本x2,其中n個(gè)詞依次標(biāo)記為w′1~w′n,得到x2=[w′1,…,wi′,…,w′n],wi′為x2中位置i的詞;
10、s2,刪除第二對(duì)抗文本x2中的冗余噪聲,得到第三對(duì)抗文本x3;
11、s3,基于局部敏感哈希優(yōu)化第三對(duì)抗文本x3,得到最優(yōu)對(duì)抗文本x*,包括步驟s31~s34;
12、s31,確定優(yōu)化順序,包括步驟s31.1~s31.4;
13、s31.1,對(duì)x3中每個(gè)詞,若wi′≠wi,則將i添加到第二可擾動(dòng)詞位置列表i2中,第k次添加的位置i標(biāo)記為得到為x3與x不相同的詞的總數(shù);
14、s31.2,對(duì)找到x3和x中對(duì)應(yīng)的詞,計(jì)算兩詞的余弦距離得到余弦距離列表
15、s31.3,計(jì)算的采樣概率得到采樣概率列表
16、s31.4,以p為概率分布對(duì)i2中元素進(jìn)行非重復(fù)采樣,得到第三可擾動(dòng)詞位置列表為i3中第k個(gè)元素;再依次將x3中位置為的詞標(biāo)記為得到x3中被擾動(dòng)詞的優(yōu)化順序列表
17、s32,搜索過渡詞,包括s32.1~s32.5;
18、s32.1,將x中對(duì)應(yīng)的詞記為用其同義詞集生成候選文本列表r為同義詞總數(shù),為中第r個(gè)同義詞,為用替換x3中得到的候選文本;
19、將sub輸入到預(yù)訓(xùn)練的句級(jí)向量編碼模型中,得到句級(jí)向量列表sen=[v(1),…,v(r),…,v(r)],v(r)為句級(jí)向量編碼模型對(duì)進(jìn)行編碼得到的句級(jí)向量;
20、s32.2,將sen和輸入到局部敏感哈希模型中,得到包含∈個(gè)簇的集合b={b1,…,bl,…,b∈},1≤l≤∈,bl為第l個(gè)簇,包含θ個(gè)候選文本中的位置為的詞,1≤s≤θ,是bl中的第s個(gè)詞;
21、s32.3,從每個(gè)bl中隨機(jī)選擇一詞記為構(gòu)成初始過渡詞候選列表從中選取使得所生成候選文本滿足攻擊要求且與原文本x語義相似度最高的詞作為初始過渡詞從所在的簇中,找出使得所生成候選樣本滿足對(duì)抗攻擊要求且與原文本x語義相似度最高的詞作為最終過渡詞
22、s32.4,用替換x3中的得到候選文本并計(jì)算與原文本x間的語義相似度分?jǐn)?shù)
23、s33,估計(jì)更新方向,包括步驟s33.1~s33.5;
24、s33.1,用的同義詞集生成候選文本列表為中第r個(gè)同義詞,為用替換x3中得到的候選文本;將m輸入到預(yù)訓(xùn)練的句級(jí)向量編碼模型中,得到句級(jí)向量列表為句級(jí)向量編碼模型對(duì)進(jìn)行編碼得到的句級(jí)向量;
25、s33.2,將和輸入到局部敏感哈希模型中,得到包含β個(gè)簇的集合1≤q≤β,為中第q個(gè)簇,包含η個(gè)候選文本中的位置為的詞,1≤t≤η,是中的第t個(gè)詞;
26、s33.3,從每個(gè)中隨機(jī)選擇一詞記為構(gòu)成候選詞列表用中的每個(gè)分別替換x3中的得到候選文本列表是用替換x3中的得到的候選文本;
27、s33.4,計(jì)算中的每個(gè)與x的語義相似度分?jǐn)?shù)得到語義相似度分?jǐn)?shù)列表cr=[c1,…,cq,…,cβ],并計(jì)算cq的歸一化后語義相似度分?jǐn)?shù)差值αq,其中,是對(duì)的值取絕對(duì)值;
28、s33.5,計(jì)算更新方向向量u;
29、
30、式中,為中的詞向量,為x3中的詞向量;
31、s34,更新第三對(duì)抗文本x3,得到最優(yōu)對(duì)抗文本x*,包括s34.1~s34.4;
32、s34.1,中第r個(gè)詞的詞向量為計(jì)算和u之間的余弦距離,r個(gè)詞共r個(gè)余弦距離,將中r個(gè)詞按余弦距離降序重排,得到同義詞列表為q中第r個(gè)詞;
33、s34.2,按q內(nèi)詞的順序,依次用替換x3中的得到候選文本計(jì)算和x之間的語義相似度分?jǐn)?shù)的對(duì)抗攻擊分?jǐn)?shù)若且則用替換x3中的否則,保持x3中的不變;
34、s34.3,按內(nèi)元素順序,依次對(duì)x3中每個(gè)執(zhí)行步驟s32~s34.2;
35、s34.4,迭代步驟s2~s34.3共τ次,將最終得到的x3作為最優(yōu)對(duì)抗文本x*。
36、作為優(yōu)選:所述注意力模型a為hierarchical?attention?networks,所述句級(jí)向量編碼模型為universal?sentence?encoder。
37、作為優(yōu)選:s14中,x1中對(duì)應(yīng)的可擾動(dòng)詞,用同義詞替換的方法為,將x1中對(duì)應(yīng)的可擾動(dòng)詞標(biāo)記為從的同義詞集中隨機(jī)選擇一個(gè)同義詞替換x1中的
38、作為優(yōu)選:步驟s2具體為,
39、s21,根據(jù)下式找到一最優(yōu)詞w*;
40、
41、式中,為argmax函數(shù),x′(wi)為用wi替換x2中的wi′后得到的候選文本,s(·,·)為語義相似度分?jǐn)?shù),adv(f,x,x′(wi))為x′(wi)的對(duì)抗攻擊分?jǐn)?shù),當(dāng)f(x′(wi))≠f(x)時(shí),adv(f,x,x′(wi))=1,否則,adv(f,x,x′(wi))=0;
42、s22,將w*在x中位置記為o,并將x2中位于位置o的詞記為w*′,用w*替換x2中的w*′得到候選文本x′(w*),計(jì)算x′(w*)的對(duì)抗攻擊分?jǐn)?shù)adv(f,x,x′(w*));
43、s23,判斷adv(f,x,x′(w*))的值;
44、若adv(f,x,x′(w*))=1,則用w*替換x2中的w*′,并重復(fù)執(zhí)行步驟s21~s22,直至adv(f,x,x′(w*))=0;
45、若adv(f,x,x′(w*))=0,則將此時(shí)x2作為第三對(duì)抗文本x3。
46、作為優(yōu)選:s31.2中,計(jì)算余弦距離的方法為;
47、按照將x3中對(duì)應(yīng)位置的詞的詞向量標(biāo)記為將x中對(duì)應(yīng)位置的詞的詞向量標(biāo)記為計(jì)算余弦距離其中,cos(·,·)為余弦相似度函數(shù);
48、s31.3,根據(jù)下式計(jì)算的采樣概率
49、
50、作為優(yōu)選:s32.3中,根據(jù)下式選取
51、
52、式中,argmax[·]為argmax函數(shù),為用替換x3中的后得到的候選文本,s(·,·)為語義相似度分?jǐn)?shù),為的對(duì)抗攻擊分?jǐn)?shù),當(dāng)時(shí),否則
53、
54、將所在的簇記為簇根據(jù)下式得到最終過渡詞
55、
56、式中,是用替換x3中的后得到的候選文本,是的對(duì)抗攻擊分?jǐn)?shù),當(dāng)時(shí),否則,
57、本發(fā)明的思路為:
58、(1)本發(fā)明在初始化對(duì)抗文本階段引入注意力機(jī)制,以獲取可擾動(dòng)詞對(duì)于原文本的重要性,并根據(jù)重要性由高到低依次對(duì)可擾動(dòng)詞添加擾動(dòng),從而獲得具備對(duì)抗攻擊能力的初始對(duì)抗文本。
59、(2)本發(fā)明在優(yōu)化對(duì)抗文本階段的搜索過渡詞和估計(jì)更新方向兩個(gè)過程中引入局部敏感哈希方法。在搜索過渡詞過程中,先按句級(jí)向量相似性對(duì)所有候選文本進(jìn)行分簇,再?gòu)拿看刂羞x擇候選文本用以查詢目標(biāo)模型,然后選擇滿足對(duì)抗攻擊需求且與原文本的語義相似度最高的候選文本所在的簇中的所有候選文本,再次用以查詢目標(biāo)模型,最后將滿足對(duì)抗攻擊需求且與原文本的語義相似度最高的候選文本作為新的對(duì)抗文本,并將其中對(duì)應(yīng)的替換詞確定為過渡詞。在估計(jì)更新方向過程中,先按句級(jí)向量相似性對(duì)所有候選文本進(jìn)行分簇,再?gòu)拿看刂羞x擇候選文本用以獲取所選候選文本與原文本之間的語義相似度分?jǐn)?shù),從而根據(jù)這些語義相似度分?jǐn)?shù)獲取更新方向向量。
60、與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點(diǎn)在于:
61、(1)本發(fā)明在初始化對(duì)抗文本階段引入注意力機(jī)制,從而根據(jù)重要性由高到低依次對(duì)可擾動(dòng)詞添加擾動(dòng),與現(xiàn)有方法中的隨機(jī)初始化策略相比,本發(fā)明能夠有效減少對(duì)抗文本的擾動(dòng)詞的個(gè)數(shù),即降低對(duì)抗文本的擾動(dòng)率、提高對(duì)抗文本的不可察覺性。
62、(2)本發(fā)明在優(yōu)化對(duì)抗文本階段的搜索過渡詞和估計(jì)更新方向兩個(gè)過程中引入局部敏感哈希方法,從而實(shí)現(xiàn)按句級(jí)向量相似性對(duì)候選文本進(jìn)行分簇,再?gòu)拿看刂羞x擇候選文本用以后續(xù)優(yōu)化過程,與現(xiàn)有方法中的隨機(jī)選擇候選文本策略相比,本發(fā)明能夠減少得到次優(yōu)解的風(fēng)險(xiǎn),且能夠更高效地找到具備更高語義相似度的最優(yōu)對(duì)抗文本。
63、(3)本發(fā)明引入的注意力機(jī)制和局部敏感哈希方法,前者通過優(yōu)先擾動(dòng)對(duì)原文本重要性高的詞減少初始化對(duì)抗文本階段對(duì)目標(biāo)模型的查詢次數(shù),后者通過按句級(jí)向量相似性對(duì)候選文本分簇減少對(duì)抗文本優(yōu)化階段對(duì)目標(biāo)模型的查詢次數(shù),兩者的結(jié)合,能夠有效降低整個(gè)對(duì)抗文本生成過程對(duì)目標(biāo)模型的查詢次數(shù)。