引入
2018年底發(fā)布的BERT模型和2019年初發(fā)布的GPT-2模型,開始挑戰(zhàn)人類的語言處理能力。二者都基于之前介紹過的Transformer基礎模型嘀略。
對模型的研究有幾個層次:研究基礎模型蜈缤、擴展模型、應用模型
研究基礎模型 我們熟知的卷積神經(jīng)網(wǎng)絡CNN势就,循環(huán)神經(jīng)網(wǎng)絡RNN,Transformer模型脉漏,殘差網(wǎng)絡ResNet等等苞冯,都是底層模型,它們是神經(jīng)網(wǎng)絡應用的基礎侧巨。
擴展模型 基礎模型需要經(jīng)過適配和擴展舅锄,才能應用到更多領域。如圖像識別一開始主要支持圖片分類司忱,而后擴展到人臉識別皇忿、圖像分割等等領域。在自然語言處理領域Transformer模型最初被用于解決翻譯問題坦仍,而后擴展到解決問答鳍烁、判斷一致性、完型填空等問題之中繁扎,比如BERT通過Mask遮蔽技術優(yōu)化了自然語言處理中的更多問題的解決方法幔荒。
應用模型 再上層是針對某一個領域的具體應用和細化,調(diào)用模型解決問題并調(diào)優(yōu)模型梳玫。例如使用模型判斷正常和病變細胞爹梁、預測股票趨勢,使用預訓練好的語言模型撰寫某種類型的文章……這些大多是由工程師完成的工作提澎。從算法角度看創(chuàng)新并不多姚垃,但是涉及一些領域相關知識,甚至包括怎么定義問題盼忌,描述問題积糯,與模型結合掂墓,相對偏重應用,也是軟件工程師比較擅長的領域絮宁。
有監(jiān)督學習和無監(jiān)督學習
傳統(tǒng)的深度學習在解決某個問題時都需要大量數(shù)據(jù)反復訓練梆暮,在數(shù)據(jù)量和算力足夠的情況下,直接訓練模型效果更好绍昂。但在很多實際應用中啦粹,卻很難實現(xiàn)。比如:在醫(yī)學診斷中使用機器視覺技術時窘游,需要大量標注好的正例和反例唠椭,反復訓練,實際情況是有問題的病例只占少數(shù)忍饰,評價函數(shù)將使模型偏向大多數(shù)正常贪嫂;且標注起來非常困難,從一個300M的圖像上標注出所有異常細胞的難度和人工成本可想而知艾蓝。
人類解決此問題時力崇,只需要了解正常細胞與異常細胞形狀、大小等重要特征的差異即可判斷赢织。這是由于人的常識系統(tǒng)亮靴,可從圖像中提取出形狀、顏色等信息于置。于是人們致力于開發(fā)類似人類的常識系統(tǒng)茧吊,希望從相關的任務中學習,通過大量數(shù)據(jù)和訓練形成機器的知識體系八毯,在解決具體問題時搓侄,只需要少量訓練,即可正常工作话速。
零樣本學習
零樣本學習Zero-shot Learning指的是之前沒接觸過某一類別的訓練樣本讶踪,但通過在實際目標和訓練目標之間建立映射關系,實現(xiàn)識別該類別的功能泊交。比如:之前沒見過老虎俊柔,但是照貓畫虎也能對老虎有大致了解,在判斷過程中更容易把老虎和桌子活合、香蕉區(qū)分開來。
單樣本學習 One-shot Learning物赶,少量樣本學習Few-shot Learning也與之類似白指,它們針對的都是只有少量正例或者單個正例的情況下的學習問題,實際上是一種普遍規(guī)則到特殊規(guī)則的映射酵紫。
ELMo告嘲、GPT错维、BERT和GTP-2的目標都是使用大量無標簽語料預訓練模型,然后用有標簽的小數(shù)據(jù)調(diào)優(yōu)模型橄唬。GPT-2主要針對零樣本學習赋焕,挑戰(zhàn)近似無監(jiān)督學習的問題,后面可以看到仰楚,它通過對海量數(shù)據(jù)的訓練生成了常識系統(tǒng)隆判。
半監(jiān)督學習
由于神經(jīng)網(wǎng)絡是一種有監(jiān)督學習模型,必須有特征x和目標y僧界,才能使用誤差函數(shù)比較實際目標y與預測值y’的差異侨嘀,反向傳播誤差來調(diào)整參數(shù)。接下來的問題是捂襟,如何使用無標簽的語料來訓練模型咬腕?
最基本的方法是利用前面的N個詞預測后面的第N+1個詞,比如:通過序列的前三個元素“白日依”葬荷,預測第四個元素“山”是最基本的處理方法涨共,也是GPT模型使用的預訓練方法。
進而宠漩,隨機屏蔽序列中的某一元素举反,如“山”,然后通過它的前文和后文共同預測出該位置的元素哄孤。
自然語言處理問題中照筑,一般先利用無標簽數(shù)據(jù)按上述方法訓練基礎模型,然后再用針對具體問題的少量有標簽數(shù)據(jù)進一步訓練最終的模型瘦陈。
遷移學習
遷移學習Transfer learning指把訓練目標A的模型作為基礎凝危,通過進一步訓練,實現(xiàn)對目標B的預測晨逝。遷移學習有兩種方式:
使用模型提取特征 使用已有模型提取特征作為新模型的輸入蛾默,這樣不一定需要算力強大的GPU,訓練上百層的神經(jīng)網(wǎng)絡捉貌,也能實現(xiàn)很好的效果支鸡。在自然語言處理中,常用訓練好的模型提取詞向量(詞義)或者網(wǎng)絡某些層的輸出作為特征趁窃,比如通過訓練把詞的索引號轉(zhuǎn)換成一系列的屬性值牧挣,從而比較兩詞的相互關系,如得到Play的近義詞playing, game, games, played, players等等醒陆。
預訓練和微調(diào) 預訓練Pretrain加微調(diào)Fine-tuning是目前主流的解決方案瀑构,先用大量的普通數(shù)據(jù)訓練模型獲取一般性知識Pretrain,再在小的目標數(shù)據(jù)集上調(diào)優(yōu)Fine-tuning刨摩。它既能使用別人訓練好的成熟模型寺晌,又能有針對性的解決問題世吨。 Pretrain+Finetuning的問題在于預訓練與調(diào)優(yōu)需要同樣形式的數(shù)據(jù),比如呻征,解決感情色彩分類的問題耘婚,BERT的方法是:前期使用大量的無標簽文本訓練時也在序列開頭預留一個CLS位吨瞎,用于可能處理的分類問題誓斥。
兩種方式各有利弊朋腋,提取特征方法更加靈活锻全,可以處理更多不可預知的問題類型屈暗,Pretain+Finetuning能更好地利用模型中學到的知識扶供。
自然語言評測
自然語言常使用GLUE和SquAD測試玻侥,來評價模型的效果店雅。這些測試基本涵蓋了自然語言處理領域的常見問題類型阵子。
QLUE全稱是General Language Understanding Evaluation思杯,它涉及自然語言處理的各個子模塊,QLUE不公開測試集結果挠进,開發(fā)者上傳預測結果后色乾,它給出評分。包括十一項測試领突,如:
- MNLI:判斷兩個句子間是繼承暖璧,反駁,中間關系(雙句君旦,分類)
- QQP:兩個問句的類似程度(雙句澎办,分類)
- QNLI:問答系統(tǒng),區(qū)分問題的正確答案和同一段中的其它描述 (雙句金砍,分類)
- SST-2:電影評論的感情色彩標注 (單句局蚀,分類)
- CoLA:判斷語法是否正確 (單句,分類)
- STS-B:語義相似度打分(1-5級)(雙句恕稠,分類)
- MRPC:兩句語義是否等價(雙句琅绅,分類)
- RTE識別繼承關系,類似MNLI鹅巍,但數(shù)據(jù)集較星Х觥(雙句,分類)
SquAD全稱The Standford Question Answering Dataset骆捧,它是斯坦福大學于2016年推出的閱讀理解數(shù)據(jù)集澎羞,給定一篇文章,準備相應問題敛苇,需要算法給出問題的答案煤痕。一共有107,785問題,以及配套的 536 篇文章。與GLUE的分類不同摆碉,它尋找的是一個答案在段落中的位置。
自然語言評測包含幾種任務:判斷句與句之間的關系脓豪,分類和標注巷帝,在后續(xù)的BERT部分將介紹具體的實現(xiàn)方法。