以Attention Model爲例談談兩種研究創新模式

/* 版權聲明:可以任意轉載,轉載時請標明文章原始出處和作者信息 .*/
                                                     author: 張俊林      

 

 

 

各位觀衆朋友好,也許此刻您剛打開電梯…….讀這一篇之前,請您最好先拜讀一下本篇的前傳:文本處理中的Attention Model:是什麼及爲什麼。因爲那裏有些背景知識需要交代。

 

話接上回書,在研讀AttentionModel相關文獻過程中,我再次深切感受到了科研中的兩種創新模式:模型創新與應用創新。若干年前,也就是在我年輕不懂事的花樣年華里,具體而言,就是在科學院讀博士的後期,這種感受就已經比較明顯,所以曾經在2006年寫過一篇博客:自然語言處理領域的兩種創新觀念。當時談的相對務虛一些,而且由於年富力強,少不經事,更強調重大計算模型的創新,曾經對當時橫掃NLP大多數領域的CRF式應用創新深感失望(當然我承認我連應用創新都做不好,所以主動撤出了科研界去工業界賣苦力,不加上這一句估計作者本人會被噴得狗血淋頭^@@^)。而深度學習其實就是重大的模型創新,在DL洶涌澎湃的大潮下,今天再來談一談這兩種創新模式,而且目標更聚焦一些,我們就以AM模型的研究過程來看看,我覺得AM的研究還是非常典型能明顯說明這個問題的,當然這是個普遍現象,從AM來談只是作爲典型例子而已。

 

首先把文本處理領域裏面採用AM模型的論文儘量找全,這個倒是不難,因爲AM被關注也就是最近1年裏的事情;然後分析下每個論文的創新點,再梳理下相互之間的關係,其實很容易看出隱藏在後面的這兩種創新模式。掌握這種模式對於做研究是很有幫助的,因爲這代表了創新裏的一種固定的研究或者說是思維模式。就是說如果有這種意識,其實你很容易指導自己如何在現有工作基礎上去想創新思路,而不至於一說創新就感到很茫然。

 

應用創新

 

應用創新相對模型創新來說簡單一些,核心思想就是:如果有一個新模型,那麼我就拿來試試不同的領域問題,看看能不能解決,如果能解決,那麼這就是一種典型的應用創新。說得不好聽點就是說手裏有把錘子,那就把很多問題看作釘子,然後到處敲敲,看看是不是能把釘子砸到地裏面。其實也沒什麼好聽不好聽的,因爲非理論學科比如NLP,你看到的相當多數論文,哪怕是頂級會議的論文,其實都是這種類型。這種創新的價值主要是能夠證明:某個現成的模型應用在某個領域是有效的。其實我們這些在公司食堂裏吃飯的人更偏愛這種類型的論文,因爲簡單粗暴對口,對我們來說,能簡單方便可行地解決手上問題的論文就是好論文。

 

下面我們拿AM模型研究來具體說明下這種創新模式。

 

上一篇介紹AM模型的文章已經講了AM的基本思路,那裏提到的模型一般被稱作Soft Attention Model,是很通用的,目前大多數使用AM模型的場景其實都是這個模型的應用或者模型變體。

 

論文[1]“Neural machine translation by jointly learning to align and translate”是首先把Soft Attention Model使用到機器翻譯的論文,後面的NLP領域使用AM模型的文章一般都會引用這篇論文,但是這篇論文的思路也是從圖像處理領域裏的AM模型借鑑到MT領域的,所以也是典型的應用創新。就是說看到AM模型在圖像處理領域有用,那麼拿來做下機器翻譯看一看,果然有用,就形成了一篇應用創新型的論文。 圖1是該論文中講解AM模型的示意圖。這算影響力比較大的論文了,但是你仔細一看,其實也是應用創新。這種創新相對簡單,這裏說的簡單不是否認論文算法簡單,而是說這種創新模式是相對簡單的,但是不能否認它的價值,因爲各個領域科學研究的大多數進展就是這樣逐步前行的。

                                                                         

                                                                                          圖1 論文1中的AM示意圖

 

