如何億點點降低語音識別跨領域、跨語種遷移難度?

語言: CN / TW / HK

(本文閱讀時間:18分鐘)

編者按:隨著深度學習的不斷髮展,語音識別技術得到了極大的提升,同時為人們的日常生活提供了許多便利。然而,一個語音模型的訓練並非易事,因為語音資料天然存在著獲取難、資料標註耗時昂貴的問題,而且還會面臨模型漂移、標註資料不足等難題。因此,遷移學習技術對於語音資料非常重要。為了解決語音識別的跨領域和跨語言問題,微軟亞洲研究院機器學習組和微軟(亞洲)網際網路工程院提出了跨領域和跨語言語音識別的 CMatch 和 Adapter 方法。這兩項技術是如何提升模型遷移學習效能的?他們又利用了哪些創新技術?讓我們從今天的文章中來獲得答案吧。

語音識別就是將人的聲音轉化為對應的文字,在如今的日常生活中有著重要的應用,例如手機中的語音助手、語音輸入;智慧家居中的聲控照明、智慧電視互動;還有影視字幕生成、聽錄速記等等,以語音識別為核心技術的應用已經屢見不鮮。但是,語音資料天然存在著獲取難、資料標註耗時昂貴的問題。不同人的方言、口音、說話方式也有所不同。受限於此,採集到的語音資料絕大多數會面臨模型漂移、標註資料不足等問題。

尤其是語音識別中的跨領域和跨語言場景更是十分具有挑戰性。跨領域指的是在領域 A(如普通麥克風)訓練的模型如何遷移到領域 B(如專用麥克風)。而跨語種則指的是在語言 A(如俄語)上訓練的模型如何遷移到語言 B(如捷克語)。特別是對於一些標註資料稀缺的小語種更是如此。因此,研究低資源跨語種遷移至關重要。

為了解決上述難題,微軟亞洲研究院提出了 用於語音識別的無監督字元級分佈適配遷移學習方法 CMatch 和基於介面卡架構的引數高效跨語言遷移方法 Adapter 。相關論文已分別被語音領域頂會和頂刊 Interspeech 2021 及 IEEE/ACM TASLP 2022 所接收。(論文連結,請見文末)

遷移學習方法 CMatch:

實現字元級跨領域適配

眾所周知,基於深度學習的端到端 ASR (自動語音識別) 已經可以通過大規模的訓練資料和強大的模型得到很好的效能。但是,訓練和測試資料之間可能會因錄音裝置、環境的不同有著相似卻不匹配的分佈,導致 ASR 模型測試時的識別精度下降。而這種領域或分佈不匹配的情況非常多樣且常見,以至於很難對每個領域的語音資料進行大量收集並標記。這種情況下模型往往需要藉助無監督領域適配來提升其在目標域的表現。

現有的無監督領域適配方法通常將每個領域視為一個分佈,然後進行領域適配,例如領域對抗訓練或是特徵匹配。這些方法可能會忽略一些不同領域內細粒度更高的分佈知識,例如字元、音素或單詞,這在一定程度上會影響適配的效果。這點在此前的研究《Deep subdomain adaptation network for image classification》[1] 中得到了驗證,與在整個域中對齊的傳統方法相比,在子域中對齊的影象(即按類標籤劃分的域)通常可以實現更好的自適應效能。

微軟亞洲研究院提出了一種用於 ASR 的無監督字元級分佈匹配方法—— CMatch,以實現在兩個不同領域中的每個字元之間執行細粒度的自適應。在 Libri-Adapt 資料集上進行的實驗表明,CMatch 在跨裝置和跨環境的適配上相對單詞錯誤率(WER)分別降低了 14.39%16.50% 。同時,研究員們還全面分析了幀級標籤分配和基於 Transformer 的領域適配的不同策略。

以圖1為例,通過執行 CMatch 演算法,兩個領域相同的字元在特徵分佈中被拉近了:

圖1:執行 CMatch 前後效果對比

CMatch 方法由兩個步驟組成: 幀級標籤分配和字元級別的分佈匹配

