前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >重磅 | 小米首次公开发表论文:基于注意力机制的端对端语音识别(附论文翻译)

重磅 | 小米首次公开发表论文:基于注意力机制的端对端语音识别(附论文翻译)

作者头像
AI科技大本营
发布2018-04-27 15:18:52
1.5K0
发布2018-04-27 15:18:52
举报

文/CSDN周翔

今年 3 月,雷军在两会的媒体沟通会上表示,“去年年初,小米设立了探索实验室,不久将有重磅级的人工智能产品发布。”

昨日(7 月 26 日)下午,传闻已久小米人工智能产品——小米 AI 音箱终于现身。在发布会上,王川特意提到了小米脑王刚博士带领的 NLP 团队,也就是说小米已经用上了自己的 NLP 技术。但是语音识别方面,小米 AI 音箱仍然采用了第三方的技术。

不过,AI科技大本营发现,就在几天前,小米在 arXiv 上首次提交了一篇端对端的语音识别论文。这篇论文实际上是西工大计算机学院和小米共同完成,四位作者分别是单长浩、张俊博、王育军、谢磊。其中单长浩是西工大在小米的实习生,谢磊是西工大教授,而王育军、张俊博则是小米的工程师。

张俊博在自己的专栏中提到,小米这篇论文采用的是近年来比较火热的 Attention-based sequence-to-sequence 方法:

基于注意力机制的端对端方法在英文数据集上已经有了很好的结果。但中文汉字要远比英文字母复杂,在中文数据集上,一直没有看到较好的结果。William Chan 等在 Interspeech 2016上报告的该方法在中文数据集上的字错误率是 59.3%。 现在,小米的智能语音团队,经过无数实验,在小米电视测试数据上成功获得了 2.81% 的字错误率。这是基于注意力机制的端对端语音识别方法首次在中文上达到可用水平。

相比 BAT 的高调,小米在 AI 领域的声音要小得多。目前外界知道基本只有小米大脑王刚博士带领的 NLP 团队,以及张波博士带领的计算机视觉团队。那么这篇论文到底是哪个团队完成的?第一次公开发表 AI 相关的论文又意味着什么?

AI科技大本营联系到了王育军和张俊博两位论文作者,发现他们同属于小米半年前刚刚成立小米云平台语音组。显然,除了 NLP 之外,小米未来很可能会用上自己语音识别技术。

以下是AI科技大本营对王育军和张俊博的采访:

问:你们属于小米的哪个团队?

答:我们属于小米云平台语音组。

问:这个团队是什么时候成立的?主要负责什么?

答:团队是 2017 年 1 月成立。主要负责探索最前沿的语音技术,不断触碰甚至打破语音技术的天花板;同时协助合作伙伴的语音团队,提升他们在小米产品中的性能。

问:和小米大脑、小米深度学习组有什么关系?

答:语音组、深度学习组都是小米大脑的组件。

问:为什么现在要自己做自己做语音识别?

答:语音是小米提升用户价值最自然的手段之一。小米是一个非常开放的硬件和软件平台。小米从来不排斥合作伙伴把各自最优秀的语音技术集成到这个平台上来提升总体用户体验,这个模式的优势从小米发布的产品中都已经得到了验证。小米自己的语音技术也和其他合作伙伴一样,被集成到电视或者音箱的平台中。小米自己来做语音,一个重要的出发点是自己更了解产品的需求,会花更多的时间去分析产品的数据。我们开发小米识别引擎的同时,也一直在分享一些技术模块,训练和测试数据给合作伙伴的语音团队,大家可以在这个平台下一起进步。最终受益的是小米用户。

问:今天刚刚推出的智能音箱为什么不用小米自己的语音识别的技术,而只用了自己的 NLP 技术?

答:应该说小米语音参与了智能音箱项目,输出了技术模块,在云端也提供了识别服务。小米 NLU 的成熟度较高,在与合作伙伴的开发工作中占主导。我们的团队成立的时间还不长,从技术成熟度上讲,我们还有很长的路要走。即使未来我们的技术达到了一个相当成熟的水平,我们仍然会积极地配合合作伙伴的开发工作,因为小米语音的职责,是以提升用户体验为最高目标。希望在未来的小米产品中,小米语音能为合作伙伴提供越来越多的技术模块。

问:为什么要这个时候公开发表这篇论文?未来的论文也都会公开吗?

