機器不學習:智能機器人chatbot論文集合


機器不學習 jqbxx.com-專注機器學習,深度學習,自然語言處理,大數據,個性化推薦,搜索算法,知識圖譜

今年開始接觸chatbot,跟着各種專欄學習了一段時間,也讀了一些論文,在這里匯總一下。感覺是存在一些內在的趨勢的。只是要找到一個當下切實可行又省時省力的方案好像不太容易。

論文摘要

《Information Extraction over Structured Data: Question Answering with Freebase》

機器不學習:智能機器人chatbot論文集合

本文利用查詢KB替代查詢數據庫,可以更好的理解問題,找到對應的答案,尤其的對於查詢類的問題。通過預設的問題詞,對問句進行解析,並拋棄子節點詞,得到依賴樹,根據依賴樹查找KB。

基於知識庫的問答系統,有兩個處理點:對問題的解析,辨別出實體,以及包含的關系;對KB的查詢。其中難點在於建立問句和知識庫關系的映射模型,尤其是對於open domain的問答,不能依賴與手動標注實現。問題解析有兩種手段,從語義分析出發,利用句法分析,詞性標注等,“理解”問句,獲得實體以及實體之間的關系,但是不得不建立大量詞典,然后對問句的語義進行計算求解,以期最后可以獲得一個滿意的答案;另一種是信息提取,不分析具體的句法,而是對句子中出現的詞(實體)進行分析求解,復雜點在於利用貝葉斯等分類器對問句進行分類找出要求解的答案節點。需要大量的訓練數據

《Question Answering with Subgraph Embeddings》

機器不學習:智能機器人chatbot論文集合

本文跳出傳統語義分析的范疇,從構造低維向量空間的角度進行問題求解,基於詞向量的啟發,將問句和答句根據每個詞的向量計算得出句子對應的向量,應該存在一個函數可以使得問題答案對q,a的匹配值達到最大:S(q,a)

分兩步進行問答求解:

1、使用大量樣本數據訓練模型,確定S(q,a)

2、根據問句中的實體,獲取實體相關的subgraph,並組裝出候選答案,求argmax S(問句,候選答案)

訓練模型上可以使用神經網絡訓練,該方法的前提是答案向量與問題向量經過某種映射以后,在一個多維空間內是十分靠近的

《Question Answering over Freebase with Multi-Column Convolutional Neural Networks》

機器不學習:智能機器人chatbot論文集合

本文應用卷積神經網絡生成問題向量q,如上圖所示,使用卷積神經網絡的多層代表問題的不同信息,並與答案集合求解,最終的得出問題答案的匹配值。

《Semantic Parsing via Staged Query Graph Generation:Question Answering with Knowledge Base》

1.考慮到傳統語義解析與KB結合不夠緊密,作者提出了查詢圖的概念

2.查詢圖的構造由實體鏈接系統確定主題詞,核心推導鏈,增加約束和聚合這幾種操作構成

3.對於查詢圖的每一個狀態,我們都用一個獎勵函數對它進行評價,使用優先隊列進行啟發式搜索構建查詢圖

4.通過查詢圖的實體鏈接得分、核心推導鏈三個特征、約束聚合手工特征以及全局特征作為輸入向量,訓練單層神經網絡作為排名器得到獎勵函數

5.核心推導鏈使用卷積神經網絡(letter-trigram作為輸入)進行訓練,並且ensemble了三個不同數據訓練的模型

(以上內容為摘抄)本文基本思想是結合了傳統語義分析和神經網絡的方法,語義分析為主導,在獲取相應答案pattern的步驟中使用CNN選定推導鏈,並使用諸如限定詞、約束聚合對答案進行規范,獲得了比較顯著的成果。

《DYNAMIC COATTENTION NETWORKS FOR QUESTION ANSWERING》

機器不學習:智能機器人chatbot論文集合

這篇文章使用了注意力機制,在斯坦福的問答測試集上取得了80.1%的好成績(人工准確率86%)。不過因為斯坦福數據集提供了問題和答案的候選段落,與要做的知識庫貌似沒有很好的連接。論文方法主要有兩點,一是將問題和答案段落配對,經過向量變換以后,通過注意力機制對答案和問題都配置權重,根據權重和問題答案的向量計算結果,輸入LSTM網絡得出最佳答案段落。另一個是在LSTM中使用提出的HMN方法從段落中選取答案字段,予以輸出。論文所提方法可以作為參考,主要問題在於訓練樣本並不具有通用性,答案一定要在候選答案中存在才可以,如果可以替換為知識網絡並准確選取就更好了。

這里插一個內容,記憶網絡框架(摘抄):

輸入模塊I(Input):將外部輸入轉化為內部表達。我們可以把輸入模塊想象成人類的感知器官,接受外部的原始輸入並將其轉化為能夠被大腦處理的生物信號。具體來說,輸入模塊用於將外部的輸入(如自然語言句子、圖片等)轉化為內在的分布式表達。輸入模塊可以根據應用的需要選用不同的模型,諸如CNN、LSTM、bag-of-words等等。

