GNN(그래프 신경망)이란 무엇인가요?

GNN 소개

그래프 신경망(GNN)은 실용적인 애플리케이션과 최첨단 머신 러닝 연구 모두에서 자주 사용되는 심층 신경망 아키텍처입니다. 이 아키텍처는 신경망 모델을 사용하여 개체와 그 관계에 대한 데이터를 나타내며, 실제 데이터 마이닝, 소셜 네트워크 이해, 지식 그래프, 추천 시스템 및 생물 정보학에 유용합니다.

GNN의 개발은 컨볼루션 신경망(CNN)순환 신경망(RNN)과 같은 딥 러닝 알고리즘에서 착안했지만, 몇 가지 주요 차이점이 있습니다. CNN은 이미지의 픽셀처럼 격자형 구조를 지닌 데이터를 위해 설계되었습니다. 하나의 픽셀은 최대 8개의 다른 픽셀에 연결할 수 있습니다. 반대로, RNN은 텍스트의 단어 문자열처럼 각 요소가 최대 두 개의 다른 요소에 연결될 수 있는 시퀀스 구조에 맞게 조정됩니다. 그러나 그래프 구조화된 데이터에서 모든 요소는 하나 이상의 연결을 가질 수 있으며, 특정 요소에 대한 연결 수 간 일관성이 없을 수 있습니다.

신경망은 기하학적 딥 러닝1의 구현으로, 네 가지 기본 카테고리로 분류됩니다.

그래프와 유사한 데이터를 학습하는 그래프 기반 학습

그리드로 설명할 수 있는 데이터와 유사한 이미지 및 기타 데이터 유형에 대해 학습하는 그리드 기반 학습

정보가 상위 그룹과 어떻게 관련되어 있는지 학습하는 그룹 기반 학습 영역과 같은 그룹에서 데이터를 수집할 때(예: 지구 각지의 다양한 소스에서 수집된 지질 데이터) 매우 효과적입니다.

객체의 3D 모델 요소 분석 및 예측과 같이 정보가 불규칙한 메시에 어떻게 퍼져 있는지 학습하는 메시 기반 학습

GNN은 인공 지능 연구가 활발하게 진행되는 분야이며, Python과 TensorFlow 등의 프레임워크와 언어로 구축된 라이브러리와 툴킷으로 잘 지원되고 있습니다.

그래프란 무엇인가요?

객체 집합과 객체 간의 연결은 그래프로 표현할 수 있습니다. 컴퓨터 과학 연구자들은 그래프 데이터 구조에서 작동하는 신경망을 개발했습니다.

그래프는 '노드'라고 하는 개체 모음 사이의 '엣지'라고 하는 관계를 나타냅니다. 수학적으로 그래프 G는 노드 및 정점 V 집합과 엣지 및 링크 집합의 튜플로 정의됩니다. E:G = (V, E). 각 엣지는 두 정점의 쌍이며, 이들 간의 연결을 나타냅니다.

각 노드, 엣지 또는 전체 그래프를 자세히 설명하기 위해 그래프의 각 부분에 정보를 저장할 수 있습니다.

그래프의 정점과 정점이 엣지로 연결되는 방식을 보여주는 일러스트 그래프의 정점(노드라고도 함)은 엣지로 연결됩니다.

그래프의 각 엣지에 방향성을 할당하여 더 자세히 설명할 수 있습니다. 그래프는 방향 또는 무방향으로 설명됩니다. 무방향 그래프는 양방향 관계를 나타냅니다. Rosa에게 Juan이라는 형제가 있는 경우, Juan에게도 Rosa라는 형제가 있는 것입니다. Rosa와 그녀의 형제의 관계는 방향성이 없으며, 단지 두 사람을 연결할 뿐입니다. 방향 그래프는 방향성이 있는 관계를 나타냅니다. Rosa에게 Juan이라는 손위 형제가 있다면, '손위 형제' 관계는 Juan에서 Rosa의 방향으로 일방향으로만 진행되며 Juan에게는 '손위 형제'가 없습니다.

무방향 그래프와 방향 그래프의 일러스트 그래프의 유형은 엣지에 방향성이 있는지 여부에 따라 결정됩니다.

그래프의 연결성을 시각화하는 방법은 인접 행렬을 사용하는 것입니다. 이는 그래프의 정점에 대한 행렬 기반 표현이며, 무방향 그래프와 방향 그래프를 모두 나타낼 수 있습니다.

방향 그래프와 이를 나타내는 숫자의 인접 행렬 방향 그래프의 엣지는 인접 행렬로 나타낼 수 있습니다.

표시된 방향성 그래프의 인접 행렬은 모든 정점과 정점을 생성하는 엣지의 방향을 나타냅니다. 예를 들어, 방향성 그래프의 노드 0은 노드 1에 연결되지만 연결의 방향성 때문에 그 반대는 참이 아닙니다. 인접 행렬에서 [행 0, 열 1]에는 값이 있지만, [행 1, 열 0]에는 값이 없습니다.

그래프의 표현에는 순열 불변성이 있어야 하며, 이는 그래프 구조가 동일하지만 노드 순서가 다른 경우 그래프의 표현이 동일한 결과를 생성해야 함을 의미합니다. 이 접근 방식은 그래프 표현이 그래프 자체와 동일한 속성을 갖도록 합니다.

그래프 신경망

GNN은 일반적으로 '그래프 인, 그래프 아웃' 아키텍처를 사용합니다. 즉, 이러한 모델 유형은 그래프를 입력으로 허용하며 정보가 노드, 엣지 및 전역 컨텍스트에 로드됩니다. 모델은 입력 그래프의 연결을 변경하지 않고 이러한 임베딩을 점진적으로 변환합니다. 임베딩은 노드를 노드 임베딩으로 나타내고 정점을 정점 임베딩으로 나타냅니다. 이러한 임베딩을 통해 모델은 어떤 유형의 노드가 그래프의 어디에서 발생하는지 및 엣지의 유형과 위치를 학습할 수 있습니다.

일반적으로 신경망 학습은 학습 데이터의 무작위 하위 집합에 대해 계산된 그래디언트로 네트워크 매개변수를 업데이트하여 수행됩니다. 그래프 네트워크를 학습시키려면 신경망을 그래프로 작성하여 상위 대형 그래프의 필수 속성을 유지하는 하위 그래프를 만듭니다.

GNN은 메시지 전달 메커니즘을 사용하여 이웃 노드의 정보를 집계해서 그래프의 복잡한 관계를 포착할 수 있습니다. 그래프 구조 데이터 모델링의 과제는 노드 간의 상호 작용을 포착하는 것입니다. 신경망 메시지 전달은 그래프 데이터의 종속성과 상호 작용을 모델링하기 위한 프레임워크를 제공하여 이러한 문제를 해결합니다. 노드는 인접한 노드와 정보를 교환하고 해당 정보를 집계하여 자체 표현을 업데이트합니다. 이 메시지 전달 프로세스는 그래프 내 노드가 메시지나 신호를 교환하는 것과 유사합니다.

그래프 분석 유형

GNN은 여러 가지 유형의 분석을 허용하며, 각 분석은 그래프 데이터의 다양한 요소에 대한 인사이트를 제공합니다.

그래프 수준 작업

그래프 수준 작업에서 GNN은 전체 그래프의 속성을 예측합니다. 그래프로 표현된 분자의 경우, 질병과 관련된 수용체에 결합할지 여부를 예측할 수 있습니다. 소셜 네트워크의 경우, 대학이나 대학과 같은 특정 기관과 연결될 가능성이 있는지 예측할 수 있습니다. 이러한 유형의 패턴 인식은 전체 그래프를 분류하므로, 그래프 분류의 한 형태로 구성될 수 있습니다.

노드 수준 작업

노드 수준 작업은 그래프 내에서 각 노드의 ID 또는 역할을 예측하는 것과 관련이 있습니다. 예를 들어, 소셜 네트워크 데이터 세트의 노드 분류 문제는 사용자가 연결된 친구 네트워크를 기반으로 특정 관심사를 가질 가능성이 높은지 여부를 예측하는 것일 수 있습니다. 골프를 제외한 다른 공통 관심사가 없는 친구가 있다는 것은 새로운 친구도 골프를 즐길 가능성이 높다는 좋은 신호입니다. 이러한 종류의 노드 특징은 종종 GNN으로 예측할 수 있습니다.

엣지 수준 작업

그래프에서 예측 문제의 마지막 유형은 링크 예측이라고도 하는 엣지 예측입니다.

엣지 수준 추론의 한 가지 예로 이미지 장면 이해를 들 수 있습니다. 딥 러닝 모델은 이미지에서 물체를 식별한 후 물체 간의 관계를 예측할 수도 있습니다. 노드는 이미지의 객체를 나타내고 예측은 이러한 노드 중 어느 노드가 엣지를 공유하는지 또는 해당 엣지의 값이 얼마인지를 나타내므로, 이는 엣지 수준 분류입니다. 개체 간의 연결을 검색하려면 그래프를 '완전히 연결된' 것으로 간주하고 예측 값에 따라 엣지를 정리하여 희소 그래프에 도달할 수 있습니다.

