1. 程式人生 > >A CONVERSATIONAL NEURAL LANGUAGE MODEL FOR SPEECH RECOGNITION IN DIGITAL ASSISTANTS文獻閱讀筆記

A CONVERSATIONAL NEURAL LANGUAGE MODEL FOR SPEECH RECOGNITION IN DIGITAL ASSISTANTS文獻閱讀筆記

摘要:對話序列有利於提高數字助手(可以理解為手機的siri,微軟小冰等)的能力,我們探索了神經網路語言模型模擬數字助手的對話。我們提出的結果可以有效刻畫對話特徵,在識別率上相對提高了%4.

1.

    不同於其他領域的語音識別,數字助手主要為對話形式的。所以應該建立一個對話式的語言模型,用於解決語音識別中的歧義(ambiguous)問題。

和前人一樣,我們也使用LSTM語言模型用於刻畫長文字,一個常用的方法是將speak turn或者context作為一個額外的輸入到網路層或者LSTM單元。這是一種修飾語言模型的選項

為了訓練一個標準的對話式語言模型,我們探索了幾種修飾輸入資料的方法。這樣可以保證當提供先前的對話作為context用於訓練語言模型時,使用一個完全相同、可信賴的通用類語音識別語言模型又很多好處。

2.

人機對話(與數字助手)和人人對話的詞分佈區別很大。人機對話往往是人發出一個簡短的命令,數字助手回覆一個冗長的回答,我們在訓練語言模型的時候考慮到這個性質,採取了相應方法。使用Rafal Josefowicz, Oriol Vinyals, Mike Schuster, Noam
Shazeer, and Wu Yonghui, “Exploring the limits of language modeling,”中的語言模型。如下圖所示:

每一個LSTM單元如下:

xt,為word embedding輸入,it,ft,ot為輸入門,忘記門,輸出門,ct和rt為lstm內部的狀態,W, D, b分別為full權重矩陣,對話權重矩陣以及偏置,使用了peephole

連線用於學習精確的時間輸出,使用迴歸對映層rt,用於減少狀態維度,同時保持記憶能力。

人機對話系統需要大量單詞,為了減少訓練以及測試的計算代價,一方面,我們只使用了訓練語料中的top100K單詞,沒有出現的為unknown,另一方面在百分之三的詞彙上使用sampled softmax,即在單詞以遞減順序在訓練語料中排列時,使用均勻分佈的負取樣。

3.對話建模

輸入資料分為三種:

第一種只有人的一個詢問,作為baseline.如:What is the weather today?

第二種只有人一組詢問。一組詢問為當前詢問加上前兩個詢問,這三個詢問在一個5分鐘的時間序列內獲得。通過語句邊界標記進行區分。

第三種為人的一組詢問加數字助手的回答。即三個詢問加是哪個對應的回答。在此基礎上衍生四個變體:

(1)忽略語句邊界標記。

(2)在5分鐘的時窗裡如果提取的語句不足3個詢問,仍舊作為訓練資料輸入模型。該方法可以防止丟失部分訓練資料

(3)(4)變體基於這樣一個假設,詢問的歷史資料比數字助手回答的語句更具有影響力。

(3)輸入詢問的詞彙(重複的就去除了)非句子加數字助手的回答

(4)顛倒順序,首先為回答,然後是詢問。

4.lattice rescoring參考文獻(Lattice rescoring strategies for long short term
memory language models in speech recognition)

我們使用lattice-recore演算法將語言模型整合到語音識別中,每個lattice節點中只保持最好的LSTM狀態,因為大量的狀態計算代價還高,並不能有效提高識別結果.每一個lattice弧中線性插入LSTM語言模型分佈,權重為0.5: