中科院自動化所提出BIFT模型:面向自然語言生成,同步雙向推斷

2020-12-08 雷鋒網

雷鋒網(公眾號:雷鋒網) AI 科技評論消息,本文作者中國科學院自動化研究所張家俊,他為雷鋒網 AI 科技評論撰寫了基於 BIFT 的獨家解讀。正文內容如下:

前言:

概括地講,自然語言處理包括兩大任務:自然語言文本理解和自然語言文本生成。自然語言文本理解就是讓機器洞悉人們所言之意,自然語言文本生成旨在讓機器像人一樣表達和說話。文本理解的關鍵在於對已知文本的上下文表徵和建模,而文本生成的本質是在文本理解的基礎上準確流暢地產生自然語言文本。

自然語言理解既可以利用上文信息也可以利用下文信息,高效的雙向編碼能力正是 BERT 成功的關鍵因素之一。但是,自然語言生成由於都默認自左往右地逐詞產生文本輸出,預測某個時刻的輸出只能利用上文的歷史信息而無法訪問還未生成的未來信息。例如將漢語句子「有五個人」自動翻譯為英語時,從左到右的理想預測結果是「There」、「are」、「five」 和「persons」。雖然「persons」能夠判別第二個詞語應該是「are」而不是「is」,但是由於在預測第二個單詞時,只能依賴已經產生的單詞「There」,而無法參考還未生成的「five」和「persons」。這個簡單的例子就能反映出傳統自左往右自然語言生成的弊端。我們提出的 BIFT 希望打破這種文本生成模式,採用同步雙向推斷模型為每個時刻的預測同時提供歷史信息和未來知識。通過大量實驗,我們發現 BIFT 相比於當前最好的模型,在幾乎不犧牲效率的前提下能夠獲得十分顯著的性能提升, 並且已經成功應用於在線機器翻譯系統,相關代碼和使用說明請參考 Github 連結:https://github.com/ZNLP/sb-nmt

使用 BIFT 一詞就是希望讓大家聯想到 2018 年風靡全球的自然語言處理神器 BERT(Bidirectional Encoder Representation from Transformer)。將 BIFT 和 BERT 放在一起,我們期望更好地探討兩者的聯繫和區別。如果不想詳細了解,記住一句話那就可以了:BERT 著眼於編碼器 Encoder,目標是提升自然語言理解的能力;BIFT 改變解碼範式,旨在改善自然語言生成的效果。

BIFT 是我們近一年來的研究工作成果,在 2018 年 10 月份 BERT 誕生時,我們其中的一項工作(Synchronous Bidirectional Neural Machine Translation)已經被 Transactions on ACL 條件接收。BERT 非常偉大,在十多個自然語言理解任務中刷到最高分。相比而言,我們當時的工作只是在機器翻譯任務上做出了卓有成效的嘗試,所以肯定無法與 BERT 相提並論,只是聯繫在一起更容易描述和讓大家理解。BIFT 目前在機器翻譯和自動摘要兩個自然語言生成任務(尤其是機器翻譯任務)中取得了顯著效果,我們希望 BIFT 在其他自然語言生成任務中也能大放異彩。

BIFT 和 BERT 有一個共同點:都是基於 2017 年 Google 提出的完全注意機制驅動的 Transformer 框架(如圖 1 所示)。編碼器 Encoder 對輸入文本進行深層語義表示,解碼器 Decoder 依據輸入文本的語義表示產生輸出文本。編碼器和解碼器都是由多層網絡堆積而成,編碼器中的每一層主要包括自我注意機制(Self-Attention)和前饋網絡(Feed-Forward Network)兩個子層,每個子層後面會緊接一個正則化操作,並且層與層之間會有殘差連接。相比編碼器,解碼器中的每一層有兩點不同,一方面,自我注意機制只能利用已經生成的部分歷史前綴信息,而需要屏蔽還未產生的未來信息;另一方面,自我注意機制和前饋網絡之間還包括一個建模輸出和輸入關係的 Encoder-Decoder 注意機制。

圖 1:Transformer 框架

從 Transformer 的框架可以看出,自我注意是其有別於循環神經網絡和卷積神經網絡的本質。以漢語到英語的機器翻譯任務為例,圖 2 和圖 3 展示了編碼器和解碼器中自我注意機制的工作流程。圖 2 顯示的編碼模塊中,對於輸入的單詞序列,每個單詞首先映射為低維實數向量,① 表示第一個單詞與包括自身的所有單詞計算相關度,並對所有單詞的向量表示依據相關度進行加權獲得序列第一個單詞更深一層的語義表示;② 採用相同的方式,平行計算輸入序列中每個位置更深一層的語義表示;③ 利用相同的自我注意機制可以生成多層語義表示。

圖 3 顯示的解碼模塊中,第一個輸出單詞為開始符,與編碼器中每個位置的語義表示進行注意機制計算並加權得到第二層語義信息,① 採用相同的方式可以獲得更多層的語義信息,最後利用 softmax 函數預測下一個時刻的輸出「there」;② 預測下一個輸出單詞時,首先需要進行輸出端的注意機制計算過程,然後再與編碼器的語義表示進行注意機制計算;③ 進行相同的操作獲得多層語音信息,再由 softmax 函數給出下一個時刻應該輸出的單詞「are」;④ 重複 ② 和 ③ 最終生成整個文本序列(一般直到產生結束符「</s>」,停止解碼過程)。

圖 2:Transformer 的編碼器示意圖

圖 3:Transformer 的解碼器示意圖

圖 4: Transformer 編碼器的 Self-attention 工作機理 

圖 5: Transformer 解碼器的 Self-attention 工作機理

圖 4 與圖 5 分別展示了 Transformer 編碼器和解碼器中自我注意機制的計算方法:首先將詞向量轉化為具有相同維度的查詢 Q、鍵 K 和值 V,然後用 Q 與 K 計算相關性,最後用相關性對 V 加權獲得某個位置更深一層的語義表示。兩張圖的核心區別體現在圖 4 編碼器中每個位置的上層語義表示學習都可以利用上文和下文信息,而圖 5 解碼器中每個位置的上層語義表示學習只能利用已經產生的歷史信息。

BERT:

BERT 無疑是 2018 年自然語言處理領域最令人興奮的模型。BERT 以 Transformer 的編碼器 Encoder 為模型框架的核心,為了處理自然語言理解中的分類和序列標註兩大任務,BERT 在 Transformer 編碼器的最上層添加一個特殊分類器(圖 6 所示)或為每個位置添加一個分類器(圖 7 所示)。

BERT 的成功主要可以歸結到四點因素:(1)預訓練(pre-training)和精細調優(fine-tuning)的模型架構;(2)以 Transformer 深層雙向編碼器為模型核心;(3)以 Masked LM 和下個句子預測任務構建優化目標函數;(4)超大規模訓練數據的利用。對比 ELMo(Embeddings from Language Model)和 GPT(Generative Pre-trained Transformer)發現,BERT 最大的優勢之一在於使用了 Transformer 中基於自我注意機制的雙向編碼模型。

圖 6:BERT 中的分類模型

圖 7: BERT 中的序列標註模型

BIFT:

圖 8 簡單展示了自然語言文本理解與自然語言文本生成之間的架構差別。自然語言文本理解中,輸入文本是給定的,從而雙向編碼是很自然的選擇。對於自然語言文本生成而言,由於輸出文本不可預知,傳統自左往右的解碼方式僅僅能充分利用已經產生的歷史信息,而無法利用還未生成的未來信息。於是,我們便提出一個如圖 9 所示的大膽想法:能否像雙向編碼一樣,設計一種雙向解碼機制,從而有效建模歷史和未來信息?

圖 8:自然語言文本理解與自然語言文本生成的對比示意圖

圖 9:單向解碼和雙向解碼的對比示意圖

1. 雙向推斷的概率模型

自然語言文本生成任務中,我們一般採用下面的式子建模輸出文本 y=與 x= 之間的關係:

這就是典型的從左往右的文本生成範式。當然,也可以採用從右往左的文本生成範式:

 

但是上述兩種方式都無法同時利用歷史和未來信息。那麼能否在預測  時同時依賴  和  呢?這種想法顯然不太實際。因為,預測  時需要  已知,而預測  時需要  已知,可見是矛盾的,所以預測某個時刻的輸出時無法同時利用全部的歷史和未來信息。我們的想法是最大限度地挖掘和利用歷史與未來信息,從而提出同步雙向推斷的解碼機制:

我們的想法可以由圖 10 簡要說明:自然語言文本生成模型保持從左往右和從右往左的同步解碼,但是在每個時刻兩個方向的解碼都進行充分的交互。預測  時不僅可以利用歷史預測結果 ,同時可以利用未來信息  ;預測  時,不僅可以利用該解碼方向的歷史預測結果 ,還可以同時利用另一個解碼方向的未來信息 。越到中間部分,可利用的歷史和未來信息就越豐富和完整。

圖 10:同步雙向推斷的解碼機制示意圖

以預測  為例,圖 11 展示了同步雙向推斷模型的同步雙向注意機制。 表示與 L2R 解碼方向歷史預測結果的自我注意機制的計算結果;同時,我們也計算 L2R 解碼方向 i 時刻的隱層狀態與未來預測信息(R2L 解碼方向的生成結果)的自我注意機制結果 。最後,綜合歷史信息  和未來信息 ,獲得 L2R 解碼方向 i 時刻更豐富的語義信息 。類似地,R2L 解碼方向也可以綜合歷史信息和未來信息,預測 。

圖 11:同步雙向推斷模型

2. 雙向推斷模型的柱搜索解碼算法

圖 12:同步雙向推斷模型的柱搜索算法示意圖

圖 12 給出了同步雙向推斷模型的柱搜索解碼算法示意圖。以柱大小 b=4 為例,每一時刻 L2R 和 R2L 方向利用同步雙向注意機制 SBAtt 進行同步解碼,並分別保留 b/2 個最優候選。如果當前時刻預測結果為結束符〈/s〉,則將該候選放入完整候選列表。當完整候選列表達到 b 的規模,則停止解碼,輸出列表中概率最大的候選作為最終輸出。如果最終結果來自於 R2L 方向,則需要在輸出前對結果進行逆序操作。詳細算法流程見算法 1。

算法 1:同步雙向推斷模型的柱搜索解碼算法

3. 參數訓練

由於同步雙向推斷模型在解碼過程中,L2R 和 R2L 方向同步並行解碼,那麼訓練過程中針對平行句對(x,y),L2R 方向希望生成標準答案 ,同時 R2L 方向希望生成標準答案的逆序結果 。給定包含 T 個平行句對的訓練數據集 ,我們旨在學習一套模型參數以最大化訓練數據的對數似然:

當訓練過程中計算  的概率時,如果同步雙向推斷模型直接採用 ,將會遇到一個自己預測自己的問題。例如,計算  時, 包括 ,便導致  預測自己。顯然,這樣的訓練方式無法學習到合理的模型參數。因此,我們提出兩種參數優化策略,分別是兩階段法(two-pass training)和微調法(fine-tuning)。

在兩階段法中,我們首先在訓練數據上獨立學習 L2R 和 R2L 推斷模型。然後 L2R 和 R2L 模型分別用來對訓練數據的輸入端進行解碼,分別得到  和 。在第二階段的訓練過程中,我們利用  而不是  來計算 ,同樣的道理,我們利用 ,而不是  來計算 。

在微調法中,我們首先訓練一個如下述公式所示的沒有交互的 L2R 和 R2L 平行推斷模型,其中每個訓練實例是一個三元組 (在  和  的句首分別加上特殊符號 l2r 和 r2l )。

上述訓練過程收斂時,我們從訓練數據中隨機選取少量的平行句對(譬如 10% 的數據),並且利用該初始模型解碼這些數據的輸入序列,得到新的三元組。最後,我們就可以利用這些三元組像兩階段法一樣微調同步雙向推斷模型。對比兩種訓練策略,我們會發現微調法不需要利用兩個獨立模型對整個訓練數據進行解碼、不需要在整個訓練數據上進行再次參數訓練,該訓練策略可能在實際中更受歡迎。我們的實驗主要基於兩階段法,但我們也會給出兩種策略的對比結果。 

4. 實驗結果 

實際上,我們將同步雙向推斷模型不僅用於 Transformer,還用於基於循環神經網絡 RNN 的序列生成模型。在應用場景方面,我們不僅測試了機器翻譯的效果,同時也在句子摘要任務上進行了驗證。這裡只要介紹機器翻譯任務上的結果。

我們分別在漢語-英語和英語-德語兩個機器翻譯任務上進行了測試。漢語-英語採用約 200 萬的雙語訓練數據,英語-德語採用與 Transformer 一樣的設置。表 1 和表 2 分別展示了不同模型在漢英和英德機器翻譯任務上的結果。

從表 1 可以看出,無論採用循環神經網絡還是 Transformer,同步雙向推斷模型都能夠顯著提升譯文質量。特別是在 Transformer 框架下,BIFT 模型展示了令人驚喜的提升空間。

表 1:不同機器翻譯模型在漢英任務上的結果。

RNMT 表示基於 LSTM 的序列生成模型;RNMT (R2L)表示採用從右往左解碼模式;BI-RNMT 是我們提出的基於同步雙向推斷的序列生成模型;Rerank-NMT 是一種譯文重排序系統,即對 L2R 和 R2L 的候選結果利用全局特徵進行重排序,選擇最優結果;ABD-NMT 是一種異步雙向解碼模型,即首先進行 R2L 解碼,然後利用 R2L 解碼結果優化 L2R 解碼過程。

表 2:不同機器翻譯模型在英德任務上的結果

表 2 展示的英德機器翻譯結果可以對比當前最好的模型。GNMT 是 2016 年 Google 發布的基於深層 LSTM 的序列生成模型;Conv 是 2017 年 Facebook 提出的基於卷積神經網絡的序列生成模型;AttIsAll 是 2017 年 Google 提出的 Transformer 模型。表中的 Transformer 是我們重現的模型。可以發現,BIFT 模型在相同的實驗設置下,可以顯著超越當前最優的模型,取得了最好的結果。

表 3 給出了不同機器翻譯模型的參數規模、訓練和解碼效率的對比結果。可以發現,BIFT 模型沒有增加參數規模,而且幾乎沒有犧牲解碼速度。

表 3:不同機器翻譯模型的參數規模、 訓練和解碼效率對比。Train 欄表示每秒鐘完成的 Batch 訓練數目,Test 欄表示每秒鐘翻譯的句子數目。

表 4:參數訓練策略的實驗對比結果

表 4 給出了兩種參數訓練策略的實驗對比結果。可以看到,無論是哪種訓練策略,翻譯質量都能得到大幅提升。雖然微調法沒有兩階段法有效,但是也能獲得 2 個 BLEU 值的性能提升。考慮到微調法簡單、方便易部署,我們相信這種參數訓練策略在現實場景中會更受歡迎。更詳細的模型描述和更多更豐富的實驗分
析可以參考下面的兩篇文章:

Jiajun Zhang, Long Zhou, Yang Zhao and Chengqing Zong. 2019. Synchronous Bidirectional Inference for Neural Sequence Generation. arXiv preprint arXiv: 1902.08955

Long Zhou, Jiajun Zhang and Chengqing Zong. 2019. Synchronous Bidirectional Neural Machine Translation. Transactions on ACL, Vol. 7, pp. 91-105, 2019.

雷鋒網原創文章,未經授權禁止轉載。詳情見轉載須知。

相關焦點

  • 雲知聲-中科院自動化所語言與知識計算聯合實驗室三篇論文被 ACL...
    本屆大會,雲知聲-中科院自動化所「語言與知識計算聯合實驗室」共有3篇論文被收錄,分別在醫療對話的自動信息抽取、國際疾病分類(ICD)自動編碼,以及 ICD自動編碼可解釋性等領域取得突破。這些最新的自然語言處理算法將為後續研究提供極具價值的經驗和方向,已在雲知聲醫療業務率先應用。
  • NeurIPS|既能理解又能生成自然語言,微軟提出統一預訓練新模型
    在機器之心的 SOTA 項目中,我們同樣發現 UniLM 模型在很多自然語言理解、自然語言生成任務中有非常好的效果,並且在機器閱讀理解等方面能獲得當前最優的水平。為此,本文將介紹 UniLM 這項研究工作,該研究已經被接收為 NeurIPS 2019 論文。
  • 復旦大學黃萱菁:自然語言處理中的表示學習
    循環神經網絡用於對句子進行序列化建模,為了解決序列化建模過程中出現的梯度消失或者梯度彌散情況,先後有人提出了長短時記憶單元(LSTM)和門循環單元(GRU)。循環神經網絡可以擴充為編碼器-解碼器的架構。其中編碼器沒有輸出,在解碼的時候則不需要新的輸入;編碼器用於理解,解碼器用於生成,如果在解碼的時候引入注意力機制,就可以進一步提升模型的性能。
  • 自然語言生成的演變史
    儘管我們距離可以自己思考的機器人還有幾年的時間,但在過去幾年中,機器學習和自然語言理解領域已經取得了重大進展。 個人助理(Siri / Alexa),聊天機器人和問答機器人a等應用程式真正徹底改變了我們與機器和開展日常生活的方式。自然語言理解(NLU)和自然語言生成(NLG)是人工智慧發展最快的應用之一,因為人們越來越需要理解和從語言中獲得意義,其中含有大量含糊不清的結構。
  • ...微軟&哈工大最新提出 CodeBERT 模型,支持自然-編程雙語處理
    ,據作者介紹,這也是目前已知的第一個大型 NL-PL(自然語言-程式語言)預訓練模型。該預訓練模型能夠處理NL-PL 的普遍問題,例如用自然語言搜索代碼、自動生成代碼等。 所謂自然語言代碼搜索,所要解決的問題是,如何通過自然語言query查找到所需的代碼塊,這和我們常用的搜尋引擎(通過自然語言query來查找所需網頁)類似。
  • 2019 自然語言處理前沿論壇,百度NLP技術全揭秘
    現在,百度的最新研究是提出了知識增強的語義表示模型 ERNIE 並發布了基於 PaddlePaddle 的開原始碼與模型。 框架包括基於海量百科、新聞、對話多源數據訓練,雙向多層 Transformer的 語義建模模型,融合併強化中文詞、實體等先驗語義知識學習,多階段知識學習。
  • 一文縱覽自然語言生成的發展
    人們需要理解大量有歧義且結構多變的語言並從中獲取意義,這促使自然語言理解(Natural Language Understanding,NLU)和自然語言生成(Natural Language Generation, NLG)成為人工智慧中發展最快的應用。Gartner預測,「到2019年,自然語言生成將是90%的現代BI和分析平臺的標準特徵」。
  • 解決自然語言歧義,IJCAI 卓越研究獎得主提出 SenseBERT 模型
    機器之心原創作者:Tony Peng參與:魔王自然語言理解和生成對於 AI 系統來說是一大難題,語言的複雜性和模糊性對 AI 系統提出了很大挑戰。今天,斯坦福教授、IJCAI 卓越研究獎得主 Yoav Shoham 創辦的公司 AI21 Labs 提出一種能夠顯著提升詞彙消歧能力的新模型,並發布了可控性優於其他前沿文本生成系統的「HAIM」。AI21 Labs 的願景是構建「具備前所未有的優秀自然語言理解和生成能力」的 AI 系統。
  • 報名丨中關村火花系列活動——中科院自動化所成果項目路演
    中關村科技成果轉化「火花」系列活動將在中科院自動化所跟大家見面現在可以報名參加啦北京中自投資管理有限公司是中科院自動化所下屬成果轉化服務機構,是中關村管委會2019年認定的技術轉移服務平臺。本次活動由北京中自投資管理有限公司與中關村技術經理人協會聯合主辦,旨在推動自動化所待轉化項目尋找落地場景,推動開展投融資對接,促進成果轉化落地發展。
  • 推斷速度達seq2seq模型的100倍,谷歌開源文本生成新方法LaserTagger
    來源:機器之心作者:Eric Malmi等機器之心編譯參與:魔王、杜偉使用 seq2seq 模型解決文本生成任務伴隨著一些重大缺陷,谷歌研究人員提出新型文本生成方法 LaserTagger,旨在解決這些缺陷,提高文本生成的速度和效率。
  • 2019自然語言處理前沿論壇:聚焦機器「讀、寫、說、譯」,探尋NLP...
    北京大學孫栩研究員開展了關於稀疏化深度學習的研究,提出簡單有效的算法來簡化神經網絡,僅用全梯度的子集來更新模型參數,大幅降低了訓練和解碼複雜度。百度主任架構師孫宇介紹了百度最近提出的知識增強語義表示模型ERNIE,基於實體、短語等知識進行建模,在語言推斷、語義相似度等多個任務上取得了大幅提升。
  • 中科院自動化所聯合實驗室獲CCKS2020醫療命名實體識別評測冠軍
    會上公布了CCKS-2020技術評測結果,雲知聲-中科院自動化所語言與知識計算聯合實驗室在「面向中文電子病歷的醫療命名實體識別評測任務」中獲得冠軍,並斬獲該任務唯一技術創新獎。CCKS由中國中文信息學會語言與知識計算專業委員會主辦,是知識圖譜、語義技術、連結數據等領域的核心會議。
  • 雲知聲-中科院自動化所聯合實驗室獲CCKS2020醫療命名實體識別評測...
    會上公布了CCKS-2020技術評測結果,雲知聲-中科院自動化所語言與知識計算聯合實驗室在「面向中文電子病歷的醫療命名實體識別評測任務」中獲得冠軍,並斬獲該任務唯一技術創新獎。CCKS由中國中文信息學會語言與知識計算專業委員會主辦,是知識圖譜、語義技術、連結數據等領域的核心會議。
  • 用飛槳做自然語言處理:神經網絡語言模型應用實例
    剛入門深度學習與自然語言處理(NLP)時,在學習了 Goldberg 特別棒的入門書 NN4NLP,斯坦福 cs224n 等等後,也無限次起念頭,寫個系列吧,但都不了了之了。發展帶來巨大推動,是多個領域的關鍵部分,但另一方面,成也蕭何敗也蕭何,語言模型其實也限制了 NLP 發展,比如說在創新性生成式任務上,還有如何用語言模型獲得雙向信息。
  • BERT模型:自然語言處理最新裡程碑完整詳解!
    與BERT模型相似的預訓練語言模型例如問答、命名實體識別、自然語言推理、文本分類等在許多自然語言處理任務中發揮著重要作用。BERT是一種基於微調的多層雙向變換器編碼器。首先介紹下該變換器的架構,這一點尤為重要。什麼是變換器(Transformer)?
  • 自動化所提出基於腦功能影像時間序列的多尺度卷積循環神經網絡模型
    自動化所提出基於腦功能影像時間序列的多尺度卷積循環神經網絡模型 2019-10-28 自動化研究所 【字體:大 中 小】
  • 度小滿與中科院自動化所聯合培養博士後,布局情感算法
    9月15日,度小滿金融與中國科學院自動化研究所(以下簡稱中科院自動化所)在北京舉辦了「聯合培養博士後項目」啟動儀式。雙方將建立聯合培養博士後人員的管理機制,共同開展人工智慧及相關領域的博士後聯合招收培養,圍繞雙方主要業務科研領域,培養人工智慧領域方面的博士後人才。
  • 用飛槳做自然語言處理:神經網絡語言模型應用實例 - 量子位
    NLP 發展帶來巨大推動,是多個領域的關鍵部分,但另一方面,成也蕭何敗也蕭何,語言模型其實也限制了 NLP 發展,比如說在創新性生成式任務上,還有如何用語言模型獲得雙向信息。先在大量文本上訓練,之後就能用獲得的語言模型來評估某句話的好壞。這在對一些生成結果進行重排序時非常有用,能很大程度地提高指標,機器翻譯中有一個技巧便是結合語言模型 Loss 來重排序生成的候選結果。第二,用於文本生成。首先其訓練方式是根據前面詞,生成之後詞。於是只要不斷重複此過程(自回歸)就能生成長文本了。
  • 百度提出冷聚變方法:使用語言模型訓練Seq2Seq模型
    近日,百度研究院發表論文提出冷聚變(Cold Fusion)方法,即在 Seq2Seq 模型訓練過程中加入語言模型,實現更快地收斂、更好的泛化,以及僅需少量標註數據即可實現向新域的完全遷移。機器之心對這篇論文進行了介紹。
  • 度小滿攜手中科院自動化所聯合培養博士後 加碼金融新基建
    來源:金融界網站 9月15日,度小滿金融與中國科學院自動化研究所(以下簡稱中科院自動化所)在北京舉辦了「聯合培養博士後項目」啟動儀式。雙方將建立聯合培養博士後人員的管理機制,共同開展人工智慧及相關領域的博士後聯合招收培養,圍繞雙方主要業務科研領域,培養人工智慧領域方面的博士後人才。