選單

華為楊浩:小知識驅動大資料,構建知識可認知的 AI 應用

基於深度學習的神經網路機器翻譯已經在通用翻譯、領域翻譯、翻譯評估和自動譯後編輯等多個場景,產生了巨大的商業價值,但是仍然存在著兩個典型問題。一方面,過譯漏譯等質量問題仍然存在;另一方面,端到端的神經網路黑盒架構使專家介入最佳化比較困難,傳統離散知識不能很好融入模型演算法。

在 2021 年 11 月 25 日和 26 日,AICon 全球人工智慧與機器學習大會(北京)上,我們邀請到了華為文字機器翻譯實驗室主任

楊浩

,他將從離散知識和神經網路模型的融合角度為你帶來《知識驅動的機器翻譯研究和實踐》,希望可以為你帶來啟發。

神經網路機器翻譯(NMT)的進展與挑戰

我們先來了解一下機器翻譯系統的建模,它可以分為三個部分。

首先是翻譯模型(Translation Model),解決從一個語言到另外一個語言的語言對齊問題,原語言到底是什麼詞,應該翻譯成什麼?

其次是語言模型(Language Model),目標語言儘可能地比較流暢。所謂的語言模型指的是,這個詞後面接著的下一個詞什麼,或者幾個詞後面跟著的下一個詞是什麼?

華為楊浩:小知識驅動大資料,構建知識可認知的 AI 應用

最後是 Compute argmax,這個模型是一個乘積的關係,尋找模型引數使它的乘積最大化,也就是我們通常說的訓練,以上就是機器翻譯的整個建模過程。

NMT(神經網路機器翻譯)與統計機器翻譯最大的區別,與機器學習和深度學習的區別是一樣的。

機器學習與深度學習的區別,機器學習業務最典型基本上可以分為兩層,一層是 Feature Extraction(特徵抽取),另一層是 Downstream Task(下游任務),例如常見的 Classification。

而到了深度學習,沒有顯式的 Feature Extraction 和 Downstream Classification,而它是一種智慧學習方式,我們將輸入送進去,直接得到輸出訓練的過程,所以真正的 NMT 的優勢可能就在於 End to End 的建模。

在文字生成的領域裡面,最有名的模型是 Encode-Decoder Model,我們也稱之為 Seq2Seq Model。

華為楊浩:小知識驅動大資料,構建知識可認知的 AI 應用

Seq2Seq 包含 Encoder,Decoder 兩個 RNN Model。Encoder Model 是一個時序化建模的 RNN 網路。對數學公式: $ H1 $ 和數學公式: $ X1 $ 建模得到數學公式: $ H2 $,然後數學公式: $ H2 $ 跟數學公式: $ X2 $ 得到數學公式: $ H3 $,這樣持續下去得到 Encoded vector,然後再基於編碼的向量,經過 RNN 的 Decoder 解碼出第一個詞語,再把隱狀態傳送過來,然後經過第二個 RNN 解出數學公式: $ Y2 $,這就實現了整個翻譯的過程。

我們拿上圖右側的例子來說明,例如“我對你感到滿意”經過編碼器,得到 Encoded vector ,它是一個多個維度的向量,再經過解碼器得到翻譯目標——I am satisfied with you。

舉一個 Encoded 的動態例子,比如“how to configure s5700 arp?”

如果進行這個句子的機器翻譯,整個過程是這樣的,首先對每個詞語分別進行編碼,然後對問號做編碼,最後當碰到 EOS(end of sentence)代表這個句子已經說完,那麼這種時候可以的帶 Encoded vector,將它送進一個 BOS(begin of sentence)。

Begin of sentence 基於上文的向量對所有詞取最大的機率,那麼就可以得到“如何”欄位,然後將“如何”送過來解碼,繼而得到“配置”,接著得到“下一次”,這句話就解碼完了,最後得出“如何配置 s5700 arp”,那麼就得到了 Target Sentence。

我們剛才演示的過程稱為 Greedy Decoding,也就是貪婪解碼。所謂貪婪解碼是每次只取機率為 Top1 的結果,那麼假如不取 Top1 的結果,我可以取 Top k,然後每次保留 k 個分支,那麼其實上類似於一個路徑搜尋。

華為楊浩:小知識驅動大資料,構建知識可認知的 AI 應用

上圖 從的解碼就是這樣的一個過程,最終解碼得到,這個時候解碼結束,每一步就可以保持它的 Top K 的結果,這就是 Beam Search 技術。

華為楊浩:小知識驅動大資料,構建知識可認知的 AI 應用

而對於 Seq2Seq 模型效果是這樣的,神經網路模型優於統計機器翻譯的模型。SMT 是統計記憶翻譯的模型,NMT 是神經網路機器翻譯,神經網路第一次以 34。81vs33。3 的成績超過了統計機器翻譯的模型。

而且神經網路的模型可以對統計機器翻譯結果進行 Reranking(重排),取得 Beam Search Top50 的結果進行重排,它這個機制可以達到 36。6 的最高分。

但 Seq2seq 模型有一個問題,那就是 Encoder 永遠編碼成維度確定的句向量,當我們句子長短維度確定之後,這個向量無法表示足夠多的句子資訊。

華為楊浩:小知識驅動大資料,構建知識可認知的 AI 應用

這個時候就需要引入業界很有名的 Attention 的機制。

當 Decoder 已經解碼出了“如何”,得到了 Hidden state,Decoder 的“如何”會與 Source Token 進行 Attention 計算,我們可以將之理解為進行一個相似度的計算。當與所有 Source Tokens 做完 Attention 的計算後,再進行 Softmax,也就是將它的隱狀態(hidden state)進行資訊加權,最後得到一個向量。

這樣,編碼向量會和每個詞相關的狀態,這一個向量的狀態是變化的,它能夠很好地表現哪個詞語已經翻譯了,哪個詞還沒有翻譯,以及接下來翻譯哪個詞語,這也就是 Align 與 Translate 的結合。

華為楊浩:小知識驅動大資料,構建知識可認知的 AI 應用

接下來,所有的 Encoder States 和 Decoder States 進行 Attention Scores ,然後進行加權平均(Softmax),最後加權平均的結果與每一個 Source 進行線性組合,就可以拿到最終結果。

中間是個典型的例子——The Animal didn‘t cross the street because it is too tired。假如說出現了 it is too tired 的話, it 的 attention weight 更多時候會 Attention 到 Animal 上面,那麼相當於 it 代替的是狗或者動物;

而假如說出現 it is too wide,在經過 Attention 計算,更多對應到的是 cross the street 或者 cross the river。

從最右邊的 Performance 也可以看得出來。RNNSearch 比 RNNEncode 好很多,句子長度 30 和 50,RNNsearch 分別提升了 7。2 和 7。4,最好效果可以達到 36。15。

這裡 30 指的對含有 30 個詞的句子進行訓練,可以看到一般模型,句子越長效果越差,而 RNNSearch50 的情況下,可以看到效果基本上不變。(RNNencode 也就是之前的 Seq2Seq model,而 Attention model 在學術上稱為 RNNsearch。)

並且驚喜的是,當句子超過 50 個詞之後,RNNsearch50 翻譯質量也不下降。

華為楊浩:小知識驅動大資料,構建知識可認知的 AI 應用

Attention is all you need 是那篇最經典的論文。

最初的 Seq2Seq without attention 有 CNN 和 RNN 進行 decoder,decoder 和 encoder 之間的關係是用靜態的向量來表示的。而第二個模型 Seq2Seq with attention,則是由 CNN 和 RNN 做 decoder,中間是 attention 關聯的。到了 Transformer 方面的話,所有都換成了 Attention 的模式。

就效果來看,統計機器翻譯是 33。3,而在 Seq2Seq 的時候是 34。81,然後到 RNNSearch(RNNAttn)架構是 36。15,到 Transformer 架構到 41。8 了,提升非常明顯。

華為楊浩:小知識驅動大資料,構建知識可認知的 AI 應用

Transformers 架構典型的三個特點有 No RNN、純 Attention 以及 Position Embedding。

上圖右邊是典型的 Transformers 的架構,我們可以看到中間是 Self attention encoder,在此後面有 Feed Forward Network。接著是 Decoder self attention,然後 decode 和 encode 之間的 Attention,然後以及 Decoder Feed Forward。

這套架構 Transformers 的效果很好,BLEU 可以達到 41。8,並且 Transformer 訓練時長縮短不少,這一點對工業用途很友好。

神經網路機器翻譯經過了三輪迭代已經足夠好了,但是它還存在命名實體、Topic、Document 以及 Consistency 等等問題,解決的方案是將我們的模型在大資料上進行訓練,形成一個 Big Data+Small knowledge 的 Big knowledge 概念。

而後面的話,隨著神經網路機器翻譯的發展,你可以認為有一批資料在大資料上訓練的模型,而我們接下來有一個理想,就是 Big Data,Big Data 加上 Smart 能夠真正形成 Big Knowledge 的概念。

NMT 知識體系

NMT 知識體系可以分為四部分,全域性知識、領域知識、模型知識以及多模態知識。全域性知識的最典型的模式是顯式知識,最常用的是知識圖譜。

華為楊浩:小知識驅動大資料,構建知識可認知的 AI 應用

上圖是一個藥品的知識圖譜,有一個詞語是乙醯水楊酸,它的同義詞是阿司匹林,假如在沒有知識驅動的情況下,就會被翻譯成其他的。而當將實體 + 型別的三元組知識融合的情況下,就可以將乙醯水楊酸標準地翻譯成阿司匹林,這個知識是一個顯性的知識。

全域性知識融合的另一種方式是隱示知識,目前典型方式是用預訓練模型做初始化。阿里巴巴曾經有一個研究,使用 BERT 做 Encode 端的編碼和初始化,還是用 GPT 做 Decode 端編碼和初始化,訓練拿到的結果是最好的。

不管是 BERT 還是 GPT 都融入了大量的知識,和我們前面的顯式知識不一樣,它是一種典型隱示的知識,因為它見過海量的句子,但是當前應用的是哪一個或者哪幾個句子知識我們是不知道的。

瞭解全域性知識之後,我們來聊一下領域知識,領域知識也分為顯式和隱式知識。

領域知識顯示的情況下,可以是 Token 和 NER Pair,也可以去解決 Decoding Constraint 或者 Grid Beam Search。

Great beam search 較為簡單,比如當拿到一句漏掉“快”詞語的句子,那麼機器翻譯模型將會重新調整這句話,然後把“Quick”增加到合適的地方,並且效果提升還是比較明顯。

華為楊浩:小知識驅動大資料,構建知識可認知的 AI 應用

除詞語級別之外,我們還可以做句子級別的知識融入。我們有個先驗知識,原句相近,目標句也相近。在原句的後面拼接相似句,可以加強目標句解碼正確的機率。

比如上圖中,“胃息肉是個常見的癌症”,把這句話的翻譯文字增加在下方,並且給予“胃息肉”一個顯示的標籤,然後與“胃息肉”相關的內容就翻譯得很準確。

第三個是模型知識,模型知識也可以分為兩種,整體知識和分層知識。最典型的整體知識是知識蒸餾,在 Seq2Seq 的模型裡,知識蒸餾相當於利用模型生成各種偽資料,這樣可以使得機器能夠學得更好。

華為楊浩:小知識驅動大資料,構建知識可認知的 AI 應用

