1. 程式人生 > >論文筆記:SGM: Sequence Generation Model for Multi-label Classification

論文筆記: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),計算如下:

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

文字序列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)ERk×|ν|把wi嵌入成一個稠密的嵌入向量xi,|v|是詞彙表的大小,k是嵌入向量的維度。

我們使用一個bidirectional LSTM從兩個方向上來讀取文字序列x,並且計算每個單詞的隱藏狀態:

我們通過連線兩個方向上的隱藏狀態來得到第i個單詞的最終隱藏狀態,

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

3.2.2 Attention

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

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

3.2.3 Decoder

Decoder在第t時刻的隱藏狀態計算如下:

其中

的意思是g(yt-1)ct-1的連線。g(yt-1)是標籤的嵌入,這裡的標籤指的是在yt-1分佈下的最高概率對應的標籤。yt-1是在t-1時刻在標籤空間L上的概率分佈,計算如下:

其中W,V都為權重引數,ItRL是mask向量,這用於防止decoder預測重複的標籤,f是非線性激勵函式。

在訓練階段,損失函式是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上的帶權平均嵌入。計算如下:

其中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個主題。目標是根據摘要的內容來預測學術論文對應的主題。

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

評估指標

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

分析與討論

Global Embedding的探索

在decoder上使用不同的