張 駿,楊 燕,霍 沛,孫宇翔,李程烽,李 勇
(華東師范大學 計算機科學與技術(shù)學院,上海 200062)
近年來,面向推薦的對話系統(tǒng)引起人們廣泛的關(guān)注[1-4]。該系統(tǒng)是指集成對話和推薦的人機交互系統(tǒng)。過去的研究主要集中在單一類型的對話系統(tǒng): 任務型或非任務型對話系統(tǒng)。任務型對話系統(tǒng)通過預先定義的槽匹配用戶的偏好,而非任務型對話系統(tǒng)通過從數(shù)據(jù)集學習對話策略,然后在沒有槽的情況下進行推薦。然而,在真實的應用場景下,對話往往同時涉及多種類型的對話,如閑聊、問答、推薦等[5-7]。如圖1所示,面向推薦的多類型對話通過一條隱含的對話目標路徑自然地獲取用戶偏好并向用戶推薦合適的項目。上述示例中,系統(tǒng)先與用戶進行寒暄,然后詢問用戶喜歡的電影與演員,并與用戶圍繞“林志穎”進行閑聊,最后向用戶推薦其可能感興趣的“林志穎”的電影。此外,在該過程中需要涉及很多外部知識,如“林志穎-簡介-不老男神”、“林志穎-主演-《一屋哨牙鬼》”等。因此,多類型對話推薦比單一類型對話推薦具有更高的用戶吸引力和用戶滿意度。如何構(gòu)建面向推薦的多類型對話系統(tǒng)就顯得尤為重要。
圖1 面向推薦的多類型對話示例 注: 左邊區(qū)域為對話過程,右邊區(qū)域為提供的外部知識和用戶畫像。下劃線標注的詞是涉及外部知識的詞。目標序列是根據(jù)真實對話進行標注的,每個目標對應一段多輪對話以及一個對話類型。
Liu等[8]首次提出了具有多目標驅(qū)動的對話策略機制的對話系統(tǒng)框架,并通過基于該框架的檢索模型與生成模型實現(xiàn)面向推薦的多類型對話。該框架首先預測最可能的對話目標序列,然后將對話目標序列與對話歷史、外部知識相結(jié)合,預測出最合適的回復。其中,基于檢索的方法根據(jù)詢問對預先準備的所有可能的回復進行排序,然后選擇最佳的回復,即詢問—應答匹配。該方法具有合理性、流暢性和可控性的優(yōu)點,但存在長尾效應和難以定制的缺點。而基于生成的方法更加靈活,克服了基于檢索方法的不足。它從數(shù)據(jù)集中學習回復的語言表達形式,可以生成從未在訓練集中出現(xiàn)的回復。然而,在Liu等[8]提出的模型中,對話目標規(guī)劃路徑模塊與對話輸出模塊是分離的,使得上述模型存在誤差累積的問題。
本文提出端到端的基于Transformer的知識感知的生成模型(knowledge-aware generative model based on Transformer,KGMT)(1)https://github.com/562225807/recommandation-dialog-system,實現(xiàn)面向推薦的多類型對話系統(tǒng)。KGMT在Transformer解碼器結(jié)構(gòu)的基礎(chǔ)上引入兩個新穎的組件: 知識編碼器和基于知識詞表的Copy機制。知識編碼器將每個知識表示為句子級別特征,并作為Transformer解碼器的輸入。Transformer解碼器將類型向量與位置向量加入輸入向量中隱式地建模對話目標序列,從而解決誤差累積的問題。另一方面,該解碼器使用多頭注意力機制選取合適的外部知識進行解碼,減少與用戶詢問無關(guān)的知識產(chǎn)生的噪聲。Copy機制將生成的通用詞匯替換為來自知識詞表的詞匯,以增加回復的知識信息量。本文將KGMT模型在DuRecDial數(shù)據(jù)集[8]上進行訓練與評估,以此驗證模型的有效性。實驗表明,KGMT模型對比其他基線模型在各項指標上取得了很大的性能提升。在面向推薦的多類型對話任務中,KGMT模型能夠選擇合適的外部知識生成信息更豐富、語句更連貫、內(nèi)容更適當?shù)幕貜?,從而完成每一個對話目標,并且主動引導用戶進行下一個對話目標,最終完成對話推薦任務。
過去的面向推薦的對話系統(tǒng)主要可以分為兩類: ①任務型對話建模方法。該方法中系統(tǒng)通過預先定義的槽匹配用戶的偏好[2-3,9-10]; ②非任務型對話建模方法。在沒有預定義槽的情況下,模型從數(shù)據(jù)集中學習對話策略[1,4,11-12]。目前的推薦型對話研究趨向于融合多種類型的對話來完成推薦任務。其中,Liu等[8]提出具有多目標驅(qū)動的對話策略機制的對話系統(tǒng)框架。該框架由目標規(guī)劃模塊和目標導向響應模塊組成。目標規(guī)劃模塊控制對話流,根據(jù)用戶的興趣和在線反饋,為自然的話題轉(zhuǎn)換制定合適的短期目標。目標導向響應模塊選擇合適的回復完成每一個對話目標。該框架在不同的模塊間會產(chǎn)生誤差累積的問題。而本文提出能夠隱式地建模對話目標路徑的端到端模型,可以從無標注的數(shù)據(jù)中自動地學習到合適的對話策略,并解決了上述問題。
近年來,生成式對話系統(tǒng)由于其極大的靈活性而引起人們越來越多的關(guān)注。Sutskever等[13]首次采用生成式的序列到序列(sequence to sequence,Seq2Seq)模型進行對話建模。Seq2Seq模型首先采用編碼器編碼對話歷史,然后通過解碼器生成回復。Vaswani等[14]提出了基于Transformer的編碼—解碼器結(jié)構(gòu)來解決循環(huán)神經(jīng)網(wǎng)絡不能并行計算的局限性。因此,基于Transformer的生成式模型引起了廣泛的關(guān)注。Wolf等[15]采用了基于單個Transformer解碼器生成個性化的回復。Budzianowski等[16]將預訓練的GPT-2模型用于任務型對話任務。
盡管這些模型已經(jīng)取得了較好的效果,但是仍然會生成類似“我不知道”這類通用的、無意義的回復。為了進一步提高生成的回復的質(zhì)量,Marjan等[17]使用記憶網(wǎng)絡獲取外部知識庫中的信息,將Seq2Seq方法推廣到基于知識的神經(jīng)對話模型中。Lian等[18]通過對話歷史以及回復的后驗分布,監(jiān)督模型選取和詢問相關(guān)的知識,從而增強回復的信息。上述模型通過知識的全局信息提升回復的質(zhì)量,而本文提出的模型從詞的角度出發(fā),通過基于知識詞表的Copy機制顯著地提高生成的知識詞匯的準確率,進而提高推薦質(zhì)量。
圖2為本文提出的KGMT模型結(jié)構(gòu)圖,模型包含了三個組成部分: 知識編碼器、Transformer解碼器和基于詞表的Copy機制。首先,知識編碼器通過雙向長短期記憶網(wǎng)絡(Bi-LSTM)[19]將知識編碼為句子級別的向量。然后,知識向量與詞級別的對話歷史向量拼接為Transformer解碼器的輸入,經(jīng)過解碼輸出特征表示。最后,通過基于詞表的Copy機制提高回復中的知識的準確性,使得模型在合適的位置選擇準確的知識詞匯,加入到生成的回復中。
圖2 KGMT模型結(jié)構(gòu)注: 左上角為輸入示例,其中省略了外部知識、用戶畫像。
知識編碼器用于向模型引入外部知識。數(shù)據(jù)集中的知識被表示為三元組(he,R,te),其中he表示頭實體,r表示關(guān)系,te表示尾實體。本文將三元組拼接為新的知識項,第i條知識ki被表示為[he;R;te]。此外,本文將用戶畫像中的姓名和性別作為新的知識項,用于獲取用戶相關(guān)的信息。知識編碼器使用Bi-LSTM將ki編碼為隱藏表示,在t時刻的隱藏表示hi,t計算如式(1)~式(3)所示。
其中,Emb(xt)為知識ki中第t個詞的詞向量,[·;·]表示向量拼接操作。最后時刻的隱藏狀態(tài)表示hi,t被表示為知識ki的句子級別向量hi。
其中,WQ,WK,WV均為可訓練參數(shù),hn為注意力頭的個數(shù)。
對于知識驅(qū)動的對話聊天機器人,一個重要的能力是根據(jù)給定的知識來生成回復。為了增強生成的知識詞匯的準確性與信息性,基于知識詞表的Copy機制[20]被用于實現(xiàn)從知識詞表中復制與對話相關(guān)的知識詞匯。它使用門控單元pgen,t控制選擇普通詞表詞匯或者是知識相關(guān)的詞表詞匯。pgen,t計算過程如式(7)所示。
pgen,t=sigmoid(Wsst+b)
(7)
其中,Ws與b為可訓練參數(shù),st為經(jīng)過Transformer解碼器獲得的隱藏狀態(tài)表示。因此,t時刻輸出詞表的概率pt計算過程如式(8)~式(10)所示。
為了構(gòu)建與當前對話相關(guān)的知識詞表,本文把外部知識中所有的詞組成一個新的詞表。其中的標點符號、停用詞被刪除,留下的詞匯組成當前對話的知識詞表。
每個樣本的損失函數(shù)定義為最小化目標分布pt與真實分布ot交叉熵誤差。其中真實分布ot為one-hot向量。損失函數(shù)計算如式(11)所示。
(11)
本文使用DuRecDial數(shù)據(jù)集進行模型效果的評估。數(shù)據(jù)集包含10 190組多輪對話,共計155 477個句子,涵蓋多類型的對話目標,包括寒暄、推薦、問答等。本文將數(shù)據(jù)集分為50 398組數(shù)據(jù)的訓練集,7 272組數(shù)據(jù)的驗證集和4 645組數(shù)據(jù)的測試集。每組數(shù)據(jù)由以下五個部分組成:
(1) 對話目標: 描述真實對話目標路徑。
(2) 用戶畫像: 描述用戶身份和喜好。
(3) 對話場景: 描述對話發(fā)生的場景,包括時間、情景狀態(tài)。
(4) 外部知識庫: 由多條與當前對話相關(guān)的知識三元組組成。
(5) 對話歷史: 由符合對話目標序列和對話場景的一對一多輪對話組成。
本文使用Pytorch實現(xiàn)模型,詞向量維度為768,詞表大小為29 920。Bi-LSTM中的單向隱藏層大小為384。Transformer中多頭注意力頭個數(shù)為12,Transformer解碼器堆疊層數(shù)為12,mini-batch大小設置為4,學習率為1e-5。模型在整個訓練集上訓練10輪,在GPU-P100上訓練了8個小時。
本文使用了如下模型與KGMT模型進行對比: ①2020語言與智能技術(shù)競賽自動評估前十團隊模型; ②MGCG_R: 為Liu等[8]提出的檢索式模型; ③MGCG_G: 為Liu等[8]提出的生成式模型。
為了展現(xiàn)Copy模塊的有效性和預訓練詞向量對KGMT模型的影響,本文采用如下消融實驗: (1)KGMT-CP: 不包含Copy機制的KGMT模型; (2)KGMT+Emb: 使用了BERT預訓練詞向量的KGMT模型。
評估指標: 本文使用了如下幾個常用的自動評估標準,包括BLEU[21]、F1[8]和Distinct[22]。BLEU用于計算預測的回復與真實回復的詞重疊程度,本文的BLEU是指BLEU-2。F1用于評估預測的回復與真實回復在字級別上的精準度。BLEU與F1均用于評估生成的回復與真實回復的相似性。Distinct評估生成的回復在詞級別的多樣性,本文的Distinct指Distinct-2。
評估結(jié)果: 表1展示的是自動評估的結(jié)果,第2行至第11行是最終前十團隊模型的評估結(jié)果,KGMT模型在2020語言與智能技術(shù)競賽的自動評估中獲得第三名。第12行至第13行是MGCG框架模型MGCG_R與MGCG_G的評估結(jié)果,KGMT模型相比于MGCG框架模型在各個指標上均呈現(xiàn)很大的性能提升。其中F1指標上,KGMT較MGCG_G提高59.08%。在BLEU和Distinct指標上KGMT較MGCG_R分別提高了110.00%和66.14%。這表明KGMT模型能夠生成更流暢、更具有信息性和更多樣性的回復。MGCG_G與MGCG_R模型缺少對外部知識精確生成的控制,因此在F1與BLEU指標上有所不足,而KGMT在Transformer結(jié)構(gòu)的基礎(chǔ)上采用基于詞表的Copy機制,很大地提高了外部知識生成的精準性。第14行至第15行是消融實驗結(jié)果,從消融實驗可以看出,去除基于詞表的Copy機制使得KGMT模型的F1、BLEU和Distinct急劇下降,說明模型在不用對話目標下有效地利用了外部知識。此外,去除Copy機制使得模型生成結(jié)果多樣性變低,也證明了特定的知識詞匯的生成比例減少。使用BERT預訓練詞向量之后,各項指標降低,這是因為對話中包含與領(lǐng)域知識相關(guān)的詞匯較多。BERT預訓練模型不能很好地初始化這些詞匯,從而增加了模型訓練的噪聲。
表1 自動評估結(jié)果
評估指標: 本文采用單輪評估和多輪評估。單輪評估中,對話系統(tǒng)根據(jù)對話歷史與外部知識生成下一句回復,評估人員對回復在流利度、適當度、信息量和主動性上進行評估。多輪評估中,評估人員與對話系統(tǒng)進行一對一多輪推薦對話,并對系統(tǒng)在語言連貫性和任務成功率方面進行評估。
評估結(jié)果: 表2展示的是前五獲獎隊伍的人工評估結(jié)果。模型在單輪評估中流利度、適當度、信息量和主動性分別為0.961、0.843、0.453、0.693,在多輪評估中成功率和連貫性指標為0.745和0.91。此評估結(jié)果在2020語言與智能技術(shù)競賽: 面向推薦的對話任務中獲得第三名。
表2 人工評估結(jié)果
圖3展示的是本文提出的KGMT模型的對話生成樣例。示例展現(xiàn)了KGMT模型能夠通過多種對話類型主動地獲取用戶的喜好,并自然地向用戶推薦合適的電影。從問答和推薦的精確度來看,KGMT能夠?qū)⑴c對話目標相關(guān)的外部知識精準融入到生成的回復中。例如,當需要為用戶推薦“張柏芝”的電影時,模型能夠準確地從外部知識中獲取該明星主演的電影以及電影類型,并反饋給用戶。但當我們將知識感知模塊從模型中刪除時,即KGMT-CP模型,該模型生成的回復中出現(xiàn)的電影以及電影類型均是有誤的,其獲取的知識準確性就明顯下降,這是由于模型傾向于生成訓練集中出現(xiàn)頻率高的詞匯。從回復的流暢性角度來看,KGMT模型生成的回復在語法和語義表達方面都非常準確。此外,模型能夠根據(jù)用戶的喜好,主動與用戶交流其感興趣的話題,比如示例中,主動生成用戶喜歡的明星的相關(guān)回復。
圖3 不同模型生成的對話樣例注: 下劃線標注的詞是涉及外部知識的詞,具有灰色背景的詞是與外部知識不符合的詞。
本文針對面向推薦的多類型對話任務,提出了基于Transformer的具備知識感知能力的生成模型(knowledge-aware generative model based on transformer,KGMT)。該模型在Transformer解碼器的基礎(chǔ)上引入知識編碼器和基于知識詞表的Copy機制。實驗證明,模型能夠生成信息更豐富、語句更連貫的回復,并且能夠主動引導對話最終完成推薦任務,為構(gòu)建具有知識感知能力的面向推薦的人機對話系統(tǒng)提供了有價值的參考。