作者寄语
译者序
前言
阅读指南
第一部分 绪论
第1章 翻译问题 2
1.1 翻译的目标 2
1.2 歧义性 4
1.2.1 词汇翻译问题 4
1.2.2 短语翻译问题 4
1.2.3 句法翻译问题 5
1.2.4 语义翻译问题 5
1.3 语言学观点 6
1.4 数据视角 9
1.4.1 忠实度 9
1.4.2 流畅度 10
1.4.3 齐普夫定律 11
1.5 实际问题 13
1.5.1 公开的数据 13
1.5.2 评测活动 13
1.5.3 工具集 14
第2章 机器翻译的应用 15
2.1 信息获取 15
2.2 人工辅助翻译 16
2.3 交流 18
2.4 自然语言处理的管道式系统 21
2.5 多模态机器翻译 21
第3章 历史回顾 23
3.1 神经网络 24
3.1.1 生物学启发 24
3.1.2 感知器学习 25
3.1.3 多层网络 25
3.1.4 深度学习 26
3.2 机器翻译 27
3.2.1 密码破译 27
3.2.2 ALPAC报告与后续影响 27
3.2.3 首个商用系统 28
3.2.4 基于中间语言的翻译系统 28
3.2.5 数据驱动的方法 28
3.2.6 开源的研发环境 29
3.2.7 深入用户 30
3.2.8 神经翻译的兴起 30
第4章 评价方法 32
4.1 基于任务的评价 32
4.1.1 真实世界的任务 33
4.1.2 内容理解 33
4.1.3 译员翻译效率 34
4.2 人工评价 35
4.2.1 忠实度和流畅度 35
4.2.2 排序 37
4.2.3 连续分数 38
4.2.4 众包评价 40
4.2.5 人工译文编辑率 41
4.3 自动评价指标 41
4.3.1 BLEU 42
4.3.2 同义词和形态变体 43
4.3.3 TER 44
4.3.4 characTER 45
4.3.5 自举重采样 45
4.4 指标研究 47
4.4.1 关于评价的争论 47
4.4.2 对评价指标的评价 48
4.4.3 自动评价指标缺点的相关证据 49
4.4.4 新的评价指标 50
第二部分 基础
第5章 神经网络 54
5.1 线性模型 54
5.2 多层网络 55
5.3 非线性模型 56
5.4 推断 57
5.5 反向传播训练 59
5.5.1 输出节点权重 60
5.5.2 隐藏层节点权重 61
5.5.3 公式总结 63
5.5.4 权重更新示例 63
5.5.5 验证集 64
5.6 探索并行处理 65
5.6.1 向量和矩阵运算 65
5.6.2 小批量训练 65
5.7 动手实践:使用Python实现神经网络 66
5.7.1 Numpy库中的数据结构和函数 66
5.7.2 前向计算 67
5.7.3 反向计算 67
5.7.4 链式法则的重复使用 68
5.8 扩展阅读 71
第6章 计算图 72
6.1 用计算图描述神经网络 72
6.2 梯度计算 73
6.3 动手实践:深度学习框架 77
6.3.1 利用PyTorch实现前向和反向计算 77
6.3.2 循环训练 79
6.3.3 批训练 80
6.3.4 优化器 81
第7章 神经语言模型 83
7.1 前馈神经语言模型 83
7.1.1 表征单词 84
7.1.2 神经网络架构 85
7.1.3 训练 86
7.2 词嵌入 86
7.3 噪声对比估计 88
7.4 循环神经语言模型 89 7.5 长短时记忆模型 91 7.6 门控循环单元 93 7.7 深度模型 94 7.8 动手实践:PyTorch中的神经语言模型 96 7.8.1 循环神经网络 96 7.8.2 文本处理 97 7.8.3 循环训练 98 7.8.4 建议 99 7.9 扩展阅读 100 第8章 神经翻译模型 101 8.1 编码器–解码器方法 101 8.2 添加对齐模型 102 8.2.1 编码器 102 8.2.2 解码器 103 8.2.3 注意力机制 104 8.3 训练 106 8.4 深度模型 108 8.4.1 解码器 108 8.4.2 编码器 109 8.5 动手实践:利用PyTorch实现神经翻译模型 110 8.5.1 编码器 111 8.5.2 解码器 111 8.5.3 训练 113 8.6 扩展阅读 115 第9章 解码 116 9.1 柱搜索 116 9.2 集成解码 119 9.2.1 生成候选系统 120 9.2.2 融合系统输出 120 9.3 重排序 121 9.3.1 利用从右到左解码的重排序 121 9.3.2 利用反向模型的重排序 122 9.3.3 增加n-best列表的多样性 122 9.3.4 评分组件的权重学习 123 9.4 优化解码 126 9.5 约束解码 127 9.5.1 XML模式 127 9.5.2 网格搜索 127 9.5.3 强制注意力 128 9.5.4 评价 129 9.6 动手实践:Python中的解码 129 9.6.1 假设 129 9.6.2 柱空间 129 9.6.3 搜索 131 9.6.4 输出最佳译文 132 9.7 扩展阅读 133 第三部分 提高 第10章 机器学习技巧 138 10.1 机器学习中的问题 138 10.2 确保随机性 140 10.2.1 打乱训练数据 141 10.2.2 权重初始化 141 10.2.3 标签平滑 142 10.3 调整学习率 142 10.3.1 动量项 142 10.3.2 调整每个参数的学习率 143 10.3.3 批梯度更新 144 10.4 避免局部最优 145 10.4.1 正则化 145 10.4.2 课程学习 145 10.4.3 drop-out法 146 10.5 处理梯度消失和梯度爆炸问题 147 10.5.1 梯度裁剪 147 10.5.2 层归一化 147 10.5.3 捷径连接和高速连接 148 10.5.4 LSTM和梯度消失 149 10.6 句子级优化 150 10.6.1 最小风险训练 150 10.6.2 生成对抗训练 151 10.7 扩展阅读 152 第11章 替代架构 155 11.1 神经网络组件 155 11.1.1 前馈层 155 11.1.2 因子分解 156 11.1.3 基本的数学运算 157 11.1.4 循环神经网络 158 11.1.5 卷积神经网络 159 11.2 注意力模型 160 11.2.1 注意力计算 160 11.2.2 多头注意力 161 11.2.3 细粒度注意力 162 11.2.4 自注意力 162 11.3 卷积机器翻译模型 163 11.4 融合注意力机制的卷积神经网络 165 11.4.1 编码器 165 11.4.2 解码器 166 11.4.3 注意力 167 11.5 自注意力:Transformer 167 11.5.1 自注意力层 167 11.5.2 解码器中的注意力 168 11.6 扩展阅读 171 第12章 重温单词 173 12.1 词嵌入 173 12.1.1 潜在语义分析 174 12.1.2 连续词袋模型 175 12.1.3 Skip Gram 176 12.1.4 GloVe 176 12.1.5 ELMo 177 12.1.6 BERT 178 12.2 多语言词嵌入 178 12.2.1 特定语言词嵌入之间的映射 179 12.2.2 语言无关的词嵌入 180 12.2.3 仅使用单语数据 180 12.3 大词汇表 182 12.3.1 低频词的特殊处理 182 12.3.2 字节对编码算法 183 12.3.3 句子片段化算法 184 12.3.4 期望最大化训练 185 12.3.5 子词正则化 185 12.4 基于字符的模型 186 12.4.1 字符序列模型 186 12.4.2 基于字符的单词表示模型 186 12.4.3 集成基于字符的模型 188 12.5 扩展阅读 189 第13章 领域自适应 195 13.1 领域 195 13.1.1 语料库之间的差异 196 13.1.2 多领域场景 197 13.1.3 领域内与领域外 198 13.1.4 自适应效应 198 13.1.5 合理的警告 199 13.2 混合模型 199 13.2.1 数据插值 199 13.2.2 模型插值 200 13.2.3 领域感知训练 201 13.2.4 主题模型 202 13.3 欠采样 204 13.3.1 Moore-Lewis:语言模型交叉熵 204 13.3.2 基于覆盖范围的方法 205 13.3.3 样本加权 206 13.4 微调 206 13.4.1 约束更新 207 13.4.2 文档级自适应 208 13.4.3 句子级自适应 209 13.4.4 课程训练 210 13.5 扩展阅读 210 第14章 超越平行语料库 214 14.1 使用单语数据 215 14.1.1 增加语言模型 215 14.1.2 回译 216 14.1.3 迭代回译 217 14.1.4 往返训练 217 14.2 多种语言对 218 14.2.1 多种输入语言 219 14.2.2 多种输出语言 219 14.2.3 共享模块 220 14.3 训练相关任务 221 14.3.1 预训练词嵌入 221 14.3.2 预训练编码器和解码器 221 14.3.3 多任务训练 222 14.4 扩展阅读 222 第15章 语言学结构 228 15.1 有指导的对齐训练 228 15.2 建模覆盖度 230 15.2.1 在推断过程中约束覆盖度 230 15.2.2 覆盖度模型 231 15.2.3 繁衍率 232 15.2.4 特征工程与机器学习 232 15.3 添加语言学标注 233 15.3.1 输入句子的语言学标注 233 15.3.2 输出句子的语言学标注 234 15.3.3 语言学结构化的模型 235 15.4 扩展阅读 236 第16章 当前挑战 238 16.1 领域不匹配 238 16.2 训练数据规模 240 16.3 稀有词 241 16.4 噪声数据 243 16.4.1 真实世界中的噪声 243 16.4.2 合成噪声 245 16.4.3 噪声对翻译质量的影响 246 16.5 柱搜索 248 16.6 词对齐 250 16.7 扩展阅读 251 第17章 分析与可视化 253 17.1 错误分析 253 17.1.1 神经机器翻译的典型错误 253 17.1.2 语言学错误类型 255 17.1.3 真实世界中的研究案例 256 17.1.4 目标测试集 257 17.1.5 合成语言 259 17.2 可视化 259 17.2.1 词嵌入 260 17.2.2 编码器状态:词义 261 17.2.3 注意力机制 262 17.2.4 多头注意力机制 263 17.2.5 语言模型预测中的记忆 264 17.2.6 解码器状态 266 17.2.7 柱搜索 266 17.3 探测向量表示 267 17.3.1 分类器方法 267 17.3.2 实验发现 268 17.4 分析神经元 269 17.4.1 认知理论 269 17.4.2 个体神经元 269 17.4.3 揭示神经元 271 17.5 追溯模型决策过程 271 17.5.1 层级间相关性传递 271 17.5.2 相关性传递在机器翻译中的应用 273 17.5.3 显著性计算 274 17.6 扩展阅读 275 参考文献 279
......
本书介绍了机器翻译和评估的挑战——包括历史、语言和应用环境,然后提出了用于自然语言应用的核心深度学习方法。内含Python代码示例,为读者提供理解和实现自己的机器翻译系统的实际蓝图。本书还提供了广泛的机器学习技巧,涉及的问题包括处理各种形式的数据、模型的增强、当前的挑战以及方法分析和可视化。本书包含机器翻译领域的前沿研究,适用于该领域的本科和研究生,以及对神经方法在更广泛的人类语言处理领域的其他应用感兴趣的研究人员,也可以作为开发人员的重要参考。