关系抽取—OneRel

8 篇文章 0 订阅

关系抽取—OneRel

关系抽取存在的方法通常把联合抽取任务分解为多个模型或者多步进行实现,如下图1,这种方法忽视了三元组中的元素相关联且不可见,并且会有联级错误和多余冗余信息。为了解决上述问题提出新的关系抽取模型——OneRel,提出单模型单步解码的模型OneRel。OneRel模型包含scoring-based分类和特定关系角标注策略。code地址:https://github.com/ssnvxia/OneRel
亮点
(1)提出单模块单步关系抽取模型
(2)提出了一个scoring-based分类和特定关系角标注策略Rel-Spec Horns Tagging strategy
在这里插入图片描述

模型

任务定义

给定长度为 L L L的句子 S = { w 1 , w 2 , … , w L } \mathcal{S} = \{w_{1},w_{2},\dots,w_{L}\} S={w1,w2,,wL},定义了 K K K种关系 R = { r 1 , r 2 , … , r K } \mathcal{R} = \{r_{1},r_{2},\dots,r_{K}\} R={r1,r2,,rK},关系抽取的目标是提取出句子中 S \mathcal{S} S中所有可能的关系三元组组合 T = { ( h i , r i , t i ) } i = 1 N \mathcal{T} = \{(h_{i}, r_{i}, t_{i})\}_{i=1}^{N} T={(hi,ri,ti)}i=1N,其中 N N N是三元组的数量, h i h_{i} hi t i t_{i} ti是句子中的部分token片段,分别称为关系主体和关系客体。

Relation Specific Horns Tagging

关系标记结果记录在一个矩阵 M L × M × L M^{L\times M\times L} ML×M×L中方便关系分类,在模型推理解码的时候会使用这个矩阵 M M M。这个 M M M是一个稀疏矩阵,训练的过程中有大量的负例,解码的时候高效。
Tagging
这里标记关系三元组 ( s , r , o ) (s,r,o) (s,r,o)中的头实体和尾实体相关位置信息,只标记HB-TB,HB-TE,HE-TE这三个位置信息,简单的说标记头实体和尾实体构成的矩形中的三个角位置信息,下面详细介绍记HB-TB,HB-TE,HE-TE标记方法。
(1)HB-TB
头实体( s s s)开始词的位置和尾实体( o o o)开始词的位置标记HB-TB
(2)HB-TE
头实体( s s s)开始词的位置和尾实体( o o o)结束词的位置标记HB-TE
(3)HE-TE
头实体( s s s)结束词的位置和尾实体( o o o)结束词的位置标记HE-TE
(4)-
没有关系标注
tagging
头实体New York State的开始token为New,结束token为State,尾实体New York City的开始token为New,结束token为City。在(New, New)标记为HB-TB,(New,City)标记为HB-TE,(State,City)标记为HE-TE

备注
上述tagging方式可以处理复杂的关系三元组,例如EntityPairOverlap (EPO),SingleEntityOverlap (SEO)等。
i. EntityPairOverlap (EPO)
三元组(New York City, Located in, New York State) (New York State, Contains, New York City)是EntityPairOverlap例子,标注如下:
epo标注
ii. SingleEntityOverlap
三元组(New York City, City Name, New York)在The New York City is in New York State中是一个SEO例子。标注入下:
seo tagging
在代码里面 M M M是一个全零矩阵大小为(关系数量,tokens长度,tokens长度),对于一个标注三元组,在对应关系id的位置处关系主体关系客体首首位置标记HB-TB,关系主体关系客体首尾位置标记HB-TE,关系主体关系客体尾尾位置标记HE-TE。

