許璧麒,馬志強(qiáng),2+,周鈺童,賈文超,劉 佳,呂 凱
1.內(nèi)蒙古工業(yè)大學(xué)數(shù)據(jù)科學(xué)與應(yīng)用學(xué)院,呼和浩特 010080
2.內(nèi)蒙古工業(yè)大學(xué)內(nèi)蒙古自治區(qū)基于大數(shù)據(jù)的軟件服務(wù)工程技術(shù)研究中心,呼和浩特 010080
對話系統(tǒng)作為人工智能領(lǐng)域最重要的分支之一,目標(biāo)是使機(jī)器通過人類語言與人進(jìn)行交互,并具有極大的學(xué)術(shù)價(jià)值和商業(yè)價(jià)值,而同時(shí)也面臨著巨大的挑戰(zhàn)。早在1950 年,圖靈在Mind[1]上發(fā)表文章提出了采用人機(jī)交互的方式來檢驗(yàn)機(jī)器智能,之后國內(nèi)外研究者們對如何建立對話系統(tǒng)展開了深入的研究。目前主要的對話系統(tǒng)主要包括任務(wù)型對話系統(tǒng)和開放域?qū)υ捪到y(tǒng)。任務(wù)型對話系統(tǒng)致力于幫助用戶完成任務(wù),而開放域?qū)υ捪到y(tǒng)的主要目的是產(chǎn)生與人類相似的回復(fù),從而提高用戶的使用體驗(yàn)。開放域?qū)υ捪到y(tǒng)的良好表現(xiàn)是人機(jī)交互的最終目標(biāo),因此成為了自然語言研究領(lǐng)域最具吸引力的領(lǐng)域之一[2-6]。盡管研究者們提出了多種用于對話生成的模型,但這些模型通常會(huì)生成通用的回復(fù),并不能提供適當(dāng)?shù)男畔ⅲ蛟谟谶@些模型僅能從對話數(shù)據(jù)中學(xué)習(xí)語義交互,而并不能深入理解用戶輸入、背景知識(shí)和對話上下文。因此,研究者們發(fā)現(xiàn),外部知識(shí)是人類在對話中打算使用的知識(shí)信息,如果模型能夠訪問和充分利用外部知識(shí),那么它就可以更好地理解對話,從而生成恰當(dāng)?shù)幕貜?fù),推動(dòng)對話的順利進(jìn)行。最近,為了解決這一問題,研究者們嘗試通過引入外部知識(shí)來增強(qiáng)對話生成模型對輸入語句的理解,使對話生成模型利用外部知識(shí)中提供的信息來生成擬人的回復(fù)。
知識(shí)驅(qū)動(dòng)對話生成任務(wù)旨在利用不同形式的知識(shí)來強(qiáng)化對話生成模型來生成更合理、更具多樣性、更富含信息量和擬人的回復(fù)。Lowe等[7]和Dodge等[8]最早嘗試在對話系統(tǒng)中引入外部知識(shí),提出了知識(shí)驅(qū)動(dòng)的對話生成任務(wù)。目前,研究者們針對對話生成模型引入外部知識(shí)展開了一些研究,這些引入的知識(shí)可以分為結(jié)構(gòu)化知識(shí)和非結(jié)構(gòu)化知識(shí)。結(jié)構(gòu)化知識(shí)也可以被稱為知識(shí)圖譜,以知識(shí)三元組的形式存在,目前常用的知識(shí)圖譜根據(jù)儲(chǔ)存內(nèi)容的不同可以分為:通用知識(shí)圖譜、行業(yè)知識(shí)圖譜和任務(wù)知識(shí)圖譜。其中通用知識(shí)圖譜有YAGO[9]、Wikidata[10]、Freebase[11]、DBpedia[12]、ConceptNet[13]等;行業(yè)知識(shí)圖譜有MusicBrainz[14]、GeoNames[15]、DrugBank[16]等;任務(wù)知識(shí)圖譜有WikiM[17]、DB111K-174[18]、IsaCore[19]等。結(jié)構(gòu)化知識(shí)便于檢索,能夠有效地表示出不同實(shí)體之間的關(guān)聯(lián)信息。Xu 等[20]將一個(gè)結(jié)構(gòu)化的特定領(lǐng)域的知識(shí)庫整合到一個(gè)具有回憶門機(jī)制的對話生成模型中。Zhu 等[21]提出了一個(gè)使用復(fù)制網(wǎng)絡(luò)的端到端的對話生成模型,并引入結(jié)構(gòu)化知識(shí)。Zhou 等[22]將大規(guī)模的常識(shí)知識(shí)引入到對話生成模型中,使用動(dòng)態(tài)注意力促進(jìn)模型更好地生成回復(fù)。Liu等[23]將知識(shí)圖譜和文本文檔互相融合,產(chǎn)生了相互強(qiáng)化的優(yōu)勢,進(jìn)一步強(qiáng)化了模型生成對話的能力。然而,由于結(jié)構(gòu)化知識(shí)存在著有效信息少的問題。越來越多的研究者們開始關(guān)注如何引入非結(jié)構(gòu)化知識(shí)到開放域?qū)υ捪到y(tǒng)中,這種知識(shí)通常由文本形式的事實(shí)描述組成,其中包含了豐富的語義信息,可以有效促進(jìn)對話生成,在開放域?qū)υ拡鼍爸械玫綇V泛應(yīng)用。Zhou 等[24]提出了一個(gè)基于文檔的數(shù)據(jù)集,并且將文檔中的知識(shí)和對話歷史拼接在一起送入解碼器中以生成回復(fù)。Li 等[25]設(shè)計(jì)了一個(gè)增量變換器來編碼多回合的話語以及相關(guān)文檔中的知識(shí),來提高對話生成模型對話上下文的一致性和知識(shí)相關(guān)性。
研究知識(shí)驅(qū)動(dòng)的對話生成模型是非常有價(jià)值的研究方向,目前相關(guān)工作仍處于初期探索階段。對于知識(shí)驅(qū)動(dòng)對話生成模型這一方向尚未形成一致的明確定義和通用的框架,并且現(xiàn)有成果還未經(jīng)過全面梳理和系統(tǒng)總結(jié)。本文將知識(shí)驅(qū)動(dòng)的對話生成模型作為研究對象,歸納并詳細(xì)描述了知識(shí)驅(qū)動(dòng)的對話生成研究涉及的問題,同時(shí)重點(diǎn)闡述了研究者們針對解決每個(gè)問題的相關(guān)研究,最后聚焦于知識(shí)驅(qū)動(dòng)的對話生成未來的發(fā)展方向。
根據(jù)對知識(shí)驅(qū)動(dòng)的對話生成任務(wù)和知識(shí)驅(qū)動(dòng)的對話生成現(xiàn)狀的研究。大多數(shù)現(xiàn)有的知識(shí)驅(qū)動(dòng)對話生成任務(wù)都是在知識(shí)獲取、知識(shí)表示、知識(shí)選擇以及知識(shí)融入對話四個(gè)方面進(jìn)行深入研究。
知識(shí)獲取:主要側(cè)重于對話生成模型如何從文本或從其他知識(shí)來源學(xué)習(xí)各種知識(shí)的過程。即給定對話上下文U={U1,R1,U2,R2,…,Ui,Ri,…,UT}和其他知 識(shí)K={K1,K2,…,Ks,…,Km},對話生成模型M從對話上下文U和其他知識(shí)K中獲取知識(shí)k={k1,k2,…,ks,…,km}。
知識(shí)表示:主要側(cè)重于對話生成模型如何在其密集的參數(shù)中編碼、存儲(chǔ)和表示知識(shí)。對知識(shí)表征機(jī)制的研究將有助于更好地理解和控制模型中的知識(shí),也可能激勵(lì)研究者們更好地理解人類大腦在對話中的知識(shí)表征。即對話生成模型M對獲取到的知識(shí)k={k1,k2,…,ks,…,km}進(jìn)行知識(shí)表示。
知識(shí)選擇:主要側(cè)重于關(guān)注對話生成模型如何從獲取的知識(shí)中選擇正確的知識(shí)或刪除不需要的信息。即給定對話上下文U={U1,R1,U2,R2,…,Ui,Ri,…,UT}和獲取的知識(shí)k={k1,k2,…,ks,…,km},對話生成模型M通過對話上下文U和獲取的知識(shí)k選擇出符合當(dāng)前上下文語境的知識(shí)ks。
知識(shí)融入:主要側(cè)重于關(guān)注對話生成模型如何有效地利用選擇的正確的知識(shí)生成合適的、高信息量的回復(fù) 。即通過給定上下文U={U1,R1,U2,R2,…,Ui,Ri,…,UT}和選擇出符合當(dāng)前上下文語境的知識(shí)ks,對話生成模型M生成包含知識(shí)的回復(fù)
當(dāng)前的知識(shí)驅(qū)動(dòng)的對話生成模型的研究都是需要大量的數(shù)據(jù)驅(qū)動(dòng)的,因此知識(shí)驅(qū)動(dòng)的對話數(shù)據(jù)集的質(zhì)量和多少制約著知識(shí)驅(qū)動(dòng)的對話生成的效果。許多研究者們收集并整理了大量的知識(shí)驅(qū)動(dòng)的對話數(shù)據(jù)集,對這些數(shù)據(jù)集進(jìn)行處理后,就可以用處理后的數(shù)據(jù)集來訓(xùn)練知識(shí)驅(qū)動(dòng)的對話生成模型。表1 為具有代表性的知識(shí)驅(qū)動(dòng)的對話數(shù)據(jù)集。

