Sentence Embeddings分享

Sentence Embeddings分享

來自專欄 NLP in 教三-731

題目: 《Universal Sentence Encoder》

鏈接:arxiv.org/pdf/1803.1117

論文提出了將句子編碼成嵌入向量的模型,這些嵌入向量將遷移學習到其他NLP任務。這些模型非常高效,可以在不同的遷移任務中獲得精確的性能。編碼模型的兩種變體允許在精度和計算資源之間進行權衡。對於這兩種變體,作者調查並說明了模型複雜性,資源消耗,遷移任務訓練數據的可用性和任務性能之間的關係。與通過預訓練的詞嵌入得到的詞級遷移學習的基線,以及與不使用任何遷移學習的基線進行比較,作者發現,使用句子嵌入的遷移學習往往比詞級別的遷移效果更好。通過句子嵌入進行遷移學習,作者觀察到令人驚訝的良好表現,並為遷移任務提供最少量的監督訓練數據。作者在詞嵌入關聯測試(WEAT)上獲得令人鼓舞的結果,旨在檢測模型偏移。作者預先訓練的句子編碼模型可以免費下載並在TF Hub上使用。

本文主要提出了兩個句子encode的框架,一個是之前《Attention is all you need》裡面transform的一個encode框架,另一個是DAN(deep average network)的encode方式。兩個的訓練方式較為類似,都是通過多任務學習,將encode用在不同的任務上,包括分類,生成等等,以不同的任務來訓練一個編碼器,從而實現泛化的目的。

  • 第一個句子編碼模型使用了transformer裡面的一個子圖,這個子圖通過attention來獲得一個句子中詞語的context表示,同時考慮所有的詞並將其轉化為一個fixed length向量。圖來自論文《Attention is all you need》。

  • 第二個句子編碼模型使用了較為簡單的一個DAN模型,通過對embedding求平均後輸入到feed-forward network,然後不加softmax即可得到隱層表示,然後把這個向量類似於上面的方法,用多任務來進行訓練模型。模型圖來自知乎 @西土路10號包工頭

通過比較,作者說明transformer那個encode模型準確率高,但是模型複雜度高,訓練時間長,消耗資源多;而DAN模型雖然準確度低,但是訓練快,模型複雜度低。

同時,作者在文中還提出了比較兩個句子向量之間的相似度時候不用原生的cos距離,而是轉化為弧度之後計算,效果要好於原生的:

同時作者提供了測試網址colab.research.google.com和測試樣例:

題目: 《Learning Sentence Embeddings Using Recursive Networks》

鏈接:arxiv.org/pdf/1805.0835

學習句子向量的普遍化是一項極具挑戰性的任務。該論文比較了學習phrase embeddings的三種方法:1)使用LSTMs,2)使用循環網路,3)使用短語的POS信息的循環網路的變體。作者在詞定義的字典上訓練他們的模型,以獲得與Felix等人相似的逆向字典應用程序。為了查看作者提出的embeddings方式是否可以轉移到新的任務中,他們還對爛番茄數據集進行了訓練和測試。

這篇論文的貢獻是:(1)使用word embeddings在逆向字典應用上;(2)在一個放大的無監督數據集上訓練模型,並隨機化了句子中的單詞。

論文中比較了三個模型,LSTM、Recursive neural network (RNN) with shared weights和RNN with unique weights。

·LSTM

句子中的詞是反向輸入到LSTM網路中,使用網路最後一層最後一個時間步的狀態作為句子的向量表示。

·Recursive neural network (RNN) with shared weights

在遞歸網路中,使用syntaxnet解析器來形成分析樹。上圖為兩個句子的分析樹,enjoy(VB ROOT)為父節點,其它為孩子節點。

在上圖的模型圖中,使用了共享參數W。

·RNN with unique weights

該模型和上一個模型的差別是這個模型不同位置POS詞的W不同並且每一個節點的輸出都乘上了一個W。為了考慮句子中negative word的影響,該模型由所有embeddings的加權和組成,權重由當前節點及其直接子節點(如果有的話)決定。參數w的模型圖和演算法如下:

所有模型的loss使用交叉熵,通過實驗證明RNN with shared weight有最好的效果。


推薦閱讀:

人工智慧學習筆記(三):N元字元模型與馬爾科夫鏈
2018.4.23論文推薦
個人永久性免費-Excel催化劑功能第15波-接入AI人工智慧NLP自然語言處理
如何使用深度學習執行文本實體提取
NLP&ML入門:數據分析of zhihu.com

TAG:自然語言處理 |