Graph Neural Network(GNN)이 AI의 새로운 분야로 떠오르고 있습니다. GNN은 수 많은 node와 edge로 연결된 구조인 graph로 데이터가 표현되어 있을 때, 유용하게 적용될 수 있는 신경망 기술인데, 아직 기술 성숙도 면에서는 많은 향상이 이루어져야 하지만 잠재력 측면에서 높은 평가를 받고 있습니다.
데이터를 표현하고 저장하는 대표적인 기존 수단은 Oracle과 같은 관계형 DB(RDB)인데, RDB로는 효율성이 많이 떨어지는 상황이 많습니다. 예를 들어 SNS의 친구 관계와 각 사용자 별 선호 콘텐츠, 취미 활동 등을 표현하기 위해서는 많은 수의 연관된 테이블 및 스키마를 설계해야 하며 이 경우라고 해도 친구의 친구와 같은 연계 분석을 위해서는 복잡한 과정을 거쳐야 합니다. Neo4j와 같은 GraphDB는 이러한 문제를 해결하기 위해서 node, edge, property를 갖는 graph 형태로 데이터를 저장하고 쉽게 조회할 수 있도록 해 줍니다. GNN은 이러한 구조로 표현된 데이터를 대상으로 하는 AI 기술들의 집합으로 볼 수 있습니다.
다음은 GNN의 몇 가지 응용 분야들을 정리한 기사 링크입니다:
위의 기사에서는 아래의 다섯 가지 분야들을 사례로 제시하고 있습니다:
- Recommender Systems
- 유저와 아이템간 관계, 유저별 선호도, 아이템간 관계를 활용한 추천 시스템
- Combinatorial Optimization
- 복수개의 상호 연관된 요소들에 대한 종합적 최적화
- Computer Vision
- Scene graph로 표현된 의미론적 장면 연결 관계에 대한 모델링
- Physics/Chemistry
- 분자나 세포 등 기본 단위들간의 연관 관계로부터 새로운 현상을 분석
- Drug Discovery
- 구성 성분 및 그들의 연관 관계로부터 신약 구조를 예측하거나 약효를 분석
또 다른 예제로, 인간의 지식 그 자체에 대한 표현 방법을 생각해 볼 수 있습니다. 인간의 지식은 단순히 사실의 나열형으로 표현되는 것이 아니며, 수 많은 사실들간의 유기적인 연결 관계와 그 연결 관계의 특성 집합들로 만들어집니다. 때문에, 보통 knowledge graph라고 부르는 형태로 표현하는 것이 일반적입니다. 현재의 딥러닝 기반 챗봇들도 open-domain에 대한 질의 응답을 수행할 수 있지만, knowledge graph 기반이라기 보다는 대규모 나열형 데이터로 학습되거나 retrieval 방식을 사용하고 있습니다. 이러한 방식의 한계는 분명한데, 학습데이터에 직접적으로 나타나 있지 않거나, 연관 관계로 추론해야 하는 경우 적절한 대응이 어렵습니다. 좀 더 고도화된 대화형 AI를 구현하기 위해서는 연관 관계가 표현된 데이터를 기반으로 한 추론 과정이 구현되어야하며, GNN이 그러한 방향 중 하나로 고려될 수 있다고 생각합니다.