表1 知識(shí)驅(qū)動(dòng)的對話數(shù)據(jù)集Table 1 Knowledge driven conversation dataset
目前,研究者們對知識(shí)驅(qū)動(dòng)的對話生成模型的研究主要針對如何知識(shí)獲取、知識(shí)選擇、知識(shí)表示和知識(shí)融入四個(gè)方面做出了大量的工作。本章將針對這四個(gè)方面分別從知識(shí)獲取模型、知識(shí)表示模型、知識(shí)選擇模型和知識(shí)融入的對話生成模型四個(gè)方面進(jìn)行介紹。
在知識(shí)獲取期間,對話生成模型從不同的知識(shí)來源學(xué)習(xí)知識(shí),目前,知識(shí)獲取主要有兩個(gè)來源:文本數(shù)據(jù)和結(jié)構(gòu)化數(shù)據(jù)。本節(jié)將根據(jù)知識(shí)來源對知識(shí)獲取模型進(jìn)行分類,分為基于文本數(shù)據(jù)的知識(shí)獲取模型和基于結(jié)構(gòu)化數(shù)據(jù)的知識(shí)獲取模型。
3.1.1 基于文本數(shù)據(jù)的知識(shí)獲取模型
目前,為了從文本數(shù)據(jù)獲取知識(shí),對話生成模型通常在大規(guī)模文本語料庫上進(jìn)行訓(xùn)練學(xué)習(xí),本小節(jié)將重點(diǎn)關(guān)注基于文本數(shù)據(jù)的知識(shí)獲取模型如何從純文本數(shù)據(jù)中獲取知識(shí)的方法。
因果語言建模的目標(biāo)是預(yù)測輸入序列中的下一個(gè)標(biāo)記。Radford 等[38]、Brown 等[39]、Ouyang 等[40]以及Scao 等[41]在捕獲上下文依賴和對話生成方面證明了因果語言建模具有良好的有效性,因果語言建模的一個(gè)局限性是模型以單向的方式獲取知識(shí),它只能從左到右捕獲上下文信息。Devlin 等[42]和Liu 等[43]為了從文本數(shù)據(jù)中獲取知識(shí),通過掩碼語言建模建立知識(shí)獲取模型,掩碼語言建模的目的是隨機(jī)屏蔽輸入中的一些標(biāo)記,然后預(yù)測基于序列其余部分的掩碼標(biāo)記,如圖1所示。因果語言建模只能以單向方式獲取信息,而掩碼語言建??梢詮淖蟮接液蛷挠业阶髢蓚€(gè)方向捕獲上下文的知識(shí)。Raffel 等[44]和Song等[45]通過序列到序列模型(sequence to sequence,Seq2Seq)語言建模建立知識(shí)獲取模型,使用解碼器-編碼器架構(gòu)進(jìn)行訓(xùn)練,首先向編碼器提供掩碼序列,而解碼器用來預(yù)測掩碼標(biāo)記。Lewis等[46]使用自編碼器建立知識(shí)獲取模型,首先用隨機(jī)掩碼符號(hào)破壞輸入序列,然后將輸入碼輸入到雙向編碼器中,用自回歸解碼器計(jì)算輸入的概率。

圖1 掩碼語言建模的知識(shí)獲取模型結(jié)構(gòu)Fig.1 Structure of knowledge acquisition model for mask language modeling
知識(shí)獲取模型通過訓(xùn)練學(xué)習(xí)來獲取文本數(shù)據(jù)中的知識(shí),但是知識(shí)獲取模型如何獲得知識(shí)的潛在機(jī)制仍然有待探索。為了了解其中的潛在機(jī)制,一些研究者們研究了模型訓(xùn)練的過程,Achille等[47]試圖找出模型在訓(xùn)練學(xué)習(xí)中是否存在獲取知識(shí)的關(guān)鍵時(shí)期。Liu等[48]致力于在神經(jīng)網(wǎng)絡(luò)中尋找知識(shí)獲取的數(shù)學(xué)解決方案。Saphra 和Lopez[49-50]分析了長短期記憶網(wǎng)絡(luò)(long short-term memory,LSTM)[51]在訓(xùn)練過程中獲取知識(shí)的關(guān)鍵時(shí)期,使用奇異向量分析方法[52]和LSTM構(gòu)建知識(shí)獲取模型,如圖2所示。

圖2 奇異向量分析的知識(shí)獲取模型Fig.2 Knowledge acquisition model for singular vector analysis
現(xiàn)在的大多數(shù)研究者們的研究都集中在結(jié)構(gòu)相對簡單的神經(jīng)網(wǎng)絡(luò)上,只有部分的研究者們在大規(guī)模的語言模型中考慮獲取知識(shí)。Chiang 等[53]首先研究了ALBERT(a lite BERT)模型[54]在訓(xùn)練過程中知識(shí)是如何獲取的。具體來講,他們研究了模型在訓(xùn)練期間的語法知識(shí)、語義知識(shí)和外部知識(shí),發(fā)現(xiàn)模型學(xué)習(xí)過程因知識(shí)而異,有更多的訓(xùn)練步驟不一定會(huì)增加模型知識(shí)獲取的能力。Perez-Mayos 等[55]研究了訓(xùn)練的語料庫的大小對RoBERTa(robustly optimized BERT)模型[56]知識(shí)獲取能力的影響,發(fā)現(xiàn)在更多數(shù)據(jù)上訓(xùn)練的模型包含更多的語法知識(shí)。Liu等[57]也研究了RoBERTa 對各種知識(shí)的知識(shí)獲取過程。研究發(fā)現(xiàn),與能夠快速、穩(wěn)健地學(xué)習(xí)的語言知識(shí)相比,外部知識(shí)的學(xué)習(xí)速度緩慢。ChatGPT 是一種基于大模型的聊天機(jī)器人,ChatGPT通過訓(xùn)練一個(gè)大型的神經(jīng)網(wǎng)絡(luò)模型,建立詞向量和語言模型,學(xué)習(xí)通用的語言規(guī)則和語義表示,為對話生成提供支持,并通過預(yù)測任務(wù)學(xué)習(xí)和微調(diào)學(xué)習(xí)優(yōu)化模型來獲取知識(shí)。
表2為各類基于文本數(shù)據(jù)知識(shí)獲取模型的原理、優(yōu)點(diǎn)及缺點(diǎn)。

表2 基于文本數(shù)據(jù)的知識(shí)獲取模型Table 2 Knowledge acquisition model based on text data
從文本數(shù)據(jù)中獲取知識(shí)的方法可以很容易地進(jìn)行擴(kuò)展,而且知識(shí)來源也很容易獲得。但是模型獲取知識(shí)的潛在機(jī)制不是很清晰,由于知識(shí)獲取過程是隱性的,會(huì)導(dǎo)致模型產(chǎn)生錯(cuò)誤的預(yù)測。
3.1.2 基于結(jié)構(gòu)化數(shù)據(jù)的知識(shí)獲取模型
除了從文本數(shù)據(jù)中獲取知識(shí)外,研究者們還可以通過向?qū)υ捝赡P椭凶⑷虢Y(jié)構(gòu)化知識(shí)來獲取知識(shí)。為了從結(jié)構(gòu)化數(shù)據(jù)中獲取知識(shí),目前研究的重點(diǎn)是將不同類型的結(jié)構(gòu)化數(shù)據(jù)的知識(shí)注入到對話生成模型中。結(jié)構(gòu)化數(shù)據(jù)的主要類別包含實(shí)體知識(shí)、事實(shí)知識(shí)、常識(shí)知識(shí)和語言知識(shí)。
為了明確地學(xué)習(xí)實(shí)體知識(shí),許多研究者提出了對話生成模型的實(shí)體知識(shí)導(dǎo)向任務(wù)。Sun 等[58]和Shen 等[59]使用整體級(jí)掩碼來增強(qiáng)模型的知識(shí)獲取能力,該模型首先識(shí)別句子中的命名實(shí)體,然后對這些實(shí)體對應(yīng)的所有標(biāo)記進(jìn)行預(yù)測。Xiong等[60]提出了一種實(shí)體檢測方法,該檢測將句子中的命名實(shí)體隨機(jī)替換為相同實(shí)體或相同類型的其他實(shí)體,知識(shí)獲取模型應(yīng)該確定哪些實(shí)體被替換。Yamada 等[61]將單詞和實(shí)體視為獨(dú)立的標(biāo)記,并分別進(jìn)行掩碼語言建模,以學(xué)習(xí)上下文的單詞表示和實(shí)體表示,增強(qiáng)模型的知識(shí)獲取能力。Fevry 等[62]提出一個(gè)EAE(entities as experts)模型,將實(shí)體檢測與掩碼語言建模聯(lián)系起來,將文本中的實(shí)體與特定的實(shí)體記憶相匹配,如圖3所示。Logeswaran 等[63]和Gillick 等[64]在知識(shí)獲取模型中引入實(shí)體知識(shí)的其他信息,如實(shí)體描述,以進(jìn)一步幫助模型學(xué)習(xí)實(shí)體知識(shí)。Peters 等[65]和Yamada 等[61]利用單詞對實(shí)體的關(guān)注來使模型獲取知識(shí)。

圖3 EVE模型結(jié)構(gòu)Fig.3 Structure of EVE model
在結(jié)構(gòu)化知識(shí)中,事實(shí)知識(shí)通常表示為三元組(主體實(shí)體,關(guān)系,對象實(shí)體)。近年來,研究者們一直致力于幫助對話生成模型獲取更多的事實(shí)知識(shí),以更好地生成回復(fù)。研究者們在知識(shí)獲取模型中引入知識(shí)圖譜來獲取知識(shí),Zhang 等[66]提出了一種聚合器,將文本中實(shí)體中相應(yīng)的知識(shí)嵌入和標(biāo)記嵌入相結(jié)合。Wang等[67]同時(shí)訓(xùn)練掩碼語言建模模型和知識(shí)圖嵌入模型,提出了一個(gè)KEPLER(knowledge embedding and pretrained language representation)模型,模型既可以產(chǎn)生信息文本又可以知識(shí)嵌入,如圖4 所示。Wang 等[68]添加了一個(gè)適配器,將知識(shí)注入知識(shí)獲取模型中,而無需更新原始參數(shù)。該適配器經(jīng)過訓(xùn)練,以確定標(biāo)記之間的關(guān)系類型。Qin 等[69]提出了實(shí)體識(shí)別任務(wù)來預(yù)測給定主體實(shí)體和關(guān)系的對象實(shí)體,以及關(guān)系識(shí)別任務(wù)來預(yù)測關(guān)系對之間的語義連接。Liu 等[70]認(rèn)為,將整個(gè)知識(shí)庫整合到知識(shí)獲取模型中可能會(huì)導(dǎo)致知識(shí)噪聲問題,并建議從與每個(gè)輸入句子相關(guān)的特定子圖中學(xué)習(xí)。Soares 等[71]提出,通過“空白匹配”的目標(biāo),僅從整個(gè)鏈接文本中學(xué)習(xí)關(guān)系知識(shí),首先用空白符號(hào)替換文本中的實(shí)體,然后當(dāng)它們具有相同的實(shí)體對時(shí),使關(guān)系表示更接近。知識(shí)獲取模型中學(xué)習(xí)常識(shí)知識(shí)最常見的策略是在訓(xùn)練之前將知識(shí)轉(zhuǎn)化為自然的語言表達(dá)。Bosselut 等[72]、Guan 等[73]、Shwartz 等[74]首先將常識(shí)知識(shí)三元組轉(zhuǎn)化為自然語言,然后根據(jù)這些知識(shí)增強(qiáng)數(shù)據(jù)對對話生成模型進(jìn)行訓(xùn)練。Ma等[75]將結(jié)構(gòu)化常識(shí)知識(shí)轉(zhuǎn)化為模型學(xué)習(xí)自然語言的問題。

圖4 KEPLER模型結(jié)構(gòu)Fig.4 Structure of KEPLER model
研究者們發(fā)現(xiàn)知識(shí)獲取模型還可以明確學(xué)習(xí)語言知識(shí),如情感知識(shí)、詞匯知識(shí)、語法知識(shí)等。為了讓知識(shí)獲取模型獲得情感知識(shí),Ke 等[76]首先用POS標(biāo)簽和情緒極性標(biāo)記每個(gè)單詞,然后將單詞級(jí)和句子級(jí)情緒標(biāo)簽與掩碼語言建模結(jié)合起來。Tian 等[77]提出了一個(gè)SKEP(sentiment knowledge enhanced pretraining)模型,從未標(biāo)記數(shù)據(jù)中挖掘情感知識(shí),然后利用這些情感信息進(jìn)行情緒掩碼、情緒詞預(yù)測和詞性預(yù)測,如圖5 所示。在詞匯知識(shí)方面,Lauscher等[78]首先從WordNet[79]和BabelNet[80]獲取單詞相似性信息,然后在BERT 訓(xùn)練前還添加單詞關(guān)系分類。Song 等[81]構(gòu)造了一個(gè)用注意力對齊校準(zhǔn)的依賴矩陣和一個(gè)用來整合依賴信息的融合模塊,知識(shí)獲取模型可以獲取詞匯知識(shí)。在語法知識(shí)方面,Sachan等[82]研究通過在Tranformers[83]的輸出上添加syntax-GNN 和使用注意力合并文本嵌入,來為模型注入語法知識(shí)。為了進(jìn)一步獲取語法知識(shí),Bai 等[84]使用多個(gè)注意網(wǎng)絡(luò),每個(gè)網(wǎng)絡(luò)編碼語法樹中的一個(gè)關(guān)系。隨著大模型研究的極大推進(jìn),并在知識(shí)獲取方面取得了進(jìn)展,大模型可以通過外部知識(shí)庫接口、外部模型集成和增強(qiáng)學(xué)習(xí)等方式來獲取結(jié)構(gòu)化知識(shí)。這些方法可以豐富大模型的知識(shí)庫,提高對話生成的準(zhǔn)確性、流暢度和智能程度。

圖5 SKEP模型結(jié)構(gòu)Fig.5 Structure of SKEP model
基于結(jié)構(gòu)化數(shù)據(jù)的知識(shí)獲取模型如表3所示。

表3 基于結(jié)構(gòu)化數(shù)據(jù)的知識(shí)獲取模型Table 3 Knowledge acquisition models based on structured data
結(jié)構(gòu)化數(shù)據(jù)可以很明確引入到對話生成模型中,但是受到結(jié)構(gòu)化數(shù)據(jù)的成本、領(lǐng)域、規(guī)模和質(zhì)量的限制,使得模型很難進(jìn)行擴(kuò)展和使用結(jié)構(gòu)化數(shù)據(jù)以外的新的知識(shí)。
知識(shí)表示主要研究了知識(shí)表示模型如何編碼、轉(zhuǎn)換和存儲(chǔ)所獲得的知識(shí)。在模型中,知識(shí)被編碼為密集的向量表示,并保存在模型參數(shù)中,但每種知識(shí)是如何被編碼、轉(zhuǎn)換和存儲(chǔ)到參數(shù)中仍然需要進(jìn)一步研究。目前,已經(jīng)開始對知識(shí)表示進(jìn)行了研究,本節(jié)將首先根據(jù)知識(shí)表示的方法對這些研究進(jìn)行介紹。
3.2.1 基于梯度方法
Dai 等[85]首先引入了知識(shí)神經(jīng)元的概念,這是與事實(shí)知識(shí)相關(guān)的Transformer 神經(jīng)元,如圖6 所示。Geva 等[86]假設(shè)知識(shí)神經(jīng)元位于前饋網(wǎng)絡(luò)中,然后通過向模型提供含有掩碼的知識(shí)表示提示,識(shí)別出在前饋網(wǎng)絡(luò)中得分最高的知識(shí)神經(jīng)元,并基于梯度的方法進(jìn)行計(jì)算,如圖7所示。

圖6 知識(shí)神經(jīng)元表達(dá)模型結(jié)構(gòu)Fig.6 Structure of knowledge neuron expression model

圖7 梯度計(jì)算的前饋網(wǎng)絡(luò)結(jié)構(gòu)Fig.7 Feedforward network structure for gradient calculation
3.2.2 基于因果啟發(fā)方法
Meng 等[87]將Transformer 中的神經(jīng)元替換成了知識(shí)神經(jīng)元,它們對預(yù)測某些事實(shí)知識(shí)具有最強(qiáng)的因果關(guān)系。這些神經(jīng)元通過因果關(guān)系分析來定位。具體來說,他們通過比較token embedding 之間預(yù)測的概率變化來計(jì)算對事實(shí)預(yù)測的因果關(guān)系。通過實(shí)驗(yàn)證明了前饋網(wǎng)絡(luò)模塊在事實(shí)知識(shí)表示中起到?jīng)Q定性的作用。
3.2.3 基于注意力方法
注意力頭也可以編碼知識(shí)相關(guān)信息的表示,Clark 等[88]和Htut 等[89]研究了注意頭中編碼的語言知識(shí),發(fā)現(xiàn)雖然一些注意頭與語法的特定方面相關(guān),但語言知識(shí)是由多個(gè)注意頭分布和代表的。Lin等[90]發(fā)現(xiàn),對話生成模型的注意力權(quán)重可以編碼語法知識(shí)信息,編碼之后可以更準(zhǔn)確地表示這些句法屬性。
3.2.4 基于分層方法
Lin 等[90]對語言知識(shí)進(jìn)行了分層探測,為每一層訓(xùn)練一個(gè)特定的分類器,發(fā)現(xiàn)低層編碼token 的位置信息,而高層編碼更多的成分信息。Liu 等[91]分析了對話生成模型在知識(shí)表示上的分層可轉(zhuǎn)移性,發(fā)現(xiàn)中間層通常具有更好的性能和可轉(zhuǎn)移性。Wallat等[92]提出利用對話生成模型中每一層的LAMA(language model analysis)[93]來捕獲事實(shí)知識(shí),并發(fā)現(xiàn)大量的知識(shí)存儲(chǔ)在中間層中。Juneja 和Agarwal[94]還基于知識(shí)神經(jīng)元進(jìn)行了分層的事實(shí)知識(shí)分析,并證明了大多數(shù)知識(shí)(例如,巴黎是“某個(gè)國家”的首都)可以歸于中間層,在最后的幾層中將被提煉為事實(shí)(例如,巴黎是法國的首都)。
近年來,學(xué)術(shù)界和工業(yè)界極大推進(jìn)了大模型的研究,并在知識(shí)表示方面也取得了巨大進(jìn)展,如ChatGPT的推出,引起了廣泛關(guān)注。大模型在獲取到知識(shí)后,對于不同類型的知識(shí),大模型需要采用不同的編碼方式。例如,對于文本類型的知識(shí),可以采用詞向量表示法將其轉(zhuǎn)化成向量格式。對于圖片類型的知識(shí),則需要先進(jìn)行特征提取,然后將提取出來的特征嵌入到向量空間中。在編碼的過程中,通常需要考慮向量的維度、采樣方法等因素,以便進(jìn)行后續(xù)的研究。
為了更清晰地介紹知識(shí)表示模型,表4從各類知識(shí)表示模型的原理、優(yōu)點(diǎn)及缺點(diǎn)進(jìn)行介紹。

表4 知識(shí)表示模型Table 4 Knowledge representation model
知識(shí)選擇是知識(shí)驅(qū)動(dòng)對話生成任務(wù)中的關(guān)鍵步驟,關(guān)于知識(shí)選擇模型,目前,研究者們一般采用對話歷史和知識(shí)之間的語義一致性作為知識(shí)選擇的基礎(chǔ),以及通過帶有知識(shí)標(biāo)簽的數(shù)據(jù)來訓(xùn)練模型進(jìn)行知識(shí)選擇。而在對話場景下,對話歷史和知識(shí)之間存在一對多的關(guān)系,因此有必要研究不依賴于數(shù)據(jù)來訓(xùn)練的知識(shí)選擇模型。盡管當(dāng)前有許多知識(shí)圖譜和語料庫可用于提取知識(shí)信息,但不同對話場景需要的知識(shí)信息通常是多樣的。因此,知識(shí)選擇模型需要選擇外部知識(shí)中與當(dāng)前對話場景相關(guān)的關(guān)鍵信息,以便為該場景提供更符合要求的知識(shí)信息。結(jié)構(gòu)化知識(shí)包含明確實(shí)體信息和實(shí)體間關(guān)系。因此,研究人員可以考慮將用戶消息中的某些實(shí)體信息與知識(shí)庫信息進(jìn)行對應(yīng),以選擇關(guān)鍵知識(shí)。相比之下,非結(jié)構(gòu)化知識(shí)由文本構(gòu)成,其中蘊(yùn)含了不同的語義信息。這使得選擇相關(guān)內(nèi)容變得更加困難,尤其是在開放域的對話環(huán)境中更為復(fù)雜。如何在對話中進(jìn)行知識(shí)選擇仍是待解決的問題。本節(jié)將對不同的知識(shí)選擇模型進(jìn)行介紹。
Lian 等[95]提出一個(gè)采用新的知識(shí)選擇機(jī)制的知識(shí)選擇模型,利用知識(shí)的先驗(yàn)和后驗(yàn)分布來進(jìn)行知識(shí)選擇,從話語中可以推斷出知識(shí)的后驗(yàn)分布,它確保了模型在訓(xùn)練過程中對知識(shí)的適當(dāng)選擇。同時(shí),利用從話語和回復(fù)中推斷出的先驗(yàn)分布來近似后驗(yàn)分布,以便在推理過程中即使沒有響應(yīng),也可以選擇合適的知識(shí),使得模型能在無知識(shí)標(biāo)簽引導(dǎo)的情況下學(xué)習(xí)如何選擇知識(shí),如圖8 所示。Zhang 等[96]提出了一個(gè)Cake 模型,該模型引入了一個(gè)知識(shí)預(yù)選步驟,利用話語歷史語境作為先驗(yàn)信息,選擇最相關(guān)的外部知識(shí)。Dinan 等[97]進(jìn)行了多次實(shí)驗(yàn),分別利用Seq2Seq 模型和管道式技術(shù)來構(gòu)建知識(shí)選擇模型,并通過設(shè)計(jì)損失函數(shù)來監(jiān)督模型的選擇過程。實(shí)驗(yàn)結(jié)果表明,Seq2Seq 模型在利用知識(shí)來回復(fù)方面具有良好表現(xiàn),而管道式模型則在知識(shí)選擇的準(zhǔn)確性方面具有優(yōu)勢。

圖8 知識(shí)選擇模型結(jié)構(gòu)Fig.8 Structure of knowledge selection model
Seq2Seq 模型由于通常簡單地利用知識(shí)信息,在進(jìn)行編碼過程中,對知識(shí)信息的置信度會(huì)大大降低,容易導(dǎo)致詞語組合出現(xiàn)錯(cuò)誤。為了解決這個(gè)問題,Lin 等[98]提出循環(huán)知識(shí)交互機(jī)制,通過注意力機(jī)制動(dòng)態(tài)地選擇知識(shí),在解碼過程中產(chǎn)生回復(fù)。Kim 等[99]則將知識(shí)選擇建模轉(zhuǎn)化為序列決策過程,同時(shí)考慮對話歷史和知識(shí)的選擇歷史,以更好地進(jìn)行知識(shí)選擇。Zheng 等[100]提出了一種基于差異感知的知識(shí)選擇模型,它首先計(jì)算當(dāng)前回合中提供的候選知識(shí)句子與前一個(gè)回合中選擇的候選知識(shí)句子之間的差異。然后,將差異信息與上下文信息進(jìn)行融合或分離,以促進(jìn)最終的知識(shí)選擇。通過大量的實(shí)驗(yàn)證明,他們的模型能夠更準(zhǔn)確地選擇知識(shí),并生成更多信息豐富的回復(fù)。Eric 等[35]評(píng)估了開放域?qū)υ捴R(shí)選擇的現(xiàn)有狀態(tài),表明現(xiàn)有關(guān)于知識(shí)選擇數(shù)據(jù)和評(píng)估的方法存在缺陷。Eric 提出了一個(gè)新的框架來收集相關(guān)的知識(shí),并基于維基百科語料庫創(chuàng)建了一個(gè)增強(qiáng)數(shù)據(jù)集WOW++,可以在知識(shí)選擇模型上進(jìn)一步研究。為了更清晰地描述知識(shí)選擇模型的研究現(xiàn)狀,對解決的問題、使用的數(shù)據(jù)集、涉及的評(píng)價(jià)指標(biāo)以及模型的性能進(jìn)行了梳理,如表5所示。在評(píng)價(jià)指標(biāo)方面,A.E代表自動(dòng)評(píng)價(jià),M.E 代表人工評(píng)價(jià)。A.E 主要包括困惑 度(perplex,PPL)[102]、BLUE[103]、ROUGE[104]、Ent、Dist[105]、知識(shí)相關(guān)度(knowledgeF1,KF1)以及F1。M.E使用人工的方式對內(nèi)容層面的適宜性(App)、知識(shí)層面的信息性(Inf)、語言流利度(Flue)以及人工評(píng)價(jià)分?jǐn)?shù)(Avg)等方面對模型性能進(jìn)行打分。
開放域?qū)υ捪到y(tǒng)的最終任務(wù)是生成富含信息量且多樣的擬人回復(fù),而不僅僅是傳遞描述性的事實(shí)信息。這些回復(fù)可能包含專有名詞或稀有名詞等難以處理的詞匯。為了在生成回復(fù)時(shí)融入知識(shí),對話生成模型不能簡單地復(fù)制已選擇的知識(shí)到回復(fù)中,而需要有機(jī)結(jié)合對話歷史和知識(shí)信息。目前,大多數(shù)研究者采用將對話歷史和知識(shí)信息直接拼接的方式進(jìn)行解碼,但這種方法較為簡單,融合效率低,生成的回復(fù)沒有很好地嵌入知識(shí)信息。另外一些研究者采用指針網(wǎng)絡(luò)[106]來融入知識(shí),雖然這種方法提高了模型的生成多樣性,但無法學(xué)習(xí)到知識(shí)中的關(guān)鍵信息。因此,如何將對話歷史和知識(shí)信息有機(jī)地融合在一起,是知識(shí)驅(qū)動(dòng)的對話生成任務(wù)中的重要問題。本節(jié)將對不同的知識(shí)融入的對話生成模型進(jìn)行介紹。
Zhou 等[107]提出了一個(gè)CCM(commonsense knowledge aware conversational model)模型,它在對話生成模型中引入了大規(guī)模的常識(shí)知識(shí)來促進(jìn)語言理解和生成。該模型從一個(gè)知識(shí)庫中檢索相關(guān)的知識(shí)圖,然后用靜態(tài)圖注意機(jī)制對圖進(jìn)行編碼,這增強(qiáng)了帖子的語義信息,從而支持更好地理解用戶的上下文,如圖9 所示。Jung 等[108]提出了AttnIO 模型,它是一種雙向圖檢索模型,在每個(gè)遍歷步驟中計(jì)算注意權(quán)重,因此模型可以選擇更廣泛的知識(shí)路徑,而不是一次只選擇一個(gè)節(jié)點(diǎn)。在這樣的方案中,即使只有目標(biāo)節(jié)點(diǎn),模型也可以預(yù)測足夠的路徑。Zhang 等[36]提出了一個(gè)ConceptFlow 模型,生成了更有意義的對話回復(fù)。它通過一個(gè)常識(shí)性的知識(shí)圖來探索概念級(jí)的對話流。最后,它使用了一個(gè)門來決定在詞匯詞、中心概念詞和外部概念詞之間生成對話。Xu等[109]將知識(shí)圖譜作為外部知識(shí)來源來控制粗層次的對話生成,對話得到了常識(shí)性知識(shí)的支持,對話生成模型可以使用更合理的方式引導(dǎo)對話生成。Moon 等[110]提出了DialKGWalker 用于對話生成,他們計(jì)算了預(yù)測的知識(shí)圖嵌入和真實(shí)的知識(shí)圖嵌入之間的相關(guān)性得分,以促進(jìn)預(yù)測。此外,他們還應(yīng)用了一個(gè)基于注意力的圖生成器來生成基于相關(guān)性分?jǐn)?shù)的圖路徑,以完成對話生成。Zhan 等[101]通過結(jié)合對話級(jí)語境表示和圖表示來用于對話生成,他們首先基于編碼的上下文和響應(yīng)對來構(gòu)建對話圖,然后對對話圖進(jìn)行推理,以得到一個(gè)圖表示。最終的得分是通過將上下文表示和圖表示的連接向量傳遞到一個(gè)前饋網(wǎng)絡(luò)來計(jì)算的。知識(shí)融入的對話模型研究如表6所示。

圖9 CCM模型結(jié)構(gòu)Fig.9 Structure of CCM model

表6 知識(shí)融入的對話模型Table 6 Dialogue model for knowledge inclusion
雖然關(guān)于知識(shí)驅(qū)動(dòng)的對話生成模型研究已經(jīng)取得一些成果,由于對話系統(tǒng)還可以向生成高質(zhì)量和更加擬人化的回復(fù)發(fā)展,知識(shí)驅(qū)動(dòng)的對話生成研究還有非常大的發(fā)展空間。隨著對知識(shí)驅(qū)動(dòng)的對話生成的深入研究與其他相關(guān)技術(shù)的發(fā)展,以下總結(jié)的幾個(gè)方面可能是未來的研究方向:
(1)認(rèn)知啟發(fā)的知識(shí)表示方法:知識(shí)表示是認(rèn)知科學(xué)、神經(jīng)科學(xué)、心理學(xué)和人工智能都在關(guān)注的問題,本文可以借鑒其他相關(guān)領(lǐng)域的思想來設(shè)計(jì)一種認(rèn)知啟發(fā)的知識(shí)表示方法。因此,與其他學(xué)科進(jìn)行交叉,借鑒其他學(xué)科的思想來設(shè)計(jì)一種認(rèn)知啟發(fā)的知識(shí)表示方法是未來研究方向。
(2)對話場景轉(zhuǎn)移下的知識(shí)選擇:在對話場景轉(zhuǎn)換時(shí),對于學(xué)習(xí)信息的需求因?qū)υ捛榫扯?,這需要模型通過對外部知識(shí)中的學(xué)習(xí)內(nèi)容進(jìn)行選擇,以獲得更符合當(dāng)前談話環(huán)境的相關(guān)信息。在非任務(wù)導(dǎo)向的對話環(huán)境中,情境更加復(fù)雜多變,對話主體會(huì)隨著會(huì)話進(jìn)程的發(fā)展而不斷變化,不同主體之間容易混淆,使得內(nèi)容選擇變得更加困難。當(dāng)前的內(nèi)容選擇技術(shù)存在局限性,在遇到不同主題轉(zhuǎn)變的對話情況下,模型缺乏邏輯推理功能,不能從當(dāng)前對話中推斷出正確的內(nèi)容,導(dǎo)致對話模式無法產(chǎn)生高質(zhì)量語句。因此,在主題轉(zhuǎn)移等復(fù)雜對話場景中提升知識(shí)選擇的方法是未來研究的方向。
(3)知識(shí)驅(qū)動(dòng)情感對話生成:人們在交流信息的活動(dòng)中,不但涉及文字與語言內(nèi)容,也涉及到情感內(nèi)容和情緒狀態(tài)。對話系統(tǒng)的重要任務(wù)就是讓機(jī)器人在回復(fù)用戶時(shí)掌握人類的情感,而在交流過程中增加情感信息則可以增加使用者的信心,并且情感信息可以促使機(jī)器人與用戶之間的溝通過程變得更加自然,加入情感信息后,模型回復(fù)后生成的語言也變得更加擬人化?,F(xiàn)在的知識(shí)驅(qū)動(dòng)的對話生成模型中并沒有關(guān)注情感信息,如何將融入知識(shí)的情感信息加入到知識(shí)驅(qū)動(dòng)的對話生成模型中是未來研究的方向。
(4)碎片化的知識(shí)融合使用:隨著互聯(lián)網(wǎng)的高速發(fā)展,信息能夠被快速溝通與傳播,能供人類使用的信息也就越多。在此情況下,信息通常是零碎的、離散的、雜亂的。部分信息存儲(chǔ)在百度百科、維基百科之類的百科類型頁面中,但還有很多信息都是包含在大量的非結(jié)構(gòu)化文字中,比如關(guān)于知乎等問答社區(qū)上的問答內(nèi)容,以及關(guān)于小紅書等該類型社區(qū)的帖子內(nèi)容。并且不同信息的內(nèi)容的形式也不同,有些信息是離散的,有些是連續(xù)的。然而并不是所有能夠理解的數(shù)據(jù)都是溝通所需要的,如何高效地控制和利用大量的碎片化數(shù)據(jù),可以極大地提高溝通流程的可靠性,也可以增加模型的可理解性,這可能就是未來研究的方向。
(5)基于增量式學(xué)習(xí)的對話系統(tǒng):現(xiàn)有語言模型可以生成非常流暢和自然的語言,但它們?nèi)狈Χ鄻有院挽`活性,而在對話中,多樣性和靈活性非常重要。尤其是在處理開放域?qū)υ挄r(shí),回答的多樣性和靈活性可以提高對話質(zhì)量和用戶滿意度。通過增量式學(xué)習(xí)動(dòng)態(tài)地向模型中加入新信息和知識(shí),使對話系統(tǒng)可以不斷學(xué)習(xí)和進(jìn)步,從而實(shí)現(xiàn)對話的多樣性和靈活性,這可能是未來研究的方向。
隨著對話系統(tǒng)的發(fā)展,知識(shí)驅(qū)動(dòng)的對話生成模型已經(jīng)被越來越多的研究者們關(guān)注。生成高質(zhì)量和更加擬人化的回復(fù)的知識(shí)驅(qū)動(dòng)的對話生成模型是研究者們努力的方向。本文對知識(shí)驅(qū)動(dòng)的對話生成模型研究展開綜述,首先對現(xiàn)有的研究進(jìn)行收集整理并總結(jié)出知識(shí)驅(qū)動(dòng)的對話生成任務(wù)的定義,對構(gòu)建知識(shí)驅(qū)動(dòng)的對話生成模型遇到的問題進(jìn)行描述;其次對現(xiàn)有的知識(shí)驅(qū)動(dòng)的對話數(shù)據(jù)集進(jìn)行了總結(jié);針對知識(shí)驅(qū)動(dòng)的對話生成模型的問題進(jìn)行了回顧,包括知識(shí)獲取、知識(shí)表示、知識(shí)選擇和知識(shí)融入,對各個(gè)問題進(jìn)行了相關(guān)研究的介紹,并提出了一些未來的發(fā)展方向。