[实体关系抽取|顶刊论文]QIDN:Query-based Instance Discrimination Network for Relational Tri

Query-based Instance Discrimination Network for Relational Triple Extraction

Zhejiang University, Tsinghua University|EMNLP 2022|2022.11.3|原文连接

想法简述

image.png

过去的方法都可以用上图来表述:
H c o n t e x t H_{context} Hcontext:句子表示, R p o t e n t i a l R_{potential} Rpotential:潜在类型的关系向量映射。要么从立体的角度考虑提取【立体透视图】的方法,要么学到每种关系的独立分类器。
如:PRGC首先过滤不太可能的关系,然后学习潜在关系的特定关系标记。

近年的研究,都是从立体的角度考虑三重关系抽取,尽管有比较好的效果,但仍存在以下问题:

  1. 对于先识别主体,后抽取三元组中,第一阶段难免会出现错误。如上图中PRGC先选取潜在关系标记关系特定的实体,但正确的可能会被过滤掉
  2. 存在关系冗余的问题,对于CasCade、TPLinker的方法,它们对所有关系进行三元组组装,产生了大量的无效操作,标签稀疏,收敛速度低
  3. 过去的方法独立处理每个关系类型的三元组,没有考虑到他们之间的高级全局链接:(哈尔滨,国家,北京)已经被确定后,”北京“就不应该出现在诸如夫妻的家庭关系的三元组之中。

image.png

对于以上问题,作者提出基于查询的实例识别网络(QIDN)

如上图:

  1. 使用一组类型无关的 Query Embeddings从预训练的模型中获取上下文信息。
  2. 通过比较Query Embeddings和Token Embeddings的度量,一步提取所有关系的三元组,消除了误差传播【基于简单的相似性度量,一步抽取所有关系三元组】
  3. 使用Query Embedding查询最可信的关系类型,解决了关系冗余的问题。
  4. 设立两个训练目标:(1)同一类内的实例对的相似性大于不同类间的实例。(2)实例表示更接近他们的相应关系。以建立三元组之间的全局链接。【使用了对比学习】

Query-based methods:
该方法最初被运用于DETR:End-to-End Object Detection with Transformers中,其实本文也是DETR在NLP中的应用.

该查询是类型无关的,因此可以在不同规模的对象间建立全局依赖关系,故将其用于构造实例级表示,在不同类型中构建全局链接

Contrastive relation learning:
通过比较含相同实体对的句子,从而提取关系语义,在后续的研究中,又被改进用于区分两种关系类型是否语义相似。在作者的方法中使用Query Embeddings构造实例级的三重表示,同时考虑了实体与关系

QIDN模型

image.png

在经过Sentence Encoder编码后, 结合Query在Decoder中完成Triple Prediction. 此外, 使用Instance Discriminator在空间中用对比学习约束预测头得到的三元组表示.

制定任务

$X\ =\ x_ { 1 } , x _ { 2 } , \dots,x _ { n } \ $:输入的句子

$ \varepsilon = (x_i, x_j, t_e) : : x_i 和 和 y_j 表 表 {\gamma}_e 中预定义的实体类型 中预定义的实体类型 中预定义的实体类型t_e$的实体的左右标记

$ {\mathcal{R}} = \left({\mathcal{e}}{1},,{\mathcal{e}}{2},,t_{r}\right), :表为关系集, :表为关系集, :表为关系集,e_1,e_2 为主客实体, 为主客实体, 为主客实体,t_r 为预定义集合 为预定义集合 为预定义集合{\gamma}_r$中的关系类型

L { \mathcal { L } } L:在两个预定义集合中的标签,表为未识别的实体/关系。

句子编码器

image.png

使用BERT直接编码后,将token输入到BiLSTM中,最后的句子标识形式为 H ⊂ R n × d {\cal H}\ \subset\mathbb{R}^{n\times d} H Rn×d:n为句子的长度、d为隐藏中间层的大小

双向编码器-解码器LSTM (BiLSTM)模块进行实体抽取,然后将实体上下文信息传递给CNN模块进行关系抽取。该方法考虑了实体之间的长程关系,但存在一些被忽略的关系,需要进一步研究以提高召回率。

三元组的预测

image.png

作者使用 M M M个Instance Level Query Q = R M × d Q\mathrm { ~ } =\mathrm{ ~ } \mathbb { R } ^ { M\times d } Q = RM×d来查询句子中所包含的所有三元组

由于RTE任务需要抽取出关系特定下的头尾实体, 这意味着每个Query Embedding不但能指出对应的头尾实体, 还有头尾实体间关系, 所以在这个模块中作者需要构建对实体和关系的两种Query.

RTE(Recognizing Textual Entailment)任务目标位判断给定的两个文本片段之间的逻辑关系

使用与DETR相同的实例查询,记为 Q = R M × d . \textstyle\mathrm { ~ } Q\mathrm { ~ } =\mathrm{ ~ } \mathbb { R } ^ { M\times d } .  Q = RM×d..每个查询(大小为d的向量)负责提取一个三元组,查询向量是随机初始化的。为了区分关系和实体的特征,而查询的数量 M \mathrm{M} M是预先指定的

在DETR中,每个查询用于每个目标上,而该文就被用于每个三元组之中

Transformer-based Decoder:

解码器由L层的transformer组成

  • Attention的计算方式如下:

A t t e n t i o n ( Q , K , V ) = s o f t m a x ( Q K T d k ) V \mathrm{Attention} \; (Q,K,V) = \mathrm{softmax}\left(\frac{Q K^{T}}{\sqrt{d_{k}}}\right)V Attention(Q,K,V)=softmax(dk QKT)V

Q,K,V为Query、Key、Value矩阵, 1 d k \frac{1}{\sqrt{d_{k}}} dk 1为缩放因子。

  • Transforer的堆叠方式如下:

D e c o d e r ( Θ , H ′ ) = A t t e n t i o n ( Θ , H ′ , H ′ ) \mathrm{Decoder}(\Theta,H^{\prime})=\mathrm{Attention}(\Theta,\,H^{\prime},\,H^{\prime}) Decoder(Θ,H)=Attention(Θ,H,H)

在DETR的架构中, Decoder端的Query便是Query Embedding, Key和Value则是原图信息.


在QIDN的交叉注意力机制中,不直接将句子编码器的H作为key与value,而是构造Span Level获取每层的语义信息。 S ⟶ ‾ s 1 s 2 , … , s n s {\boldsymbol{S}}\,\underline{{{\longrightarrow}}}~s_{1}\,s_{2},\ldots,s_{n_{s}} S s1s2,,sns为句子 X \mathrm{X} X中所有的Span,对于任意一Span,其span表示 H i s p a n H_i^span Hispan H \mathrm{H} H中的Span边界标识与长度Embedding的拼接。

H i S p a n → [ H s t a r t ( i ) ⋅ H e n d ( i ) ⋅ ϕ ( s i ) ] \begin{array}{c}{{H_{\mathrm{i}}^{S p a n}\rightarrow\ [H_{\mathrm{start}}(\mathrm{i})\cdot H_{\mathrm{end}}(\mathrm{i})\cdot\phi\left(s_{\mathrm{i}}\right)]}}\end{array} HiSpan [Hstart(i)Hend(i)ϕ(si)]

  • H s t a r t ⋅ H e n d H_{\mathrm{start}}\cdot H_{\mathrm{end}} HstartHend:表示为起始/结束Token
  • ϕ ( s i ) \phi\left(s_{\mathrm{i}}\right) ϕ(si):为NER中Span based方法常用的长度Embedding,可以加入Span的长度信息,
  • 最终Span Level的表示为 H s p a n ∈ R n s × d {\cal H}^{s p a n}\in\mathbb{R}^{n_{s}\times d} HspanRns×d

同时,Query需要同时抽取关系和实体,因此Query需要兵分两路。变为realation query/entity query,其中 W r , W e ⊆ R d × d W_{r},{W}_{e}\subseteq\mathrm{\R}^{d\times d} Wr,WeRd×d 为可训练参数

[ ( Q r ; Q e ) ] = D e c o d e r ( [ ( Q W r ; Q W e ] , H s p a n ) [(\mathcal{Q}_{r};\mathcal{Q}_{e})]=\mathrm{\cal{D}}\mathrm{ecoder}\,(\left[(\mathcal{Q}\mathcal { W }_{r};\mathcal { Q } \mathcal { W } _{ e }\right],H^{s p a n}) [(Qr;Qe)]=Decoder([(QWr;QWe],Hspan)

Span level通常指文本处理任务中处理的最小单位,即文本片段或子串。这个片段通常由一连串的字符组成,可以是单词、短语、句子或其他语言单元。可能会获得大量的负样本,有利于对比学习


有了以上的过程,有了成对儿的 Q r , Q e Q_r, Q_e Qr,Qe,可以用简单的预测头将每个Q所对应的三元组预测出来

解码器的详细结构:

image.png

Relation Head

对于 Q r Q_r Qr,将其输入到一个FFN(Feed Forward Networks,FFN),以预测它们对应的三元组的类别,第i个查询属于c类型的概率表示为:

P i c t = exp ⁡ ( Q r i W t c + b t c ) ∑ c ′ ∣ γ r ∣ exp ⁡ ( Q r i W t c ′ + b t c ′ ) P_{i c}^{t}=\frac{\exp\left(Q_{r}^{i}W_{t}^{c}+b_{t}^{c}\right)}{\sum_{c^{\prime}}^{|\gamma_r|}\exp\left(Q_{r}^{i}W_{t}^{c^{\prime}}+b_{t}^{c^{\prime}}\right)} Pict=cγrexp(QriWtc+btc)exp(QriWtc+btc)

W t ∈ R ∣ V r ∣ × d L b t ∈ R ∣ V r ∣ W_{t}\,\in\,\mathbb{R}^{|\mathcal{V}_{r}|\times d_{\mathcal{L}}}\,b_{t}\,\in\,\mathbb{R}^{|\mathcal{V}_{r}|} WtRVr×dLbtRVr为可训练参数

Entity Head

  • 为预测三元组中实体的边界, Q e Q_e Qe和token表示 H \mathrm{H} H经过FFN变换。

H s = H W s {{H_{s}=H W_{s}}} Hs=HWs
l c r E δ = Q e W δ {l c r}{{E_{\delta}=Q_{e}W_{\delta}}} lcrEδ=QeWδ

  • 其中 δ ∈ C → { l s u b , r s u b , l o b j , r o b j } \delta\in C\to\{l_{s u b},r_{s u b},l_{o b j},r_{o b j}\} δC{lsub,rsub,lobj,robj}标识为宾语和主语的左右边界, W δ , W s ⊆ R d × d {\mathcal{W}}_{\delta,}\mathcal{W}_{s}\subseteq\mathrm{\mathbb{R}}^{d\times d} Wδ,WsRd×d为可训练参数。

  • 用余弦相似度 S ( ⋅ ) S(·) S()衡量Entity Query生成的新表示 E δ E_\delta Eδ和原文表示 H s H_s Hs之间的相似得分:
    S ( v i , v j ) = v i ∣ v i ∣ ⋅ v j ∣ v j ∣ S\left(\mathbf{v}_{i},\mathbf{v}_{j}\right)={\frac{\mathbf{v}_{i}}{\left|\mathbf{v}_{i}\right|}}\cdot{\frac{\mathbf{v}_{j}}{\left|\mathbf{v}_{j}\right|}} S(vi,vj)=vivivjvj

  • 根据得分,使用Softmax就得到第i个Entity Query对应的边界Token是第j个Token的概率: P i j δ = exp ⁡ S ( E δ i , H s j ) ∑ j ′ exp ⁡ S ( E δ i , H s j ′ ) n P_{i j}^{\delta}=\frac{\exp S\left(E_{\delta}^{i},H_{s}^{j}\right)}{\sum^n_{j^{\prime}\exp S\left(E_{\delta}^{i},H_{s}^{j^{\prime}}\right)}} Pijδ=jexpS(Eδi,Hsj)nexpS(Eδi,Hsj),n为Token的数量

通过Relation Head可以获得Instance Query Q对应的三元组关系类型C,通过Entity Head可以用相似度得到三元组中Subject和Object的左右边界,确定Query对应的三元组

Instance Discriminator

image.png

在Instance Discriminator中, 作者希望把预测头中得到的表示进一步聚合, 当做最初的三元组表示, 并在空间中使这些三元组表示满足某种约束, 来建立三元组之间的全局链接, 并且让它们具有类别语义信息.

Aggregation

用关系头表示 Q r Q_r Qr,然后相加到一起,聚合成三元组的初始表示: v = Q r W + ∑ δ ∈ C E δ \displaystyle\mathbf{v}=Q_{r}W+\sum_{\delta\in C}E_{\delta} v=QrW+δCEδ.

Q r Q_r Qr做变换是为了和Entity Head对其,因为 E δ E_\delta Eδ是由 Q e Q_e Qe变换一次得来的

Traning Objective

对于关系集 R = { r 1 , … , r ∣ γ r ∣ } \mathrm{R} = \{r_1, \dots,r_{|\gamma_r|} \} R={r1,,rγr},对每个关系都随机初始化的Realation Type Embedding,作为关系的表示。

作者希望三元组实例和关系嵌入在空间中满足下述两个特点:

  1. 对于三元组实例和实例之间, 应满足同关系内更近, 不同关系的更远.
  2. 对于三元组实例和关系之间, 应满足三元组和自身关系对应的关系嵌入更近.

对比学习就是做这个的, 所以作者使用InfoNCE来建模上述两个要求.

对于第一个特点, 同关系三元组更近, 不同关系三元组更远:

image.png

其中 ( v i c , v j c ) (v_i^c,v_j^c) (vic,vjc)表同种关系类型c下的实例对。

与之类似的, 第二个特点要求三元组和自身对应的关系更近:

image.png

其中 v j c v_j^c vjc是关系c的三元组实例, r c ∈ R r_c\in\mathrm{R} rcR是关系c对应的Relation Embedding。

综上,建立了关系之间的语义信息,而不是让不同关系独立学习,使得不同关系之间具有全局链接

Training and Inference

Training

记三元组预测 Loss L t r i L_{t r i}\; Ltri为每个Instance Query自身岁对应的最优匹配三元组的关系类型预测交叉熵和头尾实体左右边界和交叉熵之和:

image.png

M为Query的数量, σ \sigma σ为最优匹配的三元组。
最终的Loss为前面提到的对比学习的Loss和三元组预测Loss之和:

image.png

Inference

在推理时:

image.png

Experiments

QIDN在RTE三个数据集NYT, WebNLG*, NYT* 上结果如下:

image.png

QIDN在NYT*和WebNLG*复杂场景表现如下:

image.png

根据Baseline来看, QIDN对于三元组数量比较多的情况似乎比较擅长, 有比较明显的提升, 对于一般三元组的情况抽取进步也比较大.

总结心得

使用CV中的DETR的query embeddings的思想用于NLP之中,在全局的角度上,把各个关系之间的含义链接了起来,最后,将实例归类,每个类之间的三元组雷同。

参考文章

  • QIDN: Query-based Instance Discrimination Network for Relational Triple Extraction | DaNing的博客 (adaning.github.io)
  • 深度学习基础-基于Numpy的前馈神经网络(FFN)的构建和反向传播训练 - LeonYi - 博客园 (cnblogs.com)
  • 一文读懂Embedding的概念,以及它和深度学习的关系 - 知乎 (zhihu.com)
  • ChatGPT | OpenAI

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/35568.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ChatGPT 目前到底能帮助我们程序员做什么?

🚀 个人主页 极客小俊 ✍🏻 作者简介:web开发者、设计师、技术分享博主 🐋 希望大家多多支持一下, 我们一起进步!😄 🏅 如果文章对你有帮助的话,欢迎评论 💬点赞&#x1…

程序员写博客如何赚钱「5大盈利方向」

很高兴又和大家见面了,今天我们来聊一聊程序员写博客如何赚钱「5大盈利方向」,还有程序员等等等各种相关干货内容,其实这篇文章主要还是为新手朋友整理的,总的来说思路还是很重要! 互联网时代发展太快,很多…

input 在 IOS 中输入内容不可见问题

第一次做移动端页面,就发现很多兼容性问题了。 本人一般是在Chrome浏览器控制台调试移动端样式尺寸,但是大家都知道,真机和浏览器是有一些差距的。 然后这个问题卡了很久,各种百度,也没有找到想要的。如图 问题描述&…

苹果手机IOS中div contenteditable=true 仿文本域无法输入编辑

原文出处:https://www.cnblogs.com/xiangsj/p/6084844.html 延伸阅读:iOS下div contenteditabletrue无法输入解决办法 问题: 在苹果手机IOS中 contenteditable"true" 做文本域输入,点击可以弹出键盘但是无法输入&#x…

14、iOS里面的富文本

iOS里面的富文本 1、NSAttributedString属性概览表2、属性详解及应用2.1 NSAttributedString.Key.font --字体大小2.2 NSAttributedString.Key.paragraphStyle -- 文本字、行间距,对齐等2.3 NSAttributedString.Key.foregroundColor -- 字体颜色2.4 NSAttributedStr…

iPhone开发:类似iChat的聊天泡泡示例

很多iPhone聊天程序消息显示都喜欢做成iChat的泡泡样式,这样是不是很apple呢? 那么下面用一种简单的方法来实现它。 主要通过 UIlabel的sizeToFit方法自动计算文本区域大小 UIImage的- (UIImage *)stretchableImageWithLeftCapWidth:(NSInteger)leftC…

Iphone开发(四)文本框,文本视图,和软键盘的隐藏

holydancer原创,如需转载,请在显要位置注明: 转自holydancer的CSDN专栏,原文地址:http://blog.csdn.net/holydancer/article/details/7396207 今天介绍几个基本控件和软键盘的操作,在iphone应用中用到一些…

ios手机端 表单input调用focus方法时,光标不显示,但软键盘会弹出来,可以修改内容,需要修改内容后光标才显示

功能: ios表单验证时,比如 输身份证号,失焦后验证身份证,如果不合法,就让光标跳到对应的输入框,我是不合法就调用focus方法,完了会跳过去,但是ios有个bug,它确实会定位到…

解决 - 解决ios input 和textarea不能输入的问题

写移动端项目总有一些兼容性需要我们解决滴,就比如我现在遇到的问题:ios 无法正常在input和textarea上面输入我们需要的内容,而安卓手机是可以正常输入的,一点问题都没有。那么我现在就给大家分享一下如何解决 ios 上面的问题啦。…

获取TradingView数字货币技术分析结果

一、 TradingView的技术分析 TradingView对数字货币的分析和传统证券一样,分为基本面和技术面。 基本面则包括数字货币的基本表现 以及最近一段时间的波动性 技术分析包括振荡指标和趋势指标,可以帮助您确定趋势方向,并了解当前的市场情况。 振荡指标 趋势指标

量化交易中N字型技术形态的实现,天勤,mindgo,python版同花顺,okex,huobi,binance等平台都可正常使用

量化中N字型技术形态的实现 最近一个客户提出了使用N字型技术形态量化交易的思路,本人比较擅长技术或数据统计的编写,这种自定义的略费了一些时间,大约一天完工,简单说一下思路。 通过波段可以简单的看到,在k线波段的走…

数字货币的路在哪里?

在人工智能、分布式数据、边缘计算等核心技术不断发展和普及的过程中,Web3 以其对传统互联网的惊人重塑展现出无穷的发展潜力。 在最初的构想中,数字货币是方便用户在 Web3 世界自由交互的通行证。但随着加密货币市场刚刚从长期的动荡中缓慢复苏&#xf…

Coachella 将 NFT 集成到票务中:数字资产的新用例

传统票务行业已经慢慢拥抱新技术和数字资产。数字门票于 1990 年代初首次推出,但由于严重依赖纸质门票而很快被淘汰。直到 2000 年代,在创建用于买卖门票的集中市场之后,在线票务系统才获得很大的吸引力。但是,如果我们把这个概念…

使用python实现一个简单的数字货币交易回测系统

目录 BaseStrategy(策略基类)Broker(经纪人)示例代码数据可视化 BaseStrategy(策略基类) BaseStrategy,交易策略基类 回调函数 on_start:策略开始运行on_stop:策略运行…

各国纷纷推出数字货币,数字货币发展正当其时

各国央行应如何应对数字技术的挑战?这已成为一个紧迫的问题。部分原因是,各国央行和政府都必须掌控这个私营货币泛滥的新蛮荒时代。现在,它们必须推出自己的数字货币。 试想在不使用纸币的情况下,所有的付款行为将如何实现&#…

网格交易法以及在数字货币中基于Python的量化实现

介绍 我一直觉得程序员都应该试试量化投资,因为在投资里最忌讳的就是情绪波动,而程序员们都相对理性一些,更加愿意相信规则与数据,而同时程序员们又有能力去实现自动交易,所以我这篇文章主要的目标是面向程序员&#…

如何获取免费的数字货币历史数据

数量技术宅团队在CSDN学院推出了量化投资系列课程 欢迎有兴趣系统学习量化投资的同学,点击下方链接报名: 量化投资速成营(入门课程) Python股票量化投资 Python期货量化投资 Python数字货币量化投资 C语言CTP期货交易系统开…

数字货币量化交易策略—基于移动平均线MA

本文介绍金融市场中的量化交易策略之移动平均线MA策略。 一、概念 移动平均线,Moving Average,简称MA,MA是用统计分析的方法,将一定时期内的证券价格(指数)加以平均,并把不同时间的平均值连接…

中国央行将发行全球首个法定数字货币,你准备好了吗?

二月初央行推动的基于区块链的数字票据交易平台已测试成功,由央行发行的法定数字货币已在该平台试运行。这一消息表明中国成为全球首个发行数字货币的国家,长达4年的研究让中国在数字货币领域走在了世界前列。 数字货币是什么?央行又为何如此…

全球传统证券外汇交易商进军区块链数字资产·统计(一)

越来越多合规的基础设施建立完善之后,这些资产管理公司与持牌机构将有能力为这些传统的「老钱」打通投资渠道,那么现有的市场份额会成倍的增加,同时也会打破现有的行业市场格局。 目录 一、eToro互联网券商 二、盈透证券集团 三、TD Ameri…