閆曉宇 彭蘇婷
摘? 要:隨著自然語(yǔ)言處理技術(shù)的發(fā)展,對(duì)話機(jī)器人以節(jié)省人工和易于嵌入等特點(diǎn)受到業(yè)界青睞。為了滿足在線教育的需求,本文提出的教育領(lǐng)域多輪對(duì)話機(jī)器人具備和用戶針對(duì)知識(shí)點(diǎn)進(jìn)行深入對(duì)話的能力。本文介紹了此對(duì)話機(jī)器人的實(shí)現(xiàn)全流程:采取用戶模擬器生成教育領(lǐng)域語(yǔ)料,使用意圖識(shí)別和槽位填充實(shí)現(xiàn)自然語(yǔ)言理解,通過(guò)對(duì)話狀態(tài)追蹤和對(duì)話策略設(shè)計(jì)多輪對(duì)話邏輯。這為學(xué)生提供了答疑解惑的新渠道,為線上教育的智能創(chuàng)新帶來(lái)更多選擇。
關(guān)鍵詞:教育;對(duì)話機(jī)器人;多輪對(duì)話
Abstract: With the development of Natural Language Processing (NLP) technology, chatbots are favored for their advantages of labor saving and easy embedding. In order to meet the needs of online education, this paper proposes to design multi-turn chatbots with ability to conduct in-depth dialogue with users on knowledge points in the field of education. This paper introduces a lifecycle of realizing multi-turn chatbot: adopting user simulator to generate educational corpus, using intention recognition and slot filling to realize natural language understanding, and designing multi-turn dialogue logic through dialogue state tracking and dialogue policy. This chatbot provides students with a new way to solve their puzzles and brings more choices for intelligent innovation in online education.
Keywords: education; chatbot; multi-turn dialogue
1? ?引言(Introduction)
在傳統(tǒng)的教育模式中,學(xué)生會(huì)遇到層出不窮的學(xué)習(xí)難點(diǎn),理想的情況是他們可以得到及時(shí)準(zhǔn)確的幫助,但需要教師投入大量的時(shí)間與精力。教師在講授某門(mén)課程時(shí)需要解答的問(wèn)題是有限的,這意味著他們的工作存在很大重復(fù)性。幸運(yùn)的是隨著互聯(lián)網(wǎng)教育的興起,人工智能技術(shù)已經(jīng)滲透教育行業(yè)的多個(gè)領(lǐng)域。目前,市場(chǎng)急需具備線上教學(xué)能力的產(chǎn)品來(lái)填補(bǔ)空白,既可以隨時(shí)為學(xué)生答疑解惑,又可以節(jié)省教師勞動(dòng)力的對(duì)話機(jī)器人不失為一個(gè)好的選擇。
現(xiàn)今已上線的對(duì)話機(jī)器人有很多,從功能上大致可以分為兩類:非任務(wù)導(dǎo)向型對(duì)話機(jī)器人和任務(wù)導(dǎo)向型對(duì)話機(jī)器人。非任務(wù)導(dǎo)向型機(jī)器人以小冰為代表,旨在和用戶在開(kāi)放域,即開(kāi)放的話題空間中閑聊互動(dòng)。任務(wù)導(dǎo)向型機(jī)器人以小度為例,旨在和用戶在封閉域,即有限的話題空間中完成特定任務(wù),比如播放歌曲、查詢天氣等。任務(wù)導(dǎo)向型機(jī)器人多出現(xiàn)在生活領(lǐng)域,通過(guò)語(yǔ)音、文字等方式控制家居產(chǎn)品等,給用戶帶來(lái)智慧生活的體驗(yàn)。但令人遺憾的是,這類機(jī)器人卻極少出現(xiàn)在教育領(lǐng)域。
雖然一些平臺(tái)和軟件也嵌入了簡(jiǎn)單的對(duì)話機(jī)器人,但其任務(wù)設(shè)定較為簡(jiǎn)單,大多只能完成單輪對(duì)話,即其僅能對(duì)用戶發(fā)出的最后一句話做出回應(yīng)。此類對(duì)話機(jī)器人只具備問(wèn)答功能而非對(duì)話功能,這顯然是不夠智能的。
本文提出的對(duì)話機(jī)器人具有多輪對(duì)話功能,它可以根據(jù)用戶對(duì)話歷史和當(dāng)前的對(duì)話信息與用戶產(chǎn)生互動(dòng)。另外,此對(duì)話機(jī)器人服務(wù)于教育領(lǐng)域,是一個(gè)可以在教育領(lǐng)域完成多輪對(duì)話的機(jī)器人,可以和用戶深入探討關(guān)于知識(shí)點(diǎn)的各種問(wèn)題。它可以實(shí)時(shí)回答學(xué)生的問(wèn)題,為學(xué)生減輕負(fù)擔(dān),同時(shí)避免教師的重復(fù)勞動(dòng),更可以為學(xué)校和其他教育機(jī)構(gòu)提供新鮮的學(xué)習(xí)方法,帶來(lái)新的學(xué)習(xí)選擇。
實(shí)現(xiàn)這一機(jī)器人的技術(shù)挑戰(zhàn)主要有三個(gè):一是缺乏語(yǔ)料庫(kù),獲得符合預(yù)期的教育領(lǐng)域語(yǔ)料庫(kù)是很困難的;二是設(shè)計(jì)合理清晰的多輪對(duì)話邏輯;三是大體量預(yù)訓(xùn)練語(yǔ)言模型的工業(yè)部署。
2? ?相關(guān)工作(Related work)
要實(shí)現(xiàn)任務(wù)導(dǎo)向型機(jī)器人,學(xué)界和業(yè)界公認(rèn)的經(jīng)典方法是一種流水線(Pipeline)方法,該方法通過(guò)集成三個(gè)組件的功能使機(jī)器人完成對(duì)話,組件按順序分別是自然語(yǔ)言理解(NLU)、對(duì)話管理(DM)和自然語(yǔ)言生成(NLG)。
自然語(yǔ)言理解將用戶輸入的非結(jié)構(gòu)化文本轉(zhuǎn)化為結(jié)構(gòu)化信息,這一組件的功能實(shí)現(xiàn)經(jīng)歷了漫長(zhǎng)的技術(shù)演變。繼有限狀態(tài)機(jī)(FSM)、隱馬爾可夫模型(HMM)等方法之后,目前在特定的封閉域內(nèi)實(shí)現(xiàn)自然語(yǔ)言理解具體可分為兩個(gè)關(guān)鍵任務(wù):一個(gè)是意圖識(shí)別,判斷用戶語(yǔ)句的意圖;另一個(gè)是槽位填充,提取語(yǔ)句中的關(guān)鍵文本信息。
意圖識(shí)別屬于文本分類問(wèn)題,在深度學(xué)習(xí)中這類技術(shù)產(chǎn)生了快速的更新迭代,包括基于卷積神經(jīng)網(wǎng)絡(luò)的特征提取[1]、上下文機(jī)制[2]、記憶存儲(chǔ)機(jī)制[3]、注意力機(jī)制[4]。槽位填充就是命名實(shí)體識(shí)別(NER),它的本質(zhì)是一個(gè)序列標(biāo)注問(wèn)題,即給文本中每一個(gè)字符打上標(biāo)簽,提取文本中的槽值。其中槽是人為設(shè)定好的詞槽(例如鬧鐘時(shí)間),槽值是文本中出現(xiàn)的詞槽對(duì)應(yīng)的值(例如上午十點(diǎn))。深度學(xué)習(xí)中頗為經(jīng)典的結(jié)構(gòu)是論文[5]提出的兩種結(jié)構(gòu),一種是LSTM-CRF,另一種是Stack-LSTM。
意圖識(shí)別和槽位填充既可以作為兩個(gè)單獨(dú)的任務(wù)處理,也可以聯(lián)合處理。由于兩個(gè)任務(wù)之間存在較大的相關(guān)性,因此聯(lián)合建模的效果一般會(huì)更好。而2018年BERT[6]等預(yù)訓(xùn)練模型出現(xiàn)以后,我們可以更方便地聯(lián)合處理意圖識(shí)別和槽位填充任務(wù),本文的對(duì)話機(jī)器人同樣應(yīng)用了這種方法。
根據(jù)對(duì)話歷史和當(dāng)前輪次對(duì)話信息,對(duì)話管理組件記錄對(duì)話狀態(tài)并決定對(duì)話機(jī)器人生成何種回復(fù),其包含兩個(gè)子組件:對(duì)話狀態(tài)追蹤(DST)和對(duì)話策略(DP)。對(duì)話狀態(tài)追蹤的任務(wù)是追蹤記錄用戶的對(duì)話歷史信息,有兩種實(shí)現(xiàn)方法可供選擇:一種是選取用戶的近幾輪對(duì)話信息,將其拼接后統(tǒng)一做自然語(yǔ)言理解,提取出意圖和槽值[7];另一種是根據(jù)自然語(yǔ)言理解每一輪的結(jié)構(gòu)化信息作對(duì)話狀態(tài)的更新。對(duì)話策略的核心目標(biāo)是根據(jù)DST的結(jié)果決定當(dāng)前輪次如何回應(yīng)用戶。其傳統(tǒng)的實(shí)現(xiàn)方法是基于規(guī)則設(shè)計(jì),這在特定封閉域內(nèi)的效果很好,但是缺乏通用性,在新的域內(nèi)泛化能力差,故多領(lǐng)域的對(duì)話機(jī)器人需要手工設(shè)計(jì)大量規(guī)則使對(duì)話策略完備。雖然學(xué)術(shù)界有很多大膽的嘗試,不乏使用強(qiáng)化學(xué)習(xí)來(lái)替代基于規(guī)則的對(duì)話策略模型的算法,但其結(jié)果的穩(wěn)定性和可解釋性仍待進(jìn)一步研究。
自然語(yǔ)言生成將對(duì)話管理返回的結(jié)果用自然語(yǔ)言表達(dá)出來(lái),是由結(jié)構(gòu)化文本生成非結(jié)構(gòu)化文本的過(guò)程。雖然現(xiàn)在生成式算法層出不窮,但業(yè)界仍然更青睞基于模板和規(guī)則的方法來(lái)保證任務(wù)驅(qū)動(dòng)型對(duì)話機(jī)器人輸出文本的穩(wěn)定性,本文的對(duì)話機(jī)器人也采用了這樣的方法。
3? ?提出的方法(Proposed method)
本文提出的教育領(lǐng)域多輪對(duì)話機(jī)器人的算法設(shè)計(jì)本質(zhì)是工程問(wèn)題,它采用了經(jīng)典的流水線方法,其組件包括自然語(yǔ)言理解、對(duì)話管理和自然語(yǔ)言生成三部分。為了保證在知識(shí)點(diǎn)封閉域中回答的嚴(yán)謹(jǐn)性,自然語(yǔ)言生成組件僅用有限的模板就可以達(dá)到理想的效果,故本文不做過(guò)多介紹。
3.1? ?語(yǔ)料準(zhǔn)備
雖然目前面向自然語(yǔ)言處理技術(shù)的開(kāi)源語(yǔ)料庫(kù)很多,但滿足教育領(lǐng)域和多輪對(duì)話兩個(gè)條件的語(yǔ)料庫(kù)幾乎沒(méi)有。這為對(duì)話機(jī)器人工程實(shí)現(xiàn)帶來(lái)了巨大的困難,冷啟動(dòng)是需要首先解決的問(wèn)題。
解決這一問(wèn)題的主流方法有兩個(gè):通過(guò)眾包平臺(tái)獲取語(yǔ)料或者構(gòu)建用戶模擬器生成模擬語(yǔ)料。眾包方法獲得的語(yǔ)料是由人工生成的,最符合自然語(yǔ)言處理的期望,但其成本造價(jià)較高,并且我們的機(jī)器人面向教育領(lǐng)域,眾包得到的語(yǔ)料還面臨內(nèi)容不嚴(yán)謹(jǐn)、數(shù)據(jù)回流周期長(zhǎng)和不滿足模型快速迭代需求的風(fēng)險(xiǎn)。因此我們選擇通過(guò)構(gòu)建用戶模擬器來(lái)獲得語(yǔ)料。我們的用戶模擬器對(duì)每一次完整的對(duì)話會(huì)首先生成一個(gè)總體目標(biāo),這保證模擬器可以生成上下文連貫的用戶動(dòng)作。這個(gè)用戶模擬器最終可以生成如圖1所示的語(yǔ)料,其展示了一個(gè)多輪的用戶對(duì)話。
教育領(lǐng)域的對(duì)話無(wú)非是圍繞知識(shí)點(diǎn)展開(kāi)的,我們將知識(shí)點(diǎn)看作每個(gè)完整對(duì)話的討論主題,故我們?cè)O(shè)定對(duì)話將在知識(shí)點(diǎn)域這一封閉域中展開(kāi)。我們將期望機(jī)器人能夠掌握的知識(shí)點(diǎn)列舉在一個(gè)知識(shí)點(diǎn)清單中,用戶模擬器的語(yǔ)料將圍繞這些知識(shí)點(diǎn)生成。基于專家知識(shí),我們定義了四種意圖:告知、詢問(wèn)、比較和問(wèn)候。對(duì)應(yīng)于詞槽,我們賦予知識(shí)點(diǎn)七個(gè)屬性,包括名稱、定義、性質(zhì)、應(yīng)用、優(yōu)缺點(diǎn)、實(shí)現(xiàn)工具、優(yōu)化改進(jìn),用戶模擬器可以對(duì)知識(shí)點(diǎn)的這些屬性產(chǎn)生提問(wèn)。
對(duì)于知識(shí)點(diǎn)域,設(shè)定用戶目標(biāo)包括兩種詞槽類型:告知槽和詢問(wèn)槽,這分別對(duì)應(yīng)告知意圖和詢問(wèn)意圖。其中告知槽在語(yǔ)料中對(duì)應(yīng)有槽值,它是知識(shí)點(diǎn)的名稱,而知識(shí)點(diǎn)名稱也是我們?cè)谧匀徽Z(yǔ)言理解的槽位填充中需要識(shí)別出的實(shí)體,數(shù)據(jù)結(jié)構(gòu)形如[‘知識(shí)點(diǎn)域,‘Inform,‘名稱,‘二次規(guī)劃]。而詢問(wèn)槽沒(méi)有槽值對(duì)應(yīng),它對(duì)應(yīng)知識(shí)點(diǎn)的其他六個(gè)屬性,于是我們得到六種詢問(wèn)槽,數(shù)據(jù)結(jié)構(gòu)形如[‘知識(shí)點(diǎn)域,‘Request,‘定義,‘]。另外,為了模擬現(xiàn)實(shí)生活中學(xué)生對(duì)知識(shí)點(diǎn)產(chǎn)生的疑問(wèn),我們?cè)黾恿吮容^意圖,這使得用戶模擬器可以產(chǎn)生類似“二次規(guī)劃和支持向量機(jī)有什么聯(lián)系”的問(wèn)題,其數(shù)據(jù)結(jié)構(gòu)是[[‘知識(shí)點(diǎn)域,‘Inform,‘名稱,‘二次規(guī)劃],[‘知識(shí)點(diǎn)域,‘Compare,‘名稱,‘支持向量機(jī)]]。最后我們使用戶模擬器可以產(chǎn)生擬人的問(wèn)候意圖,即生成一些簡(jiǎn)單的問(wèn)候語(yǔ)句,數(shù)據(jù)結(jié)構(gòu)為[‘General,‘Greeting,‘none,‘]。
針對(duì)每個(gè)完整的對(duì)話,依據(jù)意圖和詞槽的排列組合可以生成用戶模擬器的總目標(biāo),每輪對(duì)話都會(huì)從還沒(méi)被完成的總目標(biāo)中挑選出一些子目標(biāo)來(lái)完成該輪對(duì)話,直至所有的總目標(biāo)都被完成后該完整對(duì)話結(jié)束。
此用戶模擬器的優(yōu)勢(shì)是可以根據(jù)需要生成任意數(shù)量的語(yǔ)料數(shù)據(jù),并且可通過(guò)增加知識(shí)點(diǎn)清單中知識(shí)點(diǎn)的數(shù)量使機(jī)器人可以討論的知識(shí)點(diǎn)范圍擴(kuò)大。我們共生成了7,000 條訓(xùn)練數(shù)據(jù)、2,000 條驗(yàn)證數(shù)據(jù)和2,000 條測(cè)試數(shù)據(jù),每條數(shù)據(jù)都是一個(gè)完整的對(duì)話,每個(gè)完整的對(duì)話都包含多輪的用戶對(duì)話信息。
3.2? ?自然語(yǔ)言理解
自然語(yǔ)言理解在任務(wù)流水線中的作用是把非結(jié)構(gòu)化文本轉(zhuǎn)化為結(jié)構(gòu)化信息。其中要完成兩個(gè)主要任務(wù):意圖識(shí)別和槽位填充,其分別屬于文本分類和序列標(biāo)注任務(wù)。早期的深度學(xué)習(xí)方法將這兩部分用兩個(gè)模型分別處理,例如用TextCNN和Attention做意圖識(shí)別,用BiLSTM和CRF做槽位填充。但這樣做有一些顯而易見(jiàn)的缺陷,兩個(gè)模型疊加可能使最終結(jié)果出現(xiàn)誤差的概率增大。
雖然一直有學(xué)者嘗試意圖識(shí)別和槽位填充兩個(gè)任務(wù)的聯(lián)合訓(xùn)練,但真正的突破出現(xiàn)在2018年BERT和GPT等預(yù)訓(xùn)練模型出現(xiàn)之后。以BERT為例,它的語(yǔ)料庫(kù)由維基百科等數(shù)據(jù)集構(gòu)成,網(wǎng)絡(luò)結(jié)構(gòu)上沿用了Attention機(jī)制的Encoder部分,由12個(gè)頭的Attention層組成,并且通過(guò)MASK機(jī)制和NSP(Next Sentence Prediction)方法使模型分別學(xué)習(xí)到語(yǔ)料的詞級(jí)別和句級(jí)別的知識(shí)。這樣的設(shè)計(jì)使BERT可以完成各個(gè)類型的自然語(yǔ)言處理下游任務(wù),包括句子的分類任務(wù)、閱讀理解任務(wù)、問(wèn)答任務(wù)和序列標(biāo)注任務(wù)。
BERT有很多中文預(yù)訓(xùn)練版本,其中BERT-wwm[8]被廣泛使用,它努力保證了原BERT的訓(xùn)練條件和模型結(jié)構(gòu),并針對(duì)中文詞匯特點(diǎn)做出改善,引入了wwm(whole word mask)方法,具體是BERT在MASK機(jī)制中不再遮蓋住單個(gè)中文字而是遮蓋整個(gè)中文詞組,這讓BERT學(xué)習(xí)到更多詞組的知識(shí)?;贐ERT-wwm提出的BERTNLU模型[9]以用戶模擬器構(gòu)建的語(yǔ)料庫(kù)作為輸入,在模型的最后一層隱藏層后分別連接兩組不同的輸出層,兩個(gè)輸出層分別得到意圖識(shí)別和槽值填充的logist結(jié)果,經(jīng)過(guò)后處理就可以得到最終的結(jié)果。本文介紹的機(jī)器人也采用這種方法完成自然語(yǔ)言理解任務(wù),槽位填充可以識(shí)別出語(yǔ)料中的知識(shí)點(diǎn)名稱,意圖識(shí)別可以判斷語(yǔ)料中包含的意圖是否存在告知、詢問(wèn)、比較、問(wèn)候中的一個(gè)或多個(gè)。在訓(xùn)練集上訓(xùn)練得到的模型在測(cè)試集上的F1值可以達(dá)到0.92,這表明我們的自然語(yǔ)言理解組件的性能是滿足預(yù)期的。
BERT模型效果固然好,但其上億的模型參數(shù)也為工程部署帶來(lái)了不可忽視的負(fù)擔(dān)。為了解決這個(gè)問(wèn)題,出現(xiàn)了許多輕量化的BERT模型,它們對(duì)原始的BERT做剪枝或者蒸餾等處理,以期BERT參數(shù)大量減少的同時(shí)其精度不會(huì)有大幅下降,甚至有些許提升。其中基于知識(shí)蒸餾的TinyBERT[10]構(gòu)造十分精巧,效果也很顯著,遺憾的是該模型暫時(shí)只能處理英文文本。我們嘗試了可以處理中文文本的ALBERT[11]模型,它通過(guò)詞嵌入?yún)?shù)因式分解和隱藏層間參數(shù)共享的方法達(dá)到了BERT模型輕量化的目的,雖然模型的運(yùn)算速度沒(méi)有提升,但其參數(shù)數(shù)量減少了十倍左右,并且模型精度在BLUE等數(shù)據(jù)集上沒(méi)有顯著下降。本文的機(jī)器人用ALBERT替代BERT來(lái)做預(yù)訓(xùn)練模型,并用相同的訓(xùn)練集訓(xùn)練模型后,在測(cè)試集上得到的F1值同樣可以達(dá)到0.9以上的分?jǐn)?shù)。但在人工確認(rèn)模型輸出效果時(shí),我們發(fā)現(xiàn)基于ALBERT的模型在意圖識(shí)別任務(wù)上效果沒(méi)有明顯波動(dòng),但在槽位填充任務(wù)上的表現(xiàn)卻不及BERT,我們分析這可能是參數(shù)共享帶來(lái)的副作用,12層隱藏層共用一組參數(shù)不可避免地使模型更難識(shí)別語(yǔ)料中字詞的信息,從而導(dǎo)致序列標(biāo)注能力下降。
3.3? ?對(duì)話管理
在得到結(jié)構(gòu)化的文本信息后,機(jī)器人要根據(jù)用戶對(duì)話歷史和當(dāng)前的對(duì)話狀態(tài)做出恰當(dāng)?shù)姆磻?yīng)。這一決策過(guò)程在對(duì)話管理組件中實(shí)現(xiàn),因此對(duì)話管理可以被理解為對(duì)話機(jī)器人的大腦部件。更具體地來(lái)說(shuō),對(duì)話狀態(tài)追蹤組件記錄更新用戶的歷史對(duì)話狀態(tài),對(duì)話策略組件決定提供何種反饋。
3.3.1? ?對(duì)話狀態(tài)追蹤
對(duì)話狀態(tài)追蹤通過(guò)不斷獲得用戶每一輪的對(duì)話信息,相應(yīng)更新維護(hù)用戶的對(duì)話狀態(tài),基本的數(shù)據(jù)結(jié)構(gòu)為詞槽和槽值的組合。隨著深度學(xué)習(xí)的發(fā)展,學(xué)術(shù)界出現(xiàn)了一些對(duì)話狀態(tài)追蹤的端到端生成方法,例如TRADE算法以用戶歷史的幾輪對(duì)話信息作為模型輸入,輸出結(jié)果是用戶相應(yīng)多輪的歷史對(duì)話狀態(tài)。這樣的方法將自然語(yǔ)言理解和歷史對(duì)話狀態(tài)更新整合在一起,省去了基于專家知識(shí)面向?qū)υ挔顟B(tài)追蹤的規(guī)則設(shè)計(jì),但模型的輸出結(jié)果不能保證穩(wěn)定可控的效果。而工業(yè)界多數(shù)采用穩(wěn)定且易于部署的基于規(guī)則的方法,首先設(shè)定好需要維護(hù)的狀態(tài)包含哪些字段,再由每一輪對(duì)話獲得的結(jié)構(gòu)化信息更新。這樣雖然需要一些人工來(lái)保證規(guī)則的完備,但在知識(shí)封閉域內(nèi)的工作量不會(huì)很大并且效果是顯著的。
3.3.2? ?對(duì)話策略
對(duì)話策略也經(jīng)歷了幾個(gè)階段的發(fā)展,由最初基于規(guī)則的方法,發(fā)展到基于部分可見(jiàn)馬爾可夫決策過(guò)程等基于統(tǒng)計(jì)的方法,最后是近期學(xué)術(shù)界青睞的強(qiáng)化學(xué)習(xí)等深度學(xué)習(xí)方法。
基于規(guī)則方法的ELIZA心理醫(yī)療聊天機(jī)器人就采用模板匹配的方法完成了對(duì)話策略,在當(dāng)時(shí)它的出現(xiàn)引起了轟動(dòng),由此可見(jiàn)其對(duì)話效果是出人意料的。但基于規(guī)則的對(duì)話策略有擴(kuò)展性差、需要強(qiáng)人工干預(yù)等缺點(diǎn),而可擴(kuò)展性差主要體現(xiàn)在意圖識(shí)別和槽位填充結(jié)果的不穩(wěn)定性上。前面我們已經(jīng)提到過(guò),自然語(yǔ)言理解會(huì)識(shí)別出用戶對(duì)話中的意圖和相應(yīng)詞槽對(duì)應(yīng)的槽值。但在現(xiàn)實(shí)應(yīng)用中,尤其是當(dāng)對(duì)話機(jī)器人需要處理多個(gè)封閉域甚至是開(kāi)放域的任務(wù)時(shí),用戶的意圖、詞槽和對(duì)應(yīng)的槽值是很難窮舉的。即用戶的對(duì)話中會(huì)出現(xiàn)自然語(yǔ)言理解組件識(shí)別不了的意圖和詞槽,例如當(dāng)用戶和機(jī)器人在進(jìn)行電影域內(nèi)的談話時(shí),用戶突然提及了一個(gè)機(jī)器人訓(xùn)練集中沒(méi)出現(xiàn)過(guò)的電影名稱,這時(shí)機(jī)器人很難將這個(gè)電影名稱用槽位填充的方法識(shí)別出來(lái),進(jìn)而就不能和用戶產(chǎn)生關(guān)于該部電影的互動(dòng)。為了解決這個(gè)問(wèn)題,前文提到的TRADE算法利用拷貝網(wǎng)絡(luò),提升了對(duì)不可窮舉的詞槽的識(shí)別能力。
部分可見(jiàn)馬爾可夫決策過(guò)程等基于統(tǒng)計(jì)的方法也取得了不錯(cuò)的效果,此類算法摒棄了人工設(shè)計(jì)決策規(guī)則,但是面對(duì)較為復(fù)雜多變的狀態(tài)時(shí)無(wú)法獲得很好的效果。
與強(qiáng)化學(xué)習(xí)相關(guān)的一些算法也在學(xué)術(shù)界取得了進(jìn)展[12],但強(qiáng)化學(xué)習(xí)應(yīng)用到自然語(yǔ)言處理任務(wù)中還是較為困難的,因?yàn)檎Z(yǔ)言的復(fù)雜性,我們很難設(shè)定合適的獎(jiǎng)勵(lì)函數(shù),所以這方面仍需學(xué)者們更進(jìn)一步探索。
因?yàn)楸疚慕榻B的機(jī)器人被應(yīng)用在教育領(lǐng)域,用戶的意圖和詞槽的槽值是可能窮舉的,尤其是僅針對(duì)某一門(mén)課程來(lái)設(shè)計(jì)機(jī)器人時(shí)。因此我們選用基于專家知識(shí)的模板設(shè)計(jì),通過(guò)如圖2所示的邏輯架構(gòu)使機(jī)器人可以進(jìn)行多輪對(duì)話。對(duì)話策略組件首先會(huì)根據(jù)用戶的當(dāng)前對(duì)話判斷其提供的信息是否完整,若完整則執(zhí)行查詢數(shù)據(jù)庫(kù)等操作,若不完整則需要用澄清話術(shù)對(duì)需要填充的詞槽做出提問(wèn)。而在知識(shí)點(diǎn)域信息完整性的判斷方法是知識(shí)點(diǎn)的告知槽和需求槽都不為空。
本文機(jī)器人的流水線設(shè)計(jì)舍棄了自然語(yǔ)言生成的部分,因?yàn)闄C(jī)器人的對(duì)話輸出為:當(dāng)機(jī)器人查詢到用戶對(duì)話相應(yīng)結(jié)果時(shí),直接返回該結(jié)果;當(dāng)查不到時(shí)則輸出澄清話術(shù),這是可以枚舉的,故不需要額外的自然語(yǔ)言生成組件來(lái)形成輸出結(jié)果。當(dāng)然,如果期望機(jī)器人可以產(chǎn)生多樣化的輸出,采用自然語(yǔ)言生成可以帶來(lái)更智能的效果。
4? ?實(shí)驗(yàn)效果(Experimental results)
為了展示本文介紹的教育領(lǐng)域多輪對(duì)話機(jī)器人的對(duì)話效果,以下將舉例說(shuō)明。假設(shè)用戶在一句話中就完整表達(dá)出他想了解的信息,例如,“你知道二次規(guī)劃和支持向量機(jī)的關(guān)系是什么嗎?”此時(shí)無(wú)須多輪對(duì)話功能,機(jī)器人根據(jù)這些信息就可以在數(shù)據(jù)庫(kù)中查詢到相應(yīng)的答案反饋給用戶。
但在現(xiàn)實(shí)的人際交往中,對(duì)話雙方往往會(huì)省略一些他們談?wù)撨^(guò)的歷史信息。例如,A:“今天天氣真好啊”,B:“的確,太陽(yáng)光暖融融的”,A:“是啊,昨天也是這樣呢”。這里A所說(shuō)的“昨天也是這樣呢”,其實(shí)想要表達(dá)的完整意思是“昨天的太陽(yáng)光也暖融融的”。我們的對(duì)話機(jī)器人在教育領(lǐng)域也可以用多輪對(duì)話技術(shù)達(dá)到這樣具有歷史記憶的效果。例如,用戶在第一輪詢問(wèn)“二次規(guī)劃的定義是什么”,而后又問(wèn)“那么它的應(yīng)用和優(yōu)化改進(jìn)是什么呢”,此時(shí)機(jī)器人會(huì)自動(dòng)補(bǔ)全對(duì)話信息,分別去數(shù)據(jù)庫(kù)查詢“二次規(guī)劃的應(yīng)用”和“二次規(guī)劃的優(yōu)化改進(jìn)”這兩個(gè)問(wèn)題并返回結(jié)果。另外,如果用戶提問(wèn)“這和支持向量機(jī)有什么聯(lián)系呢”,機(jī)器人會(huì)補(bǔ)全信息,在數(shù)據(jù)庫(kù)中查詢“二次規(guī)劃和支持向量機(jī)的聯(lián)系”并返回答案。進(jìn)一步地,如果用戶想要轉(zhuǎn)換提問(wèn)的知識(shí)點(diǎn)“那么隨機(jī)森林呢”,此時(shí)機(jī)器人會(huì)識(shí)別出用戶想要比較新的知識(shí)點(diǎn)“隨機(jī)森林”和二次規(guī)劃的區(qū)別,因此會(huì)查詢“隨機(jī)森林和二次規(guī)劃的聯(lián)系”,最后將答案返回給用戶。
5? ?結(jié)論(Conclusion)
本文介紹了一種應(yīng)用在教育領(lǐng)域的多輪對(duì)話機(jī)器人,在線上教育風(fēng)行的今天,它可以和學(xué)生在學(xué)習(xí)方面進(jìn)行人機(jī)互動(dòng),這樣既保證了及時(shí)為學(xué)生解惑,也為教師減輕了教學(xué)壓力。并且本機(jī)器人還可以被泛化在各門(mén)課程,普適性較強(qiáng)。在未來(lái)的工作中我們希望可以讓此機(jī)器人具有雙語(yǔ)甚至多語(yǔ)對(duì)話的功能,同時(shí)更智能完備的邏輯結(jié)構(gòu)和更自然的交互模式也需要我們繼續(xù)探索。
參考文獻(xiàn)(References)
[1] Wang Shiyao, Minlie Huang, Zhidong Deng. Densely Connected CNN with Multi-scale Feature Attention for Text Classification[C]. IJCAI, 2018:4468-4474.
[2] Smith J, Adamczyk J, Pesavento J. Context manager and method for a virtual sales and service center[P]. U.S. Patent No.6,064,973, 2000.
[3] 華冰濤,袁志祥,肖維民,等.基于BLSTM-CNN-CRF模型的槽填充與意圖識(shí)別[J].計(jì)算機(jī)工程與應(yīng)用,2019,55(09):139-143.
[4] 胡文妹.基于任務(wù)導(dǎo)向型多輪對(duì)話系統(tǒng)的意圖識(shí)別研究[D].北京:北京郵電大學(xué),2019.
[5] Lample G, Ballesteros M, Subramanian S, et al. Neural Architectures for Named Entity Recognition[C]. Proceedings of the 2016 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies, 2016:260-270.
[6] Devlin J, Chang M W, Lee K, et al. BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding[C]. Proceedings of the 2019 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies, Volume 1 (Long and Short Papers), 2019:4171-4186.
[7] Wu C S, Madotto A, Hosseini-Asl E, et al. Transferable Multi-Domain State Generator for Task-Oriented Dialogue Systems[C]. Proceedings of the 57th Annual Meeting of the Association for Computational Linguistics, 2019:808-819.
[8] Cui Y, Che W, Liu T, et al. Pre-Training with Whole Word Masking for Chinese BERT[DB/OL]. [2019-06-19]. https://arxiv.org/pdf/1906.08101.pdf.
[9] Zhu Q, Huang K, Zhang Z, et al. CrossWOZ: A Large-Scale Chinese Cross-Domain Task-Oriented Dialogue Dataset[DB/OL]. [2020-02-27]. https://arxiv.org/pdf/2002.11893.pdf.
[10] Jiao X, Yin Y, Shang L, et al. Tinybert: Distilling bert for natural language understanding[DB/OL]. [2019-11-23]. https://arxiv.org/pdf/1909.10351.pdf.
[11] Lan Z, Chen M, Goodman S, et al. Albert: A lite bert for self-supervised learning of language representations[DB/OL]. [2019-11-26]. https://arxiv.org/pdf/1909.11942v6.pdf.
[12] Abel D, Salvatier J, Stuhlmüller A, et al. Agent-agnostic human-in-the-loop reinforcement learning[DB/OL]. [2017-01-15]. https://arxiv.org/pdf/1701.04079.pdf.
作者簡(jiǎn)介:
閆曉宇(1995-),女,碩士,初級(jí)研究員.研究領(lǐng)域:自然語(yǔ)言處理,對(duì)話系統(tǒng).
彭蘇婷(1995-),女,碩士,初級(jí)研究員.研究領(lǐng)域:人工智能,自然語(yǔ)言處理.