天天看點

短視訊那麼多,快手如何利用GRU實作各種炫酷的語音應用

本文介紹了快手這一研究成果以及它在實際業務中的應用,同時也介紹了 Interspeech 2018 中比較有意思的主題。本文首先會讨論語音在快手業務中的應用,以及為什麼需要高性能門控循環單元以及較低的解碼延遲。随後文章會重點讨論快手如何選擇 GRU、mGRU 以及更加精簡的循環單元 mGRUIP,同時會介紹如何将下文資訊嵌入循環單元以處理語音的協同發音問題,這些帶下文資訊的高效子產品在處理快手短視訊語音資訊中處于核心地位。最後,本文還會介紹快手整個多媒體了解部門所研究的方向與情況。

短視訊那麼多,快手如何利用GRU實作各種炫酷的語音應用
快手多媒體内容了解部語音組的李傑博士在 Interspeech2018 做 oral 報告。

為什麼語音需要新單元

首先語音在快手業務中的應用主要分為兩大類。第一類是語音内容分析,主要目的是對每天快手使用者産生的海量語音資料進行内容分析,為接下來的資訊安全、内容了解、廣告與推薦等提供基礎服務。涉及到的技術主要包括:語音識别、關鍵詞識别、說話人識别、聲學事件檢測等。這類業務快手使用者可能不太容易感受的到,但對快手而言是很重要的業務。具體的應用,比如,短視訊語音識别、短視訊音頻标簽、直播語音識别、直播髒詞過濾等。

第二類是語音互動。其目的是提升使用者與快手産品互動時的便利性,此外,可以通過語音設計一些新的玩法,提升趣味性。涉及的技術包括語音識别、關鍵詞喚醒等。比如,快手産品中的魔法表情語音特效觸發、語音自動生成字幕、語音評論、語音搜尋等。

在語音識别領域,設計一個「又快又好」的聲學模型一直是從業者不斷追求的目标。「快」指的是模型延遲要小,計算要高效。「好」指的是識别準确率要高。本次快手提出的「具備下文語境的門控循環單元聲學模型」就具有這樣的特點。在語音内容分析和語音互動兩類業務中,語音識别相關部分都可以用此模型。

• 論文:Gated Recurrent Unit Based Acoustic Modeling with Future Context 

• 論文位址:

https://arxiv.org/abs/1805.07024

帶下文語境的門控循環單元

正因為快手需要快速與準确地處理語音資訊,是以快手的李傑博士等研究者提出了一種能利用下文資訊的門控循環單元。這裡需要注意的是,利用下文資訊在語音識别和關鍵詞識别等任務中非常重要。正如快手所述,很多時候語音識别不能僅考慮目前話語的資訊,我們還需要一定長度的後文資訊才能降低口音和連讀等協同發音的影響。

為了利用下文資訊,我們首先想到的可能就是 BiLSTM,它廣泛應用于機器翻譯和其它需要下文資訊的序列任務中。但是在語音識别中,雙向 LSTM 的延遲非常大,它也做不到實時解碼。例如在使用 BiLSTM 實作語音模組化的過程中,模型的延遲是整句話,也就是說在識别第 5 個詞時,我們需要等整句話結束并将資訊由句末傳遞到第 5 個詞,這樣結合前向資訊與反向資訊才能完成第 5 個詞的識别。這種延遲是非常大的,通常也是不可忍受的,沒有人希望模型在整句話都說完才開始計算。

整個延遲的控制在語音識别中都處于核心地位,是以正式來說,模型延遲指在解碼目前幀時,模型需要等待多久才能對目前幀進行預測。而模型等的時間就應該是識别目前幀所需要的未來資訊,這個延遲是一定存在的,隻要在可接受的範圍内就完全沒問題。快手多媒體内容了解部語音組李傑博士表示一般最簡單的方法就是在輸入特征的時候,除了輸入目前特征以外,還要把未來的比如說一百毫秒以内的特征都輸入進去。是以在真正使用,并解碼的目前時刻 T 的時候,我們必須要等待一百毫秒。

