朱映波,趙陽(yáng)洋,王 佩,尹 凱,王振宇
(1.天翼愛(ài)音樂(lè)文化科技有限公司,廣州 510081;2.華南理工大學(xué)軟件學(xué)院,廣州 510006)
隨著人工智能相關(guān)技術(shù)的飛速發(fā)展,人與智能設(shè)備之間的交互方式趨于智能化,逐漸從傳統(tǒng)的圖形化交互向人機(jī)對(duì)話交互轉(zhuǎn)變[1-3],即利用智能助理來(lái)幫助用戶完成多項(xiàng)任務(wù)或多項(xiàng)服務(wù)。任務(wù)型人機(jī)對(duì)話作為人機(jī)對(duì)話系統(tǒng)的重要分支之一,是人工智能領(lǐng)域中的一個(gè)熱門研究課題[4-5],同時(shí)被逐漸應(yīng)用于工業(yè)界的各個(gè)方面,例如蘋(píng)果手機(jī)助手Siri[6]、亞馬遜Alex 和阿里智能客服小蜜等。
任務(wù)型對(duì)話系統(tǒng)又稱為目標(biāo)驅(qū)動(dòng)型對(duì)話系統(tǒng),例如客服機(jī)器人、機(jī)票預(yù)訂系統(tǒng)等[1,7-9],它們?yōu)橛脩籼峁┨囟I(lǐng)域的服務(wù),旨在幫助用戶完成購(gòu)物、訂機(jī)票等任務(wù)。這類人機(jī)對(duì)話系統(tǒng)能夠大幅降低人力成本,簡(jiǎn)化人機(jī)交互過(guò)程,提高應(yīng)用的智能程度,具有較高的研究和應(yīng)用價(jià)值[10]。
任務(wù)型對(duì)話系統(tǒng)由自動(dòng)語(yǔ)音識(shí)別(Automatic Speech Recognition,ASR)、自然語(yǔ)言理解(Natural Language Understanding,NLU)、對(duì)話管理(Dialogue Management,DM)、自然語(yǔ)言生成(Natural Language Generation,NLG)和語(yǔ)音合成(Text-To-Speech,TTS)5個(gè)模塊組成[4,11]。其中:ASR 模塊將用戶的語(yǔ)音輸入轉(zhuǎn)化為文本的形式;NLU 模塊的作用是理解用戶的對(duì)話文本,并提取出與任務(wù)相關(guān)的槽-值對(duì)信息;DM 模塊是對(duì)話系統(tǒng)的核心控制模塊,包括對(duì)話狀態(tài)跟蹤(Dialogue State Tracking,DST)和對(duì)話策略(Dialogue Policy,DP)兩個(gè)部分[11]:DST 接收來(lái)自NLU 模塊的語(yǔ)義信息,更新當(dāng)前的對(duì)話狀態(tài),DP 確定下一步系統(tǒng)的響應(yīng)策略;NLG 模塊根據(jù)系統(tǒng)響應(yīng)策略生成自然語(yǔ)言文本;TTS模塊將語(yǔ)言文本轉(zhuǎn)為語(yǔ)音反饋給用戶。
對(duì)話策略任務(wù)根據(jù)對(duì)話狀態(tài)跟蹤輸出的當(dāng)前狀態(tài)分布,選擇系統(tǒng)響應(yīng)的動(dòng)作或策略[12-13],其性能的優(yōu)劣決定了人機(jī)對(duì)話系統(tǒng)的成敗。因此,設(shè)計(jì)一個(gè)魯棒的對(duì)話策略模型是任務(wù)型系統(tǒng)成功應(yīng)用的關(guān)鍵。然而,通過(guò)現(xiàn)有的深度學(xué)習(xí)的方法訓(xùn)練一個(gè)高質(zhì)量的對(duì)話策略需要大量的會(huì)話數(shù)據(jù),且只能應(yīng)用于已經(jīng)有大型數(shù)據(jù)集的場(chǎng)景[14-15]。由于對(duì)話系統(tǒng)的潛在應(yīng)用領(lǐng)域非常廣泛,因此在現(xiàn)實(shí)場(chǎng)景中存在較多的對(duì)話數(shù)據(jù)稀缺性問(wèn)題[16]。
本文構(gòu)建一個(gè)融合馬爾科夫決策過(guò)程和屬性信息熵的對(duì)話策略模型。將對(duì)話策略視為一個(gè)馬爾科夫決策過(guò)程,通過(guò)建立五元組來(lái)計(jì)算相關(guān)領(lǐng)域場(chǎng)景下的狀態(tài)值函數(shù)表,使對(duì)話系統(tǒng)獲得最優(yōu)的狀態(tài),并引入屬性信息熵方法來(lái)選擇含有信息量較大的狀態(tài)進(jìn)行轉(zhuǎn)移,從而獲取最優(yōu)的系統(tǒng)響應(yīng)動(dòng)作。
目前主流的對(duì)話策略模型可分為基于有限狀態(tài)自動(dòng)機(jī)的對(duì)話策略、填槽或填表法和基于概率模型的對(duì)話策略。其中,基于概率的模型能通過(guò)回報(bào)函數(shù)的迭代計(jì)算、訓(xùn)練狀態(tài)和動(dòng)作之間的映射關(guān)系,得到可用的對(duì)話策略規(guī)則,這種方法由于避免了依賴人工制定規(guī)則帶來(lái)的局限性,并且能夠通過(guò)訓(xùn)練提升模型的泛化能力,因此具有更好的效果。
1)基于有限狀態(tài)自動(dòng)機(jī)的對(duì)話策略
任務(wù)型多輪對(duì)話系統(tǒng)通過(guò)與用戶進(jìn)行多輪的對(duì)答,明確用戶的需求,得到完成任務(wù)需要的信息,這個(gè)與用戶進(jìn)行多輪交互的過(guò)程類似于“初始狀態(tài)→動(dòng)作→更新?tīng)顟B(tài)→動(dòng)作→更新?tīng)顟B(tài)→…→終止?fàn)顟B(tài)”的狀態(tài)與觸發(fā)動(dòng)作進(jìn)行交替的過(guò)程,與圖模型中的有限狀態(tài)自動(dòng)機(jī)(Finite-State Machine,F(xiàn)SM)的定義非常吻合。有限狀態(tài)自動(dòng)機(jī)用來(lái)描述對(duì)象在一個(gè)生命周期內(nèi)的狀態(tài)序列以及狀態(tài)間進(jìn)行轉(zhuǎn)移的動(dòng)作事件,可以通過(guò)狀態(tài)轉(zhuǎn)移圖來(lái)進(jìn)行描述,圖1 描述了在訂餐任務(wù)中有限狀態(tài)自動(dòng)機(jī)的狀態(tài)轉(zhuǎn)移圖示例。
在圖1 中,節(jié)點(diǎn)表示系統(tǒng)執(zhí)行的對(duì)話動(dòng)作,節(jié)點(diǎn)之間的邊表示用戶執(zhí)行的實(shí)際動(dòng)作。在對(duì)話過(guò)程中,系統(tǒng)通過(guò)將用戶的輸入進(jìn)行解析,得到相應(yīng)的轉(zhuǎn)移方向,使得對(duì)話沿著狀態(tài)轉(zhuǎn)移圖的設(shè)定進(jìn)行,對(duì)話中用戶與系統(tǒng)每交互一次,狀態(tài)就發(fā)生一次轉(zhuǎn)移,直到對(duì)話結(jié)束?;贔SM 的對(duì)話策略方法是典型的系統(tǒng)主導(dǎo)型方法,對(duì)話的節(jié)奏完全由系統(tǒng)決定,用戶需要按照系統(tǒng)指定的流程補(bǔ)充信息。這種方法通過(guò)預(yù)先人為地定義好對(duì)話流程,具有建模簡(jiǎn)單且邏輯清晰的優(yōu)勢(shì),對(duì)簡(jiǎn)單任務(wù)的信息獲取很友好。對(duì)于稍復(fù)雜的任務(wù),如果對(duì)話過(guò)程中出現(xiàn)了系統(tǒng)沒(méi)有預(yù)先定義好的狀態(tài),那么對(duì)話將會(huì)卡在其中的一個(gè)狀態(tài)中無(wú)法繼續(xù)進(jìn)行?;谟邢逘顟B(tài)自動(dòng)機(jī)的對(duì)話策略需要對(duì)對(duì)話中的細(xì)節(jié)提前進(jìn)行編寫(xiě)和維護(hù),缺少靈活性,因此在開(kāi)發(fā)的過(guò)程中也很難對(duì)其進(jìn)行擴(kuò)展。
圖1 基于有限狀態(tài)自動(dòng)機(jī)的對(duì)話策略狀態(tài)轉(zhuǎn)移圖Fig.1 State transition diagram of dialog policy based on finite state automata
2)基于填槽的對(duì)話策略
基于填槽的對(duì)話策略在一定程度上改進(jìn)了基于FSM 的方法,它將對(duì)話建模成一個(gè)填槽的過(guò)程,其中,槽表示在對(duì)話過(guò)程中完成特定的任務(wù)所需要獲取的信息屬性。系統(tǒng)通過(guò)制定填槽的優(yōu)先級(jí),根據(jù)當(dāng)前的槽位狀態(tài)來(lái)決定下一個(gè)系統(tǒng)動(dòng)作。與基于FSM 的方法相比,填槽法不對(duì)獲取用戶信息的順序進(jìn)行限制,用戶可以在對(duì)話過(guò)程中一次性補(bǔ)全一個(gè)或多個(gè)槽信息。經(jīng)過(guò)系統(tǒng)的引導(dǎo),用戶進(jìn)行輸入,系統(tǒng)將用戶輸入轉(zhuǎn)化為一個(gè)或多個(gè)槽信息的填充,這種方法為用戶提供了相對(duì)靈活的輸入方式,支持用戶和系統(tǒng)混合主導(dǎo)的系統(tǒng),適用于相對(duì)復(fù)雜的信息獲取場(chǎng)景。但這種填槽的對(duì)話策略方法由于槽位的限制,當(dāng)槽的數(shù)量過(guò)多時(shí),算法的復(fù)雜程度也會(huì)急劇增長(zhǎng),因此不適用于更復(fù)雜的場(chǎng)景。
3)基于強(qiáng)化學(xué)習(xí)的對(duì)話策略
基于有限狀態(tài)自動(dòng)機(jī)和基于填槽的對(duì)話策略算法都需要人工制定規(guī)則,這種預(yù)先定義好所有場(chǎng)景的方法,不具備領(lǐng)域遷移的能力,當(dāng)任務(wù)發(fā)生變化時(shí),就需要重新制定規(guī)則。馬爾科夫決策過(guò)程(MDP)是一個(gè)解決序列決策的模型,文獻(xiàn)[17]將對(duì)話決策建模成一個(gè)馬爾科夫決策過(guò)程,通過(guò)模擬系統(tǒng)與用戶之間的交互過(guò)程,經(jīng)過(guò)訓(xùn)練優(yōu)化模型參數(shù),得到狀態(tài)和動(dòng)作之間的映射關(guān)系(即對(duì)話策略)。在任務(wù)型對(duì)話系統(tǒng)中,通過(guò)將槽的取值狀態(tài)映射為對(duì)話的狀態(tài),同時(shí)定義系統(tǒng)的動(dòng)作、執(zhí)行動(dòng)作的回報(bào)函數(shù)和狀態(tài)與狀態(tài)間的轉(zhuǎn)移概率,這種方法相比于人工定義對(duì)話規(guī)則的方法擁有更高的覆蓋率。與需要大量標(biāo)注數(shù)據(jù)的監(jiān)督學(xué)習(xí)不同,強(qiáng)化學(xué)習(xí)可以通過(guò)構(gòu)建智能體感知環(huán)境,然后由系統(tǒng)與用戶進(jìn)行交互,根據(jù)回報(bào)函數(shù)獎(jiǎng)勵(lì)好的行為、懲罰壞的行為,從而訓(xùn)練出對(duì)話系統(tǒng)的最優(yōu)策略。
對(duì)于槽數(shù)量較多的復(fù)雜場(chǎng)景,基于強(qiáng)化學(xué)習(xí)的模型也有較好的擴(kuò)展方式。面對(duì)過(guò)多的狀態(tài)或動(dòng)作空間,在傳統(tǒng)強(qiáng)化學(xué)習(xí)很難進(jìn)行高效探索時(shí),深度強(qiáng)化學(xué)習(xí)能夠大幅提升模型的收斂速度。同時(shí),也出現(xiàn)了很多傳統(tǒng)強(qiáng)化學(xué)習(xí)模型的變種,如文獻(xiàn)[18-19]將卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,CNN)與傳統(tǒng)強(qiáng)化學(xué)習(xí)中的Q 學(xué)習(xí)[11]算法相結(jié)合,提出了深度Q 網(wǎng)絡(luò)(Deep Q-Network,DQN)模型。
目前關(guān)于策略學(xué)習(xí)的相關(guān)研究在任務(wù)型對(duì)話系統(tǒng)中的比重相對(duì)較小,遠(yuǎn)少于自然語(yǔ)言理解和對(duì)話狀態(tài)跟蹤任務(wù),仍然存在許多需要深入研究和解決的問(wèn)題,如系統(tǒng)冷啟動(dòng)、管道型對(duì)話系統(tǒng)模塊間誤差傳遞和復(fù)雜場(chǎng)景中狀態(tài)空間指數(shù)增加等,許多學(xué)者在對(duì)話策略學(xué)習(xí)的問(wèn)題上進(jìn)行了新的探索。
對(duì)話管理中的對(duì)話策略選擇問(wèn)題可以抽象為一個(gè)馬爾科夫決策過(guò)程(MDP)[20-21]。馬爾科夫決策過(guò)程由五元組<S,A,P,R,γ>來(lái)定義,5 個(gè)元素分別表示狀態(tài)集合、動(dòng)作集合、狀態(tài)間的轉(zhuǎn)移概率、及時(shí)回報(bào)和衰減因子。
1)狀態(tài)集合S
在音樂(lè)搜索任務(wù)中,對(duì)話狀態(tài)體現(xiàn)為6 個(gè)槽的取值情況,每個(gè)槽的狀態(tài)分為已填充和未填充兩種,將狀態(tài)跟蹤模塊輸出的對(duì)話狀態(tài)轉(zhuǎn)換為編號(hào)表示,則總共有26=64 種狀態(tài),按照下標(biāo)01 依次編碼,六位01 編碼依次表示“song,singer,album,lyricwriter,composer,label”槽的填充與否,狀態(tài)數(shù)量和對(duì)應(yīng)的狀態(tài)編號(hào)如表1所示。例如,當(dāng)前的對(duì)話狀態(tài)為<singer=周杰倫,song=稻香>,則所對(duì)應(yīng)的狀態(tài)編碼應(yīng)為S110000。那么,狀態(tài)集合S={S000000,S100000,…,S111111}。
表1 對(duì)話狀態(tài)的編號(hào)表示Table 1 Numbered representation of dialog state
終止?fàn)顟B(tài)表示對(duì)話的結(jié)束,若達(dá)到了終止?fàn)顟B(tài),則表示系統(tǒng)應(yīng)給出歌曲列表offer()結(jié)束對(duì)話。從經(jīng)驗(yàn)常識(shí)出發(fā),本文制定如下規(guī)則來(lái)定義對(duì)話的終止?fàn)顟B(tài):
(1)當(dāng)用戶給出歌曲的歌名song 信息和任一其他屬性信息,則該狀態(tài)為終止?fàn)顟B(tài),共5 種。
(2)當(dāng)用戶給出歌曲的專輯名album 和作詞者lyricwriter 或作曲者composer,則該狀態(tài)為終止?fàn)顟B(tài),共2 種。
(3)6 個(gè)屬性中已知任意3 個(gè)或3 個(gè)以上,則該狀態(tài)為終止?fàn)顟B(tài),共20+15+6+1=42 種。
因此,定義42 種終止?fàn)顟B(tài),如表2 所示。
表2 對(duì)話終止?fàn)顟B(tài)說(shuō)明Table 2 Description of dialogue final states
2)動(dòng)作集合A
系統(tǒng)動(dòng)作分為詢問(wèn)動(dòng)作request()和提供歌曲列表動(dòng)作offer(),詢問(wèn)動(dòng)作又可以根據(jù)詢問(wèn)不同的槽分為詢問(wèn)歌曲名request(song)、詢問(wèn)歌手request(singer)、詢問(wèn)專輯request(album)、詢問(wèn)作詞者request(lyricwriter)、詢問(wèn)作曲者request(composer)和詢問(wèn)歌曲類型request(label)6 個(gè)動(dòng)作。因此,動(dòng)作集合A={offer(songs),request(attrs)},其中,attrs=[song,singer,album,lyricwriter,composer,label]。
3)狀態(tài)間的轉(zhuǎn)移概率P
定義狀態(tài)(s,s')之間的轉(zhuǎn)移概率為s'可能的取值個(gè)數(shù),當(dāng)前狀態(tài)s為非終止?fàn)顟B(tài)。用戶在單輪的對(duì)話中,可能會(huì)給出不止一個(gè)槽的信息,因此,按照表3 定義對(duì)話狀態(tài)之間的轉(zhuǎn)移概率。
表3 對(duì)話狀態(tài)轉(zhuǎn)移概率示例Table 3 Example of dialogue state transition probability
4)及時(shí)回報(bào)R
定義當(dāng)對(duì)話狀態(tài)達(dá)到設(shè)定的49 種終止?fàn)顟B(tài)時(shí),意味著用戶完成了當(dāng)前的任務(wù),轉(zhuǎn)移后的獎(jiǎng)勵(lì)值設(shè)為100,其他每一輪對(duì)話狀態(tài)發(fā)生轉(zhuǎn)移的獎(jiǎng)勵(lì)值均為-1,如表4 所示。
表4 對(duì)話狀態(tài)轉(zhuǎn)移獎(jiǎng)勵(lì)矩陣示例Table 4 Example of dialogue state transition reward matrix
5)衰減因子γ
衰減因子代表了未來(lái)收益對(duì)當(dāng)前狀態(tài)的重要程度,γ∈[0,1],本文設(shè)定衰減因子γ=0.8。
馬爾科夫獎(jiǎng)勵(lì)過(guò)程中狀態(tài)值函數(shù)的貝爾曼方程表示為:
使用值迭代的方式對(duì)狀態(tài)值函數(shù)進(jìn)行求解,得到收斂之后的狀態(tài)值函數(shù)矩陣v。
熵在信息論中表示信息量的大小,用來(lái)描述信源的不確定程度,不確定性越大,信息量越大,熵越大;反之,不確定性越小,信息量越小,熵越小。在基于多輪對(duì)話的音樂(lè)搜索任務(wù)中,每一輪對(duì)話后系統(tǒng)依據(jù)用戶提供的目標(biāo)約束搜索曲庫(kù),得到歌曲列表。不同屬性槽取值的不確定程度不同,因此帶有的信息量也不同。本文設(shè)計(jì)一種計(jì)算曲庫(kù)搜索結(jié)果歌曲列表中各個(gè)屬性信息熵的算法,根據(jù)屬性信息熵的大小來(lái)衡量哪一個(gè)屬性槽值的信息量最大,進(jìn)而指導(dǎo)系統(tǒng)下一輪對(duì)話應(yīng)引導(dǎo)用戶給出信息熵最大的屬性取值,以能夠用最少的對(duì)話輪次完成音樂(lè)搜索任務(wù)。屬性信息熵的計(jì)算公式如下:
其中,χ表示屬性attr 可能的取值集合。
首先依據(jù)每一輪次用戶目標(biāo)約束進(jìn)行曲庫(kù)搜索,得到音樂(lè)列表,判斷搜索結(jié)果數(shù)量是否小于等于N,若小于等于N,則系統(tǒng)直接給出音樂(lè)結(jié)果offer(songs);若大于N,則系統(tǒng)計(jì)算結(jié)果列表中各個(gè)屬性槽的信息熵,選擇信息熵最大的屬性進(jìn)行詢問(wèn)。計(jì)算過(guò)程如式(5)所示:
其中,attr*表示信息熵值最大的屬性槽。
強(qiáng)化學(xué)習(xí)的方法通過(guò)定義五元組將當(dāng)前時(shí)刻之后的狀態(tài)獎(jiǎng)勵(lì)考慮進(jìn)來(lái),使得對(duì)話中系統(tǒng)的決策具有前瞻性(考慮后序狀態(tài)獎(jiǎng)勵(lì)),能夠快速選擇最快抵達(dá)終止?fàn)顟B(tài)的最優(yōu)路徑,不需花費(fèi)太多時(shí)間,且不同狀態(tài)的獎(jiǎng)勵(lì)值可通過(guò)自定義的方式進(jìn)行設(shè)定,但該方法所得的狀態(tài)之間的狀態(tài)值函數(shù)可能相等,所選擇的路徑可能是次優(yōu)解;而基于屬性信息熵計(jì)算策略的計(jì)算方法考慮了音樂(lè)搜索結(jié)果列表,通過(guò)當(dāng)前對(duì)話狀態(tài)得到對(duì)應(yīng)的目標(biāo)約束,進(jìn)行曲庫(kù)搜索,然后計(jì)算音樂(lè)屬性槽的信息熵,求得考慮了當(dāng)前輪次音樂(lè)搜索結(jié)果的對(duì)話決策。由于基于屬性的方法需要根據(jù)檢索列表進(jìn)行曲庫(kù)搜索,數(shù)據(jù)集的屬性種類越多,響應(yīng)時(shí)間越久。兩種方法都有自己的特點(diǎn)和優(yōu)勢(shì),因此本文提出基于貝爾曼方程求解的強(qiáng)化學(xué)習(xí)和屬性信息熵相結(jié)合的對(duì)話策略算法,融合兩種算法的優(yōu)點(diǎn),利用基于貝爾曼方程求解的強(qiáng)化學(xué)習(xí)算法幫助基于屬性信息熵的策略計(jì)算方法篩選檢索列表以縮短響應(yīng)時(shí)間,利用基于屬性信息熵的策略方法幫助基于貝爾曼方程求解的強(qiáng)化學(xué)習(xí)算法排除次優(yōu)解。本文根據(jù)基于貝爾曼方程求解的強(qiáng)化學(xué)習(xí)和屬性信息熵相結(jié)合的對(duì)話策略算法對(duì)對(duì)話策略模塊進(jìn)行建模,算法的流程如圖2 所示。
圖2 融合強(qiáng)化學(xué)習(xí)與屬性信息熵的對(duì)話策略流程Fig.2 Procedure of dialogue strategy combining reinforcement learning and attribute information entropy
融合算法步驟如下:
步驟1根據(jù)當(dāng)前的對(duì)話狀態(tài)得到用戶的目標(biāo)約束,通過(guò)目標(biāo)約束搜索音樂(lè)曲庫(kù)得出歌曲結(jié)果列表。
步驟2判斷歌曲列表的數(shù)量resultnum,若resultnum>N,則計(jì)算屬性信息熵,若resultnum≤N,則給出音樂(lè)搜索結(jié)果,即Actsystem=offer(songs)。
步驟3計(jì)算屬性信息熵,判斷是否需要查詢狀態(tài)值函數(shù)矩陣v,若是,則通過(guò)狀態(tài)轉(zhuǎn)移矩陣選出下一輪的系統(tǒng)動(dòng)作,否則依據(jù)信息熵選出下一輪系統(tǒng)動(dòng)作。
步驟3 判斷是否需要查詢狀態(tài)值函數(shù)矩陣的具體邏輯如下:若信息熵大于0 的屬性數(shù)量為1,說(shuō)明只有一個(gè)屬性attr△是有信息量的,因此系統(tǒng)直接依據(jù)信息熵給出下一輪的動(dòng)作request(attr△);若信息熵大于0 的屬性數(shù)量大于1,則查詢計(jì)算出來(lái)的狀態(tài)值函數(shù)矩陣v選出下一輪的系統(tǒng)動(dòng)作。
通過(guò)狀態(tài)值函數(shù)矩陣v計(jì)算下一輪系統(tǒng)動(dòng)作的算法步驟如下:
步驟1查找狀態(tài)轉(zhuǎn)移矩陣P中對(duì)應(yīng)當(dāng)前狀態(tài)為s的列向量Ps,將狀態(tài)s的轉(zhuǎn)移概率向量Ps轉(zhuǎn)化為01 向量Ts(轉(zhuǎn)移概率>0 節(jié)點(diǎn)的值取1),使用Ts對(duì)狀態(tài)值函數(shù)矩陣v進(jìn)行過(guò)濾,得到可能轉(zhuǎn)移的下一個(gè)向量s'和對(duì)應(yīng)的狀態(tài)值。
步驟2下一個(gè)狀態(tài)s'使得v*=v(s')最大,將s與s'進(jìn)行對(duì)比,找出s為0、s'為1 的槽位。若有多個(gè)槽位上的值不相同,則一一組合得出新的s',并過(guò)濾掉信息熵為0 的槽位,然后進(jìn)行狀態(tài)值大小的比較,例如當(dāng)前狀態(tài)s=S000000,查找到狀態(tài)值最大的下一狀態(tài)s′=S110000,得到第0 位和第1 位上的值不同,且信息熵都大于0,于是組合出新的s′={S100000,S010000},對(duì)比v(S100000)和v(S010000)的大小,得知v(S100000)>v(S010000),因此s′=S100000,下一輪的系統(tǒng)動(dòng)作應(yīng)為詢問(wèn)第一個(gè)槽位song,即Actsystem=request(song);若v(S100000)=v(S010000),則以信息熵的大小來(lái)選取系統(tǒng)動(dòng)作應(yīng)詢問(wèn)的槽位。
本文實(shí)驗(yàn)的背景是基于多輪對(duì)話的音樂(lè)搜索任務(wù),即用戶通過(guò)與音樂(lè)搜索系統(tǒng)進(jìn)行多輪次的對(duì)話從而完成音樂(lè)的查詢。系統(tǒng)通過(guò)生成一個(gè)音樂(lè)查詢問(wèn)題相關(guān)的目標(biāo),然后希望能夠經(jīng)過(guò)盡量少的對(duì)話輪次搜索到目標(biāo)歌曲。這個(gè)音樂(lè)搜索場(chǎng)景任務(wù)中共包含6 個(gè)槽,用于限定對(duì)話系統(tǒng)在數(shù)據(jù)庫(kù)中的查詢范圍,分別為歌曲名song、歌手singer、專輯album、作詞者lyricwriter、作曲者composer、歌曲標(biāo)簽label。曲庫(kù)中包含618 319 首歌曲,而不同的槽有不同的取值空間,真實(shí)情況下的曲庫(kù)槽位情況如表5 所示。
表5 曲庫(kù)中各個(gè)屬性的情況描述Table 5 Situation description of each attribute in the music database
系統(tǒng)隨機(jī)生成1 000 首目標(biāo)歌曲,并將它們對(duì)應(yīng)的6 個(gè)槽取值作為對(duì)話中的用戶目標(biāo)。通過(guò)搭建系統(tǒng)-用戶交互模擬器,構(gòu)建對(duì)話策略的測(cè)試環(huán)境。首先由模擬器隨機(jī)初始化用戶對(duì)話狀態(tài),然后通過(guò)對(duì)話策略模塊給出系統(tǒng)的應(yīng)答策略,模擬器根據(jù)給定的用戶目標(biāo)和每一輪次填充指定的槽信息,從而模擬系統(tǒng)-用戶對(duì)話。
由于展示界面的大小限制,在一個(gè)頁(yè)面中只能為用戶展示滿足用戶目標(biāo)約束的一定數(shù)量的歌曲列表,通常為10 首~20 首歌曲,表示為N。因此,系統(tǒng)根據(jù)搜索結(jié)果的歌曲數(shù)量,來(lái)確定下一輪的動(dòng)作為繼續(xù)詢問(wèn)request()還是給出歌曲列表offer(),可以通過(guò)式(6)進(jìn)行描述:
為證明本文提出的融合強(qiáng)化學(xué)習(xí)和屬性信息熵的對(duì)話策略方法的有效性,實(shí)驗(yàn)給出了融合算法與3 種對(duì)話策略算法的結(jié)果比較,分別是隨機(jī)選取系統(tǒng)詢問(wèn)目標(biāo)、基于填槽法的對(duì)話策略和基于信息熵的對(duì)話策略,3 種對(duì)比算法的具體描述如下:
1)隨機(jī)選取系統(tǒng)詢問(wèn)目標(biāo)
系統(tǒng)在未知槽中隨機(jī)選取下一輪詢問(wèn)的槽信息,向用戶進(jìn)行提問(wèn)。
2)基于填槽法的對(duì)話策略
填槽法通過(guò)人工制定槽屬性優(yōu)先級(jí)規(guī)則制定對(duì)話策略。用戶所知道的歌曲信息一般為大眾化屬性信息,例如歌曲名song、歌手singer 或?qū)]媋lbum,對(duì)于歌曲的作詞者lyricwriter、作曲者composer 和歌曲類型label 等屬性信息,用戶通常不能準(zhǔn)確說(shuō)出。基于此,在系統(tǒng)動(dòng)作為繼續(xù)詢問(wèn)request()時(shí),通過(guò)為不同的槽制定不同的優(yōu)先級(jí),來(lái)制定系統(tǒng)的應(yīng)答策略規(guī)則。各個(gè)音樂(lè)屬性的優(yōu)先級(jí)順序?yàn)椋簊ong >sin ger >album >lyricwriter >composer >label。
填槽法將對(duì)話過(guò)程看作是填槽的過(guò)程,系統(tǒng)按照屬性優(yōu)先級(jí)的順序向用戶進(jìn)行發(fā)問(wèn),依次填充音樂(lè)的屬性槽,直至屬性信息能夠被全部填充或者按照約束查詢曲庫(kù)得到的搜索結(jié)果數(shù)量小于設(shè)定的N,則代表實(shí)現(xiàn)對(duì)話目標(biāo)。
3)基于信息熵的對(duì)話策略
通過(guò)將每一輪已知槽信息轉(zhuǎn)化為知識(shí)庫(kù)查詢語(yǔ)句,得到歌曲的搜索結(jié)果,計(jì)算搜索結(jié)果中各個(gè)屬性的信息熵,選取信息熵最大的槽作為系統(tǒng)下一輪詢問(wèn)的槽。
在評(píng)價(jià)任務(wù)型對(duì)話系統(tǒng)中,對(duì)話策略模塊的有效性方法通常是從任務(wù)完成率和任務(wù)完成的智能程度的角度出發(fā),因此本文指定的評(píng)價(jià)標(biāo)準(zhǔn)主要從兩個(gè)方面來(lái)衡量對(duì)話策略的有效性和智能性,一是查詢目標(biāo)歌曲的成功率,二是完成任務(wù)所需的對(duì)話輪次。查詢目標(biāo)歌曲的成功率通過(guò)對(duì)話結(jié)束時(shí)給出的歌曲搜索列表來(lái)計(jì)算,若目標(biāo)歌曲在搜索列表的TopN中,則記為一次成功的查詢,實(shí)驗(yàn)中設(shè)定N=10,任務(wù)完成的成功率計(jì)算公式如下:
歌曲查詢?nèi)蝿?wù)完成的成功率越高,說(shuō)明策略模塊的有效性也越高。
同時(shí)記錄完成歌曲查詢?nèi)蝿?wù)所需要的對(duì)話輪次Numturn,認(rèn)為所需的對(duì)話輪次越少,對(duì)話策略的機(jī)制效率越高。
本文設(shè)定衰減因子γ分別取值為0.0、0.2、0.5、0.8、1.0,并在音樂(lè)曲庫(kù)數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果如表6 所示。
表6 實(shí)驗(yàn)評(píng)價(jià)結(jié)果Table 6 Results of experimental evaluation
從表1 的實(shí)驗(yàn)結(jié)果可以看出,雖然衰減因子γ對(duì)于融合強(qiáng)化學(xué)習(xí)算法的性能具有影響,但無(wú)論衰減因子γ取什么值,其結(jié)果都好于系統(tǒng)隨機(jī)引導(dǎo)以及基于規(guī)則的對(duì)話策略,且與基于信息熵的對(duì)話策略的性能接近。當(dāng)γ取值為0.8 時(shí)融合強(qiáng)化學(xué)習(xí)算法結(jié)果最好,為方便比較,本文設(shè)定衰減因子γ取值為0.8。
表7 所示為在音樂(lè)曲庫(kù)數(shù)據(jù)集上使用系統(tǒng)隨機(jī)引導(dǎo)、基于填槽法的對(duì)話策略、基于信息熵的對(duì)話策略和融合強(qiáng)化學(xué)習(xí)與信息熵的對(duì)話策略的實(shí)驗(yàn)結(jié)果。
表7 4 種策略的實(shí)驗(yàn)評(píng)價(jià)結(jié)果Table 7 Experimental evaluation results of four strategies
從表7 可以看出:
1)系統(tǒng)隨機(jī)引導(dǎo)與其他3 種改進(jìn)算法相比,前3 輪任務(wù)完成率明顯較低,相差20%左右,這是因?yàn)樵谌蝿?wù)中每個(gè)槽位的重要程度不同,并且針對(duì)不同的搜索目標(biāo)和不同結(jié)果列表的信息量不同,系統(tǒng)直接采用隨機(jī)的方式進(jìn)行引導(dǎo)詢問(wèn),會(huì)導(dǎo)致任務(wù)完成的效率偏低。
2)與系統(tǒng)隨機(jī)引導(dǎo)的對(duì)話策略相比,基于人工制定屬性槽優(yōu)先級(jí)的對(duì)話策略能夠顯著減少完成音樂(lè)搜索任務(wù)所需的對(duì)話輪次(從3.88 次到2.58 次),這是因?yàn)槿斯ざx屬性槽的優(yōu)先級(jí),將領(lǐng)域知識(shí)通過(guò)制定規(guī)則的方式添加到算法中,從而提升了對(duì)話策略的智能程度。
3)考慮搜索結(jié)果屬性信息熵的對(duì)話策略,在前3 輪任務(wù)完成率和對(duì)話輪次兩個(gè)評(píng)價(jià)標(biāo)準(zhǔn)中均有顯著的提升。與基于人工制定槽屬性優(yōu)先級(jí)的對(duì)話策略算法相比,基于屬性信息熵的對(duì)話策略方法由于考慮了每次搜索結(jié)果的屬性信息熵,從而動(dòng)態(tài)地計(jì)算了屬性槽位的信息含量,提升了對(duì)話策略的效率。
4)融合強(qiáng)化學(xué)習(xí)和屬性信息熵的對(duì)話策略方法與基于信息熵的對(duì)話策略相比,在兩項(xiàng)評(píng)價(jià)指標(biāo)上有略微的提升,通過(guò)個(gè)案分析得知,在搜索熱門歌手和歌曲時(shí),由于曲庫(kù)存在同一首歌的多個(gè)版本,各個(gè)槽位信息無(wú)法有效地將歌曲進(jìn)行完全劃分,因此結(jié)合基于表格的強(qiáng)化學(xué)習(xí)輔助進(jìn)行判斷,能夠幫助系統(tǒng)做出更有效的決策。
在垂直領(lǐng)域的任務(wù)型對(duì)話系統(tǒng)中,通常沒(méi)有針對(duì)特定領(lǐng)域的對(duì)話數(shù)據(jù)進(jìn)行模型訓(xùn)練,從而導(dǎo)致對(duì)話策略在真實(shí)應(yīng)用環(huán)境下的對(duì)話數(shù)據(jù)面臨冷啟動(dòng)的問(wèn)題。為此,本文提出了適用于知識(shí)庫(kù)搜索型對(duì)話系統(tǒng)的融合強(qiáng)化學(xué)習(xí)和屬性信息熵的對(duì)話策略,將對(duì)話決策過(guò)程抽象為一個(gè)馬爾科夫決策過(guò)程,利用強(qiáng)化學(xué)習(xí)來(lái)選擇下一步最優(yōu)對(duì)話狀態(tài),并引入屬性信息熵排除多個(gè)狀態(tài)值函數(shù)相同的最優(yōu)狀態(tài)的情況。在音樂(lè)搜索領(lǐng)域數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果驗(yàn)證了本文方法的有效性。雖然本文方法可以解決對(duì)話策略在完全冷啟動(dòng)場(chǎng)景下的問(wèn)題,但該方法屬于離線學(xué)習(xí),無(wú)法滿足對(duì)話系統(tǒng)隨著應(yīng)用場(chǎng)景的變化不斷調(diào)整的需要。因此,構(gòu)建支持在線學(xué)習(xí)和優(yōu)化的策略學(xué)習(xí)模型,實(shí)時(shí)獲取用戶與系統(tǒng)進(jìn)行交互的對(duì)話數(shù)據(jù)從而對(duì)模型進(jìn)行優(yōu)化,將是下一步的研究工作。