自然語言處理:基於預訓練模型的方法

車萬翔,郭江,崔一鳴

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

商品描述

自然語言處理被譽為“人工智能皇冠上的明珠”。深度學習等技術的引入為自然語言處理技術帶來了一場革命,尤其是近年來出現的基於預訓練模型的方法,已成為研究自然語言處理的新範式。本書在介紹自然語言處理、深度學習等基本概念的基礎上,重點介紹新的基於預訓練模型的自然語言處理技術。本書包括基礎知識、預訓練詞向量和預訓練模型三大部分:基礎知識部分介紹自然語言處理和深度學習的基礎知識和基本工具;預訓練詞向量部分介紹靜態詞向量和動態詞向量的預訓練方法及應用;預訓練模型部分介紹幾種典型的預訓練語言模型及應用,以及預訓練模型的最新進展。除了理論知識,本書還有針對性地結合具體案例提供相應的PyTorch 代碼實現,不僅能讓讀者對理論有更深刻的理解,還能快速地實現自然語言處理模型,達到理論和實踐的統一。本書既適合具有一定機器學習基礎的高等院校學生、研究機構的研究者,以及希望深入研究自然語言處理算法的電腦工程師閱讀,也適合對人工智能、深度學習和自然語言處理感興趣的學生和希望進入人工智能應用領域的研究者參考。

作者簡介

車萬翔
博士,哈爾濱工業大學計算學部長聘教授、博士生導師,社會計算與信息檢索研究中心副主任。
教育部青年長江學者,黑龍江省“龍江學者”青年學者,斯坦福大學訪問學者。現任中國中文信息學會計算語言學專業委員會副主任兼秘書長;國際計算語言學學會亞太分會(AACL)執委兼秘書長;中國計算機學會高級會員。
在ACL、EMNLP、AAAI、IJCAI等國內外高水平期刊和會議上發表學術論文50餘篇,其中AAAI 2013年的文章獲得了最佳論文提名獎,論文累計被引用4,600餘次(Google Scholar數據),H-index值為37。出版教材 2 部,譯著 2 部。
目前承擔2030“新一代人工智能”重大項目課題、國家自然科學基金等多項科研項目。
負責研發的語言技術平台(LTP)已被600餘家單位共享,提供的在線“語言雲”服務已有用戶1萬餘人,並授權給百度、騰訊、華為等公司使用。 
2018、2019連續兩年獲CoNLL國際評測No.1。
2020年獲黑龍江省青年科技獎;2015、2016連續兩年獲Google Focused Research Award(谷歌專注研究獎);2016年獲黑龍江省科技進步一等獎(排名第2);2012年獲黑龍江省技術發明獎二等獎(排名第2);2010年獲中國中文信息學會“錢偉長”中文信息處理科學技術獎一等獎(排名第2)、首屆漢王青年創新獎(個人)等多項獎勵。 2017年,所主講的MOOC課程《高級語言程序設計(Python)》獲國家精品在線開放課程。


郭江
麻省理工學院計算機科學與人工智能實驗室,博士後研究員。
畢業於哈爾濱工業大學社會計算與信息檢索研究中心,約翰斯·霍普金斯大學聯合培養博士,研究方向為自然語言處理與機器學習。在人工智能、自然語言處理領域國際重要會議及期刊(如ACL、EMNLP、AAAI等)發表論文20餘篇。
是被業界廣泛應用的中文語言技術平台LTP的主要研發者之一。 
2015年,獲百度獎學金;2018年,獲中文信息學會“優秀博士學位論文”提名獎。


