0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

我們嘗試提出一些新的觀點(diǎn)和假設(shè)來解釋BERT的強(qiáng)大功能

電子工程師 ? 來源:lp ? 2019-03-20 16:47 ? 次閱讀

BERT是google最近提出的一個自然語言處理模型,它在許多任務(wù)檢測上表現(xiàn)非常好。如:問答、自然語言推斷和釋義而且它是開源的。因此在社區(qū)中非常流行。

下圖展示了不同模型的GLUE基準(zhǔn)測試分?jǐn)?shù)(不同NLP評估任務(wù)的平均得分)變化過程。

盡管目前還不清楚是否所有的GLUE任務(wù)都非常有意義,但是基于Trandformer編碼器的通用模型(Open-GPT、BERT、BigBird),在一年內(nèi)縮小了任務(wù)專用模型和人類的差距。

但是,正如Yoav Goldberg所說,我們并不能完全理解Transformer模型是如何編碼句子的:

Transformer和RNN模型不同,它只依賴于注意力機(jī)制。除了標(biāo)志每個單詞的絕對位置嵌入,它沒有明確的單詞順序標(biāo)記。對注意力的依賴可能會導(dǎo)致Transformer模型在處理語法敏感的任務(wù)中相對于RNN(LSTM)模型性能表現(xiàn)較差——因?yàn)镽NN模型是直接根據(jù)詞序訓(xùn)練模型,并且明確地追蹤句子的狀態(tài)。

一些文章深入地研究了BERT的技術(shù)細(xì)節(jié)。這里,我們將嘗試提出一些新的觀點(diǎn)和假設(shè)來解釋BERT的強(qiáng)大功能。

一種語言理解的框架:句法解析/語義合成

人類能夠理解語言的方式是一個由來已久的哲學(xué)問題。在20世紀(jì),兩個互補(bǔ)的原理闡明了這個問題:

“語義合成性原理”表明復(fù)合詞的含義來源于單個詞的含義以及這些單詞的組合方式。根據(jù)這個原理,名詞短語“carnivorous plants” (食肉植物)的含義可以通過“carnivorous”(食肉的)這個詞的含義和“plant”(植物)這個詞的含義組合得到。

另一個原理是“語言的層次結(jié)構(gòu)”。它表明通過句法解析,句子可以分解為簡單的結(jié)構(gòu)——比如從句。從句又可以分解為動詞短語和名詞短語等等。

句法解析層次結(jié)構(gòu)以及遞歸是從組成成分中提取含義,直到達(dá)到句子級別,這對于語言理解是一個很有吸引力的方法??紤]到這個句子“Bart watched a squirrel with binoculars” (Bart用雙筒望遠(yuǎn)鏡觀察松鼠),一個好的句法解析會返回以下句法解析樹:

“Bart watched a squirrel with binoculars”基于結(jié)構(gòu)的句法解析樹

這個句子的含義可根據(jù)連續(xù)的語義合成推導(dǎo)出來(將“a”和“squirrel” 語義合成,“watched”和“a squirrel” 語義合成, “watched a squirrel”和“ with binoculars” 語義合成),直到句子的含義完全得到。

向量空間可以用來表示一個單詞、短語和其他成分。語義合成的過程可以被構(gòu)造為一個函數(shù)f,f將(“a”,”squirrel”) 語義合成為“a squirrel”的一個有意義向量,表示為“a squirrel”= f(“a”,”squirrel”)。

相關(guān)鏈接:

http://csli-lilt.stanford.edu/ojs/index.php/LiLT/article/view/6

但是,語義合成和句法解析都是很難的任務(wù),而且它們互相需要。

顯然,語義合成依賴句法解析的結(jié)果來決定哪些應(yīng)該被語義合成。但是即使有正確的輸入,語義合成也是一個困難的問題。例如,形容詞的含義會隨著單詞的不同而變化:“white wine” (白葡萄酒)的顏色實(shí)際上是黃色的,但是一只白貓(white cat)就是白色的。這種現(xiàn)象被稱作聯(lián)合語義合成(co-composition)。

