天天看點

elmo算法解析

2018年3月份提出ELMo(Embedding from Language models),模型通過對不同句子建立不同的詞向量,進行動态調整,解決了之前工作2013年的word2vec及2014年的GloVe的多義詞問題,可以稱之為靜态詞向量。模型經過大量語料庫預訓練好之後

(context—before預測目前字,context—after預測目前字,而且不是同時的),使用預訓練時,将任務實際的一句話或一段話輸入該模型,模型會根據上下文來推斷每個詞對應的詞向量,可以稱之為動态詞向量。

elmo算法解析

模型使用雙向的LSTM語言模型,由一個前向和一個後向語言模型構成,目标函數是這兩個方向語言模型的最大似然函數。給定一串長度為N的詞條(t1,t2,…,tN),前向語言模型通過對給定句子左側(t1,…tk−1)預測tk進行模組化(auto regressive language model),前向LSTM:

elmo算法解析

同理,後向語言模型通過對給定句子右側(tN…tk-1)預測tk進行模組化(auto regressive language model),後向LSTM:

elmo算法解析

求取最大似然函數

elmo算法解析

經過雙向三層LSTM進行特征提取(word features,syntactic features,semantic features),得到預訓練模型,會有三層embedding,其實就是對句子中在位置k的token在每一層的hidden state進行權重用于下遊任務,最簡單的也可以使用最高層的表示用于下遊任務。

elmo算法解析

對于下遊有監督NLP任務,利用ELMo模型可以分以下三步:

1、無監督産生預訓練biLM模型。模型由兩層bi-LSTM組成

2、在下遊任務語料上(注意是語料,忽略label,自回歸語言模型)fine tuning上一步得到的biLM模型。

3、利用ELMo的word embedding來對具體下遊任務進行訓練。以此作為新的詞向量輸入到已有的模型中,一般能夠明顯的提高原模型的表現。

elmo算法解析

缺點:

1、LSTM特征提取能力弱于transformer,

2、不能并行,因目前時刻隐狀态依賴前一時刻的隐狀态

3、雙向隻是将左右側的隐狀态進行拼接,實際上并無讀取上下文的能力

https://blog.csdn.net/triplemeng/article/details/82380202

https://zhuanlan.zhihu.com/p/63115885

繼續閱讀