같은 대상 찾기, 엔티티 해소
‘김민수 1990 서울’과 ‘Kim Minsu 1990 서울’은 같은 사람일까요? 여러 출처를 합치는 지식 그래프는 이 판단을 수천만 번 해야 합니다. 그 흐름과 임계값의 의미를 계산으로 확인합니다.
이번 회차, 내 속도로.
기초를 더 짚거나 궁금한 주제로 잠깐 넓혀 보세요. 최대 3단계를 거쳐 DAY 68로 돌아옵니다.
난이도·관심 주제 고르기
1/2개 선택 · 새 보충·심화 수업과 본과정 다시 읽기를 선택할 수 있어요.
이렇게 다녀와요 1단계 · 약 12분
- 출발 · DAY 68엔티티 해소·임계값
- 1. 관심 주제인포박스 추출·매핑추가 27 · 새 추가 수업
- 복귀 · DAY 68원래 회차 이어가기
- 인포박스 추출·매핑 · DAY 66에서 지식 그래프의 정의를 봤다면, 대표적인 공개 지식 그래프 하나가 반쯤 구조화된 문서에서 어떻게 만들어지는지 따라가 봅니다.
선택과 경로 기록은 이 브라우저에 저장됩니다. 본과정의 회차 완료와는 별도입니다.
핵심 개념
엔티티 해소(entity resolution, ER)는 서로 다른 설명(레코드)이 같은 실세계 엔티티를 가리키는지 판정하는 일입니다. 중복 제거나 레코드 연결이라고도 부릅니다. Christophides 등(2019)의 서베이는 종단 간 흐름을 블로킹(blocking), 블록 처리(block processing), 매칭(matching), 군집화(clustering)의 네 작업으로 정리합니다.
모든 쌍을 비교하면 레코드 n개에 n(n−1)/2쌍이 필요해 금방 감당할 수 없어집니다. 블로킹은 같은 블록 키(생년, 우편번호, 이름 첫 글자 등)를 공유하는 레코드끼리만 비교 후보로 묶습니다. 블록 처리는 너무 큰 블록이나 불필요한 비교를 더 걸러 냅니다. 블록 키가 너무 엄격하면 생년이 잘못 입력된 진짜 중복이 다른 블록에 들어가 비교조차 되지 않는다는 점이 대가입니다.
매칭은 후보 쌍마다 속성별 유사도(이름 문자열 유사도, 생년 일치, 도시 일치 등)를 합쳐 점수를 내고, 임계값 이상이면 같은 엔티티로 판정합니다. 임계값을 높이면 정밀도(병합한 쌍 중 실제 중복의 비율)는 대개 오르고 재현율(실제 중복 쌍 중 찾아낸 비율)은 내려갑니다. 어느 쪽 실수가 더 비싼지가 임계값을 정합니다.
군집화는 쌍 판정을 묶어 엔티티 단위로 만듭니다. A=B, B=C이면 A·B·C를 한 엔티티로 보는데, 이 이행 때문에 잘못된 쌍 하나가 서로 다른 두 사람의 레코드 묶음 전체를 합칠 수 있습니다. 병합 결과는 공통 식별자나 owl:sameAs(DAY 59)로 기록하되 근거 점수를 함께 남기고, 임계값 근처의 애매한 쌍은 사람이 검토하는 구간으로 두는 경우가 많습니다.
작은 예제로 따라가기
레코드 R1 김민수·1990·서울, R2 김민수·1990·서울시, R3 Kim Minsu·1990·서울, R4 김민수·1985·부산. 정답 군집은 {R1,R2,R3}과 {R4}이고 실제 중복 쌍은 3개입니다. 쌍 점수(가상)는 R1–R2 0.95, R1–R3 0.80, R2–R3 0.78, R1–R4 0.60, R2–R4 0.58, R3–R4 0.40입니다.
임계값 0.9: R1–R2만 병합 → 정밀도 1/1 = 1.0, 재현율 1/3 ≈ 0.33. 임계값 0.75: 실제 중복 3쌍 모두 병합 → 정밀도 3/3, 재현율 3/3.
임계값 0.55: 위 3쌍에 R1–R4, R2–R4가 더해져 정밀도 3/5 = 0.6, 재현율 1.0입니다. 군집으로 묶으면 네 레코드가 모두 한 사람이 됩니다.
직접 실험해 보기
임계값 슬라이더를 낮추고 높이며 병합되는 쌍과 정밀도·재현율이 어떻게 바뀌는지 기록하고, 두 값의 균형이 가장 좋은 임계값을 골라 그 이유를 적으세요.
임계값을 움직여 같은 사람 레코드 병합하기
노드 아래 c1… = 예측 군집 · 연두 엣지 = 맞는 병합 · 주황 엣지 = 다른 사람을 합침
병합은 이행적이라 r1–r2, r1–r3이 붙으면 r2–r3도 같은 군집이 됩니다.
| 쌍 | 점수 | 판정 | 정답 |
|---|---|---|---|
| r1–r2 | 0.95 | 병합 | 같음 |
| r5–r6 | 0.92 | 병합 | 같음 |
| r5–r7 | 0.66 | – | 다름 |
| r1–r3 | 0.64 | – | 같음 |
| r1–r4 | 0.62 | – | 다름 |
| r2–r3 | 0.62 | – | 같음 |
| r6–r7 | 0.60 | – | 다름 |
| r2–r4 | 0.58 | – | 다름 |
| r3–r4 | 0.45 | – | 다름 |
| r1–r8 | 0.35 | – | 다름 |
| r2–r8 | 0.32 | – | 다름 |
| r3–r8 | 0.25 | – | 다름 |
| ID | 이름 | 생년 | 도시 | 정답 | 예측 |
|---|---|---|---|---|---|
| r1 | 김민수 | 1990 | 서울 | A | c1 |
| r2 | 김 민수 | 1990 | 서울시 | A | c1 |
| r3 | Kim Minsu | 1990 | Seoul | A | c2 |
| r4 | 김민수 | 1985 | 부산 | B | c3 |
| r5 | 이지아 | 1992 | 대전 | C | c4 |
| r6 | 이지아 | 1992 | 대전광역시 | C | c4 |
| r7 | 이지아 | 1995 | 대전 | D | c5 |
| r8 | 박서준 | 1990 | 서울 | E | c6 |
정밀도 = 같은 군집으로 묶은 쌍 중 정답인 비율, 재현율 = 정답 같은 쌍 4개 중 묶인 비율. 임계값을 낮추면 재현율이 오르고 정밀도가 떨어집니다.
이번에는 직접 풀어 보세요
정답을 보기 전에 계산과 이유를 적어 보세요. 해설과 비교하고 확인 표시를 남기면 완료할 수 있습니다.
힌트 보기
n개에서 만들 수 있는 쌍의 수는 n(n−1)/2입니다.
풀이와 비교하기
전체는 1000×999/2 = 499,500쌍입니다. 블로킹 후에는 블록마다 100×99/2 = 4,950쌍, 10개 블록이면 49,500쌍으로 약 10분의 1이 됩니다. 단, 생년이 잘못 입력된 중복은 다른 블록에 들어가 비교되지 않습니다.
풀이와 확인 표시는 이 브라우저에 저장됩니다.
오늘 이해한 것과 다시 볼 것
계산이 달라진 이유, 헷갈린 개념, 다음에 확인할 질문을 남겨 보세요.
메모는 이 브라우저에 저장됩니다. 홈에서 전체 기록을 내려받을 수 있습니다.오늘의 이해 확인
엔티티 해소에서 매칭 임계값을 높이면 일반적으로 어떻게 될까요?
완료 조건: 확인 퀴즈 정답 · / 직접 풀기 0/1
더 깊이 읽기
예제와 실험 데이터는 이 과정을 위해 만든 것입니다. 원문은 선택 자료이며, 강의와 직접 풀기만으로도 다음 회차를 이어갈 수 있습니다.
End-to-End Entity Resolution for Big Data: A SurveyChristophides et al. (2019)이 자료는 개념 학습용입니다. 실제 데이터베이스·라이브러리·플랫폼의 동작과 설정은 제품과 버전마다 다를 수 있습니다.