1. 程式人生 > >沒有資料也能翻譯?一文讀懂「無監督」機器翻譯

沒有資料也能翻譯?一文讀懂「無監督」機器翻譯

?wx_fmt=gif&wxfrom=5&wx_lazy=1

?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

原文來源buZZrobot

作者:Harshvardhan Gupta

「雷克世界」編譯:KABUDA、嗯~阿童木呀

深度學習正在被廣泛地運用於各項日常任務當中,尤其是涉及到一定程度“ 人性化”的領域,例如,影象識別。與其他機器學習演算法不同,深度網路最突出的特點是隨著獲得資料的增多,其效能可以不斷提高。因此,如果可以獲得更多的資料,那麼預期的效能也會變得更好。

深度網路最擅長的任務之一是機器翻譯。目前,它是能夠完成此項任務的最先進的技術,並且具有足夠的可行性,甚至谷歌翻譯(Google Translate)也在使用它(https://en.wikipedia.org/wiki/Google_Neural_Machine_Translation

)。在機器翻譯中,需要句子級(sentence-level)的並行資料對模型進行訓練,即對於源語言中的每個句子來說,都需要是目標語言中被翻譯的語言。不難想象為什麼這會成為一個問題。因為,對於一些語言對來說,很難獲得大量的資料(因此可以使用深度學習的這種能力)。

本文是如何構建的

