本文主要用于記錄華盛頓大學(xué)計(jì)算機(jī)院發(fā)表于2018年的一篇論文。該論文主要提出了ELMO詞向量模型。本筆記主要為方便初學(xué)者快速入門,以及自我回顧搅幅。
論文鏈接:https://arxiv.org/pdf/1802.05365.pdf
Github:https://github.com/allenai/allennlp
基本目錄如下:
- 摘要
- 核心思想
- 總結(jié)
------------------第一菇 - 摘要------------------
1.1 論文摘要
本文作者推出了一種新的基于深度學(xué)習(xí)框架的詞向量表征模型,這種模型不僅能夠表征詞匯的語法和語義層面的特征呼胚,也能夠隨著上下文語境的變換而改變茄唐。簡單來說,本文的模型其實(shí)本質(zhì)上就是基于大規(guī)模語料訓(xùn)練后的雙向語言模型內(nèi)部隱狀態(tài)特征的組合蝇更。實(shí)驗(yàn)證明琢融,新的詞向量模型能夠很輕松的與NLP的現(xiàn)有主流模型相結(jié)合,并且在六大NLP任務(wù)的結(jié)果上有著巨頭的提升簿寂。同時(shí)漾抬,作者也發(fā)現(xiàn)對模型的預(yù)訓(xùn)練是十分關(guān)鍵的,能夠讓下游模型去融合不同類型的半監(jiān)督訓(xùn)練出的特征常遂。
------------------第二菇 - 核心思想------------------
2.1 論文模型結(jié)構(gòu) - 雙向語言模型
ELMO(Embeddings from Language Models)模型纳令,從他的縮寫就可以看出,他的模型本質(zhì)是從語言模型而來的克胳。因此平绩,我們先聊一聊雙向語言模型。
對于一個(gè)給定的句子()漠另,我們構(gòu)建的語言模型就是通過一個(gè)詞匯的上下文去捏雌,預(yù)測一個(gè)詞,
一般來說笆搓,NLP相關(guān)的首選肯定是LSTM性湿,本文的作者當(dāng)然也是采用了該模型纬傲。該語言模型的輸入就是詞向量(獲取的途徑多種多樣,作者提了一個(gè)是字符卷積)肤频,然后通過一個(gè)多層的前向LSTM網(wǎng)絡(luò)叹括,在LSTM的每一層,我們都能輸出基于文本的一個(gè)向量表達(dá)宵荒,汁雷。其中代表層數(shù)。其最后的一層的輸出报咳,侠讯,經(jīng)過一層softmax歸一,就可以來預(yù)測詞暑刃,大概流程長下面這樣【1】继低,
當(dāng)然,現(xiàn)在都流行雙向語言模型稍走,本質(zhì)就是把句子再逆序輸入一遍,再把前向逆向的結(jié)果結(jié)合起來柴底,就是我們最終的雙向語言模型婿脸,而我們最終的目標(biāo)函數(shù)就是去最大化,
其中兩個(gè)方向的LSTM的參數(shù)不是共享的柄驻,就是一開始輸入的詞向量狐树,就是softmax層參數(shù)。因此鸿脓,雙向語言模型的結(jié)構(gòu)圖抑钟,可以表達(dá)如下【1】,
2.2 論文模型結(jié)構(gòu) - ELMO模型
對于每一個(gè)詞野哭,一個(gè)L層的biLM可以計(jì)算出個(gè)表達(dá)如下在塔,
如果我們統(tǒng)一用來表示biLM的每一層輸出,來表示第一層向量拨黔,那么整個(gè)表達(dá)可以統(tǒng)一表示為蛔溃,
而前面也說了,ELMO本質(zhì)上就是一個(gè)任務(wù)導(dǎo)向的篱蝇,雙向語言模型(biLM)內(nèi)部的隱狀態(tài)層的組合贺待。通用的表達(dá)式如下,
其中零截,是用來控制ELMO模型生成的向量大小麸塞,原文中說該系數(shù)對于后續(xù)的模型優(yōu)化過程有好處(在附件中,作者強(qiáng)調(diào)了這個(gè)參數(shù)的重要性涧衙,因?yàn)閎iLM的內(nèi)核表達(dá)哪工,與任務(wù)需要表達(dá)奥此,存在一定的差異性,所以需要這么一個(gè)參數(shù)去轉(zhuǎn)換正勒。并且得院,這個(gè)參數(shù)對于,last-only的情況(就是只取最后一層章贞,ELMO的特殊情況)祥绞,尤其重要),另一個(gè)參數(shù)鸭限,原論文只說了softmax-normalized weights蜕径,所以我的理解,其實(shí)它的作用等同于層間的歸一化處理败京。
在面對具體的NLP下游任務(wù)時(shí)兜喻,ELMO模型的應(yīng)用也很簡單。首先赡麦,大部分的NLP的模型都會有一層詞向量層朴皆,而我們要做的無非就是用ELMO與詞向量層結(jié)合,讓模型去訓(xùn)練學(xué)習(xí)ELMO的內(nèi)部狀態(tài)的線性組合泛粹,然后遂铡,生成一個(gè)共同的詞向量,用于后續(xù)的訓(xùn)練晶姊,整個(gè)模型結(jié)構(gòu)見下圖【1】扒接,
2.3 論文模型結(jié)構(gòu) - 預(yù)訓(xùn)練過程
至此,整個(gè)模型結(jié)構(gòu)已經(jīng)說清楚了们衙。作者在實(shí)驗(yàn)論證該預(yù)訓(xùn)練模型之前钾怔,闡述了一下其預(yù)訓(xùn)練過程。最終作者用于實(shí)驗(yàn)的預(yù)訓(xùn)練模型蒙挑,為了平衡語言模型之間的困惑度以及后期NLP模型的計(jì)算復(fù)雜度宗侦,采用了2層Bi-Big-Lstm,共計(jì)4096個(gè)單元忆蚀,輸入及輸出緯度為512凝垛,并且在第一層和第二層之間有殘差連接,包括最初的那一層文本向量(用了2048個(gè)過濾器, 進(jìn)行基于字符的卷積計(jì)算蜓谋,詳細(xì)可查看字符卷積的原論文)梦皮,整個(gè)ELMO會為每一個(gè)詞提供一個(gè)3層的輸出,而下游模型學(xué)習(xí)的就是這3層輸出的組合桃焕。另外剑肯,作者強(qiáng)調(diào)了一下,對該模型進(jìn)行FINE-TUNE訓(xùn)練的話观堂,對具體的NLP任務(wù)會有提升的作用让网。
2.4 論文實(shí)驗(yàn)結(jié)果分析
作者的論文的實(shí)驗(yàn)部分呀忧,具體展示了ELMO模型在六大nlp任務(wù)上的表現(xiàn),證實(shí)了該模型的有效性溃睹。這里就不具體展開而账,有興趣的讀者,可以自行閱讀原論文因篇,包括附錄有更詳細(xì)的分析泞辐。這里直接聊幾個(gè)論文中說的我認(rèn)為比較有趣的點(diǎn),
1)作者實(shí)驗(yàn)了一把竞滓,ELMO的特殊情況咐吼,只取最后一層的輸出,和多層的線性組合商佑,實(shí)驗(yàn)結(jié)果發(fā)現(xiàn)锯茄,只取最后一層也取得了很好的效果,而且多層的效果提升并不是特別的明顯(較之于只取最后一層)茶没,結(jié)果見下圖肌幽,
2)ELMO加的地方。剛才前面說了抓半,是與之前的詞向量層一起喂急,在最開始的地方。作者還實(shí)驗(yàn)了一把琅关,放在模型的輸出那里,并且還取得了不錯(cuò)的效果讥蔽。
3)ELMO不同的層涣易,能從不同的緯度表達(dá)一個(gè)詞,作者經(jīng)過實(shí)驗(yàn)發(fā)現(xiàn)冶伞,低層的輸出能更好的從句法語法的層面表達(dá)一個(gè)詞新症,而高層的輸出能更好的從語意的層面表達(dá)一個(gè)詞。
2.3 論文模型實(shí)踐
這里先留個(gè)坑响禽,以后有時(shí)間徒爹,把ELMO的實(shí)踐也擺上來。
------------------第三菇 - 總結(jié)------------------
3.1 總結(jié)
到這里芋类,整篇論文的核心思想及其創(chuàng)新點(diǎn)已經(jīng)說清楚了隆嗅。本論文主要集中在于闡述ELMO架構(gòu)及其預(yù)訓(xùn)練的思想,并且用具體NLP實(shí)驗(yàn)證明了使用這一套架構(gòu)的原理侯繁,并證實(shí)了其可行性胖喳。
簡單總結(jié)一下本文就是先羅列了一下該論文的摘要,再具體介紹了一下ELMO架構(gòu)贮竟,最后也談了一點(diǎn)自己對ELMO架構(gòu)的理解丽焊,總的來說较剃,這篇論文也是首次提出的預(yù)訓(xùn)練模型的思想。希望大家讀完本文后能進(jìn)一步加深對該論文的理解技健。有說的不對的地方也請大家指出写穴,多多交流,大家一起進(jìn)步~??
參考文獻(xiàn):
【1】https://jalammar.github.io/illustrated-bert/