如何億點(diǎn)點(diǎn)降低語音識別跨領(lǐng)域、跨語種遷移難度?
編者按:隨著深度學(xué)習(xí)的不斷發(fā)展,語音識別技術(shù)得到了極大的提升,同時為人們的日常生活提供了許多便利。然而,一個語音模型的訓(xùn)練并非易事,因為語音數(shù)據(jù)天然存在著獲取難、數(shù)據(jù)標(biāo)注耗時昂貴的問題,而且還會面臨模型漂移、標(biāo)注數(shù)據(jù)不足等難題。因此,遷移學(xué)習(xí)技術(shù)對于語音數(shù)據(jù)非常重要。為了解決語音識別的跨領(lǐng)域和跨語言問題,微軟亞洲研究院機(jī)器學(xué)習(xí)組和微軟(亞洲)互聯(lián)網(wǎng)工程院提出了跨領(lǐng)域和跨語言語音識別的 CMatch 和 Adapter 方法。這兩項技術(shù)是如何提升模型遷移學(xué)習(xí)性能的?他們又利用了哪些創(chuàng)新技術(shù)?讓我們從今天的文章中來獲得答案吧。
語音識別就是將人的聲音轉(zhuǎn)化為對應(yīng)的文字,在如今的日常生活中有著重要的應(yīng)用,例如手機(jī)中的語音助手、語音輸入;智能家居中的聲控照明、智能電視交互;還有影視字幕生成、聽錄速記等等,以語音識別為核心技術(shù)的應(yīng)用已經(jīng)屢見不鮮。但是,語音數(shù)據(jù)天然存在著獲取難、數(shù)據(jù)標(biāo)注耗時昂貴的問題。不同人的方言、口音、說話方式也有所不同。受限于此,采集到的語音數(shù)據(jù)絕大多數(shù)會面臨模型漂移、標(biāo)注數(shù)據(jù)不足等問題。
尤其是語音識別中的跨領(lǐng)域和跨語言場景更是十分具有挑戰(zhàn)性??珙I(lǐng)域指的是在領(lǐng)域 A(如普通麥克風(fēng))訓(xùn)練的模型如何遷移到領(lǐng)域 B(如專用麥克風(fēng))。而跨語種則指的是在語言 A(如俄語)上訓(xùn)練的模型如何遷移到語言 B(如捷克語)。特別是對于一些標(biāo)注數(shù)據(jù)稀缺的小語種更是如此。因此,研究低資源跨語種遷移至關(guān)重要。
為了解決上述難題,微軟亞洲研究院提出了 用于語音識別的無監(jiān)督字符級分布適配遷移學(xué)習(xí)方法 CMatch 和基于適配器架構(gòu)的參數(shù)高效跨語言遷移方法 Adapter 。相關(guān)論文已分別被語音領(lǐng)域頂會和頂刊 Interspeech 2021 及 IEEE/ACM TASLP 2022 所接收。(論文鏈接,請見文末)
遷移學(xué)習(xí)方法 CMatch:
實現(xiàn)字符級跨領(lǐng)域適配
眾所周知,基于深度學(xué)習(xí)的端到端 ASR (自動語音識別) 已經(jīng)可以通過大規(guī)模的訓(xùn)練數(shù)據(jù)和強(qiáng)大的模型得到很好的性能。但是,訓(xùn)練和測試數(shù)據(jù)之間可能會因錄音設(shè)備、環(huán)境的不同有著相似卻不匹配的分布,導(dǎo)致 ASR 模型測試時的識別精度下降。而這種領(lǐng)域或分布不匹配的情況非常多樣且常見,以至于很難對每個領(lǐng)域的語音數(shù)據(jù)進(jìn)行大量收集并標(biāo)記。這種情況下模型往往需要借助無監(jiān)督領(lǐng)域適配來提升其在目標(biāo)域的表現(xiàn)。
現(xiàn)有的無監(jiān)督領(lǐng)域適配方法通常將每個領(lǐng)域視為一個分布,然后進(jìn)行領(lǐng)域適配,例如領(lǐng)域?qū)褂?xùn)練或是特征匹配。這些方法可能會忽略一些不同領(lǐng)域內(nèi)細(xì)粒度更高的分布知識,例如字符、音素或單詞,這在一定程度上會影響適配的效果。這點(diǎn)在此前的研究《Deep subdomain adaptation network for image classification》[1] 中得到了驗證,與在整個域中對齊的傳統(tǒng)方法相比,在子域中對齊的圖像(即按類標(biāo)簽劃分的域)通??梢詫崿F(xiàn)更好的自適應(yīng)性能。
微軟亞洲研究院提出了一種用于 ASR 的無監(jiān)督字符級分布匹配方法—— CMatch,以實現(xiàn)在兩個不同領(lǐng)域中的每個字符之間執(zhí)行細(xì)粒度的自適應(yīng)。在 Libri-Adapt 數(shù)據(jù)集上進(jìn)行的實驗表明,CMatch 在跨設(shè)備和跨環(huán)境的適配上相對單詞錯誤率(WER)分別降低了 14.39% 和 16.50% 。同時,研究員們還全面分析了幀級標(biāo)簽分配和基于 Transformer 的領(lǐng)域適配的不同策略。
以圖1為例,通過執(zhí)行 CMatch 算法,兩個領(lǐng)域相同的字符在特征分布中被拉近了:
圖1:執(zhí)行 CMatch 前后效果對比
CMatch 方法由兩個步驟組成: 幀級標(biāo)簽分配和字符級別的分布匹配 。
其中,幀級別標(biāo)簽分配可以為語音信號獲得更加準(zhǔn) 確的“特征-標(biāo)簽”對應(yīng)關(guān)系,為下一步實現(xiàn)基于標(biāo)簽(即字符)的分布適配提供依據(jù),即 需要獲得幀級別的標(biāo)簽以取得更細(xì)粒度的特征分布。要想進(jìn)行 幀級標(biāo)簽分配 ,首先需要獲得較為準(zhǔn)確的標(biāo)簽對齊。如圖2所示的三種方法:CTC 強(qiáng)制對齊、動態(tài)幀平均、以及偽 CTC 標(biāo)簽。可以看出, CTC 強(qiáng)制對齊 是通過預(yù)訓(xùn)練的 CTC 模塊,在計算每條文本對應(yīng)的最可能的 CTC 路徑(插入重復(fù)和 Blank 符號)后分配到每個語音幀上,這個方法相對準(zhǔn)確但是計算代價較高; 動態(tài)幀平均 則是將語音幀平均分配到每個字符上,這個方法需要基于源域和目標(biāo)域語速均勻的假設(shè);而 偽 CTC 標(biāo)簽 的方法,通過利用已經(jīng)在源域上學(xué)習(xí)較好的 CTC 模塊外加基于置信度的過濾(如圖2中的 t、e、p 等),兼顧了高效和準(zhǔn)確性。
圖2:三種幀級標(biāo)簽分配策略
需要說明的是,在源域上使用真實文本進(jìn)行標(biāo)簽分配時,由于目標(biāo)域沒有文本,所以需要借助源域模型先對目標(biāo)域的語音數(shù)據(jù)進(jìn)行偽標(biāo)注,然后再使用模型標(biāo)注的文本進(jìn)行標(biāo)簽分配。
得到幀級別的標(biāo)簽后,就需要進(jìn)行 字符級別的分布匹配 。研究員們選擇采用了 Maximum Mean Discrepancy(MMD)度量進(jìn)行特征匹配。MMD 用于評估兩個分布之間的差異,是遷移學(xué)習(xí)中常見的一種分布度量方法。它的公式為:
實際操作中,給定源域和目標(biāo)域樣本 X_S, X_T,計算 MMD 的有偏差的經(jīng)驗估計:
通過計算所有字符之間的平均 MMD,可以得到字符級別的分布匹配損失函數(shù):
最終,微軟亞洲研究院采用 CTC-Attention 混合模型作為基礎(chǔ) ASR 模型,以及同時混合學(xué)習(xí) CTC 模塊(用于幀級標(biāo)簽分配)和基于 Transformer Decoder 的 Seq2Seq Loss,于是語音識別的損失函數(shù)可以表示為:
將分布匹配損失函數(shù)和語音識別損失函數(shù)相結(jié)合,就得到了最終的損失函數(shù):
最終算法流程如表1:
表1:CMatch 學(xué)習(xí)算法
領(lǐng)域內(nèi)、跨設(shè)備、跨環(huán)境語音識別,CMatch均取得最佳效果
表2是跨設(shè)備語音識別時的結(jié)果,值得注意到的是,Source-only 的模型在其他設(shè)備錄制語音上的識別效果相比領(lǐng)域內(nèi)模型都會有一定程度的下降。而基于全局 MMD 和領(lǐng)域?qū)褂?xùn)練的方法均有所提升,CMatch 則在各個情況下均取得了最佳的效果。
表2:跨設(shè)備語音識別結(jié)果
表3的結(jié)果表明,CMatch 在跨環(huán)境(抗噪聲)語音識別情況下也取得了很好的效果。
表3:跨環(huán)境(抗噪聲)語音識別結(jié)果
表4為消融實驗,可以看到結(jié)合了自訓(xùn)練和細(xì)粒度的分布匹配能夠使 CMatch 達(dá)到最好的效果。
表4:CMatch 消融實驗結(jié)果
此外,研究員們還分析比較了三種字符分配方法。在表5中可以看出 CTC 強(qiáng)制對齊取得了最好的效果,但是其計算開銷也最大;而 FrameAverage 也取得了較好的效果,但它的假設(shè)前提是領(lǐng)域和目標(biāo)域具有均勻的說話速度;而使用 CTC 偽標(biāo)簽的方法取得了與 CTC 強(qiáng)制對齊相近的結(jié)果,同時計算起來也更加高效。
表5:三種字符分配方法的實驗結(jié)果
最后,對于是否需要在解碼器端使用 CMatch Loss,實驗結(jié)果如表6。由于解碼器在實驗中本來就沒有功能上的差別,目標(biāo)文本都是標(biāo)準(zhǔn)的英文,因此減小其分布的差異并沒有什么效果,甚至?xí)p害性能。
表6:解碼器端使用 CMatch Loss 的測試結(jié)果
Adapter 再進(jìn)化:
更少的訓(xùn)練數(shù)據(jù),更高的準(zhǔn)確率
在一代代科學(xué)家和工程師的努力下,語音識別系統(tǒng)在各種主流語言上都已經(jīng)達(dá)到了非常好的效果,比如英語、中文、法語、俄語、西班牙語等……讓人們在日常生活中就能享受其帶來的便利。然而,世界上有大約7,000種語言,其中絕大部分語言的使用者并不多,而且不同人的方言、口音、說話方式也有所不同,這就使得這些語言的語音數(shù)據(jù)十分稀缺,即 低資源 ( l ow-resource )語言。標(biāo)注數(shù)據(jù)的稀缺導(dǎo)致近年來端到端語音識別的諸多成果遲遲不能應(yīng)用到這些語言上。
為此,微軟亞洲研究院的研究員們開始思考如何利用遷移學(xué)習(xí),將主流語言(如英語、中文等)的知識用于幫助低資源語言的學(xué)習(xí),在多種語言之間共享,起到“四兩撥千斤”的效果,從而提升小語種語音識別的表現(xiàn)。如圖3所示,給定羅馬尼亞語作為目標(biāo)語言,如何利用數(shù)據(jù)相對豐富的意大利語、威爾士語和俄語來訓(xùn)練出更好的羅馬尼亞語語音識別模型?
圖3:給定若干源語言,如何將知識遷移到目標(biāo)語言上?
幸運(yùn)的是,近年來,如 wav2vec2.0 [2] 等預(yù)訓(xùn)練模型都已經(jīng)推出了多語言版本,微軟亞洲研究院之前的研究也證明了僅需要簡單的微調(diào),一個大規(guī)模的多語言模型就能被適配到一個低資源語言上,并能顯著改善識別性能。
但與此同時,研究員們也發(fā)現(xiàn)了兩個新問題:
- 大規(guī)模的多語言模型往往含有大量的參數(shù),導(dǎo)致在一些數(shù)據(jù)量非常少的情況下,模型極易過擬合。
- 如果對于世界上的每一個小語種都維護(hù)一個微調(diào)后的大模型,成本將會十分巨大。
不過,之前 Houlsby 等人發(fā)現(xiàn)[3],對于一個預(yù)訓(xùn)練好的 BERT,只需要在 Transformer 的每一層插入一個如圖4所示的 Adapter,就能在不改變模型主干參數(shù)的情況下將模型適配到各種下游任務(wù), 甚至能夠取得接近整個模型微調(diào)的表現(xiàn) 。Adapter 主要包含一個 LayerNorm 層,用于重新調(diào)節(jié)原始特征的尺度,接著分別是一個降采樣層和一個升采樣層對特征進(jìn)行壓縮和還原,最后由一個殘差連接保證原始特征依然能通過,從而提升 Adapter 訓(xùn)練時的穩(wěn)定性。
圖4:Adapter 結(jié)構(gòu)示意圖
受到 Adapter 的啟發(fā),微軟亞洲研究院的研究員們嘗試使用 Adapter 來解決模型過擬合問題,對如何利用 Adapter 進(jìn)行高參數(shù)效率(parameter-efficient)的預(yù)訓(xùn)練多語言 ASR 模型的遷移展開了研究,并提出了 MetaAdapter 和 SimAdapter 來對 Adapter 進(jìn)一步優(yōu)化,在僅使用 2.5% 和 15.5% 的可訓(xùn)練參數(shù)的情況下,使得識別詞錯誤率(WER ) 相對全模型微調(diào)分別降低了 2.98% 和 2.55% 。
微軟亞洲研究院使用了自己預(yù)訓(xùn)練的多語言模型進(jìn)行實驗,該方法也可以用于 wav2vec2.0 等模型上。具體來說,模型的主干基于 Transformer 的結(jié)構(gòu),主要包含12層 Encoder 以及6層 Decoder 模型,結(jié)合了11種語料(包含42種語言,總時長約5,000小時)對模型進(jìn)行預(yù)訓(xùn)練。同時,模型采用了 CTC-Attention 混合損失函數(shù)來提升訓(xùn)練的穩(wěn)定性和加速訓(xùn)練,即在 Encoder 的輸出特征上增加 CTC 層,使用 CTC 損失進(jìn)行約束。研究員們還將 Adapter 放在前饋層(Feed-Forward Networks ) 后面,從而對每一層的輸出特征進(jìn)行調(diào)節(jié)。
圖5:主干模型示意圖
MetaAdapter :MetaAdapter 在結(jié)構(gòu)上與 Adapter 完全一致,唯一不同的是,使用了 MAML (Model-Agnostic Meta-Learning) [4] 元學(xué)習(xí)算法來學(xué)習(xí)一個 Adapter 更優(yōu)的初始化。MetaAdapter 需要通過學(xué)習(xí)如何學(xué)習(xí)多種源語言,從而在各種語言中 收集隱含的共享信息 ,以幫助學(xué)習(xí)一個新的語言。實驗發(fā)現(xiàn), MetaAdapter 對于過擬合和極少數(shù)據(jù)量的魯棒性,以及最終遷移效果均顯著強(qiáng)于原始 Adapter 。
圖6:MetaAdapter
SimAdapter :如果說 MetaAdapter 需要通過收集隱含的共享信息來學(xué)習(xí)新的語言,那么 SimAdapter 則是 顯式地要求模型去建模各種語言的相似度關(guān)系 ,從而更好的學(xué)習(xí)目標(biāo)語言,其結(jié)構(gòu)如圖7所示。在研究員們看來,多語言模型的原始特征是相對語言無關(guān)的,那么如果使用這些特征作為 Query,將各語言 Adapter(包括目標(biāo)語言)輸出的語言強(qiáng)相關(guān)特征作為 Key 和 Value,那么就能通過構(gòu)造注意力機(jī)制,從目標(biāo)語言和源語言中分別提取一些有效信息,作為更好的目標(biāo)語言特征。
圖7:SimAdapter 結(jié)構(gòu)示意圖
SimAdapter+ 達(dá)到最優(yōu)結(jié)果,MetaAdapter 擅長數(shù)據(jù)量極少的場景
通過將模型在 Common Voice 的五種低資源語言上進(jìn)行實驗,結(jié)果如表7所示。根據(jù)遷移與否以及遷移方式的不同,可以將各種方法分為三類:
- 不遷移(左邊欄):包括了傳統(tǒng)的 DNN/HMM 混合模型,從頭訓(xùn)練的 Transformer(B. 和本文用的主干模型大小結(jié)構(gòu)均一致;S. 指為了抑制過擬合,而將參數(shù)量調(diào)小的版本),以及將預(yù)訓(xùn)練好的模型當(dāng)作特征提取器,去學(xué)習(xí)目標(biāo)語言的輸出層。
- 基于微調(diào)的遷移(中間欄):包括了完整模型的微調(diào),以及對于抑制過擬合的嘗試(完整模型微調(diào) +L2 正則化、僅微調(diào)模型最后幾層參數(shù))
- 基于 Adapter 的遷移(右邊欄):即本文介紹的各種方法,其中 SimAdapter+ 是結(jié)合了 SimAdapter 和 MetaAdapter 的升級版。
表7:MetaAdapter 和 SimAdapter 在 Common Voice 五種低資源語言上的實驗結(jié)果
這里采用了兩種平均方式來反應(yīng)模型的不同能力:1. 直接平均:沒有考慮不同語言內(nèi)的數(shù)據(jù)量,對于尤其擅長極少數(shù)據(jù)的算法會更有優(yōu)勢;2. 加權(quán)平均:考慮了不同語言本身的數(shù)據(jù)量,更適合用來衡量模型在各種情況下的綜合表現(xiàn)。
由結(jié)果可以看出:
- 使用遷移學(xué)習(xí)的方法均明顯好于不使用遷移學(xué)習(xí)的方法,印證了遷移學(xué)習(xí)的重要性。
- 全模型微調(diào)有著非常強(qiáng)大的效果,對其施加傳統(tǒng)的 L2 正則,或是僅微調(diào)模型最后幾層參數(shù)效果都不理想。
- 原始的 Adapter 在合適的訓(xùn)練方法下基本可以達(dá)到和全模型微調(diào)相同的水平,說明了 Adapter 在 ASR 任務(wù)上的有效性。
- 本文提出的 SimAdapter 和 MetaAdapter 均進(jìn)一步提高了 Adapter 的表現(xiàn),將它們結(jié)合后的 SimAdapter+ 更是達(dá)到了文中最優(yōu)的結(jié)果。
- 值得注意的是,MetaAdapter 更擅長數(shù)據(jù)量極少的情況,而在 SimAdapter 則有著更均衡的表現(xiàn)。
創(chuàng)新訓(xùn)練方法和實驗方法:
進(jìn)一步驗證 Adapter 和 SimAdapter 的性能
微軟亞洲研究院提出了兩階段訓(xùn)練方法以提高 Adapter 在語音識別任務(wù)上的表現(xiàn) :模型遷移過程中需要學(xué)習(xí)一份新語言的詞表,如果將該詞表和 Adapter 一起訓(xùn)練,由于詞嵌入的不斷更新,可能會導(dǎo)致 Adapter 學(xué)習(xí)目標(biāo)的混亂。同時學(xué)習(xí) Adapter 和詞表也可能會詞嵌入從而承擔(dān)一部分 Adapter 的功能,導(dǎo)致 Adapter 無法學(xué)習(xí)到足夠的語言相關(guān)特征,造成后續(xù) SimAdapter 的表現(xiàn)下降。因此,先將主干模型固定住,將新語言的詞表映射到模型相同的隱空間(latent space ) 中,再將詞表固定住學(xué)習(xí) Adapter,可以達(dá)到更好的效果,如表9所示。
表9:二階段訓(xùn)練法
另外,為了證明 SimAdapter 的確能夠從其他語言學(xué)習(xí)到有用的知識,研究員們設(shè)計了兩個實驗:
其一,嘗試去除目標(biāo)語言本身的 Adapter ,以要求 SimAdapter 僅通過源語言來學(xué)習(xí)一個對目標(biāo)語言有用的特征,結(jié)果如表10所示: 即使沒有使用目標(biāo)語言 Adapter,SimAdapter 依然能夠在多數(shù)語言上取得較為明顯的提升 。
表10:SimAdapter 消融實驗
其二,在烏克蘭語上訓(xùn)練兩個不同的 SimAdapter 模型,以分析不同源語言(意大利語和俄語)的貢獻(xiàn)。由于俄語和烏克蘭語更相似,使用俄語 Adapter 共同訓(xùn)練的 SimAdapter 應(yīng)當(dāng)獲得更多收益。結(jié)果顯示,使用意大利語 Adapter 的 SimAdapter 的詞錯誤率為48.70,而使用俄語 Adapter 的詞錯誤率僅為47.73,這表明相比意大利語,SimAdapter 的確可以從俄語中學(xué)習(xí)更多的有用知識來建模烏克蘭語。
微軟亞洲研究院已將 CMatch 和 Adapter 代碼開源,地址如下:
??https://github.com/microsoft/NeuralSpeech/master/CMatch??
??https://github.com/microsoft/NeuralSpeech/master/Adapter??