作者:劉才權(quán) 編輯: 晟 沚 前 言 深度學(xué)習(xí)的發(fā)展日新月異,從經(jīng)典的深度網(wǎng)絡(luò)(DNN、CNN、RNN)到GAN、強(qiáng)化學(xué)習(xí)。深度學(xué)習(xí)覆蓋的應(yīng)用場(chǎng)景越來(lái)越豐富。今天介紹的圖神經(jīng)網(wǎng)絡(luò)是另一類深度學(xué)習(xí)方法。雖然,圖神經(jīng)網(wǎng)絡(luò)也可以納入深度學(xué)習(xí)的范疇,但它有著自己獨(dú)特的應(yīng)用場(chǎng)景和算法實(shí)現(xiàn),對(duì)初學(xué)者并不算太友好。這里主要是對(duì)圖神經(jīng)網(wǎng)絡(luò)做一個(gè)入門性質(zhì)的介紹,梳理圖神經(jīng)網(wǎng)絡(luò)中的一些核心點(diǎn),方便后續(xù)的進(jìn)一步深入研究。本文會(huì)從下面幾個(gè)方面逐步展開(kāi)。
01 圖神經(jīng)網(wǎng)絡(luò)優(yōu)勢(shì)為什么要引入圖神經(jīng)網(wǎng)絡(luò)呢?使用經(jīng)典的深度學(xué)習(xí)方法不能解決嗎?這里舉一個(gè)引文網(wǎng)絡(luò)的簡(jiǎn)單例子。 D1~D7是7篇文章,分為兩個(gè)主題:生物和化學(xué)。其中,D1、D2、D6、D7的主題為生物,D3、D5的主題為化學(xué)。箭頭被指向的文章,說(shuō)明這篇文章被引用了,比如,D7引用了D3?,F(xiàn)在,從上面的信息,推斷下D4的主題是什么?很顯然,D4大概率是生物主題。 我們的推斷很大方面依賴于文檔間的引用特征。進(jìn)一步說(shuō),我們可以把文檔看出節(jié)點(diǎn),引用看出邊,我們的推斷主要來(lái)源于這個(gè)圖的結(jié)構(gòu)信息。對(duì)于深度模型如何有效使用這些圖結(jié)構(gòu)信息呢?經(jīng)典的深度學(xué)習(xí)方法(比如DNN、RNN、CNN)能夠有效的處理原始的輸入,比如語(yǔ)音、圖片、文本,但對(duì)于上面的圖結(jié)構(gòu)信息,就不是很有效了。這樣就引入了本文的主角-圖神經(jīng)網(wǎng)絡(luò)。圖神經(jīng)網(wǎng)絡(luò)的應(yīng)用場(chǎng)景非常廣泛,比如,社交網(wǎng)絡(luò)(用戶節(jié)點(diǎn),關(guān)系為邊)、電子購(gòu)物(用戶為和商品為節(jié)點(diǎn),用戶與商品之間的聯(lián)系為邊)、化學(xué)分子(原子為節(jié)點(diǎn),化學(xué)鍵為邊)。 02 圖神經(jīng)網(wǎng)絡(luò)中的圖提到圖大家會(huì)想到兩類圖:
因?yàn)榇蠹业闹攸c(diǎn)是機(jī)器學(xué)習(xí),第一感覺(jué)會(huì)覺(jué)得是概率圖模型中的圖,比如貝葉斯網(wǎng)絡(luò)、馬爾科夫隨機(jī)場(chǎng)。實(shí)際上,圖神經(jīng)網(wǎng)絡(luò)中使用的是經(jīng)典數(shù)據(jù)結(jié)構(gòu)與算法中的圖。 圖由頂點(diǎn)(Vertex)和連接頂點(diǎn)的邊(Edge)構(gòu)成。頂點(diǎn)和邊之間的關(guān)系可以用鄰接矩陣(A)表示,兩個(gè)頂點(diǎn)間有邊標(biāo)識(shí)為1,否則為0。如上圖所示,圖G=(V,E)。其中,V={v1,v2,v3,v4,v5},E={(v1,v2),(v1,v3),(v2,v4),(v3,v4),(v4,v5)}。關(guān)于更多關(guān)于圖的知識(shí),可以參考《數(shù)據(jù)結(jié)構(gòu)》、《離散數(shù)學(xué)》或者《圖論》中的相關(guān)內(nèi)容,但圖本身的知識(shí)也是博大精深,不建議深入學(xué)習(xí),只了解圖相關(guān)的基本概念即可。這里可以參考《圖神經(jīng)網(wǎng)絡(luò)介紹-Introduction to GNN》:https://www.bilibili.com/video/av62661713?from=search&seid=6134263793308325331 只看前面部分即可。 03 圖神經(jīng)網(wǎng)絡(luò)的基本框架神經(jīng)網(wǎng)絡(luò)的一個(gè)特點(diǎn)就是能將原始的輸入變成稠密向量表示,比如將字/詞轉(zhuǎn)化為字/詞向量(Word2Vec),將文章轉(zhuǎn)化為篇章向量(Doc2Vec),將圖片轉(zhuǎn)化為圖片向量然后進(jìn)行分類等。很自然針對(duì)于圖結(jié)構(gòu)數(shù)據(jù),神經(jīng)網(wǎng)絡(luò)的一個(gè)目標(biāo)也是將其轉(zhuǎn)化為向量。而具體來(lái)說(shuō)就是:
圖G=(V,E),很顯然,圖神經(jīng)網(wǎng)絡(luò)就是把整個(gè)圖G、每個(gè)節(jié)點(diǎn)V、每條邊E轉(zhuǎn)化為稠密向量。當(dāng)然沒(méi)必要每次都把G、V、E都進(jìn)行向量化,哪部分向量化取決于實(shí)際的應(yīng)用場(chǎng)景。一般來(lái)說(shuō)主要包含三類任務(wù): 1.節(jié)點(diǎn)層面任務(wù)比如文章最開(kāi)始提到的引文網(wǎng)絡(luò)中,節(jié)點(diǎn)論文的分類,社交網(wǎng)絡(luò)中用戶標(biāo)簽的分類等。此時(shí),主要關(guān)注節(jié)點(diǎn)和邊層面的特征。 2.邊層面任務(wù)比如社交網(wǎng)絡(luò)中,將用戶作為節(jié)點(diǎn),用戶之間的關(guān)注關(guān)系建模為邊,通過(guò)邊預(yù)測(cè)實(shí)現(xiàn)社交用戶的推薦。此時(shí),主要關(guān)注節(jié)點(diǎn)和邊的特征。 3.圖層面的任務(wù)比如對(duì)藥物分子的分類。此時(shí),任務(wù)不依賴于某個(gè)節(jié)點(diǎn)或某條邊的屬性,而是,需要考慮整個(gè)圖的信息。 04 圖嵌入、圖神經(jīng)網(wǎng)絡(luò)、圖卷積的關(guān)系 查看圖神經(jīng)網(wǎng)絡(luò)的資料,最常見(jiàn)圖嵌入(Graph Embedding)、圖神經(jīng)網(wǎng)絡(luò)(GNN)、圖卷積(GCN)這三個(gè)詞,同時(shí),也很容易迷惑:到底這三個(gè)說(shuō)的是三個(gè)東西還是一個(gè)東西?大家平時(shí)說(shuō)的圖網(wǎng)絡(luò)指的是哪一個(gè)?這三個(gè)有什么聯(lián)系? 圖神經(jīng)網(wǎng)絡(luò)是一個(gè)很寬泛的概念,圖神經(jīng)網(wǎng)絡(luò)=圖+神經(jīng)網(wǎng)絡(luò)。我們通俗講的圖神經(jīng)網(wǎng)絡(luò)主要指GNN和GCN(類似于深度學(xué)習(xí)網(wǎng)絡(luò)中的前饋全連接DNN和CNN)。圖嵌入發(fā)展較早,在早期是一個(gè)相對(duì)獨(dú)立的領(lǐng)域,關(guān)注的問(wèn)題大致分為4類:
方法主要分為三類:
其中,基于深度學(xué)習(xí)的圖嵌入可以劃到圖神經(jīng)網(wǎng)絡(luò)的范疇。 05 圖嵌入 圖嵌入發(fā)展較早,在早期是一個(gè)相對(duì)獨(dú)立的領(lǐng)域。具體可以參考《圖嵌入(Graph embedding)綜述》: https://zhuanlan.zhihu.com/p/62629465。 圖嵌入比較經(jīng)典的是DeepWalk,基本思想類似詞向量訓(xùn)練,具體可以參考《【論文筆記】DeepWalk》: https://zhuanlan.zhihu.com/p/45167021。 06 圖神經(jīng)網(wǎng)絡(luò) GNN比較經(jīng)典的是這篇《The Graph Neural Network Model》: https://repository./cgi/viewcontent.cgi?article=1000&context=vprd_ja 核心思想: 07 圖卷積網(wǎng)絡(luò) GCN分為譜域GCN(Spectral)和空域GCN(Spatial),其中,譜域GCN發(fā)展較早,但主要思想基于圖的信號(hào)處理,理論方面較難理解,很多初學(xué)者覺(jué)得圖網(wǎng)絡(luò)對(duì)數(shù)學(xué)要求較高,多半是直接從譜域GCN切入的。實(shí)際上對(duì)于圖網(wǎng)絡(luò)的初學(xué)者,建議可以先跳過(guò)譜域GCN,等對(duì)圖網(wǎng)絡(luò)有較好的理解后,再回過(guò)頭來(lái)看譜域的GCN。引用一段不錯(cuò)的學(xué)習(xí)思路:
08 空域GCN 經(jīng)典的空域GCN是這篇《Learning Convolutional Neural Networks for Graphs》: http://proceedings./v48/niepert16.pdf 可以參考《論文筆記:Learning Convolutional Neural Networks for Graphs》: https://zhuanlan.zhihu.com/p/27587371 特別是論文對(duì)應(yīng)的PPT講解,非常有參考價(jià)值《Learning Convolutional Neural Networks for Graphs-PPT》: http://www./icml2016_slides.pdf 09 譜域GCN 經(jīng)典的譜域GCN是這篇《Semi-Supervised Classification with Graph Convolutional Networks》: https:///pdf/1609.02907.pdf 可以參考《Semi-Supervised Classification with Graph Convolutional Networks閱讀筆記》: https://zhuanlan.zhihu.com/p/31067515 譜域GCN的思想類似信號(hào)處理中的多級(jí)濾波器,核心點(diǎn)就是時(shí)域的卷積等于頻域的乘積。EE方向的同學(xué)大多學(xué)習(xí)過(guò)《信號(hào)與系統(tǒng)》,對(duì)傅里葉時(shí)頻變換,濾波器等概念要熟悉些。但對(duì)于計(jì)算機(jī)/軟件的同學(xué)可能相對(duì)陌生?!缎盘?hào)與系統(tǒng)》是同樣是一個(gè)獨(dú)立的方向,涉及到的知識(shí)龐大又復(fù)雜。像圖一樣,只關(guān)心最核心的幾點(diǎn),比如:
不建議完整的深入整個(gè)領(lǐng)域。 10 應(yīng)用場(chǎng)景 圖神經(jīng)網(wǎng)絡(luò)的應(yīng)用場(chǎng)景非常豐富,在自然語(yǔ)言處理,圖像/視頻、推薦的很多方面都有落地場(chǎng)景。自己的工作方向是自然語(yǔ)言處理,這里放兩個(gè)在NLP場(chǎng)景的應(yīng)用例子(都是關(guān)于文本內(nèi)容審核的): 阿里的: 《Spam Review Detection with Graph Convolutional Networks》: https:///pdf/1908.10679.pdf Facebook的: 《Abusive Language Detection with Graph Convolutional Networks》:https:///pdf/1904.04073.pdf 11 圖網(wǎng)絡(luò)關(guān)系梳理 前面的內(nèi)容只是作為初學(xué)者,梳理了一些圖網(wǎng)絡(luò)中最為基礎(chǔ)的內(nèi)容,實(shí)際上圖網(wǎng)絡(luò)涉及的知識(shí)還是比較復(fù)雜的。 這張圖來(lái)自2019年11月,唐杰老師在清華大學(xué)舉行的圖形圖像前沿知識(shí)學(xué)習(xí)班的分享《圖神經(jīng)網(wǎng)絡(luò)及認(rèn)知推理》。 ppt 鏈接:https://pan.baidu.com/s/1Q3tX6wnQYcvBV3eSymbrKg 密碼:8thm 嗶哩嗶哩上有視頻,《唐杰-圖神經(jīng)網(wǎng)絡(luò)及認(rèn)知推理-圖神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)班》:https://www.bilibili.com/video/av77934956?from=search&seid=6134263793308325331 這里只想引用一下其中的一頁(yè)P(yáng)PT,來(lái)梳理不同圖神經(jīng)網(wǎng)絡(luò)直接的關(guān)系,唐杰的這次分享的重點(diǎn)是自己研究方向,而不是介紹不同圖神經(jīng)網(wǎng)絡(luò)的關(guān)系和歷史,這個(gè)要注意下。 12 學(xué)習(xí)資料目前圖神經(jīng)網(wǎng)絡(luò)處于蓬勃發(fā)展階段,適合初學(xué)者的系統(tǒng)課程,目前還沒(méi)看到。比較合適的方式是,先通過(guò)論文綜述的方式梳理清楚圖神經(jīng)網(wǎng)絡(luò)的整體框架,然后,結(jié)合具體論文進(jìn)行深入。同時(shí),可以參考網(wǎng)上的博客和視頻進(jìn)行拓展。這里推薦一些學(xué)習(xí)資料: 論文綜述 目前較推薦的有這三篇: 《Graph Neural Networks: A Review of Methods and Applications》: https:///pdf/1812.08434.pdf 《Deep Learning on Graphs: A Survey》: https:///pdf/1812.04202.pdf 《A Comprehensive Survey on Graph Neural Networks》: https:///pdf/1812.08434.pdf 機(jī)器之心對(duì)這三篇綜述還有專門的報(bào)道,《圖神經(jīng)網(wǎng)絡(luò)概述第三彈:來(lái)自IEEE Fellow的GNN綜述》:https://zhuanlan.zhihu.com/p/54241746 圖書 《深入淺出圖神經(jīng)網(wǎng)絡(luò):GNN原理解析》 目前唯一的中文版圖書,總體感覺(jué),是非圖網(wǎng)絡(luò)部分寫的不錯(cuò)(手動(dòng)捂臉)。從譜域GCN開(kāi)始切入,作為參考還是可以的。 視頻 北師大的集智學(xué)園:https://space.bilibili.com/238664541?spm_id_from=333.788.b_765f7570696e666f.2 中科院的人工智能前沿講習(xí):https://space.bilibili.com/388690539?spm_id_from=333.788.b_765f7570696e666f.2 這兩個(gè)主頁(yè)上有不少圖網(wǎng)絡(luò)相關(guān)的視頻,視頻質(zhì)量也不錯(cuò)。 13 參考文獻(xiàn) 《圖嵌入(Graph embedding)綜述》: https://zhuanlan.zhihu.com/p/62629465 《【論文筆記】DeepWalk》:https://zhuanlan.zhihu.com/p/45167021 《The Graph Neural Network Model》: https://repository./cgi/viewcontent.cgi?article=1000&context=vprd_ja 《GNN 簡(jiǎn)介和入門資料》:https://zhuanlan.zhihu.com/p/58792104 《Learning Convolutional Neural Networks for Graphs》: http://proceedings./v48/niepert16.pdf 《Learning Convolutional Neural Networks for Graphs-PPT》: http://www./icml2016_slides.pdf 《論文筆記:Learning Convolutional Neural Networks for Graphs》: https://zhuanlan.zhihu.com/p/27587371 《Semi-Supervised Classification with Graph Convolutional Networks》: https:///pdf/1609.02907.pdf 《Semi-Supervised Classification with Graph Convolutional Networks閱讀筆記》:https://zhuanlan.zhihu.com/p/31067515 《Abusive Language Detection with Graph Convolutional Networks》: https:///pdf/1904.04073.pdf 《Spam Review Detection with Graph Convolutional Networks》: https:///pdf/1908.10679.pdf 《Graph Neural Networks: A Review of Methods and Applications》: https:///pdf/1812.08434.pdf 《Deep Learning on Graphs: A Survey》: https:///pdf/1812.04202.pdf 《A Comprehensive Survey on Graph Neural Networks》: https:///pdf/1812.08434.pdf 圖神經(jīng)網(wǎng)絡(luò)概述第三彈:來(lái)自IEEE Fellow的GNN綜述》: https://zhuanlan.zhihu.com/p/54241746 嗶哩嗶哩上有視頻,《唐杰-圖神經(jīng)網(wǎng)絡(luò)及認(rèn)知推理-圖神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)班》: https://www.bilibili.com/video/av77934956?from=search&seid=6134263793308325331 《圖神經(jīng)網(wǎng)絡(luò)介紹-Introduction to GNN》: https://www.bilibili.com/video/av62 本文從初學(xué)者的角度,描述了圖神經(jīng)網(wǎng)絡(luò)的基本概念、經(jīng)典模型、應(yīng)用場(chǎng)景和學(xué)習(xí)思路。同時(shí),提供了較為豐富的參考資料,希望能為準(zhǔn)備入門圖神經(jīng)網(wǎng)絡(luò)的同學(xué)帶來(lái)幫助。
END |
|