如何基于神经网络实现无显式距离度量的姓名重复项识别
姓名对重复识别方案解答
任务背景
现有标注姓名对数据集如下,核心目标是识别两个姓名是否指向同一人:
原始数据集
ID; name1; name2 1; Mike Miller; Mike Miler 2; John Doe; Pete McGillen 3; Sara Johnson; Edita Johnson 4; John Lemond-Lee Peter; John LL. Peter 5; Marta Sunz; Martha Sund 6; John Peter; Johanna Petera 7; Joanna Nemzik; Joanna Niemczik
人工标注结果(重复项判定)
1: Is a duplicate 2: Is not a duplicate 3: Is not a duplicate 4: Is a duplicate 5: Is not a duplicate 6: Is not a duplicate 7: Is a duplicate
注:第7组样本涉及发音相似性,该因素可忽略,不作为核心识别要求
基线方案效果
最初采用固定阈值的Levenshtein距离方案,规则为:配对姓名的Levenshtein距离≤2时判定为重复项,计算结果如下:
1: Levenshtein distance: 2 => duplicate 2: Levenshtein distance: 11 => not a duplicate 3: Levenshtein distance: 4 => not a duplicate 4: Levenshtein distance: 8 => not a duplicate 5: Levenshtein distance: 2 => duplicate 6: Levenshtein distance: 4 => not a duplicate 7: Levenshtein distance: 2 => duplicate
该方案存在明确缺陷:
- 含姓名缩写的重复配对易漏判:例如ID4的
John Lemond-Lee Peter与John LL. Peter,因缩写带来的字符差较大,Levenshtein距离达8,被误判为非重复 - 低距离的非重复配对易误判:例如ID5的
Marta Sunz/Martha Sund、ID6的John Peter/Johanna Petera,字符差较小但核心身份信息不匹配,容易被误判为重复
任务要求:搭建神经网络/机器学习方案,不需要识别通用词语义相似性,不依赖Levenshtein距离、欧氏距离等显式距离度量,仅通过已有人工标注数据学习符合人工判断逻辑的识别规则,匹配人工判定标准,达到普通人无需掌握数学距离概念即可完成判断的效果。
问题1:如何实现不依赖显式距离度量的神经网络姓名对重复识别方案?
整套方案采用端到端字符级建模思路,全程不需要人工计算任何显式距离、设计手动规则,核心流程如下:
- 字符级输入预处理:不对姓名做词语义级处理,直接拆分单字符构建字符词表(覆盖字母、连字符、缩写点、空格等所有出现在姓名里的符号),将两个待匹配姓名分别转为等长的字符ID序列,统一补零/截断到固定长度即可。
- 共享权重双塔式特征提取:搭建两个结构完全一致、权重共享的字符编码分支,分别处理两个姓名的字符序列。编码器选择浅层1D卷积+池化结构或者轻量字符级Transformer即可,训练过程中模型会自动学习姓名的内在结构规律:比如名在前姓在后的排列顺序、首字母加小数点是常见缩写形式、连字符连接的是复姓段、常见拼写错误多为单字符替换/漏写等,完全不需要人工提前定义规则。
- 融合分类输出:将两个编码器输出的姓名表征做逐元素差、逐元素乘、拼接操作后,接2层全连接层,最终通过sigmoid输出二分类概率,判定是否为重复项。
- 小样本适配训练:因现有标注样本量较小,可通过贴合姓名场景的数据增强扩充训练集:包括随机替换单个字符模拟录入错字、随机将姓名中的长字段替换为首字母加小数点模拟缩写、随机调整名和姓的顺序适配不同书写习惯,不需要额外引入其他特征。
- 该方案完全规避显式距离度量的局限性:针对ID4这类缩写场景,模型见过足够多缩写增强样本后,会自动学到“长名段对应首字母缩写属于同一主体”的规律,不会因字符差大就漏判;针对ID5、ID6这类核心字段不匹配的样本,模型会自动学到“名/姓核心段不一致则不属于同一主体”的规律,不会因整体字符差小就误判,判断逻辑和人工判定逻辑对齐。
问题2:将Levenshtein距离等距离指标作为特征输入的机器学习方案,相比固定阈值简单规则有何额外应用价值?
这类方案是把人工设计的距离指标作为先验特征输入模型,相比写死阈值的硬规则,核心价值有三点:
- 场景适配成本更低:固定阈值是一刀切规则,比如英文名场景阈值设2合适,中文名场景阈值设1即可,带大量缩写的职场名册场景阈值可能要放到10以上,换场景就要人工反复调参。机器学习模型会自动根据标注数据学习不同特征的权重,不需要人工反复校准阈值,适配不同地区、不同书写规范的姓名数据集的成本低很多。
- 判断维度更灵活:固定规则只能参考单一Levenshtein距离,机器学习模型可以同时融合多维度信号,包括不同粒度的字符重合度、姓名结构特征、缩写匹配特征等综合判断——比如两个姓名整体距离大,但缩写段完全匹配,模型会自动给缩写特征更高权重判为重复;两个姓名整体距离小,但姓氏段完全不匹配,模型会自动给姓氏匹配特征更高权重判为非重复,不会出现单阈值规则的非黑即白判断问题。
- 噪声鲁棒性更强:固定阈值遇到OCR识别错字、手写录入错字、特殊符号输入错误的场景,只要距离超阈值就会直接判错。机器学习模型可以从标注的噪声样本里学习常见错漏模式,容错率更高,在快递收件名、历史登记名册这类噪声占比高的真实业务场景中,准确率比固定阈值规则高30%以上是普遍情况。
内容的提问来源于stack exchange,提问作者PSt
相关产品推荐
相关产品推荐

