Knowledge Graph
Knowledge Graph는 Knowledge Base를 그래프로 나타낸 것이다. 벌써 생소한 용어가 나타나 어렵게 느껴질 수도 있는데 차근차근 설명해보도록 하겠다.
먼저 Knowledge Base는 컴퓨터 시스템에 의해 사용되는 각종 정보 무더기들을 저장하는 기술이다. 참고로 Knowledge Base를 이루는 정보들은 구조화되어 있을 수도 있고, 그렇지 않을 수도 있다.
Graph는 객체들 간의 관계를 표현하는 수학적인 구조이다. 그리고 이 그래프는 정점(Nodes/Vertices)과 이들을 연결하는 간선(Edges)으로 표현된다. 테이블 형태로 저장된 관계형 자료구조와 데이터를 저장한다는 목적은 같지만, 관계형 자료구조와 달리 정보들 간의 "관계"를 강조한다는 특징을 지닌다.
KG 속 Knowledge Base의 특징
앞에서 Graph와 Knowledge Base에 대해서 자세히 살펴보았다. 이번에는 특별히 Knowledge Graph(이하 KG)를 이루는 Knowledge Base의 특징에 대해서 살펴보려고 한다.
- Structured(구조화)
: 특정한 데이터 구조를 가지고 있어 데이터 간의 관계와 속성을 명확하게 정의 가능. - Normalised(정규화)
: 작은 단위로 분할되어 있어 각 요소가 독립적으로 관리되고 유지보수되며, 중복을 최소화. - Connected(연결)
: 요소들은 서로 연결되어 있으며, 이러한 연결은 종종 먼 거리의 객체들 사이에도 존재 가능. - Exciplit(명시적)
: 명시적으로 생성되어 의도된 의미를 가지고 있음. 즉, 데이터의 의미가 명확하게 정의. - Declarative(선언적)
: 자체적으로 의미를 가지고 있으며, 특정한 구현이나 알고리즘에 의존하지 않음. - Annotated(주석)
: 부가적인 정보와 메타데이터를 기록하기 위해 주석 존재. - Non-Hierarchical(비계층적)
: 트리 구조보다 더 복잡한 구조. - Large(대규모)
: 수백만 개의 요소를 포함하는 대규모 데이터 세트.
Graph의 특징
KG에 대해 알아보기 위해 이를 구성하는 요소인 Knowledge Base에 대해서는 알아보았다. 이제는 다시 돌아와 Graph의 특징에 대해서 알아보도록 하겠다.
- Directed or Undirected
: 그래프 내 간선에 방향이 있기도 있고 없기도 함. 방향이 있다면 지정된 방향의 역방향으로는 이동이 불가능함. - Simple graph or Multi graph
: 동일 정점 세트 사이에 여러 개의 간선을 갖기도 하고 갖지 않기도 함. 간선을 갖는 그래프가 Multi graph이고 갖지 않는 그래프가 Simple graph이다. - Possibly labelled edges or vertices
: 그래프의 구성 요소인 정점과 간선에 정보의 일종인 '라벨'을 표기할 수 있기도 함. - Possibly with self-loops
: 하나의 정점에서 스스로를 향한 간선을 가질 수 있기도 함. - Possibly with higher arity edges(hypergraphs)
: 하나의 간선이 2개 이상의 정점을 가질 수 있기도 함.
Graph 표현하기
그래프를 표현하는 방법에는 크게 두 가지가 있다. 행렬을 이용하는 방식과 연결 리스트를 이용하는 방식있다.
먼저 인접 행렬로 나타내는 방법이다. 위 그림과 같이 그래프의 특정 노드가 순회할 수 있는 노드에 대해서만 값을 가지는 행렬로 그래프를 나타내는 방식이다.
다음으로 연결 리스트로 나타내는 방법이다. 그래프의 노드마다 연결되어 있는 또다른 노드들에 대해 연결 리스트로 표현하는 방법이다.
만약 노드들 간의 관계를 나타내는 간선의 수가 적다면, 앞서 소개한 인접 행렬로 그래프를 나타내는 것보다 연결 리스트로 표현하는 방식이 더 효율적이라고 한다.
각 방식에 대한 장단점에 대해 정리하면 다음과 같다.
✅ Adjacency Matrix
- 효율적인 저장 가능
: 간선 당 1bit 정도의 공간을 차지한다. - 행렬 연산 수행 가능
- *희소 행렬이 발생할 경우 저장 효율성 저하
- *Labelled Multi Graph 일 땐 부자연스러움
*희소 행렬: 인자가 대부분 0으로 구성된 행렬
*Labelled Multi Graph: 간선에 정보를 저장할 수 있으며, 동일 정점 간 여러 간선을 가지는 그래프
✅ Adjacency List
- 희소 행렬에 대한 효율적인 저장 가능
- Labelled Multi Graph를 다루기 쉬움
- *Sorting에 약함
- *Dense Graph의 경우 저장 효율성 저하
*Sorting: 일정한 기준에 따라 순서대로 나열하는 작업
*Dense Graph: 간선이 많은 그래프
그럼 Knowledge Graph는?
지금까지 Knowledge Graph에 대한 개념을 이해하기 위해 여러 기반 지식들을 다루어보았다. 그렇다면 Knowledge Graph는 어떤 특징을 가지는 그래프일까?
Knowledge Graph는 일반적으로 *Sparse Labelled Graph이다.
*Sparse Graph: 간선이 적은 그래프
따라서, 일반적으로 Knowledge Graph는 Adjacency List로 나타낸다. 그러나 때때로는 행렬 연산의 강점을 이용하기 위해서 Adjacency Matrix로 나타낼 때도 있다고 한다.
'대학원 공부 > Knowledge Graph' 카테고리의 다른 글
00 - Knowledge Graph 공부하기 (0) | 2024.03.03 |
---|