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