ERICA论文解读

通过对比学习提升预训练语言模型对于实体和关系的理解

ERICA: Improving Entity and Relation Understanding for Pre-trained Language Models via Contrastive Learning


论文链接: https://arxiv.org/abs/2012.15022
代码链接:https://github.com/thunlp/ERICA

一、背景

以ELMo和BERT为代表的预训练语言模型(PLMs)带来了NLP领域的变革。

  • PLMs:通过采用自监督学习的方法,将大量的无监督文本送入到模型中进行学习,即可得到通用的预训练模型。

  • PLMs特点:参数量多、数据量大 ->计算量大 (增大参数、增大数据,可有效提高性能)


二、预训练语言的实体与关系的理解

(1)结合知识库知识(产生新的结构/新的预训练对象)
(2)增强实体表示
(3)增强关系表示
(4)实体和关系表示

1.实体关系分类问题范式
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SfJ7UzpG-1625501055472)(https://i.loli.net/2021/07/05/klQFrBNJK4xSDyE.png)]

有监督场景:适合于标签量充足的情况,但其实最终的效果不太好。
few-shot场景:query和candidate都进行编码,不需要太多标签,效果较好

2.实体表示方法

注:
[CLS] 标志放在第一个句子的首位,经过 BERT 得到的的表征向量 C 可以用于后续的分类任务。
[SEP] 标志用于分开两个输入句子,例如输入句子A和B,要在句子A,B后面增加 [SEP] 标志。
[UNK]标志指的是未知字符
[MASK] 标志用于遮盖句子中的一些单词,将单词用 [MASK] 遮盖之后,再利用 BERT 输出的 [MASK] 向量预测单词是什么。

  • STANDARD - [CLS]
    用[CLS]来作为2个实体的关系的表示 ,仅限于含有2个实体的句子,且可能不准确

  • STANDARD - MENTION POOLING
    将实体的平均池化结果作为实体的表示
    (每个Entity可能对应多个tokens,每个token经过PLMs都会得到一个hidden layer的表示,将这些token进行Mean Pooling)

  • POSITIONAL EMB. - MENTION POOL
    用token type embedding标识当前词是普通词还是Entity
    在这里插入图片描述
    引入ENTITY MARKERS:对实体i,在其前插入[Eistart],其后插入[Eiend] ,在输入层面就把实体位置区分开

  • ENTITY MARKERS - [CLS]

  • ENTITY MARKERS - MENTION POOL

  • ENTITY MARKERS - ENTITY START
    在这里插入图片描述
    实验表明,在进行句子级别任务时,ENTITY MARKERS - ENTITY START效果最好(输入为ENTITY MARKERS,输出为ENTITY START)

推广到文档级别:
文档:多句子,含多实体

  • [CLS]模式不适用
  • Entity marker最好不要用相同的token(便于区分不同实体);可能出现的问题:超过PLM的输入边界
  • Mean Pooling的方式不受影响
  • Entity marker在监督信号充足的情况下效果优于Mean Pooling;而在偏few-shot场景下,mean pooling效果更优

三、ERICA

(1)现有增强实体与实体间关系的PLMs存在的问题

  • 仅考虑对实体本身的理解,忽视了实体间关系的理解
  • 仅考虑句子级别的实体关系理解,忽略了对实体本身的理解,也忽视了文档中多个实体间的互相关系涉及到的复杂推理
    在这里插入图片描述

针对存在的问题进行改进

  • 实体区分任务
  • 关系区分任务
  • 远程监督+文档级预训练

(2)预训练数据收集

  • 从Wikipedia爬取得到大量段落 - 利用spaCy找出各个段落的实体 - 将段落实体与wikidata实体链接,得到段落实体的ID - 利用远程监督进行关系注释
    (对每个文档的词数、关系数、实体数有限制)

  • 符号表示:
    Ti = {tijk = (di, eij, rijk, eik) | j≠k}, T = T1∪T2∪…T|D|
    其中,di表示第i个文档,eij表示di里第j个实体,eik表示di里第k个实体, rijk表示这两个实体之间的关系。
    关系r可能为“no relation”,将T中含“no relation”的元组去掉,得到正元组集T+.
    T+既包含句子内的实体对,也包含句子间的实体对,即 T + = T s i n g l e + ∪ T c r o s s + T^+ = T_{single}^+∪T_{cross}^+ T+=Tsingle+Tcross+

(3)实体/关系表示
首先,对文档di,首先使用PLMs对其进行编码,获得一系列的hidden表示{h1,h2,…,h|di|}

  • 实体表示:
    一个实体可能会在文档中出现多次,每次出现的mention可能不同。
    对第 i 次出现,作MeanPool平均池化操作,mkeij = MeanPool(hnkstart, …, hnkend)
    将此entity每次出现取得的mkeij作平均,得到的结果就是该实体的表示。

  • 关系表示:
    由上述方法得到实体表示之后,将两个实体表示连接,即可得到二者的关系表示,如:riej1,j2 = [ej1; ej2]

(4)实体区分任务(ED)
从T+ 中抽样一个元组tijk = (di, eij, rijk, eik)
ED的任务就是通过给定的头实体eij和关系rijk来找尾实体eik
先对文档进行修饰,如下:
di* = “relation_name entity_mention [SEP] di
所以ED任务即为求 P(eik|eij, rijk) 的最大值,P(eik|eij, rijk) = softmax (f(eik))
而实验表明,直接对P(eik|eij, rijk)求最大值效果并不是很好
由此,引入对比学习:LED = ∑tijk∈T+ log e x p ( c o s ( e i j , e i k ) / τ ) ∑ l = 1 , l ≠ j ∣ ε i ∣ e x p ( c o s ( e i j , e i l ) / τ ) \frac{exp(cos(e_{ij},e_{ik})/\tau)}{\sum_{l=1,l≠j}^{|\varepsilon_i|} exp(cos(e_{ij},e_{il})/\tau)} l=1,l=jεiexp(cos(eij,eil)/τ)exp(cos(eij,eik)/τ)

在这里插入图片描述

(6)关系区分任务(RD)
T s + ( 或 T c + ) T_s^+(或T_c^+) Ts+(Tc+) 中取两个元组样本:
t A = ( d A , e A 1 , r A , e A 2 ) , t B = ( d B , e B 1 , r B , e B 2 ) t_A = (d_A,e_{A1},r_A,e_{A2}), t_B = (d_B,e_{B1},r_B,e_{B2}) tA=(dA,eA1,rA,eA2),tB=(dB,eB1,rB,eB2),其中 r A = r B r_A = r_B rA=rB,任务二者为正样本,拉进它们在语义空间中的距离
又从 T T T 中取负样本 t C ( t A ≠ t C ) t_C(t_A≠t_C) tC(tA=tC)

L R D T 1 , T 2 = − ∑ t A ∈ T 1 , t B ∈ T 2 l o g e x p ( c o s ( r t A , r t B ) / τ ) Z L_{RD}^{T_1,T_2} = -\sum_{t_A\in T_1,t_B\in T_2} log \frac{exp(cos(r_{t_A},r_{t_B})/\tau)}{Z} LRDT1,T2=tAT1,tBT2logZexp(cos(rtA,rtB)/τ)

Z = ∑ t C ∈ T / t A N e x p ( c o s ( r t A , r t C ) / τ ) Z = \sum_{t_C\in T/{t_A}}^{N} exp(cos(r_{t_A},r_{t_C})/\tau) Z=tCT/tANexp(cos(rtA,rtC)/τ)

L R D = L R D T s + , T s + + L R D T s + , T c + + L R D T c + , T s + + L R D T c + , T c + L_{RD} = L_{RD}^{T_s^+,T_s^+}+L_{RD}^{T_s^+,T_c^+}+L_{RD}^{T_c^+,T_s^+}+L_{RD}^{T_c^+,T_c^+} LRD=LRDTs+,Ts++LRDTs+,Tc++LRDTc+,Ts++LRDTc+,Tc+

负样本中引入 n o no no_ r e a l t i o n realtion realtion 的元组可以提升性能
在这里插入图片描述

(5)整体训练目标
L = L E D + L R D + L M L M L = L_{ED}+L_{RD}+L_{MLM} L=LED+LRD+LMLM

(MLM:Mask Language Model)


四、实验

进行多种实验,均能得到较好的效果。
包括关系抽取实验、实体类型区分实验、QA实验等
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值