記憶模塊M(Memory):用於存儲記憶。每一條記憶都是一個分布式表達向量,每一個記憶有一個索引地址號,所有記憶組成了我們的記憶模塊。我們的記憶模塊就像是計算機中的硬盤一樣,存儲着一條條的信息,每一個信息都有一個物理地址。我們可以記憶模塊進行記憶的讀取,修改,刪除,也可以插入新的記憶信息。

泛化模塊G(Generalization):根據外部輸入的內在表達去更新記憶。我們可以根據新的輸入對記憶模塊中的每一個記憶都進行更新並增加新的記憶,也可以僅對部分相關記憶作針對性更新。最簡單的方式是,直接將輸入存儲在記憶模塊中而不對其他的記憶進行修改,即。這里是一個為輸入選擇記憶槽(為輸入確定記憶的索引地址)的函數,在記憶存儲滿的時候,也可根據函數對記憶進行替換。更復雜一點,我們也可以引入一些遺忘機制等等。

輸出模塊O(Output):根據外部輸入的內在表達去選擇記憶模塊中與之最相關的記憶。該記憶也稱為支撐記憶(Support Memory),即。這個選擇的方式有很多,最簡單的方法就是將和記憶向量投影到同一個向量空間中,通過比較相似度得分(cosine,點乘等)來選擇最相似度得分最高的記憶作為輸出。當然我們也可以根據應用的需要,選擇多個記憶作為輸出。選擇多個記憶的方式也有很多種,最簡單的方法就是選擇相似度得分最高的k個記憶作為輸出,論文中作者提出了另一種方法,先選擇得分最高的作為第一個輸出,再選擇與得分加上與得分 最高的記憶作為第二個輸出,以此類推(這種方法更像是在進行推理,先將輸入作為推理的支點,選擇與輸入最相關的記憶作為第一條線索,再根據輸入和第一條線索去確定下一條線索)。

回答模塊R(Response):根據輸入的內在表達和輸出模塊提供的記憶,輸出滿足應用需要格式的結果。它就相當於encoder-decoder模型中的decoder部分,將和作為輸入,根據應用的需要使用不同的模型輸出最終的結果(分類器、語言模型、RNN、CNN等)。

《End-To-End Memory Networks》

機器不學習:智能機器人chatbot論文集合

論文提出了一種帶有注意力的改進的memery network,然而只是提出了一種思想,從實驗結果看,並沒有提高業內的state of art。提出的思想比較適合KB_QA,並沒有神經網絡中的那么多結構,只有兩部分組成:記憶部分和RNN神經網絡。先將知識進行向量化存入memory中,這些知識可以來自於一段話,也可以是一段對話,然后將問題和對應知識進行計算,並加入注意力權重,結果通過softmax函數進行排序,得到隱層輸出,再將T2時間的輸出和T1時間的輸出進行相加輸入RNN的下一個環節中,以此循環計算,最后通過矩陣W變化得出真正的輸出。直觀的理解可以是對問題答案組合進行多次注意力解析,並且在每次解析期間都從記憶庫中讀取知識加入其中。

《A Knowledge-Grounded Neural Conversation Model》

機器不學習:智能機器人chatbot論文集合

論文提出了一種將seq2seq模型與事實相結合的方法,先使用seq2seq中的encoder計算出問句以及對話歷史S(沒有使用LSTM,而是使用了GNU,好像業內都喜歡用GNU),然后將事實通過關鍵詞檢索或者命令詞提取技術,獲取出相關的事實f1,f2......然后通過計算S和f1的結合概率,輸入decoder中,輸出對應回答,理論上可以計算出跟概率最大事實相關的回應。 論文進行了兩種模型的訓練,一種不帶事實的模型訓練,一種帶有事實模型的訓練;奇妙的是,確定最終模型以后,可以通過修改事實庫,以達到動態擴展模型的作用。想法比較新穎,但是回應的准確率相比於seq2seq並沒有顯著的提升,事實相關性有所提升。若要應用與我們自己的系統,可以再思考思考如何將問句和知識結合起來。 還有一個思想是:通過大量的微博(twitter)語料獲取回答句式,然后通過事實獲取回答信息,這一點比較好。有了構建生成式機器人的可能。

《Sequence to Backward and Forward Sequences: A Content-IntroducingApproach to Generative Short-Text Conversation》

機器不學習:智能機器人chatbot論文集合

一種根據問題和語料庫,預測答案關鍵詞的方法,使用了朴素貝葉斯模型,預測一個關鍵名詞

《Deep Reinforcement Learning for Dialogue Generation》

機器不學習:智能機器人chatbot論文集合