Scoring-based Classifier
输入长度为 L L L的句子经过bert预训练模型得到d-维向量
{ e 1 , e 2 , … , e L } = B E R T ( { x 1 , x 2 , … , x L } ) \{e_{1},e_{2},\dots,e_{L}\} = BERT(\{x_{1},x_{2},\dots,x_{L}\}) {e1,e2,,eL}=BERT({x1,x2,,xL})
定义score 函数如下:
h ⋆ t = ϕ ( W [ h ; t ] T + b ) h \star t = \phi(W[h;t]^{T} + b) ht=ϕ(W[h;t]T+b)
其中 h h h, t t t是头尾表示, W ∈ R d e × 2 d W \in \Large\boldsymbol{R}^{d_{e}\times2d} WRde×2d d e d_{e} de是实体对儿表示, ϕ \phi ϕ R E L U ( ) RELU() RELU()激活函数, [ ; ] [;] [;]是矩阵拼接。
通过关系全连接层 R d e × 4 K \Large\boldsymbol{R}^{d_{e}\times 4K} Rde×4K最终得到关系三元组 v ( w i , r k , w j ) v_{(w_{i},r_{k},w_{j})} v(wi,rk,wj)

v ( w i , r k , w j ) = R T ϕ ( d r o p ( W [ e i ; e j ] + b ) ) P ( y ( w i , r k , w j ) ∣ S ) = S o f t m a x ( v ( w i , r k , w j ) ) v_{(w_{i},r_{k},w_{j})} = \Large\boldsymbol{R}^{T}\phi(drop(W[e_{i};e_{j}] + b)) \\ P(y_{(w_{i},r_{k},w_{j})}|\mathcal{S}) = Softmax(v_{(w_{i},r_{k},w_{j})}) v(wi,rk,wj)=RTϕ(drop(W[ei;ej]+b))P(y(wi,rk,wj)S)=Softmax(v(wi,rk,wj))
其中4是tagging的label数量,本论文标记特征为HB-TB,HB-TE,HE-TE,O这四个标记label
目标函数:

L t r i p l e = 1 L × K × L ∑ i = 1 L ∑ k = 1 K ∑ j = 1 L log ⁡ P ( y ( w i , r k , w j ) = g ( w i , r k , w j ) ∣ S ) \mathcal{L}_{triple} = \frac{1}{L\times K \times L}\sum\limits_{i=1}^{L}\sum\limits_{k=1}^{K}\sum\limits_{j=1}^{L}\log P(y_{(w_{i},r_{k},w_{j})} = g_{(w_{i},r_{k},w_{j})}|\mathcal{S}) Ltriple=L×K×L1i=1Lk=1Kj=1LlogP(y(wi,rk,wj)=g(wi,rk,wj)S)
分类函数score与bert预训练模型输出的特征可以连接, W W W矩阵可以自适应的学习从实体到实体对的特征,同时实体对拼接是不可交换的。在OneRel模型中每一个样本都会有关系矩阵 R R R记录着标记信息,在实际中接了两层全连接层。

解码
根据模型得到的矩阵 M M M查找出大于0的元素的index,首先判断这些index查找满足HB-TB的index,
然后根据满足HB-TB的index在查找满足HB-TE的index,最后从满足HB-TE的index找查找满足HE-TE的index,从而得到关系三元组 ( s , r , o ) (s,r,o) (s,r,o)

实验结果

(1)论文中在 N Y T ⋆ NYT^{\star} NYT W e b N L G ⋆ WebNLG^{\star} WebNLG中的实验结果如下:
在这里插入图片描述
在这里插入图片描述
在常用复杂的关系数据集 N Y T ⋆ NYT^{\star} NYT W e b N L G ⋆ WebNLG^{\star} WebNLG达到了SOTA的效果。
(2)在百度关系2020数据集上的实验结果
在数据处理中的tokenizer采用的huggingface家的BertTokenizer,没有采用bert_keras中的tokenizer,中文句子中汉字之间没有拼接unused1特殊符号,可以节省内存。
模型结果如下:
precision:0.7313706008471454, recall:0.7400391555108716, f1 :0.7356793434879514
在验证集上的模型推理结果如下:

{
    "text": "由江苏艺星影视文化传播有限公司投资,演员赵荀、傅程鹏、程愫、侯梦莎、任柯诺、安雅萍、杨舒、张进、杨山等主演的大型谍战题材电视剧《与狼共舞2》正在江苏卫视",
    "triple_list_gold": [
        {
            "subject": "与狼共舞2",
            "relation": "主演",
            "object": "程愫"
        },
        {
            "subject": "与狼共舞2",
            "relation": "主演",
            "object": "侯梦莎"
        },
        {
            "subject": "与狼共舞2",
            "relation": "主演",
            "object": "安雅萍"
        },
        {
            "subject": "与狼共舞2",
            "relation": "主演",
            "object": "傅程鹏"
        },
        {
            "subject": "与狼共舞2",
            "relation": "主演",
            "object": "任柯诺"
        },
        {
            "subject": "与狼共舞2",
            "relation": "主演",
            "object": "赵荀"
        },
        {
            "subject": "与狼共舞2",
            "relation": "主演",
            "object": "杨舒"
        },
        {
            "subject": "与狼共舞2",
            "relation": "主演",
            "object": "张进"
        }
    ],
    "triple_list_pred": [
        {
            "subject": "与狼共舞2",
            "relation": "主演",
            "object": "程愫"
        },
        {
            "subject": "与狼共舞2",
            "relation": "主演",
            "object": "侯梦莎"
        },
        {
            "subject": "与狼共舞2",
            "relation": "主演",
            "object": "安雅萍"
        },
        {
            "subject": "与狼共舞2",
            "relation": "主演",
            "object": "傅程鹏"
        },
        {
            "subject": "与狼共舞2",
            "relation": "主演",
            "object": "任柯诺"
        },
        {
            "subject": "与狼共舞2",
            "relation": "主演",
            "object": "赵荀"
        },
        {
            "subject": "与狼共舞2",
            "relation": "出品公司",
            "object": "江苏艺星影视文化传播有限公司"
        },
        {
            "subject": "与狼共舞2",
            "relation": "主演",
            "object": "杨舒"
        },
        {
            "subject": "与狼共舞2",
            "relation": "主演",
            "object": "张进"
        }
    ],
    "new": [
        {
            "subject": "与狼共舞2",
            "relation": "出品公司",
            "object": "江苏艺星影视文化传播有限公司"
        }
    ],
    "lack": []
}

以上是关系抽取OneRel模型的介绍,如有错误欢迎指证。

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
关系抽取自然语言处理中的一项重要任务,目的是从文本中识别并提取出不同实体之间的关系。nlp中常用的关系抽取方法主要包括以下几种: 1. 基于规则的方法:基于固定的规则或模式,通过匹配文本中的关键词来抽取实体之间的关系。例如,通过定义"实体A与实体B之间的关系是什么"的规则,从文本中直接提取相应的关系。 2. 基于统计的方法:通过机器学习的方法,从大量已标注的训练数据中学习如何提取关系。常用的统计模型包括支持向量机(SVM)、条件随机场(CRF)等。该方法需要大量的标注数据作为训练集,以便模型能够学习到实体之间的关系模式。 3. 基于深度学习的方法:近年来,深度学习在nlp领域取得了显著的进展,也被广泛应用于关系抽取任务。利用神经网络模型,如卷积神经网络(CNN)、循环神经网络(RNN)、Transformer等,可以对输入文本进行有效的特征提取和建模,从而实现关系的抽取。 4. 结合知识图谱的方法:知识图谱是一种用于存储和查询结构化知识的技术,它通过提供实体之间的关系描述,可以帮助关系抽取任务。结合知识图谱的方法将文本信息与图谱中的实体和关系进行匹配,从而提取出文本中实体之间的关系。 关系抽取方法的选择取决于具体任务的要求和可用资源。不同方法之间存在一定的优劣势,需要根据实际情况选择合适的方法进行关系抽取

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值