論文[2]“Neural Responding Machine for Short-Text Conversation”是華爲李航老師研究組提出來的,論文中提出的Neural Responding Machine也是很典型的應用創新(圖2),將帶AM模型的Encoder-Decoder框架應用到對話機器人應用中,輸入Encoder-Decoder的是一句對話,而Encoder-Decoder輸出的則是對話機器人的應答,其訓練數據採用了微博評論裏的對話數據。

                          

                             圖2. Neural Responding Machine

 

論文中提到的Global Scheme就是不帶AM的Encoder-Decoder框架,Local Scheme其實就是Soft Attention Model,Local and Global Model則是把Global和Local混合起來用。這篇論文證明了AM-Encoder-Decoder應用在對話系統上是有效的。說實話,這篇論文理論創新不算突出,但是相對傳統的方法來說,這個思路還是非常簡潔實用的。我個人也比較喜歡,因爲很可能會照搬拿來用。

   

Google的論文[3]:“Grammar as a Foreign Language”把帶AM模型的Encoder-Decoder框架用在句法分析上,也是用的Soft AM模型。這也是一種應用創新,但是我個人覺得這個論文的創新性還是比較高,主要在於思考問題的思路,一般做句法分析就是去把句子Parse成一顆樹,而他們則把句法的樹形結構拍平搞成線性序列,然後把<句子,句法關係>當做一個不同語言的翻譯問題,這個給人的感覺還是非常新穎的。當然也許我這方面文獻看得少,已經有人這麼做過,但是我不清楚。

 

論文[4]則是把帶AM的Encoder-Decoder應用在生成式文本摘要中,本質上也是Soft AM模型,並證明模型有效。

 

從上面所述可以看出,目前NLP裏面應用AM模型的論文很多屬於這種應用創新類型的。這種創新模式相對簡單些,你可以想個新的領域,並試試帶AM的Encoder-Decoder框架是否有效,如果有效而且沒人做過,那麼發一篇好會議的論文應該不成問題。

 

模型創新

 

如果把應用創新比作拿着錘子找釘子敲,那麼模型創新也可以做類似的比喻:如果你手裏有把錘子,但是死活不能把你手裏的釘子敲到地裏去,那麼你就去改造一下錘子,比如加大重量,或者把錘子柄改得長一點,做出敲釘子敲得更利落的錘子2.0版(此處非爲羅永浩做廣告,特此聲明),那麼這就是模型創新。意思是改造一下從別人手裏直接拿來的模型,讓它更適合解決手頭的問題。

 

模型創新的難度要比應用創新難些,因爲它要求你對錘子的構造要透徹瞭解,你得清楚錘子到底是哪裏有問題,纔不能敲打手頭的釘子,怎麼改造才能讓它升級。相對去找個新的釘子,這種方式要求會更高一些。

 

但是其實改造錘子也是有一些模式在裏面的,下面我們還是以AM研究作爲例子來談談AM領域裏的模型創新,並抽象出三種模型創新模式:混搭風;坦白從寬型和抗拒從嚴型(^@@^)。

 

Soft AM vs Hard AM

 

上一篇講AM模型的科普文介紹了Soft Attention Model,所謂Soft,意思是在求注意力分配概率分佈的時候,對於輸入句子X中任意一個單詞都給出個概率,是個概率分佈。那麼相對Soft,就有相應的Hard Attention Model,提出Hard版本就是一種模型創新。既然Soft是給每個單詞都賦予一個單詞對齊概率,那麼如果不這樣做,直接從輸入句子裏面找到某個特定的單詞,然後把目標句子單詞和這個單詞對齊,而其它輸入句子中的單詞硬性地認爲對齊概率爲0,這就是Hard Attention Model的思想。

 

所以這就是從Soft AM衍生出Hard AM的典型思維過程。Hard AM在圖像裏證明有用,但是估計在文本里面用處不大,因爲這種單詞一一對齊明顯要求太高,如果對不齊對後續處理負面影響很大,所以你在NLP的文獻裏看不到用Hard AM的,估計大家都試過了,效果不好。

 

