long8v / PTIR

Paper Today I Read
19 stars 0 forks source link

[49] Sparse Graph Attention Networks #55

Open long8v opened 1 year ago

long8v commented 1 year ago

image

paper, code

TL;DR

Details

GNN in general

Neighbor Aggregation Methods

graph learning을 할 때 가장 효율적인 방법 중 하나가 neighbor aggregation mechanism인데, feature vector $x_i$와 그 neighbor인 j들에 대해서 feature vector를 aggregate하는 것이다. 가령 Graph Convolution Network(GCN)도 그 종류들 중 하난데, 식을 아래와 같이 쓸 수 있다.

image image

이걸 조금 더 general 하게 쓰면 아래와 같이 쓸 수 있다.

image

하지만 GCN은 transductive 하게 밖에 못쓰는데, 그래프 구조가 바뀌면 새로 학습을 해줘야한다.

Graph Attention Networks(GAT)

GCN과 유사하게 neighborhood를 aggregate하는데, attention 을 사용해서 어떤 ege에 집중할지를 attention score를 구하게 되면 GAT가 된다.

image

그런데 이 경우에, attention score를 각 edge별 중요도라고 볼 수 있는데 layer마다 attention score가 달라지기 때문에 해석은 어렵다. 그래프를 만들 때 noisy/task-irrevalent한 edge들을 정리하기 위해 SGAT를 제안한다!

SparseGAT(SGAT)

중요한 edge만 남기기 위해서 binary gate $z{ij}$를 각 ege 별로 추가한다. 이 $z{ij}$는 edge $e_{ij}$를 사용할지 말지에 대한 bianry masking을 하게 된다.

image

최대한 적은 edge를 남기기 위해 loss term에 L0 loss를 추가한다. $z_{ij}$ 가 1이면 1 아니면 0인걸 sum하는 term이다.(edge 개수에 대한 loss)

image

attention based aggregation function은 아래와 같이 쓸 수 있는데 (GAT)와 다른 게 없음

image

이때 attention score를 아래와 같이 구한다.

image

-> $z_{ij}$는 어떻게 학습이 되는건지?

이렇게 sparse 하게 구성하게 된 시작은 attention score에 대한 head별 layer 별 분산을 구해봤는데 아래와 같이 거의 0에 가까웠기 때문임.

image