遷移學習在自然語言處理領域的應用

遷移學習

遷移學習近年來在圖形領域中得到了快速的發展,主要在於某些特定的領域不具備足夠的數據,不能讓深度模型學習的很好,需要從其它領域訓練好的模型遷移過來,再使用該模型進行微調,使得該模型能很好地擬合少量數據的同時又具備較好的泛化能力(不過擬合)。

在遷移學習任務中,需要事先定義一組源數據集合,使用該集合訓練得到預訓練好的模型,該模型具備了源數據集合中的一些知識,在目標數據集合上微調該預訓練的模型,使得模型能夠很好地完成目標數據集合定義的任務,即完成了遷移學習。

由於深度學習模型結構複雜,在NLP領域中遷移學習不夠成熟,不知道如何進行遷移、遷移模型的哪個結構部分、源數據集合與目標數據集合之間需要滿足怎樣的關係。本文以CNN文本分類任務爲例進行描述,總結一下遷移學習在NLP領域文本分類任務中的一些經驗。

CNN文本分類模型框架

如上圖爲CNN文本分類的模型結構圖,總的模型結構來說可以分爲四層:Embedding層、卷積層(含池化層)、全連接隱層、輸出層。Embedding層主要將詞語映射爲詞向量表示、卷積層主要對詞語矩陣進行卷積操作得到句子的抽象表示、全連接隱層一般是進行維度壓縮、輸出層是進行分類(對應類別的數量)。

在文本分類任務中的遷移學習,例如源數據集合爲新聞文本的分類(數據量大),目標數據集合爲短視頻標題分類(標註的數據少),通過預先訓練的新聞分類模型,在短視頻標題分類任務上進行模型(Embedding層、卷積層、全連接隱層、輸出層)的微調,使得模型既能完成對少量有監督數據的擬合,又具備相應的泛化能力。下邊將針對CNN文本分類任務進行經驗總結。

經驗與建議

經驗

(1)目標數據集合與源數據集合在語義上太相似,反而會影響遷移學習的效果,部分相似效果最好;

(2)源數據集合的詞典大小越大、OOV比例越小,遷移效果越好;

(3)對於Embedding層的遷移,無論是固定不變、還是微調效果都挺好;

(4)對於卷積層和隱層,若模型參數固定不變,很難提高遷移學習的效果,除非目標數據集合與源數據集合語義上非常相似、很少的OOV、具備很大的詞典;

(5)輸出層參數的遷移效果很差;

(6)源數據集合上訓練的模型最好不加非線性激活函數,目標數據集上再添加

(7)dropout rate設置在0.5-0.7之間比較好

建議

(1)選擇源數據集合時,儘量保證數據量大、OOV少、詞典大,語義上與目標數據集合部分相似就行(不要太像);

(2)最好遷移Embedding層;

(3)如果考慮遷移卷積層和隱層,儘量考慮微調,不要使用固定參數。

(4)如果分類類別數量不相同,儘可能不要遷移隱層;

(5)不要試圖遷移輸出層,除非是在線學習,使用少量數據進行微調(源數據與目標數據基本一致)

參考文獻

[1] Semwal T, Mathur G, Yenigalla P, et al. A Practitioners' Guide to Transfer Learning for Text Classification using Convolutional Neural Networks[J]. 2018.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章