理解神奇的BERT:自然語言處理的遊戲規則改變者?

2020-12-22 讀芯術

全文共2975字,預計學習時長6分鐘

圖源Unsplash

自然語言處理領域中最具突破性的發展是BERT的發布(曾被認為是自然語言處理領域的ImageNet)。與傳統的自然語言處理模式相比,BERT層次最高,是具有革命性意義的自然語言處理模式。這給很多現有的計算機邏輯框架、訓練方法、語言模型帶來了啟發,比如說谷歌的TransformerXL, OpenAI’sGPT-2, ERNIE2.0, XLNet, RoBERTa等等。

讓我們一起來了解一下BERT,及其在轉換自然語言處理方面的潛力。

什麼是BERT?

BERT(Bidirectional EncoderRepresentations from Transformers)是由谷歌的研究者於2018年開發的 一款開原始碼的NLP預訓練模型。它是GPT(廣義語言模型)的延續,BERT在自然語言處理中優於其他幾種模式並且在問答(SQuAD v1.1)、自然語言推理 (MNLI),和其他框架中提供了最優結果。

BERT建立於預訓練上下文表徵的基礎上——包括半監督序列學習(由Andrew Dai和Quoc Le提出)、ELMo(由Matthew Peters和來自AI2和來自UW,、CSE的研究人員提出)、ULMFiT(由fast.ai 創始人Jeremy Howard和Sebastian Ruder提出)、OpenAI transformer(由OpenAI研究人員Radford、Narasimhan、Salimans和Sutskever提出)和Transformer (Vaswani等人提出)。

BERT之所以在其他框架中如此獨一無二,是因為它首次使用深層雙向無監督語言表徵和在預訓練中只使用純文本語料庫。因為BERT是開源的,所以任何人只要懂得機器學習知識,就能輕鬆地建立起一個NLP模型,且無需使用訓練模型的大量源數據集。因此,節約了時間、精力、知識和資源。

最後,在未標記文本的大型語料庫中對BERT進行預訓練,該語料庫包括維基百科(大約25億字)以及一個圖書語料庫(大約8億字)。

BERT怎樣運作的?

傳統的與上下文無關模型(如word2vec或GloVe)為詞彙表中的每個單詞生成一個單獨的單詞嵌入表徵,這意味著單詞「right」在「I 'm sure I 'm right」和「Take a right turn」中具有相同的上下文無關表徵。

但是,BERT是基於上下文的,所以它是雙向的。雖然雙向的理念已經存在很長時間了,但是BERT是首次在深層神經網絡成功實行預訓練雙向性的案例。

BERT是怎麼實現這一點的?

圖源: BERT [Devlin et al., 2018]

BERT使用兩種技術。一種是MLM(Mask Language Model)模型—通過屏蔽輸入中的一些單詞,然後對每個單詞進行雙向條件設置,以預測屏蔽的單詞。在將單詞序列輸入轉換器BERT之前,每個序列中15%的單詞被替換為一個[MASK]指令。該模型試圖根據序列中其他非屏蔽詞提供的上下文來預測屏蔽詞的初始值。

第二種技術是NSP(Next Sentence Prediction),BERT學習將句子間的關係進行模型。在訓練過程中,該模型接收成對的句子作為輸入,並學習預測其中的第二個句子是否是原文檔中的第二個句子。考慮兩個句子A和B, B是語料庫中A後面的下一個句子,還是一個隨機的句子?例如:

當訓練BERT模型時,兩種技術一起訓練,因此將兩種策略的組合損失函數最小化。

BERT架構

BERT是深度雙向的,OpenAI GPT是單向的,而ELMo是淺層雙向的。圖片來源:谷歌AI博客

BERT架構建立在Transformer之上。有兩種變體:

BERT Base: 12層(transformer blocks),12個注意事項,1.1億個參數BERT Large:24層(transformer blocks),16個注意事項,3.4億個參數

結果

在SQuAD v1.1表格中,BERT的F1分數達到93.2%(測量的準確性),超過了以前最先進的分數91.6%和人類層面的91.2%的得分:BERT在絕對非常具有挑戰性的GULE基準下也提高了到了最先進的7.6%,這是一組9個多樣化的自然語言理解(NLU)任務的集合。

BERT能在現實中應用嗎?

BERT無疑是機器學習用於自然語言處理的一個裡程碑。但是我們需要反思BERT如何在各種自然語言處理場景中使用。

文本分類是自然語言處理的主要應用之一。例如,這個概念已經在票務工具中有所使用,根據簡短的描述或電子郵件對票務進行分類,並將票務分類/發送到正確的團隊進行解決。同樣,它也可以用來區分電子郵件是否是垃圾郵件。

