牛津大学xDeepMind 自然语言处理(5)
牛津大学xDeepMind 自然语言处理 Natural Language Processing
文本转语音
Generative Model-Based Text-to-Speech Synthesis(TTS) 基于生成模型的文本到语音合成
- 基础概念与流程
- 语音合成概述:文本到语音合成(TTS)是序列到序列的映射过程,与自动语音识别(ASR)形成对应,例如将 “Take the first left” 转换为语音。
- 语音产生过程:文本通过频率传递特性等转换为语音,涉及声源(浊音为脉冲、清音为噪声)、基频、声门气流等要素。
- TTS 系统典型流程:分为前端(文本分析,包括句子分割、词性标注等)和后端(波形生成,如韵律预测等),实现从离散文本到连续语音的转换。
- 语音合成方法与关键要素
- 合成方法:包括规则基共振峰合成、样本基拼接合成、模型基生成合成等,其中单元选择拼接合成需构建多样化数据库、切割双音素、选择匹配单元并拼接。
- TTS 数据库:需高质量(如工作室录制、无背景噪声等),例如 VCTK 包含 109 位英语母语者的 400 个句子,Google TTS 数据库有数十小时数据。
- 性能指标:主观指标包括可懂度、自然度(如平均意见得分 MOS),客观指标有 PESQ、Robust MOS 等。
- 概率建模与近似方法
- 概率公式:引入声学特征(O)、语言特征(L)等辅助变量,对 TTS 进行概率建模,通过因子分解依赖关系表示合成语音的概率。
- 近似方法:通过最佳点估计、分步最大化等方式近似处理,简化计算过程,例如分步最大化包括提取声学和语言特征、学习映射、预测特征及合成波形等步骤。
- 表示方法与生成声学模型
- 表示方法:
- 语言特征:涵盖句子、短语、单词、音节、音素等层面的特征,基于口语知识构建。
- 声学特征:涉及时长模型、源 - 滤波器生成模型等,需解决从信号估计参数的逆问题。
- 映射方式:包括规则基、HMM 基等,HMM 基方法用 HMM 替代规则作为生成声学模型。
- 生成声学模型:
- HMM-based:采用上下文相关子词 HMM,存在统计不光滑、数据碎片化等问题,需平滑处理并使用低维特征。
- 神经网络-based:包括 FFNN、RNN 等,能生成平滑的声学特征、处理高维特征,已成为主流,如 Google 的相关产品。
- 表示方法:
- 超越参数 TTS 的发展
- 学习特征:从知识基特征转向学习特征,无监督特征学习在语音的 FFT 频谱上有积极结果,在文本上效果较差。
- WaveNet:一种生成原始音频的模型,采用自回归建模,关键组件包括因果扩张卷积(捕捉长时依赖)、门控卷积等,相比传统模型具有样本级、非线性等优势,能实现主观自然度的 SOTA。
- 端到端:向贝叶斯端到端 TTS 发展,整合文本分析,边际化模型参数和架构,通过集成等方式合成语音。
- 结论与未来方向
- 总结:生成模型基 TTS 通过贝叶斯公式、因子分解等实现,映射方式从规则发展到 HMM 再到神经网络,特征从人工设计走向无监督学习,且自然度和灵活性优于拼接合成。
- 未来方向:包括对话助手的 TTS(需更多上下文)、考虑 “听众” 因素以提升信息传递效率等。
问答系统 Question Answering(QA)
-
QA概述
-
重要性:QA是AI-complete问题,解决QA意味着能解决多数其他AI问题
-
问题分类:
可按Wh-词(何时、何人等)、问题主题、预期答案形式、答案来源等分类
-
数据依赖(三类)
- 问题:包括事实性问题、复杂/叙事性问题等
- 上下文/来源:文档集、单篇文档、知识库、非语言数据(GPS、图像等)
- 答案:单个事实、解释、文档片段、图像等
-
-
核心研究领域(四大类)
- 语义解析 Semantic Parsing
- 定义:将自然语言映射为逻辑形式,用于查询结构化知识库
- 核心模型/方法:序列到序列模型(类似机器翻译)、注意力机制、半监督训练
- 优点:答案独立于解析机制,适应信息变化
- 缺点:训练数据昂贵,受知识库schema限制
- 阅读理解 Reading Comprehension
- 定义:基于特定文档回答相关问题
- 核心模型/方法:双向LSTM编码、注意力机制(如Attentive Reader、Attention Sum Reader)
- 优点:数据集大
- 缺点:依赖文档上下文,部分问题无法回答,需处理OOV和专有名词
- 答案句子选择 Answer Sentence Selection
- 定义:从语料中挑选能回答问题的句子
- 核心模型/方法:计算问题与候选句匹配概率
- 优点:是IR到QA的关键步骤,提供上下文
- 缺点:仅提供上下文,不直接给答案,依赖IR系统
- 视觉问答 Visual Question Answering
- 定义:结合图像(上下文)回答问题
- 核心模型/方法:卷积网络(处理图像)+LSTM(处理问题)、堆叠注意力网络
- 优点:多模态融合,数据丰富
- 语义解析 Semantic Parsing
-
QA系统的评估指标
- 准确率 Accuracy:正确答案占比,适用于单实体类QA
- 平均reciprocal排名(MRR):(1/∣Q∣)∑i=1∣Q∣(1/ranki)(1/|Q|)\sum^{|Q|}_{i=1}(1/rank_i)(1/∣Q∣)∑i=1∣Q∣(1/ranki),衡量首条相关文档位置
- BLEU分数:机器翻译中的用于评估翻译准确性,较复杂
-
构建QA系统的七大关键问题
- 任务是什么?
- 问题、答案、上下文的形式是什么?
- 数据来源是什么?
- 能否扩充数据?
- 如何编码问题和上下文?
- 如何结合问题和上下文?
- 如何预测或生成答案?
深度学习在NLP中的记忆机制
-
RNN的局限性
-
transduction瓶颈
RNN 在序列到序列映射中存在容量固定、目标序列建模主导训练、编码器梯度匮乏等问题,限制对长序列和复杂结构的处理。
-
计算能力局限 计算层级低
-
计算层级:图灵机(可计算函数)< 下推自动机(上下文无关语言)< 有限状态机(正则语言)
-
RNN 的计算能力类似有限状态机(FSM):
本质是 N 阶马尔可夫链,记忆有限且有界;
无法学习图灵机(因无法控制 “磁带” 顺序),难以处理上下文无关语言(如anbna^nb^nanbn结构,需下推自动机的 2 条规则,而 FSM 需 N+1 条规则)。
-
-
缺陷
状态同时作为控制器和记忆,长依赖处理能力有限
-
-
RNN的重新审视:控制器 - 记忆分离
-
RNN可视为 API ,而非具体模型:
核心公式:RNN:X×P→Y×N(X为输入,P为前状态,Y为输出,N为新状态)
-
改进思路:分离控制器与记忆
保持可微性,通过记忆(P/N)追踪状态,控制器处理 I/O 逻辑,解决状态既当控制器又当记忆的问题
-
-
注意力机制(ROM)
-
定义:将数据数组作为只读记忆(ROM),控制器通过权重分布(注意力)读取记忆,而非依赖固定维度的编码器输出,从而突破容量固定的瓶颈,实现对输入序列的动态关注
-
类型:
-
早期融合:输入与注意力结果拼接后输入控制器(xs=xt⊕fatt(ht−1,M)xs=x_t⊕f_{att}(h_{t-1},M)xs=xt⊕fatt(ht−1,M))
-
晚期融合:控制器输出与注意力结果结合生成输出(yt=fcomp(wt,fatt(ht,M))y_t=f_{comp}(w_t,f_{att}(h_t,M))yt=fcomp(wt,fatt(ht,M)))
-
-
应用:
-
编码器 - 解码器模型:编码器生成记忆矩阵,解码器通过注意力读取,缓解编码器梯度匮乏问题;
-
阅读理解:定位文档中与问题相关的片段(如 SQuAD 任务);
-
文本蕴含识别:对齐前提与假设的语义
-
-
-
寄存器(RAM)
-
定义:类似随机存取存储器(RAM),控制器可对记忆寄存器执行读写操作,支持内容寻址(基于内容匹配)和位置寻址(基于位置偏移)
-
操作机制:
-
读取:rt=fread(kread,Mt−1)r_t=f_{read}(k^{read},M_{t-1})rt=fread(kread,Mt−1)(kreadk^{read}kread为读取权重)
-
写入:Mt[i]=a[i]⋅v+(1−a[i])⋅Mt−1[i]M_t[i]=a[i]⋅v+(1-a[i])⋅M_{t-1}[i]Mt[i]=a[i]⋅v+(1−a[i])⋅Mt−1[i](a为写入权重,v为写入值)
-
-
优势:提升符号任务泛化性(如 Graves 等 2014 实验)
-
-
神经下推自动机(PDA)
-
形式:通过神经栈、队列、双端队列模拟下推自动机,处理递归 / 嵌套结构
-
实验对比:
神经下推自动机通过栈、队列等结构模拟下推自动机,擅长处理递归 / 嵌套结构,长序列泛化性更好。实验显示,在 “反转” 任务中,神经栈能完美解决,而深度 LSTM 表现较差;在 “复制” 任务中,双端队列可解决,而深度 LSTM 表现较差。此外,神经下推自动机在测试长度为训练序列 2 倍的任务中仍能保持性能,而 LSTM 泛化性有限,这使其更适合处理句法复杂的自然语言任务。
-
优势:长序列泛化性好(测试长度达训练序列的 2 倍),适合处理句法丰富的自然语言(如解析、组合性)
-
与假设的语义
-
寄存器(RAM)
-
定义:类似随机存取存储器(RAM),控制器可对记忆寄存器执行读写操作,支持内容寻址(基于内容匹配)和位置寻址(基于位置偏移)
-
操作机制:
-
读取:rt=fread(kread,Mt−1)r_t=f_{read}(k^{read},M_{t-1})rt=fread(kread,Mt−1)(kreadk^{read}kread为读取权重)
-
写入:Mt[i]=a[i]⋅v+(1−a[i])⋅Mt−1[i]M_t[i]=a[i]⋅v+(1-a[i])⋅M_{t-1}[i]Mt[i]=a[i]⋅v+(1−a[i])⋅Mt−1[i](a为写入权重,v为写入值)
-
-
优势:提升符号任务泛化性(如 Graves 等 2014 实验)
-
-
神经下推自动机(PDA)
-
形式:通过神经栈、队列、双端队列模拟下推自动机,处理递归 / 嵌套结构
-
实验对比:
神经下推自动机通过栈、队列等结构模拟下推自动机,擅长处理递归 / 嵌套结构,长序列泛化性更好。实验显示,在 “反转” 任务中,神经栈能完美解决,而深度 LSTM 表现较差;在 “复制” 任务中,双端队列可解决,而深度 LSTM 表现较差。此外,神经下推自动机在测试长度为训练序列 2 倍的任务中仍能保持性能,而 LSTM 泛化性有限,这使其更适合处理句法复杂的自然语言任务。
-
优势:长序列泛化性好(测试长度达训练序列的 2 倍),适合处理句法丰富的自然语言(如解析、组合性)
-