本文是基於Facebook近期發表的一篇名為“僅使用單語語料庫進行的無監督機器翻譯”(Unsupervised Machine Translation Using Monolingual Corpora Only)(https://arxiv.org/abs/1711.00043)的文章而撰寫的。本文並沒有完全遵循論文的結構,我添加了一些自己的解讀,進而讓文章更加通俗易懂。

閱讀本篇文章需要具備一些最關於神經網路的基本知識,比如損失函式、自動編碼器等。

機器翻譯的問題

如上所述,在機器翻譯中使用神經網路的最大問題是,它需要兩種語言的句子對資料集。它適用於英語和法語等被廣泛使用的語言,而對於其他語言的句子對則不適用。如果語言對資料可用,那麼這將成為一個受監督性的任務。

解決方案

這篇論文的作者想出瞭如何將這一任務轉換為無監督任務的方法。在這一任務中,唯一需要的是兩種語言中每一種語言的任意兩個語料庫,如任意一部英語小說和任意一部西班牙語小說。需要注意的一點是,這兩部小說不一定是相同的。

從最直觀的角度來講,作者發現了該如何學習一種介於兩種語言之間的潛在空間(latent space)的方法。

自動編碼器概述

自動編碼器是一種用於無監督任務的廣泛的神經網路類別。它的工作原理是重新建立一個和最初輸入相同的輸入。完成這一操作的關鍵是網路中間有一個名為瓶頸層(bottleneck layer)的網路層。該網路層被用以捕捉所有關於輸入的有用資訊,並摒棄無用資訊。

?wx_fmt=jpeg

概念型自動編碼器,中間模組是儲存壓縮表示的瓶頸層

簡言之,在瓶頸層中,瓶頸層中輸入(現在由編碼器轉換)所在的空間被稱為潛在空間(latent space)。

降噪自動編碼器

如果一個自動編碼器被調教成完全按照輸入的方式重建輸入,那麼它可能什麼都做不了。在這種情況下,輸出將得到完美的重建,但是在瓶頸層中沒有任何有用的特性。為了解決這一問題,我們使用了降噪自動編碼器。首先,實際輸入因為增加了一些噪聲而受到輕微干擾。然後,使用網路重建原始影象(並非含噪版本)。這樣一來,通過學習什麼是噪聲(以及其真正有用的特徵是什麼),網路可以學習影象的有用特徵。

?wx_fmt=jpeg

一個降噪自動編碼器的概念例項。利用神經網路對左圖進行重建,生成右圖。在這種情況下,綠色的神經元共同構成了瓶頸層

為什麼要學習一個共同的潛在空間?

潛在空間可以捕捉資料的特徵(在我們所舉的例子中,資料就是句子)。因此,如果有可能獲得一個空間,即當輸入語言A時,就會產生與輸入語言B相同的特徵,那麼我們就有可能在它們之間進行翻譯。由於該模型已經擁有了正確的“特徵”,因此由語言A的編碼器進行編碼,由語言B的解碼器進行解碼,這將使二者進行有效的翻譯工作。

或許正如你想到的那樣,作者利用降噪自動編碼器學習一個特徵空間。他們還想出了該如何使自動編碼器學習一個共同潛在空間的方法(他們將其稱之為一個對其潛在空間(aligned latent space)),進而執行無監督的機器翻譯。

語言中的降噪自動編碼器

作者用降噪編碼器以一種無監督的方式學習特徵。他們所定義的損失函式為:

?wx_fmt=jpeg

方程1.0 自動去燥編碼器損失函式

解讀方程1.0

I是語言(對於這一設定,可能有兩種語言)。X是輸入,C(x)是給x新增噪聲後的結果。我們將很快得到噪聲所建立的函式C。e()是編碼器,d()是解碼器。最後一項Δ(x hat,x)是標記級(token level)的交叉熵誤差值之和。由於我們有一個輸入序列,並且我們得到了一個輸出序列,因此我們要確保每個標記(token)的順序都是正確的。因此使用這種損失函式。我們可以將它視為多標籤分類,其中將第i個輸入的標記與第i個輸出標記進行比較。其中,標記(token)是一個不能被進一步破壞的基本單位。在我們的例子中,標記(token)是一個單詞。方程1.0是一個損失函式,使得網路最小化輸出(當給定一個噪聲輸入時)與原始、未受影響的句子之間的差別的損失函式。

□與~的符號表示

□是我們期望的表示,在這種情況下,這意味著輸入的分佈取決於語言l,並且採用損失的平均值。這只是一個數學形式,運算過程中的實際損失(交叉熵之和)將如往常一樣。

這個特殊符號〜意味著“來自概率分佈”。

如何新增噪聲

對於影象而言,只需在畫素上新增浮點數就可以增加噪聲,而對於語言而言,則需採用其他方法。因此,作者開發了自己的系統來製造噪聲。他們把他們的噪聲函式表示為C()。它將句子作為輸入,並輸出該句子的含噪版本。

有兩種不同的方法新增噪聲。

首先,可以簡單地以P_wd的概率從輸入中刪除一個單詞。

其次,每個單詞都可以使用下面這個約束進行原始位置的移位:

?wx_fmt=jpeg

σ表示第i個標記的移位位置。因此,方程2.0意味著:“一個標記(token)可以最多向左或向右移動k個標記(token)的位置”

作者將K值設為3,將P_wd值設為1。

跨域訓練

為了學習兩種語言之間的翻譯,應該通過一些處理將輸入句子(語言A)對映到輸出句子(語言B)。作者將這個過程稱為跨域訓練(cross domain training)。首先,輸入句子(x)被取樣。然後,使用先前迭代中的模型(M())生成翻譯後的輸出(y)。把它們放在一起,我們便得到了y=M(x)。隨後,使用上述相同的噪聲函式C()干擾y,得到C(y)。語言A的編碼器對這一被幹擾的版本進行編碼,語言B的解碼器對語言A編碼器的輸出進行解碼,並重新構建一個純淨版的C(y)。使用與方程1.0中相同的交叉熵誤差值之和(sum of cross entropy error)對模型進行訓練。

運用對抗式訓練學習一個共同的潛在空間

到目前為止,還沒有提到如何學習共同潛在空間。上面提到的跨域訓練有助於學習一個相似空間,但需要一個更強的約束來推動模型學習一個相似的潛在空間。

作者使用對抗式訓練。他們使用了另一個模型(稱為鑑別器),該模型接受每一個編碼器的輸出,並預測編碼後的句子屬於哪一種語言。然後,從鑑別器中提取梯度,並對編碼器進行訓練,以欺騙鑑別器。這在概念上與標準的GAN(生成對抗網路)沒有什麼不同。鑑別器接收每個時間步的特徵向量(因為使用了RNN),並預測它來自哪種語言。

將它們結合在一起

將上述3種不同的損失(自編碼器損失、翻譯損失和鑑別器損失)相加,所有模型的權重同時更新。

由於這是一個序列到序列的問題,因此作者使用了一個長短期記憶網路(LSTM),需要注意的是,這裡存在兩個基於LSTM的自動編碼器,每種語言各含一個。

在較高級別上,訓練這個架構需要三個主要步驟。它們遵循一個迭代訓練過程。訓練迴圈過程看起來有點像這樣:

1.使用語言A的編碼器和語言B的解碼器獲得翻譯。

2.訓練每個自動編碼器,使其能夠在給定一個損壞的句子時重新生成一個未損壞的句子。

3.通過破壞步驟1中獲得的翻譯來改進翻譯並重新建立翻譯。對於這一步,語言A的編碼器和語言B的解碼器一起進行訓練(語言B的編碼器和語言A的解碼器一起訓練)。

值得注意的是,即使步驟2和步驟3被分開列出,權重也會一起進行更新。

如何啟動這個框架

如上所述,該模型使用之前的迭代過程中自身的翻譯來提高其翻譯能力。因此,在迴圈過程開始之前,擁有一定翻譯能力是很重要的。作者使用FastText來學習詞級雙語詞典。請注意,這種方法非常簡單,僅需要給模型一個起點即可。

整個框架在下面的流程圖中給出

?wx_fmt=jpeg

整個翻譯框架的高層次工作

本文解讀了一種可以執行無監督機器翻譯任務的新技術。它使用多個不同的損失改進單個任務,同時使用對抗式訓練增強對體系結構行為的約束。

歡迎個人分享,媒體轉載請後臺回覆「轉載」獲得授權,微信搜尋「BOBO_AI」關注公眾號

中國人工智慧產業創新聯盟於2017年6月21日成立,超200家成員共推AI發展,相關動態:

640.png點選下圖加入聯盟

0.png

?wx_fmt=gif

關注“雷克世界”後不要忘記置頂

我們還在搜狐新聞、雷克世界官網、騰訊新聞、網易新聞、一點資訊、天天快報、今日頭條、雪球財經……

↓↓↓點選閱讀原文檢視中國人工智慧產業創新聯盟手冊

相關推薦

沒有資料翻譯監督機器翻譯

原文來源:buZZrobot作者:Harshvardhan Gupta「雷克世界」編譯:KABU

如何進化策略?這裡有幾組動圖!

原文來源:blog.otoro.net 「雷克世界」編譯:嗯~阿童木呀 本文將藉助於一些視覺例項,闡述進化策略(Evolution Strategies,ES)是如何進行工作的。為了能夠讓讀者更為容易地瞭解更多詳細資訊,將盡量保持文中所涉及的等式簡明易懂,同時附加原始文章的連結。這是一系列文章

資料變金礦:序列模型(附用例)

作者:TAVISH SRIVASTAVA翻譯:王雨桐校對:丁楠雅本文約3000字,建議閱讀15分

Attention is All You Need| 附程式碼實現

前言 2017 年中,有兩篇類似同時也是筆者非常欣賞的論文,分別是 FaceBook 的Convolutional Sequence to Sequence Learning和 Google 的Attention is All You Need,它們都算是 Seq2Se

高性網絡編程中的I/O模型

好的 min tcp 輸入 其中 那些事 follow hand 實現 1、前言 隨著互聯網的發展,面對海量用戶高並發業務,傳統的阻塞式的服務端架構模式已經無能為力。本文(和下篇《高性能網絡編程(六):一文讀懂高性能網絡編程中的線程模型》)旨在為大家提供有用的高性能網絡編程

資料技術驅動的銀行客戶畫像

2018年上半年我國GDP增速6.8%,在貿易戰和去槓桿的影響下,雖然金融市場震盪明顯,但銀行受到網際網路、移動計算到雲端計算、大資料、物聯網、人工智慧等技術變革的影響,仍舊保持了較好盈利。在採取了業務轉型與創新、同業業務從線下向線上轉移、資產結構的進一步優化等諸多調整措施的過程中,“手機銀行、P2

區塊鏈vs.DAG, 區別到底是什麼? 燒腦的資料結構之爭

作者 | 劉春明 DAG(有向無環圖)是一種非線性資料結構,可以替代區塊鏈,用於分散式賬本的儲存。這種結構在併發的場景下有更好的效能表現,但在實際應用中會面臨更多的技術挑戰。 其中,最大的挑戰在於,基於DAG結構實現智慧合約,要比基於區塊鏈結構困難得多。 本文將討論DAG和

資料及大資料產業

隨著“雲端計算”、“網際網路”、“物聯網”的快速發展,大資料(Big Data)也吸引了越來越多的人關注,成為社會熱點之一。大街小巷不論是技術人員、諮詢人士以及各行各業的精英達人都在探討著“大資料”,“大資料”顯然已經成為新一代“網紅”。   一、大資料是如何成為網紅? &nb

低功耗藍芽BLE4.2 資料

BLE = BTLE = Bluetooth Low Energy (低功耗藍芽) 1. 怎樣抓取(偵聽)BLE4.2 空中資料包 (全頻道抓取:37,38,39 同時)    * 硬體:           1) 一臺BLE4.2 裝置 (如: Nordic 52832,

進階 | 資料分析及挖掘技術

隨著大資料時代的到來,在大資料觀念不斷提出的今天,加強資料大資料探勘及時的應用已成為大勢所趨。 什麼是大資料探勘? 資料探勘(Data Mining)是從大量的、不完全的、有噪聲的、模糊的、隨機的資料中提取隱含在其中的、人們事先不知道的、但又是潛在有用的資

Spring Boot、微服務架構和大資料治理三者之間的故事

微服務架構 微服務的誕生並非偶然,它是在網際網路高速發展,技術日新月異的變化以及傳統架構無法適應快速變化等多重因素的推動下誕生的產物。網際網路時代的產品通常有兩類特點:需求變化快和使用者群體龐大,在這種情況下,如何從系統架構的角度出發,構建靈活、易擴充套件的系統,快速應對需求的變化;同時,隨著使用者的增加,如

生死時刻:Facebook資料洩密始末

上週末Facebook捲入了一宗醜聞,媒體揭露稱一家服務特朗普競選團隊的資料分析公司Cambri

超級乾貨 :資料視覺化

前言資料視覺化,是指將相對晦澀的的資料通過可視的、互動的方式進行展示,從而形象、直觀地表達資料蘊

雲端計算、大資料、人工智慧

最近我們和美國的“貿易戰”打的是如火如荼,這位“推特治國”的川普總統總是給人一種“政治嬰兒,商業天才”的感覺,貿易戰的目的有很大一部分被認為是遏制“中國製造2025”。中國製造2025是一系列巨集偉的計劃,能夠使中國完成民族復興,其中重點發展領域就是資訊科技相關的創新產業,具

[轉]機器學習科普文章:“機器學習,大資料/自然語言處理/演算法全有了”

       在本篇文章中,我將對機器學習做個概要的介紹。本文的目的是能讓即便完全不瞭解機器學習的人也能瞭解機器學習,並且上手相關的實 踐。這篇文件也算是EasyPR開發的番外篇,從這裡開始,必須對機器學習瞭解才能進一步介紹EasyPR的核心。當然,本文也面對一般讀者,不會對

推薦系統知識體系(資料派THU 李中傑)

1. 推薦系統的3個W1.1 是什麼(What is it?)推薦系統就是根據使用者的歷史行為、社交關係、興趣點、所處上下文環境等資訊去判斷使用者當前需要或感興趣的物品/服務的一類應用。1.2 為什麼(Why is that?)為什麼我們要用到推薦系統呢?隨著資訊科技和網際網

機器學習,大資料/自然語言處理/演算法全有了……

作者注:本文生動形象,深入淺出的方式介紹了機器學習及其它演算法,適合新人和想更加了解機器學習的讀者閱讀,此文屬於轉載,下面連結是原文出處,我們尊重原作者的版權保護。https://www.cnblogs.com/donaldlee2008/p/5224325.html  在本

機器學習、資料科學、深度學習和統計學之間的區別

  明晰了資料科學家所具有的不同角色,以及資料科學與機器學習、深度學習、人工智慧、統計學等領域的區別。這些概念的區別也一直是人工智慧領域熱烈討論的一個話題,Quora、多個技術部落格都曾有過解答。機器之心之前編譯的一篇文章《人工智慧、機器學習、深度學習,三者之間的同心圓關係》也對此問題進行了探討,但似乎業內

C_推薦系統知識體系(資料派THU 李中傑)

1. 推薦系統的3個W 1.1 是什麼(What is it?) 推薦系統就是根據使用者的歷史行為、社交關係、興趣點、所處上下文環境等資訊去判斷使用者當前需要或感興趣的物品/服務的一類應用。 1.2 為什麼(Why is that?) 為什麼我們要用到推薦系統

推薦 :R中的探索性資料分析(附R程式碼)

作者:Pablo Casas;翻譯:蔣雨暢;校對:車前子;本文約1500字,建議閱讀7分鐘。本文