既然有Soft AM了,也有Hard AM了,這個思路好像沒法再創新了吧?其實不然,你可以試試兩者的中間地帶:不軟不硬AM。就是介於Soft 和Hard之間:Soft AM要求輸入句子每個單詞都要賦予單詞對齊概率,Hard AM要求從輸入句子中精確地找到一個單詞來和輸出單詞對齊,那麼可以放鬆Hard的條件,先找到Hard  AM在輸入句子中單詞對齊的那個單詞大致位置,然後以這個單詞作爲軸心,向左向右拓展出一個大小爲D的窗口,在這個2D+1窗口內的單詞內進行類似Soft AM的對齊概率計算即可。你看,這就是又一種基於AM的模型創新方法:兩頭取中間混搭方法。孔子他老人家其實是這種創新方式的最早提出者,所謂“中庸之道”麼。

 

斯坦福大學Manning研究組(題外話,Manning是NLP領域大神級人物,我就是從小看他寫的那本《統計自然語言處理》長大的^@@^)在ACL2015發表的論文“Effective Approaches to Attention-based Neural Machine Translation”其實就是這個混搭AM模型的思路。在論文裏面,提出了兩種模型:Global Attention Model(圖3)和Local Attention Model(圖4),Global Attention Model其實就是Soft Attention Model,Local Attention Model本質上是Soft AM和 Hard AM的一個混合或折衷。一般首先預估一個對齊位置Pt,然後在Pt左右大小爲D的窗口範圍來取類似於Soft AM的概率分佈。

                   

                               圖3. Global Attention Model

               

                                 圖4.  LocalAttention Model

因爲論文[1]在斯坦福之前提出將AM用於機器翻譯,所以斯坦福的論文中提的那個Global AM模型作爲一個論文創新性是不足的,不能算應用創新。斯坦福的這篇論文的主要創新就是提出了這個混搭AM模型,並在機器翻譯裏面證明有效。這是一種典型的模型創新。模型創新給人的感覺往往是:如果你看了會覺得怎麼思路這麼簡單,但是在沒提出來之前你還真不一定能想到。這也是爲何說模型創新難度要大於應用創新的原因之一。

 

動態AM  vs  靜態AM

 

Soft AM和Hard AM是在求輸入句子中注意力分配概率所覆蓋單詞範圍大小上做文章。那麼還有沒其它可改進的角度?其實還有。

 

Soft AM有一個要求:就是對於輸出句子中的每個單詞,都需要計算針對這個單詞來說,輸入句子每個單詞的單詞對齊概率。那麼能不能要求鬆一點,寬大處理呢?就是說對於整個輸出句子來說,整體對輸入句子求出一個注意力分配概率分佈就行,而不要求每個單詞都需要算呢?這是可以的,這也算一種模型創新。一般把這種模型叫做靜態AM,而Soft AM叫做動態AM。之所以說是動態,意思是每個單詞都需要動態去算的意思,而靜態是指整個輸出句子算一個就夠了。

 

Google的論文“Teaching Machines to Read and Comprehend”是用AM模型來解決問答系統問題的,就是給出一個問題,需要在文章裏面找到對應的答案。這篇論文提出了兩個AM 模型:“Attentive Reader”(圖5)和“Impatient Reader”(圖6),其實Impatient Reader就是Soft Attention Model,即動態AM,而Attentive Reader就是靜態AM。因爲在問答場景下,對於一個問題,它的焦點是文章中的答案,所以問句整體有一個注意力分配概率就行。

                 

                             圖5. Attentive Reader

         

                         圖6. impatient Reader

 

從這裏也能歸納出模型創新的一種方法:就是放鬆約束,坦白從寬的方式;

 

Soft AM vs 強制前向AM

 

對於AM來說,能改的地方差不多了吧?還能有其他改進AM的思路嗎?你自己可以想想。

 

答案是還可以繼續改。

 

Soft AM在逐步生成目標句子單詞的時候,是由前向後逐步生成的,但是每個單詞在求輸入句子單詞對齊模型時,並沒有什麼特殊要求。強制前向AM則增加了約束條件:要求在生成目標句子單詞時,如果某個輸入句子單詞已經和輸出單詞對齊了,那麼後面基本不太考慮再用它了,因爲輸入和輸出都是逐步往前走的,所以看上去類似於強制對齊規則在往前走。

 

