解釋BERT爲什麼是雙向表示

之前也沒有仔細思考這個問題, 近幾天重新看了一遍BERT模型,發現之前的理解確實有問題,所以過來填坑。

在說明BERT的雙向表示前,先回顧一下常見的雙向表示

網絡結構的雙向

首先區別於biLSTM那種雙向, 那種是在網絡結構上的雙層

例如 biLSTM來進行一個單詞的雙向上下文表示
在這裏插入圖片描述
可以看到, 這種在網絡結構上, 每個單詞都從正向和反向都得到一個表示, 然後將此表示進行連接, 則此時認爲這就是單詞的雙向表示

在沒有深思之前,我也一直以爲BERT是使用上面的模式,而當我看到BERT的結構是這樣的,說明我之前是錯誤的理解:
在這裏插入圖片描述
請注意,BERT並沒有說講一個序列反向輸入到網絡中,所以BERT並不屬於這種。

BERT中的雙向表示

那麼BERT 是如何說明是雙向表示呢?

首先我們指導BERT的預訓練模型中,預訓練任務是一個mask LM通過隨機的把句子中的單詞替換成mask標籤, 然後對單詞進行預測

這裏注意到,對於模型,輸入的是一個被挖了空的句子, 而由於Transformer的特性, 它是會注意到所有的單詞的,這就導致模型會根據挖空的上下文來進行預測, 這就實現了雙向表示, 說明BERT是一個雙向的語言模型
在這裏插入圖片描述

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