答:因为我们刚好完成了论文提交,也希望让参与这个工作的同事有些成就感,特别是西工大谢磊老师推荐的实习生。未来我们会持续发布最新的工作成果,包括但不限于学术论文。

问:为什么会和西北工业大学合作?是怎样的合作形式?

答:西北工业大学在语音技术方面很超前,向语音学术界和工业界输出了大量人才。目前我们一起从事一些语音识别的项目,西工大的实验室会派出学生来小米交流实习。谢磊老师的学生单长浩在小米实习期间为该工作做出了主要贡献。非常感谢谢磊老师和单长浩同学。

问:你们使用的 Attention-based sequence-to-sequence 的端对端的语音识别技术相对于传统的技术有什么区别和联系?你们采用的方法的先进性体现在哪?

答:传统语音识别技术的流程非常繁琐,而端对端方法只需要一个神经网络就可以直接预测出汉字序列,框架十分简洁。端对端方法的另一个优势在于它不做 frame-independence 假设,这使得它可以更好地学习到帧之间隐含的知识。当然 attention 方法存在很多不足,比如难以训练收敛、训练速度慢、无法给出音素切分点等。目前学术圈对 attention 方法是否会在未来成为主流还存在着争议,但它即使不够成熟,也代表着一种趋势,有潜力孕育出更好的方法。

问:相对与市场上的主流水平,你们在语音识别上的准确率上有什么优势?

答:小米实际线上采用的技术方案和市场上的主流方案并没有本质区别,应该说大家上线的都是很先进很实用的方案。从识别率上看,小米并不谋求通用领域极致的识别率,但谋求某些垂域极致的识别率,比如小米电视。语音识别率从来都是训练和测试数据匹配的问题。我们现在已经在小米电视数据集上取得了非常高的识别率,这除了端对端技术抑制了监督错误传播,数据的匹配功不可没。小米不认同识别率横向对比,因为识别任务在不同测试集上没有可比性,测试集上超高的识别率也不代表每一个用户的真实体验。同一个领域任务上的优势,就是我们的训练数据质量高、投入的精力多。

问:你们的 CER 和 SER 两个结果分别是怎样得出来的?

答:CER 和 SER 分别是字错误率和句错误率,这些指标是和人工标注的结果对比统计出来的。在学术界,一般用“错误率”而不是“正确率”作为评估语音识别性能的指标。

问:这种技术在智能音箱、手机等终端设备上的优势体现在哪?

答:目前这项技术还停留在算法验证阶段。优势就是这项技术本身的优点决定的:即它摒弃了传统离散序列模型的一些不准确假设,抑制了模型训练中间过程的监督信息的错误传播。这个技术还有一个重大优势就是降低了语音识别的开发门槛,减少了开发人员对专业知识和专业语言资源的依赖。只要有海量文字和对应语音,即使没有语音识别研发经验的人也都可以开发出语音识别系统。

问:未来研究方向的规划?

答:我们的团队始终保持对技术的敏感性,凡是我们认为是前沿的、有前景的论文,我们都会去跟踪,也已经在一些实验上获得了非常理想的结果。在产品化方面,我们在追求高识别率的同时,也要优化计算速度。同时,我们要探求我们的技术如何才能更好地帮助提高用户体验,而不是只盯着识别率提升了零点几个百分点。我们也希望通过分享我们的工作,让业界越来越重视类似技术,纵向和横向研究殊途同归:深度学习研究者的和语音技术的研究者应该联手推动类似技术实用化。

以下是完整的论文翻译:

翻译 | 周翔、尚岩奇、姜沂、周科

摘要

近来端对端语音识别越来越受到关注,这种技术可以不进行预定义校准(predefined alignments),直接将语音转换为文本。在本文中,我们探究了如何使用基于注意力机制普通话语音识别编码器—解码器模型,并在业界得出了首个令人满意的结果。通过跳帧和正则化权重,我们减小了源序列的长度,从而使模型获得了更好的泛化和收敛能力。

接着,我们研究了不同注意力机制(卷积注意力机制和注意力平滑化(attention smoothing)机制)的影响,以及模型性能与集束搜索(beam search)间的相关性。我们使用MiTV收集的数据集进行测试,在不使用任何词典或语言模型的情况下,我们实现了 3.58% 的字符错误率(CER)以及 7.43% 的语句错误率(SER)。加上三元语言模型(trigram language model)之后,我们的模型可以达到2.81% 的 CER 和 5.77% 的SER。

