神經機器翻譯:基礎、原理、實踐與進階

熊德意,李良友,張檬

買這商品的人也買了...

商品描述

本書旨在對現階段的神經機器翻譯技術和開放問題進行介紹,力求以通俗易懂的語言向讀者系統化展現神經機器翻譯的內涵和外延。本書內容主要包括三部分:基礎篇主要介紹神經機器翻譯的基本原理,發展脈絡、核心技術及若乾改進方法,本篇也提供了必要的神經網絡和自然語言處理基礎知識;實踐篇旨在激發讀者更多的實戰興趣,將神經機器翻譯基本技術轉為璀璨的場景應用,內容包括如何訓練一個神經機器翻譯系統、如何在不同計算環境下部署神經機器翻譯以及如何動手實現一個神經機器翻譯系統;進階篇則主要為有興趣進一步探索和推動神經機器翻譯技術發展的讀者準備的,該篇概述了神經機器翻譯面臨的幾個主要挑戰、開放問題以及最新的研究進展,如篇章級神經機器翻譯、低資源神經機器翻譯、多模態和魯棒性神經機器翻譯等最新研究主題。

目錄大綱

前言
數學符號
第1 章緒論1
1.1 引言. . . . . . . . . . . . . . . . . . 2
1.2 基本思想. . . . . . . . . . . . . . 6
1.2.1 基於規則的機器翻譯. . . 6
1.2.2 統計機器翻譯. . . . . . . . 7
1.2.3 神經機器翻譯. . . . . . . . 10
1.2.4 模型設計. . . . . . . . . . . 11
1.3 解碼. . . . . . . . . . . . . . . . . . 12
1.3.1 統計機器翻譯解碼. . . . . 12
1.3.2 神經機器翻譯解碼. . . . . 16
1.3.3 搜索錯誤與模型錯誤. . . 16
1.4 神經機器翻譯與統計機器翻譯對比. . . . . . . . . . . . . . 18
1.4.1 表示. . . . . . . . . . . . . . 18
1.4.2 參數. . . . . . . . . . . . . . 20
1.4.3 模型存儲. . . . . . . . . . . 21
1.4.4 模型假設或約束. . . . . . 21
1.4.5 端到端. . . . . . . . . . . . 22
1.4.6 譯文生成. . . . . . . . . . . 22
1.4.7 訓練方式. . . . . . . . . . . 23
1.4.8 魯棒性. . . . . . . . . . . . 24
1.4.9 可解釋性. . . . . . . . . . . 24
1.4.10 可干預性. . . . . . . . . . 25
1.4.11 低資源適應性. . . . . . . 25
1.4.12 對比總結. . . . . . . . . . 26
1.5 發展歷史. . . . . . . . . . . . . . 26
1.5.1 機器翻譯發展歷史. . . . . 27
1.5.2 神經機器翻譯發展歷程. . 28
1.6 應用現狀. . . . . . . . . . . . . . 29
1.6.1 維度1:通用領域vs. 垂直領域. . . . . . . . . . . . 29
1.6.2 維度2:多語種vs. 單語種30
1.6.3 維度3:雲端vs. 終端. . 31
1.6.4 維度4:在線vs. 離線. . 31
1.6.5 維度5:B 端vs. C 端. . 31
1.6.6 維度6:純文本vs. 多模態31
1.6.7 維度7:人機結合vs. 人機分離. . . . . . . . . . . . 31
1.6.8 維度8:機器翻譯+ vs.純機器翻譯. . . . . . . . . 32
1.6.9 應用現狀總結. . . . . . . . 32
1.7 本書組織. . . . . . . . . . . . . . 32
1.7.1 基礎篇. . . . . . . . . . . . 32
1.7.2 原理篇. . . . . . . . . . . . 33
1.7.3 實踐篇. . . . . . . . . . . . 34
1.7.4 進階篇. . . . . . . . . . . . 34
1.8 閱讀材料. . . . . . . . . . . . . . 34
1.9 短評:統計與規則的競爭. . 35

第I 部分基礎篇
第2 章神經網絡基礎41
2.1 神經網絡. . . . . . . . . . . . . . 42
2.1.1 神經元. . . . . . . . . . . . 42
2.1.2 激活函數. . . . . . . . . . . 45
2.1.3 神經元組織:層. . . . . . 46
2.2 神經網絡訓練. . . . . . . . . . . 48
2.2.1 損失函數. . . . . . . . . . . 49
2.2.2 隨機梯度下降. . . . . . . . 52
2.2.3 計算圖. . . . . . . . . . . . 56
2.2.4 訓練優化. . . . . . . . . . . 57
2.2.5 正則化. . . . . . . . . . . . 59
2.3 常用神經網絡簡介. . . . . . . 61
2.3.1 前饋神經網絡. . . . . . . . 61
2.3.2 卷積神經網絡. . . . . . . . 62
2.3.3 循環神經網絡. . . . . . . . 64
2.4 閱讀材料. . . . . . . . . . . . . . 70
2.5 短評:神經網絡與自然語言處理關係演變. . . . . . . . . 71

第3 章自然語言處理基礎75
3.1 語言模型. . . . . . . . . . . . . . 76
3.1.1 n-gram 語言模型. . . . . 77
3.1.2 神經語言模型. . . . . . . . 78
3.1.3 預訓練語言模型. . . . . . 80
3.2 詞嵌入. . . . . . . . . . . . . . . . 82
3.2.1 分佈表示與分佈式表示. . 82
3.2.2 靜態詞嵌入. . . . . . . . . 84
3.2.3 語境化詞嵌入. . . . . . . . 86
3.2.4 跨語言詞嵌入. . . . . . . . 88
3.3 對齊. . . . . . . . . . . . . . . . . . 90
3.3.1 文檔對齊. . . . . . . . . . . 91
3.3.2 句對齊. . . . . . . . . . . . 91
3.3.3 詞對齊. . . . . . . . . . . . 92
3.4 語言分析. . . . . . . . . . . . . . 93
3.4.1 詞法分析. . . . . . . . . . . 93
3.4.2 句法分析. . . . . . . . . . . 94
3.4.3 語義分析. . . . . . . . . . . 97
3.4.4 語篇分析. . . . . . . . . . . 98
3.5 閱讀材料. . . . . . . . . . . . . . 99
3.6 短評:自然語言處理之經驗主義與理性主義. . . . . . . 100

第II 部分原理篇
第4 章經典神經機器翻譯105
4.1 編碼器-解碼器結構. . . . . . 106
4.1.1 編碼器. . . . . . . . . . . . 108
4.1.2 解碼器. . . . . . . . . . . . 110
4.2 序列到序列學習. . . . . . . . . 112
4.3 訓練. . . . . . . . . . . . . . . . . . 114
4.4 解碼. . . . . . . . . . . . . . . . . . 114
4.4.1 採樣. . . . . . . . . . . . . . 115
4.4.2 貪心搜索. . . . . . . . . . . 115
4.4.3 柱搜索. . . . . . . . . . . . 115
4.5 閱讀材料. . . . . . . . . . . . . . 116
4.6 短評:神經機器翻譯之獨立同發現——編碼器-解
碼器vs. 序列到序列. . . . . 117

第5 章基於注意力的神經機器翻譯119
5.1 經典神經機器翻譯模型的瓶頸. . . . . . . . . . . . . . . . . . 120
5.2 注意力機制. . . . . . . . . . . . 120
5.3 注意力機制的改進. . . . . . . 124
5.3.1 全局注意力機制和局部注意力機制. . . . . . . . . 124
5.3.2 注意力覆蓋. . . . . . . . . 125
5.3.3 注意力引導訓練. . . . . . 126
5.3.4 其他改進方法. . . . . . . . 126
5.4 基於注意力的多層神經機器翻譯模型GNMT . . . . . . . 127
5.4.1 整體結構. . . . . . . . . . . 127
5.4.2 殘差連接. . . . . . . . . . . 128
5.4.3 雙向編碼器. . . . . . . . . 128
5.4.4 模型並行. . . . . . . . . . . 128
5.5 閱讀材料. . . . . . . . . . . . . . 128
5.6 短評:注意力機制與認知注意. . . . . . . . . . . . . . . . . . 129

第6 章基於卷積神經網絡的神經機器翻譯模型131
6.1 卷積編碼器. . . . . . . . . . . . 132
6.2 全卷積序列到序列模型. . . . 133
6.2.1 位置編碼. . . . . . . . . . . 134
6.2.2 卷積層結構. . . . . . . . . 134
6.2.3 多步注意力. . . . . . . . . 135
6.2.4 訓練. . . . . . . . . . . . . . 136
6.3 ByteNet . . . . . . . . . . . . . . . 137
6.3.1 編碼器--解碼器堆疊. . . 137
6.3.2 動態展開. . . . . . . . . . . 138
6.3.3 空洞卷積. . . . . . . . . . . 139
6.3.4 字符級神經機器翻譯. . . 139
6.4 閱讀材料. . . . . . . . . . . . . . 139
6.5 短評:卷積神經機器翻譯——實用性倒逼技術創新. . 140

第7 章基於自註意力的神經機器翻譯142
7.1 自註意力機制. . . . . . . . . . . 143
7.2 Transformer 模型. . . . . . . . 144
7.2.1 Transformer 模型總體架構. . . . . . . . . . . . . . 144
7.2.2 多頭注意力. . . . . . . . . 146
7.2.3 位置編碼. . . . . . . . . . . 147
7.2.4 正則化. . . . . . . . . . . . 148
7.2.5 優點分析. . . . . . . . . . . 148
7.3 自註意力改進方法. . . . . . . 149
7.3.1 相對位置編碼. . . . . . . . 149
7.3.2 平均注意力網絡. . . . . . 151
7.4 閱讀材料. . . . . . . . . . . . . . 152
7.5 短評:Transformer 帶來的自然語言處理技術革新. . . . 153

第8 章神經機器翻譯若干基礎問題及解決方案155
8.1 開放詞彙表. . . . . . . . . . . . 156
8.2 深度模型. . . . . . . . . . . . . . 160
8.3 快速解碼. . . . . . . . . . . . . . 161
8.3.1 非自回歸神經機器翻譯. . 162
8.3.2 淺層解碼器. . . . . . . . . 165
8.4 模型融合. . . . . . . . . . . . . . 165
8.5 領域適應. . . . . . . . . . . . . . 168
8.6 閱讀材料. . . . . . . . . . . . . . 171
8.7 短評:再談神經機器翻譯新思想新技術的誕生. . . . . 172

第III 部分實踐篇
第9 章數據準備175
9.1 平行語料. . . . . . . . . . . . . . 176
9.2 語料獲取. . . . . . . . . . . . . . 178
9.2.1 平行語料爬取. . . . . . . . 179
9.2.2 公開數據集. . . . . . . . . 181
9.3 數據過濾與質量評估. . . . . 182
9.3.1 噪聲類型. . . . . . . . . . . 182
9.3.2 噪聲過濾. . . . . . . . . . . 184
9.4 數據處理. . . . . . . . . . . . . . 185
9.4.1 Tokenize . . . . . . . . . . . 185
9.4.2 子詞化. . . . . . . . . . . . 186
9.5 閱讀材料. . . . . . . . . . . . . . 187
談數據對機器翻譯的重要性. . . . . . . . . . . . 187

第10 章訓練190
10.1 mini-batch 設置. . . . . . . . 191
10.1.1 小批量樣本選擇. . . . . . 191
10.1.2 小批量大小. . . . . . . . . 193
10.2 學習速率設置. . . . . . . . . . 194
10.3 隨機梯度下降算法選擇. . . 196
10.3.1 Momentum . . . . . . . . 196
10.3.2 AdaGrad . . . . . . . . . . . 197
10.3.3 AdaDelta . . . . . . . . . . 198
10.3.4 Adam . . . . . . . . . . . . 198
10.4 其他超參數選擇. . . . . . . . . 199
10.4.1 參數初始化. . . . . . . . . 199
10.4.2 隨機失活. . . . . . . . . . 200
10.4.3 模型容量. . . . . . . . . . 200
10.4.4 梯度裁剪. . . . . . . . . . 201
10.5 分佈式訓練. . . . . . . . . . . . 201
10.5.1 模型並行與數據並行. . . 202
10.5.2 同步更新與異步更新. . . 203
10.5.3 參數服務器與環狀全規約204
10.5.4 分佈式訓練開源框架. . . 205
10.6 Transformer 訓練設置. . . . 206
10.6.1 訓練數據相關設置. . . . 206
10.6.2 模型容量. . . . . . . . . . 207
10.6.3 小批量大小. . . . . . . . . 207
10.6.4 學習速率. . . . . . . . . . 207
10.6.5 分佈式訓練. . . . . . . . . 208
10.7 閱讀材料. . . . . . . . . . . . . . 208
10.8 短評:超參數設置——自動優化與實驗可複現性. . . . 209

第11 章測試212
11.1 解碼. . . . . . . . . . . . . . . . . . 213
11.1.1 解碼算法. . . . . . . . . . 213
11.1.2 譯文評分. . . . . . . . . . 214
11.1.3 檢查點平均. . . . . . . . . 216
11.2 解碼和訓練不一致. . . . . . . 217
11.3 機器翻譯評測方法. . . . . . . 219
11.3.1 人工評測. . . . . . . . . . 219
11.3.2 自動評測. . . . . . . . . . 221
11.4 錯誤分析. . . . . . . . . . . . . . 222
11.5 閱讀材料. . . . . . . . . . . . . . 224
11.6 短評:評測驅動機器翻譯研究. . . . . . . . . . . . . . . . . . 224

第12 章部署232
12.1 GPU 環境下的部署. . . . . . 233
12.1.1 壓力測試. . . . . . . . . . 234
12.1.2 負載均衡. . . . . . . . . . 234
12.1.3 請求合併. . . . . . . . . . 235
12.2 CPU 環境下的部署. . . . . . 236
12.2.1 候選詞表. . . . . . . . . . 236
12.2.2 量化運算. . . . . . . . . . 237
12.2.3 結構優化. . . . . . . . . . 239
12.3 智能終端部署. . . . . . . . . . 239
12.3.1 知識蒸餾. . . . . . . . . . 240
12.3.2 剪枝. . . . . . . . . . . . . 241
12.3.3 參數共享. . . . . . . . . . 243
12.3.4 矩陣分解. . . . . . . . . . 243
12.4 模型壓縮與計算加速. . . . . 243
12.5 閱讀材料. . . . . . . . . . . . . . 244
12.6 短評:機器翻譯工業部署. . 245

第13 章系統設計與實現250
13.1 總體設計. . . . . . . . . . . . . . 251
13.1.1 可擴展性. . . . . . . . . . 251
13.1.2 易用性. . . . . . . . . . . . 251
13.1.3 系統效率. . . . . . . . . . 252
13.2 功能設計. . . . . . . . . . . . . . 253
13.2.1 數據. . . . . . . . . . . . . 253
13.2.2 模型. . . . . . . . . . . . . 253
13.2.3 訓練. . . . . . . . . . . . . 254
13.2.4 推理. . . . . . . . . . . . . 255
13.3 開源系統. . . . . . . . . . . . . . 256
13.3.1 FAIRSEQ . . . . . . . . . . 256
13.3.2 OpenNMT . . . . . . . . . 257
13.3.3 Marian . . . . . . . . . . . . 257
13.4 FAIRSEQ 解析. . . . . . . . . . 258
13.4.1 註冊機制. . . . . . . . . . 258
13.4.2 訓練流程. . . . . . . . . . 260
13.4.3 混合精度訓練. . . . . . . 262
13.5 閱讀材料. . . . . . . . . . . . . . 263
13.6 短評:機器翻譯開源之路. . 263

第IV 部分進階篇
第14 章語篇級神經機器翻譯270
14.1 什麼是語篇. . . . . . . . . . . . 271
14.2 語篇級機器翻譯面臨的挑戰273
14.2.1 語篇級依存關係建模. . . 273
14.2.2 文檔級平行語料稀缺. . . 273
14.2.3 高計算需求. . . . . . . . . 273
14.2.4 語篇級機器翻譯評測. . . 274
14.3 語篇級機器翻譯形式化定義274
14.4 語篇級神經機器翻譯方法. . 275
14.4.1 拼接當前句子與上下文. 275
14.4.2 額外的上下文編碼器. . . 277
14.4.3 基於緩存器. . . . . . . . . 279
14.4.4 基於語篇分析. . . . . . . 280
14.4.5 基於銜接性. . . . . . . . . 281
14.4.6 優化訓練目標函數. . . . 283
14.4.7 學習句子級語境化表示. 284
14.5 面向語篇現象的機器翻譯評測數據集. . . . . . . . . . . . 287
14.6 語篇級機器翻譯評測方法. . 287
14.7 未來方向. . . . . . . . . . . . . . 288
14.8 閱讀材料. . . . . . . . . . . . . . 289
14.8.1 語篇級統計機器翻譯. . . 289
14.8.2 語篇級神經機器翻譯. . . 290
14.9 短評:神經機器翻譯達到人類同等水平了嗎. . . . . . . 291

第15 章低資源及無監督
神經機器翻譯295
15.1 低資源語言與資源稀缺挑戰296
15.2 低資源神經機器翻譯. . . . . 297
15.2.1 數據增強. . . . . . . . . . 299
15.2.2 基於樞紐語言. . . . . . . 300
15.2.3 利用單語數據. . . . . . . 303
15.3 無監督機器翻譯. . . . . . . . . 304
15.3.1 無監督跨語言詞嵌入. . . 305
15.3.2 無監督神經機器翻譯. . . 307
15.4 未來方向. . . . . . . . . . . . . . 310
15.5 閱讀材料. . . . . . . . . . . . . . 311
15.6 短評:無監督機器翻譯之美及挑戰. . . . . . . . . . . . . . 311

第16 章融合知識的神經機器翻譯314
16.1 知識與機器翻譯. . . . . . . . . 315
16.1.1 內部知識. . . . . . . . . . 315
16.1.2 外部知識. . . . . . . . . . 316
16.2 語言學知識融合. . . . . . . . . 317
16.2.1 句法知識融合. . . . . . . 317
16.2.2 語義角色知識融合. . . . 319
16.2.3 指稱知識融合. . . . . . . 321
16.3 非語言學知識融合. . . . . . . 323
16.3.1 常識知識. . . . . . . . . . 323
16.3.2 知識圖譜融合. . . . . . . 325
16.4 雙語知識融合. . . . . . . . . . 327
16.4.1 雙語詞典融合. . . . . . . 327
記憶庫融合. . . . . . 328
16.5 內部知識遷移. . . . . . . . . . 331
16.5.1 知識蒸餾. . . . . . . . . . 331
16.5.2 預訓練模型知識遷移. . . 333
16.6 未來方向. . . . . . . . . . . . . . 336
16.7 閱讀材料. . . . . . . . . . . . . . 336
16.8 短評:淺談基於知識的機器翻譯. . . . . . . . . . . . . . . . 337

第17 章魯棒神經機器翻譯341
17.1 魯棒性概述. . . . . . . . . . . . 342
17.2 對抗魯棒性. . . . . . . . . . . . 345
17.3 對抗樣本生成. . . . . . . . . . 346
17.3.1 白盒攻擊. . . . . . . . . . 347
17.3.2 黑盒攻擊. . . . . . . . . . 350
17.4 對抗訓練. . . . . . . . . . . . . . 354
17.5 數據集. . . . . . . . . . . . . . . . 355
17.5.1 自然噪聲數據集. . . . . . 356
17.5.2 人工噪聲數據集. . . . . . 356
17.6 未來方向. . . . . . . . . . . . . . 357
17.6.1 對抗攻擊. . . . . . . . . . 357
17.6.2 對抗訓練. . . . . . . . . . 357
17.6.3 後門攻擊與數據投毒. . . 358
17.6.4 分佈之外魯棒性. . . . . . 358
17.7 閱讀材料. . . . . . . . . . . . . . 358
17.8 短評:神經機器翻譯是瘋子嗎?兼談其“幻想” . . . . 360

第18 章多語言神經機器
翻譯362
18.1 基本思想與形式化定義. . . 363
18.2 多語言機器翻譯vs. 雙語機器翻譯. . . . . . . . . . . . . . 364
18.2.1 雙語機器翻譯面臨的挑戰364
18.2.2 多語言神經機器翻譯的優勢. . . . . . . . . . . . . . 365
18.3 多語言神經機器翻譯模型. . 366
18.3.1 共享. . . . . . . . . . . . . 366
18.3.2 部分共享方法. . . . . . . 368
18.3.3 完全共享方法. . . . . . . 373
18.4 訓練數據採樣方法. . . . . . . 374
18.5 大規模多語言神經機器翻譯375
18.5.1 大規模平行語料數據獲取376
18.5.2 模型設計. . . . . . . . . . 378
18.5.3 模型訓練. . . . . . . . . . 380
18.6 多語言神經機器翻譯向雙語神經機器翻譯遷移. . . . . 383
18.7 未來方向. . . . . . . . . . . . . . 385
18.7.1 如何處理數據不平衡問題385
18.7.2 如何建模不同語言之間的關係. . . . . . . . . . . . 386
18.7.3 如何在不同語言間有效共享模型參數. . . . . . . . 387
18.7.4 如何有效構建多語言神經機器翻譯大模型. . . . . 387
18.8 閱讀材料. . . . . . . . . . . . . . 388
18.9 短評:多語言機器翻譯之美389

第19 章語音與視覺多模態神經機器翻譯392
19.1 文本模態之外的機器翻譯. . 393
19.2 端到端語音翻譯. . . . . . . . . 394
19.2.1 面臨的挑戰. . . . . . . . . 397
19.2.2 模型與方法. . . . . . . . . 397
19.2.3 數據集. . . . . . . . . . . . 405
19.2.4 未來方向. . . . . . . . . . 406
19.3 視覺引導的多模態神經機器翻譯. . . . . . . . . . . . . . . . 406
19.3.1 面臨的挑戰. . . . . . . . . 408
19.3.2 模型與方法. . . . . . . . . 409
19.3.3 數據集. . . . . . . . . . . . 414
19.3.4 未來方向. . . . . . . . . . 415
19.4 閱讀材料. . . . . . . . . . . . . . 416
19.4.1 端到端語音翻譯額外閱讀材料. . . . . . . . . . . . 416
19.4.2 視覺引導的多模態神經機器翻譯額外閱讀材料. . 417
19.5 短評:預訓練技術爭議與符號奠基問題. . . . . . . . . . . 418

第20 章發展趨勢與展望427
20.1 展望. . . . . . . . . . . . . . . . . . 428
20.2 本書未覆蓋內容. . . . . . . . . 429
20.2.1 數據倫理與安全. . . . . . 429
20.2.2 偏差. . . . . . . . . . . . . 431
20.2.3 翻譯風格. . . . . . . . . . 431
20.2.4 翻譯腔. . . . . . . . . . . . 431
20.2.5 音譯. . . . . . . . . . . . . 431
20.2.6 對話翻譯. . . . . . . . . . 432
20.2.7 非參數與半參數機器翻譯432
20.3 短評:科幻中的機器翻譯與未來機器翻譯. . . . . . . . . 432
參考文獻439
索引499