在日常生活中也可以找到BERT的一些應用。

郵件的建議回復、智能撰寫和谷歌搜索的自動完成

聊天機器人能回答用戶查詢和處理各種任務,這正影響著著信息產業。然而,聊天機器人的最大限制之一是意圖識別和從句子中捕獲詞語。

問答模型(QnA)是自然語言處理的基本系統之一。在QnA中,基於機器學習的系統從知識庫或文本段落中生成作為輸入的問題的答案。BERT 能夠在聊天機器人中使用嗎? 毫無疑問,可以。BERT現在被用在許多人工智慧對話應用中。所以,聊天機器人應該變得更聰明。

但是,BERT只能用於回答非常短的段落中的問題,而且有很多關鍵問題需要解決。作為一種通用的任務,NLP過於複雜,具有更多的含義和微妙之處。BERT只解決了其中的一部分,但肯定很快就會改變字詞識別模型。

BERT如今只能解決有限的一類問題。然而,還有許多其他的任務,如情緒檢測、分類、機器翻譯、命名實體識別、摘要和問題回答,都需要在此基礎上進行。現在關於BERT有這樣的批評意見:這樣的任務是基於對表象的操縱,沒有任何理解,添加簡單的對抗性內容,修改原始內容,會使其混淆。

BERT只有在操作中廣泛使用並在實際場景中得以改進,它的真正好處才能在自然語言處理中實現,從而應用在支持企業和用戶的廣泛應用程式中。

然而,隨著一波基於轉換的方法(例如,GPT-2、RoBERTa、XLNet)的出現,情況正在迅速變化,這些方法通過展示更好的性能或更簡單的訓練或其他一些特定的好處來不斷提高標準。

來看看BERT發布之後的其他模型的發展情況

RoBERTa

RoBERTa由Facebook開發,建立在BERT的語言屏蔽策略上,並修改了BERT中的一些關鍵超參數。為了改進訓練過程,RoBERTa從BERT的預訓練中刪除了NSP任務,並引入了動態掩蔽,使得掩蔽的令牌在訓練期間發生變化。它也接受了比BERT多一個數量級的訓練,所需時間更長。

DistilBERT

DistilBERT由HuggingFace開發,學習了BERT的一個提取(近似)版本,在GLUE標準下保持95%的性能,但只使用了一半的參數(只有6600萬個參數,而不是1.1億個參數)。這意味著,一旦一個大型的神經網絡被訓練,它的全部輸出分布可以用一個更小的網絡來近似(比如後驗近似)。

XLM/mBERT

XLM由Facebook開發,使用了一種已知的預處理技術(BPE)和一種與BERT一樣的雙語言訓練機制,用以學習不同語言單詞之間的關係。在多語言分類任務中,該模型的表現優於其他模型,並且當使用預先訓練的模型初始化翻譯模型時,該模型顯著地改進了機器翻譯。

ALBERT

ALBERT(一種用於自我監督語言表徵學習的精簡型BERT)由谷歌研究中心和豐田技術研究所聯合開發,將會接替BERT。ALBERT比BERT更小、更輕、更聰明。兩個關鍵的架構變化使ALBERT性能更好,並極大地減小了模型的大小。第一個是參數的數量。它通過跨所有層共享所有參數來提高參數效率。這意味著前饋網絡參數和注意參數都是共享的。

研究人員還將隱藏層的大小與詞彙嵌入的大小分開。這是通過將一個獨熱向量投射到一個低維嵌入空間,然後投射到隱藏空間來實現的,這使得在不顯著增加詞彙表嵌入的參數大小的情況下,更容易增加隱藏層的大小。

談及預訓練,ALBERT有自己的訓練方法,叫做SOP(Sentence-Order Prediction),而不是NSP。NSP的問題在於,它將主題預測與相干預測混為一談。

ALBERT代表了幾個基準上自然語言處理和參數效率的最新技術。這是一個驚人的突破,ALBERT建立在BERT所做的偉大工作上,並在多個方面發展了自然語言處理。

BERT和類似的模型無疑是自然語言處理領域遊戲規則的變革者。機器現在可以更好地理解語音,並實時做出智能響應。許多基於BERT的模型正在開發,包括VideoBERT、ViLBERT(視覺和語言BERT)、PatentBERT、DocBERT等。

你對NLP和BERT的未來有什麼看法?

留言點讚關注

我們一起分享AI學習與發展的乾貨

如轉載,請後臺留言,遵守轉載規範

