2020開年解讀:NLP新范式凸顯跨任務、跨語言能力,語音處理落地開花

2020-01-19 玥玥 IT之家
瀏覽

2020年伊始,我們總結、展望了微軟亞洲研究院在多個 AI 領域的突破與趨勢,比如,更親民的機器學習和更精巧的 AI 系統;數據洞察的獲得變得更智能,AI 推進三維構建的發展;以及突破固化的計算機視覺和更具商用價值的 OCR 引擎。今天,我們將探索自然語言處理(Natural Language Processing,NLP)范式的新發展,以及微軟亞洲研究院在語音識別與合成領域的創新成果。

NLP 在近兩年基本形成了一套近乎完備的技術體系,包括了詞嵌入、句子嵌入、編碼-解碼、注意力模型、Transformer,以及預訓練模型等,促進了 NLP 在搜索、閱讀理解、機器翻譯、文本分類、問答、對話、聊天、信息抽取、文摘、文本生成等重要領域的應用,預示著自然語言處理進入了大規模工業化實施的時代。

與此同時,隨著機器軟硬件能力的提升,模型、算法的突破,語音合成、語音識別、語音增強也都有了突飛猛進的發展,如微軟亞洲研究院的 FastSpeech、PHASEN,讓機器語音越來越接近人類說話,進一步加速了相關語音產品的落地。

NLP 步入第四代范式:預訓練+微調

自然語言處理范式是自然語言處理系統的工作模式,細數之下,已經歷了三代變遷,如今即將進入第四代。

第一代 NLP 范式是出現在上世紀90年代前的“詞典+規則”;第二代范式是2012年之前的“數據驅動+統計機器學習模型“;第三代范式是始于2012年的“端對端神經網絡的深度學習模型”。2018年前后,研究人員的目光開始鎖定在預訓練+微調上,標志著 NLP 第四代范式的出現,這也代表著 NLP 未來發展的方向。

圖1:NLP 范式的變遷

目前,主流的自然語言處理范式是以 BERT 為代表的“預訓練+微調”的新自然語言處理研究和應用范式,其基本思想是將訓練大而深的端對端的神經網絡模型分為兩步。首先在大規模文本數據上通過無監督(自監督)學習預訓練大部分的參數,然后在具體的自然語言處理任務上添加與任務相關的神經網絡,這些神經網絡所包含的參數遠遠小于預訓練模型的參數量,并可根據下游具體任務的標注數據進行微調。

由此,研究人員可以將通過預訓練從大規模文本數據中學到的語言知識,遷移到下游的自然語言處理和生成任務模型的學習中。預訓練語言模型在幾乎所有自然語言的下游任務,不管是自然語言理解(NLU)還是自然語言生成(NLG)任務上都取得了優異的性能。預訓練模型也從單語言預訓練模型,擴展到多語言預訓練模型和多模態預訓練模型,并在相應的下游任務上都取得了優異的性能,進一步驗證了預訓練模型的強大。

預訓練語言模型在 BERT 和 GPT 之后,2019年得到了蓬勃發展,幾乎每個月都有新的預訓練語言模型發布,并在研究和應用領域產生了很大的影響。概括來說,預訓練模型有如下幾個趨勢:

首先,模型越來越大(參數越來越多),從 EMLo 的 93M 參數,到 BERT 的 340M 參數,以及到 GPT-2 的 1.5B 參數和 T5 的 11B 的參數。

其次,用于預訓練模型的數據越來越大,從 BERT 中用到的 16G 文本數據,到 RoBERTa 里用到的 160G 文本數據,再到 T5 里面用到了 750G 的文本數據。

再次,預訓練模型從最開始的主要面向自然語言理解任務,發展到支持自然語言生成任務,以及到最新的一個模型同時支持自然語言理解和自然語言生成任務,如 UniLM、T5 和 BART 等。

