首頁  >  文章  >  科技週邊  >  初探自然語言預訓練技術演進之路

初探自然語言預訓練技術演進之路

王林
王林轉載
2023-04-11 22:04:041122瀏覽

人工智慧的三個層次:

運算職能:資料的儲存和運算能力,機器遠勝於人類。

感知功能:視覺、聽覺等能力,機器在語音辨識、影像辨識領域已經比肩人類。

認知智能:自然語言處理、常識建模與推理等任務,機器還有很長的路要走。

自然語言處理屬於認知智能範疇,由於自然語言具有抽象性、組合性、歧義性、知識性、演化性等特點,為機器處理帶來了極大的挑戰,有人將自然語言處理稱為人工智慧皇冠上的明珠。近年來,出現了以 BERT 為代表的預訓練語言模型,將自然語言處理帶入了一個新紀元:預訓練語言模型 特定任務精調。本文試圖整理自然語言預訓練技術的演進之路,以期和大家相互交流學習,不足、謬誤之處望批評指正。

1.古代- 詞表示

1.1 One-hot Encoding

用一個詞表大小的向量表示一個詞,其中詞對應位置的值為1,其餘位置為0。缺點:

  • 高維稀疏性
  • 無法表示語意相似性:兩個同義字的One-hot 向量相似度為0

1.2 分佈式表示

分佈式語意假設:相似的字有相似的上下文,字的語意可由上下文表示。基於該思想,可以利用每個詞的上下文分佈對詞進行表示。

1.2.1 詞頻表示

基於語料庫,利用詞的上下文來建立共現頻次表,詞表的每一行代表了一個詞的向量表示。透過不同的上下文選擇可以捕捉到不同的語言訊息,如用句子中詞的周圍固定窗口的詞作為上下文,會更多的捕捉到詞的局部信息:詞法、句法信息,若用所在文檔作為上下文,更多的捕捉到詞所表示的主題訊息。缺點:

  • 高頻詞問題。
  • 無法反應高階關係:(A, B) (B, C) (C, D) !=> (A, D)。
  • 依然存在稀疏性問題。

1.2.2 TF-IDF表示

將詞頻表示中的值,替換為 TF-IDF,主要緩解詞頻表示的高頻詞問題。

1.2.3 點互資訊表示

同樣是緩解詞頻表示的高頻詞問題,將詞頻表示中的值替換為詞的點互資訊:

初探自然語言預訓練技術演進之路

1.2.4 LSA

透過對詞頻矩陣進行奇異值分解(Singular Value Decomposition,SVD),可以得到每個字的低維、連續、稠密的向量表示,可認為表示了詞的潛在語義,該方法也被稱為潛在語義分析(Latent Semantic Analysis, LSA)。

初探自然語言預訓練技術演進之路

LSA 緩解了高頻詞、高階關係、稀疏性等問題,在傳統機器學習演算法中效果還是不錯的,但是也存在一些不足:

  • 當字表大時,SVD 速度比較慢。
  • 無法追新,當語料改變或新增語料時,需要重新訓練。

2. 近代-靜態詞向量

#文本的有序性及詞與詞之間的共現關係為自然語言處理提供了天然的自監督學習訊號,使得系統無需額外的人工標註也能夠從文本中學到知識。

2.1 Word2Vec

2.1.1 CBOW

CBOW(Continous Bag-of-Words) 利用上下文(視窗)對目標字進行預測,將上下文的字的詞向量取算術平均,然後預測目標字的機率。

初探自然語言預訓練技術演進之路

2.1.2 Skip-gram

Skip-gram 透過字預測上下文。

初探自然語言預訓練技術演進之路

2.2 GloVe

GloVe(Global Vectors for Word Representation) 利用詞向量對詞的共現矩陣進行預測,實現了隱式的矩陣分解。首先根據詞的上下文視窗建構距離加權的共現矩陣 X,再利用詞與上下文的向量對共現矩陣 X 進行擬合:

初探自然語言預訓練技術演進之路

損失函數為:

初探自然語言預訓練技術演進之路

#2.3 小結

詞向量的學習利用了語料庫中詞與詞之間的共現訊息,底層思想仍是分佈式語意假設。無論是基於局部上下文的Word2Vec,還是基於顯式全局共現資訊的GloVe,本質都是將一個詞在整個語料庫中的共現上下文資訊聚合到該詞的向量表示中,並都取得了不錯的效果,訓練速度也很快,但是缺點詞的向量是靜態的,即不具備隨上下文變化而變化的能力。

