顧天飛,彭敦陸
(上海理工大學 光電信息與計算機工程學院,上海200093)
文本分類是自然語言處理領域中的一項重要任務,是構建信息檢索、對話機器人等復雜系統的基礎.多分類假設類別之間是互斥的,即一篇文檔有且只能歸屬于單個類別.而事實上,對象是多語義的,比如一篇新聞能同時標注上“體育”和“足球”標簽.所以,多標簽更適合用來對現實問題進行建模,并有其實際的應用背景和學術價值.
多標簽學習存在多標簽分類和標簽排序兩類任務[11],前者將標簽集劃分為與樣本相關和不相關兩部分,后者則預測標簽之間的前后關系.上述兩項任務存在共通性,多標簽分類和標簽排序之間是可以相互轉換的,文獻引入校準標簽對排序的標簽進行劃分[14],而采用判別模型完成多標簽分類時,樣本對標簽的后驗概率天然具有可排序性[5].故而,學界和業界開始嘗試將兩項任務聯合起來進行解決,并運用于不同的應用領域[6,9,16].大體上,這類方法基于以下思想,得分較高的標簽更能體現樣本的語義,模型應使正標簽集排在負標簽集之前,這樣篩選出來的標簽也更加精準[16],從這一角度看,標簽排序考慮到了標簽的相對關系.
對于文本處理,過去的研究普遍采用文本特征手工提取的方式[19,20].得益于深度學習的發展,端到端的深度表征模型已成為當今的主流[1-5,7,8,15].與此同時,深度模型的性能受到標注數據缺失和語義提取不足的限制.為此,本研究引入遷移學習,將BERT[1]作為模型的特征提取部分,將多標簽分類和排序共同納入考慮,利用標簽之間的相對關系來增強多標簽預測的有效性.文獻普遍采用錯誤排序統計[10]和鉸鏈損失[9]刻畫多標簽排序誤差,但這些損失函數通常難以優化,尤其在深度模型的背景下.故本文采用一種替代的配對排序損失,該損失函數在實數域上可微,同時也是鉸鏈損失的邊界.此外,為了更準確地獲得文本實例對應的標簽集,標簽的篩選被看作為一項二值分類,用一個輔助網絡構建篩選標簽的閾值.
本文的貢獻如下:1)將遷移模型BERT運用于文本多標簽學習;2)提出配對排序目標函數對標簽排序任務進行建模,并給出了相應的理論分析.最后,為了決斷出精準的標簽集,算法引入額外的輔助網絡進行閾值預測.
一般地,解決多標簽任務存在兩類思路,問題轉換和算法適應[11].前者將多標簽學習轉化為二值分類[11]、多分類[12]或標簽排序[14],后者則修改現有的學習算法以適應多標簽領域[13].上述技術主要集中于傳統機器學習,往往存在嚴重的性能瓶頸,計算規模和標簽空間呈正比[10-14].如今,神經網絡在模式識別領域獲得了巨大的成功,其中很大一部分運用到了多標簽學習中[3,5-9].
傳統的文本分類算法受限于語義和句法信息提取能力的不足,深度模型已經成為了該領域的主流.文獻[15]率先采用詞向量word2vec[17]進行詞嵌入和卷積神經網絡作為特征提取器,獲得了顯著的性能提升.該模型奠定了深度文本分類的一種范式,即模型一般由詞嵌入層、銜接模型和分類器三部分組成.如何通過海量的語料庫無監督學習到詞的表示是一項熱門研究,Word2vec[17]通過對詞語上下文和語義關系進行建模,將詞語嵌入到稠密的歐式空間中.BERT[1]由多層Transformer[4]構建而成,能解析出更深層的語義,并能適用于各項下游任務.
文本多標簽學習需要考慮到兩方面,文本信息的提取和標簽之間的相關性,現有的研究基本上是圍繞這兩方面展開的.一部分研究構建了基于卷積神經網絡的模型[5,7,8],文獻[3]采用了二值交叉損失對多標簽進行建模,文獻[8]引入指示神經元對標簽共現進行建模,以利用標簽的信息,文獻[5]將標簽預測看作為序列生成,引入循環神經網絡構建標簽之間的關系.文本序列的各個位置對標簽的影響是不同的,SGM[3]利用注意力機制加強模型的關注性.
排序學習的目的是通過機器學習算法對項目進行排序,在信息檢索、推薦系統中運用極為廣泛.多標簽學習存在以下假設,與樣本相關的標簽在排序上高于不相關的標簽,所以排序任務能很好的刻畫這種標簽關系.文獻[16]最早將文本多標簽分類看作為一項排序任務,并利用配對排序損失刻畫誤差,但文獻僅在多層感知機模型上驗證了損失函數的有效性.配對排序損失也可以應用于圖像檢測領域[6,9],但研究中普遍采用的鉸鏈損失存在訓練困難的問題.為了彌補上述缺點,本研究在深度文本多標簽學習背景下,嘗試了語言模型的遷移學習,并著重了探討了配對損失的使用.
本章將首先給出問題的定義,然后提出結合BERT的文本特征提取模型,最后給出配對排序和標簽閾值預測的設計,以及相關的目標函數.
定義1.多標簽排序任務,給定樣本x,若s*為理想的映射函數,則需滿足以下性質:
(1)

