
摘要
实体消歧的目标是从多个数据集中识别出代表同一现实世界实体的记录。然而,对所有数据集中的记录进行两两比较在计算上极为耗时,导致整体运行时间过长。为降低运行时间,实体消歧流水线通常由两部分组成:首先是一个“阻塞器”(blocker),采用计算成本较低的方法筛选出候选记录对;随后是一个“匹配器”(matcher),利用更复杂的算法从候选集中识别出真正匹配的记录对。本文提出了一种名为SC-Block的阻塞方法,该方法利用监督对比学习(supervised contrastive learning)将记录映射到嵌入空间,并通过最近邻搜索构建候选记录对集合。我们针对八种当前最先进的阻塞方法对SC-Block进行了基准测试。为进一步评估SC-Block的训练时间与其对整体实体消歧流水线运行时间的优化效果,我们将SC-Block与四种不同的匹配器结合,构建完整的流水线系统。在评估整体运行时间时,我们设定候选集需达到99.5%的配对完整性(pair completeness),并将该候选集传递给匹配器。实验结果表明,SC-Block能够生成更小的候选集,且集成SC-Block的流水线在不牺牲F1分数的前提下,运行速度比采用其他阻塞器的流水线快1.5至2倍。值得注意的是,现有阻塞器的评估多基于较小规模的数据集,这可能导致因词汇量过大带来的运行时间影响被忽视。为在更具挑战性的场景下评估运行效率,本文引入了一个新的基准数据集,该数据集要求对大量商品发布信息进行阻塞处理。在该大规模基准数据集上,采用SC-Block与最优匹配器的流水线,其运行速度比使用其他阻塞器(搭配相同匹配器)的流水线快8倍,运行时间由原先的2.5小时缩短至18分钟,显著超过了SC-Block自身5分钟的训练开销,充分证明了其在实际应用中的高效性与可行性。
代码仓库
基准测试
| 基准 | 方法 | 指标 |
|---|---|---|
| blocking-on-abt-buy | BM25 | Candidate Set Size: 8000 Recall: 94.7 |
| blocking-on-abt-buy | SC-Block | Candidate Set Size: 5000 Recall: 99.5 |
| blocking-on-amazon-google | SC-Block | Candidate Set Size: 11000 Recall: 99.6 |
| blocking-on-amazon-google | BM25 | Candidate Set Size: 40000 Recall: 98.7 |
| blocking-on-wdc-block-large | BM25 | Candidate Set Size: 20000000 Recall: 95.5 |
| blocking-on-wdc-block-large | SC-Block | Candidate Set Size: 5000000 Recall: 89.5 |
| blocking-on-wdc-block-medium | SC-Block | Candidate Set Size: 100000 Recall: 91.9 |
| blocking-on-wdc-block-medium | BM25 | Candidate Set Size: 500000 Recall: 97.8 |
| blocking-on-wdc-block-small | BM25 | Candidate Set Size: 250000 Recall: 96.9% |
| blocking-on-wdc-block-small | SC-Block | Candidate Set Size: 70000 Recall: 93.5% |