热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

阅读笔记DAGA低资源标记任务数据扩充方法

阅读笔记DAGA低资源标记任务数据扩充方法文章目录阅读笔记DAGA低资源标记任务数据扩充方法前言概述IntroductionBackground1、NER2、Part-of-Spe




阅读笔记 DAGA 低资源标记任务数据扩充方法

文章目录


  • 阅读笔记 DAGA 低资源标记任务数据扩充方法
    • 前言
    • 概述
    • Introduction
    • Background
      • 1、NER
      • 2、Part-of-Speech (POS) Tagging
      • 3、Target Based Sentiment Analysis

    • Proposed Method
      • 1、Labeled Sentence Linearization
      • 2、Language Modeling and Data Generation
      • 3、Post-Processing
      • 4、Conditional Generation





题目:
DAGA: Data Augmentation with a Generation Approach for Low-resource Tagging Tasks

代码:github


前言

​ 本文旨在记录学习所得所感,如有错漏敬请斧正


概述

​ 数据增强技术已被广泛用于提高机器学习性能,因为它们增强了模型的泛化能力。在这项工作中,为了为低资源标记任务生成高质量的合成数据,作者提出了一种新的增强方法,该方法使用在线性化标记语句上训练的语言模型。


Introduction

​ 与图像和语音不同,旋转、裁剪、遮盖等人工转换规则很难推广到语言的原始数据中。因为简单的失真通常不会改变图像所包含的视觉信息的含义,但是删除或替换一个单词可能会使句子的含义完全改变。

​ 在自然语言处理领域已经有了不少已经取得较好效果的数据增强方法,如back translation等,但是对于*sequence tagging(分词、词性标注、命名实体识别等)*任务,其相对一般的下游任务(翻译、分类等)而言对数据增强产生的噪声要更为敏感。目前常见的的sequence tagging数据增强方法有使用弱标记器注释未标记的数据利用对齐的双语语料库诱导注释同义词替换等方法。而这三种方法都有自己的局限性:弱标记数据将不可避免地引入更多噪声;双语语料库需要额外资源,同义词替换依赖于额外知识,这二者皆不适用于低资源语言。

​ 本文研究了使用生成方法的序列标记任务的数据库扩充,主要方法为:


  • 首先将标记语句线性化
  • 在线性化的数据上训练语言模型
  • 使用语言模型生成
    请添加图片描述

​ 这个方法的特点是统一了句子生成和语言模型标记的过程,而且不需要像WordNet这样的额外资源,同时也可以借助条件生成技术对未标记数据或者知识库等资源进行利用。


Background


1、NER

​ NER(Name Entity Recognition)命名实体识别是信息提取的重要任务,主要作用是将文本中的命名实体定位并分类为预定义类型。这个任务有两个主要难点:其一是NER的手动标记训练数据量有限,其二则是由于可以被命名的单词种类有限,从小样本的训练数据中很难概括出单词种类。


2、Part-of-Speech (POS) Tagging

​ Part-of-Speech (POS) Tagging词性标注主要作用为给给定句子中的每个单词分配一个语法类的标记,是促进句法分析和观点分析等下游任务的基础。但目前的词性标记器的问题之一是:在低资源语言和稀有单词上,其准确度会显著下降


3、Target Based Sentiment Analysis

​ Target Based Sentiment Analysis基于目标的情感分析旨在检测句子中的观点目标并预测目标上的情感极性


Proposed Method


1、Labeled Sentence Linearization

​ 首先执行句子线性化,将标记的句子转换为便于语言模型学习单词和标签分布的线性序列。为使语言模型学习到单词和标签的关系,如下图所示,将标签插入到相应单词之前,将标签视为单词的修饰词。

请添加图片描述

对于具有大量O标记的任务(如NER、E2E-TBSA等),将标记从线性化序列中移除,同时在句子线性化之后,在句子的开头结尾添加特殊标记**[BOS][EOS]**以标记句子边界,促进模型训练和数据生成。


2、Language Modeling and Data Generation

​ 在线性化之后,使用语言模型来学习单词和标记的分布。这里采用的是一个单层LSTM递归神经网络语言模型(RNNLM)。如下图所示,对于线性化后的标记序列,首先进行标记嵌入,然后将嵌入后的结果输入dropout层,这里的目的是随机去掉一些标记的特征,防止模型过拟合;然后将dropout层的输出输入LSTM中以产生隐藏状态,然后输入dropout层,最后进行多分类。

请添加图片描述

​ 在训练完成后,可以用其生成用于标记任务的训练数据,首先将**[BOS]输入网络,生成下一个最高概率的标记,该标记又被作为输入生成下一个标记。由于我们在相应的单词前插入了标签**,所以当预测给定的句子*“我预订了飞往”的下一个标记时,“S-LOC”的概率比其他选项要大得多,因为语言模型在前面的学习中学到了大量这样的例子,而在预测更下一个词时,因为所有的*“S-LOC”后都是位置词,因此*“伦敦”、“巴黎”、“东京”*都是可能的选择,它们之间的概率非常相近,由于增加了随机性,所以模型会选择其中的任意一个。


3、Post-Processing

​ 生成的序列为线性格式,所以需要转换成原格式。同时,使用一些简单规则来清理生成的数据:


  • 删除没有标签的句子
  • 删除所有单词都是[unk]的句子
  • 删除标签前缀顺寻不正确的句子
  • 删除单词序列相同但标签不同的句子

4、Conditional Generation

提出条件生成方法,允许模型在低资源场景下使用未标记的数据或者知识库。在每个序列的开头加上**[labelled]、[unlabeled]、[KB]**条件标签之一,以标记它们的起源,其中KB表示通过将知识库与未标记的数据匹配来标记序列,这个方法使得语言模型可以学习这些数据间的共享信息。

而当实际生成数据时,在序列开头加上[labeled]







推荐阅读
  • QT框架中事件循环机制及事件分发类详解
    在QT框架中,QCoreApplication类作为事件循环的核心组件,为应用程序提供了基础的事件处理机制。该类继承自QObject,负责管理和调度各种事件,确保程序能够响应用户操作和其他系统事件。通过事件循环,QCoreApplication实现了高效的事件分发和处理,使得应用程序能够保持流畅的运行状态。此外,QCoreApplication还提供了多种方法和信号槽机制,方便开发者进行事件的定制和扩展。 ... [详细]
  • 本文介绍了如何利用 Delphi 中的 IdTCPServer 和 IdTCPClient 控件实现高效的文件传输。这些控件在默认情况下采用阻塞模式,并且服务器端已经集成了多线程处理,能够支持任意大小的文件传输,无需担心数据包大小的限制。与传统的 ClientSocket 相比,Indy 控件提供了更为简洁和可靠的解决方案,特别适用于开发高性能的网络文件传输应用程序。 ... [详细]
  • 在Django中提交表单时遇到值错误问题如何解决?
    在Django项目中,当用户提交包含多个选择目标的表单时,可能会遇到值错误问题。本文将探讨如何通过优化表单处理逻辑和验证机制来有效解决这一问题,确保表单数据的准确性和完整性。 ... [详细]
  • 清华大学出版社 | 杨丹:基于MATLAB机器视觉的黑色素瘤皮肤癌检测技术及源代码分析(第1689期)
    清华大学出版社 | 杨丹:基于MATLAB机器视觉的黑色素瘤皮肤癌检测技术及源代码分析(第1689期) ... [详细]
  • 通过使用CIFAR-10数据集,本文详细介绍了如何快速掌握Mixup数据增强技术,并展示了该方法在图像分类任务中的显著效果。实验结果表明,Mixup能够有效提高模型的泛化能力和分类精度,为图像识别领域的研究提供了有价值的参考。 ... [详细]
  • 在探讨如何在Android的TextView中实现多彩文字与多样化字体效果时,本文提供了一种不依赖HTML技术的解决方案。通过使用SpannableString和相关的Span类,开发者可以轻松地为文本添加丰富的样式和颜色,从而提升用户体验。文章详细介绍了实现过程中的关键步骤和技术细节,帮助开发者快速掌握这一技巧。 ... [详细]
  • 深入解析Android 4.4中的Fence机制及其应用
    在Android 4.4中,Fence机制是处理缓冲区交换和同步问题的关键技术。该机制广泛应用于生产者-消费者模式中,确保了不同组件之间高效、安全的数据传输。通过深入解析Fence机制的工作原理和应用场景,本文探讨了其在系统性能优化和资源管理中的重要作用。 ... [详细]
  • 在Java项目中,当两个文件进行互相调用时出现了函数错误。具体问题出现在 `MainFrame.java` 文件中,该文件位于 `cn.javass.bookmgr` 包下,并且导入了 `java.awt.BorderLayout` 和 `java.awt.Event` 等相关类。为了确保项目的正常运行,请求提供专业的解决方案,以解决函数调用中的错误。建议从类路径、依赖关系和方法签名等方面入手,进行全面排查和调试。 ... [详细]
  • 本文介绍了如何利用ObjectMapper实现JSON与JavaBean之间的高效转换。ObjectMapper是Jackson库的核心组件,能够便捷地将Java对象序列化为JSON格式,并支持从JSON、XML以及文件等多种数据源反序列化为Java对象。此外,还探讨了在实际应用中如何优化转换性能,以提升系统整体效率。 ... [详细]
  • Java能否直接通过HTTP将字节流绕过HEAP写入SD卡? ... [详细]
  • Python全局解释器锁(GIL)机制详解
    在Python中,线程是操作系统级别的原生线程。为了确保多线程环境下的内存安全,Python虚拟机引入了全局解释器锁(Global Interpreter Lock,简称GIL)。GIL是一种互斥锁,用于保护对解释器状态的访问,防止多个线程同时执行字节码。尽管GIL有助于简化内存管理,但它也限制了多核处理器上多线程程序的并行性能。本文将深入探讨GIL的工作原理及其对Python多线程编程的影响。 ... [详细]
  • 技术日志:使用 Ruby 爬虫抓取拉勾网职位数据并生成词云分析报告
    技术日志:使用 Ruby 爬虫抓取拉勾网职位数据并生成词云分析报告 ... [详细]
  • ButterKnife 是一款用于 Android 开发的注解库,主要用于简化视图和事件绑定。本文详细介绍了 ButterKnife 的基础用法,包括如何通过注解实现字段和方法的绑定,以及在实际项目中的应用示例。此外,文章还提到了截至 2016 年 4 月 29 日,ButterKnife 的最新版本为 8.0.1,为开发者提供了最新的功能和性能优化。 ... [详细]
  • 本文探讨了 Kafka 集群的高效部署与优化策略。首先介绍了 Kafka 的下载与安装步骤,包括从官方网站获取最新版本的压缩包并进行解压。随后详细讨论了集群配置的最佳实践,涵盖节点选择、网络优化和性能调优等方面,旨在提升系统的稳定性和处理能力。此外,还提供了常见的故障排查方法和监控方案,帮助运维人员更好地管理和维护 Kafka 集群。 ... [详细]
  • 本文介绍了如何在iOS平台上使用GLSL着色器将YV12格式的视频帧数据转换为RGB格式,并展示了转换后的图像效果。通过详细的技术实现步骤和代码示例,读者可以轻松掌握这一过程,适用于需要进行视频处理的应用开发。 ... [详细]
author-avatar
戴劳力士_484
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有