实体链接,实体融合相关技术调研

Record Linkage即在不同数据集中找出同一个实体的描述记录(如下所示)。主要目的是对不同数据源中的实体信息进行整合,形成更加全面的实体信息。


Data Preprocessing

原始数据集的质量会直接影响Record Linkage的结果(如下所示),不同数据集对同一信息的描述往往并不一样,比如时间描述、缩写、错误等等。对常识性的数据进行归一化处理能够极大的提高后续步骤的准确率。

Data set Name Date of birth City of residence
Data set 1 William J. Smith 1/2/73 Berkeley, California
Data set 2 Smith, W. J. 1973.1.2 Berkeley, CA
Data set 3 Bill Smith Jan 2, 1973 Berkeley, Calif.

Algorithm Framework

在知识图谱实体融合过程中,基本问题是判断两个实体是否可以融合。假设两个知识图谱所包含的实体数目分别为n1和n2,那么需要判断的实体对数目为n1 * n2,当两个知识图谱实体数目在千万规模时,无法对所有可能的实体对进行计算,所以基本算法框架是先对所有的实体进行Blocking操作,然后对每个Blocking内的每一对实体进行判断,是典型的MapReduce架构。类似设计见这里这里这里

Map Stage

本阶段目标是将全部实体集合拆分成相互无关的实体子集,拆分过程中保证所有潜在可融合的实体对都分到同一子集中,后续的计算过程所有子集可以并行计算,相互之间没有依赖。

理想情况下,我们只需要设计Partition函数hash_func(entity) = block_id来得到每个实体所属的block。但在具体操作过程中可能会遇到实体分布不均的问题,即某一个block内的实体数远大于其他block,从而导致整个算法运行时间大大增加。所以需要额外进行Load Balance来保证所有block中的实体数相当,同时保证不会漏掉任何可能融合的实体对。

Partition

针对不同的任务,Partition函数的选择会有所不同。在特定领域内进行实体融合时,完全可以根据领域特定知识来设计,比如在领域内有明确区分度的字段,实际效果往往被复杂的算法更好。在通用领域主要方法有如下几种:

  • Hierarchical Clustering
  • Nearest Neighbor based methods
  • Correlation Clustering, greeding algo

参考这个这个

Load Balance

对于Load Balance问题,这篇文章给出了详细的策略,基本框架是两次Map-Reduce,第一次Map-Reduce统计基于Partition函数计算结果后每个block中实体数目的分布,第二次Map-Reduce再根据该分布再进行二次Partition,具体流程如下:

Reduce Stage

本阶段目标是对同一block内任意两个可能的实体对进行判断是否可以融合。根据不同的策略,分为Deterministic record linkage和Probabilistic record linkage。

Deterministic record linkage

Deterministic record linkage即基于规则的实体融合方法,在具体操作过程中,主要是根据一个或多个identifiers来判断是否进行融合,在特定领域内,基于规则的实体融合方法往往会得到不错的效果。

Probabilistic record linkage

Probabilistic record linkage即基于概率的实体融合方法,基本流程是先进行相似度的计算生成特征,再通过机器学习方法来进行判断。从组成模块上来看,主要分为训练模块和预测模块。

关于相似度计算,这个这个这个都有提到,比如基于布尔值的判断;编辑距离,Levenstein, Smith‐Waterman, Affine;基于set的相似度计算,Jaccard, Dice;基于vector的相似度计算,Cosine similarity, TFIDF;基于alignment的相似度计算,Jaro‐Winkler, Soft‐TFIDF, Monge‐Elkan;基于phonetic的相似度计算,Soundex;基于翻译模型的相似度计算;基于数值的相似度计算;领域特定相似度计算等等。而具体应用中,基于alignment的相似度适合处理名字缩写、别名,基于set、vector的相似度计算适合处理普通文本,如tweets等。

关于机器学习模型,常规的分类模型都可以使用,如朴素贝叶斯、svm、深度学习等等。在实际操作过程中,由于训练数据有限,一般会采用active learning的策略通过迭代的方式逐步提高模型的准确率。

Evaluation

整体评估指标主要还是F值以及整个算法的运行时间,具体而言值的关注的指标有:全量实体对的数目,经过Map之后需要匹配的实体对数目/召回率,最终匹配上的实体对数目/准确率/召回率,MapReduce中每一步的运行时间,整体运行时间。

Conclusion

关于实体融合的相关论文非常多,但到2012年之后基于新算法、新框架的论文逐渐变少,更多是survey、工程上性能优化。也就是说,学术界认为这个任务在一定程度上已经得到了解决。而从基本算法框架上来看,关于MapReduce算法框架的实体融合论文明显多于其他框架,在工程上甚至已经有了开源工具包如dedupe,大规模的实体融合也有相应的支持如dedoop。从技术壁垒来看,基本框架与具体算法看起来都比较简单,但当数据规模达到一定程度后,算法、工程上都会遇到瓶颈,如果在大规模数据下顺畅跑通整个流程,并得到质量足够高的知识图谱,本身就是壁垒,而在具体实现过程中,针对特定领域的融合算法优化也会是壁垒的一部分。另外,整个系统的很多子模块都是常见的机器学习问题,深度学习在整个系统中的想象空间也非常大。

References

https://en.wikipedia.org/wiki/Record_linkage

维基百科链接,对该算法常见处理流程与算法有非常好的概述。

https://github.com/datamade/dedupe

Dedupe, 基于Python的工具包,实现了包括fuzzy matching, deduplication, entity resolution在内的常见任务。主要处理流程是先对所有record通过Clustering/Blocking的方法进行分组,然后在组内部通过计算相似度特征和机器学习分类模型对任一一对record进行预测是否为同一实体。相关论文参考Paper

http://vldb.org/pvldb/vol5/p1878_larskolb_vldb2012.pdf

Dedoop, 基于Hadoop的Deduplication实现,主要流程分为Blocking(对record进行分组),Similarity Computation(计算组内每一对实体的相似度),Match Classification(通过规则或机器学习算法来判断是否是同一实体)。有完善的User Interface以及高效的Map-Reduce实现机制。

http://iswc2015.semanticweb.org/sites/iswc2015.semanticweb.org/files/93660257.pdf

Effective Online Knowledge Graph Fusion,本文研究的方向是如何将搜索引擎返回结果中的实体卡片映射到维基百科上的实体。由于并非是传统意义上的两个知识库的融合,本文的思路还是走的Entity Linking的方法,即看维基百科中anchor text与实体一起出现的概率作为将卡片映射到实体的强度,并考虑了传统实体融合中用到的计算相似度的方法。同时对实体的属性名、属性值融合有比较清楚的描述。

http://infolab.stanford.edu/serf/

Swoosh: a generic approach to entity resolution,斯坦福的实体融合框架,相关论文在这里。很不一样的一篇文章,其他文章主要都是在讲如何blocking/matching,输出的结果就是哪一些实体对是可以融合的。这篇文章将匹配函数和融合函数当作黑盒,主要是在讨论基于这两个函数如何能够通过更加好的算法生成新的实体库,而不仅仅输出实体对。

http://www.cs.utexas.edu/~ml/papers/marlin-dissertation-06.pdf

Learnable Similarity Functions and Their Application to Record Linkage and Clustering,Dedupe工具包就是根据这篇博士论文实现的。本文对常见的相似度算法edit distance,tf-idf等进行了详细描述,Blocking、Clustering、Matching等模块用到了svm、active learning等机器学习模型,在现在看来,一些模型选型应该有更多选择。

https://pdfs.semanticscholar.org/cf6c/8ce4ec5bbbae9be4b9076c41d49a8eaad7b3.pdf

Evaluation of entity resolution approaches on real-world match problems,本文针对不同的matching方法提出了一整套评估标准,包含match quality和runtime efficiency。并对常见的Non-learning match approaches和Learning-based match approaches进行了介绍。

http://www.umiacs.umd.edu/~getoor/Tutorials/ER_VLDB2012.pdf

Entity Resolution: Tutorial,本文对实体融合的常见技术进行整体梳理,包括数据预处理,相似度计算,pairwise匹配决策机器学习模型,active learning策略,常见的constraints以及应用方法,Clustering算法介绍,多种混合模型的尝试等。

https://pdfs.semanticscholar.org/990f/9aa328df4c3c6503d6b7815a1ea865b9bfd1.pdf

Learning-based Entity Resolution with MapReduce,本文的整体思路还是先Blocking再matching,但给出了一套基于MapReduce的详细算法流程及实现思路,分别明确了MapSide和ReduceSide具体策略。同时对Learning-based Entity Resolution的training stage和application stage,本文也给出了详细的架构设计。

http://homes.cs.washington.edu/~pedrod/papers/icdm06.pdf

Entity Resolution with Markov Logic,本文给出了基于Markov Logic的实体融合方法,大体思路是把已有的知识图谱作为强限制映射到图上,再通过图计算的方式对实体进行融合。

http://dbs.uni-leipzig.de/file/ICDE12_conf_full_088.pdf

Load Balancing for MapReduce-based Entity Resolution,本文主要针对MapReduce中Blocking策略进行了详细分析,是大规模实体融合必须要了解的。简单的事情当数据到一定规模后也会出问题。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,362评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,330评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,247评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,560评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,580评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,569评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,929评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,587评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,840评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,596评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,678评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,366评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,945评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,929评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,165评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,271评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,403评论 2 342

推荐阅读更多精彩内容

  • 实体链接的相关研究有着重要的意义: 首先,实体链接有助于知识库自动填充的研究:知识库是现实中真实存在的实体的集合,...
    勤奋的Garfield阅读 6,358评论 0 5
  • 很实用的编程英语词库,共收录一千五百余条词汇。 第一部分: application 应用程式 应用、应用程序app...
    春天的蜜蜂阅读 1,335评论 0 22
  • 本体、知识库、知识图谱、知识图谱识别之间的关系? 本体:领域术语集合。 知识库:知识集合。 知识图谱:图状具有关联...
    方弟阅读 28,339评论 6 49
  • -- 原创,未经授权,禁止转载 2017.11.15 -- 对于推荐系统,本文总结内容,如下图所示: 文章很长,你...
    rui_liu阅读 42,918评论 14 256
  • 我叫来雪,山东人 ,出生20载。相貌平平,性格外向,大大咧咧。男孩子一样的性格,注定没有女孩子的温柔。 7岁那年,...
    莱雪阅读 602评论 0 0