天天看點

華為楊浩:小知識驅動大資料,建構知識可認知的 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 評估模型。

繼續閱讀