
KGGen: Extracting Knowledge Graphs from Plain Text with Language Models
핵심 포인트
- 1KGGen은 LLM과 새로운 엔티티 및 관계 해상도 (entity and relation resolution) 알고리즘을 활용하여 일반 텍스트에서 고품질의 밀도 높은 Knowledge Graph (KG)를 추출하는 새로운 방법론을 제시합니다.
- 2본 연구는 KG 추출 성능을 측정하는 최초의 벤치마크인 MINE (Measure of Information in Nodes and Edges)을 도입했으며, KGGen은 기존 방법론에 비해 뛰어난 정보 유지율과 확장성을 보였습니다.
- 3KGGen은 엔티티와 관계를 효과적으로 군집화하고 중복을 제거함으로써 KG의 희소성 (sparsity) 문제를 크게 줄이며, 대규모 텍스트 코퍼스에서도 관계 유형의 재사용성 (reusability)을 높여 효율성을 입증했습니다.
KGGen은 Knowledge Graph(KG) 데이터의 희소성과 불완전성 문제를 해결하기 위해 고안된 새로운 텍스트-KG 생성기입니다. 기존의 KG 추출 방법론인 OpenIE나 Microsoft의 GraphRAG는 Entity Resolution 및 Relation Normalization 메커니즘이 부족하여 스파스하고 단절된 KG를 생성하는 경향이 있습니다. KGGen은 이러한 한계를 극복하기 위해 Language Model(LM)과 독창적인 Entity 및 Edge Resolution 알고리즘을 결합하여 고품질의 밀도 높은 KG를 추출합니다.
KGGen의 핵심 방법론은 세 가지 주요 단계로 구성됩니다:
- Entity 및 Relation Extraction (개체 및 관계 추출):
- 1단계: 원본 텍스트에서 Entity 목록을 추출합니다.
- 2단계: 원본 텍스트와 추출된 Entity 목록을 바탕으로 Subject-Predicate-Object 관계의 목록을 추출합니다.
- Aggregation (통합):
- Entity 및 Edge Resolution (개체 및 Edge 해결):
- 클러스터링: 그래프의 모든 항목(Entity 또는 Edge)에 대해 S-BERT를 사용하여 Semantic Embedding을 생성합니다. 이 Embedding들을 K-means 클러스터링 알고리즘을 통해 128개의 항목으로 구성된 클러스터로 묶습니다.
- 중복 제거:
- 각 클러스터 내에서, BM25와 Semantic Embedding의 융합된 접근 방식을 사용하여 Top-k (여기서는 k=16)개의 의미적으로 가장 유사한 항목을 검색합니다.
- LM은 이 검색된 항목들로부터 정확한 중복 항목을 식별하도록 프롬프트됩니다. 이때 시제, 복수형, 대소문자, 약어, 속기 형태 등의 변형을 고려합니다.
- 식별된 중복 항목들의 각 집합에 대해, LM은 해당 집합의 공유된 의미를 가장 잘 나타내는 Canonical Representative (정식 대표)를 선택합니다 (Wikidata의 alias와 유사). Cluster Map은 어떤 Entity가 어떤 alias에 속하는지를 추적합니다.
- 해당 항목과 그 중복 항목들은 클러스터에서 제거되며, 클러스터에 항목이 더 이상 남아있지 않을 때까지 1-3단계를 반복합니다.
KGGen은 기존 벤치마크의 부재를 해결하기 위해 새로운 벤치마크인 MINE(Measure of Information in Nodes and Edges)을 도입했습니다. MINE은 MINE-1 (정보 유지)과 MINE-2 (KG 기반 RAG 성능) 두 가지 하위 작업을 포함합니다. MINE-1은 짧은 텍스트에서 KG 추출기가 정보를 얼마나 잘 포착하는지 측정하며, MINE-2는 수백만 토큰 규모의 데이터셋에서 KG의 실용성을 평가합니다.
실험 결과, KGGen은 MINE-1에서 GraphRAG(47.80%) 및 OpenIE(29.84%)를 크게 능가하는 평균 66.07%의 성능을 보였습니다. 특히 Claude Sonnet 3.5 모델을 사용했을 때 73%의 MINE-1 점수를 달성하며 다양한 LM에 걸쳐 견고한 성능을 유지함을 입증했습니다. MINE-2에서는 GraphRAG와 비슷한 RAG 성능을 보여주었습니다.
정성적 평가에서는 KGGen이 GraphRAG와 OpenIE에 비해 더 유익하고 일관성 있는 KG를 생성함을 확인했습니다. GraphRAG는 스파스한 그래프를, OpenIE는 비일관적인 노드와 중복이 심한 그래프를 생성하는 경향이 있었습니다. KGGen은 corpus의 크기가 증가함에 따라 Edge Type이 재사용되는 비율이 현저히 높아져(GraphRAG는 평균 2회, KGGen은 평균 10회 이상), 관계 일반화 능력이 우수함을 보였습니다.
효율성 및 비용 분석에서 KGGen은 1백만 문자 규모의 코퍼스 처리 시 총 551초가 소요되어 GraphRAG의 2,319초보다 훨씬 빠르다는 것을 입증했습니다. 또한, KGGen의 Entity 및 Edge Resolution 단계는 1백만 문자 코퍼스에서 Entity를 22.4%, Edge를 23% 줄이는 상당한 중복 제거 효과를 보여주었습니다. 이는 KGGen이 정보 손실 없이 밀도 높은 KG를 효율적으로 생성할 수 있음을 의미합니다.
KGGen은 [https://github.com/stair-lab/kg-gen/](https://github.com/stair-lab/kg-gen/)에서 오픈 소스로 공개되어 있습니다.