지식 그래프 구축 기초: 엔티티·관계 추출, 스키마 설계, 엔티티 해소

구축 파이프라인 — 텍스트 → NER → RE → 스키마 → 엔티티 해소 → 지식 그래프 지식 그래프 구축 파이프라인 비정형 텍스트 NER · RE 사람 회사 개체 + 관계 쌍 (주어–술어–목적어) 추출 스키마 사람 ⊑ 개체 회사 ⊑ 조직 근무: 사람→회사 출시: 회사→제품 타입 정의 엔티티 해소 같은 실체 → 하나로 병합 지식 그래프 전통 파이프라인의 방법과 한계 · 규칙·통계·지도학습 — 도메인마다 라벨링·튜닝 비용이 크고, 새 관계 유형에 취약 · 엔티티 해소가 가장 지저분하고 어렵다 — 현실 데이터엔 전역 식별자가 없다 → 4단계에서 LLM이 추출을 뒤집는다 (다만 스키마·해소 숙제는 남는다)
구축 파이프라인을 한 장으로 — 비정형 텍스트에서 NER로 개체를, RE로 관계를 뽑고, 스키마로 담을 타입을 정하고, 엔티티 해소로 흩어진 같은 실체를 하나로 병합해 그래프를 완성한다. 전통 파이프라인의 한계를 알아야 4단계의 LLM 추출이 무엇을 바꾸는지 보인다.

들어가며

이 글은 Agentic Knowledge Graph Curriculum3단계입니다. 1단계에서 “왜 그래프인가”를, 2단계에서 “어떻게 저장·질의하는가”를 익혔습니다. 그런데 그래프 DB는 비어 있는 그릇입니다 — 무엇으로 채울 것인가?

지식 그래프의 재료는 결국 어딘가의 텍스트·표·API에서 뽑아낸 개체와 관계입니다. 이 글은 그 구축(construction)의 기초 세 가지를 다룹니다 — 텍스트에서 개체를 찾고 관계를 뽑는 추출, 그래프가 담을 개념을 정하는 스키마 설계, 그리고 여러 소스에 흩어진 같은 실체를 하나로 묶는 엔티티 해소입니다.

여기서 중요한 순서가 있습니다. 다음 4단계에서 우리는 LLM으로 이 추출을 뒤집습니다 — 정교한 규칙·라벨링 없이 프롬프트로 트리플을 뽑아내죠. 하지만 LLM 이전의 전통 파이프라인을 먼저 이해해야, LLM이 무엇을 대체하고 무엇을 못 하는지가 보입니다. LLM은 추출의 문턱을 극적으로 낮추지만, 스키마 규율과 엔티티 해소라는 옛 숙제는 지우지 못합니다 — 오히려 그것들이 품질을 가릅니다.

📌 이 글에서 다루는 내용

  • 엔티티·관계 추출(NER/RE): 텍스트에서 개체를 찾는 개체명 인식과 개체 쌍의 관계를 뽑는 관계 추출, 규칙→통계→지도학습으로 이어진 전통 파이프라인의 구성과 한계
  • 스키마·온톨로지 설계: 그래프가 담을 타입과 관계를 정하는 일, 스키마-우선(schema-first)과 스키마-유연(schema-flexible)의 트레이드오프
  • 엔티티 해소: 여러 소스의 같은 실체를 하나로 묶기 — 블로킹·매칭·중복 제거, 현실 데이터엔 전역 식별자가 없다는 근본 난제

한눈에 보기 — 채우기의 네 관문

그래프를 채우는 일은 하나의 파이프라인입니다. 텍스트가 개체가 되고, 개체가 관계로 이어지고, 관계가 정해진 타입에 얹히고, 흩어진 조각이 하나의 실체로 병합됩니다. 어느 관문이든 실패하면 그래프의 신뢰가 무너집니다.

flowchart LR
    TXT["비정형 텍스트<br/>기사·리포트·로그"]
    NER["① 개체명 인식 (NER)<br/>'누리테크' = 회사"]
    RE["② 관계 추출 (RE)<br/>김지수 —근무→ 누리테크"]
    SCH["③ 스키마 설계<br/>담을 타입·관계 정의"]
    ER["④ 엔티티 해소<br/>'Nuritech'='누리테크'"]
    KG["지식 그래프"]

    TXT --> NER --> RE --> SCH --> ER --> KG
    SCH -.->|"스키마가 추출을 안내"| NER
    ER -.->|"품질 문제 발견 → 재추출"| RE

점선이 말해 주듯, 이 파이프라인은 한 방향으로만 흐르지 않습니다 — 스키마가 추출을 안내하고, 해소 단계에서 발견한 문제가 추출로 되돌아갑니다. 구축은 반복(iterative)입니다.

엔티티·관계 추출 — 텍스트를 사실로

개체명 인식(NER)

개체명 인식(Named Entity Recognition)은 텍스트에서 개체를 가리키는 조각을 찾아 종류를 붙이는 일입니다. “김지수는 2021년 누리테크에 합류했다”에서 김지수(사람), 2021년(날짜), 누리테크(회사)를 식별합니다. 이 개체들이 그래프의 노드 후보입니다.

관계 추출(RE)

관계 추출(Relation Extraction)은 식별된 개체 쌍 사이의 관계를 뽑습니다. 같은 문장에서 (김지수, 근무, 누리테크), (김지수, 합류시점, 2021년) 트리플을 만들어 냅니다. 이 관계들이 그래프의 엣지가 됩니다. NER이 노드를, RE가 엣지를 만들어 함께 트리플을 완성하는 구조입니다.

입력:  "김지수는 2021년 누리테크에 합류해 미리내 개발을 이끌었다."

NER:   [김지수]사람  [2021년]날짜  [누리테크]회사  [미리내]제품
RE:    (김지수)-[근무]->(누리테크)
       (김지수)-[합류시점]->(2021년)
       (누리테크)-[개발]->(미리내)
       (김지수)-[주도]->(미리내)

전통 파이프라인과 그 한계

LLM 이전, 이 추출은 세 갈래로 발전했습니다.

  • 규칙 기반: “X는 Y에 합류했다” 같은 패턴을 손으로 작성. 정밀하지만 표현 변주에 취약하고, 규칙 관리가 폭발합니다.
  • 통계·지도학습: 라벨링된 코퍼스로 시퀀스 모델(CRF 등)이나 신경망을 학습. 성능은 좋지만 도메인마다 대량의 라벨링이 필요합니다.
  • 사전·온톨로지 매칭: 알려진 개체 사전(gazetteer)과 대조. 새 개체·신조어에 약합니다.

공통의 한계는 분명합니다 — 도메인이 바뀌면 처음부터 다시입니다. 의료 논문용으로 튜닝한 추출기는 금융 리포트에 그대로 못 씁니다. 새 관계 유형을 추가하려면 라벨링과 재학습이 따라옵니다. 이 높은 비용과 낮은 이식성이, 4단계에서 LLM이 판을 뒤집는 배경입니다 — LLM은 라벨링 없이 프롬프트만으로 새 도메인·새 관계에 적응합니다. (예: 바이오 분야에서 약물–질환–유전자 추출은 전통적으로 BioBERT 같은 도메인 특화 모델과 라벨링에 크게 의존했습니다.)

스키마·온톨로지 설계 — 그래프가 담을 세계

추출된 트리플을 그냥 쌓기만 하면 일관성 없는 잡동사니가 됩니다. 스키마(온톨로지)는 그래프가 담을 타입과 관계를 미리 정의합니다 — “사람·회사·제품이라는 노드 타입이 있고, 근무·출시라는 관계가 있으며, 근무는 사람에서 회사로만 향한다.” 이 규율이 있어야 추출이 일관되고 질의가 예측 가능해집니다.

핵심 트레이드오프는 스키마-우선 vs 스키마-유연입니다.

  • 스키마-우선(schema-first): 타입·관계를 먼저 엄격히 정의하고 그에 맞는 것만 받습니다. 일관성·품질이 높지만 경직되고, 예상 못 한 사실을 놓칩니다. RDF/OWL 진영과 규제 도메인이 이 쪽에 가깝습니다.
  • 스키마-유연(schema-flexible): 일단 넓게 받고 점진적으로 구조를 조입니다. 새 도메인·탐색적 구축에 유리하지만 관리가 필요합니다. 속성 그래프와 LLM 기반 구축이 이 쪽에 가깝습니다.

지식 그래프의 스키마 설계는 사실상 도메인 모델링입니다 — “무엇을 노드로, 무엇을 속성으로, 무엇을 관계로 승격할 것인가”라는 판단이 표현력과 사용성을 가릅니다. 이 모델링 사고의 깊은 결은 자매 시리즈 Ontology Essential의 객체·링크 설계 단계에서 본격적으로 다루므로, 여기서는 “추출이 얹힐 뼈대를 정한다”는 역할까지만 잡습니다.

엔티티 해소 — 흩어진 조각을 하나로

구축에서 가장 지저분하고 가장 어려운 관문입니다. 엔티티 해소(entity resolution, 또는 identity resolution)는 여러 소스에 흩어진 같은 실체를 하나의 노드로 묶는 일입니다.

문제의 뿌리는 하나입니다 — 현실 데이터에는 전역 식별자가 없습니다. 2단계에서 본 RDF의 URI 같은 깔끔한 전역 이름은 이미 정리된 세계의 이야기이고, 원천 데이터는 그렇지 않습니다.

소스 A(CRM):     "누리테크"        cust_id=4021
소스 B(계약서):   "Nuritech Inc."      vendor=NT-77
소스 C(뉴스):     "㈜누리테크"       —
소스 D(이메일):   "nuritech.io"        —

→ 넷은 같은 회사인가? 사람이 봐도 헷갈리는 것을 기계가 판정해야 한다.
엔티티 해소 — 흩어진 네 표기가 하나의 노드로 병합 여러 소스의 같은 실체 하나의 노드 누리테크 CRM · cust_id=4021 Nuritech Inc. 계약서 · vendor=NT-77 ㈜누리테크 뉴스 nuritech.io 이메일 도메인 엔티티 해소 누리테크 대표 노드 · +신뢰도 현실 데이터엔 전역 식별자가 없다 — 표기·식별자가 소스마다 다르다
엔티티 해소란 — 서로 다른 소스에 다른 이름·식별자로 흩어진 같은 실체를 하나의 대표 노드로 묶는 일. 전역 식별자가 없기에, 표기가 달라도 같은 것을 판정해 병합해야 한다.

전통적 접근은 대략 이렇게 흘러갑니다.

  • 블로킹(blocking): 모든 쌍을 비교하면 O(n²)이라 불가능하므로, 후보를 좁힙니다(예: 같은 도메인·같은 지역끼리만 비교).
  • 매칭(matching): 후보 쌍의 유사도를 계산합니다 — 문자열 거리(Jaro-Winkler 등), 속성 일치(주소·대표자), 규칙 또는 학습된 분류기.
  • 군집·병합(clustering): 유사도가 높은 것들을 하나의 실체로 묶고, 대표 노드로 통합합니다. 이때 신뢰도(confidence)를 남겨 두는 것이 중요합니다.

세 단계는 하나의 깔때기입니다 — 감당 못 할 O(n²) 비교를 블로킹으로 좁히고, 매칭으로 점수를 매기고, 군집·병합으로 실체를 합칩니다. 애매한 쌍은 사람 검수로 되돌립니다.

flowchart LR
    ALL["모든 쌍 비교<br/>O(n²) — 감당 불가"]
    BLK["① 블로킹<br/>후보 쌍만 남김"]
    MAT["② 매칭<br/>유사도 계산"]
    CLU["③ 군집·병합<br/>같은 실체로 묶기"]
    NODE["대표 노드<br/>+ 신뢰도"]
    HUM["사람 검수<br/>(휴먼인더루프)"]

    ALL --> BLK --> MAT --> CLU --> NODE
    MAT -.->|"애매한 쌍"| HUM
    HUM -.-> CLU

