源和目標語句不再獨立,聯合表示更能提升機器翻譯性能

源和目標語句不再獨立,聯合表示更能提升機器翻譯性能

作者 | 李炎洋

目前,神經機器翻譯模型主要基於編碼器-解碼器框架,其中編碼器把源語句編碼成一個連續表示,解碼器把這個連續表示解碼成目標語。

源和目标语句不再独立,联合表示更能提升机器翻译性能

Figure 1編碼器-解碼器框架

可以看到,編碼器-解碼器框架的一個明顯缺陷在於它把源語句跟目標語句分開進行處理,因此不能直接建模源語句跟目標語句之間的關係。比如,編碼器只把源語句作為輸入,而解碼器只把目標語句作為輸入。最近提出的注意力機制通過橋接編碼器跟解碼器可以部分解決這個問題。

源和目标语句不再独立,联合表示更能提升机器翻译性能

Figure 2注意力機制

當翻譯“intensive“這個詞的時候,注意力機制計算這個目標詞與每個源語詞之間的關係,從而直接建模了源語句與目標語句之間的關係。但是我們也可以看到,注意力機制只計算了一個目標詞與源語句之間的關係,它並不能捕捉整個目標句與源語句之間的關係,而這種句子級的聯繫是我們希望翻譯模型能夠建模的,它能在作出下一步決策的時候更好的考慮源語與目標語句子的關係。

聯合表示

解決這個問題的一個自然想法就是使用大小為 的表示而不是 (編碼器)或 (解碼器)這麼大的表示,其中 是源語句子長度, 是目標語句子長度。這也是我們使用的“聯合表示“(Joint Representation)。

源和目标语句不再独立,联合表示更能提升机器翻译性能

Figure 3聯合表示

這樣一個表示為當前輸入的源語句子和目標語句子裡任意一個源語詞和目標語詞的組合都賦予了一個單獨的表示。通過關聯兩個句子裡任意兩個詞,聯合表示可以建模句子與句子之間的關係。

Reformer-base

那麼如何構建一個基於聯合表示的注意力翻譯模型呢?它主要分為三部分:

1)如何構造一個基於聯合表示的輸入(詞嵌入)?

2)如何在聯合表示上做注意力的操作?

3)如何從聯合表示中預測目標語句子?

詞嵌入

直接構造一個基於聯合表示的詞嵌入矩陣會產生一個大小為 的參數矩陣,其中 是源語詞表大小, 是目標語詞表大小。這樣一個矩陣包含非常多的參數。而我們知道,在沒有上下文的情況下,一個源語詞在語義上幾乎獨立於一個隨機採樣出來的目標語詞。因此,我們使用詞的表示的組合作為詞的組合的表示:

源和目标语句不再独立,联合表示更能提升机器翻译性能

類似的,基於聯合表示的位置表示也可以用相同的思想計算得到。

源和目标语句不再独立,联合表示更能提升机器翻译性能

Figure 4基於聯合表示的詞嵌入

當計算(我,I)這個詞的組合的表示,我們可以通過把“我“和”I“這兩個詞各自的表示相加得到。

可分離注意力

直接在聯合表示上做注意力是非常耗時的。可以看到,標準的注意力機制在聯合表示上的複雜度高達 ,儘管它有著僅使用 層即可訪問到任意位置的表示這樣的優勢。

源和目标语句不再独立,联合表示更能提升机器翻译性能

Figure 5標準的注意力機制

相應的,我們提出可分離注意力(Separable Attention)。它由兩部分組成:目標註意力(Target Attention)和源注意力(Source Attention)。

源和目标语句不再独立,联合表示更能提升机器翻译性能

Figure 6可分離注意力(訓練)

其中,目標註意力只沿著聯合表示的目標語維度進行注意力操作,而源注意力只沿著源語維度進行注意力操作:

源和目标语句不再独立,联合表示更能提升机器翻译性能

其中 。這樣,對於目標註意力而言,它的複雜度只有 ,而源注意力的複雜度只有 。因此,可分離注意力整體的複雜度 ,而它只需要 層的操作即可訪問到任意位置的表示。

源和目标语句不再独立,联合表示更能提升机器翻译性能

Figure 7可分離注意力(解碼)