相關(guān)鏈接:

http://gl-tutorials.org/wp-content/uploads/2017/07/Pustejovsky-Cocompositionality-2012.pdf

“white wine” (白葡萄酒)和 “white cat” (白貓)在二維語義空間中的表征(空間的維度是顏色)

對于語義合成,還需要更廣泛的上下文。舉個例子,“green light”(綠燈)單詞的語義合成要根據(jù)語境來定?!癵reen light”可以表示授權(quán)或者實(shí)際的綠燈。一些習(xí)慣用語需要經(jīng)驗(yàn)記憶而不是簡單地組合它們。因此,在向量空間中進(jìn)行語義合成需要強(qiáng)大的非線性函數(shù),例如深度神經(jīng)網(wǎng)絡(luò),也具有記憶功能。

相關(guān)鏈接:

https://arxiv.org/abs/1706.05394

相反,為了在一些特定情形下奏效,句法解析操作可能需要語義合成。考慮下面這個句子的句法解析樹(和之前相同的句子) “Bart watched a squirrel with binoculars”

另一個"Bart watched a squirrel with binoculars"的基于結(jié)構(gòu)的句法解析樹

盡管它在語法上有效,但是句法解析操作導(dǎo)致了句子的畸形翻譯,Bart watches (with his bare eyes) a squirrel holding binoculars(Bart(用他的裸眼)看到一個舉著望遠(yuǎn)鏡的小松鼠)。

因此,需要進(jìn)行一些單詞語義合成才能判斷“松鼠舉著望遠(yuǎn)鏡”是不可能的!一般地說,在獲得句子正確結(jié)構(gòu)前,必須要一些消除歧義的操作和背景知識的整合。但是這種操作也可以通過一些句法解析和語義合成的形式完成。

一些模型嘗試將句法解析和語義合成的操作同時結(jié)合應(yīng)用到實(shí)踐中。

相關(guān)鏈接:

https://nlp.stanford.edu/~socherr/EMNLP2013_RNTN.pdf

然而,它們依賴于受限制的人工注釋的標(biāo)準(zhǔn)句法解析樹設(shè)置,并且性能還沒有一些更簡單的模型好。

BERT是如何實(shí)現(xiàn)句法解析/語義合成操作的

我們假設(shè)Transformer創(chuàng)新地依賴這兩個操作(句法解析/語義合成):由于語義合成需要句法解析,句法解析需要語義合成,Transformer便迭代地使用句法解析和語義合成的步驟,來解決它們相互依賴的問題。

實(shí)際上,Transformer由一些堆疊層組成(也叫做block)。每個block塊由一個注意力層以及一個應(yīng)用在每個輸入元素的非線性函數(shù)組成。

我們試著展示Transformer的這些組件與句法解析/語義合成框架之間的聯(lián)系:

一個視為連續(xù)的句法解析和語義合成步驟

將注意力視為一個句法解析步驟

在BERT中,一個注意力機(jī)制讓輸入序列(比如:由單詞或子單詞組成的元素)中的每個元素聚焦到其它的元素上。