在深度自然語言處理中,一個端到端模型一般由以下幾個步驟組成,首先將原始文本序列嵌入至稠密的表征詞嵌入h1,h2,…,hl,其次通過銜接模型將詞嵌入序列轉化為定長的表征向量,最終輸入到文本分類器中.對詞嵌入表征的研究和應用向來受到學界和業界的廣泛關注,通過預訓練詞向量使詞嵌入涵蓋語義和語法信息.然而,類似于Word2vec詞向量模型存在無法解析一詞多義,上下文信息缺失等缺點,往往對性能的提升并不明顯.BERT作為一種語言遷移模型,可以較好地彌補上述缺陷.
在詞嵌入階段,bert(·)將原始文本序列x中的每個元素映射到固定尺寸的嵌入,映射方式如下:
h1,h2,…,hl=bert(w1,w2,…,wl)
(2)
這里,h∈d,d>L的維度由bert(·)決定.銜接模型用于對嵌入進行整合,文獻中,通常會壘砌大量模型[5,15],對于這一環節本研究不做過多地復雜化,采用均值操作mean(·)將嵌入序列轉化為d維的特征向量f:
(3)
接下來,考慮標簽相關性得分的建模,由d維特征向量向L維向量映射,形式化為:
s=relu(Wsf+bs)
(4)
其中,Ws∈L×d為權重矩陣,bs∈L為偏置向量.式(4)中的relu(·)為神經網絡的激活函數.至此,對某個輸入樣本x,便能得到模型對各個類別的打分s,即為類別對樣本的相關性.多標簽和多類別分類在判決函數上存在一定差異.多類別假設類別之間是相互獨立的,故而往往取得分最大的類別作為輸出標簽.在多標簽分類中,每個實例對應的標簽數是不同的.簡單的做法是取前k最大得分或設置全局閾值(將得分大于某一閾值的標簽篩選出來),這些方法會造成額外的預測誤差.本研究將采取一種更靈活的做法,即讓g(·)作為一項可學習的函數,為每個標簽自動地學習得到適應于樣本特征f的閾值.閾值建模類似于標簽相關性得分模型:
θ=relu(Wthrf+bthr)
(5)
模型的預測同時依賴于式(4)和式(5):
(6)
上式中,si,k表示樣本與標簽的相關性得分si的第k分量,θi,k表示閾值的第k分量.圖1為模型的整體框架.
上節介紹了結合語言遷移模型的多標簽分類模型,本節將引出如何對模型參數進行優化.形式上,需要解決如下優化問題:
(7)
這里,l為每個樣本上的損失項,R為模型參數的正則項,Φs=[Ws,bs]為標簽相關性得分模型的參數.在訓練式(7)時,解凍bert,對其進行參數微調.由定義1可得,屬于Y的標簽得分需盡可能地大,反之亦然.借鑒三元損失,易對損失進行建模:

圖1 算法框架Fig.1 Architecture of algorithm
(8)
式(8)采用了鉸鏈損失,α是一項超參數,用來設定相關與不相關標簽之間的邊界.該損失函數是非光滑的,在x=0處不可微,從而造成了優化的困難.為解決上述問題,本研究考慮引入替代損失:
(9)

圖2 損失函數ls的性質Fig.2 Property of loss function ls
上式中,β是常系數.替代損失式(9)是式(8)光滑的近似.由圖2中實線可見,該損失函數為實數域上處處可微的凸函數,在+上為鉸鏈損失的邊界,當且僅當,β=ea-1.此外,β值越小,則實線越接近y=0.章節4給出了相應的梯度求解,并且從經驗誤差最小化和貝葉斯最優預測角度進行理論分析.

(10)
式(5)為閾值回歸模型,根據樣本特征為每個標簽學習篩選閾值θ,并通過式(6)得到最終的預測標簽集.對某個標簽來說,預測可以轉換為一項二值問題,得分大于閾值為正樣本,反之作為負樣本.于是,閾值參數的目標函數可以寫成以下形式:
(11)

