1 of 37

從BERT回到語言

Will we BERT back?

2021/10/15 @ LOPE

Sean Tseng

2 of 37

大綱

  • 抽象的東西:理論、表徵與數學
  • 更抽象的東西:GloVe的模型理路
  • GloVe其實是不抽象的:FastText和BERT的簡短討論
  • 我們在哪?

3 of 37

計算。語言

  • 我們想理解語言;而且在計算語言學裡面,通常意味著我們想透過「計算手段」來理解語言。
  • 但過去40年間,曾經有些時候我們至少還可以用邏輯、統計模型,或用電腦計算語言屬性就說我們在「計算/VC 語言/Na」;但到最近5年內,顯然大部分的計算語言都不是如此。
  • 近年來很流行或將流行的語言模型包括:
    • 向量語意、圖論模型、多模態整合模型

4 of 37

模型與語言

  • 至少在特定語言作業和特定資料集中,這些模型都取得前所未有地成功。
  • 但這些模型的形式和內容都非常的計算(或數學),所以很自然的問題是:
    • 這是否意味著如果我們想理解語言,我們是不是就要理解計算?
    • 我們需要把計算模型理解到什麼程度?
    • 我們理解了計算,我們就理解語言了嗎?
    • 什麼叫理解語言?

5 of 37

什麼叫理解?

  • 什麼叫理解一件事?我們要怎麼樣才願意聲稱我們理解一件事?(cf. Winther, 2021)
    • 知道符號對應關係?像是圖示 (🍎)、象徵(○△□)、甚至語言符號(apple)。
    • 知道邏輯架構?蘋果是一種水果、海是由水構成等等
    • 知道怎麼計算?import Word2Vec; Word2Vec.train(corpus)
    • 知道事物背後的數學關係? F=ma
  • 每個人的答案一定都不一樣,這四個可能背後也沒有什麼邏輯順序,甚至元素也不必然存在。

6 of 37

理解是必要的嗎

  • (心理學)理論的目的:「描述、解釋、預測、控制心智現象。」[citation needed]
  • 這個定義好像意味著一個理論,應該要先能描述、解釋對象,才可能預測、甚至控制現象。
  • 但,深度學習成功預測了,但大家還在想它「理解」了什麼:
    • 角度A:理解不是必要的,預測、控制才是重點
    • 角度B:但逆過來想,如果理論都成功預測了,它真的完全沒有理解到什麼嗎?他應該至少有「表徵」什麼吧

7 of 37

探討表徵

  • 我們不知道模型表徵了什麼符號邏輯關係,但我們至少知道它在遵循什麼計算原則數學關係
  • 很可能模型在特定作業下有高預測準確度,本來就不預設對於研究對象的描述或解釋能力。
  • 但至少作為一個研究者的好奇心是:既然模型都能夠在某些作業下達到以前達不到的表現,我就假設它應該有表徵到什麼,理解這些表徵應該會有兩個用處:(1) 讓我們知道為什麼模型會有用; (2) 激發對於語言理論的靈感

8 of 37

現代模型的主要表徵手段

  • 在現在的模型中,其內在表徵多半是數學計算的。這些表徵構築了研究問題中的背景。
  • 所以不是說一定要懂它們才「能」理解語言,或才「叫做」理解計算語言。而是如果不知道背景在�哪,我們怎麼區分出前景在哪?

Rubin's vase (Rubin, 1931)

  • 計算語言裡,前景是「語言」,背景是計算模型。模型當然是很重要的研究方法,但我們心中畢竟有個獨立的研究主體。

9 of 37

GloVe的例子

  • 一個實際的例子,GloVe怎麼用數學和計算來描述語言。
  • 這裡想要傳遞的概念是,Glove:
    • 為什麼要描述詞彙共現頻率
    • 他期待詞向量要有哪些性質
    • 他怎麼用詞向量描述共現頻率
    • 以及怎麼建立出詞向量
  • 接下來很多數學。看到式子不要怕:沒有考試,不會抽問。聽到一半不懂就先放著,很可能某天會頓悟。就像是聽Podcast,欣賞一下GloVe怎麼想詞向量這件事的。

10 of 37

找到一組詞向量來描述詞彙的共現頻率

tl;dr of GloVe

11 of 37

GloVe的二階共現性直覺

  • GloVe一開始的直覺是詞彙的共現性,確切來說,是二階的共現性跟詞彙特性很有關係。這就是GloVe要描述的對象。
  • Global Vectors for Word Representation (paper)

12 of 37

