NNLM、RNNLM、LSTM-RNNLM、Bi-lstm、GPT-1…你都掌握了吗?一文总结语音识别必备经典模型(1)

本文涉及的产品
交互式建模 PAI-DSW,5000CU*H 3个月
简介: NNLM、RNNLM、LSTM-RNNLM、Bi-lstm、GPT-1…你都掌握了吗?一文总结语音识别必备经典模型(一)

本专栏由机器之心SOTA!模型资源站出品,每周日于机器之心公众号持续更新。 本专栏将逐一盘点自然语言处理、计算机视觉等领域下的常见任务,并对在这些任务上取得过 SOTA 的经典模型逐一详解。前往 SOTA!模型资源站(sota.jiqizhixin.com)即可获取本文中包含的模型实现代码、预训练模型及 API 等资源。

本文将分 3 期进行连载,共介绍 17 语音识别任务上曾取得 SOTA 的经典模型。


  • 第 1 期:NNLM、RNNLM、LSTM-RNNLM、Bi-lstm、Bi-RNN+Attention、GPT-1
  • 第 2 期:Bert、Transformer-XL、EeSen、FSMN、CLDNN、highway LSTM
  • 第 3 期:Attention-lvcsr、residual LSTM、CTC/Attention、Transfomer-Transducer、Conformer

您正在阅读的是其中的第 1 期。前往 SOTA!模型资源站(sota.jiqizhixin.com)即可获取本文中包含的模型实现代码、预训练模型及 API 等资源。


本期收录模型速览

模型 SOTA!模型资源站收录情况 模型来源论文
NNLM https://sota.jiqizhixin.com/project/nnlm


A Neural Probabilistic Language Model
RNNLM

https://sota.jiqizhixin.com/project/rnnlm-2

Recurrent neural network based language model
LSTM-RNNLM

https://sota.jiqizhixin.com/project/lstm-rnnlm


Lstm neural networks for language modeling
Bi-lstm

https://sota.jiqizhixin.com/project/bi-lstm-7

收录实现数量:3

支持框架:TensorFlow、PyTorch

Hybrid speech recognition with deep bidirectional lstm
Bi-RNN+Attention https://sota.jiqizhixin.com/project/bi-rnn-attention-2


Attention is all you need
GPT-1

https://sota.jiqizhixin.com/project/gpt-1

收录实现数量:2

支持框架:TensorFlow、PyTorch

Improving language understanding by generative pre- training

语音识别是指将语音信号转换为文字的过程。具体来说,输入一段语音信号,找到一个文字序列(由词或字组成),使得它与语音信号的匹配程度最高。这个匹配程度,一般是用概率表示的。语音识别系统一般由如下几个部分组成:信号处理、解码器、文本输出。信号处理模块根据人耳的听觉感知特点,抽取语音中最重要的特征,将语音信号转换为特征矢量序列。现行语音识别系统中常用的声学特征有线性预测编码(Linear Predictive Coding,LPC)、梅尔频率倒谱系数(Mel-frequency Cepstrum Coefficients,MFCC)、梅尔标度滤波器组(Mel-scale Filter Bank,FBank)等。解码器(Decoder)根据声学模型(Acoustic Model,AM)和语言模型(Language Model,LM),将输入的特征矢量序列转化为字符序列。解码器对给定的特征向量序列和若干假设词序列计算声学模型得分和语言模型得分,将总体输出分数最高的词序列作为识别结果。其中,声学模型是对声学、语音学、环境的变量,以及说话人性别、口音的差异等的知识表示,主要实现预测通过词 W 的发音生成特征 X 的概率。声学模型的训练数据是标注的声音特征(标注是对应的文本内容);语言模型则是对一组字序列构成的知识表示,主要实现预测某词或词序列的概率。语言模型的训练数据是一些合乎语法的句子(纯文本)。

从语言模型角度分析,近些年随着深度学习的发展,神经网络语言模型 (neural network language model,NLM) 由于能将词向量映射到低维连续空间,因此逐渐成为主流方法,具备较好的泛化性能。最早的神经语言模型是基于前馈神经网络 (feedforward neural network, FNN) 的,初步实现了对长文本序列在低维连续空间的建模,但这种方法能够处理的文本长度受限于网络的输入长度,而后循环神经网络 (recurrent neural network, RNN) 为代表的语言模型利用循环结构可以在理论上对无限长的文本建模,性能得到极大提升。基于长短期记忆循环神经网络 (long short-term memory recurrent neural network, LSTM-RNN) 的语言模型则解决了 RNN 在长历史序列建模时梯度消失的问题,在各种任务上都取得不错的效果。近年来,基于 Transformer 的语言模型在自注意力机制作用下对长文本具有更强的建模能力,在一系列自然语言和语音的任务上均取得了最优性能。从语言模型的发展中可以看出,研究核心在于如何提高模型对于长历史序列信息的建模能力,这也是神经语言模型在语音识别应用中需要考虑的核心问题。

从声学模型角度分析,传统的语音识别系统的声学模型普遍采用的是基于GMM-HMM的声学模型,其中,GMM用于对语音声学特征的分布进行建模,HMM则用于对语音信号的时序性进行建模。2006年深度学习兴起以后,深度神经网络(Deep Neural Networks,DNN)被应用于语音声学模型。2009年,Hinton及其学生将前馈全连接深度神经网络应用于语音识别声学建模,在TIMIT数据库上基于DNN-HMM的声学模型相比于传统的GMM-HMM声学模型可以获得显著的性能提升。DNN相比于GMM的优势在于:1)DNN对语音声学特征的后验概率进行建模不需要对特征的分布进行去分布假设;2)GMM要求对输入的特征进行去相关处理,而DNN可以采用各种形式的输入特征;3)GMM只能采用单帧语音作为输入,而DNN则可以通过拼接相邻帧的方式利用上下文的有效信息。2011年,Deng Li等提出基于CD-DNN-HMM的声学模型,在大词汇量连续语音识别任务上取得成功,相比于传统的GMM-HMM系统可以获得超过20%的相对性能提升。基于DNN-HMM的语音声学模型开始取代GMM-HMM成为主流的声学模型。此后大量的研究人员投入到基于深度神经网络的语音声学建模研究中,语音识别取得了突破性的进展。


本文分别总结了神经语音识别中神经语言模型和神经声学模型的经典TOP模型。


一、神经语言模型


1、 NNLM

本文第一次提出使用神经网络来解决语言模型的问题,虽然在当时并没有得到太多的重视,却为后来深度学习在解决语言模型问题甚至很多别的nlp问题时奠定了坚实的基础。本文最大的贡献在于用多层感知器(MLP)构造了语言模型,如下图1:

图1. 神经结构:f(i,w_t-1,...,w_t-n+1) = g(i,C(w_t-1),...,C(w_t-n+1)),其中,g是神经网络,C(i)是第i个单词特征向量

NNLM模型一共三层,第一层是映射层,将n个单词映射为对应word嵌入的拼接,这一层就是MLP的输入层。第二层是隐藏层,激活函数用tanh。第三层是输出层,因为是语言模型,需要根据前n个单词预测下一个单词,所以是一个多分类器,用softmax进行分类。整个模型最大的计算量集中在最后一层上,因为一般来说词汇表都很大,计算每个单词的条件概率的操作是整个模型的计算瓶颈。

具体介绍,神经网络使用softmax输出层计算以下函数,该函数可确保总和为1的正概率:

其中,y_i是每个输出单词i的未归一化对数概率:


在element-wise应用双曲正切tanh的情况下,W任选为零(无直接连接),并且x是单词特征层激活向量,是来自矩阵C的输入单词特征的级联:


设h为隐藏单元的数量,m为与每个词相关的特征数量。当不需要从单词特征到输出的直接连接时,将矩阵W设置为0。模型的自由参数是输出偏置b(有|V|元素),隐藏层偏置d(有h元素),隐藏到输出的权重U(一个|V|×h矩阵),单词特征到输出的权重W(一个|V|×(n-1)m矩阵),隐藏层权重H(一个h×(n-1)m矩阵)以及单词特征C(一个|V|×m矩阵)。


自由参数的数量是|V|(1+nm+h)+h(1+(n-1)m),主导参数数量的关键因素是|V|(nm + h)。理论上,如果权重W和H存在权重衰减,而C不存在,那么W和H可以向零收敛,而C会爆炸。神经网络上的随机梯度上升包括在呈现训练语料库的第t个单词之后执行以下迭代更新:


注意,在每个样本之后不需要更新或访问绝大多数参数:单词特征C(J)的所有单词j中没有出现在输入窗口中。

NNLM的效果在现在看来并不算什么,但对于后面的相关研究具有非常重要的意义。文中的Future Work提到了用RNN来代替MLP作为模型可能会取得更好的效果,这一想法在后面Tomas Mikolov的博士论文中得到了验证,也就是后来的RNNLM。


本文是Sutskever I.等人于2014年发表在NeurIPS的一篇论文,是自然语言处理中最基础的Seq2Seq模型,目前引用量已经超过12000次。最常见的Seq2Seq模型是解码器-编码器(Encoder-Decoder)模型,由于时序数据的序列性质,通常情况下,我们使用RNN(Recurrent Neural Network)在Encoder中得到输入序列的特征向量,再将此特征向量输入Decoder中的另一个RNN模型,逐一生成目标序列的每一个点。本文使用多层长短期记忆网络(LSTM)将输入序列映射到一个固定维度的向量,然后使用另一个深度LSTM从向量中解码目标序列。通过EncoderRNN和DecoderRNN,我们可以得到预测的序列,将预测的序列与基准真值的序列对比计算误差,更新参数来不断的训练模型。

图1. 模型读取一个输入句子 "ABC "并生成 "WXYZ "作为输出句子。该模型在输出句末标记后停止预测。请注意,LSTM是反向读取输入句子的,因为这样做在数据中引入了许多短期的依赖关系,使优化问题更加容易

RNN是前馈神经网络对序列的自然概括。给定一个输入序列(x_1, ... , x_t),一个标准的RNN通过迭代以下公式计算出一个输出序列(y_1, ... , y_T):


只要提前知道输入和输出之间的排列,RNN就可以很容易地将序列映射到序列。在本文发表的阶段,还不清楚如何将RNN应用于输入和输出序列具有不同长度的复杂和非单调关系的问题。一般序列学习的最简单策略是用一个RNN将输入序列映射到一个固定大小的向量,然后用另一个RNN将该向量映射到目标序列。虽然这在原则上是可行的,因为RNN被提供了所有的相关信息,但由于由此产生的长期依赖性,将很难训练RNN。然而,众所周知,长短期记忆(LSTM)可以学习具有长距离时间依赖性的问题,所以LSTM在这种情况下可能会成功。

LSTM的目标是估计条件概率p(y1, . . , yT′ |x1, . . , xT),其中(x1, . . , xT)是一个输入序列,y1, . . . , yT′是对应的输出序列,其长度T′可能与T不同。LSTM计算这个条件概率的方法是:首先获得由LSTM的最后一个隐藏状态给出的输入序列(x1, ..., xT)的固定维度表示,然后用标准的LSTM计算y1, ..., yT′的概率,该公式的初始隐藏状态被设置为x1, ..., xT的表示v:


在这个方程中,每个p(yt|v, y_1, ..., y_t-1)分布都是用词汇表中的所有单词的softmax来表示。此外,要求每个句子以一个特殊的句末符号"<EOS>"结束,这使得模型能够在所有可能的长度的序列上定义一个分布。

项目 SOTA!平台项目详情页
NNLM 前往 SOTA!模型平台获取实现资源:https://sota.jiqizhixin.com/project/nnlm
相关实践学习
一键创建和部署高分电影推荐语音技能
本场景使用天猫精灵技能应用平台提供的技能模板,在2-5分钟内,创建一个好玩的高分电影推荐技能,使用模板后无须代码开发,系统自动配置意图、实体等,新手0基础也可体验创建技能的乐趣。
达摩院智能语音交互 - 声纹识别技术
声纹识别是基于每个发音人的发音器官构造不同,识别当前发音人的身份。按照任务具体分为两种: 声纹辨认:从说话人集合中判别出测试语音所属的说话人,为多选一的问题 声纹确认:判断测试语音是否由目标说话人所说,是二选一的问题(是或者不是) 按照应用具体分为两种: 文本相关:要求使用者重复指定的话语,通常包含与训练信息相同的文本(精度较高,适合当前应用模式) 文本无关:对使用者发音内容和语言没有要求,受信道环境影响比较大,精度不高 本课程主要介绍声纹识别的原型技术、系统架构及应用案例等。 讲师介绍: 郑斯奇,达摩院算法专家,毕业于美国哈佛大学,研究方向包括声纹识别、性别、年龄、语种识别等。致力于推动端侧声纹与个性化技术的研究和大规模应用。
相关文章
|
15小时前
|
机器学习/深度学习 自然语言处理 数据处理
大模型开发:描述长短期记忆网络(LSTM)和它们在序列数据上的应用。
LSTM,一种RNN变体,设计用于解决RNN处理长期依赖的难题。其核心在于门控机制(输入、遗忘、输出门)和长期记忆单元(细胞状态),能有效捕捉序列数据的长期依赖,广泛应用于语言模型、机器翻译等领域。然而,LSTM也存在计算复杂度高、解释性差和数据依赖性强等问题,需要通过优化和增强策略来改进。
|
15小时前
|
人工智能 自然语言处理 物联网
Predibase发布25个LoRA,超越GPT-4的Mistral模型
【2月更文挑战第24天】Predibase发布25个LoRA,超越GPT-4的Mistral模型
36 2
Predibase发布25个LoRA,超越GPT-4的Mistral模型
|
15小时前
|
人工智能 搜索推荐 机器人
微软 Copilot 推出多个定制 GPT 模型,包括健身教练、度假计划师等
【2月更文挑战第9天】微软 Copilot 推出多个定制 GPT 模型,包括健身教练、度假计划师等
46 2
微软 Copilot 推出多个定制 GPT 模型,包括健身教练、度假计划师等
|
15小时前
|
人工智能
苹果推出理解、转化模型ReALM,性能超GPT-4
【5月更文挑战第13天】苹果发布ReALM模型,将参考解析转化为语言建模,超越GPT-4。ReALM通过将非文本实体转为文本处理,解决了AI在处理特定问题时的局限。实验显示,ReALM在多种参考解析任务上优于GPT-3.5和GPT-4,尤其在屏幕实体参考解析上提升超5%。但模型可能因信息丢失和高计算需求带来挑战。[链接](https://arxiv.org/abs/2403.20329)
8 3
|
15小时前
|
机器学习/深度学习 存储 数据可视化
【视频】LSTM模型原理及其进行股票收盘价的时间序列预测讲解|附数据代码2
【视频】LSTM模型原理及其进行股票收盘价的时间序列预测讲解|附数据代码
|
15小时前
|
机器学习/深度学习 数据可视化 TensorFlow
【视频】LSTM模型原理及其进行股票收盘价的时间序列预测讲解|附数据代码1
【视频】LSTM模型原理及其进行股票收盘价的时间序列预测讲解|附数据代码
|
15小时前
|
机器学习/深度学习 自然语言处理 算法
Python遗传算法GA对长短期记忆LSTM深度学习模型超参数调优分析司机数据|附数据代码
Python遗传算法GA对长短期记忆LSTM深度学习模型超参数调优分析司机数据|附数据代码
|
15小时前
|
机器学习/深度学习 编解码 算法
R语言用FNN-LSTM假近邻长短期记忆人工神经网络模型进行时间序列深度学习预测4个案例
R语言用FNN-LSTM假近邻长短期记忆人工神经网络模型进行时间序列深度学习预测4个案例
|
15小时前
|
机器学习/深度学习 传感器 人工智能
科技周报 | GPT商店上线即乱;大模型可被故意“教坏”?
科技周报 | GPT商店上线即乱;大模型可被故意“教坏”?
27 1
|
15小时前
|
机器学习/深度学习 Python 数据处理
Python中利用长短期记忆模型LSTM进行时间序列预测分析 - 预测电力负荷数据
Python中利用长短期记忆模型LSTM进行时间序列预测分析 - 预测电力负荷数据
Python中利用长短期记忆模型LSTM进行时间序列预测分析 - 预测电力负荷数据

相关产品

  • 智能语音交互