【自然语言处理】【实体匹配】AutoBlock:一个用于实体匹配的自动化Blocking框架

AutoBlock:一个用于实体匹配的自动化Blocking框架
《AutoBlock: A Hands-off Blocking Framework for Entity Matching》

论文地址:https://arxiv.org/pdf/1912.03417.pdf

相关博客:
【自然语言处理】【实体匹配】CollaborER:使用多特征协作的自监督实体匹配框架
【自然语言处理】【实体匹配】AutoBlock:一个用于实体匹配的自动化Blocking框架
【自然语言处理】【实体匹配】用于实体匹配中blocking环节的深度学习:一个设计空间的探索
【自然语言处理】【实体匹配】PromptEM:用于低资源广义实体匹配的Prompt-tuning

一、简介

​ 实体匹配 ( Entity Matching ) (\text{Entity Matching}) (Entity Matching)的目标是从单个或者多个数据源中确定出指向相同实体的数据记录 ( data record ) (\text{data record}) (data record)。每个大型匹配数据集都需要blocking,其是一个减少匹配record对数量的步骤。然而,大多数blocking方法是基于key且不需要学习的,其成功是建立在干净数据上的人工努力。

​ 本文中提出了 AutoBlock \text{AutoBlock} AutoBlock,一个基于表示学习和最近邻搜索的blocking框架。贡献包括:(a) Automation \text{Automation} Automation AutoBlock \text{AutoBlock} AutoBlock从大量人工清洗数据和blocking key调整中解放了用户;(2) Scalability \text{Scalability} Scalability AutoBlock \text{AutoBlock} AutoBlock具有次均分时间复杂度,并能够轻易应用在上百万records;(3) Effectiveness \text{Effectiveness} Effectiveness AutoBlock \text{AutoBlock} AutoBlock在多个大规模、现实数据集上优于各类baselines,特别是在dirtyunstructured数据集。

二、问题定义

​ 假设数据集由 n n n个tuple组成,并且每个tuple有 m m m个属性。定义第 i i i个tuple为 x i ≜ [ a i 1 , a i 2 , … , a i m ] \textbf{x}_i\triangleq[\textbf{a}_{i1},\textbf{a}_{i2},\dots,\textbf{a}_{im}] xi[ai1,ai2,,aim],其中 a i j \textbf{a}_{ij} aij x i \textbf{x}_i xi的第 j j j个属性。使用 [ n ] [n] [n]作为集合 { 1 , 2 , … , n } \{1,2,\dots,n\} {1,2,,n}的简写。以这种方式,每个属性值 a i j \textbf{a}_{ij} aij可以被表示为token序列 [ w i j k ] k = 1 l i j [w_{ijk}]_{k=1}^{l_{ij}} [wijk]k=1lij,其中 l i j l_{ij} lij a i j \textbf{a}_{ij} aij的序列长度,并且 w i j k w_{ijk} wijk是第 k k k个token。假设所有的token是从统一的词表 V \mathcal{V} V采样得到。这里强调用于非标准文本的统一词表 V \mathcal{V} V的两个重要属性:(a) 开放: V \mathcal{V} V能够包含词表外的token并有无线的基数;(b) 缺失值普遍,许多的 l i j l_{ij} lij是0。

  • blocking的正式定义

​ 给定一个具有 n n n个tuple的数据源 X ≜ [ x 1 , … , x n ] \textbf{X}\triangleq[\textbf{x}_1,\dots,\textbf{x}_n] X[x1,,xn],blocking输出一个候选对子集 C ⊆ [ n ] × [ n ] C\subseteq[n]\times[n] C[n]×[n],对于任意的 ( i , i ′ ) ∈ C (i,i')\in C (i,i)C,tuple x i x_i xi x i ′ x_{i'} xi很可能指向相同的实体。

Remark:高召回对blocking最重要,然而控制 C C C的尺寸来达到预筛选匹配的目标。

​ 除了tuple集合 X \textbf{X} X,还假设能够访问正样本集合 L ⊆ [ n ] × [ n ] \mathcal{L}\subseteq[n]\times[n] L[n]×[n],对于所有的 ( i , i ′ ) ∈ L (i,i')\in\mathcal{L} (i,i)L ( x i , x i ′ ) (\textbf{x}_i,\textbf{x}_i') (xi,xi)都是匹配的。可以使用确定的强key来获得正标签,或者通过人工标注。这个 L \mathcal{L} L也可以用于下游的匹配算法,其无论如何都需要收集正样本,所以blocking阶段对 L \mathcal{L} L的需求并不会引入更多的人工努力。

三、超越Blocking:最近邻搜索

​ 假设存在一个完美的相似度度量,并且不考虑效率,那么就可以使用最近邻搜索来实现blocking。将这个解决方案称为最近邻居blocking,并如下算法描述:

算法1:最近邻blocking

输入:tuple集合 X \textbf{X} X,相似度度量 σ ( ⋅ , ⋅ ) \sigma(\cdot,\cdot) σ(,),阈值 θ \theta θ

输出:候选对 C C C

C = ∅ C=\empty C=

for i = 1 , … , n i=1,\dots,n i=1,,n do

     C = C ∪ { ( i , i ′ ) ∣ σ ( x i , x i ′ ) > θ , ∀ i ′ < i } C=C\cup\{(i,i')|\sigma(\textbf{x}_i,\textbf{x}_{i'})>\theta,\forall i'C=C{(i,i)σ(xi,xi)>θ,i<i}

​ 事实上,现有的各种blocking方法都可以看作是最近邻blocking的特例,只是具有不同的相似度度量。例如,在传统基于key的blocking方法是二元相似度度量。这个观察也揭示了为什么这些方法容易受到非规范化数据影响:这些方法依赖精确的字符串匹配并且粒度太粗。

​ 另一个例子是 MinHash blocking \text{MinHash blocking} MinHash blocking,基于集合相似度。 MinHash blocking \text{MinHash blocking} MinHash blocking先把每个tuple转换为代表性片段的集合,然后基于集合表示来度量tuple的相似度。 Jaccard \text{Jaccard} Jaccard相似度和 LSH \text{LSH} LSH被用于提供最近邻的高效近似。然而, Jaccard \text{Jaccard} Jaccard相似度仅能捕获tuple间的词级相似度,对于需要语法或者语义相似度的困难领域可能是次优解。

架构概述

【自然语言处理】【实体匹配】AutoBlock:一个用于实体匹配的自动化Blocking框架_第1张图片

​ 本文的框架 AutoBlock \text{AutoBlock} AutoBlock遵循最近邻blocking方案,并利用正标签集合来学习相似度度量。如上图所示, AutoBlock \text{AutoBlock} AutoBlock的整体框架由5个步骤组成。步骤(1)-(4)共同形成了设计问题 Q1 \textbf{Q1} Q1的解决方案,步骤(5)则是 Q2 \textbf{Q2} Q2的解决方案。下面简要描述5个步骤:

  • Token嵌入

    词嵌入模型将每个token转换为token嵌入向量。

  • Attribute嵌入

    对于tuple的每个属性值,一个基于注意力机制的神经网络编码器将token嵌入向量序列转换为一个属性嵌入像。

  • Tuple signature

    多个signature函数将每个tuple的属性嵌入向量合并,产生多个tuple的signatures。

  • 模型训练

    该模型使用标注数据集,训练的目标是最大化匹配的tuple的cosine相似度。

  • 快速最近邻搜索

    训练好的模型被应用于计算所有tuple的signature,使用cosine相似度来为每个tuple检索最近邻来生成blocking的候选对。

四、 AutoBlock \text{AutoBlock} AutoBlock

1. Token嵌入

AutoBlock \text{AutoBlock} AutoBlock的第一步是使用词嵌入模型将每个token转换为低维嵌入向量。这里使用 fastText \text{fastText} fastText来获得tokens的嵌入向量。不同于其他的词嵌入模型为每个单词学习一个有区分性的嵌入, fastText \text{fastText} fastText为每个字符学习一个嵌入,并通过将单词中所有字符的嵌入向量求和计算词的向量表示。 fastText \text{fastText} fastText能够天然的处理少见的token,而其他的词嵌入模型通常将这些tokens看作是out-of-vocabulary并且使用特殊的token(UNK)来替换它们。实验显示, fastText \text{fastText} fastText对于常见的拼写错误更具鲁棒性,并且成功为同态相似的token生成相似的嵌入向量。

2. 基于注意力的属性嵌入

AutoBlock \text{AutoBlock} AutoBlock的第二步是将每个属性的token嵌入向量序列作为输入,并输出一个编码属性信息的嵌入向量。该步骤与自然语言处理中的短语/矩阵嵌入相关,但主要的挑战是不同的属性在长度、单词选择和使用,并且自然语言的顺序性质在表格数据中缺失。

​ 这里提出了基于注意力的属性编码器,用于计算属性嵌入向量。注意力编码其后的主要想法是平均,即一个属性的嵌入可以被表示为 token嵌入向量的加权平均。相比于先前每个token的固定权重,注意力编码器能够基于语义、位置和周围的tokens来学习权重。当属性很长并展现了清晰的结构模型,该能力就很重要。

