選單

自然語言的預訓練模型概念簡介

隨著深度學習的發展,各類神經網路模型開始被廣泛用於解決自然語言處理(Natural Language Processing,NLP)任務,比如卷積神經網路(Con-volutional Neural Networks,CNN)、迴圈神經網路(Recurrent Neural Network,RNN)、圖神經網路(Graph Neural Networks,GNN)和注意力機制(Attention Mechanism)等。在傳統的非神經網路NLP模型中,模型效能通常過於依賴手工設計或選擇文字特徵,因此訓練一個高效能的NLP模型通常開發週期較長。而神經網路模型的優勢是可以大幅緩解特徵工程問題,透過使用在特定NLP任務中學習的低維稠密向量(分散式表示)隱式地表示文字的句法和語義特徵。因此,神經網路方法簡化了開發各類NLP系統的難度。

儘管神經網路模型在NLP任務中已取得較好的效果,但其相對於非神經網路模型的優勢並沒有像在計算機視覺領域中那麼明顯。該現象的主要原因可歸結於當前NLP任務的資料集相對較小(除機器翻譯任務)。深度神經網路模型通常包含大量引數,因此在較小規模的訓練集中易過擬合,且泛化性較差。透過海量無標註語料來預訓練神經網路模型可以學習到有益於下游NLP任務的通用語言表示,並可避免從零訓練新模型。預訓練模型一直被視為一種訓練深度神經網路模型的高效策略。

預訓練的重要性

隨著深度學習的發展,模型引數顯著增長,從而需要越來越大的資料集用於充分訓練模型引數並預防過擬合。然而,因大部分NLP任務的標註成本極為高昂,尤其是句法和語義相關任務,構建大規模標註資料集尤為困難。相比較而言,大規模無標註資料集相對易於構建。為更好地利用海量無標籤文字資料,我們可以首先從這些資料中學到較好的文字表示,然後再將其用於其他任務。許多研究已表明,在大規模無標註語料中訓練的預訓練語言模型得到的表示可以使許多NLP任務獲得顯著的效能提升。預訓練的優勢可總結為以下幾點:

1。 在海量文字中透過預訓練可以學習到一種通用語言表示,並有助於完成下游任務。

2。 預訓練可提供更好的模型初始化,從而具有更好的泛化性並在下游任務上更快收斂。

3。 預訓練可被看作是在小資料集上避免過擬合的一種正則化方法。

預訓練模型的任務

預訓練任務對於學習語言的通用表示至關重要。本節將預訓練任務分為三類:監督學習、無監督學習及自監督學習。

1。 監督學習(Supervised Learning,SL)透過學習一個函式,根據輸入-輸出對組成的訓練資料將輸入對映至輸出。

2。 無監督學習(Unsupervised Learning,UL)從無標記資料中尋找一些內在知識,如簇、密度、潛在表示等。

3。 自監督學習(Self-supervised Learning,SSL)介於監督學習和無監督學習之間,其學習正規化與監督學習相同,而訓練資料標籤自動生成。自監督學習的關鍵思想是透過輸入的一部分資訊來預測其他部分資訊。例如,掩碼語言模型(Masked Language Model,MLM)是一種自我監督的任務,就是將句子中的某些詞刪掉,並透過剩下的其他詞來預測這些被刪掉的詞。

預訓練模型的分類

預訓練模型分類通常從四個不同角度劃分其代表性預訓練模型:

1。 表示型別:根據用於下游任務的表示,可將預訓練模型分為非上下文預訓練模型和上下文預訓練模型。

2。 架構:預訓練模型使用的骨幹網路,包括LSTM、Transformer編碼器、Transformer解碼器和完整的Transformer架構。

3。 預訓練任務型別:預訓練模型時使用的預訓練任務型別。

4。 拓展:為各種場景設計的預訓練模型,包括知識增強預訓練模型、多語言或特定語言的預訓練模型、多模態預訓練模型、特定領域的預訓練模型和預訓練模型的壓縮等。

自然語言的預訓練模型概念簡介

預訓練模型分類與典型演算法名稱