亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

基于前向神經(jīng)網(wǎng)絡(luò)語言模型的漢語語音關(guān)鍵詞檢索方法與流程

文檔序號:12612756閱讀:308來源:國知局
本發(fā)明屬于語音識別領(lǐng)域,具體地說,涉及基于前向神經(jīng)網(wǎng)絡(luò)語言模型的漢語語音關(guān)鍵詞檢索方法。
背景技術(shù)
:在語音關(guān)鍵詞檢索系統(tǒng)中,最為常用的語言模型是N元文法語言模型。但是,即便在N為較小的值,如3或4時,N元文法語言模型也面臨著嚴(yán)重的數(shù)據(jù)稀疏的問題。因此,很多平滑算法用于緩解這一問題。然而,該模型對未出現(xiàn)在訓(xùn)練集中的數(shù)據(jù)的估計依舊與訓(xùn)練充分的數(shù)據(jù)有較大差距,從而導(dǎo)致這些非常見詞及其周圍的常見詞無法被正確識別,進(jìn)而影響了關(guān)鍵詞檢索的性能。前向神經(jīng)網(wǎng)絡(luò)語言模型(FeedForwardNeuralnetworklanguagemodel,FFNNLM)通過將詞典中的每個詞映射到連續(xù)空間中,因此可以對未出現(xiàn)在訓(xùn)練集中的數(shù)據(jù)提供更好的預(yù)測概率。但由于其計算復(fù)雜度很高,往往用于識別的后處理模塊。前向神經(jīng)網(wǎng)絡(luò)語言模型的計算復(fù)雜度大部分集中于輸出層,這是因為在建模過程中,在輸出層需要通過對每個節(jié)點計算以做概率規(guī)整,而其大小為識別詞典的大小,往往在104數(shù)量級;而隱藏層大小一般要小一到兩個數(shù)量級。因此,輸出層的計算量占據(jù)了計算量中的大部分。但是,由于在后處理時搜索空間已經(jīng)被限制,所以使用前向神經(jīng)網(wǎng)絡(luò)語言模型重估的效果是次優(yōu)的。近年來,若干降低輸出層計算復(fù)雜度的方法被提出,主要有:(1)調(diào)整輸出層結(jié)構(gòu)以降低計算復(fù)雜度,如采用shortlist形式或?qū)⑤敵鰧颖硎緸闃涞男问剑?2)通過基于熵的剪枝算法將前向神經(jīng)網(wǎng)絡(luò)語言模型轉(zhuǎn)為N元文法語言模型;(3)修改訓(xùn)練算法以估計規(guī)整因子,在預(yù)測時將該值固定為常數(shù),如采用方差正則化(varianceregularization)或noise-contrastiveestimation(NCE)準(zhǔn)則。然而,上述方法均存在一定的不足。采用shortlist的形式,即只在輸出層保留在訓(xùn)練集中最高頻的若干詞匯,其他詞使用N元文法的語言模型估計,這種做法雖然在一定程度上降低了輸出層的計算復(fù)雜度,但損害了模型的泛化性;而將輸出層表示為樹的方法的性能很大程度上依賴于樹的構(gòu)造。將FFNNLM轉(zhuǎn)為N元文法模型雖然可以近似的在一遍解碼過程中使用FFNNLM,但在轉(zhuǎn)換過程中也會有一定的性能損失。使用方差正則化的訓(xùn)練準(zhǔn)則降低了模型預(yù)測時的計算復(fù)雜度,但相比于NCE 準(zhǔn)則,在訓(xùn)練過程中并無法加速FFNNLM的訓(xùn)練速度。技術(shù)實現(xiàn)要素:本發(fā)明的目的在于克服目前降低輸出層計算復(fù)雜度的方法存在的上述缺陷,通過修改前向神經(jīng)網(wǎng)絡(luò)語言模型的訓(xùn)練準(zhǔn)則,在訓(xùn)練和預(yù)測過程中避免對輸出層做概率規(guī)整,從而降低前向神經(jīng)網(wǎng)絡(luò)語言模型的計算復(fù)雜度,使其應(yīng)用于一遍解碼,進(jìn)而提升語音關(guān)鍵詞的檢索性能。為了實現(xiàn)上述目的,本發(fā)明提供了基于前向神經(jīng)網(wǎng)絡(luò)語言模型的漢語語音關(guān)鍵詞檢索方法,所述方法包括:步驟1)將包含歷史詞的輸入樣本和目標(biāo)詞輸入前向神經(jīng)網(wǎng)絡(luò)模型,對于每個目標(biāo)詞wi,加入概率分布為q(wi)的若干個噪聲詞,并將最后一個隱藏層的激活輸出傳至目標(biāo)詞和這些噪聲詞所在節(jié)點處,由此根據(jù)訓(xùn)練的目標(biāo)函數(shù)計算各層之間的轉(zhuǎn)換矩陣;計算輸出層的輸出與目標(biāo)詞的誤差,將誤差通過網(wǎng)絡(luò)回傳,更新各轉(zhuǎn)換矩陣,直至前向神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練完畢;步驟2)利用步驟1)得到的前向神經(jīng)網(wǎng)絡(luò)模型計算輸入詞歷史的目標(biāo)詞概率;步驟3)將前向神經(jīng)網(wǎng)絡(luò)語言模型計算得到的目標(biāo)詞概率用于解碼器中,通過解碼器對語音解碼得到多候選識別結(jié)果的詞圖,再將詞圖轉(zhuǎn)為混淆網(wǎng)絡(luò)并生成逆序索引;在檢索階段,根據(jù)關(guān)鍵詞列表在逆序索引中檢索關(guān)鍵詞,返回命中關(guān)鍵詞及其出現(xiàn)的時間。上述技術(shù)方案中,所述步驟1)具體包括:步驟101)輸入N個訓(xùn)練樣本時,同時輸入一個基于訓(xùn)練樣本的目標(biāo)詞統(tǒng)計得到的一元概率;所述訓(xùn)練樣本包括輸入樣本和目標(biāo)詞;其中N個輸入樣本為:ui(1≤i≤N),每個ui由n-1個詞歷史vij(1≤j≤n-1)組成,ui=(vi1,vi2,…vi,n-1);表示形式采用“N中選一”的編碼模式;所述目標(biāo)詞為wi(1≤i≤N);步驟102)將輸入層的輸入樣本通過映射層矩陣映射到連續(xù)空間,串接在一起后作為第一個隱藏層的輸入;然后將詞向量繼續(xù)向前傳播,直至最后一個隱藏層;步驟103)根據(jù)NCE準(zhǔn)則,將步驟101)的一元概率生成若干噪聲詞;并將最后一個隱藏層的激活輸出傳至目標(biāo)詞和這些噪聲詞所在節(jié)點處,根據(jù)訓(xùn)練的目標(biāo)函數(shù)計算各層之間的轉(zhuǎn)換矩陣;步驟104)計算輸出層的輸出與目標(biāo)詞的誤差,將誤差通過網(wǎng)絡(luò)回傳,更新各轉(zhuǎn) 換矩陣,直至神經(jīng)網(wǎng)絡(luò)訓(xùn)練完畢。上述技術(shù)方案中,所述步驟103)的具體實現(xiàn)過程為:對于每個目標(biāo)詞wi,加入概率分布為q(wi)的k個噪聲樣本wij,q(wi)采用Unigram的概率;引入變量C,那么一個詞是由神經(jīng)網(wǎng)絡(luò)預(yù)測得到(C=1),還是由噪聲樣本得到(C=0),其概率如下式所示:其中:其中,D′是最后一個隱藏層到輸出層的變換矩陣,b是偏置向量,Z(u)為規(guī)整因子,Z(u)在訓(xùn)練和預(yù)測過程中均設(shè)為1;訓(xùn)練的目標(biāo)函數(shù)J定義為最大化logP(C|w,u)的期望,即:通過求最大化的J,求得各層之間的轉(zhuǎn)換矩陣。上述技術(shù)方案中,所述步驟2)具體包括:步驟201)將包含n-1個詞歷史v0j(1≤j≤n-1)的向量u0輸入上述訓(xùn)練完成的前向神經(jīng)網(wǎng)絡(luò)模型中;步驟202)計算映射層上的不同詞歷史傳至第一個隱藏層時的結(jié)果:CjDv0j(1≤j≤n-1),D為映射層的矩陣;保存計算結(jié)果;步驟203)根據(jù)不同的詞歷史v0j,在內(nèi)存中查找上述已經(jīng)計算好的詞向量CjDv0j,經(jīng)過若干個隱藏層傳至輸出層;步驟204)在輸出層計算目標(biāo)詞的概率:P(w|u0)=p(w|u0)=exp(D'h2+b)(8)。本發(fā)明的優(yōu)點在于:1、本發(fā)明的方法通過在神經(jīng)網(wǎng)絡(luò)的訓(xùn)練過程中引入噪聲分布以避免對輸出層每個節(jié)點進(jìn)行處理;同時在訓(xùn)練和預(yù)測過程中,將規(guī)整因子置為常數(shù),從而提高了訓(xùn)練和預(yù)測的速度,也使得將之應(yīng)用于一遍解碼成為了可能;2、運(yùn)用本發(fā)明的方法訓(xùn)練的前向神經(jīng)網(wǎng)絡(luò)語言模型,可為后續(xù)的解碼提供質(zhì)量更好的詞圖,從而提升語音關(guān)鍵詞檢索的性能。附圖說明圖1為本發(fā)明的基于前向神經(jīng)網(wǎng)絡(luò)語言模型的漢語語音關(guān)鍵詞檢索方法的流程圖;圖2為本發(fā)明的前向神經(jīng)網(wǎng)絡(luò)語言模型的拓?fù)浣Y(jié)構(gòu)圖。具體實施方式下面結(jié)合附圖和具體實施例對本發(fā)明作進(jìn)一步地描述。如圖1所示,基于前向神經(jīng)網(wǎng)絡(luò)語言模型的漢語語音關(guān)鍵詞檢索方法,所述方法包括:步驟1)利用訓(xùn)練樣本采用NCE準(zhǔn)則對前向神經(jīng)網(wǎng)絡(luò)語言模型進(jìn)行訓(xùn)練;具體包括:步驟101)輸入N個訓(xùn)練樣本時,同時輸入一個基于訓(xùn)練樣本的目標(biāo)詞統(tǒng)計得到的一元概率;如圖2所示,本實施例的前向神經(jīng)網(wǎng)絡(luò)語言模型包括輸入層、映射層,兩層隱藏層和輸出層;所述訓(xùn)練樣本包括輸入樣本和目標(biāo)詞;其中N個輸入樣本為:ui(1≤i≤N),每個ui由n-1個詞歷史vij(1≤j≤n-1)組成,ui=(vi1,vi2,…vi,n-1);表示形式采用“N中選一”的編碼模式;所述目標(biāo)詞為wi(1≤i≤N)。步驟102)將輸入層的輸入數(shù)據(jù)通過映射層矩陣映射到連續(xù)空間,串接在一起后作為第一個隱藏層的輸入;然后將詞向量繼續(xù)向前傳播,直至第二個隱藏層;在前向傳輸過程中,每個訓(xùn)練樣本ui的詞歷史通過映射層矩陣(其中,|v|為詞典的個數(shù),d為第一個映射層的節(jié)點個數(shù))映射到連續(xù)空間,串接在一起后作為第一個隱藏層的輸入,第一個隱藏層的輸出h1計算如下式所示:其中(l為第一個隱層的節(jié)點個數(shù))是位置相關(guān)的由映射層到隱藏層的 變換矩陣,Dvij可以通過查表得到,激活函數(shù)采用rectifiedlinearunits,計算如下式所示:φ(x)=max(0,x)(2)第二個隱藏層的輸出計算如下:h2=φ(Mh1)(3)其中(m為第二個隱層的節(jié)點個數(shù))為連接兩個隱藏層的變換矩陣。步驟103)根據(jù)NCE準(zhǔn)則,將步驟101)的一元概率生成若干噪聲詞;并將第二個隱藏層的激活輸出傳至目標(biāo)詞和這些噪聲詞所在節(jié)點處,根據(jù)訓(xùn)練的目標(biāo)函數(shù)計算各層之間的轉(zhuǎn)換矩陣;NCE(noise-contrastiveestimation)訓(xùn)練準(zhǔn)則假設(shè):對于每個目標(biāo)詞wi,加入概率分布為q(wi)的k個噪聲樣本wij,q(wi)采用Unigram的概率;引入變量C,那么一個詞是由神經(jīng)網(wǎng)絡(luò)預(yù)測得到(C=1),還是由噪聲樣本得到(C=0),其概率如下式所示:其中:其中,是由第二個隱藏層到輸出層的變換矩陣,b是偏置向量,Z(u)為規(guī)整因子,Z(u)在訓(xùn)練和預(yù)測過程中均設(shè)為1;訓(xùn)練的目標(biāo)函數(shù)J定義為最大化logP(C|w,u)的期望,即:通過求最大化的J,求得各層之間的轉(zhuǎn)換矩陣。NCE訓(xùn)練準(zhǔn)則通過引入噪聲分布來避免計算(6)中的規(guī)整因子Z(u);這樣在訓(xùn) 練過程均可以帶來倍的提速。步驟104)計算輸出層的輸出與目標(biāo)詞的誤差,將誤差通過網(wǎng)絡(luò)回傳,更新各轉(zhuǎn)換矩陣,直至神經(jīng)網(wǎng)絡(luò)訓(xùn)練完畢。步驟2)利用步驟1)得到的前向神經(jīng)網(wǎng)絡(luò)模型對語音關(guān)鍵詞進(jìn)行檢索;具體包括:步驟202)計算映射層上的不同詞歷史傳至第一個隱藏層時的結(jié)果:CjDv0j(1≤j≤n-1),D為映射層的矩陣;保存計算結(jié)果;步驟203)根據(jù)不同的詞歷史v0j,在內(nèi)存中查找上述已經(jīng)計算好的詞向量CjDv0j,經(jīng)過若干個隱藏層傳至輸出層;步驟204)在輸出層計算目標(biāo)詞的概率:P(w|u0)=p(w|u0)=exp(D'h2+b)(8)如果采用傳統(tǒng)的計算公式(6),對每個預(yù)測詞來說,模型的計算復(fù)雜度為:o(n-1)×d×l×m+m×|v|。而通過公式(8)可以將計算復(fù)雜度降低到:o(d×m+m)。步驟3)將前向神經(jīng)網(wǎng)絡(luò)語言模型計算得到的目標(biāo)詞概率用于解碼器中,通過解碼器對語音解碼得到多候選識別結(jié)果的詞圖,再將詞圖轉(zhuǎn)為混淆網(wǎng)絡(luò)并生成逆序索引;在檢索階段,根據(jù)關(guān)鍵詞列表在逆序索引中檢索關(guān)鍵詞,返回命中關(guān)鍵詞及其出現(xiàn)的時間。下面結(jié)合實施例分析本發(fā)明的方法的性能。本發(fā)明實驗數(shù)據(jù)為真實的漢語電話交談的錄音,測試集時長共5小時。在測試集中一共選擇了141個關(guān)鍵詞,其中100個集內(nèi)詞,共出現(xiàn)697次;集外詞共41個,共出現(xiàn)268次。測試語音為采樣率8000HZ、單聲道、16bit的語音數(shù)據(jù)。實驗中前向神經(jīng)網(wǎng)絡(luò)語言模型的映射層和兩個隱藏層的規(guī)模均為256,輸出層為全詞典大小,共43514個節(jié)點;基于NCE準(zhǔn)則訓(xùn)練的神經(jīng)網(wǎng)絡(luò)的噪聲采樣個數(shù)為100。語言模型的訓(xùn)練集為電話交談領(lǐng)域的語料,共有1020萬個詞。基線系統(tǒng)的語言模型采用基于modifiedKneser-Ney折扣平滑算法的三元文法。測試結(jié)果見表1:表1可以看出,通過將神經(jīng)網(wǎng)絡(luò)應(yīng)用于一遍解碼中,可以更好地將神經(jīng)網(wǎng)絡(luò)的優(yōu)勢發(fā)揮出來,相比于用于重估,ATWV指標(biāo)在集內(nèi)詞和集外詞均有2%的絕對提升;F1值在集外詞上提升更為明顯,絕對提升3.39%。這說明,通過在一遍解碼中引入神經(jīng)網(wǎng)絡(luò)語言模型,不僅可以提高高精度區(qū)域的檢索性能,同時也提升了整個系統(tǒng)的召回率,這為后續(xù)采用更為復(fù)雜的置信度估計算法提升系統(tǒng)性能提供了可能。而將神經(jīng)網(wǎng)絡(luò)用于重估階段,相對于只使用三元文法,在ATWV指標(biāo)上集外詞的檢索性能有所提升,在集內(nèi)詞上并無明顯改善;而F1值上使用神經(jīng)網(wǎng)絡(luò)語言模型對檢索性能幾乎沒有影響。這是因為經(jīng)過基于三元文法語言模型解碼產(chǎn)生的詞圖已經(jīng)限制了搜索范圍,神經(jīng)網(wǎng)絡(luò)語言模型對集外詞的語言模型概率起到了平滑作用,但在集內(nèi)詞上與三元文法語言模型的效果相當(dāng)。此外,實驗還比較了基于交叉熵準(zhǔn)則和基于NCE準(zhǔn)則的訓(xùn)練和預(yù)測的速度,如表2和表3所示:表2訓(xùn)練準(zhǔn)則訓(xùn)練時間/迭代交叉熵16.315小時NCE1.205小時可以看到,通過使用基于NCE準(zhǔn)則訓(xùn)練的神經(jīng)網(wǎng)絡(luò)語言模型,其訓(xùn)練速度是傳統(tǒng)的基于交叉熵準(zhǔn)則模型的10倍以上。在上面的實驗中已經(jīng)證明,基于這兩種準(zhǔn)則訓(xùn)練的模型性能相當(dāng),因此使用NCE準(zhǔn)則訓(xùn)練的模型可以在保證性能不下降的同時達(dá)到速度的顯著提升;表3為預(yù)測過程中的處理速度:表3模型每秒處理詞數(shù)基于交叉熵準(zhǔn)則的前向神經(jīng)網(wǎng)絡(luò)語言模型0.04×103基于NCE準(zhǔn)則的前向神經(jīng)網(wǎng)絡(luò)語言模型5.44×103+提前計算輸入詞向量與隱藏層的乘積14.678×103可以看到,使用NCE準(zhǔn)則訓(xùn)練的神經(jīng)網(wǎng)絡(luò)語言模型后,在計算語言模型概率時可以加速100倍以上;而在提前計算輸入詞向量與隱藏層乘積后,又可以獲得將近3倍的速度提升。當(dāng)前第1頁1 2 3 
當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1