Jeff Dean強推:可視化Bert網絡,發掘語言、語法樹與幾何學

2020-12-11 大數據文摘

大數據文摘出品

來源:pair-code.github

作者:Andy Coenen等

編譯:劉佳瑋、萬如苑、龍心塵

本文是論文(Visualizing and Measuring the Geometry of BERT)的系列筆記的第一部分。這篇論文由Andy Coenen、Emily Reif、Ann Yuan、Kim、Adam Pearce、Fernanda Viegas和Martin Wattenberg撰寫。

近日,谷歌大腦負責人Jeff Dean在推特上安利了一篇文章

.

這篇文章是為了補充解釋論文,大致呈現了主要的結論。請參閱論文以獲得完整的參考文獻和更多信息。

語言是由離散結構構成的,而神經網絡是在連續數據——高維空間的向量——上運算的。一個成功的語言處理網絡必須將這些符號信息轉換成某種幾何形式來表示——但是是以什麼形式呢?詞嵌入(Word Embedding)提供了兩個眾所周知的樣例:用距離來編碼語義相似性,而某些方向則對應詞語的極性(例如男性和女性)。

最近一項驚人的發現指向了一種全新的表示形式。句子的句法結構是句子語言信息的一個重要組成部分。這個結構可以用樹來表示,它的節點則對應於句子中的單詞。休伊特(Hewitt)和曼寧(Manning)在《一種用於在單詞表示中查找語法的結構探針》中指出,一些語言處理網絡構造了這種語法樹的幾何副本。而單詞是在高維空間中給定的位置,並且(經過一定的轉換)這些位置之間的歐氏距離(Euclidean distance)可以映射到樹的距離。

但這一發現帶來了一個有趣的難題。樹的距離與歐氏距離之間的映射不是線性的。相反,休伊特和曼寧發現樹的距離對應著歐氏距離的平方。他們於是提出了為什麼需要平方距離,以及是否存在其他可能的映射的問題。

這篇短文為這個難題提供了一些可能的答案。我們證明了從數學的角度來看,樹映射的平方距離是特別自然的。甚至某些隨機的樹嵌入也遵循近似的平方距離定律。而且,只要知道平方距離關係,我們就可以對嵌入樹的整體形狀給出一個簡單、明確的描述。

我們通過分析和可視化一個網絡(BERT)中的真實世界的嵌入,以及它們如何系統地不同於它們的數學理想化狀態來完善這些觀點。這些經驗性的發現提出了一種新的定量的方法來思考神經網絡中的語法表示。(如果你只是為了看經驗結果和可視化效果,請直接跳到這一節。)

樹嵌入理論

如果你要把一棵樹嵌入歐氏空間,為什麼不讓樹的距離直接對應於歐氏距離呢?一個原因是,如果樹有分支,就不可能等構地(isometrically)實現。

圖1

圖1所示。你不能等構地把這棵樹嵌入歐氏空間

事實上,圖1中的樹是一個標準示例,它表明並不是所有度量空間都可以等構地嵌入到R^n其中。因為d(A,B)=d(A,X)+d(X,B), 在任何嵌入中,A,X, B都是共線的。同理,A,X,C是共線的。但這意味著B=C,這就矛盾了。所以並不是所有度量空間都可以等構地嵌入到R^n其中。

如果一棵樹有任何分支也包含一個類似圖一示例的結構,則它也不能被等構地嵌入。

畢達哥拉斯嵌入

譯註:畢達哥拉斯是古希臘數學家,證明了勾股定理,在西方稱作畢達哥斯拉定理。

相比之下,平方距離嵌入結果非常好,以至於我們可以直接給它命名。這個名字背後的原因很快就會揭曉。

定義:畢達哥拉斯嵌入

設M是一個度量空間,其距離度量是d。我們說f:M→R^n 是一個畢達哥拉斯嵌入,如果所有屬於M的x, y滿足d(x,y)=∥f(x)f(y)∥^2。

圖1中的樹是否嵌入了畢達哥拉斯嵌入?答案是顯然的:如圖2所示,我們可以為一個單位立方體的相鄰頂點分配樹的結點,而勾股定理給出了我們想要的結果。

