BERT
来自维基百科,自由的百科全书
基於變換器的雙向編碼器表示技術(英語:Bidirectional Encoder Representations from Transformers,BERT)是用於自然語言處理(NLP)的預訓練技術,由Google提出。[1][2]2018年,雅各布·德夫林和同事建立並發佈了BERT。Google正在利用BERT來更好地理解用戶搜尋陳述式的語意。[3] 2020年的一項文獻調查得出結論:「在一年多一點的時間裏,BERT已經成為NLP實驗中無處不在的基線」,算上分析和改進模型的研究出版物超過150篇。[4]
最初的英語BERT發佈時提供兩種類型的預訓練模型[1]:(1)BERTBASE模型,一個12層,768維,12個自注意頭(self attention head),110M參數的神經網絡結構;(2)BERTLARGE模型,一個24層,1024維,16個自注意頭,340M參數的神經網絡結構。兩者的訓練語料都是BookCorpus[5]以及英語維基百科語料,單詞量分別是8億以及25億。[6]
結構
BERT的核心部分是一個Transformer模型,其中編碼層數和自注意力頭數量可變。結構與Vaswani等人(2017)[7]的實現幾乎「完全一致」。
BERT在兩個任務上進行預訓練: 語言模型(15%的token被掩蓋,BERT需要從上下文中進行推斷)和下一句預測(BERT需要預測給定的第二個句子是否是第一句的下一句)。訓練完成後,BERT學習到單詞的上下文嵌入。代價昂貴的預訓練完成後,BERT可以使用較少的資源和較小的數據集在下游任務上進行微調,以改進在這些任務上的效能。[1][8]
效能及分析
BERT在以下自然語言理解任務上的效能表現得最為卓越:[1]
- GLUE(General Language Understanding Evaluation,通用語言理解評估)任務集(包括9個任務)。
- SQuAD(Stanford Question Answering Dataset,史丹福問答數據集)v1.1和v2.0。
- SWAG(Situations With Adversarial Generation,對抗生成的情境)。
有關BERT在上述自然語言理解任務中為何可以達到先進水平,目前還未找到明確的原因[9][10]。目前BERT的可解釋性研究主要集中在研究精心選擇的輸入序列對BERT的輸出的影響關係,[11][12]通過探測分類器分析內部向量表示,[13][14]以及注意力權重表示的關係。[9][10]
歷史
BERT起源於預訓練的上下文表示學習,包括半監督序列學習(Semi-supervised Sequence Learning)[15],生成預訓練(Generative Pre-Training),ELMo[16]和ULMFit[17]。與之前的模型不同,BERT是一種深度雙向的、無監督的語言表示,且僅使用純文字語料庫進行預訓練的模型。上下文無關模型(如word2vec或GloVe)為詞彙表中的每個單詞生成一個詞向量表示,因此容易出現單詞的歧義問題。BERT考慮到單詞出現時的上下文。例如,詞「水分」的word2vec詞向量在「植物需要吸收水分」和「財務報表裏有水分」是相同的,但BERT根據上下文的不同提供不同的詞向量,詞向量與句子表達的句意有關。
2019年10月25日,Google搜尋宣佈他們已經開始在美國國內的英語搜尋查詢中應用BERT模型。[18]2019年12月9日,據報道,Google搜尋已經在70多種語言的搜尋採用了BERT。[19] 2020年10月,幾乎每一個基於英語的查詢都由BERT處理。[20]
獲獎情況
參見
- Transformer模型
- Word2vec
- 自編碼器
- 文獻-檢索詞矩陣
- 特徵提取
- 特徵學習
- 神經網絡語言模型
- 向量空間模型
- 概念向量
- fastText
- GloVe
- TensorFlow
參考文獻
外部連結
Wikiwand - on
Seamless Wikipedia browsing. On steroids.