1. 程式人生 > 其它 >從Encoder-Decoder模型入手,探索語境偏移解決之道

從Encoder-Decoder模型入手,探索語境偏移解決之道

摘要:在本文中,我們展示了CLAS,一個全神經網路組成,端到端的上下文ASR模型,通過對映所有的上下文短語,來融合上下文資訊。在實驗評估中,我們發現提出的CLAS模型超過了標準的shallow fusion偏置方法。

本文分享自華為雲社群《語境偏移如何解決?專有領域端到端ASR之路(二)》,原文作者: xiaoye0829 。

在這裡我們介紹一篇與專有領域的端到端ASR的相關工作《DEEP CONTEXT: END-TO-END CONTEXTUAL SPEECH RECOGNITION》,這篇工作也是來自Google的同一個研究團隊。

在ASR中,一個使用者說話的內容取決於他所處的上下文,通常這種上下文可以由一系列的n-gram單詞所代表。在這篇工作中,我們同樣是研究如何在端到端的模型中應用這種上下文資訊。這篇文章的核心做法,可以看做是一個contextual的LAS[1]模型,Contextual LAS(CLAS)模型就是在LAS模型的基礎上,聯合n-gram的embedding進行優化。即在beam search時,將獨立訓練的n-gram和LAS模型進行shallow fusion。

在本文的工作中,我們考慮在識別過程中動態融入上下文資訊。在傳統的ASR系統裡,融入上下文資訊的一個主流做法是使用一個獨立訓練的線上重打分框架,這個框架可以動態調整一小部分與特定場景上下文相關的n-gram的權重。能夠把這個技術拓展到Seq2Seq的ASR模型裡是十分重要的。為了實現根據特定任務偏移識別過程的目的,先前也有工作嘗試將獨立的LM融入到識別過程中,常見的做法是shallow fusion或者cold fusion。在工作[2]裡面,shallow fusion的方法被用來構建Contextual LAS,即LAS的輸出概率被一個由說話人上下文構建的特殊WFST修改,並獲得了效果的提升。

之前的工作使用外部獨立訓練的LM進行線上重打分,與Seq2Seq模型聯合優化的好處相違背。因此,在本文中,我們提出了一個Contextual LAS(CLAS),提供一系列上下文短語(即語境短語)去提升識別效果。我們的方法是首先將每個短語對映成固定維度的詞嵌入,然後採用一個attention注意力機制在模型輸出預測的每一步去摘要可用的上下文資訊。我們的方法可以被看成是流式關鍵詞發現技術[3]的一個泛化,即允許在推理時使用可變數量的上下文短語。我們提出的模型在訓練的時候不需要特定的上下文資訊,並且也不需要對重打分的權重進行仔細的調整,仍然能融入OOV詞彙。

本文接下來將從標準的LAS模型、標準的上下文LAS模型、以及我們提出的修改版LAS這幾個部分進行講解。

LAS模型就是一個Seq2Seq模型,包含編碼器和帶有注意力機制的解碼器,在解碼每個詞語的時候,注意力機制會動態計算每個輸入隱狀態的權重,並通過加權線性組合得到當前的注意力向量。這個模型的輸入x是語音訊號,輸出y是graphemes(即英文的character,包含a~z,0~9,<space>, <comma>, <period>, <apostrophe>,<unk>)。

LAS的輸出是如下公式:

這個公式依賴於encoder的狀態向量hx,decoder的隱藏層狀態dt,以及建模為上下文向量的Ct, Ct是用一個attention gate去聚合decoder狀態和encoder的輸出。

在標準的上下文LAS模型中,我們假設已經提前知道了一系列的單詞級偏移短語。並把他們編譯成了一個WFST。這個單詞級的WFST G可以由一個speller FST S組成。S可以把一串graphemes或者word-pieces轉換成對應的單詞。因此我們可以獲得一個上下文語言模型LM C=min(det(SоG))。來自這個上下文語言模型的的分數Pc(y), 之後能被用到解碼過程中來增強標準的log概率項。

在這裡,λ是一個可調整的引數,來控制上下文語言模型對整體模型得分的影響。這個公式中的總的分數,只在單詞(word)層面應用。如下圖所示:

