關於BERT和Transformer的易錯點

1. BERT中使用Transformer作特徵提取器,其實只使用了Transformer的Encoder。

那麼Decoder去哪了呢?顯然是被BERT改造了。Transformer其實是個完整地seq-to-seq模型,可以解決諸如機器翻譯、QA這種輸入輸出爲不定長句子的任務,在Transformer中,它使用Encoder做特徵提取器,然後用Decoder做解析,輸出我們想要的結果。

而對於BERT,它作爲一個預訓練模型,它使用固定的任務——language modeling來對整個模型的參數進行訓練,這個language modeling的任務就是masked language model,所以它是一個用上下文去推測中心詞[MASK]的任務,故和Encoder-Decoder架構無關,它的輸入輸出不是句子,其輸入是這句話的上下文單詞,輸出是[MASK]的softmax後的結果,最終計算Negative Log Likelihood Loss,並在一次次迭代中以此更新參數。所以說,BERT的預訓練過程,其實就是將Transformer的Decoder拿掉,僅使用Encoder做特徵抽取器,再使用抽取得到的“特徵”做Masked language modeling的任務,通過這個任務進行參數的修正。

當然了,BERT不僅僅做了MLM任務,還有Next Sequence Prediction,這個由於後序驗證對模型的效果提升不明顯,所以沒有贅述。

注意:我們常說,xxx使用Transformer作爲特徵抽取器,這其實在說用Transformer的Encoder(主要是Self-Attention和短路連接等模塊)做特徵抽取器,和Decoder啥關係也沒有

發佈了54 篇原創文章 · 獲贊 84 · 訪問量 12萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章