一、背景

1. 序列到序列模型

序列到序列模型

1)语音辨识

输入输出关系:输入声音信号(t帧特征向量),输出对应文字(n个字),t与n无固定比例关系。

典型案例:台语语音辨识系统(1500小时乡土剧训练数据)。

技术特点:直接端到端训练,跳过音标转换等中间步骤(”硬train一发”方法)。

2)机器翻译

长度关系:输入句子长度n与输出句子长度n’由模型动态决定。

中英案例:“机器学习”(4字)→”machine learning”(2词),非固定1/2比例(可长可短)。

3)语音翻译(语音辨识复合机器翻译)

特殊价值:适用于无文字语言(全球7000+语言中过半无文字系统)。

实现方式:直接建立语音到目标语言文字的映射,避免传统ASR+MT串联方案。

4)台语语音辨识应用案例

台语语音辨识应用案例

数据来源:YouTube乡土剧(台语音频+中文字幕对齐数据)。

技术挑战:背景⾳乐/噪声干扰(直接忽略处理);字幕与语音不完全对齐(仍可训练);跳过台罗拼音中介步骤(端到端训练);强行训练。

典型错误:倒装句处理困难(”我有帮厂长拜托” vs 正确应为”我拜托厂长”);语义理解偏差(”要生了吗” vs 正确答案”不会腻吗”)。

5)台语语音合成应用案例

台语语音合成应用案例

实现方案:两阶段处理:中文→台罗拼音→声音信号;使用Tacotron模型(基于Seq2seq架构)。

合成示例:“欢迎来到台大语音处理实验室”→台语发音。

6)聊天机器人

训练数据:影视剧对话数据集(输入-响应配对)。

实现方式:将对话建模为[输入语句→响应语句]的序列转换任务。

7)自然语言处理

自然语言处理

统一视角:多数NLP任务可视为QA问题:翻译:问题=”英文句子的德文翻译?”;摘要:问题=”文章的摘要是什么?”;情感分析:问题=”句子是正面/负面?”。

实现方案:将”问题+上下文”拼接作为输入序列,答案作为输出序列。

2. 任务应用

1)多标签分类

核心区别:多分类任务:从多个类别中选择一个最合适的类别(n选1);多标签任务:一个对象可以同时属于多个类别(n选k,k不固定)。

应用示例:文章分类中,一篇文章可能同时属于”科技”和”教育”两个类别;图片标注中,一张图片可能包含”猫”、”狗”、”草地”等多个标签。

传统方法局限:直接取分类器得分前三名会失效,因为不同样本的标签数量可能不同(有的需要2个标签,有的需要3个)。

Seq2Seq解决方案:让模型自主决定输出序列长度(即标签数量);输入文章,输出不定长的类别序列(如:Class1 Class3)。

2)目标检测

目标检测

创新应用:传统目标检测需要预定义anchor boxes;Seq2Seq模型可以直接输出检测结果序列。

实现特点:输入图片特征,输出不定长的(object class, bounding box)序列;模型自主决定需要检测的物体数量。

参考文献:DETR模型论文链接:https://arxiv.org/abs/2005.12872。

二. transformer结构

1.编码器

编码器

组成结构:Encoder:处理输入序列,输出中间表示;Decoder:基于编码结果生成输出序列。

发展历程:2014年首次提出(论文:https://arxiv.org/abs/1409.3215);现以Transformer架构为主流。

1)编码器的block

编码器的block

基本流程:输入向量序列通过多个相同结构的block;每个block包含:Multi-head Self-attention层、Feed Forward层、残差连接和Layer Normalization。

2)位置编码

必须添加positional encoding来保留序列顺序信息;与输入embedding相加后送入encoder。

3)自我注意力的层次

自我注意力的层次

残差连接:将self-attention层的输入直接加到输出上(a + b);缓解深层网络梯度消失问题。

Layer Normalization:对单个样本的所有维度计算均值方差;公式:[图像];与Batch Norm区别:不依赖batch统计量。

完整流程:Self-attention + 残差;Layer Norm;[image-20251026192245694][图像];FFN + 残差;再次Layer Norm。

架构优化:原始设计非最优(论文:https://arxiv.org/abs/2002.04745);调整normalization位置可能提升性能;PowerNorm可作为Layer Norm替代方案(论文:https://arxiv.org/abs/2003.07845)。

2.解码器

解码器

1) 自动回归解码器

1.1 例题:语音识别

语音识别

工作原理:输入声音信号(如”机器学习”的语音),通过encoder转换为vector sequence,decoder逐步生成文字输出。输入输出转换与机器翻译原理相同,只需改变输入输出内容(语音→文字 vs 文本→文本)。特殊起始符需在decoder输入中加入BEGIN符号(BOS),用one-hot vector表示(某一位为1其余为0)。

输出向量特性:输出向量长度等于vocabulary size(如中文常用3000字),经softmax处理后形成概率分布(总和为1),输出的就是中文的每一个字的可能性,比如预测下一个字之后可能输出的方块字的可能性。多语言处理差异:英文可选择字母/单词/subword为单位,中文通常以单个方块字为单位,英文是以词或者字母,或者词组。中文是单个字进行输出。输出的是一个分布。分数最高的中文字就是最终的输出。

decoder的上一个输出回合以前的输入成为新的decoder的输入。自己的输出当作下一个时间的自己的输出。

1.2 解码器的结构

解码器的结构

基础结构:与encoder相似(multi-head attention → add & norm → feed forward → add & norm),重复N次。

关键差异:输出端增加softmax层生成概率分布(输出变成未来的几率);采用masked multi-head attention(屏蔽未来信息)包含中间特殊连接层(图中被遮盖部分)现在不能再去看未来的信息了。

自回归特性:将前步输出作为当前输入(如BEGIN→”机”→”器”→”学”→”习”),输入和输出的结果长度不确定。

错误传播风险:若中间输出错误(如将”器”误为”气”),后续输出可能持续错误。

1.3 屏蔽自我注意

屏蔽自我注意

对应的query和key不会涉及到之后的信息,是有顺序的。

有顺序

屏蔽原理:计算bi时只能关注a1到ai,禁止访问右侧信息(ai+1及之后)。

实现方式:计算attention时,query只与左侧key相乘(如q2只与k1,k2计算);通过设置attention score为-∞实现右侧屏蔽。

必要性:decoder输出具有时序性(a1→a2→…),生成ai时无法知晓ai+1信息

对比标准attention:原始self-attention可同时访问全部输入信息。

1.4 输出序列长度确定

例题:推文接龙类似于成语接龙。

推文接龙

类比说明:类似PTT推文接龙(如”超→人→正→大→中→天”),需明确终止机制。

持续风险:若无终止信号,decoder可能无限生成输出(如”机器学习习习习…”)。

停止标记:特殊符号在vocabulary中添加END标记(与BEGIN可同符号)有开始就要有结尾

停止标记

终止条件:当输出END的概率最大时停止生成。

实现细节:训练时让decoder学习在适当位置输出END;中文处理时需额外增加该特殊符号(超出常规汉字集)。

工作流程:完整生成过程示例:BEGIN→”机”→”器”→”学”→”习”→END,产生习之后END的概率应该最高。

2) 非自动回归解码器

非自动回归解码器

AT工作方式:采用自回归方式(Autoregressive),缩写为AT。依次生成序列:输入BEGIN→输出W1→将W1作为新输入→输出W2→…→直到输出END标记。不是一次产生的。

NAT工作方式:非自回归(Non–autoregressive)模型,缩写为NAT。一次性生成整个序列:输入一排BEGIN token→直接输出完整序列(如中文句子)。

长度控制方法:使用分类器预测输出长度:分类器读取encoder输出,预测数字n→decoder接收n个BEGIN token,简单的预测一个对应的长度;

预设最大长度:输入固定数量BEGIN token(如300个),通过END标记截断多余输出,假设一个具体长度的上限。

2.1 非自动回归解码器的优点

并行计算优势:无论输出长度多少都只需一个计算步骤,速度显著快于AT(100字句子AT需100次计算,NAT只需1次)计算步骤明显减少。输出长度

可控性:通过调整预测长度的分类器输出,可精确控制生成速度(如语音合成中,长度×2→语速减半)。

技术背景:依赖Transformer的self-attention机制,传统RNN/LSTM无法实现此架构

当前局限:存在multimodality问题,性能通常低于AT模型,需复杂技巧才能达到相近效果,实际上准确度很差,很多的研究只能逼近对应的AT模型。

3)编码器和解码器之间的连接

编码器和解码器结构

信息传递方式:通过cross attention(桥梁)连接,decoder生成query(q),encoder提供key(k)和value(v)。

具体流程:encoder输出向量a1,a2,a3转换为k1,k2,k3和v1,v2,v3;decoder输入(如BEGIN)生成query(q);计算q与k的attention分数,加权求和v得到输出向量。

层级连接:原始方案中所有decoder层都使用encoder最后一层输出,但可自定义其他连接方式,可以由操作者自行定义,永远可以有新的想法。

层级链接

具体流程

4) 训练

4.1 需要什么样的训练资料

原理

数据要求:输入序列(如音频)与对应输出序列(如人工标注文本)的配对数据。

标注格式:每个输出token对应one-hot向量(如4000个中文单字的分类问题),每一个输出都有一个交叉熵,所有的交叉熵的总和越小越好。

4.2 训练过程

训练过程

Teacher Forcing:训练时decoder接收真实序列作为输入(BEGIN+正确答案),测试时使用自身输出,训练的时候会给decoder看正确答案。

损失计算:每个时间步计算输出分布与one-hot向量的交叉熵,总和最小化。特殊标记处理:需包含END标记的训练(如4字句子需计算第5个位置的END损失)。

训练-测试差异:存在exposure bias问题,后续可能需用计划采样(scheduled sampling)等方法缓解。

5) 训练技巧

5.1 复制机制

5.1.1 复制机制在任务中的应用

核心思想:允许decoder从输入序列中直接复制内容到输出,而非完全自主生成。

适用场景:当输出内容部分或全部存在于输入中时特别有效,如专有名词、特定术语等(聊天机器人)。

必要性:对于罕见词汇(如”库洛洛”),模型可能从未在训练数据中见过,自主生成困难。

5.1.2 聊天机器人中的复制机制举例

案例1:输入:”你好,我是库洛洛”;理想输出:”库洛洛你好,很高兴认识你”;机制优势:模型无需生成罕见词”库洛洛”,只需学习复制模式”我是[某某某]→[某某某]你好”。

案例2:输入:”小杰不能用念能力了”;理想输出:”你所谓的不能用念能力是什么意思”;机制优势:直接复述用户输入中的关键短语,避免生成错误。

5.1.3 摘要任务中的复制机制

摘要任务中的复制机制

数据需求:需要百万级文章-摘要配对数据(几万篇效果不佳)。

复制必要性:摘要中60-70%内容通常直接来自原文;

类似人工摘要过程:筛选关键句+改写。

训练技巧:可利用文章标题作为摘要简化标注。

5.1.4 实现复制机制的模型

Pointer Network:最早实现复制能力的模型。

Copy Network:改进版本,论文《Incorporating Copying Mechanism in Sequence-to-Sequence Learning》。

实现原理:通过概率pgen决定生成新词或复制输入词。

5.2 引导注意

5.2.1 Sequence to Sequence模型在语音合成中的应用

典型应用:输入文字→输出语音波形。

成功案例:输入:”发财发财发财发财”(四次);输出:自动添加抑扬顿挫。数据需求:需要大量文本-语音配对数据。

5.2.2 Sequence to Sequence模型的局限性

漏字问题:输入:”发财”(单次);错误输出:”财”(漏掉”发”)。原因分析:短句训练数据不足导致处理异常。

5.2.3 Guided Attention的引入与重要性

Guided Attention

核心思想:强制模型按特定模式处理输入。

关键应用:语音识别:必须听完整个输入;

语音合成:必须读完所有文字。必要性:相比聊天机器人等任务,语音任务对完整性要求更严格。

5.2.4 Monotonic Attention与Location-aware Attention简介

漏字问题

Monotonic Attention:强制注意力从左到右移动;适合语音合成等单调对齐任务。

Location-aware Attention:考虑当前位置信息;防止注意力”颠三倒四”。实现效果:通过约束注意力路径解决漏字问题。

5.3 束搜索

5.3.1 贪婪解码(Greedy Decoding)介绍

束搜索

工作原理:在每一步解码时选择当前概率最高的token(max选择),如示例中第一步选择概率0.6的A,第二步选择0.6的B,最终输出序列为ABB。

局限性:可能陷入局部最优,如红色路径虽然每个步骤都选最大值,但整体序列概率(0.6×0.6×0.6=0.216)低于绿色路径(0.4×0.9×0.9=0.324)。

5.3.2 束搜索与贪婪解码的对比

策略差异:贪婪解码只保留单一路径,而束搜索(Beam Search)保留Top B(束宽)条路径,通过牺牲短期收益可能获得更优全局解。

类比说明:类似”天龙八部珍珑棋局”中先牺牲局部棋子获得全局胜利,或人生决策中短期辛苦(如读博)可能带来长期收益。

5.3.3 束搜索的必要性

计算可行性:当词表大小V=4000时,3步解码就有4000³种路径,穷举不可行。束搜索通过束宽B控制计算复杂度。

折中方案:不是精确求解而是近似搜索,平衡计算资源和结果质量。

5.3.4 束搜索的效果评价

适用场景:语音识别等答案明确的任务效果较好,因其需要确定性输出。

潜在问题:在需要创造力的任务(如文本生成)中可能导致重复输出(如”鬼打墙”现象)。

5.4 采样

5.4.1 任务介绍:句子合成(Sentence Completion)

句子合成

任务特点:给定前半句生成后半句,存在多种合理续写方式,属于开放式生成任务。

5.4.2 Beam Search的问题:重复与无穷循环

典型表现:如论文案例中机构名称”Universidad Nacional…”的无限重复,输出失去语义连贯性。

5.4.3 随机性在Decoder中的作用

必要性:通过引入采样噪声(如top-k/top-p采样)打破确定性输出模式,生成更自然的文本。

5.4.4 任务特性与采样策略的关系

确定性任务:语音识别等应采用Beam Search。

创造性任务:文本生成、故事续写等需引入随机性。

哲学启示:“接受不完美才是真正的美”(呼应神经网络输出不一定概率最高即最优)。

5.4.5 需要随机性的任务示例:语音合成(TTS)

反常现象:测试时加入噪声反而改善合成效果(正常ML应在训练时加噪)。

对比表现:纯确定性解码会产生机械的”机关枪式”语音,适当随机性使发音更自然。

5.5 优化评估指标

评估指标差异

评估指标差异:训练时使用交叉熵损失(cross entropy),而评估时使用BLEU score,两者目标不一致。

指标特性对比:BLEU score需要生成完整句子后与参考答案进行整体比较;交叉熵对每个词汇分开计算损失。优化困境:BLEU score不可微分,无法直接用于梯度下降;

实际应用中通常选择BLEU score最高的模型而非交叉熵最低的模型。

解决方案:RL方法将BLEU score作为强化学习的reward,decoder作为agent;实践建议该方法实现难度较大,作业中不特别推荐使用。

5.6 训练与测试不一致的问题训练与测试不一致的问题

暴露偏差(Exposure Bias):训练时decoder只看到完全正确的输入;

测试时decoder需要处理自身产生的错误输出;后果错误会累积传播,导致”一步错步步错”现象。

解决思路:在训练时有意向decoder输入包含错误的数据定期采样。

Scheduled Sampling:核心思想按一定比例混合正确输入和模型预测输出作为decoder输入。

Scheduled Sampling

发展历程2015年首次提出用于LSTM;后续有Transformer适配版本(2019年)。

局限性:可能影响Transformer的并行计算能力。

实现变体:Parallel Scheduled Sampling等改进方法;不同网络结构需要采用不同的采样策略;

实现变体

技术背景:这些训练技巧需要结合Transformer的特殊结构实现;应用范围涉及encoder、decoder及其交互关系的整体优化。