之前的Word Representation方法CS224N(一):Word Vector如Word2Vec, GloVe, fastText等對每個單詞僅有一種表示,而通常單詞的含義依賴於其上下文會有所不同,而且每個單詞不僅有一方面特徵,而應有各方面特徵如語義特徵,語法特徵等,這一講集中討論contextual word representation,主要比較了ELMO,GPT與BERT模型。
ELMO
ELMO的基本思想是利用雙向的LSTM結構,對於某個語言模型的目標,在大量文本上進行預訓練,從LSTM layer中得到contextual embedding,其中較低層的LSTM代表了比較簡單的語法信息,而上層的LSTM捕捉的是依賴於上下文的語義信息。ELMO的全稱就是Embeddings from Language Models。對於下游的任務,再將這些不同層的向量線性組合,再做監督學習。
詳細來說,對於N個標記 ,forward language model學習的是根據 的信息推測 的概率:
而 backward language model學習的是依據 的信息推測 的概率:
而bidirectional LSTM就是將兩者結合起來,其目標是最大化
對於k位置的標記,ELMO模型用2L+1個向量來表示,其中1個是不依賴於上下文的表示,通常是用之前提及的word embedding或者是基於字元的CNN來得到 。L層forward LSTM每層會產生一個依賴於上文的表示 ,同樣的,L層backward LSTM每層會產生一個依賴於下文的表示 ,我們可以將他們一起簡計為
其中
得到每層的embedding後,對於每個下游的任務,我們可以計算其加權的表示
其中 是利用softmax歸一化的權重, 是引入的可調控的scale parameter。
採用了ELMO預訓練產生的contextual embedding之後,在各項下游的NLP任務中,準確率都有顯著提高。
GPT
GPT全稱是Generative Pre-Training, 和之後的BERT模型一樣,它的基本結構也是Transformer,關於Transformer結構可以詳見之前的總結Attention機制詳解(二)——Self-Attention與Transformer。
GPT的核心思想是利用Transformer模型對大量文本進行無監督學習,其目標函數就是語言模型最大化語句序列出現的概率,不過這裡的語言模型僅僅是forward單向的,而不是雙向的。得到這些embedding後,再對下游的task進行supervised fine-tuning。
BERT
BERT原理與GPT有相似之處,不過它利用了雙向的信息,因而其全稱是Bidirectional Encoder Representations from Transformers。
BERT做無監督的pre-training時有兩個目標:
一個是將輸入的文本中 k%的單詞遮住,然後預測被遮住的是什麼單詞。
另一個是預測一個句子是否會緊挨著另一個句子出現。
預訓練時在大量文本上對這兩個目標進行優化,然後再對特定任務進行fine-tuning。
BERT由於採用了Transformer結構能夠更好的捕捉全局信息,並且利用了上下文的雙向信息,所以其效果要優於之前的方法,它大大提高了各項NLP任務的性能。
如何進行更有效的pre-training,在NLP領域是一個很有意思的問題,其發展也日新月異,BERT在2018年末被提出,而近期XLNet(https:// arxiv.org/abs/1906.0823 7 )則在多項任務上超越了BERT,這一領域的發展值得關注。
參考資料
第十三講講義http:// web.stanford.edu/class/ cs224n/slides/cs224n-2019-lecture13-contextual-representations.pdf
第十三講視頻https:// youtu.be/S-CspeZ8FHc
ELMO論文https:// arxiv.org/abs/1802.0536 5
GPT openAI blog https:// openai.com/blog/languag e-unsupervised/
BERT論文https:// arxiv.org/abs/1810.0480 5
推薦閱讀:
Please enable JavaScript to view the comments powered by Disqus.