嚴 豫 楊 笛 尹德春
(中國人民公安大學信息網絡安全學院 北京 100034)
情感分析作為輿情研判的一項典型任務[1],主要挑戰(zhàn)在于分析需求多樣性,文本語義復雜性,研判時效性。對于輿情的情感分析,研究者最初使用基于詞典的方法進行情感分類[2],這種方法依賴于預定義的情感詞典,難以處理多義詞、否定和修飾等語言現象且難以適應不同的領域和語言環(huán)境。隨后,機器學習方法的引入,使得模型能夠從大量標注語料中學習分類規(guī)則,有效克服了情感詞典方法的局限性。近年來,基于大規(guī)模無標注語料訓練的預訓練語言模型展現出良好的語言理解和遷移學習的能力[3]。基于預訓練模型微調的學習范式逐漸成為解決自然語言下游任務的主流方法,然而,這種學習范式仍屬于監(jiān)督學習范疇,需要預先收集和標注大量樣本以供機器學習,由此所需要的時間和資源的花費將是對公眾輿情分析的場景多樣性和時效性的約束。
為縮減成本、提高自動化水平,研究者已逐漸開始關注基于少樣本學習(Few Shot Learning)[4]的情感分析方法?;谔崾镜奈⒄{方法(Prompt Tuning)是一種典型的少樣本學習方法,該學習范式可以指導模型充分利用預訓練階段學習的知識,而非簡單記憶特定任務的訓練數據的規(guī)律,因此無需大規(guī)模參數更新即可取得良好效果。目前,基于提示的微調方法在單樣本或零樣本的情況下仍然無法保證結果的準確性。
針對現有研究的不足,提出一種引入大語言模型(Large Language Model)標注初始樣本,并使用無監(jiān)督對比學習和無標注數據實現自主迭代訓練的提示學習方法。具體而言,該方法基于情感分類規(guī)則,使用大語言模型進行樣本標注;將噪聲化處理的同一樣本進行對比訓練來增強預訓練模型對于數據一般模式和特征的認識;基于上述數據增強處理,構建提示模板,利用提示學習機制,在無標注數據上進行迭代提示學習訓練。實驗結果表明,基于大模型知識的弱監(jiān)督方法相較于以往的模型有明顯提升。
情感分析,也稱為觀點挖掘,是確定文本所表達的情緒的過程,常被用于對在線平臺的言論分析,例如:社交媒體監(jiān)控[5-6]、電子商務產品評論[7]、抑郁癥檢測系統(tǒng)[8]。
在公共安全領域,基于計算機方法的自動化情感分析方法的作用主要體現在其能夠快速識別有害言論,掌握公眾情緒,維護數字環(huán)境的安全穩(wěn)定等方面。情感分析的方法主要可以分為基于詞典的方法和機器學習方法[2]?;谠~典的方法需基于預定義的情感詞典進行單詞和短語打分[9],通常需要標注大量的單詞,Cha等人[10]構建了一個多語言的抑郁癥詞典用于檢測社交媒體中的抑郁癥患者,Ainapure等人[11]使用VADER和NRCLex實現了推特文本的情感分類。近年來,深度學習在情感分析中表現出色。CNN[12],BiGRU[13],BiLSTM[11-14]等神經網絡模型被引入到情感分析中。而基于預訓練模型的遷移學習范式,則更進一步推進了情感分析的發(fā)展,該學習范式的模型能夠利用大規(guī)模無標注語料庫中的信息,使得模型能夠更好地理解短文本、分析語句中更復雜的情感。
為降低收集和標注數據的資源成本,小樣本學習旨在從有限的標注示例中學習特定任務的模式,從而減少對人為監(jiān)督的依賴。情感分析中的小樣本學習的主要策略是元學習(Meta-learning)、數據增強(Data Augmentation)和提示學習(Prompt Learning)。
在元學習中,模型在類似的任務上進行訓練,使其能夠快速適應新任務。基于外部知識和對比方法的面向方面的元學習框架[15]可以完成特定領域的任務。通過組合多種機器學習方法[16]的異質堆疊集成模型在情感分析任務中也有較好的性能。
數據增強通過轉換原始數據增加標記數據集的大小,而無需額外的手動注釋。多特征文本數據增強模型(M-DA)[17]構造了一個多模態(tài)文本編碼數據增強網絡用于情感分析。R-drop[18]通過最小化帶有隨機丟棄層的兩個子模型的輸出分布之間的雙向KL散度,增強了模型在識別樣本時的一致性。
在提示學習中,模型被引導使用其預訓練的知識,而不是簡單地記憶特定任務的訓練數據[19]。基于模式利用的訓練方法[20]通過構建語言問答模板和建立標簽與詞語的映射,基于生成性的問答的框架,實現了情感分析。Gao等人[21]設計并實現了提示模板的自動化生成,以避免由于不當的上下文模型所造成的局部最優(yōu)。
隨著自然語言處理中預訓練模型的發(fā)展,大型語言模型(Large Language Models)開始展現出卓越的性能[22]。Chat GPT是一款由OpenAI開發(fā)的經過了人類反饋強化學習、指令微調等工序的大型語言模型,其作為一個通用的對話系統(tǒng),也可被用于具體的自然語言處理任務,如文本分類,文本摘要,問題回答等方面。Chat GPT已被證明在文本注釋任務中具有人類級的能力[23-26],這意味著使用大型語言模型進行樣本增強是可行的。
盡管在大語言模型在文本分類、樣本標注領域下能夠取得較好的表現,然而,單純依靠大語言模型實現對大規(guī)模的文本檢測仍然是不可行的,因為這將耗費高昂的運算成本,且使用在線模型進行敏感的公共安全領域的文本分析是不合適的。因此,使用大語言模型進行文本標注,進而訓練小型的情感分析模型,仍然是少樣本分析情況下的可行方案。
少樣本學習(Few-shot Learning),是指僅用少量額外人工信息來調整模型以使其在新任務取得良好表現的過程,情感分析(Sentiment Analysis)可被視為二分類或多類文本分類任務,其目標為將給定文本歸類為某一個預定義情感類別。
提示微調(Prompt Tuning),是基于語言模板對預訓練語言模型進行微調的過程,以快速地使得模型適應特定任務。不妨令M為預訓練語言模型,而基于M的提示模板則是一個文本模式,它可以與待分類文本相結合,形成一個提示輸入。
本文提出一種融合大語言模型信息的對比提示情感分析方法(Contrastive-based Prompt-tuning Sentiment Analysis method incorporating Large Language Modelknowledge,CPLLM-SA)。如圖1所示,該模型主要包括無監(jiān)督對比嵌入訓練、大語言模型數據標注、初代模型訓練、無監(jiān)督迭代訓練。
圖1 融合大語言模型知識的對比提示情感分析方法整體框架圖
(b) Acc指標
圖3 消融實驗結果
(1)
為了避免在提示微調過程中預訓練模型的遺忘問題,Schick等人[20]將輔助損失[28]引入到提示微調中,該損失函數同時考慮分類的交叉熵損失和預訓練的語言建模損失,使得模型可以適應特定任務同時保留其原始知識。輔助損失的計算方法如下:
L=(1-α)·LCE+α·LMLM
(2)
其中,LCE是情感分析任務的交叉熵損失,LMLM是語言建模損失。α是一個小常數,通常設為1e-4[20]。
在提示微調的情感分析任務中,通過進一步利用未標記的數據可提高模型在對應任務上的性能。為此,CPLLM-SA參考iPET訓練方法,在無標注數據上實現了自迭代訓練。
每次迭代時樣本擴充的過程如下:
(3)
第二步,使用文本i的最可能情緒類別所對應的概率,作為它將被抽樣于下一輪次訓練的概率:
(4)
其中pi表示第i個樣本被抽中用于下一輪的模型訓練的概率,S是未標記的數據集。
第三步,對于每個類Ck,按照概率值降序排序取前w個樣本(w=max(w,|Ck|)),根據概率分布進行放回抽樣,直到達到類k的所需的樣本量:
Ck={X1,X2,…},Xi~Categoricalk(p1,p2,…,pw)
(5)
(6)
在訓練模型的第一代時,訓練數據可能很少甚至是不存在。在這種情況下,通過構建適當的問答模板,利用大型語言模型來構建一個初始的注釋數據集。使用多個大語言模型進行文本注釋,并選擇從標注結果一致的樣本作為初始訓練數據集,且至多采用大語言模型注釋了100個樣本。根據數據集中包含人類標注情況的不同,設計以下3組標注方案:
a.1-shot:為每個類別提供一個手動標記的訓練樣本。并配以必要的說明,使用大語言模型生成100個標注樣本,選擇標簽一致的樣本作為初始數據集。
b.50-shot:在1-shot的基礎上,額外添加手工標記的50個樣本。
c.100-shot:手工標記100個樣本作為初始訓練集,不使用任何大語言模型。
為驗證提出的少樣本輿情分析方法的有效性,以下進行實證性研究,本部分通過將CPLLM-SA模型和基線模型進行對比,以驗證該模型的情感分析能力。
挑選公開的推特數據集TweetEval[29]中的兩項典型情感分析任務用于實驗分析:仇恨言論檢測[30]和諷刺檢測[31]。對此兩項任務,設計了相應的提示模板,通過將樣本填入模板中,則可基于文本填詞的方式實現情感分析。
采用直接提示和引入上下文的提示構建提示模板:在直接提示下,模型需要直接理解文本和任務,以進行情感分析。引入上下文的提示則先提供簡短的任務介紹,再進行理解和分類。具體如下:
4.1.1仇恨言論檢測
a)直接提示:
…有人在推特上發(fā)表了:'{文本}'。所以他是以一種建設性和尊重的方式說話的嗎?{是,否}?!?/p>
是:非仇恨(non-hate);否:仇恨(hate)。
b)引入上下文的提示:
…仇恨意味著針對他人或以蔑視的方式對待他們,非仇恨意味著以建設性和尊重的方式說話。有人在推特上發(fā)表了:'{文本}'。所以他是以非仇恨的方式說話的嗎?{是,否}?!?/p>
是:非仇恨(non-hate);否:仇恨(hate)。
4.1.2諷刺檢測
a)直接提示:
…有人在推特上發(fā)表了:'{文本}'。所以他是以非諷刺的方式說話的嗎?{是,否}。…
是:非諷刺(non-irony);否:諷刺(irony)。
b)引入上下文的提示:
…諷刺往往涉及說一件事,而意思卻相反。非諷刺的特點是語氣直接,直截了當。有人在推特上發(fā)表了:'{文本}'。所以他是以非諷刺的方式說話?{是,否}?!?/p>
是:非諷刺(non-irony);否:諷刺(irony)。
主要使用準確率(Accuracy)進行模型性能的評估,同時,F1分數(F1-Score)也被引入于評估大語言模型對于正負例不平衡的數據的標注能力。對于情感分析,模型預測和實際情感的組合情況有:真正(True Positive, TP):模型預測為正,實際為正;假負(False Negative, FN):模型預測為負,但實際為正的情況;真負(True Negative, TN):模型預測為負,實際也為負的情況;假正(False Positive, FP):模型預測為正,但實際為負的情況。據此,則有:
準確率計算公式:
(7)
F1分數計算公式:
(8)
選取以下基線方法在同等資源情況下與CPLLM-SA進行比較:
a) BERT[32]:基于transformer的雙向編碼器表征模型,其在各種自然語言處理任務中表現出強大的性能。
b) RoBERTa[33]:BERT的優(yōu)化版本,改進了預訓練策略,并有更多的參數。實驗選取RoBERTa-Base版本進行對比。
c) XLNet[34]:基于自回歸預方法的transformer模型,在幾個基準測試上超過了BERT。
d) PET-{BERT, GPT-2}[20]:一種提示學習方法,基于BERT/GPT-2模型的模式利用訓練(Pattern-Exploiting Training)方法。
e) iPET-{BERT, GPT-2}[20]:該方法為基于BERT/GPT-2模型的模式利用迭代訓練(Iterative Pattern-Exploiting Training)方法,iPET通過在無標注樣本上擴展迭代訓練實現預訓練模型知識的充分利用。
對于以上基線方法,相應的可以得到的訓練資源如下:
a) 1-shot:為每個類別提供一個手動標記的訓練樣本。
b) 50-shot:共提供50個手動標記的訓練樣本。
c) 100-shot:共提供100個手動標記的訓練樣本。
使用以下大語言模型用于樣本標注:
a) GPT-3.5-Turbo:它在GPT-3的基礎上增加了額外的特性和參數,是一種更強大的語言模型,能在開放式問答任務中取得優(yōu)秀的表現。
b) ChatGLM-6B[35]:這是一種基于通用語言模型(General Language Model)框架的開放領域雙語模型,擁有62億的參數。借助量化技術,該模型可以在個人終端上部署和使用。
最后,額外引入了text-Davinci-002模型作為樣本標注的對照模型,該模型由GPT-3類模型經指令微調而來,在文本推理中表現出色。
對于CPLLA-SA模型,對比性嵌入訓練的溫度超參數和丟棄率分別設為0.05和0.1。輔助損失權重α設為1e-4。模型的最大參與比率β設為0.5,代際樣本增量乘數d設為5,迭代入選樣本量w設置為10。對于GPT-3.5-Turbo,溫度超參數設為0.2。ChatGLM模型是bit-4的量化版本,使用默認參數設置。
對于PET模型,將"reduction"設置為"mean",將"ipet_n_most_likely"設置為10。
由于TweetEval為短文本分類數據集,因此將實驗模型的最大文本讀取長度設置為128,訓練批次大小設為8,訓練周期為3~6個,具體取決于相應周期下模型性能。提示微調的學習率為5e-5,常規(guī)微調的學習率為2e-5。
實驗平臺基于Windows 11系統(tǒng),使用python 3.9.12的深度學習庫torch 1.13.1+cu116和transformers 4.23.0實現;計算機硬件配置為AMD Ryzen 7 5800H CPU、NVIDIA GeForce RTX 3070 Laptop GPU、1T固態(tài)硬盤和16GB內存。
基于TweetEval數據集,進行仇恨言論檢測和諷刺檢測,實驗評價指標采用準確率,實驗結果見表 1和表2,其中最優(yōu)結果使用粗體標出,次優(yōu)結果使用下劃線標出。
表1 仇恨言論檢測結果
表2 諷刺言論檢測結果
根據對實驗結果的觀察可知,在仇恨言論檢測實驗中,CPLLM-SA模型相比最優(yōu)的基線方法iPET-BERT在1-shot訓練規(guī)模下,準確率提升了約11個百分點;在50-shot和100-shot訓練規(guī)模下,準確率分別提升了約2.0和0.6個百分點。在諷刺言論檢測實驗中,發(fā)現在1-shot的情況中,CPLLM-SA的表現不如iPET-GPT2方法,這說明大語言模型對于含蓄表達短文本存在判斷缺陷。但隨著真實樣本量的增加,在50-shot和100-shot訓練規(guī)模下,CPLLM-SA模型的表現也仍然是最優(yōu)的,準確率分別比第二優(yōu)的模型提高了約3.6和2.0個百分點。
通過觀察大語言模型標注結果(圖 2),可見GPT-3.5-Turbo模型在標注任務上的均顯著優(yōu)于其他兩個模型,證明了GPT-3.5-Turbo在樣本標注方面的潛力。綜合來說,CPLLM-SA模型在實驗中展現出了優(yōu)異的性能,證明了CPLLM-SA的有效性。
(a) F1指標
對以上實驗情況,分析如下:
a.在低資源情況下,提示微調方法通常能取得最佳表現。這表明如果采用合適的提示微調方法引導模型學習,這將能充分利用語言模型在預訓練階段學習的知識來提升特定下游任務的表現。
b.通過對自回歸模型(GPT2、XLNet)和自編碼模型(BERT、RoBERTa)的觀察,可以發(fā)現,在使用相同微調策略的情況下,這兩種類型的模型在大部分情況下都有類似的表現。然而,可以觀察到的是,相比于iPET-BERT,iPET-GPT2在樣本數量極端少(1-shot)的情況下,通常能夠達到更高的性能,這表明自編碼模型的預訓練階段所學習知識更容易被激發(fā)。
c.迭代訓練的提示微調模型(iPET-BERT,iPET-GPT2,CPLLM-SA)通常比非迭代提示微調模型(PET-BERT,PET-GPT2)表現得更好,這說明引入相應任務的無標注樣本數據進行擴展學習,能進一步激發(fā)預訓練模型的潛能。
本部分對CPLLM-SA模型的運行機理進行進一步探究,首先,通過消融實驗分析各模塊的實用性;然后,通過迭代誤差實驗分析無監(jiān)督迭代方法的有效性;最后,通過參數實驗,為模型的廣泛應用提供實驗依據。
CPLLM-SA通過充分利用內源和外源性的信息保證了模型在低資源情況下的表現。為驗證模型各個模塊的有效性,設置以下消融實驗以進行對比分析:
①CPLLM-SA-NL:無大語言模型知識的CPLLM-SA,即該方法使用特定任務的極少量注釋數據進行訓練。
②CPLLM-SA-NI:無擴充樣本迭代訓練的CPLLM-SA,即該方法沒有利用多余的無標注數據進行訓練。
③CPLLM-SA-NC:無對比嵌入訓練的CPLLM-SA,即該方法沒有針對性地對預訓練模型進行特定任務的編碼優(yōu)化。
在仇恨言論檢測任務上進行消融實驗,實驗結果見圖 3,未經消融的CPLLM-SA模型在各不同的低資源情況(1-shot,50-shot,100-shot)下都取得了最佳結果,驗證了大語言模型知識、迭代訓練和對比嵌入訓練三個模塊對于在低資源條件下情感分析的必要性。
對消融實驗結果的分析如下:
a.CPLLM-SA-NL的性能在1-shot訓練規(guī)模中表現最低,這表明在情感分析任務中,僅依靠小規(guī)模的標注樣本是不足以得到充分的模型性能的?;诖笳Z言模型進行樣本標注,能夠為情感分析模型提供更豐富訓練樣本,這對于極低資源情況下模型性能的提升至關重要。
b.CPLLM-SA-NI在所有訓練規(guī)模中都表現出比CPLLM-SA稍差的性能,這表明利用無標注數據進行迭代訓練對于提升模型性能來說是可行的。迭代訓練能夠充分利用預訓練模型中的知識,并能提供給模型更豐富的訓練數據。
c.CPLLM-SA-NC的性能在1-shot訓練規(guī)模中稍差于原模型,但在50-shot和100-shot訓練規(guī)模中表現出與原模型相近的性能。這說明在小規(guī)模的訓練樣本中,對比嵌入訓練能夠有效地增強數據,提高模型的泛化能力。而隨著訓練樣本的增加,數據的多樣性本身就增加了,因此對比嵌入訓練的效果可能會相對減弱。
在訓練階段,CPLLM-SA基于模型集成的方式自主生成下一代所需的訓練樣本,因此該無監(jiān)督過程可能存在誤差累計與傳遞。為驗證迭代訓練的意義和有效性,以下對CPLLM-SA在迭代過程各代模型的性能進行分析,實驗結果見圖4。
(a) 仇恨檢測
(b) 諷刺檢測
由以上實驗結果可知,隨著訓練代際的增加,模型的整體性能呈現增加趨勢,這表明迭代訓練策略的有效性,而代際間模型的具體情況則與任務特點、初始標注數據有關系。在仇恨言論檢測任務中,G3代模型在1-shot、50-shot和100-shot訓練規(guī)模下都表現出了較好的性能,與G1代模型相比,性能有了顯著的提升。在諷刺檢測任務中,其在50-shot和100-shot的條件下,G3代相較于G1代取得了顯著的性能提升,而1-shot條件下模型在G1開始性能就基本不變,這說明對于諷刺檢測任務來說,僅引入通用知識是不足以取得性能提升的,而更需要具體輿情背景信息作為支撐,由此模型才能更深入地挖掘語言背后的隱晦含義。
對于無監(jiān)督方法來說,超參數的選擇與調整在很大程度上影響著模型的性能表現。本部分將探討迭代樣本入選量w、每代的訓練輪次、提示模板的設置對于CPLLM-SA性能的影響,主要基于仇恨檢測進行實驗分析。
5.3.1迭代樣本入選量
迭代樣本入選量w決定了模型在生成新訓練集用于下一代的模型訓練時,被選用于抽樣的樣本數量,樣本入選量w也代表用于樣本入選下輪訓練所需的最低的置信度排名。以下對樣本入選量與模型性能的關系進行研究,實驗結果見圖5。
圖5 不同迭代樣本入選量的實驗結果
實驗分析如下:
第一步,通過分析初始標注樣本量與迭代樣本入選量的關系,發(fā)現增加迭代入選樣本量,反而會造成模型性能的明顯下降。這是由于引入了低置信的樣本后,增加了訓練數據的誤導性,導致誤差隨著迭代訓練而擴大。因此,在訓練迭代時,應選擇置信度高的樣本用于迭代或針對低置信度樣本進行人工樣本標注。
第二步,把握不足。此時應當擴大樣本量,或者選用更具有針對性的包含特定領域知識的預訓練模型。
5.3.2每代訓練輪次
可以通過調整每代模型的訓練輪次來保證模型性能,以下對每代模型的訓練輪次進行分析,實驗結果見圖6。
圖6 不同訓練輪次的性能比較實驗結果
從實驗結果來看,CPLLM-SA模型在不同訓練輪次下的性能表現存在差異。在訓練樣本較少的情況下(1-shot),過量的訓練輪次容易導致模型發(fā)生過擬合現象,訓練輪次應該與樣本量相適應。隨著訓練樣本數量的增加,模型在一定的訓練輪次下能夠達到較好的擬合狀態(tài),但隨著訓練輪次的繼續(xù)增加,可能會出現輕微的過擬合。因此,在實際應用中,需要根據訓練樣本數量來選擇合適的訓練輪次,以獲得較好的模型性能。
5.3.3提示模板設置
在訓練階段,CPLLM-SA采用了兩種不同提示模板:直接提示,引入上下文的提示。表3與表4展示了在CPLLM-SA中兩種提示方法的表現,其中最優(yōu)結果使用粗體標出:
表3 不同提示方法的性能比較(仇恨檢測)
表4 不同提示方法的性能比較(諷刺檢測)
通過觀察可以發(fā)現,直接提示和引入上下文提示的效果在仇恨言論檢測和諷刺言論檢測任務中均存在差異:
a.仇恨檢測任務中,直接提示的表現都優(yōu)于引入上下文的提示,這表明對于仇恨言論檢測這類任務來說,直接提示能更有效地引導模型進行判斷,因為仇恨言論的特點可能使得其更容易通過直接提示進行識別。
b.諷刺檢測任務中,直接提示的表現只在100-shot情況下為最優(yōu),這表明諷刺檢測這類任務需要更多的任務信息才能保證模型的分類效果。
以上模型性能的差異表明提示方法的選擇應參考任務特點和初始標注樣本量。對于需要潛在信息的任務,可以通過上下文學習的方法(In-context Learning)引入額外信息,而在數據充足且任務相對直觀的情況下,直接提示則更為有效。
本文對于在低資源情況下進行輿情分析的方法進行了研究,并提出了融合大模型知識的對比提示情感分析方法CPLMM-SA。通過大模型進行樣本標注并利用對比嵌入學習優(yōu)化編碼表征,基于提示學習方法在大量無標注數據上實現無監(jiān)督迭代訓練。實驗結果表明,CPLLM-SA在同等資源情況下的性能表現出色,具有較好的輿情分析能力。作為開源情報的重要組成部分,輿情分析具有具體性和多樣性,今后的工作將進一步考慮引入在線知識圖譜,實現零樣本(0-shot)的快速情感分析。