論文[7]使用帶AM的Encoder-Decoder框架來做語音識別問題,在論文裏就是採取了強制前向AM的思路。所以,這也是一種典型的模型創新方式,就是說,增加約束,抗拒從嚴的思路。  在目前NLP中採用AM模型的論文中,能看到的較明顯的模型創新基本都在上邊羅列出來了。看上去好像對AM進行改進已經窮途末路,走投無路,問天天不應了,但這肯定是假象,後面一定會陸續冒出新的改進AM模型,只是一時半會你想不出來而已。就比如,我拍下腦袋瞎咧咧幾句,也許還可以從這幾個角度來改造AM這個錘子:

 

角度1:目前AM指的只是對於某個輸出單詞來說,對輸入句子單詞求注意力分配概率分佈,那麼能不能把輸出句子當前要生成的單詞yi之前已經輸出的部分單詞序列(y1到yi-1)也求一個注意力分配概率分佈呢?當然,乍一想這不算太好的主意,因爲Decoder如果是RNN或者LSTM的話,其實已經在隱層節點狀態隱含了部分這種信息了,但是你別忘了,不帶AM的Encoder-Decoder框架裏面,如果Encoder用的是RNN,理論上也已經部分考慮進來位置的影響力信息了,但不是還是提出了AM嗎?那爲啥要歧視Decoder部分再單獨加上一個AM模型呢?你說是不是這個道理?如果顯示地把它融入到AM模型裏面,也許對於輸出句子很長的場景也是有幫助的。

 

角度2:目前AM模型在輸出Yi的時候,是對每一個單詞求單詞對齊概率的,那麼能否對於輸出序列單詞以及輸入序列單詞進行組團呢?比如不只一個單詞而是若干個單詞組成的短語級別來計算這種對齊概率呢,這類似於把短語對齊的概念引入到AM模型中來;

 

當然,如果你要是像我一樣喜歡做空中的夢想家,這麼天馬行空地瞎想,可能還有其它各種拿AM來折騰的思路,也許哪天你就鴻運當頭,看美女看得目瞪口呆正好天上掉餡餅砸到你嘴裏,瞎貓碰見個死耗子什麼的,是吧?在A股市場走勢飛流直下,還不如被關停之際,我們要勇於逆流而上去擁抱“中國夢”,是吧。

 

在實際做創新的時候,並非是應用創新和模型創新涇渭分明的,有時候會混用兩種創新模式,就比如:你可以把(混合AM+強制前向AM)再混合一下,然後找個新的應用領域,那麼肯定算是一種嶄新的創新思路。也就是可以用目前的已有的模型創新和應用創新再排列組合一下,當然這種創新一般人聽起來覺得意思不大,但是您肯定屬於那種每天早上對着鏡子衝自己舉起小拳頭說自己不是一般人那種,對不,值不值得去做在於你自己怎麼看待這個問題。立志於做大創新的同志肯定不屑於做這種組合式創新,但是對於憋論文憋得都快流產的同志們來說,這也不失爲一種創新思路和生路,畢竟即使這麼做,你也得去踩很多雷,才能趟出一條路,是吧

 

對了,話都說到這個份上了,天台上排隊的同學們,你們這回總能安心下來了吧,還有很多雷等着你去踩呢。

 

這裏有關於注意力機制的新版本:深度學習中的注意力機制(2017版)

 

 

NLP領域AM相關參考文獻

[1]Dzmitry Bahdanau, Kyungh yun Cho, and Yoshua Bengio.2015. Neural machine translation byjointly learning to align and translate. In ICLR 2015.

 

[2]LifengShang, Zhengdong Lu, Hang Li. Neural Responding Machine for Short-Text Conversation.ACL 2015.

 

[3]Oriol Vinyals.etc. Grammar as a Foreign Language.arXiv.2015.google.

 

[4]Alexander M. Rush. etc.ANeural Attention Model for Sentence Summarization. EMNLP 2015.

 

[5]Minh-Thang Luong Hieu PhamChristopher D. Manning. Effective Approaches to Attention-based Neural Machine Translation.ACL 2015.

 

[6]Karl Moritz Hermann.etc.Teaching Machines to Read and Comprehend.arXiv.2015.google.

 

[7]Jan Chorowski.etc. End-to-end Continuous Speech Recognition using Attention-based Recurrent NN: First Results.arXiv.2015.

 

 

掃一掃關注微信號:“布洛卡區” ,深度學習在自然語言處理等智能應用的技術研討與科普公衆號。

 

發佈了117 篇原創文章 · 獲贊 806 · 訪問量 149萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章