天天看點

論文筆記:SGM: Sequence Generation Model for Multi-label Classification

感想

這篇文章是我在參加DeeCamp 2018課程的時候,發現的,當時原作者還隻是研一,就中了一篇CCF B類的Best paper,這篇文章的工作跟我的工作非常的像,不過我沒作者做得多,是以我發的論文的檔次沒他的高,anyway,我也學習一下,找一下靈感,模型的代碼用pytorch寫的,位址為:​​https://github.com/lancopku/SGM​​

1. 介紹

多标簽分類(MLC,Multi-label classification)在NLP領域是一個很重要的任務,它可以被用于許多真實世界場景中,例如文本分類,标簽推薦 (tag recommendation),資訊檢索等等。MLC任務的目标就是為資料集中的每個執行個體指派許多的标簽。

二進制關系(Binary relevance, BR)是解決MLC任務的最早嘗試之一,它把MLC任務轉換成許多個單标簽分類的問題。可是,這種方法忽略了标簽之間的互相關系。Read等人提出了分類器鍊(CC,Classifier chains)方法,它把MLC任務變成了二分類問題鍊,用來對标簽(labels)之間的相關關系模組化。但是,這種方法在大資料集上計算代價非常昂貴。其他的方法,例如ML-DT,Rank-SVM和ML-KNN僅僅可以用于捕獲标簽的一階和二階關系,或者他們在高階标簽相關關系上的計算代價是非常的昂貴的。

在最近幾年,神經網絡在NLP領域取得了巨大的成功,一些神經網絡也應用到了MLC任務重,并且取得了巨大的進步。例如,Zhang和Zhou等人就利用了帶有成對排序損失函數的全連接配接神經網絡。Kurata等人使用CNN和RNN來捕獲文本中的語義資訊。可是,他們要麼忽略了标簽之間的相關關系,要麼沒有考慮到文本内容對預測标簽的貢獻差異。

在本文中,受機器翻譯,抽象摘要(abstractive summarization),風格遷移和其他領域中的sequence-to-sequence模型的巨大成功,我們提出了一個新的序列生成模型,這個模型用一個新的解碼器結果來解決MLC任務。我們提出的序列生成模型包含encoder和注意力機制的decoder。Decoder使用一個LSTM來序列化的産生标簽,并且基于已經預測的标簽來産生下一個标簽。是以,這個模型可以通過LSTM結構考慮到label之間的相關關系。此外,注意力機制考慮到了文本中不同部分對預測的貢獻。此外,我們提出帶有全局嵌嵌入(global embedding)的解碼結構,通過融合整體的資訊信号,來提升模型的整體性能。

2. 貢獻

這篇論文的貢獻列舉如下:

  1. 我們提出把MLC任務變為一個序列生成問題,用以把label的相關關系考慮在内。
  2. 我們提出帶有一個新的decoder結構的序列生成模型,這不僅能夠捕獲标簽之間的相關關系,而且在預測的時候自動選擇最有資訊量的單詞。
  3. 拓展實驗結果顯示我們的方法超過了baseline方法很多。進一步的分析證明我們提出方法在互相關系表示上的有效性。

3. 提出的方法

3.1概覽

首先,我們定義一些符号了并且描述MLC任務。給定有L個labels的label空間L={l1,l2,…,lL},還有一個有m個單詞的文本序列x,MLC的任務是把一個在label空間L中含有n個标簽的子集合y指派給x。和傳統的單标簽分類不一樣,單标簽分類一次隻給每個樣本一個标簽,而MLC任務中每個樣本有多個标簽。從序列生成的角度,MLC的任務就是尋找一個最優的标簽序列y*,來最大化條件機率p(y|x),計算如下:

論文筆記:SGM: Sequence Generation Model for Multi-label Classification

模型的概覽如下圖1。首先,我們把每個樣本的标簽序列根據标簽在訓練集中的頻率進行排序,高頻的标簽放在前面。另外,bos符号加入到了标簽序列的開頭,eos符号加入到了标簽序列的末尾。

論文筆記:SGM: Sequence Generation Model for Multi-label Classification

文本序列x被編碼到了隐藏狀态,然後通過t時刻的注意力機制融合成一個上下文向量(context vector)ct. decoder 利用環境響亮ct,decoder上一個隐藏狀态st-1以及嵌入向量g(yt-1)當成輸入,用來産生t時刻的隐藏狀态st。這裡yt-1是預測的在标簽空間L 上的機率分布。函數g把yt-1當作輸入,産生嵌入向量(embedding vector),随後傳遞到decoder。最後,我們利用masked softmax層來輸出條件機率分布yt。

3.2 序列産生

3.2.1 Encoder

令(w1,w2,…wm)為m個單詞的序列,wi是第i個單詞的one-hot表示。我們首先通過一個嵌入矩陣(embedding matrix)E∈Rk×|ν|把wi嵌入成一個稠密的嵌入向量xi,|v|是詞彙表的大小,k是嵌入向量的次元。

我們使用一個bidirectional LSTM從兩個方向上來讀取文本序列x,并且計算每個單詞的隐藏狀态:

論文筆記:SGM: Sequence Generation Model for Multi-label Classification

我們通過連接配接兩個方向上的隐藏狀态來得到第i個單詞的最終隐藏狀态,

論文筆記:SGM: Sequence Generation Model for Multi-label Classification

這使得狀态具有以第i個單詞為中心的序列資訊。

3.2.2 Attention

當模型預測不同的标簽的時候,并不是所有的單詞貢獻相同。通過關注不同比例的文本序列,聚合有資訊量的單詞的隐藏表示,注意力機制會産生一個上下文向量(context vector)。特别地,注意力機制會把權重αti在第t時刻指派給第i個單詞:

論文筆記:SGM: Sequence Generation Model for Multi-label Classification

為了簡單起見,這篇文章中所有的偏置項都省去了。最終的上下文向量ct,在decoder中第t時刻計算如下:

論文筆記:SGM: Sequence Generation Model for Multi-label Classification

3.2.3 Decoder

Decoder在第t時刻的隐藏狀态計算如下:

論文筆記:SGM: Sequence Generation Model for Multi-label Classification

其中

論文筆記:SGM: Sequence Generation Model for Multi-label Classification

的意思是g(yt-1)和ct-1的連接配接。g(yt-1)是标簽的嵌入,這裡的标簽指的是在yt-1分布下的最高機率對應的标簽。yt-1是在t-1時刻在标簽空間L上的機率分布,計算如下:

論文筆記:SGM: Sequence Generation Model for Multi-label Classification

其中W,V都為權重參數,It∈RL是mask向量,這用于防止decoder預測重複的标簽,f是非線性激勵函數。

論文筆記:SGM: Sequence Generation Model for Multi-label Classification

在訓練階段,損失函數是cross-entropy loss function。我們利用beam search算法在inference的時候來找top-ranked預測。以eos結尾的預測路徑加入到了候選路徑集合。

3.3  Global Embedding

g(yt-1)是label的嵌入,這個label是在yt-1分布下的最高機率所對應标簽得來的。可是,這個計算隻是貪心的利用了yt-1的最大值。我們提出的模型序列化的産生标簽,基于先前預測的标簽來産生下一個标簽。是以,可能我們在第t時刻得到了錯誤的預測,然後我們就會在預測下一個标簽的時候得到了一個錯誤的後繼标簽,這也叫做exposure bias。從一定程度上,beam search算法緩解了這個問題。但是它不能從根本上解決這個問題,因為exposure bias可能會出現在所有的路徑上。yt-1表示在t-1時刻的機率分布,很顯然yt-1中的所有資訊對我們在第t時刻預測标簽是有幫助的。通過考慮所有包含在yt-1中的有效信号,exposure bias問題應該會得到緩解。

基于這個動機,我們提出了一個新的decoder結構,其中在t時刻中的g(yt-1)可以表示第t-1時刻的整體資訊。受highway network中adaptive gate的想法的啟發,這裡我們引入我們的global embedding。令e表示在yt-1分布下具有最高機率的嵌入标簽,e為時刻t上的帶權平均嵌入。計算如下:

論文筆記:SGM: Sequence Generation Model for Multi-label Classification
論文筆記:SGM: Sequence Generation Model for Multi-label Classification
論文筆記:SGM: Sequence Generation Model for Multi-label Classification

其中H是transform gate,用于控制帶權平均嵌入的比例。所有的W為權重矩陣。通過考慮每一個label的機率,模型可以減少先前時間步帶來的錯誤預測的損失。這使得模型預測得更加準确。

Experiments

資料集

Reuters Corpus Volume I (RCV1-V2) :資料集包含800 000手工分類的新聞專線的故事(newswire stories),Reuters Ltd專門為學術目的制作的資料集。每個新聞專線的故事(newswire stories)可以指派多個話題,總共有103個話題。

Arxiv Academic Paper Dataset (AAPD) :我們為多标簽分類建立了一個新的大資料集,我們收集了計算機科學領域内55 840篇學術論文的摘要和主題。一篇學術論文有多個主題,總共有54個主題。目标是根據摘要的内容來預測學術論文對應的主題。

兩個資料集的統計結果如下:

論文筆記:SGM: Sequence Generation Model for Multi-label Classification

評估名額

Hamming-loss :評估誤分類的instance-label對(相關的label沒有預測到或者預測出了不相關的标簽)的比例。

Micro-F1 :可以被解釋為precision和recall的帶權平均。可以由true positives, false negatives和false positives計算得出。

細節

我們從訓練集中提出詞彙表。對于RCV1-12資料集,詞彙表的大小為50 000,out-of-vocabulary (OOV)的單詞用unk進行了代替。每一個文檔長度被裁減為500,inference階段的beam size是5. 此外,word embedding的大小是512, encoder和decoder的隐藏單元的大小分别是256和512。Encoder和decoder的LSTM的層數是2.

對于AAPD資料集,word embedding大小為256,encoder有兩層LSTM,大小為256. Decoder有一層LSTM,大小為512. 詞典的大小為30 000,oov單詞也用unk進行代替。每個文檔的長度為500,inference階段的beam size的大小為9.

使用了adam優化器,dropout等等。最終選擇在驗證集上有最佳micro-F1得分的用于在測試階段的評估。

Results

論文筆記:SGM: Sequence Generation Model for Multi-label Classification

分析與讨論

Global Embedding的探索

在decoder上使用不同的?值的結果如圖2,紅色的線表示使用adaptive gate的結果,符号“+”表示值越高模型越好,符号“-”表示與之相反。

論文筆記:SGM: Sequence Generation Model for Multi-label Classification

Mask和Sorting的影響

下表顯示的是RECV1-V2 測試集合上的Ablation study,GE表示global embedding。HL和F1表示hamming loss和micro-F1. “+”表示值越高,模型效果越好;“-”表示與之相反。↑b表示模型性能提升,↓表示與之相反。“w/o mask” 表示我們不做mask操作;“w/o sorting”表示我們随機打亂标簽序列以擾亂其原始的順序。

論文筆記:SGM: Sequence Generation Model for Multi-label Classification

誤差分析

論文筆記:SGM: Sequence Generation Model for Multi-label Classification

LLS代表the length of the label sequence,BR代表  Binary Relevance模型。

注意力可視化

參考文獻