​ 正式来说,令 v 1 , v 2 , … , v l ∈ R d \textbf{v}_1,\textbf{v}_2,\dots,\textbf{v}_l\in\mathbb{R}^d v1,v2,,vlRd是token嵌入序列,其中 l l l是序列长度并且 d d d是token嵌入的维度。一个注意力编码器计算输出token的权重:
h 1 , h 2 , … , h l = SeqEnc ( v 1 , … , v l ) (1) \textbf{h}_1,\textbf{h}_2,\dots,\textbf{h}_l=\text{SeqEnc}(\textbf{v}_1,\dots,\textbf{v}_l) \tag{1} h1,h2,,hl=SeqEnc(v1,,vl)(1)

α 2 , α 2 , … , α l = Softmax ( w T h 1 , … , w T h l ) (2) \alpha_2,\alpha_2,\dots,\alpha_l=\text{Softmax}(\textbf{w}^T\textbf{h}_1,\dots,\textbf{w}^T\textbf{h}_l) \tag{2} α2,α2,,αl=Softmax(wTh1,,wThl)(2)

β k = ρ α k + ( 1 − ρ ) 1 l , ∀ k ∈ [ l ] (3) \beta_k=\rho\alpha_k+(1-\rho)\frac{1}{l},\forall k\in[l] \tag{3} βk=ραk+(1ρ)l1,k[l](3)

这里, SeqEnc ( ⋅ ) \text{SeqEnc}(\cdot) SeqEnc()可以是任意的网络结构,只要其能够读入序列输入 ,并为每个位置产生输出。可能的选择包含标准的递归神经网络、双向 LSTM \text{LSTM} LSTM transformers \text{transformers} transformers。在等式(2)中,hidden state被转换为注意力权重,并在等式(3)中被进一步平滑, ρ ∈ [ 0 , 1 ] \rho\in[0,1] ρ[0,1]是控制平滑程度的超参数。最终,属性嵌入被定义为
g ( v 1 , … , v l ) ≜ ∑ k = 1 l β k v k (4) g(\textbf{v}_1,\dots,\textbf{v}_l)\triangleq\sum_{k=1}^l\beta_k\textbf{v}_k \tag{4} g(v1,,vl)k=1lβkvk(4)

3. Tuple Signature

AutoBlock \text{AutoBlock} AutoBlock的第三步需要合并属性嵌入向量并产生tuple级别的表示,其中匹配tuple的向量表示具有大的cosine相似度。在深入挖掘使用什么模型,先考虑一个更加基础的问题:若将一个tuple中的信息压缩至单个向量表示用于blocking,会发生什么?

3.1 样例1

​ 考虑具有属性TitleAlbumComposer的相同歌曲的三个tuples
x 1 = ( Me and Mrs.Jones , ∅ , ∅ ) x 2 = ( Me and Mrs.Jones,Call Me Irresponsible,Michael Buble ) x 3 = ( Me & Mrs. Call Me Irresponsible,Michael Buble ) \textbf{x}_1=(\text{Me and Mrs.Jones},\empty,\empty) \\ \textbf{x}_2=(\text{Me and Mrs.Jones,Call Me Irresponsible,Michael Buble}) \\ \textbf{x}_3=(\text{Me \& Mrs. Call Me Irresponsible,Michael Buble}) x1=(Me and Mrs.Jones,,)x2=(Me and Mrs.Jones,Call Me Irresponsible,Michael Buble)x3=(Me & Mrs. Call Me Irresponsible,Michael Buble)
其中 ∅ \empty 表示缺失值。嵌入向量需要以Title为主,用于确保 e m b ( x 1 ) ≈ e m b ( x 2 ) emb(\textbf{x}_1)\approx emb(\textbf{x}_2) emb(x1)emb(x2)。然而,这意味着 e m b ( x 1 ) emb(\textbf{x}_1) emb(x1) e m b ( x 2 ) emb(\textbf{x}_2) emb(x2)的相似度不是很高。

​ 这个例子表明当tuple包含各种属性并可能具有很多缺失值,仅使用一个嵌入向量来表示tuple将会导致某些正样本对具有低相似度。因此,为了同时检索 ( x 1 , x 2 ) (\textbf{x}_1,\textbf{x}_2) (x1,x2) ( x 2 , x 3 ) (\textbf{x}_2,\textbf{x}_3) (x2,x3)必须使用较低的阈值 θ \theta θ。然而,一个小 θ \theta θ将会导致错误的正样本对。

​ 为了解决这个问题,本文提出multiple signatures。每个signature仅捕获元组的部分且不同的方面,只要两个元组具有相似的signatures就认为它们相似。

3.2 样例2

​ 继续样例1。假设有两个signature函数 s i g 1 ( ⋅ ) sig_1(\cdot) sig1() s i g 2 ( ⋅ ) sig_2(\cdot) sig2()应用在TitleAlbumComposer。然后会有 s i g 1 ( x 1 ) = s i g 1 ( x 2 ) , s i g 2 ( x 2 ) = s i g 2 ( x 3 ) sig_1(\textbf{x}_1)=sig_1(\textbf{x}_2),sig_2(\textbf{x}_2)=sig_2(\textbf{x}_3) sig1(x1)=sig1(x2),sig2(x2)=sig2(x3)。这样,忽略 s i g 1 ( x 1 ) ≠ s i g 1 ( x 3 ) sig_1(\textbf{x}_1)\neq sig_1(\textbf{x}_3) sig1(x1)=sig1(x3) s i g 2 ( x 1 ) ≠ s i g 2 ( x 3 ) sig_2(\textbf{x}_1)\neq sig_2(\textbf{x}_3) sig2(x1)=sig2(x3),所以仍然可以使用大的阈值 α \alpha α来检索 ( x 1 , x 2 ) (\textbf{x}_1,\textbf{x}_2) (x1,x2) ( x 2 , x 3 ) (\textbf{x}_2,\textbf{x}_3) (x2,x3)

3.3

​ 正式来说,令 g 1 , … , g m ∈ { ∅ } ∪ R d \textbf{g}_1,\dots,\textbf{g}_m\in\{\empty\}\cup\mathbb{R}^d g1,,gm{}Rd表示一个tuple的 m m m个属性的嵌入向量。定义第 s s ssignature函数来作为非缺失属性的加权平均
f ( s ) ( g 1 , … , g m ) ≜ ∑ j = 1 m I ( g j ≠ ∅ ) w s j g j (5) f^{(s)}(\textbf{g}_1,\dots,\textbf{g}_m)\triangleq\sum_{j=1}^m\mathbb{I}(\textbf{g}_j\neq\empty)w_{sj}\textbf{g}_j \tag{5} f(s)(g1,,gm)j=1mI(gj=)wsjgj(5)
其中, w s ≜ [ w s j ] j = 1 m ≥ 0 \textbf{w}_s\triangleq[w_{sj}]_{j=1}^m\ge 0 ws[wsj]j=1m0是估计的非负权重, I ( ⋅ ) \mathbb{I}(\cdot) I()是指示函数,当对于所有的 j ∈ [ m ] j\in[m] j[m]都有 I ( g j ≠ ∅ ) w j \mathbb{I}(\textbf{g}_j\neq\empty)w_j I(gj=)wj为0,则 f ( s ) f^{(s)} f(s)设为空集 ∅ \empty 。给定 S S S个这样的signature函数 { f ( s ) ( ⋅ ) } s = 1 S \{f^{(s)}(\cdot)\}_{s=1}^S {f(s)()}s=1S,并通过 f ( s ) ( ⋅ ) f^{(s)}(\cdot) f(s)()用于表示 f i ( s ) f_i^{(s)} fi(s)对于tuple x i \textbf{x}_i xisignature计算,用于 AutoBlock \text{AutoBlock} AutoBlock的最终相似度度量是最大化 S S Ssignatures的cosine相似度
σ ( x i , x i ′ ) ≜ max ⁡ s = 1 , … , S cos ⁡ ( f i ( s ) , f i ′ ( s ) ) (6) \sigma(\textbf{x}_i,\textbf{x}_{i'})\triangleq\max_{s=1,\dots,S}\cos(\textbf{f}_i^{(s)},\textbf{f}_{i'}^{(s)}) \tag{6} σ(xi,xi)s=1,,Smaxcos(fi(s),fi(s))(6)
其中 cos ⁡ ( f , f ′ ) = ⟨ f , f ′ ⟩ / ( ∥ f ∥ 2 ⋅ ∥ f ′ ∥ 2 ) \cos(\textbf{f},\textbf{f}')=\langle\textbf{f},\textbf{f}'\rangle/(\parallel\textbf{f}\parallel_2\cdot\parallel\textbf{f}'\parallel_2) cos(f,f)=f,f/(f2f2)是cosine相似度,若 f \textbf{f} f或者 f’ \textbf{f'} f’为空集 ∅ \empty 则设其cosine相似度为0。需要注意cosine相似度具有缩放不变性,所以对于所有的 s ∈ [ S ] s\in[S] s[S]需要 ∥ w s ∥ 2 = 1 \parallel\textbf{w}_s\parallel_2=1 ws2=1

4. 模型训练

​ 现在来描述给定正样本标签集合 L \mathcal{L} L,提出的注意力编码器和signature函数如何训练。该训练算法是基于下面的想法:对于任意的 ( i , i ′ ) ∈ L (i,i')\in\mathcal{L} (i,i)L,tuple对 ( x i , x i ′ ) (\textbf{x}_i,\textbf{x}_{i'}) (xi,xi)应该比 ( x i , ★ ) (\textbf{x}_i,\bigstar) (xi,) ( x i ′ , ★ ) (\textbf{x}_{i'},\bigstar) (xi,)更加相似,其中 ★ \bigstar 表示一个不相关的tuple。

​ 基于这个直觉设计了一个辅助多类别分类任务进行训练。具体来说,对于每个正样本对 ( i , i ) ∈ L (i,i)\in\mathcal{L} (i,i)L,随机采样一个小的索引集合 U i , i ′ ⊂ [ n ] ∖ { i , i ′ } U_{i,i'}\subset[n]\setminus\{i,i'\} Ui,i[n]{i,i}。由于 n ≫ ∣ U i , i ′ ∣ n\gg|U_{i,i'}| nUi,i并且 X \textbf{X} X中的重复是比较罕见的,因此可以假设 U i , i ′ U_{i,i'} Ui,i中的tuple是与 x i \textbf{x}_i xi x i ′ \textbf{x}_{i'} xi不相关的。给定signature函数 f ( s ) f^{(s)} f(s),从 { i , i ′ } ∪ U i , i ′ \{i,i'\}\cup U_{i,i'} {i,i}Ui,i 2 ∣ U i , i ′ ∣ + 1 2|U_{i,i'}|+1 2Ui,i+1个样本对中挑选出唯一正样本对 ( x i , x i ′ ) (\textbf{x}_i,\textbf{x}_{i'}) (xi,xi)的概率定义如下:
P s [ ( x i , x i ) ; U i , i ′ ] ≜ e σ ( f i ( s ) , f i ′ ( s ) ) e σ ( f i ( s ) , f i ′ ( s ) ) + ∑ j ∈ U i , i ′ [ e σ ( f i ( s ) , f j ( s ) ) + e σ ( f i ′ ( s ) , f j ( s ) ) ] (7) P_s[(\textbf{x}_i,\textbf{x}_i);U_{i,i'}]\triangleq\frac{e^{\sigma(\textbf{f}_i^{(s)},\textbf{f}_{i'}^{(s)})}}{e^{\sigma(\textbf{f}_i^{(s)},\textbf{f}_{i'}^{(s)})}+\sum_{j\in U_{i,i'}}[e^{\sigma(\textbf{f}_i^{(s)},\textbf{f}_{j}^{(s)})}+e^{\sigma(\textbf{f}_{i'}^{(s)},\textbf{f}_{j}^{(s)})}]} \tag{7} Ps[(xi,xi);Ui,i]eσ(fi(s),fi(s))+jUi,i[eσ(fi(s),fj(s))+eσ(fi(s),fj(s))]eσ(fi(s),fi(s))(7)
注意力编码器 { g ( j ) } j = 1 m \{g^{(j)}\}_{j=1}^m {g(j)}j=1msignature函数权重可以通过最小化所有signatures和正样本的对数似然来端到端的学习
max ⁡ { g ( j ) } j = 1 m , { w s } s = 1 S 1 ∣ L ∣ ∑ ( i , i ′ ) ∈ L ∑ s = 1 S log ⁡ P s [ ( x i , x i ′ ) ; U i , i ′ ] (8) \max_{\{g^{(j)}\}_{j=1}^m,\{\textbf{w}_s\}_{s=1}^S}\frac{1}{|\mathcal{L}|}\sum_{(i,i')\in\mathcal{L}}\sum_{s=1}^S\log P_s[(\textbf{x}_i,\textbf{x}_{i'});U_{i,i'}] \tag{8} {g(j)}j=1m,{ws}s=1SmaxL1(i,i)Ls=1SlogPs[(xi,xi);Ui,i](8)
这里应用 Adam \text{Adam} Adam来优化目标函数。在每次更新后,进一步将所有signature权重投影至灵活的区域来确保非负和单位范数。

​ 然而,等式(8)中定义的优化问题并没有对signature权重施加任何正则化,其可能会导致 S S S个一致且独立的最优signature函数。理想的signature应该是独立或者正交的: W T W = I S \textbf{W}^T\textbf{W}=\textbf{I}_S WTW=IS,所以每个signatures反应了tuple的一个独立方面。因此,可以将惩罚项 ∥ W T W − I S ∥ \parallel\textbf{W}^T\textbf{W}-\textbf{I}_S\parallel WTWIS合并至优化问题中。然而,当优化问题涉及到较大的任务,调整惩罚系数或者相关超参数会变得笨拙且不切实际。

​ 取而代之,这里提出了一个简单的序列算法来实现正交性。主要的相反是每次训练一个signature函数,并且训练当前signature函数,先前定义的signature函数所使用的所有属性都不可用。这种方法中,不同signature函数使用的属性将不会重复,并能够天然满足正交。最终,当所有的属性都被使用,或者已经学习了 S S Ssignature函数,则算法终止。

​ 模型训练算法如下:

输入:tuple集合 X \textbf{X} X,标注集合 L \mathcal{L} L,最大迭代次数 T T T,最大signatures数量 S ˉ \bar{S} Sˉ

输出:属性编码器 { g ( j ) } j = 1 m \{g^{(j)}\}_{j=1}^m {g(j)}j=1m,signature函数权重 { w s } s = 1 S \{\textbf{w}_s\}_{s=1}^S {ws}s=1S

初始化 { g ( j ) } j = 1 m \{g^{(j)}\}_{j=1}^m {g(j)}j=1m { w s } s = 1 S \{\textbf{w}_s\}_{s=1}^S {ws}s=1S

初始化属性集合 M = { 1 , … , m } \mathcal{M}=\{1,\dots,m\} M={1,,m}

for s = 1 , … , S ˉ s=1,\dots,\bar{S} s=1,,Sˉ do

  for t = 1 , … , T t=1,\dots,T t=1,,T do

    采样mini-batch L B ⊂ L \mathcal{L}_B\subset\mathcal{L} LBL

    为每个 ( i , i ′ ) ∈ L B (i,i')\in\mathcal{L}_B (i,i)LB采样 U i , i ′ U_{i,i'} Ui,i

    更新 { g ( j ) , w s j } j ∈ M \{g^{(j)},w_{sj}\}_{j\in\mathcal{M}} {g(j),wsj}jM来改善 1 ∣ L B ∣ ∑ ( i , i ′ ) ∈ L B log ⁡ P s [ ( x i , x i ′ ; U i , i ′ ) ] \frac{1}{|\mathcal{L}_B|}\sum_{(i,i')\in\mathcal{L}_B}\log P_s[(\textbf{x}_i,\textbf{x}_{i'};U_{i,i'})] LB1(i,i)LBlogPs[(xi,xi;Ui,i)]

    投影 w s \textbf{w}_s ws { w ∈ R ≥ 0 m ∣ w M = 0 , ∥ w ∥ 2 = 1 } \{\textbf{w}\in\mathbb{R}_{\ge0}^m|w_{\mathcal{M}}=0,\parallel\textbf{w}\parallel_2=1\} {wR0mwM=0,w2=1}

   M = M ∖ { j ∈ [ m ] ∣ w s j > 0 } \mathcal{M}=\mathcal{M}\setminus\{j\in[m]|w_{sj}>0\} M=M{j[m]wsj>0}

  if M = ∅ \mathcal{M}=\empty M= then

     S=s;break; \text{S=s;break;} S=s;break;

5. 快速最近邻搜索

​ 在 AutoBlock \text{AutoBlock} AutoBlock的最后一个步骤中,目标是对于每个tuple,依据等式(6)的独立 σ \sigma σ计算的相似度来找出超过阈值 θ > 0 \theta>0 θ>0的最近邻。该任务可以简化为一个经典的、基于cosine相似度的高维最近邻搜索问题。这里使用局部敏感哈希 (LSH) \text{(LSH)} (LSH),一种次线性查询时间解决该问题的技术。具体来说,这里使用 cross-polytope LSM \text{cross-polytope LSM} cross-polytope LSM,是一种用于cosine相似度的start-of-the-art LSH \text{LSH} LSH家族,其不仅能够具有理论最优查询时间复杂度,并且也允许高效的实现。

五、评估

1. 实验设置

1.1 数据集

​ 实验考虑三个真实数据集:MovieMusicGrocery,这些数据集是从各种公开网站上爬取和采样的。Music来自于 Amazon \text{Amazon} Amazon Wikipedia \text{Wikipedia} WikipediaMovie来自于 IMDb \text{IMDb} IMDb WikiData \text{WikiData} WikiDataGrocery来自于 Amazon \text{Amazon} Amazon ShopFoodEx \text{ShopFoodEx} ShopFoodEx。这三个数据集代表实体匹配问题中的三种不同的类型:

  • Clean(Movie):属性并正确对齐并且属性值相对干净,也就是说每个属性很少包含不相关的信息。
  • Dirty(Music):某些属性可能包含大量不相关的信息。此外,属性也不是完美的对齐,并且属性值被放置在错误的属性上。
  • Unstructured(Grocery):所有的信息都被混合在原始、相对较长的文本属性。

1.2 正样本生成

​ 对于所有的三个数据集,使用strong key来生成正样本。对于Movie数据集则是tconst,对于Music数据集则是ASIN,对于Grocery则是UPC码。需要注意,不是三个数据集中的每个record都有strong key。由于这些strong key被用于构建训练和评估数据的正样本,为了避免过拟合将其排除在属性集中。

1.3 数据集划分

​ 首先,将正样本随机划分为两个部分,80%用于训练并且20%用于测试,并且确保具有相同strong key的tuple被划分至相同的部分。将出现在所有训练标签中的元组加入值训练集,并添加20%的非正样本;其作为不相关tuple来促进利用。测试集也是用相似的方法创建。重复这个过程并为每个数据集创建5个训练/测试集合对。

1.4 比较方法

  • 基于key的blocking

    考虑两个blocking:单个key(例如仅使用Title)和连接key(使用所有属性)。

  • MinHash \text{MinHash} MinHash blocking

    该方法在特定的属性上使用 Jaccard \text{Jaccard} Jaccard相似度来检索所有的对,并选择超过阈值 θ \theta θ的候选对。所有属性都被考虑,并且 θ \theta θ被设置为0.4、0.6或者0.8。

  • DeepER \text{DeepER} DeepER

    作为基于深度学习的blocking方法的state-of-the-art,该方法可以看作是 AutoBlock \text{AutoBlock} AutoBlock的特例。

​ 为了理解 AutoBlock \text{AutoBlock} AutoBlock组件的影响,这里还包含两个子模型baseline:

  • 无加权平均编码器:其将Title作为仅有的signature,并在其上应用无权重平均;
  • 注意力编码器:其将Title作为仅有的signature,并在Title上应用注意力编码器;

1.5 AutoBlock \text{AutoBlock} AutoBlock配置

​ 使用词嵌入向量尺寸为 d = 300 d=300 d=300的预训练 fastText \text{fastText} fastText。注意力编码器中的 SeqEnc ( ⋅ ) \text{SeqEnc}(\cdot) SeqEnc()选单层的 Bi-LSTM \text{Bi-LSTM} Bi-LSTM,虽然发现本文的方法对于神经网络架构和其他影响因素具有鲁棒性。对于每个正样本对,在训练过程中随机采样 ∣ U i , i ′ ∣ = 10 |U_{i,i'}|=10 Ui,i=10不相关tuple来构造等式(7)的损失函数。设置signature最大数量 S S S为属性的数量。对于属性Title,设置注意力平滑参数 ρ \rho ρ为1,其他属性则为0。对于最近邻搜索,设置相似度阈值为 θ = 0.8 \theta=0.8 θ=0.8,每个tuple的最大检索数量为 max ⁡ ( 1000 , ∣ n 1 ∣ ) \max(1000,|\sqrt{n_1}|) max(1000,n1 ),其中 n 1 n_1 n1是较大表的尺寸。

1.6 最小预处理

​ 对于所有方法,仅执行相同且最小的预处理,其目标之一是最小化blocking中的人工。事实上,仅有两个预处理:将英文字符转换为小写、使用标准的 TreeBank tokenizer \text{TreeBank tokenizer} TreeBank tokenizer将属性转换为token序列。

1.7 评估指标

​ 使用两个指标来评估每个blocking方法的有效性: recall \text{recall} recall P/E ratio \text{P/E ratio} P/E ratio。令 T ⊆ [ n ] × [ n ] \mathcal{T}\subseteq[n]\times[n] T[n]×[n]所有正确匹配的未知集合, X \textbf{X} X是元组集合, C \mathcal{C} C是候选对集合。两个度量的定义如下:
r e c a l l ≜ C ∩ T T recall\triangleq\frac{\mathcal{C}\cap\mathcal{T}}{\mathcal{T}} recallTCT

P/E ration ≜ ∣ C ∣ X = C n \text{P/E ration}\triangleq \frac{|\mathcal{C}|}{\textbf{X}}=\frac{\mathcal{C}}{n} P/E rationXC=nC

​ 然而,真实标签集合 T \mathcal{T} T是永远无法预先知道,因此使用收集的正样本标签 L \mathcal{L} L来近似。报告每个数据集上5个测试集的平均表现。

2. 有效性

【自然语言处理】【实体匹配】AutoBlock:一个用于实体匹配的自动化Blocking框架_第2张图片

​ 首先研究 AutoBlock \text{AutoBlock} AutoBlock的有效性。上表展示了三个数据集上baseline方法和 AutoBlock \text{AutoBlock} AutoBlock recall \text{recall} recall P/E ration \text{P/E ration} P/E ration。表中的结果支持以下结论。

​ 首先, AutoBlock \text{AutoBlock} AutoBlock在所有数据集上都表现的最好,特别是当数据集为dirty或者unstructured。在 Grocery \text{Grocery} Grocery上, AutoBlock \text{AutoBlock} AutoBlock不仅在 recall \text{recall} recall上显著超越所有的baseline,并且具有最小的 P/E ration \text{P/E ration} P/E ration。在 Music \text{Music} Music AutoBlock \text{AutoBlock} AutoBlock recall \text{recall} recall高于最优baseline,并且 P/E ration \text{P/E ration} P/E ration仅有 MinHash \text{MinHash} MinHash的1/5。在 Movie \text{Movie} Movie AutoBlock \text{AutoBlock} AutoBlock实现了接近第二名的 recall \text{recall} recall,但是 P/E ration \text{P/E ration} P/E ration是最优baseline的20倍。

​ 第二,基于key的blocking方法在三个数据集上的 recall \text{recall} recall都不高。该缺点在 Grocery \text{Grocery} Grocery上最明显,其在Title上没有一个完全匹配的正样本对,因为两个数据源以不同的方式将grocery产品的不同方面拼接为单个属性。因此,基于key的方法无法检索真正的正样本对。

​ 第三, MinHash \text{MinHash} MinHash需要一个低相似度阈值来实现高 recall \text{recall} recall,但代价是无法接受的 P/E ration \text{P/E ration} P/E ration。事实上,仅当 θ = 0.4 \theta=0.4 θ=0.4 MinHash \text{MinHash} MinHash能够在MovieMusic上实现与 AutoBlock \text{AutoBlock} AutoBlock相当的 recall \text{recall} recall,但是 P/E \text{P/E} P/E显著的优于 AutoBlock \text{AutoBlock} AutoBlock;当 θ \theta θ增加, MinHash \text{MinHash} MinHash recall \text{recall} recall会明显下降。此外, MinHash \text{MinHash} MinHash Grocery \text{Grocery} Grocery上的 recall \text{recall} recall仍然低于 AutoBlock \text{AutoBlock} AutoBlock

​ 第四,注意力机制对于 AutoBlock \text{AutoBlock} AutoBlock recall \text{recall} recall共享巨大。从注意力编码器和无加权编码器的比较中最能看到,前者在 Music \text{Music} Music Grocery \text{Grocery} Grocery上超越后者16.9和18.3个点。此外, AutoBlock \text{AutoBlock} AutoBlock在三个数据集上的 recall \text{recall} recall优于 DeepER \text{DeepER} DeepER,这进一步证明了注意力机制的有效性。

​ 最后但是最重要的是,学习多个signatures进一步提供 AutoBlock \text{AutoBlock} AutoBlock recall \text{recall} recall。在 Movie \text{Movie} Movie Music \text{Music} Music AutoBlock \text{AutoBlock} AutoBlock的注意力编码器的显著改善 recall \text{recall} recall也说明了这一点。

3. 自动化

【自然语言处理】【实体匹配】AutoBlock:一个用于实体匹配的自动化Blocking框架_第3张图片

​ 这里解释了 AutoBlock \text{AutoBlock} AutoBlock如何节约人工并仍然获得高 recall \text{recall} recall。原始人工工作的主要来源是如何迭代尝试不同的清洗组合,并制定blocking的关键策略。 AutoBlock \text{AutoBlock} AutoBlock通过注意力编码器为不同token分配不同权重,从而减轻这个任务的人工。上图展示了从 Music \text{Music} Music Grocery \text{Grocery} Grocery中采样正样本对的Title的注意力权重。有几个模式非常突出:

  • 起始位置的token倾向于大权重。这与观察到的正样本对会在前几个token上匹配相一致。这些token通常编码重要信息。
  • 常见的停用词和无意义的标点符号会被适当忽略。这也是意料之中,因为这些token被不规则的注入至tuple,并导致不可避免的误匹配。
  • 与"功能性"标点符号具有特殊位置关系的tokens倾向于收到特别关注。举例来说,上图(a)中被两个括号包围的digitallyremastered具有较小的权重。
  • 许多鉴别标记被忽略。对这个结果最初时很惊讶,因为这些token在下游匹配步骤中很重要。后来意识到 AutoBlock \text{AutoBlock} AutoBlock的选择是合理的,因为这些token通常随机缺失或者具有不同的形式。在blocking步骤中忽略它们能够避免错误的正样本对。

【自然语言处理】【实体匹配】AutoBlock:一个用于实体匹配的自动化Blocking框架_第4张图片

AutoBlock \text{AutoBlock} AutoBlock自动合并不同属性来生成signature的能力节省了人工工作。上图展示了从Music学习的signature权重。在 s i g 2 sig_2 sig2AblumsPerformers合并可能是因为它们经常同时匹配或者不匹配,因此合并它们将检索冲突的机会并检索 P/E ration \text{P/E ration} P/E ration

你可能感兴趣的:(自然语言处理,自然语言处理,深度学习,实体匹配,blocking,entity,matching)