Jue Wang, Wei Lu, “Two are Better than One: Joint Entity and Relation Extraction with Table-Sequence Encoders”, EMNLP 2020
1 简介
这篇文章是用填充表格的方法做实体关系联合抽取,实体和关系采用不同的模型编码,并且两个模型之间有交互。对于表格,采用了一个三维的 RNN,很好地保留了表格的结构信息。另外,这篇文章也是第一个将 BERT 预训练出的 attn 权重引入到模型里。
可能是我见识不够,读这篇文章的时候我连呼妙妙妙!甚至让我对 attn 都有了不一样的理解。文章写得也很好,明明方法还挺复杂的,但是写出来就这么容易懂。而且图也画的都很好看!真的好棒!这个作者我爱了!
2 方法
实体关系联合抽取这个任务就不说了,我先介绍一下表格的方法:

如图所示,表格里对角线上是实体的标注,其它地方是 token 两两之间关系的标注,$\bot$ 就表示没有关系。于是整个任务就变成填充这样一个表格。既然已经皈依成一个表格了,那么就很容易让实体与关系共享同样的特征表示模块,这篇文章就将二者的特征表示分离,但又让他们有所交互:

如图所示,左边是 RE encoder,右边是 NER encoder,两个 block 交互,称之为一层,整个模型就是这样一层一层的结构。具体的一层结构就和 Transformer 类似:

图中的 $T$ 表示 tabel embedding,用来预测关系,$S$ 表示 sequence embedding,用来做 NER。
下面我也按照文章的顺序讲解具体的模型。
2.1 Text Embedder
第一个 $S_0$ 是直接把句子的词向量、字向量、BERT 字向量拼一起,过个 linear 得到。
2.2 Tabel Encoder
这里先描述一个简化版,一会 2.4 会补充成正式版。
表格其实就是 $N\times N$ 个向量,每个向量可以表示为:$$X_{l,i,j} = \text{ReLU}(\text{Linear}([S_{l-1,i};S_{l-1,j}]))$$
其中 $S_{l-1,i}$ 表示上一层的句子表示的第 $i$ 个 token,$X_{l,i,j}$ 指第 $l$ 层表格中 $(i,j)$ 位置的向量,这个向量不包含和邻居、和上一层的交互,所以只是一个中间结果,下面要说的 $T$ 才是每一层表格表示的最终结果。$$T_{l,i,j} = \text{GRU}(X_{l,i,j}, T_{l-1,i,j}, T_{l,i-1,j}, T_{l,i,j-1})$$
这里输入的三个 $T$,分别是表格里当前位置的西边、北边,以及上一层表格的这个位置。其实可以用四周的,或者其他方向组合的,最后经过试验,发现使用西北上(下图的 a)和东南上(下图的 c)这两种是最好的,于是作者就我都要.jpg,计算了 $T^{(a)}$ 和 $T^{(c)}$,拼一起得到最终的表格表示 $T_l$。值得一提的是,使用西北上和东南上这两种方式,就使得计算的时候可以按照西北 – 东南的顺序,这样同一条(东北-西南)直线上的点就可以并行计算了。

现在就还剩上面式子中的 $\text{GRU}$ 没有解释了。这个文中使用的是基于 GRU 的 MD-RNN(为啥不直接叫 MD-GRU 啊喂)。作者说公式太多,就把这一部分写在附录中了,表示这不是我能看懂的。我也就乖乖听话了。【#TODO1,2】
2.3 Sequence Encoder
这部分是魔改了 attn 中的 scaled dot-product。原来 attn score 可以表示成下图 $Q, K, V$ 的一系列操作:

其中的 $f$ 对于具体的一个 query $Q_i$ 和 key $K_j$ 可以表示成 $f(Q_i,K_j)= U\dot g(Q_i,K_j)$。这里 $U$ 是参数。
作者在这里就使用 sequence 的 self-attn,即 $Q=K=V = S_{l-1}$,同时,作者又发现,$T_{l}$ 其实就是从 $S_{l-1}$ 得到的,因此作者直接用 $T_l$ 替代计算 $f$ 式子中的 $g(·)$!!即 $T_{l,i,j} = g(S_{l-1,i}, S_{l-1,j}) = g(Q_i,K_j)$ 这个想法真的是太妙了!!!!我服了!!!!!!
作者说,这样魔改 attn 有三个好处:① $T_l$ 之前已经算好了,直接取即可 ② $T_l$ 是包含上下文信息的,因此这样引入了上下文的交互 ③ 因为 $T_l$ 是 table 的信息,因此这样也引入了 table 对 sequence 的交互。真的太妙了!
除了 self-attn 魔改之外,其他部分就和 transformer 一致,这里就略了。
2.4 Exploit Pre-trained Attention Weights
作者说,the previous use of BERT, i.e., employing the contextualized word embeddings, does not fully exploit its poten- tial. One important observation here is that the pair- wise self-attention weights maintained by BERT carry knowledge of word-word interactions。所以他就把 BERT 里面 attn weights 加了进来,对 2.2 的第一个式子进行了升级:$$X_{l,i,j} = \text{ReLU}(\text{Linear}([S_{l-1,i};S_{l-1,j};T_{i,j}^l]))$$
这里的 $T^l$ 不是 tabel embedding,是 attn score 矩阵。其中的每一项 $T_{i,j}^l$ 就是词 i 和 j 之间的 attn score,他的维度是 $L^l\times A^l$,其中 $L^l$ 是 BERT 里 transformer 的层数,$A^l$ 是多头 attn 的头数。作者说这样就可以把 BERT 得到的 word-word 交互信息使用起来。
2.5 训练
就是从 $S_l$ 和 $T_l$ 直接 softmax 预测类别。loss 用交叉熵,整个 loss 是两个任务的 loss 直接相加。
3 实验结果
由于这篇文章改进很多,所以实验做的也很多…
- SOTA:NER 小幅提升,RE big margin
- ALBERT 要比 BERT、RoBERTa 都更好
- 消融实验太多了,我就不都说了,直说几个印象深刻的:分别不同表示比统一的好、双向 RNN 比单向好、如果每层都参数共享,那么层数越多越好
- attn 可视化真的更能关注有关系的两个词了(感觉这种就都是可以挑出来的,也无法证明什么)
还有一个很有意思的实验:作者画出了每一层 $S$ 和 $T$ 的预测结果,发现三层最好。这个画的还挺有意思,不过我不太懂他想说明啥
4 TODO
- 2D-RNN Alex Graves, Santiago Ferna ́ndez, and Ju ̈rgen Schmid- huber. 2007. Multi-dimensional recurrent neural net- works. In Proc. of ICANN.
- MD-RNN