自然語言處理:基于預(yù)訓(xùn)練模型的方法
鏈接:https://pan.baidu.com/s/170U6oBoo-Hf0zIUub7Runw?pwd=6zbs?
提取碼:6zbs

精彩書評(píng)
自然語言處理被譽(yù)為“人工智能皇冠上的明珠”。近年來,以BERT、GPT 為代表的大規(guī)模預(yù)訓(xùn)練語言模型異軍突起,使問答、檢索、摘要、閱讀理解等自然語言處理任務(wù)性能都得到了顯著提升。《自然語言處理:基于預(yù)訓(xùn)練模型的方法》一書深入淺出地闡述了預(yù)訓(xùn)練語言模型技術(shù),全面深入地分析了它的發(fā)展方向,非常適合人工智能和自然語言處理領(lǐng)域的學(xué)習(xí)者和從事研發(fā)的人士閱讀。讀者可在較短的時(shí)間內(nèi)了解和掌握其關(guān)鍵技術(shù)并快速上手。
特此推薦!
周明
創(chuàng)新工場(chǎng)首席科學(xué)家
微軟亞洲研究院原副院長(zhǎng)
中國(guó)計(jì)算機(jī)學(xué)會(huì)副理事長(zhǎng)
國(guó)際計(jì)算語言學(xué)會(huì)(ACL)主席(2019 年)
預(yù)訓(xùn)練語言模型是當(dāng)今自然語言處理的核心技術(shù)。車萬翔教授等人所著的本書從基礎(chǔ)知識(shí)、預(yù)訓(xùn)練詞向量、預(yù)訓(xùn)練模型等幾個(gè)方面全面系統(tǒng)地介紹了該項(xiàng)技術(shù)。選題合理,立論明確,講述清晰,出版及時(shí)。相信每一位讀者都會(huì)從中獲得很大的收獲。向大家推薦!
李航
ACL/IEEE Fellow
字節(jié)跳動(dòng)人工智能實(shí)驗(yàn)室總監(jiān)
在運(yùn)動(dòng)智能和感知智能突飛猛進(jìn)的發(fā)展態(tài)勢(shì)下,以自然語言處理為核心的認(rèn)知智能已成為人工智能極大的挑戰(zhàn)。隨著業(yè)界對(duì)認(rèn)知智能重視程度的持續(xù)提升,基于預(yù)訓(xùn)練模型的自然語言處理方法一經(jīng)提出,便快速席卷了諸多NLP 任務(wù)。本書系統(tǒng)地介紹了該類方法,并配套了豐富的實(shí)踐案例和代碼,對(duì)于從事AI 技術(shù)研究和相關(guān)行業(yè)的愛好者而言,是一本不可多得的參考學(xué)習(xí)佳作!
胡郁
科大訊飛執(zhí)行總裁
目錄
目錄
推薦序/III
推薦語/IV
前言/V
數(shù)學(xué)符號(hào)/IX
第1 章緒論/1
1.1 自然語言處理的概念/2
1.2 自然語言處理的難點(diǎn)/2
1.2.1 抽象性/ 2
1.2.2 組合性/ 2
1.2.3 歧義性/3
1.2.4 進(jìn)化性/3
1.2.5 非規(guī)范性/3
1.2.6 主觀性/3
1.2.7 知識(shí)性/3
1.2.8 難移植性/4
1.3 自然語言處理任務(wù)體系/4
1.3.1 任務(wù)層級(jí)/4
1.3.2 任務(wù)類別/5
1.3.3 研究對(duì)象與層次/6
1.4 自然語言處理技術(shù)發(fā)展歷史/7
第2 章自然語言處理基礎(chǔ)/11
2.1 文本的表示/12
2.1.1 詞的獨(dú)熱表示/13
2.1.2 詞的分布式表示/13
2.1.3 詞嵌入表示/19
2.1.4 文本的詞袋表示 /19
2.2 自然語言處理任務(wù) /20
2.2.1 語言模型/20
2.2.2 自然語言處理基礎(chǔ)任務(wù)/23
2.2.3 自然語言處理應(yīng)用任務(wù)/31
2.3 基本問題 /35
2.3.1 文本分類問題/35
2.3.2 結(jié)構(gòu)預(yù)測(cè)問題/ 36
2.3.3 序列到序列問題/38
2.4 評(píng)價(jià)指標(biāo)/40
2.5 小結(jié)/43
第3 章基礎(chǔ)工具集與常用數(shù)據(jù)集45
3.1 NLTK 工具集/46
3.1.1 常用語料庫(kù)和詞典資源/46
3.1.2 常用自然語言處理工具集 /49
3.2 LTP 工具集/51
3.2.1 中文分詞/51
3.2.2 其他中文自然語言處理功能/52
3.3 PyTorch 基礎(chǔ)/52
3.3.1 張量的基本概念/53
3.3.2 張量的基本運(yùn)算/54
3.3.3 自動(dòng)微分/57
3.3.4 調(diào)整張量形狀/58
3.3.5 廣播機(jī)制/ 59
3.3.6 索引與切片/60
3.3.7 降維與升維 / 60
3.4 大規(guī)模預(yù)訓(xùn)練數(shù)據(jù) /61
3.4.1 維基百科數(shù)據(jù)/62
3.4.2 原始數(shù)據(jù)的獲取/62
3.4.3 語料處理方法/ 62
3.4.4 Common Crawl 數(shù)據(jù)/66
3.5 更多數(shù)據(jù)集 /66
3.6 小結(jié) /68
第4 章自然語言處理中的神經(jīng)網(wǎng)絡(luò)基礎(chǔ)/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 模型實(shí)現(xiàn) /76
4.2 卷積神經(jīng)網(wǎng)絡(luò)/78
4.2.1 模型結(jié)構(gòu) /78
4.2.2 模型實(shí)現(xiàn) /80
4.3 循環(huán)神經(jīng)網(wǎng)絡(luò)/83
4.3.1 模型結(jié)構(gòu)/ 83
4.3.2 長(zhǎng)短時(shí)記憶網(wǎng)絡(luò) / 85
4.3.3 模型實(shí)現(xiàn)/ 87
4.3.4 基于循環(huán)神經(jīng)網(wǎng)絡(luò)的序列到序列模型/88
4.4 注意力模型 /89
4.4.1 注意力機(jī)制/89
4.4.2 自注意力模型/90
4.4.3 Transformer/ 91
4.4.4 基于Transformer 的序列到序列模型/93
4.4.5 Transformer 模型的優(yōu)缺點(diǎn)/ 94
4.4.6 模型實(shí)現(xiàn)/94
4.5 神經(jīng)網(wǎng)絡(luò)模型的訓(xùn)練/96
4.5.1 損失函數(shù)/96
4.5.2 梯度下降 /98
4.6 情感分類實(shí)戰(zhàn)/101
4.6.1 詞表映射/101
4.6.2 詞向量層/ 102
4.6.3 融入詞向量層的多層感知器/103
4.6.4 數(shù)據(jù)處理/106
4.6.5 多層感知器模型的訓(xùn)練與測(cè)試/108
4.6.6 基于卷積神經(jīng)網(wǎng)絡(luò)的情感分類 / 109
4.6.7 基于循環(huán)神經(jīng)網(wǎng)絡(luò)的情感分類/110
4.6.8 基于Transformer 的情感分類/111
4.7 詞性標(biāo)注實(shí)戰(zhàn) /113
4.7.1 基于前饋神經(jīng)網(wǎng)絡(luò)的詞性標(biāo)注 /114
4.7.2 基于循環(huán)神經(jīng)網(wǎng)絡(luò)的詞性標(biāo)注 /114
4.7.3 基于Transformer 的詞性標(biāo)注/116
4.8 小結(jié)/116
第5 章靜態(tài)詞向量預(yù)訓(xùn)練模型/119
5.1 神經(jīng)網(wǎng)絡(luò)語言模型 /120
5.1.1 預(yù)訓(xùn)練任務(wù)/120
5.1.2 模型實(shí)現(xiàn)/124
5.2 Word2vec 詞向量 /130
5.2.1 概述/ 130
5.2.2 負(fù)采樣/133
5.2.3 模型實(shí)現(xiàn)/134
5.3 GloVe 詞向量/140
5.3.1 概述/140
5.3.2 預(yù)訓(xùn)練任務(wù)/140
5.3.3 參數(shù)估計(jì)/140
5.3.4 模型實(shí)現(xiàn)/141
5.4 評(píng)價(jià)與應(yīng)用/143
5.4.1 詞義相關(guān)性/144
5.4.2 類比性/146
5.4.3 應(yīng)用/147
5.5 小結(jié)/148
第6 章動(dòng)態(tài)詞向量預(yù)訓(xùn)練模型/151
6.1 詞向量——從靜態(tài)到動(dòng)態(tài)/ 152
6.2 基于語言模型的動(dòng)態(tài)詞向量預(yù)訓(xùn)練/153
6.2.1 雙向語言模型/153
6.2.2 ELMo 詞向量/155
6.2.3 模型實(shí)現(xiàn)/156
6.2.4 應(yīng)用與評(píng)價(jià)/169
6.3 小結(jié)/171
第7 章預(yù)訓(xùn)練語言模型/173
7.1 概述/174
7.1.1 大數(shù)據(jù)/174
7.1.2 大模型/175
7.1.3 大算力/175
7.2 GPT /177
7.2.1 無監(jiān)督預(yù)訓(xùn)練/178
7.2.2 有監(jiān)督下游任務(wù)精調(diào)/179
7.2.3 適配不同的下游任務(wù)/180
7.3 BERT/182
7.3.1 整體結(jié)構(gòu)/182
7.3.2 輸入表示/ 183
7.3.3 基本預(yù)訓(xùn)練任務(wù)/184
7.3.4 更多預(yù)訓(xùn)練任務(wù) /190
7.3.5 模型對(duì)比/194
7.4 預(yù)訓(xùn)練語言模型的應(yīng)用/194
7.4.1 概述/194
7.4.2 單句文本分類/195
7.4.3 句對(duì)文本分類/ 198
7.4.4 閱讀理解/201
7.4.5 序列標(biāo)注/206
7.5 深入理解BERT /211
7.5.1 概述/ 211
7.5.2 自注意力可視化分析 / 212
7.5.3 探針實(shí)驗(yàn)/ 213
7.6 小結(jié)/215
第8 章預(yù)訓(xùn)練語言模型進(jìn)階/217
8.1 模型優(yōu)化 /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 模型對(duì)比/234
8.2 長(zhǎng)文本處理 /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 模型對(duì)比/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 小結(jié)/267
第9 章多模態(tài)融合的預(yù)訓(xùn)練模型/269
9.1 多語言融合/ 270
9.1.1 多語言BERT /270
9.1.2 跨語言預(yù)訓(xùn)練語言模型 /272
9.1.3 多語言預(yù)訓(xùn)練語言模型的應(yīng)用/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 異構(gòu)知識(shí)融合/276
9.3.1 融入知識(shí)的預(yù)訓(xùn)練/277
9.3.2 多任務(wù)學(xué)習(xí) / 282
9.4 更多模態(tài)的預(yù)訓(xùn)練模型/285
9.5 小結(jié)/ 285
參考文獻(xiàn)/287
術(shù)語表/297
查看全部↓
精彩書摘
預(yù)訓(xùn)練模型并不是自然語言處理領(lǐng)域的“首創(chuàng)”技術(shù)。在計(jì)算機(jī)視覺(ComputerVision,CV)領(lǐng)域,以ImageNet[14] 為代表的大規(guī)模圖像數(shù)據(jù)為圖像識(shí)別、圖像分割等任務(wù)提供了良好的數(shù)據(jù)基礎(chǔ)。因此,在計(jì)算機(jī)視覺領(lǐng)域,通常會(huì)使用ImageNet進(jìn)行一次預(yù)訓(xùn)練,讓模型從海量圖像中充分學(xué)習(xí)如何從圖像中提取特征。然后,會(huì)根據(jù)具體的目標(biāo)任務(wù),使用相應(yīng)的領(lǐng)域數(shù)據(jù)精調(diào),使模型進(jìn)一步“靠近”目標(biāo)任務(wù)的應(yīng)用場(chǎng)景,起到領(lǐng)域適配和任務(wù)適配的作用。這好比人們?cè)谛W(xué)、初中和高中階段會(huì)學(xué)習(xí)數(shù)學(xué)、語文、物理、化學(xué)和地理等基礎(chǔ)知識(shí),夯實(shí)基本功并構(gòu)建基本的知識(shí)體系(預(yù)訓(xùn)練階段)。而當(dāng)人們步入大學(xué)后,將根據(jù)選擇的專業(yè)(目標(biāo)任務(wù))學(xué)習(xí)某一領(lǐng)域更深層次的知識(shí)(精調(diào)階段)。從以上介紹中可以看出,“預(yù)訓(xùn)練+ 精調(diào)”模式在自然語言處理領(lǐng)域的興起并非偶然現(xiàn)象。
由于自然語言處理的核心在于如何更好地建模語言,所以在自然語言處理領(lǐng)域中,預(yù)訓(xùn)練模型通常指代的是預(yù)訓(xùn)練語言模型。廣義上的預(yù)訓(xùn)練語言模型可以泛指提前經(jīng)過大規(guī)模數(shù)據(jù)訓(xùn)練的語言模型,包括早期的以Word2vec、GloVe 為代表的靜態(tài)詞向量模型,以及基于上下文建模的CoVe、ELMo 等動(dòng)態(tài)詞向量模型。在2018 年,以GPT 和BERT 為代表的基于深層Transformer 的表示模型出現(xiàn)后,預(yù)訓(xùn)練語言模型這個(gè)詞才真正被大家廣泛熟知。因此,目前在自然語言處理領(lǐng)域中提到的預(yù)訓(xùn)練語言模型大多指此類模型。預(yù)訓(xùn)練語言模型的出現(xiàn)使得自然語言處理進(jìn)入新的時(shí)代,也被認(rèn)為是近些年來自然語言處理領(lǐng)域中的里程碑事件。相比傳統(tǒng)的文本表示模型,預(yù)訓(xùn)練語言模型具有“三大”特點(diǎn)——大數(shù)據(jù)、大模型和大算力。接下來介紹這“三大”特點(diǎn)代表的具體含義。
1. 大數(shù)據(jù)
“工欲善其事,必先利其器?!币雽W(xué)習(xí)更加豐富的文本語義表示,就需要獲取文本在不同上下文中出現(xiàn)的情況,因此大規(guī)模的文本數(shù)據(jù)是必不可少的。獲取足夠多的大規(guī)模文本數(shù)據(jù)是訓(xùn)練一個(gè)好的預(yù)訓(xùn)練語言模型的開始。因此,預(yù)訓(xùn)練數(shù)據(jù)需要講究“保質(zhì)”和“保量”。
?“保質(zhì)”是希望預(yù)訓(xùn)練語料的質(zhì)量要盡可能高,避免混入過多的低質(zhì)量語料。這與訓(xùn)練普通的自然語言處理模型的標(biāo)準(zhǔn)基本是一致的;
?“保量”是希望預(yù)訓(xùn)練語料的規(guī)模要盡可能大,從而獲取更豐富的上下文信息。
在實(shí)際情況中,預(yù)訓(xùn)練數(shù)據(jù)往往來源不同。精細(xì)化地預(yù)處理所有不同來源的數(shù)據(jù)是非常困難的。因此,在預(yù)訓(xùn)練數(shù)據(jù)的準(zhǔn)備過程中,通常不會(huì)進(jìn)行非常精細(xì)化地處理,僅會(huì)預(yù)處理語料的共性問題。同時(shí),通過增大語料規(guī)模進(jìn)一步稀釋低質(zhì)量語料的比重,從而降低質(zhì)量較差的語料對(duì)預(yù)訓(xùn)練過程帶來的負(fù)面影響。
2. 大模型
在有了大數(shù)據(jù)后,就需要有一個(gè)足以容納這些數(shù)據(jù)的模型。數(shù)據(jù)規(guī)模和模型規(guī)模在一定程度上是正相關(guān)的。當(dāng)在小數(shù)據(jù)上訓(xùn)練模型時(shí),通常模型的規(guī)模不會(huì)太大,以避免出現(xiàn)過擬合現(xiàn)象。而當(dāng)在大數(shù)據(jù)上訓(xùn)練模型時(shí),如果不增大模型規(guī)模,可能會(huì)造成新的知識(shí)無法存放的情況,從而無法完全涵蓋大數(shù)據(jù)中豐富的語義信息。因此,需要一個(gè)容量足夠大的模型來學(xué)習(xí)和存放大數(shù)據(jù)中的各種特征。在機(jī)器學(xué)習(xí)中,“容量大”通常指的是模型的“參數(shù)量大”。那么,如何設(shè)計(jì)這樣一個(gè)參數(shù)量較大的模型呢?這里主要考慮以下兩個(gè)方面。
? 模型需要具有較高的并行程度,以彌補(bǔ)大模型帶來的訓(xùn)練速度下降的問題;
? 模型能夠捕獲并構(gòu)建上下文信息,以充分挖掘大數(shù)據(jù)文本中豐富的語義信息。
綜合以上兩點(diǎn)條件,基于Transformer 的神經(jīng)網(wǎng)絡(luò)模型成為目前構(gòu)建預(yù)訓(xùn)練語言模型的最佳選擇。首先,Transformer 模型具有較高的并行程度。Transformer 核心部分的多頭自注意力機(jī)制(Multi-head Self-attention)[15] 不依賴于順序建模,因此可以快速地并行處理。與此相反,傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)語言模型通常基于循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN),而RNN 需要按照序列順序處理,并行化程度較低。其次,Transformer 中的多頭自注意力機(jī)制能夠有效地捕獲不同詞之間的關(guān)聯(lián)程度,并且能夠通過多頭機(jī)制從不同維度刻畫這種關(guān)聯(lián)程度,使得模型能夠得到更加精準(zhǔn)的計(jì)算結(jié)果。因此,主流的預(yù)訓(xùn)練語言模型無一例外都使用了Transformer 作為模型的主體結(jié)構(gòu)。
3. 大算力
即使擁有了大數(shù)據(jù)和大模型,但如果沒有與之相匹配的大算力,預(yù)訓(xùn)練語言模型也很難得以實(shí)現(xiàn)。為了訓(xùn)練預(yù)訓(xùn)練語言模型,除了大家熟知的深度學(xué)習(xí)計(jì)算設(shè)備——圖形處理單元(Graphics Processing Unit, GPU),還有后起之秀——張量處理單元(Tensor Processing Unit, TPU)。下面就這兩種常見的深度學(xué)習(xí)計(jì)算設(shè)備進(jìn)行簡(jiǎn)單的介紹。
查看全部↓
前言/序言
推薦序
自然語言處理的目標(biāo)是使得機(jī)器具有和人類一樣的語言理解與運(yùn)用能力。在過去的十年里,自然語言處理經(jīng)歷了兩次里程碑式的重要發(fā)展。第一次是深度學(xué)習(xí)的勃興,使得傳統(tǒng)的特征工程方法被摒棄,而基于深度神經(jīng)網(wǎng)絡(luò)的表示學(xué)習(xí)迅速成為自然語言處理的主流。第二次則是2018 年以來大規(guī)模預(yù)訓(xùn)練語言模型的應(yīng)用,開啟了基于“預(yù)訓(xùn)練+ 精調(diào)”的新一代自然語言處理范式。每一次的發(fā)展都為自然語言處理系統(tǒng)的能力帶來了巨大的進(jìn)步。與此同時(shí),這些令人欣喜的發(fā)展也帶給我們很多關(guān)于語言智能的更本質(zhì)的思考。由車萬翔等人所著的《自然語言處理:基于預(yù)訓(xùn)練模型的方法》一書從預(yù)訓(xùn)練模型的角度對(duì)這兩次重要的發(fā)展進(jìn)行了系統(tǒng)性的論述,能夠幫助讀者深入理解這些技術(shù)背后的原理、相互之間的聯(lián)系以及潛在的局限性,對(duì)于當(dāng)前學(xué)術(shù)界和工業(yè)界的相關(guān)研究與應(yīng)用都具有重要的價(jià)值。
本書包括三部分,共9 章。書中從自然語言處理與神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)知識(shí)出發(fā),沿著預(yù)訓(xùn)練模型的發(fā)展軌跡系統(tǒng)討論了靜態(tài)詞向量、動(dòng)態(tài)詞向量,以及語言模型的預(yù)訓(xùn)練方法,還深入討論了模型優(yōu)化、蒸餾與壓縮、生成模型、多模態(tài)融合等前沿進(jìn)展,內(nèi)容上兼具廣度與深度。本書作者車萬翔等人研發(fā)的語言技術(shù)平臺(tái)LTP,是國(guó)內(nèi)自然語言處理領(lǐng)域較早、影響力大且仍在不斷發(fā)展完善的開源平臺(tái)之一。LTP 的“進(jìn)化”歷程也對(duì)應(yīng)著作者對(duì)于自然語言處理不同時(shí)期范式變遷的思考與實(shí)踐——從最初發(fā)