相關焦點

  • BERT詳解:開創性自然語言處理框架的全面指南
    你已經聽說過BERT、它的強大功能,以及它是如何潛在地改變自然語言處理領域的。但是BERT到底是什麼呢?因此,經過預先訓練的BERT模型只需一個額外的輸出層就可以進行微調,從而為各種自然語言處理任務生成最新模型。對於入門者而言,這聽起來過於複雜,但確實總結了BERT的優勢,接下來進行詳細講解。
  • 從 one-hot 到 BERT,帶你一步步理解 BERT
    自然語言處理(NLP)是資訊時代最重要的技術之一。理解複雜的語言也是人工智慧的重要組成部分。而自google在2018年10月底公布BERT在11項nlp任務中的卓越表後,BERT(Bidirectional Encoder Representation from Transformers)就成為NLP一枝獨秀,本文將為大家層層剖析bert。
  • 帶新手走進自然語言處理,7本NLP專業書
    「自然語言處理是計算機科學領域與人工智慧領域中的一個重要方向。它研究能實現人與計算機之間用自然語言進行有效通信的各種理論和方法。        自然語言處理是一門融語言學、計算機科學、數學於一體的科學。因此,這一領域的研究將涉及自然語言,即人們日常使用的語言,所以它與語言學的研究有著密切的聯繫,但又有重要的區別。
  • 騰訊自然語言處理實習面經
    原創 · 作者 | ink 個人簡介 | 985碩士,研究方向自然語言處理 師兄在騰訊,就讓師兄內推了一下騰訊自然語言處理的實習。在內推前,簡單把李航的統計學習方法,簡歷涉及的知識點都過了一遍,整理了一下,同時leetcode刷了大概100題。
  • BERT模型:自然語言處理最新裡程碑完整詳解!
    與BERT模型相似的預訓練語言模型例如問答、命名實體識別、自然語言推理、文本分類等在許多自然語言處理任務中發揮著重要作用。BERT是一種基於微調的多層雙向變換器編碼器。首先介紹下該變換器的架構,這一點尤為重要。什麼是變換器(Transformer)?
  • ChineseGLUE:為中文NLP模型定製的自然語言理解基準
    然而,現有的 GLUE 基準針對的是英文任務,無法評價 NLP 模型處理中文的能力。為了填補這一空白,國內關注 NLP 的熱心人士發布了一個中文語言理解測評基準——ChineseGLUE。ChineseGLUE 目前擁有八個數據集的整體測評及其基線模型,目前已經有 20多位來自各個頂尖機構的自願者加入並成為了創始會員。
  • 自然語言處理的十大應用
    介紹自然語言處理是數據科學領域最熱門的課題之一。公司在這一領域投入大量資金進行研究。每個人都在努力了解自然語言處理及其應用,並以此為生。你知道為什麼嗎?因為僅僅在短短幾年的時間裡,自然語言處理已經發展成為一種無人能想像的強大而有影響力的東西。為了了解自然語言處理的力量及其對我們生活的影響,我們需要看看它的應用。
  • 自然語言處理的應用前景
    自然語言處理(NLP)的定義 自然語言處理(NLP)是人工智慧技術的一個分支,它使計算機能夠像人們一樣理解、處理和生成語言,並且在商業中的應用正在迅速增長。 雖然自然語言處理(NLP)這一術語最初指的是人工智慧系統的閱讀能力,但它後來成為所有計算語言學的一種通俗說法。
  • 劉知遠:知識指導的自然語言理解
    在2019年6月的集智-凱風複雜系統論壇中,劉知遠老師就知識指導的自然語言理解展開了一系列討論:先介紹了自然語言處理的基本概念,然後是以深度學習為代表的數據驅動的自然語言,再將知識引入到深度學習模型中,知識+數據雙向驅動的自然語言處理。本文內容源於劉知遠老師的講座內容,經授權發布。講座錄播時長21分鐘,地址見文末。
  • 紅樓夢、法律,BERT 已有如此多的神奇應用
    自然語言處理領域的 BERT 模型恰好印證了這一規律,BERT 嘗試著用一個統一的模型處理自然語言處理領域的經典任務,如閱讀理解、常識推理和機器翻譯等任務。毫無疑問,BERT 開啟了自然語言處理領域一個嶄新的時代。最近發布的 XLNet 在多個方面超越了 BERT,但是 BERT 語言模型與現有領域,如法律文書、科研論文,的交叉應用實例,對於 XLNet 的應用仍有非常大的意義。
  • 用於自然語言處理的BERT-雙向Transformers的直觀解釋
    一種理解用於自然語言處理的BERT-Transformer雙向編碼器表示的直觀方法在這篇文章中,我們將使用一種直觀的方法來理解NLP的發展,包括BERT。預訓練策略使BERT如此強大和流行,並且BERT可針對大多數NLP任務進行微調。
  • 梳理十年Kaggle競賽,看自然語言處理的變遷史
    各種類型的挑戰賽(計算機視覺、語音、表格處理等等)都會在這個在線平臺發布,而自然語言處理(NLP)問題最近亦備受關注。誠然,過去幾個月裡,我們已經見證這一領域有好幾項振奮人心的創新,而目前流行的的則是transformers和預訓練語言模型。
  • PyTorch-Transformers:最先進的自然語言處理庫(附帶python代碼)
    – Sebastian Ruder想像一下我們有能力構建支持谷歌翻譯的自然語言處理(NLP)模型,並且在Python中僅需幾行代碼來完成,這聽起來是不是讓人非常興奮。而現在我們就可以坐在自己的機器前實現這個了!
  • 【BERT】如何訓練並使用Bert【持續更新】
    來自 | 知乎地址 | https://zhuanlan.zhihu.com/p/113326366作者 | 小李杜ljyduke編輯 | 機器學習算法與自然語言處理公眾號因為BERT就不是一個正常的語言模型(從左往右或者反過來)mp.weixin.qq.com/s/CUVW這裡有給出比較簡單但是很好理解的介紹。因為 bi-rnn、bi-lstm 的『雙向』,並不是像 bert 一樣,將上下文用同一套模型參數進行編碼,而是用兩個分開的單向rnn去處理,只不過共享了輸入,以及輸出時進行拼接。
  • BERT是否完美,語言模型又是否真正地「理解了語言」呢?
    機器之心發布 作者:追一科技 AI Lab 研究員 Tony 大家都知道,BERT等語言模型在自然語言處理中得到了廣泛的應用。但有時也會出現一個疑問,這些語言模型是否真正地理解了語言呢?專家學者對此也會有不同的見解。
  • NLP研究入門之道:自然語言處理簡介
    沒有語言,人類的思維也就無從談起,所以自然語言處理體現了人工智慧的最高任務與境界,也就是說,只有當計算機具備了處理自然語言的能力時,機器才算實現了真正的智能。從研究內容來看,自然語言處理包括語法分析、語義分析、篇章理解等。從應用角度來看,自然語言處理具有廣泛的應用前景。
  • 自然語言處理有哪些任務?
    這裡通過自己的理解,把NLP需要解決的問題做一下簡單的分類。人類的語言以文本為主,文本由段落組成,段落由句子構成,句子再有短語或詞語組成,詞語由字符構成,最終目的是表達語義。什麼是文本挖掘,我在網上查了一些資料,說法種類也比較多;說一下我個人的理解,「挖掘」的對象是什麼?當然希望從文章句子中獲取一些關心的信息,比如文本的感情色彩,文本的類別是什麼, 從文本中提取一些東西等等。
  • 自然語言處理的經驗主義和理性主義
    前不久,中國語言文字研究所研究員、計算語言學家馮志偉先生在接受中國社會科學院訪談時呼籲計算語言學的發展應將基於規則的理性主義和基於統計的經驗主義相結合。馮志偉先生在另一篇文章中對計算語言學/自然語言處理發展過程中的經驗主義和理性主義做了非常高屋建瓴的解讀和詳細深刻的闡釋,本文就對這篇文章進行梳理,回史望今,希望對理解當下自然語言處理的發展趨勢有所幫助。
  • 人工智慧之自然語言處理初探
    編輯導讀:自然語言處理是人工智慧的一個細分領域,是一個龐大的系統的工程。本文將從自然語言處理的簡介、句法分析、發展現狀、話語分割、知識體系、指代消解六個方面展開分析,希望對你有幫助。最近在梳理人工智慧的一個細分領域自然語言處理相關知識點。隨著查閱的資料越來越多,在梳理的過程中,也越來越發現自己的無知。
  • 人工智慧難點之——自然語言處理(NLP)
    (人工智慧主要包含以下幾個方面: 自動推理-計算語言學-計算機視覺-進化計算-專家系統-自然語言處理-機器人學)自然語言處理(NLP)是資訊時代最重要的技術之一。理解複雜的語言也是人工智慧的重要組成部分。NLP的應用無處不在,因為人們用語言進行大部分溝通:網絡搜索,廣告,電子郵件,客戶服務,語言翻譯,發布學報告等等。NLP應用背後有大量的基礎任務和機器學習模型。