為什麼說圖網絡是 AI 的未來?

為什麼說圖網絡是 AI 的未來?

為什麼說圖網絡是 AI 的未來?

圖神經網絡(Graph NN)是近來的一大研究熱點,尤其是DeepMind提出的“Graph Networks”,號稱有望讓深度學習實現因果推理。但這篇論文晦澀難懂,復星集團首席AI科學家、大數醫達創始人鄧侃博士,在清華俞士綸教授團隊對GNN綜述清晰分類的基礎上,解析DeepMind“圖網絡”的意義。

- 1 -

回顧 2018 年機器學習的進展,2018年6月 DeepMind 團隊發表的論文 “Relational inductive biases, deep learning, and graph networks”,是一篇重要的論文,引起業界熱議。

隨後,很多學者沿著他們的思路,繼續研究,其中包括清華大學孫茂松團隊。他們於2018年12月,發表了一篇綜述,題目是“Graph neural networks: A review of methods and applications”。

2019年1月,俞士綸教授團隊,也寫了一篇綜述,這篇綜述的覆蓋面更全面,題目是“A Comprehensive Survey on Graph Neural Networks”。

為什麼說圖網絡是 AI 的未來?

俞士綸教授團隊綜述GNN,來源:arxiv

DeepMind 團隊的這篇論文,引起業界這麼熱烈的關注,或許有三個原因:

  1. 聲望:自從 AlphaGo 戰勝李世乭以後,DeepMind 享譽業界,成為機器學習業界的領軍團隊,DeepMind 團隊發表的論文,受到同行普遍關注;
  2. 開源:DeepMind 團隊發表論文 [1] 以後不久,就在 Github 上開源了他們開發的軟件系統,項目名稱叫 Graph Nets [4];
  3. 主題:聲望和開源,都很重要,但是並不是被業界熱議的最主要的原因。最主要的原因是主題,DeepMind 團隊研究的主題是,如何用深度學習方法處理圖譜。

- 2 -

圖譜 (Graph) 由點 (Node) 和邊 (Edge) 組成。

圖譜是一個重要的數學模型,可以用來解決很多問題。

譬如我們把城市地鐵線路圖當成圖譜,每個地鐵站就是一個點,相鄰的地鐵站之間的連線就是邊,輸入起點到終點,我們可以通過圖譜的計算,計算出從起點到終點,時間最短、換乘次數最少的行程路線。

又譬如 Google 和百度的搜索引擎,搜索引擎把世界上每個網站的每個網頁,都當成圖譜中的一個點。每個網頁裡,經常會有鏈接,引用其它網站的網頁,每個鏈接都是圖譜中的一條邊。哪個網頁被引用得越多,就說明這個網頁越靠譜,於是,在搜索結果的排名也就越靠前。

圖譜的操作,仍然有許多問題有待解決。

譬如輸入幾億條滴滴司機行進的路線,每條行進路線是按時間排列的一連串(時間、GPS經緯度)數組。如何把幾億條行進路線,疊加在一起,構建城市地圖?

不妨把地圖也當成一個圖譜,每個交叉路口,都是一個點,連接相鄰的兩個交叉路口,是一條邊。

貌似很簡單,但是細節很麻煩。

舉個例子,交叉路口有很多形式,不僅有十字路口,還有五角場、六道口,還有環形道立交橋——如何從多條路徑中,確定交叉路口的中心位置?

為什麼說圖網絡是 AI 的未來?

日本大阪天保山立交橋,你能確定這座立交橋的中心位置嗎?

- 3 -

把深度學習,用來處理圖譜,能夠擴大我們對圖譜的處理能力。

深度學習在圖像和文本的處理方面,已經取得了巨大的成功。如何擴大深度學習的成果,使之應用於圖譜處理?

圖像由橫平豎直的像素矩陣組成。如果換一個角度,把每個像素視為圖譜中的一個點,每個像素點與它周邊的 8 個相鄰像素之間都有邊,而且每條邊都等長。通過這個視角,重新審視圖像,圖像是廣義圖譜的一個特例。

處理圖像的諸多深度學習手段,都可以改頭換面,應用於廣義的圖譜,譬如 convolution、residual、dropout、pooling、attention、encoder-decoder 等等。這就是深度學習圖譜處理的最初想法,很樸實很簡單。

雖然最初想法很簡單,但是深入到細節,各種挑戰層出不窮。每種挑戰,都意味著更強大的技術能力,都孕育著更有潛力的應用場景。

深度學習圖譜處理這個研究方向,業界沒有統一的稱謂。

