田煥,陳志榮
(寧波工程學(xué)院 理學(xué)院,浙江 寧波 315211)
當(dāng)前大數(shù)據(jù)時(shí)代背景下,高校已經(jīng)建立起數(shù)字化教學(xué)管理和各類(lèi)信息服務(wù)平臺(tái),但是校園信息繁多且通常分布在各個(gè)獨(dú)立的校內(nèi)網(wǎng)站上,這給缺少綜合信息處理能力、獲取專(zhuān)業(yè)培養(yǎng)方案或校園信息的途徑往往還是依賴(lài)詢(xún)問(wèn)學(xué)長(zhǎng)、老師等的大學(xué)生,帶來(lái)諸如數(shù)據(jù)陳舊、信息不實(shí)、課程設(shè)置不理解等一系列負(fù)面問(wèn)題。因此,迫切需要為大學(xué)生提供一個(gè)可以進(jìn)行人機(jī)對(duì)話(huà)、實(shí)時(shí)答疑解惑,且簡(jiǎn)單、易操作的綜合服務(wù)平臺(tái)。
當(dāng)前有關(guān)人工智能的技術(shù)已遍布各行各業(yè),多個(gè)領(lǐng)域也因人工智能技術(shù)的加入而快速發(fā)展,人們?cè)诟鞣矫嫔钜惨虼烁颖憷咝?。而作為在人工智能領(lǐng)域中較有難度的研究方向——人機(jī)對(duì)話(huà),也得到了廣泛的重視。各大企業(yè)的人機(jī)對(duì)話(huà)產(chǎn)品不斷涌現(xiàn),如蘋(píng)果公司的Siri,微軟的Cortana等。本文將采用人工智能技術(shù)面向高校應(yīng)用場(chǎng)景,根據(jù)大學(xué)生高頻搜索的校園和專(zhuān)業(yè)信息的問(wèn)答文本數(shù)據(jù),訓(xùn)練二進(jìn)制詞向量文件,結(jié)合Seq2Seq模型和Attention機(jī)制構(gòu)建生成式對(duì)話(huà)模型,最后開(kāi)發(fā)實(shí)現(xiàn)高校智能對(duì)話(huà)系統(tǒng)。
首先需要收集數(shù)據(jù)并訓(xùn)練,將問(wèn)答對(duì)文本數(shù)據(jù)轉(zhuǎn)換為二進(jìn)制向量文件,借此與問(wèn)題向量進(jìn)行余弦相似度計(jì)算,返回相似度最高的回答。對(duì)于余弦相似度未達(dá)到設(shè)定閾值的問(wèn)題,利用Seq2Seq和Attention機(jī)制組建的生成式對(duì)話(huà)模型,作生成式應(yīng)答,具體如圖1所示。
圖1 人機(jī)智能對(duì)話(huà)模型
經(jīng)過(guò)訓(xùn)練后的結(jié)構(gòu)化數(shù)據(jù)是實(shí)現(xiàn)人機(jī)對(duì)話(huà)的核心基礎(chǔ)。本文以信息與計(jì)算科學(xué)專(zhuān)業(yè)為例,重點(diǎn)關(guān)注專(zhuān)業(yè)培養(yǎng)方案、課程設(shè)置、專(zhuān)業(yè)教師評(píng)價(jià)、學(xué)分規(guī)定、往屆畢業(yè)生信息、考研相關(guān)、就業(yè)信息、出國(guó)資訊和獎(jiǎng)學(xué)金信息等。通過(guò)收集線(xiàn)上線(xiàn)下大學(xué)生問(wèn)卷、歷屆生專(zhuān)業(yè)評(píng)價(jià)調(diào)查、咨詢(xún)本專(zhuān)業(yè)負(fù)責(zé)人以及校內(nèi)現(xiàn)有公開(kāi)的校園信息語(yǔ)料庫(kù),形成基礎(chǔ)問(wèn)答文本數(shù)據(jù)。收集到的網(wǎng)絡(luò)文本和自然語(yǔ)言會(huì)有諸如不規(guī)范、半結(jié)構(gòu)化的問(wèn)題。因此,為了去除文本中無(wú)意義的數(shù)據(jù)以及重復(fù)多余的內(nèi)容,需要對(duì)問(wèn)答文本進(jìn)行預(yù)處理,主要包括以下步驟:噪聲數(shù)據(jù)去除、分詞及詞性標(biāo)注、停用詞過(guò)濾。[1]
1)去噪。在網(wǎng)絡(luò)上搜集到的數(shù)據(jù)不一定完全是文字,可能還含有圖片、表情和符號(hào)等無(wú)意義的數(shù)據(jù)噪聲數(shù)據(jù),這些數(shù)據(jù)不僅會(huì)增加文本處理的工作量,更會(huì)對(duì)后續(xù)的分詞等一些操作造成影響,從而降低了文本處理的效率。因此可以先對(duì)數(shù)據(jù)進(jìn)行去噪處理,將數(shù)據(jù)轉(zhuǎn)換為純文字序列文本。
2)分詞。在中文文本中,一個(gè)短文本的語(yǔ)義表達(dá)是以詞來(lái)劃分的。中文分詞的作用是將去除噪聲數(shù)據(jù)后的純字序列文本按中文分詞規(guī)則分割開(kāi)。另外,詞性標(biāo)注也是必要的,便于實(shí)現(xiàn)句法分析、信息抽取等工作。在前期對(duì)問(wèn)答數(shù)據(jù)進(jìn)行中文分詞以及詞性標(biāo)注時(shí)可以利用分詞包來(lái)完成。
3)過(guò)濾。停用詞過(guò)濾則是為了刪除文本中重復(fù)率高但信息量低的詞,例如“啊”“和”等,從而提高重要詞的比例。
人機(jī)對(duì)話(huà)回答問(wèn)題的準(zhǔn)確度受到問(wèn)答數(shù)據(jù)的數(shù)量、質(zhì)量以及系統(tǒng)理解問(wèn)句和處理問(wèn)題的方式等因素影響,利用合適的自然語(yǔ)言處理技術(shù)可以提高答案的準(zhǔn)確性。詞的表示方式通常為以下兩種:One-hot Representation(獨(dú)熱表示)和Distribution Representation(分布式表示)。[1]因?yàn)楦咝?duì)話(huà)系統(tǒng)所包含的問(wèn)題領(lǐng)域較多、數(shù)據(jù)維度比較大,而獨(dú)熱表示無(wú)法展示詞與詞之間的關(guān)聯(lián)性,因此本文采用分布式表示方式。分布式表示是通過(guò)模型訓(xùn)練將每個(gè)詞都編碼成一個(gè)固定長(zhǎng)度的向量來(lái)達(dá)到降維的目的,并將這些向量在向量空間中表示出來(lái),每個(gè)向量在其中則可以表示為一個(gè)點(diǎn)。在這個(gè)空間中引入“距離”的概念,距離越近相似度也就越高。利用分布式表示可以將問(wèn)答對(duì)文本數(shù)據(jù)和學(xué)生提出的問(wèn)題轉(zhuǎn)換成向量、進(jìn)行相似度比較找到答案。
詞嵌入(Word Embedding)即是對(duì)詞采用分布式表示。本文利用Word2vec來(lái)得到二進(jìn)制向量文件,其采用了CBOW和Skip-gram兩種訓(xùn)練模型[1]。其中CBOW是通過(guò)上下文預(yù)測(cè)當(dāng)前詞,Skip-gram則是利用當(dāng)前詞來(lái)預(yù)測(cè)上下文。例如,“信科”“信科專(zhuān)業(yè)”“信息與計(jì)算科學(xué)”等詞向量,經(jīng)過(guò)訓(xùn)練后都會(huì)預(yù)測(cè)成為“信息與計(jì)算科學(xué)專(zhuān)業(yè)”標(biāo)準(zhǔn)詞向量。
問(wèn)句相似度計(jì)算會(huì)存在相似度低于閾值的情況即無(wú)法回答的情況,這就需要增加一個(gè)基于Seq2Seq的生成式對(duì)話(huà)模型來(lái)避免這種情況產(chǎn)生,可以針對(duì)學(xué)生提出的各種不同的問(wèn)題給出生成式答案[1]。Seq2Seq模型是一個(gè)使用神經(jīng)網(wǎng)絡(luò)將一個(gè)序列映射到另一個(gè)序列的通用框架,其改善了輸入序列長(zhǎng)度固定的問(wèn)題。Seq2Seq模型的思想是使用一個(gè)LSTM(長(zhǎng)短期記憶網(wǎng)絡(luò))讀取輸入序列,每次一個(gè)時(shí)間步長(zhǎng),從而將輸入序列編碼成固定維度的向量(編碼Encoder過(guò)程),然后使用另一個(gè)LSTM從該向量提取輸出序列(解碼Decoder過(guò)程)。在訓(xùn)練模型時(shí),就可以將問(wèn)題向量作為輸入序列,將答案向量作為輸出序列,將每個(gè)問(wèn)題向量和對(duì)應(yīng)的答案向量各自經(jīng)過(guò)編碼和解碼過(guò)程進(jìn)行訓(xùn)練。
Seq2Seq模型如圖2所示,首先讀取一個(gè)輸入句子“理學(xué)院專(zhuān)業(yè)”,然后生成“金融工程,信息與計(jì)算科學(xué)……”作為輸出句子。模型在輸出語(yǔ)句結(jié)束標(biāo)記EOS后停止進(jìn)行預(yù)測(cè)。其中,LSTM會(huì)反向讀取輸入句子,因?yàn)檫@樣可以在數(shù)據(jù)中引入許多短期依賴(lài)性,從而使優(yōu)化問(wèn)題更容易解決。
圖2 Seq2Seq模型
由于輸入序列編碼向量的長(zhǎng)度是固定的,因此能夠存儲(chǔ)的信息也是有限的。若輸入問(wèn)題文本序列比較長(zhǎng),傳遞的信息比較多,那么必然會(huì)產(chǎn)生較大的信息損耗。因此本文引入Attention機(jī)制,模擬人的注意力,使其聚焦到重要信息上,比如在“理學(xué)院有哪些專(zhuān)業(yè)”中,重點(diǎn)就在于“理學(xué)院”和“專(zhuān)業(yè)”,那么它就會(huì)把注意力集中在這兩個(gè)詞上。Attention機(jī)制的本質(zhì)如下圖3所示。
圖3 Attention機(jī)制
通過(guò)Query和key間的關(guān)聯(lián)性可以得到每個(gè)value的權(quán)重系數(shù),再對(duì)value加權(quán)求和得到Attention value。不引入Attention機(jī)制的Seq2Seq模型只會(huì)將Encoder最后的輸出作為Decoder的輸入,而引入Attention機(jī)制則會(huì)在每個(gè)時(shí)間步都選擇與之相關(guān)的編碼器信息。在時(shí)間步為t時(shí),Attention保存著Encoder的每一步輸出,并且Attention的輸出將會(huì)作為上下文信息與解碼器在t時(shí)刻的輸入拼接起來(lái)一起輸入到解碼器,從而實(shí)現(xiàn)上下文語(yǔ)義關(guān)聯(lián),問(wèn)題回答更加精準(zhǔn)。
高校智能對(duì)話(huà)系統(tǒng)主要服務(wù)對(duì)象是在校大學(xué)生,需要便捷易操作。本文選用微信小程序作為前端,為學(xué)生提供一個(gè)可對(duì)話(huà)交互的界面。微信程序使用面廣泛,用戶(hù)不需要再去安裝、學(xué)習(xí)和適應(yīng)新系統(tǒng),使用方便;且微信小程序不需要下載,不占手機(jī)空間。
基于生成式對(duì)話(huà)模型,智能對(duì)話(huà)系統(tǒng)主要包括問(wèn)題理解、問(wèn)題檢索兩個(gè)功能模塊。問(wèn)題理解是為了讓系統(tǒng)理解接收到的問(wèn)題,含文本預(yù)處理和問(wèn)題判斷;文本預(yù)處理包括去除噪聲、分詞、去停用詞等操作;問(wèn)題判斷則是依靠詞向量轉(zhuǎn)換。問(wèn)題檢索是為了獲取到問(wèn)題相應(yīng)的答案,可以通過(guò)詞向量轉(zhuǎn)換和問(wèn)句相似度計(jì)算實(shí)現(xiàn)。
系統(tǒng)處理問(wèn)題的流程如圖4所示。在收到問(wèn)題后,經(jīng)過(guò)預(yù)處理將問(wèn)題轉(zhuǎn)化為機(jī)器所能理解識(shí)別的結(jié)構(gòu)化序列,再根據(jù)已訓(xùn)練的詞向量模型把問(wèn)題轉(zhuǎn)換為詞向量,進(jìn)而與已有問(wèn)題向量進(jìn)行余弦相似度計(jì)算,最終以相似度最高的問(wèn)題去查詢(xún)數(shù)據(jù)庫(kù)中的答案返回給學(xué)生。若是相似度未達(dá)到設(shè)定的閾值,則問(wèn)題將會(huì)輸入到預(yù)先訓(xùn)練好的Seq2Seq生成式對(duì)話(huà)模型,做生成式應(yīng)答反饋給用戶(hù)。
如圖5所示,進(jìn)入對(duì)話(huà)界面后,學(xué)生可發(fā)出提問(wèn),系統(tǒng)接收到問(wèn)題后進(jìn)行處理并返回答案或做生成式應(yīng)答,實(shí)現(xiàn)高校場(chǎng)景下的人機(jī)對(duì)話(huà)。
圖4 問(wèn)題處理流程
圖5 人機(jī)對(duì)話(huà)演示
本文利用自然語(yǔ)言處理技術(shù),針對(duì)高校大學(xué)生專(zhuān)業(yè)綜合信息獲取困難等問(wèn)題,設(shè)計(jì)生成式對(duì)話(huà)模型,并基于該模型開(kāi)發(fā)實(shí)現(xiàn)智能對(duì)話(huà)微信小程序。系統(tǒng)測(cè)試結(jié)果顯示:回答的準(zhǔn)確率約為81.24%。隨著使用量擴(kuò)大,用戶(hù)的提問(wèn)數(shù)據(jù)可以加入到訓(xùn)練模型中,系統(tǒng)迭代升級(jí)后準(zhǔn)確率將會(huì)進(jìn)一步提高。此外,Attention機(jī)制也還存在一些缺點(diǎn),如對(duì)序列的所有元素采用并行處理無(wú)法考慮輸入序列的元素順序,而要想捕捉位置信息還需要改進(jìn)。如有足夠的訓(xùn)練數(shù)據(jù),本模型和系統(tǒng)后期可擴(kuò)展至其他應(yīng)用場(chǎng)景。