本章首先對優化目標函數進行梯度計算,考慮式(10)對sm和sn的梯度為:
(12)
(13)
整合式(12)和式(13)可以得到:
(14)
這里,ξn,m為L維向量,其中第n項為+1,第m項為-1,其余項為0,以上計算結果說明說明了目標函數在實數域上式處處可微的.文獻[18]從經驗誤差最小化和貝葉斯最優預測角度,證明了排序統計的有效性.相同地,對損失函數式(9)進行理論分析,式(10)作為簡化版本同理可得.考慮貝葉斯預測準則:
sk(x)=p(k∈Y|x)=∑Y∈y,k∈Yp(Y|x)
(15)
上式決定了標簽λk的得分即相應的排序,p(k∈Y|x)為標簽域中所有可能的標簽集的邊際分布.
定理1.采用損失函數式(9)能達到經驗損失最小化.
證明:考慮損失函數經驗誤差最小化:
R(s)=[ls(s(x),Y)]
(16)
將式(16)改寫成條件經驗損失的形式:
R(s|x)=[ls(s(x),Y)|x]
(17)
這里,γm,n=ln (1+esTξm,n).現需找到使經驗損失最小化的得分函數s*,即盡可能滿足定義1.計算式(17)的一階和二階導:
(18)
(19)

(20)
(21)
替換式(21)中的(n,m),得到:
(22)
(23)


(24)
式(24)易得p(m∈Y|x)>p(n∈Y|x),基本滿足貝葉斯預測準則.綜上,以式(9)作為排序損失,能達到經驗損失最小化.
本章節將在真實的中文文本數據集上驗證本文所提算法的性能,實驗首先對比了不同的標簽決斷方法和損失函數的表現,最后與一些主流的方法進行比較.
本實驗選用了法研杯比賽CAIL2018(1)https://github.com/thunlp/CAIL罪名預測任務,來進行算法驗證.為減少訓練時間,選取了187100份樣本,并根據8∶1∶1的比例將數據集劃分為訓練集,測試集和驗證集.多標簽數據集存在額外的性質,表1給出相關的信息.在文獻中,Card和Dens分別表示樣本所屬標簽平均數量和標簽密度.標簽集數量較大說明存在大量標簽共現的情況,如何利用上標簽的關系顯得額外重要.

表1 多標簽信息Table 1 Data set information
1)實驗平臺:本研究中所有的代碼都由Python編寫,模型基于Tensorflow搭建.采用哈工大提供的BERT(2)https://github.com/ymcui/Chinese-BERT-wwm預訓練模型,該版本在海量的中文語料庫上完成訓練,并在各項中文任務驗證了其有效性.設備系統為Ubuntu16.04,配備兩塊NVIDIA GeForce 1080Ti顯卡,內存為64G.
2)數據預處理:原始文本數據已經做了脫敏處理,本實驗將作進一步地優化,去除了文檔中的特殊符號,西文字符等.由于文書是存在格式的,其中有些子句實際上是無用的,比如“人民檢察院指控”,“公訴機關指控”或者文書審理日期等,實驗中將上述字符串從文檔中剔除.為處理數據集存在的多標簽不平衡問題,這里首先按照50:50的比例將標簽集劃分為多數類和少數類,并對少數類進行上采樣處理.
3)實驗參數設置:第一階段對標簽得分模型進行優化,該階段解凍bert的參數,做參數微調.第二階段凍結bert,僅對閾值模型進行優化.兩個階段皆采用ADAM優化器,學習率設置為0.001.BERT模型輸入序列的尺寸上存在限制,最大輸入為512,訓練中將長文本按200字符為單位進行分割,模型預測過程中,將由各個劃分的特征均值作為完整文本的特征.式(10)配對子采樣的數量為120.由式(14)可知,超參數β是一項平滑參數,對梯度的尺度和訓練的收斂性存在一定影響,與學習率的功能是相似的.β過大會使損失函數趨向于線性,過小則趨向于為零,在超參數調優過程中,嘗試了區間0.1至2都能使訓練收斂,故方便起見這里設置為1.
4)評價指標:本研究同時考慮到了多標簽的分類和排序兩方面,所以實驗也將從這兩方面對預測結果進行評估.下面所闡述的評價指標都參考自文獻[11],采用宏觀和微觀F1得分衡量分類性能:
(25)
(26)
這里,eval=2·prec·recall/(prec+recall)為F1得分,用于調和準確率prec=TP/(TP+FP),召回率recall=TP/(TP+FN).在以上式子中,TP表示為真正樣本,FP為假正樣本,TN為真負樣本,FN為假負樣本.用排序誤差衡量排序性能:
RankL=
(27)
排序損失RankL統計預測結果中的對誤排標簽對,數值越小越好.
本章節將通過實驗評估本文所提算法的有效性.
實驗1.不同標簽決斷方法
在章節3.2中提到了其它兩種標簽決斷方法,Top-k和全局閾值,在使用中,k值取1、3和5,閾值從0.05-0.95按照0.01為間隔,表2展示測試集上最優得分.值得注意的是,本文提出的得分模型其輸出是映射到實數域上的,所以通過sigmoid將其約束到概率空間中.相對來說,宏觀和微觀指標衡量了模型的整體分類性能,對標簽的誤選較為敏感,Top-k和全局閾值是靜態的刷選策略,而沒有考慮到了樣本特征本身所攜帶的信息,從而造成得分上的下滑.并且,在使用這些算法的時候往往會遇到超參的優化問題.表2中的結果說明在多標簽領域,標簽決斷對最終預測結果的影響非常大.相比于全局閾值,閾值預測方法在分類指標上能提供2%的提升,排序指標上也是表現最優的.

