首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >融合自训练和自监督方法,让文本丝般顺滑!|EMNLP 2020

融合自训练和自监督方法,让文本丝般顺滑!|EMNLP 2020

作者头像
AI科技评论
发布于 2020-10-27 03:03:26
发布于 2020-10-27 03:03:26
1.4K0
举报
文章被收录于专栏:AI科技评论AI科技评论

原创作者:王少磊

文本顺滑(Disfluency Detection)的目的是删除自动语音识别(ASR)结果中的不顺滑的词,从而得到更自然和通顺的句子。

目前大部分在文本顺滑(Disfluency Detection)任务上的工作都严重依赖人工标注数据。

本文介绍一篇被EMNLP 2020录取的工作,在本工作中,作者首次尝试用无监督的方法来解决文本顺滑问题。

作者通过结合自训练(self-training)和自监督(self-supervised)两种方法,在不采用任何有标注训练数据的情况下,取得了跟目前最好的有监督方法接近的效果。

论文名称:

《Combining Self-Training and Self-Supervised Learningfor Unsupervised Disfluency Detection》

论文作者:王少磊,王重元,车万翔,刘挺

论文链接:http://ir.hit.edu.cn/~slwang/emnlp2020.pdf

以下是论文一作王少磊对本文的亲自解读。

1 任务简介及动机

自动语音识别(ASR)得到的文本中,往往含有大量的不流畅现象。这些不流畅现象会对后面的自然语言理解系统(如句法分析,机器翻译等)造成严重的干扰,因为这些系统往往是在比较流畅的文本上训练的。

不流畅现象主要分为两部分,一部分是ASR系统本身识别错误造成的,另一部分是speaker话中自带的。

NLP领域主要关注的是speaker话中自带的不流畅现象,ASR识别错误则属于语音识别研究的范畴。

顺滑(disfluency detection)任务的目的就是要识别出speaker话中自带的不流畅现象。

图1 顺滑示例

Speaker话中自带的不流畅现象主要分为两大类,分别为Filler类型和Edit类型。

以英文为例,Filler类型主要包括“uh”、“oh”等语气词,以及“so”、“well”等话语标记语。

Filler类型的一个特点是其对应的不流畅部分属于一个封闭的短语集合,因此,利用简单的规则或者机器学习模型就可以很好地识别Filler类型。Edit类型主要包括重复,以及被后面的短语所纠正的部分。

图1是一个英文顺滑任务的示例。在例句中,“um”,“I mean”属于Filler类型,“to Boston”则属于Edit类型,其被后面的“to Denver”所纠正。

Edit类型是顺滑任务中最难处理的类型,因为Edit类型的短语长度不固定,出现的位置比较灵活,甚至会出现嵌套的结构。因此,顺滑相关的研究主要集中在Edit类型的处理上(后面的内容默认处理的是Edit类型)。

对于顺滑任务,目前主要用到的语料是English Switchboard数据,在中文上还没有公开的语料。

目前大部分在文本顺滑任务上的工作都严重依赖人工标注数据。为了减少对有标注数据的依赖,我们发表在AAAI2020上的工作“Multi-Task Self-Supervised Learning for Disfluency Detection”尝试用自监督学习的方法来处理文本顺滑任务。

自监督学习方法能有效减少对有标注数据的依赖,但是其性能还需要依赖于有标注数据。

在本工作中,我们尝试融合自训练和自监督两种学习方法,探索无监督的文本顺滑方法。实验结果表明,我们的方法在不使用有标注数据进行训练的情况下,取得了非常不错的性能。

2 方法介绍

图2 方法整体框架

如图2所示,模型输入主要包含用于自监督学习的新闻领域数据和用于自训练的ASR输出结果。

我们首先在新闻数据上,利用简单的随机添加或者删除词组的方式构造了大规模的伪数据,并基于这些伪数据训练了一个句法判别器,用于判断给定的句子是否符合语法。

