本發(fā)明涉及對(duì)話控制領(lǐng)域,尤其是涉及了一種基于混合編碼網(wǎng)絡(luò)的端到端對(duì)話控制方法。
背景技術(shù):
隨著現(xiàn)代語音識(shí)別技術(shù)和對(duì)話控制系統(tǒng)的發(fā)展,采用問答形式的自然語言對(duì)話系統(tǒng)是當(dāng)前對(duì)話系統(tǒng)領(lǐng)域的研究熱點(diǎn),其包括了自然語言理解、對(duì)話管理、信息抽取和自然語言生成等技術(shù)。對(duì)話控制可以應(yīng)用在公眾場(chǎng)合,如機(jī)場(chǎng)、車站、銀行等的信息查詢系統(tǒng),移動(dòng)信息查詢終端,在線應(yīng)答服務(wù)等。目前,許多網(wǎng)站都提供了在線應(yīng)答服務(wù),但其系統(tǒng)需要較多訓(xùn)練數(shù)據(jù),學(xué)習(xí)復(fù)雜性高,準(zhǔn)確性卻較低。
本發(fā)明提出了一種基于混合編碼網(wǎng)絡(luò)的端到端對(duì)話控制方法,先將用戶話語作為文本形成詞袋矢量,通過實(shí)體抽取、實(shí)體跟蹤將特征分量級(jí)聯(lián)成特征向量,再將載體遞給rnn計(jì)算隱藏狀態(tài),傳遞到softmax激活的密集層,標(biāo)準(zhǔn)化后選擇動(dòng)作模板并傳遞到實(shí)體輸出,在實(shí)體中替換并完全形成動(dòng)作,若動(dòng)作是文本,則呈現(xiàn)給用戶,并循環(huán)重復(fù)。本發(fā)明中hcn以相當(dāng)少的訓(xùn)練數(shù)據(jù)實(shí)現(xiàn)相同的性能,同時(shí)保持端到端可訓(xùn)練性,降低了學(xué)習(xí)的復(fù)雜性,提高了準(zhǔn)確性;節(jié)省人力資源,提高工作效率。
技術(shù)實(shí)現(xiàn)要素:
針對(duì)需要較多訓(xùn)練數(shù)據(jù),學(xué)習(xí)復(fù)雜性高等問題,本發(fā)明的目的在于提供一種基于混合編碼網(wǎng)絡(luò)的端到端對(duì)話控制方法,先將用戶話語作為文本形成詞袋矢量,通過實(shí)體抽取、實(shí)體跟蹤將特征分量級(jí)聯(lián)成特征向量,再將載體遞給rnn計(jì)算隱藏狀態(tài),傳遞到softmax激活的密集層,標(biāo)準(zhǔn)化后選擇動(dòng)作模板并傳遞到實(shí)體輸出,在實(shí)體中替換并完全形成動(dòng)作,若動(dòng)作是文本,則呈現(xiàn)給用戶,并循環(huán)重復(fù)。
為解決上述問題,本發(fā)明提供一種基于混合編碼網(wǎng)絡(luò)的端到端對(duì)話控制方法,其主要內(nèi)容包括:
(一)混合編碼網(wǎng)絡(luò)(hcn)模型;
(二)應(yīng)用循環(huán)神經(jīng)網(wǎng)絡(luò)(rnn)學(xué)習(xí)“端到端”模型;
(三)監(jiān)督學(xué)習(xí)評(píng)價(jià);
(四)通過監(jiān)督學(xué)習(xí)或強(qiáng)化學(xué)習(xí)來訓(xùn)練神經(jīng)網(wǎng)絡(luò)。
其中,所述的混合編碼網(wǎng)絡(luò)(hcn)模型,hcn的四個(gè)組件是遞歸神經(jīng)網(wǎng)絡(luò)、特定領(lǐng)域的軟件、特定領(lǐng)域動(dòng)作模板、用于標(biāo)識(shí)文本中的實(shí)體引用的常規(guī)實(shí)體抽取模塊;rnn和開發(fā)者代碼都保持狀態(tài);每個(gè)操作模板可以是文本交際操作或應(yīng)用程序接口(api)調(diào)用。
進(jìn)一步地,所述的hcn模型,當(dāng)用戶提供話語作為文本時(shí),周期開始;形成詞袋矢量;再使用預(yù)建話語嵌入模型形成話語嵌入;接著,實(shí)體抽取模塊標(biāo)識(shí)實(shí)體;然后將文本和實(shí)體提及傳遞給由開發(fā)者提供的實(shí)體跟蹤代碼,將文本映射到數(shù)據(jù)庫(kù)中的特定行;該代碼可以返回動(dòng)作掩碼,指示當(dāng)前時(shí)間步驟允許的動(dòng)作,作為位向量;它還可以可選地返回上下文特征,有助于區(qū)分動(dòng)作的特征;
特征分量級(jí)聯(lián)形成特征向量;該載體被傳遞給rnn,rnn計(jì)算隱藏狀態(tài)(向量),為下一個(gè)時(shí)間步長(zhǎng)保留隱藏狀態(tài),并將其傳遞到softmax激活的密集層,輸出維度等于不同系統(tǒng)動(dòng)作模板的數(shù)量,輸出是動(dòng)作模板分布;接下來,將動(dòng)作掩模應(yīng)用為逐元素乘法,并且將結(jié)果歸一化回概率分布,使非允許的動(dòng)作采用概率零;從所得到的分布選擇動(dòng)作;當(dāng)強(qiáng)化學(xué)習(xí)活動(dòng)時(shí),從分布中采樣動(dòng)作;當(dāng)強(qiáng)化學(xué)習(xí)不活動(dòng)時(shí),選擇最佳動(dòng)作,即選擇具有最高概率的動(dòng)作;
接下來,所選擇的動(dòng)作被傳遞到實(shí)體輸出開發(fā)人員代碼,可以在實(shí)體中替換并產(chǎn)生完全形成的動(dòng)作;如果它是api動(dòng)作,api充當(dāng)傳感器并返回與對(duì)話相關(guān)的特征,因此被添加到下一個(gè)時(shí)間步長(zhǎng)中的特征向量;如果動(dòng)作是文本,則將其呈現(xiàn)給用戶,并且循環(huán)然后重復(fù);在下一時(shí)間步驟中將所采取的動(dòng)作作為特征提供給rnn。
其中,所述的應(yīng)用循環(huán)神經(jīng)網(wǎng)絡(luò)(rnn)來學(xué)習(xí)“端到端”模型,從可觀察的對(duì)話歷史直接映射到輸出字序列;這些系統(tǒng)可以通過添加特殊的“api調(diào)用”動(dòng)作,將數(shù)據(jù)庫(kù)輸出枚舉為標(biāo)記序列,然后使用存儲(chǔ)器網(wǎng)絡(luò)、門控存儲(chǔ)器網(wǎng)絡(luò)、查詢減少網(wǎng)絡(luò)和復(fù)制網(wǎng)絡(luò)來學(xué)習(xí)rnn,從而應(yīng)用于面向任務(wù)的域;在這些架構(gòu)的每一個(gè)中,rnn學(xué)習(xí)操縱實(shí)體值;通過生成標(biāo)記序列(或排列所有可能的表面形式)來產(chǎn)生輸出;hcn還使用rnn累積對(duì)話狀態(tài)并選擇動(dòng)作;hcn使用開發(fā)者提供的動(dòng)作模板,可以包含實(shí)體引用。
其中,所述的監(jiān)督學(xué)習(xí)評(píng)價(jià),應(yīng)用hcn的簡(jiǎn)單域?qū)S密浖葘?duì)實(shí)體提取使用簡(jiǎn)單的字符串匹配,其具有預(yù)定義的實(shí)體名稱列表;其次,在上下文更新中,創(chuàng)建用于跟蹤實(shí)體的簡(jiǎn)單規(guī)則,其中在輸入中識(shí)別的實(shí)體覆蓋現(xiàn)有條目;然后,系統(tǒng)動(dòng)作被模板化;當(dāng)數(shù)據(jù)庫(kù)結(jié)果接收到實(shí)體狀態(tài),按評(píng)級(jí)排序;最后創(chuàng)建編碼常識(shí)依賴性的動(dòng)作掩碼。
進(jìn)一步地,所述的監(jiān)督學(xué)習(xí)評(píng)價(jià),使用特定領(lǐng)域的軟件在訓(xùn)練集上訓(xùn)練hcn,使用優(yōu)化器為循環(huán)層選擇長(zhǎng)短期記憶網(wǎng)絡(luò)(lstm);使用開發(fā)集來調(diào)整隱藏單元的數(shù)量和時(shí)期的數(shù)量;通過使用對(duì)數(shù)據(jù)使用公開可用的300維詞嵌入模型,通過平均詞嵌入形成語言嵌入;在訓(xùn)練中,每個(gè)對(duì)話形成一個(gè)小批次,并且在完全展開(即,通過時(shí)間的非截?cái)嗟姆聪騻鞑?上進(jìn)行更新。
進(jìn)一步地,所述的對(duì)話框數(shù)據(jù)標(biāo)記,用戶通過輸入問題的簡(jiǎn)短描述開始使用對(duì)話系統(tǒng),對(duì)話框數(shù)據(jù)標(biāo)記如下:首先,列舉在數(shù)據(jù)中觀察到的唯一系統(tǒng)動(dòng)作;然后對(duì)每個(gè)對(duì)話框檢查每個(gè)系統(tǒng)操作,并確定它是否是現(xiàn)有系統(tǒng)動(dòng)作之中最合適的動(dòng)作;如果是,保留原樣并繼續(xù)下一個(gè)系統(tǒng)操作;如果不是,將其替換為正確的系統(tǒng)操作,并放棄對(duì)話框的其余部分;結(jié)果數(shù)據(jù)集包含完整和部分對(duì)話框的混合,僅包含正確的系統(tǒng)操作;將這個(gè)集合劃分為訓(xùn)練和測(cè)試對(duì)話框。
進(jìn)一步地,所述的對(duì)話框,從對(duì)話框開始,檢查哪個(gè)方法產(chǎn)生更長(zhǎng)的連續(xù)的正確系統(tǒng)動(dòng)作序列;
其中,c(hcn-win)是基于規(guī)則的方法在hcn之前輸出錯(cuò)誤動(dòng)作的測(cè)試對(duì)話框的數(shù)量;c(rule-win)是測(cè)試對(duì)話框的數(shù)量,其中hcn在基于規(guī)則的方法之前輸出錯(cuò)誤的動(dòng)作;c(all)是測(cè)試集中的對(duì)話數(shù);當(dāng)δp>0時(shí),hcn更經(jīng)常地從對(duì)話開始產(chǎn)生連續(xù)的正確動(dòng)作序列。
其中,所述的通過監(jiān)督學(xué)習(xí)或強(qiáng)化學(xué)習(xí)來訓(xùn)練神經(jīng)網(wǎng)絡(luò),應(yīng)用監(jiān)督學(xué)習(xí)訓(xùn)練lstm模仿系統(tǒng)開發(fā)者提供的對(duì)話;一旦系統(tǒng)大規(guī)模操作,與大量用戶交互,期望系統(tǒng)使用強(qiáng)化學(xué)習(xí)繼續(xù)自主學(xué)習(xí);使用強(qiáng)化學(xué)習(xí),代理在不同情況下探索不同的動(dòng)作序列,并且進(jìn)行調(diào)整以便最大化反饋的預(yù)期折扣和,表示為g;
為了優(yōu)化,選擇策略漸變方法,在基于策略梯度的強(qiáng)化學(xué)習(xí)中,模型π由w參數(shù)化,并輸出在每個(gè)時(shí)間步長(zhǎng)對(duì)動(dòng)作進(jìn)行采樣的分布;在對(duì)話結(jié)束時(shí),計(jì)算該對(duì)話的返回g,并且計(jì)算針對(duì)模型權(quán)重采取的動(dòng)作的概率的梯度;然后通過采用與返回成正比的梯度步長(zhǎng)來調(diào)整權(quán)重:
其中,α是學(xué)習(xí)率;at在時(shí)間步長(zhǎng)t采取的行動(dòng);ht是在時(shí)間t的對(duì)話歷史;g是返回對(duì)話框;
進(jìn)一步地,所述的監(jiān)督學(xué)習(xí)和強(qiáng)化學(xué)習(xí),對(duì)應(yīng)于更新權(quán)重的不同方法,可以應(yīng)用于相同的網(wǎng)絡(luò);但不能保證最優(yōu)強(qiáng)化學(xué)習(xí)策略將與監(jiān)督學(xué)習(xí)訓(xùn)練集合一致;因此,在每個(gè)強(qiáng)化學(xué)習(xí)梯度步驟之后,檢查更新的策略是否重構(gòu)訓(xùn)練集;如果沒有,在訓(xùn)練集上重新運(yùn)行監(jiān)督學(xué)習(xí)梯度步驟,直到模型再現(xiàn)訓(xùn)練集;這種方法允許在強(qiáng)化學(xué)習(xí)優(yōu)化期間的任何時(shí)間添加新的訓(xùn)練對(duì)話。
附圖說明
圖1是本發(fā)明一種基于混合編碼網(wǎng)絡(luò)的端到端對(duì)話控制方法的系統(tǒng)框架圖。
圖2是本發(fā)明一種基于混合編碼網(wǎng)絡(luò)的端到端對(duì)話控制方法的hcn模型。
圖3是本發(fā)明一種基于混合編碼網(wǎng)絡(luò)的端到端對(duì)話控制方法的對(duì)話框數(shù)據(jù)標(biāo)記。
具體實(shí)施方式
需要說明的是,在不沖突的情況下,本申請(qǐng)中的實(shí)施例及實(shí)施例中的特征可以相互結(jié)合,下面結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明作進(jìn)一步詳細(xì)說明。
圖1是本發(fā)明一種基于混合編碼網(wǎng)絡(luò)的端到端對(duì)話控制方法的系統(tǒng)框架圖。主要包括混合編碼網(wǎng)絡(luò)(hcn)模型,應(yīng)用循環(huán)神經(jīng)網(wǎng)絡(luò)(rnn)學(xué)習(xí)“端到端”模型,監(jiān)督學(xué)習(xí)評(píng)價(jià),通過監(jiān)督學(xué)習(xí)或強(qiáng)化學(xué)習(xí)來訓(xùn)練神經(jīng)網(wǎng)絡(luò)。
應(yīng)用循環(huán)神經(jīng)網(wǎng)絡(luò)(rnn)來學(xué)習(xí)“端到端”模型,從可觀察的對(duì)話歷史直接映射到輸出字序列;這些系統(tǒng)可以通過添加特殊的“api調(diào)用”動(dòng)作,將數(shù)據(jù)庫(kù)輸出枚舉為標(biāo)記序列,然后使用存儲(chǔ)器網(wǎng)絡(luò)、門控存儲(chǔ)器網(wǎng)絡(luò)、查詢減少網(wǎng)絡(luò)和復(fù)制網(wǎng)絡(luò)來學(xué)習(xí)rnn,從而應(yīng)用于面向任務(wù)的域;在這些架構(gòu)的每一個(gè)中,rnn學(xué)習(xí)操縱實(shí)體值;通過生成標(biāo)記序列(或排列所有可能的表面形式)來產(chǎn)生輸出;hcn還使用rnn累積對(duì)話狀態(tài)并選擇動(dòng)作;hcn使用開發(fā)者提供的動(dòng)作模板,可以包含實(shí)體引用。
監(jiān)督學(xué)習(xí)評(píng)價(jià),應(yīng)用hcn的簡(jiǎn)單域?qū)S密浖葘?duì)實(shí)體提取使用簡(jiǎn)單的字符串匹配,其具有預(yù)定義的實(shí)體名稱列表;其次,在上下文更新中,創(chuàng)建用于跟蹤實(shí)體的簡(jiǎn)單規(guī)則,其中在輸入中識(shí)別的實(shí)體覆蓋現(xiàn)有條目;然后,系統(tǒng)動(dòng)作被模板化;當(dāng)數(shù)據(jù)庫(kù)結(jié)果接收到實(shí)體狀態(tài),按評(píng)級(jí)排序;最后創(chuàng)建編碼常識(shí)依賴性的動(dòng)作掩碼。
使用特定領(lǐng)域的軟件在訓(xùn)練集上訓(xùn)練hcn,使用優(yōu)化器為循環(huán)層選擇長(zhǎng)短期記憶網(wǎng)絡(luò)(lstm);使用開發(fā)集來調(diào)整隱藏單元的數(shù)量和時(shí)期的數(shù)量;通過使用對(duì)數(shù)據(jù)使用公開可用的300維詞嵌入模型,通過平均詞嵌入形成語言嵌入;在訓(xùn)練中,每個(gè)對(duì)話形成一個(gè)小批次,并且在完全展開(即,通過時(shí)間的非截?cái)嗟姆聪騻鞑?上進(jìn)行更新。
通過監(jiān)督學(xué)習(xí)或強(qiáng)化學(xué)習(xí)來訓(xùn)練神經(jīng)網(wǎng)絡(luò),應(yīng)用監(jiān)督學(xué)習(xí)訓(xùn)練lstm模仿系統(tǒng)開發(fā)者提供的對(duì)話;一旦系統(tǒng)大規(guī)模操作,與大量用戶交互,期望系統(tǒng)使用強(qiáng)化學(xué)習(xí)繼續(xù)自主學(xué)習(xí);使用強(qiáng)化學(xué)習(xí),代理在不同情況下探索不同的動(dòng)作序列,并且進(jìn)行調(diào)整以便最大化反饋的預(yù)期折扣和,表示為g;
為了優(yōu)化,選擇策略漸變方法,在基于策略梯度的強(qiáng)化學(xué)習(xí)中,模型π由w參數(shù)化,并輸出在每個(gè)時(shí)間步長(zhǎng)對(duì)動(dòng)作進(jìn)行采樣的分布;在對(duì)話結(jié)束時(shí),計(jì)算該對(duì)話的返回g,并且計(jì)算針對(duì)模型權(quán)重采取的動(dòng)作的概率的梯度;然后通過采用與返回成正比的梯度步長(zhǎng)來調(diào)整權(quán)重:
其中,α是學(xué)習(xí)率;at在時(shí)間步長(zhǎng)t采取的行動(dòng);ht是在時(shí)間t的對(duì)話歷史;g是返回對(duì)話框;
對(duì)應(yīng)于更新權(quán)重的不同方法,可以應(yīng)用于相同的網(wǎng)絡(luò);但不能保證最優(yōu)強(qiáng)化學(xué)習(xí)策略將與監(jiān)督學(xué)習(xí)訓(xùn)練集合一致;因此,在每個(gè)強(qiáng)化學(xué)習(xí)梯度步驟之后,檢查更新的策略是否重構(gòu)訓(xùn)練集;如果沒有,在訓(xùn)練集上重新運(yùn)行監(jiān)督學(xué)習(xí)梯度步驟,直到模型再現(xiàn)訓(xùn)練集;這種方法允許在強(qiáng)化學(xué)習(xí)優(yōu)化期間的任何時(shí)間添加新的訓(xùn)練對(duì)話。
圖2是本發(fā)明一種基于混合編碼網(wǎng)絡(luò)的端到端對(duì)話控制方法的hcn模型。hcn的四個(gè)組件是遞歸神經(jīng)網(wǎng)絡(luò)、特定領(lǐng)域的軟件、特定領(lǐng)域動(dòng)作模板、用于標(biāo)識(shí)文本中的實(shí)體引用的常規(guī)實(shí)體抽取模塊;rnn和開發(fā)者代碼都保持狀態(tài);每個(gè)操作模板可以是文本交際操作或應(yīng)用程序接口(api)調(diào)用。
當(dāng)用戶提供話語作為文本時(shí),周期開始;形成詞袋矢量;再使用預(yù)建話語嵌入模型形成話語嵌入;接著,實(shí)體抽取模塊標(biāo)識(shí)實(shí)體;然后將文本和實(shí)體提及傳遞給由開發(fā)者提供的實(shí)體跟蹤代碼,將文本映射到數(shù)據(jù)庫(kù)中的特定行;該代碼可以返回動(dòng)作掩碼,指示當(dāng)前時(shí)間步驟允許的動(dòng)作,作為位向量;它還可以可選地返回上下文特征,有助于區(qū)分動(dòng)作的特征;
特征分量級(jí)聯(lián)形成特征向量;該載體被傳遞給rnn,rnn計(jì)算隱藏狀態(tài)(向量),為下一個(gè)時(shí)間步長(zhǎng)保留隱藏狀態(tài),并將其傳遞到softmax激活的密集層,輸出維度等于不同系統(tǒng)動(dòng)作模板的數(shù)量,輸出是動(dòng)作模板分布;接下來,將動(dòng)作掩模應(yīng)用為逐元素乘法,并且將結(jié)果歸一化回概率分布,使非允許的動(dòng)作采用概率零;從所得到的分布選擇動(dòng)作;當(dāng)強(qiáng)化學(xué)習(xí)活動(dòng)時(shí),從分布中采樣動(dòng)作;當(dāng)強(qiáng)化學(xué)習(xí)不活動(dòng)時(shí),選擇最佳動(dòng)作,即選擇具有最高概率的動(dòng)作;
接下來,所選擇的動(dòng)作被傳遞到實(shí)體輸出開發(fā)人員代碼,可以在實(shí)體中替換并產(chǎn)生完全形成的動(dòng)作;如果它是api動(dòng)作,api充當(dāng)傳感器并返回與對(duì)話相關(guān)的特征,因此被添加到下一個(gè)時(shí)間步長(zhǎng)中的特征向量;如果動(dòng)作是文本,則將其呈現(xiàn)給用戶,并且循環(huán)然后重復(fù);在下一時(shí)間步驟中將所采取的動(dòng)作作為特征提供給rnn。
圖3是本發(fā)明一種基于混合編碼網(wǎng)絡(luò)的端到端對(duì)話控制方法的對(duì)話框數(shù)據(jù)標(biāo)記。用戶通過輸入問題的簡(jiǎn)短描述開始使用對(duì)話系統(tǒng),對(duì)話框數(shù)據(jù)標(biāo)記如下:首先,列舉在數(shù)據(jù)中觀察到的唯一系統(tǒng)動(dòng)作;然后對(duì)每個(gè)對(duì)話框檢查每個(gè)系統(tǒng)操作,并確定它是否是現(xiàn)有系統(tǒng)動(dòng)作之中最合適的動(dòng)作;如果是,保留原樣并繼續(xù)下一個(gè)系統(tǒng)操作;如果不是,將其替換為正確的系統(tǒng)操作,并放棄對(duì)話框的其余部分;結(jié)果數(shù)據(jù)集包含完整和部分對(duì)話框的混合,僅包含正確的系統(tǒng)操作;將這個(gè)集合劃分為訓(xùn)練和測(cè)試對(duì)話框。
從對(duì)話框開始,檢查哪個(gè)方法產(chǎn)生更長(zhǎng)的連續(xù)的正確系統(tǒng)動(dòng)作序列;
其中,c(hcn-win)是基于規(guī)則的方法在hcn之前輸出錯(cuò)誤動(dòng)作的測(cè)試對(duì)話框的數(shù)量;c(rule-win)是測(cè)試對(duì)話框的數(shù)量,其中hcn在基于規(guī)則的方法之前輸出錯(cuò)誤的動(dòng)作;c(all)是測(cè)試集中的對(duì)話數(shù);當(dāng)δp>0時(shí),hcn更經(jīng)常地從對(duì)話開始產(chǎn)生連續(xù)的正確動(dòng)作序列。
對(duì)于本領(lǐng)域技術(shù)人員,本發(fā)明不限制于上述實(shí)施例的細(xì)節(jié),在不背離本發(fā)明的精神和范圍的情況下,能夠以其他具體形式實(shí)現(xiàn)本發(fā)明。此外,本領(lǐng)域的技術(shù)人員可以對(duì)本發(fā)明進(jìn)行各種改動(dòng)和變型而不脫離本發(fā)明的精神和范圍,這些改進(jìn)和變型也應(yīng)視為本發(fā)明的保護(hù)范圍。因此,所附權(quán)利要求意欲解釋為包括優(yōu)選實(shí)施例以及落入本發(fā)明范圍的所有變更和修改。