본문으로 건너뛰기
🐨코알라 오딧세이
🐨
이다운
코알라 오딧세이

새 글 알림 받기

© 2026 이다운

글 목록
AI/AGENT/Ontology

KGGen: 텍스트에서 지식 그래프를 생성하는 새로운 방법

평문(plain text)으로부터 자동으로 고품질 지식 그래프를 생성하는 KGGen 논문 리뷰. 동의어 군집화로 희소성을 줄이고 새로운 평가 기준 MINE을 제안한 접근법을 정리합니다.

KGGen: 텍스트에서 지식 그래프를 생성하는 새로운 방법

AI/LLM 시리즈 : KGGen 논문 리뷰

논문 주소: arxiv.org/pdf/2502.09956

최근 자연어 처리 분야에서는 **지식 그래프(Knowledge Graph, KG)**의 중요성이 크게 증가했습니다. 지식 그래프는 개체(entity)와 관계(relation)를 구조화된 형태로 나타내는 데이터 구조로, 검색, 추천, 질문응답 등 다양한 응용에서 핵심으로 사용됩니다.

하지만 실제로 양질의 지식 그래프 데이터를 확보하는 일은 매우 어렵습니다. 대규모 그래프들은 대부분 사람이 직접 라벨링하거나 고정된 패턴으로 생성된 것으로, 새로운 도메인이나 텍스트에 적용하기 어렵습니다.

이 문제를 해결하기 위해 본 논문에서는 KGGen이라는 도구를 제안했습니다. KGGen은 평문(plain text)으로부터 자동으로 고품질의 지식 그래프를 생성하는 시스템으로, 기존 추출기와 달리 유사한 개체들을 묶어(synonym clustering) 그래프의 희소성을 줄이는 데 초점을 맞추었습니다.


핵심 아이디어

1. 텍스트 → 그래프 추출

KGGen은 먼저 주어진 텍스트에서 LLM을 이용해 "주어-관계-목적어(subject-predicate-object)" 형태의 삼중 구조(triple)를 예측합니다. 이 단계는 대부분 언어 모델의 추론 능력에 기반합니다.

2. 군집화 기반 개체/관계 정규화

단순히 추출한 삼중 구조만으로는 동일한 개체가 여러 이름으로 분리되거나 관계 라벨이 불일치하는 문제가 생깁니다. KGGen은 이 문제를 해결하기 위해 유사한 개체를 군집화하고 정규화하는 알고리즘을 도입했습니다. 이를 통해 보다 조밀하고 일반화 가능한 그래프를 생성합니다.

3. 그래프 평가 기준: MINE

KGGen과 함께 **MINE(Measure of Information in Nodes and Edges)**라는 새로운 평가 기준을 제시했습니다. MINE은 생성된 그래프가 원본 텍스트 정보를 얼마나 충실하게 담고 있는지를 평가하는 벤치마크입니다. 이를 통해 KGGen과 기존 방법들(OpenIE, GraphRAG 등)의 성능을 비교했습니다.


설치 및 기본 사용법

KGGen은 Python 라이브러리로 공개되어 있어 간단히 설치하고 사용할 수 있습니다.

pip install kg-gen

설치 후, 기본적인 지식 그래프 생성은 아래 코드처럼 수행합니다.

from kg_gen import KGGen

# KGGen 초기화: 사용할 언어 모델 지정
kg = KGGen(model="openai/gpt-4o", temperature=0.0)

# 입력 텍스트
text_input = "Alan Turing developed the Turing machine. The Turing machine is fundamental in computer science."

# 지식 그래프 생성
graph = kg.generate(input_data=text_input)

# 그래프 정보 출력
print("Entities:", graph["entities"])
print("Relations:", graph["relations"])
print("Edges:", graph["edges"])

대규모 텍스트 처리

KGGen은 긴 문서나 수백만 토큰 규모의 텍스트도 처리할 수 있도록 설계되어 있습니다.

from kg_gen import KGGen

kg = KGGen(model="openai/gpt-4o", temperature=0.0)

# 큰 텍스트를 파일로 읽기
with open("large_corpus.txt", "r") as f:
    large_text = f.read()

# 그래프 생성
large_graph = kg.generate(input_data=large_text)

# 생성된 지식 그래프를 시각화 또는 저장
kg.visualize(large_graph, output_path="large_graph.svg")

성능 비교와 결과

MINE 평가 결과 KGGen은 정보 보존율이나 관계 일반화 측면에서 기존 방법(OpenIE, GraphRAG 등) 대비 우수한 성능을 보였습니다. 특히 텍스트 데이터가 커질수록 희소성을 줄인 그래프 구조를 유지하는 데 효과적이라고 보고했습니다.


결론

KGGen은 다음과 같은 장점을 가집니다.

자동화된 지식 그래프 생성은 인간 개입 없이 텍스트로부터 그래프 생성이 가능합니다. 희소성 감소는 동일하거나 유사한 개체/관계를 군집화하여 보다 조밀한 그래프를 만들어냅니다. 평가 기준 제안으로 MINE이라는 새로운 벤치마크를 통해 KG 품질을 객관적으로 평가할 수 있습니다. 파이썬 라이브러리 제공으로 누구나 pip install kg-gen 한 줄로 시작할 수 있습니다.

지식 그래프 자동 추출은 검색, 질문응답, 지능형 에이전트 등에 활용 가능성이 크기 때문에, KGGen은 관련 연구와 응용에서 중요한 도구가 될 것으로 기대합니다.

관련 글

댓글

0 / 1000