解碼的時候,因為同一層的表示的計算是相互獨立的,因此,在計算第 時刻的輸出的時候,目標註意力只需要關注前 個詞,而源注意力只需要關注當前第 時刻輸入裡的目標語詞。

降維

給定一個聯合表示,如何從中預測目標語句子?我們知道聯合表示的大小為 ,而一般翻譯模型的解碼器預測使用的表示大小為 ,其中每一個元素對應著預測出來的目標語句子的每一個詞。

那麼自然的想法就是通過降維操作把 大小的聯合表示變成 大小再進行預測。這裡壓縮聯合表示的源語維度所使用的降維(Reduction)模塊的結構本質上是一個基於特徵的注意力,也就是它操作的粒度是單個特徵而不是單個詞。它工作的方式類似於源注意力,除了它使用一個可學習的權重 作為query而不是當前產生的輸入:

源和目标语句不再独立,联合表示更能提升机器翻译性能

其中 是詞嵌入的大小。

整體架構

有了詞嵌入,可分離注意力和降維,基於聯合表示的一個注意力模型實例Reformer-base的整體結構如下:首先通過詞嵌入構建聯合表示輸入,然後使用由注意力機制組成的層來進行多次變換,得到的聯合表示輸出的源語維度會通過降維操作被壓縮掉,最後從被壓縮過的聯合表示中預測目標語句子。

源和目标语句不再独立,联合表示更能提升机器翻译性能

Figure 8 Reformer-base

其中,模型使用的層由四個子層構成:目標註意力,前饋神經網絡,源注意力和另一個前饋神經網絡。需要注意的是,注意力操作後緊跟著Dropout1d,而前饋神經網絡後緊跟著Dropout2d。

對於目標註意力,它的Dropout1d會沿著源語維度對特徵(神經元)進行掩蓋,而源注意力的Dropout1d則沿著目標語維度對特徵進行掩蓋。前饋神經網絡的Dropout2d會同時沿著源語和目標語維度對特徵進行掩蓋。這樣做的原因在於其中源語/目標語維度的特徵會在另外一個維度上存在重複。

如圖9所示,在做目標註意力的時候,關於源語詞的特徵會沿著目標語的維度重複,因此在使用Dropout掩蓋源語詞特徵的時候,我們需要沿著目標語維度同時掩蓋所有可能的的重複特徵,否則被丟棄的特徵可以在其他時刻的表示中被重新獲取到,使得Dropout鼓勵特徵獨立的目標失效。

源和目标语句不再独立,联合表示更能提升机器翻译性能

Figure 9特徵重複(目標註意力)

Reformer-fast

權衡效率和有效性

從表1可以看到,對比標準的注意力,可分離注意力擁有著能以路徑長度(層數)訪問任意位置的表示的優勢,但是可分離注意力自身的複雜度要比標準注意力高。

源和目标语句不再独立,联合表示更能提升机器翻译性能

Table 1各操作的複雜度和路徑長度

通過觀察Reformer-base,我們可以發現它有兩個問題導致它需要堆疊大量的高複雜度的可分離注意力才能獲得優異的性能:

1)重複計算:Reformer-base在解碼的每一時刻都需要從詞嵌入開始計算,因此當模型需要一些抽象的信息,特別是源語的信息的時候,它都需要重新進行計算;

2)計算分配:在解碼每一時刻,輸入的源語詞的數目是遠多於輸入的目標語詞的數目,因此它天然的就需要更多關於源語端的操作。

PreNet

為了解決這個問題,我們在Reformer-base的基礎上引入了PreNet這個模塊,得到了我們的Reformer-fast模型。這個模型首先把輸入的源語端的詞嵌入送到PreNet,然後PreNet的輸出當成原始的源語端的詞嵌入的替代送到Reformer-base裡面進行後續的處理。PreNet的結構類似標準的的Transformer編碼器。

源和目标语句不再独立,联合表示更能提升机器翻译性能

Figure 10 Reformer-fast

PreNet的引入成功減少了可分離注意力的數目,並且它本身的複雜度非常低,因此提高了模型整體的效率。然而,PreNet損害了Reformer-base的理論有效性。相比於Reformer-base可以以 路徑長度訪問任意源語詞,Reformer-fast只能以 路徑長度訪問任意源語詞,其中 是PreNet的深度。

模型調優

在實際應用當中,我們通常需要在大數據集上使用更大的模型。但是使用網格搜索在大數據集上尋找合適的大模型配置是非常耗時的,而在Transformer當中常用的技巧如增大詞嵌入大小或者是更寬的前饋網絡對Reformer並不好用。

為了解決這個問題,我們把這樣一個超參數調優過程看作是在當前網絡配置的寬度和深度基礎上對它們進行梯度下降,以取得最優的校驗集性能,同時使用的參數量不超過規定:

源和目标语句不再独立,联合表示更能提升机器翻译性能

其中 是調整超參數(寬度 、深度 )使用的步長, 是校驗集性能, 是模型的參數量, 是手工設定的參數量限制。從這樣的角度出發,優化的目標可以看作是在固定參數量下尋找能取得最好的校驗集性能的模型配置。

為了計算梯度下降中使用的梯度,我們使用了梯度的定義來進行估計。其中關於深度的梯度計算如下:

源和目标语句不再独立,联合表示更能提升机器翻译性能

其中 是手工設定的一個小數。類似的我們可以得到關於寬度 的梯度。整個調優過程如下:首先估計梯度 ,然後根據手工設定的參數量限制 ,計算得到最佳的步長 ,從而得到最佳的模型配置。

實驗

我們在IWSLT15 (Vi-En), IWSLT14 (De-En, En-De) 和NIST12 (Zh-En)四個數據集上進行驗證,如表2所示:

源和目标语句不再独立,联合表示更能提升机器翻译性能

Table 2實驗結果

可以看到,Reformer-base/fast在所有測試集上都比標準的Transformer基線表現要好,並且這兩個模型的性能相近,但是Reformer-fast要比Reformer-base要快。需要注意的是,Reformer-base在Vi-En這個任務上要比基線差一些,這可能是因為Reformer-base在設計上要求源語句子和目標語句子長度相近,而Vi句子通常比它對應的En翻譯要長很多。

源和目标语句不再独立,联合表示更能提升机器翻译性能

Table 3消融實驗

在表3的消融實驗中可以看到,Dropout1/2d可以提升模型的泛化能力,而PreNet則可以提升模型的效率。

源和目标语句不再独立,联合表示更能提升机器翻译性能

Table 3消融實驗

更進一步地,如果我們僅僅為Reformer-fast增加兩層以及50%的前饋網絡寬度,它就可以超過Transformer-big,同時參數量只有一半。

源和目标语句不再独立,联合表示更能提升机器翻译性能

Figure 11長度統計

圖11的左圖告訴我們,Reformer模型比Transformer更加傾向於生成長的翻譯。而圖11的右圖告訴我們,Reformer模型對比基線的優勢會在長句子翻譯上更加明顯。

源和目标语句不再独立,联合表示更能提升机器翻译性能

Figure 12準確率統計

圖12告訴我們,無論是從目標語詞的位置或者是詞頻的角度,Reformer模型的準確率都要比標準的Transformer基線要高不少。

源和目标语句不再独立,联合表示更能提升机器翻译性能

Figure 13注意力分佈例子

最後,圖13的例子展示了在輸入不同的源語詞或者目標語詞的情況下,可分離注意力對同一的輸入產生的分佈是不同的。這說明了聯合分佈的必要性。

結論

我們提出了兩種基於聯合分佈的注意力模型的實現。這兩個模型在不同數據集或配置上均取得比基線優異的性能。目前基於聯合分佈的模型設計仍然非常原始,我們期望將來有更多的工作來改善它們。

AAAI 2020 報道:

新型冠狀病毒疫情下,AAAI2020 還去開會嗎?

美國拒絕入境,AAAI2020現場參會告吹,論文如何分享?

AAAI 最佳論文公佈

AAAI 2020正式開幕,37%錄用論文來自中國,連續三年制霸榜首

一文全覽,知識圖譜@AAAI 2020

Hinton AAAI2020 演講全文:這次終於把膠囊網絡做對了

AAAI 2020 論文集:AAAI 2020 論文解讀會 @ 望京(附PPT下載)

AAAI 2020上的NLP有哪些研究風向?

微軟 6 篇精選 AAAI 2020 論文

京東數科 6 篇精選AAAI 2020 論文

AAAI 2020 論文解讀系列:

01. [中科院自動化所] 通過識別和翻譯交互打造更優的語音翻譯模型

02. [中科院自動化所] 全新視角,探究「目標檢測」與「實例分割」的互惠關係

03. [北理工] 新角度看雙線性池化,冗餘、突發性問題本質源於哪裡?

04. [復旦大學] 利用場景圖針對圖像序列進行故事生成

05. [騰訊 AI Lab] 2100場王者榮耀,1v1勝率99.8%,騰訊絕悟 AI 技術解讀

06. [復旦大學] 多任務學習,如何設計一個更好的參數共享機制?

07. [清華大學] 話到嘴邊卻忘了?這個模型能幫你 | 多通道反向詞典模型

08. [北航等] DualVD:一種視覺對話新框架

09. [清華大學] 藉助BabelNet構建多語言義原知識庫

10. [微軟亞研] 溝壑易填:端到端語音翻譯中預訓練和微調的銜接方法

11. [微軟亞研] 時間可以是二維的嗎?基於二維時間圖的視頻內容片段檢測

12. [清華大學] 用於少次關係學習的神經網絡雪球機制

13. [中科院自動化所] 通過解糾纏模型探測語義和語法的大腦表徵機制

14. [中科院自動化所] 多模態基準指導的生成式多模態自動文摘

15. [南京大學] 利用多頭注意力機制生成多樣性翻譯

16. [UCSB 王威廉組] 零樣本學習,來擴充知識圖譜(視頻解讀)

17. [上海交大] 基於圖像查詢的視頻檢索,代碼已開源!

18. [奧盧大學] 基於 NAS 的 GCN 網絡設計(視頻解讀)

19. [中科大] 智能教育系統中的神經認知診斷,從數據中學習交互函數

20. [北京大學] 圖卷積中的多階段自監督學習算法

21. [清華大學] 全新模型,對話生成更流暢、更具個性化(視頻解讀,附PPT)

22. [華南理工] 面向文本識別的去耦注意力網絡

23. [自動化所] 基於對抗視覺特徵殘差的零樣本學習方法

24. [計算所] 引入評估模塊,提升機器翻譯流暢度和忠實度(已開源)

25. [北大&上交大] 姿態輔助下的多相機協作實現主動目標追蹤

26. [快手] 重新審視圖像美學評估 & 尋找精彩片段聚焦點

27. [計算所&微信AI] 改進訓練目標,提升非自迴歸模型翻譯質量(已開源)

28. [中科院&雲從科技]:雙視圖分類,利用多個弱標籤提高分類性能

29. [中山大學] 基於樹狀結構策略的漸進強化學習

30. [東北大學] 基於聯合表示的神經機器翻譯(視頻解讀)

31. [計算所]引入評估模塊,提升機器翻譯流暢度和忠實度(視頻解讀)

32. [清華大學]用於少次關係學習的神經網絡雪球機制(視頻解讀)

33. [計算所]非自迴歸機器翻譯,基於n元組的訓練目標(視頻解讀)

34. [清華大學] 司法考試數據集(視頻解讀,附下載鏈接)

35. [自動化所] 弱監督語義分割(視頻解讀)

36. [自動化所] 稀疏二值神經網絡,不需要任何技巧,取得SOTA精度(視頻解讀)

37. [華科&阿里] 從邊界到文本—一種任意形狀文本的檢測方法

38. [上交大&雲從科技] DCMN+ 模型:破解「閱讀理解」難題,獲全球領先成績

39. [自動化所&微信AI] 雙通道多步推理模型,更好解決視覺對話生成問題

40. [ETH Zurich] 反向R?削弱顯著特徵為細粒度分類帶來提升

41. [中科大] RiskOracle: 一種時空細粒度交通事故預測方法

45. [商湯] 新弱監督目標檢測框架

46. [第四範式] 優化NAS算法,速度提高10倍!

47. [牛津大學] 利用注意力機制,實現最優相機定位(視頻解讀)

48. [天津大學] DIoU和CIoU:IoU在目標檢測中的正確打開方式

49. [寧夏大學] 面向大規模無標註視頻的人臉對齊方法

50. [商湯] KPNet,追求輕量化的人臉檢測器(視頻解讀)

源和目标语句不再独立,联合表示更能提升机器翻译性能


分享到:


相關文章: