这篇文章是来自大神Yoshua Benjio的,值得一读,研究对象是只基于语音spoken,而非文字的自然语言理解,链接在这。

0. Abstract

大概说了一下什么是NLU, 然后说他们的end-to-end的学习系统可以很好的分类spoken language。

1. Introduction

SLU(Spoken Language Understanding) 近年来发展好,各大厂商都需要,其主要分为三个任务:Domain classification,Intent Detection(以下简称ID), Slot Filling(以下简称SF)。这个ID和SF都是NLU中常见的任务,Intent就是基于句子级别的检测,Slot是基于token级别的检测。

语音如何转成文字? ASR(Automatic Speech Recognition) 会被用来将语音转成文字。这种流水线式的作业很受欢迎,但缺点是流水线pipeline的每一个环节都基于不同的策略单独优化,比如ASR模块主要用来减少WER(word error rate), 他会给每一个次相等地分配权重,但事实上不是每一个次都是有意义的(像the, a这些就没意思),并且每个词对于ID和SF任务的贡献是不同的。 另一方面NLU是在没有ASR的clean text上训练的,而在evaluation的过程中他要把ASR生成的recognized hypothesis作为输入,ASR中的error,特别是在噪音环境下,会对SLU模型产生不良影响。第二个担忧是人工的ID并不是一字一字进行的,人类会直接一整句话瞬间理解。所以才需要训练一个end-to-end的系统。

然后说end-to-end learning在很多领域都有用到,该论文则通过直接使用log-Mel filterbank feature 从而最大化single turn的intent classification 准确度,本文贡献: 1)他们展示了利用语音特征训练language understanding model的可能性,2)他们展示了evaluate ASR output时模型的表现降级。

另外他们在有噪音污染的data上也做了实验

2. Standard ASR and NLU models

给定一个关于feature的向量序列X=(x1,x2,...xT)X=(x_1, x_2, ...x_T)X=(x1,x2,...xT), 然后ASR讲通过以下的链式法则,会被训练用来找到最有可能的word序列 W∗=(w1,...wn)W^* = (w_1,...w_n)W=(w1,...wn)

所以ASR通常被分为两部分,acoustic model (AM)p(X∣W)p(X|W)p(XW)和language model (LM) p(W)。
CD-HMM-LSTM通常被用来当AM,其中feature 向量序列会被转成依赖内容的且关于HMM状态的likelihood向量, LM通常是一个statistical 的n-gram模型,然后dict字典和维特比解码会被用来寻找最有可能的word序列,


Fig2 是标准ASR架构,其中AM是一个多层LSTM, 他会在每一个frame里预测CD-HMM状态的概率。 由于大部分SLU模型要求同时响应,所以一般情况只用到单向的LSTM,而不是双向(但后文意思是他们用了)。他们会用到基于LSTM的句子分类器,其中输入的词会首先和密度表示(dense representation)相嵌,然后LSTM网络用来解码这个序列。

他们发现2层的双向LSTM在encode编码时表现更好,


Fig 3展示了一个标准NLU模型怎么对domain/intent进行预测的。

NLU相对于ASR而言遭受更小的latency(这里猜测是一些潜在的因素影响),分类只有等到整个序列生成后才会执行。所以用双向的RNN来完成NLU是可能的。

在pipielined 方法中,NLU,ASR都是独立训练的,其中NLU是用人类的语言文本训练,而在evaluation的时候,ASR的输出会被放到NLU模块中。

3. End-to-End Spoken Language Understanding

关于end-to-end的口头语言理解的第一步,两个任务需要被关注,一是speech-to-domain,二是domain-to-intent, 这两个都是序列分类问题,其中输入是 log-Mel filterbank feature 向量。

end-to-end任务和speech recognition很像,区别是end-to-end的输出结构更简单,但是转换更复杂,并且data是有噪音的,而且是non-unimodal的(相似的的句子可能有截然不同的意图intent)。因为这些原因,本文模型收到speech recognition启发,他们用到了encoder-decoder架构,其中作为输入的log-Mel filterbank feature 向量是由多层的bi-GRU(Gated Recurrent Unit)生成的, 一个使用log-Mel filterbank feature 向量的潜在原因是他每10ms产生一次,很适合分类像CD-HMM状态这样的unit,但是在句子级别GRU就不适合了。所以为了减少GRU生成的序列长度,将沿时域对隐藏的激活(hidden activation)进行二次采样(subsample),使得可以在给定的句子中按音节(syllable) 级别提取representation。另一方面,这会大幅度减少训练和预测的时间,使得可以实时地使用GRU进行intent和/或domian 的分类。

给定encoder的输出,MAXpooling 层会被用来将维度压缩到一个固定的维度,随后是一个全连接层前馈层,最后softmax被用来计算intent和domain的后验概率(posterior probability)

4. Experiments

数据集是一些室内VR语音指令,320小时的data,来自1000个玩家,有一部分数据是根据读脚本生成的(照着写好的读),另一部分数据就是随便说的,而不是照着读。每一个句子都有domain label和intent label,最后选取了5个domain和35个独立的intent类别,大概11000个句子,也就是10个小时的数据被用来当evaluation set。

架构方面,encoder是4层bi-GRU,每层带有256个unit ,输出是用strid步长值为2进行了二次采样,从而减少表示的长度,decoder层把encoder的输出和maxpooling放到一起,然后放到1层的前馈网络中(hidden
size 1024),用来生成domain和intent的class,用adam optimizer直到validation set收敛,对每一个前馈层链接都是用batch normalization来加速收敛。

Baseline=RNN (不带sub-sampling的), 输入是one-hot向量,使用了可训练的word embedding。

会用到transcripted text和recognized text来评估。前者可以体现模型的上限,相对应于完美的speech recognition, 而后者(recognized text)是被一个speech recognizer抄录的。

AM(Acoustic model)的核心部分是4层CD-HMM-LSTM, 每层800个memory cell, 用到了交叉熵, 在同一个320h训练集上训练,用来预测6133个clustered 内容相关的状态。

vocab size是80000, LM也是在320h的数据上训练,然后interpolated(内插?) 到另一个在其他训练集上训练的LM上,LM中大概有200万个n-grams。

他们ASR在evaluation set上达到了3.5%的Word error rate。

为了公平,没有任何外部数据被使用。

他们也模拟了真实世界的情况,也就是输入是有噪音的,训练和测试集都被加了recorded
room impulse responses (RIRs) ,具体怎么加的噪音不赘述,加了噪音之后,ASR的word error rate达到了28.6%

5. Results and Discussions

前面提到的5个domians分别是音乐,天气,新闻,运动,(opt-in&opt-out),

Table1 是domain recognition的结果。


加了噪音之后的结果见Table2.

最后一些讨论: end-to-end方法好像没有特别明显更好的表现,但他提供了一个研究方向。 用更少的参数,准确度可以下降10%,未来的一个研究方向是把slot filling加入到预测框架中。

论文导读:TOWARDS END-TO-END SPOKEN LANGUAGE UNDERSTANDING相关推荐

  1. 论文阅读(五):Review of Research on Task-Oriented Spoken Language Understanding

    新年快乐呀~~ 过完年之后又要开始学习啦,因为我还有一个课的作业是要写一个综述,所以最近会经常看与任务型对话相关的综述或文章啦~ 今天分享的是针对任务型对话中SLU任务的一篇综述,提取感谢各位批评指正 ...

  2. 多轮对话(三):Spoken Language Understanding 进展和前沿

    本篇博客基于哈工大发表在IJCAI上的论文:A Survey on Spoken Language Understanding - Recent Advances and New Frontiers. ...

  3. Snips Voice Platform: an embedded Spoken Language Understanding system for private-by-design voice i

    摘要 the Snips Voice Platform 语音平台 Spoken Language Understanding 口语语言理解 on microprocessors typical of ...

  4. Interactive natural language question answering over knowledge graphs论文导读

    论文导读 目录 Abstract introduction 1 抛砖引的玉(砖见于图谱构建综述吧) 2 现有方法介绍 3 问题驱动 4 挑战与贡献 Interaction approach overv ...

  5. X-vector系列论文 | Spoken Language Recognition using X-vectors

    来自文章''Spoken Language Recognition using X-vectors'',以下是摘要部分: 在本文中,将x-vector应用于口语识别任务. 该网络由深度神经网络组成,该 ...

  6. 关于计算机视觉的那些论文 | CCF推荐论文导读

    目 录 1 Quality Evaluation for Image Retargeting With Instance Semantics 2 PFAN++: Bi-Directional Imag ...

  7. BERT论文阅读(一): Pre-training of Deep Bidirectional Transformers for Language Understanding

    BERT三大核心: pre-training bidirectional==>alleviates the unidirectionality constriant of fine-tuning ...

  8. mysql8.0其他机器访问_论文导读|基于机器学习的高速缓存预取

    作者:北京大学杨磊 这篇文章通过机器学习方法预测未来访问来解决LSM-tree存储引擎下的缓存失效问题,目前该论文已经被数据库顶会VLDB2020接收. 问题背景 传统的缓存替换机制,比如LRU.LF ...

  9. 3维线程格 gpu_论文导读 | GPU加速子图同构算法

    GPU加速子图同构算法 作者: 曾立 邹磊 M. Tamer Özsu 胡琳 张藩 论文链接:https://arxiv.org/abs/1906.03420 本次论文讲解的是曾立.邹磊.M. Tam ...

最新文章

  1. pip 20.3 新版本发布!即将抛弃 Python 2.x
  2. 那些学校计算机招不满,那些招不满人的985院校,请留意!
  3. 基于经典的机器学习k-means聚类算法实现对三通道图片的压缩操作
  4. “懒”的妙用——浅析图片懒加载技术
  5. Aspx页面中直接编写javascript脚本
  6. 【学习笔记】4、Jupyter Notebook闪退问题
  7. python replace函数 成功 失败_请教下调用python string模块的replace方法出错的原因
  8. java 导出word换行_Java 导出数据库表信息生成Word文档
  9. Linux配置ssh无密码验证,rsync
  10. 火狐浏览器中文乱码怎么办 Firefox中文乱码解决方法
  11. Redis 备份,容灾及高可用实战
  12. (入门级小项目)JSP编程+web项目发布到Tomcat+mysql数据库
  13. UVA10608 Friends【并查集】
  14. WITH (NOLOCK)提高查询效率
  15. Java SE Development Kit 6U43中文版
  16. android绘制简单饼状图,Android 绘制饼状图
  17. My Thirty-First Page - 翻转二叉树 - By Nicolas
  18. 震惊了!鸿蒙又多了一种开发方式Ets,让更多的人赶上红利!
  19. QT中使用以管理员权限启动一个进程
  20. maven下载Nexus私服jar包,报错Not authorized

热门文章

  1. mysql int 时间戳转换_MySQL时间戳相互转换
  2. OceanBase | 一文了解OBCA认证内容
  3. Linux配置ntp时间同步
  4. 中国伸缩式起重机行业市场供需与战略研究报告
  5. 走向.NET架构设计—第三章—分层设计,初涉架构(后篇)
  6. Good Luck in CET-4 Everybody!(博弈)
  7. 一份完整的app产品运营推广方案,app推广运营的方法(二
  8. c语言项目实战 —— 图书管理系统
  9. 【ArcGIS风暴】ArcGIS标注和注记的区别及用法案例详解
  10. 10个超漂亮的CSS 3D特效