圖2

圖2。嵌入到單位立方體頂點中的簡單畢達哥拉斯嵌入。

那麼其他的更小的樹呢,比如一個由四個頂點組成的鏈?這也可以通過一個簡潔的畢達哥拉斯嵌入到立方體的頂點。

圖3

圖3。一個由四個點組成的鏈也通過一個畢達哥拉斯嵌入進了一個單位立方體的頂點中。

這兩個例子並不是巧合。實際上,這很容易寫出一個顯式的畢達哥拉斯嵌入,使任何樹都可以被嵌入到一個單位超立方體的頂點中。

定理1.1

任何具有n節點的樹都有一個畢達哥拉斯嵌入到R^(n-1)中。

證明:

我們已經知道,類似於定理1.1的論證出現在Hiroshi Maehara的《有限度量空間的歐幾裡德嵌入》文章中。

設樹T的節點為t0,…,tn - 1,且 t0為根節點。讓{e1,……,en - 1}為R^n1維的正交單位基向量。 歸納來說,定義一個嵌入f:T→R^n1通過

給定兩個不同的樹節點x和y, 其中m是樹的距離d(x,y)我們可以用m個相互垂直的單位基向量從f(x)跳躍到f(y), 因此∥f(x)f(y)∥^2=m=d(x,y)。

另一種理解這個結構的方法是我們給每條邊分配了一個基向量。為了計算出節點的嵌入,我們回到根節點並將經過的所有邊向量相加。請參閱下面的圖。

圖4。左圖:給邊分配基向量。中間兩圖:兩個嵌入示例。右圖:距離的平方等於樹的距離。

附註

這種證明的價值不僅在於結果本身,而且在於其能夠顯式地幾何構造出一個結果。任何同一樹結構的兩個畢達哥拉斯嵌入都是等構的,並且通過旋轉或反射相互關聯,每對點之間的距離在這兩種情況下都是相同的。我們可以說這是樹結構的畢達哥拉斯嵌入,這個定理清楚地告訴我們它的結構是什麼樣的。

此外,定理1.1中的嵌入有一個清晰的非正式描述:在圖中的每個嵌入頂點上,所有到相鄰頂點的線段都是彼此正交的單位距離線段,並且與每條邊都正交。如果你查看圖1和圖2,你會看到它們符合是這個描述的。

我們也很容易看到在證明中構造的特定嵌入是一個l^1度量中等構的樹,儘管這很大程度上依賴於軸對齊。

我們可以對定理1.1做一個簡單的推廣。考慮有邊權值的樹,與兩個節點之間的距離是它們之間最短路徑的邊權值之和。在這種情況下,我們也總是可以創建一個畢達哥拉斯嵌入。

定理1.2

任何有n個節點的加權樹都有一個嵌入到R^n - 1中的畢達哥拉斯嵌入。

證明:

如前所述,設樹的節點為t0,…,tn - 1, t0為根節點。讓{e1,……,en - 1}為R^n1維的正交單位基向量。 現在,使wi=d(ti,parent(ti)). 歸納來說,定義一個嵌入f,也就是

定理1.2中的嵌入不再存在於單位超立方體上,而是存在於它的壓縮版本中:一個邊長為{wi^(1/2)}的矩形實體。

我們可以對樹結構的邊進行索引,每條邊都具有與該邊上的子節點相同的索引。設P為x和y之間最短路徑上的邊的指標集,則

∥f(x)f(y)∥^2=∑i∈P wi=d(x,y)[jg2]

儘管嵌入定理1.2是軸對齊的,也不再是一個1度量下的等構體。然而,如果我們使用向量wiei而不是wi^(1/2)ei則可以使其恢復一個1度量下的等構體。

替代嵌入,以及缺乏替代嵌入

休伊特和曼寧問是否可能存在其他有效的樹嵌入類型,也許答案是基於歐幾裡德度量的其他冪。我們可以提供一些關於這類嵌入的部分結論。

定義

設M是一個度量空間,度規d,我們說f:M→Rn是一個冪為p的嵌入,如果對於所有x,y∈M,我們有

