基于注意力机制的循环网络进行层级性多元标签文本分类
1 前言
今天分享一篇做層級性多元標簽文本分類任務的paper,題目為:,論文是發表在2019年CIKM上,下載地址為:https://base.ustc.edu.cn/pdf/Wei-Huang-CIKM2019.pdf,論文也公開了源碼:https://github.com/RandolphVI/Hierarchical-Multi-Label-Text-Classification。從題目也能看出,論文的核心是作者提出Attention-based Recurrent Network方法來解決多標簽分類任務中層級性問題。
參考上圖,論文將HMTC任務定義為:
定義1:Hierarchical Structure γ\gammaγ .
C=(C1,C2,...,CH)C=(C^1,C^2,...,C^H)C=(C1,C2,...,CH),其中CCC為categories label集合,H為label的層級數量,CiC^iCi為第i層label的集合。
定義2:HMTC Problem
給定文檔集合DDD,及相關的層級標簽結構γ\gammaγ,HMTC問題可以轉成學習一個分類模型Ω\OmegaΩ進行標簽預測,即為:
Ω(D,γ,Θ)→L\Omega(D,\gamma,\Theta) \to LΩ(D,γ,Θ)→L
其中Θ\ThetaΘ 為要學習的參數,Di={w1,w2,...,wN}D_i=\{w_1,w_2,...,w_N\}Di?={w1?,w2?,...,wN?} 為第iii個文本,有NNN個序列詞組成;對應Li={l1,l2,...,lH}L_i=\{l_1,l_2,...,l_H\}Li?={l1?,l2?,...,lH?},lil_ili?為第iii層標簽集合。
其實,文中解決HTMC任務場景是有一定限制的:對應輸入的文本x來說,它在H層標簽體系中,每層都是有標簽的,而且每層標簽的數量是1個或多個。
2 模型
上圖為論文的整體模型架構圖,分為三層:(1)Documentation Representing Layer (DRL)——進行文本和層級標簽的表征學習;(2)Hierarchical Attention-based Recurrent Layer (HARL)——使用注意力機制,讓學習的文本向量和標簽向量進行循環學習,交互;(3)Hybrid Predicting Layer (HPL)——混合方式進行標簽預測。下面重點介紹這三部分內容。
2.1 Documentation Representing Layer
在文本表征上,先使用worde2vec獲取詞向量,然后使用Bi-LSTM網絡進行表征學習,學習得到序列向量VVV
在后續操作上,作者使用了基于詞的平均池化操作(word-wise average pooling operation),將VVV變成V~\tilde{V}V~
在層級標簽表征上,是使用lookup方式生成初始化矩陣標SSS
最后,將表征學習到的VVV和SSS進行拼接,進入下一個layer進行學習。
2.2 Hierarchical Attention-based Recurrent Layer
這一層是論文核心的體現,其主要思想就是:將第一個layer學習的向量接入一個rnn網絡,該網絡的內部是HAM結構,而HAM在文中稱為Hierarchical Attention-based Memory,意思就是基于attention的層級記憶單元。另外,這個循環網絡的節點數應該就是標簽的層級數,如數據集的標簽有5個層級,那么這一層的rnn節點就為5,可以理解為一層接著一層進行遞進式學習,像標簽的層級結構一樣。
上圖為HAM示意圖,有點類似LSTM結構,其有三部分組成: Text-Category Attention (TCA),Class Prediction Module (CPM),Class Dependency Module(CDM),其計算公式為:
其中raath,Watthr_{aat}^{h},W_{att}^hraath?,Watth? 分別代表h-level層的文本與標簽交互信息,與h-level層文本與標簽交互的attention權重。
PLh,ALhP_L^h,A_L^hPLh?,ALh?分別代表h-level層標簽預測的概率,與h-leve層模型整體表征的信息。
ωh\omega^hωh為h層學習到的信息,作為記憶信息,進行傳遞學習用。
Text-Category Attention
上圖為Text-Category Attention計算圖,其主要目標是讓輸入的文本與各層級的標簽進行交互學習,使用的方法類似注意力機制,計算公式對應如下:
看著上圖覺得挺復雜的,其實計算起來很簡單,VhV_hVh?是利用上一層的信息進行更新,可以理解接受上一層與label相關用的信息;Oh,WatthO_h,W_{att}^hOh?,Watth?是計算輸入的文本與第h層標簽的attention,后者為權重值;Mh,ratthM_h,r_{att}^hMh?,ratth?為計算帶標簽的文本信息,并平均方式得到最終的文本表征信息。
Class Prediction Module
該模塊目的為:將原始文本語義表示與引入前一層信息的關聯文本類別表征相結合,生成整體的表征并預測每一層的類別,下為更新公式:
Class Dependency Module
該模塊目的為:通過保留各層級的層次信息,對不同層次之間的依賴關系進行交互傳遞學習,其主要意思想學習到文本中每個序列的詞對各級label的關聯程度,并將信息進行循環學習。
2.3 Hybrid Predicting Layer
利用第二層的信息進行混合預測,為何是混合預測?原因為:在作者看來,前面學習的每層PLhP_L^hPLh?預測只是局部的預測,需要將每次的信息融合起來進行一個全局的預測PGP_GPG?:
接著將局部預測值和全局預測值加權作為最終預測的值PFP_FPF?:
此處閾值$\alpha $取0.5,認為局部與全局同樣重要。
2.4 Loss Function
在預測的時候使用了局部預測和全局預測,作者就對應做了兩個loss function,第一個是每個層級的label預測的損失,第二個是全局label預測的損失,最后二者加起來并加一個L2正則作為最終的loss。
3 Experiment
論文使用了兩個數據集進行了實驗,對比的方法是設置了不同的變體進行對比,并未跟先前類似的paper試驗進行比較,各個變體的詳情可以閱讀論文。
上面兩種表圖都是體現文中提出的HARNN模型得到最佳結果,表現論文提出方法的有效性,具體試驗結果建議有興趣讀者去githup看看源碼。
4 簡單總結
(1) 在做層級性多元標簽文本分類時,文中提出的基于層級數量進行循環學習的方式是值得借鑒的,因為層級性label在父類與子類上是有共性和差異性。
(2) 文中提出的局部預測和全局預測融合的思路也是挺好的,吻合提出的框架結構特性。
(3) 在HAM結構上,有一定的參考意義,但個人覺得有點過于復雜,可以類似GRU結構,設計一個更為簡單的處理流程。
(4) 如果處理有些樣本并不是每個層級都有對應的label的數據場景時,該模型框架可能需要重新的調整。
更多文章可關注筆者公眾號:自然語言處理算法與實踐
總結
以上是生活随笔為你收集整理的基于注意力机制的循环网络进行层级性多元标签文本分类的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux内核 频率,Linux内核中C
- 下一篇: go 删除 文件 某行_Go实战--用e