Fuzzy ID Generator
对欺诈场景,常常需要生成基于模糊匹配的ID,又可成为Entity Resolution实体解析,或同人模型。 算法定义是通过一系列能够间接定位一个人的字段集合,通过搜索和匹配的方式,定位一个用户与其他用户是否是同一个人。
基本框架
- 搜索
- 通过对一批字段的搜索,找出历史上与当前用户存在相似字段的其他用户。
- 精确搜索 - 建议用NoSQL database提升效率
- 模糊搜索 - 非常耗时+非常耗资源,常用ES(NGRAM搜索)。Advance: 训练word2vector,找K neighbor。
- 汇总候选用户的字段。
- 通过对一批字段的搜索,找出历史上与当前用户存在相似字段的其他用户。
- 匹配
- 当前用户和候选用户做1:n匹配计算
- 根据字段物理属性,确定匹配方式,为匹配上的字段分配weight权重
- 精确匹配 - Equal
- 模糊匹配 - Stop Words, Edit Distance,
- 权重和是否满足匹配阈值
- 分配ID
- 如果不存在匹配上的候选用户,根据用户ID分配加盐hash的fuzzy_id。
- 如果存在匹配上的候选用户,分配历史上已经分配过的fuzzy_id.
- 同时需要更新所有匹配上的候选用户,以及根据他们旧的fuzzy_id关联出来的用户,的新fuzzy_id。
Written on November 24, 2021