粗讀《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的結果,從結果來看也是這樣:
