system: [SYSTEM]

user: 5. 基于映射关系联结的领域知识抽取算法 第3节和第4节解决了Web表格语料库中的数据值层次的异构性问题。接下来，本节中将介绍一种在大量Web表格中抽取领域词典的算法，首先从Web表格语料库中去提取碎片化的映射关系，继而将这些映射关系联结起来，提高映射关系的完备性，最后通过冲突消解来进一步提高数据质量，成为可信的领域词典。 5.1. 相关概念 定义1. 映射关系：令R为两个属性X、Y间的概念上的关系。如果对于所有的 x ∈ X ，x函数地确定有且仅有一个值 y ∈ Y ，这一关系即为映射关系，表示为M(X，Y)或X → Y。 定义2. 近似映射关系：令R为两个属性X，Y之间概念上的关系，如果仅对R的某一子集 R ¯ ⊂ R 且 | R ¯ | ≥ θ | R | ，在这个子集中对于X中的任意值 x ∈ X ，在Y中有且仅有一个值 y ∈ Y 与之函数地对应，即仅在超过 θ | R | 大小的子集中满足映射关系，则称这一关系是 θ -近似映射关系，表示为 M θ ( X ， Y ) 或 X → θ Y 。在下文不引起混淆的情况下，将简略地用 θ 近似映射关系来代替映射关系，且 θ 取值为95%。 定义3. 映射关系图：一个无向的映射关系图 G = ( V ， E ) ，其中V是结点的集合，E是边的集合。每个结点v对应一个属性对，边对应属性对间的关系权重(相容或相斥)。映射关系图中，边有权重，结点没有权重。边权重的绝对值介于0和1之间，反映结点间的相容(或相斥)性强度。 定义4. 领域词典：领域词典的基本组成单位是(属性，值)或(实体1，实体2)二元组，子表是由符合相同映射关系的元组构成的二列表，领域词典是由子表构成的集合。由于领域词典由两种基本组成单位，下文用列来表示映射关系的左、右部分，称二列表为列对。 5.2. 映射关系提取 在这一节中，进行基于点互信息的列过滤、并利用函数依赖约束来剔除低质量的候选列对。 5.2.1. 基于PMI (点互信息)的列过滤 在领域知识的研究中，实体用来表示具有可区别性且独立存在的某种事务，语义类指具有某种共同属性的实体的集合，关系则是连接不同实体集合的“边”。抽取映射关系的首要任务是识别出Web语料库中各Web表中共有的语义类。 自然语言处理领域的相关研究中，代表相同语义领域或主题的两个词间具有语义相似性。基于这种理解，如果词汇涉及到的事物在现实世界中经常共同出现，从统计学上讲，尽管这些词汇可能指代不同的主体，但这些词汇属于同一类别 [ 4 ]。 令 s ( u ， v ) 为值u和值v间的语义相似性， C ( u ) = { C | u ∈ C ， C ∈ T ， T ∈ T } 表示在Web表格语料库 T 中包含值u的列集，同样 C ( v ) = { C | v ∈ C ， C ∈ T ， T ∈ T } 指Web表格语料库 T 中包含值v的列集。如果集合 C ( u ) ∩ C ( v ) 的基数较大，就意味着u和v会频繁地共同出现(例如，当u为辽宁，v为黑龙江时)。它们间具有较高的语义相似性。 在自然语言处理中，常采用PMI (Pointwise Mutual Information，点互信息)来量化共现程度。 PMI ( u ， v ) = log p ( u ， v ) p ( u ) p ( v ) (9) 其中 p ( u ) 和 p ( v ) 是Web表格语料库 T 的所有N列中出现u和v的概率，定义为： p ( u ) = | C ( u ) | N ， p ( v ) = | C ( v ) | N 和 p ( u ， v ) = | C ( u ) ∩ C ( v ) | N 。 在这里，采用NPMI (Normalized PMI，归一化PMI) [ 17 ]，将 s ( u ， v ) 的取值范围调整为 [ − 1 ， 1 ] ： s ( u ， v ) = NPMI ( u ， v ) = PMI ( u ， v ) − log p ( u ， v ) (10) 公式(10)中的NPMI降低了PMI对频率的敏感性，同时使共现性高、低的分化更为显著。 由语义相似性 s ( u ， v ) ，列 C = { v 1 ， v 2 ， ⋯ } 中的语义一致性是该列中所有值对语义相似性的平均值 C ¯ ，即 C ¯ = ∑ v i ， v j ∈ C ， i < j s ( v i ， v j ) C | C | 2 (11) 其中 ∑ v i ， v j ∈ C ， i < j s ( v i ， v j ) 表示列C中所有值对语义相似性总和， C | C | 2 为列C中值对总数。 若列C的语义一致性低于阈值，则将列C过滤掉。 例4：在表1~表5中，大部分列中的实体或属性值都有着较高的共现程度，这些列的语义一致性也相应较高。但是表2中的“上市时间”列、表3的“单价”列、表4的“交通线路”列，由于它们的语义一致性较低，将这些列从语料库中移除。 而另一方面，如果在生成Web表格语料库时，部分Web表格中出现了数据提取错误、数据混淆，如数据对齐错误等，也会造成语义一致性 C ¯ 的大幅降低。 5.2.2. 基于函数依赖的候选表过滤 在移除个别语义一致性较低的列后，将每一个Web表格中保留下来的列两两连接为列对，即对于每个表 T = { C 1 ， C 2 ， C 3 ， ⋯ ， C n } 中的n列，可以预连接出 2 C n 2 个有序列对 { ( C i ， C j ) | i ， j ∈ [ n ] ， i ≠ j } 。这是因为Web表格中的每一列都有可能会与同一个表中其他任意一列连接成为关系，这些关系中可能包含有用信息，是待联结的候选映射关系。但这 2 C n 2 个列对中并不都包含有意义的映射。 接下来用函数依赖检查这些二列表，来移除非映射列对。由定义2近似映射关系，将函数依赖的限制放宽到95%，允许一部分命名歧义(像(铁西区→沈阳)和(铁西区→鞍山))。 通过上述两种过滤方法，可将大部分的无意义候选关系过滤掉。候选映射关系提取的算法如算法2所示。 在算法2中，4~6行和7~9行分别对应基于PMI的属性过滤和基于函数依赖的属性对过滤。 5.3. 关系图模型下的映射关系联结 在基于PMI的列过滤和基于函数依赖的列对过滤后，保留下来的列对就可被视为映射关系了，本文称其为候选表。在这一步中，我们将具有相同映射关系且彼此相容、没有冲突的候选表联结起来。 5.3.1. 映射关系间的相容性 首要的任务是确定将候选列对是否应当被拼合起来，需要以候选表之间的相容性作为支持映射关系联结的依据。 定义5.相容性：相容性用以衡量候选表间包含的是同一映射关系的可能性大小。假设候选表B满足映射关系R，候选表B'满足映射关系R'，若R和R'是同一映射关系，则称候选表B和候选表B'是相容的。相容性用以衡量候选表间包含的映射关系一致性程度。 首先，可由值对的重叠度来计算两个映射关系间的相容性。令 B = { ( l i ， r j ) } 和 B ′ = { ( l ′ i ， r ′ j ) } 为两个二列映射关系，其中每一个都是由(左，右)值对构成的集合。如果这两个关系中共有很多相同的值对，也就是说其交集中元素个数 | B ∩ B ′ | 很大，那么这两个映射关系可能是一致的。 基于重叠度的相容性表示为 J + ( B ， B ′ ) ： J + ( B ， B ′ ) = max { | B ∩ B ′ | | B | ， | B ∩ B ′ | | B ′ | } (12) 其中， J + ( B ， B ′ ) 为B与B'间的相容性。与公式(3)类似， J + ( B ， B ′ ) 也被定义成一种对称的包含度，因为 B ， B ′ 间的相容性和 B ′ ， B 间的相容性在本质上是相同的，即 J + ( B ， B ′ ) = J + ( B ′ ， B ) 。 其次，提高完备性的目的在于去确定哪些候选表源于相同的广义域。本文采用的是开放世界假设，这与经典数据库中的封闭世界假设不同。单一的Web表格数据不是完备的，其中的映射关系覆盖面有限，需要进行扩展。而仅仅依靠重叠度作为相容性判据是不够的。 局部映射关系与全局映射关系的共有部分遵循超几何分布：假设全局域D是由有限离散值对组成的集合，是理想中的完备映射关系，候选表B和候选表B'分别取自两个不同的Web表格。为了评估候选表B和候选表B'是否来自同一域D，通过超几何分布，可使用B与B'的交集大小来评估它们共同来自域D的概率 [ 18 ]。B和B'中的值对都属于同一个域D的可能性大小表示为公式(13)， P ( m | n a ， n b ， n D ) = C n a S ⋅ C n D − n a n b − m C n D n b (13) 其中 n a = | B | ， n b = | B ′ | ， n D = | D | 。由超几何概型，假设候选表B中的某值对属于域D，候选表B'中的值对由域D中随机抽取(不放回)，若取到的值对恰好属于B，则视为随机试验成功， P ( m | n a ， n b ， n D ) 表示m次随机试验成功( m ∈ { 1 ， 2 ， 3 ， ⋯ ， | B ∩ B ′ | } )的概率。 在开放世界假设下，不可能获取到域D的基数，在此将D近似为B和B'的并集， n D = n a + n b 。实际上，在交集大小固定的情况下，选择更大的D会增加B和B'间的相容性。 由超几何分布的分布函数，可得到候选表B和候选表B'间的集合相容性 C h + ( B ， B ′ ) ： C h + ( B ， B ′ ) = F ( t | B ， B ′ ) = ∑ m ∈ [ 0 ， t ]     P ( m | n a ， n b ， n D ) (14) 其中 t = | B ∩ B ′ | ，是候选表B和候选表B'共有值对的数量。 最终的属性对相容性是综合重叠度相容性和超几何分布相容性之后的结果，取最大值： C + ( B ， B ′ ) = max { J + ( B ， B ′ ) ， C h + ( B ， B ′ ) } (15) 例5：候选表提取后，将表1中“小区名称–小学学区”记为a，表4中“名称–学区A”记为b，表5中“项目名称–周边小学”记为c，以重叠度来计算相容性，a与b间为0.75，a与c间为0.5，b与c间为0.66。而实际中表1与表4的覆盖面不足，若考虑基于超几何分布的相容性，a与b间为0.923，a与c间为0.085，b与c间为0.615。现实中的Web表格中通常仅涵盖了很小一部分信息，如有些表格仅包含某个区或某个开发商的信息，借助超几何分布可进一步提高完备性。 5.3.2. 映射关系间的相斥性 以统计学习为基础的算法难以像领域专家一样去理解映射关系的真正含义。在本文的例子中，关于“学区”与关于“周边学校”的映射关系就难以被自动算法区分，类似的还有“街道–社区”、“区域–板块”。 因此，仅依靠相容性来联结映射关系是不够的，这有可能引入新的错误。有的取值重合的属性在语义上未必是相关的。同样，隐含不同关系的表格间，有时也会有大量的值对重叠。这正是传统的基于模式匹配算法的不足之处。但不同的映射关系间也包含有冲突的值对，这违反了映射关系的定义，表明了它们不相容，尽管由公式(15)计算出的相容性值较高。 与5.3.1节的相容性相反，定义候选表间的相斥性。由于两个表B和B'间相斥性也是对称的，与公式(12)类似，相斥性 R − ( B ， B ′ ) 为： R − ( B ， B ′ ) = − max { | Conflict ( B ， B ′ ) | | B | ， | Conflict ( B ′ ， B ) | | B ′ | } (16) 其中 | Conflict ( B ， B ′ ) | 和 | Conflict ( B ′ ， B ) | 分别表示B和B'、B'和B间冲突集的元素个数。给定两个表格B和B'，它们间的冲突集为 Conflict ( B ， B ′ ) = { l | ( l ， r ) ∈ B ， ( l ， r ′ ) ∈ B ′ ， r ≠ r ′ } ，也就是左值相同，而右值不同的值对集合。 为提高效率，利用倒排索引重组候选表集合，将仅在B和B'共有多于阈值 θ overlap 的值对时(左值、右值同时)才去计算 C + ( B ， B ′ ) 。类似地，仅在B和B'共有多于阈值 θ overlap 的左值时才去计算 R − ( B ， B ′ ) 。 θ overlap = 10 。 例6：接例5，a与c间的相斥性为−0.5，b与c间的相斥性为−0.4。 5.3.3. 映射关系联结 在提出了评估可联结性的相容性和相斥性后，用图 G = ( B ， E ) 来表示候选属性对及它们之间关系，其中 B 是所有候选属性对的集合，图G中每个顶点表示一个列对 B ∈ B 。对于图G中每对顶点 B ， B ′ ，其间的关系E由相容性值 C + ( B ， B ′ ) 和相斥性值 R − ( B ， B ′ ) 表示，分别表示为带权边的正权重和负权重。 在图 G = ( B ， E ) 中，执行映射关系的联结做法如下：首先，相斥性 R − ( B ， B ′ ) 具有“绝对否决权”，若两顶点 B ， B ′ 间存在负权重边，则这两个属性对就不会被联结；而对于两顶点 B ， B ′ 间的正权重边，从全图中最大的开始联结，合并顶点后更新顶点 B * 与其他顶点间的正、负权重，相容性更新为 B ， B ′ 与相应顶点的正权重之和，而相斥性取 B ， B ′ 与相应顶点的负权重中绝对值的最大值。映射关系联结的过程如图2所示，其中的相容性和相斥性数值来源于例5和例6。 图2. 映射关系联结示意图 为降低计算复杂性，采取分治策略，在分区(子图)中进行映射关系联结 [ 19 ]。将图G中的顶点集 B 视为分区(子图) P i 的集合 B = { P 1 ， P 2 ， ⋯ } ，( P i ⊆ B )。由于映射关系联结的目标是将相容的候选表合成为更为完备、更全局化的映射关系，分区(子图)中的元素是能够被联结在一起的映射关系。 P 为所有分区的集合，其中不同的分区对应不同的映射关系，分区间应当是不相交的( P i ∩ P j = ϕ ， i ≠ j )，且它们应当合在一起构成 B ，即 ∪ P ∈ P P = B 。 将 B 划分为不相交的分区(子图)的原则是：1) 将相容表分到一起，以尽可能地增加单个映射关系的覆盖范围；2) 相斥表不应当放到同一个分区(子图)中。具体来说： 一方面，每个分区(子图) P中应当包含尽可能多的相容候选表。设 C + ( P ) 为分区P中候选表相容性 之和， C + ( P ) = ∑ B i ， B j ∈ P ， i < j C + ( B i ， B j ) ，在所有分区(子图)中应最大化其总和，即 maximize ∑ P ∈ P C + ( P ) 。 另一方面，将相斥性 R − 小于阈值 τ 的边视为强制约束，即不容许将这样的相斥表放在同一个分区(子图)中。在这里为了不过度惩罚由轻微质量问题和提取问题引起的略微相斥的表，用阈值 τ 来代替0。在实际的操作中，若 0 > R − > τ ，将 R − 赋值为0。设 R − ( P ) 为P中候选表相斥性之和， R − ( P ) = ∑ B i ， B j ∈ P ， R − ( B i ， B j ) < τ R − ( B i ， B j ) ，所有分区(子图)中应满足约束 ∑ P ∈ P R − ( P ) = 0 。 基于上述原则，映射关系联结算法如算法3所示。 在算法3中利用了贪心算法思想，首先将每一个顶点视为一个分区。然后，迭代合并当前相容性最高的一对分区 ( P 1 ， P 2 ) 以获得新的分区 P ′ ，同时更新剩下的正权边和负权边。当没有可以合并的分区时，算法终止。其中阈值 τ 是由参数优化实验取得，篇幅所限，本文未予介绍，取值为 τ = − 0.2 ，在性能和输出质量之间得到了平衡。 5.4. 冲突消解 映射关系联结的结果中存在着不一致的映射，也就是说同一映射中的两对值具有相同的左侧值，但不同的右侧值(这违反了映射关系的定义)。此问题的出现有三大原因：1) 某些不相容候选表之间的冲突值对不足，造成相斥性较低，无法阻止映射关系联结；2) 近似映射关系的定义中允许了部分不一致、映射关系联结时允许将小于阈值 τ 的相斥性赋值为零；3) 爬虫算法获取数据时出现Web表格提取错误、数据质量问题。在此加入冲突消解步骤，删除联结结果中的部分不一致映射，以提高质量。 冲突消解的目标是找到 P 的最大子集P T ，使P T 中任两个表彼此间都没有冲突，形式如下： maximize   | ∪ B i ∈ P T B i | subjectto     Conflict ( B i ， B j ) = ∅ ，     ∀ B i ， B j ∈ P T (17) 其中冲突集 Conflict ( B i ， B j ) = { l | ( l ， r ) ∈ B i ， ( l ， r ′ ) ∈ B j ， r ≠ r ′ } 由5.3.2节定义， P 为由候选表 { B 1 ， B 2 ， ⋯ } 组成的集合， P 中每一个 B i ， B j 都是值对 ( l ， r ) 的集合。 冲突消解如算法4所示，第3行到第5行对冲突的值对的数量进行计数。第6行到第9行查找引入冲突最多的候选属性对，并将其删除。