而分層知識則如上圖,在訓深練度學習模型的時候,Drop Out 是開啟的狀態,同一個句子會得到不完全一致的表示,模型越穩定的時候,不同的 Drop Out 拿到的兩個句子向量(經過同一個 Encoder 得到的向量)是一樣的,它才能保證解碼的穩定性。所以在兩個向量之間增加 KL 散度,就可以保證每次出來向量儘量一樣。

華為楊浩:小知識驅動大資料,構建知識可認知的 AI 應用

最後是多模態的知識,“Rabbit is ready for cook”是要表達“兔子要吃飯了?”還是“我們要吃兔肉?”這個最典型的情況。

如何解決這個問題呢?

我們在 Encoder 這一層,將影象分割和影象的識別的特徵與文字特徵拼接起來,保持 Encoder 和 Decoder 模型不變,就可以解碼這樣的問題。

NMT 知識建模過程

知識分類的建模過程如下:

第一,當我們已經有了內部的知識,不需要進行知識抽取的情況下, Input 經過生成模型可以得到 Output,然後直接呼叫內部的知識進行 Embedding。

第二,當我們需要外部知識的情況下,不管是公用領域的知識,或者一些領域外的知識,大家首先需要進行知識抽取,然後再進行知識注入和融合,再生成模型,進而得到有知識指導的輸出。

華為楊浩:小知識驅動大資料,構建知識可認知的 AI 應用

而在訓練的時候,知識驅動的模型會有 Knowledge Loss。當機器翻譯的時候,除了保證生成的句子與目標越來越像,還需要保證不能出現 Critical Error。雖然它在整個評估指標的情況下,這類詞在文本里面的比例很低,所以只能加上 Knowledge Loss 的效果才會比較好。

整體流程如下:

Input>Knowledge Acquisition>Knowledge Fusion>Output>Knowledge Sources。

華為楊浩:小知識驅動大資料,構建知識可認知的 AI 應用

接下來講一下約束生成,包含 Sentence/Topic Mining、Token/Ner Mining、MTL/KG Mining,Sentence 對應的領域、Token 事件詞,以及 Multi-task 那些圖片來做事情。

那麼這樣的時候就可以把 Domain 給建立起來。

華為楊浩:小知識驅動大資料,構建知識可認知的 AI 應用

當我們在解碼的時候,實際上分為兩種解碼,分別是 Hard constraint 和 Soft constraint。Hard constraint 要求提供的約束必須出現,但是它會出現時態或語態的問題。

上圖 Source 的句子中有一個詞“Luptat”,它同時有爭鬥和腳踝的意思,但是 Unconstraint 翻譯的,它會翻譯成 struggle。

進行 Hard Constraint 的時候,不太好確定語態的問題,最後會翻譯成 ankle,拿到了接近最優解的結果。Hard constraint 無需訓練模型,直接在解碼當中就行。

而當進行 Soft Constraint 時候,我們需要得到正常的 Token Pair Score、Sentence Paired score 的時候,同時驗證其對齊關係和時態等語義資訊平衡的最優解,換句話說,滿足約束的加權得分最高,也就是 Knowledge loss 最小。

NMT 知識實踐

接下來我們一起進行一個知識驅動翻譯實踐。我們做了一個 WMT (國際機器翻譯)Biomedical/Tavel 的翻譯任務,它包含 Strong Domain Knowledge,和很多種語言的翻譯任務。

華為楊浩:小知識驅動大資料,構建知識可認知的 AI 應用

這個任務有以下幾點問題:

首先是專業領域,比如“prefers white”一般可以翻譯成“喜歡白色”,但是對於體育領域或者下棋來說,應該翻譯成“擲白棋”。

其次是一些 NER、漏譯、過譯以及風格問題。這裡著重說一下風格問題,比如上圖最下面翻譯出來的 “20 世紀 20 年代和 30 年代”以及“1920 年代和 1930 年代”的區別還是很大的。

華為楊浩:小知識驅動大資料,構建知識可認知的 AI 應用

機器翻譯的提升可以分成三個階段:

第一階段是 Vanilla Transformer NMT,這一階段相當於用 In Domain 的資料來訓練 Transform model。上圖的訓練資料有英德和英中等等,我們將資料進行預處理之後,然後進行 Proprocess Pair,接著訓練 Model,然後配置訓練引數之後,就可以得到上圖右側的效果,英中和中英分別得到 39 和 27,而在英德和德英的話分別拿到 31 和 37,這就相當於拿到了 Baseline Performance。

第二個階段,隨著大模型出來 Pre-training + Fine-tuning 是典型的業界正規化。

Pre-training 利用具有很多資料的 Out-Domain,經過較大外部資料的機器翻譯模型訓練出一個大的模型,然後用小的資料來進行微調訓練。

為了最佳化效果,還可以抽取同樣接近大小的外部資料做領域的 discrimination,這一過程相當於區分領域外以及領域內的不同結果,換句話說,當提供一個句子組的時候,翻譯成領域外什麼樣子,翻譯成領域內是什麼樣子。

我們可以看到領域外的資料,例如拿英德和英中的 9600 萬和 1500 萬的資料,還有英德中大約一個億的單語資料。

華為楊浩:小知識驅動大資料,構建知識可認知的 AI 應用

以英中為例,透過 Out-Domain 資料訓練,我們得到 40 bleu,這已經比第一個模型(In Domain)要好。

然後,進行 In Domain Fine-tuning 以及 In-Out- Domain discrimination 的話,我們最終可以拿到 46。9 以及 35。5 的 performance。這已經是最好的表現了,接近 WMT 的冠軍水平。

華為楊浩:小知識驅動大資料,構建知識可認知的 AI 應用

最後我們發現,還是存在一些實體詞語翻譯得不正確的問題,我們做了 Fuzzy Entity Enhance NMT。它指的是,訓練識別 Entity 和 Entity 對齊,效果也有明顯的提升。

華為楊浩:小知識驅動大資料,構建知識可認知的 AI 應用

我們對比的基線是 ACL2020 的一篇論文,這篇論文它借鑑相似句提升。比如“how long does a cold last”和“how long does the flight last”,經過對齊之後,Combien 德語後面一長串前面的幾個字是一樣的,在詞級別打上標籤,告訴模型哪幾個詞語是對的,哪幾個詞是錯的,這個的效果取得了不少的提升。

但是前面的模型有兩個問題,它所有的詞的權重都是一樣的,對齊的標籤有噪聲。

而我們針對性做了兩個最佳化,首先是對實體詞對實體詞做加權;其次,我把目標句的標籤全部修改到了原句上面,原句沒有噪聲問題,這相當於噪聲降低了。這個模型相較前面的幾個模型有百分之一點幾的提升,並且在有實體詞的情況下提升很明顯,將近有 2% 左右,不過在沒有實體詞情況下,我們略有下降。

神經網路機器翻譯未來展望

對於神經網路和機器翻譯的暢想,首先是大模型或者自遷移的方向;其次是更準確多工的 AI 服務;最後是知識性和可解釋 AI 服務。

嘉賓介紹:

楊浩

,華為文字機器翻譯實驗室主任,北京郵電大學通訊與資訊系統博士,師承兩院院士陳俊亮老師,在搜尋推薦和機器翻譯等人工智慧相關領域有十年以上研發經驗。有 10+ICLR/ICASSP 等頂會論文和國內外專利,帶領團隊獲得 WMT/WAT NEWS/DOMAIN/QE/APE 冠軍。希望致力於機器翻譯等技術方向,共建高質量全棧的人工智慧服務和平臺。

活動推薦

在 4 月 24-25 日,ArchSummit 全球架構師峰會即將落地上海,數字化轉型是大趨勢,不管是金融轉型,還是汽車產業數字化轉型,製造業數字化轉型,一定會涉及到企業的產品形態,這裡麵包括市場定位和可行性的諸多因素,還有 ROI 評估模型。