2.4 메시지 전달에 에지 가중치 적용하기

(English Version)

GAT 또는 일부 GCN 변형 에서 사용되는 것처럼 메시지 병합이전에 에지의 가중치를 적용하는 것은 GNN 모델링에서 흔하게 사용되는 기법이다. DGL은 이를 다음과 같은 밥벙으로 지원하고 있다.

  • 가중치를 에지 피쳐로 저장

  • 메시지 함수에서 에지 피쳐를 소스 노드의 피쳐와 곱하기

예를 들면,

import dgl.function as fn

# Suppose eweight is a tensor of shape (E, *), where E is the number of edges.
graph.edata['a'] = eweight
graph.update_all(fn.u_mul_e('ft', 'a', 'm'),
                 fn.sum('m', 'ft'))

이 예제는 eweight를 이제 가중치고 사용하고 있다. 에지 가중치는 보통은 스칼라 값을 갖는다.