強調圖譜的數學屬性的團隊,把這個研究方向命名為 Geometric Deep Learning。孫茂松團隊和俞士綸團隊,強調神經網絡在圖譜處理中的重要性,強調思想來源,他們把這個方向命名為 Graph Neural Networks。DeepMind 團隊卻反對綁定特定技術手段,他們使用更抽象的名稱,Graph Networks。

命名不那麼重要,但是用哪種方法去梳理這個領域的諸多進展,卻很重要。把各個學派的目標定位和技術方法,梳理清楚,有利於加強同行之間的相互理解,有利於促進同行之間的未來合作。

- 4 -

俞士綸團隊把深度學習圖譜處理的諸多進展,梳理成 5 個子方向,非常清晰好懂。

為什麼說圖網絡是 AI 的未來?

俞士綸團隊把深度學習圖譜處理梳理成 5 個子方向,來源:論文 A Comprehensive Survey on Graph Neural Networks

  1. Graph Convolution Networks
  2. Graph Attention Networks
  3. Graph Embedding
  4. Graph Generative Networks
  5. Graph Spatial-temporal Networks

先說 Graph Convolution Networks (GCNs)。

為什麼說圖網絡是 AI 的未來?

GCN 類別彙總,來源:論文 A Comprehensive Survey on Graph Neural Networks

GCN 把 CNN 諸般武器,應用於廣義圖譜。CNN 主要分為四個任務,

  1. 點與點之間的融合。在圖像領域,點與點之間的融合主要通過卷積技術 (convolution) 來實現。在廣義圖譜裡,點與點之間的關係,用邊來表達。所以,在廣義圖譜裡,點點融合,有比卷積更強大的辦法。Messsage passing [5] 就是一種更強大的辦法。
  2. 分層抽象。CNN 使用 convolution 的辦法,從原始像素矩陣中,逐層提煉出更精煉更抽象的特徵。更高層的點,不再是孤立的點,而是融合了相鄰區域中其它點的屬性。融合鄰點的辦法,也可以應用於廣義圖譜中。
  3. 特徵提煉。CNN 使用 pooling 等手段,從相鄰原始像素中,提煉邊緣。從相鄰邊緣中,提煉實體輪廓。從相鄰實體中,提煉更高層更抽象的實體。CNN 通常把 convolution 和 pooling 交替使用,構建結構更復雜,功能更強大的神經網絡。對於廣義圖譜,也可以融匯 Messsage passing 和 Pooling,構建多層圖譜。
  4. 輸出層。CNN 通常使用 softmax 等手段,對整張圖像進行分類,識別圖譜的語義內涵。對於廣義圖譜來說,輸出的結果更多樣,不僅可以對於整個圖譜,輸出分類等等結果。而且也可以預測圖譜中某個特定的點的值,也可以預測某條邊的值。
為什麼說圖網絡是 AI 的未來?

GCN 和Graph Attention Networks 的區別 來源:論文 A Comprehensive Survey on Graph Neural Networks

Graph Attention Networks 要解決的問題,與 GCN 類似,區別在於點點融合、多層抽象的方法。

Graph Convolution Networks 使用卷積方式,實現點點融合和分層抽象。Convolution 卷積方式僅僅適用於融合相鄰的點,而 attention 聚焦方式卻不限於相鄰的點,每個點可以融合整個圖譜中所有其它點,不管是否相鄰,是否融合如何融合,取決於點與點之間的關聯強弱。

Attention 能力更強大,但是對於算力的要求更高,因為需要計算整個圖譜中任意兩個點之間的關聯強弱。所以 Graph Attention Networks 研究的重點,是如何降低計算成本,或者通過並行計算,提高計算效率。

- 5 -

Graph Embedding 要解決的問題,是給圖譜中每個點每條邊,賦予一個數值張量。圖像不存在這個問題,因為像素天生是數值張量。但是,文本由文字詞彙語句段落構成,需要把文字詞彙,轉化成數值張量,才能使用深度學習的諸多算法。

如果把文本中的每個文字或詞彙,當成圖譜中的一個點,同時把詞與詞之間的語法語義關係,當成圖譜中的一條邊,那麼語句和段落,就等同於行走在文本圖譜中的一條行進路徑。

如果能夠給每個文字和詞彙,都賦予一個貼切的數值張量,那麼語句和段落對應的行進路徑,多半是最短路徑。

