DAGA : 基于生成方法的低资源标记任务数据增强 精读笔记

news2024/9/24 19:12:39

DAGA : 基于生成方法的低资源标记任务数据增强 精读笔记

文章目录

  • DAGA : 基于生成方法的低资源标记任务数据增强 精读笔记
      • 1 Introduction
      • 2 Background
        • Name Entity Recognition
        • Part-of-Speech (POS) Tagging
        • Target Based Sentiment Analysis
      • 3 Proposed Method
        • 3.1 Labeled Sentence Linearization
        • 3.2 Language Modeling
        • 3.3 Generation
        • 3.4 Post-Processing
        • 3.5 Conditional Generation
      • 4 Experiments
        • 4.1 Basic Models
          • Language Model
          • Sequence Tagging Model
        • 4.2 Supervised Experiments
          • 4.2.1 Named Entity Recognition
          • 4.2.2 Part of Speech Tagging
          • 4.2.3 Target Based Sentiment Analysis
        • 4.3 Semi-supervised Experiments
      • 5 A Closer Look at Synthetic Data
      • Conclusion

​ 这篇文章之前已经仔细读过一遍,也写过 阅读笔记,但是回想起来还有很多细节没有注意到,学了一些相关知识之后回来再看一遍

1 Introduction

​ 为解决大量注释数据的需求,在计算机视觉和语音领域中,数据增强技术被广泛用于生成合成数据。计算机视觉与语音的数据增强技术中使用的旋转、裁剪、遮蔽等人工规则虽然能应用于转换原始数据,但在语言领域,这些规则不再适用。原因是在语言领域中,上述人工规则带来的小失真可能会完全改变句子的含义
​ 在语言领域,以下几类数据增强方法取得了一定效果

  • 回译法
  • 同义词替换;随机交换、删除、插入;使用VAE或预训练语言模型(主要用于翻译和分类任务)
  • 弱标记器注释;对齐的双语语料库诱导注释;同义词替换(可用于序列标记任务)

​ 但是对于低资源条件下的序列标记任务,上述方法仍存在着不少问题

  • 弱标记器需要域内知识和域内数据,否则可能出现域移位问题
  • 双语语料库很可能不适用于低资源语言
  • 同义词替换依赖的额外知识对低资源语言很可能不适用

​ 本文针对序列标记任务,研究基于生成方法的数据扩充。方法具体步骤如下图:
请添加图片描述
请添加图片描述

​ 方法先将句子与标记线性化,然后使用线性化的数据训练语言模型(LM),随后使用模型生成合成标记数据。

​ 这个方法有以下特点:

  • 统一了句子生成和语言模型标记的过程,即生成数据时,单词与标记同时生成
  • 不需要额外资源,但是可以灵活利用未标记数据和知识库等资源

2 Background

Name Entity Recognition

命名实体:文中的人名、组织、地点等

命名实体识别:定位文中的命名实体并分类

难点:NER训练数据量有限

Part-of-Speech (POS) Tagging

词性标注:为给定句子中的每一个词分配一个语法标记

难点:在低资源语言和罕见词上准确率显著降低

Target Based Sentiment Analysis

基于目标的情绪分析:检测句子中的观点目标,预测在目标上的情绪极性

3 Proposed Method

3.1 Labeled Sentence Linearization

方法:句子与标签线性混合,把标签插入到相应的单词前,将标签视为单词的修饰词

目的:使语言模型可以学习源数据中单词和标签的分布

3.2 Language Modeling

方法:RNNLM网络结构:嵌入层、丢弃层、LSTM层、丢弃层、线性层加归一化函数激活

3.3 Generation

方法:输入[BOS]符号,然后使语言模型按照概率自动生成后续序列

3.4 Post-Processing

方法:

  • 删除没有标记的句子
  • 删除所有单词为[unk]的句子
  • 删除标签前缀顺序不合理的句子
  • 删除包含相同单词序列但是标签不同的句子

目的:删除明显不合理不正确的生成数据

