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 在微服务架构和云计算环境下得到…...

idea大量爆红问题解决
问题描述 在学习和工作中,idea是程序员不可缺少的一个工具,但是突然在有些时候就会出现大量爆红的问题,发现无法跳转,无论是关机重启或者是替换root都无法解决 就是如上所展示的问题,但是程序依然可以启动。 问题解决…...

《Qt C++ 与 OpenCV:解锁视频播放程序设计的奥秘》
引言:探索视频播放程序设计之旅 在当今数字化时代,多媒体应用已渗透到我们生活的方方面面,从日常的视频娱乐到专业的视频监控、视频会议系统,视频播放程序作为多媒体应用的核心组成部分,扮演着至关重要的角色。无论是在个人电脑、移动设备还是智能电视等平台上,用户都期望…...
在HarmonyOS ArkTS ArkUI-X 5.0及以上版本中,手势开发全攻略:
在 HarmonyOS 应用开发中,手势交互是连接用户与设备的核心纽带。ArkTS 框架提供了丰富的手势处理能力,既支持点击、长按、拖拽等基础单一手势的精细控制,也能通过多种绑定策略解决父子组件的手势竞争问题。本文将结合官方开发文档,…...

NFT模式:数字资产确权与链游经济系统构建
NFT模式:数字资产确权与链游经济系统构建 ——从技术架构到可持续生态的范式革命 一、确权技术革新:构建可信数字资产基石 1. 区块链底层架构的进化 跨链互操作协议:基于LayerZero协议实现以太坊、Solana等公链资产互通,通过零知…...
【C++从零实现Json-Rpc框架】第六弹 —— 服务端模块划分
一、项目背景回顾 前五弹完成了Json-Rpc协议解析、请求处理、客户端调用等基础模块搭建。 本弹重点聚焦于服务端的模块划分与架构设计,提升代码结构的可维护性与扩展性。 二、服务端模块设计目标 高内聚低耦合:各模块职责清晰,便于独立开发…...
rnn判断string中第一次出现a的下标
# coding:utf8 import torch import torch.nn as nn import numpy as np import random import json""" 基于pytorch的网络编写 实现一个RNN网络完成多分类任务 判断字符 a 第一次出现在字符串中的位置 """class TorchModel(nn.Module):def __in…...
蓝桥杯 冶炼金属
原题目链接 🔧 冶炼金属转换率推测题解 📜 原题描述 小蓝有一个神奇的炉子用于将普通金属 O O O 冶炼成为一种特殊金属 X X X。这个炉子有一个属性叫转换率 V V V,是一个正整数,表示每 V V V 个普通金属 O O O 可以冶炼出 …...
Java毕业设计:WML信息查询与后端信息发布系统开发
JAVAWML信息查询与后端信息发布系统实现 一、系统概述 本系统基于Java和WML(无线标记语言)技术开发,实现了移动设备上的信息查询与后端信息发布功能。系统采用B/S架构,服务器端使用Java Servlet处理请求,数据库采用MySQL存储信息࿰…...
Caliper 配置文件解析:fisco-bcos.json
config.yaml 文件 config.yaml 是 Caliper 的主配置文件,通常包含以下内容: test:name: fisco-bcos-test # 测试名称description: Performance test of FISCO-BCOS # 测试描述workers:type: local # 工作进程类型number: 5 # 工作进程数量monitor:type: - docker- pro…...

DeepSeek源码深度解析 × 华为仓颉语言编程精粹——从MoE架构到全场景开发生态
前言 在人工智能技术飞速发展的今天,深度学习与大模型技术已成为推动行业变革的核心驱动力,而高效、灵活的开发工具与编程语言则为技术创新提供了重要支撑。本书以两大前沿技术领域为核心,系统性地呈现了两部深度技术著作的精华:…...