iLMS知識社群ePortfolioeeClass學習平台空大首頁登入
位置: 吳俊逸 > NLP
四個 NLP 深度學習趨勢
by 吳俊逸 2018-02-07 07:47:18, 回應(0), 人氣(111)
參考資料:http://www.itread01.com/articles/1505937424.html

推薦此作者分析2017年ACL 國際計算語言學協會 (The Association for Computational Linguistics)的論文,以及演講內容,得出了四個NLP深度學習趨勢:Linguistic Structure、Word Embeddings、Interpretability 、Attention。

趨勢1:語言結構回歸(Linguistic Structure)

最近深度學習的復興已經強調了NLP的簡單統一範式:語句只是單詞序列(language is just sequences of words)。根據這個邏輯,任何更深的網絡結構都是不必要的,只需訓練一個RNN的 end-to-end,隨機梯度下降就能找出答案!雖然這種方法已經迅速地獲得了巨大的成功,但其局限性正變得越來越明顯。在2017年的ACL,幾位著名研究人員反對“語句只是單詞序列”的邏輯,並提出了理論,既實用又有原則。那麽為什麽NLP應該重新回到語言結構呢?

原因1:減少搜索空間

米雷拉·拉帕拉(Mirella Lapata)質疑了RNN序列到序列框架的霸權地位。在她非常有趣的主題演講中,認為所有的語言特征都應該被丟棄。相反,她得出結論:語言結構正在歸來,並通過示例提供了一個例子來解釋。她認為語言結構可以減少輸出的搜索空間,從而更容易地生成良好的輸出。

例如,代碼生成涉及“生成前10個平方數的列表”的自然語言語句映射到相應的代碼片段,例如python中的“[x ** 2 for x in range(10)]”。已經嘗試使用標準序列到序列方法完成這個任務,該方法將代碼簡單地稱為標記序列,而不是其底層樹結構。這使得生成任務在所有標記序列的整個輸出空間上是無約束的搜索。搜索任務容易產生不正確的輸出(例如,解碼器可能生成不匹配括號的代碼)。在ACL論文中,Yin和Neubig和Rabinovich等人 采取結構化預測方法,直接生成底層的抽象語法樹。這種方法將搜索空間限制在格局良好的底層樹上,消除了不合格的輸出。

語言結構不僅對於具有代碼生成和語義解析等高度形式化的輸出任務具有明顯的幫助,而且它也可以幫助減少不太明顯的任務的搜索空間,如cloze式閱讀理解。Xie和Xing構造了一個只探索這些節點的系統,他們認為這比瀏覽文檔中探索所有可能的節點要容易得多。

原因2:語言支架(Linguistic scaffolding)

諾亞史密斯在主旨演講中反對他所謂的“全南瓜飲食”——線性變換+擠壓函數(又稱神經網絡)作為NLP的唯一模型。相反,他鼓勵大家思考NLP模型的歸納偏差,即模型的基本假設,以及這些假設如何影響他們學習的內容。

史密斯特別強調了多任務學習的力量,並將它視為引入理想的歸納偏差的一種方法。ACL看到幾篇論文成功地采用了這種方法,特別是Eriguchi等人和吳等人為NMT設計了新的混合解碼器,它使用shift-reduce算法來同時生成和解析目標序列。

NMT +解析系統的聯合,似乎優於序列順序系統,也可能受益於減少搜索空間。對於長句子,NMT性能不佳,聯合解析輸出可以消除來自搜索質量差的輸出,從而允許搜索在更好質量的候選者之間進行選擇。

原因3:句法近因>連續近因

克裏斯·戴爾(Chris Dyer)認為,將語言結構納入深度學習領域是非常重要的。像諾亞·史密斯一樣,他也要求註意順序方法中固有的歸納偏差,他認為RNN對順序回歸具有歸納偏倚,而語法指導的層次結構(如遞歸NN和RNNGS)對語法近似性具有歸納偏倚。戴爾認為語言本質上是層次性的,結論是句法近因是對順序近因的一種優選的歸納偏差。

在ACL中,有幾篇文章指出,RNN明顯無法捕獲遠程依賴關系,而是使用遞歸模型可以進行改進。例如,在用語法感知編碼器和解碼器進行改進的神經機器翻譯中。他們發現使用遞歸編碼器可以提高整體性能,對於較長的句子而言,改進的程度更大。

趨勢2:重新考慮Word嵌入(Word Embeddings)

word嵌入是一種分布式的特征表述,向量的不同維度用來表征不同特征,不同維度上就代表著不同的語義。例如蘋果和紅旗都是紅色的,蘋果和香蕉都是水果。

今年題為“word嵌入”的論文數量從10個下降到了4個,盡管如此,詞嵌入仍然是一項標準的技術。今年ACL的相關文章非常有趣,也許是因為詞嵌入已經通過“炒作”階段進入了“審查”階段。這些論文探討了詞嵌入成功與失敗的界限,它做什麽,以及如何改善自己的弱點。

更好地理解單詞嵌入

