3. ELMo算法原理解析

1. 語言模型

2. Attention Is All You Need(Transformer)算法原理解析

3. ELMo算法原理解析

4. OpenAI GPT算法原理解析

5. BERT算法原理解析

6. 從Encoder-Decoder(Seq2Seq)理解Attention的本質

7. Transformer-XL原理介紹

1. 前言

今天給你們介紹一篇2018年提出的論文《Deep contextualized word representations》,在這篇論文中提出了一個很重要的思想ELMo。本人認爲ELMo的提出對後面的的GPT和BRET有一個很好的引導和啓發的做用。ELMo是一種是基於特徵的語言模型,用預訓練好的語言模型,生成更好的特徵。html

2. ELMo模型介紹

ELMo是一種新型深度語境化詞表徵,可對詞進行復雜特徵(如句法和語義)和詞在語言語境中的變化進行建模(即對多義詞進行建模)。咱們的詞向量是深度雙向語言模型(biLM)內部狀態的函數,在一個大型文本語料庫中預訓練而成。算法

說到詞向量,咱們必定會聯想到word2vec,由於在它提出的詞向量概念給NLP的發展帶來了巨大的提高。而ELMo的主要作法是先訓練一個完整的語言模型,再用這個語言模型去處理須要訓練的文本,生成相應的詞向量,因此在文中一直強調ELMo的模型對同一個字在不一樣句子中能生成不一樣的詞向量。函數

3. ELMo原理介紹

3.1 ELMo的預訓練

前面也說過ELMo最重要的一點是就是訓練語言模型,語言模型的結構以下:學習

image

他們使用的是一個雙向的LSTM語言模型,由一個前向和一個後向語言模型構成,目標函數就是取這兩個方向語言模型的最大似然。spa

前向LSTM結構:
\[ p(t_1,t_2,...,t_N) = \prod^N_{k=1}p(t_k|t_1,t_2,...,t_{k-1}) \]code

反向LSTM結構:
\[ p(t_1,t_2,...,t_N) = \prod^N_{k=1}p(t_k|t_{k+1},t_{k+2},...,t_{N}) \]orm

最大似然函數:htm

\[ \sum_{k=1}^N(logp(t_k|t_1,t_2,...,t_{k-1}) + logp(t_k|t_{k+1},t_{k+2},...,t_{N})) \]blog

3.2 使用語言模型

在預訓練好這個語言模型以後,ELMo就是根據公式來用做詞表示,其實就是把這個雙向語言模型的每一中間層進行一個求和。最簡單的也可使用最高層的表示來做爲ELMo。而後在進行有監督的NLP任務時,能夠將ELMo直接當作特徵拼接到具體任務模型的詞向量輸入或者是模型的最高層表示上。get

4. 總結

你們有想過爲何ELMo的效果會比word2vec的效果好?我我的認爲有一下幾點:

  1. ELMo的假設前提一個詞的詞向量不該該是固定的,因此在一詞多意方面ELMo的效果必定比word2vec要好。
  2. word2vec的學習詞向量的過程是經過中心詞的上下窗口去學習,學習的範圍過小了,而ELMo在學習語言模型的時候是從整個語料庫去學習的,然後再經過語言模型生成的詞向量就至關於基於整個語料庫學習的詞向量,更加準確表明一個詞的意思。
  3. ELMo還有一個優點,就是它創建語言模型的時候,能夠運用非任務的超大語料庫去學習,一旦學習好了,能夠平行的運用到類似問題。
相關文章
相關標籤/搜索