笔记:HiCLRE: A Hierarchical Contrastive Learning Framework for Distantly Supervised Relation Extractio
HiCLRE: A Hierarchical Contrastive Learning Framework for Distantly Supervised Relation Extraction
作者:Li et al.,ACL 2022.
目录
- 简介
- 方法
- 实验
- 总结
1 简介
本文任务是做DSRE(远程监督关系抽取),之前DSRE的一些工作大多是句子级或bag-level的独立降噪而忽略了不同级别之间信息的交互,因此本文提出HiCLRE处理DSRE,具体来说主要有两点:1)利用多头注意力机制实现三层表示(entity-level、sentence-level、bag-level)之间信息的交互进而增强三层表示;2)除了考虑跨级别之间的交互,层内细粒度关系的语义差异也可以帮助模型进一步增强上下文感知的表示,这点利用对比学习这种数据增强的技术实现。
2 方法
如下图2为模型的整体结构,主要就是Pseudo Positive Sample、Multi-Granularity Recontextualization这两个部分分别对三层表示做数据增强以及cross-level跨级交互得到增强的表示。
2.1 Hierarchical Learning Modeling(分层学习模型)
Entity Representation. 简单处理,Entity’s representation is calculated by averaging all tokens hidden states of the entity即BERT对句子编码后,聚合实体的所有token表示作为实体表示。
Sentence Representation. 也处理的比较简单,取句子中标注的头尾实体的表示以及特殊标识符[CLS]的hidden表示。
Bag Representation. 有了句子表示后,多实例学习bag表示跟随(Lin et al., 2016)\(^{[2]}\)sentence-level的selective-attention方法获取bag表示。之后利用bag表示推理预测bag标签,我们目标就是为每个bag分配其对应的标签因此损失如公式(6)(7)(8)。
2.2 Multi-Granularity Recontextualization(多粒度语境重构)
上述Hierarchical Learning(分层学习)并未考虑到cross-level跨级之间的交互,因此本文基于transformer的多头自注意力机制,将目标level表示作为V,其余两个level的表示作为Q、K基于多头注意力机制实现跨级信息的交互。具体来说以bag-level为目标level为例,其余同理。
bag-level表示作为value,sentence-level表示作为key,entity-level表示作为query,最终得到增强的bag表示。
之后,将增强的bag表示与最初的bag表示拼接作为新的bag表示,最后我们利用这三层的增强的表示\(h_{e_{att_j}},h_{S_{att_j}},h_{B_{att_j}}\)替换之前的分层学习得到的三层隐藏表示。
2.3 Dynamic Gradient Adversarial Perturbation(动态梯度对抗扰动)
正如简介中所说为了能够帮助模型进一步增强上下文感知的表示,我们为对比学习构建了伪阳性样本来排除不相似的关系。由于特定层次梯度的变化和更好的上下文感知语义可以提高鲁棒性表示,我们分别设计了梯度扰动和惯性权重记忆机制。
数据增强对比学习、表示学习相关没看过,这节没看懂,待续。。。详见原文
补
我们知道对于对比学习(无监督的)来说,一个关键的问题就是正负样本尤其是正样本的构建,之后利用原始样本以及构建的正负样本根据InfoNCE(van den Oord et al., 2018\(^{[4]}\))损失训练得到更好的表示,而本节提出的动态梯度对抗扰动就是为对比学习而服务的,具体来说就是利用本文设计的动态梯度对抗扰动构建正样本进而做对比学习,动态梯度对抗扰动主要分为两个部分Gradient Perturbation(梯度扰动)和Inertia Weight Memory(惯性权重的记忆)。
Gradient Perturbation(梯度扰动)
根据公式(12)(13),梯度扰动\(pt_{adv_j}\)通过对主任务关系分类损失函数即\(L_{task}\)的梯度做L2范数归一化计算得到,其中\(g_j\)为梯度,\(||g_j||\)为\(g_j\)的范数,\(V\)为bag中句子的表示应该是一个矩阵,每个句子表示为一个向量\(h_{S_{ij}}\)表示第j个bag中的第i个句子,\(\epsilon\)超参。
Inertia Weight Memory(惯性权重的记忆)
随着训练epoch的增加,为了能够进一步提升当前level表示内部语义的健壮性,如公式(15)我们在梯度扰动的基础上增加inertia weight information(Shi and Eberhart, 1998)来充分利用当前epoch和上一轮次表示之间的差异,进而得到最终的Dynamic Gradient Adversarial Perturbation(动态梯度对抗扰动)\(pt_{adv_j}\),惯性权重的记忆具体公式(14)。
对于这两个部分公式为什么这么设计原理是什么为什么用在这里合适我没有深挖不懂,我感觉我们只需要知道梯度扰动和权重惯性记忆这两个部分加和得到的最终的动态梯度扰动\(pt_{adv_j}\)的设计就是为对比学习正样本的构建服务的,它只是构建正样本的一种方式即构建文中所说的pseudo positive sample伪阳性样本\(h_{B_j}’=h_{B_J}+pt_{adv_j}\)作为对比学习正样本,假如对于bag-level,然后随机选取同一个batch中其他的bag表示作为负样本,,具体InfoNCE损失公式(16),类似bag-level我们再针对entity-level、sentence-level表示做对比学习,分别得到\(\mathcal{L}_{bag}、\mathcal{L}_{sen}、\mathcal{L}_{en}\)三个不同level的对比学习InfoNCE损失构成2.4节中最终的目标函数训练。
2.4 Training Objective
我们的训练目标包括两个部分即DSRE任务损失(\(\mathcal{L}_{task}\))以及对抗学习损失包括三层的NCEloss,如下公式(17),\(\lambda\)超参平衡不同损失在整个Loss的比例吧,\(\sum^4_{l=1} \lambda_l=1\)。
3 实验
两个DSRE主流数据集:NYT10、GDS,新sota。
Ablation Study(消融实验). 如下表3,主要有两点:1)去掉cross-level交互、去掉三级的对抗学习loss各自1.8%,2.7%表明跨层表示之间的信息交互以及这三个对抗学习loss设计的还是有效的;2)分别不再对特定的层表示增强即目标层不再做gradient/memory梯度扰动和惯性权重记忆这两个操作,发现性能都有一定的同时-sentence-level的数据增强下降的最多,可能是由于对于DSRE任务来说基础的输入就是一个sentence,我们要考虑的实体对关系限于当前句子且多实例学习以bag为基本单位一个bag是由多个包含相同实体对的句子构成的所以句子表示也会进一步影响bag的表示,所以句子级别表示重要也合理。
4 总结
主要两点1)多头注意力机制做交互,最近看了几篇包括DSRE、JointRE都用了类似方法做关于类型、表示等各种交互,联合RE常用在多任务学习?;2)增强学习->强化特定level的表示
参考
[1] Dongyang Li1,2 ?,Taolin Zhang3,4?, Nan Hu1, Chengyu Wang3, Xiaofeng He1,5?.HiCLRE: A Hierarchical Contrastive Learning Framework for Distantly Supervised Relation Extraction.ACL 2022.
[2] Yankai Lin, Shiqi Shen, Zhiyuan Liu, Huanbo Luan, Maosong Sun.Neural Relation Extraction with Selective Attention over Instances.ACL 2016.
[3] HiCLRE: A Hierarchical Contrastive Learning Framework for Distantly Supervised Relation Extraction - 知乎 (zhihu.com).
[4] [1807.03748] Representation Learning with Contrastive Predictive Coding (arxiv.org).