关键词:自动语音识别、序列到序列(sequence-to-sequence)模型、基于注意力机制的语音识别

1. 引言

目前深度神经网络(DNN)研究已获得了巨大的成功,并被广泛应用于语音识别技术中,而且通常与隐马尔可夫模型(HMM)[1, 2, 3, 4, 5]结合在一起。这些系统基于一个由声学模型、语音模型和语言模型等单独组元构成的复杂混合体。据我们了解,这些组元进行单独的训练,训练目也各不相同。最近,端对端神经网络自动语音识别(ASR)系统的研究开始涌现,如 CTC(Connectionist Temporal Classification) [6, 7, 8]和基于注意力机制的编码器—解码器模型[9, 10, 11, 12, 13, 14, 15, 16, 17]等。

这些方案都得出了相当理想的结果。CTC 的核心原理是允许标签重复和空标签的出现,而且在每一帧都对标签进行预测。另一种方案——基于注意力机制的编码器—解码器模型则是直接学习声音到字符序列的映射。

基于注意力机制的编码器—解码器模型在处理复杂序列到系列任务时得出了令人满意的结果,这些任务包括机器翻译[18, 19, 20]、文本总结[21]、图片说明[22]、句法分析[23]以及语音识别等。现在,在机器翻译任务中应用这种模型可以取得最高的翻译水准[20]。这种模型可以将长度可变的输入序列映射到长度可变的输出序列。在基于注意力机制的编码器—解码器的方案中,首先编码器将输入序列编码为一个隐藏表征(hidden representation),然后解码器对这个表征进行解码并输出目标序列。

这种方法中的注意力机制用于选择或加权输入序列,以生成输出序列。训练可以直接将获得基于期望目标输出的几率最大化。通常,我们会使用字符级别的交叉熵标准来训练这种模型。

在本研究中,我们探讨了基于注意力机制的编码器—解码器模型在普通话语音识别上的应用。鉴于这种模型进行英语语音识别时的表现非常好,我们提出了很多方案来对其进行优化,例如深度卷积神经网络[14]和不同的注意力机制。[13]探究了如何使用基于注意力机制的模型实现普通话语音识别,结果发现这种模型很难与普通话数据进行衔接。

为了解决这个问题,我们使用了 L2 正则化方法和高斯权重噪音,来改善模型的泛化和收敛能力[24, 25]。而且,我们还将嵌入汉字字符作为解码器的输入,试验证明这种方法可以大大优化模型的收敛能力。[10]证明了长语音(long utterances)会对ASR系统造成负面影响。为了解决这个问题,我们使用帧数亚采样(frame sub-sampling)的方法减小了语音的长度,并对训练和收敛进行了加速。同时,我们还研究了卷积注意力机制[10]和一种平滑处理方法。

总的来说,我们完成了以下工作:

  1. 在基于注意力机制的端对端普通话语音识别上首次取得理想结果;
  2. 通过跳帧减小了输入序列长度;
  3. 用多种正则化方法增强了模型的泛化和收敛能力;
  4. 探究了不同注意力机制的影响。

本文其余内容的结构如下:

  • 第 2 节详细介绍基于注意力机制的模型。
  • 第 3 节介绍了基于注意力机制的端对端普通话自动语音识别)ASR)系统。
  • 第 4 节描述了本实验的具体细节。
  • 第 5 节阐述结论并概述我们接下来的工作。

2. 基于注意力机制的模型

2.1 倾听-注意-拼写(Listen, Attend and Spell)

许多具有挑战性的任务都需要处理可变长度的序列。比如,机器翻译和语音识别, 输入和输出时都会遇到需要处理的可变长度序列;再比如,文本总结时也有很多可变长度序列。LAS(Listen, Attend and Spell)[12]是一个基于注意力机制的编码器-解码器网络,通常用于处理可变长度的输入和输出序列。编码器 (倾听模块) 从可变长度的输入语句中提取可变长度序列的表征。然后注意机制 (注意模块) 产生一个固定长度的上下文向量,解码器 (拼写模块)通过使用编码器提取的表征,产生一个可变长度序列的目标翻译结果。

在图 1 中, 编码器是一个基于双向长短期记忆型的递归神经网络RNN (BLSTM),输入 x,它可以从中生成一个输出序列 h = (h1,..., ht)。这里的解码器通常属于长短期记忆网络(LSTM), 它使用 h 和 y<i 来生成输出序列 y = (y1,..., yL)。在这项工作中, 输出 y 是汉字序列, 输入 x = (x1,..., xT) 是从音频的帧率中提取序列的特征向量:

在图2中:注意-拼写模块是一个基于注意力机制的传感器, 每次生成一个字符 yi:

(3) 式中的 si 是传感器状态(transducer state),其中 yi−1 是 previously emitted token,ci-1 是 previous attention context,si-1是 previous transducer state。

(4)式中,通过基于多层感知器 (mlp) 注意力网络,函数 AttentionContext 可以生成 ci。

(5)式中的 CharacterDistribution 函数是用 softmax 函数计算出的。

图1:编码器模型属于从输入的 x 中提取变量 h 的双向长短期记忆型BLSTM。

训练中采用了帧数亚采样的方法。

2.2 注意机制

注意机制通过选择或加权输入帧的方法来生成下一个输出元素。最近所谓的 "神经机器翻译模型" [18] 中也采用了类似的注意机制方法。在这种情况下, 为了生成每个目标词, 网络会计算出一个分数, 将输出 RNN 的隐藏状态与输入序列的每个位置相匹配。对于一个输入序列, 分数均被标准化并加总,处理后的分数可以被解释为每个输入位置的概率,并与当前生成的目标词对齐:

Score 函数是一个多层感知器(MLP)网络, 可以由以下等式描述:

这是在 [18] 中提出的基于内容的注意机制方法。

3. 方法

3.1 卷积注意机制

我们建议, 原模型 [18] 中的卷积注意机制在考虑前一步产生的对齐后[10],应该是位置感知的。这是通过以下等式实现的:

图2:由多层感知器 mlp (注意力机制) 和长短时记忆型LSTM (解码器模型) 组成的注意-拼写模型。对于每个时间步长 t, 语境向量 ct 都是由 mlp 结合隐藏状态变量 st−1 和输入序列 h 计算得出的,然后生成新的隐藏状态变量 st 和标记 yt。

3.2 注意力平滑 (Attention Smoothing)

当输入序列 h 属于长序列时, αi 分布通常在收敛上非常陡峭,因而只集中在 h 的其中几帧上。为了使模型具备多样性, 我们将 softmax 用 σ(logistic sigmoid)代替:

这部分提到的注意平滑可以平滑注意力机制所发现的焦点。

3.3 跳帧(skipping frames)

随着语句逐渐变长,倾听-注意-拼写(LAS)模型的性能会迅速降低。这大概是因为注意-拼写模块很难从大量输入的时间步长(input time steps )中提取相关信息。[11, 12]用金字塔型 BLSTM 解决这个问题,金字塔型 BLSTM 将每个 BLSTM 层数上的时间分辨率减少了 1/2。本文采用框架采样思想 [26,27] 进行快速训练和收敛。在解码过程中, 我们使用所有帧来生成语境 h。

3.4 正则化(Regularization)

在许多任务中, 模型会过度拟合数据,对新数据进行的泛化较差。为了避免这种过度拟合, 我们需要减少权重[24, 25]中的信息。本文中采用的两个主要的方法是: L2 正则化和高斯加权噪声。

L2 正则化的思路是在 cost function 中增加一个额外的项。将高斯加权噪声添加到所有权重中,我们获得了较好的泛化能力, 以及较好的收敛能力。减少参数信息量的意义,在于简化神经网络。

3.5 语言模型 (Language Model)

在每个时步上, 解码器每生成一个字符都依赖于之前生成的字符。然而, 学习一个复杂的语言模型 [11] 是远远不够的, 因此我们建立一个字符级的语言模型, :一个字级语言模型 G 和一个简单地拼写出每个单词字符的词典 L。更具体地说, 我们建立了一个有限状态传感器 (FST) T = min(det(L ◦ G)) 来计算字符序列的对数概率。在解码过程中, 我们将加权 T 添加到编码器输出的损失中:

在解码过程中, 我们会结合基于注意力机制的模型(AM)和语言模式 (LM)以及可调参数 γ,将损失 C 最小化。

3.6 优化 (Optimization)

我们优化模型的参数, 以最大化正确的汉字序列的对数似然值:

传统上, 该模型是使用字符级熵标准进行训练的。基于此, 损失函数定义如下:

其中

是第 k 个字符标签在时间 i 的参考标准(ground truth)。

3.7 解码(Decoding)

在解码过程中,一种简单的从左向右的波束搜索算法表现良好。我们从 start-of-sentence <sos> 标记开始, 保留 n 个最佳候选假设列表。对每一个时步 t,波束中的每一个假设都与可能的字符一起拓宽了, 只有 n 个最有可能的波束被保留。end-of-sequence <eos> 标记发出时, 将停止波束搜索。我们发现波束越宽,好处越少。

表1:光束大小为 30, τ = 2 ,γ = 0.1时,我们得到的基于注意力机制的模型结果。

4. 实验

4.1 数据

在实验中,我们使用的数据集包含了大概 400 万条 MiTV 搜索语音数据(大概3000个小时)。作为测试数据集和交叉验证数据集,我们分别随机挑选了 3000 条搜索语音数据。作为输入特征,我们使用 80 Mel(唛耳,音调单位)滤波器组系数,针对每一位说话者,每 10ms 计算一次 Δa 和 ΔΔa, 以及均值和方差标准化。对于解码模型,我们使用了 6925 个标签:6922个常见的中文字,一个未知标记,两个已知标记。

4.2 训练

我们构建了一个常见的基于注意力的 ASR 模型。模型的编码器函数是一个 3 层的 BLSTM,每个方向有 256 个 LSTM 单元(或者说,总共有 512 个计算单元)。解码器是拥有 256 个 LSTM 单元的单层 LSTM。所有权重矩阵用归一化初始化进行初始化[28],偏置向量初始化为 0。梯度范数的限幅为 1,然后加上高斯加权噪声, L2 权重衰减 1e-5。

我们使用了 ADAM 以及默认参数,但是,当模型收敛过后,我们把学习速率从 1e-3 衰减到1e-4。模型损失结合了 softmax 的输出和交叉熵损失。

4.3 结果

表1表明在中文 ASR 方面,我们的模型表现优异。基于上下文的注意力模型的 CER 为 4.05%,SET 为9.1%。通过使用注意力平滑模型,我们把 CER 提升到了 3.58%,或者说相对于基于上下文的注意力模型性能提升了 11.6%。我们还观察到,基于注意力的模型经常输出非常陡峭的预测。Sigmoid 函数保证了模型的多样化,平滑了注意力机制的关注点。卷积注意力模型的性能也非常好,其 CER 为 3.82%, SER 为 8.17%。

图3

此外,我们也分析了波束搜索宽度对于解码准确度的重要性。图 3 给出了,在测试数据集上解码波束宽度对于 WER/SER 的影响。在波束宽度为 30 的时候,CER 为 4.78%,这之后我们再也没有观察到任何明显的提升。注意力平滑模型也有相似的结果。我们观察到较窄的波束宽度可以获得更好的性能表现(波束设为 30 已经足够了)。

同时,我们还观察了 Softmax 函数温度超参数的影响。我们发现,温度超参数可以用来平滑文字概率分布。我们通过温度超参数 t 来改变文字概率分布:

图4

图4表明,t=2 时性能最佳。当我们不断增加温度超参数时,并没有获得额外的性能提升。

与此同时,我们研究了语言模型的影响。在解码部分,我们使用了拓展三元语言模型,并获得了一个更好的结果。并且,在 r=0.1 时,注意力平滑取得了最好的性能。

5. 总结

基于注意力的编码器-解码器模型的端对端中文语音识别,我们已取得第一个佳绩。对于语音搜索任务,我们的模型 CER 为 3.58%,SER 为 7.43%。为了加速训练和收敛过程,我们采用了亚采样的方法。与此同时,使用 L2 正则化和高斯加权噪音以获得更好的泛化和收敛能力。此外,我们也探索了上下文注意力(content attention)和卷积注意力(convolutional attention)标准化的问题。

研究表明,基于注意力的编码-解码模型在中文 ASR 性能优越。通过结合本文提出的模型和一些现有的技术,比如深度卷积神经网络,性能有望得到进一步的提升。这将是我们将来的研究方向。

6. 致谢

在这里,我们要感谢张羽以及李健的建议和技术支持。此外,还要感谢小米云平台运维团队,和小米深度学习组,他们提供了深度学习平台。

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
语音识别
腾讯云语音识别(Automatic Speech Recognition,ASR)是将语音转化成文字的PaaS产品,为企业提供精准而极具性价比的识别服务。被微信、王者荣耀、腾讯视频等大量业务使用,适用于录音质检、会议实时转写、语音输入法等多个场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档