NLP&NLU

利用多粒度信息和外部知识进行中文实体关系抽取

2020-01-05  本文已影响0人  烛之文

不管坚持是否带有

一种妄想的期待

新的一年,生活、工作还的继续


1 前 言

今天分享2019年ACL一篇关于中文实体关系抽取的paper,<Chinese Relation Extraction with Multi-Grained Information and External Linguistic Knowledge>,出自清华大学。论文的大致思路可以从标题看出:利用多粒度信息和外部知识进行关系抽取。论文中多粒度是指字的粒度和词的粒度结合,外部知识是指HowNet这样的知识库。论文链接,这篇论文的代码也开源了,在GitHub上,代码链接


Introduction

当前关系抽取存在的问题

作者用上图来阐述当前在中文实体关系抽取任务上,主要存在两种问题,一是若分词则存在切分歧义的问题,二是存在一词多义的问题。针对第一个问题,先前有研究提出采取字的粒度,或字和词粒度结合的方法;针对第二个问题,主流的方法是利用外部知识库作为补充信息,进行关系预测。然而,作者发现还没有研究将这两种方法进行融合来做实体关系抽取,因此就有本文的构想。


3 Model

model

论文model的结构图如上图所示,主要包括三层结构:Input Represent ,MG Encoder,Relation Classifier。论文的核心在Encoder层,其基本思想是利用字,词,还有外部知识融合一起,然后重构下LSTM结构。接下来重点说说这块。

3.1 Input Representation

先考虑字级别(Character-level Representation)的embedding输入,具体使用实现训练好的字向量(例如使用word2vec)。此外,考虑每个字与实体对的相对位置的embedding,也成为position embedding,位置编码的的方式如下图:

参考一个实体来说,i为字符在文本的位置索引,b,e为该实体的开始和结束位置索引

最后,一个字符的完整编码为下图,包含一个字向量和两个位置向量。

char  embedding

接着考虑词级别(Word-level Representation)的embedding输入,具体是利用一个词典D对文本进行匹配,如从b-th 到e-th字符组成的词匹配到,就使用这个词的向量,向量同样可以使用word2vec预训练而来。

word embedding

最后,作者要把外部知识(External knowledge)利用起来,具体做法是利用HowNet查找一个词的代表所有含义,作为这个词的含义代表,这样做的好处就是弥补word2vce这种固定分布式表达所带来的缺点。

一个词的K个含义表示(word sense embedding)

如何将一个词的含义用向量表达出来,论文中使用 SAT model,此处作者也没详说。

通过上述步骤,就可以清楚知道Input的变量有字级别的向量,词级别的向量,以及词的对应含义向量。接下来,就是如何将三类变量Encoder,这也是论文的重点。

3.2 Encoder

在Encoder部分,作者分别介绍一个基本版本(Basic Lattice LSTM Encoder)和一个完整版(MG Lattice LSTM Encoder),前者实现字和词的融合的encoder,后者是将字和词的含义向量嵌入encoder中。我们先看看基本版本是如何实现的。

Basic Lattice LSTM Encoder

首先展示出基于字的LSTM结构公式为:

基于字级别的LSTM结构

在将词的embedding加入字的encoder中,先学习词的编码的,具体为:

索引b,e之间的词的表征

接着,作者认为第e个字符的编码表达,应该包括它本身的字表达,还包括以它结尾的所有词的表达。此外,考虑每个词的影响程度不同,引入一个词的输入门:

词的输入门

然后第e个字符的编码被设定为:

嵌入词信息的字符表征

上面涉及两个权重变量,求解的方式类似softmax方式:

两个权重的求解表达式

MG Lattice LSTM Encoder

以上就是基本版本的Encoder的结构,其主要思路就是考虑第e个字符表征时,将以e为结尾的词的表征以加权的形式加入进去。所以,接着,作者提出自己的改进思路,其思路的目的是要在上述的基础上,加入词的sense embedding。

词的第k个含义表征

上述的公式,是将b,e之间的词的每个含义按lstm进行表征,然后将k个表征进行加权来代表这个词的整体含义表征:

词的含义表征

有了词的含义表征,然后按基本版的思路:将其与字的表征结合起来:

嵌入词的含义信息后的字的表征

以上就是作者的核心的思想,总结起来就是将词的所有含义信息表征起来,加入字的表征中,然后做分类预测。

3.3 Relation Classifier

在分类层上,作者没做什么改变:将通过MG Encoder编码后的每个字符的隐藏h向量,接入一个attention层,然后再加一个softmax分类层,损失函数用交叉熵。


4 Experiments

在实验部分,作者使用FinRE,SanWen,ACE三个中文数据集,采用F1值得评价方法,训练结果如下图:

训练结果

结果显示,作者的方法都取得最佳效果,其中MG 方法表现最好,较基本版本的有2%的提升。


5 结 语

这篇论文公式较多,因为简书的编辑器太简单,复杂的公式书写不了,我只好截图方式,有些细节符号我都文字代替了。所以,若想详细理解,还是建议去读原文。

总的来说,作者的思想还是比较简单,公式都是LSTM的基本结构。创新的地方就是将词的含义信息融合字的表征中,其中我有一处个人看法:在求词对应K个含义表征的权重时,我觉得应该考虑上下文信息会更好些。因为实际中,我们在考虑一个多义词的含义时,就是通过语义环境,也就是上下文来判断的。

上一篇下一篇

猜你喜欢

热点阅读