Notice
Recent Posts
Recent Comments
Link
관리 메뉴

Douglas' Space

DNN의 또 다른 형태, GNN 본문

Computing Tech. Diary/Artificial Intelligence

DNN의 또 다른 형태, GNN

똘키아빠 2022. 5. 2. 11:19
지난 글에서 자연어처리를 위해 문장을 이루는 단어를 표현하는 워드임베딩에 대해 설명하였습니다. 워드임베딩을 포함하여 지금까지 다양한 형태의 데이터를 처리하는 DNN(Deep Neural Net)을 설명하였습니다. 이번 글에서는 좀 다른 형태의 데이터를 표현하고 처리하는 DNN의 하나인 GNN(Graph Neural Network)에 대해 살펴보고자 합니다.
이름에서 쉽게 알수 있듯이 그래프로 표현될 수 있는 데이터를 다루는 DNN입니다. 그래프는 컴퓨터과학에서 네트워크 또는 트리 형태를 표현하는 매우 자주 사용되는 자료구조를 의미합니다. 네트워크 형태의 예로서 도로망, 관계망, 분자의 구조 등이 이 네트워크 형태로 구성된다고 이해될 수 있습니다. 
이 네트워크를 나타내는 그래프는 아래와 같이 노드(node)와 에지(edge)로 구성됩니다. 번호가 부여된 원을 노드라하고, 각 노드를 연결한 선을 에지라고 합니다. 에지는 각 노드 간의 어떤 관계가 있음을 의미합니다. 에지는 방향이 존재할 수도 있고 방향이 존재하지 않을 수 있습니다. 방향이 존재하는 경우는 화살표로 표현합니다. 특히 임의 한 노드에서 자기 노드로 다시 오는 경로가 존재하지 않는 그래프를 특별히 트리(tree)라고 합니다. 
예를 들어 아래 첫번째 그림처럼 도로망의 경우 거시적인 관점에서 노드를 도시, 에지를 도시를 연결하는 도로로 표현할 수 있습니다. 가운데 그림처럼 사회관계망의 경우 노드를 사람, 에지를 관계를 갖고 있는 사람들과의 연결을 표현할 수 있습니다. 그리고 마지막 그림처럼 분자구조의 경우는 분자를 구성하는 원소와 이들의 관계를 에지로 표현할 수 있습니다
그래프를 표현하는 가장 대표적인 방법이 테이블의 행렬입니다. DNN을 표현하고 이들의 학습과 추론이 모두 행렬연산을 처리하는 가장 일반적인 방법입니다. 예를 들어 아래의 그래프는 SNS의 관계의 예를 나타내고 있습니다.
adjacency matrix는 각 사람의 연결관계를 나타냅니다(4사람의 관계만 나타낸다면 4X4의 행렬로 자신을 포함하여 연결되어 있는 셀이 1의 값을 가짐). feature matix는 분석하고자 하는 각 사람의 속성값을 나타냅니다 (4사람의 현재 표시된 특징만을 표현한다면 4X3의 행렬에 각 특징값을 가짐). 
feature matrix는 마치 각 노드의 특징벡터들의 집합이라고 할 수 있으며, 이 feature matrix에 가중치를 곱하여 다음 히든상태를 구하고 최종 상태를 기반으로 분류기 등을 연결하여 원하는 값을 출력하는 형태가 GNN의 일반적인 구조입니다. 결국 히든레이어는 특정 시점의 각 노드의 히든상태의 벡터들로 구성된다고 볼 수 있습니다. 
초기 입력으로 부터 t=0, t=1, ..으로 시점이 전개되면서 각 히든상태의 그래프에 존재하는 노드의 특징벡터들이 갱신이 됩니다. 이를 수식으로 표현하면 다음과 같은 수식으로 요약하여 설명할 수 있습니다.
 H는 히든상태 노드의 특징벡터로서 t+1시점의 각 노드의 특징벡터는 t시점의  해당 노드의 특징벡터와 인접노드들의 특징벡터 및 가중치(W) 곱의 합(이는 마치 CNN에서의 합성곱과 유사하여 Graph Convolution Network라고 함)으로 결정된다는 것을 의미합니다.  A는 인접을 나타내는 adjacency matrix로서 이를 곱하므로서 연결되는 노드의 벡터값만 해당 노드에 영향을 주게됩니다. 또한 A를 단순 연결 뿐만 아니라 특정 중요도나 관심을 갖는 attention score로 구성하면 Graph Attention Network로 확장될 수도 있습니다. 위의 첫글자 시그마는 activation fucntion을 나타냅니다.

 

'Computing Tech. Diary > Artificial Intelligence' 카테고리의 다른 글

Federated Learning vs. Distributed Learning  (0) 2022.05.02
Deep Metric Learning  (0) 2022.05.02
자연어처리를 위한 word embedding  (0) 2022.05.02
Transformer  (0) 2022.05.02
Semi-Supervised Learning  (0) 2022.05.02
Comments