復旦大學邱錫鵬教授做客達觀NLP研討會:自然語言處理中的多工學習

達觀資料發表於2019-07-15

復旦大學邱錫鵬教授做客達觀NLP研討會:自然語言處理中的多工學習

達觀資料舉辦的自然語言處理學術交流研討會上,有幸邀請到復旦大學電腦科學技術學院邱錫鵬教授前來做客活動現場,並和大家分享了《自然語言處理中的多工學習》的主題報告。以下為現場分享內容整理,內容略有刪減。

本次分享內容圍繞基於深度學習自然語言處理深度學習自然語言處理中的困境、自然語言處理中的多工學習、新的多工基準平臺四大模組展開。

一、自然語言處理簡介

什麼是自然語言處理?自然語言就是人類語言,區別於程式語言,目前來講自然語言處理有很多方面,是一個非常大的學科。包括語音識別自然語言理解自然語言生成人機互動以及所涉及的中間階段。復旦大學邱錫鵬教授做客達觀NLP研討會:自然語言處理中的多工學習

自然語言的發展經歷了從規則到統計再到深度學習的過程,在深度學習方法大規模應用之前,自然語言處理主要存在兩種學派,基於規則(rule-based)的符號學派和基於概率方法的統計學派。Noam Chomsky是前者的代表人物。在1990以前,自然語言處理多采用人工規則的方法,其後,在語料庫(corpus-based)資料驅動(data-deriven)下,基於統計或機器學習模型的概率學方法成為主流。2012年以後,基於神經網路(neural-based)的方法開始大規模應用,以Sequence to Sequence Learningwith Neural Networks論文為代表的端到端模型在實踐中取得重大突破。

在研究領域,工作重心也轉變到了深度學習方法之上。早期NLP基本上有很多方式,各種各樣的建模,把大系統拆成小塊,把小塊做好。現在更容易一些,端到端的系統,中間是神經網路

二、深度學習自然語言處理中的困境

目前NLP的現狀是,我們所謂的深度學習其實模型並不深。一個主要原因在於NLP的資料量不夠,因為標註成本太高。與影像標註不同的是,NLP更需要認知,通常需要專家來進行標註,所以成本非常高。

標註成本高需要我們轉變思路:能否從學習框架上改變?現在用的非常多的比如無監督預訓練,多工學習深度學習

1.無監督預訓練

去年暑假時很多報告在說ELMo,下半年就出現了另外一個BERT。相較於只有3層的ELMO,BERT具有12層網路結構,,並且證明在NLP裡仍然有足夠強大的表現能力。所以我們現在的問題是,NLP的資料不足,很大層面是通過大量標註資料來輔助訓練,很多人把這種方法叫做自監督訓練。

復旦大學邱錫鵬教授做客達觀NLP研討會:自然語言處理中的多工學習

復旦大學邱錫鵬教授做客達觀NLP研討會:自然語言處理中的多工學習

在NLP中表示學習依然十分重要,什麼是好的文字表示?“好的表示”是一個非常主觀的概念,沒有一個明確的標準。一般而言,一個好的表示具有以下幾個優點:

1.應該具有很強的表示能力

2.應該使後續的學習任務變得簡單

3.  應使後續的推斷任務變得簡單

2.多工學習

從上面三點出發,就對應到了多工學習。我們的目標是學到一個表示,對所有任務都試用。既然這樣,就直接讓多工一起學,把所有任務資料放到一起進行學習。舉個例子,比如說有在三元組處理的POS標籤和Chunking,用一個模型解決兩件事。

復旦大學邱錫鵬教授做客達觀NLP研討會:自然語言處理中的多工學習

多工學習在1997年被提出來。多工學習加NLP在傳統離散表示的時候,非常難,如何設定共享的表示很困難,因為是離散的空間很難投影做互相轉化。現在,基於神經網路深度學習方法的應用,使得多工學習變得十分簡單。

