LOTS-OResearch Notes

TL;DR

  • Entity Linking은 문장 속 이름이 현실의 어느 대상을 가리키는지 찾아 지식베이스의 고유 항목과 연결하는 작업이다.
  • 먼저 연결할 표현을 찾고(MD), 문맥에 맞는 대상을 고른다(ED).
  • 맞는 항목이 지식베이스에 없으면 NIL로 처리할 수 있다.

Entity Linking은 텍스트 개체를 지식베이스에 연결한다

Entity Linking(EL)은 문장 속 이름이 실제로 누구 또는 무엇을 가리키는지 찾아내는 작업이다.

예를 들어 다음 문장에서 한화는 여러 대상을 가리킬 수 있다.

류현진이 한화로 돌아왔다.

한화만 보면 한화그룹·한화솔루션·한화 이글스 중 무엇인지 알 수 없다. 주변 문맥인 류현진과 돌아왔다를 함께 보면 여기서는 야구단 한화 이글스를 가리킨다고 판단할 수 있다.

문장의 “한화” → 지식베이스의 “한화 이글스” 항목

이처럼 텍스트의 표현을 위키데이터·DBpedia·YAGO 같은 지식베이스의 고유 항목에 연결하면 같은 대상을 일관된 식별자로 다룰 수 있다.

연결 과정

Entity Linking은 보통 다음 두 단계로 설명한다.

  1. MD(Mention Detection): 연결할 표현의 위치와 범위를 찾는다.
    • 예: 류현진, 한화
  2. ED(Entity Disambiguation): 문맥을 보고 각 표현이 가리키는 지식베이스 항목을 고른다.
    • 예: 한화 → 한화 이글스

두 단계를 한 모델이 처음부터 끝까지 처리하면 End-to-End Entity Linking이라고 한다. 이미 찾은 표현을 입력받아 두 번째 단계만 수행하는 방식은 Disambiguation-Only라고 한다.1

NER와의 차이

NER(Named Entity Recognition)는 문장에서 사람·장소·조직 같은 이름을 찾고 유형을 붙인다.

NER: “한화”는 조직이다.
EL:  “한화”는 한화 이글스라는 고유 항목이다.

NER는 MD에 활용할 수 있지만 둘은 같은 작업이 아니다. NER가 이름과 유형을 찾는다면 EL은 그 이름을 특정 지식베이스 항목에 연결한다. EL이 항상 NER를 별도 단계로 실행해야 하는 것도 아니다.

관계 추출과의 차이

Entity Linking의 결과는 개체 식별자까지다.

“류현진” → 류현진 항목
“한화”   → 한화 이글스 항목

두 개체 사이에 어떤 관계가 있는지 알아내는 것은 관계 추출(relation extraction) 이다. 관계 추출까지 수행하면 다음과 같은 진술을 만들 수 있다.

류현진 → 소속팀 → 한화 이글스

새 노드를 만들거나 이 진술을 [[지식그래프]]에 저장하는 일도 후속 구축 단계다. 실제 적재에서는 관계가 성립한 시점과 출처를 함께 고려해야 한다.

대응 항목이 없는 경우

문장 속 대상이 지식베이스에 아직 등록되지 않았을 수도 있다. 이런 경우에는 기존 항목을 억지로 고르지 않고 NIL, 즉 “대응 항목 없음”으로 처리할 수 있다.

일부 태스크는 여러 NIL 표현이 같은 실세계 대상을 가리키는지도 묶는다. 지식베이스 안에 있는 개체만 평가하는 벤치마크도 있으므로 NIL 처리의 필요 여부는 태스크 설정에 따라 달라진다.2


Connections

출처

  1. End-to-End Neural Entity Linking ↩︎

  2. Entity Linking with a Paraphrase Flavor ↩︎