本文首發(fā)于我的個(gè)人博客:Sui Xin's Blog
原文:https://suixinblog.cn/2019/09/elmo.html
作者:Sui Xin
ELMo (Embeddings from Language Models) 是一個(gè)深度上下文相關(guān)的詞嵌入語言模型咱筛。運(yùn)用了多層雙向 LSTM 編碼器融撞。
論文:Deep contextualized word representations
模型架構(gòu)
整體上,ELMo 采用了多層雙向 LSTM 編碼器(上圖為雙層)構(gòu)建語言模型淮椰,最終取各層 LSTM 的 hidden state 與初始的 word embedding 構(gòu)成下游任務(wù)的輸入簿透。
Bi-LSTM LM
前向的語言模型為:
后向的語言模型為:
最終的語言模型極大似然函數(shù)為:
其中妒蛇, 是 token 表示層的參數(shù)菱属, 是 softmax 層的參數(shù)引瀑,這兩個(gè)參數(shù)在前向和后向的語言模型中是共享的肛宋,只有 LSTM 的參數(shù)不同州藕。
ELMo
對(duì)于一個(gè) token , 層的 Bi-LSTM 可以得到 個(gè)表示酝陈,最終通過拼接得到 個(gè)特征:
其中床玻, 是 token embedding 重復(fù)拼接得到的向量, 是雙向的 LSTM 層 hidden state 拼接得到的向量沉帮。
對(duì)于下游的監(jiān)督學(xué)習(xí)任務(wù)锈死,一般的做法是直接取 LSTM 最頂層的 hidden state 作為特征,但 ELMo 認(rèn)為模型不同層學(xué)到的是不同的信息穆壕,所以應(yīng)該對(duì)得到的 個(gè)特征計(jì)算一個(gè)加權(quán)組合:
其中待牵, 是一個(gè) softmax 歸一化的權(quán)重系數(shù),用于指示每一層應(yīng)該放置多少關(guān)注度喇勋, 是一個(gè)全局的縮放系數(shù)缨该,實(shí)驗(yàn)證明其非常重要。
下游任務(wù)使用
對(duì)于一部分任務(wù)川背,將原始的嵌入向量和 ELMo 加權(quán)向量拼接即可作為下游任務(wù)的特征:
對(duì)于一部分任務(wù)贰拿,將 LSTM 某些中間層的嵌入向量和 ELMo 加權(quán)向量拼接可提升效果:
某些情況下蛤袒,在下游任務(wù)中 fine-tuning 可極大的提升效果。
模型特點(diǎn)
優(yōu)勢(shì)
- 上下文相關(guān)的 contextual 語言模型:減輕一詞多義的影響壮不;
- 雙向編碼語言模型汗盘;
- 模型深皱碘。
- 不同的層捕獲到不同的自然語言信息:較低層捕獲到語法信息询一,較高層捕獲到語義信息。
缺點(diǎn)
- 是偽的雙向模型癌椿;
- 特征抽取器為 LSTM 而不是更強(qiáng)的 Transformer健蕊。
參考
官方網(wǎng)址:https://allennlp.org/elmo
官方 GitHub:https://github.com/allenai/bilm-tf