TANL:STRUCTURED PREDICTION AS TRANSLATION BETWEEN AUGMENTED NATURAL LANGUAGES

news2025/2/8 14:30:49

原文链接:https://openreview.net/pdf?id=US-TP-xnXI
ICLR 2021

介绍

问题

         大多数解决结构性预测的方法都是在预训练模型上对特定的任务进行训练,存在两个局限性:

        1)判别分类器不能很好地利用预训练模型中对于该任务标签的已知知识。例如,知道person能够写一本书就能轻松的学习到author在句子中的关系。然而,由于辨别模型的目标是分类,往往不会用标签语义进行训练(也就是没有使用标签的words,而是使用一些简写字母来标记实体类型),因此并不会有这种转移能力(也就是并不能get到person和author之间的关系)。

        2)辨别模型只能用于特定的任务,想要将一个模型去解决多个任务或者在不改变辨别器的情况下从一个任务迁移到其他任务,都是非常困难的。

IDEA 

         基于以上问题,作者考虑能否设计一个结构来解决不同的结构性预测,同时利用预训练模型中关于标签语义的潜在知识?

        1)使用增强的自然语言作为一种方法去统一多个任务,即对输入输出进行限制来使得模型能够解决多个结构性预测类任务(感觉这不就是prompt?)。

        2)标签语义的利用,例如在命名实体识别中人名直接使用person进行标记,而不是像其他模型中用PER这种标签进行标记。因为预训练模型中可能已经学习到了关于这种标签的相关知识。

方法

         作者提出的模型框架在三个不同结构化预测任务下的流程如下图所示:

         Augmented语言的方法使其能够轻易地对结构化信息进行编码,并且将输出的文本也解码为结构化的信息。

Augmented natural languages

        使用实体和关系抽取任务这个例子来解释增强的自然语言框架。首先,这个任务的目的就是从给定句子中提取出一系列的实体以及这些实体之间的关系。

        下面通过以下例子来进行具体的说明:

         这个任务中,使用”[]“token来标记一个实体及其可能的关系,使用“|”将实体和关系进行分隔,关系表示为X=Y的形式,X表示关系类型,Y表示另一个实体(客体)。

        作者选择在原句子上进行标记,是为了减少句子中同一实体时出现多次时的歧义。这里对实体以及关系的描述都是用的natural words (如person、location)而不是PER, LOC这种标记,就是为了充分利用预训练模型中对这些单词的潜在知识

        其他任务中,额外的信息作为输入的一部分,比如语义角色标注中的实体span(如上图中的粉色框)。

Nested entities and multiple relations

        嵌套实体和多关系任务中的输入输出结构,如下例子所示:

        实体“lithium toxicity”是一种“disease”,而“lithium”的类型是“drug”。因此“lithium toxicity”包括了两种关系:一是与实体“acyclovir”的effect关系,二是实体“lithium”的effect关系。

Decoding structured objects

         模型按增强的自然语言方式产生输出,并按以下步骤对句子中包含预测的结构化对象进行解码得到预测的结构化对象:

        1)移除所有的特殊token,并且提取实体类型和关系,得到一个干净的输出(cleaned  output)。如果生成的句子中存在无效的格式,则该部分将会被丢弃。

        2)使用动态路由算法来对输入的句子和leaned  output进行token级的匹配,来识别原句子中的实体对应的token,作者认为该过程能够提升模型的鲁棒性。

        3)对于输出的每个关系,为其寻找与预测的客体匹配的最近的实体,如果找不到,该关系则被丢弃。

        4)丢弃掉不属于与数据集类型list的实体或者关系。

        用以下例子来解释步骤2中的动态路由对齐:

        可以发现输出中包含了一个拼写错误的实体词“Aciclovir”(正确的应该为scyclovir),cleaned output中的“Aciclovir”被标记为“A-cicl-o-vir”,与输入中的“a-cycl-o-vir””相匹配,因此推断该词为“acyclovir”。(acyclovir和aciclovir是同义词)

Multi-task learning

        TANL允许在包括不同任务的多个数据集上训练一个模型。只需在每个输入句子中加入数据集的名字,后面加上任务分隔符“:”作为前缀。(例如,“ada:”)

