您當前的位置:首頁 > 舞蹈

關係歸納偏置與其圖表達

作者:由 Rooftrellen 發表于 舞蹈時間:2022-03-06

前記:本文主要有兩部分內容。第一部分我會談談我對關係歸納偏置的一些理解,第二部分是對我們在AAMAS 2021上發表的論文《Grid-to-Graph: Flexible Spatial Relational Inductive Biases for Reinforcement Learning》的介紹,介紹會集中在方法論層面,對於實驗細節等感興趣的讀者可以移步原論文,專案原始碼也已公開。

簡介

關係歸納偏置粗略的說就是我們在網路結構中注入的先驗、假設或者說知識。對於深度學習模型的表現最佳化中所做的網路結構設計,其實就是如何把我們的先驗用計算圖編輯的方式表達出來。而Grid-to-Graph(GTG)這篇文章則提出了關係歸納偏置更系統化的高層的表達方式,也就是基於關係圖的表達。利用簡單的邏輯語句我們可以編輯這個圖的生成方式,這就提供了一種專門用來表達網路結構的“語言”。

如下圖所示:傳統的表達關係歸納偏置的方法是直接對計算圖進行編輯,而GTG提出的方法則是由透過編輯控制關係圖生成的一階邏輯語句來實現。

關係歸納偏置與其圖表達

這種做法的的好處首先是我們可以把更多的注意力放在網路結構本身而不是底層的實現方式,以進行大規模的試錯;另一方面一階邏輯語句和關係圖都是更容易操作的數學物件,這方面就留出了很大的想象空間,在GTG中我們就展示了可以透過關係圖的合併,將一些符號化的知識納入網路結構中。

而這種抽象語言所帶來的一個明顯弊端就是我們能控制的模型粒度降低了,這對手動的計算最佳化和可表達的模型範圍都帶來的限制(但也帶來了自動化最佳化的空間)。

歸納偏置 (Inductive bias)

歸納偏置這個概念十分寬泛,廣義地說對於一個機器學習專案中除了資料以外的所有部分都是歸納偏置。一種從貝葉斯的角度的詮釋會把歸納偏置稱為“先驗”,這種說法的思路是:被資料訓練過的模型對應後驗分佈的話,那在觀察資料之前的模型就含有的“信念”就對應先驗了。

在PAC Learning框架中,歸納偏置被定義為對於假設集合的約束。而學習演算法則是在這個假設集合中尋找一個最能解釋訓練資料的假設,如下圖。

關係歸納偏置與其圖表達

只不過這種定義方式對於深度學習可能並不完全適用,畢竟我們並不總能找到全域性最優的模型引數。對這個定義的修補可以是:對假設集合的約束和對集合內假設的偏好性。舉一個例子就是殘差網路(ResNet)其實並沒有太多改變網路的表達能力,但是使得每層網路的初始值更接近恆等函式,這就是沒有改變假設集合本身但是改變了假設的偏好性。

歸納偏置對於機器學習模型的泛化有決定性作用,當假設集合沒有任何約束和偏好的情況下,那麼一個平凡(trivial)的假設可以是:記憶所有訓練集中的資料,對於訓練集外的資料則生成一個隨機答案。顯然這樣的“擬合”了訓練資料的模型對於實際問題來說沒有任何意義。

關係歸納偏置(relational inductive bias)

關係歸納偏置是一個深度學習中特有的概念,可以理解為一部分我們透過網路結構所能表達出來的歸納偏置。整個深度學習中最常用的關係歸納偏置可能是“分層處理”,也就是說神經網路由一些更簡單的神經層堆積而成。

網路結構中的先驗為什麼要叫“關係”歸納偏置呢?這可能和最早比較系統化地闡述關係歸納偏置這一概念的Battaglia等人的一篇論文

[1]

有關,他們將關係歸納偏置定義為:

在學習過程中,對實體間關係和互動的約束。

這個定義本身其實就引入了很多假設。首先就是必須有“實體”(Entity),神經網路的輸入可以被表達為這些實體的集合。其次神經網路的前饋運算能被表達為這些實體間的互動。只不過這個假設的適用條件其實非常寬泛,比如說對於影象資料,每一個畫素都可以被當作一個實體;自然語言中的每個詞也可被當作一個實體。

在這些例子裡每個實體都對應一個向量,而神經網路則是一組引數化的訊息傳遞(message passing)函式。以卷積神經網路(CNN)為例,輸入和輸出的特徵圖(feature map)中的每個點都是一個實體,每個實體對應一個特徵向量(feature vector,不是線性代數里的eigenvectors)。每個輸出實體的向量都依賴於輸入特徵圖中與之位置相鄰的向量。所以可以看作輸入特徵圖中的實體將資訊傳遞給了輸出實體。

關係歸納偏置與其圖表達

每個小方格為一個“實體”,以一個輸出實體為例演示了CNN的訊息傳遞。

卷積神經網路有兩種重要的關係歸納偏置:區域性性和位移同變性。區域性性就是我們上面所說的,輸入實體僅將資訊傳遞給臨近的輸出實體。位移同變性則是指對輸入特徵圖施加一個位移變換,那麼我們得到的輸出特徵圖也會被施加一個同樣的位移變換。

[2]

位移同變形在卷積神經網路中是由核函式之間的引數共享來實現的。

於是,如果一個神經網路架構或者一個神經層滿足了某些條件,我們就可以說它包含了對應的關係歸納偏置。可是反過來,如果我們從一些先驗也就是條件出發,要如何設計一個神經網路架構來實現他們呢?這個轉化過程並不存在什麼通用的規則,通常會直接這些先驗就直接反映到計算圖中了,這其中可能就有很多隨意性了。而GTG就是要試圖形式化一部分關係歸納偏置並且讓他們能對應到具體實現,而非停留在抽象的性質甚至感覺層面上。

稀疏性(sparsity)和引數共享(parameter sharing)的關係圖表達

GTG這篇文章討論的兩種非常常用的關係歸納偏置的實現方式是稀疏性和引數共享。稀疏性是說輸入實體不會將資訊傳遞給所有輸出實體,這樣一來,輸入和輸出實體間就不是“全連線“的了。要解釋引數共享則要先談談訊息傳遞函式。訊息傳遞函式是將輸入實體的特徵處理後傳送給輸出實體的函式。在訊息傳遞模型中,神經網路的引數都是依附於這些訊息傳遞函式的。最後輸出實體的向量就依賴於它收到的“訊息”。

關係歸納偏置與其圖表達

圓圈為實體,方框為訊息傳遞函式。同樣顏色意為他們共享了引數

我們提出,一個用訊息傳遞模型描述的神經網路的稀疏性和引數共享可以用一個關係圖(relational graph)表達。關係圖就是一個邊(Edge)有類別的有向圖。上面的示意圖給了一個例子,方框中的顏色對應邊的類別標籤,而兩個實體(圖的節點Node)間“邊”的有無就控制了稀疏性。

這樣一來,生成這張圖的規則其實就包含了關係歸納偏置,而這些規則可以是很容易編輯且易讀的,根據輸入實體和輸出實體的某些性質(如空間位置)決定兩者之間是否有某種類別的關係,可以寫作類似下圖一樣的一階邏輯語句:

關係歸納偏置與其圖表達

r為關係類別,a是輸出實體,b是輸入實體

有了關係圖之後,利用現有的圖神經網路架構,我們可以輕易實現訊息傳遞的運算。在GTG中,我們使用了關係圖卷積神經網路(Relational Graph Convolutional Network,R-GCN),其對於一個特定輸出實體的特徵向量賦值公式為:

關係歸納偏置與其圖表達

其中

y_a

是輸出實體的特徵向量,

\mathcal{R}

是所有關係類別標籤的集合,0代表自迴圈關係

[3]

\mathcal{N}_a^r

是所有與實體

a

相鄰且關係類別為

r

的實體的集合,

c

是標準化(Normalization)常數,而訊息傳遞函式則是一個線性函式

\bm W_r \bm x_b

。最後整合不同節點傳遞來的訊息的方法就是單純把訊息向量加在一起

[4]

總結一下,現在我們可以將關係歸納偏置對應到生成關係圖的規則,然後R-GCN可以基於關係圖實現關係歸納偏置。整個流程對應下圖的右半邊:

關係歸納偏置與其圖表達

這麼繞一圈增加了一箇中間層來表達關係歸納偏置到底有什麼用呢?首先這實現了關係歸納偏置和計算圖中包含的其他歸納偏置的解耦,將關係歸納偏置單獨形式化成容易操作的邏輯語句和關係圖,我認為這裡面有很大的想象空間。GTG這篇文章就提出了這個框架的兩種應用:對卷積神經網路的改進和與知識圖譜的聯合推理。

從網格到圖:改進卷積層的關係歸納偏置

因為表達關係圖構成的一階邏輯語句非常容易修改,編輯和混合,這使我們可以快速試錯和迭代不同的關係歸納偏置。GTG(Grid-to-Graph,網格到圖)就利用這一點改進了(圖片)卷積層的關係歸納偏置。

整個模型的架構如下:

關係歸納偏置與其圖表達

方便起見,我們假設輸入實體和輸出實體是一一對應的,也就是輸入特徵圖和輸出特徵圖的長寬一致,這樣在輸入實體和輸出實體間的關係可以被簡化為同一套實體內部的關係。特徵圖中的網格結構,也就是位置資訊,被抽象出來,被GTG規則轉換成關係圖。特徵向量則被對應到關係圖中的節點上。然後R-GCN會根據關係圖進行節點間的訊息傳遞並在經由全域性池化(pooling)後由全連線層輸出動作分佈(我們測試的任務都是強化學習任務)。

GTG首先複製了卷積層的關係歸納偏置,表達為區域性方向性關係,所有相對位置一致的一對實體間的訊息傳遞函式共享引數,對一個特定輸出實體,與之有關係連線的特徵圖中實體的示意圖如下:

關係歸納偏置與其圖表達

黑色位置為接收實體,其他不同顏色代表的是發出訊息的實體

關係圖生成規則為:

關係歸納偏置與其圖表達

x, y這些是實體a,b的座標

為了針對性解決卷積層不能做長距離資訊傳遞的問題,我們又引入了遠距離的相對位置關係:

關係歸納偏置與其圖表達

關係“a在b左面”

關係生成規則為:

關係歸納偏置與其圖表達

最後我們還引入了兩個偏啟發式的規則(眾多嘗試中奏效的兩種),分別是橫縱方向上的對齊關係,和相鄰但不考慮方向的關係,生成規則為:

關係歸納偏置與其圖表達

最後在實驗中觀察到了任務表現和泛化效能很明顯的提升:

關係歸納偏置與其圖表達

關係歸納偏置與其圖表達

實驗中除了CNN我們還引入了另一個關係模型Neural Logic Machine(NLM),NLM會把關係圖直接當成輸入資料,或者說狀態表徵的一部分來使用。對於更熟悉圖神經網路的讀者來說,這類似於一個全連線的圖神經網路並且每個邊(而不只是節點)都有一個特徵向量。

需要注意的是,這些泛化效能並不是單純來自於我們改進的卷積層針對原版卷積層的優勢。R-GCN-GTG的卷積層有全域性資訊傳遞的能力,所以我們可以使用GCN中比較通用的全域性池化的方法獲得最後向全連線層輸出的向量。但是對於普通卷積網路,我們仍然需要使用展平層 (flatten layer)來將所有特徵圖中的向量接在一起,這樣後面的全連線層才能進行基於全域性資訊的推理。而這個展平後輸入全連線層的操作其實幾乎沒有任何關係歸納偏置,也就降低了網路的泛化能力。詳情可以看原文中的切片研究。

與知識圖譜的聯合推理

上面我們向網路中注入的關係歸納偏置是我們對一類任務整體的先驗,對於不同的任務,我們都保持了同一套關係歸納偏置。將關係歸納偏置表達為關係圖的另一個好處是,如果我們已經有了被表達成關係圖的知識,我們可以直接把這些知識融入網路成為關係歸納偏置的一部分。

關係歸納偏置與其圖表達

最簡單的情況是,我們已經知道了一些實體間的關係,這些關係並不是空間關係,而可能與實體的某些性質有關。比如在文章中我們測試的一個任務:RTFM (Read to Fight Monsters, 透過閱讀與怪物作戰)中,某些武器相對於特定屬性的怪物有剋制效果,而這個剋制關係就可以被直接併入空間關係圖中成為網路關係歸納偏置的一部分。

