RS-KR / GNN-RS-Beginner

47 stars 3 forks source link

gat가 inductive 로 어떻게 작동하는 걸까요? #20

Open haconedu opened 2 years ago

hybyun0121 commented 2 years ago

GAT는 그래프 구조를 보는 것보다는 관심 노드를 업데이트할 때 연결된 이웃의 정보를 각각 어느 정도 비중으로 반영할 것인지에 중점을 두는 것 같습니다. 즉 하나의 노드를 업데이트할 때 이웃 노드들의 feature 정보만 있으면 되고 이웃 노드의 개수(degree) 또는 구조적 정보는 필요 없기 때문에 inductive 환경에서 학습이 가능하다 생각합니다.

choco9966 commented 2 years ago

기본적으로 GCN은 Transductive / GAT, GraphSage는 Inductive 학습 방식입니다. GAT도 Masking 시에 연결된 정보를 알아야합니다. 이 부분에서 Transductive 라고 판단할 수 있지만, 배치시에 Row 단위로 가져오면, A를 전부 참고할 필요가 없이 이웃 노드의 정보만 가져오면 됩니다. 그렇기에, GraphSage와 같은 환경이 되어서 Inductive 방식이 되는 것 같습니다.

Toby-donghunseo commented 2 years ago

Adjacency matrix가 필요하면 transductive, 필요 없으면 inductive로 구분 GCN은 타겟 Node를 구할 때, 이웃 Node의 degree가 필요하기 때문에 필연적으로 전체 Graph가 필요합니다. GAT는 degree가 굳이 필요 없고, 계산시 이웃 Node의 embedding 값만 있으면 되기 때문에 전체 Graph가 필요 없습니다.

sbkim508 commented 2 years ago

짧은 식견으로, GAT 과정을 통해 나온 값을 결국 training data로 다시 학습하는 것을 보는 것과, 그래프 구조보다 인접한 노드의 정보를 이용하여 내포된 의미를 해석한다는 면에서 inductive한 방법이지 않을까 조심스럽게 생각해봅니다.