復旦大學邱錫鵬教授做客達觀NLP研討會:自然語言處理中的多工學習

多工學習和幾類學習特別相似,一類是多標籤學習,是指一個X進去,多個Y出來。一句話既可以有實體,還有實體之間的關係,相當於同樣X上有不同的標籤。多工學習可能一個X在每個任務上只有一種標籤,不同X有不同的標籤。它的標籤是離散的,一個句子一般不會把所有任務標籤都打上。還有相關的是遷移學習,目標是在一個任務上學好然後遷移到另外的東西上。

復旦大學邱錫鵬教授做客達觀NLP研討會:自然語言處理中的多工學習

多工學習非常常見的訓練方式是所有模型先聯合訓練,因為有共享的表示,這些層次在所有任務上進行訓練,同時有私有層,在私有層每個特定任務上單獨訓練。經過Joint Training之後再進行Fine Tuning。

多工學習之所以會有效可以從幾方面來看:

1.因為實現了隱式資料的增強,因為資料增強是經常用的任務,但是在NLP裡很難用。

2.我們的表示對所有任務都適用,所以學習了更加通用的資料表示。

3.正則化,儘可能去選擇泛化能力比較高的點。一個表示對所有任務起作用,每個任務都有引數空間,所有任務引數空間的交集和搜尋範圍非常小,這樣的程度講,相當於正則化手段。

4.竊聽技術,每個任務可以從另外的任務中獲取對自己任務有幫助的資訊。像這個盲人摸象,理解一個大象的話,可能不同任務是測試他的一個部件。如果把所有任務拼在一起可能會得到一個非常好的表示。

三、自然語言處理中的多工學習

有了多工學習之後,就可以改變做事的思維方式。輸入——詞法分析——句法分析——任務。我們很難把中間某一塊做得特別好,如果中間有一塊錯了,就導致後面全錯誤。我們可以把詞法分析和句法分析作為目標任務平行,然後一起去學習。因為要輸出詞法和句法分析,假設隱含了某種詞法和句法的表示能力,直接送到目標任務上,這樣就避免了錯誤傳播。

復旦大學邱錫鵬教授做客達觀NLP研討會:自然語言處理中的多工學習

自然語言處理中的各種任務,非常適合多工學習。所有的NLP任務背後都涉及到文字理解,本質上都是相關的,所以很自然可以用多工學習框架處理。

NLP可以用的多工學習有幾種型別,一種是分類分析。有不同的領域,電影領域的和評價領域。這是天然的多工學習,每個領域有單個任務,把所有任務放在一起學習電影評論中學習的情感詞,這對上面的評論也會有用。比如剛才講的自然語言的詞性標註,到分詞、句法。越往上越偏語義。這是與傳統不太一樣的多工學習方式,我們需要嚴格設計共享方式。

現在越來越多的是文字和圖象放在一起做交叉的檢索推薦等,情感分析目前也做的非常多。我們在NLP裡很多工適合做多工學習。還有一類萬能的任務是語言模型,可以和任何任務結合,提高對應任務的效果。

復旦大學邱錫鵬教授做客達觀NLP研討會:自然語言處理中的多工學習

這裡講三個非常簡單的共享方式,左邊的a是硬共享模式,上面接三個不同私有層,中間是軟共享,每個任務有自己主線,還有虛線,可以通過其他的注意力機制選擇相關資訊進來。c是共享私有模式,都有各自私有部分、共享部分。

1.硬共享模式

目前在NLP裡的共享模式非常多,首先看硬共享模式,在2008年的時候就提出了自然語言神經網路處理。早期非常簡單,只是把每個詞的資訊共享受。到2015年做機器翻譯,機器翻譯是天生可以多工的,比如說英翻譯成中文、德文、日文等。因為所有編碼原文都是英文,所以沒有設立多個編碼器,讓不同任務可以共享,這也是一種方式。

復旦大學邱錫鵬教授做客達觀NLP研討會:自然語言處理中的多工學習