表2 標簽決斷技術的對比Table 2 Comparison of label decision
實驗2.不同訓練方式
本實驗將配對排序損失和其它幾種目標函數進行比較:
1)二值交叉損失[5](BCE):
(28)
BCE相當于標簽轉換,類似于參數共享的二值分類模型;
2)鉸鏈損失式(8);
3)BP-MLL[8]基于指數損失.為了確保方法之間的可對比性,實驗采用同一套數據預處理技術,并且默認采用閾值預測技術.表3展示了各種訓練方式之間的性能對比.可以看到BCE在微觀指標上的表現略微占有,但在其余指標上,文本的算法存在競爭性的優勢.這是由于BCE注重整體的分類誤差,配對排序損失則考慮錯誤的排序對.宏觀指標是標簽F1得分的平均,本文的算法在MacroF1上的優勢也體現了數據不平衡對配對排序損失的影響較低.

表3 訓練方式之間的對比Table 3 Comparison of training approaches
實驗3.不同模型進行對比
前兩項實驗分別從標簽決斷和訓練方式做了對比,本實驗將選取一些常用的多標簽算法進行完整的對比:
1)二值相關BR[11]為每個標簽訓練一個SVM分類器;
2)ML-KNN[13]將KNN拓展到多標簽領域,是一種惰性學習器;
3)卷積神經網絡CNN[5]是最常用的深度文本模型;
4)CNN-RNN[7]采用循環神經網絡對標簽之間的關系進行建模.
接下來將對上述算法的執行流程做一定闡述,對于詞級模型,首先中文文書進行分詞,算法1)2)采用TF-IDF算法進行特征提取,算法3)4)則將詞嵌入至定長向量.

表4 不同算法性能對比Table 4 Performance comparison of different algorithms
表4展示了在全數據上,不同算法之間的性能比較.圖3展示了在不同比例數據集上的分類性能.實驗結果顯示,隨著數據規模的增大,深度學習算法能獲得更好的表現.相比于另兩種深度模型CNN和CNN-RNN,本文提出的算法的整體性能都較優.這是由于研究在文本特征提取和標簽決斷上都做了考慮.遷移的BERT模型能提供數據集之外的語義知識并且具有更多的參數量,由圖3可見,模型表現受到數據集尺寸的波動較小.配對排序損失能鋪捉到標簽之間的排序關系,使相關度較高的標簽能獲得更大的得分,同時,自適應的標簽閾值學習能幫助算法得到更精準的預測結果.

圖3 不同比例數據集上的對比Fig.3 Comparison with different dataset proportion
多標簽文本學習能幫助用戶對文檔進行有效管理,加強多媒體系統的可用性.傳統的,基于機器學習的算法受限于特征提取和模型容量,存在嚴重性能瓶頸.本文提出的算法利用中文BERT預訓練語言模型對文書進行特征提取,模型架構上更精煉且高.算法選用配對排序損失作為目標函數,以鋪捉到標簽之間的關系.此外,為了更精準地得到結果,引入輔助的閾值預測模型,對標簽預測進行建模.實驗在法條預測和罪名推薦兩項任務上驗證了算法的有效性.作為自然語言處理的一項子任務,BERT對多標簽文本分類也是適用的,將閾值預測看作一項學習任務,相比Top-k和全局閾值,在測試集上表現更優異.未來我們將在更多的多標簽數據集上對算法進行驗證,并將對標簽之間的相關性做進一步探討.