2020年伊始,我們總結、展望了微軟亞洲研究院在多個 AI 領域的突破與趨勢,比如,更親民的機器學習和更精巧的 AI 系統;資料洞察的獲得變得更智慧,AI 推進三維構建的發展;以及突破固化的計算機視覺和更具商用價值的 OCR 引擎。今天,我們將探索自然語言處理(Natural Language Processing,NLP)正規化的新發展,以及微軟亞洲研究院在語音識別與合成領域的創新成果。
NLP 在近兩年基本形成了一套近乎完備的技術體系,包括了詞嵌入、句子嵌入、編碼-解碼、注意力模型、Transformer,以及預訓練模型等,促進了 NLP 在搜尋、閱讀理解、機器翻譯、文字分類、問答、對話、聊天、資訊抽取、文摘、文字生成等重要領域的應用,預示著自然語言處理進入了大規模工業化實施的時代。
與此同時,隨著機器軟硬體能力的提升,模型、演算法的突破,語音合成、語音識別、語音增強也都有了突飛猛進的發展,如微軟亞洲研究院的 FastSpeech、PHASEN,讓機器語音越來越接近人類說話,進一步加速了相關語音產品的落地。
自然語言處理正規化是自然語言處理系統的工作模式,細數之下,已經歷了三代變遷,如今即將進入第四代。
第一代 NLP 正規化是出現在上世紀90年代前的“詞典+規則”;第二代正規化是2012年之前的“資料驅動+統計機器學習模型“;第三代正規化是始於2012年的“端對端神經網路的深度學習模型”。2018年前後,研究人員的目光開始鎖定在預訓練+微調上,標誌著 NLP 第四代正規化的出現,這也代表著 NLP 未來發展的方向。
由此,研究人員可以將透過預訓練從大規模文字資料中學到的語言知識,遷移到下游的自然語言處理和生成任務模型的學習中。預訓練語言模型在幾乎所有自然語言的下游任務,不管是自然語言理解(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)得到小(快)而好的模型,在訓練中得到小而快的預訓練語言模型,也是當前一個重要的研究熱點。
NLP 新正規化趨勢一:UniLM 為代表的跨任務統一模型
2019年,微軟亞洲研究院釋出了最新的預訓練語言模型的研究成果——統一預訓練語言模型 UniLM(Unified Language Model Pre-training),該模型涵蓋兩大關鍵性技術創新:一是統一的預訓練框架,使得同一個模型可以同時支援自然語言理解和自然語言生成任務,而之前大部分的預訓練模型都主要針對自然語言理解任務;其二是創新地提出了部分自迴歸預訓練正規化,可以更高效地訓練更好的自然語言預訓練模型。
UniLM 的統一建模機制可以用一個模型同時支援不同的下游任務和預訓練任務。自然語言處理的下游任務大致包含以下三類:
(1)自然語言理解(NLU)任務,如文字分類,問答,實體識別等;
(2)長文字生成任務,如新聞或者故事生成等;
(3)序列到序列生成任務,例如摘要生成,複述生成,對話生成,機器翻譯等。
針對不同的下游任務可以設計相應的預處理任務,比如針對自然語言理解的雙向語言模型,針對長文字生成的單向語言模型,以及針對序列到序列生成任務的序列到序列語言模型。這些不同的下游任務和預處理任務也對應不同的神經網路結構,比如用於自然語言理解的雙向編碼器,用於長文字生成的單向解碼器,以及用於序列到序列生成的雙向編碼器和單向解碼器,和其相應的注意力機制。
NLP 新正規化趨勢二:跨語言預訓練模型
預訓練模型除了能夠緩解跨任務中出現的低資源問題,還能夠緩解跨語言中出現的低資源問題。具體來說,由於科研專案需求以及資料標註代價昂貴等原因,很多自然語言任務往往只在少數語言(例如英文)上存在足夠的標註資料,而在其他語言上並沒有或僅有少量的標註資料。如何能夠利用特定任務在某種語言的標註資料上訓練模型,並將學到的知識遷移到其他語言上去,也是一個亟待解決的課題。
跨語言預訓練模型是緩解上述問題的有效手段。給定多種語言的單語語料和不同語言對之間的雙語語料,跨語言預訓練模型能夠學習到不同語言之間的對應關係,並保證不同語言的向量表示都存在於同一個語義空間中。在此基礎上,該類模型使用某種語言上充足的標註資料進行下游任務微調。由此產生的任務模型能夠直接作用於其他語言的輸入。如果該任務在其他語言上同樣存在少量的標註資料,則可以透過繼續微調獲得更好的效果。
第一個預訓練任務在共享模型引數和多語言詞彙表的基礎上,在不同語言輸入序列上進行 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 有顯著的效能提升,實驗結果如下圖:
預訓練+微調已經成為深度學習時代人工智慧研究的新正規化。該類方法不僅使得多種 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)時長預測器 。
PHASEN:增強語音、抑制噪聲
為了充分利用語音的諧波與相位的特性,微軟亞洲研究院提出了 PHASEN 神經網路模型[6],有效地分離了背景噪聲,從而增強語音。此模型有兩個亮點:其一是相位與幅度在頻域語音訊號中,有彼此相依的關係,研究員們提出了雙流模型結構,能夠分別處理幅度與相位的資訊,同時又設計了交叉通道,讓語音資料庫學習中相位與幅度相互矯正制約。其二是在全域性頻域中,在聲帶振動的語音中,諧波的相關性可以透過數層頻域轉換模組的雙流結構神經網路習得。
如圖9的 PHASEN 系統圖所示,在頻域中,幅度為正值實數,相位則為複數,在操作過程中,網路處理幅度處理為卷積操作,頻域變換模組(FTB)以及雙向之 LSTM(Long-Short Time Memory),而相位則為卷積網路。整個網路有三個雙流塊(Two Stream Block),每一個 TSB 結構相同,在其尾部有幅度與相位的互動操作。FTB 的採用是為了利用全域性頻域的相關性,尤其是諧波之間的相互資訊來改善神經網路引數學習精度。
SemanticMask: 學習語義、增強資料、提高階到端語音識別效能
隨著端到端神經網路在機器翻譯、語音生成等方面的進展,端到端的語音識別也達到了和傳統方法可比的效能。不同於傳統方法將語音識別任務分解為多個子任務(詞彙模型,聲學模型和語言模型),端到端的語音識別模型基於梅爾語譜作為輸入,能夠直接產生對應的自然語言文字,大大簡化了模型的訓練過程,從而越來越受到學術界和產業界的關注。
端到端語音識別的流行模型之一是基於注意力機制的序列到序列轉換模型。然而由於該模型過於依賴注意力機制,從而過度關注聲學特徵而弱化了語言模型的資訊,並有可能帶來過擬合的問題。為了解決該問題,模型在推斷時,往往需要額外的語言模型來進行聯合解碼,造成了額外的計算代價。受譜增強(SpecAugment)和預訓練模型(BERT)的啟發,微軟亞洲研究院提出了一種新的資料增強技術:SemanticMask(基於語義的掩碼技術)[7]。
如圖10所示,研究員們首先基於訓練資料訓練一個 force-alignment 模型,並得到訓練資料中每個詞在梅爾譜序列中的邊界。基於詞的邊界資訊,在訓練語音識別模型時,再隨機的將某個詞對應的梅爾譜整體進行掩碼。由於該詞對應的聲學資訊已經從輸入中移除,模型在訓練的過程中只能基於周圍的資訊來對該詞進行預測,從而增強了語言模型的建模能力。不同於傳統的譜增強方法,SemanticMask 並不是隨機的對輸入序列的某個片段進行掩碼,而是按照詞的邊界將某個詞的資訊移除。透過此技術可以緩解端到端語音識別過擬合的問題,並讓該模型具有更好的語言模型建模能力。
SemanticMask 是一種普適的語音識別資料增強技術,研究員們將其與此前微軟亞洲研究院所提出的基於 Transformer(70M引數)的端到端語音識別模型進行了結合,如圖11所示,並在 Librispeech 960小時和 TedLium2 的資料集上進行了實驗。實驗表明,該技術可以顯著提高基於 Transformer 的語音識別模型的表現。在公開資料集上也取得了業內最好的端到端語音識別的效果。
語音處理的未來:自然、可懂,更接近人類
多年的努力與研發成果加快了語音產品的落地服務。不過,在語音識別與合成中,雖然已經打通了許多技術瓶頸,但大語料、大模型機器學習的訓練速度、識別系統的穩定性與識別速度、嘈雜的噪聲環境、不合標準的發音、不合文法的語句識別,將是語音識別長期關注的重點。在合成方面,如何使合成的輸出快速實時產生,同時又能保持高品質的自然度、可懂度、與目標說話人的相似度,也是微軟亞洲研究院的研究重點。
與此同時,在全球化與國際化的趨勢下,微軟亞洲研究院也充分利用語音研究的成果,開啟輔助智慧與個性化的外語學習,如微軟小英;並有效利用大語種、多說話人的資料庫與神經網路巨大模型,以不同語言的語音與說話人生理構造的共性,彌補小語種識別與合成的模型訓練與資料庫的不足。
此外,語音識別、合成與機器翻譯的密切結合,也將成為語音處理技術驅動的原動力。微軟亞洲研究院在語音翻譯領域目前已經做出了一些初步的研究成果,比如提出的 TCEN 模型[8]就能夠顯著的提高階到端語音翻譯的質量。而真正做到無縫的、跨語言、跨說話人的識別、翻譯、合成的端到端的對話系統,將成為驅動語音與翻譯技術的新課題。