这个句法判别器主要用于自训练阶段筛选带有高质量伪标签的数据。之后,同样在新闻数据上,我们利用随机添加的方式构造了另外一组大规模伪数据,并利用这些伪数据来初始化自训练阶段的teacher模型。

训练好初始化的teacher模型后,我们用teacher模型对ASR输出结果打标签,判断输出结果中的每个词是否是冗余(非顺滑)的。

我们假定,一旦句子中的冗余成分被teacher模型正确识别后,那么删除这些冗余词之后剩下的句子是语法完整的。

基于这个假设,我们用之前训练好的句法判别器来帮助筛选句子,一旦句法判别器认为删除冗余成分(模型自动识别结果)后的句子是符合语法的,那么我们认为模型所预测的标签是正确的,并将该句抽取出来用作下一轮的训练。这个过程将被不断地循环,直到在开发集上的性能停止增长。

2.1 构造伪数据

我们构造了两类伪数据,是在正常句子(取自新闻语料)基础上随机增加一些词,是在正常句子基础上随机删除一些词。

对于类型,我们主要采用两种方式添加扰动:

  • Repetition(k):从第k个词的位置开始随机选取1到6个词进行重复操作。
  • Inserting(k):在第k个位置之前随机插入1到6个词(从新闻语料中选取的m-gram)
  • 对于一个正常的句子,我们一般随机选取1到3个位置,然后随机选取一种方式添加扰动。需要注意的是,添加扰动后的句子也有一定几率是正常的句子(比如在名词之前随机添加了一些形容词),这样可能会带来额外的噪声。 我们在构造数据的时候并没有针对这种情况进行特殊处理,因为在数据量足够大的时候,这些噪声带来的影响应该会非常小。

对于类型,我们一般随机选取1到3个位置,然后针对每个位置,随机删除掉1到6个词。

需要注意的是,在我们的实验过程当中,一个句子一般只被用来构造一种类型的非顺滑句子,以防止模型学习到一些统计性规律(比如中间长度的句子一般是顺滑的)。

2.2 模型细节

在输入层和中间表示层,我们采用与BERT(Devlin et al.,2019)类似的transformer结构。

我们发现在参数初始化的时候,ELECTRA模型相对于BERT等模型,在同样的参数规模情况下,性能表现更好,所以我们的实验都是基于ELECTRA Base来初始化的。

3 实验结果及分析

3.1 实验设置

我们主要在English Switchboard(SWBD)数据集上测试我们方法的性能。

为了验证我们模型的稳定性,我们也在另外三个测试集CallHome、SCOTUS、FCIC上做了测试。

我们用了500万数据来训练语法判别器,200万数据来初始化teacher模型。

3.2 实验结果

表1列出了我们方法在SWBD开发集上的性能。我们的方法相对于初始化的teacher模型,F1提高了17个点左右。这个结果也表明,在不利用有标注数据的情况下,单纯地利用自监督方法还不能取得很好的性能。

表2列出了跟之前方法对比的结果,从中可以看出,我们方法取得了非常不错的效果,尤其是其超过大规模预训练兴起之前的所有有监督方法。

表1 SWBD开发集上的结果,第一部分(第1到5行)表示有监督方法

表2 与之前最好方法的对比

3.3 跨领域实验

我们同时在另外的三个测试集上做了测试。

这一步我们是直接拿以上在SWBD无标注数据上训练的模型,对另外的三个测试集进行测试。

从表3可以看出,我们的模型取得了非常不错的效果,甚至已经超过了有监督的基于ELECTRA-Base进行finetune的模型。

表3 跨领域数据的结果(“Pattern-match”表示目前最好的跨领域的方法)

3.4 消融实验

这一块我们主要验证引入句法判别器的重要性。

从表4可以看出,句法判别器的引入带了了性能上的非常大的提升。

在本工作中,我们尝试融合自训练和自监督两种学习方法,探索无监督的文本顺滑方法。实验结果表明,我们的方法取得了非常不错的性能。

表4 消融实验 (“Teacher”表示初始化的teacher模型,“No-select”表示不用语法判别器进行筛选)

参考文献

[Devlin et al.2019] Jacob Devlin, Ming-Wei Chang, Kenton Lee, and Kristina Toutanova. 2019. Bert: Pre-training of deep bidirectional transformers for language understanding. Proceedings of NAACL.

[Lou and Johnson2017] Paria Jamshid Lou and Mark Johnson. 2017. Disfluency detection using a noisy channel model and a deep neural language model. Proceedings of ACL.

[Wang et al.2017] Shaolei Wang, Wanxiang Che, Yue Zhang, Meishan Zhang, and Ting Liu. 2017. Transition-based disfluency detection using lstms. In Proceedings of EMNLP, pages 2785–2794.

[Wu et al.2015] Shuangzhi Wu, Dongdong Zhang, Ming Zhou, and Tiejun Zhao. 2015. Efficient disfluency detection with transition-based parsing. In Proceedings of the 53rd Annual Meeting of the Association for Computa- tional Linguistics and the 7th International Joint Conference on Natural Language Processing (Volume 1: Long Papers), pages 495–503. Association for Computational Linguistics.

[Zayats et al.2016] Vicky Zayats, Mari Ostendorf, and Hannaneh Hajishirzi. 2016. Disfluency detection using a bidirectional lstm. arXiv preprint arXiv:1604.03209.

[Wang et al.2020] Shaolei Wang, Wanxiang Che, Qi Liu, Pengda Qin, Ting Liu, and William Yang Wang. 2019. Multi-task self-supervised learning for disfluency detection. arXiv preprint arXiv:1908.05378.

[Bach and Huang, 2019] Nguyen Bach and Fei Huang. 2019. Noisy bilstm-based models for disfluency detection. Proc. Interspeech 2019, pages 4230–4234.

[Lou and Johnson, 2020]] Paria Jamshid Lou and Mark Johnson. 2020. Improving disfluency detection by self-training a self-attentive model. arXiv, pages arXiv–2004.


NeurIPS 2020论文接收列表已出,欢迎大家投稿让更多的人了解你们的工作~

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-10-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AI科技评论 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
经典笔试题-数据库及SQL篇
106、有3 个表(15 分钟):【基础】 Student 学生表(学号,姓名,性别,年龄,组织部门) Course 课程表(编号,课程名称) Sc 选课表(学号,课程编号,成绩) 表结构如下:
cwl_java
2020/02/18
2K0
Java面试题总结之数据库与SQL语句
2、有三张表,学生表S,课程C,学生课程表SC,学生可以选修多门课程,一门课程可以被多个学生选修,通过SC 表关联。
AlbertYang
2020/09/08
4890
数据库面试题(开发者必看)
数据库常见面试题(开发者篇) 这里写图片描述 什么是存储过程?有哪些优缺点? 什么是存储过程?有哪些优缺点? 存储过程就像我们编程语言中的函数一样,封装了我们的代码(PLSQL、T-SQL)。 存储过
Java3y
2018/03/15
2K0
数据库面试题(开发者必看)
数据库MySQL学习——内含34道MySQL练习题及答案
DML(数据操作语言):insert delete update,对表中数据进行增删改
全栈程序员站长
2022/09/30
3.4K0
数据库复习题 考试题库(应用题)
其中,供应商表S由供应商号(SNO)、供应商姓名(SNAME)、供应商所在城市(CITY)组成,记录各个供应商的情况;零件表P由零件号(PNO)、零件名称(PNAME)、零件颜色(COLOR)、零件重量(WEIGHT)组成,记录各种零件的情况;工程项目表J由项目号(JNO)、项目名(JNAME)、项目所在城市(CITY)组成,记录各个工程项目的情况;供应情况表SPJ由供应商号(SNO)、零件号(PNO)、项目号(JNO)、供应数量(QTY)组成,记录各供应商供应各种零件给各工程项目的数量。分别用关系代数和SQL语言完成下列查询:
Meng小羽
2019/12/23
6.9K1
mysql 模拟试题一
  3.SQL语言的数据操纵语句包括 SELECT,INSERT,UPDATE和 DELETE, 最重要的,也是使用最频繁的语句是__A__。 
