從網絡科學的視角,入門圖網絡

NO IMAGE

本文是對集智斑圖張江老師的從網絡科學的視角入門圖網絡之學習路徑一文的二次加工。原文內容更適用於有一定科研工作基礎的朋友,本文對相關背景及論文原文的介紹,進行了補充說明,一定程度上降低了閱讀和學習門檻,更有利於純小白的學習。

什麼是圖網絡

現實世界中的大量問題都可以抽象成圖模型(Graph Model),也就是節點和連邊的集合。從知識圖譜到概率圖模型,從蛋白質相互作用網絡到社交網絡,從基本的邏輯線路到巨大的Internet,圖與網絡無處不在

語言本質上就是單詞序列,圖像本質上就是像素點,他們都可以被抽象為結構簡單的graph。傳統機器學習方法在自然語言處理和計算機視覺領域已經取得了非常好的進展,然而卻很難處理更復雜的圖網絡信息,這種缺陷大大限制了深度學習的應用領域。

於是,人們提出了圖網絡(Graph Network),一種基於圖結構的廣義人工神經網絡,它可以直接對真實問題進行建模,又可以利用自動微分技術進行學習,甚至有望將多個傳統人工智能領域進行融合。

所以,圖網絡是一種結合機器學習網絡科學的前沿學科。

它將傳統的用於自然語言處理圖像處理計算機視覺等領域中的神經網絡、深度學習技術擴充到了一般的圖上,使得這些技術可以處理類似於n維流形等更加一般而普適的非歐幾里德幾何對象,以及多關係網絡知識圖譜帶屬性的圖結構等更加複雜的數據結構。

大概從2015年開始,該領域同時在學術界和工業界獲得了蓬勃的發展機遇,它不僅可以很有效地解決諸如連邊預測社區劃分等傳統經典的網絡科學問題,而且還可以解決諸如節點分類網絡重構網絡補全圖上的組合優化問題等非傳統的網絡科學問題,甚至還可以解決諸如計算機視覺圖像理解自然語言處理自動推理機器人控制動力學建模等人工智能領域中的問題。

入門圖網絡學習路徑

一、深度學習與PyTorch入門

既然圖網絡是傳統深度學習方法在graph上的延伸,那麼就必然要會使用了深度學習這個強大的工具了。而相比於其他編程語言,基於python的pytorch可以說是當前最便捷的開發語言了,沒有之一。現在pytorch也出了官方中文文檔,查閱起來也非常方便。

為了能夠打好深度學習的基礎,以及掌握一項編程工具,建議學習集智學園上的線上課程。

  1. 2017-系列課程:火炬上的深度學習(上)—— 計算機視覺篇
  2. 2017系列課程:火炬上的深度學習(下)—— 自然語言處理篇
  3. 2019系列課程:深度學習原理與pytorch實戰

2019年和2017年內容基本一致,課程中包含了包括文本翻譯單車預測AI遊戲手寫體數字識別等實戰任務,開放所有的課程代碼。可以按自己需求購買。而且也有配套的同名書《深度學習原理與pytorch實戰》

集智學園上還有配套的附加視頻

  1. 神經網絡反向傳播的數學原理
  2. RNN基本原理

學完了這一系列內容,你就基本上掌握了深度學習的使用方法,和基本的工作原理。

二、圖向量化(圖嵌入)

向量可以計算出有用的屬性,例如任意兩個節點嵌入的內積可以表示它們是否來自於同一個社群。

通過這種方式,節點嵌入將圖形數據簡化為更易於管理的東西:向量。

而要想用機器學習的技術處理圖結構的數據,首先要做的就是將網絡上的每個節點表示成規整的歐氏空間向量。

1、Word2Vec

Efficient Estimation of Word Representations in Vector Space [2013]Tomas Mikolov

Distributed Representations of Words and Phrases and their Compositionality [2013]Tomas Mikolov

Linguistic Regularities in Continuous Space Word Representations [2013]Tomas Mikolov

這三篇文章出自同一個團隊,引出了自然語言處理領域中經典的Word2Vec技術。這個技術可以通過掃描文本,將每個單詞賦予一個向量。可以說是所有節點嵌入方法的鼻祖。

下面是和word2vec相關的課程

課程:詞向量原理初探與Word2Vec

課程:淺談Word2Vec:自然語言處理的基石