其實有很多方法都能在聲學模組化中利用下文資訊,例如時延神經網絡(TDNN)和控制延遲的 LC-BiLSTM 網絡等。其中 TDNN 是一種前饋神經網絡架構,它可以在上下文執行時間卷積而高效地模組化長期依賴性關系。而 LC-BiLSTM 嘗試控制解碼延遲,希望不再需要等整個句子完成再解碼,但這些模型的延遲仍然非常高,達不到實際的需求。

為了降低延遲并提高計算效率,快手的研究者在該論文中以 GRU 為基礎進行了修正并添加了上下文子產品。總的而言,他們采用了隻包含更新門的最小門控循環單元(mGRU),并進一步添加線性輸入映射層以作為「瓶頸層」,進而提出大大提升運算效率的門控循環單元 mGRUIP。使用 mGRUIP 再加上能模組化下文資訊的子產品,就能得到高性能與低模型延遲的聲學模組化方法。

李傑博士表示一般來說,「模組化下文資訊」總會帶來一定的延遲,「模組化下文資訊」與「低延遲」經常會互相沖突。這篇論文提出的模型是在兩者之間找到了一個比較好的平衡點。模型中的 input projection 形成了一個 bottleneck,而快手在這個 bottleneck 上設計了下文語境模組化子產品,進而實作了在低延遲的條件下,對下文語境進行有效模組化。

從 GRU 到 mGRUIP

為了建構計算效率更高的單元,快手從 GRU、mGRU 到 mGRUIP 探索了新型門控單元。GRU 背後的原理與 LSTM 非常相似,即用門控機制控制輸入、記憶等資訊而在目前時間步做出預測。GRU 隻有兩個門,即一個重置門(reset gate)和一個更新門(update gate)。這兩個門控機制的特殊之處在于,它們能夠儲存長期序列中的資訊,且不會随時間而清除或因為與預測不相關而移除。

從直覺上來說,重置門決定了如何将新的輸入資訊與前面的記憶相結合,更新門定義了前面記憶儲存到目前時間步的量。在 Kyunghyun Cho 等人第一次提出 GRU 的論文中,他們用下圖展示了門控循環單元的結構:

短視訊那麼多,快手如何利用GRU實作各種炫酷的語音應用

上圖的更新 z 将選擇隐藏狀态 h 是否更新為新的 h tilde,重置門 r 将決定前面的隐藏狀态是否需要遺忘。以下圖左的方程式展示了 GRU 的具體運算過程:

短視訊那麼多,快手如何利用GRU實作各種炫酷的語音應用

其中 z_t 表示第 t 個時間步的更新門,它會根據目前時間步的資訊 X_t 與前一時間步的記憶 h_t-1 計算到底需要保留多少以前的記憶。而 r_t 表示重置門,它同樣會通過 Sigmoid 函數判斷目前資訊與多少以前的記憶能形成新的記憶。而上圖右側所展示的 mGRU 進一步減少了門控的數量,它移除了重置門,并将雙曲正切函數換為 ReLU 激活函數。此外,mGRU 相當于令 GRU 中的重置門恒等于 1。

通過上圖的左右對比,很明顯我們會發現 mGRU 的計算要簡單地多,但是如果網絡的每一層神經元都非常多,那麼 mGRU 的計算量還是非常大,且随着神經元數量的增加計算成線性增長。這就限制了 mGRU 在大型網絡和大規模場景中的應用。是以李傑等研究者進一步提出了帶輸入映射的 mGRUIP,它相當于給輸入增加了一個瓶頸層,先将高維特征壓縮為低維,然後在低維特征上發生實際的運算,再恢複到應有的高維特征。

短視訊那麼多,快手如何利用GRU實作各種炫酷的語音應用

