Interspeech2022 | 一种基于元辅助学习的低资源口语语义理解方法
中国移动研究院首席科学家冯俊兰博士带领人工智能与智慧运营中心语音团队共同撰写的文章《Meta Auxiliary Learning for Low-resource Spoken Language Understanding》被语音国际顶会Interspeech2022接收。
关于Interspeech
Interspeech 是国际最大且最全面关于言语科学与技术的盛会,由国际语言交流协会(International Speech Communication Association)主办,与ICASSP并列为语音领域两大顶级会议。

论文摘要
口语语义理解(SLU)将自动语音识别(ASR)和自然语言理解(NLU)视为一个一体化任务,通常存在数据不足的问题。我们提出一种基于元辅助学习的ASR和NLU联合训练方法,通过仅利用丰富的语音识别标注数据来改善低资源SLU任务的性能。该方法提供了一个灵活的框架来实现低资源SLU训练任务,无需语义标签参与进一步训练。具体而言,我们将NLU模型作为标签生成网络,从文本中预测意图和槽位信息;另一方面,构建多任务网络,基于语音同步训练ASR任务和SLU任务,将标签生成网络的预测值作为语义标签传递给多任务网络中的SLU任务,从而实现在没有语义标签情境下的SLU训练。在公共数据集CATSLU上的实验证明了该算法的有效性,该方法生成了更适合下游任务NLU的ASR假设。
01 背景
口语语义理解(SLU)将ASR和NLU联合训练需要大量包含语义标签的语音数据才能取得理想的效果。一种解决方法是基于迁移学习的方式,基于大规模预训练模型弥补低资源语言语料不足的缺陷,或采用老师-学生模型将资源相对丰富的NLU模型蒸馏给SLU模型。另一种解决方法是采用语音合成的方式构建语音-语义数据对,从而实现对数据进行增广。还有一种方法是引入额外信息作为新的输入或者辅助任务。辅助任务或多任务的方式,仍然需要辅助任务的标签才能进行训练。
我们提出了基于元辅助学习MAXL(Meta AuXiliary Learning)的SLU建模方案,避免了SLU训练过程中语义标签的参与。
02 模型与方法
图一 基于MAXL的SLU建模
如图一所示,我们提出的模型包含两部分:1)多任务网络:同步学习ASR和SLU两个任务;2)标签生成网络(NLU):为SLU任务预测语义标签。多任务网络的输入是语音信号,NLU网络的输入是语音内容的文本标注(语音识别标注文本)。NLU的输出为语义预测结果,通过接口层的处理传递给SLU输出层作为预测目标。在推理阶段,由于接口层使输出结果可导的处理,使SLU无法直接输出可读的结果,因此我们将ASR的预测结果1-best输入给NLU模型得到最终的语义预测。这样建模的ASR结果更适用于下游任务NLU,同时,NLU模型性能也得到提升。
2.1 接口层
标签生成网络的输出是由一系列“意图-槽位键-槽位值”三元组组成的列表,长度不固定且无法预置。但多任务网络的输出长度需要每个批次固定。另一方面,标签生成网络的输出需要支持梯度回传从而实现标签生成网络的更新。因此,在输出端softmax之后不能进行取最大值操作,因为这样会破坏网络求梯度。我们从两个方面考虑了接口层的设计:定长和可导。
如表1所示:
-
List:“[[intent-slot-value]1,[intent-slot-value]2,...]”,NLU网络的最终输出格式,为三元组列表,不定长且不可导。
-
Sequence: “value1 value2 ...”,槽位值序列,可以设计为定长,但是梯度仍无法回传。
-
NER tag: “[1 1 0 1 1 1]”,键值词的位置为1,非键值词为0,长度与序列长度相等,但不支持可导。
-
Softmax:每个槽位值使用softmax输出,可导但定长仍然无法满足。
-
Sum of softmax:sotfmax输出延槽位数量维度进行求和,实现定长且可导。
-
Append intent and slot types: 在每个槽位值前面补充上意图和槽位键分布,同样可导且定长。
表1:两个网络之间接口类型及其属性

2.2 模型训练
模型训练分为两步:在每个epoch内部,首先进行普通多任务学习的训练,ASR标签为人工标注的语音内容,SLU标签为NLU预测的结果。这一步骤使ASR更关注语义相关的部分。损失函数为:

其中,i为批次索引,x为语音输入,y_asr为语音识别文本标签,theta1为多任务网络f的参数,theta2为标签生成网络g的参数。
第二步为NLU网络的更新,通过ASR的损失实现。由于二阶导数的存在,引入Firstorder算法进行近似求解,从而使网络学习速度提升4~6倍。损失函数为:




其中,K为NLU输出维度,N为批大小。
03 实验结果
我们首先对比了所提方法与其他方法,如表2所示,基线系统ASR由6000小时普通话训练得到,NLU模型由CATSLU-MAP文本训练。可以看到,基线系统由于ASR识别结果不理想导致NLU的F1-score也偏低。端到端训练使ASR和NLU性能均得到一定提升。使用CATSLU-MAP数据微调ASR模型可以使CER显著降低,F1值绝对提升4.33%。MAXL是标准元辅助学习的算法,First-order是采用加速训练的结果,可以看到二者均获得了较好的NLU预测结果。最后为了进一步验证NLU的性能,我们对比了直接用真实语义标签进行多任务学习的结果,可以看到First-order仍然取得了相当的结果,这一方面验证了NLU作为标签预测器是可信的,另一方面也验证了用ASR损失训练NLU是有正向收益的。
表2:本文方法与其他方法对比

由表2我们看到即使ASR性能提升有限,NLU性能也有可能获得较大提升,这说明ASR输出更适于下游NLU任务了。为了进一步验证该结论,我们采用训练集得到的ASR输出重新训练了NLU,由表3可以看到该NLU性能已经和用人工标注的ASR文本训练得到NLU性能相似(表2,Fine-tuned)。
表3:训练集ASR性能CER和NLU性能

表4我们对比了不同接口的性能,可以看到几种接口性能接近,但是可导的接口(inter3,inter4)仍然可以获得较好的性能,而且NLU预测网络性能的提升,也说明该网络即使没有语义标签,也从多任务网络的学习中得到了收益。
表4:不同接口性能对比。
(Inter1, Inter2, Inter3, Inter4分别表示Sequence、NER tag、Sum of softmax、Append intent and slot types)

表5显示出预训练对模型的影响,可以看到ASR和NLU有预训练模型会取得更优的效果,尤其NLU模块预训练起极其关键的作用。
表5:未使用预训练模型结果

为了验证该方法在无标数据的作用,我们只使用了一半带语义标签的文本数据进行NLU模型预训练,剩余一半进行无语义标签的MAXL训练。由表6可以看出,在没有语义标签参与训练的情况下,模型语义预测性能仍能得到提升。
表6:只使用一半语义标签进行NLU模型预训练另一半进行无语义标签的MAXL训练结果

04 总结
本文提出了一种基于MAXL的SLU建模方案用于降低模型对带语义标签的语音数据的需求。ASR和NLU的联合训练提高了ASR的质量,并成功实现从有监督任务中为无监督任务提取知识,实现没有语义标签参与训练时NLU性能提升。该结果与我们的假设相一致,即:ASR和NLU之间的作用是双向的,ASR输出会影响NLU性能,同样NLU预测结果也应该反馈给ASR去引导它的预测。下一步我们将尝试将该方法用于更多数据集以及更复杂的网络结构。
供稿 | 九天语音团队
相关文章:
Interspeech2022 | 一种基于元辅助学习的低资源口语语义理解方法
中国移动研究院首席科学家冯俊兰博士带领人工智能与智慧运营中心语音团队共同撰写的文章《Meta Auxiliary Learning for Low-resource Spoken Language Understanding》被语音国际顶会Interspeech2022接收。 关于Interspeech Interspeech 是国际最大且最全面关于言语科学与技…...
File类的用法和InputStream,OutputStream的用法
这里写自定义目录标题一、File类1.构造方法2.普通方法二、InputStream1.方法2.FileInputStream3.Scanner类的应用三、OutputStream1.方法2.FileOutputStream3.PrintWriter类的应用一、File类 1.构造方法 签名说明File(File parent, Stringchild)根据父目录 孩子文件路径&…...
Java多线程——Thread类的基本用法
一.线程的创建继承Thread类//继承Thread类class MyThread extends Thread{Overridepublic void run() {System.out.println("线程运行的代码");} } public class Demo1 {public static void main(String[] args) {MyThread t new MyThread();t.start();//启动线程&a…...
【C++】类和对象练习——日期类的实现
文章目录前言1. 日期的合法性判断2. 日期天数(/)2.1 和的重载2.2 对于两者复用的讨论3. 前置和后置重载4. 日期-天数(-/-)5. 前置- -和后置- -的重载6. 日期-日期7. 流插入<<重载8. 流提取>>重载9. 总结10. 源码展示前…...
[LeetCode周赛复盘] 第 333 场周赛20230219
[LeetCode周赛复盘] 第 333 场周赛20230219 一、本周周赛总结二、 [Easy] 6362. 合并两个二维数组 - 求和法1. 题目描述2. 思路分析3. 代码实现三、[Medium] 6365. 将整数减少到零需要的最少操作数1. 题目描述2. 思路分析3. 代码实现四、[Medium] 6364. 无平方子集计数1. 题目描…...
数字化时代,如何做好用户体验与应用性能管理
引言 随着数字化时代的到来,各个行业的应用系统从传统私有化部署逐渐转向公有云、行业云、微服务,这种变迁给运维部门和应用部门均带来了较大的挑战。基于当前企业 IT 运维均为多部门负责,且使用多种运维工具,因此,当…...
Python爬虫(7)selenium3种弹窗定位后点击操作,解决点击登录被隐藏iframe无法点击的登陆问题
之前的文章有关于更多操作方式详细解答,本篇基于前面的知识点进行操作,如果不了解可以先看之前的文章 Python爬虫(1)一次性搞定Selenium(新版)8种find_element元素定位方式 Python爬虫(2)-Selenium控制浏览…...
如何对项目健康度进行测量?评估项目健康状况
项目驱动变革,大部分公司逐步由运营驱动转变为项目驱动,带来更多重新和商业价值。对组织而言,从商业角度看,项目旨在推动组织从一个状态转到另一个状态,从而达成特定目标。项目的健康情况如何关乎项目和变革的成本&…...
美国原装二手keysight E4980A(安捷伦)2MHZ LCR表
Agilent E4980A、Keysight E4980A、LCR 表,20 Hz - 2 MHz E4980A 是 Agilent 的 2 MHz LCR 表。LCR表是一种电子测试设备,用于测量电子元件的电感(L)、电容(C)和电阻(R)。LCR 表可…...
《clean coder》:关于摆烂,争论和心态
“凡是不能在五分钟之内解决的争论,都不能依靠辩论解决” ---- Kent Beck 作为一个码农,我并不是一个喜欢争论的角色。很长一段时间会陷入一种摆烂的,被动的状态。“既然其他人想要这么做,就这么办吧”。这可能是非专业的行为中最…...
jenkins下载与简单使用
1.jenkins下载 因为我仍然使用的是jdk1.8进行开发,所以我下载的是jenkins2.332.1版本(jenkins2.346.1版本在2022年末不再支持java8,如果项目使用的是jdk11可以继续使用该jenkins版本),更多版本下载请点击jenkins下载 …...
3|物联网控制|计算机控制-刘川来胡乃平版|第3章:计算机总线技术 补充串行总线部分|课堂笔记|ppt
2022年 10月 10日 3.3 外部总线 3.3.2 RS-232-C总线 机械特性...
Blazor入门100天 : 身份验证和授权 (3) - DB改Sqlite
目录 建立默认带身份验证 Blazor 程序角色/组件/特性/过程逻辑DB 改 Sqlite将自定义字段添加到用户表脚手架拉取IDS文件,本地化资源freesql 生成实体类,freesql 管理ids数据表初始化 Roles,freesql 外键 > 导航属性完善 freesql 和 bb 特性 本节源码 https://github.com/…...
阅读源码和查看官方文档,是解决问题最高效的办法。
作为一个工作8年的老程序员告诉你:阅读源码和查看官方文档,是解决问题最高效的办法。不信你来看,这个困扰了读者半天的问题我查了源码和文档后瞬间解决。 前言 上周五有位读者私信我一个问题,说困扰了他半天,研究了一…...
云原生流量管理系统中 Service , Ingress 和 Endpoint 的关系
摘要 Kubernetes(简称 K8s)是一个用于容器编排和管理的开源平台,其中流量管理是 K8s 的重要功能之一。K8s 提供了多种流量管理方式,以便对不同场景下的流量进行控制和管理。以下是 K8s 中常用的流量管理系统: Service:Service 是 K8s 中最基本的流量管理方式,用于提供…...
给你安利几款好用的谷歌浏览器插件
给你安利几款好用的谷歌浏览器插件前言一 Octotree 插件二 GitCodeTree 插件三 SourceGraph 插件四 GitZip 插件五 Enhanced GitHub 插件六 插件下载安装6.1 谷歌应用商店下载6.2 离线安装6.2.1 下载插件6.2.2 安装插件七 移除、启用、停用插件小结前言 GitHub是全球最大的代码…...
JDK定时器Timer原理
前言 前些时间想到利用redis实现延时队列,但是底层的定时器不止如何实现好些,故此研究了一下jdk的Timer。 Timer是一个用于执行定时任务的类,可以单次执行或按指定时间间隔循环执行(直到主动cancel或线程被杀掉)。Ti…...
vue3中使用swiper完整版教程
介绍 在 vue3 中使用 swiper, 实现轮播图的效果;如果组件样式等模块引入不当,很有可能导致,页面无效果;或者想要的箭头或者切换效果异常问题。具体使用方式如下所示: 使用方式 使用命令 npm install swiper 安装 sw…...
某个div的滚动条样式
.item-body,.chart2{/*滚动条整体样式*/&::-webkit-scrollbar {/*高宽分别对应横竖滚动条的尺寸*/width: 10px;height: 1px;}/*滚动条里面小方块*/&::-webkit-scrollbar-thumb {border-radius: 10px;-webkit-box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2);background:…...
Spring Boot框架基础介绍
Spring Boot 是一款基于 Spring 框架的开源应用程序开发工具,它旨在简化 Spring 应用程序的配置和开发过程。Spring Boot 提供了一种简单的方式来创建可独立运行的、生产级别的应用程序,并在需要时进行部署。Spring Boot 在微服务架构和云计算环境下得到…...
web vue 项目 Docker化部署
Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段: 构建阶段(Build Stage):…...
Prompt Tuning、P-Tuning、Prefix Tuning的区别
一、Prompt Tuning、P-Tuning、Prefix Tuning的区别 1. Prompt Tuning(提示调优) 核心思想:固定预训练模型参数,仅学习额外的连续提示向量(通常是嵌入层的一部分)。实现方式:在输入文本前添加可训练的连续向量(软提示),模型只更新这些提示参数。优势:参数量少(仅提…...
Java 8 Stream API 入门到实践详解
一、告别 for 循环! 传统痛点: Java 8 之前,集合操作离不开冗长的 for 循环和匿名类。例如,过滤列表中的偶数: List<Integer> list Arrays.asList(1, 2, 3, 4, 5); List<Integer> evens new ArrayList…...
《Playwright:微软的自动化测试工具详解》
Playwright 简介:声明内容来自网络,将内容拼接整理出来的文档 Playwright 是微软开发的自动化测试工具,支持 Chrome、Firefox、Safari 等主流浏览器,提供多语言 API(Python、JavaScript、Java、.NET)。它的特点包括&a…...
【JVM】- 内存结构
引言 JVM:Java Virtual Machine 定义:Java虚拟机,Java二进制字节码的运行环境好处: 一次编写,到处运行自动内存管理,垃圾回收的功能数组下标越界检查(会抛异常,不会覆盖到其他代码…...
服务器硬防的应用场景都有哪些?
服务器硬防是指一种通过硬件设备层面的安全措施来防御服务器系统受到网络攻击的方式,避免服务器受到各种恶意攻击和网络威胁,那么,服务器硬防通常都会应用在哪些场景当中呢? 硬防服务器中一般会配备入侵检测系统和预防系统&#x…...
macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用
文章目录 问题现象问题原因解决办法 问题现象 macOS启动台(Launchpad)多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显,都是Google家的办公全家桶。这些应用并不是通过独立安装的…...
对WWDC 2025 Keynote 内容的预测
借助我们以往对苹果公司发展路径的深入研究经验,以及大语言模型的分析能力,我们系统梳理了多年来苹果 WWDC 主题演讲的规律。在 WWDC 2025 即将揭幕之际,我们让 ChatGPT 对今年的 Keynote 内容进行了一个初步预测,聊作存档。等到明…...
基础测试工具使用经验
背景 vtune,perf, nsight system等基础测试工具,都是用过的,但是没有记录,都逐渐忘了。所以写这篇博客总结记录一下,只要以后发现新的用法,就记得来编辑补充一下 perf 比较基础的用法: 先改这…...
【android bluetooth 框架分析 04】【bt-framework 层详解 1】【BluetoothProperties介绍】
1. BluetoothProperties介绍 libsysprop/srcs/android/sysprop/BluetoothProperties.sysprop BluetoothProperties.sysprop 是 Android AOSP 中的一种 系统属性定义文件(System Property Definition File),用于声明和管理 Bluetooth 模块相…...
