作者 | 張正
單位 | 清華大學
翻譯 | 唐裡
本文內容為簡要介紹,欲詳細瞭解相關內容,建議閱讀原論文——
論文標題:
Evolution of Transfer Learning in Natural Language Processing
論文地址:https://ar xiv.org/abs/1910.0 7370
隨著Recurrent Neural Network (RNN) 等演算法的提出,遷移學習在NLP任務中的應用也越來越廣泛。解決NLP任務的傳統演算法主要有基於規則的方法和統計學方法,與這些方法相比,遷移學習方法在文字分類、機器翻譯、情感分析等領域內均表現出了優異的效能。
遷移學習的主要優勢在於:
1、通過在大資料集上對複雜模型進行預訓練,可以提前確定模型的主要引數。當採用該模型來解決具體的自然語言處理任務時,只需要將預訓練好的模型在小資料集上進行微調即可,因此可以減輕計算機運算成本;
2、在解決具體的NLP任務時,目標領域內帶標籤的資料樣本往往很難獲得,這就限制了監督學習演算法在NLP中的應用。而藉助於遷移學習,即使資料樣本較少時依然可以使用監督學習解決NLP任務。
在具體討論各類演算法之前,有必要介紹接下來會用到的一些概念。
1. 語言模型(Language Model, LM)
語言模型的效能評估指標為 Perple xity,其計算公式如下:
其中,w1 w2 … wn代表語料庫中包含有N個單詞的語句,代表當語句中前面的單詞分別為w1 … wi-1時,單詞 wi 出現的概率。
通常情況下,Perple xity的值越低,表徵著生成文字的熵值越低,則語言模型的效能越好。
2. 遷移學習(Transfer Learning)
在傳統方法中,NLP模型的引數(或稱權值)可以通過隨機初始化來完成,但是這種方法效率較低。藉助於遷移學習,我們可以在通用任務上對深度學習模型引數進行預訓練,然後在具體的任務上對預訓練模型進行微調,從而保證模型具有較快的收斂速度,且對目標領域的訓練資料量要求較小。這就是遷移學習的核心思想。遷移學習最初主要用於解決計算機視覺問題,近幾年在NLP任務中也得到了廣泛應用。
研究背景
本部分將介紹NLP任務中常用的基礎演算法及其結構原理。
1. Vanilla RNN
雖然機器學習模型在分類、迴歸、聚類等任務中均取得了廣泛的應用,但是多層感知機、支援向量基等機器學習演算法在文字分類、語言模型預測等任務上的表現卻不盡如人意,這些方法往往無法保留語句序列的完整資訊。
迴圈神經網路(Recurrent Neural Network,RNN)演算法[1]可用於解決該問題,其結構如下圖所示:
RNN中各隱含層的狀態可以用以下公式來計算:
其中,ht和ht-1分別為第t和t-1層的狀態,W和U均為權重矩陣,b為偏置,為啟用函式,x為輸入值。網路權值的更新可以通過Backpropagation Through Time (BPTT) 來完成。
Vanilla RNN可以用於處理語音識別、翻譯等任務,但是該方法只能對語句中short-term的依賴性進行建模,而無法解決long-term的依賴性問題;此外,RNN網路在訓練過程中可能會出現梯度消失和梯度爆炸問題,影響模型效能。
2. 長短期記憶網路(LSTM)
為了克服RNN網路的缺點,Sepp Hochreiter等[2]設計了LSTM網路,該模型可以避免梯度消失和梯度爆炸問題,同時可以實現對輸入資訊的長期記憶,與由單一神經層組成的RNN相比,LSTM由4層神經層連線而成。其主要結構為:
上圖所示的結構可以稱為“細胞狀態”,主要用於儲存與傳遞資訊。資訊的增加或刪減是通過一種叫做門(gates)的結構來實現的。通過一個 sigmoid 神經層和一個逐點相乘的操作,門可以選擇性地讓資訊通過。LSTM由3個門組成,分別為:
-
遺忘門:可以通過輸出0或1來決定資訊是否在細胞狀態內保留;
-
輸入門:決定是否將輸入資訊新增到細胞狀態中;
-
輸出門:用於確定對哪些資訊進行輸出。
3. GRU(Gated Recurrent Units)
GRU網路是2014年由K.cho等[3]提出的,該模型可以看作是LSTM模型的簡化版,因此其計算量比後者小。其結構如下圖所示:
與LSTM模型相比,GRU模型將LSTM的輸入門和遺忘門組合成為了更新門,LSTM的細胞狀態和隱含層狀態則組合成為了重置門。通過這一變形,GRU可以在處理資訊流的過程中 大大減小對儲存單元的依賴,而且執行效率 大大提高。
4. Average SGD Weight Dropped (AWD) – LSTM
AWD-LSTM模型是目前效能最優秀的模型之一,於2017年由Stephen Merity等[4]提出,作者採用了Drop-Connect方法來解決RNN模型過擬合的問題,並採用Non-monotonically Triggered ASGD (NTASGD) 方法對模型進行優化,這些策略 大大提升了AWD-LSTM模型的效能。
5. Seq2Seq結構
Seq2Seq模型由一個編碼器和一個解碼器共同組成,編碼器用於將語句序列改寫為一個固定長度的向量,解碼器則用於處理輸入資訊併產生輸出序列。該結構在機器翻譯領域取得了良好的結果,但是在將複雜的上下文和長序列語句轉換為單一固定長度向量時,往往導致資訊的丟失。Attention機制正是為解決這一問題而提出。
6. Attention機制
Attention的原理就是計算當前輸入序列與輸出向量的匹配程度,匹配度高也就是注意力越集中,其相對的得分越高。將這些得分進行歸一化之後,就可以得到attention權值ats。用這些權值對各隱含層狀態加權求和,結果為Context Vector。然後,將context vector與隱含層狀態進行串聯,並進行雙曲正切運算,就可以得到attention向量at。用公式表示為:
與傳統的固定尺寸的向量相比,Attention向量可以更好的代表輸入序列,從而克服了Seq2Seq模型的缺點。
Transformer的模型
得益於Attention機制在解決NLP任務時的顯著改進,Vaswani等[5]提出了Transformer模型,該模型在機器翻譯等多種任務上均取得了較好的效果。其結構可以表示為:
Transformer結構由編碼器和解碼器共同組成,編碼器則由multi-head attention層、殘差連線和歸一化層、feed-forward層共同組成,解碼器比編碼器多包含一個masked multi-head attention層。
在編碼器結構中,輸入的資訊經過embe dding後,還要進行positional encoding環節,該環節主要目的在於保留輸入的位置和順序資訊。然後,作者進行了multi-head操作,並將結果進行歸一化。最後進行feed-forward處理。
而在解碼器中,輸入的資訊在進行embe dding和positional encoding之後,需要經過masked multi-head attention層,然後再進行與編碼器同樣的操作。最後得到的結果需要經過線性化處理,並通過softmax函式確定單詞出現的概率。
Transformer模型基於attention機制來實現,沒有采用任何迴圈機制。該模型在機器學習等任務上表現良好,運算速度快,是對LSTM、GRU等RNN模型的有效補充。
遷移學習在NLP任務中的應用
前面幾個部分介紹了NLP任務中常用的一些演算法與模型,以這些演算法和模型為基礎,遷移學習技術在解決NLP任務時也取得了非常好的效果。本部分將具體介紹遷移學習在NLP任務中的應用例項。
1. ULMFIT
Universal Language Model Fine-tuning [6]是最早將遷移學習用於NLP任務的方法之一。顧名思義,該方法通過對通用語言模型進行預訓練,然後在目標任務上進行微調,可以實現對標記序列的預測。具體來講,ULMFIT模型由以下三個步驟來實現:
通用模型的預訓練。作者在WikiText-103資料集上對模型進行預訓練,雖然該過程計算量較大,但是隻需完成一次即可。
語言模型微調。這一步驟可以學習到目標任務的主要特徵,且可以在相對較小的目標訓練集上完成。為了取得更好的微調效果,作者分別採用分層微調和斜三角學習率策略,在目標任務的資料集上得到語言模型的引數。
分類器微調。最後,為了微調分類器,作者使用兩個額外的線性塊來增強預訓練語言模型。每個塊使用批量標準化和dropout技術來實現正則化,與CV模型相似,分類器採用ReLU作為啟用函式。作者還採用了拼接池化、gradual unfreezing和雙向語言模型策略來實現分類器微調。
2.ELMo
傳統的詞向量(例如word2vec)是上下文無關的,而ELMo (Embe ddings from Language Models) 模型[7]是一種新型深度語境化詞表徵,可對詞進行復雜特徵(如句法和語義)和詞在語言語境中的變化進行建模(即對多義詞進行建模)。
與詞向量相比,ELMo模型能夠更好的捕捉語法與語義層面的資訊,而且可以理解同一個單詞在不同語境中的不同含義。因此其在Question Answering、Semantic role labeling、Namedentity extraction等任務中均有較好的表現。
3. OpenAI Transformer
雖然用於模型訓練的資料集有很多,但是很多資料沒有標記,手動標記是一件非常棘手的事情,因此採用現有模型和資料集進行監督學習往往比較困難。為此,OPEN AI的Radford等[8]提出了半監督學習模型——GPT(Generative Pre-training),該模型包括基於無監督學習的預調環節和基於監督學習的微調環節兩個部分,其基礎模型為Transformer。
在模型訓練時,首先在無標記樣本上通過無監督學習對模型引數初始化,然後在目標任務上通過監督學習對引數進行調整, 大大簡化了微調過程中的工作量,提高了模型的魯棒性。
4. BERT
BERT(Bidirectional Encoder Representation fromTransformers)模型將雙向Transformer用於語言模型,傳統的模型是從左向右輸入一個文字序列,或者將 left-to-right 和 right-to-left 的訓練結合起來,J.Devlin等證明[9]了雙向訓練的語言模型對語境的理解會比單向的語言模型更深刻。在進行模型訓練時,作者提出了兩個預測任務,
Masked LM:在將單詞序列輸入給BERT之前,將序列中15%的隨機token進行masked,然後模型嘗試基於序列中其他未被 mask 的單詞的上下文來預測被掩蓋的原單詞。
Next Sentence Prediction:即NSP問題,在BERT的訓練過程中,模型接收成對的句子作為輸入,其中只有50%的輸入對在原始文件中是前後對應關係,通過預測第二個句子是否在原始文件中也是第一個句子的後續語句,來驗證模型。
5. Universal sentence encoder
通用語句編碼器是由Daniel等[10]提出的一種新型模型,該模型直接對語句進行編碼,而不需要將句子轉換為詞向量,因此只需要較少的目標任務資料集即可得到較好的模型效能。根據模型精度與複雜度的不同,作者提出了兩種基礎的架構:Transformer架構和DAN(Deep Averaging Network)架構。
通用語句模型被廣泛應用於情感分析、語句分類等任務中,尤其是在可用訓練資料集有限時,訓練效果明顯好於其他模型。
6. Transformer-XL
Transformer-XL[11]模型可以對輸入文字的長距離依賴關係進行建模,從而解決了transformer只能學習固定長度文字的缺點。
Transformer-XL通過segment-level遞迴機制和一種新型相對位置編碼方案來捕捉更長距離的上下文依賴,並解決了上下文碎片(context fragmentation)問題。該模型在enwiki8和text8資料集上的效能達到了目前的最高水平。
7. XLNet
BERT模型是一種AE(Auto Encoding)模型,其主要缺點在於:在預訓練過程中被masked的token與在微調過程中出現的token出現差異性;模型通常會忽略這些差異性,從而影響其效能。
XLNet[12]模型正是為了解決這一問題而提出,通過採用通用的自迴歸預訓練模型,該方法將給定序列的所有置換傳遞給模型,並預測該序列中缺少的特定token。
與BERT模型相比,XLNet模型在需要長距離依賴性的閱讀理解任務上效能 大大提升。
參考文獻
[1] Zachary C. Lipton, John Berkowitz, Charles Elkan, ”A Critical Review of Recurrent Neural Networks for Sequence Learning”, arXiv: 1506.00019 [cs.LG]
[2] Sepp Hochreiter,Jurgen Schmidhuber, ”Long short-term memory”, Neural Computation 9(8):1 735- 1780, 1997
[3] K. Cho, B. van Merrienboer, D. Bahdanau, Y. Bengio, ”On the properties of neural machine translation: Encoder-decoder approaches”, arXiv preprint arXiv: 1409.1259, 2014
[4] Stephen Merity, Nitish Shirish Keskar, Richard Socher, ”Regularizing and Optimizing LSTM Language Models”, arXiv: 1708.02 182 [cs.CL]
[5] Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N. Gomez, Lukasz Kaiser, Illia Polosukhin, ”Attention is All you Need”, Advances in Neural Information Processing Systems 30 (NIPS 2017)
[6] Jeremy Howard, Sebastian Ruder, ”Universal Language Model Fine-tuning for Text Classification”, arXiv: 1801.06 146 [cs.CL]
[7] Matthew Peters, Mark Neumann, Mohit Iyyer, Matt Gardner, Christopher Clark, Kenton Lee, Luke Zettlemoyer, ”Deep Contextualized Word Representations”, Volume: Proceedings of the 2018 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies, Volume 1, June 2018
[8] Alec Radford, Kartik Narsimhan, Tim Salimans, Ilya Sutskever ”Improving Language Understanding by Generative PreTraining”,2018
[9] Jacob Devlin, Ming-Wei Chang, Kenton Lee, Kristina Toutanova, ”BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding”, arXiv: 1810.04805 [cs.CL]
[10] Daniel Cer, Yinfei Yang, Sheng-yi Kong, Nan Hua, Nicole Limtiaco, Rhomni St. John, Noah Constant, Mario GuajardoCespedes, Steve Yuan, Chris Tar, Yun-Hsuan Sung, Brian Strope, Ray Kurzweil, ”Universal Sentence Encoder”, arXiv: 1803.11 175[cs.CL]
[11] Zihang Dai, Zhilin Yang, Yiming Yang, Jaime Carbonell, Quoc V. Le, Ruslan Salakhutdinov, ”Transformer-XL: Attentive Language Models Beyond a Fixed-Length Context”, arXiv:1901.0 2860 [cs.LG]
[12] Zhilin Yang, Zihang Dai, Yiming Yang, Jaime Carbonell, Ruslan Salakhutdinov, Quoc V. Le, ”XLNet: Generalized Autoregressive Pretraining for Language Understanding”, arXiv:1906.08237 [cs.CL]