实体引用解析所关注的是这样一个决策:两个引用实例是否等价,它们是否指向同一个实体?这个决策通常是通过引用的身份属性值的相似程度来做出的, 这样的做法被称为匹配(Matching)过程。当不同引用被断定为等价时,链接操作为他们赋予相同的链值。
匹配(Matching)和链接(Linking)大概是ER世界中最容易被混淆的两个术语了。链接是通过将不同引用赋予相同的通用标志符链值,来表明两个引用的等价性。链接代表了ER决策的输出。另一方面,对引用进行匹配操作,指的则是利用某种算法来计算一组属性值的相似程度,如果它们之间的相似程度达到了一个预定义的阀值,便认为他们是匹配的。而这些引用则被称为匹配引用。
另一个经常造成混淆的实体解析术语是重复,常见的说法包括重复记录或是记录重复。某种意义上,重复代表匹配的终极状态,亦即两个引用完全一样。然而在另一些场景中,重复也可以表示不同但十分近似(近似匹配)的不同引用,甚至有些情况下,重复引用直接表示等价引用的含义(Naumann,Herschel,2010)。
为了避免混淆,在本书接下来的描述里,我们将会用等价实体引用来表示指向同一个实体的不同引用,用匹配实体引用来表示属性值相似度达到指定阀值的引用,我们会避免使用术语重复引用以及去重。
许多作者,即使是那些用记录匹配或记录重复这些术语来描述实体解析的,也常常将这些术语应用到属性相似度这样的匹配的概念上来,甚至会将这些术语用作表述等价引用。 这样做的麻烦在于,在一些上下文切换的环境中,你很难区别这些含义上的细微变化。即使在具有开创性意义,并以严谨著称的Fellegiand Sunter(1969)的成果中,也会出现关于“应当匹配而没有匹配的记录”(译者:根据本文作者的定义,这个问题应该是“等价却不匹配的记录”)这样的问题的讨论。更有甚者,提出像真匹配这样的概念,来形容列表A与B的一个笛卡尔积的子集M,其中M包含了所有匹配引用。然而,从本文的角度来看,M所代表的A×B的成对引用乃是等价引用,而非匹配引用。
在几乎所有的ER场景中,都会出现本应被赋予相同的链值的等价引用,却无法互相匹配的情况。又或者是,匹配的引用被赋予了相同的链值,但实际上它们并不等价。
举例来说,假设有名客户本来叫做MaryJohns,住在OakStreet。后来她嫁给了叫做JohnSmith的人,并更名为MarySmith,她还搬到了丈夫位于ElmStreet的家里。这中情况下,即使MaryJohns@Oak Street与MarySmith@Elm Street无法匹配姓名或是地址,但实际上,两者是指向了同一个实体。
ER 原则 #2: ER的终极目的是链接等价引用,而非寻找匹配引用。
通过链接操作可以在一组实体引用中创建等价关系,这点乃是实体解析的代数模型(Talburt,Wang, Hess, Kuo, 2007)的基石。如果将实体解析理解为一个决策的过程,那么链接便将这个过程具体化为一个问题的答案:即两个引用是否等价。 不可否认,匹配的确是这个过程中一个非常重要的工具,但并非唯一的工具。两个引用互相匹配固然在该决策过程中是个一个重要的因素,但并非总是决定性因素。ER系统的基础依旧是链接操作:
ER的基本法则:当且仅当两个引用等价时,它们才会被互相链接。
匹配引用和等价引用的区别
设S为实体引用集合,S×S表示S对自身的笛卡尔积,即第一个对象和第二个对象均属于S的所有可能的有序对。给定一个匹配算法及预定义的阀值,可以将S×S中的每个有序引用对进行匹配判定。设M为所有匹配的有序引用对的集合,那么M必然是S×S的一个子集。同样的,假定我们有办法找出所有的等价有序引用对,它的集合E显然也是S×S的子集。在许多大规模的ER应用中,E和M通常是不一样的。图1.5展示了E和M之间的互相关联关系。
图1.5匹配引用和等价引用
集合E代表的是实体解析的期望结果,而集合M代表的仅仅是匹配结果。E和M之间的交集度体现了利用匹配操作对于ER过程的有效性。E和M之间的交集度越高,代表着该匹配操作越有效。在某些特定情况下,匹配操作的准确性非常之高,体现在图上,便是E和M的几乎完全重合。
在ER世界中,我们用解析这个术语来表示判断两个实体引用是否等价的过程。因此,也可以将图1.5理解为决策过程与正确的决策结果之间的关系。假定M为一个判定两个实体是否等价的操作,这个操作可以是匹配,也可以是其它办法。E仍然表示真正等价的有序对集合。那么,我们也可以这样解释图1.5中的各个集合:
· M ? E为truepositive结果集。
· S×S – ( M ? E ) 为true negative结果集。
· M – E 为falsepositive结果集,或者称为误报结果集。
· E – M 为falsenegative结果集, 或者称为漏报结果集。
Truepositive结果集和Truenegative结果集合并就是真结果集(正确判断的结果集)。而Falsepositive结果集和Falsenegative结果集合并为假结果集(判断错误的结果集)。表1.2总结归纳了这些术语:
Table 1.2 Classification of Process Decision Outcomes |
||
|
Decision Should Be Yes |
Decision Should Be No |
Decision is yes |
True positive |
False positive |
Decision is no |
False negative |
True negative |
除了实体解析领域,在数据挖掘和信息获取领域,我们也采用这些术语。不过在推断统计学中,falsepositive被称为一类决策错误,false negative被称为二类决策错误(Fisher,et al., 2006)。
False Negative问题
在绝大多数ER上下文中,falsenegative通常都是比falsepositive更大的一个问题,这显然是由于E集合的未知性。当然,正是因为E集合的未知,ER过程才有存在的价值。实际当中,在整个S×S实体引用对集合中,只有很少一部分属于E集合。更进一步来讲, 衡量一个ER过程的有效性通常的关注点在于真结果集,即当两个引用被判定为等价时,它们是否真的是指向了同一个实体?利用这样的问题,我们只能找出falsepositive的决策,而对falsenegative的结果毫无帮助。
另一个使得Falsenegative更加难以解决的原因是IT历史遗留系统导致的。在过去,ER系统并不总是十分有效。这导致的结果就是,在系统中会包含一定数量的等价引用未被互相链接。
想要解决falsenegative的问题,首先我们要将目光放在negative决策上, 即那些ER过程认为并非等价引用对的结果。这通常是一个相对更大的集合。图1.5并没有很好的展示出各个集合之间的大小比例关系,因为在通常情况下,(S×S) – M会是一个比M本身大非常多的集合。举例来说,假设S中包含10,000个引用,那么S×S所包含的引用对就是1亿个。如果ER过程断定只有1%的引用对是等价的,那么就有9900万个引用对被断定为非等价。
如果ER过程主要是通过属性值的相似度来判定是否等价,那么也就是说,有9900万个引用对达不到预期阀值, 这样的搜索算法显得十分的低效且不现实。因此,最好的策略通常是在非等价引用集合中随机选取一定的样本来进行判断(Maydanchik,2007)。
ER基本原则 #3:在实体解析系统中,False negative通常比false positive更加难发现和解决。
在许多像CDI这样的ER应用中,falsepositive所造成的危害要比falsenegative大的多。举例来说,在一个销售系统中,同一个用户有着不同的账号并不是什么大不了的事情,但是如果将不同用户指向同一个账号,则有可能造成严重的后果。而做出两个引用等价的决定会导致账号以及其他信息聚合到一起,这引出了下一个ER的基本原则:
ER基本原则 #4: ER过程通常被设计为一创建false negative结果集为代价来避免创建false positive结果集。
ER系统通常使用以下四种技术来决定引用是否等价并链接:
· 直接匹配
· 传递等价
· 关联分析
· 断定等价
直接匹配
直接匹配是通过计算两个引用的身份属性的相似程度,来判断他们是否等价的操作。以下是常见的五种计算属性值相似度的办法:
1. 完全匹配
2. 仅数字差异
3. 词法相似度匹配
4. 语义相似度匹配
5. 衍生匹配码
完全匹配,要求被比较的两属性值完全一致。通常情况下,引用的属性值为字符串形式,完全匹配的应用会带来一些问题。因为即使是字符串之间最细微的差别,也会导致两个属性值不匹配。举例来说,“JohnDoe”和“JOHNDOE”便无法匹配,甚至“John Doe”如果中间多一个空格,也会导致不匹配的发生。一般情况下,完全匹配需要在ERA2即实体引用准备阶段做好标准化和清洗的工作,才有可能发生。
如果引用的所有身份属性的值全都符合完全匹配,则被称为决定性匹配。
许多大型的ER应用更倾向于采用某种相似度匹配的办法。对于只要求部分属性值的相似而不是完全一致的匹配操作,被称为概率匹配。
一般数值型的属性,比如说年龄,相似度匹配要求两个属性值之间的大小差异不超过预定义的阀值。当然,并非所有数值型的相似度匹配操作都仅仅是简单的减法操作。举例来说,对于日期和时间类型的属性值,相似度匹配便要求更精细的计算来区分年,月,日,小时,分之间的差异。在许多工具中都有提供这样的功能,比如说在Excel文件或是数据库中,假设日期格式为YYYYMMDD,那么20100101减去20091231的结果便是1(天)而不是算术上的差别:8,870。
对于字符串型的属性值,该如何计算其相似度则显得不是那么直观。字符串之间的相似度,既可以是词法上的相似,也可以是语义上的相似。词法相似度(Syntactic Similarity)是由字符串相似度匹配算法(approximatestring matching, ASM algorithm)来计算得出的。 该算法也被叫做字符串比较矩阵(Herzog, Scheuren,Winkler, 2007)。 对于词法相似度该由什么部分组成引发着持续的讨论,其结果便是有许多ASM算法被开发出来,各自反映了设计者对于词法相似度的看法。不过所有这些算法都是基于同样的一个原则:即两个字符串时间有多少相同的部分,以及他们出现的顺序。只不过在细节上,各个算法有所不同。
其中一个最基本的算法就是编辑距离算法(Levenshtein,1966)。该算法将两个字符串的相似度问题,归结为将其中一个字符串转换成另一个字符串所要付出的代价。转换的代价越高,说明两个字符串的相似度越低。通常可以选择的转换方式包含插入,替换以及删除。在某些版本中,该算法还允许将两个相邻字符调换位置。举例来说,字符串“ALISA”和“ALYSSA”之间只需要两次编辑距离转换即可:先将I转换成Y,在再S和A之间插入另一个S。
ASM中有一系列的算法将关注点放在字符的顺序上,我们称之为q-Gram或是n-Gram算法:q-Gram指的是一个长度为q的字符串。举例来说,“ARM”便是一个3-Gram。
q-Gram算法的基本原则:在第一个字符中找到的所有q-Gram,如果在第二个字符串中出现的越多,说明两个字符串就越相似。考虑这样两个字符串:“JULIE”和“JULES”, 这两个字符串有着四个相同的1-Gram,即J,U,L和E,两个相同的2-Gram,“JU”和“UL”,和一个相同的3-Gram, “JUL”。因此q的最大值为3,而字符串的长度为5,因此计算出两字符串之间的相似度为60%。
算法q-GramTetrahedral Ratio(qTR) (Holland,Talburt, 2010)则是计算相同的q-Gram数和所有可能的q-gram数之间的比值。所有可能的q-Gram数可以通过以下公式计算得出:
在刚才的例子当中,字符串“JULIE”的长度为5,有35种可能的子串形式, 即TN=35。而“JULIE”和字符串“JULES”之间一共有7个相同的q-gram,因此,它们之间的qTR为:
当被比较的字符串有着不同的长度时,qTR的计算便依赖于被选中来做比例的分母的字符串。这样的做法使得利用不同的字符串来计算,会得到不同的结果。这显然不是我们想要的。因此,调整的做法将两个字符串的长度也放入了衡量的标准中(Holland,Talburt, 2010)。假设N是第一个字符串的长度,M是第二个字符串的长度,Q是两个字符串共同的n-gram数,那么调整后的算法就变成了:
另一个q-Gram算法的变种叫做Jaro字符串比较算法(Jaro,1989)。 它关注在两个字符串之间的相同的字符,以及位移次数上。如果A和B分别代表至少有一个相同字符的两个字符串,那么Jaro的相似度算法可以解释为:
,和分别代表分配给第一个字符串,第二个字符串以及位移数的比重,即 + + =1。C代表共同的字符数量,T代表位移次数,而和分别代表两个字符串的长度。举例来说,字符串“SHAKLER”和“SHAKEL”共有6个相同的字符,以及一个位移操作即将“LE”变成“EL”。假定将比重均等分配,即1/3每份,那么这两个字符串之间的Jaro相似度则为:
Jaro算法的一些实现,还会要求q个共同的子串必须在两个字符串中出现在相同或是相近的位置上。这样的q-Gram又被称为按位的q-Gram。Jaro-Winkler比较算法(Winkler, 1999)就是采用了按位的q-Gram的算法。该算法基于Jaro算法,并对被比较字符串的前四位字符给予特殊比重。设N为比较字符串中前四位中按位的相同字符数,Jaro-Winkler相似度算法的计算公式为:
在之前的例子当中,字符串“SHAKLER”和“SHAKEL”的N值为4。他们之间的Jaro-Winkler相似度则为:
Jaro算法和Jaro-Winkler算法当且仅当两个相比较字符串完全一致时,才返回1,否则会返回一个0到1之间的数值,这也是ASM算法中的一个常规做法。即便是编辑距离算法也可以通过一定的方式标准化为这样的输出方式。根据编辑距离算法的定义可以知道,两个字符串的距离不能超过他们中的较长字串的长度。设L为两字符串A和B之间的编辑距离,那么标准化的编辑距离NL(Christen,2006)就可以表示为:
编辑距离,最大长度q-Gram,Tetrahedral Ratio,Jaro以及Jaro-Winkler算法不过是许多用于ER直接匹配操作的ASR算法中的一部分。用关键字字符串相似度算法在因特网上可以找到许多其他算法以及它们的实现方法。
语法相似度匹配考虑的更多是字符串之间语义的相似而不是字符结构。举例来说,在英语中,众所周知名字“JIM”是名字“JAMES”的一个别名(昵称),许多用于姓名的概率匹配工具通常都会使用一张别名(昵称)映射表,以便处理这种情况。问题在于,这种名称与昵称之间的映射关系通常并非一对一的。举例来说,名字“HARRY”既可以是“HENRY”的昵称,也可能是“HAROLD”的昵称,又甚至根本就不是任何昵称—“HARRY”本身就是一个出生姓名。
对于商业名称的处理,语法相似度匹配也有很多问题。举例来说,“TOWING ANDRECOVERY”和“WRECKERSERVICE”代表的是同一件商业服务活动,然后在系统中很难将这种识别过程自动化。这样的语法相似的发现过程用到的方法和技术被归类到称为潜在语义分析的研究领域中(Landauer,1998; Deaton, Doan, Schweiger, 2010)。
我们前面描述的第五种相似度匹配技术,即衍生匹配码,有时也被称为hash码或是hash令牌。在采用匹配码的应用中,通过一个称为hashing的过程,可以用属性值生成一个新的值,这样的算法一般采用计算该字符串中的字符集合的二进制编码。Hash算法确保(词法上或语法上)相似的字符串会生成完全一样的匹配码。这样的结果就是,相似度匹配被转化成了确定性匹配- ER过程便可以通过对属性值的匹配码进行完全匹配,而不是对属性值本身执行相似度匹配来进行。这不仅简化了匹配的流程,同时也更加有效。因为匹配码的生成可以只执行一次,而不需要每次进行匹配的时候都做一遍。
Soundex算法便是最早浮现的衍生匹配码算法之一。它最早在1918年发表为专利(Odell,Russell, 1918)并在1930年第一次被使用在关于社会保险管理(Herzog, etal., 2007)的匹配记录的手动过程中。Soundex这个名字来自单词Sound和indexing的组合,因为该算法的目的便是识别两个名字中词法和发音的相似程度。跟许多其他相似度匹配算法一样,Soundex算法在很多应用中,也有着许多不同的变种。本文举Herzog, etal.发表于2007年的算法为例,来了解该算法如何生成应对名称“Checker”的匹配码的:
1. 大写所有字符并去除所有标点符号->CHEKER.
2. 去掉所有非首字母中的A,E,I,O,U,H,W和Y。 ->CCKR.
3. 将所有非首字母的字符进行替换,{B, F, P,V}替换为1, {C, G, J, K, Q, S, X, Z}换为2,{D, T}替换为3,{L}替换为4,{M, N}替换为5, {R}替换为6. -> C226.
4. 在当前结果中,若包含两个连续的相同的数字,且在原始记录中,生成该数字的字符在相同位置或近被H或W分隔开,则将这两个数字替换为一个。->C26
5. 如果最终结果长度大于4,则将第四个字符以后的内容截断。如果最终结果的长度小于4,则在最后补领,以确保最终结果的长度为4.->C260.
使用相同的做法,名字“John”生成的匹配码为J500。而名字“John Checker”和“John Cecker”所生成匹配码完全相同。在第五章的时候,我们会看到在DataFlux®dfPowerStudio®的ER过程中应用衍生匹配码算法的例子。
ER过程常常会将各种匹配操作组合起来使用,以期获得更好的效果和更高的效率。许多系统中会使用部分属性值的匹配码来做匹配勘察(match prospect),有时也称为取块(Baxter,Christen, Churches, 2003)。勘察是一个对于指定引用集合进行直接匹配以缩减目标引用数量的方法。举例来说,假设目标引用中有一个姓名属性“John Doe”和一个地址属性“123 Oak St,Anyville, AR, 72211”,而我们的关联标准要求姓名和地址的匹配。在这种情况下,勘察操作可以先将引用集合中所有姓的首字母为D的,以及地址信息中的邮编为“72211”的数据取出来。通过这样的办法,可以极大的减少我们需要和目标引用做比较的引用数量。但该方法并不保证所有的等价引用,甚至是匹配引用都会被勘察出来。如果引用集合中的邮编信息尚未被标准化,那么难免会有一些诸如邮编信息丢失,错误或是过时的引用无法被勘察到。同样的,那些姓名中不小心将姓当作名或是名当作姓的,也会遇到相同的问题。
取块(勘察)操作的应用需要考虑各种取舍的情况。首先一个要平衡的就是匹配的水平和候选引用的数量之间的关系。在刚才的例子当中,如果我们只匹配邮编的前三位字符(733**),那么我们就有可能选中那些完全匹配无法选中的等价引用,但这也会使得我们获得的候选引用数量大幅增加。
还有一种办法就是采用多重勘察。继续刚才的例子,我们也可以使用两种勘察来获得候选引用。第一个勘察操作根据姓的首字母以及邮编获取一组候选引用,而另一个勘察操作则根据名的首字母以及街道号码来获取另一种候选引用。这种方法期望于那些没能出现在第一组候选引用中的等价引用会被第二组候选引用捕获。关于取块(勘察)操作,在Christen (2007)的文章中,可以找到许多相关技术:有序邻接,基于Q-Gram算法,cancopy聚类算法,基于字符串映射算法以及后缀数组。同时,该文章也对这些算法的结果质量以及复杂度进行了度量。
直接匹配的优势在于,仅需要已有的当前引用的属性信息,便可以做出是否匹配的结论。尽管也会使用昵称表或是缩写表之类的外部信息,大多数ASM算法主要还是一种基于身份属性值的演算式过程。第三章我们要介绍的Fellegi-Sunter模型,便是完全基于概率直接匹配的算法,系统地组织匹配过程的计算模型。它的优点是可以将误报率和漏报率限制在预设的阀值以内。
ER系统的经理们喜欢直接匹配操作,因为它十分容易解释。而ER系统的用户则倾向于关注在链接在一起的记录上。尽管有些潜在错误的存在,大多数人依然认可这样的原则:即两个引用的相似度越高,它们便越有可能是等价的。
将住在不同地址的Mary Smith和Mary Johns链接在一起,哪怕是正确的,用户也会希望给出一些解释。然而,即使是那些专家级别的ER系统,尤其用于身份管理的,也很少向用户提供解释机制。解释机制代表了系统中提供的,用于生成某个决策的所有中间步骤和推理的功能机制(Hashemi,Talburt, 2000; Hashemi, Talburt, Kooshesh, 2000)。 如果没有这样的机制,当Mary Smith和Mary Johns被错误的链接在一起时,这个问题就很难被发现。
不同于直接匹配,已发现等价引用(discovered equivalences)通过其他证据来确定两个引用之间的等价关系,哪怕两者并不匹配。这种等价关系有时是有正常的ER过程发现的,也有些时候来自一个被称为实体解析的数据挖掘过程。IBM®公司中有个一专门的组织,致力于开发那些用以发现实体间非显式关系(Jonas,2005)的分析技术。
传递等价
当引用A和B并不直接匹配时,如果能够找到一系列的中间引用到,使得从A开始,到B结尾,能够形成一条互相衔接的等价引用链。即:
A 等价于 等价于 等价于… 等价于 B
这样的断定等价的过程被称为传递等价,或是传递链接。如果A属于一个很大的引用集合,那么在这个集合中,所有可以通过传递链接与A等价的链接集合,被称为A的传递闭包(Li, Bheemavaram, and Zhang,2010; Zhang, Bheemvaram, Li, 2006)。
这里举例来说明传递链接是如何在一个身份获取ER系统—专门用于收集和存储引用的属性值的系统中应用的例子。设在该系统中,至少姓名和另一任意属性值直接匹配才可认定引用等价。考虑以下引用以该顺序出现:
Ref#1 name=Mary Smith, street=123 Oak, phone=555-1234
Ref#2 name=Mary Smith, street=456 Elm, phone=555-1234
Ref#3 name=Mary Smith, street=456 Elm, phone=null
在该例子中,引用#1与引用#3并不直接匹配,但是支持传递引用的系统将把两者链接。假设由于没有和系统中已知的任何引用等价,引用#1被认为是一个新的记录,系统会为该记录创建一个独立的标志符,假设是“33”。该值也会被用作引用#1的链值。这条新的记录是这样:
ID=33 name=Mary Smith, street=123 Oak, phone=555-1234
引用#2和引用#1有着相同的全名以及电话号码,因此被认为是等价引用,引用#2由此也获得了同样的链值“33”。 系统将从引用#2中发掘出的新信息放入记录“33” :
ID=33 name=Mary Smith, street= {123 Oak; 456 Elm}, phone=555-1234
最终,因为相同的姓名和地址,引用#3也被发现与记录33等价。系统会将引用#3的链值设为33。在该例子中,所有中间环节的等价都是通过直接匹配来确立的,而所有被捕获的等价引用中的属性值都会被整合到同一条记录当中,以此达到对数据增强的结果。对于那些需要唯一结果的ER过程来说,这是必不可少的一部分。在第三章我们会讨论的斯坦福实体解析框架(Stanford EntityResolution Framework, SERF)便正是基于匹配和整合这些基本的功能概念开发的。SERF模型提供了一个ER过程常见场景的处理框架,并提供一致且独立的输出。这其中一个场景便是利用整合方法来进行传递等价操作。
理论上可行的实体捕获操作,在实践中,可能会遇到各种实现和维护相关的问题,这些问题通常是跟实体的信息的获取的不完全以及周期过长等原因有关,这其中最主要的两个问题便是拆解(splits)和聚合(consolidations)。
继续看刚才的例子,在实际情况中,如果同样的引用以引用#1,引用#3和引用#2这样的顺序出现,那么我们刚才的操作便会出现问题。引用#1依然是被认为是一条新的记录,并赋予链值33。 但紧接下来,引用#3与引用#1并不匹配,相应的,系统会认为引用#3也是一条新的记录,并将其赋予链值,我们假定是56。现在当我们处理引用#2时,我们会发现系统中有两条记录都与引用#2等价:即链值33和链值56。如何解决这样的冲突问题,完全取决于系统是怎样设计的。
假设这三条引用是在同一次操作中被处理的,那么这个冲突有可能在内存中就被解决掉,系统甚至有可能还没有真正的建立任何的记录和链值,也就是说,该冲突是一个内存管理的问题。当然,也有可能记录33和56都已在内存中创建,而引用#2则直接触发了他们的在内存中的聚合操作。当这次操作结束时,便只剩下一条记录,而三条引用也已经被链接在一起。
然而,如果是引用#1和引用#3在同一次操作中被处理,引用#2在另一次操作中被处理时,问题就不那么好解决了。在这种情况下,对于同一个实体MarySmith,系统将给出两个不同的链值(33和56),而这就违背了ER的基本法则。可行的解决办法是将记录33和56先进行聚合操作。
当然,聚合操作本身也有着各种问题:该退役哪个链值?又留下哪个链值?如何纠正在聚合前已经发送给用户的链值?这些问题都有待解决。
拆解操作则和聚合操作正相反。它发生于当系统错误的将指向不同实体的引用合并成了同一个实体时。举例来说,系统发现,之前合并在一起的指向实体JohnSmith的属性值,实际上是将不同实体JohnSmith Jr.和JohnSmith Sr.的属性值混在一起了,原因就在于在一定时间里,这两人有着共同的住址和电话号码。为了拆解这样过度聚合的实体,要比对不同引用进行聚合所遇到的问题难得多。在聚合操作中,我们可以在系统中保留一份历史映射表,来记录所有退役链值在当期系统中的新链值。而在拆解操作中,除非系统保留了所有详细的关于引用处理的历史日志,否则之前所有的链值便早已丢失。
使用ASM算法进行传递链接有着一定的风险。如果每一次匹配时,属性值都有着细微的差别,那么在传递链上,处于链首的引用属性值,可能和跟处于链尾的引用属性值截然不同。就如传话游戏一般,每一步的小变化,可能会导致一个完全不相干的结果。有一种办法可以避免这样的问题:将引用的属性值进行分类,其中一部分关键的属性值诸如生日或性别,所有的传递链接要求这这些关键属性值必须完全一致,否则便认为是非等价引用(Whang,Benjelloun,Garcia-Molina,2009)。
关联分析
与传递等价要求传递链上的每个引用都互相等价不同,即使引用间没有达到预设的匹配度,关联分析依然可以通过分析引用之间的关联关系来断定等价。这种探索发现的过程通常要借助诸如图论以及网络分析这样的技术(Bhattacharya,Getoor,2005;Schweiger,2009)。
下面是一个简单的例子来阐述关联分析是如何实施的:
Ref#1, Mary Smith 123 Oak St
Ref#2, Mary Smith 456 Elm St
Ref#3, John Smith 123 Oak St
Ref#4, John Smith 456 Elm St
注意到这四个引用中,其中任意两个之间,姓名和地址两者都不能同时匹配。因此,在传统的匹配规则之下,它们会被认为是指向完全不同的实体。图1.6展示了这四个引用中的复杂的网络联系:
图1.6引用关联图
尽管上图的情况出现的几率不大,这仍然是一种合理的断定:不论是JohnSmith还是MarySmith住在123Oak St或者456Elm St,其实这些引用指向的是同一个实体,并应当被链接在一起。其它的一些证据也可以对做出决策起到帮助,比如说不常见的名字,或者是一些不冲突的证据,比如说不同的生日日期。
在直接匹配和传递等价的操作中,是否等价的决策是基于一对一的引用对。不同于此的是,关联等价允许同时考虑多重关系,并能同时做出多重等价的决策。在刚才的例子当中,引用#1与引用#2等价,引用#3与引用#4等价,这样的决策,只有当我们将引用之间所有的关系全盘进行考虑时才能够做出。
这个例子也说明了,在ERA3和ERA5之间,并没有一个明显的分界线。许多用与关联分析来发现等价引用的技术也被用作发现非等价引用,甚至是不同实体类型之间的关联关系。
为区别于直接引用这种基于属性的ER活动,利用关系分析进行实体解析的操作有时也被称为基于上下文的ER活动(Yongxin,Qingzhong,Ji,2009)。
在ER的研究领域中,利用图论以及网络分析进行实体关系分析的技术正在快速增长,我们会在第七章再回来讨论这个话题。
断定等价
在直接匹配,传递等价以及关联分析中,做出等价决策的依据要么来自引用的属性值,要么来自引用之间的相互关系,而这些信息皆是来自引用本身。利用这种方法创建的链接,也被称为推导链接(Talburt,Zhou,Shivaiah,2009)。而利用系统已知的知识来断定两个引用的等价关系,则被称为断定等价。这个过程本身,也被称为基于知识的链接操作。而使用该方法做实体解析的ER系统被称为基于知识的ER系统。基于知识的ER系统与实体捕获ER系统分别代表了自上而下和自下而上的两种不同方法论。
ER基本原则#5:ER系统通过推导和断定来链接不同引用。推导等价关系可以由直接匹配,传递等价或关联分析得出。
断定等价关系常常是以一条整合了两个不匹配引用的属性值的记录的形式存在。它表达了一种断言:即不论两个引用的属性值是否相似,它们已知等价。上一节中介绍了如何利用关联引用来发现OakSt的MarySmith与ElmSt的MarySmith为等价引用,这里我们看如何用断定来做出相似决策:
Mary Smith previously residing at 123 Oak is now residingat 456 Elm
这样的一个断言,有可能来自用户的汇报,或是来自公共记录,又或者是某个商业数据提供商(比如某个杂志订阅服务)。如果这样的知识在我们处理OakSt.的MarySmith和ElmSt.的MarySmith之前就已经被我们的ER记录管理系统获取,那么这两条引用在处理过程中便会被识别为等价,不论它们以什么样的顺序出现。这种对于输入引用顺序不敏感的ER系统,Jonas(2005)将之称为次序中立系统。
在CDI的场景中,这些断言信息通常来自于一些可靠的公共或私有资源。Acxiom®公司研发的AbiliTec® CDI技术拥有数以十亿计的关于美国客户的断言信息,并以此作为其它断定链接系统的基石。在第五章,我们会更详细的讨论该系统。
断定等价并非完美解决方案,它也有着自身的问题:断定等价将会增加系统中存储的信息量,因而也需要寻找到一种更高效的方式来执行它。 断定链接将整个ER系统拆分成两部分:前端部分复杂处理等价关系,后端部分复杂对断言知识进行整合,并导入身份管理系统。 图1.7展示了一个包含身份管理,关联发现以及断言链接等基本组件的ER系统。
图1.7使用断定链接的ER系统