粗讀《Visualizing and Measuring the Geometry of BERT》

  • 2020 年 2 月 14 日
  • 筆記

BERT和類似的語言模型到底學會了何種語言的關係和模式,一直是大家想知道的,本文嘗試從幾個實驗探索這一點。

假設:Attention學習到了詞之間的依賴關係(依存關係)

Bert一共有12層,每層有12個head(multi-head attention),每個attention head相當於一個SxS的矩陣,這裡S是句子長度(或者說包含的詞數),也就是說在每個attention矩陣中,兩個詞包含兩個關係,指向與被指向,我們只考慮指向的話就是一個浮點數。12層x12個head=144維度的attention vector

方法:

輸入attention vector訓練兩個簡單的linear model,分別是binary的和softmax的,代表詞之間是否有依存樹上的指向關係和具體的指向標籤。

準確率達到了85.8%和71.9%,當然不是SOTA,不過也證明了這種關係應該包含在了attention表示中。

問題:如果從embedding的角度表示樹?

基本討論:我們不能使用可以同構(isometrically)的距離表示樹

這裡isometrically應該是指,假設ab和bc分別父子,ac則為爺孫,則 d(a, c) = d(a, b) + d(b, c) 不能成立

如果可以同構,假設表示一個樹有三個幾點A、B、C,假設A、B是父子距離為1,B、C是父子距離為1,則可以得出A到C的距離為2,則在歐基里徳空間中ABC應共線。

那麼假設B還有一個不同於C的孩子D,按照假設ABD也應該共線,但是這樣就說明C=D,則不可能。

所以下圖的同構情況不可能:

所以我們事實上是只能用下面的距離來表示一棵樹的:

結果:樹的可視化

詞義資訊表達

這一部分主要的猜想是BERT是否能區分不同上下文情況下的語境

實驗1:使用詞的embedding簡單構建Nearest Neighbour訓練器

在詞的消歧(word-sense disambiguation)任務中,只是簡單的NN方法就可以得到很好的結果

這種語義表達是否包含一個子空間?

在BERT最後一層之上構建了一個線性映射矩陣B,通過對它進行一定的訓練發現結果的達到/超過所有維度都使用的效果,則我們可以認為,肯定存在一個語義子空間,它就可以更好的表達部分的語義效果

實驗2:BERT是否真的編碼了上下文資訊?

假設一個詞有兩個詞義A和B,並且所有詞義取平均值為A-center和B-center,那麼從詞義A中的詞的表示,到A-center的距離應該比到B-center的更近(如果是歐基里徳距離的話更近就是越小,cosine距離更近就是越從0接近1)

實驗2.1:如果在包含詞義A的句子中,隨機加入一個句子,用and連接,取A中的詞的embedding,對比到A-center和B-center的結果比例(比例越高就代表到A-center更接近1,到B-center更接近0,則分歧差距越大,是我們想得到的)

實驗2.2:如果在包含詞義A的句子中,加入一個詞義B中的句子,用and連接,取A中的詞的embedding,對比到A-center和B-center的結果比例

那麼2.1的結果應該顯著好於2.2的結果,從結果來看也是這樣: