NLP系列 10. BERT

Transformer的原理

BERT的算法來自谷歌的另一篇論文:https://arxiv.org/abs/1706.03762 。完全拋棄了RNN、CNN,而提出了另外一種新的網絡結構:Transformer。Transformer現在是谷歌雲TPU推薦的參考模型。
Transformer由encoder和decoder組成,encoder、decoder分別由一些編碼器和解碼器構成。
編碼器又分爲自注意層和前饋神經網絡兩部分。
在這裏插入圖片描述
(來源見水印)

  • 自注意層:從編碼器輸入的句子首先會經過一個自注意力(self-attention)層,這層幫助編碼器在對每個單詞編碼時關注輸入句子的其他單詞。
  • 前饋神經網絡:自注意力層的輸出會傳遞到前饋(feed-forward)神經網絡中。每個位置的單詞對應的前饋神經網絡都完全一樣,另一種解讀就是一層窗口爲一個單詞的一維卷積神經網絡。
    解碼器中也有編碼器的自注意力(self-attention)層和前饋(feed-forward)層。除此之外,這兩個層之間還有一個注意力層,用來關注輸入句子的相關部分(和seq2seq模型的注意力作用相似)。
    在這裏插入圖片描述
    參考:https://zhuanlan.zhihu.com/p/54356280
    Transformer 的 encoder 是一次性讀取整個文本序列,而不是從左到右或從右到左地按順序讀取,
    這個特徵使得模型能夠基於單詞的兩側學習,相當於是一個雙向的功能。在下面的BERT中會得到應用。

BERT的原理

谷歌發佈的論文「BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding」 (https://arxiv.org/pdf/1810.04805.pdf )中提出的BERT模型在 11 個 NLP 任務上的表現刷新了記錄。
BERT 可以用於問答系統,情感分析,垃圾郵件過濾,命名實體識別,文檔聚類等任務中,作爲這些任務的語言模型。
代碼地址:https://github.com/google-research/bert
BERT將雙向的transformer用於語言模型。
實驗的結果表明,雙向訓練的語言模型對語境的理解會比單向的語言模型更深刻,論文中介紹了一種新技術叫做 Masked LM(MLM),在這個技術出現之前是無法進行雙向語言模型訓練的。
BERT使用了以下兩種技術:

  1. Masked LM (MLM)
    在將單詞序列輸入給 BERT 之前,每個序列中有 15% 的單詞被 [MASK] token 替換。 然後模型嘗試基於序列中其他未被 mask 的單詞的上下文來預測被掩蓋的原單詞。
    這樣就需要:
  • 在 encoder 的輸出上添加一個分類層
  • 用嵌入矩陣乘以輸出向量,將其轉換爲詞彙的維度
  • 用 softmax 計算詞彙表中每個單詞的概率
  1. Next Sentence Prediction (NSP)
    在 BERT 的訓練過程中,模型接收成對的句子作爲輸入,並且預測其中第二個句子是否在原始文檔中也是後續句子。
    在訓練期間,50% 的輸入對在原始文檔中是前後關係,另外 50% 中是從語料庫中隨機組成的,並且是與第一句斷開的。
    爲了幫助模型區分開訓練中的兩個句子,輸入在進入模型之前要按以下方式進行處理:
  • 在第一個句子的開頭插入 [CLS] 標記,在每個句子的末尾插入 [SEP] 標記。
  • 將表示句子 A 或句子 B 的一個句子 embedding 添加到每個 token 上。
  • 給每個 token 添加一個位置 embedding,來表示它在序列中的位置。

爲了預測第二個句子是否是第一個句子的後續句子,用下面幾個步驟來預測:

  • 整個輸入序列輸入給 Transformer 模型
  • 用一個簡單的分類層將 [CLS] 標記的輸出變換爲 2×1 形狀的向量
  • 用 softmax 計算 IsNextSequence 的概率

在訓練 BERT 模型時,Masked LM 和 Next Sentence Prediction 是一起訓練的,目標就是要最小化兩種策略的組合損失函數。
BERT 的損失函數只考慮了 mask 的預測值,忽略了沒有掩蔽的字的預測。這樣的話,模型要比單向模型收斂得慢,不過結果的情境意識增加了。
參考:https://www.jianshu.com/p/d110d0c13063

利用預訓練的BERT模型進行文本分類

參考:
https://blog.csdn.net/qq_20989105/article/details/89492442
https://www.jiqizhixin.com/articles/2019-03-13-4