2018年1月問答系統綜述

論文地址:https://arxiv.org/pdf/1711.01731.pdf
論文翻譯
論文大綱數據庫

1、兩類問答系統

任務導向的對話系統

任務爲導向的對話系統是幫助用戶去完成特定任務,好比找商品,訂住宿,訂餐廳等。實現任務爲導向的對話系統,主要有兩類方式:網絡

1) Pipeline method
經過4個步驟去完成對話任務app

2)End-to-End method。
端到端地完成對話任務dom

非任務導向的對話系統

非任務導向的對話系統是與用戶進行互動並提供回答,簡單的說,就是在開放領域的閒聊。實現非任務導向對話系統也主要可分爲兩類:ide

1) generative method
生成式對話函數

2)retrived-based method
答案選擇式對話學習

文章就以上兩類對話系統,以及各自的實現方法進行詳細綜述與講解。測試

2、任務導向的對話系統

Pipeline method

Pipeline method的步驟能夠分爲4個,分別是天然語言理解–>對話狀態跟蹤–>策略學習–>天然語言生成優化

下面對着四個步驟分別進行介紹:ui

天然語言理解 Natrual Language Understanding(NLU)

目標:將用戶的輸入語句轉化爲預先設定好的語義槽(semantic slot)

先來個例子:
在任務型對話系統中用戶想要查酒店信息,因而說出一個句子:「show restaurant at New York tomorrow.」
理解這個句子須要兩個步驟:
(1)意圖識別:首先要判斷用戶是須要訂酒店,而不是訂機票,買東西,查快遞,那麼這屬於一個分類問題,即識別用戶意圖類別
(2)語義槽填充:查酒店類別會有與之相對應的預先設定好語義槽(semantic slot),如New York是location的slot value.填充槽值的過程即在句中作詞信息的抽取。

以上兩步也可分別稱做意圖識別(intent detection)與槽填充(slot filling):

意圖識別: 是分類問題,將用戶發出的語句分類到預先設定好的意圖類別中。簡而言之,其實就是短文本的分類,最近通常都使用深度學習來作分類。

深度學習在乎圖識別中的應用:

  • 「Use of kernel deep convex networks and end-to-end learning for spoken language understanding.(2012)」
  • 「Towards deeper understanding: Deep convex networks for se- mantic utterance classification.(2012)」
  • 「Zero- shot learning and clustering for semantic utterance classification using deep learning(2014)」
    其中,使用卷積神經網絡來抽取查詢語句的向量表徵(vector representations):
    *「Query intent detection using convolutional neural networks(2016)」
    槽填充:是序列標註問題,爲句子中的每一個詞打上語義標籤。輸入是由一組序列的詞組成的句子,輸出是該組序列的詞及詞對應的語義類別(slot/concept ID)。能夠類比中文分詞,詞性標註等問題。所以傳統的作法有HMM,CRF等。最近效果較好的是DBN,RNN去作序列標註

使用了deep belief networ(DBNs),取得優於CRF baseline的效果:
「Use of kernel deep convex networks and end-to-end learning for spoken language understanding.(2012)」
「Deep belief network based semantic taggers for spoken language understanding.(2013)」
[17]和[15]使用了deep belief networ(DBNs),

使用了RNN
「Investigation of recurrent-neural-network architectures and learning methods for spoken language understanding.(2013)」
「Recurrent neural networks for language understanding.(2013)」
*「Spoken language understanding using long short-term memory neural networks.(2014)」

Dialogue State Tracking

根據對話歷史管理每一輪對話的輸入,而且預測當前對話的狀態。對話狀態Ht表示到時間t爲止對話的表徵(也叫作slot或semantic frame)。對話狀態的跟蹤主要有3個方面:the user’s goal, the user’s action, the dialogue history.

傳統的方式:是使用手工作的規則來選擇最可能的結果。可是錯誤率高。

基於統計的方式:會對每輪對話都計算對每一個state的機率分佈。
「The hidden information state model: A practical framework for pomdp- based spoken dialogue management(2010)」
對每輪對話的每一個slot都計算機率分佈
「A belief tracking challenge task for spoken dialog systems.(2012)」
*「The dialog state tracking challenge.(2013)」

基於規則的方式:
*「A simple and generic belief tracking mechanism for the dialog state tracking chal- lenge: On the believability of observed information(2013)」

