商品簡介
自然語言處理被譽為“人工智能皇冠上的明珠”。深度學習等技術的引入為自然語言處理技術帶來了一場革命,尤其是近年來出現的基於預訓練模型的方法,已成為研究自然語言處理的新範式。本書在介紹自然語言處理、深度學習等基本概念的基礎上,重點介紹新的基於預訓練模型的自然語言處理技術。本書包括基礎知識、預訓練詞向量和預訓練模型三大部分:基礎知識部分介紹自然語言處理和深度學習的基礎知識和基本工具;預訓練詞向量部分介紹靜態詞向量和動態詞向量的預訓練方法及應用;預訓練模型部分介紹幾種典型的預訓練語言模型及應用,以及預訓練模型的新進展。除了理論知識,本書還有針對性地結合具體案例提供相應的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期刊審稿人職務。
名人/編輯推薦
√ 本書得到歐洲科學院外籍院士、清華大學人工智能研究院常務副院長孫茂松教授作序。
√ 創新工場首席科學家、微軟亞洲研究院原副院長、中國計算機學會副理事長、國際計算語言學會(ACL)(2019年)主席周明老師,字節跳動人工智能實驗室總監李航教授,科大訊飛執行總裁胡鬱老師傾力推薦。
√ 本書從基礎知識、預訓練詞向量、預訓練模型等幾大方面全面系統地介紹了預訓練語言模型技術。
√ 書中為代表性的模型提供了規範的示例代碼及實踐案例。
√ 本書采用全彩印刷,提供良好的閱讀體驗。
序
推薦序
自然語言處理的目標是使得機器具有和人類一樣的語言理解與運用能力。在過去的十年裡,自然語言處理經歷了兩次裡程碑式的重要發展。第一次是深度學習的勃興,使得傳統的特征工程方法被摒棄,而基於深度神經網絡的表示學習迅速成為自然語言處理的主流。第二次則是2018 年以來大規模預訓練語言模型的應用,開啟了基於“預訓練+ 精調”的新一代自然語言處理範式。每一次的發展都為自然語言處理系統的能力帶來了巨大的進步。與此同時,這些令人欣喜的發展也帶給我們很多關於語言智能的更本質的思考。由車萬翔等人所著的《自然語言處理:基於預訓練模型的方法》一書從預訓練模型的角度對這兩次重要的發展進行了系統性的論述,能夠幫助讀者深入理解這些技術背後的原理、相互之間的聯系以及潛在的局限性,對於當前學術界和工業界的相關研究與應用都具有重要的價值。
本書包括三部分,共9 章。書中從自然語言處理與神經網絡的基礎知識出發,沿著預訓練模型的發展軌跡系統討論了靜態詞向量、動態詞向量,以及語言模型的預訓練方法,還深入討論了模型優化、蒸餾與壓縮、生成模型、多模態融合等前沿進展,內容上兼具廣度與深度。本書作者車萬翔等人研發的語言技術平臺LTP,是國內自然語言處理領域較早、影響力大且仍在不斷發展完善的開源平臺之一。LTP 的“進化”歷程也對應著作者對於自然語言處理不同時期範式變遷的思考與實踐——從最初發布時使用的傳統機器學習方法,到基於深度學習的多任務學習框架,再到近年來發布的基於預訓練模型的統一框架。可以說,本書的問世是作者多年深耕於自然語言處理領域的自然結果。
本書的一大特色是含有豐富的實踐內容。作者均為活躍在科研一線的青年學者,極具實戰經驗。書中為代表性的模型提供了規範的示例代碼以及實踐指導,這對於剛剛進入自然語言處理領域並熱愛實踐與應用的讀者而言是一份難得的學習資源。本書可以作為計算機科學、人工智能和機器學習專業的學生、研究者,以及人工智能應用開發者的參考書,也適合高校教師和研究機構的研究人員閱讀。
孫茂松
歐洲科學院外籍院士
清華大學人工智能研究院常務副院長、計算機系教授
前言
自然語言是人類思維的載體和交流的基本工具,也是人類區別於動物的根本標志,更是人類智能發展的重要外在體現形式。自然語言處理(Natural LanguageProcessing,NLP)主要研究用計算機理解和生成自然語言的各種理論與方法,屬於人工智能領域的一個重要的甚至處於核心的地位分支。隨著互聯網的快速發展,網絡文本規模呈爆炸性增長,為自然語言處理提出了巨大的應用需求。同時,自然語言處理研究也為人們更深刻地理解語言的機理和社會的機制提供了一條重要的途徑,因此具有重要的科學意義。
自然語言處理技術經歷了從早期的理性主義到後來的經驗主義的轉變。近十年來,深度學習技術快速發展,引發了自然語言處理領域一系列的變革。但是基於深度學習的算法有一個嚴重的缺點,就是過度依賴於大規模的有標注數據。2018年以來,以BERT、GPT 為代表的超大規模預訓練語言模型恰好彌補了自然語言處理標注數據不足的這一缺點,幫助自然語言處理取得了一系列的突破,使得包括閱讀理解在內的眾多自然語言處理任務的性能都得到了大幅提高,在有些數據集上甚至達到或超過了人類水平。那麼,預訓練模型是如何獲得如此強大的威力甚至“魔力”的呢?希望本書能夠為各位讀者揭開預訓練模型的神秘面紗。
本書主要內容
本書內容分為三部分:基礎知識、預訓練詞向量和預訓練模型。各部分內容安排如下。
第1 部分:基礎知識。包括第2~4 章,主要介紹自然語言處理和深度學習的基礎知識、基本工具集和常用數據集。
第2 章首先介紹文本的向量表示方法,重點介紹詞嵌入表示。其次介紹自然語言處理的三大任務,包括語言模型、基礎任務和應用任務。雖然這些任務看似紛繁復雜,但是基本可以歸納為三類問題,即文本分類問題、結構預測問題和序列到序列問題。最後介紹自然語言處理任務的評價方法。
第3 章首先介紹兩種常用的自然語言處理基礎工具集——NLTK 和LTP。其次介紹本書使用的深度學習框架PyTorch。最後介紹自然語言處理中常用的大規模預訓練數據。
第4 章首先介紹自然語言處理中常用的四種神經網絡模型:多層感知器模型、卷積神經網絡、循環神經網絡,以及以Transformer 為代表的自注意力模型。其次介紹模型的參數優化方法。最後通過兩個綜合性的實戰項目,介紹如何使用深度學習模型解決一個實際的自然語言處理問題。
第2 部分:預訓練詞向量。包括第5、6 章,主要介紹靜態詞向量和動態詞向量兩種詞向量的預訓練方法及應用。
第5 章介紹基於語言模型以及基於詞共現兩大類方法的靜態詞向量的預訓練技術,它們能夠通過自監督學習方法,從未標注文本中獲得詞匯級別的語義表示。最後提供對應的代碼實現。
第6 章介紹基於雙向LSTM 語言模型的動態詞向量的預訓練技術,它們能夠根據詞語所在的不同上下文賦予不同的詞向量表示,並作為特征進一步提升下遊任務的性能。最後同樣提供對應的代碼實現。
第3 部分:預訓練模型。包括第7~9 章,首先介紹幾種典型的預訓練語言模型及應用,其次介紹目前預訓練語言模型的最新進展及融入更多模態的預訓練模型。
第7 章首先介紹兩種典型的預訓練語言模型,即以GPT 為代表的基於自回歸的預訓練語言模型和以BERT 為代表的基於非自回歸的預訓練語言模型,其次介紹如何將預訓練語言模型應用於典型的自然語言處理任務。
第8 章主要從四個方面介紹預訓練語言模型最新的進展,包括用於提高模型準確率的模型優化方法,用於提高模型表示能力的長文本處理方法,用於提高模型可用性的模型蒸餾與壓縮方法,以及用於提高模型應用範圍的生成模型。
第9 章在介紹語言之外,還融合更多模態的預訓練模型,包括多種語言的融合、多種媒體的融合以及多種異構知識的融合等。
致謝
本書第1~4 章及第9 章部分內容由哈爾濱工業大學車萬翔教授編寫;第5、6 章及第8、9章部分內容由美國麻省理工學院(MIT)郭江博士後編寫;第7 章及第8 章主要內容由科大訊飛主管研究員崔一鳴編寫。全書由哈爾濱工業大學劉挺教授主審。
本書的編寫參閱了大量的著作和相關文獻,在此一並表示衷心的感謝!
感謝宋亞東先生和電子工業出版社博文視點對本書的重視,以及為本書出版所做的一切。
由於作者水平有限,書中不足及錯誤之處在所難免,敬請專家和讀者給予批評指正。
車萬翔
2021 年3 月
目次
目錄
推薦序/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
書摘/試閱
預訓練模型並不是自然語言處理領域的“首創”技術。在計算機視覺(ComputerVision,CV)領域,以ImageNet[14] 為代表的大規模圖像數據為圖像識別、圖像分割等任務提供了良好的數據基礎。因此,在計算機視覺領域,通常會使用ImageNet進行一次預訓練,讓模型從海量圖像中充分學習如何從圖像中提取特征。然後,會根據具體的目標任務,使用相應的領域數據精調,使模型進一步“靠近”目標任務的應用場景,起到領域適配和任務適配的作用。這好比人們在小學、初中和高中階段會學習數學、語文、物理、化學和地理等基礎知識,夯實基本功並構建基本的知識體系(預訓練階段)。而當人們步入大學後,將根據選擇的專業(目標任務)學習某一領域更深層次的知識(精調階段)。從以上介紹中可以看出,“預訓練+ 精調”模式在自然語言處理領域的興起並非偶然現象。
由於自然語言處理的核心在於如何更好地建模語言,所以在自然語言處理領域中,預訓練模型通常指代的是預訓練語言模型。廣義上的預訓練語言模型可以泛指提前經過大規模數據訓練的語言模型,包括早期的以Word2vec、GloVe 為代表的靜態詞向量模型,以及基於上下文建模的CoVe、ELMo 等動態詞向量模型。在2018 年,以GPT 和BERT 為代表的基於深層Transformer 的表示模型出現後,預訓練語言模型這個詞才真正被大家廣泛熟知。因此,目前在自然語言處理領域中提到的預訓練語言模型大多指此類模型。預訓練語言模型的出現使得自然語言處理進入新的時代,也被認為是近些年來自然語言處理領域中的裡程碑事件。相比傳統的文本表示模型,預訓練語言模型具有“三大”特點——大數據、大模型和大算力。接下來介紹這“三大”特點代表的具體含義。
1. 大數據
“工欲善其事,必先利其器。”要想學習更加豐富的文本語義表示,就需要獲取文本在不同上下文中出現的情況,因此大規模的文本數據是必不可少的。獲取足夠多的大規模文本數據是訓練一個好的預訓練語言模型的開始。因此,預訓練數據需要講究“保質”和“保量”。
•“保質”是希望預訓練語料的質量要盡可能高,避免混入過多的低質量語料。這與訓練普通的自然語言處理模型的標準基本是一致的;
•“保量”是希望預訓練語料的規模要盡可能大,從而獲取更豐富的上下文信息。
在實際情況中,預訓練數據往往來源不同。精細化地預處理所有不同來源的數據是非常困難的。因此,在預訓練數據的準備過程中,通常不會進行非常精細化地處理,僅會預處理語料的共性問題。同時,通過增大語料規模進一步稀釋低質量語料的比重,從而降低質量較差的語料對預訓練過程帶來的負面影響。
2. 大模型
在有了大數據後,就需要有一個足以容納這些數據的模型。數據規模和模型規模在一定程度上是正相關的。當在小數據上訓練模型時,通常模型的規模不會太大,以避免出現過擬合現象。而當在大數據上訓練模型時,如果不增大模型規模,可能會造成新的知識無法存放的情況,從而無法完全涵蓋大數據中豐富的語義信息。因此,需要一個容量足夠大的模型來學習和存放大數據中的各種特征。在機器學習中,“容量大”通常指的是模型的“參數量大”。那麼,如何設計這樣一個參數量較大的模型呢?這裡主要考慮以下兩個方面。
• 模型需要具有較高的並行程度,以彌補大模型帶來的訓練速度下降的問題;
• 模型能夠捕獲並構建上下文信息,以充分挖掘大數據文本中豐富的語義信息。
綜合以上兩點條件,基於Transformer 的神經網絡模型成為目前構建預訓練語言模型的最佳選擇。首先,Transformer 模型具有較高的並行程度。Transformer 核心部分的多頭自注意力機制(Multi-head Self-attention)[15] 不依賴於順序建模,因此可以快速地並行處理。與此相反,傳統的神經網絡語言模型通常基於循環神經網絡(RNN),而RNN 需要按照序列順序處理,並行化程度較低。其次,Transformer 中的多頭自注意力機制能夠有效地捕獲不同詞之間的關聯程度,並且能夠通過多頭機制從不同維度刻畫這種關聯程度,使得模型能夠得到更加精準的計算結果。因此,主流的預訓練語言模型無一例外都使用了Transformer 作為模型的主體結構。
3. 大算力
即使擁有了大數據和大模型,但如果沒有與之相匹配的大算力,預訓練語言模型也很難得以實現。為了訓練預訓練語言模型,除了大家熟知的深度學習計算設備——圖形處理單元(Graphics Processing Unit, GPU),還有後起之秀——張量處理單元(Tensor Processing Unit, TPU)。下面就這兩種常見的深度學習計算設備進行簡單的介紹。
主題書展
更多書展本週66折
您曾經瀏覽過的商品
購物須知
大陸出版品因裝訂品質及貨運條件與台灣出版品落差甚大,除封面破損、內頁脫落等較嚴重的狀態,其餘商品將正常出貨。
特別提醒:部分書籍附贈之內容(如音頻mp3或影片dvd等)已無實體光碟提供,需以QR CODE 連結至當地網站註冊“並通過驗證程序”,方可下載使用。
無現貨庫存之簡體書,將向海外調貨:
海外有庫存之書籍,等候約45個工作天;
海外無庫存之書籍,平均作業時間約60個工作天,然不保證確定可調到貨,尚請見諒。
為了保護您的權益,「三民網路書店」提供會員七日商品鑑賞期(收到商品為起始日)。
若要辦理退貨,請在商品鑑賞期內寄回,且商品必須是全新狀態與完整包裝(商品、附件、發票、隨貨贈品等)否則恕不接受退貨。