圖模型+Bert香不香?完全基於注意力機制的圖表徵學習模型Graph-Bert

2020-12-16 AI科技大本營

作者 | Jiawei Zhang、Haopeng Zhang、Congying Xia、Li Sun

譯者 | 凱隱

編輯 | Jane

出品 | AI科技大本營(ID:rgznai100)

【導讀】本文提出了一種全新的圖神經網絡 Graph-Bert,僅僅基於 Attention 機制而不依賴任何類卷積或聚合操作即可學習圖的表示,並且完全不考慮節點之間的連接信息。通過將原始圖分解為以每個節點為中心的多個子圖來學習每個節點的表徵信息,這不僅能解決圖模型的預訓練問題,還能通過並行處理還提高效率。

論文地址:

https://arxiv.org/abs/2001.05140

簡介

傳統的圖神經網絡存在許多嚴重影響模型性能的問題,例如模型假死和過於平滑問題。模型假死和過於平滑都可以歸結於傳統 GNN 的類卷積特徵學習方式以及基於聚合操作(mean,max,sum)的信息更新方式,這會導致隨著模型層數加深,模型會逐漸喪失對輸入的響應,因此一般GNN都是只堆疊不超過兩層。同時,模型學習到的不同節點的表徵信息也會愈發相似,從而變得無法區分。此外,由於傳統GNN都考慮圖中的固有內在連接(即邊),因此無法對圖數據進行並行化處理。

為了解決以上問題,本文提出了Graph-Bert,Bert 是一個用於NLP的模型,其核心在於 attention 機制,將這種機制拓展到圖結構數據上,便是 Graph-Bert。Graph-Bert 將原始圖採樣為多個子圖,並且只利用attention機制在子圖上進行表徵學習,而不考慮子圖中的邊信息。因此Graph-Bert可以解決上面提到的傳統GNN具有的性能問題和效率問題。

此外,傳統 GNN 受限於圖結構的多樣性,無法進行跨任務的預訓練,而 Graph-Bert 由於不考慮圖中的邊信息,因此並不受限於圖結構,可以很好地進行預訓練和遷移學習。

模型結構介紹

Graph-Bert 主要由四部分組成:

1、將原始圖分解為無邊子圖(不考慮子圖中的邊信息)

2、節點輸入特徵的嵌入表示

3、基於圖transformer的節點表徵學習編碼器,編碼器的輸出作為學習到的節點特徵表示。

4、基於圖transformer的解碼器

(一)無邊子圖分解

這部分對應上圖中的step1,主要將原始輸入圖分解為多個子圖,每個子圖都包含一個中心節點和固定數量的鄰居節點,鄰居節點就代表了中心節點的上下文信息,因此如何為中心節點選取鄰居節點是這一步的關鍵。方法有很多種,本文採用的是top-K關係值方法,類似於KNN算法,計算每個節點與其他所有節點的關聯(intimacy)程度,然後選取關係值最大的前K個點作為鄰接節點。關係矩陣的計算方法採用pagerank算法:

表示列歸一化(隨機遊走歸一化)的鄰接矩陣A,即

,D 是度矩陣,注意A和D都是相對於輸入圖而言的。給定圖G以及該圖的關係矩陣S,那麼就可以得到圖中任意節點vi的上下文信息:

這裡節點vi的鄰居節點vj既可以是距離較近的,也可以是距離較遠的,並不局限於邊連接。

(二)節點輸入特徵嵌入表示

節點的排序不同於圖片像素和句子中的詞,圖的節點並沒有明確的順序,理論上我們在表示節點特徵時,交換任何兩個節點在矩陣中的順序都不應該影響最終結果(置換不變性),然而在用矩陣表示節點特徵信息時,矩陣的行/列必須和權重矩陣(例如FC層)列/行進行對應,否則即便是同一特徵矩陣,在不同的行排列下也會得到不同的計算結果,這顯然是不合理的。因此還是需要按照一定的順序來對每個子圖的輸入節點特徵向量(矩陣)進行排序,從而得到特徵矩陣(張量)。這裡按照前面計算得到的關聯值由大到小進行排序。

特徵向量嵌入表示通過四種方法來逐步得到每個節點特徵向量的嵌入表示:

1、原始特徵向量嵌入

這一步主要將原始特徵嵌入到一個新的特徵空間,對於不同類型的輸入數據可以使用不同的Embed函數,例如對於圖片可以使用CNN,對於序列信息則可以使用LSTM。

2、Weisfeiler-Lehman 絕對角色嵌入