3.5 Conditional Generation

方法:在序列的开头加上条件标记[labeled]、[unlabeled]和[KB],KB标记表示与知识库匹配的数据。

目的:充分利用可用的未标记数据和知识库,允许语言模型学习序列之间的共享信息。同时在生成时

4 Experiments

4.1 Basic Models

Language Model

语言模型的参数设置:

  • LSTM隐藏层状态:512
  • 嵌入层:300
  • 丢弃层丢弃率:0.5
  • 损失函数:随机梯度下降
  • 学习率:初始为1,如果开发集的混淆度没有改善,学习率下降1/2
  • 批量大小:32
  • 最大轮数:30
  • 早停:如果混淆度连续三轮没有改善,停止训练
Sequence Tagging Model

标注模型的参数设置:

  • LSTM隐藏层状态:512
  • 丢弃层丢弃率:0.5
  • 损失函数:随机梯度下降
  • 学习率:初始为1,如果开发集的混淆度没有改善,学习率下降1/2;如果学习率降至1e-5以下,停止训练
  • 批量大小:32
  • 最大轮数:100
  • 早停:如果混淆度连续三轮没有改善,停止训练

4.2 Supervised Experiments

在三个标记任务上评估,使用随机删除作基线,其中训练数据中5%的单词和相应标签被随机删除。

具体方法如下表

方法描述
gold只用源数据
gen本文方法,使用语言模型生成合成数据,并对源数据进行过采样
rd通过随机删除生成合成数据,并以gen方法相同的比例对源数据进行过采样
rd*与rd相近,但是源数据和合成数据等比例采样
4.2.1 Named Entity Recognition

数据集:使用四种语言对CoNLL2002/2003 NER数据进行评估,同时对泰语、越南语的NER数据进行了评估。

实验设置:为了在所有数据上评估本文方法,对所有语言采样1k、2k、4k、6k和8k语句,以验证方法在低资源设置下的鲁棒性。对于语言模型生成的每1000个句子,测量前一批中出现的新标记的百分比,如果比例超过99%,停止数据生成,然后进行数据处理并添加到源数据中用于标记训练。对于rd和gen方法,通过在训练集中重复4次打乱次序来对源数据进行过采样。

结果和分析

对所有语言都显示出一致的性能改进。特别是对于较小的采样集,我们的方法显示出更显著的性能改进。

标签前置 VS 后置:在进行句子线性化时有两种策略:在相应单词前或单词后插入标记。在实验中测试,发现在单词前插入标记的方式在NER任务中表现优于在单词后插入标记。一个可能的原因是,修饰词在名词前充当修饰的模式在语言模型中更常见,这种方式与修饰名词的方式一致,故表现更优。

4.2.2 Part of Speech Tagging

4.2.3 Target Based Sentiment Analysis

4.3 Semi-supervised Experiments

主要在测试方法对知识库和未标注数据的使用能力,此处不再赘述

5 A Closer Look at Synthetic Data

通过观察这种方法生成的合成数据的特点,总结其提高序列标记性能的原因:

多样性:源数据中,“Sandrine”总是与“Testud”成对出现,但在生成数据中,可以看到生成了新的名称,如“Sandrine Nixon”、“Sandrin Okuda”和“Sandrinne Neuumann”。同时句子中的位置被更换为不同的地点,这使得模型可以学习实体的上下文关系,而非简单地把“Sandrine Testud”记为人名,将“France”记为地点。

请添加图片描述

有效利用未标记数据:在源数据中并未出现“Alabama”一词。这个词来源于未标记数据,而语言模型发现该词出现位置与其他位置词较为相似,故生成合成数据时,语言模型通过上下文信息对该词进行了使用,甚至使用该词创建了不存在于任何训练数据中的新实体“Bank of Alabama”。

Conclusion

本文证明了语言模型可以用于为序列标记任务生成高质量的合成数据。生成的数据因为不在源数据上修改,引入了更多的多样性,减少过拟合。该方法在各种标记任务上特别是在低资源条件下表现出了很好的性能改进。

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

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

相关文章

金三银四面试必备,“全新”突击真题宝典,阿里腾讯字节都稳了

前言招聘旺季就到了,不知道大家是否准备好了,面对金三银四的招聘旺季,如果没有精心准备那笔者认为那是对自己不负责任;就我们Java程序员来说,多数的公司总体上面试都是以自我介绍项目介绍项目细节/难点提问基础知识点考…

长短记忆神经网络(LSTM,Long Short-Term Memory)

长短记忆神经网络定义 长短记忆神经网络(Long-short term memory, LSTM)是一种特殊的RNN结构。该神经网络可以有效保留历史信息,实现对文本的长期依赖信息进行学习。 关键问题:控制长期状态信息 解决方法:门控开关 门的…

在windows安装python3.11同时进行一个数据的练习

安装包百度网盘如下: 链接:https://pan.baidu.com/s/1l9H1GWP64LOxLaXXLie2uA?pwd6666 提取码:6666 1.我们选择自定义安装 2.当我们点了自定义安装后就直接next 3.修改路径,之后点击安装(install) 4.安装完成,进行…

南卡Neo骨传导运动耳机发布,重塑骨传导耳机舒适听感新体验!

近日,在骨传导耳机领域中最专业的南卡发布了今年全新系列——NEO,如果说南卡Runner Pro4的音质是偏向于节奏性,那么这款南卡NEO是更加偏向于沉稳性节奏,能够轻松征服轻运动场景,此系列在舒适度以及音质上,更…

3.3 利用群晖:群辉与PC电脑直连,实现万兆/2.5G速度文件互传(解决 直连后 网络/外网/网页 访问变慢,直连后群辉无网络 cloud sync无网络)

为黑群晖和电脑装备了万兆X540 T2网卡,为实现万兆速度的文件互传,决定将黑群晖直连PC,其需要注意的点有以下三点:修改PC和群辉的IPv4:为实现固定IP访问群辉,这里建议修改PC和群辉均为固定IP。1)…

JS#3 事件监听

一. 简介事件:HTML事件是发生在HTML元素上的"事情"例如:按钮被点击鼠标移动到元素之上按下键盘按键事件监听: JavaScript 可以在事件被侦测到时执行代码二. 事件绑定事件绑定有两种方式方式一:通过HTML标签中的事件属性进行绑定方式二:通过DOM元素属性绑定代码<!D…

2.4 群辉驱动:多网口,系统网络只能识别两个网口 解决教程

所需工具下载&#xff1a;链接&#xff1a;https://pan.baidu.com/s/1CMLl6waOuW-Ys2gKZx7Jgg?pwdchct提取码&#xff1a;chct安装的黑群晖华硕z490i主板自带一个i225 2.5G&#xff0c;后又插了一个4口8125B四口网卡&#xff0c;发现控制面板->网络->网络界面 只识别了其…

kafka入门到实战一(认识kafka)

kafka入门到实战一&#xff08;认识kafka&#xff09; 本次kafka的学习打算从三方面开始 认识kafka&#xff0c;掌握基础知识搭建kafka&#xff0c;为使用kafka创建条件使用kafka&#xff0c;基本的使用和解决顺序消费等问题 kafka消费流程 kafka大体消费流程&#xff1a;生…

webpack优化环境配置和webpack配置详解

目录 4 webpack优化环境配置 17 优化配置介绍 18 HMR 19 source-map 20 oneOf 21 缓存 22 tree shaking 23 code split (代码分割) 24 lazy loading 25 PWA 26 多进程打包 27 externals 28 dll 5 webpack配置详解 29 entry 30 output 31 module 32 resolve …

axios的二次封装

方式一&#xff1a;将axios单独分装到某个配置文件中import axios from axios; const axiosApi axios.create({baseURL:http://127.0.0.1:3000,timeout:3000 }) export default axiosApi在组件中使用:import $http from axios配置文件的地址 $http.get(/student/test).then(re…

数仓之拉链表分区设计

目录 适用场景 优缺点 案例 适用场景 当数据量较大&#xff0c;表中某些字段有变化&#xff0c;但变化频率不是很高&#xff0c;而业务需求又需要统计这种变化状态&#xff0c;如果每天存储一份全量数据&#xff0c;不仅浪费存储空间&#xff0c;且不便于业务统计&#xff1b…

51单片机入门————LED灯的控制

LED的电路图通过原理图看出&#xff0c;LED灯是接单片机芯片的P20~P27的一共有8个LED&#xff0c;51单片机也是8字节的P20x010xFE————1111 1110P20xFE可以表示把在P2端的第一个灯点亮1 表示高电平0表示低电平当为0的时候形成一个完整回路&#xff0c;电流从高电平流向低电平…

【备战面试】每日10道面试题打卡-Day2

本篇总结的是Java基础知识相关的面试题&#xff0c;后续也会更新其他相关内容 文章目录1、 和 equals 的区别是什么&#xff1f;2、你重写过 hashcode 和 equals 吗&#xff0c;为什么重写equals时必须重写hashCode方法&#xff1f;3、为什么Java中只有值传递&#xff1f;4、BI…

SQL SERVER中SCHEMA的詳解

SQL SERVER中SCHEMA的講解1. Introduction1.1 優勢1.2 內置schema2. Create Schema2.1 Parameters2.2 Sql3.Awakening1. Introduction 1.1 優勢 数据库模式为我们提供了在数据库中创建逻辑对象组的灵活性。如果多个团队使用同一个数据库&#xff0c;我们可以设计各种模式来分組…

基于Ubuntu的Brainframe视觉AI分析平台搭建的详细步骤

目录 引言&#xff1a; 过程&#xff1a; 下载Brainframe安装包&#xff1a; 搭建Brainframe命令接口&#xff1a; 解决下载Docker速度慢的方法&#xff1a; 安装Docker : Unable to find image hello-world:latest locally 问题的解决&#xff1a; Step1&#xff1a;进…

Vue3创建项目(四)axios封装及接口配置

项目结构: 目录 &#x1f349;&#x1f349;&#x1f349;index.ts &#x1f349;&#x1f349;&#x1f349; api.ts 看完需要预计花费10分钟。 请求拦截器与响应拦截器 阅读下面代码需先了解以下内容&#xff1a; 请求拦截器&#xff1a; 请求拦截器的作用是在请求发送前进…

Windows搭建机器学习环境

一、环境介绍Anaconda&#xff1a;Anaconda offers the easiest way to perform Python/R data science and machine learning on a single machine. Start working with thousands of open-source packages and libraries today.Anaconda包括Conda、Python以及一大堆安装好的工…

Qt信号与槽机制——新手友好

目录 一 为什么会有这个机制 二 信号与槽是什么 三 信号 四 槽 五 使用 1 最简单的 2 函数指针 3 用Lambda表达式实现 一 为什么会有这个机制 我们平时的一个网页&#xff0c;如果点击网页上不同的部分会有不同的相应动作。比如点击超链接就会实现网页的跳转&#xff0c…

Code Virtualizer 3.1.4 Crack

Code Virtualizer 是一个强大的 Windows 应用程序代码混淆系统&#xff0c;它可以帮助开发人员保护他们的敏感代码区域免受逆向工程的影响&#xff0c;基于代码虚拟化的非常强大的混淆代码。 Code Virtualizer 会将您的原始代码&#xff08;Intel x86/x64 指令&#xff09;转换…

剑指 Offer day3, day4

剑指 Offer day3, day4 字符串和数组的操作。 剑指 Offer 05. 替换空格 剑指 Offer 05. 替换空格 - 力扣&#xff08;Leetcode&#xff09; 方法二&#xff1a;原地修改 在 C 语言中&#xff0c; string 被设计成「可变」的类型&#xff08;参考资料&#xff09;&#xff…