本發(fā)明涉及的是一種語(yǔ)音輸入領(lǐng)域的技術(shù),具體是一種基于語(yǔ)義槽內(nèi)部結(jié)構(gòu)的可遷移口語(yǔ)語(yǔ)義解析系統(tǒng)及其實(shí)現(xiàn)方法。
背景技術(shù):
近年來(lái)隨著移動(dòng)互聯(lián)網(wǎng)技術(shù)的發(fā)展和語(yǔ)音識(shí)別技術(shù)的巨大進(jìn)步,比如微軟研究院在特定數(shù)據(jù)集上取得了和專業(yè)人士媲美的語(yǔ)音識(shí)別準(zhǔn)確率,人機(jī)口語(yǔ)交互的需求變得越來(lái)越大??谡Z(yǔ)語(yǔ)義理解作為緊接語(yǔ)音識(shí)別之后的一環(huán),起到了幫助機(jī)器理解用戶意圖的關(guān)鍵性作用。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明針對(duì)現(xiàn)有技術(shù)依賴于大量人工編寫的規(guī)則和標(biāo)注數(shù)據(jù),容易產(chǎn)生沖突且難以維護(hù)、不同對(duì)話領(lǐng)域之間的數(shù)據(jù)往往因?yàn)檎Z(yǔ)義槽的定義不一致而不可復(fù)用、對(duì)于領(lǐng)域遷移的解析能力不強(qiáng)等缺陷,提出一種基于語(yǔ)義槽內(nèi)部結(jié)構(gòu)的可遷移口語(yǔ)語(yǔ)義解析系統(tǒng)及其實(shí)現(xiàn)方法,通過(guò)合理地表示語(yǔ)義槽之間的關(guān)系的語(yǔ)義槽結(jié)構(gòu),結(jié)合雙向循環(huán)神經(jīng)網(wǎng)絡(luò)模型,對(duì)語(yǔ)義槽結(jié)構(gòu)進(jìn)行建模,能夠支持領(lǐng)域遷移的口語(yǔ)語(yǔ)義理解。
本發(fā)明是通過(guò)以下技術(shù)方案實(shí)現(xiàn)的:
本發(fā)明涉及一種基于語(yǔ)義槽內(nèi)部結(jié)構(gòu)的可遷移口語(yǔ)語(yǔ)義解析系統(tǒng),包括:含有循環(huán)神經(jīng)網(wǎng)絡(luò)的源領(lǐng)域模型訓(xùn)練模塊、含有基于原子概念序列的模型的目標(biāo)領(lǐng)域遷移學(xué)習(xí)模塊以及解析模塊,其中:源領(lǐng)域模型訓(xùn)練模塊采集源領(lǐng)域數(shù)據(jù)并根據(jù)源領(lǐng)域的原子概念序列定義將訓(xùn)練得到的源領(lǐng)域的語(yǔ)義理解模型輸出至目標(biāo)領(lǐng)域遷移學(xué)習(xí)模塊,目標(biāo)領(lǐng)域遷移學(xué)習(xí)模塊根據(jù)目標(biāo)領(lǐng)域的樣本數(shù)據(jù)和原子概念序列定義進(jìn)行二次訓(xùn)練并采用單領(lǐng)域或多領(lǐng)域方式對(duì)所得到目標(biāo)領(lǐng)域的口語(yǔ)語(yǔ)義理解模型進(jìn)行遷移學(xué)習(xí)的優(yōu)化;解析模塊根據(jù)優(yōu)化后的口語(yǔ)語(yǔ)義理解模型解析用戶的語(yǔ)句輸入并得到語(yǔ)義結(jié)果。
本發(fā)明涉及上述系統(tǒng)的實(shí)現(xiàn)方法,包括:
步驟1)利用循環(huán)神經(jīng)網(wǎng)絡(luò)對(duì)輸入句子進(jìn)行序列標(biāo)注;
步驟2)將語(yǔ)義槽表示為原子概念序列;
步驟3)通過(guò)基于原子概念序列的語(yǔ)義槽表達(dá)對(duì)口語(yǔ)語(yǔ)義理解進(jìn)行建模,得到面向細(xì)顆粒度語(yǔ)義表達(dá)的目標(biāo)領(lǐng)域的口語(yǔ)語(yǔ)義理解模型,并采用該模型對(duì)口語(yǔ)語(yǔ)義進(jìn)行解析;
所述的基于原子概念序列的模型包括:原子概念獨(dú)立式與非獨(dú)立式,其中:原子概念獨(dú)立式模型中序列中層級(jí)之間是相互獨(dú)立的,原子概念非獨(dú)立式模型中序列中相鄰的層級(jí)之間是順序依賴的(即上一層級(jí)的原子概念依賴于下一層級(jí)的原子概念的預(yù)測(cè)結(jié)果)。
步驟4)采用單領(lǐng)域或多領(lǐng)域方式進(jìn)行遷移學(xué)習(xí),即在步驟3的建?;A(chǔ)上,通過(guò)組織足量源領(lǐng)域數(shù)據(jù)和少量目標(biāo)領(lǐng)域數(shù)據(jù)進(jìn)行模型的參數(shù)學(xué)習(xí),使得目標(biāo)領(lǐng)域在只有少量數(shù)據(jù)的情況下也能得到不錯(cuò)的語(yǔ)義理解性能。
技術(shù)效果
與現(xiàn)有技術(shù)相比,本發(fā)明在面對(duì)未標(biāo)注領(lǐng)域時(shí)采用原子概念建模,可以讓不同語(yǔ)義槽共享有交集的原子概念,并且本發(fā)明采用領(lǐng)域遷移的學(xué)習(xí)策略,可以利用已有領(lǐng)域(源領(lǐng)域)的數(shù)據(jù)輔助目標(biāo)領(lǐng)域的模型訓(xùn)練,從而顯著降低人工編寫的勞動(dòng)量。
附圖說(shuō)明
圖1a為傳統(tǒng)建模方式,即把語(yǔ)義槽當(dāng)做一個(gè)單獨(dú)的類別以及圖1b為基于原子概念的建模方式,即獨(dú)立建模示意圖;
圖2為基于原子概念的建模方式示意圖;
圖3為系統(tǒng)模塊圖。
具體實(shí)施方式
如圖3所示,本實(shí)施例涉及的基于語(yǔ)義槽內(nèi)部結(jié)構(gòu)的可遷移口語(yǔ)語(yǔ)義解析系統(tǒng),包括:含有循環(huán)神經(jīng)網(wǎng)絡(luò)的源領(lǐng)域模型訓(xùn)練模塊、含有基于原子概念序列的模型的目標(biāo)領(lǐng)域遷移學(xué)習(xí)模塊以及解析模塊,其中:源領(lǐng)域模型訓(xùn)練模塊采集源領(lǐng)域數(shù)據(jù)并根據(jù)源領(lǐng)域的原子概念序列定義將訓(xùn)練得到的源領(lǐng)域的語(yǔ)義理解模型輸出至目標(biāo)領(lǐng)域遷移學(xué)習(xí)模塊,目標(biāo)領(lǐng)域遷移學(xué)習(xí)模塊根據(jù)目標(biāo)領(lǐng)域的少量的樣本數(shù)據(jù)和原子概念序列定義進(jìn)行二次訓(xùn)練并采用單領(lǐng)域或多領(lǐng)域方式對(duì)所得到目標(biāo)領(lǐng)域的口語(yǔ)語(yǔ)義理解模型進(jìn)行遷移學(xué)習(xí)的優(yōu)化;解析模塊根據(jù)優(yōu)化后的口語(yǔ)語(yǔ)義理解模型解析用戶的語(yǔ)句輸入并得到語(yǔ)義結(jié)果。
所述的循環(huán)神經(jīng)網(wǎng)絡(luò)包括:
①循環(huán)網(wǎng)絡(luò)(rnn):ht=f(uxt+wht-1),其中:f為非線性激活函數(shù),比如sigmoid、tanh或者relu等;xt是t時(shí)刻的輸入(詞),u是輸入層的權(quán)重矩陣,ht-1和ht分別是t-1時(shí)刻和t時(shí)刻的隱層向量,w是循環(huán)層矩陣。
②長(zhǎng)短時(shí)記憶單元(lstm):it=σ(wi·[ht-1,xt]+bi),ft=σ(wf·[ht-1,xt]+bf),ot=σ(wo·[ht-1,xt]+bo),ct=ft*ct-1+it*tanh(wc·[ht-1,xt]+bc),ht=ot*tanh(ct),其中:σ為sigmoid函數(shù),wi、wf、wo、wc均為輸入層矩陣,it是輸入門控向量,ft是遺忘門控向量,ot是輸出門控向量,ct是記憶單元向量,bi、bf、bo、bc均為偏移項(xiàng)。
③門控單元(gru):rt=σ(wr·[ht-1,xt]),zt=σ(wz·[ht-1,xt]),
上述系統(tǒng)具體通過(guò)以下方式實(shí)現(xiàn)可遷移口語(yǔ)語(yǔ)義解析:
步驟1)利用循環(huán)神經(jīng)網(wǎng)絡(luò)進(jìn)行序列標(biāo)注。
步驟2)將語(yǔ)義槽表示為原子概念序列,具體步驟如下:
2.1)構(gòu)建原子概念集合c={c1,c2,…,cv},其中:v是原子概念的數(shù)量。
所述的原子概念為不可再分的最小語(yǔ)義單元,常見(jiàn)的語(yǔ)義單元有“城市”、“日期”、“時(shí)間”、“姓名”、“歌曲名”等。
2.2)針對(duì)某個(gè)對(duì)話領(lǐng)域,使用原子概念序列表示其語(yǔ)義槽,具體為:
i)對(duì)語(yǔ)義槽si劃分成原子概念,如果出現(xiàn)了c中沒(méi)有的新的原子概念,則將其添加到c中。
ii)將語(yǔ)義槽si重新定義為原子概念序列[ci,1,ci,2,…,ci,m],其中:m是該序列的長(zhǎng)度,ci,m表示語(yǔ)義槽si的第m個(gè)原子概念,1≤m≤m。
iii)當(dāng)語(yǔ)義槽si的實(shí)質(zhì)的原子概念個(gè)數(shù)不足m個(gè),將補(bǔ)上空的原子概念null。
所述的原子概念序列滿足:
a)序列上不同維度的原子概念不會(huì)有交集;
b)原子概念序列的排序準(zhǔn)則是越不依賴于上下文的概念越排在前面。
比如:對(duì)于語(yǔ)義槽“出生日期”的原子概念,“日期”應(yīng)該排在“出生”前面,因?yàn)椤俺錾币蕾囉谌掌谝酝獾膭?dòng)詞(如“生于”、“誕生在”)。
步驟3)通過(guò)基于原子概念序列的語(yǔ)義槽表達(dá)對(duì)口語(yǔ)語(yǔ)義理解進(jìn)行建模,得到面向細(xì)顆粒度語(yǔ)義表達(dá)的口語(yǔ)語(yǔ)義理解模型,并采用該模型對(duì)口語(yǔ)語(yǔ)義進(jìn)行解析,具體包括:
3.1)當(dāng)原子概念序列中不同維度相互獨(dú)立時(shí):將序列中每一個(gè)維度的原子概念預(yù)測(cè)作為一個(gè)獨(dú)立的預(yù)測(cè)任務(wù),序列長(zhǎng)度為m,就有m個(gè)任務(wù);不同任務(wù)之間共享雙向循環(huán)神經(jīng)網(wǎng)絡(luò)的輸入層和隱含層參數(shù),而分別有一個(gè)任務(wù)專屬的輸入層。
3.2)當(dāng)原子概念序列中不同維度相互不獨(dú)立時(shí):將序列中每一個(gè)維度的原子概念預(yù)測(cè)看成一個(gè)對(duì)前一維度的原子概念有依賴的預(yù)測(cè)任務(wù)。
本實(shí)施例中對(duì)m個(gè)任務(wù)設(shè)計(jì)m個(gè)雙向循環(huán)神經(jīng)網(wǎng)絡(luò)模型,處于第m維度的模型的輸入除了包括用戶輸入句子,還有地m-1維度的原子概念的預(yù)測(cè)結(jié)果(m>1)。
步驟4)采用單領(lǐng)域或多領(lǐng)域方式進(jìn)行遷移學(xué)習(xí),其中:
所述的單領(lǐng)域遷移學(xué)習(xí)是指:
4.1)根據(jù)源領(lǐng)域的語(yǔ)義槽定義,構(gòu)建基于原子概念的語(yǔ)義解析模型model_org;
4.2)使用源領(lǐng)域的數(shù)據(jù)更新該model_org模型的參數(shù),如:模型輸入的詞向量矩陣、循環(huán)神經(jīng)網(wǎng)絡(luò)權(quán)值矩陣以及輸出層的權(quán)值矩陣。
4.3)根據(jù)目標(biāo)領(lǐng)域的語(yǔ)義槽定義,對(duì)model_org上的原子概念進(jìn)行增加和刪除操作(具體為增加和刪除相應(yīng)原子概念對(duì)應(yīng)的輸入、輸出層權(quán)值向量),得到目標(biāo)領(lǐng)域模型的結(jié)構(gòu)和初始參數(shù),如:自適應(yīng)調(diào)整后的輸入詞向量矩陣和輸出層權(quán)值矩陣。
4.4)使用目標(biāo)領(lǐng)域的少量的樣本數(shù)據(jù)更新步驟4.3)中調(diào)整后的模型的參數(shù),如:模型輸入的詞向量矩陣、循環(huán)神經(jīng)網(wǎng)絡(luò)權(quán)值矩陣以及輸出層的權(quán)值矩陣。
所述的多領(lǐng)域遷移學(xué)習(xí)是指:
4.a)根據(jù)源領(lǐng)域和目標(biāo)領(lǐng)域的語(yǔ)義槽定義,構(gòu)建基于原子概念的語(yǔ)義解析模型model_comb;
4.b)使用源領(lǐng)域的數(shù)據(jù)和目標(biāo)領(lǐng)域的樣本數(shù)據(jù)隨機(jī)打亂,得到混合訓(xùn)練數(shù)據(jù);
4.c)使用混合訓(xùn)練數(shù)據(jù)更新模型model_comb的參數(shù),如:模型輸入的詞向量矩陣、循環(huán)神經(jīng)網(wǎng)絡(luò)權(quán)值矩陣以及輸出層的權(quán)值矩陣。
在實(shí)際生產(chǎn)中,如果有多個(gè)目標(biāo)領(lǐng)域,備選方案需要將源領(lǐng)域數(shù)據(jù)利用多遍進(jìn)行訓(xùn)練,非常耗時(shí),而首選方案只需要使用一次源領(lǐng)域數(shù)據(jù),可以節(jié)省目標(biāo)領(lǐng)域的遷移學(xué)習(xí)的時(shí)間。
實(shí)驗(yàn)原始數(shù)據(jù):dstc2&3(http://camdial.org/~mh521/dstc/)。dstc2為源領(lǐng)域(2118個(gè)對(duì)話的數(shù)據(jù)),dstc3為目標(biāo)領(lǐng)域(11個(gè)對(duì)話的種子數(shù)據(jù),1688句話的測(cè)試數(shù)據(jù))。
循環(huán)神經(jīng)網(wǎng)絡(luò)的參數(shù)設(shè)置:輸入詞向量維度100維,隱層向量維度100維,參數(shù)更新方式為隨機(jī)梯度下降算法,最大迭代輪次為100輪。
性能指標(biāo):語(yǔ)義槽預(yù)測(cè)的調(diào)和平均值(f-score),
實(shí)驗(yàn)結(jié)果數(shù)據(jù):
從實(shí)驗(yàn)結(jié)果數(shù)據(jù)可以看出,傳統(tǒng)的基于語(yǔ)義槽建模的語(yǔ)義理解模型性能遠(yuǎn)不如基于原子概念建模型的語(yǔ)義理解模型。無(wú)論是在只是用少量目標(biāo)領(lǐng)域種子數(shù)據(jù)的情況還是同時(shí)使用了大量源領(lǐng)域數(shù)據(jù)的情況下,本發(fā)明提出的原子概念序列及其模型在領(lǐng)域遷移任務(wù)上都取得了更好性能。同時(shí),本發(fā)明內(nèi)部的非獨(dú)立式原子概念序列建模優(yōu)于獨(dú)立式的建模,體現(xiàn)了原子概念的層級(jí)依賴關(guān)系是實(shí)際存在的,也反應(yīng)了本發(fā)明的上升空間還很大。
上述具體實(shí)施可由本領(lǐng)域技術(shù)人員在不背離本發(fā)明原理和宗旨的前提下以不同的方式對(duì)其進(jìn)行局部調(diào)整,本發(fā)明的保護(hù)范圍以權(quán)利要求書為準(zhǔn)且不由上述具體實(shí)施所限,在其范圍內(nèi)的各個(gè)實(shí)現(xiàn)方案均受本發(fā)明之約束。