點擊上方關注,All in AI中國
Transformer體系結構模型,特别是BERT,通過對一個在大型語料庫上以非監督方式預先訓練的模型進行微調,已經證明在許多NLP任務中非常有效。BERT模型将一系列單詞作為輸入,并生成一系列跨層的詞嵌入向量。這些詞嵌入向量考慮了單詞的上下文。
最近發表的兩篇論文
(1篇Finding Syntax with Structural Probes · John Hewitt
2篇Language, trees, and geometry in neural networks)
它們提供了一些幾何上的見解,解釋了為什麼BERT表現得這麼好。
下面是這些論文的一些重要發現
- BERT的詞向量輸出編碼了豐富的語言結構。BERT在詞嵌入向量中對抽象語法樹進行了大緻的編碼,然後将其輸出到一個句子中。通過詞嵌入向量的線性變換可以恢複這些樹。
- BERT似乎在互補子空間中對詞向量的語法和語義特征進行了編碼。
- 一個單詞的不同含義有表示形式(由句子上下文決定),它們在空間上以細粒度的方式分隔
從BERT詞向量中恢複句子中的解析樹
語言是由離散的結構組成的,符号(單詞)序列和句子的句法結構被捕捉到樹狀結構中。相比之下,神經網絡模型對連續數據進行操作——它們将符号信息轉換成高維空間中的向量。這些向量(詞嵌入向量)在長度/方向(例如word2vec、fasttext等)上捕獲語義相似性。
如上所述,最近的發現表明BERT字向量輸出了豐富的語言結構。在一個句子的向量輸出中編碼的是語法樹的幾何近似副本。句子中的單詞在高維空間中被給定位置,如果我們對這些單詞向量進行特定的轉換,這些位置之間的歐氏距離會映射到語法樹距離。從本質上講,我們可以通過使用特定的線性變換對單詞向量進行變換,然後在單詞向量之間的距離上找到最小生成樹,從而恢複句子的語法樹(以及具有方向邊的依賴樹)。
語法樹中的樹距(兩個節點之間的樹距是它們之間路徑上的邊數)和歐氏距離(最小生成樹中節點之間的距離由詞嵌入得到)之間的映射不是線性的。兩個單詞之間的語法樹距離對應于所提取的最小生成樹中相應節點之間的歐式距離的平方。第二篇論文給出了一個原因,為什麼它是歐氏距離的平方,而不是歐氏距離的平方(本節剩餘部分不是理解BERT模型的核心——可以跳過)。
由于樹枝的關系,用等距法(映射保留距離)将一棵樹映射到歐幾裡德空間是不可能的。
例如,左邊節點A和B之間的樹距離為2 - d(A,X) d(X,B)
由于d(A,B) = d(A,X) d(X,B),在到歐幾裡德空間的等距映射中,A,X,B必須共線(X必須在連接A和B的直線上,才能滿足上述條件)
将同樣的參數應用到點A X C d(A,C) = d(A,X) d(X,C) A X C也必須是共線的。但這意味着B = C,這是一個矛盾的結論。
然而,從樹到平方距離有一個等距映射(勾股定理的嵌入),如下圖所示
博客中也有更多的例子
因此
這個博客還有一些有趣的結果。例如,随機分支的樹,如果映射到一個足夠高維的空間,其中每個子節點與父節點被一個随機的單位高斯向量偏移,就近似于勾股定理的嵌入。一個實際的含義是上下文嵌入近似于勾股定理對句子依賴關系解析樹的嵌入。從距離的平方性質來看,我們可以從向量中恢複嵌入樹的整體形狀。
恢複樹的形狀(受節點間邊緣長度的影響)隻近似于理想樹—這種差異有一些模式。依賴關系之間的平均嵌入距離相差很大。目前還不清楚這些差異意味着什麼。可能是BERTs表示,除了依賴解析樹之外還有其他信息。
順便提一句,如果我們對基因/蛋白質序列做同樣的實驗來檢查其中是否包含信息,不一定能證實實際的三維幾何配置,我們将會很有趣地看到一些異常的邊緣是接近的(部分/相同的/如上圖所示)。
語法樹也被捕獲在一個句子的attention 矩陣中
第二篇論文還顯示了句子的attention矩陣捕獲語法樹。比如我們看看這句“the old fox saw the new dog”,其中的單詞對“old,fox”。 我們可以通過從所有層中的attention矩陣獲取其對的标量值來構造向量(BERT基礎的12個層,每層有12個 attention heads),我們訓練線性分類器作為輸入model-wide 的attention 向量,如果兩個單詞之間存在關系以及關系的類型,則這些分類器表現得相當好(即使不是最先進的結果)表明句法信息在句子的attention 矩陣中可編碼。
BERT似乎在它的嵌入中編碼語義特征
通過簡單地可視化die這樣的單詞在不同的上下文中的嵌入,我們可以看到詞義是如何影響嵌入的。
一般情況下,embeddings這個詞表示
- 單詞的不同含義是分開的(上面三個集群表示單詞"die")。詞義消歧就是通過這種分離來實現的
- 在聚類中,似乎存在着更細微意義的分離(參見下面的嵌入詞"lie")。
- 與前面看到的位置表示語法類似,這裡的位置表示語義
第二篇論文聲稱,詞的感覺是在一個較低的維度空間中捕捉到的,盡管還不清楚這是如何做到的。根據這一觀察,它出現了一個向量,在互補子空間中同時編碼句法和語義信息
使用已發布代碼的實驗
第一篇論文的Github存儲庫有代碼,可以從上面描述的句子中恢複語法樹GitHub - john-hewitt/structural-probes: Codebase for testing whether hidden states of neural networks encode discrete structures.
從上面句子的詞嵌入向量中恢複的解析樹以及相同句子的依賴解析器輸出如下所示
結論
今後将按照上述思路解構模型
是否可能揭示更多的語言結構(如解析樹)或更多的子空間
了解内部表示的幾何結構可能會發現改進模型體系結構的領域
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!