-
그래프 어텐션 신경망(Graph Attention Network, GAT) 에서는 가중치 자체도 학습 한다
- 실제 그래프에서는 이웃 별로 미치는 영향이 다를 수 있기 때문이다
- 가중치를 학습하기 위해서 셀프-어텐션(Self-Attention) 이 사용된다
-
각 층에서 정점 i로부터 이웃 j로의 가중치 αij 는 세 단계를 통해 계산된다
- 해당 층의 정점 i의 임베딩 hi에 신경망 W를 곱해 새로운 임베딩 을 얻는다
- hi~=hiW
- 정점 i와 정점 j의 새로운 임베딩을 연결한 후, 어텐션 계수 벡터 a 를 내적한다
- 어텐션 계수 a 는 모든 정점이 공유하는 학습 변수이다
- eij=aT[CONCAT(hi~,hj~)]
- 두번째의 결과에 소프트맥스(Softmax)를 적용한다
- αij=softmax(eij)=∑k∈N(i)exp(eik)exp(eij)
-
여러 개의 어텐션을 동시에 학습 한 뒤, 결과를 연결하여 사용한다
- 멀티헤드 어텐션(Multi-head Attention) 이라고 부른다
- ht′=1≤k≤KCONCATσ(∑j∈NiαijkhjWk)
- αijk : 가중치를 한개가 아닌 k(위 그림에선 3개)개를 얻어서 집계한 결과를 연결(concat)해서 최종 임베딩을 얻는다
-
어텐션의 결과 정점 분류의 정확도(Accuracy)가 향상 되는 것을 확인할 수 있다