對偶學習:一種新的機器學習范式
?
?
?
作者簡介
秦濤博士,現任微軟亞洲研究院主管研究員。他和他的小組的研究領域是機器學習和人工智能,研究重點是深度學習和強化學習的算法設計、理論分析及在實際問題中的應用。他在國際頂級會議和期刊上發表學術論文80余篇,曾任SIGIR、ACML、AAMAS領域主席,擔任多個國際學術大會程序委員會成員,包括ICML、NIPS、KDD、IJCAI、AAAI、WSDM、EC、SIGIR、AAMAS、WINE,曾任多個國際學術研討會聯合主席。他是IEEE、ACM會員,中國科學技術大學兼職教授和博士生導師。
問題:如何降低對大規模標注數據的依賴性
近年來,以深度學習為代表的人工智能技術取得了長足的進步,在很多應用取得了巨大的成功。在圖像識別中,深度學習已經超過了人類的水平,最近微軟剛剛宣布在語音識別中也超過了人類的平均水平,在機器翻譯中基于深度學習的模型也超過了以前的統計機器翻譯,另外基于深度學習的阿法狗也打敗了圍棋世界冠軍李世石。
深度學習之所以能夠取得巨大的成功,一個非常重要的因素就是大數據,特別是大規模的帶標簽的數據。例如在圖像識別中,深度神經網絡使用上百萬的帶標簽的圖像進行訓練,在機器翻譯中我們會用上千萬的雙語句對進行訓練,在圍棋中我們會用上千萬的專業棋手的落子進行訓練……這種做法有兩個局限性。首先,人工標注獲取標簽的代價很高。例如我們考慮機器翻譯這個任務:現在市場人工翻譯一個單詞的價格差不多是5到10美分,如果一個句子的平均長度為三十個單詞,那么1000萬個句子人工翻譯的代價差不多是7.5美分×30×1000萬,約等于2200萬美元。現在一個商業公司的翻譯引擎通常支持上百種語言的相互翻譯,為了訓練這樣規模的翻譯模型,人工標注的代價就會達到上千億美元。其次,在很多任務中,我們沒辦法收集到大規模的標注數據,例如在醫療中或在小語種的相互翻譯。為了使深度學習能夠取得更廣泛的成功,我們需要降低其對大規模標注數據的依賴性。為了解決這個問題,我們提出了一種新的學習范式,我們把它稱作對偶學習。
另辟蹊徑,將未標注數據用起來
我們注意到,很多人工智能的應用涉及兩個互為對偶的任務,例如機器翻譯中從中文到英文翻譯和從英文到中文的翻譯互為對偶、語音處理中語音識別和語音合成互為對偶、圖像理解中基于圖像生成文本和基于文本生成圖像互為對偶、問答系統中回答問題和生成問題互為對偶,以及在搜索引擎中給檢索詞查找相關的網頁和給網頁生成關鍵詞互為對偶。這些互為對偶的人工智能任務可以形成一個閉環,使從沒有標注的數據中進行學習成為可能。
對偶學習的最關鍵一點在于,給定一個原始任務模型,其對偶任務的模型可以給其提供反饋;同樣的,給定一個對偶任務的模型,其原始任務的模型也可以給該對偶任務的模型提供反饋;從而這兩個互為對偶的任務可以相互提供反饋,相互學習、相互提高。
下面我們還是以機器翻譯為例子來說明對偶學習的基本思想。
考慮一個對偶翻譯游戲,里面有兩個玩家小明和愛麗絲,如下圖所示。小明只能講中文,愛麗絲只會講英文,他們兩個人一起希望能夠提高英文到中文的翻譯模型f和中文到英文的翻譯模型g。給定一個英文的句子x,愛麗絲首先通過f把這個句子翻譯成中文句子y1,然后把這個中文的句子發給小明。因為沒有標注,所以小明不知道正確的翻譯是什么,但是小明可以知道,這個中文的句子是不是語法正確、符不符合中文的語言模型,這些信息都能幫助小明大概判斷翻譯模型f是不是做的好。然后小明再把這個中文的句子y1通過翻譯模型g翻譯成一個新的英文句子x1,并發給愛麗絲。通過比較x和x1是不是相似,愛麗絲就能夠知道翻譯模型f和g是不是做得好,盡管x只是一個沒有標注的句子。因此,通過這樣一個對偶游戲的過程,我們能夠從沒有標注的數據上獲得反饋,從而知道如何提高機器學習模型。
?
實際上這個對偶游戲和強化學習的過程比較類似。在強化學習中,我們希望提高我們的策略以最大化長遠的回報,但是沒有標注的樣本告訴我們在某個狀態x哪個動作y是正確的。我們只有通過使用這個策略在不同的狀態下執行不同的動作,觀測該動作帶來的回報,從而改善我們的策略。在以上這個翻譯對偶游戲中,兩個翻譯模型就是我們的策略,因為沒有標注的雙語句對,所以我們不能直接改善它們。這個對偶游戲把一個沒有標注的句子x,先翻譯成另外一種語言的句子y1,再翻譯回來為x1,這里x就是強化學習中的狀態,y1和x1就是我們的策略所執行的動作,x和x1的相似度就是我們獲得的回報。
我們可以用已有的強化學習的算法來訓練我們這兩個翻譯模型,比如策略梯度方法。策略梯度方法的基本思想非常簡單:如果我們在執行某個動作之后,觀測到了一個很大的回報,我們就通過調整策略(在當前策略函數的參數上加上它的梯度)來增加這個狀態下執行這個動作的概率;相反,如果我們在執行某個動作之后,觀測到了一個很小的回報,甚至是負的回報,那么我們就需要調整策略(在當前策略函數的參數上減去它的梯度),以降低在這個狀態下執行這個動作的概率。
實測與展望
我們在一個英語-法語翻譯的公共數據集上測試了對偶學習的有效性,并和當前最好的算法(NMT,基于深度神經網絡算法)進行了對比。這個數據集的訓練集有1200萬個英法的雙語句對,NMT用了所有的1200萬個雙語句對訓練模型。我們的對偶算法只用了不到10%的雙語句對初始化兩個翻譯模型f和g,再用沒有標注的英法語句進行訓練。如下圖所示,我們的對偶學習算法只用10%的標注數據就達到了和NMT用上所有標注數據而取得的相似的甚至更好的翻譯準確度,也就是說我們可以把數據標注的代價從2000萬美元降到200萬美元左右。這個結果說明了我們提出的對偶學習方法能夠非常有效地利用未標注的數據。
?
對偶學習的基本思想是兩個對偶的任務能形成一個閉環反饋系統,使我們得以從未標注的數據上獲得反饋信息,進而利用該反饋信息提高對偶任務中的兩個機器學習模型。該思想具有普適性,可以擴展到多個相關任務上面,前提是只要它們能形成一個閉環反饋系統。例如,從中文翻譯到英文,然后從英文翻譯到日文,再從日文翻譯到中文。另外一個例子是從圖片轉化成文字,然后從文字轉成語音,再從語音轉化成圖片。
對偶學習(dual learning)和已有的學習范式有很大的不同。首先,監督學習(supervised learning)只能從標注的數據進行學習,只涉及一個學習任務;而對偶學習涉及至少兩個學習任務,可以從未標注的數據進行學習。其次,半監督學習(semi-supervised learning)盡管可以對未標注的樣本生成偽標簽,但無法知道這些偽標簽的好壞,而對偶學習通過對偶游戲生成的反饋(例如對偶翻譯中x和x1的相似性)能知道中間過程產生的偽標簽(y1)的好壞,因而可以更有效地利用未標注的數據。我們甚至可以說,對偶學習在某種程度上是把未標注的數據當作帶標簽的數據來使用。第三,對偶學習和多任務學習(multi-task learning)也不相同。盡管多任務學習也是同時學習多個任務共的模型,但這些任務必須共享相同的輸入空間,而對偶學習對輸入空間沒有要求,只要這些任務能形成一個閉環系統即可。第四,對偶學習和遷移學習(transfer learning)也很不一樣。遷移學習用一個或多個相關的任務來輔助主要任務的學習,而在對偶學習中,多個任務是相互幫助、相互提高,并沒有主次之分。因此,對偶學習是一個全新的學習范式,我們預計其會對機器學習領域產生很大的影響,特別是考慮到以下兩個點。
第一,很多深度學習的研究人員認為人工智能和深度學習的下一個突破是從未標注的數據進行學習。由于未標注的數據沒有標簽信息,無監督學習主要聚焦在聚類、降維等問題,因此,如何從未標注的數據進行端到端的學習(把數據映射到標簽,如分類、預測等任務)一直沒有很好方法。我們提出的對偶學習提供了一個利用未標注數據進行端到端學習的有效方式。
第二,近年來強化學習取得了很大的成功,吸引了眾多的研究人員和工業界人員的關注。但是到目前為止,強化學習的成功主要是在各種游戲上,因為在游戲中規則定義得非常清楚,并且很容易通過玩大量的游戲獲取回報信息(例如Atari游戲中每一步的得分,圍棋中最后的輸贏),從而改善游戲策略。然而在游戲以外的實際應用中并沒有規范定義的規則,也很難獲得回報信息(或者獲取的代價很高),因而強化學習在復雜的實際應用中的成功還是比較有限。而對偶學習提供了一種為強化學習獲取獎勵信息的方式,并證實了強化學習在復雜應用(如翻譯)中成功的可能。
更多詳細信息可參見我們NIPS 2016 論文。Di He, Yingce Xia, Tao Qin, Liwei Wang, Nenghai Yu, Tie-Yan Liu, and Wei-Ying Ma, Dual Learning for Machine Translation, NIPS 2016. (https://papers.nips.cc/paper/6469-dual-learning-for-machine-translation )
來自:http://blog.sina.com.cn/s/blog_4caedc7a0102wozm.html