自然語言處理:基于預訓練模型的方法( 簡體 字) | |
作者:車萬翔,郭江,崔一鳴 | 類別:1. -> 程式設計 -> 自然語言 |
出版社:電子工業出版社 | 3dWoo書號: 54954 詢問書籍請說出此書號! 有庫存 NT售價: 590 元 |
出版日:7/1/2021 | |
頁數:320 | |
光碟數:0 | |
站長推薦: | |
印刷:黑白印刷 | 語系: ( 簡體 字 ) |
ISBN:9787121415128 | 加入購物車 │加到我的最愛 (請先登入會員) |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證, 繁體書的下載亦請直接連絡出版社) | |
推薦序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 自然語言處理被譽為“人工智能皇冠上的明珠”。深度學習等技術的引入為自然語言處理技術帶來了一場革命,尤其是近年來出現的基于預訓練模型的方法,已成為研究自然語言處理的新范式。本書在介紹自然語言處理、深度學習等基本概念的基礎上,重點介紹新的基于預訓練模型的自然語言處理技術。本書包括基礎知識、預訓練詞向量和預訓練模型三大部分:基礎知識部分介紹自然語言處理和深度學習的基礎知識和基本工具;預訓練詞向量部分介紹靜態詞向量和動態詞向量的預訓練方法及應用;預訓練模型部分介紹幾種典型的預訓練語言模型及應用,以及預訓練模型的最新進展。除了理論知識,本書還有針對性地結合具體案例提供相應的PyTorch 代碼實現,不僅能讓讀者對理論有更深刻的理解,還能快速地實現自然語言處理模型,達到理論和實踐的統一。本書既適合具有一定機器學習基礎的高等院校學生、研究機構的研究者,以及希望深入研究自然語言處理算法的計算機工程師閱讀,也適合對人工智能、深度學習和自然語言處理感興趣的學生和希望進入人工智能應用領域的研究者參考。
推薦序
自然語言處理的目標是使得機器具有和人類一樣的語言理解與運用能力。在過去的十年里,自然語言處理經歷了兩次里程碑式的重要發展。第一次是深度學習的勃興,使得傳統的特征工程方法被摒棄,而基于深度神經網絡的表示學習迅速成為自然語言處理的主流。第二次則是2018 年以來大規模預訓練語言模型的應用,開啟了基于“預訓練+ 精調”的新一代自然語言處理范式。每一次的發展都為自然語言處理系統的能力帶來了巨大的進步。與此同時,這些令人欣喜的發展也帶給我們很多關于語言智能的更本質的思考。由車萬翔等人所著的《自然語言處理:基于預訓練模型的方法》一書從預訓練模型的角度對這兩次重要的發展進行了系統性的論述,能夠幫助讀者深入理解這些技術背后的原理、相互之間的聯系以及潛在的局限性,對于當前學術界和工業界的相關研究與應用都具有重要的價值。 本書包括三部分,共9 章。書中從自然語言處理與神經網絡的基礎知識出發,沿著預訓練模型的發展軌跡系統討論了靜態詞向量、動態詞向量,以及語言模型的預訓練方法,還深入討論了模型優化、蒸餾與壓縮、生成模型、多模態融合等前沿進展,內容上兼具廣度與深度。本書作者車萬翔等人研發的語言技術平臺LTP,是國內自然語言處理領域較早、影響力大且仍在不斷發展完善的開源平臺之一。LTP 的“進化”歷程也對應著作者對于自然語言處理不同時期范式變遷的思考與實踐——從最初發布時使用的傳統機器學習方法,到基于深度學習的多任務學習框架,再到近年來發布的基于預訓練模型的統一框架。可以說,本書的問世是作者多年深耕于自然語言處理領域的自然結果。 本書的一大特色是含有豐富的實踐內容。作者均為活躍在科研一線的青年學者,極具實戰經驗。書中為代表性的模型提供了規范的示例代碼以及實踐指導,這對于剛剛進入自然語言處理領域并熱愛實踐與應用的讀者而言是一份難得的學習資源。本書可以作為計算機科學、人工智能和機器學習專業的學生、研究者,以及人工智能應用開發者的參考書,也適合高校教師和研究機構的研究人員閱讀。 孫茂松 歐洲科學院外籍院士 清華大學人工智能研究院常務副院長、計算機系教授 推薦語 自然語言處理被譽為“人工智能皇冠上的明珠”。近年來,以BERT、GPT 為代表 的大規模預訓練語言模型異軍突起,使問答、檢索、摘要、閱讀理解等自然語言處理任 務性能都得到了顯著提升。《自然語言處理:基于預訓練模型的方法》一書深入淺出地 闡述了預訓練語言模型技術,全面深入地分析了它的發展方向,非常適合人工智能和自 然語言處理領域人士閱讀。讀者可在較短的時間內了解和掌握其關鍵技術并快速上手。 特此推薦! 周明 創新工場首席科學家 微軟亞洲研究院原副院長 中國計算機學會副理事長 國際計算語言學會(ACL)主席(2019 年) 預訓練語言模型是當今自然語言處理的核心技術。車萬翔教授等人所著的本書從基礎知識、預訓練詞向量、預訓練模型等幾個方面全面系統地介紹了該項技術。選題合理,立論明確,講述清晰,出版及時。相信每一位讀者都會從中獲得很大的收獲。向大家推薦! 李航 ACL/IEEE Fellow 字節跳動人工智能實驗室總監 在運動智能和感知智能突飛猛進的發展態勢下,以自然語言處理為核心的認知智能已成為人工智能極大的挑戰。隨著業界對認知智能重視程度的持續提升,基于預訓練模型的自然語言處理方法一經提出,便快速席卷了諸多NLP 任務。本書系統地介紹了該類方法,并配套了豐富的實踐案例和代碼,對于從事AI 技術研究和相關行業的愛好者而言,是一本不可多得的參考學習佳作! 胡郁 科大訊飛執行總裁 前言 自然語言是人類思維的載體和交流的基本工具,也是人類區別于動物的根本標志,更是人類智能發展的重要外在體現形式。自然語言處理(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 月 |