標籤:

【讀論文】機器閱讀的最新進展與爭議

[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.

arxiv.org/abs/1705.0312

推薦閱讀:

詳解機器學習之感知機理論與實踐
pytorch實現capsule
機器學習技法筆記3:核函數SVM
<Reinforcement Learning for Relation Classification from Noisy Data>閱讀筆記
SVD個人心得

TAG:機器學習 |