這一步學習每個節點在全局圖(即輸入圖)中的唯一表示,通過WL算法完成。WL算法根據節點在圖中的結構位置來標記節點,結構位置相同的節點會得到相同的標記,這裡的結構位置是指節點在完整圖(而不是子圖)中的位置,因此與子圖無關。節點的WL絕對角色嵌入向量計算方法為:

這一步主要是獲取節點全局位置的信息,詳細細節可以參考原文。

3、基於關聯值的相對位置嵌入

相較於上一步基於WL的全局位置嵌入,這一步主要是獲取節點在子圖中的局部信息:

P是一個位置函數,對於中心節點vi,P(vi)=1,對於其他的周圍節點vj,和vi關聯值越大,P(vj)越小。

4、基於節點距離的相對距離嵌入

這一步主要是平衡上面兩步的嵌入值,通過計算兩個節點在原始圖(考慮邊)中的相隔的邊距離來計算嵌入值:

由於這一步是基於全局圖的,因此不同子圖中的相同節點之間得到的H值是相同的。

(三)基於編碼-解碼器的圖Transformer

谷歌提出的Transformer模型是一種基於全attention的sequence to sequence模型,在NLP任務上取得了比LSTM更好的成績。這裡將Transformer方法推廣到了圖結構數據。首先將上面計算到的四種嵌入表示聚合,以作為編碼器的輸入:

聚合方法可以有多種,例如max, sum, mean等。之後通過多層attention操作來逐步更新節點的表示:

QKV都是輸入特徵矩陣H(l-1)的複製,這裡額外添加了一個mask矩陣M,可以學習到子圖的上下文信息。

整個Transoformer包含2K層,前K層是編碼器,後K層是解碼器,通過自回歸來監督訓練,最終編碼器的輸出即為學習到的節點特徵表示zi。此外還在編碼器輸入和輸入之間添加了res連接。

Graph-Bert預訓練與微調

主要介紹 Graph-Bert 在圖表徵學習任務中的預訓練和微調,對於預訓練,主要考慮節點屬性重建以及圖結構恢復任務,對於表徵學習相關應用,主要考慮節點分類和圖聚類任務。

(一)模型預訓練1、節點原始特徵重建

如何從學習到的節點特徵表示中還原原始輸入特徵是採用預訓練模型時需要關注的點:

在監督時自然採用和編碼-解碼器相同的監督方式:

考慮到節點的特徵可能非常稀疏,這裡額外加入了一個Mask矩陣:

2、圖結構重建

通過圖結構重建來保證模型能學習到圖的結構信息,該任務依然是作為預訓練任務。圖的結構可以用一個標籤向量y來表示,yij表示節點i和j之間的連接關係,包含兩個值(i->j, j->i),因此我們需要預測的是:

損失函數採用多類交叉熵損失函數即可:

考慮到圖比較稀疏時,大部分節點之間都沒有連接(例如對於一個總節點數為100,平均1階鄰居節點數為5的圖,其鄰接矩陣就有95%的地方為0),需要對負例(即無連接的節點對)進行採樣來保證正負例平衡。

通過將上述兩種不同的學習任務與變量正則化項結合,我們可以定義正式訓練前的目標函數。通過優化該目標函數將有助於對Graph-Bert進行有效的預訓練。

(二)模型遷移與微調

在將Graph-Bert應用在新任務中時,既可以直接使用模型學習到的圖特徵表示,也可以根據實際情況做一些必要的調整。這裡主要考慮節點分類和圖聚類任務,其中圖聚類任務可以直接使用學習到的特徵表示,而節點分類還需要做一些調整。

1、節點分類

通過額外添加FC層和softmax來進行節點分類:

相應的損失函數為:

因此額外需要訓練的就是FC層,通過將FC層和原來的Graph-Bert結合,並重新訓練,就可以完成節點分類的任務。

2、圖聚類

圖聚類主要是將圖中的節點分為多類,由於聚類屬於非監督的無參算法,因此不需要額外添加權重,直接在學習到的節點特徵上進行聚類即可,使用諸如K-means的算法就可以完成,需要優化的目標函數為:

該函數中仍然包含了一些變量,可以用EM算法來高效地學習,而不是反向傳播。

總結

本文提出的Graph-Bert模型屬於Bert模型在圖結構數據上的拓展,在一定程度上降低了對節點間固有連接的依賴,使得模型可以更好的進行預訓練和並行計算。筆者個人認為這種思想和點雲很相似,具體區別還有待探究。

(*本文為AI科技大本營翻譯文章,轉載請微信聯繫 1092722531)

1、評選進行中,參與投票即有機會參與抽獎,60+公開課免費學習

