当前位置: 首页 > news >正文

李宏毅NLP-5-RNNTNeural TransducerMoChA

RNN Transducer(RNN-T)

在这里插入图片描述
循环神经对齐器(RNA,Recurrent Neural Aligner)对CTC解码器的改进,具体内容如下:

  • “RNA”,全称 “Recurrent Neural Aligner”,引用来自 [Sak, et al., INTERSPEECH’17]。
  • CTC 解码器特性:左侧文字说明 “CTC Decoder: take one vector as input, output one token”,即 CTC 解码器每次取一个向量作为输入,独立输出一个 token(如 ( c, \phi, a ) 等),不考虑前后依赖。
  • RNA 的改进:图中黄色模块代表解码器单元,RNA 通过箭头连接这些单元,使输出之间产生依赖关系(“RNA adds dependency”)。例如,后续输出会参考之前的输出信息,而非独立生成。这种机制让模型在生成 token 时能够利用序列的历史信息,避免 CTC 解码器独立决策导致的问题(如重复输出或忽略前文约束)。
    综上,RNA 通过引入循环依赖,增强了解码器对序列上下文的感知,优化了 CTC 框架下的序列生成过程。

在这里插入图片描述
RNN - T(RNN Transducer) 模型的工作机制,主要用于处理序列到序列的任务(如语音识别),具体分析如下:

  • 模型结构与流程

    • 图中绿色的 h t h^t ht 代表编码器输出的隐藏状态,通过 “copy” 传递到蓝色模块,再输入到黄色模块(解码器单元)。
    • 左侧:黄色模块输出 t t t h h h,体现 RNN - T 常规的解码过程,解码器基于当前和前序信息生成输出。
    • 右侧:增加了空白符 ϕ \phi ϕ 的输出。当输出 ϕ \phi ϕ 时,箭头 “Give me the next frame” 表示模型请求获取下一个输入帧,以便继续处理后续的输入数据。这种机制适用于流式场景(如实时语音识别),允许模型在处理过程中动态请求新的输入帧,增强了对变长序列的处理能力。
  • RNN - T 的核心

    • 通过引入空白符 ϕ \phi ϕ,RNN - T 能够灵活处理输入与输出的对齐问题,结合编码器和解码器的信息,在联合模块中计算输出概率。输出 ϕ \phi ϕ时请求新帧,体现了模型在流式输入下的自适应处理能力,平衡了输入序列与输出标签的对齐需求。
      在这里插入图片描述
  • 模型组件与输入

    • 绿色的 h t , h t + 1 , h t + 2 , h t + 3 h^t, h^{t+1}, h^{t+2}, h^{t+3} ht,ht+1,ht+2,ht+3是编码器输出的隐藏状态,通过“copy”传递至蓝色模块,再输入到黄色的解码器单元。
    • 黄色解码器单元处理输入并生成橙色的输出(如 t , h , e , ϕ t, h, e, \phi t,h,e,ϕ等),其中 ϕ \phi ϕ 为空白符。
  • 流式处理机制

    • 每当输出 ϕ \phi ϕ时,箭头指向 “next frame”,表示模型请求获取下一个输入帧。这种机制使 RNN - T 能够逐帧处理流式数据(如实时语音),动态适应输入序列长度。
    • 不同的编码器隐藏状态 h t , h t + 1 h^t, h^{t+1} ht,ht+1 等对应不同的解码器步骤,表明模型在不同时间步利用相应输入信息进行解码。
  • 输出含义

    • 带蓝色框的 t , h , e t, h, e t,h,e 等为实际输出标签,而 ϕ \phi ϕ用于控制输入帧的请求,平衡输入序列与输出标签的对齐。例如,连续输出 ϕ \phi ϕ时,模型持续请求新帧,直到输出非 ϕ \phi ϕ标签(如 e e e)。

综上,图中体现了 RNN - T 通过空白符 ( \phi ) 动态请求输入帧的特性,适用于语音识别等流式序列处理任务,实现输入与输出的灵活对齐。

在这里插入图片描述

这张图展示了 RNN - T(RNN Transducer) 模型在处理流式序列数据时,对空白符 ϕ \phi ϕ 的处理机制:

  • 组件与流程
    • 绿色的 h t , h t + 1 , h t + 2 , h t + 3 h^t, h^{t+1}, h^{t+2}, h^{t+3} ht,ht+1,ht+2,ht+3是编码器输出的隐藏状态,通过黑色线传递至蓝色模块,再输入黄色的解码器单元。
    • 黄色解码器单元生成橙色输出(如 t , h , e , ϕ t, h, e, \phi t,h,e,ϕ 等),红色线表示解码器状态传递路径。
  • 空白符处理
    • 当输出 ϕ \phi ϕ 时,红色线旁标注 “ignore”,表示此时忽略部分状态传递路径。这意味着模型在输出 ϕ \phi ϕ 时,不依赖于常规的状态更新逻辑,而是专注于请求并处理下一个输入帧(如 “next frame”),确保流式输入下的动态适应。
  • 模型意图
    • 通过忽略 ϕ \phi ϕ输出时的部分状态传递,RNN - T 能在流式场景中避免无效状态干扰,维持关键状态的有效更新,从而准确生成非空白输出标签(如 t , h , e t, h, e t,h,e 等),实现输入与输出的灵活对齐。
      在这里插入图片描述
      在这里插入图片描述
      **语言模型在处理时,会忽略语音本身的声学特征等信息,仅关注文本标记(如单词、子词等符号化的单元)进行处理。**例如在语音识别或自然语言处理中,语言模型专注于学习标记之间的统计规律、语法结构和语义关系,而非语音的音频特性,以此来预测或生成合理的文本序列。

Neural Transducer

在这里插入图片描述
Neural Transducer:

  • 绿色的 h t h^t ht h t + w h^{t + w} ht+w 表示多个连续的编码器隐藏状态。
  • 采用 “attention” 机制,允许解码器在生成输出(如 c c c a a a ϕ \phi ϕ )时,综合考虑多个连续的隐藏状态信息,动态聚焦相关输入,增强对输入序列上下文的感知和利用能力,相比传统模型能更灵活有效地处理序列信息。
    在这里插入图片描述
    神经转换器(Neural Transducer)在处理序列数据时基于注意力机制(attention)的工作原理:
    整体架构
  • 黄色模块代表解码器单元,蓝色模块接收来自编码器的隐藏状态 h i h^i hi(绿色方块)。
  • 解码器通过注意力机制,动态聚焦不同的编码器隐藏状态来生成输出(橙色方块,如 c , a , ϕ , t c, a, \phi, t c,a,ϕ,t等)。

窗口机制

  • window 1:包含编码器隐藏状态 h 1 h^1 h1 h 4 h^4 h4。解码器在生成 c , a , ϕ c, a, \phi c,a,ϕ等输出时,利用注意力机制从这个窗口内选取相关隐藏状态信息。
  • window 2:包含 h 5 h^5 h5 h 8 h^8 h8。当处理后续输出(如 t , ϕ t, \phi t,ϕ )时,注意力机制切换到这个新窗口获取信息。

空白符与数据块请求

  • 输出 ϕ \phi ϕ 时,标注 “next chunk”,表示模型请求下一个数据块(新的隐藏状态窗口),以继续处理后续输入序列,体现了模型在流式数据处理中的动态适应性。
    在这里插入图片描述
    展示了不同注意力机制在语音识别任务中,随着窗口大小(window size,W)变化时的音素错误率(Phone Error Rate,PER),具体内容如下:

不同的注意力机制

  • no - attention(蓝色线):代表没有使用注意力机制的模型。
  • DOT - ATTENTION(绿色线):使用点积注意力机制的模型。
  • MLP - ATTENTION(红色线):采用多层感知机注意力机制的模型。
  • LSTM - ATTENTION(青色线):使用长短期记忆网络注意力机制的模型。

数据趋势

  • no - attention:随着窗口大小从 5 增加到 30,音素错误率呈明显上升趋势,说明无注意力机制时,模型在处理更大窗口数据时性能下降。
  • DOT - ATTENTION:错误率先有小幅度下降,在窗口大小约为 15 后开始缓慢上升,整体波动相对较小。
  • MLP - ATTENTION:错误率先下降,在窗口大小约为 15 时达到最低值,之后随着窗口增大缓慢上升。
  • LSTM - ATTENTION:错误率整体较为平稳,有轻微波动,始终保持在较低水平,表现出较好的稳定性。

Monotonic Chunkwise Attention(MoChA)

在这里插入图片描述
MoChA(Monotonic Chunkwise Attention,单调分块注意力)机制,具体如下:

机制原理

  • 输入与判断:黄色方块 z 0 z^0 z0作为输入,进入蓝色判断模块 “here?”。该模块类似注意力机制,判断是否在当前位置放置窗口。
  • 决策分支
    • “yes” 情况:若判断结果为 “yes”,则在当前位置放置窗口,利用该窗口内的编码器隐藏状态(如 h 1 h^1 h1等绿色方块)进行后续处理。
    • “no” 情况:若判断结果为 “no”,则将窗口向右移动,继续对后续隐藏状态进行评估和处理。
  • 动态窗口调整:整个过程中,窗口根据判断结果动态移动,即 “dynamically shift the window”,确保模型能自适应地关注输入序列的不同部分,有效处理序列数据。

在这里插入图片描述进一步阐释了 MoChA(单调分块注意力)机制的工作流程:

整体流程

  • 输入与传递:黄色方块 z 0 z^0 z0作为初始输入,传递到 z 1 z^1 z1,再到 z 2 z^2 z2等后续模块。
  • 窗口与隐藏状态:蓝色区域代表窗口,涵盖编码器隐藏状态 h 3 h^3 h3 h 6 h^6 h6 等。窗口内的隐藏状态信息参与处理过程。

输出规则

  • token 输出:每个窗口对应输出一个 token(如橙色方块 c c c a a a),且不会输出空白符 ϕ \phi ϕ。这与其他一些注意力机制(如 RNN - T 中会输出 ϕ \phi ϕ 来控制输入处理)不同,MoChA 通过这种方式更直接地生成序列输出。

总结

在这里插入图片描述
对几种序列到序列(seq2seq)模型的总结:

LAS(Listen, Attend and Spell)

  • 说明:就是普通的 seq2seq 模型。通过编码器(Encoder)处理输入序列 h 1 − h 4 h^1 - h^4 h1h4 等隐藏状态),解码器利用注意力机制(attention)生成输出 c 0 − c 4 c^0- c^4 c0c4 等)。

CTC(Connectionist Temporal Classification)

  • 说明:解码器是线性分类器的 seq2seq 模型。通过引入空白符 ϕ \phi ϕ 解决输入输出不对齐问题,每个时间步独立输出 token,后处理合并重复 token 并去除 ϕ \phi ϕ

RNA(Recurrent Neural Aligner)

  • 说明:输入一个元素就要输出一个元素的 seq2seq 模型。在 CTC 解码器基础上引入循环依赖,使输出间产生关联,避免独立输出导致的问题。

RNN - T(RNN Transducer)

  • 说明:输入一个元素可输出多个元素的 seq2seq 模型。具备处理流式数据能力,通过空白符 ϕ \phi ϕ 控制输入帧请求,灵活处理输入输出对齐。

Neural Transducer

  • 说明:每次输入一个窗口数据的 RNN - T 模型。利用注意力机制,综合多个连续的编码器隐藏状态生成输出,能更好捕捉上下文信息。

MoChA(Monotonic Chunkwise Attention)

  • 说明:窗口可灵活移动伸缩的 Neural Transducer。每个窗口对应输出一个 token,不输出空白符 ϕ \phi ϕ,动态调整窗口关注输入序列不同部分。

相关文章:

  • LPDDR中读操作不存在Additive Latency(AL)的技术思考
  • Python scikit-learn 机器学习算法实践
  • 2025年KBS SCI1区TOP:增强天鹰算法EBAO,深度解析+性能实测
  • 指针函数和函数指针
  • C++游戏服务器开发之⑦redis的使用
  • MAUI项目iOS应用以进 App Store 分发
  • 免费将AI生成图像放大4倍的方法
  • 图像预处理-绘制图像轮廓与凸包
  • PyTorch `flatten()` 和 `squeeze()` 区别
  • c++ 类的语法1
  • 大学英语四级选词填空练习题解析
  • asp.net core webapi+efcore
  • 实现AWS Step Function安全地请求企业内部API返回数据
  • Windows Server .NET Core 应用程序部署到 IIS 解决首次访问加载慢的问题
  • 谷歌称LLMs.txt类似于关键词元标签:SEO影响与应对策略
  • 【轻松学会使用Redis基础命令】
  • 数据结构实验7.2:二叉树的基本运算
  • 直线轴承的正确安装方式是什么?
  • 服务治理-服务发现和负载均衡
  • Windows使用SonarQube时启动脚本自动关闭
  • 浙江一文旅局长五一亲自带团,去年专门考取了导游证
  • 外交部发言人就澳大利亚联邦大选结果答记者问
  • 三亚再回应游客骑摩托艇出海遇暴雨:俱乐部未配备足额向导人员,停业整改
  • 首日5金!中国队夺得跳水世界杯总决赛混合团体冠军
  • 韩国经济副总理崔相穆宣布辞职
  • 长三角铁路今日预计发送旅客420万人次,有望创单日客发量新高