2013年,在Brandeis大學(xué)聆聽(tīng)薛念文老師(計(jì)算語(yǔ)言學(xué)領(lǐng)域引用率最高的華人之一, 下圖居中, 薛老師右邊是好友柏曉鵬和李斌)討論小組研究語(yǔ)言模型的時(shí)候, 已經(jīng)感到神經(jīng)網(wǎng)絡(luò)語(yǔ)言模型的力度。
但是還是非常難以想象到3年不到的這么短時(shí)間,就突破到這個(gè)程度。 去年年底Google神經(jīng)網(wǎng)絡(luò)機(jī)器翻譯出來(lái)的時(shí)候, 本人有感于突破之快, 把當(dāng)年的討論的部分收獲寫(xiě)到了 “概率估值的光滑(Smoothing)”里面。
今天有時(shí)間和大家一起討論下下, 深度神經(jīng)網(wǎng)絡(luò)機(jī)器翻譯。
前言
2016年年底, Google公布了神經(jīng)網(wǎng)絡(luò)機(jī)器翻譯(GNMT), 從此宣告, 機(jī)器翻譯經(jīng)過(guò)27年左右, 正式從1989年的IBM機(jī)器翻譯模型(PBMT,基于短語(yǔ)的機(jī)器翻譯),過(guò)渡到了神經(jīng)網(wǎng)絡(luò)機(jī)器翻譯模型。已經(jīng)極大接近了普通人的翻譯了。
而從基于短語(yǔ)的翻譯到神經(jīng)網(wǎng)絡(luò)翻譯, 相對(duì)提升可以達(dá)到60%以上, 因此一下子引起了歡呼和驚嘆。 而這背后的大功臣,就是sequence to sequence (seq2seq)的端到端的模型。
而這個(gè)seq2seq模型,除了機(jī)器翻譯,還極大改變了整個(gè)自然語(yǔ)言處理相關(guān)應(yīng)用。 包括基本的NLP功能:Parsing, NER等; 傳統(tǒng)的NLP應(yīng)用:Summarization, QA, Conversation等; 還有多模的世界:圖像和文字, 語(yǔ)音和文字等。
譬如, Google除了GNMT以外還有基于seq2seq的TTS系統(tǒng)Tacotron:
基于seq2seq的問(wèn)答系統(tǒng):
基于seq2seq的概要提取系統(tǒng):
接下來(lái), 我們按如下順序介紹seq2seq模型:
Seq2Seq的簡(jiǎn)史
PBMT 時(shí)代的基石和問(wèn)題
端到端模型的出現(xiàn)
神經(jīng)網(wǎng)絡(luò)語(yǔ)言模型的出現(xiàn)
RNN-LM的出現(xiàn)
RNN的發(fā)展
Seq2Seq的出現(xiàn)
Seq2Seq的發(fā)展
一. Seq2Seq的簡(jiǎn)史
目前seq2seq的突破,離不開(kāi):
a. Attention機(jī)制: 現(xiàn)在Attention機(jī)制幾乎將IBM模型中alignment對(duì)齊機(jī)制發(fā)揮出新的境界。
b. RNN模型升級(jí): RNN出現(xiàn)了雙向RNN,堆棧RNN,和殘差RNN。在GNMT里面把這些技術(shù)統(tǒng)統(tǒng)用上了。使得RNN模型的學(xué)習(xí)能力達(dá)到空前高度。
c. RNN-LM模型: RNN的使用開(kāi)啟解決長(zhǎng)距離依賴(lài)的問(wèn)題, 也引發(fā)記憶計(jì)算在語(yǔ)言模型的新思考。
d. NNLM模型突破:NNLM模型的發(fā)展使得非線性的投影和Softmax的近似計(jì)算得到突破。
e. 端到端的編解碼模型:端到端的早期突破使得多模融合成為可能。
2015年,兩個(gè)小組: Tim Rocktaschel為代表的倫敦大學(xué)院、牛津大學(xué)、還有DeepMind的小組(Reasoning about Entailment with Neural Attention), 和愛(ài)丁堡大學(xué)的Jianpeng Cheng (Long Short-Term Memory-Networks for Machine Reading),發(fā)表了基于Attention的對(duì)齊機(jī)制細(xì)分和相關(guān)的可視化的分析。 尤其Jianpeng Cheng對(duì)Shallow Attention Fusion 和 Deep Attention Fusion的區(qū)分,代表了Attention機(jī)制在NLP里面的成熟。
2014年 - 2015年,斯坦福計(jì)算機(jī)系Manning組的 Minh-Thang Luong 的論文 Effective Approaches to Attention-based Neural Machine Translation 正式基于高斯分布推導(dǎo)了Local Attention,比較了Global Align Attention和Local Align Attention, 和視頻處理里面 Soft Attention 和 Hard Attention建立了聯(lián)系。
2015年 Bengio的團(tuán)隊(duì)中來(lái)自德國(guó)的Dzmitry Bahdanau (NEURAL MACHINE TRANSLATION BY JOINTLY LEARNING TO ALIGN AND TRANSLATE),將Attention機(jī)制引入到機(jī)器翻譯中,正式開(kāi)啟了Attention作為Alignment的大門(mén)!
2014年 兩個(gè)人, Bengio團(tuán)隊(duì)的Kyunghyun Cho (Learning Phrase Representations using RNN Encoder–Decoder for Statistical Machine Translation) 和 Google的 Ilya Sutskever (Sequence to Sequence Learning with Neural Networks) 正式將RNN Encoder-Decoder搬上神經(jīng)網(wǎng)絡(luò)機(jī)器翻譯NMT的歷史舞臺(tái), 并且命名為Seq2Seq模型!
從上面, 我們看到從Seq2Seq簡(jiǎn)單模型到有Attention模型的Seq2Seq的經(jīng)歷。
二. PBMT 時(shí)代的基石和問(wèn)題
首先基于短語(yǔ)的機(jī)器翻譯,從IBM模型一路發(fā)展而來(lái), 已經(jīng)相當(dāng)成熟。 并且開(kāi)源系統(tǒng)也很多,極大促進(jìn)了機(jī)器翻譯的研究和應(yīng)用。
最重要的是完成機(jī)器翻譯的功能模塊的分解: 雙語(yǔ)對(duì)齊, 語(yǔ)言模型,翻譯模型, 解碼器, 測(cè)試。
這個(gè)使得, 神經(jīng)網(wǎng)絡(luò)語(yǔ)言模型誕生后,可以進(jìn)行獨(dú)立測(cè)試, 逐步發(fā)展替代。
其中n-gram語(yǔ)言模型,基于全概率公式和馬爾可夫假設(shè),
但是問(wèn)題也出現(xiàn)在這個(gè)n-gram模型, 主要的3大問(wèn)題:
1. 通過(guò)頻率計(jì)算概率, 存在數(shù)據(jù)稀疏,概率為0的情況難以輕易搞定。
雖然,眾多概率光滑的算法(尤其 Modified Kneser-Ney 算法)紛紛出現(xiàn), 依然對(duì)人為先驗(yàn)設(shè)計(jì)要求太高。
2. 長(zhǎng)距離依賴(lài)的問(wèn)題難以解決(短語(yǔ)N-Gram中N的局限性)
3. 線性模型學(xué)習(xí)的局限性
如何解決基于頻率的概率估算問(wèn)題, 解決長(zhǎng)距離依賴(lài), 解決線性模型的問(wèn)題在基于短語(yǔ)的機(jī)器翻譯PBMT框架下難以徹底截距。
其實(shí), 還有兩個(gè)神器在PBMT時(shí)代已經(jīng)廣泛應(yīng)用了:
1. Log-Linear模型的提出
在“概率分布の三奧義” 里面,我們就提出了, 概率估計(jì)發(fā)展, 從基于頻率, 到基于經(jīng)驗(yàn),再到基于最大熵。 需要的數(shù)據(jù)越來(lái)越少。 而Log-Linear就是基于最大熵的概率模型(細(xì)節(jié)參考““66天寫(xiě)的邏輯回歸” 引”) 如果想深入了解的, 簡(jiǎn)單說(shuō)來(lái)Log-Linear和最大交互熵之間的關(guān)系就是著名的Donsker-Varadhan定理:
Log-Linear表現(xiàn)為Softmax輸出。
2. 束查詢(xún) Beam Search
當(dāng)把翻譯的詞拼成句子的時(shí)候, 要求整個(gè)句子的似然概率最大, 這時(shí)候Beam Search是介于貪心和動(dòng)態(tài)規(guī)劃(譬如 Viterbi Algorithm)之間個(gè)一種均衡了效果和計(jì)算量的選擇。
三. 端到端模型的出現(xiàn)
端到端模型很早就出現(xiàn)了, Brandeis 的Jordan Pollack早在89年左右就思考如何基于encoder-decoder開(kāi)始做機(jī)器翻譯。 不過(guò),那時(shí)候叫dual-ported RAAM (recursive auto associate memory)。
大家都知道encoder-decoder的功能是重建對(duì)應(yīng)的元素, 如果x和f(x),存在同樣的內(nèi)在分布表達(dá), 那么可以先訓(xùn)練x重建, 再訓(xùn)練f(x), 甚至可以訓(xùn)練多個(gè)f(x)。 如果把f(x)看成是翻譯, 這就可以基于多模的翻譯, 也可以是多語(yǔ)言的翻譯。
不僅僅如此, 還引入了分布表達(dá)映射的思想, 增強(qiáng)模型的表達(dá)能力。
這是早期的基于神經(jīng)網(wǎng)絡(luò)的端到端的機(jī)器翻譯, 但是局限于當(dāng)時(shí)的算法和計(jì)算,效果并不突出。
四. 神經(jīng)網(wǎng)絡(luò)語(yǔ)言模型NNLM的出現(xiàn)
PBMT時(shí)代后期, Log-Linear的出現(xiàn)和應(yīng)用, 基本上奠定了NNLM神經(jīng)網(wǎng)絡(luò)語(yǔ)言模型的基礎(chǔ)了。 本質(zhì)上NNLM就是Log-Linear 保留了Softmax層, 替代了線性映射變成非線性映射tahn。 這樣, 引入了非線性映射。
Log-Linear對(duì)應(yīng)的是線性Softmax網(wǎng)絡(luò):
NNLM: 非線性(tanh)的Softmax網(wǎng)絡(luò)
這里使用的是tanh,某種意義就是截?cái)嗟膶?duì)稱(chēng)線性的光滑近似。
其實(shí),直接在Log-Linear基礎(chǔ)上,引入非線性存在個(gè)兩個(gè)問(wèn)題:
1. 需要的網(wǎng)絡(luò)參數(shù)太多, 訓(xùn)練困難
2. Softmax網(wǎng)絡(luò)的計(jì)算量很大, 而且不穩(wěn)定, 噪聲的影響太大。
對(duì)于這兩個(gè)問(wèn)題,Bengio建議可以嘗試RNN來(lái)減少參數(shù), 同時(shí)提出了Hierarchy Softmax方式減少計(jì)算量,但是依然不夠穩(wěn)定。
雖然NNLM引入了非線性, 也使用softmax計(jì)算概率問(wèn)題(等價(jià)于最大熵估算概率), 但是并沒(méi)有解決長(zhǎng)距離依賴(lài)問(wèn)題。
五. RNN-LM的出現(xiàn)
Mikolov追隨Bengio的建議, 2010年引入了RNN, 雖然引入RNN有利于簡(jiǎn)化參數(shù), 但是同時(shí)引入了深度網(wǎng)絡(luò), 使得訓(xùn)練和收斂變得困難。 為了簡(jiǎn)化計(jì)算, 沒(méi)有采用tanh計(jì)算, 使用了sigmoid函數(shù), 同時(shí)采用了分組計(jì)算softmax。
2年后, Mikolov在提出word2vec之前差不多搞定了Negative Sampling, 進(jìn)一步提出了提高了Softmax的訓(xùn)練的速度和穩(wěn)定性。Negative Sampling可以看成2010年 Gutmann and Hyva?rinen 提出的 Noise Contrastive Estimation的一種近似。 現(xiàn)在NEG和NCE已經(jīng)成為訓(xùn)練softmax的主流。
有人說(shuō), RNN-LM好像就是把NNLM的NN網(wǎng)絡(luò)換成了RNN網(wǎng)絡(luò), 但是訓(xùn)練難度的增加,的確阻礙了好多人的實(shí)驗(yàn)成功, 有興趣可以看一下 Bengio和Mikolov聯(lián)合在2012年發(fā)表的大作 On the difficulty of training Recurrent Neural Networks。
RNN的成功引入, 解決了長(zhǎng)距離依賴(lài)的問(wèn)題, 而且引入了上下文和記憶的概念。
RNN-LM 背后的翻譯能力的挖掘,還需要回歸到早期Encoder-Decoder的表達(dá)映射。
六. RNN的發(fā)展
RNN自身學(xué)習(xí)能力也在不停的發(fā)展, 譬如堆棧RNN,粗細(xì)的表達(dá)能力也開(kāi)始分層次。 構(gòu)建起一個(gè)時(shí)間和空間的縱橫網(wǎng)絡(luò)。
在語(yǔ)言模型里面, 就要看雙向網(wǎng)絡(luò)了, 正向網(wǎng)絡(luò), 好比我的老家溧陽(yáng), 那么你遇到溧字,后面只有兩個(gè)選擇溧陽(yáng)和溧水,但是反過(guò)來(lái)陽(yáng)和水前面可以跟的詞就多了。 反向網(wǎng)絡(luò), 好比New York, 正向看New 后面不一定跟York,但是反過(guò)來(lái)看York前面一般跟New。
再根據(jù)訓(xùn)練收斂的快慢和梯度消失的影響, 引入殘差網(wǎng)絡(luò)的機(jī)制, 就得到了殘差堆棧RNN。
合并到一起,就是GNMT里面的雙向堆棧殘差RNN網(wǎng)絡(luò)了。
除了結(jié)構(gòu)的疊加, 也有人開(kāi)始改進(jìn) RNN本身結(jié)構(gòu), 譬如增強(qiáng)記憶功能的增強(qiáng)RNN:
七. Seq2Seq的出現(xiàn)
有了RNN作為語(yǔ)言模型, 再加上早期的Encoder-Decoder框架作為翻譯, 于是誕生了RNN Encoder-Decoder模型。
如果把這個(gè)模型水平展開(kāi),就不很像encoder-decoder了, 于是命名成Seq2Seq模型了。
再加上詞嵌入的發(fā)展和t-SNE可視化的發(fā)展, 剛出生的Seq2Seq翻譯的效果和影響力已經(jīng)不是dual-ported RAAM可以比擬的啦。
從此端到端的翻譯重新回到歷史的舞臺(tái)!
八. Seq2Seq的發(fā)展
隨著前面簡(jiǎn)史里面介紹的Attention機(jī)制的引入, Seq2Seq的效果一飛沖天。Attention本質(zhì)上也是一個(gè)Softmax的權(quán)重計(jì)算網(wǎng)絡(luò)。
但是它很好的構(gòu)建了注意力權(quán)重、上下文向量,注意力向量等模塊。
有了這樣的模塊化, 再加上合理的計(jì)算流程, 我們就可以得到基于Attention的候選詞計(jì)算了。 而Attention機(jī)制很好的替代了在PBMT里面的對(duì)齊機(jī)制。
如果再回到PBMT里面的幾大模塊: 雙語(yǔ)對(duì)齊, 語(yǔ)言模型,翻譯模型, 解碼器, 測(cè)試。 發(fā)現(xiàn)可以對(duì)應(yīng)到Attention,RNN-LM,Encoder-Decoder, Beam.
似乎除了Beam之外,全部可以利用神經(jīng)網(wǎng)絡(luò)搞定了。 現(xiàn)在為Seq2Seq量身定做Beam Search也是一個(gè)研究熱點(diǎn), 最近基于剪枝的算法又開(kāi)始出現(xiàn)了,希望找到計(jì)算量和效果的新的平衡點(diǎn).
這樣,基于概率的剪枝, 是不是和AlphaGo接近了。 這或許就是未來(lái)使用AlphaGo做機(jī)器翻譯的開(kāi)始。 有興趣大家可以看看IBM Watson研究院 Markus Freitag 的論文 Beam Search Strategies for Neural Machine Translation.
小結(jié)
本文通過(guò)逐層說(shuō)明的方式,對(duì)比了從PBMT到NMT的進(jìn)化實(shí)現(xiàn), 通過(guò)問(wèn)題解答的方式, 闡明了深度神經(jīng)網(wǎng)絡(luò)機(jī)器翻譯是怎么發(fā)展起來(lái)的。
聯(lián)系客服