
스터디 책: Building Knowledge Graphs
새로운 지식그래프 스터디를 시작합니다. 이 책에서는 그래프에 대한 기본적인 설명부터, property graph를 중심으로한 Neo4j와 Cyper, 그리고 최근 AI, LLM과 Graph를 연결한 내용까지의 범위를 다룹니다. Hands-on 교안은 아니라서 개념적인 내용이 많지만, 직접 실습하는 내용도 담고 있어서 최대한 캡쳐 등의 방법으로 남겨보려합니다.
.
.
.
우선 preface에서 언급한 KGs의 정의가 상당히 인상적이었다. 'A knowledge graph is a purposeful arrangement of data such that information is put in context and insight is readily available'. 즉, 지식그래프는 데이터를 목적에 맞게 배열하여 정보가 맥락을 갖도록 하며 이를 통해 인사이트를 얻는다는 것이다. 이때 배열 방식은 그래프 구조를 기반으로 하는데, 그래프는 데이터의 맥락을 직관적으로 표현하여 이해하기 쉽고, 이는 높은 활용성으로 이어진다.
그래프는 nodes(vertices)를 relationships(edges)으로 연결한 관계로 표현되며, 네트워크와 동일한 개념으로 사용된다. 그래프는 방향성이 있는(directed) 경우와 그렇지 않은 경우(undirected)가 있으며, 여러 관계를 갖는 hypergraphs도 존재한다. 이론상으로는 하나의 완벽한 형태의 그래프가 존재하지 않는데, 이는 도메인과 상황에 따라서 여러가지 형태를 취할 수 있다는 의미이다.

이 책에서는 labeled property graph model을 중심으로 다룬다. property graph의 노드는 (1) 0개 이상의 속성(property)를 가질 수 있다. 위 그래프에서 city, country 등 노드 안에 표현된 것들이 속성에 해당한다. (2) 0개 이상의 레이블(label)을 가질 수 있다. Place, Person 등이 노드의 레이블에 해당한다.
관계는 엔티티 간의 연관성을 표현하며 (1) 타입(type)을 갖는다. LIVES_IN, FRIEND 등이 해당한다 (2) 관계는 방향성(directed)를 가지며, 한 노드에서 다른 노드로 이어진다 (3) 관계는 0개 이상의 속성(property)를 가질 수 있으며, since:2020 등과 같이 key-value 쌍으로 구성된다 (4) 관계는 반드시 시작과 끝 노드가 존재하면 끊어진 상태일 수 없다.
property graph는 유연한 구조를 갖는다. 위에서 동일하게 Person으로 레이블링된 노드인 경우에도 name, gender, age 등 각 노드에 따라서 상이한 속성값을 가질 수 있다. 표현하는 관계도 이와 마찬가지로 상황에 따라서 다르게 사용된다. 이처럼 property Graph는 기본적으로 스키마리스(schema-less)이지만, 필요할 때만 일부 스키마적 제약(constraints)을 걸 수 있는 유연한 schema-ish 모델이다. 이 제약은 고정되지 않으며 필요할 때만 유동적으로 적용되며 유동적인 현실 데이터 특성을 반영할 수 있다.
이런 유동성은 RDF 기반의 그래프와 가장 큰 차이점인 것 같다. RDF 그래프는 사전에 규정된 스키마를 기반으로 강한 제약조건을 갖는다. 노드와 관계를 표현하는 방식도 표준 어휘를 사용하여 규칙적으로 표현한다. Property graph보다 덜 유동적이라는 특징이 있으나, 의미론적 질의와 추론 측면의 장점을 갖는다.
지식그래프는 그래프 중에서 '맥락적 이해(contextual understanding)'에 중점을 둔 특정 유형이다. 지식그래프에는 사용자 혹은 컴퓨터가 데이터의 의미를 추론할 수 있도록 하는 조직 원리(organizing principle)가 있어야 하며, 데이터에 추가적인 구조와 맥락을 부여하여 지식 발견을 가능하게 한다. 이를 통해 다양한 응용 분야에서 재사용성과 확장성을 높이는 역할 수 있다.
한편, 지식그래프에 대한 관심은 증가하고 있는데, 이 중심에는 데이터를 이해하고자 하는 수요가 증가하는 것이 있다. 기업들은 신속한 대응을 위해 수많은 데이터를 수집하고 분석, 학습하는 새로운 방법을 요구하고 있으며, 지식그래프는 지식을 창출하기 위한 맥락화된 데이터에 적합한 형태라는 것이다.