【NLP論文筆記】Supervised Learning of Universal Sentence Representations from Natural Language Inferenc...

本文主要用于記錄Facebook AI研究中心于2017年提出的一種基于監(jiān)督學(xué)習(xí)的句向量表達(dá)方式。該文也是業(yè)界最先一批提出句向量預(yù)訓(xùn)練概念的論文。本筆記主要為方便初學(xué)者快速入門,以及自我回顧。

論文鏈接:https://arxiv.org/pdf/1705.02364.pdf
Github:https://github.com/facebookresearch/InferSent

基本目錄如下:

  1. 摘要
  2. 核心思想
  3. 總結(jié)

------------------第一菇 - 摘要------------------

1.1 論文摘要

當(dāng)代比較成熟的NLP系統(tǒng)的底層特征都僅僅依賴于從大規(guī)模語料庫中訓(xùn)練出來的詞向量。而對于那些長句或是段落的特征向量的表達(dá),目前的研究還遠(yuǎn)遠(yuǎn)不夠。僅有的一些依賴于非監(jiān)督學(xué)習(xí)得到的句向量表達(dá),也因?yàn)槲茨苓_(dá)到預(yù)期效果而被棄用。本論文提出了一種基于SNLI語料庫預(yù)訓(xùn)練出來的通用的句向量的表達(dá),且經(jīng)過實(shí)驗(yàn)驗(yàn)證,該種方法訓(xùn)練得到的句向量,在多個NLP基礎(chǔ)任務(wù)中都表現(xiàn)出了卓越的效果。同時,本論文還希望效仿ImageNet數(shù)據(jù)集(多數(shù)現(xiàn)今模型都在其上面預(yù)訓(xùn)練)在CV領(lǐng)域的地位一樣,基于推理的數(shù)據(jù)集(SNLI),也能成為NLP領(lǐng)域的標(biāo)桿(即通用的預(yù)訓(xùn)練數(shù)據(jù)集)

------------------第二菇 - 核心思想------------------

2.1 句向量的表達(dá)

自從word2vec詞向量訓(xùn)練方法被提出以后,在NLP學(xué)術(shù)界就仿佛打開了潘多拉魔盒一般,各種基于分布式表達(dá)的詞向量的訓(xùn)練如雨后春筍一般冒出,比較著名的都有(glove,fasttext。。等)。但是,如何去捕獲在一句話或一個段落中詞與詞之間的關(guān)聯(lián)關(guān)系,即如何去表達(dá)一個完整的句向量,始終是一個未解決的問題。

本文就是想去嘗試,推出一種通用的句向量模型的有監(jiān)督的訓(xùn)練方法。其中有倆個問題需要去解決,
1)選用哪一種神經(jīng)網(wǎng)絡(luò)模型?
2)選用哪一種數(shù)據(jù)集去訓(xùn)練該網(wǎng)絡(luò)模型?

因此,說白了,該論文就是用多種模型在多種數(shù)據(jù)集上去訓(xùn)練得到一個句向量模型,再將訓(xùn)練得到的句向量模型運(yùn)用于其他各個NLP的下游任務(wù),通過比較在下游任務(wù)中的表現(xiàn),來反推出,哪一種句向量模型是更具有通用性的~當(dāng)然,從論文的標(biāo)題我們也應(yīng)該能看出來,訓(xùn)練的語料庫其實(shí)就是SNLI(該語料庫是斯坦福大學(xué)所維護(hù)的)。

簡單來說,該語料庫就是去推理判斷每一組句子的關(guān)系(一共有570k個句子對),其中,對應(yīng)的標(biāo)簽有3個,分別為(entailment, contradiction, neutral)。相信,在讀的各位,如果是對句向量或是句句匹配任務(wù)有研究的同學(xué),應(yīng)該對該數(shù)據(jù)集并不陌生(甚至可以說是,檢驗(yàn)新的模型的必測數(shù)據(jù)集哈哈)。而論文中,對該數(shù)據(jù)集訓(xùn)練出來的句向量效果最佳的表現(xiàn),解釋為,high-level understanding task that involves reasoning about the semantic relationship within sentences。意思就是,必須要完全理解了句子的意思,才能對倆句話的關(guān)系作出準(zhǔn)確的判斷。(而不像其他簡單的任務(wù),可能就是詞詞匹配,或是距離匹配)

