GPT、Bert、XLnet 的發布使得 預訓練的語言模型 火熱起來,而差不多一年前的大殺器:ELMO,似乎在逐漸被遺忘
從效果上說,ELMO的確不如之後陸續發布的語言模型好。
但麻雀雖小卻五臟俱全:預訓練-微調、雙向語言模型、基於大規模語料訓練等思想,早已囊括在ELMO之中!!!
論文地址:https://arxiv.org/pdf/1802.05365.pdf
代碼實現:https://github.com/allenai/allennlp
基於以下幾個問題展開:
1、ELMO的結構是怎麼樣的?
2、ELMO到底在解決一個什麼問題?
3、ELMO是怎麼進行預訓練的呢?如何使用它呢?
4、為什麼ELMO用兩個單向的LSTM代替一個雙向的LSTM呢?
1、ELMO的結構是怎麼樣的?
ELMO 由一層input層 和 兩層雙向LSTM 組合而成的
註:input層可看為embedding層,不過ELMO是通過字元卷積來得到embedding的,不是矩陣相乘;用兩個單向LSTM替代一個雙向LSTM。
如圖: