国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于檢索與生成混合模型的個性化聊天機器人系統(tǒng)的設(shè)計與實現(xiàn)

2022-11-04 03:40孔繁恒高永祺張子帥阮俊豪
軟件工程 2022年11期
關(guān)鍵詞:聊天檢索個性化

孔繁恒,高永祺,張子帥,阮俊豪,馮 時

(東北大學計算機科學與工程學院,遼寧 沈陽 110819)

kongfanheng426@163.com;905323742@qq.com;1060876095@qq.com;954369920@qq.com;fengshi@stu.neu.edu.cn

1 引言(Introduction)

伴隨著互聯(lián)網(wǎng)數(shù)據(jù)的爆發(fā)式增長,聊天機器人產(chǎn)品出現(xiàn)在人們的視野中。聊天機器人是經(jīng)由對話或文字進行交談的計算機程序,能夠模擬人類對話,為用戶提供了智能、自然連貫的對話服務(wù)。聊天機器人根據(jù)其對話生成技術(shù)主要分為檢索式和生成式。檢索式模型使用信息檢索的技術(shù),從事先處理好的語料庫中選擇匹配的對話作為應(yīng)答。生成式模型使用深度學習的技術(shù),通過預(yù)先訓練的模型合成適當?shù)膽?yīng)答。

在對話中保持一致的個性對于人類來說是很自然的,但對于機器來說卻不是一件平凡的任務(wù),由于在自然語言中體現(xiàn)個性的困難,以及在大多數(shù)對話語料庫中觀察到的人物角色稀疏問題,仍然沒有得到很好的探討。本文設(shè)計了一種檢索-生成混合模型,該模型可以利用人物角色稀疏對話數(shù)據(jù)生成連貫的響應(yīng)。通過對說話人的角色和對話歷史進行編碼,設(shè)計個性屬性嵌入,來模擬更豐富的對話語境,從而實現(xiàn)個性化的聊天機器人系統(tǒng)。

2 需求分析(Requirements analysis)

作為人機交互領(lǐng)域一個非常重要的研究方向,人機對話系統(tǒng)正處于蓬勃發(fā)展的階段。傳統(tǒng)的問答系統(tǒng)已經(jīng)不能滿足人們的要求,如今人們更偏向于系統(tǒng)擁有更廣泛的知識領(lǐng)域并能夠具有特定的個性,使得人機對話更加生動、順暢。聊天機器人,主要任務(wù)是利用自然語言完成與人在任意話題上的交流,其涉及的話題之廣、表達方式之多更能符合用戶的需求。

本系統(tǒng)所要實現(xiàn)的目標為個性化的智能聊天機器人系統(tǒng),擁有進行個性化聊天的功能。用戶在與本系統(tǒng)交互時,可以設(shè)置聊天機器人的個性信息。系統(tǒng)會通過對用戶設(shè)置的角色和對話歷史進行編碼,模擬對話語境,分別得到檢索式和生成式兩種回復方式,將兩者評價比較后選擇最優(yōu)回復,并顯示在聊天界面上,實現(xiàn)個性化的聊天。本系統(tǒng)的各功能模塊如圖1所示。

圖1 系統(tǒng)功能模塊圖Fig.1 System function block diagram

3 系統(tǒng)設(shè)計和實現(xiàn)(System design and implementation)

3.1 總體設(shè)計

本系統(tǒng)以PyTorch為開發(fā)框架,采用深度學習的技術(shù),使用檢索-生成混合模型,構(gòu)建了一個個性化的智能聊天機器人系統(tǒng)。前端采用Tkinter模塊接口,后端采用PyTorch開發(fā)框架,均使用Python語言編寫。前端為Graphical User Interface(GUI),分為兩部分:設(shè)置界面(可供用戶設(shè)置聊天機器人的個性信息,包括性別、地域和個性標簽)與聊天界面。后端使用檢索-生成混合模型,檢索模型采用Elasticsearch搜索服務(wù)器,檢索速度極快,大大降低了整體系統(tǒng)的回復生成時間;生成模型采用PostKS模型,可以定向設(shè)置聊天機器人的個性并生成具有特定個性的回復。通過混合兩種模型提高了回復的相關(guān)性和流暢性,語句質(zhì)量較高。

在后端設(shè)計中,選擇具有個性信息的2019 年社會媒體處理大會中文人機對話技術(shù)評測(SMP2019-ECDT)對話集和質(zhì)量較高的小黃雞語料庫作為數(shù)據(jù)集,然后進行數(shù)據(jù)預(yù)處理,包括篩選高頻個性標簽、數(shù)據(jù)清洗、調(diào)整數(shù)據(jù)格式等。檢索模塊使用Elasticsearch搜索服務(wù)器及小黃雞語料庫構(gòu)建檢索模型,生成模塊首先構(gòu)建PostKS個性化生成模型,然后利用SMP2019-ECDT對話集進行訓練。前端為用戶提供窗口輸入個性信息與對話,以字符串的形式傳送到后端。后端接收到用戶發(fā)送的信息,分別傳送到檢索和生成模塊中生成應(yīng)答,在回復選擇模塊比較兩種模型生成的應(yīng)答并選擇合適的應(yīng)答,同時將此應(yīng)答傳回前端并展示到界面上。系統(tǒng)總體結(jié)構(gòu)如圖2所示。

圖2 系統(tǒng)總體結(jié)構(gòu)圖Fig.2 System overall structure diagram

3.2 數(shù)據(jù)集獲取及預(yù)處理

本文選取SMP2019-ECDT提供的數(shù)據(jù)集作為生成模型的原始數(shù)據(jù),數(shù)據(jù)集中包含約500萬輪次的對話(既包含單輪對話又包含多輪對話),以及參與這些對話的發(fā)話人的個性化信息(包括性別、個性標簽、所屬地域)。數(shù)據(jù)集為JSON格式,如{"dialog":[["瘋了瘋了"],["我要帶到教室去上課你就羨慕我吧!"]],"profile":[{"tag":["美食"],"loc":"四川成都","gender":"female"},{"tag":["娛樂;旅游"],"loc":"四川","gender":"female"}],"uid":[0,1]},其中dialog為對話,profile表示對話人的個性化信息,包括tag——個性標簽、loc——所屬地域、gender——性別、uid——對話人id。

由于生成模型需要個性信息作為特征,標簽的篩選十分重要,因此要對數(shù)據(jù)集進行預(yù)處理。首先將相似的標簽進行合并,例如“電影”“愛電影”“電影愛好者”這類標簽可以合并成一類。然后篩選出高頻出現(xiàn)的標簽,得到高頻標簽字典。算法描述如下所示。

由于數(shù)據(jù)集中存在很多個性信息不完善(缺少性別/地域/個性標簽)的對話,因此需要對數(shù)據(jù)集進行清洗,并且保證對話中的每個單詞都在單詞表中,以此來提升數(shù)據(jù)集的質(zhì)量。算法描述如下所示:

對于檢索模型,SMP2019-ECDT提供的數(shù)據(jù)集對話噪音較多,在語意連貫、流暢性等方面有所欠缺,因此本文采用小黃雞語料庫作為檢索模型的數(shù)據(jù)集。該數(shù)據(jù)集只需調(diào)整數(shù)據(jù)格式即可使用。

3.3 檢索模塊

Elasticsearch是一個分布式、可擴展、實時的搜索與數(shù)據(jù)分析引擎。由于Elasticsearch是在Lucene基礎(chǔ)上構(gòu)建而成的,所以在全文本搜索方面表現(xiàn)十分出色。Elasticsearch是一個近實時的搜索平臺,這意味著從文檔索引操作到文檔變?yōu)榭伤阉鳡顟B(tài)之間的延時很短,相比一些傳統(tǒng)的檢索方法回復速度提升了10%以上。Elasticsearch提供了強大的索引能力,其使用的倒排索引相較于關(guān)系型數(shù)據(jù)庫的B-Tree索引更快。

通過文本匹配的相關(guān)度分數(shù)來判斷檢索對話的相關(guān)性。其相關(guān)度評分的計算規(guī)則涉及布爾模型(Boolean Model)、詞頻-逆文檔頻率(TF-IDF)和向量空間模型(Vector Space Model)。Elasticsearch使用布爾模型查找匹配文檔,并用一個名為實用評分函數(shù)(借鑒TF-IDF和向量空間模型)的公式來計算相關(guān)度,同時也加入了協(xié)調(diào)因子、字段長度歸一化、詞或查詢語句權(quán)重提升。

映射(Mapping)是定義文檔及其包含的字段如何存儲和索引的過程。每個文檔都是字段的集合,映射數(shù)據(jù)時,將會創(chuàng)建一個映射定義,其中包含與文檔相關(guān)的字段列表。

本文檢索的映射規(guī)則設(shè)置如下:

其中,type 表示每個字段的數(shù)據(jù)類型,常用的有keyword和text等,可根據(jù)檢索的目的設(shè)置。analyzer表示索引時用于文本分析的分析器,search_analyzer表示搜索時使用的分析器,本文分別設(shè)置為ik_max_word和ik_smart。IK分詞器是一款中文分詞器,ik_max_word算法是最細粒度切分算法,比如將“中華人民共和國人民大會堂”拆分為中華人民共和國、中華人民、中華、華人、人民共和國、人民、共和國、大會堂、大會、會堂等詞語。而ik_smart算法是最粗粒度切分算法,比如將“中華人民共和國人民大會堂”拆分為中華人民共和國、人民大會堂。對于中文內(nèi)容,在索引時用ik_max_word,在搜索時用ik_smart可以使檢索的效果達到最佳。

3.4 生成模塊

生成模塊中使用PostKS模型,這是一個可以利用知識的先驗和后驗分布來促進知識選擇的神經(jīng)模型。通過使用先驗分布有效地逼近后驗分布,該模型可以在推理過程中產(chǎn)生適當?shù)幕卮稹8鶕?jù)用戶輸入的個性化信息通過知識管理器來設(shè)定聊天機器人的個性,使得系統(tǒng)能夠生成具有特定個性的回復。

圖3 PostKS模型圖Fig.3 PostKS model diagram

(1)對話編碼器和知識編碼器

顯然,后驗分布在選擇知識時是優(yōu)于先驗分布的,但在推理生成應(yīng)答階段中,后驗分布是未知的,因此期望先驗分布能夠盡可能地接近后驗分布。為此,引入了KLDivLoss(Kullback-Leibler Divergence Loss)作為輔助損失函數(shù),用來衡量先驗分布和后驗分布的接近性:

(3)解碼器

然后,融合單元將它們組合在一起,生成整體的隱藏狀態(tài):

3.5 回復選擇模塊

檢索模型與生成模型各有利弊。檢索模型直接使用語料庫中的對話,選擇匹配度較高的對話進行回復,回復語句的質(zhì)量較高,保證了對話的信息性,但無法回復語料庫中未出現(xiàn)的問題;生成模型將對話經(jīng)過一系列處理從而產(chǎn)生相應(yīng)的回答,且PostKS模型能夠根據(jù)特定的個性產(chǎn)生對應(yīng)個性的回復,具有多樣性,但相較于檢索模型產(chǎn)生的回復可能會出現(xiàn)缺乏相關(guān)度或語義不通等問題。

為使聊天機器人系統(tǒng)既能保持檢索模型的信息性,也能保持生成模型的多樣性,且盡可能地克服兩種模型的缺點,因此設(shè)計了一種檢索-生成混合模型,結(jié)構(gòu)如圖4所示。

圖4 回復選擇模塊流程圖Fig.4 Reply selection module flowchart

當接收到用戶發(fā)送的對話時,先在檢索模塊通過Elasticsearch搜索引擎進行檢索并進行相關(guān)度評分,設(shè)定一個適當?shù)拈撝?本文設(shè)為5),若存在相關(guān)度評分高于閾值的對話,則將評分最高的回復發(fā)送給用戶,否則調(diào)用PostKS個性化生成模型,依據(jù)用戶設(shè)置的個性化信息,生成具有特定個性的回復發(fā)送給用戶。

由于用戶設(shè)置過聊天機器人的個性信息,當詢問聊天機器人的性別與地域相關(guān)問題時,為防止機器人的回復與先前用戶設(shè)置的信息不一致,機器人的回復不應(yīng)通過檢索或生成模型來獲取,而是調(diào)用回復性別或地域的函數(shù)。

3.6 前端設(shè)計

前端使用Tkinter模塊,是Python標準Tk GUI庫。前端包括設(shè)置界面(可供用戶設(shè)置聊天機器人的個性信息,包括性別、地域和個性標簽)與聊天界面。

在設(shè)置界面(圖5)分別輸入性別、地域和個性標簽即可設(shè)置聊天機器人的個性,點擊“確定”后進入聊天界面(圖6),在輸入框中輸入語句,點擊“發(fā)送”即可生成應(yīng)答并顯示在界面中,點擊“返回”將退回到設(shè)置界面,可重新設(shè)置聊天機器人的個性。

圖5 設(shè)置界面Fig.5 Interface for settings

圖6 聊天界面Fig.6 Interface for chatting

4 系統(tǒng)展示(System display)

系統(tǒng)運行結(jié)果如圖7和圖8所示。

圖7 設(shè)置界面展示Fig.7 Display of setting interface

圖8 聊天界面展示Fig.8 Display of chatting interface

5 結(jié)論(Conclusion)

本文設(shè)計了一種可以實現(xiàn)個性化回復的聊天機器人系統(tǒng)。本系統(tǒng)基于PyTorch開發(fā)框架,后端各個模塊結(jié)構(gòu)清晰簡潔,易于修改、擴展。使用檢索-生成混合模型,既保留了檢索模型的信息性,語句流暢、質(zhì)量高,也保留了生成模型的多樣性,且可生成特定個性的應(yīng)答。檢索模型使用Elasticsearch搜索引擎,檢索速度極快,大大縮減了整個系統(tǒng)生成應(yīng)答的時間,通常情況下1 s內(nèi)即可產(chǎn)生應(yīng)答,對話具有實時性。生成模型使用PostKS模型,可以生成具有特定個性的應(yīng)答。本系統(tǒng)可供用戶閑聊,同時也可以應(yīng)用到多種不同的場景中。在面向特定的應(yīng)用場景時,依據(jù)實際場景采取相應(yīng)的個性,會使交流過程更為順暢和專業(yè),這無疑具有一定的社會價值。

猜你喜歡
聊天檢索個性化
堅持個性化的寫作
2019年第4-6期便捷檢索目錄
新聞的個性化寫作
我就是不想跟你聊天了
敞開門聊天
上汽大通:C2B個性化定制未來
專利檢索中“語義”的表現(xiàn)
滿足群眾的個性化需求
國際標準檢索
國際標準檢索