天天看點

為什麼說BERT是bidirectional

為什麼說BERT是bidirectional

BERT是一個deep bidirectional Transformer。

Transformer可參考 https://baijiahao.baidu.com/s?id=1622064575970777188&wfr=spider&for=pc 非常詳細易懂

Transformer是一個encoder-decoder架構。

編碼器的結構:

為什麼說BERT是bidirectional

其中,自注意力層在編碼某個詞的時候就會考慮這個詞所在句子的所有詞,是以在編碼的時候,self-attention是bidirectional的。

解碼器的結構如下:

為什麼說BERT是bidirectional

在解碼器中,self-attention的處理模式和編碼器中的self-attention不同。在解碼器中,self-attention隻允許處理輸出序列中更靠前的那些位置,把後面的位置隐去。就是相當于隻處理這個詞之前的詞,是以,在解碼器中的self-attention是unidirectional的。

但是,BERT在解碼過程中會使用這個詞前後的所有上下文,是以說是bidirectional Transformer.

原文中的說明是:

為什麼說BERT是bidirectional

另,為什麼使用self-attention?(下面是從attention as all you need https://arxiv.org/pdf/1706.03762.pdf裡面翻譯的)

1.考慮每層的計算複雜度

2.可以并行的計算

3.網絡中長依賴的路徑長度。影響學習這種長依賴的一個主要因素是在網絡中向前和向後的信号需要穿過的路徑的長度。輸入序列和輸出序列中的任何的位置組合之間的路徑越短,就越容易學習到跨度長的依賴。

為什麼說BERT是bidirectional

繼續閱讀