Categorical prediction tasks

        对于关系预测这类任务,常规的方法就是计算所有可能分类的分数并将最高分作为预测类别,由于该模型是一个生成类模型,因此作者使用输出序列的似然来代替分类分数,并且作者认为后者能够增加模型在低资源情况下的鲁棒性。

STRUCTURED PREDICTION TASKS

        这部分对多个结构化预测任务的输入输出格式进行了解释。联合命名实体识别和关系提取已在Augmented natural languages部分进行了解释,因此不再赘述。

Named entity recognition (NER):该任务为联合命名实体识别和关系提取的子任务。

Relation classification:输入一句包含主体和客体的句子,对它们之间的关系进行分类。由于主体不一定在客体的前面出现,因此对于该任务,在原句子后加入一句:“the relationship between【head】and 【tail】is”。如下例子所示:

Semantic role labeling (SRL):输入一句带有谓词标记的句子,去预测句子其他的参数及其类型。每个参数都对应于和谓词有特定关系的一连串标记(如主语、位置或者时间)。以下例子中,“sold”就是标记的谓词。

Event extraction:该任务要求提取出 1)event triggers,每一个触发器都表明发生在真实世界的事件;2)trigger arguments,表明与每个触发器相关的属性。

        以下例子中,有两个事件triggers:“attacked”和“injured”。triggers检测使用与NER相同的形式,argument提取时,一次只考虑一个trigger。在输入句子中标记trigger及其类型,输出格式与联合命名实体识别和关系提取相似。

Coreference resolution:该任务将表示同一实体的单个文本span进行分组(感觉就是代词解释)。

Dialogue state tracking (DST):该任务输入的是一段用户和客服之间的对话,需要输出对话的状态。如下例子所示:

        输入用户和客服之间的对话使用"【user】:"和'【agent】:"进行标记,使用【belief】对输出进行标记。当对话内容没有涉及到的(即如果输入中没有用户回答的two,则输出中的duration 则是not given),使用【not given】进行标记。

实验

对比实验

         作者使用三种数据集设定:1)单个数据集;2)同一任务的多个数据集;3)多个任务的多个数据集;总体实验结果如下所示:

         在单个任务的设置下,作者提出的模型在多个数据集上的表现都达到了最优。在coreference resolution任务上,TANL的表现与之前使用BERT-base的模型(除了CorefQA)效果相似。但作者认为TANL是第一个不需要单独的mention proposal 模块的模型,以及不强制执行最大mention length的端到端模型。并且,作者提出的方法可以不修改模型只使用一个架构来执行多个任务。

        多任务模型在coreference resolution上的表现较差,因为该任务的输入会比其他任务更长,并且我们模型的最大序列长度是512tokens,但是coreference数据集中是1536tokens的输入,2048个tokens的输出,因此输入就会进行分割,也就降低了模型的性能。

低资源实验和消融实验 

        作者为了测试模型在低资源情况下的表现,使用CoNLL04数据集上部分(0.8%-6%)数据进行训练的结果如下图所示(a):

         其中在低资源的情况下(训练集只有9-72个数据),TANL的表现比SpERT要好(在使用完整训练集时,性能相似),绿色的线表示在NYT数据集上进行预训练后,迁移到该数据集上的表现。

        对标签语义、结构化增强语言(就是输入输出的结构)、对齐这三个方面进行消融实验,结果如下图所示(b)。Numeric labels: 使用数字代替自然单词进行标记实体类型。Abridged output:使用一种不重复整个输入句子的格式进行输出;No DP alignment: 使用精确的单词匹配代替动态编码对齐。

        可以看出在低资源的情况下,标签语义对于模型性能的影响是最大的。(但是这里怎么使用全部的训练数据,代替其中一种方法的F1都这么低?不至于吧?)

总结 

        使用text-to-text的生成模型来解决NLP中的结构化预测任务,训练一个模型就能解决多个任务,并且使用标签的nature word来进行标记(这个能不能运用到其他任务上啊?会提高模型的性能吗?),尽可能地利用了预训练模型中潜在知识。另外,实验也证明提出的模型在低资源的情况下,表现出较强的竞争力。

        tips:题目中的translation 指的就是模型在输入的句子上做了 augmented(即加上了标注),最后将输出解码为预测的结构化对象。(做特别说明是因为我最开始以为是常见的语言翻译,其实这也是翻译,一种语言翻译为另一种结构的语言。)

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

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

相关文章

这个事实已冲击并颠覆我的认知:时间不多了

我们都知道人生短暂,可到底是怎么个短法? 十年是个模糊的表述,我们很难在脑海里想象十年是什么概念,但如果换成十个冬天,跟父母在一起十天,这样描述就会更直观些。 WaitButWhy对人生的时间进行了拆解&#…

Cesium教程(十九):Cesium粒子系统

Cesium教程(十九):Cesium粒子系统 1、粒子系统 1.1 什么是粒子系统 Cesium粒子系统是一种模拟复杂物理效应的图形技术,是由小图像组成的集合,当他们在一起形成更复杂的“模糊”对象时,会形成火、烟、云或烟火等。 1.2 初始粒子系统 效果预览 完整代码 <!DOCTYPE htm…

day05--java高级编程:Junit单元测试框架、泛型,集合:集合数组互转,迭代器,增强for循环,集合工具类,数据结构简介

补充&#xff1a;Junit单元测试框架 1. 简介 概述&#xff1a; JUnit是使用Java语言实现的单元测试框架&#xff0c;它是开源的&#xff0c;Java开发者都应当学习并使用JUnit编写单元测试。此外&#xff0c;几乎所有的IDE工具都集成了JUnit&#xff0c;这样我们就可以直接在…

CoreDX DDS应用开发指南(9)服务质量QoS

12 服务质量QoS DDS的强大功能之一是支持各种服务质量(QoS)设置。QoS设置允许应用程序开发人员定制发布者、订阅者的行为以及它们之间的通信。 从DomainParticipantFactory到DataReader和DataWriter,大多数DDS实体都有一组适用的QoS设置。QoS设置包含在一个结构中。 例如,D…

【Flutter】Flutter 如何获取当前路由

文章目录 一、前言二、Flutter 路由基础知识1. 什么是路由2. Flutter 中的路由管理 三、如何在 Flutter 中获取当前路由1. 使用 NavigatorState 类2. 使用 ModalRoute 类 四、代码示例1. 一个简单的获取当前路由的例子2. 实际业务场景中获取当前路由的例子 五、完整可运行的代码…

什么才是好的测试用例?

对于测试用例来讲&#xff0c;“好的”测试用例一定是一个完备的集合&#xff0c;能够覆盖所有的等价类以及各种边界值&#xff0c;而跟能否发现缺陷无关。 如果把测试软件看做一个池塘&#xff0c;软件缺陷是池塘中的鱼&#xff0c;建立测试用例集的过程就像是在编织一张捕鱼…

新能源驱动电机NVH开发研究

摘要&#xff1a; 本文介绍了新能源驱动电机行业发展现状&#xff0c;详细论述了目前行业内主流电机&#xff1a; 1、驱动电机现状 驱动电机是新能源车辆和混合动力车辆的核心动力源&#xff0c;基于电磁感应效应&#xff0c;驱动电机将整车提供的电能转化为机械能&#xff0c…

一文3000字从0到1用【 pytest+excel】实现自动化接口测试

项目结构 1.common 存放公用方法 login.py 前置条件类public.py 获取文件指定目录类 复制代码 2. base 存放底层方法类 method.py复制代码 3. data 存放数据 data.xls 复制代码 4. tests 存放用例类 pytest test_excel.py5. utils存放工具类operationExcel.py 复制代码 代…

谷歌高级语法有哪些,以及如何开发国外客户

谷歌高级语法指令常用的有下面几个&#xff1a; site、inurl、intitle、intext、filetype、link、index of、related 谷歌高级语法用法&#xff1a; 1.Site的三种常用用法 示例&#xff1a;site域名&#xff08;site:org&#xff09; site域名contact(site:org contact) 产…

HarmonyOS元服务端云一体化开发快速入门(上)

一、前提条件 您已使用已实名认证的华为开发者帐号登录DevEco Studio。 请确保您的华为开发者帐号余额充足&#xff0c;账户欠费将导致云存储服务开通失败。 二、选择云开发模板 1.选择以下任一种方式&#xff0c;打开工程创建向导界面。 如果当前未打开任何工程&#xff0c…

【宿舍管理系统】注册登录页面的实现(前端)

目录 一.创建一个jsp文件&#xff0c;命名为login.jsp 代码&#xff1a; 1. 2. 3. 4. 5. 6. ​编辑 二. 创建一个css文件&#xff0c;并命名为style.css 1. ​编辑效果如下&#xff1a; ​编辑 代码解析&#xff1a; 2. 效果如下&#xff1a; 代码解析&#xff1…

如何做好《关键信息基础设施安全保护要求》提到的收敛暴露面?

5月1日&#xff0c;《信息安全技术 关键信息基础设施安全保护要求》&#xff08;GB/T 39204-2022&#xff09;国家标准正式实施。该标准作为关键信息基础设施安全保护标准体系的构建基础&#xff0c;提出了关键信息基础设施安全保护的三项基本原则&#xff0c;为运营者开展关键…

华为OD机试真题 JavaScript 实现【最左侧冗余覆盖子串】【2023Q2 100分】

一、题目描述 给定两个字符串 s1 和 s2 和正整数k&#xff0c;其中 s1 长度为 n1&#xff0c;s2 长度为 n2&#xff0c; 在s2中选一个子串&#xff0c;满足: 该子串长度为n1k&#xff1b;该子串中包含s1中全部字母&#xff1b;该子串每个字母出现次数不小于s1中对应的字母&am…

2023年,现在学Python还吃香吗?计算机专业怎么样?

自从ChatGPT诞生以来&#xff0c;各大科技公司纷纷推出了自己的AI产品&#xff0c;在这个赛道上卷生卷死&#xff0c;纷纷布局。 从Google的Bard AI、OpenAI出走团队的Claude&#xff0c;到中国的众多公司&#xff0c;如百度的文心一言。 总的来说&#xff0c;AI的应用领域日…

Java培训周期一般多长?Java培训班过来人告诉你!

市场上比较靠谱的java培训机构的培训时间一般都是5-6个月&#xff0c;好程序员是4个月&#xff0c;个别培训机构可能因为班型不同而有所区别。学的时间太短学到的知识可能会有遗漏&#xff0c;造成基础不扎实;学习时间太长也会过于拖沓&#xff0c;还降低了整个培训的性价比。 …

qt creator使用问题

qt creator 多版本安装需要卸载之前的版本&#xff0c;安装目录默认在Qt目录下&#xff08;qt的sdk也在qt目录下&#xff09; 编译过程中遇到一些很奇怪问题&#xff0c;建议优先重新编译。 issue qtcreator inappropriate for the inferior 构建套件&#xff0c;前面的感…

YOLO-V5分类实战系列 —— 快速训练自己的数据集

YOLO-V5 训练自己的分类模型 1、获取官方源码2、测试官方源码2.1、公开数据集测试源码 3、源码模块解析3.1、数据读取 4、快速开始训练自己的数据4.1、准备自己的数据4.2、配置训练参数 1、获取官方源码 官方代码&#xff1a;https://github.com/ultralytics/yolov5 更新版本&a…

【Matter】Matter学习笔记1

文章目录 前言Matter协议架构1.Matter Over IPV62.Matter协议架构3.Matter标准协议架构 Matter网络拓扑结构Mesh组网1.单一网络拓扑2.星形网络拓扑 设备数据模型&#xff08;Date Model&#xff09;1.设备和端点&#xff08;Node、Endpoint&#xff09;2.节点角色&#xff08;N…

58、基于51单片机GPS定位自动报站时间显示语音播报公交车系统设计(程序+原理图+PCB源文件+参考论文+开题报告+任务书+元器件清单等)

摘 要 1831年&#xff0c;英国的沃尔特汗考为他的国家制造出了世界上第一辆装载发动机的公共汽车&#xff0c;至今&#xff0c;公交车已经经历过近200年的发展过程。从刚开始“闷罐头”样式到如今配套空调系统&#xff1b;从专人售票至无人售票&#xff1b;从人工报站至半自动…

咖啡店小程序开发 让烟火小店更有生机

随着人们生活水平的提高和生活压力的增大&#xff0c;很多人都靠喝咖啡来缓解疲劳和压力&#xff0c;也为我们的生活增添了一丝情趣&#xff0c;但高峰时期排队购买一杯咖啡很浪费时间&#xff0c;很多赶时间的上班族不得不放弃。随着互联网技术深入到各行各业&#xff0c;传统…