本發(fā)明涉及聊天機器人領域以及人工智能對話系統(tǒng)領域,尤其涉及一種基于對話系統(tǒng)的在線學習方法及裝置。
背景技術:
隨著人工智能技術的不斷發(fā)展,用于人機進行交流的對話系統(tǒng)也需要進行適應性地發(fā)展,以提升用戶與對話系統(tǒng)進行交流時的交互體驗,從而提高用戶對對話系統(tǒng)的信任度。現(xiàn)有的對話系統(tǒng),針對用戶輸入的對話信息,通常是直接從語料庫中匹配出語句進行應答,這導致對于不同的用戶輸入的同樣內容的對話信息,對話系統(tǒng)所做出的應答往往是一樣的,也就是說,現(xiàn)有的對話系統(tǒng)不能夠根據(jù)用戶本身的不同而做出相應的調整,靈活性不高,不夠智能。
技術實現(xiàn)要素:
本發(fā)明要解決的技術問題是提供一種基于對話系統(tǒng)的在線學習方法及裝置,針對用戶輸入的對話信息,動態(tài)地對對話系統(tǒng)中的應答決策器進行更新,以適應不同用戶的對話習慣,可以實現(xiàn)提高對話系統(tǒng)的對話靈活性。
為解決上述技術問題,本發(fā)明提供的技術方案是:
一方面,本發(fā)明提供一種基于對話系統(tǒng)的在線學習方法,包括,
獲取用戶輸入的當前對話信息,以及獲取前N輪的歷史對話信息;
根據(jù)當前對話信息,以及歷史對話信息對預先構建的應答決策器進行更新;
根據(jù)當前對話信息以及更新后的應答決策器,確定當前應答輸出。
進一步地,根據(jù)當前對話信息,以及歷史對話信息對應答決策器進行更新,具體包括,
將當前對話信息輸入預先構建的應答決策器,以生成第一回復R1,并將第一回復R1輸入應答決策器以生成第二回復R2,依此,循環(huán)m次,以生成一個模擬對話段落R,其中,R={R1,R2,…,Ri…Rm};
采用預先構建的獎勵函數(shù),分別對前N輪的歷史對話信息和模擬對話段落進行評分,以分別獲取歷史評分和當前評分;
根據(jù)歷史評分與當前評分的差值對應答決策器進行更新。
進一步地,獎勵函數(shù)進行評分的計算規(guī)則為,采用A、B、C中的至少一種方式獲取評分,其中,
A、計算句與句之間的相互信息熵;
B、通過預先構建的評分模型直接進行評分;
C、統(tǒng)計對話中斷的信號次數(shù)。
進一步地,應答決策器為序列到序列循環(huán)神經(jīng)網(wǎng)絡。
另一方面,本發(fā)明提供一種基于對話系統(tǒng)的在線學習裝置,包括,
信息獲取模塊,用于獲取用戶輸入的當前對話信息,以及獲取前N輪的歷史對話信息;
決策器更新模塊,用于根據(jù)當前對話信息,以及歷史對話信息對預先構建的應答決策器進行更新;
應答輸出模塊,用于根據(jù)當前對話信息以及更新后的應答決策器,確定當前應答輸出。
進一步地,決策器更新模塊,具體用于,
將當前對話信息輸入預先構建的應答決策器,以生成第一回復R1,并將第一回復R1輸入應答決策器以生成第二回復R2,依此,循環(huán)m次,以生成一個模擬對話段落R,其中,R={R1,R2,…,Ri…Rm};
采用預先構建的獎勵函數(shù),分別對前N輪的歷史對話信息和模擬對話段落進行評分,以分別獲取歷史評分和當前評分;
根據(jù)歷史評分與當前評分的差值對應答決策器進行更新。
進一步地,獎勵函數(shù)進行評分的計算規(guī)則為,采用A、B、C中的至少一種方式獲取評分,其中,
A、計算句與句之間的相互信息熵;
B、通過預先構建的評分模型直接進行評分;
C、統(tǒng)計對話中斷的信號次數(shù)。
進一步地,應答決策器為序列到序列循環(huán)神經(jīng)網(wǎng)絡。
本發(fā)明提供的基于對話系統(tǒng)的在線學習方法及裝置,針對用戶輸入的對話信息,動態(tài)地對對話系統(tǒng)中的應答決策器進行更新,以適應不同用戶的對話習慣,可以實現(xiàn)提高對話系統(tǒng)的對話靈活性。
附圖說明
圖1是本發(fā)明實施例提供的基于對話系統(tǒng)的在線學習方法的流程圖;
圖2是本發(fā)明實施例提供的基于對話系統(tǒng)的在線學習方法的又一流程圖;
圖3是本發(fā)明實施例提供的模擬對話段落生成圖;
圖4是本發(fā)明實施例提供的基于對話系統(tǒng)的在線學習裝置的框圖。
具體實施方式
下面通過具體的實施例進一步說明本發(fā)明,但是,應當理解為,這些實施例僅僅是用于更詳細具體地說明之用,而不應理解為用于以任何形式限制本發(fā)明。
實施例一
結合圖1,本實施例提供的基于對話系統(tǒng)的在線學習方法,包括,
步驟S1:獲取用戶輸入的當前對話信息,以及獲取前N輪的歷史對話信息;
步驟S2:根據(jù)當前對話信息,以及歷史對話信息對預先構建的應答決策器100進行更新;
步驟S3:根據(jù)當前對話信息以及更新后的應答決策器100,確定當前應答輸出。
本發(fā)明實施例提供的基于對話系統(tǒng)的在線學習方法,針對用戶輸入的對話信息,動態(tài)地對對話系統(tǒng)中的應答決策器100進行更新,以適應不同用戶的對話習慣,可以實現(xiàn)提高對話系統(tǒng)的對話靈活性。
優(yōu)選地,如圖2所示地,步驟S2具體包括,
步驟S2.1:將當前對話信息輸入預先構建的應答決策器100,以生成第一回復R1,并將第一回復R1輸入應答決策器100以生成第二回復R2,依此,循環(huán)m次,以生成一個模擬對話段落R,其中,R={R1,R2,…,Ri…Rm};
步驟S2.2:采用預先構建的獎勵函數(shù),分別對前N輪的歷史對話信息和模擬對話段落進行評分,以分別獲取歷史評分和當前評分;
步驟S2.3:根據(jù)歷史評分與當前評分的差值對應答決策器100進行更新。
本實施例中,對于每一條用戶輸入的對話信息,都將進行一次應答決策器100的更新。針對當前對話信息,先進行m次的循環(huán)輸入輸出,即,如圖3所示地,首先將當前對話信息輸入進行應答決策器100,以獲得第一回復R1,之后,將所生成的第一回復R1,作為輸入,返回給應答決策器100以生成第二回R2,如此進行循環(huán),并循環(huán)m次,以獲得一個模擬對話段落R,且R={R1,R2,…,Ri…Rm}。由于該模擬對話段落與當前對話信息的相關性極大,也就是說,能夠較好地擬合出用戶的獨特性,如此,可以使得對話系統(tǒng)更好地掌握該用戶的對話習慣,從而提高對話系統(tǒng)的對話靈活性。需要說明的是,本實施例中,m的取值較為關鍵,若m的取值太小,則會降低獎勵函數(shù)對計算結果的穩(wěn)定性,若m的取值太大又將加大計算復雜度,增加不必要的耗時,降低系統(tǒng)性能。此外,m的取值需要結合實際需要進行設定,且需要經(jīng)過多次試驗獲得,本實施例不作具體限定。
本實施例中,通過采用預先構建的獎勵函數(shù),分別對前N輪的歷史對話信息和模擬對話段落進行評分,以分別獲取歷史評分和當前評分,然后再根據(jù)歷史評分與當前評分的差值對應答決策器100進行更新。具體地,假定獎勵函數(shù)為F,且計算獲得當前評分為f1,以及歷史評分為f1’,則歷史評分與當前評分的差值loss=f1’-f1。本實施例中,采用loss,即歷史評分與當前評分的差值對應答決策器100運用向后傳導(back propagation)算法進行參數(shù)更新,繼而實現(xiàn)對應答決策器100的更新。本實施例中,優(yōu)選地,N的取值為1,即只考慮前一輪的歷史對話,且當沒有前一輪歷史對話時,即當前對話即為第一輪對話時,則默認f1’=0,且loss=0。
進一步優(yōu)選地,獎勵函數(shù)進行評分的計算規(guī)則為,采用A、B、C中的至少一種方式獲取評分,其中,
A、計算句與句之間的相互信息熵;
B、通過預先構建的評分模型直接進行評分;
C、統(tǒng)計對話中斷的信號次數(shù)。
本實施例中,句與句之間的相互信息熵可以刻畫兩個句子之間的關聯(lián)程度;預先構建的評分模型可以刻畫句與句之間的流暢程度;對話中斷也是對流暢程度的另一種描述方式。此外,本實施例中,采用預先訓練好的中斷分類器統(tǒng)計對話中斷的信號次數(shù)。具體地,中斷分類器的輸入是一對句子,輸出是0或者1,其中,0代表第一句和第二句之間產(chǎn)生了中斷,1代表沒有產(chǎn)生中斷。優(yōu)選地,中斷分類器為卷積神經(jīng)網(wǎng)絡。
進一步優(yōu)選地,應答決策器100為序列到序列循環(huán)神經(jīng)網(wǎng)絡。本實施例中,應答決策器100的選擇需要符合輸入為句子且輸出也為句子這一輸入輸出特征。此外,應答決策器100為序列到序列循環(huán)神經(jīng)網(wǎng)絡僅為本實施例的一個優(yōu)選方案,也可以是其他的神經(jīng)網(wǎng)絡,本實施例不作具體限定。此外,需要說明的是,本實施例中所提及的句子,是指一個任意長度的字符串。
實施例二
結合圖4,本實施例提供一種基于對話系統(tǒng)的在線學習裝置,包括,
信息獲取模塊1,用于獲取用戶輸入的當前對話信息,以及獲取前N輪的歷史對話信息;
決策器更新模塊2,用于根據(jù)當前對話信息,以及歷史對話信息對預先構建的應答決策器100進行更新;
應答輸出模塊3,用于根據(jù)當前對話信息以及更新后的應答決策器100,確定當前應答輸出。
本發(fā)明實施例提供的基于對話系統(tǒng)的在線學習裝置,針對用戶輸入的對話信息,動態(tài)地對對話系統(tǒng)中的應答決策器100進行更新,以適應不同用戶的對話習慣,可以實現(xiàn)提高對話系統(tǒng)的對話靈活性。
優(yōu)選地,決策器更新模塊2,具體用于,
將當前對話信息輸入預先構建的應答決策器100,以生成第一回復R1,并將第一回復R1輸入應答決策器100以生成第二回復R2,依此,循環(huán)m次,以生成一個模擬對話段落R,其中,R={R1,R2,…,Ri…Rm};
采用預先構建的獎勵函數(shù),分別對前N輪的歷史對話信息和模擬對話段落進行評分,以分別獲取歷史評分和當前評分;
根據(jù)歷史評分與當前評分的差值對應答決策器100進行更新。
本實施例中,對于每一條用戶輸入的對話信息,都將進行一次應答決策器100的更新。針對當前對話信息,先進行m次的循環(huán)輸入輸出,即,如圖3所示地,首先將當前對話信息輸入進行應答決策器100,以獲得第一回復R1,之后,將所生成的第一回復R1,作為輸入,返回給應答決策器100以生成第二回R2,如此進行循環(huán),并循環(huán)m次,以獲得一個模擬對話段落R,且R={R1,R2,…,Ri…Rm}。由于該模擬對話段落與當前對話信息的相關性極大,也就是說,能夠較好地擬合出用戶的獨特性,如此,可以使得對話系統(tǒng)更好地掌握該用戶的對話習慣,從而提高對話系統(tǒng)的對話靈活性。需要說明的是,本實施例中,m的取值較為關鍵,若m的取值太小,則會降低獎勵函數(shù)對計算結果的穩(wěn)定性,若m的取值太大又將加大計算復雜度,增加不必要的耗時,降低系統(tǒng)性能。此外,m的取值需要結合實際需要進行設定,且需要經(jīng)過多次試驗獲得,本實施例不作具體限定。
本實施例中,通過采用預先構建的獎勵函數(shù),分別對前N輪的歷史對話信息和模擬對話段落進行評分,以分別獲取歷史評分和當前評分,然后再根據(jù)歷史評分與當前評分的差值對應答決策器100進行更新。具體地,假定獎勵函數(shù)為F,且計算獲得當前評分為f1,以及歷史評分為f1’,則歷史評分與當前評分的差值loss=f1’-f1。本實施例中,采用loss,即歷史評分與當前評分的差值對應答決策器100運用向后傳導(back propagation)算法進行參數(shù)更新,繼而實現(xiàn)對應答決策器100的更新。本實施例中,優(yōu)選地,N的取值為1,即只考慮前一輪的歷史對話,且當沒有前一輪歷史對話時,即當前對話即為第一輪對話時,則默認f1’=0,且loss=0。
進一步優(yōu)選地,獎勵函數(shù)進行評分的計算規(guī)則為,采用A、B、C中的至少一種方式獲取評分,其中,
A、計算句與句之間的相互信息熵;
B、通過預先構建的評分模型直接進行評分;
C、統(tǒng)計對話中斷的信號次數(shù)。
本實施例中,句與句之間的相互信息熵可以刻畫兩個句子之間的關聯(lián)程度;預先構建的評分模型可以刻畫句與句之間的流暢程度;對話中斷也是對流暢程度的另一種描述方式。此外,本實施例中,采用預先訓練好的中斷分類器統(tǒng)計對話中斷的信號次數(shù)。具體地,中斷分類器的輸入是一對句子,輸出是0或者1,其中,0代表第一句和第二句之間產(chǎn)生了中斷,1代表沒有產(chǎn)生中斷。優(yōu)選地,中斷分類器為卷積神經(jīng)網(wǎng)絡。
進一步優(yōu)選地,應答決策器100為序列到序列循環(huán)神經(jīng)網(wǎng)絡。本實施例中,應答決策器100的選擇需要符合輸入為句子且輸出也為句子這一輸入輸出特征。此外,應答決策器100為序列到序列循環(huán)神經(jīng)網(wǎng)絡僅為本實施例的一個優(yōu)選方案,也可以是其他的神經(jīng)網(wǎng)絡,本實施例不作具體限定。此外,需要說明的是,本實施例中所提及的句子,是指一個任意長度的字符串。
盡管本發(fā)明已進行了一定程度的描述,明顯地,在不脫離本發(fā)明的精神和范圍的條件下,可進行各個條件的適當變化??梢岳斫猓景l(fā)明不限于所述實施方案,而歸于權利要求的范圍,其包括所述每個因素的等同替換。