2.2 預(yù)訓(xùn)練方法

有了訓(xùn)練語料,那就是選擇神經(jīng)網(wǎng)絡(luò)模型的問題了。因?yàn)椋揝NLI語料庫中是句子對的形式,因此,有兩種方式來生成最終的特征向量
1)單獨(dú)分別對每一個句子生成句向量。
2)對倆個句子同時生成句向量。

基于本文的目標(biāo),是提出一種通用的句向量的表達(dá)模型,顯然第一種方法更合適,而對于生成的每一組句向量,我們也會進(jìn)行concact處理,整合生成特征句子,再輸入到最后一層分類器中。基礎(chǔ)的訓(xùn)練模型架構(gòu)如下圖所示,

Generic NLI training scheme.jpg

因此,本文其實(shí)是著重實(shí)驗(yàn)了多個(7個)句向量的生成模型架構(gòu)。主要的模型架構(gòu)闡述如下

1)LSTM +GRU
該模型架構(gòu)就是最普通最簡單的LSTM模型,當(dāng)然是雙向的。同時也參考了SkipThought中的方法,即將BI-GRU的,前向最后時刻狀態(tài)與后向最后時刻狀態(tài)相疊加。

2)BiLSTM with mean/max pooling
這個就是取BiLSTM結(jié)果的時候的處理方式不同,mean pooling就是把所有時刻的狀態(tài)值取平均,max pooling就是取最大值。具體的示意圖如下,也比較簡單,

Bi-LSTM max-pooling network.jpg
  1. Self-attentive network
    該方法可以參考我的另一篇論文筆記。思路也比較簡單,就是對句子中對每一個詞都計(jì)算得出一個權(quán)重,再相加得出句向量。

4)Hierarchical ConvNet
其實(shí)就是一個4層的卷積網(wǎng)絡(luò),每一層經(jīng)過max pooling都會得到一個句向量的表達(dá),最后將4層得出的concact就是最終的句向量表達(dá),思路也比較簡單,示意圖如下,

Hierarchical ConvNet architecture.jpg
2.3 實(shí)驗(yàn)方法

之后,就是具體的實(shí)驗(yàn)部分,作者將上述訓(xùn)練得到的句向量,分別運(yùn)用于12項(xiàng)NLP任務(wù)之中,在比較上述幾種模型的同時,也比較了其他各種生成句向量的方法。當(dāng)然,結(jié)論肯定是上述利用SNLI的句向量表達(dá)要優(yōu)于其他網(wǎng)絡(luò)訓(xùn)練出的句向量,且最佳的模型為BiLSTM + Max Pooling。具體的實(shí)驗(yàn)過程本文不作展開,有興趣的同學(xué)可以參考原論文,當(dāng)然本文也有開源代碼(基于pytorch),大家可以仔細(xì)研讀,作為入門的baseline也是相當(dāng)不錯的。

------------------第三菇 - 總結(jié)------------------

3.1 總結(jié)

到這里,整篇論文的核心思想及其創(chuàng)新點(diǎn)已經(jīng)說清楚了。本文主要是推出了一種預(yù)訓(xùn)練句向量的思路,并且給出了最佳的預(yù)訓(xùn)練數(shù)據(jù)及最佳的預(yù)訓(xùn)練模型,并且通過實(shí)驗(yàn)論證了其可行性。當(dāng)然,不得不承認(rèn),離通用的句向量模型還有很長的路要走~哈哈~

簡單總結(jié)一下本文就是先羅列了一下該論文的摘要,再具體介紹了一下本文作者的思路,也簡單表述了一下,其中的模型細(xì)節(jié)及訓(xùn)練細(xì)節(jié)。希望大家讀完本文后能進(jìn)一步加深對該論文的理解。有說的不對的地方也請大家指出,多多交流,大家一起進(jìn)步~??

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容