本質上講,如果我們將一篇文章看作是詞語共現的網絡:單詞為節點,如果一對單詞同時出現在一個句子中就連一條邊,則詞向量的嵌入就相當於網絡的嵌入

2、網絡嵌入算法

從網絡科學的視角,入門圖網絡

DeepWalk: Online Learning of Social Representations[2014]Bryan Perozzi

這是網絡嵌入算法的第一篇工作

node2vec: Scalable Feature Learning for Networks[2016]Aditya Grover

node2vec 是一種流行且相當普遍的使用隨機遊走的嵌入方法。這是對上一篇DeepWalk的改進,它目前已經成為一種Benchmark。

將這些隨機遊走轉化為計算嵌入的方法有一種智能的優化方式。首先為每個節點分配一個隨機層,(例如長度為N的高斯向量)。然後對於每對源相鄰節點,我們希望通過調整這些層來最大化它們的點積。同時最後,我們最小化隨機節點對的點積。這樣做的效果是我們學習了一組嵌入,這些嵌入傾向於在相同的遍歷過程中高點積的節點。例如在相同的 社群/結構中。

從網絡科學的視角,入門圖網絡

三、圖網絡

如果詳細追溯,圖神經網絡早在2008年左右就被人提出了,但是到了2015年左右,隨著圖卷積神經網絡的出現與流行,人們突然發現,我們可以在圖結構上進行卷積操作了,而且這種卷積操作不僅計算簡單,還具有超強的準確度,這大大刺激了該領域的突飛猛進地發展。

1、圖網絡綜述:

Relational inductive biases, deep learning, and graph networks [2018]Peter W. Battaglia

這基本上是第一篇有關圖網絡的綜述,非常全面,但也不太容易讀懂。它既記錄了這一子領域的歷史,也提出了一種統一的方法來比較圖網絡和一般神經網絡的不同。

在上面的文章中,圖網絡被認為是用於在節點整個圖上``傳播狀態聚合狀態的函數集合。這樣,來自於許多不同理論的架構都是可比較的。下面是從函數中提取的步驟:

從網絡科學的視角,入門圖網絡

GN模塊中的更新。藍色表示正在更新的元素,黑色表示更新中涉及的其他元素(請注意,藍色元素更新前的值也在更新中使用)。有關符號的詳細信息,請參見原論文的公式1。

2、圖卷積及其相關架構

Semi-Supervised Classification with Graph Convolutional Networks [2016]Thomas N. Kipf

這篇文章是經典的圖卷積工作(GCN),在半監督學習任務上效果非常好

Graph Attention Networks [2017]Petar Veličković

這篇文章是一種基於注意力的圖卷積架構

Inductive Representation Learning on Large Graphs[2017]Will Hamilton

第三篇提出了GraphSAGE框架,一種可以處理大規模網絡的圖卷積網絡,效果非常棒。

四、相關應用

可以將上述技術應用於各種具體的網絡問題上,包括連邊預測、節點分類、圖分類、推薦算法等。這種應用非常多,我們僅挑其中幾篇與本研究組最相關的工作:

1、連邊預測:

這是一項通常且非常簡單的任務,基本表示為:節點A與節點B有關係的概率p(a,r,b)是多少?

例如知識圖補全(例如,如果米開朗基羅是托斯卡納出生的畫家,他是意大利人嗎?),預測蛋白質相互作用。這兩種方法都可以用來預測新的未知事物(例如哪些藥物可能有效?)以及改進現有不完善的數據(例如,此任務屬於哪個項目?).
Variational Graph Auto-Encoders[2016]Thomas N. Kipf

論文講解的VGAE(變分圖自編碼器)將VAE(變分自編碼器)引入圖網絡中,實現VAE從類的預測到VGAE中到實例的預測。

2、圖分類:

How Powerful are Graph Neural Networks? [2018]Keyulu Xu

這篇文章說明了一個未經訓練的網絡怎麼通過單獨的結構執行分析。

3、推薦算法:

Graph Convolutional Neural Networks for Web-Scale Recommender Systems[2018]Rex Ying

4、動力學學習與控制:

Graph networks as learnable physics engines for inference and control[2018]Alvaro Sanchez-Gonzalez

參考資料:集智俱樂部 從圖嵌入到圖分類——圖網絡入門綜述

相關文章

淺談TypeScript類型、接口、裝飾器

雪花算法Snowflake&Sonyflake

Vue解析剪切板圖片並實現發送功能

深挖蘋果審核規則,提升iOS審核通過率