有多種實現 Graph Embedding 的辦法,其中效果比較好的辦法是 Autoencoder。用 GCN 的辦法,把圖譜的點和邊轉換成數值張量,這個過程稱為編碼 (encoding),然後通過計算點與點之間的距離,把數值張量集合,反轉為圖譜,這個過程稱為解碼 (decoding)。通過不斷地調參,讓解碼得到的圖譜,越來越趨近於原始圖譜,這個過程稱為訓練。

Graph Embedding 給圖譜中的每個點每條邊,賦予貼切的數值張量,但是它不解決圖譜的結構問題。

如果輸入大量的圖譜行進路徑,如何從這些行進路徑中,識別哪些點與哪些點之間有連邊?難度更大的問題是,如果沒有行進路徑,輸入的訓練數據是圖譜的局部,以及與之對應的圖譜的特性,如何把局部拼接成圖譜全貌?這些問題是 Graph Generative Networks 要解決的問題。

Graph Generative Networks 比較有潛力的實現方法,是使用 Generative Adversarial Networks (GAN)。

GAN 由生成器 (generator) 和辨別器 (discriminator) 兩部分構成:1. 從訓練數據中,譬如海量行進路徑,生成器猜測數據背後的圖譜應該長什麼樣;2. 用生成出來的圖譜,偽造一批行進路徑;3. 從大量偽造的路徑和真實的路徑中,挑選幾條路徑,讓辨別器識別哪幾條路徑是偽造的。

如果辨別器傻傻分不清誰是偽造路徑,誰是真實路徑,說明生成器生成出的圖譜,很接近於真實圖譜。

為什麼說圖網絡是 AI 的未來?

GCN 以外的其他 4 種圖譜神經網絡,來源:論文 A Comprehensive Survey on Graph Neural Networks

- 6 -

以上我們討論了針對靜態圖譜的若干問題,但是圖譜有時候是動態的,譬如地圖中表現的道路是靜態的,但是路況是動態的。

如何預測春節期間,北京天安門附近的交通擁堵情況?解決這個問題,不僅要考慮空間 spatial 的因素,譬如天安門周邊的道路結構,也要考慮時間 temporal 的因素,譬如往年春節期間該地區交通擁堵情況。這就是 Graph Spatial-temporal Networks 要解決的問題之一。

Graph Spatial-temporal Networks 還能解決其它問題,譬如輸入一段踢球的視頻,如何在每一幀圖像中,識別足球的位置?這個問題的難點在於,在視頻的某些幀中,足球有可能是看不見的,譬如被球員的腿遮擋了。

解決時間序列問題的通常思路,是 RNN,包括 LSTM 和 GRU 等等。

DeepMind 團隊在 RNN 基礎上,又添加了編碼和解碼 (encoder-decoder) 機制。

- 7 -

在 DeepMind 團隊的這篇論文裡[1],他們聲稱自己的工作,“part position paper, part review, and part unification”,既是提案,又是綜述,又是融合。這話怎麼理解?

為什麼說圖網絡是 AI 的未來?

DeepMind聯合谷歌大腦、MIT等機構27位作者發表重磅論文,提出“圖網絡”(Graph network),將端到端學習與歸納推理相結合,有望解決深度學習無法進行關係推理的問題。

前文說到,俞士綸團隊把深度學習圖譜處理的諸多進展,梳理成 5 個子方向:1) Graph Convolution Networks、2) Graph Attention Networks、3) Graph Embedding、4) Graph Generative Networks、5) Graph Spatial-temporal Networks。

DeepMind 團隊在 5 個子方向中著力解決後 4 個方向,分別是 Graph Attention Networks、Graph Embedding、Graph Generative Networks 和 Graph Spatial-temporal Networks。他們把這四個方向的成果,“融合”成統一的框架,命名為 Graph Networks。在他們的論文中,對這個四個子方向沿途的諸多成果,做了“綜述”,但是並沒有綜述 Graph Convolution Networks 方向的成果。然後他們從這四個子方向的諸多成果中,挑選出了他們認為最有潛力的方法,形成自己的“提案”,這就是他們開源的代碼 [4]。

為什麼說圖網絡是 AI 的未來?

DeepMind在2018年10月開源的Graph Nets library,用於在TensorFlow中構建簡單而強大的關係推理網絡。來源:github.com/deepmind/graph_nets

雖然論文中,他們聲稱他們的提案解決了四個子方向的問題,但是查看他們開源的代碼,發現其實他們著力解決的是後兩個子方向,Graph Attention Networks 和 Graph Spatial-temporal Networks。

