日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【NLP】 深入浅出解析BERT原理及其表征的内容

發布時間:2025/3/20 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【NLP】 深入浅出解析BERT原理及其表征的内容 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本篇介紹目前NLP領域里影響力最大的預訓練模型BERT。首先,大致介紹了BERT里有什么;接著,介紹了BERT的結構和其預訓練的方式;最后,再總結BERT的表征的內容和分布。

作者&編輯 | 小Dream哥

1 BERT是什么?

了解自然語言處理的同學,應該沒有不知道BERT的;甚至連很多自然語言處理圈外的開發的同學,都知道這個模型的厲害。不得不佩服谷歌的影響力和營銷水平,當然,也確實是它的效果有這么棒。

這里就不再說BERT當年是怎么樣橫掃各大NLP任務榜單的故事了。畢竟現在出了個XLnet,各方面都比他強了一點點;而且,也開始有一些論文開始接BERT的短了。

那我們言歸正傳,現在來看看BERT究竟是什么,有什么樣的結構,如何進行預訓練等。

BERT,全稱是Pre-training of Deep Bidirectional Transformers for Language Understanding。注意其中的每一個詞都說明了BERT的一個特征。

Pre-training說明BERT是一個預訓練模型,通過前期的大量語料的無監督訓練,為下游任務學習大量的先驗的語言、句法、詞義等信息。

Bidirectional說明BERT采用的是雙向語言模型的方式,能夠更好的融合前后文的知識。

Transformers說明BERT采用Transformers作為特征抽取器。

Deep說明模型很深,base版本有12層,large版本有24層。

總的來說,BERT是一個用Transformers作為特征抽取器的深度雙向預訓練語言理解模型

2 BERT的結構

上圖是BERT的模型結構,它由多層的雙向Transformer連接而成,有12層和24層兩個版本。BERT中Transformer的實現與上一期講的Transformer實現別無二致。

要理解BERT,最主要在于它預訓練時采取的方法,下面我們做一個詳細的講解。

3 BERT預訓練模式

(1) Input Representation

我們先看看,BERT網絡接受的輸入是什么,如上圖所示,BERT接受的輸入包括三個部分:


1) 詞嵌入后的Token Embedding,每次輸入總以符號[CLS]的embedding開始,如果是兩個句子,則句之間用[SEP]隔開。

2) 句子類別的符號

3) Position Embedding,這個與Transformer中的一致。

上述三個向量相加,組成BERT的輸入。

(2) Masked Language Model

那么,BERT是通過什么樣的任務進行訓練呢?其中一個是Masked Language Model。BERT會在訓練時遮住訓練語料中15%的詞(實際的MASK機制還有一些調整),用符號[MASK]代替,通過預測這部分被遮住的內容,來讓網絡學習通用的詞義、句法和語義信息。

那么,該怎么理解Masked Language Model呢?我們不妨回想一下高中階段都做過的英語完形填空,我們在做完形填空題目的時候,為了填上空格中的詞,常常需要不斷的看空格詞的上下文,甚至要了解整個段落的信息。有時候,有些空甚至要通過一些英語常識才能得到答案。通過做完形填空,我們能夠學習到英語中很多的詞義、句法和語義信息。BERT的訓練過程也類似,Masked Language Model通過預測[MASK]代替的詞,不斷的“對比”上下文的語義,句法和詞義信息,從而學到了大量相關的知識。

哈哈,不知道BERT的提出者們是不是受中國英語試卷里完形填空題目的啟發呢?

(3) Next Sentence Prediction


BERT的預訓練過程,還有一個預測下一句的任務。就是輸入兩個句子,判斷第二個句子是不是第一個句子的下一句的任務。這個任務是為像QA和NLI這樣需要考慮句子間關系的下游任務準備的。


通過這個任務,BERT獲得了句子級表征的能力。通常,BERT的第一個輸出,即[CLS]對應的輸出,就可以用來當作輸入句子的句向量來使用。

4 BERT到底學到了什么?

(1) 在BERT在預訓練過程中,學習到了豐富的語言學方面的信息。


短語句法的信息在低層網絡結構中學習到;BERT的中層網絡就學習到了豐富的語言學特征;BERT的高層網絡則學習到了豐富的語義信息特征。


上述觀點來自如下的論文,該團隊用一系列的探針實驗,佐證了上述的觀點,對我們進一步了解BERT和更有效的使用BERT有一定的指導意義。

Ganesh Jawahar Beno??t Sagot Djam′e Seddah (2019). What does BERT learn about the structure of language?.

(2)?BERT其實并沒有學習到深層的語義信息,只是學習到了一些淺層語義和語言概率的線索?


最近有一篇論文"Probing Neural Network Comprehension of Natural Language Arguments",討論BERT在Argument Reasoning Comprehension Task(ARCT)任務中是不是其實只是學習到了數據集中一些虛假的統計線索,并沒有真正理解語言中的推理和常識。

