LeeMeng - 淺談神經機器翻譯 & 用 Transformer 與 TensorFlow 2 英翻中
那時,全世界的語言都一樣。人們說:『來吧,我們要建一座塔,塔頂通天,為了揚我們的名,免得我們被分散到世界各地。』耶和華說:『看哪!他們成爲一樣的人民、用同樣的語言。如今既蓋起塔來,以後就沒有他們無法完成的事情了。我們下去!在那裏變亂他們的口音,使他們的言語彼此不通。』 ─ 《創世記》第十一章 這是聖經中著名的巴別塔橋段,用來解釋為何當今世上有那麼多種語言。當年的上帝或許過於杞人憂天,但近年多虧了深度學習,機器翻譯的快速發展讓人不禁覺得,或許巴別塔很快就不再只是虛幻傳說了。 機器翻譯的研究之所以如此重要且迷人,是因為它將有機會讓未來任何人都不受語言的限制,獲得世界上任何他或她想要的資訊與知識。 在這篇文章的前半部分,我們會先花點時間來回顧神經機器翻譯裡頭的一些重要概念。接著在具備這些概念以及其他背景知識的前提之下,利用最新的 TensorFlow 2 來實作一個可以將英文句子翻譯成中文的神經網路架構:Transformer。 這是一個非常簡化的示意圖。Transformer 實際上是一種基於自注意力機制的 Seq2Seq 模型,近年在圖像描述、聊天機器人、語音辨識以及機器翻譯等各大領域大發異彩。但因為其相對複雜,到現在還是有種現象: 了解 Transformer 相關技術的人已經用了好一陣子且用得很開心,不知道的人還是不知道。 當然這並不僅限於 Transformer,因為深度學習牽涉的研究範圍實在太廣了。透過這篇文章,我希望能幫助你開始了解神經機器翻譯以及 Transformer 的相關知識。 當我們完成實作並訓練出一個 Transformer 以後,除了可以英翻中以外,我們還能清楚地了解其是如何利用強大的注意力機制(我們在 Encoder-Decoder 模型 + 注意力機制一節會仔細探討此概念)來做到精準且自然的翻譯。 除了翻譯出來的中文正確無誤以外,從上圖你可以發現很有趣的現象。 給定左側的英文,Transformer 在生成其對應的中文翻譯時都會給每個英文詞彙不同的「注意程度」。小方格越亮則代表模型在生成某中文字時放越多的注意力在左側對應的英文詞彙上。 仔細看你會發現這個已經訓練好的 Transformer 在翻譯: 乍看之下好像稀鬆平常,但事實上我們在訓練模型時並不會告訴它這些詞彙之間的對應關係或是任何語言學的知識。我們就只是餵給它多組相同意思的中英句子
Explore this link on the map →