변형 및 확장

그래프 컨볼루션 네트워크4(GCN): 이 접근 방식은 그래프 기반 데이터에서 학습하고 예측할 수 있는 신경망의 변형을 기반으로 하는 준지도 학습에 사용됩니다. 이러한 모델은 그래프 엣지 수에 따라 선형적으로 확장되므로 대규모 데이터 세트에 적합합니다. 또한 모델은 로컬 그래프 구조와 노드의 기능을 학습합니다.

그래프 오토인코더2: 이 변형은 그래프의 비지도 학습, 클러스터링 및 링크 예측을 위한 엔드투엔드 학습이 가능한 신경망 모델입니다. 일반적으로 GCN을 인코더로 사용하여 임베딩을 생성하고, 학습된 잠재 표현에서 그래프를 재구성하는 디코더가 있습니다.

그래프 어텐션 네트워크3 (GAT): 그래프로 구조화된 데이터에서 작동하는 신경망 아키텍처입니다. GAT는 셀프 어텐션 레이어 형태의 어텐션 메커니즘을 활용하여 그래프 컨볼루션 또는 근사치를 기반으로 하는 이전 방법의 단점을 해결합니다. GAT는 노드가 해당 이웃의 특징에 어텐션할 수 있는 레이어를 쌓아서 이웃의 다른 노드에 대해 다른 가중치를 (암시적으로) 지정할 수 있습니다. 반전과 같은 비용이 많이 드는 행렬 연산의 필요 없이 또는 그래프 구조를 미리 알아야 할 필요 없이 가능합니다.

그래프 표현: 학습은 그래프에 존재하는 복잡한 관계에서 노드의 의미 있고 잠재적으로 저차원적인 표현을 찾는 방법으로, 신경망을 확장하는 연구 영역입니다. 이 확장의 예로는 노드에 대한 저차원 벡터 표현을 생성하여 노드가 고차원 데이터를 나타내는 데이터 작업에 적합하도록 만드는 스탠포드 대학교의 GraphSage 프로젝트6가 있습니다.

GNN 아키텍처

GNN을 구조화하는 방법의 샘플로 전체 그래프를 분류하기 위한 간단한 그래프 컨볼루션 네트워크(GCN)를 떠올려 보세요. 가장 간단한 GCN에는 세 가지 레이어가 있습니다.

컨볼루션 레이어- 이 레이어는 각 노드에 컨볼루션을 수행하여 노드의 연결을 학습합니다.

비선형 활성화 레이어- 이 레이어는 ReLU와 같은 활성화 함수를 컨볼루션 아웃풋에 적용합니다.

아웃풋 선형 레이어- 이 최종 레이어는 아웃풋을 합산하여 최종 예측을 생성합니다.

먼저, 컨볼루션 레이어 그래프의 각 노드를 사용하여 컨볼루션을 수행합니다. 이 컨볼루션 레이어는 각 노드의 이웃 항목의 특징 정보를 사용하여 노드와 관련된 가중치를 업데이트합니다. 그런 다음 ReLU와 같은 비선형 활성화 함수가 컨볼루션 레이어의 아웃풋에 적용됩니다. 최상의 정확도를 얻기 위해 네트워크는 여러 컨볼루션과 비선형 활성화 레이어를 함께 쌓아 사용할 수 있습니다. 마지막으로 그래프가 속할 가능성이 가장 높은 클래스를 예측하는 데 아웃풋 선형 레이어가 사용됩니다.

GCN은 개념적으로 간단하고 대규모 그래프에 적합하며 프로그래밍하기 쉽지만, 몇 가지 주요 단점도 있습니다. 우선 GCN은 엣지 기능을 지원하지 않습니다. 노드 기능 또는 전체 그래프 기능만 학습하고 예측할 수 있습니다. GCN에는 메시지 전달 개념이 없습니다. 이 문제로 인해 필요한 모든 정보가 엣지가 아닌 노드에 있는 경우로 사용이 제한됩니다.