疫情嚴重,潛伏期也有傳染性?科技公司在行動召喚超參調優開源新神器:集XGBoost、TensorFlow、PyTorch、MXNet等十大模塊於一身5個可以幫助你提高工作效率的新AI工具亞馬遜機器學習服務:深入研究AWS SageMaker從4個月到7天,Netflix開源Python框架Metaflow有何提升性能的魔法?管理7k+工作流,月運行超10000萬次,Lyft開源的Flyte平臺意味著什麼?伯克利新無監督強化學習方法:減少混沌所產生的突現行為機器推理文本+視覺,跨模態預訓練新進展

相關焦點

  • XLM —— 基於BERT的跨語言模型
    注意力模型,尤其是BERT模型,已經在NLP領域分類和翻譯任務上取得了極具前景的結果。Facebook AI在一篇新論文中提出了一個改良版的BERT模型XLM,在以上兩個任務上均取得了SOTA結果。XLM用了一個常見的預處理技術BPE(byte pair encoder字節對編碼)以及BERT雙語言訓練機制來學習不同語言中詞與詞之間的關係。
  • bert之我見-attention
    bert的已經少之又少了,而bert的講解文章也已經有了很多,這裡我談一下我最近學習得到的理解。事先說明,對bert和transformer完全不懂的人看這個完全不知道咋回事的,想要看下面這些請先對這兩個玩意有初步的理解。
  • 谷歌開源 BERT 模型原始碼
    」中可能存在同樣的表徵。反之,有上下文語境的模型會根據整句話生成詞的表徵。BERT 建立在近期一些上下文預訓練語境表徵工作的基礎上,包括半監督序列學習( https://arxiv.org/abs/1511.01432  )、預訓練生成模型( https://blog.openai.com/language-unsupervised/  )、ELMo ( https://allennlp.org/elmo  )以及 ULMFit ( http://nlp.fast.ai
  • 谷歌NLP深度學習模型BERT特徵的可解釋性表現怎麼樣?
    如今,幾乎所有機器學習業內人士都能熟背「國王減去男人加上女人等於女王」這類箴言。目前,這些可解釋的詞嵌入已成為許多基於深度學習的 NLP 系統的重要部分。去年 10 月初,Google AI 提出了 BERT 表徵——Transformer 雙向編碼表徵(論文連結:https://arxiv.org/abs/1810.04805,項目代碼:https://github.com/google-research/bert)。
  • 最強NLP預訓練模型!谷歌BERT橫掃11項NLP任務記錄
    與最近的語言表徵模型不同,BERT 旨在基於所有層的左、右語境來預訓練深度雙向表徵。BERT 是首個在大批句子層面和 token 層面任務中取得當前最優性能的基於微調的表徵模型,其性能超越許多使用任務特定架構的系統,刷新了 11 項 NLP 任務的當前最優性能記錄。
  • 一文總結深度學習這半年:從BERT到圖網絡
    我們一起來總結下2018下半年的關鍵突破,以及深度學習社群的未來之路。最熱模型:BERT、vid2vid和graph_netsGoogle AI十月發布的BERT論文,引發了深度學習界的強烈關注。這篇論文提出了一種深度雙向Transformer模型。
  • BERT的力量之源遠不止注意力
    與 RNN 不同,Transformer完全依賴於注意力機制,除了通過每個單詞的絕對位置的嵌入對單詞進行標記外,Transformer 對單詞順序沒有明確的概念。這種對注意力的依賴可能會導致 Transformer 在語法敏感任務上的性能不如 RNN (LSTM)模型,後者直接對詞序建模並顯式跟蹤句子狀態。
  • 圖深度學習入門教程(六)——注意力機制與圖注意力
    主要是基於圖深度學習的入門內容。講述最基本的基礎知識,其中包括深度學習、數學、圖神經網絡等相關內容。該教程由代碼醫生工作室出版的全部書籍混編節選而成。偏重完整的知識體系和學習指南。在實踐方面不會涉及太多基礎內容 (實踐和經驗方面的內容,請參看原書)。文章涉及使用到的框架以PyTorch和TensorFlow為主。默認讀者已經掌握Python和TensorFlow基礎。
  • 嚮往的GAT(圖注意力模型)
    深度學習三巨頭」之一的Yoshua Bengio組提出了Graph Attention Networks(下述簡稱為GAT)去解決GCN存在的問題並且在不少的任務上都取得了state of art的效果(可以參考機器之心:深入理解圖注意力機制的復現結果),是graph neural network領域值得關注的工作。1 聊點基礎登堂入室之前,先介紹三點基礎問題。
  • 中文最佳,哈工大訊飛聯合發布全詞覆蓋中文BERT預訓練模型
    而在中文領域,哈工大訊飛聯合實驗室也於昨日發布了基於全詞覆蓋的中文 BERT 預訓練模型,在多個中文數據集上取得了當前中文預訓練模型的最佳水平,效果甚至超過了原版 BERT、ERINE 等中文預訓練模型。基於 Transformers 的雙向編碼表示(BERT)在多個自然語言處理任務中取得了廣泛的性能提升。
  • BERT模型超酷炫,上手又太難?請查收這份BERT快速入門指南!
    除了這篇博文,我還準備了一份對應的 notebook 代碼,連結如下:https://github.com/jalammar/jalammar.github.io/blob/master/notebooks/bert/A_Visual_Notebook_to_Using_BERT_for_the_First_Time.ipynb。
  • NLP中的詞向量對比:word2vec/glove/fastText/elmo/GPT/bert
    上述方法得到的詞向量是固定表徵的,無法解決一詞多義等問題,如「川普」。為此引入基於語言模型的動態表徵方法:elmo、GPT、bert。,但是基於局部語料;glove:基於全局預料,結合了LSA和word2vec的優點;elmo、GPT、bert:動態特徵;4、word2vec和NNLM對比有什麼區別?
  • 從 one-hot 到 BERT,帶你一步步理解 BERT
    如下圖所示:神經網絡語言模型架構如上圖:將每個詞向量拼接成句子矩陣。這也是神經網絡語言模型的一個好處。我們通過神經網絡語言模型得到一個詞向量。當然我們也可以用其他的任務來做,一樣得到詞向量,比如句法分析,但是那些任務大部分是有監督的學習,需要大量的標註信息。語言模型是非監督的,資料獲取不需要很大的成本。word2vec和神經網絡語言模型不同,直接來學習這個詞向量,使用的基本假設是分布式假設,如果兩個詞的上下文時相似的,那麼他們語義也是相似的。
  • 最強NLP模型BERT可視化學習
    2018年是自然語言處理(Natural Language Processing, NLP)領域的轉折點,一系列深度學習模型在智能問答及情感分類等NLP任務中均取得了最先進的成果。近期,谷歌提出了BERT模型,在各種任務上表現卓越,有人稱其為「一個解決所有問題的模型」。
  • RPI-IBM團隊提出圖結構&表徵聯合學習新範式IDGL:用於圖神經網絡的...
    本文提出了一個端到端的、迭代式深度圖學習框架IDGL,其核心思想是:基於更優的圖表徵,往往能學到更優的圖結構;基於更優的圖結構,往往也能學到更優的圖表徵。這種圖結構和表徵的聯動學習,交替迭代進行,直到圖結構 (或表徵) 收斂到某種最優值。
  • 【BERT】如何訓練並使用Bert【持續更新】
    以上的兩個pretraining都用了同樣的objective function【語言模型】,且都用了unidirectional language models來學習general的語言表示。重點來了:提出了當前的瓶頸一是單向的語言模型作為學習。
  • BERT詳解:開創性自然語言處理框架的全面指南
    可以通過添加幾個額外的輸出層來進行微調,從而成為各種自然語言處理任務最頂尖的模型。2. 從Word2vec到BERT: 自然語言處理對學習語言表徵的探究「自然語言處理的最大挑戰之一是缺乏訓練數據。——谷歌AIWord2Vec與GloVe通過對大量無標號文本數據的預訓練模型來探究學習語言表徵始於Word2Vec與GloVe中詞的嵌入。這些嵌入改變了自然語言處理任務的執行方式。現在的嵌入可以捕捉詞之間的上下文關係。
  • BERT相關模型匯總梳理
    )。ALBERT 的出發點在於,如果模型參數持續變大,會出現兩類問題:GPU/TPU OOM;模型效果退化。基於此,ALBERT 考慮減少模型的參數。1. Factorized embedding parameterization:之前的模型中,都會使
  • 深入理解圖注意力機制(Graph Attention Network)
    >圖神經網絡已經成為深度學習領域最熾手可熱的方向之一。作為一種代表性的圖卷積網絡,Graph Attention Network (GAT) 引入了注意力機制來實現更好的鄰居聚合。通過學習鄰居的權重,GAT 可以實現對鄰居的加權聚合。因此,GAT 不僅對於噪音鄰居較為魯棒,注意力機制也賦予了模型一定的可解釋性。下圖概述了 Graph Attention Network 主要做的事情。
  • VD-BERT:用BERT搭建統一的視覺對話模型
    論文標題:VD-BERT: A Unified Vision and Dialog Transformer with BERT論文作者:Yue Wang, Shafiq Joty, Michael R.