지식 그래프
텍스트 데이터 분석
14 지식 그래프
지식그래프
지식 그래프 knowledge graph
- 지식을 그래프 형태로 표현한 것
- 개인이나 사물, 장소 등의 개체를 점, 개체들 사이의 관계를 선으로 표현
그래프 graph
- 점과 선으로 이루어진 수학적 구조
- 흔히 말하는 "네트워크"
- 데이터 시각화를 위한 플롯이나 차트와 혼동하지 않도록 주의
- 점 point: 그래프에서 다루는 대상
- 꼭지점 vertex, 노드 node
- 선 line: 점들의 관계를 나타냄
- 변 edge, 링크 link
- 그래프로 표현할 수 있는 것
- 화학물질
- 지도
지식 그래프와 1차 술어 논리
- 지식 그래프의 점은 1차 술어 논리의 항(term), 선은 술어(predicate)에 해당하는 것으로 이해할 수 있음
- 이 경우, 지식 그래프는 1차 술어 논리를 다음과 같이 제한한 것
- 모든 술어가 2항 술어: predicate(head, tail)
- 모든 명제는 AND 관계만 가짐(NOT, OR는 표현 X)
- 단, 질의에는 AND, OR, NOT을 모두 사용할 수 있음
- 변수와 양화사 없음
- 표현력은 제한
- 지식베이스 구축이 쉽고, 타당하고 완전한 추론이 가능하며, 결정가능함
온톨로지(Ontology)
- 특정 도메인에서 사용하는 개념, 관계, 제약 조건을 명시적으로 정의한 체계
- 지식그래프의 개념 설계도
- 온톨로지의 주요 구성 요소:
- Class: 개체의 종류
- Instance: 실체 개체
- Property: 개체 간 관계 또는 속성
- Hierarchy: 개념 간 상하 관계
- 예시:
- FOAF: 인간 관계
- schema.org: 검색엔진이 웹페이지의 의미를 이해하기 위한 온톨로지
- Dublin Core: 문서 관리
관계형 데이터베이스와 차이점
- 관계형 데이터베이스 (RDB):
- 정해진 스키마(테이블 구조)에 데이터를 저장.
- 데이터 간 관계는 주로 외래 키(Foreign Key)를 통해 표현.
- 복잡한 관계 표현 및 추론에 한계(다수의 JOIN을 포함하는 복잡한 쿼리)
- 지식 그래프:
- 스키마가 유연하거나 스키마 없이도 데이터 표현 가능 (Schema-agnostic/flexible).
- 관계 자체를 중심으로 데이터를 모델링 (예: 주어-술어-목적어 트리플).
- 데이터의 의미와 관계를 명시적으로 표현하여 추론 및 의미 기반 검색에 유리.
- LLM과 조합하여 사용할 때 관계형DB보다 더 성능이 높다는 연구가 있음
관계형DB 지식 그래프
A Benchmark to Understand the Role of Knowledge Graphs on Large Language Model's Accuracy for Question Answering on Enterprise SQL Databases (https://arxiv.org/abs/2311.07509)
지식그래프의 표현 방법
RDF: Resource Description Framework
- 웹표준
- 그래프로 표현된 데이터를 교환하기 위한 목적
LPG: Labeled Property Graph
- 점이나 선에 속성값을 부여할 수 있음
- 데이터 저장, 검색 등의 목적
그래프 검색 언어
- Cypher
- 읽기 쉬움
- Gremlin
- 복잡한 검색을 효율적으로 할 수 있음
- 저수준 언어
- SPARQL
- RDF를 위한 검색 언어
- SQL과 비슷한 문법
그래프 DB
- 그래프 데이터에 특화된 데이터베이스
- 오픈소스:
- Neo4j: 가장 유명한 그래프DB(Cyper)
- Apache TinkerPop: 다양한 DB를 지원하는 그래프 계산 프레임워크(Gremlin)
- AgensGraph: PostgreSQL 기반
- Apache AGE: AgensGraph와 비슷
- Memgraph: 인-메모리
- 클라우드
- AWS Neptune: Cyper, Gremlin, SPARQL 지원
- Azure CosmosDB: Gremlin을 지원하는 NoSQL DB
지식 그래프 구현의 어려움
- 모델링의 애매함:
- 같은 사실도 여러 방식으로 모델링할 수 있음
- 예) 상품 구매를 하나의 edge로 구현할 수도 있고, 구입이라는 하나의 사건을 node로 구현할 수도 있음
- 초기에 잘못 설계하면 나중에 질의가 복잡해지거나 확장이 어려워짐
- 데이터 통합과 엔티티 해소:
- 지식 그래프는 여러 출처의 데이터를 연결할 때 가치가 커짐
- 서로 다른 출처의 두 이름이 같은 개체인지 판단하는 문제가 발생
- 데이터 품질 문제가 그래프 전체로 전파되기 쉬움:
- 지식 그래프는 연결된 구조를 바탕으로 추론
- 잘못된 관계가 연결되면 오류가 전파
- 관계가 없는 것 ≠ 거짓:
- 지식 그래프는 현실 세계의 일부만 포함
- 그래프에 어떤 관계가 없다고 해서 그 관계가 거짓이라는 뜻이 아님
- 성공 사례 및 전문 인력 부족 등