趙鴻陽



摘要:伴隨著深度學習不斷深入的研究,該技術已經被應用到詞向量表示、機器翻譯、自然語言理解、情感分析和中文分詞領域。目前,許多研究人員已經對聊天機器人的主要技術進行了深入的研究,機器學習中的深度學習技術也被逐漸的應用到研究中。本文闡述了聊天機器人存在的主要問題,針對存在的問題分別闡述了本文提出的LSTM-LDA神經網絡主題模型以及Attention+Bi-LSTM的seq2seq模型,描述聊天機器人的模型,最后對本文提出的BT-DLL Model(基于Sequence to Se-quence框架)進行了實驗設計。
關鍵詞:深度學習;神經網絡主題模型;聊天機器人;LDA;長短期期記憶網絡
0引言
目前,可在商場或者電商網站見到很多種類的聊天機器人。從功能的角度,聊天機器人可以分為任務型聊天機器人、問答型聊天機器人與閑聊型聊天機器人。從模式角度,聊天機器人可以分為檢索模式的機器人和生成模式的機器人。從領域分類角度,聊天機器人可以分為開放領域的機器人與封閉領域的機器人。封閉領域的chatbot是有著準確的聊天對象以及目的,并且嘗試實現一個明確的聊天目標,所以其輸入與輸出的空間是有數量限制的,并且比較容易實現。開放領域的chatbot是沒有明確的意圖與目標(聊天的范圍與界限),其主要適用于聊天以及娛樂。檢索模式聊天chatbot,依靠預定義響應的對話資源庫與設定的啟發式推理方法,利用上下文信息以及輸入信息做出適合的響應。生成模式聊天chatbot,當用戶輸入一些語句,該機器人則利用一些技術形成自動回復。深度學習(DL,DeepLearning)或階層學習(hierarchical learning)是機器學習的重要技術。它可以輔助聊天機器人擁有自動生成式與開放的特征。所以,諸多知名學者針對人工智能展開研究的過程之中,均將聊天chatbot作為一項重點內容。
檢索模式聊天chatbot擁有豐富的對話資源庫,通過不斷地匹配用戶的聊天內容,可以完成一定的聊天。在實際聊天中,各種語句都會存在,而語句的邏輯性、詞語的詞性等均存在一定的不確定性,有的問句中的同詞的不同含義等現象。為了將對話進行下去,機器人必須要具備較強的語義消歧能力,并且還要對回答過的問題進行記憶,不然機器人就不能解析輸入的聊天內容。為了提高聊天對話的趣味性,應當將人類情感“賦予”機器人,使其具備一定的“情商”,并且可以獲取知識與理解信息。隨著我國大數據行業的快速發展,應用聊天的內容或者數據進行訓練聊天chatbot。已經成為人工智能領域研究的重點。本文重點研究與實現的是一個擁有生成式與開放領域特性的聊天chatbot。
1 LSTM-LDA神經網絡主題模型
對于傳統的LDA主體模型而言,其在具體應用過程中存在諸多問題,首先是可擴展性不高,其次是主題語義不連貫,再次是推斷上下文一致性不足,最后則是在特征表述方面,存在能力較弱的基本問題。隨著社會的不斷發展,深度學習技術得到了極大的改進與優化,而其應用范圍也擴展至自然語言領域,表現出了十分優異的性能。同時,在主體模型方面,也取得了重大突破,為構建合理、完善并且語義連貫的模型提供了重要基礎,確保了其可行性。本文在研究分析的過程中,運用合理化的方式把LDA、深度長期記憶神經網絡進行高效融合,搭建了一種完備、科學的神經網絡主體模型,即LSTM-LDA。
對此種神經網絡主體模型進行設計的基本思路為:依靠LSTM(長短期記憶網絡)的隱藏層,對主題一詞匯和文檔一主題層進行了編碼:把所得到的一系列信息數據進行整合,做為神經網絡輸入層的輸入部分。而在輸入層之中,神經網絡輸出功能的實現主要是借助softmax函數實現。本模型不僅是一個神經網絡,還獲得了一定的主題功能。該模型的整體架構如圖1所示:
圖1中左邊的部分(文檔-主題)是依靠神經網絡獲得文檔的語義編碼,簡單來說,就是獲取文檔級別的語句含義信息。文檔一主題的神經網絡的處理過程如下:
(1)在詞匯的嵌入表示層中,借助Skip-gram模型,經過深度分析,求出詞嵌入表示V={V1,V2,V3…Vm}(其中m表示維度),然后對其進行重新定義,即作為LSTM神經網絡的輸入,將文檔表示成一個序列矩陣。
(2)結合實際情況,通過恰當的方式對LSTM層文檔中的序列矩陣進行重新編碼,使其成為一個語義向量。
(3)文檔語義編碼層主要是將LSTM層定義為輸出語義向量,然后將其建設成一個語義矩陣。
(4)連接文檔-主題層主要作用是使主題、文檔之間能夠進行映射,進而快速、準確的獲取文檔語義詞向量的信息表示。
圖1的右邊部分是LSTM-LDA的主題-詞匯網絡部分。輸入的是文檔的詞匯列表,將獲得的詞匯中的詞進行嵌入表示,接著連接上述的主題一詞匯層,并最終獲得詞匯處在文檔之中時的主題分布向量。
最后,結合實際需求,通過恰當的方式把左部分的詞向量、右部分的詞向量進行相乘處理,得到相應的輸出值。
2 Attention+Bi-LSTM的seq2seq模型
對話活動中的上下文信息對于對話有著非常重要的意義,特別是針對長期對話。若將過去上下文信息的訪問形式直接套用于未來上下文的訪問,將有益于生成多輪會話。從本質意義上講,本文在研究分析過程中所提出的Attention+Bi-LSTM的seq2seq模型實質上是以文獻所提出的Attention+LSTM的Encoder-Decoder模型為重要基礎,通過優化改進之后所得。在文獻中所提出的單向LSTM模型,所有數據均是根據順序進行輸入、輸出,但是該模型在具體應用過程中也存在十分明顯的缺點,即未對下文信息進行高效運用,進而導致部分語義信息失效。因此,本文主要運用雙向的LSTM模型,可以對上下文信息進行綜合性運用,此種模型的基本思想主要是使向后序列、向前序列均包含兩個LSTM,并且均同輸出層進行高效聯通。此種模型的基本特點是把數據中所包含的一系列信息定義為輸入,并通過特定渠道快速傳輸于解碼層。Bi-LSTM模型的基本架構,如圖2所示。
Bi-LSTM的整體過程分為三個階段:
(1)通過特定途徑向前快速傳輸所獲取到的輸入序列的上文信息。
(2)通過特定途徑向后快速傳輸所獲取到的輸入序列的下文信息。
(3)前向、后向分別傳輸正序語義編碼A、逆序語義編碼B,將A與B合并得到最后的語義編碼。
而最終所得到的語義編碼不但具有上文信息,而且也包含下文信息。Attention+Bi-LSTM的seq2seq的結構如圖3所示。
通過對圖3深入觀察與分析可知。此種模型主要可以細化為三部分:Encoder編碼、詞嵌入、及Decoder的解碼部分。Encoder編碼階段應用的是Bi-LSTM。該種模型充分考慮到了上下文信息,并且使輸出語句更加準確,提供了豐富的語義信息。
3聊天機器人模型
本文提出的BT-DLL Model是依靠語言模型(基于深度學習)與主題模型實現的。由于深度語言模型在Encoder編碼階段產生了語義詞向量,則主題模型將會快速得到主題語義信息。BT-DLL Model如圖4所示。由圖4中可以看出,BT-DLL Model分為兩部分:其一是主題模型、LSTM神經網絡進行融合處理之后而形成的主題模型:其二是Attention機制、Bi-LSTM模型進行融合處理之后而形成的深度學習語言模型seq2seq。這兩種模型聯系緊密。語義向量、主題模型之間的輸出開展相似度分析與運算,其結果就是當前主題信息,將上述兩個不同部分進行高效融合之后便構成了聊天機器人模型。
4 實驗設計
4.1 實驗環境
本文的實驗需求均是通過Google的Tensorflow所實現完成,其實質上屬于一個靈活度較高、便捷高效的學習系統,可以運用到不同服務上。實驗環境參數見表1.
4.2 實驗數據
為了完成本實驗。必須要以海量的聊天語料作為支撐。本文主要借助Scrapy網絡爬蟲實現信息數據的抓取,從而獲取大量字幕文件,經過整理,獲得1GB的數據語料庫。
4.3 實驗具體設計
為了達到BT-DLL Model生成對話的具體要求,本文在進行分析的過程中需要完成以下任務:
(1)每個語句中的單詞是word2vec的輸入。在字幕語料庫之中,所包含的句子均十分完整,因此需要先對句子進行切詞,對切割完成的文件進行處理。使其轉變成為“|”隔開的問答對。
(2)將問答對中的“|”前語句部分作為輸入集,將“|”后部分作預測輸出集。
(3)取預測輸出集。一般選取首條數據作為輸入,得到輸入語句的主題詞t1,根據實際情況與需求,設定上文、下文的主題詞t2,利用COS距離計算相似度,假如相似度在指定的閾值內,那么則代表此聊天為完全相同的主題,并把與之相關的主題信息快速復制于當前結構之中。每當用戶輸入語句,便會借助主題模型獲取與之相對應的輸入主題信息,然后將其同主題信息進行高效融合,并對相似度進行分析與運算,如果相似度值在指定的范圍內,就認定與當前聊天的主題有關。因輸入內容之中,引入了聊天信息,因此可通過恰當的方式對目前主題信息進行疊加處理,反之,便可以對目前主題信息進行快速替換,并作為最后的主題信息。該主題信息與編碼階段所共同形成的語義向量均屬于Decoder的輸入語句,其可以實現預測輸出語句。
(4)word2vec訓練詞向量。借助切詞工具,通過科學的方式對語料庫之中所包含的語句進行分詞操作處理,獲得詞向量,并將其定義為Encoder的輸入,最后創建模型。
(5)構建模型。其主要是Attention+Bi-LSTM的seq2seq模型與LSTM-LDA神經網絡主題模型的創建。
4.4 實驗結果
將本文提出的BT-DLL Model聊天模型與基于RNN的Encoder-Decoder聊天模型的對話效果進行對比,結果如圖5所示。
圖5的左邊是基于RNN的Encoder-Decoder聊天模型的對話效果,右邊是基于BT-DLL Model的對話效果。通過圖5可以明顯看出,本文提出BT-DLL Model可以利用聊天內容的上下文進行會話,但是傳統的聊天模型不依靠上下文聊天進行會話,有時候還會出現脫離會話的主題。
5 結束語
通過對智能聊天機器人的研究與實現,發現做出一個智能聊天機器人關系到了多個方面的知識,并且制作過程對聊天的語料與技術支持有著很高的要求。因此,想要研究出一個真正隨意交流的聊天機器人還需克服很多的技術難題,例如如何獲取大量的標準化的訓練語料。現在使用到聊天機器人上的深度學習技術研究正處于初期。還有很大的發展空間,希望本文的研究與實現對人工智能行業有一定的推動價值。