DeepMind 的思路是這樣的:首先,把 [5] 的 message passing 點點融合的機制,與 [6] 圖譜全局的聚焦機制相結合,構建通用的 graph block 模塊;其次,把 LSTM 要素融進 encoder-decoder 框架,構建時間序列機制;最後,把 graph block 模塊融進 encoder-decoder 框架,形成 Graph Spatial-temporal Networks 通用系統。

- 8 -

為什麼 DeepMind 的成果很重要?事關四件大事。

一、深度學習過程的解釋

從原理上講,深度學習譬如 CNN 的成果,來自於對圖像的不斷抽象。也就是,從原始的像素矩陣中,抽象出線段。從首尾相連的相鄰線段中,抽象出實體的輪廓。從輪廓抽象出實體,從實體抽象出語義。

但是,如果窺探 CNN 每一層的中間結果,實際上很難明確,究竟是哪一層的哪些節點,抽象出了輪廓,也不知道哪一層的哪些節點,抽象出了實體。總而言之,CNN 的網絡結構是個迷,無法明確地解釋網絡結構隱藏的工作過程的細節。

無法解釋工作過程的細節,也就談不上人為干預。如果 CNN 出了問題,只好重新訓練。但重新訓練後的結果,是否能達到期待的效果,無法事先語料。往往按下葫蘆浮起瓢,解決了這個缺陷,卻引發了其它缺陷。

反過來說,如果能明確地搞清楚 CNN 工作過程的細節,就可以有針對性地調整個別層次的個別節點的參數,事先人為精準干預。

二、小樣本學習

深度學習依賴訓練數據,訓練數據的規模通常很大,少則幾萬,多大幾百萬。從哪裡收集這麼多訓練數據,需要組織多少人力去對訓練數據進行標註,都是巨大挑戰。

如果對深度學習的過程細節,有更清晰的瞭解,我們就可以改善卷積這種蠻力的做法,用更少的訓練數據,訓練更輕巧的深度學習模型。

卷積的過程,是蠻力的過程,它對相鄰的點,無一遺漏地不分青紅皂白地進行卷積處理。

如果我們對點與點之間的關聯關係,有更明確的瞭解,就不需要對相鄰的點,無一遺漏地不分青紅皂白地進行卷積處理。只需要對有關聯的點,進行卷積或者其它處理。

根據點與點之間的關聯關係,構建出來的網絡,就是廣義圖譜。廣義圖譜的結構,通常比 CNN 網絡更加簡單,所以,需要的訓練數據量也更少。

三、遷移學習和推理

用當今的 CNN,可以從大量圖片中,識別某種實體,譬如貓。

但是,如果想給識別貓的 CNN 擴大能力,讓它不僅能識別貓,還能識別狗,就需要額外的識別狗的訓練數據。這是遷移學習的過程。

能不能不提供額外的識別狗的訓練數據,而只是用規則這樣的方式,告訴電腦貓與狗的區別,然後讓電腦識別狗?這是推理的目標。

如果對深度學習過程有更精準的瞭解,就能把知識和規則,融進深度學習。

從廣義範圍說,深度學習和知識圖譜,是機器學習陣營中諸多學派的兩大主流學派。迄今為止,這兩大學派隔岸叫陣,各有勝負。如何融合兩大學派,取長補短,是困擾學界很久的難題。把深度學習延伸到圖譜處理,給兩大學派的融合,帶來了希望。

四、空間和時間的融合,像素與語義的融合

視頻處理,可以說是深度學習的最高境界。

  1. 視頻處理融合了圖像的空間分割,圖像中實體的識別,實體對應的語義理解。
  2. 多幀靜態圖像串連在一起形成視頻,實際上是時間序列。同一個實體,在不同幀中所處的位置,蘊含著實體的運動。運動的背後,是物理定律和語義關聯。
  3. 如何從一段視頻,總結出文本標題。或者反過來,如何根據一句文本標題,找到最貼切的視頻。這是視頻處理的經典任務,也是難度超大的任務。

參考文獻

  1. Relational inductive biases, deep learning, and graph networks,https://arxiv.org/abs/1806.01261
  2. Graph neural networks: A review ofmethods and applications,https://arxiv.org/abs/1812.08434
  3. A Comprehensive Survey on Graph Neural Networks,https://arxiv.org/abs/1901.00596
  4. Graph nets,https://github.com/deepmind/graph_nets
  5. Neural message passing for quantum chemistry,https://arxiv.org/abs/1704.01212
  6. Non-local neural networks,https://arxiv.org/abs/1711.07971


分享到:


相關文章: