1. 程式人生 > >【深度學習】圖網路——悄然興起的深度學習新浪潮

【深度學習】圖網路——悄然興起的深度學習新浪潮

【深度學習】圖網路——悄然興起的深度學習新浪潮

 

 

https://mp.weixin.qq.com/s/mOZDN9u7YCdtYs6DbUml0Q

 

 

現實世界中的大量問題都可以抽象成圖模型(Graph Model),也就是節點和連邊的集合。從知識圖譜到概率圖模型,從蛋白質相互作用網路到社交網路,從基本的邏輯線路到巨大的Internet,圖與網路無處不在。然而傳統的機器學習方法很難處理圖網路資訊,這種缺陷大大限制了深度學習的應用領域。於是人們提出了圖網路(Graph Network),一種基於圖結構的廣義人工神經網路,它可以直接對真實問題進行建模,又可以利用自動微分技術進行學習,甚至有望將多個傳統人工智慧領域進行融合。

 

本次AI&Society活動邀請了北京師範大學教授、集智俱樂部創始人張江及彩雲科技首席科學家肖達對圖網路的原理、應用領域,以及圖網路近期兩個火熱的子領域

——關係推理和自注意力進行了分享。

本文是對張江老師和肖達老師演講的回顧,掃描海報中的二維碼即可觀看錄播。PC端也可以輸入網站連結進行觀看:

http://campus.swarma.org/gpac=381

 

 

 

張江:Graph Network and Beyond

 

 

 

深度學習中,什麼是最重要的?

 

 

我們知道,深度學習已經在很多領域都有成功的應用,比如影象,語音等,那麼在深度學習中最本質的因素是什麼呢?

 

 

實際上,我們可以這樣理解:在以前,人類的知識被我們通過程式設計寫成程式,處理問題。而現在,我們將人類的知識編碼到神經網路中,它們變成了隱藏於網路結構、節點和大量資料中的資訊。

 

從更深層次來看,我們可以將神經網路認為是一種可微分的程式設計,例如深度神經網路可以用背後的計算圖機制作為支撐,進行反向傳播。實際上,我們將符號計算與數值計算在神經網路優化過程中進行了融合。所以我們可以進行求導,求微分的操作。那麼這就意味著,深度學習可以被應用於任何可微分的領域,甚至我們可以暢想:在未來,所有的可微分的事物都是可學習的。

 

深度學習的廣泛應用

 

 

 

深度學習是怎麼“玩”起來的?

 

 

讓我們來回顧深度學習的運轉過程:人類設定一個架構,為機器設定一個評價標準,接下來就可以讓神經網路自動去學習,完成這個優化目標。

 

例如,影象中具有大量的平移和旋轉不變性,而人類設定了卷積神經網路這種可提取多層次資訊的架構,很好地將影象中的深層次資訊學出來。對時間序列,我們也可以設計RNN的架構(及其變體)來學習到時間序列中的隱藏資訊。當然,我們還有類似於Attention機制等更先進的架構去關注資料中的關聯關係,又或者Deepmind推出的“可微分計算機”——它與馮諾伊曼的計算機體系完全不同,這可以讓我們去學習整個馮諾伊曼的計算機體系。

 

 

圖網路

 

 

當我們放眼大千世界事,我們會發現影象、語音、語言資料很規則,很方便處理,但很少。更多的情況下,我們有大量的非歐式的圖網路資料,例如社交網路、腦影響網路等。能否對圖網路進行處理呢?答案是顯然的。

 

可微分計算機

 

在這篇最近非常火熱的綜述文章:relational inductive biases, deep learning, and graph networks 中,已經提到了一種框架將深度學習與貝葉斯網路進行了融合,其結果是產生了一種具有推理能力的概率圖模型。但不僅如此,他們還提出了更多思路去結合深度學習與圖網路,指明瞭在圖網路領域應用深度學習的清晰方向。

 

在圖網路中,有很多例子可以完成對現實世界的抽象。什麼是圖網路呢?本質上,它是對神經網路的擴充,我們知道,神經網路的結構很特殊,而他的學習方式也通過反向傳播進行連邊上的權重調整。而圖網路則可以從多個角度對神經網路進行擴充,具體而言,任何一個圖網路都包含節點、連邊、全域性資訊這樣三個大的資訊單元,每個單元都可以被表徵為一個向量。相比於深度學習只能更新權重,圖網路的學習發生於每一個環節上,包括對連邊狀態的更新、節點狀態的更新和全域性資訊的更新。在做完前饋運算之後,它也會進行反向傳播學習,因為它的每一步計算都是可微分的。

 

我們可以這樣理解圖網路的學習能力:圖網路將前饋的思路放在了每一個環節,連邊、節點、全域性資訊就都可以在反饋過程中被調整,這就使得網路的整體架構變得可學習。

 

網路的節點、連邊和全域性資訊

 

前文論文中提到的所謂的inductive bias,指的是人類對世界的先驗知識,對應在網路中就是網路結構。圖網路中的網路結構是固定不變的,我們可以將其理解為工程師放進去的一種先驗的“偏見”,如果工程師認為A事件導致B事件發生,那麼他就會在A、B之間放上一條連邊,這就體現了A、B之間的因果關係,我們稱之為推理能力。

 

 

圖網路可以做什麼?

 

 

例如我們將機械狗作為一個物理上的多體框架放在圖網路上進行處理,首先,圖網路可以將機械狗的每個機械結構作為一個實體,機械結構之間由關節相連,關節就可以被看做連邊,而節點和連邊之上都是帶有資訊的,這樣我們就獲得了一份圖網路資料。每個節點上都可以有一組向量,而機械狗的運動就可以由所有的節點向量和連邊向量來表示。當然,我們也可以加入更多的全域性資訊,例如從巨集觀狀態上觀察到的機械狗的運動資訊等等。

 

用圖網路表示機械狗

 

因此,我們對機械狗從各個角度進行了可微分描述,也建立了表示這些資訊的圖網路,接下來我們就可以學習機械狗的運動模式了。

 

怎樣進行更高層的資訊整合呢?在基本的圖網路構建完成之後,我們可以在高層次對資訊進行處理來完成更復雜的任務。例如,我們可以將多個圖網路疊加在一起(每一個圖網路都是同構的,但它們表徵的資訊並不同),這樣我們就可以構建出多層的圖網路,從而擬合複雜的運算過程。我們也可以將不同時間的圖網路狀態放入RNN架構中,從而完成對網路狀態的預測,甚至我們可以將網路的輸出作為自己的輸入,進行後續狀態的預測和生成。

 

圖網路的高層資訊整合

 

除了物理系統,我們也完全可以將這一套原理放在更巨集觀的架構之下,例如,我們可以用這一種框架去學習網路上的動力學過程,例如在社交網路上,每個人都是節點,而人們在社交網路上的觀點是怎樣傳播的?在交通流中,交通訊息(堵車程度,車速資訊等)又該怎樣傳播?這一類問題都可以通過圖網路來解決。

 

 

圖卷積

 

 

為了能夠更好的整合圖網路資訊,我們可以對圖網路進行卷積操作,具體來說,我們可以應用圖訊號處理領域知識,對圖資料進行傅立葉變換,將卷積的定義擴充套件到圖資料上。最終,我們可以通過圖網路上的簡單矩陣相乘和線性對映來表示圖卷積,從而對每一組向量的資訊進行深層次提取。

 

對圖網路進行卷積之後,我們很意外的發現,圖網路竟然在完全隨機化的初始條件下,完成了在表徵空間下的標籤聚類。實際上,這正是因為圖卷積操作就是在捕獲圖網路上的鄰域資訊,而鄰域資訊也被包含於節點和連邊的數值中。在經過非線性對映之後,我們可以將其理解為對各種特徵進行強化和分散處理,使特徵更為明顯,從而更好地完成聚類。

 

使用圖網路進行聚類

 

除此之外,我們還可以通過半監督學習來預測節點資訊:通過已知節點的資訊和圖卷積方法執行圖網路,標籤資訊就會在圖資料上擴散,然後我們再用已知節點作為監督資訊去調節,這就讓整個網路上都擁有了標籤資訊,其準確度是非常高的,有些甚至可以超過80%。

 

此外,我們自己的研究組還做了網路上的SIR模型(傳染病模型),這個模型的運作規律是:每個人有健康、染病和恢復三個狀態,在每個時間步中,每個人都有一定的概率被他的鄰居感染,被感染者也有一定的概率恢復健康。

 

圖網路在SIR模型上的應用

 

在SIR的過程中,我們可以使用圖網路進行學習,用當前時刻的狀態去預測下一時刻的狀態,其預測效果是非常好的。更有意思的是,我們可以用已知節點的資訊去預測未知節點的資訊,在網路結構狀態已知,部分節點狀態未知的情況下,所有的節點資訊都可以被比較準確地恢復。

 

 

圖網路上的注意力

 

 

除了卷積之外,圖網路上的注意力也是一個有趣的研究方向,我們知道注意力機制現在已經被應用於影象、語言資訊的處理中,現在注意力機制也被應用於圖網路資料的處理中來。

 

在圖卷積網路中,我們可以將注意力結構內嵌其中,在每次更新節點資訊時,我們需要計算出網路的注意力、注意力表示節點和節點之間的關係權重,我們可以將其理解為每個節點在進行更新的過程中更應該關注誰,誰對這個節點來說更重要。

 

 

使用圖網路進行融合推理

 

 

我們知道,貝葉斯網本身表示了隨機變數間的因果關係。通常情況下,貝葉斯網路的圖結構需要被人為建立,並且給出節點和連邊的概率分佈。在深度學習出現之前,我們用隱馬爾可夫過程去完成語音的學習,我們會使用到信念傳播演算法。但現在我們可以從新的角度去學習:將節點和連邊對映為圖網路,在圖網路上進一步學習節點和連邊的關係的運算。

 

貝葉斯網路之父Judea Pearl和他的貝葉斯網路

 

如果圖結構以及他們每個節點和連邊上的概率分佈都是可學習的,那麼只要有部分節點的資料觀測資訊,我們就可以推測出整個網路的觀測資訊,而且這是很有可能做到的。仔細看來,這個過程很有可能蘊藏著遠比其看起來更深刻的意義:

 

具體而言,現在的技術可以做到對不可微分領域的學習,這與傳統的深度學習非常不同,我們不需要結構是可微分的,這就大大拓展了深度學習的可應用範圍。怎樣連線不可微的部分呢?我們可以通過Policy Gradient演算法完成這樣的連線。例如,我們有一個複雜的神經網路,在最後一步我們需要按照概率做一個選擇,而概率選擇會將梯度資訊的中斷。而Policy Gradient則可以通過概率期望替代評價函式,並非每次都獲得回報,而是通過多次取樣的期望收益進行反向傳播。這就使得離散的選擇變成了可傳遞梯度的架構。

 

使用Policy Gradient連線中斷的梯度資訊

 

Policy Gradient模型也是有一些弱點的:他們很難優化和收斂。除Policy Gradient之外,最近也有一種新興技術:Gumbel Softmax,他們會在選擇的過程中加入Gumbel分佈的隨機數,導致可以獲得梯度不斷的概率分佈資訊,最終的梯度就可以被反向傳播回來。這就使得我們可以在經典的Softmax操作上加入Gumbel隨機數,並通過引數調節,使得梯度並不中斷,從而連線中斷的微分操作。

 

總之,現在的深度學習領域也可以被擴大到任何資料結構上,而且在更多的結構上,人們都已經有方法去解決可微分、可傳遞梯度的問題,此外,我們還可以看到,現在的圖網路應用已經擴充套件到各種領域,很多原本各自平行發展的架構,現在都已經可以通過圖網路進行融合,人們將原來的先驗資訊和圖網路深度學習方法進行融合,這使得“任何事物都是可學習的”變成了可能。

 

 

 

 

肖達:From Relational Reasoning to Memory and Attention

 

 

 

什麼是關係推理問題:

 

 

我們可以通過幾個例子直接感受關係推理是什麼:

 

在1917年,認知心理學家做了一個實驗,給一隻母雞兩個顏色紙(淺色和深色),其中淺色放上稻穀,深色不放稻穀,經過訓練,母雞可以正確的選擇淺色的紙。接下來,我們將深色的紙變為白色。這時母雞竟然會選擇白色,而不是有稻穀的淺色。

 

