【总结】知识图谱-关系抽取
文章目录
一、序
1.1 什么是关系抽取?
我们所说的关系抽取一般是指从文本数据中抽取结构化信息的一种手段。具体而言,我们需要从自由文本中判断其中的两个实体是哪种关系,进而得到其结构化三元组信息,即SPO(主体,关系,客体)。
1)关系抽取概念:在识别出句子的关键实体之后,还需要抽取体之间的语义关系。语义关系通常用于连接两个实体,并与实体一起表达文本的主要含义。比如:
{
"text": "九玄珠是在纵横中文网连载的一部小说,作者是龙马",
"spo_list": [
["九玄珠", "连载网站", "纵横中文网"],
["九玄珠", "作者", "龙马"]
]
}
2)关系抽取的目标:获取(subject, predicate, object)的三元组;分别表示,主实体,客实体,实体关系; (s, p, o)可以理解成 “s的p是o”。
关系抽取既是文本处理任务的基础,又是构建知识图谱的核心任务。抽取实例不仅能提升文本分析的层面,还可为诸如问答系统及语义搜索等下游任务提供知识。
1.2 关系抽取技术有哪些类型?
- 基于模板的关系抽取(基于规则的关系抽取)(Pattern Extraction Models)
使用句法分析工具识别文本中的语法元素,然后根据这些元素自动构建规则。但是由于自动构建的模式通常有错误,大部分这类方法代价较高,需要由专门的人类专家的进一步审查。
手段:模板库,正则匹配,人工抽取等等;
- 基于统计的关系抽取(Statistical Relation Extraction Models)
相较于上一种方法,基于统计的方法代价较小。其中,典型的方法有基于特征的方法,为实体对及其相应的上下文设计语法、句法和语义特征进行分类。主要基于概率统计的手段;
- 基于神经网络的关系抽取(Neural Relation Extraction Models)
这个是此篇总结介绍的重点,由于神经网络能够更高效抽象语义特征并具有较好的泛化能力,一般来说,不同的网络结构针对关系抽取这一任务的侧重点不同:
- 递归神经网络(Recursive)可以递归地学习句子的构成表示。
- 卷积神经网络(CNN)捕捉句子的局部特征
- 循环神经网络(Recurrent)更好处理长序列语句
- 图神经网络(Graph)构造实体/词汇图用于关系推理
- 基于注意力的神经网络(Attention-based)聚合全局的关系特征
- 基于CNN和RNN来编码最短依赖路径
1.3 常见的关系抽取流程是怎么做的?
根据是否在同一个模型里开展实体抽取和关系分类,可以将关系抽取方法分为流水线(pipeline)学习和联合(joint)学习两种。pipeline的思路很容易想到,关系抽取的目标是要识别出实体和关系,所以直觉上就可以把它分成两个部分,先做实体识别,识别出实体,然后用分类模型确定实体的关系;这种方法不用特地去标注关系抽取数据集(关系抽取数据集标注起来相当痛苦),但是这种方案上分开的做法会造成错误累计,无法学习得到很好的效果;所以现关系抽取的方案主要为joint模式,这种方案,将两个功能在一个模型中端到端完成,通过共享参数来或者其他机制来完成联合,规避一些歧义问题(比如,相同词的不同语义);
- Pipeline方法:
-
方案
- 先对输入的句子进行实体抽取,将识别出的实体分别组合 ( n 2 n^2 n2);
- 然后再进行关系分类,这两个子过程是前后串联的,完全分离。
-
优点:
- 易于实现,实体模型和关系模型使用独立的数据集,不需要同时标注实体和关系的数据集;
- 两者相互独立,若关系抽取模型没训练好不会影响到实体抽取
-
缺点:
- 关系和实体两者是紧密相连的,互相之间的联系没有捕捉到。具体表现为
-