結果表明,在不同的術語下,一般度量空間下冪為p的嵌入已經被研究了幾十年。其中奠基之作是勳伯格1937年的一篇論文。那篇論文的一個關鍵結果,用我們的術語來說,就是如果一個度規空間X有一個冪為p的嵌入到Rn中,那麼它也有一個冪為q的嵌入對於任意q>p。因此,對於p>2,任何樹都有一個冪為p的嵌入。與p=2的情況不同,我們尚不知道怎樣用一種簡單的方法來描述這種嵌入的幾何形狀。

另一方面,事實證明,當p <2時,p次冪樹嵌入不一定存在。

定理二

對於任意p <2,存在一棵沒有p次冪嵌入的樹。

詳細證明請參閱我們的論文。總結一下這個想法,對於任何給定的p <2,沒有足夠的「空間」來嵌入具有足夠多子節點的樹的節點。

隨機分支嵌入是畢達哥拉斯嵌入的近似

畢達哥拉斯嵌入的屬性十分強大,至少在維度上遠高於樹形結構。(在用於NLP的神經網絡激活函數中就是這樣。)在上面的證明中,我們可以完全隨機地選擇n個向量,而不是使用來自Rm中的單位高斯分布e1,...,en-1∈Rn-1中的基向量。如果m遠大於n,很可能結果是近似的畢達哥拉斯嵌入。

原因在於,在高維中,(1)從單位高斯分布提取的向量長度接近1的概率很高; (2)當m遠大於n時,n個單位高斯向量可能近似相互正交。

換句話說,在足夠高維度的空間中,樹的隨機分支嵌入(其中每個子節點通過隨機單位高斯向量從其父節點偏移)將近似為畢達哥拉斯(Pythagorean)嵌入。

這種結構甚至可以通過迭代過程完成,只需要本地信息。使用完全隨機的樹嵌入進行初始化,另外為每個頂點選擇一個特殊的隨機向量;然後在每個步驟中,移動每個子節點,使其更接近其父節點的位置加上子節點的特殊向量。結果將是近似的畢達哥拉斯嵌入。

由於其簡單性以及來自局部隨機模型的事實,畢達哥拉斯嵌入通常可用於表示樹型結構。需要注意的是樹的大小是由環境維度控制的,畢達哥拉斯嵌入可能是基於雙曲幾何的方法的簡單替代方案。

有關雙曲樹表示的更多信息,請參閱這兩篇文章。

樹嵌入的實踐

在描述了樹嵌入的數學定義之後,讓我們回到神經網絡的世界。

我們的研究對象是BERT模型,這是一個最近在NLP領域十分成功的模型。我們對這個模型感興趣的一個原因是它對許多不同的任務表現良好,這表明它正在提取通常有用的語言特徵。 BERT是Transformer架構的一個案例。

我們不會在這裡描述BERT架構,但粗略地說,網絡將一系列單詞作為輸入,並且在一系列層中為每個單詞生成一系列嵌入。因為這些嵌入考慮了上下文,所以它們通常被稱為上下文嵌入。

人們提出了許多描述句法結構的方法。在依存句法分析中,每個單詞都是樹的節點。

很多人研究過這些嵌入,看看它們可能包含哪些信息。為了概括介紹,我們研究樹嵌入的動機是Hewitt和Manning的最新成果。他們的論文「一種用於在單詞表示中查找語法的結構探針」中表明,上下文嵌入似乎在幾何上編碼依存句法分析樹。

這個地方有點繞:首先你需要將上下文嵌入通過某個矩陣B(一個所謂的結構探針)進行轉換。但在此之後,兩個單詞的上下文嵌入之間的歐式距離的平方近又似於兩個單詞之間的分析樹距離。

這是上一節中的數學成果。在我們的術語中,上下文嵌入近似於畢達哥拉斯嵌入句子的依存句法分析樹。這意味著我們有一個樹嵌入的好主意:簡單地利用平方距離屬性和定理1.1

可視化和測量解析樹的表示

