香儂讀 | 機器翻譯中丟掉詞向量層會怎樣?

2021-02-19 香儂科技

論文標題:

Neural Machine Translation without Embeddings

論文作者:

Uri Shaham,Omer Levy

論文連結:

https://arxiv.org/pdf/2008.09396.pdf

代碼連結:

https://github.com/UriSha/EmbeddinglessNMT (待開源)

詞向量

長期以來,詞向量被認為是深度學習模型下不可缺少的一部分,從Word Embedding開始,詞向量被普遍認為可以建模隱空間中的語言單元的語義。

但是,發展到如今基於Transformer模型的時代,詞向量更多地是被默認當做模型輸入和輸出的一部分。它在當今模型下的作用似乎成為了業內普遍接受的規則。

詞向量在當下的使用方法是將離散的語言單元映射為連續值的向量。比如字典大小為

在輸入和輸出的時候,詞向量矩陣用於離散單元和模型隱藏層的「過渡」,即表示為

現在的問題是,能不能去掉輸入和輸出的矩陣

本文使用字節(Byte)編碼表示輸入到模型的語言單元,並且丟掉了傳統的詞向量,在多個語言的機器翻譯任務上進行了實驗。

結果表明,基於Byte編碼的無詞向量模型和基於BPE編碼、字編碼和Byte編碼的有詞向量模型效果沒有顯著區別,甚至在一些任務上還要更優。

這啟發我們進一步思考對於機器翻譯而言,編碼的作用為何,詞向量的作用為何,我們需不需要打破現在默認的詞向量用法?

用Byte編碼丟掉詞向量

簡單來說,本文使用長度為256的one-hot編碼表示一個UTF-8位元組(因為一個字節有8位,一共會產生256個不同的字節),這樣的一個好處是不會出現OOV。

由於使用的是UTF-8編碼,所以不同的語言會有不同的長度,比如英文每個字就是一個字節,阿拉伯語每個字就是兩個字節,而中文每個字用三個字節表示。

但是這並不影響我們進行編碼,只是對於中文而言,得到的編碼後的句子會更長一些。

下圖是一個使用各編碼方案的例子。使用BPE編碼得到的句子最短,其次是使用字編碼,最後使用Byte編碼會更長,因為在阿拉伯語中,每個字需要兩個Byte表示。

對於一個句子,在用Byte編碼處理後,可以得到一個輸入One-hot矩陣

這時候,不再需要把它和詞向量矩陣相乘,只需要再加上位置編碼

實驗

本文在IWSLT上實驗,選擇了10個不同的語言,對每個語言

首先看同樣是Byte編碼的有詞向量模型和無詞向量模型。可以看到,無詞向量模型都好於有詞向量模型,和字編碼(Char)相比,在大多數情況下Byte+Embed-less也都更好,這說明在編碼粒度較細(Char和Byte)時,不加詞向量效果會更好。

再來比較有詞向量的Subword和無詞向量的Byte。出乎意料的是,在

但是在

小結

本文探究了基於Byte編碼的無詞向量機器翻譯的效果,實驗表明,使用Byte編碼時,丟掉輸入和輸出的詞向量層都結果沒有太大的影響。

實驗還發現,不同的語言對編碼似乎非常敏感,尤其是英語比其他語言更加適合subword編碼。未來可以進一步研究不同語言的編碼偏好,以及詞向量在現代深度模型下的作用。

相關焦點

  • 機器翻譯中丟掉詞向量層會怎樣?
    也就是能不能不要詞向量,直接把one-hot送入到模型中。本文通過實驗回答了這個問題。本文使用字節(Byte)編碼表示輸入到模型的語言單元,並且丟掉了傳統的詞向量,在多個語言的機器翻譯任務上進行了實驗。結果表明,基於Byte編碼的無詞向量模型和基於BPE編碼、字編碼和Byte編碼的有詞向量模型效果沒有顯著區別,甚至在一些任務上還要更優。
  • 深度| 逐層剖析,谷歌機器翻譯突破背後的神經網絡架構是怎樣的?
    架構為了理解 GNMT 中使用的模型,我們將從傳統的編碼器-解碼器機器翻譯模型開始,持續變化該模型直到匹配 GNMT 中的模型。看起來,GNMT 進化的東西是改進準確率,同時維持實際產品化時的訓練與預測速度。V1:編碼器-解碼器編碼器-解碼器架構開始了近期的神經機器翻譯趨勢,出現於數年前。
  • 注意力的動畫解析(以機器翻譯為例)
    所以當輸入的文字很長時(Fig.0.2),僅僅利用一個匯總向量(期望他可以充分的總結輸入序列的所有信息),便希望可以輸出一個合理的翻譯文本,便顯得有些不合理,因為匯總向量的表達能力的受限,這必然會導致對輸入文本災難性的「遺忘」。這就好比給你一個由一百多個單詞組成的段落,然後希望你可以在閱讀完最後一個詞之後,立馬給出這個段落的翻譯,你可以做到嗎?
  • 機器翻譯中的 Attention 機制
    基本 seq2seq 模型用於機器翻譯時,對於短句和中等長度句子是較為有效的,但對於長句,encoder-decoder 之間使用的固定長度編碼可能會成為信息瓶頸,影響翻譯效果,類似人聽完一大段話後,只記得大概,「遺漏」了一些細節
  • Salesforce AI最新研究,翻譯中的情境化詞向量
    對於NLP中的大多數問題來說,理解情境至關重要。翻譯模型需要了解英語句子中的單詞是如何協同工作的,從而生成德語翻譯。摘要模型需要通曉上下文,從而知道哪些詞是最重要的。執行情緒分析的模型需要了解如何能夠掌握那些改變他人表達情緒的關鍵詞。問答模型依賴於對一個問題中的詞語如何改變一個文檔中詞語重要性的理解。
  • 圖解神經機器翻譯中的注意力機制
    幾十年來,統計機器翻譯在翻譯模型中一直佔主導地位 [9],直到神經機器翻譯(NMT)出現。NMT 是一種新興的機器翻譯方法,它試圖構建和訓練單個大型神經網絡,該網絡讀取輸入文本並輸出譯文 [1]。在 seq2seq 中,初步設想是讓兩個循環神經網絡(RNN)構成編碼器-解碼器架構:編碼器逐個讀取輸入詞,獲得固定維度的向量表示,然後另一個 RNN(解碼器)基於這些輸入逐個提取輸出詞。
  • 神經網絡機器翻譯介紹
    機器翻譯主要可以分為三種方法:基於規則、基於統計和基於神經網絡。首先介紹幾個機器翻譯領域基本概念。Seq2Seq模型:在自然語言生成的任務中,大部分是基於Seq2Seq模型實現的,屬於Encoder-Decoder結構模型。
  • 五張動圖,看清神經機器翻譯裡的Attention
    新智元報導來源:towardsdatascience編輯:大明【新智元導讀】近年來,神經機器翻譯的突飛猛進讓越來越多的人類翻譯感到壓力山大,瑟瑟發抖,那麼如此強大的機器翻譯架構內部的運行機制究竟是怎樣的
  • 機器不學習:word2vec是如何得到詞向量的?
    機器不學習 jqbxx.com -機器學習、深度學習好網站word2vec是如何得到詞向量的?這個問題比較大。本答旨在闡述word2vec如何將corpus的one-hot向量(模型的輸入)轉換成低維詞向量(模型的中間產物,更具體來說是輸入權重矩陣),真真切切感受到向量的變化,不涉及加速算法。如果讀者有要求有空再補上。
  • 機器翻譯:谷歌翻譯是如何對幾乎所有語言進行翻譯的?
    為了在機器翻譯中實現這一點,需要將每個單詞轉換為可輸入到模型中的獨熱編碼(One Hot Encoding)向量。獨熱編碼向量是在每個索引處都為0(僅在與該特定單詞相對應的單個索引處為1)的向量。如上圖所示,每個單詞都變成了一個長度為9(這是詞彙表的大小)的向量,索引中除去一個1以外,其餘全部都是0。通過為輸入和輸出語言創建詞彙表,人們可以將該技術應用於任何語言中的任何句子,從而將語料庫中所有已翻譯的句子徹底轉換為適用於機器翻譯任務的格式。
  • 五張動圖,看清神經機器翻譯裡的Attention!
    ,瑟瑟發抖,那麼如此強大的機器翻譯架構內部的運行機制究竟是怎樣的?過去幾十年來,統計機器翻譯一直是佔據主導地位的機器翻譯模型[9],直到神經機器翻譯(NMT)誕生。神經機器翻譯(NMT)是近幾年來新興的機器翻譯模式,該模式試圖構建和訓練能夠讀取輸入文本,並輸出翻譯結果的單個大型神經網絡。
  • 百分點認知智能實驗室出品:機器翻譯是如何煉成的(下)
    按在「機器翻譯是如何煉成的(上)」的文章中,我們回顧了機器翻譯的發展史。在本篇文章中,我們將分享機器翻譯系統的理論算法和技術實踐,講解神經機器翻譯具體是如何煉成的。一般性計算公式為:在機器翻譯中Seq2Seq模型一般是由多個LSTM/GRU等RNN層疊起來。2016年9月谷歌發布神經機器翻譯系統GNMT,採用Seq2Seq+注意力機制的模型框架,編碼器網絡和解碼器網絡都具有8層LSTM隱層,編碼器的輸出通過注意力機制加權平均後輸入到解碼器的各個LSTM隱層,最後連接softmax層輸出每個目標語言詞典的每個詞的概率。
  • 基於PaddlePaddle的機器翻譯教程 | 深度學習基礎任務系列
    該方法對語言學家的要求非常高,而且我們幾乎無法總結一門語言會用到的所有規則,更何況兩種甚至更多的語言。因此統計機器翻譯(Statistical Machine Translation, SMT)技術應運而生。在統計機器翻譯技術中,轉化規則是由機器自動從大規模的語料中學習得到的,而非我們人主動提供規則。
  • 搜狗機器翻譯團隊獲得 WMT 2017 中英機器翻譯冠軍
    如今,簡單地對神經網絡模型的套用已經不足以被頂級會議接收,研究者們討論的核心問題通常是如何優化神經網絡結構以便解決機器翻譯中的詞對齊、罕見詞、長句等難點問題。2014 年提出的注意力(attention)模塊就是針對性處理因為不同語言語法結構不同產生的語序不同、來源詞與目標詞對齊難的問題。
  • 如何評價Google神經機器翻譯(GNMT)系統?
    其中,Google Translate的核心技術 「統計機器翻譯」其基本思想是通過對大量平行語料進行統計分析、構建統計翻譯模型、進而使用此模型進行翻譯。簡單來說,Google Translate 在生成譯文時,會在大量人工翻譯的文檔中查找各種模型,進行合理的猜測,從而得到恰當的翻譯。
  • Transformer新型神經網絡在機器翻譯中的應用|公開課筆記
    關注AI的同學最近應該會看到,機器翻譯是一個比較活躍的領域,很多大公司都爭先推出了自己的機器翻譯服務,包括還有一些機器翻譯的硬體已經在市場上投放,比如翻譯筆。我們輸入代翻譯詞是「Thinking Machines」,先會去查找這兩個詞分別表示成詞向量的形式,再經過Self-Attention層得到Attention的輸出,再經過Feed Forward自動生成Encoder1的輸出,Encoder1的輸出作為Encoder2的輸入,這樣以此類推,6層一直拼到上面去。
  • 【深度長文科普】非NLP數據處理――詞向量Word Vector
    詞向量 (Word Vector) 代表了人們在理解詞與詞,句與句,文章與文章之間關係的能力上的一大進步。與之前使用傳統的表達詞的方式相比,這項技術的進步在於機器可以得到更多關於詞的信息。有了詞向量這項技術,演講識別和機器翻譯才變得可能。在這篇文章中我會儘量用數據來解釋詞向量的概念,讓不太熟悉自然語言處理 (NLP) 的人也能理解詞向量的概念。
  • 谷歌推神經網絡翻譯 中譯英水平匹敵真人
    神經機器翻譯與以往的翻譯模式用的是同樣一本大詞典,但舊的翻譯模式只是逐個查詞,而神經機器翻譯卻訓練出兩種神經網絡,可以生產出另一種語言的完整的文本。這對於漢語翻譯是極為重要的,因為漢語中由於搭配不同導致一個詞往往有不同的意思。谷歌神經網絡翻譯為何能夠在準確性上有質的飛躍?
  • 深度| 通過NMT訓練的通用語境詞向量:NLP中的預訓練模型?
    本文希望通過 MT-LSTM 先學習一個詞向量,該詞向量可以表徵詞彙的基本信息,然後再利用該詞向量輔助其它自然語言處理任務以提升性能。本文先描述了如何訓練一個帶注意力機制的神經機器翻譯,其次描述了如何抽取該模型的通用詞向量與將其應用於其它任務的性能對於自然語言處理中的大多數問題而言,理解語境是很有必要的。為了生成一句英文的德語翻譯,翻譯模型需要理解英文句子中的單詞是如何組織在一起的。
  • 詞向量模型解讀
    在自然語言處理任務中,首先需要考慮詞如何在計算機中表示。通常有兩種表示方式:離散表示和分布式表示。1.1離散表示傳統的基於規則或基於統計的自然語義處理方法將單詞看作一個原子符號被稱作獨熱編碼(One-Hot representation)。One-Hot編碼把每個詞表示為一個長向量。