其中,幀級別標籤分配可以為語音訊號獲得更加準 確的“特徵-標籤”對應關係,為下一步實現基於標籤(即字元)的分佈適配提供依據,即 需要獲得幀級別的標籤以取得更細粒度的特徵分佈。要想進行 幀級標籤分配 ,首先需要獲得較為準確的標籤對齊。如圖2所示的三種方法:CTC 強制對齊、動態幀平均、以及偽 CTC 標籤。可以看出, CTC 強制對齊 是通過預訓練的 CTC 模組,在計算每條文字對應的最可能的 CTC 路徑(插入重複和 Blank 符號)後分配到每個語音幀上,這個方法相對準確但是計算代價較高; 動態幀平均 則是將語音幀平均分配到每個字元上,這個方法需要基於源域和目標域語速均勻的假設;而 偽 CTC 標籤 的方法,通過利用已經在源域上學習較好的 CTC 模組外加基於置信度的過濾(如圖2中的 t、e、p 等),兼顧了高效和準確性。

圖2:三種幀級標籤分配策略

需要說明的是,在源域上使用真實文字進行標籤分配時,由於目標域沒有文字,所以需要藉助源域模型先對目標域的語音資料進行偽標註,然後再使用模型標註的文字進行標籤分配。

得到幀級別的標籤後,就需要進行 字元級別的分佈匹配 。研究員們選擇採用了 Maximum Mean Discrepancy(MMD)度量進行特徵匹配。MMD 用於評估兩個分佈之間的差異,是遷移學習中常見的一種分佈度量方法。它的公式為:

實際操作中,給定源域和目標域樣本 X_S, X_T,計算 MMD 的有偏差的經驗估計:

通過計算所有字元之間的平均 MMD,可以得到字元級別的分佈匹配損失函式:

最終,微軟亞洲研究院採用 CTC-Attention 混合模型作為基礎 ASR 模型,以及同時混合學習 CTC 模組(用於幀級標籤分配)和基於 Transformer Decoder 的 Seq2Seq Loss,於是語音識別的損失函式可以表示為:

將分佈匹配損失函式和語音識別損失函式相結合,就得到了最終的損失函式:

最終演算法流程如表1:

表1:CMatch 學習演算法

領域內、跨裝置、跨環境語音識別,

CMatch均取得最佳效果

表2是跨裝置語音識別時的結果,值得注意到的是,Source-only 的模型在其他裝置錄製語音上的識別效果相比領域內模型都會有一定程度的下降。而基於全域性 MMD 和領域對抗訓練的方法均有所提升,CMatch 則在各個情況下均取得了最佳的效果。

表2:跨裝置語音識別結果

表3的結果表明,CMatch 在跨環境(抗噪聲)語音識別情況下也取得了很好的效果。

表3:跨環境(抗噪聲)語音識別結果

表4為消融實驗,可以看到結合了自訓練和細粒度的分佈匹配能夠使 CMatch 達到最好的效果。

表4:CMatch 消融實驗結果

此外,研究員們還分析比較了三種字元分配方法。在表5中可以看出 CTC 強制對齊取得了最好的效果,但是其計算開銷也最大;而 FrameAverage 也取得了較好的效果,但它的假設前提是領域和目標域具有均勻的說話速度;而使用 CTC 偽標籤的方法取得了與 CTC 強制對齊相近的結果,同時計算起來也更加高效。

表5:三種字元分配方法的實驗結果

最後,對於是否需要在解碼器端使用 CMatch Loss,實驗結果如表6。由於解碼器在實驗中本來就沒有功能上的差別,目標文字都是標準的英文,因此減小其分佈的差異並沒有什麼效果,甚至會損害效能。

表6:解碼器端使用 CMatch Loss 的測試結果

Adapter 再進化:

更少的訓練資料,更高的準確率

在一代代科學家和工程師的努力下,語音識別系統在各種主流語言上都已經達到了非常好的效果,比如英語、中文、法語、俄語、西班牙語等……讓人們在日常生活中就能享受其帶來的便利。然而,世界上有大約7,000種語言,其中絕大部分語言的使用者並不多,而且不同人的方言、口音、說話方式也有所不同,這就使得這些語言的語音資料十分稀缺,即 低資源l ow-resource )語言。標註資料的稀缺導致近年來端到端語音識別的諸多成果遲遲不能應用到這些語言上。

為此,微軟亞洲研究院的研究員們開始思考如何利用遷移學習,將主流語言(如英語、中文等)的知識用於幫助低資源語言的學習,在多種語言之間共享,起到“四兩撥千斤”的效果,從而提升小語種語音識別的表現。如圖3所示,給定羅馬尼亞語作為目標語言,如何利用資料相對豐富的義大利語、威爾士語和俄語來訓練出更好的羅馬尼亞語語音識別模型?

圖3:給定若干源語言,如何將知識遷移到目標語言上?

幸運的是,近年來,如 wav2vec2.0 [2] 等預訓練模型都已經推出了多語言版本,微軟亞洲研究院之前的研究也證明了僅需要簡單的微調,一個大規模的多語言模型就能被適配到一個低資源語言上,並能顯著改善識別效能。

但與此同時,研究員們也發現了兩個新問題:

  1. 大規模的多語言模型往往含有大量的引數,導致在一些資料量非常少的情況下,模型極易過擬合。

  2. 如果對於世界上的每一個小語種都維護一個微調後的大模型,成本將會十分巨大。

不過,之前 Houlsby 等人發現[3],對於一個預訓練好的 BERT,只需要在 Transformer 的每一層插入一個如圖4所示的 Adapter,就能在不改變模型主幹引數的情況下將模型適配到各種下游任務, 甚至能夠取得接近整個模型微調的表現 。Adapter 主要包含一個 LayerNorm 層,用於重新調節原始特徵的尺度,接著分別是一個降取樣層和一個升取樣層對特徵進行壓縮和還原,最後由一個殘差連線保證原始特徵依然能通過,從而提升 Adapter 訓練時的穩定性。

圖4:Adapter 結構示意圖

受到 Adapter 的啟發,微軟亞洲研究院的研究員們嘗試使用 Adapter 來解決模型過擬合問題,對如何利用 Adapter 進行高參數效率(parameter-efficient)的預訓練多語言 ASR 模型的遷移展開了研究,並提出了  MetaAdapter  和  SimAdapter  來對 Adapter 進一步優化,在僅使用 2.5%15.5% 的可訓練引數的情況下,使得識別詞錯誤率(WER 相對全模型微調分別降低了 2.98%2.55%

微軟亞洲研究院使用了自己預訓練的多語言模型進行實驗,該方法也可以用於 wav2vec2.0 等模型上。具體來說,模型的主幹基於 Transformer 的結構,主要包含12層 Encoder 以及6層 Decoder 模型,結合了11種語料(包含42種語言,總時長約5,000小時)對模型進行預訓練。同時,模型採用了 CTC-Attention 混合損失函式來提升訓練的穩定性和加速訓練,即在 Encoder 的輸出特徵上增加 CTC 層,使用 CTC 損失進行約束。研究員們還將 Adapter 放在前饋層(Feed-Forward Networks 後面,從而對每一層的輸出特徵進行調節。

圖5:主幹模型示意圖

MetaAdapter :MetaAdapter 在結構上與 Adapter 完全一致,唯一不同的是,使用了 MAML (Model-Agnostic Meta-Learning) [4] 元學習演算法來學習一個 Adapter 更優的初始化。MetaAdapter 需要通過學習如何學習多種源語言,從而在各種語言中 收集隱含的共享資訊 ,以幫助學習一個新的語言。實驗發現, MetaAdapter  對於過擬合和極少數據量的魯棒性,以及最終遷移效果均顯著強於原始 Adapter 。

圖6:MetaAdapter

SimAdapter :如果說 MetaAdapter 需要通過收集隱含的共享資訊來學習新的語言,那麼 SimAdapter 則是 顯式地要求模型去建模各種語言的相似度關係 ,從而更好的學習目標語言,其結構如圖7所示。在研究員們看來,多語言模型的原始特徵是相對語言無關的,那麼如果使用這些特徵作為 Query,將各語言 Adapter(包括目標語言)輸出的語言強相關特徵作為 Key 和 Value,那麼就能通過構造注意力機制,從目標語言和源語言中分別提取一些有效資訊,作為更好的目標語言特徵。

圖7:SimAdapter 結構示意圖

SimAdapter+ 達到最優結果,

MetaAdapter 擅長資料量極少的場景

通過將模型在 Common Voice 的五種低資源語言上進行實驗,結果如表7所示。根據遷移與否以及遷移方式的不同,可以將各種方法分為三類:

  1. 不遷移(左邊欄):包括了傳統的 DNN/HMM 混合模型,從頭訓練的 Transformer(B. 和本文用的主幹模型大小結構均一致;S. 指為了抑制過擬合,而將引數量調小的版本),以及將預訓練好的模型當作特徵提取器,去學習目標語言的輸出層。

  2. 基於微調的遷移(中間欄):包括了完整模型的微調,以及對於抑制過擬合的嘗試(完整模型微調 +L2 正則化、僅微調模型最後幾層引數)

  3. 基於 Adapter 的遷移(右邊欄):即本文介紹的各種方法,其中 SimAdapter+ 是結合了 SimAdapter 和 MetaAdapter 的升級版。

表7:MetaAdapter 和 SimAdapter 在 Common Voice 五種低資源語言上的實驗結果

這裡採用了兩種平均方式來反應模型的不同能力:1. 直接平均:沒有考慮不同語言內的資料量,對於尤其擅長極少數據的演算法會更有優勢;2. 加權平均:考慮了不同語言本身的資料量,更適合用來衡量模型在各種情況下的綜合表現。

由結果可以看出:

  1. 使用遷移學習的方法均明顯好於不使用遷移學習的方法,印證了遷移學習的重要性。

  2. 全模型微調有著非常強大的效果,對其施加傳統的 L2 正則,或是僅微調模型最後幾層引數效果都不理想。

  3. 原始的 Adapter 在合適的訓練方法下基本可以達到和全模型微調相同的水平,說明了 Adapter 在 ASR 任務上的有效性。

  4. 本文提出的 SimAdapter 和 MetaAdapter 均進一步提高了 Adapter 的表現,將它們結合後的 SimAdapter+ 更是達到了文中最優的結果。

  5. 值得注意的是,MetaAdapter 更擅長資料量極少的情況,而在 SimAdapter 則有著更均衡的表現。

創新訓練方法和實驗方法:

進一步驗證 Adapter 和 SimAdapter 的效能

微軟亞洲研究院提出了兩階段訓練方法以提高 Adapter 在語音識別任務上的表現 :模型遷移過程中需要學習一份新語言的詞表,如果將該詞表和 Adapter 一起訓練,由於詞嵌入的不斷更新,可能會導致 Adapter 學習目標的混亂。同時學習 Adapter 和詞表也可能會詞嵌入從而承擔一部分 Adapter 的功能,導致 Adapter 無法學習到足夠的語言相關特徵,造成後續 SimAdapter 的表現下降。因此,先將主幹模型固定住,將新語言的詞表對映到模型相同的隱空間(latent space 中,再將詞表固定住學習 Adapter,可以達到更好的效果,如表9所示。

表9:二階段訓練法

另外,為了證明 SimAdapter 的確能夠從其他語言學習到有用的知識,研究員們設計了兩個實驗:

其一,嘗試去除目標語言本身的 Adapter ,以要求 SimAdapter 僅通過源語言來學習一個對目標語言有用的特徵,結果如表10所示: 即使沒有使用目標語言 Adapter,SimAdapter 依然能夠在多數語言上取得較為明顯的提升

表10:SimAdapter 消融實驗

其二,在烏克蘭語上訓練兩個不同的 SimAdapter 模型,以分析不同源語言(義大利語和俄語)的貢獻。由於俄語和烏克蘭語更相似,使用俄語 Adapter 共同訓練的 SimAdapter 應當獲得更多收益。結果顯示,使用義大利語 Adapter 的 SimAdapter 的詞錯誤率為48.70,而使用俄語 Adapter 的詞錯誤率僅為47.73,這表明相比義大利語,SimAdapter 的確可以從俄語中學習更多的有用知識來建模烏克蘭語。

微軟亞洲研究院已將 CMatch 和 Adapter 程式碼開源,地址如下:

https://github.com/microsoft/NeuralSpeech/master/CMatch

https://github.com/microsoft/NeuralSpeech/master/Adapter

相關論文連結:

[1] Deep Subdomain Adaptation Network for Image Classification

https://arxiv.org/abs/2106.09388

[2] wav2vec 2.0: A Framework for Self-Supervised Learning of Speech Representations

https://arxiv.org/abs/2006.11477

[3] Parameter-Efficient Transfer Learning for NLP

https://arxiv.org/abs/1902.00751

[4] Model-Agnostic Meta-Learning for Fast Adaptation of Deep Networks

https://arxiv.org/abs/1703.03400

你也許還想看