一、 关系抽取综述
三、 多实例学习和分段最大池化
四、 句子级别的注意力机制
一、关系抽取综述信息抽取是自然语言处理中非常重要的一块内容,包括实体抽取(命名实体识别,Named Entity Recognition)、关系抽取(Relation Extraction)和事件抽取(Event Extraction)。
这次介绍的关系抽取属于自然语言理解(NLU)的范畴,也是构建和扩展知识图谱的一种方法。
关系抽取理解起来也比较简单,比如下面图片中的第一句话:
He was in Tennessee.
首先做命名实体识别,识别出He(PER)和Tennessee(GPE)两个实体,然后找出两个实体之间的关系为:Physical-Located,最后可以把抽取出来的关系表示为三元组的形式:(HePER, Physical-Located, TennesseeGPE),或者Physical-Located(HePER, TennesseeGPE)。
可见关系抽取包含命名实体识别在内,在技术实现上更复杂。
关系抽取从流程上,可以分为流水线式抽取(Pipline)和联合抽取(Joint Extraction)两种,流水线式抽取就是把关系抽取的任务分为两个步骤:首先做实体识别,再抽取出两个实体的关系;而联合抽取的方式就是一步到位,同时做好了实体和关系的抽取。流水线式抽取会导致误差在各流程中传递和累加,而联合抽取的方式则实现难度更大。
关系抽取从实现的算法来看,主要分为四种:
1、手写规则(Hand-Written Patterns);
2、监督学习算法(Supervised Machine Learning);
3、半监督学习算法(Semi-Supervised Learning,比如Bootstrapping和Distant Supervision);
4、无监督算法。
本文的主人公是远程监督算法(Distant Supervision),这是一种半监督学习算法。其他的方法大致了解一下,有助于理解,为什么相对而言,远程监督做关系抽取是一种比较可行的方法。
(一)手写规则模板的方法
1、例子:
有种关系叫做上下位关系,比如hyponym(France; European countries)。从下面两个句子中都可以抽取出这种关系:
European countries, especially France, England, and Spain...
European countries, such as France, England, and Spain...
两个实体之间的especially和such as可以看做这种关系的特征。观察更多表达这种关系的句子,我们就可以构造如下的规则模板,来抽取构成上下位关系的实体,从而发现新的三元组。
(二)监督学习的方法
监督学习的方法也就是给训练语料中的实体和关系打上标签,构造训练集和测试集,再用传统机器学习的算法(LR,SVM和随机森林等)或神经网络训练分类器。
1、机器学习和深度学习方法
对于传统的机器学习方法,最重要的步骤是构造特征。可以使用的特征有:
(1)词特征:实体1与实体2之间的词、前后的词,词向量可以用Bag-of-Words结合Bigrams等。
(2)实体标签特征:实体的标签。
(3)依存句法特征:分析句子的依存句法结构,构造特征。这个不懂怎么弄。
人工构造特征非常麻烦,而且某些特征比如依存句法分析,依赖于NLP工具库,比如HanLP,工具带来的误差不可避免会影响特征的准确性。
用端到端的深度学习方法就没这么费劲了。比如使用CNN或BI-LSTM作为句子编码器,把一个句子的词嵌入(Word Embedding)作为输入,用CNN或LSTM做特征的抽取器,最后经过softmax层得到N种关系的概率。这样省略了特征构造这一步,自然不会在特征构造这里引入误差。
2、监督学习的优缺点
监督学习的优点是,如果标注好的训练语料足够大,那么分类器的效果是比较好的,可问题是标注的成本太大了。
(三)半监督
鉴于监督学习的成本太大,所以用半监督学习做关系抽取是一个很值得研究的方向。