怎麼用數學描述二階共現性

  • 比較兩兩詞彙之間的共現關係,好像比單純比較兩詞彙的共現,更能凸顯詞彙的語意訊息。
  • 所以,GloVe認為,如果我們要建立一套詞向量,那這個詞向量應該可以經過一個函數F之後,反應兩兩詞彙的共現關係。
  • 那問題有兩個:詞向量w怎麼來?以及F是什麼?

13 of 37

GloVe's F、向量與純量

  • 在這個式子裡,wi, wj, wk,都是GloVe想要建立的「詞向量」。wk上面的波浪,只是一個符號上的區別。因為在GloVe的想法裡,wi和wj都是目標詞(steam, ice),wk是脈絡詞(solid vs. gas)
  • 事實上從這個式子看起來,右手邊是兩個機率相除,一定是一個小數,也就是純量 (scalar),但左手邊卻是三個向量的函數。所以,之中很可能要牽涉到兩兩向量相加相減,以及內積。

14 of 37

向量

  • 關於向量,的確「有向有量的東西」會是「向量」。
  • 但由於向量在近幾年的計算模型用途實在太廣,並不是所有用途都容易聯想到方向與量度,例如「注意力向量」。
  • 所以,不妨試著就把向量當作一個「東西」,一個我們知道怎麼運算的東西。的確,vector的詞源也只是承載事物的載體。

15 of 37

向量內積

  • 向量內積和統計的(皮爾森)相關係數非常相似
  • 只要樣本本身的平均數為0,標準差為1,並且把樣本當成是向量,兩樣本相關就是向量內積。
  • 有的時候內積會以矩陣相乘的形式寫成xTy

16 of 37

GloVe期待的F: 能線性比較

  • GloVe想要的F,要能夠在比較兩個目標詞(wi, wj)與特定脈絡詞(wk)時,反應兩兩共現機率的比例。
  • GloVe期待這個比較要是線性的,兩向量線性比較最直覺的就是把兩個向量相減。而相減後的向量要和脈絡向量變成純量,所以很直覺的是取內積

17 of 37

GloVe期待的F: 對稱可交換

  • 寫成式3,其實對於推敲F是什麼幫助不大,所以GloVe繼續多加了其他限制。
  • GloVe除了希望這個F可以線性比較外,還希望這個F具備對稱性質,亦即脈絡詞和目標詞是可兩兩互換的。
  • 去除一些複雜數學性質不談,這意味著式4的左手邊,必需要能夠寫成兩個F函數相除。

18 of 37

GloVe's F: 對應到一階共現機率

  • 有了式4後就有兩個重大發現。
  • 首先,把式3和式4對應起來,會發現分子分母都是兩向量內積後再用F轉換,而轉換的結果就是兩個詞的共現機率。
  • 所以,兩向量內積被F轉換後,就是共現機率!

19 of 37

GloVe's F: 就是 exp(x)

  • 其次,如果F要能符合式4,一個合理常用的選擇就是指數函數 (exp),因為exp(x)的確可符合式4的數學特性。

20 of 37

詞向量內積要是log(共現機率)

  • 整理一下,對於F我們知道兩件事情:(1)F就是指數函數,又知道(2)向量內積經過F轉換後要是共現機率。把兩件事情兜起來,意思就是「向量內積要等於共現機率經過對數轉換」。

21 of 37

GloVe模型最後一步

  • 剩下就只是讓整件事情更漂亮更對稱而已。
  • 首先把 log(Xi) 搬到等號左手邊,然後把它變成參數 bi,然後也同樣地給wk一個參數bk,這樣wi和wk就是完全可交換的了。
  • 可交換的意思是把式7的i和k互換:由於向量內積是對稱的,而且Xik和Xki是一樣的,又加法也可以互換,所以整個式子i和k互換後是一模一樣的。

22 of 37

GloVe的模型目標

  • 最後,式7告訴我們等號左手邊都是參數,而我們希望找到一些參數,使得他們能逼近詞彙i和詞彙j的對數共現次數。
  • 所以,GloVe就是訓練一組詞向量(w),和截距項(b) 使它能反映詞彙頻率的共現頻率!
  • 式8是最佳化時用的缺失�函數(loss function),裡面的�f(Xij)是權重(weights),讓模型�有動力去更逼近那些共現�次數較多的詞向量。

23 of 37

GloVe小結

  • GloVe在模型設計裡只有給幾個限制:(1)F要能夠反映兩兩詞彙共現機率的比值;(2)F函數能夠線性比較兩向量;而且(3)目標和脈絡向量可交換。
  • 在過程中,GloVe用一連串數學推導,最後發現如果要滿足上述幾個條件,那詞向量應該要能模擬詞彙共現性。
  • 相對地,雖然開始和結束都有語言特徵,但中間的推導無可避免是純數學的。
  • 雖然現實而言,GloVe和Word2Vec在應用上仍有差異,但可貴的是他想要用計算模型來捕捉某種語言直覺,而且最後的作業表現也不錯。

24 of 37

往下找詞的次單位:FastText

  • Enriching Word Vectors with Subword Information (paper)
  • 相對地,FastText詞向量是要訓練一組詞向量,使它最能預測兩個詞是否有共現。
  • FastText (或Word2Vec)雖然比起GloVe而言,對於詞向量的邏輯比較直覺,但在運算上有很多很有趣的地方。
  • 其中很值得注意的一點,是GloVe直接用一個向量代表一個詞,但FastText允許詞的次單位(ngrams)也有向量,而這些次單位向量的加總,也可以代表一個詞。

25 of 37

往上找句子層次:BERT

  • Devlin's BERT paper
  • Vaswani's Transformer paper
  • 相較於FastText和GloVe對於詞向量的來源都有一些對於詞的假設(例如詞有次單位,詞的共現頻率是重要訊息等),近年來深度學習的模型創意,更多是怎麼讓模型能夠表徵整個句子。
  • 如果模型能表徵整個句子,甚至用該表徵預測句子中的字(詞),那這個模型應該更能掌握語言。

26 of 37

BERT的應用不僅是在語言

  • 現在仍然流行的BERT以及衍生模型裡有很多對於序列處裡的洞見,例如scaled dot-product attention,或者也叫做self-attention;或是skip connection等,但整個模型架構並沒有特別限定於語言(cf. ViT)。
  • 但BERT用克漏字作業(或遮蔽語言模型)當預訓練作業的確是一個很有趣的嘗試。

27 of 37

句子表徵與詞彙多義

  • 如果BERT都表徵了句子脈絡,那它應該懂得區分多義詞。
  • 也的確,單純用中文預訓練的BERT,的確就可以看到CWN中同詞意的詞向量表徵的確是比較接近的。
  • 由於BERT會太多事,大家�很好奇地想知道BERT為什�麼會這些事?
  • 例如,會不會是BERT的�self-att自動學習了某種�語言結構?

28 of 37

會不會self attention自動表徵了語言結構

Retrieved from Figure 6 in Manning et al. (2020)

29 of 37

self-att的角色

  • 但,如果BERT的注意力機制真的那麼重要,那把注意力機制拿掉,應該會對模型表現影響很大才對。
  • 最近研究用不需要參數的傅立葉轉換取代掉昂貴的注意力機制,發現兩者模型正確率非常接近,而且模型訓練變快很多。(Lee-Thorp et al., 2021)

30 of 37

FNet vs. BERT

Lee-Thorp et al. (2021). Figure 2

31 of 37

回到一開始

  • 「理論的功能是描述、解釋、預測、控制」。當我們有了很好的預測模型,是不是意味著我們得以從中學習如何解釋對象?
  • 往好處想,應該要有,因為既然模型都做到了,那即便模型學到的不是真理,也應該有學到很有趣的東西「才對」。更何況,BERT是2018年的小模型,今年的MT-NLG差了3個數量級(340M vs. 530B)。模型都那麼厲害了,它應該有學到語言的「什麼」吧?
  • 但另一個角度,資料適配 (data fitting)再怎麼好,永遠不能保證就是資料產生機制(data generation process)

32 of 37

模型適配與資料產生機制

單就這筆資料(黑點)而言,五次多項式模型已經描述得不錯;spline甚至適配得更好。甚至,如果我們均勻抽掉某些點當成測試集,模型表現可能都還可接受。但事實上,這筆資料背後的產生機制只是隨機漫步 (random walk)

33 of 37

Take Home message

  • 計算語言學的各種模型提供語言研究的完美背景--它讓以往撲朔迷離的語言,很清楚地在數學計算脈絡下被凸顯出來。
  • 精通程式實作、看得懂paper數學,從這個角度來看,都只是一種培養觀點的過程。看得懂當然很好,但畢竟語言學是20世紀初就有的東西,學科內不乏其他視角。
  • 但如果我們的確是在用計算手段研究語言,那對於程式和模型是的確該有掌握的。因為,正如其他研究領域一樣,那些程式和模型就是我們對話文獻的一部份。

34 of 37

End

35 of 37

FastText

  • Enriching Word Vectors with Subword Information (paper)
  • 相對地,FastText詞向量是要訓練一組詞向量,使它最能預測兩個詞是否有共現。

36 of 37

FastText把預測問題變成多個分類問題

37 of 37

FastText用了ngram訊息