因此,如果相關單詞(word)沒有在beam中出現,那麼這個技術不能提高效果。而且,我們觀察到,儘管這個方法在上下文短語數量很少的時候(比如yes,no,cancel),這個方法的效果很好,但是當上下文短語中包含很多名詞(比如歌名、聯絡人)時,這個方法效果不好。因此,如上圖c中所示,我們探索在每一個單詞的子詞單元上施加權重。為了避免手動設定字首詞(與字首匹配,但不與整個短語匹配)的權重,我們也包含了一個減法損失(subtractive cost),如上圖C中的負權重。

下面我們開始介紹本文提出的上下文 LAS模型,它能夠利用一系列偏置短語Z提供的額外上下文資訊,來有效地建模P(y|x,z)。Z中的單個元素為與特定上下文語境相關的聯絡人、歌名等短語。假定這些上下文短語可以被表示成:Z = Z1,Z2 …,ZN。這些偏置短語是用來使模型朝輸出特定短語偏置,然而,並不是所有的偏置短語都與當前要處理的語音相關,模型需要去決定哪些短語可能相關,並用這些短語去修改模型的目標輸出分佈。我們利用了一個bias-encoder(偏置編碼器)去增強LAS,並把這些短語編碼成hz={h0z,h1z,…, hNz}。我們用上標z來區分聲音相關的向量。hiz是Zi的映射向量。由於所有的偏置短語可能都與當前的語音無關,我們額外包含了一個可學習的向量,h0z = hnbz,這個向量對應不使用偏置,即在輸出時不使用任何偏置短語。這個選項使得模型能夠忽略所有的偏置短語。這個偏置編碼器是由一個多層的LSTM網路組成,hiz是將Zi中子詞對應的embedding序列送到偏置編碼器中,並用LSTM的最後狀態作為整個短語的輸出特徵。我們然後用一個額外的attention去對hz進行計算,利用下面的公式,在輸入到decoder中時,Ct = [Ctx;Ctz]。其他部分都與傳統的LAS模型一樣。

值得注意的是,上面的公式明確建模了在給定語音和之前的輸出時,當前時刻看到每個特定短語的概率。

下面我們看下實驗部分。實驗是在25000小時的英文資料上進行的,這個資料集用一個房間模擬器,新增不同強度的噪聲和混淆,手工干擾正常語音,使得信噪比在0到30dB之間,噪聲源來自於Youtube和日常生活的噪聲環境錄音。Encoder的結構包含10層單向的LSTM,每層256個單元。偏置編碼器包含單層的LSTM,有512個單元。解碼器由4層LSTM組成,每層256個單元。實驗的測試集如下:

首先,為了檢驗我們引入的偏移模組在沒有偏移短語的情況下,會不會影響解碼。我們對比了我們的CLAS和普通的LAS模型,CLAS模型在訓練的時候,使用了隨機的偏移短語,但是在測試的時候不提供偏移短語,出乎意料的是,CLAS在沒有偏移短語提供時,也獲得了比LAS更好的效能。

我們進一步對比了不同的線上重打分的方案,這些方案在如何分配權重給子詞單元方面有區別。從下表中可以看到,最好的模型在每個子詞單元上進行偏移,有助於在beam中保留單詞。下面所有的線上重打分的實驗都是在子詞單元上進行偏移。

接下來,我們對比了CLAS和上面的各種方案的效果:

從這個表中可以看到,CLAS顯著得超過了傳統的方法,並且不需要任何額外的超引數調整。

最後,我們把CLAS和傳統的方法結合,可以看到偏置控制和線上重打分都有助於效果提升。

在本文中,我們展示了CLAS,一個全神經網路組成,端到端的上下文ASR模型,通過對映所有的上下文短語,來融合上下文資訊。在實驗評估中,我們發現提出的CLAS模型超過了標準的shallow fusion偏置方法。

[1] Chan, William, et al. "Listen, attend and spell: A neural network for large vocabulary conversational speech recognition."2016 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP). IEEE, 2016.

[2] Ian Williams, Anjuli Kannan, Petar Aleksic, David Rybach, and Tara N. Sainath, “Contextual speech recognition in end-to-end neural network systems using beam search,” in Proc. of Interspeech, 2018.

[3] Y. He, R. Prabhavalkar, K. Rao, W. Li, A. Bakhtin, and I. McGraw, “Streaming Small-footprint Keyword Spotting Using Sequence-to-Sequence Models,” in Proc. ASRU, 2017.

點選關注,第一時間瞭解華為雲新鮮技術~