Kacper Kubara
Related Articles
- Feature Extraction for Graphs
- Machine Learning Tasks on Graphs
- Towards Explainable Graph Neural Networks
- Top 10 Learning Resource for Graph Neural Networks
그래프에 딥러닝 모델을 구축하는 그래프 신경망의 세계에 오신 것을 환영한다. 여러분은 그래프 신경망이 꽤 간단하다고 생각할 수 있다. 결국, 일반 데이터로 작동하는 모델을 재사용할 수는 없을까?
글쎄, 그렇진 않다. 그래프에서 모든 데이터 점(노드)은 서로 상호 연결된다. 이는 데이터가 더 이상 독립적이지 않다는 것을 의미하며, 표준 머신러닝 모델의 파생이 이러한 가정을 기반으로 하므로 대부분의 표준 머신러닝 모델을 무용지물로 만든다. 이 문제를 해결하기 위해 그래프에서 숫자 데이터를 추출하거나 이러한 유형의 데이터에 직접 작동하는 모델을 사용할 수 있다.
그래프에서 직접 작동하는 모형을 만드는 것이 더 바람직하다. 이는 그래프 구조와 속성에 대해 더 많은 정보를 얻을 수 있기 때문이다. 이 기사에서는 이러한 유형의 데이터를 위해 특별히 설계된 아키텍처 중 하나인 MPNN(Message Passing Neural Networks)에 대해 살펴보겠다.
A Model of Many Faces
Photo by Andrew Seaman on Unsplash
모델이 단일 MPNN 프레임워크로 표준화되기 전에는, 여러 독립적인 연구자들에 의해 다양한 변형이 발표되었다. 이러한 형태의 아키텍처는 분자의 물성(properties)을 예측하는 데 도움을 주기 위해 화학에서 특히 인기가 있었다.
이 주제에 대한 첫 번째 연구 중 하나는 듀베노드 외 연구진(2015)에 의해 [1]에 발표되었다. 그는 메시지 전달 아키텍처를 사용하여 그래프 분자로부터 귀중한 정보를 추출하고, 이를 단일 피쳐 벡터로 변환하였다. 당시 그의 작업은 아키텍처를 차별화할 수 있게 해 주었기 때문에 획기적이었다. 사실 그래프에서 동작할 수 있는 최초의 컨볼루션 신경 네트워크 아키텍처 중 하나였다.
메시지 전달 아키텍처(Message passing architecture)는 Dubenaud 외 연구진(2015)이 만들어 냈다[1]. 그는 모델을 각 레이어가 메시지를 전달하는 또 다른 라운드로 구분 가능한 레이어의 스택으로 정의했다.
이 아키텍처에 대한 또 다른 시도는 [2]에서 Li et al. (2016)에 의해 수행되었다. 본 연구에서는 그래프 에서 최적 경로를 찾는 등 그래프의 순차적 출력에 초점을 두었다[2]. 이를 위해 GRU(Gate Reconuar Unit)를 알고리즘에 포함시켰다.
이러한 알고리즘은 상당히 다른 것처럼 보이지만 그래프에서 노드 간에 전달되는 메시지라는 동일한 기본 개념을 가지고 있다. 우리는 그 모델들이 어떻게 하나의 프레임워크로 결합될 수 있는지 곧 알게될 것이다.
MPNN 프레임워크로 모델 통합
노드 V1에 대한 Message Passing의 예제
1) Message : Neighbour의 Hidden State의 합계
이 경우에 메시지는 이웃한 은닉 상태의 합산이다.
m1 = h3 + h2 = (10, 0, 5) + (-20, 5, 5) = (-10, 5, 10)
2) Update Function : m과 h1간의 평균
업데이트 함수(update function)는 메시지 m과 h1간의 평균이다.
h1_new = average(m, h1)
h1(0,0,0)
m(-10, 5, 10)
h1_new = 1/2 * (h1+m) = 1/2 (-10, 5, 10) = (-5, 2.5, 5)
결국 MPNN에 깔려있는 아이디어는 개념적으로 간단하다.
그래프의 각 노드에는 은닉(hidden) 상태(즉, 피쳐 벡터)가 있다. 각 노드 Vt에 대해 노드 Vt 자체와 함께 모든 인접 노드의 숨겨진 상태 및 가능한 에지 함수를 집계한다. 그런 다음 가져온 메시지와 해당 노드의 이전 은닉 상태를 사용하여 노드 Vt의 은닉 상태를 업데이트한다.
그래프에 MPNN 프레임워크를 정의하는 세 가지 주요 방정식이 있다 [3]. 인접 노드에서 얻은 메시지는 다음 방정식으로 제공된다.
인접 노드로부터 메시지를 가져온다.
Mt가 이웃으로부터 얻은 모든 메시지의 합계이다. Mt는 인접 노드의 숨겨진 상태와 에지에 따라 달라지는 임의의 함수이다. 일부 입력 인수를 남겨두면 이 함수를 단순화할 수 있다. 위의 예에서 우리는 서로 다른 은닉 상태(hw)만 합산한다.
간단한 방정식을 사용하여 해당 노드 Vt의 은닉상태를 업데이트한다.
이전 은닉상태와 신규 메시지로 해당 노드의 상태를 업데이트하기
간단히 말해, 이전 은닉 상태를 새로 가져온 메시지 mv로 업데이트하면 노드 Vt의 은닉상태를 얻을 수 있다. 위의 예에서 업데이트 함수 Ut는 이전의 숨겨진 상태(ht)와 메시지(mv) 사이의 평균이다.
이 메시지 전달 알고리즘을 지정된 횟수만큼 반복한다. 이후, 우리는 마지막 읽기단계(readout phase)에 도달한다.
매핑은 숨겨진 상태를 전체 그래프를 설명하는 단일 피쳐 벡터로 가져온다.
이 단계에서는 새로 업데이트되는 모든 은닉 상태를 추출하고 전체 그래프를 설명하는 최종 피쳐 벡터를 만든다. 그런 다음 이 피쳐 벡터를 표준 기계 학습 모델의 입력으로 사용할 수 있다.
이것이 전부이다! 이것들은 MPNN의 기초이다. 이 프레임워크는 달성하고자 하는 것에 따라 다양한 메시지와 업데이트 함수를 정의할 수 있기 때문에 매우 견고하다. MPNN 모델의 다양한 변형에 대해 자세히 알아보려면 [3]을 참고하는 것이 좋다.
MPNN은 몇 가지 딥러닝 라이브러리의 일부로 구현되어 있다. 다음은 저자가 찾아낸 몇 가지 구현 목록이다.
요약
MPNN 프레임워크는 여러 연구자들이 독자적으로 만든 다양한 메시지 전달 모델을 표준화한다. 이 프레임워크의 주요 아이디어는 그래프의 서로 다른 노드에서 작동하는 메시지, 업데이트 및 읽기 기능으로 구성된다. 이 기능을 공유하는 MPNN 모델의 변형 모델이 있지만, 모델마다 다르게 정의되어 있다.
읽어주셔서 감사하다. 도움이 되었길 바란다!
저자는?
암스테르담 대학의 MSC 인공지능 학생이다. 여가 시간에 데이터를 만지작거리거나 딥러닝 모델을 디버깅하는 모습을 볼 수 있다(정말 효과가 있었다!). 하이킹도 좋아한다.
저가 작성한 최신 기사 및 기타 유용한 콘텐츠를 계속 보고 싶으면, 다른 소셜 미디어 프로필은 다음과 같다.
References
[1] Convolutional Networks on Graphs for Learning Molecular Fingerprints
댓글 없음:
댓글 쓰기