本篇論文提出了使用RL來指導SEQ2SEQ模型的輸出,以防止輸出的無信息性和重復,不連貫。主要思想可以說是利用seq2seq的pre-train作為reward函數,對候選答案進行重新獎勵排列,得出更好的結果。其中生成r2的時候又使用了一種RL模型來確定后驗概率,從而指導獎勵函數的生成。可以說這是一種將增強學習與SEQ2SEQ相結合的思路,具體代碼地址:

https://github.com/jiweil/Neural-Dialogue-Generation

https://github.com/Marsan-Ma/tf_chatbot_seq2seq_antilm

《Personalizing a Dialogue System with TransferReinforcement Learning》

機器不學習:智能機器人chatbot論文集合

從該圖中,可以看出給予POMDP的強化學習聊天系統是基於狀態機的一種策略學習,首先系統中有很多基本狀態,根據回答或者制定的策略選擇狀態遷移,從而推導進行對話。

機器不學習:智能機器人chatbot論文集合

機器不學習:智能機器人chatbot論文集合

本文是對基於POMDP對話框架的一種擴展,以前都是基於通用知識進行訓練,缺乏提供個性化的服務。本文通過將通用知識訓練的模型遷移到個性數據上訓練,得出具有個性服務的對話系統。從實驗例子看,有效減少了互動對話的輪數,比一般任務型對話有更好的效果。算法上使用M;w;wp作為共享變量,從通用數據訓練得出,pu根據少量具體用戶數據訓練得出,最后帶入公式中求出整體的Q_learning函數。Wp應該是根據數據得出的具體用戶的Q函數參數,相對於通用知識的W,只是文中沒有給出。所以這個系統主要還是針對有記錄的用戶存在的個性化策略。

《Latent Intention Dialogue Models》

機器不學習:智能機器人chatbot論文集合

文章運用雙向LSTM和RNN,CNN對對話歷史進行處理,計算得出對話的潛在意圖,根據搜索KB取出知識,利用增強學習策略生成回復內容,並使用生成模塊最終生成回復,涉及較多內容,從實驗結果看比較理想,在任務驅動型對話中有顯著效果。

《End-to-End Task-Completion Neural Dialogue Systems》

《A User Simulator for Task-Completion Dialogues》

https://github.com/MiuLab/TC-Bot

與《End-to-End Task-Completion Neural Dialogue Systems》敘述的是相同的內容,源程序相同,這篇更偏向於代碼實現。代碼提供了一個simulator user框架,定義好任務相關的幾個狀態以后,根據狀態進行模擬對話,用於強化學習訓練。通過NLU理解輸入語句,轉化為槽位表示的形式,進行策略學習,輸出槽位顯示的系統回復,然后通過NLG生成回答。這里面 NLU和NLG都可以使用深度學習的方法,策略學習本文中使用的是強化學習。這樣的好處是可以避免編寫規則,根據定義的狀態和模擬策略定制化對話系統,完成既定任務。缺點是功能可能單一,不具備易於擴展功能的條件。但是相比於廣域seq2seq的訓練,似乎更接近於可實現,效果可控。

《End-to-End Memory Networks with Knowledge Carryover for Multi-Turn Spoken Language Understanding》

(code:https://github.com/yvchen/ContextualSLU.git) 論文中部分內容摘抄:

A key component of the understanding system is an spoken language understanding (SLU) module-it parses user utterances into semantic frames that capture the core meaning, where three main tasks of SLU are domain classification, intent determination, and slot filling

Then slot filling is framed as a sequence tagging task, where the IOB (in-out- begin) format is applied for representing slot tags as illustrated in Figure 1, and hidden Markov models (HMM) or conditional random fields (CRF) have been employed for tagging [6, 7, 8].

To the best of our knowledge, this is the first attempt of employing an end-to-end neural network model to model long-term knowl- edge carryover for multi-turn SLU.

機器不學習:智能機器人chatbot論文集合

本文提出了一種將RNN和記憶網絡應用於SLU模塊的方法,專注於傳統diag system中的意圖理解和序列標注,如圖所示,將歷史對話作為記憶通過RNN和輸入對話進行計算,並引入注意力機制得出encoding表示,作為知識o,然后使用知識o通過RNN tagger輸出intent和slot信息,注意intent和slot應該是作為輸出y一起處理的,形式相似於:query_slot:{name,age}, info_slot:{gentel:male,address:***}.

《SeqGAN: Sequence Generative Adversarial Nets with Policy Gradient》

機器不學習:智能機器人chatbot論文集合

機器不學習:智能機器人chatbot論文集合

將GAN與RL相結合,在數學上有嚴格的推理,確實也獲得了很好的結果,不過技術還不成熟,從思路上來講是很有前途的思想。可以作為是RL在對話上應用的發展,有可能達到新的高度。繼續保持關注。

更多精彩內容,機器不學習官方網站 jqbxx.com


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM