深入淺出 Embedding:原理解析與應用實踐

吳茂貴 王紅星 著

  • 出版商: 機械工業
  • 出版日期: 2021-05-01
  • 售價: $594
  • 貴賓價: 9.5$564
  • 語言: 簡體中文
  • 頁數: 320
  • 裝訂: 平裝
  • ISBN: 7111680642
  • ISBN-13: 9787111680642
  • 相關分類: 嵌入式系統
  • 立即出貨 (庫存 < 4)

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

相關主題

商品描述

這是一本系統、全面、理論與實踐相結合的Embedding技術指南,由資深的AI技術專家和高級數據科學家撰寫,得到了黃鐵軍、韋青、張崢、周明等中國人工智能領域領軍人物的一致好評和推薦。
在內容編排上,本書理論與實操兼顧,一方面系統講解了Embedding的基礎、技術、原理、方法和性能優化,一方面詳細列舉和分析了Embedding在機器學習性能提升、中英文翻譯、推薦系統等6個重要場景的應用實踐;在寫作方式上,秉承復雜問題簡單化的原則,盡量避免復雜的數學公式,採用可視化的表達方式,旨在降低本書的學習門檻,讓讀者能看得完、學得會。
全書一共16章,分為兩個部分。
第一部分(第1~9章)Embedding基礎知識
主要講解Embedding的基礎知識、原理以及如何讓Embedding落地的相關技術,如TensorFlow和PyTorch中的Embedding層、CNN算法、RNN算法、遷移學習方法等,重點介紹了Transformer和基於它的GPT、BERT預訓練模型及BERT的多種改進版本等。
第二部分(第10 ~16章)Embedding應用實例
通過6個實例介紹了Embedding及相關技術的實際應用,包括如何使用Embedding提升傳統機器學習性能,如何把Embedding技術應用到推薦系統中,如何使用Embedding技術提升NLP模型的性能等。

作者簡介

吳茂貴
資深大數據和人工智能技術專家,在BI、數據挖掘與分析、數據倉庫、機器學習等領域工作超過20年。在基於Spark、TensorFlow、PyTorch、Keras等的機器學習和深度學習方面有大量的工程實踐實踐,對Embedding有深入研究。
著有《深度實踐Spark機器學習》《Python深度學習:基於TensorFlow》《Python深度學習:基於Pytorch》等多部著作,廣受讀者好評。


王紅星
高級數據科學家,任職於博世(中國)投資有限公司蘇州分公司,負責BOSCH數據湖,數據分析與人工智能相關的產品與服務的設計和開發。
在大數據、機器學習、人工智能方面有豐富的實踐經驗。

目錄大綱

前言
第一部分 Embedding基礎知識
第1章 萬物皆可嵌入2
1.1 處理序列問題的一般步驟3
1.2 Word Embedding4
1.2.1 word2vec之前4
1.2.2 CBOW模型5
1.2.3 Skip-Gram模型6
1.2.4 可視化Skip-Gram模型實現過程8
1.2.5 Hierarchical Softmax優化14
1.2.6 Negative Sampling優化15
1.3 Item Embedding16
1.3.1 微軟推薦系統使用Item Embedding16
1.3.2 Airbnb推薦系統使用Item Embedding17
1.4 用Embedding處理分類特徵17
1.5 Graph Embedding20
1.5.1 DeepWalk方法21
1.5.2 LINE方法21
1.5.3 node2vec方法23
1.5.4 Graph Embedding在阿裡的應用23
1.5.5 知識圖譜助力推薦系統實例26
1.6 Contextual Word Embedding26
1.6.1 多種預訓練模型概述27
1.6.2 多種預訓練模型的發展脈絡29
1.6.3 各種預訓練模型的優缺點29
1.6.4 常用預訓練模型30
1.6.5 Transformer的應用32
1.7 使用Word Embedding實現中文自動摘要35
1.7.1 背景說明35
1.7.2 預處理中文語料庫35
1.7.3 生成詞向量36
1.7.4 把文檔的詞轉換為詞向量36
1.7.5 生成各主題的關鍵詞38
1.7.6 查看運行結果39
1.8 小結40
第2章 獲取Embedding的方法41
2.1 使用PyTorch的Embedding Layer41
2.1.1 語法格式41
2.1.2 簡單實例43
2.1.3 初始化44
2.2 使用TensorFlow 2.0的Embedding Layer45
2.2.1 語法格式45
2.2.2 簡單實例45
2.3 從預訓練模型獲取Embedding47
2.3.1 背景說明47
2.3.2 下載IMDB數據集47
2.3.3 進行分詞47
2.3.4 下載並預處理GloVe詞嵌入48
2.3.5 構建模型49
2.3.6 訓練模型50
2.3.7 可視化訓練結果50
2.3.8 不使用預訓練詞嵌入的情況51
2.4 小結53
第3章 電腦視覺處理54
3.1 捲積神經網絡54
3.1.1 捲積網絡的一般架構55
3.1.2 增加通道的魅力56
3.1.3 加深網絡的動機57
3.1.4 殘差連接58
3.2 使用預訓練模型59
3.2.1 遷移學習簡介59
3.2.2 使用預訓練模型的方法60
3.3 獲取預訓練模型63
3.4 使用PyTorch實現數據遷移實例64
3.4.1 特徵提取實例64
3.4.2 微調實例67
3.5 小結69
第4章 文本及序列處理70
4.1 循環網絡的基本結構70
4.1.1 標準循環神經網絡71
4.1.2 深度循環神經網絡72
4.1.3 LSTM網絡結構72
4.1.4 GRU網絡結構73
4.1.5 雙向循環神經網絡74
4.2 構建一些特殊模型75
4.2.1 Encoder-Decoder模型75
4.2.2 Seq2Seq模型77
4.3 小結77
第5章 註意力機制78
5.1 註意力機制概述78
5.1.1 兩種常見的註意力機制79
5.1.2 註意力機制的本質79
5.2 帶註意力機制的Encoder-Decoder模型81
5.2.1 引入註意力機制81
5.2.2 計算註意力分配值83
5.2.3 使用PyTorch實現帶註意力機制的Encoder-Decoder模型85
5.3 可視化Transformer88
5.3.1 Transformer的頂層設計89
5.3.2 Encoder與Decoder的輸入91
5.3.3 高並發長記憶的實現91
5.3.4 為加深Transformer網絡層保駕護航的幾種方法98
5.3.5 如何自監督學習98
5.4 使用PyTorch實現Transformer101
5.4.1 Transformer背景介紹101
5.4.2 構建Encoder-Decoder模型101
5.4.3 構建Encoder102
5.4.4 構建Decoder105
5.4.5 構建MultiHeadedAttention107
5.4.6 構建前饋網絡層109
5.4.7 預處理輸入數據109
5.4.8 構建完整網絡112
5.4.9 訓練模型113
5.4.10 實現一個簡單實例117
5.5 Transformer-XL119
5.5.1 引入循環機制119
5.5.2 使用相對位置編碼121
5.5.3 Transformer-XL計算過程122
5.6 使用PyTorch構建Transformer-XL123
5.6.1 構建單個Head Attention123
5.6.2 構建MultiHeadAttention126
5.6.3 構建Decoder129
5.7 Reformer130
5.7.1 使用局部敏感哈希130
5.7.2 使用可逆殘差網絡131
5.8 小結132
第6章 從Word Embedding到ELMo133
6.1 從word2vec到ELMo133
6.2 可視化ELMo原理134
6.2.1 字符編碼層135
6.2.2 雙向語言模型137
6.2.3 生成ELMo詞嵌入138
6.3 小結139
第7章 從ELMo到BERT和GPT140
7.1 ELMo的優缺點140
7.2 可視化BERT原理141
7.2.1 BERT的整體架構141
7.2.2 BERT的輸入143
7.2.3 掩碼語言模型144
7.2.4 預測下一個句子145
7.2.5 微調146
7.2.6 使用特徵提取方法147
7.3 使用PyTorch實現BERT148
7.3.1 BERTEmbedding類的代碼149
7.3.2 TransformerBlock類的代碼149
7.3.3 構建BERT的代碼150
7.4 可視化GPT原理151
7.4.1 GPT簡介151
7.4.2 GPT的整體架構151
7.4.3 GPT的模型結構152
7.4.4 GPT-2的Multi-Head與BERT的Multi-Head之間的區別153
7.4.5 GPT-2的輸入153
7.4.6 GPT-2計算遮掩自註意力的詳細過程154
7.4.7 輸出156
7.4.8 GPT與GPT-2的異同156
7.5 GPT-3簡介157
7.6 小結160
第8章 BERT的優化方法161
8.1 可視化XLNet原理162
8.1.1 排列語言模型簡介162
8.1.2 使用雙流自註意力機制163
8.1.3 融入Transformer-XL的理念164
8.1.4 改進後的效果164
8.2 ALBERT方法164
8.2.1 分解Vocabulary Embedding矩陣165
8.2.2 跨層共享參數167
8.2.3 用SOP代替NSP方法168
8.2.4 其他優化方法169
8.3 ELECTRA方法170
8.3.1 ELECTRA概述170
8.3.2 RTD結構171
8.3.3 損失函數171
8.3.4 ELECTRA與GAN的異同172
8.3.5 評估172
8.4 小結173
第9章 推薦系統174
9.1 推薦系統概述174
9.1.1 推薦系統的一般流程174
9.1.2 常用推薦算法175
9.2 協同過濾176
9.2.1 基於用戶的協同過濾176
9.2.2 基於物品的協同過濾177
9.3 深度學習在推薦系統中的應用178
9.3.1 協同過濾中與神經網絡結合178
9.3.2 融入多層感知機的推薦系統179
9.3.3 融入捲積網絡的推薦系統180
9.3.4 融入Transformer的推薦系統181
9.4 小結183
第二部分 Embedding應用實例
第10章 用Embedding表現分類特徵186
10.1 項目背景186
10.1.1 項目概述186
10.1.2 數據集說明187
10.2 TensorFlow 2詳細實現188
10.2.1 導入TensorFlow和其他庫188
10.2.2 導入數據集並創建dataframe188
10.2.3 將dataframe拆分為訓練、驗證和測試集189
10.2.4 用tf.data創建輸入流水線189
10.2.5 TensorFlow提供的幾種處理特徵列的方法190
10.2.6 選擇特徵193
10.2.7 創建網絡的輸入層194
10.2.8 創建、編譯和訓練模型194
10.2.9 可視化訓練過程195
10.2.10 測試模型196
10.3 小結197
第11章 用Embedding提升機器學習性能198
11.1 項目概述198
11.1.1 數據集簡介199
11.1.2 導入數據200
11.1.3 預處理數據201
11.1.4 定義公共函數203
11.2 使用Embedding提升神經網絡性能205
11.2.1 基於獨熱編碼的模型205
11.2.2 基於Embedding的模型207
11.3 構建XGBoost模型211
11.4 使用Embedding數據的XGBoost模型212
11.5 可視化Embedding數據213
11.6 小結215
第12章 用Transformer實現英譯中216
12.1 TensorFlow 2+實例概述216
12.2 預處理數據217
12.2.1 下載數據217
12.2.2 分割數據219
12.2.3 創建英文語料字典220
12.2.4 創建中文語料字典222
12.2.5 定義編碼函數222
12.2.6 過濾數據223
12.2.7 創建訓練集和驗證集223
12.3 構建Transformer模型225
12.3.1 Transformer模型架構圖225
12.3.2 架構說明226
12.3.3 構建scaled_dot_product_attention模塊226
12.3.4 構建MultiHeadAttention模塊227
12.3.5 構建point_wise_feed_forward_network模塊228
12.3.6 構建EncoderLayer模塊228
12.3.7 構建Encoder模塊229
12.3.8 構建DecoderLayer模塊230
12.3.9 構建Decoder模塊231
12.3.10 構建Transformer模型232
12.3.11 定義掩碼函數233
12.4 定義損失函數236
12.5 定義優化器237
12.6 訓練模型239
12.6.1 實例化Transformer239
12.6.2 設置checkpoint239
12.6.3 生成多種掩碼240
12.6.4 定義訓練模型函數240
12.6.5 訓練模型241
12.7 評估預測模型242
12.7.1 定義評估函數242
12.7.2 測試翻譯幾個簡單語句243
12.8 可視化註意力權重243
12.9 小結245
第13章 Embedding技術在推薦系統中的應用246
13.1 Embedding在Airbnb推薦系統中的應用246
13.2 Transformer在阿裡推薦系統中的應用249
13.3 BERT在美團推薦系統中的應用250
13.4 小結253
第14章 用BERT實現中文語句分類254
14.1 背景說明254
14.1.1 查看中文BERT字典里的一些信息255
14.1.2 使用tokenizer分割中文語句256
14.2 可視化BERT註意力權重256
14.2.1 BERT對MASK字的預測256
14.2.2 導入可視化需要的庫257
14.2.3 可視化258
14.3 用BERT預訓練模型微調下游任務259
14.3.1 準備原始文本數據259
14.3.2 將原始文本轉換成BERT的輸入格式260
14.3.3 定義讀取數據的函數261
14.3.4 讀取數據並進行數據轉換263
14.3.5 增加一個批量維度264
14.3.6 查看一個批次數據樣例265
14.3.7 微調BERT完成下游任務265
14.3.8 查看微調後模型的結構266
14.4 訓練模型267
14.4.1 定義預測函數267
14.4.2 訓練模型268
14.5 測試模型269
14.5.1 用新數據測試模型269
14.5.2 比較微調前後的數據異同270
14.5.3 可視化註意力權重271
14.6 小結272
第15章 用GPT-2生成文本273
15.1 GPT-2概述273
15.2 用GPT-2生成新聞275
15.2.1 定義隨機選擇函數275
15.2.2 使用預訓練模型生成新聞275
15.3 微調GPT-2生成戲劇文本277
15.3.1 讀取文件277
15.3.2 對文件進行分詞277
15.3.3 把數據集轉換為可迭代對象278
15.3.4 訓練模型278
15.3.5 使用模型生成文本279
15.4 小結280
第16章 Embedding技術總結281
16.1 Embedding技術回顧281
16.1.1 Embedding表示281
16.1.2 多種學習Embedding表示的算法282
16.1.3 幾種Embedding衍生技術283
16.1.4 Embedding技術的不足285
16.2 Embedding技術展望285
16.2.1 從Embedding的表示方面進行優化285
16.2.2 從Embedding的結構上進行優化286
16.3 小結286
附錄A 基於GPU的TensorFlow 2+、PyTorch 1+升級安裝287
附錄B 語言模型307