3. 現代-預訓練語言模型

自迴歸語言模型:根據序列歷史計算當下時刻字詞的條件機率。

初探自然語言預訓練技術演進之路

自編碼語言模型:透過上下文重構被遮罩的單字。

初探自然語言預訓練技術演進之路

表示被遮罩的序列

3.1 基石-Transformer

初探自然語言預訓練技術演進之路

3.1.1注意力模型

注意力模型可以理解為對一個向量序列進行加權操作的機制,權重的計算。

初探自然語言預訓練技術演進之路

3.1.2 多頭自註意力

Transformer 中使用的注意力模型可以表示為:

初探自然語言預訓練技術演進之路

當Q、K、V 來自同一向量序列時,成為自註意力模型。

多頭自註意力:設定多組自註意力模型,將其輸出向量拼接,並透過一個線性映射映射到 Transformer 隱層的維度大小。多頭自註意力模型,可以理解為多個自註意力模型的 ensemble。

初探自然語言預訓練技術演進之路

初探自然語言預訓練技術演進之路

3.1.3 位置編碼

由於自註意力模型沒有考慮輸入向量的位置訊息,但位置資訊對序列建模至關重要。可以透過位置嵌入或位置編碼的方式引入位置訊息,Transformer 裡使用了位置編碼的方式。

初探自然語言預訓練技術演進之路

3.1.4 其他

此外 Transformer block 裡也使用了殘差連接、Layer Normalization 等技術。

3.1.5優缺點

優點:

  • #相比RNN 能建模更遠距離的依賴關係,attention 機制將詞與詞之間的距離縮小為了1,因此對長序列資料建模能力更強。
  • 比起 RNN 能更好的利用 GPU 平行運算能力。
  • 表達能力強。

缺點:

  • 比起 RNN 參數大,增加了訓練難度,需要更多的訓練資料。

3.2 自回歸語言模型

3.2.1 ELMo

ELMo: Embeddings from Language Models

輸入層

對詞可以直接用詞的embedding,也可以對詞中的字符序列通過CNN,或其他模型。

初探自然語言預訓練技術演進之路

模型結構

初探自然語言預訓練技術演進之路

ELMo 透過LSTM 獨立的建模前向、後向語言模型,前向語言模型:

初探自然語言預訓練技術演進之路

後向語言模型:

初探自然語言預訓練技術演進之路

優化目標

#最大化:

初探自然語言預訓練技術演進之路

下游應用程式

ELMo 訓練好後,可以得到如下向量供下游任務使用。

初探自然語言預訓練技術演進之路

是輸入層得到的 word embedding, 則是前、後向 LSTM 輸出拼接的結果。

下游任務使用時,可以加各層向量加權得到 ELMo 的一個向量表示,同時用一個權重對 ELMo 向量進行縮放。

初探自然語言預訓練技術演進之路

不同層次的隱含層向量蘊含了不同層次或粒度的文字訊息:

  • 頂層編碼了更多的語意訊息
  • 底層編碼了更多的詞法、句法資訊
3.2.2 GPT 系列

GPT-1

模型結構

在GPT-1(Generative Pre-Training),是一個單向的語言模型,使用了12個transformer block 結構作為解碼器,每個transformer 區塊都是一個多頭的自註意力機制,然後透過全連接得到輸出的機率分佈。

初探自然語言預訓練技術演進之路

初探自然語言預訓練技術演進之路

  • U: 字的獨熱向量
  • We:字向量矩陣
  • Wp:位置向量矩陣
最佳化目標

最大化:

初探自然語言預訓練技術演進之路

初探自然語言預訓練技術演進之路

初探自然語言預訓練技術演進之路下游應用

下游任務中,對於一個有標籤的資料集 ,每個實例都有一個輸入token:,它對於的標籤組成。首先將這些 token 輸入到訓練好的預訓練模型中,得到最終的特徵向量。接著再透過一個全連接層得到預測結果:

初探自然語言預訓練技術演進之路

初探自然語言預訓練技術演進之路下游有監督任務的目標則是最大化:

########### ##為了防止災難性遺忘問題,可以在精調損失中加入一定權重的預訓練損失,通常預訓練損失。 #####################
GPT-2