令人驚訝(但經常被誇大)的詞嵌入的成功是他們的添加組合結構,令人難以置信的Skip-Gram-Zipf + Uniform = Vector Additivity旨在解釋這一成功。作者證明了,用跳過式模型訓練的分布詞嵌入,在某些假設下具有可加性。最顯著的是這些詞是均勻分布的,雖然訓練語料庫不是均勻分布的,但是這個結果可能會解釋詞嵌入為什麽具有的可加性。

其他論文研究了分詞假設在詞嵌入上的局限性。Li和Gauthier研究的問題:是否為現實世界準備了分配代理?,他們發現在詞嵌入捕獲某些概念特征,它們並不傾向於捕獲感性特征。該論文盡可能的呼喚基礎學習,正如通過建立機器人語言接地新研討會所證明的那樣。

詞嵌入的另一個更明顯的問題是它們不考慮多義詞,而是分配每個表面形式一個向量。Upadhyay et al(論文),利用多語言並行數據來學習多義詞單詞嵌入,例如,將英文單詞庫翻譯成法語單詞banc和banque都是銀行多義詞的證據。在多模態詞分布中,Athiwaratkun和Wilson沒有用單向量表示單詞,而是用它表示具有多種模式的高斯概率分布,從而捕捉到不確定性和多義詞。

去分詞

標準的詞嵌入最難解決的限制是對形態信息的盲目性。因為在處理這樣的問題時,總是將每個表面形式作為一個單獨的匿名單元來處理。這可能會導致諸如無法識別兩個詞(例如走路者和步行者)具有相同的引理(步行)的問題。這是最近從詞嵌入轉向字表示的主要原因。

作為潛在的新標準CNN出現有人質疑它是依靠形態學解決的?今年的ACL至少有兩篇論文表達了的否定態度。Vania和Lopez比較了幾個子詞組合表示的語言建模性能,發現它們中沒有一個表現的能夠與獲得形態學註釋的模型一樣。即使提供原始輸入模型進行多次的訓練,這一結果仍然保持不錯的性能。

標準的詞嵌入最難解決的限制是對形態信息的盲目性。因為在處理這樣的問題時,總是將每個表面形式作為一個單獨的匿名單元來處理。這可能會導致諸如無法識別兩個詞(例如走路者和步行者)具有相同的引理(步行)的問題。這是最近從詞嵌入轉向字表示的主要原因。 

作為潛在的新標準CNN出現有人質疑它是依靠形態學解決的?今年的ACL至少有兩篇論文表達了的否定態度。Vania和Lopez比較了幾個子詞組合表示的語言建模性能,發現它們中沒有一個表現的能夠與獲得形態學註釋的模型一樣。即使提供原始輸入模型進行多次的訓練,這一結果仍然保持不錯的性能。

這些結果表明,如果我們想要真正有形態意識的詞匯表示,我們可能需要一個更明確的形態模型,而不僅僅是字符組成。在他們的變形論文中,Vuli?通過使用非語言學家編寫的一些非常簡單的形態規則來微調詞嵌入。同時,Cotterell和Schütze提出了一個更全面的形態學模型,共同學習一個可以將一個單詞劃分成其形態組分的系統(例如,questionably→ question+ able+ ly)。我認為這是一個非常有價值的方法,因為任何形態理解系統都必須能夠構成和分解意義。雖然該模型在評估任務上表現良好,但我想了解的是如何輕松地將其轉移到諸如句法解析或語言建模等外部任務中。 

趨勢3:可解釋性(Interpretability)

我最近一直在思考可解釋性,然而我並不孤單,在深度學習實踐者中,神經網絡的可怕的“黑匣子”質量使他們難以控制,難以調試。然而,從非研究者的角度來看,有一個更重要的理由要求可解釋性: 信任 

公眾,媒體和一些研究人員如果不能理解AI是否可以信任,反而表示更加擔心,雖然這些焦慮是有根據的(見“Facebook聊天發明自己的語言”故事)。例如,如果AI系統吸收了訓練數據中存在的不必要的偏差,但是我們無法檢查這些偏差,那麽我們就有一個災難的系統。第二,由於人工智能系統不完善,有時會失敗,所以我們必須能夠檢查自己的決策,特別是對於比較復雜的任務。第三,即使AI系統運行良好,人類也許總是需要解釋來說服自己。 

那麽到底什麽是可解釋性?在研究人員看來“可解釋性”也可以有許多定義,對於這些定義的看法,我強烈推薦Zachary Lipton的“模型解釋的神話”。特別是,利普頓確定了兩種廣泛的解釋方式:事後解釋和透明度。事後解釋采取學習模式,並從中吸取一些有用的見解;通常,這些見解僅提供模型的工作原理部分或間接解釋。透明度更直接地提出“模式如何工作”,並尋求提供一些方法來了解模型本身的核心機制。

可視化可能是最常見的事後解釋類型,特定類型的可視化(如顯著圖和字預測)成為標準,這些可視化是有用的。在可視化和理解神經機器翻譯中,計算相關性分數,量化了特定神經元對另一個神經元的貢獻。論文中提供的可視化看起來非常類似於從註意力分布產生的可視化。然而,計算的方法是不同的。相關性分數是直接衡量一個神經元在受訓模型中對下遊神經元的影響。Ding等人的相關性分數提供了一種有效的替代方法來測量序列到序列模型中的詞級相關性。

