博客專欄

        EEPW首頁 > 博客 > 如何億點點降低語音識別跨領域、跨語種遷移難度?

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

        發布人:MSRAsia 時間:2022-04-17 來源:工程師 發布文章
        編者按:隨著深度學習的不斷發展,語音識別技術得到了極大的提升,同時為人們的日常生活提供了許多便利。然而,一個語音模型的訓練并非易事,因為語音數據天然存在著獲取難、數據標注耗時昂貴的問題,而且還會面臨模型漂移、標注數據不足等難題。因此,遷移學習技術對于語音數據非常重要。為了解決語音識別的跨領域和跨語言問題,微軟亞洲研究院機器學習組和微軟(亞洲)互聯網工程院提出了跨領域和跨語言語音識別的 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種語言,其中絕大部分語言的使用者并不多,而且不同人的方言、口音、說話方式也有所不同,這就使得這些語言的語音數據十分稀缺,即低資源low-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,可以達到更好的效果,如表8所示。
        圖片表8:二階段訓練法

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


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


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

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

        https://github.com/microsoft/NeuralSpeech/tree/master/CMatchASR

        https://github.com/microsoft/NeuralSpeech/tree/master/AdapterASR





        相關論文鏈接:


        [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


        *博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。



        關鍵詞: AI

        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 正镶白旗| 安宁市| 美姑县| 会宁县| 德令哈市| 穆棱市| 皋兰县| 河北省| 漯河市| 台山市| 白银市| 吕梁市| 鸡泽县| 辽源市| 襄垣县| 中阳县| 霍城县| 建水县| 无棣县| 邵武市| 香港 | 大竹县| 安丘市| 文成县| 承德县| 瑞丽市| 多伦县| 绿春县| 抚松县| 博罗县| 康保县| 泾川县| 临城县| 普陀区| 隆昌县| 开平市| 尉氏县| 舟山市| 贵溪市| 长丰县| 鲁山县|