一、写在前面的话
- 论文的相关背景
实体识别和关系抽取的目标是从非结构化的文本中发现(实体1、关系、实体2)的三元组,它对知识库的构建和问答任务都很重要,是信息抽取的核心问题。通常使用流水线方法进行抽取:先对句子进行实体识别,然后对识别出的实体两两组合,再进行关系分类,最后把存在实体关系的三元组做为输入。但这样的做法存在以下缺点:1.错误传播,实体识别模块的错误会影响下面的关系分类性能。2.差生了没必要的冗余信息,没有关系的实体会带来多余信息,提升错误率。
- 论文主要解决的问题
CopyMTL是在CopyRE基础上进行改进,CopyRE是一种基于 copying mechanism + seq2seq 结构的联合关系抽取模型,但存在以下两个缺点:
- 对头尾实体其实区分不大,基本上使用的是统一预测分布
- 只能抽取单字,不能抽取成词的字
二.论文方法介绍
- 模型核心思路
模型的结构与CopyRE基本一致,主要分为Encoder和Decoder。Encoder部分使用BiLSTM建模句子上下文信息,Decoder部分则结合copying mechanism生成多对三元组。同时,针对CopyRE只能抽取单字,不能抽取成词的字的问题,引入命名实体任务进行多任务学习。
- 模型结构
- Encoder
使用BiLSTM建模上下文信息
- Decoder
解码部分使用Attention + LSTM去建模
最后使用一个全连接层获取输出
另外,与常规的seq2seq不同,CopyMTL需要获取的是三元组,所以对于头实体、关系和尾实体需要采用不同的策略:
- 对于关系预测
由于对于三元组的解码从关系开始,所以先做关系预测,同时加入NA表示没有关系。
- 头实体预测
预测文中哪一个实体最可能是当前关系下的头实体
- 尾实体预测
在CopyRE中,需要加入隐码矩阵
但CopyMTL认为这主要是由于预测实体时使用的方式不当:
因此在CopyMTL中更改了预测方式,使用如下公式进行预测:
激活函数使用selu
- Sequence Labeling
对于CopyRE只能预测单字的问题,CopyMTL加入了一个命名实体任务:
- 多任务
将seq2seq和Sequence Labeling 的损失加权融合
是命名实体的损失:
是seq2seq的损失:
三、论文实验
- 实验数据集和指标介绍
- 数据集
-
评测指标
常见的精准率、召回率和F1分数
- 论文所使用的参数信息
论文设置 | |
---|---|
优化算法 | Adam |
学习率 | 0.001. |
embedding dimension | 100 |
lstm hidden size | 1000 |
max number of decoded triplets | 5 |
|
1 |
- 对比结果