GoogleKaiser為你解讀深度學習如何變革自然語言處理

ADVERTISEMENT

機器之心原創

作者: 鹿者也、ChainnZ

2017 年 1 月 11 日,一個名為 2017 人工智慧前沿大會(AI Frontiers Conference)的會議在加利福尼亞聖塔克拉拉舉行。包括 Jeff Dean(Google大腦的負責人)、鄧力(微軟人工智慧首席研究員)、Adam Coates(百度人工智慧實驗室負責人)、Alex Smola(亞馬遜機器學習負責人)在內的 20 多位世界級業內人士和研究學者向 1500

餘名參會者分享了人工智慧最前沿的發展情況。

在本次會議中,Google大腦高級研究員 Lukasz Kaiser 就自然語言處理的發展現狀及目前Google翻譯的能力做了報告。

自然語言處理是什麼?

自然語言處理近些年的變化歸因於深度學習的發展。

自然語言處理(NLP)是一個非常大的概念。在本報告中,Lukasz 將其特指為文本到文本的任務(text to text task)。許多語言學家認為文本到文本任務是絕對屬於符號工程(symbolic project)的領域,包括語法分析、翻譯、語言建模等。

上述任務通常是由人類進行處理的,但神經網絡能否為我們代勞?很多人不相信,直至神經網絡真的做到了這一點。但神經網絡是如何做到的?Lukasz 在接下來的幻燈片中給出了一些解釋。

ADVERTISEMENT

為使神經網絡能理解一個句子,我們需要解決的問題到底是什麼?

Lukasz 提到:「一開始出現神經網絡的時候,它主要用來做圖像識別,處理同一個維度上的像素信息。而語句和圖像不一樣。」[1] 不同的句子由不同數量的詞組成,這意味著一個句子的輸入維度是不規則的。如果想用神經網絡來解析這種情況,循環神經網絡(RNN)將會是自然之選。接下來就是訓練該網絡,如果需要用到的步驟太多,計算的負擔將會非常重。那麼接下來,我們就用到了長短期記憶(LSTM)。

先進的序列到序列 LSTM

LSTM 讓我們能夠訓練這種循環神經網絡。但在 1997 年,在 LSTM 應用的很早期,所能採用的規模很小,沒有適合的硬體能處理這樣的任務,這些缺點使得 LSTM 僅僅是一種理論突破。

但是,人們還不能利用這種方法來解決實際的問題。直到最近這幾年(大概是 2014 年),編碼器-解碼器(encoder-decoder)架構 [3] 的出現使得 LSTM 變成了一種切實可行的方法,該方法不僅僅能構築單層網絡,而且能構築很多層的網絡。

在構築起這些層之後,通過更大的模型我們得到了更好的結果。

Lukasz 接下來給出了一個語法分析的例子。有了從學校學的知識,要讀懂一個句子,我們可能會先識別其中的動詞或名詞,同時思考一下語法,就像幻燈片 5 中所示的語法分析樹那樣。而這是以前舊的標準做法,用這種做法去創建自然語言處理模型,去輸入詞彙含義、語法和句式結構,以使神經網絡理解並生成句子。

ADVERTISEMENT

有別於傳統的做法,Lukasz 的研究團隊僅僅是把語法樹寫成以他們所能想像到最最簡單的方式所組成的序列里的一句話,這其中包含了括號和符號。

僅通過編寫序列的方式來訓練網絡,而網絡根本不知道什麼語法樹、或者括號、或者任何背景知識。這樣做的問題在於缺少數據,因為所有的數據(序列)僅來源於研究人員的編寫。相對於舊的訓練方法,即輸入語法,或者句子結構,新的訓練方法似乎在提供背景知識方面更弱。但是,新的方法反而得到了更好的結果,因為網絡可以自行學習所有這些知識。

LSTM 也適用於語言模型。語言模型的性能是以複雜度來度量的。更低的複雜度就意味著更好的性能。通過與過去所用模型的對比,複雜度的測量結果急劇地下降,這意味著獲得了顯著的改進。在 2016 年所達到的最好分數是 28(而 2013 年是 67.6),能達到這樣的成績在以前被認為是不可能的。決定因子是模型的大小。

Lukasz 也給了一些 LSTM 應用於語言建模和句子壓縮方面的例子。

最讓人印象深刻改進發生在將 LSTM 應用於翻譯領域。正像 Lukasz 所描述的那樣,在學校里,我們逐詞地學習外國語言。但是如果我們不用這種方式來學,我們就是聽人們用那種需要交流,看上去好像也可以。實際上,幼兒們學習就是採用這種方式,這實際上就是神經網絡學習的方式。在這種情況下,訓練數據的大小和數量是問題的關鍵。

翻譯的性能由 BLEU 分數來衡量,分值越高性能越好。在過去的兩年中,分值從 20.7 提升到了 26.0。Lukasz 的模型大小似乎是決定因素。

在早些年(兩年以前),經過訓練的網絡能夠達到「人工系統」(也就是能逐個短語進行轉化的短語系統)的水平,並且把它做的越來越大,但卻始終達不到比較好的效果。通過比較 PBMT(一種舊的標準翻譯模型)和 GNMT(採用了 LSTM 的新模型)的結果你會發現,同樣是翻譯一個德語句子,新模型的結果很明顯更清晰更能讓人理解。

這樣的結果說明翻譯過程不再是非要人工參與的工作,而可以變成僅僅需要一個大的神經網絡和很多次訓練而已。正如 Lukasz 所說,該理論對於許多自然語言處理任務都適用。

ADVERTISEMENT

不過它究竟有多好呢?我們能考評它嗎?我們請人對Google翻譯最新發布的神經網絡的翻譯結果進行評價,評價的分值從 0 到 6,其中 0 分意味著翻譯得無厘頭,6 分意味著是完美的翻譯。而且,為了對新舊系統進行比較,我們請人工的翻譯(母語是該語言但不是專業的語言學家)也加入這場比賽,並且也讓人們去評分。下一張幻燈片顯示了這三種翻譯系統的評分結果。

結果顯示新的系統有了巨大的改進,而且在某些情況下(比如英語到西班牙語的翻譯)幾乎和人類的翻譯者一樣好。通過研究發現,更大的資料庫能產生更好的結果。

LSTM 的局限

但是,序列到序列 LSTM 仍然有一些問題待解決。Lukasz 列出了其中的兩個:

1. 速度的限制

這些模型都很大。鑒於對資料庫大小的依賴,牽扯到相當大的計算量,在這種情況下,處理速度是個大問題。為了縮短處理時間,TPU 在幫助研究人員開展這種翻譯的時候是一個很重要的硬體選擇。

除此之外,翻譯的過程太循序漸進了。即使計算的速度非常快,仍然要一個詞一個詞地來。即使是一個小任務,處理時間也很慢。為了解決這一問題,新的並行模型(Neural GPU, ByteNet)也許期望能幫助解決這個問題。

2. 需要很多數據

序列到序列 LSTM 需要很多數據。為了解決這個問題,提出了基於注意力和其他能增加數據效率的新架構。其他一些方法可以被用於進行規則化,比如 dropout、信任懲罰(confidence penalty)以及層標準化。

總結

深度學習極大地改變了自然語言處理領域。序列到序列的 LSTM 在很多自然語言處理任務上取得了業界最好的成績。Google 翻譯將 LSTM 用於產品中,獲得了翻譯質量的巨大提高。但是,新的模型也帶來了一些 LSTM 的問題,特別是在速度與對大量數據的依賴上。

ADVERTISEMENT