[文档级关系抽取|ACL论文]文档级关系抽取中语言理解的基础模型

Did the Models Understand Documents? Benchmarking Models for Language Understanding in Document-Level Relation Extraction

School of Computer Science, Fudan University | ACL 2023.06 | 原文链接

Background

过去的工作大多数都是从单个句子中收获更多的关系,然而如今要采用多个句子作为一个整体来获得更多的关系,即文档级关系抽取(DocRE),因为需要综合文档中的所有信息,所以文档级关系抽取是更有挑战性的。

过去存在的问题

一种常见的评估方法是测量整个测试集的平均误差,这忽略了模型可以根据错误的特征做出正确预测的情况。如上图,Vera Cáslavská和Czech之间的关系,机器所考虑的决策方式与人类的完全不同,

文章工作内容简述

  1. 在DocRED上进一步注释成了$ DocRED _ { HWE } $
  2. 采用特征归因法观察模型在推理过程中考虑的最关键的词,发现模型总是将不相关的词语虚假的关联起来,形成了无法解释的决策
  3. 证明了模型中的决策方式是不可靠的,设计了6种RE攻击方式证明
  4. 引入平均精度(MAP)指标评价模型的理解能力和推理能力,由此区分因伪相关性引起的能提升因理解能力引起的性能提升,最终发现MAP越高,模型的鲁棒性和泛化能力越强
  • DocRED: 大型文档级关系抽取数据集
  • $ DocRED _ { HWE } $: HWE表示人类注释的词级证据,human-annotated word-level evidence

过去的文档级关系识别

主要分为图的方法基于变换器的方法

  • 基于图的:基于图的方法利用上下文的结构信息构造各种图,并通过图中的路径对推理过程的多次反射进行建。DocuNet(SOTA)中构建了一个实体级的关系图,然后利用图上的U形网络来捕获全局相互依赖性

  • 基于Transformerbased方法的:执行推理隐式识别的长距离令牌依赖通过transformers。ATLOP通过相关上下文增强了实体对的嵌入,并为多标签分类引入了一个可学习的阈值

工作内容1 : DocRED_HWE

难点:第一个挑战来自原始数据集中的注释工件,第二个挑战在于单个关系的多个推理路径

解决方式:采用细粒度的单词级的证据,并且提出了一个新的检查规则,用于二次推理,只有被验证两次才会被采用

  • 来自原始数据集中的注释工件:注释器可以使用先验知识通过实体名称来标记关系,而不需要观察上下文。例如,给定一个跨句实体对“Obama”和“the US”的文档,尽管缺乏理论依据注释者还是倾向于标注“president of”。可以通过注释细粒度的单词级证据来自然地解决
  • 需要注释器对所有推理路径中的单词进行注释。当注释者通过相应的证据词成功推理出某种关系时,其他推理路径中的证据词往往会被忽略。为了解决这一问题,对每个文档采用了多个(滚动)标注,并提出了检查规则:给定一个文档,之前标注的关系被屏蔽,标注者将无法对关系进行推理。如果违反规则,新的证据词将被标注。更新将由下一个注释器检查,直到没有更新发生。所有注释的证据词至少被验证两次。

并且作者最后对于结果进行了一定的人工筛选

工作内容2 : 发现模型总是将不相关的词语虚假的关联起来,形成了无法解释的决策

建立模型参数

  • 文档$ d $
  • 实体集 $ \varepsilon = { e_i } ^n _ { i = 1 } $
  • 提取的目标为预测实体对中$ (e_i , e_j)_ { i, j=1…n;i!=j } $
  • 范围是在 R ∪ { N A } R \cup \{ NA \} R{NA}中,
    • 其中 R R R表示为预测的关系集
    • N A NA NA为没有关系的实体对。
  • 使用 { m j i } j = 1 N i \{ m _ j ^ i \} _ { j = 1 } ^ { N _ i } {mji}j=1Ni区分每个实体,
  • 最终抽取的三元组的格式为 $ { (e_i, r _ ij, e _ j ) | e_i, e_j \in \varepsilon, r_ij \in R } $

验证方式

选择基于图的DocuNet,基于Transformer的ATLOP,通过综合梯度(IG)作为归因方法(因为具有简单且可信的特性)。

使用积分梯度法,计算模型在输入上的输出和参考点上的输出,它俩之间的差值作为token的score进行分配。即如下图所示,给定一个输入 x x x,和参考点$ x’ , I G 计算从 ,IG计算从 IG计算从 x’ $ 到 $ x 的第 i 维的梯度 的第i维的梯度 的第i维的梯度 g _ i 线性积分。其中 线性积分。其中 线性积分。其中 \frac { \partial F(x) } { \partial x_i } 表示输出 表示输出 表示输出 F(x) $到 $ x 的梯度。将 的梯度。将 的梯度。将 x’ $设置所有值为0的Embbeding vectors

在这里插入图片描述

数据集有:

  • D o c R E D DocRED DocRED D o c R E D S c r a t c h DocRED _ { Scratch } DocREDScratch,其中 D o c R E D DocRED DocRED有56354个关系,96种关系类型,大多只能通过推理识别。$DocRED_ { Scratch } 很大程度偏离了 很大程度偏离了 很大程度偏离了DocRED$的训练集,可以用于测试模型的泛化能力
  • D o c R E D H W E DocRED_{HWE} DocREDHWE人工注释了1521不同实体的代词,用于忽略。

实验与分析

位置误导

使用IG来描述模型的决策规则。
A T L O P R o B E R T a ATLOP _ RoBERTa ATLOPRoBERTa在DocRED验证集中不同位置的上平均分布,归因DocuNet也会出现类似的曲线。
在这里插入图片描述

如上图所示,特定位置的token信息比其他位置的words信息的affect更明显。

也就是说,模型根据单词在文档中的位置来区分单词,原因应该为:

  • 在学习过程中扭曲了位置特征,将其与预测结果虚假地关联了起来
  • 位置Embbeding被错误的训练(没监督),偏离了表示位置信息的原始功能
    由此说明,泛化能力弱
狭隘的推理

推理正确关系所需要的单词,代表模型的推理范围

设模型为"A X B",A、B为实体,X为推理关系所需要的单词/单词序列,设X为$r_AB$的前k个赋值token,token的顺序与原文相同,DocRED性能如上图所示。

  • 添加最高属性(我理解为强属性)的单词会导致性能下降
  • position的权重比较大
  • 当只给出实体名称不给上下文,性能可以达到原模型的85%(53%的f1分数)
    由此推出,模型在一个比较狭隘的范围内推理
虚假相关

选择前5个具有属性的单词来显示模型的证据单词。可以发现,很大程度上依赖了一些非因果标记(如实体名称和标点符号),这不利于深度学习。比如逗号就起到了很大作用(SEP和CLS可以证明为无操作的操作符)。因此,该模型不能被部署到现实场景中,因为非因果令牌很容易被替换掉。

原因分析

  • U是因果关系确定的证据词
  • Y是预测词
  • X是文档
  • 给定X和A,模型学习H和Y之间的伪相关。

基于transformer的预训练语言模型,都希望在给定上下文X的情况下,提高当前单词的概率Y,上下文应该由P(Y|X)表示,但学习的是P(Y|X, A),其中A表示为对采样过程的访问,从而导致有偏差。如上图的有向无环图所示。

其中H为有语法意义的(如the,逗号),U为相对不太可能访问采样过程或上下文。目前,Y的语义很大程度依赖着有明确语义的词,即U->Y,他们的组合形成了自然的语言表达,其过程可以使用A->X表述,其中A决定了单词在上下文的分布。

目前来说,PLM训练后的模型,倾向于将虚假的信息与关系关联起来。

工作内容3 : 针对SOTA模型的攻击

证明:

  1. 模型的决策规则与人类的不同
  2. 这种差异会严重损害鲁棒性和泛化能力

由十字架标注的为有监督的训练。

  • P2N:消极预测积极预测变为原始积极预测
  • UP:不变的积极预测变为原始积极预测的比例
Word-level Evidence Attacks
  1. 蒙面词级攻击,所有被人标注的Word-level Evidence(HWE)都被直接Masked(Mask)
  2. 反义词替换,HWE中一个词被一个反义词替换(ASA)
  3. 同义词替换,HWE中一个词被一个同义词替换(SSA)

结果如上图所示,在Mask攻击下,模型仍预测相同的关系【但是性能下降了79%】,在ASA攻击下性能下降了90%,和SSA性能与ASA大致相同。可证明鲁棒性很差。

Entite Name Attacks
  1. 屏蔽实体攻击(EM),直接屏蔽实体名称
  2. 随机打乱实体攻击(ER),随机置换每个文档中的实体名称
  3. 非分发(OOD)实体替换攻击(ES),使用训练数据中没有的实体名称来替换

结果如上图,ES下降最严重,从67.12->7.57

工作内容4 : 新的评价指标MAP

在上述中,证明了模型应该学习人类的决策规则。由此提出一个新的评价指标MAP:

  • 1t(i)表示预测第t个相关事实的第i个重要字的指示函数
  • K的选择,类似于推荐系统中的评价指标,取决于RE从业者的需求,通常设置为1、10、50和100。

如果单词在人类标注的单词级证据中,则1t(i)的输出值等于1。否则等于0

个人思考

对于以往的深度学习中,大多都是黑盒训练,每次看别人的论文也是,往往都不知道为什么就起作用了,故都是认为就把上下文的关系或者别的之类的token联系在一起用了而已,就像世界十大难题中的中文房间问题一样,就算给出正确的结果,不知道里面的人到底会不会中文。对于这篇文章,完全揭示了当前文档级关系抽取(甚至句子级关系抽取)的现状,知识把杂七杂八的东西放到了池子中去学习,让模型只能在学习到的数据集中有比较好的效果。对于以后的实验中,针对于这一部分,可以优化。

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

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

相关文章

MongoDB中的$type操作符和limit与skip方法

本文主要介绍MongoDB中的$type操作符和limit与skip方法。 目录 MongoDB的$type操作符MongoDB的limit方法MongoDB的skip方法 MongoDB的$type操作符 MongoDB中的$type操作符用于检查一个字段的类型是否与指定的类型相匹配。它可以用于查询和投影操作。 $type操作符可以与以下数…

JVS低代码表单引擎:数据校验与处理的先锋

随着信息技术的迅速发展,数据校验与处理已经成为了各类应用中不可或缺的一环。尤其是在涉及敏感信息,如密码处理时,其安全性和准确性显得尤为重要。JVS低代码表单引擎提供了强大的文本组件触发逻辑校验功能,它能够在用户填写数据的…

模电·放大电路的分析方法——等效电路法

放大电路的分析方法——等效电路法 晶体管的直流模型及静态工作点的估算法晶体管共射h参数等效模型 h h h参数等效模型的由来参数的物理意义简化的h参数等效模型 r b e {r\tiny be} rbe的近似表达式 共射放大电路动态参数的分析电压放大倍数 A ˙ u \.{A}\tiny u A˙u输入电阻 …

【小米电脑管家】安装使用教程--非小米电脑

安装说明功能体验下载资源 Xiaomi HyperOS发布后,小米妙享电脑端独立版本也走向终点,最新的【小米电脑管家】将会内置妙享实现万物互联。那么本篇文章将分享非小米电脑用户如何绕过设备识别验证安装使用【小米电脑管家】实现万物互联 安装说明 1.解压文…

如何用Python编写俄罗斯方块Tetris游戏?

在本文中,我们将用Python代码构建一个令人惊叹的项目:俄罗斯方块游戏。在这个项目中,我们将使用pygame库来构建游戏。要创建此项目,请确保您的系统中安装了最新版本的Python。让我们开始吧! Pygame是一组跨平台的Pyth…

wireshark过滤包小技巧

1、过滤包含某个字符串的数据包: 或者: 2、过滤包含某一连续十六进制的数据包: 或者: 3、过滤精确到位数位置 或者:

关于使用EB tresos出现无法激活的情况解决

EB安装完成时需要激活才能使用的,不然都无法建立工程。 我在安装eb studio时就是在激活方面有问题导致无法使用,下面讲解出现了什么问题以及我如何去解除的。 1.出现的错误提示? ERROR:flexActAPPActivationSend按照在官网中&…

低代码:轻松构建应用程序的新时代

在当今数字化时代,应用程序对于日常企业业务的开展,已经成为一种刚需。然而,应用程序开发的过程往往耗时耗力,对于企业来讲,是一笔不小的成本开支。低代码问世以来,一直在尝试为业务人员赋能,让…

扁平按钮样式

上图 代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>扁平按钮</title><style>body {margin: 0;padding: 0;height: 100vh;display: flex;justify-content: center;ali…

Web漏洞-XSS绕过和pikachu靶场4个场景(三)

★★实战前置声明★★ 文章中涉及的程序(方法)可能带有攻击性&#xff0c;仅供安全研究与学习之用&#xff0c;读者将其信息做其他用途&#xff0c;由用户承担全部法律及连带责任&#xff0c;文章作者不承担任何法律及连带责任。 1、XSS漏洞挖掘与绕过 1.1、XSS漏洞挖掘 数据…

排序算法---冒泡排序

1. 原理 对数组进行遍历&#xff0c;每次对相邻的两个元素进行比较&#xff0c;如果大的在前面&#xff0c;则交换两个元素的位置&#xff0c;完成一趟遍历后&#xff0c;数组中最大的数值到了数组的末尾。再对前面n-1个数值进行相同的遍历。一共完成n-1趟遍历就实现了排序。 1…

104. 二叉树的最大深度(Java)

目录 解法&#xff1a; 官方解答&#xff1a; 方法一&#xff1a;深度优先搜索 方法二&#xff1a;广度优先搜索 思路与算法 复杂度分析 时间复杂度&#xff1a; 空间复杂度&#xff1a; 给定一个二叉树 root &#xff0c;返回其最大深度。 二叉树的 最大深度 是指从根…

【密码学引论】数字签名

第八章 数字签名 1、数字签名体制包括两个方面&#xff1a;施加签名、验证签名 SIG(M,Kd)S VER(S,Ke)bool&#xff08;真、假&#xff09; 2、数字签名和信息加密的区别&#xff08;从密码学五个组成部分来回答 3、安全性要求&#xff1a;先签名后加密&#xff1b;针对哈希函…

如何入门网络安全_网络安全自学

由于我之前写了不少网络安全技术相关的故事文章&#xff0c;不少读者朋友知道我是从事网络安全相关的工作&#xff0c;于是经常有人在微信里问我&#xff1a; 我刚入门网络安全&#xff0c;该怎么学&#xff1f;要学哪些东西&#xff1f;有哪些方向&#xff1f;怎么选&#xff…

算法:合并两个有序数组(双指针)

时间复杂度 O(m n)&#xff0c;空间复杂度 O(1) /*** param {number[]} nums1* param {number} m* param {number[]} nums2* param {number} n* return {void} Do not return anything, modify nums1 in-place instead.*/ var merge function(nums1,m,nums2,n) {let p1 m-1…

深度模型训练时CPU或GPU的使用model.to(device)

一、使用device控制使用CPU还是GPU device torch.device("cuda:0" if torch.cuda.is_available() else "cpu") # 单GPU或者CPU.先判断机器上是否存在GPU&#xff0c;没有则使用CPU训练 model model.to(device) data data.to(device)#或者在确定有GPU的…

解决 Cannot read properties of undefined (reading ‘getUserMedia‘) 报错

[TOC](解决 Cannot read properties of undefined (reading ‘getUserMedia’) 报错) 0. 背景 使用浏览器输入语音时&#xff0c;浏览器的控制台里面有下面错误信息。 Cannot read properties of undefined (reading getUserMedia)1. 解决方法 在浏览器中访问 chrome://fla…

数字化浪潮下,你的企业数字化转型了吗?

企业数字化转型面临的挑战 技术转型挑战&#xff1a;数字化转型涉及到各种新技术、新软件和新硬件&#xff0c;需要企业有一定的技术实力和专业知识&#xff0c;并且需要不断学习和适应变化。对于传统企业来说&#xff0c;可能面临技术门槛高、技术更新快等问题。组织结构转型…

word中,文本框如何跨页?

我们经常使用word编辑一些文档&#xff0c;文档中往往会有一些比较大的文本框&#xff0c;需要跨多页&#xff0c;我们可以使用本文章中的方法&#xff0c;将文本框连接在一起&#xff0c;是的内容自动跨页。 在文字中插入两个文本框如下图&#xff1a; 将内容放到第一个文本框…

ubuntu上搭建bazel编译环境,构建Android APP

背景是github上下载的工程&#xff0c;说明仅支持bazel编译&#xff0c;折腾了一天Android studio&#xff0c;失败。 不得不尝试单价bazel编译环境&#xff0c;并不复杂&#xff0c;过程记录如下 说明&#xff1a;ubuntu环境是20.04&#xff0c;pve虚拟机安装 1.安装jdk sudo…