不過在更多情況下我們手裡有的是一張知識圖譜(knowlege graph, knowledge base),而這個知識圖譜裡的實體往往和網路輸入資料中的實體不是同一套,這時我們就需要把這兩套實體聯絡起來。連結知識圖譜中的抽象實體和特徵圖中的“物理”實體的關係被我們成為grounding關係

[5]

,融合後的關係圖如下圖所示:

關係歸納偏置與其圖表達

關係歸納偏置與其圖表達

在RTFM中,任務會提供一段背景描述文字,說明武器詞條和怪物屬性間的剋制關係並提示任務目標是擊敗哪個隊伍的怪物。這段文字其實是基於一個關係圖透過特定的預設語法生成的。我們直接取出了這個關係圖並將其中的抽象概念(如怪物屬性)和場中物體(如怪物)用grounding relation聯絡起來

[6]

,然後讓整個R-GCN利用融合後的關係圖進行推理。最後這種方法取得了相對於基線模型更好的原任務表現和泛化能力:

關係歸納偏置與其圖表達

模型都是在6*6場地中訓練的。因為10*10的場地中有更多的規避怪物的空間,有些模型的表現反而提升了。

總結

其實本文主要想要提出的是一個概念性框架,也就是說我們可以把本來硬編碼在網路結構中的關係歸納偏置用一個關係圖來表達。這種表達方式使得相關的先驗注入更加系統化,關係歸納偏置的修改編輯變得更容易。

當然這個方法並不是說可以完全替代傳統的“有一個想法,然後直接寫程式碼構建計算圖”的模式,畢竟它在運算控制的粒度上會差很多,這會使得很多網路結構(比如殘差連線)不能在這個體系裡被直接表達,同時也降低了手動計算效能最佳化的空間。不過其實計算圖編輯和GTG這種做法並不完全衝突,在測試得到良好的網路結構後,我們完全可以再手動寫一個最佳化的版本。就好像用python做科研,用java/c寫高速的用於實際部署的程式碼一樣。而類似殘差連結的結構也可以手動在計算圖層面混入網路結構中。從宏觀層面來說我也相信整個計算機科學發展過程中,工具的運算速度和表達靈活性

[7]

是會不斷向易用性妥協的。

附錄:稀疏性(sparsity)和引數共享(parameter sharing)的塊矩陣表達

在附錄中我們還提供了稀疏性和引數共享的另一種向量化的表達方式,我覺得這對更具體地理解關係歸納偏置有幫助所以在這裡也簡單介紹下:

我們從一個沒有任何約束的全連線層開始看起。為了方便敘述,我們假設輸入和輸出的實體特徵向量長度一致,並且輸入和輸出實體數量也一樣。如下圖,我們將輸入和輸出的向量分割稱實體特徵向量,這樣左側的權重矩陣也被分割成了塊矩陣:

關係歸納偏置與其圖表達

其中

a,b

為實體。實體向量

\bm y_a

可以表達為:

關係歸納偏置與其圖表達

也就是所有輸入實體向量

\bm x_b

a

傳遞的訊息的總和。而每條訊息則是訊息傳遞矩陣乘輸入向量

\bm A_{ab} \bm x_a

而關係歸納偏置則可以透過對這些訊息傳遞矩陣做限制來實現。透過將某些訊息傳遞矩陣強制設定為0矩陣,我們向網路注入稀疏性,比如可以實現“區域性性”。而強制某些訊息傳遞矩陣共享引數則能用來實現某些同變性,比如DeepSet中的排列同變性。下圖展示了兩種神經網路的訊息傳遞矩陣的稀疏性和引數共享的模式,圖左是DeepSet,圖右是一維卷積:

關係歸納偏置與其圖表達

白色是指強制0矩陣,同樣顏色對應的權重子矩陣共享引數

其實不難看到,這些對訊息傳遞矩陣的限制和關係圖是對應的。

\bm A_{ab} = \bm 0

對應

a,b

實體間沒有任何關係(也就是圖的邊),而同屬一個引數共享組裡的訊息傳遞矩陣的對應實體對之間的關係類別是相同的。

在實現層面上,如果關係圖非常稠密,我們也可以不用R-GCN而是直接基於這種塊矩陣的表達來完成關係圖向計算圖的轉化。

關於圖片

這篇部落格文章中所有的圖片都是作者繪製或者來自於原論文,如需使用請註明出處。

標簽: 偏置  關係  實體  歸納  神經網路