用CRF
「Recipe for building robust spoken dialog state trackers: Dialog state tracking challenge system description(2013)」
「Structured discriminative model for dialog state tracking(2013)」
「Dialog state tracking using conditional random fields(2013)」
用最大熵模型
「Multi-domain learning and generalization in dialog state tracking.(2013)」
用基於網絡的排序
「Web-style ranking and slu combina- tion for dialog state tracking(2014)」
基於深度學習:深度學習在信念跟蹤上的應用(能夠跨領域應用)。
「Deep neu- ral network approach for the dialog state tracking challenge(2013)」
多領域RNN對話跟蹤
「Multi-domain dialog state tracking using recurrent neural networks(2015)」
利用神經信念跟蹤NBT檢測每一個slot pair
「Neural belief tracker: Data-driven dialogue state tracking.(2017)」

Policay learning

根據當前對話狀態作出下一步的反應。舉個例子,在線上購物的場景中,若上一步識別出來的對話狀態是「Recommendation",那麼這一步驟就會給出對應推薦的action,即從數據庫中獲取商品。

監督學習:
首先一個rule-based agent用來作熱啓動,而後監督學習會在根據rule生成的action上進行:
「Building task-oriented dialogue systems for on- line shopping」
強化學習:
「Strategic dialogue management via deep reinforcement learning.(2015)」

Natural language generation(NLG)

將Policy learning給出的反應轉換成相應的天然語言形式的回答提供給用戶。一個好的回答生成器應具有4個特色:adequacy, fluent,readability and variation[78].

傳統的方法[90;79]:使用sentence planning,將輸入的語義特徵轉換成中間形式(好比樹狀或模版形式),而後再經過surface realization將中間形式轉換成最終的回答。
深度學習的方法:[94;95]介紹了NN於LSTM結合的結構,相似於RNNLM;[94]使用前向RNN生成器,以及CNN和backwards RNN的reranker,全部子模型進行聯合優化;[95;83]新增一個control celll來gate the dialogue act;[96]將前者在multiple-domain上改進於應用;[123]使用encode-decode LSTM-based,並結合了attention machanism;[20]使用sequence-to-sequence 方法。

端到端方法實現任務型問答

特色:使用單個模型;可於外部的結構數據庫進行交互

使用基於網絡的端到端的可訓練的對話系統。將對話系統的問題轉換爲學習一個映射(從歷史對話–>回答)。可是,其須要大量訓練數據而且缺乏魯棒性。

"A network-based end-to-end trainable task-oriented dialogue system(2017)」
「end-to-end goal-oriented dialog(2017)」

使用end-to-end 強化學習方法,聯合訓練對話跟蹤於策略學習,可是也存在缺陷:不可微+沒法獲取語義不肯定性。

「Towards end-to-end learn- ing for dialog state tracking and management us- ing deep reinforcement learning.(2016)」
基於memory network,使用RNN+可微分attention

「Key-value retrieval networks for task-oriented dialogue(2017)」

3、非任務型對話:閒聊系統

非任務型對話主流有兩類:生成式對話和抽取式對話。

生成式閒聊系統構建:Neural generative models

Neural generative models主要是依賴於sequence to sequence的模型。但光創建一個序列模型還遠遠不夠,一個好的對話系統還須要考慮:
(1)歷史對話對當前對話的影響
(2)回答的多樣性
(3)針對不一樣領域與用戶個性提供不一樣的回答
(4)基於外部的知識庫去作回答
(5)內部學習與評估(兩個對話機器人互相對話做爲訓練)

Dialogue context

將歷史對話的內容轉換成詞或短語向量的表徵做爲序列模型的特徵
創建一個層級結構的attention機制去找出重要的歷史語句
根據相關性去找出與問句最相關的context做爲特徵

Reponse Diversity

調整目標函數:使用maximum mutual information做爲最優化目標
使用IDF去評估回答的多樣性
調整beam search,使得輸出多樣回答
加入re-ranking步驟
增長輸入信息的多樣性
加入latent variable

Topic and personality

先用主題模型LDA去生成主題,將主題信息做爲特徵輸入對話模型
將用戶對話作領域的分類
加入emotional embedding到生成模型中
加入profile的信息
強化學習

Outside knowledge base

使用memory network使對話系統與知識庫作交互
將知識庫中的詞語模型生成的詞作結合

Evaluation

如何評價產生對話的好壞呢?

  • 基於字符重疊度的系列指標(word overlap metrics):BLEU,METEOR,ROUGE
  • 利用兩個RNN來作評估
    將context,the true response and candidate response表徵成向量計算向量之間的類似性來評估
  • 圖靈測試
    adversarial evaluation model

基於檢索的閒聊系統:Retrieval-based method

Retrieval-based method是從候選答案中選出一個答案做爲回答。主要有兩個應用領域:
(1)單輪對話
(2)多輪對話

混合式閒聊系統:Hybrid methods

將以上生成式對話和抽取式對話結合起來,先從經過抽取模型抽取出答案,再將答案放到RNN中去生成回答。

相關文章
相關標籤/搜索