DeepMoji: 利用表情符號來理解文本情緒

情緒分類器的應用非常多,例如在分析網路輿情的時候我們常會想要了解留言的評價是偏向正面或是負面。然而像這樣的NLP問題往往需要大量的標記資料,使得從成本的角度來看是不可行的。因此延伸出了一些其他的技巧,例如針對文本伴隨的表情符號或是hashtag來當作情緒標記,再訓練模型理解與情緒相關的語意。

本篇要介紹的DeepMoji即是利用表情符號預訓練(Pretrain)一個情緒語意理解模型,這雖然並不是一種嶄新的作法,但本篇提出的架構以及遷移學習(Transfer Learning)的技巧使其表現在Emotion, Sentiment及Sarcasm Detection等任務上都達到了State-of-the-art。

在繼續介紹下去之前,讀者可以先玩玩看本篇釋出的demo唷。

本篇在訓練資料上是利用Twitter資料集,針對 "word" level 進行斷詞,而當文章中有多個表情符號時,則重複拆成多個相同文章但各自對應其中一個表情符號的形式,因此訓練時僅會是一個Single-label Classification Problem,而非Multi-label。在模型部分則主要採用兩層Bidirectional LSTM Layer,再加上Attension及Skip-connection的機制,如下圖所示:

而作者表示加入Attension及Skip-connection對於最終結果是格外重要的,他們將fasttext類比做缺少上述機制的純Embedding版本,並比較增加更多LSTM神經元的版本。從下表中看到從fasttext到DeepMoji有一個較大的上升幅度,因此可以說明架構的影響是較為明顯的。除此之外,作者也認為這樣的架構在後續做遷移學習時有助於模型在任意時間調用Low-level的資訊。

透過上述的訓練基本上可以獲得一個文本情緒理解的預訓練模型,接著就是要進行遷移學習的部分。在這一部分,本篇也提出了一個簡單的技巧Chain-thaw。簡單的說就是逐步“解凍”可以訓練的參數,如下圖所示,a)先固定其他層,僅訓練新增的最頂層(通常是Softmax) b)接著從最底層開始解凍,僅訓練該層,其他層仍保持"結凍"的狀態 c) 逐步將中間各層一層一層解凍訓練 d)最後全部解凍一起訓練。而之所以會設計這樣的流程是希望盡可能降低遷移學習之後Overfitting的風險,好保留Pretrained Model的特性。關於這些特性,作者指出主要有兩點,首先是Pretrained Model因為有較豐富的訓練資料,Word Coverage較高,在新任務遇到較罕見的字時能提取先前的經驗來推論。另一點則是LSTM所學習到的Phrase Coverage,對於句子理解的影響亦相當大。

最後我們可以看一下遷移後在其他各種情緒相關的語意辨識任務上,DeepMoji都能達到State-of-the-art:

更多細節可參考:
- 原文
- Demo

Share the joy
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

近期文章

近期迴響

彙整

分類

其它

leoyang Written by:

Be First to Comment

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *