圖1. 賽題任務(wù)介紹
2方案概述
首先是數(shù)據(jù)分析,我們發(fā)現(xiàn)比賽數(shù)據(jù)的特點是微博口語化嚴重、存在表情符、配圖隨意性強,而且存在分類標準模糊、圖片和文本數(shù)據(jù)混合等眾多挑戰(zhàn),具體見下圖2。
圖2. 比賽數(shù)據(jù)特點(微博)在比賽過程中,我們分析出了此次賽題的三個挑戰(zhàn),首先是文本情緒的分類標準較為模糊,且文本字段中有較多干擾;其次圖片特征和時間戳特征需要考慮到模型中去;除此技術(shù)方面的挑戰(zhàn)之外,此任務(wù)為文本分類典型任務(wù),競爭非常激烈。我們的參賽方案中結(jié)合當下流行的深度學(xué)習(xí)和文本處理方法,構(gòu)建了情緒識別模型,整體技術(shù)路線見下圖3。
圖3. 比賽方案的整體技術(shù)路線在接下來的內(nèi)容中,我們首先介紹了在數(shù)據(jù)探索和方案策略上的工作,然后介紹本方案的最終算法策略,主要包括:1. 數(shù)據(jù)探索(包括數(shù)據(jù)清洗和數(shù)據(jù)增強);2. 多模態(tài)特征融合;3. 機器學(xué)習(xí)技術(shù)(包括半監(jiān)督學(xué)習(xí)偽標簽法和Post-training方法);4. 對抗訓(xùn)練;5. 模型集成,下面展開詳細介紹。
3數(shù)據(jù)探索
數(shù)據(jù)探索主要包括數(shù)據(jù)清洗和數(shù)據(jù)增強兩部分。
數(shù)據(jù)清洗首先我們經(jīng)過統(tǒng)計分析發(fā)現(xiàn)諸如”轉(zhuǎn)發(fā)微博”、”網(wǎng)頁鏈接”和”展開全文”這些關(guān)鍵字與預(yù)測結(jié)果沒有相關(guān)性,實驗結(jié)果說明,應(yīng)該直接用空字符串替換,畫圖分析結(jié)果如下圖4所示;其次是發(fā)現(xiàn)微博內(nèi)容中有諸如回復(fù)**和@**這樣的結(jié)構(gòu),后面的**表示人名,而人名往往很長,這些無意義的字會對語義產(chǎn)生干擾,我們統(tǒng)一將這兩個?結(jié)構(gòu)用@這一個字符進行替換;另外,我們還對文字進行了繁簡替換處理以及刪除重復(fù)數(shù)據(jù)條目處理。
數(shù)據(jù)增強
數(shù)據(jù)增強我們嘗試了兩種方式,第一種是同義詞替換、隨機插入、隨機交換、隨機刪除結(jié)合的方式,代碼參考了方法[1];第二種是回譯法,即將訓(xùn)練集中的文本數(shù)據(jù)通過百度翻譯API翻譯成英文和日文后,再翻譯成中文,得到新數(shù)據(jù)集后對原有訓(xùn)練集做數(shù)據(jù)擴充。在數(shù)據(jù)探索的實驗中,我們將原訓(xùn)練集劃分成了訓(xùn)練集、測試集和驗證集,下表是數(shù)據(jù)增強的實驗結(jié)果,發(fā)現(xiàn)效果并不理想。
4多模態(tài)融合
我們嘗試采用DenseNet121在ImageNet數(shù)據(jù)集上的預(yù)訓(xùn)練權(quán)值作為圖像特征提取器,BERT-Base模型輸出結(jié)果做stacking之后發(fā)現(xiàn)并無提升。另外,我們采用DenseNet121在本數(shù)據(jù)的圖片數(shù)據(jù)集上進行分類訓(xùn)練,分類效果對比隨機得分有較大提升,但是將結(jié)果集查看分布得知,該網(wǎng)絡(luò)結(jié)構(gòu)并不能從圖片中有效提取本賽題的特征,預(yù)測結(jié)果分布如下圖5,可知預(yù)測都為0值,說明圖片特征在本賽題中無明顯效果。
我們對多模態(tài)融合為什么效果不好進行了具體的分析,詳細的原因見下圖6。
5機器學(xué)習(xí)技術(shù),半監(jiān)督學(xué)習(xí)偽標簽法
由于本題中提供了90w未標記數(shù)據(jù),為了充分利用數(shù)據(jù),我們利用偽標簽法,使用已訓(xùn)練的模型對90w數(shù)據(jù)進行一次性預(yù)測,生成標記結(jié)果,然后從90w數(shù)據(jù)集中選取置信度較高的混入到標記數(shù)據(jù)中進行訓(xùn)練。同時我們還多次調(diào)整了混合比例,但發(fā)現(xiàn)該方法提升不明顯,分析原因如下圖7所示:圖中為預(yù)測第三列(-1,0,1)數(shù)據(jù)分布,可見0(中性)的分布和1、-1兩類相比有很大不同,說明要判斷為1和-1的數(shù)據(jù)置信度較低,當該數(shù)據(jù)混入原標記數(shù)據(jù)中訓(xùn)練的時候會將誤差放大。
圖7. 預(yù)測第三列(-1,0,1)數(shù)據(jù)分布Post-training方法接下來,重點介紹一下我們在本次比賽當中使用的Post-training方法,該方法來自論文[4],它的主要思想是結(jié)合領(lǐng)域數(shù)據(jù),對BERT-Base模型進行微調(diào),學(xué)習(xí)該領(lǐng)域知識,改進BERT-Base模型與特定領(lǐng)域的匹配程度,因為BERT-Base模型是通過維基百科語料訓(xùn)練的,所以它缺乏特定領(lǐng)域的知識,例如本次比賽中的微博數(shù)據(jù)知識。經(jīng)過實驗,Post-training是比較有效果的,相比BERT-Base模型,大約有0.8個百分點的F1值提升。
6對抗訓(xùn)練
為了提升模型的預(yù)測穩(wěn)定性,我們還采用了對抗訓(xùn)練的技術(shù)。它的主要思想是提升模型在小擾動下的穩(wěn)定性,比如下圖6中的每一個點代表一個數(shù)據(jù)樣本,它通過對抗訓(xùn)練之后,可以明顯看到每一個數(shù)據(jù)點都落在一個小的坑里面,這樣它的模型泛化能力就被增強了。
近年來,隨著深度學(xué)習(xí)的日益發(fā)展和落地,對抗樣本也得到了越來越多的關(guān)注。NLP中的對抗訓(xùn)練是作為一種正則化手段來提高模型的泛化能力。對抗樣本首先出現(xiàn)在論文[3]之中。簡單來說,它是指對于人類來說”看起來”幾乎一樣、但對于模型來說預(yù)測結(jié)果卻完全不一樣的樣本。
其中D代表訓(xùn)練集,x代表輸入,y代表標簽,θ是模型參數(shù),L(x,y;θ)是單個樣本的loss,Δx是對抗擾動,Ω是擾動空間。這個統(tǒng)一的格式首先由論文[3]提出。實驗結(jié)果顯示:在Embedding層做對抗擾動,在很多任務(wù)中,能有效提高模型的性能。進行對抗學(xué)習(xí)的時候,我們需要將dropout設(shè)置成0,即固定網(wǎng)絡(luò)結(jié)構(gòu),使得對抗學(xué)習(xí)在固定的網(wǎng)絡(luò)結(jié)構(gòu)中進行。通過我們的實驗,在比賽中的效果大約能夠提升0.5個百分點。
7模型集成
多折模型集成
我們采用了F1值適應(yīng)優(yōu)化以及多折模型融合的技術(shù),這兩個技術(shù)都有明顯的效果提升。F1值適應(yīng)技術(shù)的主要思想是準確度最高的模型,它的F1值并非最大,所以我們在輸出結(jié)果的時候,前面乘一個權(quán)重,然后通過非線性優(yōu)化的方法使得F1值最大。在模型融合方面,經(jīng)過實驗,5到7折能夠取得最好的效果。
詞向量模型
將標記數(shù)據(jù)、未標記數(shù)據(jù)和測試集合中的文本數(shù)據(jù)合并后作為詞向量的訓(xùn)練語料,得到詞向量文件。經(jīng)過觀察,該詞向量質(zhì)量較好,例如查看”發(fā)燒”的近義詞,系統(tǒng)輸出如下:[(‘低燒’, 0.705), (‘流鼻涕’, 0.651), (‘高燒’, 0.635), (‘鼻塞’, 0.630), (‘發(fā)高燒’, 0.627), (‘喉嚨痛’, 0.609), (‘拉肚子’, 0.599), (‘嗓子疼’, 0.575), (‘感冒’, 0.574), (‘發(fā)熱’, 0.570)]。
本方案中嘗試了五種基于詞向量的深度學(xué)習(xí)模型:1. 一維卷積模型;2. 多個不同的卷積核的模型;3. RNN模型,4. 雙向GRU模型;5. 有注意力機制的RNN模型,經(jīng)過測試,發(fā)現(xiàn)得分均沒有能超過BERT-Base模型。之后還嘗試與BERT-Base模型做stacking集成,得分相比BERT-Base也有下降。
8整體方案
通過各種技術(shù)的嘗試和實驗,我們最終的算法方案是Post-Training、對抗訓(xùn)練、F1適應(yīng)優(yōu)化和模型集成等多種技術(shù)的融合,取得了A榜第一、B榜第二的良好成績,整體方案的流程圖如下圖10所示,該方案在執(zhí)行效率方面,算法離線模型訓(xùn)練只需要40分鐘,實時預(yù)測速度為0.1秒,執(zhí)行效率高,實用性強。
內(nèi)容小結(jié)
最后,我們總結(jié)一下本算法方案的應(yīng)用有效性、價值潛力和創(chuàng)新性。在應(yīng)用效果方面,該算法的F1值在A榜第一,B榜第二,均排名前列,有很好的應(yīng)用效果;在價值潛力方面,該算法的應(yīng)用效果好、執(zhí)行效率高、擴展性好,因此非常容易落地,有良好應(yīng)用前景;在技術(shù)新穎性方面,本方案采用了對抗攻擊提升模型穩(wěn)定性,采用Post-Training技術(shù)提升預(yù)訓(xùn)練模型和特定領(lǐng)域匹配度,達到良好的效果。