重要的網(wǎng)站
https://www.dgl.ai/
https://github.com/rusty1s/pytorch_geometric
https://zhuanlan.zhihu.com/p/54505069
https://zhuanlan.zhihu.com/p/112938037
1. GNN應(yīng)用例子
1.1分類

分子是否會(huì)突變

分子結(jié)構(gòu)生成 graphVAE

找兇手,其實(shí)是個(gè)分類問題

roadmap
1.2 Dataset
- CORA
- TU-MUTAG
1.4 Benchmark
2. 常見模型
Spatial-based Convolution

NN4G
- layer0做的是簡(jiǎn)單的embedding

aggregation

readout
DCNN (Diffusion - CNN)
- 第n層看離當(dāng)前節(jié)點(diǎn)距離n的節(jié)點(diǎn)信息


把每一層的feature疊加起來(concat)

對(duì)每個(gè)節(jié)點(diǎn)進(jìn)行分類
DGC (Diffusion Graph Conv)
和DCNN的區(qū)別就是特征層改成相加

MoNET (Mixture Model Network)
- deg(x) 表示x的出入度數(shù)
- u(x,y) 自定義的距離計(jì)算方式

GraphSAGE


GAT (Graph Attention Network)
- 不同的鄰居weight要怎么給
- e → energy

GIN (Graph Isomorphism Network)
結(jié)論:首先把鄰居都加起來+自己*系數(shù),不要用maxpooling,也不要用meanpooling
Graph Signal Processing and Spectral-based GNN

向量空間
- 任何信號(hào)都是由基礎(chǔ)信號(hào)的加權(quán)和組成
- 單個(gè)基礎(chǔ)信號(hào)的權(quán)重可以由信號(hào)點(diǎn)乘該基礎(chǔ)信號(hào)求得
- 基礎(chǔ)信號(hào)都是正交的

傅里葉級(jí)數(shù)

即基礎(chǔ)信號(hào)是sin, cos

傅里葉變換

Spectral Graph Theory
-
是節(jié)點(diǎn)的個(gè)數(shù)
-
是鄰接矩陣
- 只考慮無向圖 (
是對(duì)稱矩陣)
-
鄰居數(shù)量
-
節(jié)點(diǎn)上的signal(具體問題具體含義,如溫度等)

- Graph拉普拉斯
, 對(duì)稱矩陣、半正定矩陣(所有特征值大于等于0)
- 特征分解,
是frequency;
是正交基,且長(zhǎng)度為1
示例

- 不同頻率下的基

- 離散傅里葉基,幫助理解頻率的概念

- 如果把
作用在
上,如下圖,可以發(fā)現(xiàn):
某種程度上表示某個(gè)節(jié)點(diǎn)與鄰居的能量差
可以歸納為如下:

能量的話要算平方(要去補(bǔ)一下信號(hào)處理)
代表了節(jié)點(diǎn)之間的能量差異

如果把替換成特征向量
,可以發(fā)現(xiàn),最終就是特征值

如何做filtering?
- 時(shí)域→頻域→與filter相乘→時(shí)域
首先是時(shí)域轉(zhuǎn)頻域,下面的就是上面的
,其實(shí)就是分析每個(gè)正交基上的投影,在每個(gè)頻率
下的成分有多大

那么怎么轉(zhuǎn)回去呢,先看下普通的信號(hào)處理,每個(gè)時(shí)刻把每個(gè)頻率下成分大小疊加起來

圖傅里葉也是一樣的 ,就得到了節(jié)點(diǎn)信息

filter: 就是filter

整個(gè)過程如下,我們要學(xué)習(xí)的是

ChebNet
減少了計(jì)算量
結(jié)論:先根據(jù)遞歸把轉(zhuǎn)換成
,然后
是要學(xué)習(xí)的參數(shù),
代表k-localized

GCN
Chebnet的基礎(chǔ)上
節(jié)點(diǎn)的特征經(jīng)過線性變換
,然后所有的鄰居求和取平均,加上
,最后經(jīng)過激活函數(shù)

Tasks
- 半監(jiān)督節(jié)點(diǎn)分類

-
回歸
-
圖分類
圖表示學(xué)習(xí)(representation learning)
- 連接預(yù)測(cè)(link prediction)




