近日,谷歌AI團(tuán)隊(duì)新發(fā)布的BERT模型,在NLP業(yè)內(nèi)引起巨大反響。BERT在機(jī)器閱讀理解測(cè)試SQuAD1.1中表現(xiàn)出驚人的成績(jī):全部?jī)蓚€(gè)衡量指標(biāo)上全面超越人類,并且還在11種不同NLP任務(wù)中創(chuàng)出最佳成績(jī)。這項(xiàng)工作被認(rèn)為是NLP領(lǐng)域里程碑式的進(jìn)步。新智元專欄作者鄧侃博士對(duì)這篇論文進(jìn)行了詳細(xì)解讀。
一個(gè)完整的深度學(xué)習(xí)系統(tǒng),通常包括以下四個(gè)部分,1. 應(yīng)用場(chǎng)景、2. 模型、3. 訓(xùn)練數(shù)據(jù)、4. 算力。
從2018年年初以來,深度學(xué)習(xí)在語言處理方面,一直沒有特別靚麗的突破性進(jìn)展。三天前,2018年10月11日,谷歌人工智能語言研究組發(fā)表了一篇論文,立刻引起業(yè)界巨大反響。
這篇論文的題目是,《BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding》。這個(gè)題目很直白,一眼望去就能猜得到,這篇文章至少會(huì)講到四大問題中的三個(gè),應(yīng)用場(chǎng)景、模型、訓(xùn)練數(shù)據(jù)。
論文地址:
https://arxiv.org/abs/1810.04805
多種應(yīng)用場(chǎng)景,與通用語言模型
自然語言處理(NLP)的應(yīng)用場(chǎng)景,從大的方面講,是對(duì)于語言文字的智能處理,包括閱讀理解、問答對(duì)話、寫作、翻譯等等。這些應(yīng)用場(chǎng)景,又可以細(xì)分成若干任務(wù),包括從一連串字中識(shí)別詞,從一連串詞中識(shí)別詞組、從語句中識(shí)別主謂賓定語狀語、從語句中識(shí)別語氣情緒、從整篇文章中提煉摘要、根據(jù)提問從整篇文章中尋找答案,等等。
這篇論文介紹了一種模型,BERT,它至少能解決 NLP 諸多任務(wù)中的 11 種,包括:
* 淘寶上有很多用戶評(píng)論,能否把每一條用戶轉(zhuǎn)換成評(píng)分?-2、-1、0、1、2,其中 -2 是極差,+2 是極好。假如有這樣一條用戶評(píng)語,“買了一件鹿晗同款襯衫,沒想到,穿在自己身上,不像小鮮肉,倒像是廚師”,請(qǐng)問這條評(píng)語,等同于 -2,還是其它?
* 當(dāng)用戶提問,“兩歲的男孩為什么食欲不振”,深度學(xué)習(xí)是否可以從大量書籍中,自動(dòng)摘錄相關(guān)內(nèi)容,并組織成流暢的語言,回答用戶提問?
用同一種模型,解決多種不同任務(wù)。這涉及到一個(gè)十分激進(jìn)的猜想:在以往的實(shí)踐中,我們通常為每種具體任務(wù),單獨(dú)定制模型。是否存在一種“通用”的語言模型,能夠用它來完成多種不同的任務(wù)?
BERT 的研究者們,試圖證明Deep Bidirectional Transformers就是這樣一種通用的語言模型,它不僅能解決 11 種不同的 NLP 任務(wù),而且在所有任務(wù)上的精度,大幅度領(lǐng)先以往其它模型,甚至超越人類。
為什么Deep Bidirectional Transformers能夠擔(dān)當(dāng)通用的語言模型?論文沒有提供嚴(yán)格的數(shù)學(xué)證明,只是用 11 種不同的具體任務(wù),來經(jīng)驗(yàn)地驗(yàn)證這個(gè)模型的通用性。
Deep Bidirectional Transformers,這三個(gè)詞分別是什么意思?
假如在一個(gè)句子 “中國的首都是北京”中 ,先遮蓋某一個(gè)詞,譬如 “首都”。然后,把遮蓋后的殘缺的句子,“中國的[mask]是北京”,輸入進(jìn)電腦,讓電腦猜一猜 [mask] 應(yīng)該是什么詞。
電腦可以從前往后猜,也就是根據(jù)前文“中國/的” ,猜測(cè) [mask] 會(huì)是什么詞。電腦也可以從后往前猜,也就是根據(jù)后文 “北京/是”,猜測(cè)[mask] 會(huì)是什么詞。這兩種方式都是單向預(yù)測(cè)unidirectional。
很顯然,單向預(yù)測(cè)不能完整地理解整個(gè)語句的語義。于是研究者們嘗試雙向預(yù)測(cè)。把從前往后,與從后往前的兩個(gè)預(yù)測(cè),拼接在一起 [mask1/mask2],這就是雙向預(yù)測(cè) bi-directional。細(xì)節(jié)參閱《Neural Machine Translation by Jointly Learning to Align and Translate》。
BERT 的作者認(rèn)為,bi-directional 仍然不能完整地理解整個(gè)語句的語義,更好的辦法是用上下文全向來預(yù)測(cè)[mask],也就是用 “中國/的/ .. /是/北京”,來預(yù)測(cè) [mask]。BERT 的作者把上下文全向的預(yù)測(cè)方法,稱之為 deep bi-directional。
如何來實(shí)現(xiàn)上下文全向預(yù)測(cè)呢?BERT 的作者建議使用Transformer 模型。這個(gè)模型在《Attention Is All You Need》一文中,被首次提出。論文發(fā)表后,立刻引起業(yè)界轟動(dòng),成為深度學(xué)習(xí) NLP 的里程碑式的進(jìn)展。
Transformer模型的核心是聚焦機(jī)制,對(duì)于一個(gè)語句,可以同時(shí)啟用多個(gè)聚焦點(diǎn),而不必局限于從前往后的或者從后往前的,序列的串行處理。所以,幾乎不用修改 Transformer 的代碼,就可以完成上下文全向的預(yù)測(cè)任務(wù)。
訓(xùn)練數(shù)據(jù)與 Pre-training
模型不僅需要功能強(qiáng)勁的結(jié)構(gòu),而且還必須具備正確的參數(shù),這樣才能擔(dān)當(dāng)通用語言模型,準(zhǔn)確理解文章語句的語義。
BERT 這篇論文,嘗試了兩種規(guī)模的 transformer 模型。第一個(gè)模型的規(guī)模較小,總共有 12 層模塊(L=12)、在每個(gè)模塊中語義數(shù)值向量的維度為 786(H=768)、聚焦探頭 12 個(gè)(A=12)。整個(gè)小模型,需要訓(xùn)練的模型參數(shù)的總數(shù)是 12 * 768 * 12 = 110M。大模型 L=24,H=1024,A=16, 大模型參數(shù)的總數(shù)是 24 * 1024 * 16 = 393M。
幾億個(gè)參數(shù)需要訓(xùn)練,自然需要海量的訓(xùn)練數(shù)據(jù)。如果全部用人力標(biāo)注的辦法,來制作訓(xùn)練數(shù)據(jù),人力成本太大。從哪里收集這些海量的訓(xùn)練數(shù)據(jù)?
2003年發(fā)表的《A Neural Probabilistic Language Model》論文,提出一個(gè)收集訓(xùn)練數(shù)據(jù)的辦法:每一篇文章,從新聞到小說到論文,天生都是訓(xùn)練數(shù)據(jù),不需要額外做人工標(biāo)注。
受這篇論文的啟發(fā),BERT 研究者們嘗試用以下方法,訓(xùn)練模型參數(shù)。方法分兩步,
1. 把一篇文章中 15% 的詞匯遮蓋,讓模型根據(jù)上下文全向地預(yù)測(cè)被遮蓋的詞。通過預(yù)測(cè)任務(wù),來初步訓(xùn)練 Transformer 模型的參數(shù)。
假如有 1 萬篇文章,每篇文章平均由 1 千個(gè)詞匯構(gòu)成,隨機(jī)遮蓋 15% 的詞匯,那么模型需要預(yù)測(cè) 150 萬個(gè)詞匯。
2. 用一個(gè)新任務(wù),識(shí)別兩個(gè)句子是否連續(xù),來進(jìn)一步訓(xùn)練模型參數(shù)。
譬如從上述 1 萬篇文章中,挑選 20 萬對(duì)語句,總共 40 萬句語句。在這些語句中,經(jīng)過第一步的處理,15% 的詞匯被遮蓋(某些細(xì)節(jié),不必絮述)。
挑選 20 萬對(duì)語句的時(shí)候,讓其中一半是上下文中連續(xù)的兩個(gè)語句,剩余的一半,由不是連續(xù)的兩個(gè)語句構(gòu)成。然后讓 Transformer 模型來識(shí)別這 20 萬對(duì)語句中,哪些對(duì)子是連續(xù)的,哪些對(duì)子不連續(xù)。
這兩步訓(xùn)練合在一起,稱為預(yù)訓(xùn)練 pre-training。訓(xùn)練結(jié)束后的 Transformer 模型,就是通用的語言模型,BERT。
Pre-training 與 Fine-tuning
預(yù)訓(xùn)練 pre-training 出來的通用模型,能夠正確理解語句和文章的語義。通用模型不能直接用于解決不同的 NLP 具體問題,需要給通用模型穿一件外套。
BERT 論文中的 Figure 3,描述了針對(duì)四類不同問題的四種不同外套。
Figure 3
不僅模型需要穿外套,而且外套也有參數(shù),找到這些參數(shù)的最優(yōu)值,是精加工 fine-tuning 的目標(biāo)。另外,在精加工的過程中,有時(shí)也自動(dòng)地順帶微調(diào)BERT 通用模型的一些參數(shù)。
對(duì)模型外套進(jìn)行精加工時(shí),不同具體問題,需要不同的訓(xùn)練數(shù)據(jù)。這篇論文,嘗試了 11 種不同問題的多種公開的,經(jīng)過人工標(biāo)注的訓(xùn)練數(shù)據(jù)集。
模型的參數(shù)高達(dá)幾億個(gè),用海量的文章作為 pre-training 的訓(xùn)練數(shù)據(jù),再用多種人工標(biāo)注的訓(xùn)練數(shù)據(jù),來訓(xùn)練模型,找到模型參數(shù)的最優(yōu)值。不難想象,計(jì)算成本非常非常高。
BERT 論文中說,他們動(dòng)用了谷歌 Cloud AI 資源,用了 64 顆 TPU,算了 4 天,模型參數(shù)尋優(yōu)的訓(xùn)練過程才收斂。
如果不是用 TPU,而是用普通 GPU,不知道會(huì)需要多長(zhǎng)時(shí)間。
按谷歌 Cloud AI的正常價(jià)格,每訓(xùn)練一次,需要 9.6 萬人民幣。即便這些天 Google Cloud AI 打七折,也需要 1.4 萬。如果程序有 bugs,需要返工,計(jì)算成本相當(dāng)高。
深度學(xué)習(xí) NLP四大里程碑
前文說到,“一個(gè)完整的深度學(xué)習(xí)系統(tǒng),通常包括以下四個(gè)部分,1. 應(yīng)用場(chǎng)景、2. 模型、3. 訓(xùn)練數(shù)據(jù)、4. 算力”。BERT 這篇論文,一口氣把四個(gè)問題,全部說到了。
有業(yè)界老師認(rèn)為,深度學(xué)習(xí) NLP 到目前為止,有四大里程碑,分別是,
1.2003年2月,深度學(xué)習(xí)大神 Yoshua Bengio,與他的學(xué)生共同發(fā)表論文《A Neural Probabilistic Language Model》,把深度學(xué)習(xí)引入自然處理領(lǐng)域,把自然語言的詞匯,轉(zhuǎn)換成數(shù)值向量。從此,自然語言處理的基本研究方法,發(fā)生質(zhì)的飛躍。這是深度學(xué)習(xí) NLP 的第一個(gè)里程碑。
2. 2016年5月,Sequence to Sequence 技術(shù)日臻成熟,尤其是引入聚焦機(jī)制,如虎添翼。這是深度學(xué)習(xí) NLP 的第二個(gè)里程碑,代表作是Yoshua Bengio 大神與他的學(xué)生們,共同執(zhí)筆的論文《Neural Machine Translation by Jointly Learning Align and Translate》。
3. 2017年6月,谷歌的 Ashish Vaswani 等人,發(fā)表論文《Attention Is All You Need》,對(duì) NLP 使用的深度學(xué)習(xí)模型,做了革命性的改進(jìn)。這是深度學(xué)習(xí) NLP 的第三個(gè)里程碑。
4. 2018年10月,谷歌的 Jacob Devlin 等人,發(fā)表的這篇 BERT 論文,很可能是第四個(gè)里程碑。不僅提議了一個(gè)通用的語言模型,而且用非監(jiān)督的辦法做預(yù)訓(xùn)練,用有監(jiān)督的辦法做精加工,取得了驚艷的效果。
2018年以后,會(huì)發(fā)生什么?很可能會(huì)出現(xiàn)若干深度學(xué)習(xí) NLP 產(chǎn)品,獲得巨大的商業(yè)成功。
-
谷歌
+關(guān)注
關(guān)注
27文章
6206瀏覽量
106122 -
深度學(xué)習(xí)
+關(guān)注
關(guān)注
73文章
5521瀏覽量
121629
原文標(biāo)題:狂破11項(xiàng)記錄,谷歌年度最強(qiáng)NLP論文到底強(qiáng)在哪里?
文章出處:【微信號(hào):AI_era,微信公眾號(hào):新智元】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
現(xiàn)在研究微電網(wǎng) 系統(tǒng)穩(wěn)定性,,在阻抗建模這塊,阻抗表現(xiàn)出正負(fù)阻尼特性。。
飛機(jī)表現(xiàn)出什么現(xiàn)象才叫調(diào)好了?
為什么DAC控制寄存器在某些值上會(huì)表現(xiàn)出某種奇怪的行為?
中頻逆變點(diǎn)焊機(jī)在控制系統(tǒng)部分表現(xiàn)出來的優(yōu)勢(shì)
尚德太陽能組件在第三方的PID測(cè)試中表現(xiàn)優(yōu)異
機(jī)器閱讀理解領(lǐng)域頂級(jí)賽事SQuAD刷新排名,阿里打破世界紀(jì)錄
機(jī)器閱讀理解的含義以及如何工作
![<b class='flag-5'>機(jī)器</b><b class='flag-5'>閱讀</b><b class='flag-5'>理解</b>的含義以及如何工作](https://file1.elecfans.com//web2/M00/A7/2A/wKgZomUMQsGAc9hoAAASmgQM1Cw594.png)
剝開機(jī)器閱讀理解的神秘外衣
![剝開<b class='flag-5'>機(jī)器</b><b class='flag-5'>閱讀</b><b class='flag-5'>理解</b>的神秘外衣](https://file1.elecfans.com//web2/M00/A7/3A/wKgZomUMQyeAATMFAAAx9QpeVnw630.png)
可穿戴技術(shù)在各領(lǐng)域表現(xiàn)出廣闊的應(yīng)用潛力
人工智能機(jī)器表現(xiàn)出的智能程度極其有限 不可能取代人類
還在愁到哪里找到需要的機(jī)器學(xué)習(xí)數(shù)據(jù)集嗎?
![還在愁到哪里找到需要的<b class='flag-5'>機(jī)器</b>學(xué)習(xí)數(shù)據(jù)集嗎?](https://file.elecfans.com/web1/M00/8D/02/pIYBAFydlOKABXqEAAAdnRpQjF4509.png)
評(píng)論