事情大概是這樣子,論文作者為了殺殺BERT的威風,挑了自然語言處理中比較難的任務ARCT,并且在測試數據中做了一些“手腳”,想試一試BERT的身手。所謂的ARCT,是一個推理理解的任務。如下圖所示,展示了一個ARCT數據集中的例子。ARCT數據中有一個結論Claim,一個原因Reason,一個論據Warrant,還有一個錯誤論據Alternative。

如上圖所示,是ARCT任務的通用模型結構,就是同時輸入,Claim,Reason和兩個Warrant,預測哪個Warrant是正確的。

論文作者首先在ARCT原始數據集上用BERT進行ARCT任務的預測,發現BERT的效果確實很好,達到71.6±0.04,跟沒有接受過訓練的人員成績接近。

然后,研究人員研究測試數據集發現數據集里面其實隱藏了一些統計線索。簡單的說就是,數據集里正確的Warrant里包含某些詞的概率比錯誤的Warrant要高。例如,只要看到Warrant中包含not就預測其為正確的Warrant就能夠達到60的正確率。

同時,研究人員還做了只把warrant和claim、warrant和reason作為輸入來訓練模型的實驗。實驗發現,BERT的效果也能達到70+。這就好像老師題目都還沒有說完,學生就把答案寫出來,這顯然不太合理的,要么是學生作弊,要么是學生提前把答案背下來了。

最后,研究人員來了一招狠的,就是將數據集中的數據進行反轉和一些詞概率上的平均處理,如下所示:

實驗結果令人驚訝,BERT最好的效果只有53%,只比瞎猜好一點點。

所以,BERT的預訓練過程到底學到了什么呢?

要準確回答這個問題并不容易。但通過上述兩篇論文在兩個維度上對BERT的解析,我們心里應該能夠給BERT一個清晰的定位。BERT是一個強大的預訓練,因其超大的參數量和較強的特征提取能力,能夠從海量的語料中學習到一些語言學和一定程度的語義信息。但是,筆者認為,跟此前的所有NLP模型一樣,它還遠沒有學習到語言中蘊含的大量的常識和推理。例如,利用BERT或許能夠從"天下雨了",推斷出“要帶傘”。但是更深層次的,“要帶傘是因為怕淋濕,淋濕了會感冒”這些BERT是很難學到的。

NLP的難處就在于,語言是高度精煉和情境化的。一句簡單的話,可能需要豐富的知識才能理解。現在來看,預訓練模型是一條有希望但漫長的道路。

總結

BERT是目前最火爆的NLP預訓練模型,其基于MLM和雙向語言模型和以Transformer作為特征抽取器,是其成功最主要的兩個原因。我們先想想,BERT還有哪些地方可以改進的,下周我們介紹XLnet的時候,就可以更好的理解了。

讀者們可以留言,或者加入我們的NLP群進行討論。感興趣的同學可以微信搜索jen104,備注"加入有三AI NLP群"

下期預告:XLnet:BERT和GPT的結合

知識星球推薦

掃描上面的二維碼,就可以加入我們的星球,助你成長為一名合格的自然語言處理算法工程師。

知識星球主要有以下內容:

(1) 聊天機器人。考慮到聊天機器人是一個非常復雜的NLP應用場景,幾乎涵蓋了所有的NLP任務及應用。所以小Dream哥計劃以聊天機器人作為切入點,通過介紹聊天機器人的原理和實踐,逐步系統的更新到大部分NLP的知識,會包括語義匹配,文本分類,意圖識別,語義匹配命名實體識別、對話管理以及分詞等。

(2) 知識圖譜。知識圖譜對于NLP各項任務效果好壞的重要性,就好比基礎知識對于一個學生成績好壞的重要性。他是NLP最重要的基礎設施,目前各大公司都在著力打造知識圖譜,作為一個NLP工程師,必須要熟悉和了解他。

(3) NLP預訓練模型。基于海量數據,進行超大規模網絡的無監督預訓練。具體的任務再通過少量的樣本進行Fine-Tune。這樣模式是目前NLP領域最火熱的模式,很有可能引領NLP進入一個全新發展高度。你怎么不深入的了解?


轉載文章請后臺聯系

侵權必究

往期精選

  • 【NLP】自然語言處理專欄上線,帶你一步一步走進“人工智能技術皇冠上的明珠”。

  • 【NLP】用于語音識別、分詞的隱馬爾科夫模型HMM

  • 【NLP】用于序列標注問題的條件隨機場(Conditional Random Field, CRF)

  • 【NLP】經典分類模型樸素貝葉斯解讀

  • 【NLP】 NLP專欄欄主自述,說不出口的話就交給AI說吧

  • 【NLP】 深度學習NLP開篇-循環神經網絡(RNN)

  • 【NLP】 NLP中應用最廣泛的特征抽取模型-LSTM

  • 【NLP】 聊聊NLP中的attention機制

  • 【NLP】 理解NLP中網紅特征抽取器Tranformer

  • 【每周NLP論文推薦】從預訓練模型掌握NLP的基本發展脈絡

  • 【技術綜述】深度學習在自然語言處理中的應用發展

總結

以上是生活随笔為你收集整理的【NLP】 深入浅出解析BERT原理及其表征的内容的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。