엔티티 해소가 어려운 이유는 오류의 양면성 때문입니다 — 다른 둘을 잘못 합치면(false merge) 서로 무관한 사실이 한 노드에 뒤섞여 그래프가 오염되고, 같은 하나를 못 합치면(false split) 연결이 끊겨 다중 홉 질의가 실패합니다. 그래서 완전 자동화보다 사람 검수(휴먼인더루프)를 남기는 것이 실무의 표준입니다 — 이 원칙은 4단계 LLM 구축의 품질 관리로 그대로 이어집니다.

false merge 대 false split — 병합의 두 방향 오류 false merge · 잘못된 병합 다른 둘을 하나로 합침 누리테크 (서울) 누리테크 (부산) 누리테크 사실이 뒤섞임 → 무관한 사실이 오염 · 그래프 신뢰 붕괴 false split · 잘못된 분리 같은 하나를 못 합침 누리테크 Nuritech 같은 실체인데 끊김 → 연결 끊김 · 다중 홉 질의 실패
병합은 양방향으로 틀릴 수 있다. 다른 둘을 합치면(false merge) 무관한 사실이 한 노드에 뒤섞여 그래프가 오염되고, 같은 하나를 못 합치면(false split) 연결이 끊겨 다중 홉 질의가 실패한다. 이 균형이 그래프의 신뢰를 정한다.

이 관문이 왜 결정적인지는 도메인 사례가 잘 보여 줍니다. 금융에서 규제 대상(제재 리스트) 엔티티 해소는 이름 철자 변주·위장 법인을 뚫고 같은 실체를 찾아야 하고, 헬스케어에서 환자 360° 그래프는 병원·보험·약국에 흩어진 같은 환자를 안전하게 묶어야 합니다. 잘못된 병합이 곧 규제 위반이나 의료 사고가 되는 영역에서, 엔티티 해소의 품질은 그래프 전체의 신뢰와 같습니다.

정리

  • 그래프를 채우는 일은 파이프라인입니다 — NER로 개체를, RE로 관계를 뽑고, 스키마로 타입을 정하고, 엔티티 해소로 흩어진 실체를 병합합니다. 반복적이며, 뒤 관문의 발견이 앞 관문으로 되돌아갑니다.
  • NER + RE가 트리플을 만든다: 개체가 노드, 관계가 엣지. 전통 파이프라인(규칙·통계·지도학습)은 강력하지만 도메인마다 라벨링·튜닝 비용이 크고 이식성이 낮습니다 — 4단계 LLM이 뒤집는 지점입니다.
  • 스키마는 추출이 얹힐 뼈대입니다. 스키마-우선(일관성)과 스키마-유연(적응성) 사이의 선택이 구축 스타일을 가릅니다.
  • 엔티티 해소가 가장 어렵고 가장 결정적입니다. 현실엔 전역 식별자가 없어, 블로킹·매칭·병합과 사람 검수로 같은 실체를 묶어야 합니다. false merge와 false split의 균형이 그래프의 신뢰를 정합니다.

다음 글에서는 이 전통 파이프라인을 LLM이 어떻게 뒤집는지 — 스키마를 프롬프트로 유도해 문서에서 트리플을 뽑아내는 LLM 기반 구축, 그리고 그 위에서 여전히 필요한 품질·검증·휴먼인더루프 — 를 다룹니다.

다음 학습 (Next Learning)

  • 4단계 · LLM 기반 그래프 구축: 스키마 유도 추출·검증·휴먼인더루프 — 전통 파이프라인을 LLM이 뒤집는 자리 (작성 예정)
  • 2단계 · 그래프 DB와 질의 — 추출한 트리플을 담을 저장소로 돌아가기
  • Ontology Essential Curriculum — 스키마·객체·링크 설계의 모델링 사고를 더 깊게