將句子表示爲向量(下):基於監督學習的句子表示學習(sentence embedding)

1. 引言

上一篇介紹了如何用無監督方法來訓練sentence embedding,本文將介紹如何利用監督學習訓練句子編碼器從而獲取sentence embedding,包括利用釋義數據庫PPDB、天然語言推理數據SNLI、以及綜合利用監督訓練數據和無監督訓練數據。html

2. 基於釋義數據庫PPDB

2015發表的論文Towards universal paraphrastic sentence embeddings提出使用PPDB(the Paraphrase Database)來學習通用的sentence embeddings。論文模型的基本流程是輸入mini-batch的釋義對\(<x_1, x_2>\)集合\(X_b\),並經過對\(X_b\)中的句子進行採樣獲得\(x_1,x_2\)對應的負樣本\(t_1, t_2\),將這四個句子經過編碼器(編碼函數)\(g\)獲得句子編碼,而後使用一種 margin-based loss進行優化,損失函數的基本思想是但願編碼後的釋義對\(<x_1,x_2>\)可以很是相近而非釋義對\(<x_1,t_1>\)\(<x_2,t_2>\)可以有不小於\(\delta\)的間距。對於全體訓練數據\(X\),目標函數以下,其中\(\lambda_c,\lambda_w\)爲正則化參數,\(W_w\)爲word embedding參數,\(W_{w_{initial}}\) 爲word embedding初始化矩陣,\(W_c\)是除了\(W_w\)後的其餘參數。
\[ \min _ { W _ { c } , W _ { w } } \frac { 1 } { | X | } \left( \sum _ { \left\langle x _ { 1 } , x _ { 2 } \right\rangle \in X } \max \left( 0 , \delta - \cos \left( g \left( x _ { 1 } \right) , g \left( x _ { 2 } \right) \right) + \cos \left( g \left( x _ { 1 } \right) , g \left( t _ { 1 } \right) \right) \right)\right. \\ + \max \left( 0 , \delta - \cos \left( g \left( x _ { 1 } \right) , g \left( x _ { 2 } \right) \right) + \cos \left( g \left( x _ { 2 } \right) , g \left( t _ { 2 } \right) \right) \right) \bigg) \\ + \lambda _ { c } \left\| W _ { c } \right\| ^ { 2 } + \lambda _ { w } \left\| W _ { w _ { i n i t i a l } } - W _ { w } \right\| ^ { 2 } \]git

論文實現了6種類型的編碼函數\(g\),具體以下:github

  1. 詞向量平均;
  2. 詞向量平均後經過一個線性層;
  3. DAN模型:詞向量平均後經過多層帶非線性函數的全鏈接層;
  4. Simple RNN,取最後一個隱狀態向量;
  5. identity-RNN (iRNN), 一種特殊的simple RNN,其weight矩陣初始化爲單位矩陣,bias初始化爲0向量,激活函數爲恆等函數,最終的句子編碼向量爲最後一個隱狀態向量除以句子中詞的個數。當正則化程度很高時(模型參數幾乎不更新),iRNN將變成模型1(詞向量平均),不一樣的是iRNN可以考慮詞序,有但願可以比模型1效果好;
  6. LSTM,取最後一個隱狀態向量。

論文經過大量實驗來對比上述6種編碼器的優劣,獲得以下結論:web

  • 對於無監督文本類似度任務,複雜的模型如LSTM在垂直領域數據集上表現更好,而對於開放域數據集,簡單的模型如詞向量平均比LSTM的效果更好;
  • 對於句子類似度,句子蘊含以及情感分析這三種有監督任務,詞向量平均模型在句子類似度和句子蘊含兩個任務上表現比LSTM的效果更好,而情感分析任務LSTM表現很是不錯。

3. 基於天然語言推理的InferSent模型

2017年發表的論文Supervised Learning of Universal Sentence Representations from Natural Language Inference Data提出使用天然語言推理(natural language inference, NLI)數據集來學習通用的句子表示。選擇NLI任務是由於NLI是一個high-level理解任務,涉及推理句子間的語義關係。模型總體架構以下:數據庫

nli

論文對比了7種不一樣的句子編碼器,包括:架構

  1. GRU,取最後一個隱狀態框架

  2. LSTM,取最後一個隱狀態ide

  3. BiGRU,前向GRU與反向GRU最後一個隱狀態的連結函數

  4. BiLSTM+mean pooling學習

  5. BiLSTM+max pooling

  6. Self-attentive network: bi-LSTM+inner Attention with multiple views,Inner Attention機制以下:

    \[ \overline { h } _ { i } = \tanh \left( W h _ { i } + b _ { w } \right) \\ \alpha _ { i } = \frac { e ^ { \overline { h } _ { i } ^ { T } u _ { w } } } { \sum _ { i } e ^ { \overline { h } _ { i } ^ { T } u _ { w } } } \\ u = \sum _ { t } \alpha _ { i } h _ { i } \]

    其中\(\{h_1,...,h_T\}\)爲BiLSTM的隱狀態輸出,將它們輸入到tanh變換層產生keys集合\(( \overline { h } _ { 1 } , \ldots , \overline { h } _ { T } )\),而後與可學習(可訓練)的query向量(上下文向量)計算獲得\(\{a_i\}\),而後進行加權獲得句子表示\(u\),以下圖所示:

    inner-attn

    論文具體是採用4個上下文向量\(u _ { w } ^ { 1 } , u _ { w } ^ { 2 } , u _ { w } ^ { 3 } , u _ { w } ^ { 4 }​\)(multiple views),對應產生4個表示後進行連結做爲最終的句子表示。

  7. Hierarchical ConvNet,多層卷積(4層),每層卷積的maxpooling輸出進行連結獲得最終句子表示,模型結構以下圖:

    h_cnn

論文實驗代表:BiLSTM+maxpooling做爲編碼器,訓練數據爲SNLI,可以訓練出比Skip-Toughts和FastSent等無監督方法更好的sentences embedding,在2017年達到state-of-the-art,代碼見https://github.com/facebookresearch/InferSent

4. 我全都要:Universal Sentence Encoder

2018年發表的論文Universal Sentence Encoder在前人研究的基礎上,綜合利用無監督訓練數據和有監督訓練數據,進行多任務訓練,從而學習一個通用的句子編碼器。無監督訓練數據包括問答(QA)型網頁和論壇,Wikipedia, web news,有監督訓練數據爲SNLI。多任務模型設計以下圖所示,其中灰色的encoder爲共享參數的句子編碼器。

multi-task

論文對比了DANTransfomer這兩種編碼器。得出以下結論:

  • Transformer 模型在各類任務上的表現都優於簡單的 DAN 模型,且在處理短句子時只稍慢一些。
  • DAN模型也能具備很不錯的表現,而且相較於Transformer模型,訓練時間和內存的開銷都更小,尤爲是當句子較長時。

更詳細的介紹能夠參考論文做者的博客Google AI Blog (中文版)

5. 總結

  • 基於監督學習方法學習sentence embeddings能夠概括爲兩個步驟:
    • 第一步選擇監督訓練數據,設計相應的包含句子編碼器Encoder的模型框架;
    • 第二步選擇(設計)具體的句子編碼器,包括DAN、基於LSTM、基於CNN和Transformer等。
  • Sentence Embedding的質量每每由訓練數據和Encoder共同決定。Encoder不必定是越複雜越好,須要依據下游任務、計算資源、時間開銷等多方面因素綜合考慮。

個人github倉庫https://github.com/llhthinker/NLP-Papers包含了近年來深度學習在NLP各領域應用的優秀論文、代碼資源以及論文筆記,歡迎你們star~

References

  1. Wieting et al. - 2015 - Towards universal paraphrastic sentence embeddings
  2. Conneau et al. - 2017 - Supervised Learning of Universal Sentence Representations from Natural Language Inference Data
  3. Cer et al. - 2018 - Universal Sentence Encoder
  4. Google AI - 2018 - Advances in Semantic Textual Similarity
相關文章
相關標籤/搜索