【讀論文】機器閱讀的最新進展與爭議
[1] PaperWeekly 論文閱讀組
閱讀論文是小眾活動,閱讀者分散在全球各地。PaperWeekly 論文閱讀小組,把分散在全球的華人閱讀者,聚合在一起。不僅互幫互助讀懂論文,而且通過討論,激發靈感。
進入 PaperWeekly 的網站,閱讀者不僅可以看到本周熱點論文標題,而且可以在線閱讀論文正文。
網頁左側顯示的是論文正文,閱讀者可以在論文上劃重點。網頁右側是討論區,閱讀者點擊左側重點語句後,就可以在右側,針對這一句話提問和討論。
參與者針對同一篇論文,逐段逐句地討論。不僅討論的話題聚焦,而且是最細顆粒度的討論,非常深入。
論文讀起來略感艱深,但是不乏樂趣。
譬如本周大家正在討論的一篇論文,是 Facebook AI lab 上周(2017.5.12 )發表的 「Convolutional Sequence to Sequence Learning」 [1]。
這篇論文很轟動,因為 Facebook 把這項技術用於機器翻譯,不僅精度超過了機器翻譯的業界老大,Google Translate,而且翻譯速度提高了 9 倍。
先讀讀該論文的摘要。論文摘要開門見山第一句話,就充滿戲劇衝突。
「當前 Seq2Seq 流行的方式,是通過循環神經網路,把輸入序列,轉變變長的輸出序列。我們提議一個新架構,完全依賴於卷積網路」。
這是打擂台的語調喲。
讀論文的樂趣之一,就是圍觀打擂。
Facebook 這篇論文的主題,是卷積網路 CNN 與循環網路 RNN,在機器翻譯和機器閱讀領域的對決。
如果我們把鏡頭拉遠一點,對決的不止是 CNN vs RNN,
[2] 傳統 NLP 對決深度學習
人類閱讀的時候,往往從語句提煉出關鍵詞和語義關係。
例如,閱讀這個語句 「患者自訴無誘因出現咳嗽,濃痰,無咯血,夜間及運動後加劇」。
整個語句中最重要的辭彙是 「咳嗽」,其次重要的辭彙是 「濃痰」 和 「加劇」,再次是 「無咯血」、「無誘因」。這是整個語句中各個辭彙的重要性排行。
「夜間」 和 「運動後」 是 「加劇」 的屬性。而 「加劇」 「濃痰」 「無咯血」,是 「咳嗽」 的屬性。這是辭彙之間的依存關係。
想從語句中提煉出關鍵詞和語義關係,傳統的做法是,在理解語義之前,先對語句做標註和句法解析。
分析出句子的主謂賓定語狀語(tagging),然後把整個語句轉換成樹狀的結構體(parsing)。
根據樹狀結構體,很容易判斷語句中各個辭彙的重要性,以及辭彙之間的依存關係。
先解析語法,然後理解語義,這是傳統的做法。對於這種傳統做法,業界有很大爭議。
2016 年人工智慧領域一大突破性進展,是谷歌翻譯,從研究課題成為產品級服務,正式上線服務網民。谷歌翻譯的核心技術就是 Seq2Seq。
Seq2Seq 這一技術,不僅可以用於機器翻譯,而且也可以用於機器閱讀,譬如讓機器閱讀一篇長文,然後自動生成文章摘要。
乘勝追擊,深度學習學派試圖把 Seq2Seq 這項技術,從機器翻譯,拓展到整個自然語言處理領域。
[3] 卷積 Convolution 對決循環 Recurrency
Seq2Seq 先把語句轉換為一組詞向量,通過對詞向量的剪輯,提煉出語義向量。
但是對於如何剪輯,深度學習學派內部又有爭議。
先前佔據話語權的一派,提議使用 LSTM 等等循環模型(RNN),來實現語義剪輯。
RNN 模型的剪輯手段是三重門,記憶門、遺忘門、和輸出門。
沿用上例,「患者自訴無誘因出現咳嗽,濃痰,無咯血,夜間及運動後加劇」,
經過三重門的剪輯,「咳嗽」 的語義向量,不僅包含 「咳嗽」 的內容,也包含著 「無誘因」 和 「濃痰」 這些上下文的內容。
RNN 模型的突出優勢,是很好地解決了長距離依賴的難題。
沿用上例,「加劇」 對應的語義向量,不僅包含 「加劇」 的內容,而且也包含 「咳嗽」 的內容。
Facebook 這篇論文之所以轟動,是因為他們使用了 CNN 卷積模型,來取代 RNN 循環模型.
不僅精度超越循環模型,而且訓練速度提高了 9 倍。
PaperWeekly 閱讀組裡討論的熱點有二,為什麼更快?為什麼更准?
CNN 比 RNN 的訓練速度快,這一點容易理解,沒有爭議。
卷積比循環的訓練速度快,這是由兩個因素造成的必然結果。
1. 卷積可以並行處理,而循環只能按順序依次處理。在雲計算平台上,讓多個機器同時並行訓練卷積模型,速度當然比串列訓練循環模型來得快。
2. 可以用 GPU 晶元來加速卷積模型的訓練,而暫時還沒有硬體能夠加速 RNN 的訓練。
有爭議之處,在於精度的高下,究竟是取決於 CNN vs RNN 模型的不同,還是取決於解碼技術,尤其是解碼器的關鍵技術 attention 的改進?
個人認為,卷積(convolution)的層層抽象,與循環(recurrency)的三重門,其實是異曲同工。
雖然手段不同,但是目的都是忽略次要內容,傳承重要內容。所以,在精度方面,卷積與循環不會有太大差距。
Facebook translate 與 Google translate 的精度差異,應該來自於 Facebook translate 對於 attention 的改進。
[4] Attention 的擂台剛剛拉開帷幕
Facebook 研究組,對 attention 做了改進,體現在兩點。
1. Google Translate 的解碼器使用的是單層的 LSTM 模型,相應地,attention 也是單層的。
Facebook 的解碼器使用的是 CNN 模型,是多層的。相應地,Facebook 的 attention 是多跳的(multi-hop)。
越是底層的 attention,越聚焦,細節越豐富。
越是高層的 attention,視野越開闊,抽象程度越高,越能抓住文章主旨。
2. Google Translate 使用的 attention,依賴於編碼器生成的語義向量,而不依賴於輸入的原生態的詞向量。
而 Facebook 的 attention,對語義向量和原生態詞向量兼收並取。
語義向量負責把握主旨,保證解碼器的輸出不偏題。
原生態詞向量關注措辭,保障解碼器的輸出用詞得當。
對於 attention 的改進,個人預感近期內將會有更大的突破。
無論 Google 的 attention,還是 Facebook 的版本,在計算 attention 的權重時,都以計算向量間的距離為基礎。簡單點說,就是尋找語句中字面意思最貼近的辭彙。
這種只聚焦字面意思的 attention 的計算方式,是無法解決 「話外有話」 的暗示型的語句的。
同樣是英語,英國人說話比美國人委婉。單靠理解字面意思,是無法理解英國人真實的態度的。
個人猜想,將來 attention 的機制,還得融入規則。
同理,只理解字面意思的 attention 的計算方式,也無法理解 「引經據典」 和 「含沙射影」 的聯想型的語句。
要正確理解 「引經據典」 和 「含沙射影」 ,將來 attention 的機制,還得融入知識圖譜。
[5] 參考文獻
1. Convolutional Sequence to Sequence Learning.
https://arxiv.org/abs/1705.03122
推薦閱讀:
※詳解機器學習之感知機理論與實踐
※pytorch實現capsule
※機器學習技法筆記3:核函數SVM
※<Reinforcement Learning for Relation Classification from Noisy Data>閱讀筆記
※SVD個人心得
TAG:機器學習 |