然而,由于目前的預訓練模型越來越大,在實際的工程應用中很難經濟有效、滿足高并發和低響應速度進行在線部署,因而除了在具體任務上采用模型壓縮或者知識蒸餾(Knowledge Distillation 也叫 Teacher-Student Learning)得到小(快)而好的模型,在訓練中得到小而快的預訓練語言模型,也是當前一個重要的研究熱點。

圖2:預訓練模型的發展

NLP 新范式趨勢一:UniLM 為代表的跨任務統一模型

2019年,微軟亞洲研究院發布了最新的預訓練語言模型的研究成果——統一預訓練語言模型 UniLM(Unified Language Model Pre-training),該模型涵蓋兩大關鍵性技術創新:一是統一的預訓練框架,使得同一個模型可以同時支持自然語言理解和自然語言生成任務,而之前大部分的預訓練模型都主要針對自然語言理解任務;其二是創新地提出了部分自回歸預訓練范式,可以更高效地訓練更好的自然語言預訓練模型。

UniLM 的統一建模機制可以用一個模型同時支持不同的下游任務和預訓練任務。自然語言處理的下游任務大致包含以下三類:

(1)自然語言理解(NLU)任務,如文本分類,問答,實體識別等;

(2)長文本生成任務,如新聞或者故事生成等;

(3)序列到序列生成任務,例如摘要生成,復述生成,對話生成,機器翻譯等。

針對不同的下游任務可以設計相應的預處理任務,比如針對自然語言理解的雙向語言模型,針對長文本生成的單向語言模型,以及針對序列到序列生成任務的序列到序列語言模型。這些不同的下游任務和預處理任務也對應不同的神經網絡結構,比如用于自然語言理解的雙向編碼器,用于長文本生成的單向解碼器,以及用于序列到序列生成的雙向編碼器和單向解碼器,和其相應的注意力機制。

圖3:自然語言處理的下游任務

UniLM 的網絡結構是目前自然語言處理和預訓練模型中廣泛應用的多層 Transformer 網絡,其核心是通過自注意力掩碼(Self-attention masks)來控制文本中每個詞的上下文,從而達到一個模型同時支持雙向語言模型、單向語言模型和序列到序列語言模型預訓練任務,以及使用同樣的自注意力掩碼。通過微調支持自然語言理解和自然語言生成的下游任務,由于訓練前性質統一,所以變壓器網絡可以共享參數資源,使得學習的文本表示更通用,并且減輕了對所有單個任務的過度擬合。

圖4:UniLM 的網絡結構

UniLM 在一系列自然語言理解和生成任務中均取得了領先的實驗結果,相關論文已發表于 NeurIPS 2019[1]。同時,2019年10月,統一預訓練語言模型與機器閱讀理解技術還榮獲了第六屆世界互聯網大會“世界互聯網領先科技成果”獎。為了與學術界和產業界的伙伴們一起,進一步推動自然語言理解和生成的發展與創新,微軟亞洲研究院已將統一預訓練語言模型 UniLM(v1)在 GitHub 上開源[1] ,供大家參考、使用。近期微軟亞洲研究院還將發布 UniLM(v2),敬請期待。

圖5:微軟最新 NLP 研究獲選第六屆世界互聯網大會“世界互聯網領先科技成果”

NLP 新范式趨勢二:跨語言預訓練模型

預訓練模型除了能夠緩解跨任務中出現的低資源問題,還能夠緩解跨語言中出現的低資源問題。具體來說,由于科研項目需求以及數據標注代價昂貴等原因,很多自然語言任務往往只在少數語言(例如英文)上存在足夠的標注數據,而在其他語言上并沒有或僅有少量的標注數據。如何能夠利用特定任務在某種語言的標注數據上訓練模型,并將學到的知識遷移到其他語言上去,也是一個亟待解決的課題。

跨語言預訓練模型是緩解上述問題的有效手段。給定多種語言的單語語料和不同語言對之間的雙語語料,跨語言預訓練模型能夠學習到不同語言之間的對應關系,并保證不同語言的向量表示都存在于同一個語義空間中。在此基礎上,該類模型使用某種語言上充足的標注數據進行下游任務微調。由此產生的任務模型能夠直接作用于其他語言的輸入。如果該任務在其他語言上同樣存在少量的標注數據,則可以通過繼續微調獲得更好的效果。

