1. 程式人生 > >ELMo——一種新型的詞嵌入方法

ELMo——一種新型的詞嵌入方法

目錄

 

一、概要

二、雙向語言模型

三、線性組合


一、概要

英語論文原文參考連結:https://pan.baidu.com/s/1g7lKZoefFmNy8GXgH5CDNg 密碼:hq2n

英文論文名稱:《Deep contextualized word representations》

ELMo為複雜詞語應用(語法或語義)和語言語義建模(例如一詞多義)。這句話我也不好翻譯,現貼出英文原文供大家參考:

                            

簡單來說,ELMo模型以雙向語言模型為基礎,用各層之間的線性組合來表示詞向量的一種方式。下文中會詳細介紹什麼是雙向語言模型和為什麼以及如何進行線性組合。

二、雙向語言模型

考慮給定的N個片語(t_{1},t_{2},t_{3},....,t_{N}),計算這句話出現的概率:p(t_{1},t_{2},...,t_{N}):

(1) forward language model(前向語言模型)

Forward language model採用的是利用前面的資訊估計後面的資訊的方式,具體如下:

                     

每一個t(k)出現的概率都依賴於前面的所有詞語。如果採用lstm(RNN)模型的話,我們定義如下符號:\overrightarrow h^{LM}_{k,j}

表示第k個單詞在第j層的輸出(注意箭頭的方向,LM表示language model),如果不理解層的意思,那麼請去參考有關RNN的資料。

(2)backword language model

Backward language model採用的是利用後面的資訊估計前面的資訊的方式,具體如下(注意和forward LM比較):

                    

每一個t(k)chu出現的概率都依賴於後面的所有詞語。如果採用lstm(RNN)模型的話,我們定義如下符號:\overleftarrow h^{LM}_{k,j}

表示第k個單詞在第j層的輸出(注意箭頭的方向,代表forward或者backword)。

(3)biLM(bidirectional language model)

biLM則是整合了上面的兩種語言模型,目標函式為最大化下面的log似然函式:

                  

從圖中可以看出,前半部分是forward language model,後半部分是backward language model。

三、線性組合

(1)哪些是需要線性組合的

對於迴圈神經網路,每一層都是有輸出的(上文的h向量)。我們要線性組合是就是上述的所有h向量。

(2)為什麼要線性組合

文中提到:高層的h更加容易捕捉依賴上下文的詞義資訊(the higher level LSTM states capture context-depend aspects of word meaning),底層的h更容易捕捉語法資訊(while lower level states model aspects of syntax)。也就是說,不同層次的輸出所對應的特徵不一樣,組合起來更能表達整個意思。

(3)如何線性組合。

                     

其中s為權重,計算方法:softmax normalized。γbiao表示整個權重。(權重的求法我並沒有看懂,只能貼出原文供大家參考)