當然,我們並不能精確地知道形狀,因為嵌入只是近似於畢達哥拉斯嵌入。但理想形狀和實際形狀之間的差異可能非常有趣。經驗嵌入與其數學理想化之間的系統差異可以為BERT如何處理語言提供進一步的線索。

註:PCA比t-SNE或UMAP的可視化有更好的可讀性。當點聚類或分布在低維流形上時,非線性方法可能做得最好——幾乎與n立方體的頂點相反。

為了研究這些差異,我們創建了一個可視化工具。我們的論文有詳細介紹,但我們將在此提供一個廣泛的描述。作為輸入,該工具採用具有相關依存句法分析樹的句子。該工具從BERT中提取該句子的上下文嵌入,由Hewitt和Manning的「結構探針」矩陣轉換,在1024維空間中產生一組點。

然後,我們通過PCA將這些點投影到兩個維度。為了顯示基本的樹結構,我們連接表示具有依賴關係的單詞的點對。下面的圖5顯示了樣本句子的結果,並且為了比較,顯示了精確畢達哥拉斯嵌入、隨機分支嵌入和節點坐標完全隨機的嵌入對於相同數據的PCA預測。

圖5. a)BERT解析樹嵌入的PCA視圖。 b)精確的畢達哥拉斯嵌入。 c)不同的隨機分支嵌入。 d)不同的嵌入,其中節點位置是隨機獨立選擇的。

PCA映射很有趣——BERT嵌入和理想化之間有一定的相似性。圖5c展示了一系列隨機分支嵌入,它們也類似於BERT嵌入。作為基準,圖5d顯示了一系列嵌入,其中單詞隨機獨立放置。

但我們可以更進一步,並展示嵌入與理想化模型的不同之處。在下面的圖6中,每條邊的顏色表示歐幾裡德距離和樹距離之間的差異。我們還用虛線連接沒有依賴關係但其位置(在PCA之前)比預期更接近的單詞對。

生成的圖像讓我們既可以看到樹嵌入的整體形狀,也可以看到偏離真正的畢達哥拉斯嵌入的細粒度信息。圖5顯示了兩個示例。這些是典型案例,說明了一些共同的主題。在圖中,橙色虛線連接part/of、same/as和sale/of.。這種效果是特徵性的,介詞嵌入到與它們相關的單詞附近。我們還看到兩個名詞之間的聯繫顯示為藍色,表明它們比預期的更遠——這是另一種常見模式。

圖8在本文末尾顯示了這些可視化的其他示例,你可以在其中查找更多模式。

基於這些觀察,我們決定對不同依賴關係如何影響嵌入距離進行更系統的研究。回答這個問題的一種方法是考慮一大組句子並測試單詞對之間的平均距離是否與它們的句法關係有任何關聯。我們用一組Penn Treebank句子以及派生的解析樹進行了這個實驗。

圖7.具有給定依賴性的兩個單詞之間的平均平方邊長

圖7顯示了該實驗的結果。事實證明,每個依賴關係的平均嵌入距離變化很大:從大約1.2(prt,advcl)到2.5(mwe,parataxis,auxpass)。推測這些系統差異的原因是有趣的。它們可能是非句法特徵的影響,例如句子中的單詞距離。或者,使用加權樹,BERT的句法表示可能超出了普通的依存語法。

結論

神經網絡究竟如何代表語言信息仍然是神秘的。但我們開始看到了吸引人的線索。Hewitt和Manning最近的工作提供了解析樹的直接幾何表示的證據。他們發現了一種有趣的平方距離效應,我們認為它反映了一種數學上自然的嵌入類型——這使我們對嵌入幾何有了驚人的完整概念。同時,BERT中解析樹嵌入的實證研究表明,可能還有更多定量方面的關於解析樹表示的內容。

非常感謝James Wexler對本筆記的幫助。感謝David Belanger,Tolga Bolukbasi,Dilip Krishnan,D。Sculley,Jasper Snoek和Ian Tenney對本研究的有益反饋和討論。有關語義和語法的更多詳細信息和結果,請閱讀我們的全文!敬請期待本系列中的更多筆記。