GPT-2 的核心思想概括為:任何有監督任務都是語言模型的一個子集,當模型的容量非常大且資料量足夠豐富時,僅靠訓練語言模型的學習便可以完成其他有監督學習的任務。所以GPT-2 並沒有對GPT-1 的網路進行過多的結構的創新與設計,只是使用了更多的網路參數和更大的資料集,目標旨在訓練一個泛化能力更強的詞向量模型。

在8個語言模型任務中,僅僅透過zero-shot 學習,GPT-2 就有7個超過了當時state-of-the-art 的方法(當然好些任務上還是不如監督模型效果好)。 GPT-2 的最大貢獻是驗證了透過海量資料和大量參數訓練出來的詞向量模型有遷移到其它類別任務中而不需要額外的訓練。

同時 GPT-2 顯示隨著模型容量和訓練資料量(質量)的增大,其潛能還有進一步開發的空間,基於這個思想,誕生了 GPT-3。

GPT-3

依舊模型結構沒啥變化,增加模型容量、訓練資料量及質量,號稱巨無霸,效果也很好。

小結

初探自然語言預訓練技術演進之路

從GPT-1 到GPT-3,隨著模型容量和訓練資料量的增加,模型學到的語言知識也越豐富,自然語言處理的典範也從「預訓練模型精進」逐步轉向「預訓練模型zero-shot/few-shot learning」。 GPT 的缺點是用的單向語言模型,BERT 已經證明了雙向語言模型能提升模型效果。

3.2.3 XLNet

XLNet 透過排列語言模型(Permutation Language Model) 引入了雙向的上下文信息,不引入特殊的tag,避免了預訓練和精調階段token 分佈不一致的問題。同時使用 Transformer-XL 作為模型主體結構,對長文字有更好的效果。

排列語言模型

排列語言模型的目標是:

初探自然語言預訓練技術演進之路

#是文字序列所有可能的排列集合。

雙流自註意力機制
  • 雙流自註意力機制(Two-stream Self-attention)要達到的目的:透過改造Transformer,在輸入正常文字序列的情況下,實作排列語言模型:
  • 內容表示:包含的資訊
  • #查詢表示:只包含的資訊

初探自然語言預訓練技術演進之路

初探自然語言預訓練技術演進之路

此方法使用了預測詞的位置資訊。

下游應用程式

下游任務應用程式時,不需要查詢表示,也不 mask。

3.3 自編碼語言模型

3.3.1 BERT

掩碼語言模型

掩碼語言模型(masked language model, MLM),隨機地屏蔽部分詞,然後利用上下文資訊進行預測。 MLM 有個問題,預訓練和 fine-tuning 之間不匹配,因為在 fine-tuning 期間從未看到 [MASK] token。為了解決這個問題,BERT 並不總是用實際的 [MASK] token 替換被“masked”的 word piece token。訓練資料產生器隨機選擇15%的 token,然後:

  • 80%的機率:用 [MASK] 標記替換。
  • 10%的機率:從詞表隨機一個 token 替換。
  • 10%的機率:token 保持不變。

原生 BERT 裡對 token 進行 mask,可以對整字或片語(N-Gram)進行 mask。

下一句預測

下一句預測(NSP):當選擇句子A 和B 作為預訓練樣本時,B 有50%的可能是A 的下一個句子,也有50%的可能是來自語料庫的隨機句子。

輸入層

初探自然語言預訓練技術演進之路

模型結構

初探自然語言預訓練技術演進之路

#經典的「預訓練模型精調」的範式,主題結構是堆疊的多層Transformer。

3.3.2 RoBERTa

RoBERTa(Robustly Optimized BERT Pretraining Approach) 並沒有大刀闊斧的改進 BERT,而只是針對 BERT 的每一個設計細節進行了詳盡的實驗找到了 BERT 的改進空間。

  • 動態遮罩:原始方式是建立資料集的時候設定好掩碼並固定,改進方式是每輪訓練將資料輸入模型的時候才進行隨機掩碼,增加了資料的多樣性。
  • 捨棄 NSP 任務:以實驗證明不使用 NSP 任務對大多數任務都能提升效能。
  • 更多訓練數據,更大批次,更長的預訓練步數。
  • 更大的詞表:使用 SentencePiece 這種位元組層級的 BPE 字表而不是 WordPiece 字元層級的 BPE 字表,幾乎不會出現未登入字的情況。

3.3.3 ALBERT

BERT 參數量相對較大,ALBERT(A Lite BERT) 主要目標是減少參數:

  • BERT 的詞向量維度和隱含層維度相同,詞向量上下文無關,而BERT 的Transformer 層需要並且可以學習充分的上下文訊息,因此隱含層向量維度應遠大於詞向量維度。當增大提高效能時,沒有必要跟著變大,因為詞向量空間對需要嵌入的資訊量可能已經足夠。
  • 方案:,字向量透過全連接層轉換為H維。
  • 字向量參數分解(Factorized embedding parameterization)。
  • 跨層參數共享(Cross-layer parameter sharing):不同層的Transformer block 共享參數。
  • 句子順序預測(sentence-order prediction, SOP),學習細微的語意差異及語篇連貫性。

3.4 生成式對抗- ELECTRA

ELECTRA(Efficiently Learning an Encoder that Classifies Token Replacements Accurately) 引入了生成器和判別器的模式,把生成式的Masked language model (MLM) 預訓練任務改成了判別式的Replaced token detection(RTD) 任務,判斷當前token 是否被語言模型取代過,比較類似GAN 的想法。

初探自然語言預訓練技術演進之路

產生器預測輸入文字中mask 位置的token:

初探自然語言預訓練技術演進之路

初探自然語言預訓練技術演進之路

##判別器的輸入是生成器的輸出,判別器預測各個位置的詞是否是被替換過的:

初探自然語言預訓練技術演進之路

此外,還做了一些優化:

    生成器和判別器分別是一個BERT,縮放了生成器BERT 參數。
  • 字向量參數分解。
  • 生成器和判別器參數共享:輸入層參數共享,包括詞向量矩陣和位置向量矩陣。
在下游任務只使用判別器,不使用生成器。

3.5 長文本處理- Transformer-XL

Transformer 處理長文本的常見策略是將文字切分為固定長度的區塊,並獨立編碼各個區塊,區塊與區塊之間沒有資訊交互。

初探自然語言預訓練技術演進之路

為了優化長文字的建模,Transformer-XL 使用了兩個技術:狀態復用的區塊層級循環(Segment-Level Recurrence with State Reuse)和相對位置編碼(Relative Positional Encodings)。

3.5.1 狀態復用的區塊層級循環

Transformer-XL 在訓練的時候也是以固定長度的片段的形式進行輸入的,不同的是Transformer-XL 的上一個片段的狀態會被快取下來然後在計算當前段的時候再重複使用上個時間片的隱層狀態,賦予了Transformer-XL 建模更長期的依賴的能力。

長度為 L 的連續兩個片段 和。的隱層節點的狀態表示為,其中 d 是隱層節點的維度。 的隱層節點的狀態的計算過程為:

初探自然語言預訓練技術演進之路

片段遞歸的另一個好處是帶來的推理速度的提升,對比Transformer 的自回歸架構每次只能前進一個時間片,Transfomer-XL 的推理過程通過直接復用上一個片段的表示而不是從頭計算,將推理過程提升到以片段為單位進行推理。

初探自然語言預訓練技術演進之路

3.5.2 相對位置編碼

在Transformer 中,自註意力模型可以表示為:

初探自然語言預訓練技術演進之路

的完整運算式為:

初探自然語言預訓練技術演進之路

初探自然語言預訓練技術演進之路

#Transformer 的問題是無論第幾個片段,它們的位置編碼 都是一樣的,也就是說Transformer的位置編碼是相對於片段的絕對位置編碼(absulate position encoding),與當前內容在原始句子中的相對位置是沒有關係的。

Transfomer-XL 在上式的基礎上做了若干變化,得到了下面的計算方法:

初探自然語言預訓練技術演進之路

    ##變化1:中,被拆分成立和,也就是說輸入序列和位置編碼不再共享權值。
  • 變化2:中,絕對位置編碼取代為了相對位置編碼
  • 變化3:中引入了兩個新的可學習的參數來取代和 Transformer 中的 query 向量 。表示對於所有的 query 位置對應的 query 位置向量是相同的。即無論 query 位置如何,不同字的注意偏差都保持一致。
  • 改進之後,各部分的意義:
    基於內容的相關度(): 計算query  與key  的內容之間的關聯資訊
  • #內容相關的位置偏移():計算query  的內容和key  的位置編碼之間的關聯資訊
  • 全域內容偏移():計算query  的位置編碼和key  的內容之間的關聯資訊
  • 全域位置偏移():計算query  和key  的位置編碼之間的關聯資訊