圖6:跨語言預訓練模型示意圖

微軟亞洲研究院提出的跨語言預訓練模型 Unicoder[2],通過在預訓練過程中引入五種不同的跨語言任務,能夠學習得到很好的跨語言理解能力。

第一個預訓練任務在共享模型參數和多語言詞匯表的基礎上,在不同語言輸入序列上進行 Masked Language Model 任務。該任務能夠保證將不同語言的向量表示映射到同一個語義空間。

第二個預訓練任務將雙語句對拼接成一個新的輸入序列,并在該序列上進行 Masked Language Model 任務。通過顯式引入雙語對齊信息作為監督信號,Unicoder 能夠更好地學習不同語言之間的對應關系,從而獲得更好的跨語言理解能力。

第三個預訓練任務的輸入同樣是一個雙語句對。該任務首先對該句中每個源語言-目標語言單詞對計算一個 attention score。然后,將每個源語言單詞表示為全部目標語言單詞向量表示的加權求和。最后,基于新生成的源語言表示序列,恢復原始的源語言序列。

第四個預訓練任務的輸入是兩個不同語言的句子,訓練目標是判定這兩個句子是否互譯。Unicoder 可以通過該任務學習得到不同語言在句子層面的對應關系。

第五個預訓練任務的輸入是一篇由多種語言句子構成的段落,并在此基礎上進行 Masked Language Model 任務。

基于這五個跨語言預訓練任務,Unicoder 能夠學習到同一語義在不同語言中的對應關系,模糊不同語言之間的差異和邊界,并由此獲得進行跨語言下游任務模型訓練的能力。Unicoder 的能力已在跨語言自然語言推理(Cross-lingual Natural Language Inference,簡稱 XNLI)任務的實驗中得到驗證。

自然語言推理任務(NLI)是判斷兩個輸入句子之間的關系。輸出共有三類,分別是“蘊含”、“矛盾”和“無關”。XNLI 進一步把自然語言推理任務擴展到多語言上。在 XNLI 中,只有英語有訓練集,其他語言只有驗證集和測試集。該任務主要考察模型能否將英語訓練集上學習到的知識遷移到其他語言上去。通過引入更多跨語言預訓練任務后,Unicoder 比 Multilingual BERT 和 XLM 有顯著的性能提升,實驗結果如下圖:

圖7:Unicoder 在 XNLI 數據集上的實驗結果

預訓練+微調已經成為深度學習時代人工智能研究的新范式。該類方法不僅使得多種 NLP 任務達到新高度,而且極大降低了 NLP 模型在實際場景中落地的門檻。從 UniLM 到 Unicoder,再到最近擴模態預訓練模型 Unicoder-VL[3] 和 VL-BERT[4],微軟亞洲研究院在該領域持續產出高質量的工作。這些工作將持續落地到微軟的人工智能產品中。

微軟亞洲研究院也將在預訓練領域中探索更多的模型和方法,例如,基于自然語言和結構化語言的預訓練模型、基于自然語言和視頻的預訓練模型、基于自然語言和語音的預訓練模型等,以及如何加速、壓縮和解釋預訓練模型。隨著預訓練模型研究的不斷推進和發展,自然語言處理研究和涉及到自然語言處理的跨學科研究(即多模態學習)都將邁上一個全新的臺階。

語音智能落地開花:機器自然聽、說的能力已逼近人類

語音信號處理是 NLP 應用的重要分支,其關鍵步驟有兩個:一是識別,讓機器會聽,一是合成,教機器能說。過去十年,得益于人工智能與機器學習的突破、算法與硬/軟件能力的進步,以及擁有既多樣又大量的語音數據庫,用以訓練多參數的、大規模的語音識別與合成模型,使得語音處理技術獲得飛躍性進展。

大型的深度神經網絡模型大幅度改善了不特定說話人、帶有口音、造句不規范、夾帶噪聲的語音識別。同時,利用類似方法訓練的模型,合成語音也開始逼近真人的說話,在自然度、可懂度與目標說話人的相似度上,都達到了非常高的水平。

2019年,微軟亞洲研究院在語音領域有三項創新性的突破成果:一為快速語音合成 FastSpeech,二為有效抑制噪聲的語音增強技術 PHASEN,三為基于語義掩碼的語音識別技術 SemanticMask。FastSpeech 對于微軟在多路語音合成的產品服務,不論是微軟 Azure 云計算還是 Surface 個人電腦等終端設備上的應用都極為重要;PHASEN 在高噪聲的應用場景中,無論是增強語音、抑制噪聲、提高語音識別正確率,還是保證微軟企業視頻服務 Microsoft Stream 的更好進行,都可謂是恰到好處的“及時雨”。而 SemanticMask 能夠讓端到端語音識別模型學習更好的語義和語言模型,從而降低端到端語音識別模型的錯誤率,進一步改進微軟的語音識別服務質量。

FastSpeech:合成速度提升38倍,語調、語速、韻律更可控

端到端的神經網絡改變了視頻、音頻以及其他諸多領域的信號處理方式,在文字轉換語音合成上,也大幅度改善了合成語音的品質與自然度。端到端的神經網絡的語音合成系統可以分成兩個模塊:一是文字輸入在 Tacotron2 的聲碼器中產生高精度的梅爾語譜 (mel-spectrogram); 二是梅爾語譜再經 WaveNet 合成模型,合成高自然度、高品質的語音波形。

雖然用以上方法,品質可以得到提升,但有三個嚴重的缺點:速度太慢;系統不夠穩定與魯棒(以至于有些字詞未被合成或是錯誤性地被重復合成);以及不容易自由和有效地直接控制合成語音的語調、語速以及韻律。

微軟亞洲研究院的 FastSpeech[5] 消除了這三個痛點,它利用 Transformer 與前向(feedforward)算法,以并行的方式快速產生梅爾語譜圖,同時可在編碼器與解碼器的教師模型(teacher model)預測音素的時長,合成時還有效地解決了對齊工作。在公共語音數據庫上的實驗表明,FastSpeech 將梅爾譜的產生速度加速了270 倍,最終的端到端合成速度加速了38 倍,對音素時長的預測與約束也幾乎完全解決了原有的漏詞或錯誤重復字詞的問題。

FastSpeech 的系統圖見圖8,包括(a)前向 Transformer、(b) FFT、(c) 時長約束器、(d)時長預測器 。

圖8:FastSpeech 網絡架構

FastSpeech 在合成語音品質、合成語音速度(時延)與句子長短的相關性、漏詞與錯誤性重復字詞的比例,以及時長和時速的控制等方面的測試結果均證明了其有效性。

PHASEN:增強語音、抑制噪聲

為了充分利用語音的諧波與相位的特性,微軟亞洲研究院提出了 PHASEN 神經網絡模型[6],有效地分離了背景噪聲,從而增強語音。此模型有兩個亮點:其一是相位與幅度在頻域語音信號中,有彼此相依的關系,研究員們提出了雙流模型結構,能夠分別處理幅度與相位的信息,同時又設計了交叉通道,讓語音數據庫學習中相位與幅度相互矯正制約。其二是在全局頻域中,在聲帶振動的語音中,諧波的相關性可以通過數層頻域轉換模塊的雙流結構神經網絡習得。

如圖9的 PHASEN 系統圖所示,在頻域中,幅度為正值實數,相位則為復數,在操作過程中,網路處理幅度處理為卷積操作,頻域變換模塊(FTB)以及雙向之 LSTM(Long-Short Time Memory),而相位則為卷積網絡。整個網絡有三個雙流塊(Two Stream Block),每一個 TSB 結構相同,在其尾部有幅度與相位的交互操作。FTB 的采用是為了利用全局頻域的相關性,尤其是諧波之間的相互信息來改善神經網絡參數學習精度。

圖9:PHASEN 系統圖

PHASEN 在 AVSpeech + Audioset 數據集上,得到了客觀的 1.7 dB 的 SDR(Speech-to-Distortion Ratio) 提升,超越了其他模型在同一數據集的表現。在 Voice Bank + DEMAND 數據集中,四個重要指標均大幅超過之前的方法。

SemanticMask: 學習語義、增強數據、提高端到端語音識別性能

隨著端到端神經網絡在機器翻譯、語音生成等方面的進展,端到端的語音識別也達到了和傳統方法可比的性能。不同于傳統方法將語音識別任務分解為多個子任務(詞匯模型,聲學模型和語言模型),端到端的語音識別模型基于梅爾語譜作為輸入,能夠直接產生對應的自然語言文本,大大簡化了模型的訓練過程,從而越來越受到學術界和產業界的關注。

端到端語音識別的流行模型之一是基于注意力機制的序列到序列轉換模型。然而由于該模型過于依賴注意力機制,從而過度關注聲學特征而弱化了語言模型的信息,并有可能帶來過擬合的問題。為了解決該問題,模型在推斷時,往往需要額外的語言模型來進行聯合解碼,造成了額外的計算代價。受譜增強(SpecAugment)和預訓練模型(BERT)的啟發,微軟亞洲研究院提出了一種新的數據增強技術:SemanticMask(基于語義的掩碼技術)[7]。

如圖10所示,研究員們首先基于訓練數據訓練一個 force-alignment 模型,并得到訓練數據中每個詞在梅爾譜序列中的邊界。基于詞的邊界信息,在訓練語音識別模型時,再隨機的將某個詞對應的梅爾譜整體進行掩碼。由于該詞對應的聲學信息已經從輸入中移除,模型在訓練的過程中只能基于周圍的信息來對該詞進行預測,從而增強了語言模型的建模能力。不同于傳統的譜增強方法,SemanticMask 并不是隨機的對輸入序列的某個片段進行掩碼,而是按照詞的邊界將某個詞的信息移除。通過此技術可以緩解端到端語音識別過擬合的問題,并讓該模型具有更好的語言模型建模能力。

圖10:SemanticMask 示例

SemanticMask 是一種普適的語音識別數據增強技術,研究員們將其與此前微軟亞洲研究院所提出的基于 Transformer(70M參數)的端到端語音識別模型進行了結合,如圖11所示,并在 Librispeech 960小時和 TedLium2 的數據集上進行了實驗。實驗表明,該技術可以顯著提高基于 Transformer 的語音識別模型的表現。在公開數據集上也取得了業內最好的端到端語音識別的效果。

圖11:基于 Transformer 的端到端語音識別模型

語音處理的未來:自然、可懂,更接近人類

多年的努力與研發成果加快了語音產品的落地服務。不過,在語音識別與合成中,雖然已經打通了許多技術瓶頸,但大語料、大模型機器學習的訓練速度、識別系統的穩定性與識別速度、嘈雜的噪聲環境、不合標準的發音、不合文法的語句識別,將是語音識別長期關注的重點。在合成方面,如何使合成的輸出快速實時產生,同時又能保持高品質的自然度、可懂度、與目標說話人的相似度,也是微軟亞洲研究院的研究重點。

與此同時,在全球化與國際化的趨勢下,微軟亞洲研究院也充分利用語音研究的成果,開啟輔助智能與個性化的外語學習,如微軟小英;并有效利用大語種、多說話人的數據庫與神經網絡巨大模型,以不同語言的語音與說話人生理構造的共性,彌補小語種識別與合成的模型訓練與數據庫的不足。

此外,語音識別、合成與機器翻譯的密切結合,也將成為語音處理技術驅動的原動力。微軟亞洲研究院在語音翻譯領域目前已經做出了一些初步的研究成果,比如提出的 TCEN 模型[8]就能夠顯著的提高端到端語音翻譯的質量。而真正做到無縫的、跨語言、跨說話人的識別、翻譯、合成的端到端的對話系統,將成為驅動語音與翻譯技術的新課題。