logo

지식 그래프

텍스트 데이터 분석

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로 구현할 수도 있음
    • 초기에 잘못 설계하면 나중에 질의가 복잡해지거나 확장이 어려워짐
  • 데이터 통합과 엔티티 해소:
    • 지식 그래프는 여러 출처의 데이터를 연결할 때 가치가 커짐
    • 서로 다른 출처의 두 이름이 같은 개체인지 판단하는 문제가 발생
  • 데이터 품질 문제가 그래프 전체로 전파되기 쉬움:
    • 지식 그래프는 연결된 구조를 바탕으로 추론
    • 잘못된 관계가 연결되면 오류가 전파
  • 관계가 없는 것 ≠ 거짓:
    • 지식 그래프는 현실 세계의 일부만 포함
    • 그래프에 어떤 관계가 없다고 해서 그 관계가 거짓이라는 뜻이 아님
  • 성공 사례 및 전문 인력 부족 등
Previous
SAT
Next
RDF