其中的一種解釋是,母雞會學了紙的顏色與是否有稻穀的抽象關係:淺色有稻穀,而深色沒有稻穀,白色是最淺的顏色,所以母雞會選擇白色:

 



小雞的“關係推理”

 

在人類的例子中,我們可以進行更復雜的推理。例如Bob比Tom高,Tom比Peter高,那麼我們可以自然地計算出,Tom比Peter高。這個推理雖然並不複雜,但需要人類理解其中的抽象關係,才能夠正確地完成推理過程(實際上,通常只有三四歲以上的小朋友才會逐步具備這種能力):

 



用關係推理來理解誰更高

 

在語言學習的領域,研究發現孩子在學習語言的時候,具體的實體將會最早地被學習到(例如蘋果,桌椅),而關係(例如叔叔)則會被稍晚學習到,而更復雜的if、otherwise等關係則要等到八歲才能夠被正確地學習和應用。

 

在科學發現中,很多科研成果也是通過類似的類比推理的方法獲得而來。盧瑟福認為原子和電子有吸引和旋轉的關係——就像星星和太陽一樣,他將太陽和星星的關係對映到原子核和原子上,這種對映我們稱之為保結構對映。更具體來看,太陽和星星之間有這吸引關係,這種關係的推理也被對映到原子和電子中去——這意味著我們不但映射了位置關係,還映射了關於關係的關係(引力關係解釋了位置關係)。

 

 

自然語言處理中的關係推理

 

 

 

在自然語言理解中,指代消解是一個很有趣的挑戰,也是最能體現關係推理能力的場景之一,如圖,其中的it到底指的是什麼?這對於人類來說不難回答,但現有的深度學習結構並不能很好地處理其中的問題:

 



自然語言中的指代消解

 

而在關係推理的難題:智力測驗中,我們會需要完成大量的規律、關係的探索和發現,如圖:

 



複雜的關係推理問題

 

這個問題的做法是:從縱向來看,每一個方框都要比上一個方框中的五角星多一個,所以答案是A,可以看到,這個過程需要大量的關係推理,即使是人類完成這個問題也並不容易。

 

當前,我們已經通過深度學習在影象、語音等領域取得了很好的成就,但符號推理領域還尚未被攻克。在這兩個領域之間很可能就是關係推理,到現在為止,人們對關係推理的嘗試還沒有取得具有大量突破性的進展。而今天分享的圖網路演算法是很有可能幫助我們在這個領域取得一些突破。

 

 

Memory & Attention

 

 

 

在翻譯領域中,傳統的編碼-解碼模型會用LSTM對句子進行編碼和翻譯。加入了Attention機制之後,每次生成一個目標語言的單詞的時候,Attention機制都會關注到原文中的哪個位置更為重要,這就是Attention機制的原理。所以,我們也可以將Attention機制看做從Memory中的讀操作。

 

通過Attention機制,我們可以解決很多實際問題,例如在描述大量實體狀態的複雜問答過程中,我們可以通過Attention機制去關注到一個問題的多個對應答案,經過多次運算(也可以被稱之為多步推理)之後,就可以將每一步需要關注的東西學到,從而找到最關鍵的答案。



使用Attention機制進行多步推理

 

在上圖中:Attention機制在不同的迴圈步數中關注到了John的動作和位置資訊,從而給出了正確答案。

 

 

 

Relation Network

 

 

什麼是Relation Network呢,在傳統的網路中,我們可以直接通過全連線網路對輸入進行對映並輸出。當然,我們也可以加上一些先驗知識,對每個實體單獨進行對映,然後在進行全連線的運算。更進一步,如果我們認為實體之間兩兩是有關係的,那麼我們可以將實體的兩兩之間組成一個聯結對,然後再分別進行對映,這個對映過程就是在檢驗實體之間的關係是否存在,並試圖量化實體之間的關係。

 

具體而言,Relation Network可以被應用於很多地方,例如用圖片回答問題:

Relation Network

 

