李龍華
摘要:會(huì)話系統(tǒng)為人機(jī)交互回答用戶提出的查詢和問題提供了一種靈活便捷的操作方法。常規(guī)的會(huì)話系統(tǒng)分為FAQ問答系統(tǒng)和任務(wù)型對(duì)話系統(tǒng)兩類。在FAQ問答系統(tǒng)中,用戶需要提供詳細(xì)具體的信息以方便系統(tǒng)檢索返回正確的答案,但是無法得到定制化的答案;在任務(wù)型對(duì)話系統(tǒng)中,用戶必須按照系統(tǒng)定義好的多輪對(duì)話交互路徑,才能達(dá)到最終的目標(biāo)結(jié)果。文章提出一種融合FAQ和任務(wù)對(duì)話樹的方法,解決FAQ和任務(wù)型對(duì)話樹各自的缺點(diǎn),同時(shí)允許領(lǐng)域?qū)<覄?chuàng)建對(duì)話樹,基于該對(duì)話樹生成訓(xùn)練數(shù)據(jù)。在實(shí)驗(yàn)環(huán)境下測(cè)試結(jié)果表現(xiàn)優(yōu)秀。
關(guān)鍵詞:對(duì)話系統(tǒng);FAQ問答;任務(wù)型對(duì)話;對(duì)話樹
中圖分類號(hào):TP18? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2023)34-0023-03
開放科學(xué)(資源服務(wù))標(biāo)識(shí)碼(OSID)
0 引言
2022年OpenAI發(fā)布了聊天機(jī)器人ChatGPT,在多輪對(duì)話、自然語言生成等技術(shù)表現(xiàn)優(yōu)異,在多語言交互自然語言理解任務(wù)方面,也具有很強(qiáng)的泛化能力[1]。人機(jī)對(duì)話系統(tǒng)作為人工智能自然語言處理的重要研究領(lǐng)域,并且相比搜索引擎其能夠快速回答用戶的問題,同時(shí)降低企業(yè)生產(chǎn)成本,廣泛應(yīng)用于電子商務(wù)后臺(tái)客服機(jī)器人、智能駕駛助手、智能家電控制、商場(chǎng)智能導(dǎo)購等場(chǎng)景[2-3]。
基于FAQ模式的對(duì)話系統(tǒng),可以直接匹配知識(shí)庫中定義好的問答對(duì)[4],只需領(lǐng)域?qū)<沂占⒚枋?、定義好系統(tǒng)輸出,確保問答對(duì)事實(shí)正確,即可快速返回用戶查詢信息[5]??墒荈AQ模式無法對(duì)特定需求用戶給出定制化答復(fù),比如,冰箱怎么調(diào)節(jié)出行模式,這依賴于冰箱型號(hào)和功能,如果把所有可能調(diào)節(jié)方式都羅列到一個(gè)答復(fù)中,答案就會(huì)變得冗長難以理解。另外,如果把所有冰箱型號(hào)的調(diào)節(jié)出行模式都放到知識(shí)庫問答對(duì)中,問答對(duì)的數(shù)量也將非常龐大,對(duì)檢索效率也是一個(gè)不小的挑戰(zhàn)。此外,F(xiàn)AQ對(duì)檢索精度要求非常高,如果只返回第一個(gè),而第一個(gè)答案可能是錯(cuò)誤的,可是如果返回多個(gè)候選答案,用戶面對(duì)眾多的答案在篩選過程中也會(huì)變得煩瑣[6]。所以,F(xiàn)AQ系統(tǒng)期望用戶能夠提供具體詳細(xì)的信息,以此提高檢索的精度。但是對(duì)于普通用戶可能并不熟悉這樣一個(gè)復(fù)雜的系統(tǒng),無法給出特定問題描述。
基于任務(wù)型的對(duì)話系統(tǒng),可以基于多輪對(duì)話技術(shù)引導(dǎo)意圖模糊的用戶逐步達(dá)到最終的目標(biāo)[7],用戶提供簡短的、不必詳細(xì)具體的問題描述,系統(tǒng)即可以給出定制化的答案。然而,基于語義框架的任務(wù)型對(duì)話不僅需要大量的訓(xùn)練數(shù)據(jù)來訓(xùn)練一個(gè)泛化能力強(qiáng)的語義理解模型,而且對(duì)話管理系統(tǒng)也很復(fù)雜,很難控制領(lǐng)域意圖的邊界。所以,基于人工設(shè)計(jì)的任務(wù)流方式的對(duì)話系統(tǒng)依舊應(yīng)用廣泛,比如,百度的Unit、Google的DialogFlow等系統(tǒng),不需要過多的訓(xùn)練數(shù)據(jù),而且在特定的垂域場(chǎng)景下,對(duì)于非技術(shù)人員的領(lǐng)域?qū)<遥柚鷪D形界面即可以創(chuàng)建場(chǎng)景對(duì)話樹,更好的設(shè)計(jì)系統(tǒng)的交互行為[8]。然而,任務(wù)型對(duì)話系統(tǒng)對(duì)于有經(jīng)驗(yàn)的用戶的具體詳細(xì)的問題,依舊需要進(jìn)行多輪交互逐步得到期望信息,而不能直接快速地給出答案。
在實(shí)際應(yīng)用系統(tǒng)中,通常會(huì)設(shè)計(jì)一個(gè)分類架構(gòu)將FAQ問答與任務(wù)對(duì)話組合使用,即訓(xùn)練一個(gè)分類器用于判斷用戶請(qǐng)求屬于哪種對(duì)話類型,如圖1所示,這種方案依舊無法克服兩種對(duì)話模式的缺點(diǎn)。
針對(duì)上述兩種對(duì)話模式各有的優(yōu)缺點(diǎn),本文提出了:1) 一種融合FAQ問答與任務(wù)流對(duì)話樹的方法;并且在該方法中;2) 領(lǐng)域?qū)<乙琅f專注于創(chuàng)建任務(wù)流對(duì)話樹,系統(tǒng)基于該對(duì)話樹自動(dòng)生成模型訓(xùn)練數(shù)據(jù);3) 解決了FAQ問答的回復(fù)冗長無法定制化問題,同時(shí)針對(duì)用戶提供的模糊信息,保留了對(duì)話系統(tǒng)澄清引導(dǎo)的優(yōu)勢(shì),達(dá)到最終目標(biāo)。
1 FAQ問答與任務(wù)流對(duì)話樹融合方法
本文提出的融合方法通過遍歷對(duì)話樹達(dá)到目標(biāo)節(jié)點(diǎn),輸出目標(biāo)節(jié)點(diǎn)的內(nèi)容,只有在必要的時(shí)刻向用戶提出澄清引導(dǎo)交互,輸出定制化回答。
給定一個(gè)對(duì)話樹有向圖G:
[G=(V,E)]
其中:
[V]表示所有節(jié)點(diǎn)的集合;
[E]表示所有的邊集合。
對(duì)話樹的每個(gè)節(jié)點(diǎn)定義了兩種交互類型ASK和GOTO,ASK表示澄清并輸出節(jié)點(diǎn)的內(nèi)容,GOTO表示跳轉(zhuǎn)到下一個(gè)節(jié)點(diǎn)并輸出節(jié)點(diǎn)內(nèi)容。任意節(jié)點(diǎn)v所關(guān)聯(lián)的邊的集合定義如下:
[Ev=ASKv,GOTOv,vi,...,GOTOv,vk]
其中:
[ASKv=(v,v)] 表示節(jié)點(diǎn)v到自身的邊;
[GOTOv,vi=(v,vi)] 表示節(jié)點(diǎn)[v]到節(jié)點(diǎn)[vi]的邊。
對(duì)話交互過程即是依據(jù)用戶的輸入[U],系統(tǒng)從起始節(jié)點(diǎn)[s]開始,找到一條到達(dá)目標(biāo)節(jié)點(diǎn)[g]的路徑[p]:
[p=(ASKs,GOTOs,vi,...,ASK(g))]
其中[g∈V],要求[|ASKv|v ∈ V ,ASKv∈ p|]最小,如圖2所示。
任務(wù)型對(duì)話是從起始節(jié)點(diǎn)開始不斷經(jīng)過中間節(jié)點(diǎn)的跳轉(zhuǎn)最終達(dá)到目標(biāo)節(jié)點(diǎn)的交互過程。用戶輸入U(xiǎn)與起始節(jié)點(diǎn)計(jì)算相似度達(dá)到閾值則跳轉(zhuǎn)到相鄰的中間節(jié)點(diǎn),如果中間節(jié)點(diǎn)為ASK類型,則輸出節(jié)點(diǎn)文本并等待用戶再次輸入。這個(gè)過程中用戶不斷輸入[U1...Un]與中間節(jié)點(diǎn)計(jì)算相似度,不斷跳轉(zhuǎn)到其他節(jié)點(diǎn),最終達(dá)到目標(biāo)節(jié)點(diǎn)。
FAQ問答,如果用戶輸入U(xiǎn)與起始節(jié)點(diǎn)計(jì)算相似度未達(dá)到閾值,則按照廣度優(yōu)先遍歷對(duì)話樹,在遍歷過程中,如果節(jié)點(diǎn)為ASK類型,則保留節(jié)點(diǎn)的答案,并與用戶輸入U(xiǎn)計(jì)算相似度。直到在遍歷過程中相似度達(dá)到閾值,則輸出該節(jié)點(diǎn)的內(nèi)容,如果該節(jié)點(diǎn)是ASK類型,則等待用戶輸入,如果是GOTO類型,則繼續(xù)跳轉(zhuǎn)到中間節(jié)點(diǎn),直到目標(biāo)節(jié)點(diǎn)。如圖3,是兩種會(huì)話方式融合的一個(gè)交互例子。
在圖3中,是領(lǐng)域?qū)<以O(shè)計(jì)的一個(gè)與查詢?nèi)蝿?wù)有關(guān)的對(duì)話樹,如果用戶直接提供具體的詳細(xì)的輸入,系統(tǒng)經(jīng)過廣度遍歷計(jì)算相似度達(dá)到目標(biāo)節(jié)點(diǎn)輸出,即虛線路徑。如果用戶給出模糊的輸入,系統(tǒng)會(huì)進(jìn)行多輪引導(dǎo)交互逐步達(dá)到目標(biāo)節(jié)點(diǎn),即實(shí)線路徑。如果按照傳統(tǒng)的分類架構(gòu)方案,用戶的輸入“立式帶屏幕的空調(diào)怎么調(diào)節(jié)溫度”往往會(huì)落入到知識(shí)問答對(duì)檢索任務(wù)中,給出籠統(tǒng)的概述的輸出,而不是定制化的輸出。
在遍歷對(duì)話樹節(jié)點(diǎn)的過程中,本文采用了SimBERT為相似度計(jì)算的基礎(chǔ)模型。當(dāng)對(duì)話樹創(chuàng)建完成后,反向遍歷各個(gè)節(jié)點(diǎn)的內(nèi)容(文本和答案),如果是ASK類型節(jié)點(diǎn),則將節(jié)點(diǎn)的文本和答案擴(kuò)展為訓(xùn)練數(shù)據(jù)。同時(shí)引入數(shù)據(jù)增強(qiáng)模塊,對(duì)訓(xùn)練數(shù)據(jù)進(jìn)行擴(kuò)充,以提高模型的泛化能力。
2 實(shí)驗(yàn)結(jié)論及分析
2.1 實(shí)驗(yàn)數(shù)據(jù)集合
通過真實(shí)用戶后臺(tái)交互數(shù)據(jù),統(tǒng)計(jì)了一個(gè)月內(nèi)高頻數(shù)據(jù),并從中隨機(jī)抽取了1 000條數(shù)據(jù)作為對(duì)比實(shí)驗(yàn)數(shù)據(jù)集。示例數(shù)據(jù)如表1所示。
從示例數(shù)據(jù)中可以看出,用戶的問題范圍比較發(fā)散,設(shè)計(jì)家電多個(gè)功能的查詢與控制,能更好地測(cè)評(píng)系統(tǒng)回答的效果。
2.2 對(duì)比試驗(yàn)
為了對(duì)比本文提出的方法的有效性,同時(shí)在服務(wù)器上部署了兩個(gè)服務(wù),一個(gè)是原系統(tǒng)服務(wù),一個(gè)是基于本文方法開發(fā)的新服務(wù)。針對(duì)兩個(gè)服務(wù)輸入相同的實(shí)驗(yàn)數(shù)據(jù)集,從回答的正確性和定制化友好性兩個(gè)維度進(jìn)行人工評(píng)測(cè),回答正確得1分,不正確得0分,回答定制化友好得1分,不友好得0分。對(duì)比實(shí)驗(yàn)得分如表2所示。
通過表2可以看出,在相同的數(shù)據(jù)集中,基于本文方法開發(fā)的新系統(tǒng),在正確性和定制友好性都有明顯提升,尤其是在回答定制友好性方面,提升了157條數(shù)據(jù)。
針對(duì)定制友好性提升顯著的數(shù)據(jù),本文從句法復(fù)雜度方面做了進(jìn)一步分析,簡單句是指句子只有一個(gè)主謂賓結(jié)構(gòu)或者動(dòng)賓結(jié)構(gòu)的句子,復(fù)雜句是指含有狀語、賓補(bǔ)等成分的句子,含有子句或者多個(gè)謂語動(dòng)詞的句子,如表3所示。
通過表3可以看出,在查詢功能數(shù)據(jù)下共提升127條,提升效果明顯,說明本文提出的方法能夠較好地解決FAQ類型問答輸出的答案過于籠統(tǒng)、無法定制化的問題。同時(shí),在復(fù)雜的陳述句數(shù)據(jù)下本文方法也有少量提升,提升效果不如疑問句,是因?yàn)樵到y(tǒng)服務(wù)在陳述句命令控制方面做了長久的研發(fā)與優(yōu)化工作。
3 總結(jié)與展望
本文提出了一種FAQ問答與對(duì)話樹融合的方法,既保留了任務(wù)型問答的澄清引導(dǎo)優(yōu)勢(shì),也解決了FAQ問答的回復(fù)籠統(tǒng)冗長問題。并且利用實(shí)際用戶數(shù)據(jù)訓(xùn)練了一個(gè)相似度計(jì)算模型,針對(duì)用戶輸入該模型可以兼容一定的噪音數(shù)據(jù),整個(gè)方案在實(shí)際應(yīng)用中相比傳統(tǒng)分類框架取得了較好的效果。但是本文仍舊存在不足,需要再持續(xù)研究優(yōu)化:1) 如果用戶輸入的是對(duì)話樹沒有設(shè)計(jì)的內(nèi)容,模型和框架表現(xiàn)較差,仍舊需要傳統(tǒng)FAQ問答對(duì)檢索方式進(jìn)行回答;2) 完全基于框架自動(dòng)生成的訓(xùn)練數(shù)據(jù)量還不是很充足,為了保證相似度模型的泛化能力需要引入數(shù)據(jù)增強(qiáng)工作,將來需要研究小樣本學(xué)習(xí)技術(shù),解決該問題。
參考文獻(xiàn):
[1] 車萬翔,竇志成,馮巖松,等.大模型時(shí)代的自然語言處理:挑戰(zhàn)、機(jī)遇與發(fā)展[J].中國科學(xué):信息科學(xué),2023,53(9):1645-1687.
[2] 李蘋.基于深度學(xué)習(xí)的FAQ問答系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D].武漢:華中科技大學(xué),2021.
[3] 楊帆,饒?jiān)?,丁毅,?面向任務(wù)型的對(duì)話系統(tǒng)研究進(jìn)展[J].中文信息學(xué)報(bào),2021,35(10):1-20.
[4] 王讓.基于文本語義匹配的FAQ問答系統(tǒng)的研究與設(shè)計(jì)[D].北京:北京郵電大學(xué),2021.
[5] WU C H,YEH J F,CHEN M J.Domain-specific FAQ retrieval using independent aspects[J].ACM Transactions on Asian Language Information Processing,2005,4(1):1-17.
[6] THAKUR N,REIMERS N,RüCKLé A,et al.BEIR:a heterogenous benchmark for zero-shot evaluation of information retrieval models[EB/OL].[2022-10-20].2021:arXiv:2104.08663.https://arxiv.org/abs/2104.08663.pdf.
[7] 張新萍.端到端任務(wù)型對(duì)話系統(tǒng)的研究與實(shí)現(xiàn)[D].長春:長春工業(yè)大學(xué),2023.
[8] 趙陽洋,王振宇,王佩,等.任務(wù)型對(duì)話系統(tǒng)研究綜述[J].計(jì)算機(jī)學(xué)報(bào),2020,43(10):1862-1896.
【通聯(lián)編輯:光文玲】