그러나 MPNN(메시지 전달 신경망)은 엣지를 표현할 수 있습니다.5 메시징 전달 프로세스는 대략 다음과 같습니다. 그래프의 각 노드는 노드의 초기 입력 특징 역할을 하는 초기 임베딩을 수신합니다. 메시지 전달의 각 반복에서 노드는 이웃 노드의 정보를 집계합니다. 이렇게 집계된 정보는 업데이트 함수를 사용하여 노드의 현재 임베딩과 결합됩니다. 업데이트된 임베딩은 메시지 전달의 다음 반복으로 전달됩니다. 그래프의 복잡성을 나타내는 데 적합한 반복을 여러 번 거친 후 최종 임베딩을 사용하여 그래프의 각 노드를 나타냅니다. 마지막으로 신경망이 집계, 업데이트 및 반복 단계를 수행하여 그래프 전반의 복잡한 패턴을 학습합니다.

메시지 전달을 사용하면 보다 정교한 노드 분류, 엣지 분류 또는 그래프에서 엣지가 나타날 수 있는 위치를 예측할 수도 있습니다(링크 예측이라고 함).

GNN의 애플리케이션

GNN은 자연어 처리(NLP) 분야에서 다양하게 활용됩니다. 예를 들어, 문서 분류에서 GNN을 사용하여 문서의 단어나 문장 간의 관계를 모델링할 수 있습니다. 이 기능을 사용하면 문서 분류 및 정보 검색을 개선할 수 있습니다. GNN은 질문의 단어와 지식 그래프 내 후보 답변 간의 관계를 표현하여 질문 답변 작업을 지원할 수 있습니다. GNN은 텍스트의 문맥 정보와 감정 종속성을 포착하여 모호성이 높거나 매우 구체적인 개체 관계가 있는 상황에서 감정 분석을 개선할 수 있습니다.

GNN은 컴퓨팅 비전 분야에서도 다양하게 활용됩니다. 이미지 분할 작업에서 GNN은 인접한 픽셀 간의 관계를 그래프로 모델링하여 픽셀 수준의 이미지 분할 작업에 사용할 수 있습니다. GNN은 이미지의 객체 간 상황 정보와 관계를 포착하여 개체 감지를 지원할 수 있습니다. 장면 이해 작업에서 GNN은 복잡한 장면을 이해하고 이미지에서 객체 간의 공간적 관계를 나타내는 장면 그래프 생성에 사용됩니다.

GNN은 생물 정보학에서도 강력한 도구로 기능합니다. 게놈 서열 분석에서 GNN은 유전자 또는 유전자 서열 간의 관계를 모델링하여 유전자 발현 예측 및 서열 분류 작업에 도움을 줄 수 있습니다. 신약 발견에서 GNN은 제약 연구에 필수적인 약물-표적 상호 작용 예측 및 분자 특성 예측에 사용될 수 있습니다.

각주

1. Inductive representation learning on large graphs, Will Hamilton, Zhitao Ying, Jure Leskovec, https://papers.nips.cc/paper_files/paper/2017/hash/5dd9db5e033da9c6fb5ba83c7a7ebea9-Abstract.html

2. Variational Graph Auto-Encoders, Thomas N. Kipf, Max Welling https://arxiv.org/abs/1611.07308

3. Graph Attention Networks; Petar Veličković, et al, https://arxiv.org/abs/1710.10903

4. Semi-Supervised Classification with Graph Convolutional Networks, Thomas N. Kipf, Max Welling https://arxiv.org/abs/1609.02907

5. Hierarchical Graph Representation Learning with Differentiable Pooling, NeurIPS 2018 · Rex Ying, et al https://arxiv.org/abs/1806.08804

6. GraphSage https://snap.stanford.edu/graphsage/

관련 솔루션
watsonx.ai

핵심 워크플로에서 생성형 AI의 영향력을 가속화하여 생산성을 높이세요.

watsonx.ai에 대해 알아보기
인공 지능 솔루션

업계 최고의 AI 전문성과 솔루션 포트폴리오를 보유한 IBM과 함께 AI를 비즈니스에 활용하세요.

AI 솔루션 살펴보기
AI 컨설팅 및 서비스

AI로 핵심 워크플로와 운영을 새롭게 혁신해 경험과 실시간 의사 결정, 비즈니스 가치를 극대화하세요.

AI 서비스 살펴보기

리소스

자연어 처리
관련 주제
딥 러닝
관련 주제
다음 단계 안내

IBM watsonx 포트폴리오의 IBM 파운데이션 모델 라이브러리에 대해 자세히 알아보고 비즈니스를 위한 생성형 AI를 자신 있게 확장하세요.

watsonx.ai에 대해 알아보기 IBM의 AI에 관한 최신 정보 받아보기