1. 程式人生 > >【資料應用技巧】NLP領域的預訓練之風

【資料應用技巧】NLP領域的預訓練之風

案例來源:@AI科技評論 @集智翻譯組 @人工智慧LeadAI

0. 背景:ImageNet帶來了資料預訓練的風,通過在ImageNet資料集上訓練得到的網路權重,可以遷移學習到較少標註集較高標註成本的領域。這股思想也進入了NLP領域,本文介紹幾種預訓練方法。

目前NLP領域的預訓練方法有:

    1)word2vec

    2)ULMFit

    3)ELMo

    4)Open AI Transformer

    對標ImageNet,目前NLP領域的主流標註資料集有:

    1)斯坦福問答資料集(SQuAD):10萬多對問答對

    2)斯坦福自然推理語料庫(SNLI):57萬對英語句子對

    3)WMT:4千萬對 英語-法語 翻譯句子對

    4)WikiTest-2:維基百科文字

    這些語料庫都有一定的缺陷(如人工標註員傾向於通過否定的方式創造新的句子對),不一定同ImageNet一樣,可以表徵所有自然語言處理的問題空間,削弱了使用這些語料庫提取特徵的泛化能力

1. word2vec

    1)預訓練獲得詞嵌入,然後將詞嵌入作為特徵輸出神經網路的第一層。是一種淺層網路的特徵表示方法,類比於cv中對淺層神經元對物體邊緣的表示

2. ULMFit(Universal Language Model Fine-tuning)

    1)LM pre-training:在大型語料庫上訓練word的表達

    2)LM fine-tuning:在特定語料上訓練word在深層網路中的表達

    3)Classifier fine-tuning:上層分類器

3. ELMo(Embeddings from Language Models,深層語境化詞表徵)

    1)特點:

        a. 輸入是字元而不是詞,因此可以利用子字詞單元來計算有意義的表徵,即使對於詞典外的詞也是如此

        b. 詞向量不是一成不變的,而是根據上下文不同而變化。如“我買了富士康生產的蘋果”與“我吃了一個富士蘋果”中“蘋果”並不是一個事物

    2)方法:首先在大文字語料庫上預訓練了一個深度雙向語言模型(biLM),然後把根據它的內部狀態學到的函式作為詞向量。語言模型的不同層對單詞上的不同型別資訊進行編碼(例如,詞語標註由biLSTM的較低層完成預測,而詞義消歧在較高層中更好地編碼)。 把所有層連線起來,可以自由組合各種文字表徵,以提高下游任務的效能表現

4. Open AI Transformer

    2)在小規模有監督資料集上進行微調

5. NLP預訓練展望:

    1)可以用主流語言語料庫做預訓練,遷移學習到標註資源特別匱乏的小語種

    2)文字中的常識性資訊,有一些不能從文字上下文中獲得,而是要結合外部額外資訊,這也是進一步優化預訓練能力的點