崔丁潔,徐 冰
(哈爾濱工業(yè)大學 計算學部,哈爾濱 150001)
隨著互聯(lián)網(wǎng)的發(fā)展,網(wǎng)絡(luò)用戶的溝通方式發(fā)生了明顯變化,越來越多的用戶喜歡通過網(wǎng)絡(luò)論壇、博客、微博、社交網(wǎng)站等網(wǎng)絡(luò)平臺瀏覽、發(fā)布和轉(zhuǎn)發(fā)消息,以此與其他用戶進行交流。網(wǎng)絡(luò)上出現(xiàn)了越來越多用戶生成的內(nèi)容,逐漸形成了草根創(chuàng)作、廣泛參與、多元互動的網(wǎng)絡(luò)傳播新局面。這不僅拓展了文化產(chǎn)品生產(chǎn)、傳播的深度和廣度,也為主流價值觀傳播提供了新的路徑。
主流價值觀是國家文化軟實力的重要體現(xiàn),其傳播的廣度和踐行的深度直接影響著國家意識形態(tài)安全和社會穩(wěn)定。因此,傳播主流價值觀是中國各大媒體需要承擔的責任與義務(wù)。
然而,用戶生成內(nèi)容良莠不齊、信息過載等現(xiàn)象,為主流價值觀的傳播帶來了挑戰(zhàn)。如何承擔社會責任,傳播積極向上的主流價值觀,營造良好的網(wǎng)絡(luò)輿論氛圍,成為國家和社交媒體平臺共同關(guān)注的問題。
面向主流價值觀的文本質(zhì)量評價任務(wù)需要對文本質(zhì)量從正能量、主流價值觀等角度進行定義。將其定義為一個五分類問題,即將面向主流價值觀的文本質(zhì)量劃分為1~5 個等級。這一研究和文本的情感分類存在差別,積極的情感并不一定代表正能量的價值觀。如:某明星發(fā)帖稱‘日本血統(tǒng)真的好酷,穿和服走在雪里感覺好高貴!’,這一帖子表達的情感是積極的,但卻明顯不符合‘愛國’這一社會主義核心價值觀。
龐大的用戶生成內(nèi)容是新時代的產(chǎn)物,但也承擔著一定的社會責任,以正能量作品暖人心、聚民心。通過主流價值觀來駕馭算法,減少泛娛樂化、低俗類內(nèi)容傳播,增加符合社會主義核心價值觀的內(nèi)容,讓算法服務(wù)于主流價值導(dǎo)向。
面向主流價值觀的文本質(zhì)量評價是一個全新的任務(wù),同時也是一個富有新時代中國特色的任務(wù)。除了缺乏統(tǒng)一技術(shù)框架之外,如何獲取大規(guī)模的域內(nèi)數(shù)據(jù)、如何標注數(shù)據(jù),以及如何利用未標注數(shù)據(jù)也是文本質(zhì)量評價任務(wù)一大難點。因此,這一任務(wù)主要與文本增強和半監(jiān)督學習兩個研究方向存在重合。
文本增強主要分為無條件增強和條件增強兩種方法。
1.1.1 無條件增強方法
由于不需要強制引入標簽信息,無條件增強方法既可以對標注數(shù)據(jù)進行增強,又可以針對無標注數(shù)據(jù)進行增強。主要包括詞匯/短語替換、隨機噪音注入和混合交叉方法。在對標注數(shù)據(jù)進行增強后,不會改變數(shù)據(jù)的標簽,但可能會造成文本主旨發(fā)生變化,帶來一定的噪音。
對于詞匯/短語的替換方法:文獻[1]提出基于詞典從文本中選擇詞匯或短語進行同義詞替換;文獻[2]基于詞向量在嵌入空間中找尋相鄰詞匯進行替換;文獻[3]根據(jù)TF-IDF 分值,對非核心詞進行替換。
對于隨機噪音注入方法:文獻[3]根據(jù)Unigram 詞頻分布進行采樣,從而隨機插入一個詞匯;文獻[1]除了進行同義詞替換外,同時采用上述隨機插入詞匯、隨機交換詞匯或交換句子、隨機刪除詞匯或句子等隨機注入噪音。文獻[4]提出了一種應(yīng)用于圖像領(lǐng)域的表示增強方法(Mixup)。借鑒Mixup 的思想,文 獻[5]提出了wordMixup 和sentMixup,將詞向量和句向量進行混合;文獻[6]利用交叉增強方法將相同極性的文本進行交叉。
此外,回譯也是一種應(yīng)用非常廣泛的無條件增強方法。該方法基于機器翻譯技術(shù),文獻[3]中就采用了回譯技術(shù)進行數(shù)據(jù)增強。此外,對抗訓練方法對模型魯棒性的提升也是基于數(shù)據(jù)增強原理的。但是不同于CV 領(lǐng)域GAN 生成對抗進行數(shù)據(jù)增強[7],NLP 中通常在詞向量上添加擾動并進行對抗訓練。
1.1.2 條件增強方法
條件增強方法需要強制引入“文本標簽”信息到模型中,再產(chǎn)生數(shù)據(jù)。隨著BERT 等預(yù)訓練語言模型在NLP 領(lǐng)域取得巨大成功,近來許多研究者對預(yù)訓練語言模型用做文本增強進行了有益嘗試。
文獻[8]利用條件變分自編碼模型進行增強。文獻[9]基于LSTM 進行雙向語言模型預(yù)訓練,將標簽信息融入網(wǎng)絡(luò)結(jié)構(gòu)進行微調(diào),使替換生成的詞匯與標簽信息兼容一致。在此基礎(chǔ)之上,文獻[10]基于BERT 進行微調(diào),將段嵌入轉(zhuǎn)換為融入標簽指示的標簽嵌入。文獻[11]基于GPT-2 將標簽信息與原始文本拼接,當作訓練數(shù)據(jù)進行微調(diào),同時采用一個判別器,對生成數(shù)據(jù)進行了過濾降噪。
半監(jiān)督學習方法是指利用少量標注數(shù)據(jù)和大量無標注數(shù)據(jù)進行學習。相關(guān)研究主要著力于如何針對未標注數(shù)據(jù)構(gòu)建無監(jiān)督信號,與監(jiān)督學習聯(lián)合建模。簡單來說,就是如何在損失函數(shù)中添加針對未標注數(shù)據(jù)相關(guān)的正則項,使模型能夠充分利用大量的未標注數(shù)據(jù)不斷迭代,最終增強泛化性能。半監(jiān)督學習方法主要有熵最小化和一致性正則兩種方法。
文獻[12]提出Π-Model 和 時間集成(Temporal Ensembling)。Π-Model 對無標注數(shù)據(jù)輸入進行兩次不同的隨機數(shù)據(jù)增強,并通過不同dropout 輸出得到結(jié)果,引入一致性正則到損失函數(shù)中。時間集成采用時序融合模型,避免同一個訓練步進行兩次前向計算,從而提高訓練速度。文獻[13]提出的Mean Teacher 模型認為采用在訓練步驟上的平均模型會比直接使用單一模型權(quán)重更精確,于是對時間集成方法進行改進,對模型參數(shù)而不是預(yù)測結(jié)果進行平均。文獻[14]提出的虛擬對抗訓練(Virtual Adversarial Training,VAT)仍然采用一致性正則,采取對抗訓練的方式添加噪音,不同于傳統(tǒng)的有監(jiān)督學習下的對抗訓練,其沒有標簽信息,而是構(gòu)建一個虛擬標簽,并根據(jù)這個虛擬標簽計算對抗擾動方向。Google 在文獻[3]中提出了無監(jiān)督數(shù)據(jù)增強方法(Unsupervised Data Augmentation,UDA),也采用一致性正則,同時結(jié)合了熵最小化正則:對無監(jiān)督信號構(gòu)建人工標簽,使其趨近于One-Hot 分布。此外,還直接計算了熵損失。將人工標簽與增強后的預(yù)測標簽共同構(gòu)建一致性正則,并計算損失時采用基于置信度的訓練信號退火(TSA)方法防止對標注數(shù)據(jù)過擬合。
MixMatch[15]同樣來自Google,與UDA 類似,同樣結(jié)合了熵最小化和一致性正則。對標注數(shù)據(jù)進行一次增強,對于未標注數(shù)據(jù)作K次弱增強輸入模型得到average 后的概率。并將無標注數(shù)據(jù)得到的人工標簽與標注數(shù)據(jù)混合在一起并進行MixUp[16]操作,進而得到增強后的無標注數(shù)據(jù)以及標注數(shù)據(jù)。ReMixMatch[17]是MixMatch 原作者對自己工作的改進,一方面進行了分布對齊,另一方面,引入強增強,將弱增強后的人工標簽與強增強后的預(yù)測標簽共同構(gòu)建一致性正則。FixMatch[18]結(jié)合了UDA和ReMixMatch,舍棄了sharpen 操作和UDA 的訓練信號退火、ReMixMatch 的分布對齊和旋轉(zhuǎn)損失等,直接利用Pseudo-Label 構(gòu)建人工標簽。
以上方法大多引入了一致性正則,其關(guān)鍵在于如何注入噪聲,一個好的模型對于輸入擾動的任何細微變化也都應(yīng)具有魯棒性。所以半監(jiān)督學習經(jīng)常和文本增強方法結(jié)合。半監(jiān)督學習方法能充分挖掘未標注數(shù)據(jù)中潛在的價值,最終增強泛化性能。在少樣本場景下甚至可以比肩充分樣本下的監(jiān)督學習模型性能,而在充分樣本場景下,性能仍然繼續(xù)提升。
模型的整體框架來源于UDA,其結(jié)構(gòu)如圖1 所示:
圖1 UDA 模型結(jié)構(gòu)Fig.1 UDA model structure
圖中:M 表示一個模型,可以在給定x的條件下預(yù)測y的分布。本文采用BERT-base。
UDA 模型的輸入包括有標簽數(shù)據(jù)和無標簽數(shù)據(jù)。對于帶有標簽的數(shù)據(jù),模型M 可以得到其預(yù)測的標簽分布;對于無標簽數(shù)據(jù),采用反向翻譯方法進行數(shù)據(jù)增強,x'表示經(jīng)數(shù)據(jù)增強的無標簽數(shù)據(jù)。
模型的總損失=標簽數(shù)據(jù)的交叉熵損失(Cross-entropy loss)(有監(jiān)督)+λ?無標簽數(shù)據(jù)的一致性損失(無監(jiān)督)??倱p失公式如式(1):
其中,q(x'|x)表示數(shù)據(jù)增強變換,x'由x經(jīng)數(shù)據(jù)增強得到;θ是模型參數(shù);是θ的復(fù)制。
由于實驗數(shù)據(jù)集存在嚴重的不平衡問題,在實驗中采用Focal loss 代替上文中的Cross-entropy loss,F(xiàn)ocal loss 通過改變正類、負類的權(quán)重,使其能應(yīng)用于不平衡的分類中,如式(2):
其中,αc表示第c類樣本的權(quán)重,pθ(y|x)c表示第c類樣本的概率值。
2.2.1 獲取數(shù)據(jù)集
基于scrapy 框架,自主開發(fā)爬蟲工具,在人民網(wǎng)強國論壇板塊下爬取1 887條評論數(shù)據(jù),部分評論數(shù)據(jù)見表1。
表1 人民網(wǎng)數(shù)據(jù)集示例Tab.1 Examples of people's daily online dataset
由于爬蟲獲取的公開數(shù)據(jù)都是符合主流價值觀的,而本文的研究工作需要獲取反例,即不符合主流價值觀的數(shù)據(jù)。經(jīng)調(diào)研,采用SemEval 2019 Task 6攻擊性語言檢測數(shù)據(jù)集(Offensive Language Identification Dataset,OLID)。該數(shù)據(jù)集收集了14 120條推特,并對有無攻擊性進行了標注。部分數(shù)據(jù)見表2,數(shù)據(jù)集統(tǒng)計信息見表3。
表2 OLID 數(shù)據(jù)集示例Tab.2 Examples of OLID datasets
表3 OLID 數(shù)據(jù)集統(tǒng)計信息Tab.3 OLID dataset statistics
從OLID 數(shù)據(jù)集中隨機選擇2 500 條攻擊性數(shù)據(jù)與613 條非攻擊性數(shù)據(jù),并將其翻譯成中文,再結(jié)合爬取的人民網(wǎng)評論,構(gòu)成最終數(shù)據(jù)集。數(shù)據(jù)集統(tǒng)計信息見表4。
2.2.2 數(shù)據(jù)集的人工標注
數(shù)據(jù)標注的標準見表5。
表5 數(shù)據(jù)集標注標準Tab.5 Data set labeling standards
從表中可以看出,本文面向主流價值觀的文本質(zhì)量評價研究和情感分析存在明顯差別。如:例(2)、例(4)雖然表達了積極的情感,但卻是負能量的價值觀;例(8)雖然表達了消極情感,但卻是正能量的價值觀。
從收集的數(shù)據(jù)中選取585 條數(shù)據(jù)作為種子進行人工標注,標注后的初始數(shù)據(jù)分布見表6。
表6 初始數(shù)據(jù)集統(tǒng)計信息Tab.6 Initial dataset statistics
為了統(tǒng)一不同人標注帶來的主觀性和誤差,采用十折交叉驗證進行數(shù)據(jù)糾錯。糾錯后的數(shù)據(jù)分布見表7。
表7 糾錯后數(shù)據(jù)集統(tǒng)計信息Tab.7 Dataset statistics after error correction
2.2.3 基于自訓練的數(shù)據(jù)集自動標注
利用以上人工標注數(shù)據(jù)作為訓練集,基于selftraining 對其余數(shù)據(jù)進行自動標注。實現(xiàn)過程如下:
根據(jù)觀察,選取0.7 作為置信度閾值,基于BERT 進行數(shù)據(jù)迭代標注。針對數(shù)據(jù)集嚴重不平衡的問題,分別采用Focal loss 和重采樣方案,將3 個模型標注結(jié)果有差異的并集,由人工進行再標注,最終得到的數(shù)據(jù)集分布見表8。
表8 最終數(shù)據(jù)集統(tǒng)計信息Tab.8 Final dataset statistics
半監(jiān)督學習方法需要獲取大規(guī)模的域內(nèi)數(shù)據(jù)。然而,在許多場景下收集大規(guī)模域內(nèi)數(shù)據(jù)非常困難。為了解決這一問題,采用檢索的方法進行域內(nèi)數(shù)據(jù)的擴充。
利用句子編碼器對數(shù)據(jù)集中的句子進行編碼,得到其向量表示,將每一條數(shù)據(jù)的向量表示作為檢索向量,在大規(guī)模語料庫中進行檢索,以得到相似的句子。為保證檢索到的句子可以作為域內(nèi)數(shù)據(jù),從而減少通用語料對下游特定任務(wù)的噪聲干擾,每次檢索只抽取Top-K個句子,并且對抽取的句子需滿足能取得較高的置信度。
采用本文2.2 節(jié)構(gòu)建的數(shù)據(jù)集,其中訓練集包含3 956條數(shù)據(jù),測試集包含441 條數(shù)據(jù)。另外,為了構(gòu)建大規(guī)模檢索庫,本文收集了9 個來源于微博的數(shù)據(jù)集,其中包括公開的數(shù)據(jù)集Weibosenti100k,以及來自人民網(wǎng)數(shù)據(jù)平臺的數(shù)據(jù)集:新浪微博數(shù)據(jù)集_鳳凰周刊_202110-11、新浪微博數(shù)據(jù)集_頭條新聞_202110-11、新浪微博數(shù)據(jù)集_環(huán)球時報_202110-11等。將以上數(shù)據(jù)集進行清洗和去重,共獲得1 905 039條數(shù)據(jù),采用上述數(shù)據(jù)擴充方法,共檢索得到6 331條數(shù)據(jù)。部分數(shù)據(jù)見表9。
表9 檢索得到的部分數(shù)據(jù)及其匹配分數(shù)Tab.9 Some of the retrieved data and their matching scores
從表中例子可以看出,檢索到的擴充數(shù)據(jù)和原數(shù)據(jù)在語義上存在明顯的相似性。如:第三條,原數(shù)據(jù)和擴充數(shù)據(jù)都和抗疫相關(guān)。另外,擴充得到的數(shù)據(jù)和原數(shù)據(jù)的主流價值觀質(zhì)量標簽也是相似的。于是,除了無監(jiān)督的數(shù)據(jù)增強方法,本文也嘗試將query 的標簽賦予檢索得到的數(shù)據(jù),進行有監(jiān)督的數(shù)據(jù)增強。
3.2.1 面向主流價值觀的文本質(zhì)量評價實驗設(shè)置
回歸層的dropout rate 為0.1。訓練過程采用AdaGrad,初始學習率為1-10,在訓練過程中預(yù)熱學習率以加速模型收斂。Focal loss 中,將γ值設(shè)置為2。由于顯卡內(nèi)存所限,帶標簽數(shù)據(jù)的batch size 取16或者32 中較好的結(jié)果,無標簽數(shù)據(jù)的batch size 隨兩種數(shù)據(jù)的比例變化而變化。實驗結(jié)果通過準確率(Accuracy)、精確率(Precision)、召回率(Recall)、F1值進行評估。
3.2.2 數(shù)據(jù)集擴充實驗設(shè)置
由于構(gòu)建的檢索庫較大,直接檢索非常耗時,于是數(shù)據(jù)集擴充實驗基于ANYQ 框架進行。對ANYQ框架源代碼進行改寫,只保留問題分析和檢索模塊。以全部訓練集作為query,對query 和檢索庫均基于百度開源的LAC2 分詞工具進行分詞,對檢索庫添加基于PaddleSimAdapter 的語義表示模型,配置SimNet 語義檢索。每次檢索只抽取Top-10 個句子,同時滿足置信度>0.7。
為了驗證本文提出的數(shù)據(jù)增強方法的性能,選擇如下幾種模型并設(shè)計了相應(yīng)內(nèi)容進行對比實驗,實驗結(jié)果見表10。
表10 主要實驗結(jié)果對比Tab.10 Main results
其中:BERT 模型僅使用帶標簽的訓練集,將文本作為BERT 的輸入,將[CLS]對應(yīng)位置的輸出作為評論表示輸入分類層中,優(yōu)化Focal loss 損失。BERT_DA 模型在基于檢索的數(shù)據(jù)集擴充方法中,將每一條訓練數(shù)據(jù)作為查詢條件進行檢索,將query的標簽賦予檢索得到的數(shù)據(jù),從而進行有監(jiān)督的數(shù)據(jù)增強。BERT+無標簽數(shù)據(jù)模型增加無標簽訓練集(6 331 條)作為輸入,并對無標簽數(shù)據(jù)應(yīng)用熵最小化損失,從而達到數(shù)據(jù)增強效果。BERT_UDA 模型即本文提出的方法。
由表中數(shù)據(jù)可見:在本文構(gòu)建并標注的訓練集上,其BERT_UDA 方法在準確率、精確率、F1 值3個指標上都超過了BERT。與一般的無監(jiān)督數(shù)據(jù)增強方法(BERT+無標簽數(shù)據(jù))相比,BERT_UDA 在F1 值上提高1.22%,表明了本文采用數(shù)據(jù)增強方法的有效性。其次,雖然BERT_UDA 相比BERT 的F1 值提升了0.55%,但效果并不明顯,可能是構(gòu)建的檢索庫不夠大所致(獲取到的無監(jiān)督擴充數(shù)據(jù)數(shù)量僅為原數(shù)據(jù)的1.6 倍)。BERT+無標簽數(shù)據(jù)與BERT 相比,準確率有所提升,但F1 值卻有所下降;BERT_DA 相比BERT 在各項評估指標上都有明顯下降。究其原因可能是因為引入了大量噪音,這表明數(shù)據(jù)增強也有可能會降低模型的性能。
為了驗證總損失中無監(jiān)督損失函數(shù)的權(quán)重λ對實驗結(jié)果的影響,選取λ ={0,0.5,0.7,1} 進行實驗。實驗結(jié)果見表11。
實驗結(jié)果表明,當λ取0.5 時,F(xiàn)1 值最高。
在不使用擴充數(shù)據(jù)集的情況下,僅在訓練集中隨機選取一部分數(shù)據(jù)作為標注數(shù)據(jù),其余作為未標注數(shù)據(jù)。在損失函數(shù)中,將無標簽數(shù)據(jù)的一致性損失函數(shù)權(quán)重設(shè)置為1。實驗結(jié)果見表12。
表12 F1 值實驗結(jié)果Tab.12 Results of F1 value
由表中數(shù)據(jù)可見:BERT 和BERT_UDA 的分類效果隨著帶標簽數(shù)據(jù)比例的增大而提高,且在任何比例的帶標簽數(shù)據(jù)中,BERT_UDA 的表現(xiàn)均優(yōu)于BERT。由此表明,BERT_UDA 可以從無標簽數(shù)據(jù)中學到知識,尤其在僅僅使用10%的訓練數(shù)據(jù)(396條)時,BERT_UDA 的提升達到4.77%。
分別采用原數(shù)據(jù)和檢索得到的數(shù)據(jù)基于BERT_UDA進行實驗,對數(shù)據(jù)集擴充的有效性進行分析,各實驗所用模型和數(shù)據(jù)集見表13。
實驗結(jié)果如圖2 所示。由此可見,在擴充數(shù)據(jù)集時,采用相同數(shù)量的原數(shù)據(jù)集和檢索得到的數(shù)據(jù)集的F1 值幾乎相同,表明了基于檢索的數(shù)據(jù)集擴充方法的有效性;另外,基于BERT 的模型大約從第二個epoch 開始收斂,而基于BERT_UDA 的模型,大約在第12 個epochF1 值才穩(wěn)定下來。由于訓練集比較小,訓練過程中模型會很快過擬合于訓練數(shù)據(jù),但在測試數(shù)據(jù)上卻表現(xiàn)欠佳。BERT_UDA 之所以能提高模型的表現(xiàn),可能是因為增加的無標簽數(shù)據(jù)延緩了模型的收斂。
圖2 訓練過程中測試集F1 值隨訓練輪次變化曲線Fig.2 F1 value of the test set changes with the training rounds during the training process
本文針對面向主流價值觀的文本質(zhì)量評價任務(wù),依據(jù)主流價值觀對文本質(zhì)量進行定義,自主爬取和構(gòu)建了一個面向主流價值觀的文本質(zhì)量評價數(shù)據(jù)集。為了緩解人工標注數(shù)據(jù)的壓力,以及解決域內(nèi)數(shù)據(jù)獲取困難的問題,本文提出了基于無監(jiān)督數(shù)據(jù)增強框架的文本質(zhì)量評價方法,采用一致性框架,利用反向翻譯對文本進行增強。實驗證明,在數(shù)據(jù)量較小時,能顯著提升模型性能。另外,本文自主構(gòu)建了一個大規(guī)模中文微博檢索庫,并基于該檢索庫對構(gòu)建的數(shù)據(jù)集進行擴充,加入擴充數(shù)據(jù)后,模型在F1 值上提高1.22%。對于未來的工作,一方面是收集更多域內(nèi)數(shù)據(jù),或者構(gòu)建更大規(guī)模的中文檢索庫;另一方面是構(gòu)建主流價值觀的表示,思考將主流價值觀以知識的形式融入模型的新方法。