天天看點

詳細解讀谷歌新模型 BERT 為什麼嗨翻 AI 圈

詳細解讀谷歌新模型 BERT 為什麼嗨翻 AI 圈

今天帶來的這篇文章,詳細的講解了 BERT 以及和其他模型之間的差別。由深思考人工智能(iDeepWise Artificial Intelligence)投稿。

深思考人工智能是一家專注于類腦人工智能與深度學習核心科技的AI公司,公司核心技術是“多模态深度語義了解技術”,可同時了解文本、視覺圖像背後的語義。

全文大約3500字。讀完可能需要下面這首歌的時間

?

詳細解讀谷歌新模型 BERT 為什麼嗨翻 AI 圈

了解 BERT

詳細解讀谷歌新模型 BERT 為什麼嗨翻 AI 圈

BERT 模型全稱 Bidirectional Encoder Representations from Transformer s,是一種新型的語言模型,通過聯合調節所有層中的雙向 Transformer 來訓練預訓練深度雙向表示。

隻需要一個額外的輸出層,對預訓練 BERT 進行微調,就可以滿足各種任務,根本沒有必要針對特定任務對模型進行修改。這就是為什麼 BERT 模型能做在11項 NLP 任務上取得突破進展的原因。

想深入了解 BERT 模型,首先應該了解預訓練的語言模型。

預訓練的語言模型,對衆多自然語言處理問題起到了重要作用。比如 SQuAD 問答任務、命名實體識别,以及情感識别。

目前将預訓練的語言模型應用到 NLP 任務主要有兩種政策:

  1. 一種是基于特征的語言模型,如 ELMO 模型
  2. 另一種是基于微調的語言模型,如 OpenAI GPT

主流模型對比

Word2Vec

Word2Vec 作為裡程碑式的進步,對 NLP 的發展産生了巨大的影響。但 Word2Vec 本身是一種淺層結構價值訓練的詞向量,所“學習”到的語義資訊受制于視窗大小,是以後續有學者提出利用可以擷取長距離依賴的 LSTM 語言模型預訓練詞向量。

但上述語言模型有自身的缺陷。它是根據句子的上文資訊來預測下文,或者根據下文來預測上文的。

我們了解語言,是需要考慮到雙向的上下文資訊,而傳統的 LSTM 模型隻學習到了單向的資訊。

ELMO

今年年初, ELMO 的出現在一定程度上解決了這個問題。ELMO 是一種雙層雙向的 LSTM 結構,其訓練的語言模型可以學習到句子左右兩邊的上下文資訊,但此處所謂的上下文資訊并不是真正意義上的上下文。

OpenAI GPT

除此之外, OpenAI 的 GPT 是利用了 Transformer 的編碼器作為語言模型進行預訓練的,之後特定的自然語言處理任務在其基礎上進行微調即可。

和 LSTM 相比,此種語言模型的優點是可以獲得句子上下文更遠距離的語言資訊,但也是單向的。

BERT

為了充分利用左右兩側的上下文資訊, BERT 出現了!

OpenAI GPT 采用的從左到右的 Transformer;ELMO 采用經過單獨訓練的從左到右和從右到左的 LSTM 來生成下遊任務的特征。

隻有 BERT 模型采用的是雙向 Transformer,模型的表示在所有層中,共同依賴于左右兩側的上下文。

BERT 的出現,似乎融合了其他模型的所有的優點,并摒棄了它們的缺點,是以才可以在諸多後續特定任務上取得最優的效果。

詳細解讀谷歌新模型 BERT 為什麼嗨翻 AI 圈

圖1 預訓練模型結構對比圖

下面将從 BERT 模型的結構、輸入以及訓練三塊進行介紹。

BERT 總體結構

BERT 是一種基于微調的多層雙向 Transformer 編碼器,其中的 Transformer 與原始的 Transformer 是相同的,并且實作了兩個版本的 BERT 模型。在兩個版本中前饋大小都設定為4層:

  1. BERT BASE:L=12,H=768,A=12,Total Parameters=110M
  2. BERT LARGE:L=24,H=1024,A=16,Total Parameters=340M
?層數(即 Transformer blocks 塊)表示為 L,隐藏大小表示為 H,自注意力的數量為 A。

BERT 模型兩個版本的本質是一樣的;差別是參數的設定。BERTBASE 作為 baseline 模型,在此基礎上優化模型,進而出現了 BERTLARGE。

BERT 模型輸入表示

輸入表示,可以在一個詞序列中表示單個文本句或一對文本,例如:

[問題,答案]

。對于給定的詞,其輸入表示是可以通過三部分 Embedding 求群組成。Embedding 的可視化表示?:

詳細解讀谷歌新模型 BERT 為什麼嗨翻 AI 圈

圖2 BERT 模型的輸入表示

其中:

token Embedding s表示的是詞向量,第一個單詞是CLS标志,可以用于之後的分類任務,對于非分類任務,可以忽略詞向量