3.6 蒸餾與壓縮- DistillBert

知識蒸餾技術(Knowledge Distillation, KD):通常由教師模型和學生模型組成,將知識從教師模型傳到學生模型,使得學生模型盡量與教師模型相近,在實際應用中,往往要求學生模型比教師模型小且基本保持原模型的效果。

DistillBert 的學生模型:

    六層的 BERT, 同時去掉了標記類型向量 (Token-type Embedding, 即Segment Embedding)。
  • 使用教師模型的前六層進行初始化。
  • 只使用掩碼語言模型進行訓練,沒有使用 NSP 任務。

教師模型: BERT-base:

#損失函數:

有監督MLM 損失:利用掩碼語言模型訓練得到的交叉熵損失:

初探自然語言預訓練技術演進之路

    表示第一個類別的標籤,表示學生模型第一個類別輸出的機率。
    蒸餾MLM損失:利用教師模型的機率作為指導訊號,與學生模型的機率計算交叉熵損失:

初探自然語言預訓練技術演進之路

##表示教師模式第個類別的標籤。
詞向量餘弦損失:對齊教師模型和學生模型的隱含層向量的方向,從隱含層維度拉近教師模型和學生模型的距離:

  • 和分別表示教師模型和學生模型最後一層的隱含層輸出。
  • 最終的損失:

初探自然語言預訓練技術演進之路

#4. 參考資料

#https ://www.php.cn/link/6e2290dbf1e11f39d246e7ce5ac50a1e

#https://www.php.cn/link/664c7298d2b73b3c7fe2d1e81/664c7298d2b73b3c7fe2d1e81112d

https://www.php.cn/link/67b878df6cd42d142f2924f3ace85c78

https://www.php.cn/link/f6a673f09493https://www.php.cn/link/f6a673f09493afhttps://www.php.cn/link/f6a673f09493afco

https://www.php.cn/link/82599a4ec94aca066873c99b4c741ed8

##https://www. php.cn/link/2e64da0bae6a7533021c760d4ba5d621

#https://www.php.cn/link/56d33021e640f5d#> #https://www.php.cn/link/4e38d30e656da5ae9d3a425109ce9e04

##https://www.php.cn/link/c055dcc749c2632fdhttps://www.php.cn/link/c055dcc749c2632fdhttps://www.php.cn/link/c055dcc749c2632fdhttps://www.php.cn/link/c055dcc749c2632fd4806301

https://www.php.cn/link/a749e38f556d5eb1dc13b9221d1f994f

#https://www.php.cn/link /8ab9bb97ce35080338be74dc6375e0ed​

​https://www.php.cn/link/4f0bf7b7b1aca9ad15317a0b4efdca14​

​https:/ /www.php.cn/link/b81132591828d622fc335860bffec150

#https://www.php.cn/link/fca758e52635df5a640f7063#https://www.php.cn/link/5112277ea658f7138694f079042cc3bb

https://www.php.cn/link/257deb66f5366a

https://www.php.cn/link/257deb66f5366ahttps://www.php.cn/link/257deb66f5366a231d

##https://www.php.cn/link/b18e8fb514012229891cf024b6436526

##https://www.php. cn/link/836a0dcbf5d22652569dc3a708274c16

#https://www.php.cn/link/a3de03cb426b5e36f5c7167bcn/link/a3de03cb426b5e36f5c7167bcn/link/a3de03cb426b5e36f5c7167bcn/link/a3de03cb426b5e36f5c7167bcn/link/a3de03cb426b5e36f5c7167b21395331

############' https://www.php.cn/link/831b342d8a83408e5960e9b0c5f31f0c##############https://www.php.cn/link/6b27e88fdd7269394bcaddf4bcn/link/6b27e88fdd7269394bcaddf4b. ######https://www.php.cn/link/682e0e796084e163c5ca053dd8573b0c#############https://www.php.cn/link/9739efc4f#######https://www.php.cn/link/9739efc4f0129276483c #############https://www.php.cn/link/b93e78c67fd4ae3ee626d8ec0c412dec#############https://www .php.cn/link/c8cc6e90ccbff44c9cee23611711cdc4#######

以上是初探自然語言預訓練技術演進之路的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:51cto.com。如有侵權,請聯絡admin@php.cn刪除