15분
"1조 번 비교하라고요?" - 조합 폭발의 공포
Day 3: Blocking & Indexing 전략
"1조 번 비교하라고요?" - 조합 폭발의 공포
Entity Resolution & 데이터 통합 > Day 3: Blocking & Indexing 전략
학습 목표
전체 비교의 계산 복잡도 문제를 이해한다 Blocking의 필요성을 파악한다
"1억 건 고객 데이터 매칭해주세요"
CDO의 다음 요청.
"이번에는 1억 건 고객 데이터입니다. 중복 제거해주세요."
단순 접근: 모든 쌍 비교
에디터 로딩 중...
비교 1건당 1ms 소요 시
에디터 로딩 중...
금요일 퇴근까지 끝내야 하는데...
Record Linkage는 더 심각
에디터 로딩 중...
절대 불가능.
해결책: Blocking
모든 쌍을 비교하지 말고, 비슷할 가능성이 있는 쌍만 비교하자
에디터 로딩 중...
Blocking 아이디어
"같은 사람이면 최소한 OO는 같을 것이다"
| Blocking Key | 예시 |
|---|---|
| 지역 | 서울 vs 서울만 비교 |
| 우편번호 앞 3자리 | 135-xxx끼리만 비교 |
| 이름 첫 글자 | 김xx끼리만 비교 |
| 생년 | 1990년생끼리만 비교 |
트레이드오프
Blocking이 너무 엄격하면:
- 비교 횟수 ↓
- 실제 매칭 놓침 (False Negative) ↑
Blocking이 너무 느슨하면:
- 비교 횟수 ↑
- 시간/비용 증가
목표: 최소 비교로 최대 매칭 커버
오늘 배울 것
- Blocking 전략 - Block, Sorted Neighbourhood, Canopy
- Indexing 구현 - recordlinkage로 실습
- 성능 평가 - Reduction Ratio, Pairs Quality
- 실전 최적화 - 여러 Blocking Key 조합
조합 폭발을 피하는 법을 배우자.