<tbody id="fuft6"><noscript id="fuft6"><video id="fuft6"></video></noscript></tbody>
    <tbody id="fuft6"><noscript id="fuft6"></noscript></tbody>
    <em id="fuft6"><acronym id="fuft6"></acronym></em>
          <button id="fuft6"><acronym id="fuft6"><u id="fuft6"></u></acronym></button>
          首頁人工智能技術資訊正文

          Bert算法:語言模型-BERT詳細介紹

          更新時間:2020-09-07 來源:黑馬程序員 瀏覽量:

          本文的目的是向NLP愛好者們詳細解析一個著名的語言模型-BERT。 全文將分4個部分由淺入深的依次講解。

          1.Bert簡介

          BERT是2018年10月由Google AI研究院提出的一種預訓練模型。

          BERT的全稱是Bidirectional Encoder Representation from Transformers。BERT在機器閱讀理解頂級水平測試SQuAD1.1中表現出驚人的成績: 全部兩個衡量指標上全面超越人類,并且在11種不同NLP測試中創出SOTA表現,包括將GLUE基準推高至80.4% (絕對改進7.6%),MultiNLI準確度達到86.7% (絕對改進5.6%),成為NLP發展史上的里程碑式的模型成就。

          2.關于Bert的模型架構

          總體架構:如下圖所示, 最左邊的就是BERT的架構圖,可以很清楚的看到BERT采用了Transformer Encoder block進行連接, 因為是一個典型的雙向編碼模型。

          BERT01

          BERT02


          3.1 關于Bert訓練過程中的關鍵點

          1)四大關鍵詞: Pre-trained, Deep, Bidirectional Transformer, Language Understanding

          a. Pre-trained: 首先明確這是個預訓練的語言模型,未來所有的開發者可以直接繼承!

          整個Bert模型最大的兩個亮點都集中在Pre-trained的任務部分。

          b. Deep

          Bert_BASE:Layer = 12, Hidden = 768, Head = 12, Total Parameters = 110M

          Bert_LARGE:Layer = 24, Hidden = 1024, Head = 16, Total Parameters = 340M

          對比于Transformer: Layer = 6, Hidden = 2048, Head = 8,是個淺而寬,說明Bert這樣深而窄的模型效果更好(和CV領域的總體結論基本一致)。

          C. Bidirectional Transformer: Bert的個創新點,它是個雙向的Transformer網絡。

          Bert直接引用了Transformer架構中的Encoder模塊,并舍棄了Decoder模塊, 這樣便自動擁有了雙向編碼能力和強大的特征提取能力。

          D. Language Understanding: 更加側重語言的理解,而不僅僅是生成(Language Generation)

          3.2 Bert的語言輸入表示包含了3個組成部分: (見上面第二張圖)

          詞嵌入張量: word embeddings

          語句分塊張量: segmentation embeddings

          位置編碼張量: position embeddings

          最終的embedding向量是將上述的3個向量直接做加和的結果。

          3.3: Bert的預訓練中引入兩大核心任務 (這兩個任務也是Bert原始論文的兩個最大的創新點)

          a 引入Masked LM(帶mask的語言模型訓練)

          a.1 在原始訓練文本中,隨機的抽取15%的token作為即將參與mask的對象。

          a.2 在這些被選中的token中,數據?生成器?并不不是把他們全部變成[MASK],?而是有下列列3個選擇:

          a.2.1 在80%的概率下,用[MASK]標記替換該token, 比如my dog is hairy -> my dog is [MASK]

          a.2.2 在10%的概率下, ??個隨機的單詞替換該token, 比如my dog is hairy -> my dog is apple

          a.2.3 在10%的概率下, 保持該token不變, 比如my dog is hairy -> my dog is hairy

          a.3 Transformer Encoder在訓練的過程中, 并不知道它將要預測哪些單詞? 哪些單詞是原始的樣? 哪些單詞被遮掩成了[MASK]? 哪些單詞被替換成了其他單詞? 正是在這樣一種高度不確定的情況下, 反倒逼著模型快速學習該token的分布式上下文的語義, 盡最大努力學習原始語言說話的樣子!!! 同時因為原始文本中只有15%的token參與了MASK操作, 并不會破壞原語言的表達能力和語言規則!!!

          b 引入Next Sentence Prediction (下?句話的預測任務)

          b.1 目的是為了服務問答,推理,句?主題關系等NLP任務。

          b.2 所有的參與任務訓練的語句都被選中參加。

          ·50%的B是原始?本中實際跟隨A的下?句話。(標記為IsNext,代表正樣本)

          ·50%的B是原始?本中隨機抽取的?句話。(標記為NotNext,代表負樣本)

          b.3 在該任務中,Bert模型可以在測試集上取得97-98%的準確率。

          3.4 關于基于Bert的模型微調(fine-tuning)

          只需要將特定任務的輸入,輸出插入到Bert中,利用Transformer強大的注意力機制就可以模擬很多下游任務。(句子對關系判斷,單文本主題分類,問答任務(QA),單句貼標簽(命名實體識別))

          微調的若干經驗:

          batch size:16,32

          epochs:3,4

          learning rate:2e-5,5e-5

          全連接層添加:layers:1-3,hidden_size:64,128

          BERT03

          4、Bert模型本身的優點和缺點。 


          優點: Bert的基礎建立在transformer之上,擁有強大的語言表征能力和特征提取能力。在11項 NLP基準測試任務中達到了state of the art。同時再次證明了雙向語言模型的能力更加強大。

          缺點:
          1)可復現性差,基本沒法做,只能拿來主義直接用!
          2)訓練過程中因為每個batch_size中的數據只有15%參與預測,模型收斂較慢,需要強大的算力支撐!

          引申:

          1)深度學習就是表征學習 (Deep learning is representation learning)

          ·整個Bert在11項語言模型大賽中,基本思路就是雙向Transformer負責提取特征,然后整個網絡加一個全連接線性層作為fine-tuning微調。但即便如此傻瓜式的組裝,在NLP中著名的難任務-NER(命名實體識別)中,甚至直接去除掉了CRF層,照樣大超越BiLSTM + CRF的組合效果, 這去哪兒說理去???

          2)規模的極端重要性 (Scale matters)

          不管是Masked LM,還是下一句預測Next Sentence Prediction,都不是首創的概念,之前在其他的模型中也提出過,但是因為數據規模+算力局限沒能讓世人看到這個模型的潛力,那些Paper也就不值錢了。但是到了谷歌手里, 不差錢的結果就是Paper值錢了!!

          3)關于進一步的研究展示了Bert在不同的層學習到了什么。

          ·低的網絡層捕捉到了短語結構方面的信息。

          ·單詞和字的特征表現在3-4層,句法信息的特征表現在6-9層,句?語義信息的特征表現在10-12層。

          ·主謂一致的特征表現在8-9層 (屬于句法信息的一種)。


          猜你喜歡:

          shiro支持的編碼/解碼和散列算法

          圖論算法介紹

          孤立森林算法介紹,這次終于看懂了!

          在線咨詢 我要報名
          和我們在線交談!

          黄色网站片

          <tbody id="fuft6"><noscript id="fuft6"><video id="fuft6"></video></noscript></tbody>
            <tbody id="fuft6"><noscript id="fuft6"></noscript></tbody>
            <em id="fuft6"><acronym id="fuft6"></acronym></em>
                  <button id="fuft6"><acronym id="fuft6"><u id="fuft6"></u></acronym></button>