在這個問題中,我們可以讓Relation Network去將任意兩個Object兩兩組合,形成聯結對,再與問題的編碼相結合,通過線性對映形成對問題和答案的表示,最終再對映為對問題的解答。選擇問題答案的時候,我們同樣可以將每個答案和問題去拼接,通過是否有關的對映之後再對映為最終答案。

 

回到前文中的智商測驗的問題上,如果我們把智商檢測問題交給機器處理,我們發現如果用CNN或者ResNet去處理的話,其效果並不如使用Relation Network進行處理達到的效果更優。Relation Network的處理該問題的核心原理是:把每個圖片作為一個實體,將圖片和備選答案也作為實體與剩下的給定圖片進行組合,則可以一個比較大的概率發現其中的隱藏關係。

 

總體而言,一般的圖網路的結構具有連邊的更新、節點的更新和全域性狀態的更新這三步。在relation network中,我們對問題進行了化簡:節點更新被丟棄,我們將直接進行連邊更新和全域性更新,其優點是結構相對簡單,尤其是可以被模組化和插裝。(如果將模組加入到CNN網路中,CNN網路也就可以擁有推理能力)但他也有一個缺點:由於任意實體之間都要建立聯結對,所以其計算複雜度是很高的。

 

 

Self-Attention

 

 

 

self attention最早被應用於翻譯領域,我們可以將其理解為類似於卷積的一種結構。對於卷積來說,我們會首先定義視窗大小,然後對視窗內的向量進行卷積操作。而self attention可以將這個過程變為動態的,我們可以認為她可以從任何位置抓取資訊用於運算,而具體抓取資訊的位置就是Attention 機制學習得到的。

 

因此,Self attention可以突破視窗大小的限制,完成很多長程連線上的資訊提取,例如可以用self attention解決前文提到的指代消解問題:在self attention結構進行運算時,我們可以看到it在不同的語境下,關注到了不同的實體。



使用self attention解決指代消解問題

 

 

Transformer模型

 

 

 

Transformer模型是一個內嵌了self attention模型的網路架構,其目的是做出可以解決大量語言中的問題的通用模型。Transformer是怎樣運作的呢?

 

假設一句話中有六個詞,分別被稱為X0,X1...X5。self attention需要在這六個詞語之間建立聯絡,首先,每個詞語將通過線性對映被對映為一個我們稱為key 和value的向量,每一個query需要和其他key進行向量點積,其點積結果就可以被看作相關度,最終我們可以得到每個詞語和其他哪個詞語更為相關。

 

Transformer模型

 

在詞語的相關度被建立之後,我們就可以基於相關關係去做資訊傳播了,多次重複這個過程,我們就可以對節點上的資訊進行更新。值得一提的,是在self attention的結構中,我們預設是沒有位置資訊的,因此我們常常需要在處理時間序列時手動加入一些位置資訊。

 

在翻譯模型中,我們會在輸入端和輸出端多次進行前文的操作,即可獲得更好的詞語之間的關係結果,從而達到更好的翻譯效果。

 

在RNN中,每個詞都是按順序輸入的,因此任何兩個節點的關係都是需要n步運算,在CNN中,由於多層的資訊處理是樹狀結構,因此兩個節點的距離是log(n)。而在self attention中,由於任何兩個詞語之間都有聯絡,所以它們建立關係只需要一步,在長文字序列中,長程連線上的資訊經過越多步傳播就越容易丟失,所以Transformer模型中的self attention架構可以對關係,尤其是長程關係進行更好的提取。

 

通過對基於self attention模型的Transformer模型的預訓練,人們可以根據少量的遷移就能在不同的語言任務(閱讀理解,翻譯,情感計算等)中都取得很大的進展。

 

總體而言,傳統的注意力機制建立的關係是1對1的,而Relation Network建立的關係是多對多的關係,self attention建立的關係則是1對k的:這意味著每個節點(詞語)可以對應k個關係,k是可學習的引數。self attention的一個基本的模式是:建立全域性關聯,交換資訊,區域性整合,建立新的全域性關聯……迴圈往復這個過程,self attention架構將逐步準確的找到節點之間的關係資訊,而無序關注節點的空間距離。