week
2018/08/27
1.2K0
数据库select语句详解
1)检索单个列 select ename from emp; 2) 检索多个列 select ename,job,sal from emp; 3) 检索所有列 select * from emp; 4) 去除重复 select distinct deptno from emp; 5) 别名 select ename as 姓名 from emp; 6) 伪列,即不存在的列,构建虚拟的列 select empno, 1*2 as count,‘cmj’ as name,deptno from emp; 7)虚表,及不存在的表,可以计算 select 1+1 from dual;
全栈程序员站长
2022/09/06
2.6K0
数据库select语句详解
平平无奇SQL面试题:经典50例
组函数: 去重 distinct() 统计总数sum() 计算个数count() 平均数avg() 最大值max() 最小数min()
大数据真好玩
2021/07/07
2.8K0
MySql数据库基本select查询语句练习题,初学者易懂。
select a.sid FROM (select * from sc where cid=”001″) as a, (select * from sc where cid = “002”)as b where a.sid = b.sid and a.score>b.score
全栈程序员站长
2022/08/24
1.2K0
MySQL从入门到入魔(02)
###比较运算符 > < >= <= = !=和<> 16. 查询员工工资小于等于3000的员工姓名和工资
海拥
2021/08/23
7180
数据库(MySQL)相关例题27道及答案解析
一、单选题 (共计 18题) 1、(单选题)SQL语句分为DDL、DML、DQL、TCL、DCL,以下属于DML的是_______,是否_______事务。 A.drop 不支持 B.insert 支持 C.alter 支持 D.select 不支持 【正确答案】B 【答案解析】
海拥
2021/08/23
5.7K0
Oracle 查询练习
1.已知Oracle的Scott用户中提供了三个测试数据库表,名称分别为dept,emp和salgrade。使用SQL语言完成以下操作
Arebirth
2019/09/24
1.4K0
day44_Oracle学习笔记_03
先去Oracle官网去下载最新版本的sqldeveloper,下载地址:https://www.oracle.com/technetwork/developer-tools/sql-developer/downloads/index.html 得到2个zip压缩包,如下图所示:
黑泽君
2018/10/11
1.9K0
day44_Oracle学习笔记_03
Oracle数据库学习笔记 (四 —— select 从入门到放弃 【上】)
基本语法 order by xxxx asc(desc) asc 升序, desc 降序
Gorit
2021/12/09
1.2K0
数据库表中常用的查询实验
select ename,sal from emp where deptno=10;
Twcat_tree
2022/11/30
1.1K0
Oracle数据库之第四篇
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
海仔
2019/10/22
1K0
常用sql查询语句
5.9 合并查询(union 并集, intersect 交集, union all 并集+交集, minus差集)
FGGIT
2024/10/15
4280
【数据库】03——初级开发需要掌握哪些SQL语句
在本篇文章,我们学习最基本的DDL和DML,这是SQL-92标准以来就一直存在的部分。工作中,后端开发工程师们最常用的就是这部分内容。
半旧518
2022/10/26
3.8K0
【数据库】03——初级开发需要掌握哪些SQL语句
Oracle11g全新讲解之SQL讲解
  SQL是结构化查询语言(Structured Query Language),专门用于数据存取、数据更新及数据库管理等操作。
用户4919348
2023/03/23
1.3K0
Oracle11g全新讲解之SQL讲解
干货 | Oracle数据库操作命令大全,满满的案例供你理解,收藏!
Oracle是美国ORACLE公司研发的一款关系型数据库,主要特点有:速度快、安全性强、可跨平台,主要版本有:Oracle9i、Oracle10g、Oracle11g、Oracle12c
网络技术联盟站
2020/10/14
4K0
推荐阅读
相关推荐
经典笔试题-数据库及SQL篇
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档