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