轉移學習是另一種流行的事後解釋技術,其中任務A(通常是高級任務)為學習的代表被應用於任務B(通常是較低級別的任務)。任務B的成功程度表明任務A模型已經學到了任務B。

雖然轉移學習和註意力可視化可以告訴你“多少”,但他們不會告訴你 “為什麽”。為了回答後者,一些研究人員直接研究了表示空間幾何的本身。在神經讀者的隱藏狀態向量中的緊急預測結構中.Wang et al。他提供證據表明,在基於RNN的閱讀理解模型中,隱藏的向量空間可以分解為兩個正交子空間:一個包含實體的表示,另一個包含關於這些實體的語句(或謂詞)的表示。在用於分析連續詞嵌入的參數自由分層圖形分簇中,Trost和Klakow對字嵌入進行聚類,以獲得層次化的樹狀結構。根據本文提供的示例,層次結構可以提供更可讀的方式來探索詞嵌入的鄰域結構。

直接進行事後解釋的另一種方法是將解釋本身視為翻譯任務。在翻譯神經.Andreas et al。他采取訓練進行協作任務的兩臺機器之間傳遞的向量信息,並將其轉化為自然語言語言。

透明度

盡管從無法解釋的神經模型中收集了所有的工作數據,但一些研究者認為盯著神經元只會讓我們毫無所獲。真正的可解釋性要求透明度——構建和訓練的模型本身可以解釋。

根據定義,語言結構化表示比非結構化表示更容易解釋。因此趨勢1也可以被看作是向更透明的神經網絡模型的轉變。神經網絡是強大的,因為它們可以學習任意連續的表示。但人類發現離散的信息,比如語言本身,更容易理解。

我們可能擔心我們對神經模型的強制性限制會降低其表現力。擔心解釋性會以有效性為代價。但是,稀疏性誘導正則化可以改善在不損害神經模型的前提下,並且稀疏的詞嵌入可以比原始密集法更有效。在多語言序列標簽的神經詞嵌入的稀疏編碼中,Gábor Berend展示了稀疏詞嵌入對NER和POS標簽的有效性,特別是在有少量訓練數據的情況下。

對於回答復雜問題的AI系統,如果人類信任答案,透明度尤為重要。這些系統應該理想地產生答案的證明或推導過程。對於解決數學問題的系統,證明應該是一個逐步的自然語言派生的最終答案。這正是Ling等人提供的基於生成原理的程序導入:學習解決和解釋代數詞問題。他們的系統不是直接和毫無瑕疵地產生最終答案,而是共同學習產生數學轉換的基本序列。

趨勢4:註意力(Attention)

註意機制正在迅速成為最流行的技術,它可以用於繞過信息流中的瓶頸,它能夠實現無法通過前饋層實現的鍵值查找功能,並提供了一些非常需要的解釋性。註意力機制在今年的ACL上有所增加,論文一共有十五篇,比上年的九個有所增加。 

無處不在的更多註意力機制

註意機制是序列到序列框架中最可操作的一部分。因此,研究人員通過設計越來越復雜的註意力模型來尋求成功,目標是解決特定的特定任務問題。

有三篇論文提出了問題回答的模式,在這些模型(註意註意力,交叉註意力和門控註意力)中,第三種模型引入了多跳註意力,這使得模型在得到答案之前可以叠代地遍歷不同的部分。本文的附錄包含幾個演示了多跳推理的必要性和有效性的例子。

註意力也已經成為衡量和綜合來自多個潛在的多模態信息源的標準方法。Libovicky等人 Lin等人考慮同時通過文本和圖像來翻譯標題。在這些情況下,註意力很方便,因為它提供了從任意數量的源獲取固定大小的表示的一般方法。 

其他人發現,在多個維度上應用註意力對某些任務很有用。例如,語法錯誤糾正需要嵌套註意力:字級註意檢測字順序錯誤,以及字符級註意檢測拼寫錯誤。

所以你需要註意嗎?

註意力機制的熱情似乎可以證實最近大膽的聲稱:註意力是你需要的。然而,在ACL,我註意到一些研究人員提供關於潛在的陷阱或註意力錯誤的警告信息。

例如,有些情況下,我們可能希望註意力不起作用·Tan et al。他認為對於抽象文獻總結,註意力分布不能有效地模擬源句子的顯著性。相反,他們通過使用深度學習的提取摘要算法(基於PageRank的句子排名),從而獲得更大的成功。這個結果作為一個重要的提醒:我們不應該丟棄過去幾十年的積累的NLP知識,雖然不時尚,但這些技術可能提供改善我們神經系統的關鍵。

另外可能在一些情況下,註意力是多余的。Bollman等人 發現當他們引入多任務學習的輔助任務時,增加註意力機制就變得有害而不是有用。作為解釋,他們提供了證據表明輔助任務中增加註意力機制是多余的。雖然我不完全理解註意力和多任務學習之間的這種互動,但我們應該註意這一現象,因為它對未來系統的發展構成潛在的陷阱。