閱讀另一篇BERT可視化文章,請戳《用可視化解構BERT,我們從上億參數中提取出了6種直觀模式》

相關焦點

  • 如何可視化BERT?你需要先理解神經網絡的語言、樹和幾何性質
    Google AI 的 People + AI Research(PAIR)團隊近日發布的論文《Visualizing and Measuring the Geometry of BERT》提出了一種可視化和度量 BERT 的幾何性質的方法,可幫助我們理解 BERT 等神經網絡語言模型表徵信息的方式。
  • 用可視化解構BERT,我們從上億參數中提取出了6種直觀模式
    另一方面,傳統的NLP神經網絡卻並不是那麼深,而bert的出現直接將NLP的神經網絡加到12層以上。那麼如何理解各層學到了怎樣的信息?本文作者Jesse Vig通過可視化工具對此進行了非常有意義的探究。文章分兩部分,第一部分介紹bert中的6種模式,第二部分介紹其底層細節。
  • BERT的力量之源遠不止注意力
    這種對注意力的依賴可能會導致 Transformer 在語法敏感任務上的性能不如 RNN (LSTM)模型,後者直接對詞序建模並顯式跟蹤句子狀態。有一些文章已經深入探討了 BERT 模型的技術細節。本文將嘗試提供一些新的見解和假設,從而解釋 BERT 強大的能力。
  • BERT詳解:開創性自然語言處理框架的全面指南
    輸入ELMo與ULMFiT自然語言處理社區用ELMo處理多義詞,多義詞指一個詞由於上下文不同,含義也不同。從訓練淺層前饋網絡(Word2vec),到逐步使用複雜的雙向LSTM體系結構層來訓練詞嵌入。這意味著同一個單詞可以基於其上下文具有多個ELMo嵌入。
  • NLP中的詞向量對比:word2vec/glove/fastText/elmo/GPT/bert
    四、深入解剖bert(與elmo和GPT比較)1、為什麼bert採取的是雙向Transformer Encoder,而不叫decoder?2、elmo、GPT和bert在單雙向語言模型處理上的不同之處?3、bert構建雙向語言模型不是很簡單嗎?不也可以直接像elmo拼接Transformer decoder嗎?
  • 從 one-hot 到 BERT,帶你一步步理解 BERT
    理解複雜的語言也是人工智慧的重要組成部分。而自google在2018年10月底公布BERT在11項nlp任務中的卓越表後,BERT(Bidirectional Encoder Representation from Transformers)就成為NLP一枝獨秀,本文將為大家層層剖析bert。
  • 【BERT】如何訓練並使用Bert【持續更新】
    以上的兩個pretraining都用了同樣的objective function【語言模型】,且都用了unidirectional language models來學習general的語言表示。重點來了:提出了當前的瓶頸一是單向的語言模型作為學習。
  • 前端碼農之蛻變 — AST(抽象語法樹)
    什麼是AST(抽象語法樹)?第二步,語法分析,也解析器。它會將詞法分析出來的數組轉化成樹形的表達形式。同時,驗證語法,語法如果有錯的話,拋出語法錯誤。當生成樹的時候,解析器會刪除一些沒必要的標識tokens(比如不完整的括號),因此AST不是100%與源碼匹配的,但是已經能讓我們知道如何處理了。
  • 【語言班】R語言數據分析與可視化高級研修班(4.26-29)
    R語言是用於數據分析、數據可視化的高級程式語言,其功能包括:數據存儲和處理、科學計算工具;能夠進行幾乎所有的統計分析;內置豐富便捷的數據可視化功能
  • R語言——神經網絡結果可視化
    神經網絡由大量的人工神經元聯結進行計算,大多數情況下人工神經網絡能在外界信息的基礎上改變內部結構,是一種自適應系統。全連接神經網絡(Multi-Layer Perception,MLP,或者叫多層感知機)是一種連接方式較為簡單的人工神經網絡結構,屬於前饋神經網絡的一種,主要有輸入層、隱藏層和輸出層構成。在機器學習中MLP較為常用,可用於分類和回歸。
  • bert之我見-positional encoding
    近期我會一連幾篇談談bert中的關鍵細節,這個position encoding是我看到的bert(實質上是transformer中提出的)中最為驚喜的但是卻被很多人忽略(可以理解為媒體鼓吹最少的)一個細節,這裡給大家談談。什麼是position encoding顧名思義,就是基於位置的一套詞嵌入方法,說得簡單點,就是對於一個句子,都有對應的一個向量。
  • AI基礎:一文看懂BERT
    將固定長度的字符串作為輸入,數據由下而上傳遞計算,每一層都用到了self attention,並通過前饋神經網絡傳遞其結果,將其交給下一個編碼器。Parallels with Convolutional Nets(BERT VS卷積神經網絡)對於那些具有計算機視覺背景的人來說,這個矢量切換應該讓人聯想到VGGNet等網絡的卷積部分與網絡末端的完全連接的分類部分之間發生的事情。你可以這樣理解,實質上這樣理解也很方便。
  • 決策樹可視化-python
    ,也容易將其結果進行可視化展示,python中sklearn.tree的export_graphviz函數可以將決策樹結果以doc或dot文件的形式輸出,然後將決策樹結果可視化,下面舉個簡單例子。n_repeated=0, n_classes=2, weights=[0.8, 0.2], flip_y=0.01, random_state=1234)2.訓練決策樹
  • 訓練計劃jeff
    免責聲明:以上內容均來於網絡,與本站觀點無關,僅用於試學及購買課程之參考,文章採用創作共用版權 CC BY-NC-ND/2.5/CN 許可協議,凡是投稿的文章表明該作者以授權給本站及其各類自媒體帳號、網站專欄中以及各種版權資訊處理 投稿郵箱 sunny8089@hotmail.com
  • Dom樹 CSS樹 渲染樹(render樹) 規則、原理
    看著有點像 less 寫法(less這種預處理語言,就是借用DOM樹的思想,來將less這種語法結構,轉譯成普通的css語法,最終我們用的還是普通的css語法構成的css
  • 推薦: 一本「高顏值」的Python語言數據可視化圖書
    現在python語言越來越流行,尤其是在機器視覺、機器學習與深度學習等領域。但是數據可視化一直是其短板,特別相比較R語言而言。R語言以ggplot2包及其拓展包人性化的繪圖語法大受用戶的喜愛,特別是生物信息與醫學研究者。
  • R語言信息可視化——文字雲
    這一篇跟大家分享R語言信息可視化——文字雲。R語言可以輕鬆處理信息可視化,並且很早就有專用的信息可視化包——WordCloud。
  • BERT模型超酷炫,上手又太難?請查收這份BERT快速入門指南!
    選自GitHub作者:Jay Alammar參與:王子嘉、Geek AI如果你是一名自然語言處理從業者在過去的幾年中,用於處理語言的機器學習模型取得了突飛猛進的進展。這些進展已經走出了實驗室,開始為一些先進的數字產品賦能。最近成為 Google 搜索背後主要力量的 BERT 就是一個很好的例子。Google 認為這一進步(或者說在搜索中應用自然語言理解技術的進步)代表著「過去五年中最大的飛躍,也是搜索歷史上最大的飛躍之一」。本文是一篇簡單的教程,介紹如何使用不同的 BERT 對句子進行分類。
  • 我寫了一個簡單的進化樹可視化/注釋工具
    提到進化樹可視化/注釋工具,以我個人的認知,那麼現在可能只有兩個優秀的工具。一個是ITOLs,一個是ggtree。前者便不過多說明,是一個網頁工具。而後者則是你Y叔我大溼兄(公眾號:biobabble的運營者)。應是有部分朋友知道我從來就喊你Y叔叫大溼兄,也基本只有我這麼喊(我的意思是,不是每個人都能這麼喊)。
  • 最強NLP模型BERT可視化學習
    2018年是自然語言處理(Natural Language Processing, NLP)領域的轉折點,一系列深度學習模型在智能問答及情感分類等NLP任務中均取得了最先進的成果。近期,谷歌提出了BERT模型,在各種任務上表現卓越,有人稱其為「一個解決所有問題的模型」。