system: [SYSTEM]

user: 4. 松散模式感知元分块方法模型 主体思想：首先采用一种属性匹配归纳法对多个Web数据集中属性进行匹配划分，然后重组基于标记分块方法的块集合，组成元分块图，最后利用聚合熵对基于图的元分块加以改进，以达到对多数据源进行实体解析的目的。 该方法输入两个实体集合(图1)。主要由三个阶段组成，如图2中：单数据源属性选择、多数据源松散属性匹配归纳、基于聚合熵加权图的元分块。下面详细介绍下面的三个步骤。 图1. (a) 来自四个不同数据源的实体记录的集合；(b) 用标记模块划分生成的块集合 图2. 松散模式感知元分块方法流程图 4.1. 单数据源属性选择 在单数据源中，由于数据集中含有大量的数据属性，这些数据属性对于接下来的实体解析来说，其重要程度是不同的，所以本文采用属性选择方法来选择相对重要的属性集，以减少所需分析数据属性比较的次数，使处理后的数据属性集能更有效的进行实体解析。 本文将属性分为两类： 分类属性：根据属性的取值，可以将其分为多个类别的属性。例如：楼盘类型可以分为别墅、洋房、高层等类别。 值属性：每一个属性值都是唯一存在的字符型以及数值型数据，不能将他们归为多个类的属性。例如：楼盘名、建筑面积等。 4.1.1. 分类属性选择 在信息论中，用熵(Entropy)表示随机变量不确定性的度量，也就是说熵值越大，其随机变量的不确定性就越大，即数据集中随机变量的取值就越多。设X是一个含有限个值的离散随机变量，p(x)为x在数据集X中的出现的概率，则随机变量X的熵定义为： H ( X ) = − ∑ i = 1 n     p ( x ) log p (x) 对于分类属性而言，属性熵值越大，划分后得到的子集纯度就越高，选择这类熵值较大的属性，去查找重复记录，更具备说服力。由于在单个数据源中分类属性的数量较多，所以在本文中，计算出每个分类属性的熵值 H ( X ) 并且按照从大到小的顺序排列，然后选择熵值中间值作为阈值 ε ，熵值大于这个阈值 ε 的属性，将它们作为候选集以进行接下来的算法步骤。 4.1.2. 值属性选择 值属性包含了数值型属性和字符型属性，对于数值型属性选择之前需要对其进行离散化处理，本文采用等宽法将属性值分为具有相同宽度的区间，区间的个数K根据实际情况来决定，比如将建筑面积划 分为 [ 70 ， 90 ) 、 [ 90 ， 110 ) 、 [ 110 ， 130 ) 等。并使各个区间中的实体记录不存在交集。对于字符型属性，在进 行选择之前，采用上文3.2节中属性值转换的方法，将属性值进行规范化，例如：在不同数据源中表示相同的地址的方式是不一样的，采用属性值转换的方法，将此类属性值统一化。 对于值属性，在进行实体解析的时候其重要程度也是不一样的，如下表1中，建筑面积的信息量比楼盘名称的信息量要少。事实上有可能的是他们的楼盘是不同的但是建筑面积是相同的。在进行实体解析时，楼盘名称更能有效的判断是否重复，本文使用熵值为每个值属性分配一个权值，属性的熵值越大说明信息量越大，则该值属性更有说服力。同样的计算出每个值属性的信息熵 H ( X ) ，然后选择熵值中间值作为阈值 ε ，熵值大于这个阈值 ε 的属性，将它们作为候选集以进行接下来的算法步骤。 Table 1 Part of the household tabl 楼盘名称 户编号 面积 类型 楼层 大有恬园二期 6号1单元4层2号 [90，110) 住宅 4 哈佛世纪 4号2单元21层1号 [90，110) 住宅 21 中庚香海小镇 966-200号2层2号 [30，50) 住宅 2 中庚香海金鼎 15-1号 [70，90) 公建 1 盛通家园 40-8号2单元4层3号 [50，70) 住宅 4 世纪英伦 69-21号5单元8层2号 [50，70) 住宅 8 合美华庭 303号3单元2层1号 [70，90) 住宅 2 冠信香泉谷 54号12层2号 [130，150) 住宅 12 柏悦国际公寓 37号31层3号 [50，70) 公寓 31 表1. 部分户表 4.2. 多数据源松散属性匹配归纳法 这里介绍了一种属性匹配归纳法来对属性空间划分。此外，本文对属性聚类的主要改进是提出了一个基于局部敏感哈希的预处理步骤来扩展到Web大数据集中。 4.2.1. 局部敏感哈希预处理步骤 根据本文第3.2节中属性匹配归纳法的介绍，需要对所有可能匹配的属性对计算相似度，其中所需 的总的时间复杂度为 O ( N 1 ， N 2 ) ， N 1 ， N 2 分别是 A ε 1 和 A ε 2 的基数。然而Web的半结构化数据通常涉及较 高的维度(数据源通常有成千上万个属性值)问题，采用传统的属性匹配归纳法划分属性组会导致较高的时间复杂度；并且，对于每个属性来说，只有少数或者几乎没有相似的实体记录会被发现。因此，本文使用局部敏感哈希预处理步骤对属性表示模型降维，既可以减少传统属性匹配归纳法的复杂度，同时保证了属性对分区的质量。 局部敏感哈希算法(LSH)可以减少高维度空间的维数，并且保证相似度不变，来减少属性值比较的数量。使用属性表示模型和Jaccard相似度，Min-hashing和banding方法来降低比较所有可能匹配的属性对的复杂度。 属性模型表示为一个矩阵，其中每个列都是属性a j 的向量T j 。在这个矩阵的行中，一个列的Min-hash值是该列首次出现在序列中元素的位置。因此，用n个哈希函数对行进行交换，产生含有n个Min-hash值的向量；这个向量叫做Min-hash签名。在交换序列后两列中产生相同的Min-hash值的概率等于Jaccard的相似度；因此，Min-hashing保留了变换矩阵的相似度，从而减少了表示属性的向量的维度。然而，即使Min-hash签名的数量相对较小，但是计算所有可能签名对的相似度的复杂度也较高；因此，可以将这些签名划分为很多个bands，在至少一个band上Min-hash值相同的签名被认为是候选配对的，并作为属性匹配归纳算法的输入(适用于迭代只有通过这些候选配对代替所有可能的属性对)。 将n个Min-hash值作为签名，分为b个band，并且令 r = n / b 行Min-hash值为一个band， s r 表示两个band相同的概率， 1 − s r 表示两个band不相同的概率，每一个band都不相同的概率是 ( 1 − s r ) b ，则两个属性在至少一个band上完全相同的概率是 1 − ( 1 − s r ) b 。这个函数具有S型曲线特征，拐点代表的是相似性的阈值。这个阈值可以近似为 ( 1 / b ) 1 / r 。例如，选择b = 30和r = 5，只需要对具有Jaccard相似度大于~0.5的属性对进行属性聚类(示例图3)。这样就减少了属性对之间求相似度的计算复杂度。 图3. r = 5和b = 30的LSH s曲线。箭头表示估计的阈值 4.2.2. 松散属性匹配归纳法 本文4.2节中属性匹配归纳法加以改进，松散属性匹配归纳法主要由下面四个步骤组成：属性值标记化；基于局部敏感哈希预处理后的二进制属性表示模型；相似度测量采用Jaccard系数；算法1用来作为改进后的聚类算法。 算法1：属性聚类算法 输入：基于局部敏感哈希处理后的属性表示模型A 1 、A 2 输出：一个聚类结果：K 1) edges←{}sim←Map 2) Max←Map Cand←Map //属性匹配最大相似度 3) foreach a i ∈ A 1 ， a j ∈ A 2 do 4) sim←( i，a j >，similarity( τ i ， τ j )) 5) if Sim.get( i，a j >) > Max.get(a i ) then 6) Max←(a i ，sim) 7) if Sim.get( i，a j >) > Max.get(a j ) then 8) Max←(a j ，sim) //属性匹配，找出候选集 9) foreach a i ∈ A 1 ， a j ∈ A 2 do 10) if Sim.get( i，a j >) ≥ (a∙Max.get(a i )) then 11) Candidates←(a i ，a j ) 12) if Sim.get( i，a j >) ≥ (a∙Max.get(a j )) then 13) Candidates←(a j ，a i ) 14) foreach a i ∈ A 1 ， a j ∈ Candidatesget(a i ) do 15) if a i ∈ Candidatesget(a j ) then 16) edges← i，a j > 17) K←getConnectedComponentsGrThan1(edges) return K 上述算法1首先计算出两个数据源中所有可能匹配的属性之间的相似度，以及它们的最大相似度值(第2~8行)。第4行使用Jaccard系数作为相似度度量。在第9~13行使用松散的属性匹配归纳法来找出属性的候选匹配集，根据阈值来判断最相似的属性(例如：0.9.maxSimValue)。如果一个属性 a i 在它的候选匹配对象中有属性 a j ，那么边 〈 a i ， a j 〉 被收集(第14~16行)。最后，用这些边构建基数大于1的图连通分量，表示为聚类(第17行)。选择使用多节点聚类可以收集所有属性，也就是可以确保包含所有可能的标记(模块键)。 4.3. 松散模式感知元分块方法 本节描述了基于图的模式感知元分块技术中的两个步骤。在第一步中，分块图 G β { V β ， E β ， W β } 使用 聚合熵来对边进行加权来表示在块中出现的实体记录的相关性。第二步是一个新的修剪标准，来去除块中多余的比较。 4.3.1. 分块图加权 以图1中图1(a)和图1(b)为例子，通过标记分块之后派生出的元分块图如图5，图中每个边的权值表示的是在标记分块图中相似记录出现的次数，将权值小于一定阈值的边修剪后得到图5(b)，但是仍然有 多余的两条边 e p 1 − p 2 和 e p 3 − p 4 没有被去掉。 为了解决图4问题。采用了属性匹配归纳法之后的相关属性组，消除了“中体奥林匹克花园”的不同的语义，将“中体奥林匹克花园”相关的块划分为两个新块，一个指地块，一个指项目名称，从图5(a) 中可以看出边 e p 1 − p 2 和 e p 3 − p 4 的权值都降低了。在元分块图5(b)中更改了全局阈值后正确地删除了一个多余的边( e p 1 − p 2 )。提高了精确度，并且保持了召回率。但是仍然存在一个多余的比较( e p 3 − p 4 )。 图4. (a) 派生的模块划分图；(b) 重构的分块图：虚线表示修剪的边，红色表示多余的比较没有被去掉 图5. 模块划分键在元分块上消除歧义的效果 为了消除这个多余的比较，本文使用4.1.1节中介绍的信息熵来描述在属性匹配归纳之后重新生成的每个属性聚类。在该方法中，分块键的重要性与它得到的属性熵成正比。为此，通过计算聚合熵，得到了每组属性的熵值。一组属性 C k 的聚合熵的定义是： H ¯ ( C k ) = 1 | C k | ⋅ ∑ A i ∈ C k H (Aj) 将模式不可知的分块方法(如标记分块)与属性匹配归纳法相结合时，每个分块键 b i 都与一个聚类 C k 唯一相关联，即 b i → C k 。在图1(b)中“中体奥林匹克花园”，消除在不同数据源中语义不同的问题后，可以将它划分为聚类 c 1 的中分块键“中体奥林匹克花园_c1”，以及聚类 c 2 中的分块键“中体奥林匹克花园_c2”； c 1 指的是项目名，而 c 2 指的是实体概要中的地址。如图5中对“中体奥林匹克花园”进一步分块后，每一组分块键 β j 关联的熵 h ( β j ) ： h ( β j ) = 1 | β j | ⋅ ∑ b i ∈ β j h (bi) h ( b i ) = H ¯ ( C k ) 是与一个分块键 b i → C k 相关联的熵。 为了表述两个实体概要 p u 和 p v 之间的权重，在表2中显示了在给定块集合中描述实体 p u 和 p v 的联合概率分布的统计表。例如：单元格 n 12 代表了在 p v 不存在 p u 存在时的块数量(没有 p v 表示为“ ¬ ”)；单元 n 2 + 表示 p u 不存在的块的数量(独立于 p v )。这些值也称为观测值。括号中的值是从图1(b)的块集合中派生出来的值，这里以实体概要 p 1 和 p 3 为例。利用皮尔森的卡方(chi-squared)测试( χ 2 ) [ 12 ] 来判断分块内的 p u 和 p v 的独立性；即，测试 p u 的分布在块(表的第一行)中存在时， p v 的分布是否与 p u 不存在的情况下(表中的第二行) p v 的分布相同。在实践中，卡方(chi-squared)测试测量了假设 p u 和 p v 在块中独立出现时，观测到的( n i j )和预期( u i j )样本数(对于 i = 1 ， 2 ; j = 1 ， 2 )之间的偏差。因此，统计表的每个单元的预期值是： u i j = ( n i + ⋅ n + j ) / n + + 。 Table 2 Associated tables of p u ， p p v ( p 3 ) ¬ p v ( p 3 ) p u ( p 1 ) n 11 ( 4 ) n 12 ( 2 ) n 1 + ( 6 ) ¬ p u ( p 1 ) n 21 ( 3 ) n 22 ( 3 ) n 2 + ( 6 ) n + 1 ( 7 ) n + 2 ( 5 ) n + + ( 12 ) 表2. p u 、 p v 关联表 因此，表示实体概要的节点 p u 和 p v 节点之间的权值 W u v 是按照如下公式计算的： W u v = χ 2 ⋅ h ( β u v ) = ∑ i ∈ { 1 ， 2 } ∑ j ∈ { 1 ， 2 } n i j − u i j u i j ⋅ h ( β u v ) 最终求得每个边的权值如图9(b)所示。 4.3.2. 图修剪 事实上，当使用基于边数的阈值选择时，就会出现以下问题。以权值的平均值为标准。 图6. (a) 两个额外的实体概要；(b) 为节点p 1 为中心的分块图表示 以图6中为例。图6(b)显示了 G p 1 ，以节点实体概要 p 1 为中心。如果实体集合(如图1(a))仅由实体概要集 { p 1 ， p 2 ， p 3 ， p 4 } 组成，生成的图 G p 1 只有4个节点和3条边。在这个场景中，边权值(本地的修剪阈值)的平均值略大于2。因此，只有在修剪阶段保留了 p 1 和 p 3 之间的边界。但是，如果将图6(a)中的两个实体概要添加到实体集合中，则将两个节点和两个边添加到 G p 1 中。这将使阈值变为1.8。因此，在修剪阶 段保留了 p 1 和 p 4 之间的边界。为了防止图剪枝步骤中受到边数的影响，本文提出了一个权值节点修剪(WNP)中的阈值选择策略。 基本思想：首先确定每个节点的阈值，在以节点为中心的分块图中，具有最高权值的边代表着分块和加权函数组合的相似度上限；因此，本文选择一个与相邻边数无关的阈值，考虑这个上界的一小部分： θ i ¯ = M c ，在这里M是最大的权值，c是任意常数。在真实数据集中显示为具有有效性的c值是c = 2； c值越高实现更高的召回率(PC)，但代价是牺牲精准度(PQ)。 确定了每个节点的本地阈值后，执行的最后一个步骤是保留边。不过，在以节点为中心的修剪中， p i 和 p j 之间的每一个边 e i j 都与两个阈值有关： θ i 和 θ j ； θ j 和 θ j 分别是与 p i 和 p j 相关的阈值。因此，如图7(b)所示，每条边 e i j 都有一个权值：(i)小于 θ i 和 θ j ，(ii)大于 θ i 和 θ j ，(iii)小于 θ i 和大于 θ j ，或(iv)大于 θ i 和小于 θ j 。案例(i)和(ii)并不模糊，因此 e i j 在第一个案例中被丢弃，并保留第二个案例。但是，案例(iii)和(iv)是不明确的。 现有的元分块论文提出的两种不同的解决这种歧义的方法：重新定义WNP(wnp1)：如果它的权值 超过了两个阈值中的一个，就会保留 e i j (wnp1)，相对的WNP(wnp2)为：如果它的权值大于 θ i 和 θ j ，那么就保留它的边界。本文中使用唯一的通用阈值，等于： θ i j = ( θ i + θ j ) / d ，d是一个常数；对于d = 2，所得到的阈值 θ i j 等于两个相关的本地阈值的平均值，如果大于该阈值则保留它的边界。 如图7修剪阶段之后的在图8(c)中显示最后一个模块划分图。多余的边 e p 3 − p 4 现在已经被正确地移除。 图7. 权重阈值：从 p i 到 p j 的定向边表明了 e i j 的边的权值比 θ i 高；从 p j 到 p i 的一个有向边表明， e i j 边的权值比 θ j 高 图8. 属性熵信息对元分块的影响