2. 实体解析基础回顾
2.1 实体解析定义
实体解析(Entity Resolution, ER)是指从一条或多条数据源中识别出指向同一真实世界实体的记录,并将这些记录合并或链接起来的过程。在数据质量领域,ER 是消除重复、构建单一客户视图、实现主数据管理(MDM)的核心技术。
核心目标:给定两条记录,判断它们是否描述同一实体(人、组织、产品等),并输出合并后的干净记录。
ER 在不同场景下有不同的别名:
| 领域 | 常用术语 | 典型场景 |
|---|---|---|
| 数据库 | 记录链接(Record Linkage) | 跨表去重、数据清洗 |
| 数据仓库 | 实体合并(Entity Consolidation) | 构建 ODS、EDW 事实表 |
| 知识图谱 | 实体对齐(Entity Alignment) | 多源知识融合 |
| 客户管理 | 客户数据集成(CDI) | 360° 客户视图 |
2.2 核心流程:分块 → 匹配 → 合并
标准 ER 流程包含三个核心阶段,每个阶段解决一个关键问题:
- 分块(Blocking):将数据集划分为较小的候选块,避免全量两两比较(O(n²) 不可行)。
- 匹配(Matching):在块内对记录对进行相似度计算,判定是否指向同一实体。
- 合并(Merging):将判定为同一实体的记录合并为一条干净记录,并保留溯源信息。
2.3 分块策略详解
分块是 ER 性能的基石。常见分块方法包括:
| 方法 | 原理 | 适用场景 | 优缺点 |
|---|---|---|---|
| 标准分块 | 基于一个或多个关键字段(如姓氏首字母、邮编)哈希分桶 | 字段质量高、分布均匀 | 简单高效;对缺失值敏感 |
| 滑动窗口 | 按排序键排序后,在固定窗口内两两比较 | 数值型或可排序字段 | 窗口大小难调;漏匹配风险 |
| 基于令牌的分块 | 将记录拆分为令牌(如 n-gram),共享令牌的记录进入同一块 | 文本型字段、拼写变体多 | 召回率高;块可能过大 |
| 元组分块 | 使用多个分块键,记录只要满足任一键即进入候选集 | 多源异构数据 | 覆盖全面;计算开销大 |
实践建议:在回放对比评估中,分块策略的选择直接影响后续匹配的候选对数量。建议在评估报告中记录分块键、块大小分布、以及分块后的候选对压缩率。
2.4 匹配算法概述
匹配阶段的核心是计算记录对的相似度,并基于阈值或分类模型判定是否匹配。常用算法分为三类:
2.4.1 基于规则的匹配
- 精确匹配:字段值完全一致(如身份证号、税号)。
- 模糊匹配:使用编辑距离(Levenshtein)、Jaro-Winkler、Jaccard 系数等计算字符串相似度。
- 加权规则:为不同字段分配权重,加权求和后与阈值比较。
2.4.2 基于概率的匹配
- Fellegi-Sunter 模型:经典概率框架,计算匹配/非匹配的似然比。
- EM 算法:在无标签数据上估计匹配参数。
2.4.3 基于机器学习的匹配
- 监督学习:使用标注数据训练分类器(逻辑回归、随机森林、XGBoost)。
- 深度学习:使用 Siamese 网络、BERT 等模型进行语义匹配。
- 主动学习:在标注预算有限时,迭代选择最有价值的样本进行标注。
2.5 合并策略
合并阶段需要解决两个核心问题:
- 冲突解决:当多条记录的同一字段值不同时,如何选择最终值(如多数投票、最新时间戳、可信源优先)。
- 溯源保留:合并后的实体需要保留原始记录 ID、来源系统、合并时间等元数据,以便回放审计。
常见陷阱:合并时若未正确处理传递闭包(A≈B 且 B≈C 但 A≠C),可能导致实体分裂或过度合并。在回放对比评估中,应记录合并前后的实体数量变化以及冲突解决规则。
2.6 算法选择对比
| 维度 | 基于规则 | 基于概率 | 基于机器学习 |
|---|---|---|---|
| 数据需求 | 无需标注数据 | 少量标注或先验 | 大量标注数据 |
| 可解释性 | 高(规则透明) | 中(参数可解释) | 低(黑盒模型) |
| 泛化能力 | 弱(需人工调参) | 中(依赖分布假设) | 强(可迁移学习) |
| 计算开销 | 低 | 中 | 高(需 GPU) |
| 典型场景 | 小规模、高确定性 | 中等规模、统计稳定 | 大规模、复杂语义 |