自然語言幾個重要的模型

自然語言幾個重要的模型。

  • 循環神經網絡 (序列模型序列依賴問題)
  • 雙向循環神經網絡(輸入序列正向和反向依賴問題)
  • 深度雙向循環神經網絡
  • LSTM(梯度消失問題)
  • GRU
  • text CNN(一維卷積和池化)
  • seq2seq(序列到序列問題)
  • Attention(decoder對encoder輸入序列注意力問題,從輸入獲取可用信息)
  • Transform(對輸入的序列分成q檢索項 k鍵項 v值項進行計算,矩陣並行計算)
  • 語言預訓練方法ELMO (使用雙向rnn組合中間層權重)
  • 語言預訓練方法BERT ERNIE (使用transform encoder部分無需標籤,ERNIE主要處理中文場景按詞mask)
  • 語言預訓練方法GPT (使用transform decoder部分)
1.循環神經網絡

在這裏插入圖片描述

  • 使用隱藏層保留之前時間步的信息
  • 梯度裁剪 處理梯度爆炸問題,即超出閾值怎重置爲閾值。因爲在RNN中目標函數有關隱藏狀態的梯度會因爲時間步數較大或時間步較小而變大。
2.雙向循環神經網絡

在這裏插入圖片描述
(橘色的實線和虛線分別是前向傳遞和後向傳遞的過程 )

  • 通常RNN輸入序列是按順序輸入,但此時就會丟失從後往前的數據。雙向RNN就是前後各有一個網絡,對各自輸出的向量進行整合。
3.深度雙向循環神經網絡

在這裏插入圖片描述

  • 疊加多層雙向RNN
4.LSTM

在這裏插入圖片描述
在這裏插入圖片描述

  • 包含了三個門,輸入門 輸出門 遺忘門
  • 緩解了梯度消失的問題
5.GRU

在這裏插入圖片描述

  • 包含重置門和更新門
  • 緩解了梯度消失的問題
6.textCNN

在這裏插入圖片描述
如上圖輸入每個單詞用5維詞向量表示,即輸入的通道是5. 輸入寬度是7. 紅色框卷積核寬是4 所以得到的輸出向量長度是7-4+1=4,再對通道做池化得到最後的向量進行拼接 再使用全連接層進行業務邏輯處理例如分類

  • 使用一維卷積來捕獲位置相近詞的關聯
  • 時序最大池化層
7.seq2seq

在這裏插入圖片描述

  • 序列到序列模型 使用Encoder編碼器生成序列到向量。Decoder解碼器從向量生成文本
  • encoder的輸出是c=f(h1, h2…),在計算y輸出時使用了相同的背景變量c。(但例如在翻譯場景輸出是關聯到輸入的某個詞的,所以引入了帶注意力機制的seq2seq)
  • 輸出y是一個概率模型(例如輸出y1可能有 “越” 50%可能性、“躍”10%可能性、…)選擇哪一個值有三種方式。
    • 貪婪搜索 只取概率最大的 ,但是這種情況並非能取到全局最優解。因爲前幾個詞選擇直接影響到後面幾個詞。
    • 窮舉搜索 量太大了。。
    • 束搜索 束寬k 每次取前k個 最後在候選取分最高得。
8.Attention注意力機制

在這裏插入圖片描述
在這裏插入圖片描述

  • 如上圖可以看出decoder的輸出受到上一時刻輸出、上一時刻隱含層變量和當前時間步背景向量影響。背景向量即所有編碼器隱含層的加權平均得到。ci即爲背景向量。

  • ci最終是由解碼器在i-1時刻的隱藏狀態和編碼器在j時刻的隱藏狀態得到,具體怎麼組合原文中提供了三種方法(第一種類似直接求內積…):在這裏插入圖片描述

  • 得到了輸入所需要得上一時刻輸出、上一時刻隱含層變量和當前時間步背景向量後,接下來就是如何組合這三個輸入得到輸出。使用門控循環單元進行組合。

9.Transform

變換器模型不同於RNN的架構(下一步計算都依賴前一步的輸出,無法並行)。使用矩陣運算得到計算效率更高的模型。
在這裏插入圖片描述
最終的公式:
在這裏插入圖片描述

  • 由上圖得到對於輸入x分別通過三個不同的矩陣得到q(檢索項)k(鍵值項)v(值項)。q1項分別與其他幾個鍵值項點乘再得到所有q1計算得到的值求softmax,再和v值項相乘求和。同樣得得到q2、q3、q4得出結果。該計算得過程是並行的。

  • 多頭注意力機制即每個x輸入將會輸出多組q k v如下圖,計算規則基本一致。
    在這裏插入圖片描述

  • 通過上述描述可以看出在計算過程中沒有詞的位置信息。所以在進行x->a的變換過程中,將a增加位置信息編碼。

  • 完整Transform
    在這裏插入圖片描述

10.語言模型預訓練方法ELMO

在這裏插入圖片描述

  • elmo使用雙向rnn對文本進行訓練得到中間層向量抽取後進行組合。組合的參數也是學出來了。原論文中r’n’n部分使用lstm實現
11.語言模型預訓練方法BERT
  • Bert使用transform的encoder部分,所以可以進行無標籤學習

  • bert訓練方法一 有15%的字會被MASK隱藏,這樣學出來的被遮擋的詞就會有相似的詞向量。
    在這裏插入圖片描述

  • bert訓練方法二 句子是否是相鄰的判斷。用SEP進行鏈接
    在這裏插入圖片描述

  • ERNIE 由上述可以看出Bert是對字進行MASK,對於中文場景進行的詞MASK更合理,如下圖。目前百度paddlepaddle已經發布開源版本。
    在這裏插入圖片描述

12.語言模型預訓練方法GPT
  • 使用transform的decoder部分。
  • 目前最大模型是1.5G 但是沒有release最終版本
13.詞向量計算相關模型word2vec和glove fasttext

圖片引自:

https://cs224d.stanford.edu/lecture_notes/LectureNotes4.pdf

http://colah.github.io/posts/2015-08-Understanding-LSTMs/

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

https://www.youtube.com/watch?v=uXY18nzdSsM&list=PLJV_el3uVTsOK_ZK5L0Iv_EQoL1JefRL4&index=59

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章