出于解釋的目的,我們根據(jù)這篇文章(https://medium.com/dissecting-bert/dissecting-bert-part2-335ff2ed9c73)使用的可視化工具來深入研究注意力頭,并在預(yù)訓(xùn)練的的BERT模型上驗(yàn)證我們的假設(shè)。在下面對注意力頭的解釋中,單詞“it”參與到其它所有元素中,看起來它會關(guān)注“street”和“animal”這兩個單詞。

可視化第0層1號注意力頭上的注意力值,用于標(biāo)記“it”

BERT為每一層使用12個獨(dú)立的注意力機(jī)制。因此,在每一層,每個token可以專注于其他標(biāo)記的12個不同側(cè)面。由于Transformers使用許多不同的注意力頭(12 * 12 = 144用于基礎(chǔ)BERT模型),每個頭部可以專注于不同類型的成分組合。

我們忽略了與“[CLS]”和“[SEP]”標(biāo)記相關(guān)的注意力值。我們嘗試使用了幾個句子,發(fā)現(xiàn)想不過度解釋它們的結(jié)果很難。所以你可以隨意用幾個句子在這個colab notebook上測試我們的假設(shè)。請注意,在圖中,左側(cè)序列“注意”右側(cè)序列。

相關(guān)鏈接:

https://colab.research.google.com/drive/1Nlhh2vwlQdKleNMqpmLDBsAwrv_7NnrB

第2層1號注意力頭似乎基于相關(guān)性來生成成分

可視化第2層1號頭上的注意力值

更有趣的是,在第3層中,9號頭似乎顯示出更高級別的成分:一些token注意到相同的中心詞(if,keep,have)。

第3層11號頭的注意力值的可視化,一些標(biāo)記似乎注意到特定的中心詞(例如,have,keep)

在第5層中,由6號注意力頭執(zhí)行的匹配似乎集中于特定組合,特別是涉及動詞的組合。像[SEP]這樣的特殊標(biāo)記似乎用于表示沒有匹配。這可以使注意力頭能夠檢測適合該語義合成的特定結(jié)構(gòu)。這種一致的結(jié)構(gòu)可以用于語義合成函數(shù)。

可視化第5層6號頭注意力值,更關(guān)注組合(we,have),(if,we),(keep,up)(get,angry)

可以用連續(xù)的淺層的句法解析層表示解析樹,如下圖所示:

若干注意力層如何表示成樹結(jié)構(gòu)

在檢查BERT注意力頭時,我們沒有找到這種清晰的樹結(jié)構(gòu)。但是Transformers仍有可能表示它們。

我們注意到,由于編碼是在所有層上同時執(zhí)行的,因此很難正確解釋BERT正在做什么。對指定層的分析只是對它自己的下一層和前一層才有意義。句法解析也分布在各注意力頭上。

下圖展示了兩個注意力頭的情況下,BERT注意力更為實(shí)際的樣子:

BERT中注意力值更實(shí)際的展現(xiàn)

然而,正如我們之前所見,句法解析樹是一種高級別的展示,它可能建立在更復(fù)雜的“根莖”結(jié)構(gòu)上。例如,我們可能需要找出代詞所引用的內(nèi)容,以便對輸入進(jìn)行編碼(共指消解)。在其他情況下,消除歧義也可能需要全文背景。

令人驚訝的是,我們發(fā)現(xiàn)一個注意力頭(第6層0號頭)似乎實(shí)際上執(zhí)行了共指消解。

相關(guān)鏈接:

https://medium.com/dissecting-bert/dissecting-bert-part2-335ff2ed9c73

一些注意力頭似乎為每一個單詞(第0層0號頭)都提供全文信息

在第6層的頭0號頭中發(fā)生的共指消解

每個單詞都會注意句子中的所有其它單詞。這可能允許對每個單詞建立一個粗略的語境。

語義合成階段

在每一層中,所有注意力頭的輸出被拼接并被送到可以表示復(fù)雜非線性函數(shù)(表達(dá)語義合成所需要的)的神經(jīng)網(wǎng)絡(luò)。

依靠來自注意力頭的結(jié)構(gòu)化輸入,該神經(jīng)網(wǎng)絡(luò)可以執(zhí)行各種語義合成。 在先前顯示的第5層中,6號注意力頭可以引導(dǎo)模型執(zhí)行以下語義合成:(we,have),(if,we),(keep,up)(get,angry)。該模型可以非線性地組合它們并返回語義合成表示。因此,多注意力頭可以作為輔助語義合成的工具。

注意力頭如何輔助特定的語義合成,例如形容詞/名詞語義合成

雖然我們沒有發(fā)現(xiàn)注意力頭集中關(guān)注形容詞/名詞等更一致的組合,但是動詞/副詞的語義合成與模型所衍生的其它語義合成之間可能存在一些共同點(diǎn)。

有許多可能的相關(guān)語義合成(單詞-子詞,形容詞-名詞,動詞-介詞,子句-子句)。更進(jìn)一步,我們可以將消歧看作把一個歧義詞(如 bank)與其相關(guān)的上下文單詞(如 river 或 cashier)語義合成的過程。在語義合成期間也可以執(zhí)行與給定上下文的概念相關(guān)的背景常識知識的集成。這種消歧也可能發(fā)生在其它層面(例如句子層面、子句層面)。

作為一種語義合成的消歧

此外,語義合成也可能涉及詞序推理。有人認(rèn)為,位置編碼可能不足以正確編碼單詞的順序,然而位置編碼被設(shè)計為編碼每個token的粗略、精細(xì)和可能精確的位置。(位置編碼是與輸入嵌入平均求和的向量,以為輸入序列中的每個 token 生成能夠感知位置的表征)。因此,基于兩個位置編碼,非線性合成理論上可以基于單詞相對位置執(zhí)行一些關(guān)系推理。

我們假設(shè)語義合成階段也在BERT自然語言理解中起到了重要作用:并不只需要注意力。

總結(jié)

我們提出了對Transformers的歸納偏差的見解。但我們的解釋對Transformer的功能持樂觀態(tài)度。作為提醒,LSTM顯示能夠隱性地處理樹結(jié)構(gòu)和語義合成。由于LSTM仍存在一些局限性,部分是因?yàn)樘荻认г斐傻?。因此,需要進(jìn)一步的研究來闡明Transformer的局限性。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4286

    瀏覽量

    62337
  • 遞歸
    +關(guān)注

    關(guān)注

    0

    文章

    28

    瀏覽量

    9003
  • 自然語言處理
    +關(guān)注

    關(guān)注

    1

    文章

    603

    瀏覽量

    13487

原文標(biāo)題:深入理解BERT Transformer ,不僅僅是注意力機(jī)制

文章出處:【微信號:BigDataDigest,微信公眾號:大數(shù)據(jù)文摘】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    一些tranceiver設(shè)計GND沒有工作的原因是什么?

    般來說,何時使用GND,浮動,AVTT和可編程終端。我正在做一些tranceiver設(shè)計,并嘗試過GND和AVTT,而GND沒有工作,但AVTT確實(shí)有效。有人可以解釋或指向
    發(fā)表于 07-21 12:24

    一些電磁標(biāo)準(zhǔn)的解釋

    通用電磁兼容標(biāo)準(zhǔn)(EMC Standard)對照表目的,給予電源及相關(guān)電行業(yè)開發(fā)或測試人員參考,查找或引用更加方便。包括傳導(dǎo)、輻射以及諧波。下面對常見的一些標(biāo)準(zhǔn)做一些對應(yīng)解釋,特別是針對在通用
    發(fā)表于 10-29 08:33

    BERT中的嵌入層組成以及實(shí)現(xiàn)方式介紹

    介紹在本文中,我將解釋BERT中嵌入層的實(shí)現(xiàn)細(xì)節(jié),即token嵌入、Segment嵌入和Position嵌入。簡介這是張來自論文的圖,它恰當(dāng)?shù)孛枋隽?b class='flag-5'>BERT中每
    發(fā)表于 11-02 15:14

    如何利用Sparkfun Arduino Qwiic Shield驅(qū)動一些I2C 5.0v/3.3v外圍設(shè)備呢

    我正在嘗試通過連接到 STM32H7451-DISCO 的 Sparkfun Arduino Qwiic Shield 驅(qū)動一些 I2C 5.0v/3.3v 外圍設(shè)備。盡管能夠與同總線上的音頻
    發(fā)表于 12-20 06:18

    真人秀《 ALL STARS》使用AR元素可以讓觀眾可以嘗試其中的一些造型

    部名為《 ALL STARS》的新節(jié)目中實(shí)現(xiàn)了,它讓觀眾可以嘗試其中的一些造型。
    發(fā)表于 07-05 09:30 ?2326次閱讀

    關(guān)于C語言的一些特殊功能介紹

    C語言之所以那么受歡迎,除了C語言歷史悠久之外,還有它具有一些編程語言沒有的功能。那么,今年我們就來了解下C語言的一些特殊
    的頭像 發(fā)表于 08-18 15:31 ?2376次閱讀
    關(guān)于C語言的<b class='flag-5'>一些</b>特殊<b class='flag-5'>功能</b>介紹

    Flutter的一些技巧

    想你非常有必要嘗試一下。 我接觸Android開發(fā)也有幾年了,前段時間公司大力推廣Flutter技術(shù),所以有幸嘗試下。本人直信奉善于總結(jié)是不斷進(jìn)步的不二法寶,這樣你才能不斷的超越
    的頭像 發(fā)表于 02-12 11:46 ?2016次閱讀
    Flutter的<b class='flag-5'>一些</b>技巧

    資深工程師分享對 MOSFET 規(guī)格書/datasheet 的理解和一些觀點(diǎn)資料下載

    電子發(fā)燒友網(wǎng)為你提供資深工程師分享對 MOSFET 規(guī)格書/datasheet 的理解和一些觀點(diǎn)資料下載的電子資料下載,更有其他相關(guān)的電路圖、源代碼、課件教程、中文資料、英文資料、參考設(shè)計、用戶指南、解決方案等資料,希望可以幫助到廣大的電子工程師們。
    發(fā)表于 04-12 08:51 ?12次下載
    資深工程師分享對 MOSFET 規(guī)格書/datasheet 的理解和<b class='flag-5'>一些</b><b class='flag-5'>觀點(diǎn)</b>資料下載

    35KV變配電綜自系統(tǒng)一些常見名稱解釋

    35KV變配電綜自系統(tǒng)一些常見名稱解釋
    發(fā)表于 11-18 15:18 ?3666次閱讀

    介紹一些大功率IGBT模塊應(yīng)用中的一些技術(shù)

    PPT主要介紹了大功率IGBT模塊應(yīng)用中的一些技術(shù),包括參數(shù)解讀、器件選型、驅(qū)動技術(shù)、保護(hù)方法以及失效分析等。
    發(fā)表于 09-05 11:36 ?776次閱讀

    如何使用 Python 來創(chuàng)建一些強(qiáng)大的應(yīng)用和實(shí)用工具

    本文將探討如何以 Zynq UltraScale 器件上的 IP 核為目標(biāo),使用 Python 來創(chuàng)建一些強(qiáng)大的應(yīng)用和實(shí)用工具。此處提供了個程序包,供您用于讀取設(shè)備樹和訪問 IP 核。此外還提供
    發(fā)表于 09-08 10:23 ?663次閱讀

    LVDS一些信號的觀點(diǎn)非常亮眼

    今天聽了下公司analog designer的介紹課程,有一些LVDS在信號上的觀點(diǎn)非常亮,我做了點(diǎn)筆記,跟大家分享下。
    發(fā)表于 05-25 11:28 ?1961次閱讀
    LVDS<b class='flag-5'>一些</b>信號的<b class='flag-5'>觀點(diǎn)</b>非常亮眼

    STM32F10x中一些專業(yè)術(shù)語解釋

    STM32F10x中一些專業(yè)術(shù)語解釋
    的頭像 發(fā)表于 11-01 16:59 ?502次閱讀

    我們為什么需要了解一些先進(jìn)封裝?

    我們為什么需要了解一些先進(jìn)封裝?
    的頭像 發(fā)表于 11-23 16:32 ?540次閱讀
    <b class='flag-5'>我們</b>為什么需要了解<b class='flag-5'>一些</b>先進(jìn)封裝?

    大功率插件電感損壞的一些常見表現(xiàn)

    大功率插件電感是電子電路中非常重要的種電子元器件,它對于設(shè)備的穩(wěn)定運(yùn)行有直接的影響的。如果在設(shè)備的日常運(yùn)行中遇到故障,如何辨別是否是大功率插件電感損壞造成的呢?本篇我們就來簡單探討
    發(fā)表于 12-11 16:22 ?3次下載