崔一鳴
科大訊飛北京研究院副院長、資深級主管研究員。
畢業於哈爾濱工業大學,獲工學學士和碩士學位,並繼續攻讀博士學位。
主要從事閱讀理解、預訓練模型等自然語言處理相關領域的核心技術研究工作,致力於推動中文機器閱讀理解和中文預訓練模型的研究與發展。
曾多次獲得機器翻譯、機器閱讀理解、自然語言理解評測冠軍,其中包括機器閱讀理解權威評測SQuAD、自然語言理解權威評測GLUE等。
所研製的中文閱讀理解及預訓練模型開源項目被業界廣泛應用,在GitHub累計獲得1萬以上星標,HuggingFace平台月均調用量達到100萬次。
發表學術論文30餘篇(包括ACL、EMNLP、AAAI等高水平論文),申請發明專利20餘項。
擔任EMNLP 2021和NLPCC 2021領域主席,擔任NLP和AI領域頂級國際會議和國際ESI期刊審稿人職務。

目錄大綱

目錄
推薦序/III
推薦語/IV
前言/V
數學符號/IX
第1 章緒論/1
1.1 自然語言處理的概念/2
1.2 自然語言處理的難點/2
1.2.1 抽象性/ 2
1.2.2 組合性/ 2
1.2.3 歧義性/3
1.2.4 進化性/3
1.2.5 非規範性/3
1.2.6 主觀性/3
1.2.7 知識性/3
1.2.8 難移植性/4
1.3 自然語言處理任務體系/4
1.3.1 任務層級/4
1.3.2 任務類別/5
1.3.3 研究對象與層次/6
1.4 自然語言處理技術發展歷史/7

第2 章自然語言處理基礎/11
2.1 文本的表示/12
2.1.1 詞的獨熱表示/13
2.1.2 詞的分佈式表示/13
2.1.3 詞嵌入表示/19
2.1.4 文本的詞袋表示 /19
2.2 自然語言處理任務 /20
2.2.1 語言模型/20
2.2.2 自然語言處理基礎任務/23
2.2.3 自然語言處理應用任務/31
2.3 基本問題 /35
2.3.1 文本分類問題/35
2.3.2 結構預測問題/ 36
2.3.3 序列到序列問題/38
2.4 評價指標/40
2.5 小結/43

第3 章基礎工具集與常用數據集45
3.1 NLTK 工具集/46
3.1.1 常用語料庫和詞典資源/46
3.1.2 常用自然語言處理工具集 /49
3.2 LTP 工具集/51
3.2.1 中文分詞/51
3.2.2 其他中文自然語言處理功能/52
3.3 PyTorch 基礎/52
3.3.1 張量的基本概念/53
3.3.2 張量的基本運算/54
3.3.3 自動微分/57
3.3.4 調整張量形狀/58
3.3.5 廣播機制/ 59
3.3.6 索引與切片/60
3.3.7 降維與升維 / 60
3.4 大規模預訓練數據 /61
3.4.1 維基百科數據/62
3.4.2 原始數據的獲取/62
3.4.3 語料處理方法/ 62
3.4.4 Common Crawl 數據/66
3.5 更多數據集 /66
3.6 小結 /68

第4 章自然語言處理中的神經網絡基礎/69
4.1 多層感知器模型/70
4.1.1 感知器/70
4.1.2 線性回歸 /71
4.1.3 Logistic 回歸/71
4.1.4 Softmax 回歸 /72
4.1.5 多層感知器 /74
4.1.6 模型實現 /76
4.2 卷積神經網絡/78
4.2.1 模型結構 /78
4.2.2 模型實現 /80
4.3 循環神經網絡/83
4.3.1 模型結構/ 83
4.3.2 長短時記憶網絡 / 85
4.3.3 模型實現/ 87
4.3.4 基於循環神經網絡的序列到序列模型/88
4.4 注意力模型 /89
4.4.1 注意力機制/89
4.4.2 自註意力模型/90
4.4.3 Transformer/ 91
4.4.4 基於Transformer 的序列到序列模型/93
4.4.5 Transformer 模型的優缺點/ 94
4.4.6 模型實現/94
4.5 神經網絡模型的訓練/96
4.5.1 損失函數/96
4.5.2 梯度下降 /98
4.6 情感分類實戰/101
4.6.1 詞表映射/101
4.6.2 詞向量層/ 102
4.6.3 融入詞向量層的多層感知器/103
4.6.4 數據處理/106
4.6.5 多層感知器模型的訓練與測試/108
4.6.6 基於卷積神經網絡的情感分類 / 109
4.6.7 基於循環神經網絡的情感分類/110
4.6.8 基於Transformer 的情感分類/111
4.7 詞性標註實戰 /113
4.7.1 基於前饋神經網絡的詞性標註 /114
4.7.2 基於循環神經網絡的詞性標註 /114
4.7.3 基於Transformer 的詞性標註/116
4.8 小結/116

第5 章靜態詞向量預訓練模型/119
5.1 神經網絡語言模型 /120
5.1.1 預訓練任務/120
5.1.2 模型實現/124
5.2 Word2vec 詞向量 /130
5.2.1 概述/ 130
5.2.2 負採樣/133
5.2.3 模型實現/134
5.3 GloVe 詞向量/140
5.3.1 概述/140
5.3.2 預訓練任務/140
5.3.3 參數估計/140
5.3.4 模型實現/141
5.4 評價與應用/143
5.4.1 詞義相關性/144
5.4.2 類比性/146
5.4.3 應用/147
5.5 小結/148

第6 章動態詞向量預訓練模型/151
6.1 詞向量——從靜態到動態/ 152
6.2 基於語言模型的動態詞向量預訓練/153
6.2.1 雙向語言模型/153
6.2.2 ELMo 詞向量/155
6.2.3 模型實現/156
6.2.4 應用與評價/169
6.3 小結/171

第7 章預訓練語言模型/173
7.1 概述/174
7.1.1 大數據/174
7.1.2 大模型/175
7.1.3 大算力/175
7.2 GPT /177
7.2.1 無監督預訓練/178
7.2.2 有監督下游任務精調/179
7.2.3 適配不同的下游任務/180
7.3 BERT/182
7.3.1 整體結構/182
7.3.2 輸入表示/ 183
7.3.3 基本預訓練任務/184
7.3.4 更多預訓練任務 /190
7.3.5 模型對比/194
7.4 預訓練語言模型的應用/194
7.4.1 概述/194
7.4.2 單句文本分類/195
7.4.3 句對文本分類/ 198
7.4.4 閱讀理解/201
7.4.5 序列標註/206
7.5 深入理解BERT /211
7.5.1 概述/ 211
7.5.2 自註意力可視化分析 / 212
7.5.3 探針實驗/ 213
7.6 小結/215

第8 章預訓練語言模型進階/217
8.1 模型優化 /218
8.1.1 XLNet/218
8.1.2 RoBERTa/223
8.1.3 ALBERT/227
8.1.4 ELECTRA/229
8.1.5 MacBERT/232
8.1.6 模型對比/234
8.2 長文本處理 /234
8.2.1 概述/234
8.2.2 Transformer-XL/235
8.2.3 Reformer/238
8.2.4 Longformer /242
8.2.5 BigBird/243
8.2.6 模型對比/244
8.3 模型蒸餾與壓縮 / 244
8.3.1 概述/244
8.3.2 DistilBERT /246
8.3.3 TinyBERT/ 248
8.3.4 MobileBERT /250
8.3.5 TextBrewer/252
8.4 生成模型/ 257
8.4.1 BART / 257
8.4.2 UniLM/260
8.4.3 T5 /263
8.4.4 GPT-3/264
8.4.5 可控文本生成 /265
8.5 小結/267

第9 章多模態融合的預訓練模型/269
9.1 多語言融合/ 270
9.1.1 多語言BERT /270
9.1.2 跨語言預訓練語言模型 /272
9.1.3 多語言預訓練語言模型的應用/273
9.2 多媒體融合/274
9.2.1 VideoBERT /274
9.2.2 VL-BERT / 275
9.2.3 DALL·E/ 275
9.2.4 ALIGN/276
9.3 異構知識融合/276
9.3.1 融入知識的預訓練/277
9.3.2 多任務學習 / 282
9.4 更多模態的預訓練模型/285
9.5 小結/ 285

參考文獻/287
術語表/297