王正佳,李 霏,姬東鴻,滕 沖
(武漢大學 國家網(wǎng)絡(luò)安全學院 空天信息安全與可信計算教育部重點實驗室,湖北 武漢 430072)
立場檢測是指分析確定文本作者對目標(如實體、事件、觀點等)的立場,通常將立場分為三類,“支持(favor)”“反對(against)”和“其他(none)”[1]。該任務(wù)屬于文本分類任務(wù),給定目標(target)和文本(text),判斷文本作者對該目標的立場(stance)類別。立場檢測是輿情分析中的重要手段。隨著互聯(lián)網(wǎng)的快速發(fā)展,人群越來越多地在社交媒體平臺傳播和獲取信息,并針對于特定熱點發(fā)表看法、表明立場。通過立場檢測,掌握社交媒體用戶對于重要目標的立場,是輿情風險控制的重要環(huán)節(jié)。比如英國數(shù)據(jù)公司劍橋分析曾在2016年美國大選中借助立場檢測手段判斷選民對候選人的立場,并精準投放廣告影響選民立場。因此,利用立場檢測掌握社交媒體上民眾對于特定事件的立場,反制敵對勢力的輿論引導,關(guān)乎網(wǎng)絡(luò)輿情安全乃至國家安全。
立場檢測方法早期主要是基于特征工程的機器學習方法,基于詞向量、詞頻等信息,利用SVM、詞袋模型、隨機森林、決策樹等方法進行立場分類[2-3]。隨著深度學習方法的興起,特征提取從人工轉(zhuǎn)為自動學習,基于LSTM,CNN以及基于大規(guī)模預(yù)訓練模型的方法取得了相當好的效果[4-5]。在特征的選取方面,提取并融合語義特征、情感特征、主題特征是目前主流的模型設(shè)計思路。通過特征提取網(wǎng)絡(luò)獲取文本或主題的句向量是諸多方法的基礎(chǔ),如近期采用bert模型獲取文本和主題句向量的方法[6-7]。通常獲取bert句向量有兩種手段,其一使用bert特殊符號[CLS]的隱層狀態(tài)作為句向量,該符號為bert自帶添加于句首,包含一定的全句信息;其二則將句子中每個詞對應(yīng)的bert隱層狀態(tài)進行融合,如對每個詞隱層狀態(tài)求平均作為句向量。
提示學習是自然語言處理最近興起的方法,通過在輸入中添加若干提示(prompt),提高預(yù)訓練模型的性能[8-10]。與過去的微調(diào)(tuning)方法不同,思路上提示學習方法不再是讓模型去適應(yīng)任務(wù),而是通過構(gòu)造合適的提示使任務(wù)向模型靠攏,保留原有的分類器。提示學習方法發(fā)揮預(yù)訓練模型自身學習的知識,通過提示引入語義引導模型生成結(jié)果,或者配合提示進行微調(diào)訓練。掩碼語言模型(Masked Language Model,MLM)是提示學習中常用的預(yù)訓練模型類型(如bert模型)[11-12],通?;贛LM的提示學習提示模板中只有一個掩碼位置,然而中文詞匯或詞組常常超過一個字(詞),無法全部填入掩碼位置,因此常常只將第一個字(詞)填入。比如,“作者的態(tài)度是__。”,假如態(tài)度是“支持”,由bert分詞器分詞后包含兩個字“支”和“持”,只有一個掩碼位置,則通常只填入第一個字“支”,但僅填入一個字不利于形成通順語義。
針對前文所述要點,該文提出了基于多掩碼與提示句向量融合分類立場檢測模型。首先,對句向量的生成方法進行改進,構(gòu)造提示模板利用bert生成句向量;其次,在結(jié)構(gòu)上進行創(chuàng)新,設(shè)計了多掩碼提示學習分類結(jié)構(gòu),支持多字填入,并構(gòu)造合適的模板將提示句向量和多掩碼提示學習相結(jié)合,提示句向量專注于對文本語義的聚合,通過訓練新分類器對立場進行隱式的分類,多掩碼提示學習分類利用具體的答案器,顯式判斷立場,同時答案詞能為句向量引入立場詞信息,加強句向量與具體的如“支持”等立場詞的聯(lián)系。在NLPCC中文立場分類數(shù)據(jù)集上進行了實驗。與相關(guān)基線模型相比,該方法效果明顯,取得了79.3的總F1值,與最優(yōu)方法接近。
2016年Mohanmmad等[13]從推特上收集文本構(gòu)建了立場檢測英文數(shù)據(jù)集,SemEval-2016 Task6立場檢測任務(wù)使用了該數(shù)據(jù)集作為任務(wù)數(shù)據(jù)集。Xu等[1]構(gòu)建了基于中文微博文本的立場檢測數(shù)據(jù)集,并發(fā)布于NLPCC-2016會議的立場檢測任務(wù)。
早期的立場檢測方法基于特征工程利用機器學習方法進行分類。Dian等[2]提出基于多文本特征融合的立場檢測方法,綜合詞袋特征、共現(xiàn)特征、詞向量等多種特征信息,利用支持向量機(Support Vector Machine,SVM)、隨機森林等多種方法進行立場分類。在Zhang等[3]的工作中,提取了情感詞和主題詞作為特征詞,再利用對應(yīng)的詞向量使用SVM進行分類。
深度學習興起后利用深度網(wǎng)絡(luò)提取特征進行立場檢測成為主流。Bai等[4]設(shè)計了基于雙向長短時記憶網(wǎng)絡(luò)(Bidirectional Long Short Term Memory Network,BiLSTM)與卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)進行特征提取,經(jīng)過注意力池化,再連接特征嵌入進行特征融合并分類的方法。Du等[5]提出了特定目標的注意力網(wǎng)絡(luò)立場檢測方法,利用雙向循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)編碼文本,訓練目標特征嵌入,將文本與目標信息進行內(nèi)積計算融合特征,訓練分類器分類。預(yù)訓練模型出現(xiàn)后相關(guān)方法取得了更好的效果,由bert生成的句向量相比此前的RNN相關(guān)方法優(yōu)勢明顯。Wang等[6]設(shè)計的Bert-Condition-CNN模型采用bert的[CLS]作為句向量,構(gòu)建話題集與句向量間的關(guān)系矩陣,用CNN提取特征,對立場進行分類。Geng等[7]利用bert獲取話題和文本表示向量,其中話題句向量由詞隱層狀態(tài)平均得到,并用卷積注意力融合特征,提取文本的詞語級與句子級情感特征,將特征拼接進行分類,取得了NLPCC2016數(shù)據(jù)集上目前的最佳結(jié)果。
提示學習方法通過合適的提示將下游任務(wù)轉(zhuǎn)化為適合模型的形式,通常無需訓練新分類器,可以在原分類器上微調(diào),在監(jiān)督任務(wù)以及少樣本、零樣本任務(wù)中均有不錯的表現(xiàn)[8]。在提示形式方面,Petroni等[11]提出的LAMA模型定義了完形填空形式的提示模板,Li等[14]使用了前綴形式的提示;在答案設(shè)計方面,Schick等[12]使用了人工設(shè)計的答案器(verbalizer),Hambardzumyan等[15]提出的WARP框架則使用了新定義的一組嵌入作為答案器。掩碼語言模型(Masked Language Model,MLM)是語言模型的一種,最具有代表性的是bert模型[16],在預(yù)訓練過程中語料被隨機掩蔽部分位置,再由模型還原。單向生成語言模型(Left-to-Right LM,如GPT-3模型[10])、編解碼結(jié)構(gòu)語言模型(Encoder-Decoder LM,如T5模型[17])、前綴語言模型(Prefix LM,如UniLM1模型[18])也廣泛應(yīng)用于提示學習。該文使用了完形填空形式的提示模板以及人工設(shè)計的答案器。
對于立場檢測任務(wù),輸入是一個數(shù)據(jù)集D={(x1,t1),(x2,t2),…,(xn,tn)},x表示一個句子,t表示特定目標,D包含n個樣本;對于每一個樣本,輸出該文本x對于目標t的立場標簽y,其中y∈Y={favor,against,none},依次表示“支持”“反對”和“其他”三種類別。例如對于句子“春節(jié)放鞭炮污染環(huán)境,建議禁止”和目標“春節(jié)放鞭炮”,應(yīng)輸出立場y=against。
如圖1所示,多掩碼與提示句向量融合立場檢測模型由四層組成。輸入層輸入文本(text)和目標(target);提示層是一個經(jīng)過設(shè)計的提示模板,將文本和目標填入,并包含若干掩碼位置[mask];bert編碼層得到模板填入內(nèi)容后的句子,在每個詞的位置進行編碼;融合分類層包括三個部分,圖1左側(cè)的bert提示句向量分類,由新訓練的分類器分類;右側(cè)通過答案器進行分類,不需要訓練新分類器;最后由中間的融合概率分類部分對句向量分類和答案器分類結(jié)果進行融合,計算損失聯(lián)合優(yōu)化模型。
圖1 多掩碼與提示句向量融合立場檢測模型
提示層由一個完形填空形式的提示模板構(gòu)成,如圖1所示。模板中的[text]和[target]位置對應(yīng)填入數(shù)據(jù)樣本中的文本和目標。
在“句子“[text]”的含義是[mask]”這一句中,[mask]掩碼位置用于句向量的生成,提示模板要求模型在[mask]處總結(jié)句子含義,以此生成能夠代表[text]語義的句向量。
在“對于主題“[target]”表達了[mask][mask]態(tài)度”這一句中,兩個[mask]掩碼位置對應(yīng)于答案器中的答案詞,如“反”和“對”。
由于bert模型在其注意力部分允許模型同時看到前后所有位置的信息,因此句向量生成位置雖然在前,也能夠捕獲主題信息和答案器引入的信息。
該文使用預(yù)訓練模型bert作為提示學習框架中的掩碼語言模型。對于句子x,由bert分詞器對x進行分詞,得到n個單詞,并自動在句子頭尾分別添加[CLS]和[SEP]特殊符,得到x'。將分詞處理后的句子輸入bert模型,bert模型對上下文信息進行綜合,在每一個詞的位置計算隱層表示,得到全句編碼H:
H=BERT(x')
(1)
其中,H={H0,H1,…,Hn+1}。bert包括多個隱層,對于第i位置的詞,其對應(yīng)的隱層可以表示為Hi={h0,h1,…,hj},j表示有j層隱藏狀態(tài)。
2.5.1 bert提示句向量分類
如圖1,在第一個[mask]位置獲取bert提示句向量。此位置通過提示模板的構(gòu)造,引導模型概括句子含義。相比于采用[CLS]隱藏狀態(tài)的方法,提示句向量語義指向性更強;而相比于對句子所有詞的隱藏表示取平均的做法,bert提示句向量利用了模型自身的注意力機制,避免了簡單平均造成的重要信息權(quán)重不足。該bert提示句向量記為s0,s0由隱藏狀態(tài)的后k層求平均獲得,即:
(2)
其中,hi∈H0,k≤j。該文采用了k=4,即后四層隱藏狀態(tài)的平均。
如圖2所示,提示句向量由bert在圖中第一個[mask]位置給出,bert聯(lián)系上下文綜合文本、目標和立場詞信息,將特征融合。圖2中的模板是簡略示意,實際模板是符合語義的完整句子(如圖1),相比于簡單拼接,使用提示模板能夠降低模型的困惑。
圖2 提示句向量的原理示意圖
該文采用了一個雙層前向神經(jīng)網(wǎng)絡(luò)(Feed Forward Neural Networks,FFNN)作為分類器,將bert提示句向量輸入分類器得到句向量分類概率分布p0,即:
o=relu(W0·s0+b0)
(3)
p0=softmax(W1·o+b1)
(4)
其中,W0,b0和W1,b1分別表示第一層與第二層的矩陣與偏置,使用了relu激活函數(shù)。
2.5.2 多掩碼提示學習分類
定義2:提示模板T(·),將x映射到帶有若干掩碼位置的完形填空句子中。一個模板可以有多個文本填充位置,T(·)的輸入可能是多個句子,如圖1。
前文所引彭紹升《儒行述》中的徐枋小傳,在其篇末是這樣表明史源的:“《居易堂集》《蘇州府志》?!笔莿t,傳主的自我人生選擇,特別是詩文集中的自我抒懷和陳情,對身后為其寫作傳記、行狀者,還是起著至關(guān)重要的作用的。對此,徐枋本人是深信不疑的,這在其自編《居易堂集》的時候,就表現(xiàn)得尤為突出,在《自序》中,他這樣說道:
定義3:答案器v(·),將分類標簽y映射到具體的詞組上,經(jīng)過分詞后詞數(shù)量可能大于1,因此定義v(y)={w1,w2,…,wm},m的大小也對應(yīng)于模板中掩碼的數(shù)量,用vk(y)表示wk,wk∈v(y),即v(y)中第k個單詞。以圖1中后半句為例,由于bert按單個漢字分詞,v(y=favor)={支,持},長度為2即m=2,對應(yīng)有v1(y=favor)=w1=支,v2(y=favor)=w2=持。不同標簽對應(yīng)的答案詞分詞后長度不一致,則使用填充符補足長度。對于不同類別答案器的詞組確保是不同的。
圖3給出了單獨使用的多掩碼提示學習分類示意圖,與圖1比較,多掩碼提示學習分類與提示句向量分類能夠自然地結(jié)合。
圖3 多掩碼提示學習分類示意圖
對于掩碼位置k,分類標簽為y的概率可以表示為:
(5)
該過程使用模型本身的分類器,無需訓練新分類器,記bert分類器為bert_cf。記fv(·)表示根據(jù)答案器v(·)所定義的字選取這些字對應(yīng)位置的值,如圖3中答案器所示,fv(·)從詞表概率分布中選出答案詞對應(yīng)的字的概率,以此作為分類依據(jù)。向bert分類器輸入最后一層隱藏狀態(tài),同2.4節(jié),將圖1中后兩個掩碼位置概率分布分別記為p1,p2,可得:
p1=softmax(fv(bert_cf(H1[-1])))
(6)
p2=softmax(fv(bert_cf(H2[-1])))
(7)
顯然不同的[mask]位置都可以獨立完成分類。
2.5.3 融合概率分類
(8)
(9)
訓練時采用交叉熵函數(shù)對模型參數(shù)φ進行優(yōu)化:
(10)
提示句向量分類器與bert指定不同的學習率進行訓練,通常提示學習中微調(diào)bert學習率設(shè)置較小。
采用了立場檢測中文數(shù)據(jù)集NLPCC2016[1]對文中方法進行實驗測試,包括了5個目標上的總計4 000條已標注立場類別的中文微博文本數(shù)據(jù),并劃分了其中3 000條作為訓練集,1 000條作為測試集。數(shù)據(jù)集統(tǒng)計信息如表1,括號內(nèi)為目標的簡寫,與后文實驗表格對應(yīng)。
表1 NLPCC2016數(shù)據(jù)集統(tǒng)計信息
文中方法的實現(xiàn)使用了Pytorch[19]和Huggingface Transformers工具[20]。掩碼語言模型選擇了bert[16]模型(bert-base-chinese),該模型由12層transformer[21]編碼器組成,詞向量維度768。提示句向量分類器維度為768*768*3。模型訓練優(yōu)化使用了SGD優(yōu)化器。對于句向量分類器學習率設(shè)置為0.01,bert的參數(shù)學習率設(shè)置為5e-4。將訓練集的15%作為驗證集選取最佳模型,對不同目標的樣本單獨訓練模型。提示模板、答案器設(shè)置如圖1。
機器學習方法:
Dian[2]:該方法基于詞頻統(tǒng)計的特征和文本深度特征,使用支持向量機,隨機森林和梯度提升決策樹對特征進行立場分類。
深度學習方法:
CBL[22]:CNN-BiLSTM模型,CNN提取文本向量的局部特征,BiLSTM網(wǎng)絡(luò)提取文本的全局特征,兩者結(jié)合進行立場檢測。
TAN[5]:該模型通過BiLSTM網(wǎng)絡(luò)與注意力機制提取文本與目標之間的特征信息,實現(xiàn)了基于特定目標的注意力深度分類網(wǎng)絡(luò)。
BGA[23]:基于GCN(卷積圖網(wǎng)絡(luò))與BiLSTM,BiLSTM捕獲句子的特征,根據(jù)依存句法樹建立GCN,結(jié)合注意力得分進行分類。
CTB[24]:基于bert編碼文本和話題,將兩者拼接,并引入情感分類輔助任務(wù)。
BCC[6]:該模型對微博文本進行主題短語提取來擴充目標話題,利用Bert模型獲取文本的句向量,構(gòu)建話題集合與文本句向量間的Condition層關(guān)系矩陣,用CNN提取特征,對立場類別進行分類。
BSECA[7]:該模型基于bert句向量,利用卷積注意力對文本和話題進行信息提取,融合詞語級和句子級情感表示,形成最終的語義表示檢測文本立場。該模型額外使用了微博情感數(shù)據(jù)集訓練情感分類器。
按照此前的中文立場檢測研究的評價指標慣例,對于特定目標,對支持和反對兩個類別計算F1值,取二者平均作為該目標上的評價指標:
(11)
總評價指標使用各個目標上F1的算術(shù)平均值:
(12)
其中,c表示目標類別的數(shù)量,近年來的中文立場檢測相關(guān)研究使用了式12衡量總體效果,與NLPCC立場檢測任務(wù)[1]評價指標設(shè)置一致。
本節(jié)表中PBMSV(Prompt Bert with Multi-mask and Sentence Vector)表示該文提出的多掩碼與提示句向量融合立場檢測模型。
表2給出了文中方法與相關(guān)對比方法在NLPCC中文數(shù)據(jù)集上對五個目標的數(shù)據(jù)單獨訓練模型的實驗結(jié)果。
表2 NLPCC中文數(shù)據(jù)集五個目標單獨訓練(F1)
從表2可以看出,在該中文數(shù)據(jù)集上五個目標分開單獨訓練的實驗中,PBMSV模型在五個目標中有兩個目標取得了最好的F1值,并取得了接近最優(yōu)的總F1值。相較于采用機器學習方法以及BiLSTM獲取句子信息的Dian,TAN,CBL,BGA方法,采用bert生成句向量特征的方法總F1提高較多,表現(xiàn)出bert預(yù)訓練模型在特征提取方面的顯著優(yōu)勢。采用bert進行編碼的方法中,BCC對數(shù)據(jù)進行充分清洗,采用condition層和CNN進一步融合特征,相比此前的方法優(yōu)勢明顯。
BSECA設(shè)計了更為復雜的特征提取網(wǎng)絡(luò),并且利用了額外的微博情感數(shù)據(jù)集訓練單獨模型引入情感信息,大幅提高了此前的結(jié)果。PBMSV方法利用了新的提示句向量代替此前的[CLS]或平均句向量方法,利用多掩碼提示學習分類和提示句向量相結(jié)合的方法,提高句向量生成質(zhì)量,思路上既融合了目標和文本語義,又利用句向量和人工答案器提示學習相結(jié)合將“支持”“反對”等具體的立場詞信息引入,實驗結(jié)果在兩個目標上超過了BSECA方法,一個目標F1相同,取得79.3的平均F1值??紤]BSECA方法使用了額外的微博情感數(shù)據(jù)集訓練情感特征提取模型,文中方法效果上與之接近。
為驗證PBMSV模型中各個模塊的有效性,設(shè)計了六個消融對比實驗,比較各個模塊的作用。
PBMSV:主要包括提示句向量(Prompt Sentence Vector,PSV)、多掩碼提示學習(Prompt with Multi-mask)和融合分類(fusion classification,fc)三個部分。
-fc:去掉融合分類,將句向量分類損失和答案器兩掩碼位置損失相加進行優(yōu)化,分類由句向量分類器完成。
-PSV:去掉提示句向量,重新設(shè)計提示模板,掩碼位置損失相加進行優(yōu)化,分類由答案器首位置完成。
-PM:去掉多掩碼的答案器提示學習分類,保持提示模板不變,由句向量分類器完成分類。
PBSV:由圖1中的模板前半句生成提示句向量,再將目標輸入bert模型取[CLS]隱藏狀態(tài)獲得目標句向量,將二者拼接輸入分類器。
BERT [CLS]:分別將文本和目標輸入bert,它們各自的[CLS]隱藏狀態(tài)作為文本和目標的句向量,將二者拼接輸入分類器。
BERT avg.:分別將文本和目標輸入bert,取它們各自每個詞的最后一層隱藏狀態(tài)平均值作為文本和目標的句向量,將二者拼接輸入分類器。
從表3可以看出,兩種BERT基礎(chǔ)句向量實驗與PBSV比較,結(jié)構(gòu)基本一致,區(qū)別在于PBSV使用了提示句向量,PBSV的F1值略高表明了提示句向量在特征提取方面有一定的提升效果。-PM和PBSV比較,兩者差距不大,表明了使用模板引入目標信息與直接拼接目標句向量效果接近,而使用模板降低了分類器維度,參數(shù)量更少。-PSV只使用多掩碼提示學習方法,取得了77.1的F1值,效果出色,相比于4.1節(jié)中的多數(shù)方法取得領(lǐng)先。PBMSV比-fc效果更好,驗證了融合多個分類結(jié)果優(yōu)化損失的有效性。相比于BERT [CLS]和BERT avg.,PBMSV分別取得了8.4%和9.5%的提高。
表3 NLPCC中文數(shù)據(jù)集上的消融實驗(Avg. F1)
該文提出了一種基于多掩碼與提示句向量融合分類的立場檢測模型(PBMSV)。該模型中對句向量的生成進行了改進,采用提示學習思想,構(gòu)造語義通順的模板融合文本、目標和立場詞信息,幫助bert生成更好的句向量進行分類;采用模板-答案器結(jié)構(gòu)的多掩碼提示學習分類方法,使用bert自身分類器獲取詞表概率分布,由答案器分類,與提示句向量配合,在結(jié)構(gòu)上進行創(chuàng)新改進;融合句向量分類結(jié)果和答案器分類結(jié)果,聯(lián)合優(yōu)化模型,完成立場檢測分類。在NLPCC2016中文立場檢測數(shù)據(jù)集上的相關(guān)實驗證明了PBMSV模型的有效性,并驗證了提示句向量的效果。
現(xiàn)有研究大多采用bert生成特征,再進一步通過設(shè)計網(wǎng)絡(luò)結(jié)構(gòu)對相關(guān)特征進行融合和分類。而提示學習方法著重于發(fā)揮預(yù)訓練模型知識,利用提示幫助模型完成下游任務(wù)。除監(jiān)督方法之外,提示學習方法在少樣本場景下也表現(xiàn)出色。在未來的工作中,將進一步地研究提示學習在立場檢測中的應(yīng)用,還將探索少樣本場景、遷移場景的立場檢測。