卞政 穆寶良 王蓓 唐福龍
(沈陽師范大學(xué) 遼寧省沈陽市 110034)
隨著社會(huì)信息化程度的加深,我們的生活有越來越多的方面有了智能系統(tǒng)的參與。在許多領(lǐng)域,智能系統(tǒng)與自動(dòng)化設(shè)備相似,不斷地進(jìn)行著縮短工序、提高效率和減少成本等優(yōu)化操作。在20世紀(jì)90年代之前,問答系統(tǒng)并談不上智能。常見的問答系統(tǒng)模型通常采用依賴模板或基于人工制定規(guī)則的對話方式,缺乏語義分析能力的同時(shí)也不具有知識庫,無法理解用戶輸入的含義,進(jìn)而導(dǎo)致對話效果難以令人滿意。
但在近30年,信息量和信息處理能力都大幅飛躍,智能問答系統(tǒng)開始嶄露頭角。與此同時(shí),深度學(xué)習(xí)技術(shù)使得智能對話系統(tǒng)的效果得到較大提升,因此,在一些需要進(jìn)行服務(wù)性對話的應(yīng)用場景中,逐漸有實(shí)際的對話機(jī)器人與答疑機(jī)器人的出現(xiàn)。
目前對話機(jī)器人的主要實(shí)現(xiàn)分為檢索式與生成式兩大類。
其中,檢索式對話機(jī)器人在技術(shù)上主要依賴問答庫。產(chǎn)生的對話會(huì)圍繞著問答庫中已存在的數(shù)據(jù)進(jìn)行,內(nèi)容可控性強(qiáng),適合事實(shí)類問答功能的實(shí)現(xiàn)[1]。然而,實(shí)現(xiàn)包含所有情形的問答庫是不現(xiàn)實(shí)的,同時(shí)檢索式方法也在問答定位的準(zhǔn)確度上有所缺失。
實(shí)現(xiàn)生成式對話機(jī)器人的技術(shù)是對大量的對話語料進(jìn)行學(xué)習(xí)。對話的產(chǎn)生會(huì)在一定程度上與人類日常對話的形式相仿,因此適合應(yīng)用在多樣性與泛化性強(qiáng)的應(yīng)用場景中[2]。然而,生成式方法產(chǎn)生的對話具有較強(qiáng)的不可控性,同時(shí)也容易出現(xiàn)前后文信息不一致、“安全回答”等問題。如果產(chǎn)品設(shè)計(jì)對于智能化程度的要求較高,上述的兩種方式實(shí)現(xiàn)的對話機(jī)器人都有各自的缺點(diǎn)從而無法滿足需求。本文設(shè)計(jì)了一種基于生成式和檢索式方法相結(jié)合的對話機(jī)器人。
兩種方法的結(jié)合使用可以在一定程度規(guī)避各自的缺點(diǎn),結(jié)合兩者的優(yōu)點(diǎn),從而構(gòu)建一個(gè)通用性較強(qiáng)的對話機(jī)器人,使得其能夠?qū)Ω黝惽闆r做出較好的處理。
檢索式模型主要依賴于信息檢索技術(shù)。建立檢索式模型,首先要構(gòu)建出一個(gè)由大量問答對構(gòu)成的對話語料庫,隨后對輸入進(jìn)行特征提取,并根據(jù)特征在語料庫中匹配出少量問答對作為候選集,最后選用合適的指標(biāo)從候選集中挑選出最佳回復(fù)[3]。在深度學(xué)習(xí)技術(shù)引入NLP領(lǐng)域之前,檢索式模型的實(shí)現(xiàn)通常是基于傳統(tǒng)信息檢索算法的,如TF-IDF技術(shù)[4]??梢?,無法生成新的內(nèi)容是檢索式模型的一個(gè)局限。
對于封閉域的對話機(jī)器人,其語料庫的建立可以以人工的方式進(jìn)行,即手動(dòng)的將該封閉域內(nèi)可能出現(xiàn)的情形形成問答對的形式,隨后加入語料庫。而在開放域,可以考慮采用網(wǎng)絡(luò)爬蟲等自動(dòng)方式來快速、大量地收集語料。同時(shí),由語料庫的普遍組建方法也可以看出,封閉域中將產(chǎn)生的對話可控性更強(qiáng),但只有在語料庫足夠龐大、完備的情況下才能保證兼容性。而開放域語料庫又因?yàn)閱柎饘|(zhì)量的參差不齊,雖然兼容性較強(qiáng),但很難保證對話有效性。
基于上述,在實(shí)際應(yīng)用中檢索式對話機(jī)器人在封閉域的效果更好。
生成式模型的主要思路是錄用大規(guī)模的語料訓(xùn)練模型,從而學(xué)習(xí)人類對話的模式和特征,使得模型能夠自行生成與輸入相匹配的回復(fù)。生成式模型的普遍模式是編碼解碼模式,多為seq2seq模型的改進(jìn)版[5],即通過編碼機(jī)器學(xué)習(xí)語義特征,通過解碼器生成回復(fù)。這種模式的特點(diǎn)是生成的回復(fù)流暢、自然且泛用性強(qiáng),但隨之而來也常有“安全回復(fù)”的問題。
生成式模型的最佳應(yīng)用環(huán)境與語料庫的內(nèi)容分布有較大的關(guān)聯(lián),如果語料庫所涉及的廣度較大,則該模型在開放域的表現(xiàn)會(huì)更好。反之,如果語料庫在某角度的深度較大,則該模型可以適用在封閉域。但事實(shí)上,在封閉域情景中,我們通常難以提供滿足訓(xùn)練seq2seq模型的需求規(guī)模的語料庫。相反,作用于開放域的語料庫則可以非常容易的從社交媒體數(shù)據(jù)庫、影視文化作品的腳本等地獲取。
基于上述,在實(shí)際應(yīng)用中生成式對話機(jī)器人在開放域的效果更好。
對話效果評估方式一般分為兩類,分別是人工評估和自動(dòng)評估。人工評估雖然存在人工要求高和效率低的缺點(diǎn),但仍是最準(zhǔn)確和有效的評估方式。目前主要的人工評估方法有對對比和李克特量表評價(jià)兩種。自動(dòng)評估可以分為不需要參考回復(fù)和需要參考回復(fù)的兩類評估方式。其中,需要參考回復(fù)的評估方式主要針對生成式模型的對話效果進(jìn)行評估,而不需要參考回復(fù)的評估方式同時(shí)適用于生成式和檢索式模型。因此,本文主要討論不需要參考回復(fù)的評估方式。
2.3.1 檢索式模型評估指標(biāo)
檢索式模型算法的核心是在匹配中的候選集中排序的方式,常見的實(shí)現(xiàn)是基于傳統(tǒng)信息檢索系統(tǒng)中常用的若干指標(biāo):
(1)召回率=系統(tǒng)檢索到的相關(guān)回復(fù)/系統(tǒng)所有相關(guān)的回復(fù)總數(shù)
(2)準(zhǔn)確率=系統(tǒng)檢索到的相關(guān)回復(fù)/系統(tǒng)所有檢索到的回復(fù)總數(shù)
F值(F-measure):指召回率和準(zhǔn)確率的調(diào)和平均值,它綜合了兩者的評價(jià)效果。
召回率是考察系統(tǒng)找全回復(fù)的能力,而準(zhǔn)確率考察系統(tǒng)找準(zhǔn)回復(fù)的能力,兩者相輔相成,從兩個(gè)不同側(cè)面較為全面地反映系統(tǒng)性能。當(dāng)即F1值,是召回率和準(zhǔn)確率的調(diào)和平均數(shù)。
隨著測試集規(guī)模的擴(kuò)大以及人們對評測結(jié)果理解的深入,研究者提出能更準(zhǔn)確反映系統(tǒng)性能的新評價(jià)指標(biāo),包括:
(2)P@K:指的是單個(gè)查詢中檢索出的前10個(gè)回復(fù)的準(zhǔn)確率。
(3)平均準(zhǔn)確率MAP(Mean Average Precision):AP(Average Precision)是指單個(gè)查詢檢索的平均精確度,MAP是對整個(gè)測試集求平均AP值。
2.3.2 生成式模型評估指標(biāo)
生成式模型主要評價(jià)的是生成回復(fù)的質(zhì)量,其評估指標(biāo)主要聚焦于回復(fù)本身的信息量和生成概率。目前比較常見的指標(biāo)有如下四種:
(1)困惑度(Perplexity)。語言模型中通常用困惑度來衡量一句話出現(xiàn)的概率,也常常被用在對話生成評測中,評價(jià)生成回復(fù)語句的語言質(zhì)量。其基本思想是測試生成的回復(fù)語言質(zhì)量越高,困惑度越小,越接近人類正常說話,模型越好。困惑度指標(biāo)的缺點(diǎn)是不能評估在對話中回復(fù)與上文的相關(guān)性。
(2)熵(Entropy)。熵可用于度量生成的回復(fù)的信息量。
(3)回復(fù)多樣性指標(biāo)Distinct-1&2。針對對話系統(tǒng)中萬能回復(fù)的問題,通過計(jì)算生成回復(fù)中一元詞和二元詞的比例來衡量回復(fù)的多樣性。具體來說,Distinct-1和 Distinct-2分別是不同的unigrams和 bigrams的數(shù)量除以生成的單詞總數(shù)。
(4)平均回復(fù)長度。用平均長度來衡量對話生成效果,認(rèn)為生成長句子的模型相對質(zhì)量更高。
我們注意到,基于生成式模型的對話機(jī)器人在開放域的表現(xiàn)更好,基于檢索式模型的對話機(jī)器人在封閉域的表現(xiàn)更好。但在一些應(yīng)用場景中,對話機(jī)器人被要求同時(shí)能夠處理開放域和封閉域的對話任務(wù)。顯然,單一模型的對話機(jī)器人難以在兩個(gè)領(lǐng)域都實(shí)現(xiàn)令人滿意的效果。容易想到的是采用由檢索式模型和生成式模型結(jié)合而成的聯(lián)合模型去解決該問題。
聯(lián)合模型的原理可以是并行或串行的。并行使用兩個(gè)模型,對檢索式和生成式模型的回復(fù)設(shè)計(jì)算法進(jìn)行評估,如果檢索式回復(fù)的效果較好,則以檢索式回復(fù)作為結(jié)果,否則返回一個(gè)生成式回復(fù)。并行方案的缺點(diǎn)是對于單個(gè)任務(wù)要分別調(diào)用兩個(gè)模型,造成了計(jì)算開銷。串行使用兩個(gè)模型,以檢索式模型的回復(fù)作為基礎(chǔ),在刪去檢索式模型回復(fù)中的無關(guān)內(nèi)容后由生成式模型對空缺處進(jìn)行填充。串行方案的設(shè)計(jì)理念很好,但在實(shí)際應(yīng)用上常常效果無法令人滿意。其原因是任務(wù)在本質(zhì)上只會(huì)屬于封閉域或開放域兩者之一,而根據(jù)串行方案的原理,實(shí)際上是給出了一種較為中間的解決方案,這樣對于有二元性的任務(wù)反而并不能起到很好的效果[6]。
本文提出了一種基于并行方案的優(yōu)化方法:對檢索式模型的語料庫做預(yù)處理,并設(shè)計(jì)算法將任務(wù)內(nèi)容結(jié)合語料庫的預(yù)處理結(jié)果去計(jì)算當(dāng)前任務(wù)屬于封閉域問題的概率,當(dāng)概率高于某個(gè)閾值時(shí),使用檢索式模型做出回復(fù),反之則使用生成式模型生成回復(fù)。該方法的優(yōu)點(diǎn)是實(shí)際上對于每個(gè)任務(wù)僅會(huì)調(diào)用一個(gè)模型,減小了計(jì)算開銷。缺點(diǎn)是,需要以合適的方式對語料庫做預(yù)處理,造成了額外的時(shí)空開銷。難點(diǎn)在于模型最終效果高度取決于預(yù)處理方式和判別算法。同時(shí),基于任務(wù)的二元性,本方案在理論上會(huì)比串行方案效果更好。
首先將封閉域場景問句中出現(xiàn)的詞匯分為三類:
(1)普通詞Normal:在任何句子里都有較高可能遇見的詞,例如“是”、“什么”、“然后”等詞。以及在該封閉域內(nèi)常出現(xiàn)的專業(yè)詞匯。
(2)屬性詞Attr:部分屬于封閉域詞匯中的限定詞,部分是用來衡量程度的詞匯,常與核心詞結(jié)合使用。
(3)核心詞Core:可以以較大概率唯一標(biāo)記問答對的詞匯。
根據(jù)定義,句子中一般含有大量Normal詞和少量的Attr,Core詞。而且Core既可單獨(dú)出現(xiàn),也可以與Attr結(jié)對出現(xiàn)。則句子的構(gòu)成可能是一個(gè)或多個(gè)Core/Core-Attr與若干Normal的組合。在理想情況下,若任務(wù)中出現(xiàn)Core/Core-Attr,可以認(rèn)為任務(wù)屬于封閉域。
算法的核心思想是對Word/Word-Word成為Core/Core-Attr的概率進(jìn)行判定,隨后根據(jù)任務(wù)中Core/Core-Attr的出現(xiàn)情況,計(jì)算任務(wù)屬于封閉域的概率大小。
首先將語料庫中所有問答對的問句分詞,并統(tǒng)計(jì)詞頻,從小到大排序。
(1)挑選一個(gè)核心詞系數(shù)c,對詞頻最小c%的詞進(jìn)行Core判定。
(2)將不進(jìn)行Core判定的詞(Attr Candidate)的詞頻歸一化。
(3)對于每一個(gè)要進(jìn)行Core判定的詞Word:
1.首先要進(jìn)行Core-Attr對的判定
①在含有Word的句子集合中構(gòu)建Word-Attr Candidate對集合,其中每個(gè)W-AC對的權(quán)值由Attr Candidate的詞頻決定;
②使用SVM對W-AC對的權(quán)值進(jìn)行二分類,由F1值計(jì)算高詞頻部分構(gòu)成Core-Attr的概率。
1)如果F1比較大,意味著高詞頻部分構(gòu)成Core-Attr的概率很大,我們將高詞頻部分的Attr Candidate加入Attr集合留作后用;
2)如果F1比較小,意味著Word可能是Normal或者是單獨(dú)出現(xiàn)的Core,記錄該Word到C/N。
(4)對于C/N中的每個(gè)Word:
1.首先與Attr集合構(gòu)建Word-Attr對集合;
2.在含有Word的句子集合中,檢查Word-Attr對的出現(xiàn)頻率。
①如果頻率較高,則以較高概率認(rèn)定Word為Normal;
②反之則以較高概率認(rèn)定Word為Core。
在算法流程1中,c越大,預(yù)處理的效果就越好,判斷成功的概率會(huì)上升,但時(shí)空開銷也會(huì)增大。同時(shí),因?yàn)榻^大部分的Core會(huì)分布在低詞頻的區(qū)間,選取過大的c可能會(huì)將更多的非Core詞加入概率判斷,反而降低了判斷成功的概率。如果語料庫并不龐大,可以采用模擬退火算法求出c的近似最優(yōu)解。
業(yè)界對對話機(jī)器人的表現(xiàn)與應(yīng)用范圍的要求越來越高,對當(dāng)前市場上對話機(jī)器人的表現(xiàn)有所不滿。目前采用聯(lián)合模型的對話機(jī)器人研究相對較少,聯(lián)合模型開發(fā)有較大的發(fā)展空間。本文提出了一種基于聯(lián)合模型并行方案的優(yōu)化方案,主要著力于在對語料庫預(yù)處理算法上的改進(jìn)。該模型還有一些設(shè)計(jì)上和原理上的不足,由于筆者能力有限,僅做拋磚引玉之用,為對話機(jī)器人同時(shí)處理開放域和封閉域的對話任務(wù)提供一個(gè)思路。