Segment Embedding s用來差別兩種句子,因為預訓練不隻做語言模型還要做以兩個句子為輸入的分類任務

Position Embedding s是通過模型學習得到的

BERT 模型預訓練任務

BERT 模型使用兩個新的無監督預測任務對 BERT 進行預處理,分别是Masked LM 和 Next Sentence Prediction。

Masked LM

詳細解讀谷歌新模型 BERT 為什麼嗨翻 AI 圈

來源:Fresh 92.7

為了訓練深度雙向 Transformer 表示,采用了一種簡單的方法:随機掩蓋部分輸入詞,然後對那些被掩蓋的詞進行預測。

此方法被稱為 Masked LM (MLM),預訓練的目标是建構語言模型,BERT 模型采用的是 bidirectional Transformer。基于 Masked LM 預處理的 BERT 模型能夠完成序列标注和命名實體識别等任務。

為什麼采用 bidirectional 的方式呢?因為在預訓練語言模型來處理下遊任務時,我們需要的不僅僅是某個詞左側的語言資訊,還需要右側的語言資訊。

在訓練的過程中,随機地掩蓋每個序列中15%的 token,并不是像 Word2Vec 中的 cbow 那樣去對每一個詞都進行預測。

MLM 從輸入中随機地掩蓋一些詞,其目标是基于上下文,來預測被掩蓋單詞的原始詞彙。與從左到右的語言模型預訓練不同,MLM 目标允許表示融合左右兩側的上下文,這使得可以預訓練深度雙向 Transformer。

Transformer 編碼器不知道它将被要求預測哪些單詞,或者哪些已經被随機單詞替換,是以它必須對每個輸入詞保持分布式的上下文表示。

此外,由于随機替換在所有詞中隻發生1.5%,是以并不會影響模型對于語言的了解。

Next Sentence Prediction

詳細解讀谷歌新模型 BERT 為什麼嗨翻 AI 圈

來源:BitDegree

很多句子級别的任務,如自動問答(QA)和自然語言推理(NLI)等任務,都需要了解兩個句子之間的關系。譬如上述 Masked LM 任務中,經過第一步的處理,15%的詞彙被遮蓋。

那麼在這一任務中,我們需要随機将資料劃分為同等大小的兩部分:

一部分資料中的兩個語句對是上下文連續的

另一部分資料中的兩個語句對是上下文不連續的。

然後讓 Transformer 模型來識别這些語句對中,哪些語句對是連續的,哪些語句對不連續。

BERT 模型場景應用

命名實體識别

命名實體是文本中資訊的主要載體,是建構資訊抽取系統的重要組成部分。

BERT 模型在 CoNLL-2003 NER 資料集的試驗結果, F1值相對于基線模型(CVT+Multi)隻提高了0.2%,似乎名額上沒有什麼驚豔的表現,模型在實驗上獲得的名額提升遠低于增加的計算成本。

但這種方式可以有效利用已有資料進行預訓練,充分利用先驗知識,在領域遷移性,模型通用型方面有巨大優勢。

在命名實體識别,尤其是在開放域實體方面,BERT 模型給了我們很大的想象空間,相信以後在開放域實體識别方面會不斷重新整理基線模型的名額。

機器閱讀了解

在機器閱讀了解領域,經過谷歌、微軟、百度、科大訊飛、騰訊、斯坦福大學等在内的衆多研究機構的不懈努力,目前已形成了

向量化-語義編碼-語義互動-答案預測

這樣一套四層機器閱讀了解模型體系。

從英文領域的代表 SQuAD 技術評測到中文領域的代表2018機器閱讀了解技術競賽,Top 團隊無一例外的在“向量化”層做足了文章。

“向量化”層主要負責将問題及篇章公離散字元轉變為隐含語義的表征向量,從 One-Hot 到 Word2Vec/Glove 再到 ELMO ,這一系列技術的變革都是在最大化的利用無監督的預訓練方式,将更多的隐含語義資訊嵌入模型,進而在不用應用場景中提高模型的評測名額。

BERT 模型則是利用 Deep bidirectional Transformers 預訓練一個通用語言模型,進而更好的正确了解語句和文章的語義資訊。

在 SQuAD 1.1競賽評測中驚人表現,也證明了該模型至少在目前已經開始引領 NLP 發展的潮流。能不能最終摘取AI領域最後的皇冠,隻能時間去驗證。

情感計算

在情感計算領域,希望可以借助其強大的語言模組化能力來獲得更多的領域知識,進而減少後續特定自然語言任務的人工标注成本。

比如:可以先在維基百科或者某些商業售後評論上預訓練語言模型,對相關領域進行“知識學習”,然後結合現有的有監督學習進行情緒識别和情感計算。

總結

語言模型的每一次進步都推動着 NLP 的發展。

從 Word2Vec 到 ELMO,從 OpenAI GPT 到 BERT,我們有幸見證着一個又一個記錄被打破,見證着一個又一個 AI 項目成功落地。

人工智能,正在激勵着人類向着未知探索前進。