1. ACL20220521-DeepStruct

论文地址DEEPSTRUCT: Pretraining of Language Models for Structure Prediction

代码地址https://github.com/cgraywang/deepstruct

1. Introduction

  过去几年里,预训练语言模型使得 NLP 模型逐渐向善于执行灵活和任务不可知的下游任务转移。但其只专注理解文本的上下文信息,而较少的关注句子的结构。与那些下游任务不同,结构预测需要理解文本的结构,以便进一步将多个相关方面集成到一个结构中。将预训练语言模型转移到下游结构预测任务并非易事。虽然结构预测需要结构理解,但预训练语言模型经过预先训练,可以理解某一个独立的方面。
  要弥合预训练模型到结构预测任务的差距,重点关注两个方向:第一,用任务特定的体系结构来建模不同的结构预测任务;第二,任务特定的数据增强,旨在用结构信息丰富文本格式。这些方法由于其特殊性阻碍了它们在一般结构预测任务中的通用性。
在这里插入图片描述

  引入了结构预训练,系统地教会预训练语言模型在预训练阶段更好地理解文本结构之外的信息,这使得预训练语言模型在预训练期间学到的关于结构的信息可以直接转移到下游结构预测任务。我们将结构预测重新定义为一系列单元任务——三重预测任务,然后用任务不可知的结构语料库训练语言模型,从文本中生成三元组。三重表示将大量标准结构预测任务统一为相同的任务格式。
在这里插入图片描述

贡献:
  ① 提高了预训练语言模型的结构理解能力
  ② 实现了语言模型对结构预测任务的 zero-shot 转移
  ③ 应用于10个任务的28个结构预测数据集,其中21个数据集达到了sota值

2. Structure Pretraining

我们没有对每个任务使用标准的预训练-微调范式,而是引入了结构预训练,目的是教会语言模型同时在广泛的任务范围内对应结构。
在这里插入图片描述

2.1 Generative Pretraining

我们将结构预测重新定义为三个任务的组合,将三元组(头实体,关系,尾实体)称为描述实体间的关系。我们设计了三个预训练任务分别专注于预测实体、关系和三元组。

  • 实体预测:旨在输出关于输入句子中的实体及关系类型的三元组,通过在输入中添加 entity 来实现。
  • 关系预测:旨在将输入中的关系和对应的类型恢复为三元组,通过在输入中添加 relation 来实现。
  • 三元组预测:从输入中输出整个三元组结构,通过在输入中添加 triple 来实现。
    在这里插入图片描述
    这些预训练任务与下游任务无关,所以其学到的信息更具通用性。

(1)Pretraining Data
我们在任务无关的语料库集合上训练模型,包括预先构建的文本和三元组之间的大规模对齐。使用了T-REx、TEKGEN、KELM、WebNLG 和 ConceptNet,这些语料库将文本与知识图谱中由高质量实体和关系组成的三元组对齐,用于实体和关系预测任务。对于三元组预测任务,我们使用提供开放模式三元组的 OPIEC。预训练数据和预训练任务如下表所示:
在这里插入图片描述
我们将预训练构建成一个条件生成任务,其中输入文本 x \text{x} x,输出 y \text{y} y 是一个三元组序列。预训练可以表示为估计一个条件分布 p ( y ∣ x ) p(\text{y}|\text{x}) p(yx)。这里使用自回归语言模型来建模 p ( y ∣ x ) p(\text{y}|\text{x}) p(yx)。其训练过程如下所示:
在这里插入图片描述
(2)Zero-Shot
zero-shot DEEPSTRUCT 是指在推理时使用预处理模型而不进行任何特定任务的预训练的设置。我们通过将下游任务转换为一个或多个预训练任务,实现了结构预测任务的 zero-shot transfer。对于每个数据集,我们在预处理数据集和下游数据集之间建立模式对齐,并根据预先构建的模式对齐将输出三元组解码为对应的结构预测。
在这里插入图片描述
预处理数据的分布与下游数据集的分布并不完全一致,这导致预处理模型的输出分布发生变化,zero-shot 设置无法在包括对话状态跟踪在内的多个分发任务中发挥最佳效果。原因是它期望的输出是一种对话状态,这在我们任务不可知的预训练语料库中是缺乏的。
(3)Multi-Task
为了缓解上述问题,我们将多个结构预测数据集集成到预训练语料库中,并在混合数据集上训练我们的方法。对于特定任务的所有数据集,我们采用相同的输入和输出形式,还添加了任务名称和数据集名称,后跟分隔符 ”:“ 作为每个输入示例的前缀。在多任务训练之后,我们针对每个任务的特定数据集进一步调整我们的方法。我们的目标是通过额外的微调阶段测试结构预处理的传输性能的上限。
(4)Experiments
① Main Results
我们有两种设置:zero-shot 和 multi-task,还对每个下游数据集的多任务版本进行了微调,所以总共有三个版本的DEEPSTRUCT。

  • 在 zero-shot 设置下,单个模型用于执行多个任务,而不需要任何特定任务的预训练。结构预训练能够使语言模型意识到预训练语料库中的符号知识,从而使语言模型适应任务。此外,zero-shot 可以很好地推广到所有与任务无关的预训练任务,包括实体预测、关系预测和三元组预测。
  • 在 multi-task 设置下,单个模型用于执行所有下游任务。多任务示例有助于模型更好地理解下游任务。此外,多任务设置在资源不足的情况下可以通过从类似任务中转移知识。

在这里插入图片描述

原则上,生成性语言模型,如T5、BART、GPT-3等,也可用于结构预测任务的结构预训练,我们将此作为未来调查之一。

② Ablation Studies
预训练策略作为我们工作的关键问题是研究结构预训练如何提高学习记忆的结构理解能力,我们研究了不同的预训练策略如何影响下游绩效。我们评估了 CoNLL04(JER) 上的以下设置。
前两个设置检查预处理数据的相对重要性:
 (i)以比例混合为例:我们的混合率最大为10K来平衡不同大小的数据集。所有其他组件与 DEEPSTRUCT 多任务微调保持一致。
 (ii)增加实体和关系:我们添加特殊标记 ”[]“ 来表示实体和关系在句子中的位置。
 (iii)无预处理,微调:移除结构预处理,仅微调 CoNLL04 上的语言模型。
 (iv)zero-shot:我们只使用与任务无关的数据集,在预训练中排除了多任务数据集。
 (v)多任务:我们使用多任务模型,没有进行微调。
 (vi)微调:结构预处理中不包括多个下游数据集,但模型在 CoNLL04 上进行了微调。
在这里插入图片描述
结果表明:
 (i)训练前数据的分布与大多数任务的分布没有显著差异,这限制了平衡战略的影响。
 (ii)数据增强不会给下游绩效带来额外好处,这证实了结构预测成功的关键是我们将复杂结构预测缩小为三元组预测任务,这使得预训练能够捕获对任务重要的实体和关系。
 (iii)去除结构预处理可以直接消融结构预处理的帮助程度。结构预处理显著提高了结构预测中的语言模型。

比例定律:通常情况下,模型越大则其泛化能力越强。
我们发现,当模型达到10B级参数时,结构预训练获得了最佳性能。与110M参数模型相比,10B参数模型显著改善了结果。一个原因是,对于小规模模型,在结构预处理过程中对28个结构预测数据集的学习可能会超出模型容量。对于较大的模型,结构预训练充分利用了模型容量,还教导模型根据下游任务生成三元组,使其能够很好地推广到具有剩余容量的大多数任务。有趣的是,性能似乎并没有显著饱和,这表明随着模型规模的扩大,性能可能会进一步提高。在这两种设置下,我们观察到相似的趋势。我们还发现,对于微调版本而言,模型大小比多任务设置更为重要,这表明微调能够帮助给定大小的模型完成任务。主要缺陷是它会泛化到更多的任务。
在这里插入图片描述
(5)Related Work
多任务学习旨在同时训练多任务模型。在深度学习种,它通常分为硬权重共享和软权重约束。多任务训练已被证明能有效提高语言模型向下游任务转移的能力,主要区别在于,DeepStruct 使用任务无关语料库在结构预处理中跨多个结构预测数据集进行训练,其中我们将所有数据集转换为三种格式。
在这里插入图片描述

(6)Discussion
我们重点比较了 DEEPSTRUCT 与最先进的 TANL(2021)DeepEx(2021)之间的差异。
TANL 提出了特定于任务的数据扩充,分别在每个结构预测任务的输入和输出中注释任务信息和预测。主要区别在于 DEEPSTRUCT 将结构预测任务分解为一组三重任务。三元组格式作为所有考虑的结构预测任务的统一表示,而无需像 TANL 那样引入新的数据扩充。
DeepEx 通过波束搜索探索预训练语言模型的注意力矩阵以生成信息提取任务的三元组。搜索之后,DeepEx 引入了一个额外的排名阶段以提高三元组的质量。不同的是DEEPSTRUCT 的目标是通过所提议的结构预处理,以端到端的方式为广泛的结构预测任务生成三元组。

根据结果显示,DEEPSTRUCTTANLDeepEx 更适用于更多的结构预测任务。

zero-shot:使用预处理模型直接执行下游任务,而不将下游训练集包含在其自身的预处理数据中。

对于 DEEPSTRUCT,我们的预训练数据与任务无关。对于每个任务,我们基于预处理数据和下游数据中的共有信息,在预处理数据模式和任务数据集之间建立离线对齐,然后我们手动调整对齐。在测试时,我们将每个任务转换为一个或多个预训练任务:实体、关系或三重预训练任务。生成三元组后,我们使用预构建的模式对齐来获得任务预测。

对于GPT-3 zero-shot 设置,我们遵循 GPT-3 引入的提示方法。我们旨在测试 GPT-3 用于结构预测的上限性能。因此,我们不是以问答的形式使用标准提示,而是根据基本事实设计“对还是错”问题的提示,GPT-3 只用回答 “是” 或 “否” 来生成任务预测。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值