對話系統(一) 綜述篇 Review of spoken dialogue systems 和 A Survey on Dialogue Systems

1. 論文研讀筆記

這一期的論文研讀開始涉入對話系統,這一自然語言處理目前學術界和工業界最爲關注的話題。 在深入研究的開始,我們從綜述開始學習,先瀏覽一下,這個方向比較主流的一些研究成果,從而展開更爲深入的論文閱讀。本期的綜述,主要來源於兩篇文章《Review of spoken dialogue systems》(López-Cózar et al., 2015)和 《A Survey on Dialogue Systems:
Recent Advances and New Frontiers》(Hongshen Chen, 2018)。

對話系統簡介

對話系統按照目標可以分成任務型和非任務型,按照實現方式,也可以分成端到端和流水線等類型。一般來說,傳統的對話系統主要由一下幾個部分的組成,這也成爲傳統的流水線結構, 主要包括語音識別(ASR),口語理解(SLU,對話管理(DM),自然語言生成(NLG),文本生成語音(TTS)。其中ASR 和 NLG 更多的是語音識別領域的內容,本文的重點關注對話系統中間的三個模塊。
moduls

口語理解 (SLU)

SLU 是ASR模塊的下游模塊,其任務是獲取輸入語音信號的語義表示。該語義通常以幀 frame 的形式表示,而每一個 frame 通常又包含多個槽位(Slot),例如,在飛機訂票系統中,一個 SLU 的 frame 通常包含如下槽位:

  1. speechActType
  2. departureCity
  3. destinationCity
  4. departureDate
  5. arrivalDate
  6. airLine
    如果從上游收到的包含置信分數的語音信息如下:
    want (0.8676) go (0.6745) book (0.7853) a (0.7206) flight (0.6983) from (0.6205) Denver (0.3935) to (0.6874) New (0.8562) York (0.9876)
    那麼幀獲得的slot填充結果如下:
    speechActType: flightBooking (0.6745)
    departureCity: Denver (0.3935)
    destinationCity: New York (0.8562)

因爲語言中常常帶有歧義、人稱代詞、指示代詞、以及省略成分,SLU 模塊的高精度實現是很困難的。目前有兩種主流的方式,綜述中給出句法分析和統計機器學習兩種當時的主流方式。SLU 模塊也常常藉助於對話歷史模塊的信息,其目的是搜索用戶最近的對話歷史找到當前 query 中沒有顯式提到的信息以更好的理解對話。

對話管理(DM)

口語理解的下游模塊是對話管理器 DM。該模塊的任務是決定系統如何回覆給定的用戶輸入, 例如,向用戶提供信息,向用戶發出詢問以確認系統理解,或者請求用戶換一種句型表達需求。在上述飛機訂票的對話系統實例中,DM 可能會決定觸發一個詢問請求讓用戶來確認“出發城市”這個槽位的值是不是“Denver”,其觸發原因可能是語音識別系統對“Denver”這個詞的置信度值過低。 爲了給用戶提供信息,對話管理器通常需要查詢本地數據庫或者互聯網數據,同時它還需要考慮對話歷史模塊提供的信息。例如,DM 模塊可能根據對話歷史上下文發出詢問請求以補充缺失數據。

對話管理器是協調人機交互的中心模塊,它是一個相對成熟的研究課題,大致可分爲如下類型:基於有限狀態和對話語法,基於Frame的系統,信息狀態更新(ISU),馬爾可夫決策過程(MDPs)和部分可觀測的馬爾可夫過程(POMDPs)。

自然語言生成(NLG)

對話管理器的決策會輸出給下游模塊進行自然語言生成(NLG)。由於對話管理器的輸出是抽象表達,我們的目標是將其轉換爲句法和語義上合法的自然語言句子,同時考慮對話上下文的連貫性。許多主流的自然語言生成系統是基於模板的,其根據句子的類型制定相應的模板。這些模版的某些成分是固定的,而另一些成分需要根據對話管理器的輸出結果進行填充。例如,下述模板可以用來生成句子以表示兩個城市間的航班。

TTS_Template_1 ::=
I found FLIGHT_S/P from
to
leaving on

在該模板中,尖括號部分需要根據對話管理器的輸出值進行填充,填充後該 NLG 模塊輸出爲:“I found three flights
from Madrid to New York leaving on Friday.”

一個好的生成器通常依賴於幾個因素:充分性、流暢性、可讀性和變化性。考慮到對話系統的連貫性,NLG 在生成語句的時候通常需要根據對話上下文綜合考慮。相關技術涉及如何省略表達,即,省略前文中已經提到概念,或者使用代詞指代前文已經出現的名詞。該過程依賴對話歷史模塊的存儲信息。NLG 模塊還需要過濾冗餘重複信息,該過程又被稱爲句子聚合。

端到端方法

傳統的面向任務的對話系統儘管有許多領域特定的手工操作,但這導致其很難適應新的領域。面向任務的對話系統的傳統流水線方法還有兩個主要缺陷。一個是分數分配問題,最終用戶的反饋很難會傳到上游模塊中。第二個問題是處理是相互依賴。每個模塊的輸入都依賴於另一個模塊的輸出,當調整一個模塊到一個新環境或者用新數據進一步更新,所有其他模塊都要進行相對應的調整以保證全局的優化。槽和特徵可能也會相對應的改變。這種過程需要大量的人工操作。

隨着近年來端到端生成模型的不斷髮展,進行了許多端到端可訓練的用於面向任務的對話系統的框架的嘗試。請注意,當我們介紹非面向任務的系統時,將會關注於神經生成模型的更多細節。端到端模型不再使用傳統的流水線,而是使用一個模塊,並使其與結構化的外部數據進行交互。N. Asghar等人的工作引【1】入了一個基於神經網絡的端到端可訓練的面向任務的對話系統。這個系統將對話系統的學習當做學習一個從對話歷史到系統回覆的映射,利用編碼器-解碼器模型訓練整個系統。然而,這個系統是以監督學習方式進行訓練的——不僅需要大量的訓練數據,而且由於缺乏對訓練數據中對話控制的探索,也可能無法健壯地找到一個好的策略。C. Xing等人的工作中【2】首先提出了一個端到端的強化學習方法,在對話管理中共同訓練對話狀態跟蹤和政策學習,以便更好地優化系統動作。在對話中,智能體詢問用戶一系列是/否問題來找到正確的答案。這種方法在應用於關於猜測用戶腦海中想着的名人的面向任務的對話問題時體現出良好效果。【3】將端到端系統作爲完成任務神經對話系統,其最終目標是完成一項任務,如電影票預訂。

面向任務的系統通常需要在外部知識庫上進行查詢。之前的系統是通過向知識庫產生符號化查詢,利用其屬性檢索相關條目來實現。這種方法通常利用在輸入上做語義分析來得到表示智能體對用戶目標的信念。這種方法有兩個主要缺點:(1)檢索結果不包含任何有關於語義分析不確定性的信息,(2)檢索操作是不可導的,因此分析器與對話策略需要分別訓練。一旦部署系統,這會使得從用戶反饋中進行在線端到端學習變得十分困難。【4】受啓發於鍵-值記憶網絡,通過一個在知識庫條目上可導的基於注意力的鍵-值檢索機制來增強現有循環神經網絡結構。【5】將符號化詢問替換爲在知識庫上一個導出的表達哪些條目用戶較感興趣的“軟”後驗概率。

(未完待續)

參考文獻

【1】N. Asghar, P. Poupart, X. Jiang, and H. Li. Deep active learning for dialogue generation. In Proceedings
of the 6th Joint Conference on Lexical and Computational Semantics (* SEM 2017), pages 78–83, 2017.
【2】 C. Xing, W. Wu, Y. Wu, J. Liu, Y. Huang, M. Zhou, and W. Y. Ma. Topic augmented neural response
generation with a joint attention mechanism. arXiv preprint arXiv:1606.08340, 2016.

【3】S. Lee and M. Eskenazi. Recipe for building robust spoken dialog state trackers: Dialog state tracking
challenge system description. In SIGDIAL Conference, pages 414–422, 2013.
【4】L. Deng, G. Tur, X. He, and D. Hakkani-Tur. Use of kernel deep convex networks and end-to-end learning
for spoken language understanding. In Spoken Language Technology Workshop (SLT), 2012 IEEE, pages
210–215. IEEE, 2012
【5】K. Cho, B. van Merrienboer, C. Gulcehre, D. Bahdanau, F. Bougares, H. Schwenk, and Y. Bengio.
Learning phrase representations using rnn encoder–decoder for statistical machine translation. In Proceedings of the 2014 Conference on Empirical Methods in Natural Language Processing (EMNLP), pages 1724–1734, Doha, Qatar, October 2014. Association for Computational Linguistics

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章