system: [SYSTEM]

user: 3. 生成简洁可解释的ER匹配规则 制定ER规则存在许多挑战。实体解析的精确度结果直接取决于ER规则。基于规则的实体解析通常采用采用所有属性匹配规则的方法来比较两个记录是否指向同一实体。例如：给定一个属于表1的记录r和属于表2的记录s，一个简单的实体匹配规则如下： φ 1 : r [ n a m e ] ≈ θ s [ n a m e ] ∧ r [ a d d r e s s ] ≈ σ s [ a d d r e s s ] ∧ r [ c i t y ] ≈ s [ d i s t r i c t ] ∧ r [ t e l ] ≈ s [ t e l ] ≈ θ 和 ≈ σ 是不同的相似度函数，并且如果它们所有对应的属性具有相似的或等效的值，则规则 φ 1 就认为两个元组是指向同一实体。 然而，实际上，上面的规则 φ 1 可能会导致非常低的召回率，因为真实世界的数据可能包含多个问题，比如拼写错误、格式不同和丢失值。 Table 1 A instance of record 记录R 详细地址(address) 联系方式(tel) 城市地区city 小区名cname r 1 和平长白263-22号9栋3号 123456 沈阳和平区 金地名悦 r 2 和平仙岛南路与长白二街交汇处263-22号9栋3号 123456 沈阳和平区 金地名悦 r 3 浑南区浑南东路18号9栋23号 888888 沈阳浑南区 金地滨河 表1. 记录实例R表 Table 2 A instance of record 记录S 详细地址(address) 联系方式(tel) 城市地区district 小区名name s 1 和平仙岛南路与长白二街交汇处263-22号9栋3号 123456 沈阳和平区 金地名悦 s 2 浑南区浑南东路18号9栋23号 888888 沈阳浑南区 金地滨河 表2. 记录实例S表 为了提高识别精度，采用析取匹配规则的实体解析方法开始流行。例如，有如下两条规则： φ 2 : r [ n a m e ] ≈ θ s [ n a m e ] ∧ r [ a d d r e s s ] ≈ σ s [ a p t ] ∧ r [ c i t y ] ≈ s [ d i s t r i c t ] φ 3 : r [ n a m e ] ≈ ∂ s [ n a m e ] ∧ r [ t e l ] ≈ s [ t e l ] 例如 φ 2 ∨ φ 3 ，如果两者有一个保留，那么表1中的r和表2中的s匹配。但从用户的角度来看，可以采用更自然的方法是用逻辑来指定规则。例如，下面的表示可能更友好： φ 4 : i f   r [ n a m e ] ≈ ∂ s [ n a m e ] ∧ r [ t e l ] ≈ s [ t e l ]           t h e n   r [ n a m e ] ≈ ∂ s [ n a m e ] ∧ r [ t e l ] ≈ s [ t e l ]           e l s e   r [ n a m e ] ≈ ∂ s [ n a m e ] ∧ r [ a d d r e s s ] ≈ s [ a p t ] ∧ r [ c i t y ] ≈ s [ d i s t r i c t ] 这种布尔匹配规则 φ 4 提供了一种更灵活的方法来表示匹配规则。 3.1. 基于语法和关联约束的布尔公式匹配规则 为了生成简洁且更精确的规则，本文将布尔公式匹配建模为一个语法约束引导合成(SyGuS) [ 16 ] 问题。语法约束引导合成将问题抽象表示为一组表达式的语法G，以及表达式的约束C，然后通过语法约束进行合成规则。语法G是一组递归重写规则(或表达式)，用于在一组终端符号和非终端(递归)符号上生成表达式。表达式提供了一种方法，可以通过依次应用表达式来从指定的初始符号派生表达式。下面给出了一个带有语法和关联约束的SyGuS问题示例： 语法 e x p r → e x p r ∨ e x p r ( bound : B ) e x p r → x | y | ¬ x | ¬ y 约束 ( x ⇒ ¬ y = e x p r ) ∧ ( y ⇒ ¬ x = e x p r ) 上面的语法有一个非结束符号(也是初始符号) e x p r ，它表示变量x、y或它们的负例的析取。表达式的空间是不受限制，但参数B限定了规则的使用次数。 布尔匹配规则(BMR)语法化。为了在SyGuS框架中表达BMR问题，本文使用布尔公式语法( G B M R )，定义如下： 语法1： G a t t r i b u t e → r [ A i ] ≈ ( f ， θ ) s [ A ′ i ] i ∈ [ 1 ， n ] ; f ∈ F ; θ ∈ [ 0 ， 1 ] 语法2： ( b o u n d : N d ) { G B M R → G a t t r i b u t e ( b o u n d : N a ) G B M R → ¬ G B M R G B M R → G B M R ∧ G B M R 其中语法 G a t t r i b u t e 和 G B M R 分别代表属性匹配规则和布尔公式匹配规则。边界 N a 和 N d 分别通过布尔公式限定 G B M R 中的属性匹配规则( G a t t r i b u t e )的数量和语法扩展的深度，以此来限定布尔表达式的搜索空间。 本文在下文利用实例进行规则合成来控制BMR的结构，并提供一个简洁的公式作为输出。因为本文的BMR是尽可能小的，所以可以避免提供的示例产生的过度拟合。上面的 G B M R 不能处理Null值(空值)，因为如果一个记录有一个Null值A，那么就无法知道两个记录是否在属性A上匹配。本文在 G B M R 中指定了一个新的语法3，用来处理属性的空值。 语法3： G B M R → if ( ≈ ( 1 ， n o N u l l s ， 1.0 ) ) then φ 2 else φ 3 i ∈ [ 1 ， n ] ; f ∈ F ; θ ∈ [ 0 ， 1 ] 这个规则表示，如果一对记录中的匹配属性中没有空值，那么应该使用一个BMR；否则应该使用不同的BMR。这使合成器快速找到规则类似例子 φ 4 (第三节布尔匹配规则示例)。此方法不影响语法的可表达性和精确度。替代语法纯粹是为了使语法 G B M R 和合成过程对有大量 n u l l 的数据库更有针对性的。 约束。从语法 G B M R 中选择的候选对象可以解释为布尔公式。已知正(M)和反(D)的例子，给定正(M)例和负(D)例，将SyGuS约束作为判定该BMR所提供例子的评价： 约束1 G B M R ( r m ， s m ) = t u r e ， ∀ ( r m ， s m ) ∈ M 约束2 G B M R ( r d ， s d ) = f a l s e ， ∀ ( r d ， s d ) ∈ D 基于语法约束的布尔匹配规则在本文的问题的情况下，部分程序还包括了行为约束。这种基于部分程序、行为约束和可能代码片段的语法的合成风格称为语法引导合成(SyGuS)，它最近受到了极大关注 [ 17 ]。下面将给出一个完整的布尔匹配规则流程： 算法1：attributeRule(e) 输入：实例e 相似度函数集F 属性匹配规则的属性数N a ： 输出：是否相似(true/false) 1 n a ← 1 2 while n a < N a do//attribute-matching rules loop 3 f ∈ F 4 θ← customSynth (i，f) 5 if (evalSimFn(e， n a ， f)>=θ then 6 return 算法2 BMRule(e，n a ) 输入：实例e 相似度函数集F N a : Bound on attribute-matching rules 输出: true/false 1 if (??)then 2n a ++ 3returnattributeRule(e) 4 else if (??) 5 return (BMRule(e，A)) 6 else if (??) 7 return BMRule(e，n a ) &&BMRule(e，n a ) 8 else return BMRule(e，n a )‖ BMRule (e，n a ) 算法3matchingRule(e， N a ) 输入：实例e，属性长度N a 输出：BMRule(e，n a ) 1 n a ← 0 2b←BMRule(e，n a ); 3if n a < N a then 4 return b 在上述基于语法约束的布尔匹配规则流程中，hole(??)用来表示算法的未知方面，由语法进行填充。它包含以下几个部分： 1) 算法1属性匹配规则。attributeRule是一种语法函数。例如，假设比较的记录有4个对齐的属性，那么属性匹配规则的n a 的取值在1和4之间。同理，属性匹配规则对12个相似函数的候选空间F进行了范围界定。阈值的选择使用自定义的合成程序(详见4.2节)。函数evalSimFn符号表示函数f对例e中记录的属性n a 的评价(详见4.2节)。 2) 算法2布尔匹配规则。BMRule是一个最多N a 倍的内联属性规则函数的语法函数 (由通过引用传递的变量强制执行)和对自身的多次递归调用，以指定语法的可能扩展。 3) 算法3匹配规则函数。用匹配规则函数(matchingRule)表示用于实体解析的布尔公式规则(BMR)。生成的规则由正反例约束验证，输出满足约束的布尔匹配规则。 3.2. 构建实例样本和评价指标 本文通过扩展语法指导的合成(SyGuS)框架来建模BMR问题。考虑问题的两个方面:精确问题和优化问题。前者对应从示例中找到满足所有约束的BMR。但这样一个完美的BMR经常在实践中不存在，因为示例可能会有错误，或者语法表达不够，不能正确地分类所有的示例。后者通过发现基于最优度度量的约束部分满足的BMR来缓和条件。 优化SyGuS问题。给定语法和正负示例的约束，优化SyGuS问题就是在语法中找到一个候选BMR，它满足约束的子集，使给定的最优度量最大化。 虽然SyGuS不能解决我们研究的问题，但它仍然可以作为我们算法的一个组成部分(第4节)。 本文构建实例样本来引导生成BMR规则，所选用的正实例样本由属性显著度选取，根据属性的显著度，对属性的显著程度进行排序。它首先通过小样本数据集估计每个属性的显著度：在相似的记录对中计算某些属性值匹配个数占总体匹配数的比例，其值越高意味着这些匹配对记录对相似的贡献度就越大；对应地，在不匹配的记录中计算某些属性值匹配的个数占总体不匹配数的比例，其值越高意味着这些属性对匹配的贡献度越低，进而用以惩罚这些属性的贡献度，最后，两者共同确定属性显著度。公式如下： 属性正证据。 P S A m = | { ( r i ， r j ) | r i ≈ σ r j ， A m ( r i ) ≈ θ A m A m ( r j ) } | | { ( r i ， r j ) | r i ≈ σ r j } | ， 0 < m < M ， 0 < i ≠ j < N (1) 其中分子 | { ( r i ， r j ) | r i ≈ σ r j ， A m ( r i ) ≈ θ A m A m ( r j ) } | 表示达到相似度阈值 σ 的记录中，某个属性的匹配个数，分母 | { ( r i ， r j ) | r i ≈ σ r j } | 表示达到相似度阈值 σ 的记录对个数(即匹配个数)。 属性负证据。 N S A m = | { ( r i ， r j ) | r i ≠ τ r j ， A m ( r i ) ≈ θ A m A m ( r j ) } | | { ( r i ， r j ) | r i ≠ τ r j ， ∃ A n A n ( r i ) ≈ θ A n A n ( r j ) } | ， 0 < i ≠ j < N ， 0 < m ， n < M (2) 其中分子 | { ( r i ， r j ) | r i ≠ τ r j ， A m ( r i ) ≈ θ A m A m ( r j ) } | 表示低于阈值 τ (即不相似)的记录中，某个属性匹配的个数，分母 | { ( r i ， r j ) | r i ≠ τ r j ， ∃ A n A n ( r i ) ≈ θ A n A n ( r j ) } | 所有低于阈值 τ (即不相似)的记录对。 那么单个属性综合显著度公式可以表示如下： S A m = P S A m − N S A m (3) 为解决 P S A m ， N S A m 可能不在同一量纲上的问题，可表示为 S A m = P S A m ⋅ ( 1 − N S A m ) (4) 评价指标本文想要生成一组最优的布尔匹配规则(BMR)，不用用户参与提供BMR的结构。为了评估BMR，我们假设用户提供了一组示例，通过 E = M ∪ D ，其中M是正例，记录对代表相同的实体，D是一种负例，即记录对代表不同的实体。对于BMRΦ和正例M负例D。本文定义一个指标 μ ( Φ ， M ， D ) ，它得到一个0到1的值来评价Φ的性能。 μ 越大，Φ越好。 M Φ ⊂ E 是(r，s)所有例子的一个集合，是r和s通过 Φ 相匹配。最优度量的一些候选指标如下： μ recall = | M Φ ∩ M | | M | μ precision = | M Φ ∩ M | | M Φ ∩ M | + | M Φ ∩ D | μ f 1 − score = 2 precision ∗ recall μ recall + μ precision 给定R和S两个关系，R和S之间的对齐属性集合，以及正例M和负例D，一个相似性函数F和一个评价指标 μ 。ER-BMR问题是发现一个BMRΦ，使 μ 最大。