上圖展示了 mGRU 到 mGRUIP 的演變,其中 mGRUIP 會先将目前輸入 x_t 與前一時間步的記憶(或輸出,h_t-1)拼接在一起,然後再通過矩陣 W_v 将拼接的高維特征壓縮為低維向量 v_t,這裡就相當于瓶頸層。然後通過批歸一化 BN 和激活函數 ReLU 計算出目前需要記憶的資訊 h_t tilde,再結合以前需要保留的記憶就能給出目前最終的輸出。

mGRUIP 顯著地減少了 mGRU 的參數量,它們之間的參數量之比即 InputProj 層的單元數比上隐藏層的單元數。例如我們可以将 InputProj 層的單元數(或 v_t 向量的次元)設定為 256,而神經網絡隐藏層的單元數設定為 2048,那麼同樣一層循環單元,mGRUIP 比 mGRU 的參數量少了 8 倍。

很多讀者可能會疑惑既然等大小的兩層網絡參數量相差這麼多,那麼它們之間的表征能力是不是也有差别,mGRUIP 是不是在性能上會有損失。李傑表示他們經過實驗發現,這種降維不僅不會降低 GRU 模型的表達能力,反而可以提升模型的性能。不僅本文的 GRU 如此,其他人所做的關于 LSTM 的工作也有類似的發現。在 LSTM 中增加線性輸出層,或者輸入層,大部分情況下,不僅沒有性能損失,反而有一定的收益。可能的原因在于,語音連續幀之間具有較多的備援資訊,這種線性層可以進行一定程度的壓縮,降低備援。

mGRUIP 與上下文子產品

完成高效的門控循環單元後,接下來我們需要基于這種單元建構利用下文資訊的方法。在快手的論文中,他們提出了兩種上下文子產品,即時間編碼與時間卷積。

在時間編碼中,未來幀的語境資訊會編碼為定長的表征并添加到輸入映射層中。如下向量 v 的表達式為添加了時間編碼的輸入映射層,其中藍色虛線框表示為時間編碼,且 l 表示層級、K 表示利用未來語境的數量、s 為未來每一個語境移動到下一個語境的步幅。在向量 v 的表達式中,左側 W_v[x_t; h_t-1] 為 mGRUIP 計算輸入映射層的表達式,而右側時間編碼則表示将前一層涉及下文資訊的 InputProj 加和在一起,并與目前層的 InputProj 相加而作為最終的瓶頸層輸出。這樣就相當于在目前時間步上利用了未來幾個時間步的資訊,有利于更準确地識别協同發音。

短視訊那麼多,快手如何利用GRU實作各種炫酷的語音應用

上圖展示了帶有時間編碼的 mGRUIP 計算過程,在 l 層時先利用目前輸入與上一層輸出計算出不帶下文資訊的 InputProj,然後從 l-1 層取目前時間步往後的幾個時間框,并将它們的 InputProj 向量加和在一起。将該加和向量與目前層的 InputProj 向量相加就能得出帶有下文資訊的瓶頸層向量,它可以進一步完成 mGRUIP 其它的運算。如上所示轉換函數 f(x) 一般可以是數乘、矩陣乘法或者是恒等函數,但快手在實驗中發現恒等函數在性能上要更好一些,是以它們選擇了 f(x)=x。

李傑等研究者還采用了第二種方法為 mGRUIP 引入下文資訊,即時間卷積。前面時間編碼會使用低層級的輸入映射向量表征下文資訊,而時間卷積會從低層級的輸出狀态向量中抽取下文資訊,并通過輸入映射壓縮下文資訊的次元。如下 v 向量的計算式為整個子產品的計算過程,其中左側同樣為 mGRUIP 計算 InputProj 的标準方法,右側藍色虛線框表示時間卷積。

簡單而言,時間卷積即将所需要的前層輸出拼接在一起,并通過 W_p 建構表征下文資訊的輸入映射層。其中所需要的前層輸出表示模型需要等多少幀語音資訊,例如需要等 10 幀,那麼前一層目前往後 10 個時間步的輸出會拼接在一起。此外,這兩種方式的延遲都是逐層疊加的,也就是說每一層需要等 10 毫秒,那麼 5 層就需要等 50 毫秒。

短視訊那麼多,快手如何利用GRU實作各種炫酷的語音應用

如上所示為帶時間卷積的 mGRUIP 具體過程,它會利用 l-1 層的 t_1 和 t_2 等時間步輸出的隐藏單元狀态,并在第 l 層拼接在一起。然後将下文資訊壓縮為 Projection 向量并與 l 層目前時間步的 InputProj 相加而成為帶下文資訊的瓶頸層向量。

至此,整個模型就完成了建構,快手在兩個語音識别任務上測試了該模型,即 309 小時的 Swichboard 電話語音任務和 1400 小時的國内國語語音輸入任務。mGRUIP 在參數量上顯著地小于 LSTM 與 mGRU,且在詞錯率和性能上比它們更優秀。此外,帶有上下文子產品的 mGRUIP 在延遲控制和模型性能上都有非常優秀的表現,感興趣的讀者可檢視原論文。

Interspeech 2018 與快手研究

這篇論文也被語音頂會 Interspeech 2018 接收為 Oral 論文,李傑同樣在大會上對這種能使用下文資訊的門控循環單元給出了詳細的介紹。前面我們已經了解了該模型的主要思想與過程,但是在 Interspeech 2018 還有非常多優秀的研究與趨勢。李傑表示:「從今年的大會看,主流的聲學模型依然是基于 RNN 結構,隻不過大家所做的工作、所解的問題會更加細緻。比如,對于 RNN 模型低延遲條件下,下文語境模組化問題,除了我們在關注,Yoshua Bengio 他們也有一篇工作聚焦在該問題上。此外,如何提升 RNN 聲學模型的噪聲魯棒性、低資源多語言聲學模型模組化、說話人和領域聲學模型自适應、新的 RNN 結構等問題,也受到了很多關注。」

除此之外,李傑表示端到端模型依然是大家研究的熱點。主要的技術方向有三個,第一,CTC;第二,基于 RNN 的帶注意力機制的編解碼模型;第三,也是今年 Interspeech 新出現的,基于 self-attention 的無 RNN 結構的編解碼模型。

其實除了 Interspeech 接收的這篇 Oral 論文,快手還有很多不同方向的研究,包括計算機視覺、自然語言處理和情感計算等等。因為快手平台每天都有大量的短視訊上傳,是以如何分層有序地提取視訊資訊、了解視訊内容就顯得尤為重要。針對該問題,快手多媒體内容了解部門通過感覺和推理兩個階段來解讀一個視訊,首先感覺擷取視訊的客觀内容資訊,進而推理擷取視訊的高層語義資訊。

在感覺階段,除了上文所述的語音處理,快手還會從另外三個次元來分析了解視訊内容,包括人臉、圖像和音樂。

  • 對于語音資訊,快手不僅進行語音識别,還需要實作說話人識别、情緒年齡等語音屬性資訊分析。
  • 對于人臉資訊,快手會對視訊中的人臉進行檢測、跟蹤、識别,并分析其年齡、性别、3D 形狀和表情等資訊。
  • 對于圖像資訊,快手會通過分類、物體檢測等算法分析場景、物體,通過圖像品質分析算法對圖像的主觀品質進行評估,通過 OCR 分析圖像中包含的文字資訊等。
  • 對于音樂資訊,快手需要進行音樂識别、歌聲/伴奏分離、歌聲美化打分等分析,對音樂資訊進行結構化。

從以上四個方面,快手能抽取足夠的視訊語義資訊,并為推理階段提供資訊基礎。推理階段可以将視訊看做一個整體,進行分類、描述、檢索。此外,進階視訊資訊也可以整理并存儲到快手知識圖譜中,這樣融合感覺内容和知識圖譜,就可以完成對視訊高層語義及情感的識别。是以,感覺與推理,基本上也就是快手多媒體了解部門最為關注的兩大方面。

短視訊那麼多,快手如何利用GRU實作各種炫酷的語音應用

繼續閱讀