這個是我們之前的工作,把剛才三個共享方式用到深化神經網路中。現在看起來比較簡單,當時沒有人用。硬共享、軟共享、私有共享模式,把三個共享放到文字分類上。包括這兩年,通用表示在NLP上非常火熱。用一個語言表示所有語言,這也是非常新興的研究方向。我們目標是做多工學習,同樣的句子,雖然是面向不同任務,但是希望用同樣的表示模型去表示。

復旦大學邱錫鵬教授做客達觀NLP研討會:自然語言處理中的多工學習

最左邊的a是標準的硬共享模式,下面共享,上面是私有層,中間是共享私有模式。最右邊是提出一個全共享模式。所有的X在不同任務的表示都一樣。如果都一樣,做不同任務,我們是否認為一個共享表示可能不能體現特定的任務資訊?所以我們引入了一個任務相關的查詢,叫Q。這個Q可以從共享表示中選出和任務相關的資訊。用相同的不同的注意力進行多工的框架。就是同樣的表示,只是不同任務中不一樣的部分,非常簡單的同一個框架處理,以下是具體的學習模型。

復旦大學邱錫鵬教授做客達觀NLP研討會:自然語言處理中的多工學習

復旦大學邱錫鵬教授做客達觀NLP研討會:自然語言處理中的多工學習

同樣的文字在不同任務中,他的Attention是不一樣的,紅色表示Attention的權重,顏色越深表示任務越重要。不同任務的Attention不一樣。

復旦大學邱錫鵬教授做客達觀NLP研討會:自然語言處理中的多工學習

後面所謂的通用表示,這個概念越來越熱,其實也是類似想法,只是用的任務更復雜,包括現在谷歌推出所有語言放在一起訓練,得到更加通用的表示。

2.軟共享模式

第二種是軟共享表示。在每一層的時候,我們都可以從其他任務中去選一些資訊過來,看起來非常像十字繡的方式。這是在NLP裡的任務,更加複雜的網路,無非把任務的互動資訊選來選去。

復旦大學邱錫鵬教授做客達觀NLP研討會:自然語言處理中的多工學習

3.共享-私有模式

最後是共享私有模式。在該模式下,通過設定外部記憶共享機制實現資訊在所有任務中的共享。

復旦大學邱錫鵬教授做客達觀NLP研討會:自然語言處理中的多工學習

共享私有模式還有一個:避免在共享路徑上傳遞負遷移的資訊,這些資訊對另外的任務有損害,我們可以通過對抗學習,引入對抗層可以有效避免不遷移的資訊。

復旦大學邱錫鵬教授做客達觀NLP研討會:自然語言處理中的多工學習

復旦大學邱錫鵬教授做客達觀NLP研討會:自然語言處理中的多工學習

元共享,叫Meta Multi-task Learning, 這個函式生成各種不同的深層,我們叫多工學習,生成各自任務的引數。

共享模式搜尋是實現共享模式的自動組合,從而產生更加靈活的模型。在面向NLP的神經網路結構搜尋中用一個控制器、一個STO的網路,生成一個目標網路,這個目標網路用來處理不同的NLP任務。上面的m是從共享詞裡自動挑出來的,這就實現了在所有任務中進行多工共享。復旦大學邱錫鵬教授做客達觀NLP研討會:自然語言處理中的多工學習用一個控制器、一個STO的網路,生成一個目標網路,這個目標網路用來處理不同的NLP任務。上面的m是從共享詞裡自動挑出來的,這就實現了在所有任務中進行多工共享。

復旦大學邱錫鵬教授做客達觀NLP研討會:自然語言處理中的多工學習

這個是一個例子,這是自動挑出來的網路結構。比如說POS用了M1,chunk用了M1,緊接著用了m2,NER用了M1、M2、M3,這種方式將模型帶入任務訓練,從而實現了模型的自動選擇組合。

今天分享就到這裡,謝謝大家!

相關文章