思必馳推出啟發式對話系統,關注知識傳播的會話精靈
機器之心原創
作者:思原
近日,機器之心採訪了思必馳北京研發院院長初敏博士,她向我們介紹了新型對話系統「會話精靈」的概念與過程。該對話系統通過知識圖譜與複雜結構知識管理技術,完成語音識別、語義理解與對話生成。這一系統最大的特點是基於複雜結構知識庫進行啟發式的對話,即通過提問規劃整個問答的主題變化。
對於對話系統來說,一般都可以分為特徵處理、理解意圖和生成答案等過程。思必馳北京研發院 NLP 負責人葛付江解釋,在接收問句後,系統會進行進行分詞、詞性標註以及命名實體識別等過程以完成問句的特徵處理過程。
在識別出實體後,系統會判斷問句所屬的領域,並先限定問句的場景,這一般可以通過模版或其它分類模型完成。而限定領域其實是為了進一步通過預定義的槽位(Slot)確定用戶的結構化意圖,從問句抽取的實體也會填補到對應槽位中。隨後的對話管理模塊就要判斷槽位到底是不是已經滿足要求,如果不滿足可能需要進一步提問。根據這些結構化的提問信息,系統最終會從數據服務中查找對應的信息,並生成非常自然的語句。
圖 1:對話流程
如上所示當提問「定一張明天去上海的機票」時,特徵處理會抽取出時間實體「明天」。然後識別為訂票領域並填補訂票所需要的時間、出發地、目的地等信息。當槽位都滿足時,系統會根據時間、出發地、目的地等信息查找具體的機票信息,並生成生動的回答或執行訂票操作。
同樣遵循一般的對話系統流程,會話精靈能以知識圖譜的形式幫助企業有效地進行複雜知識沉澱和管理,並通過啟發式對話適當引導用戶關注焦點,幫助用戶獲取更清晰準確的信息。
會話精靈可以先通過語音識別將輸入轉為文字,或直接輸入文字以進行自然語言理解。一般語義理解可以使用規則系統進行解析,也可以使用 sequence to sequence 等深度學習模型進行建模。解析完的語義可確定對應的意圖和話題,並通過 QA 對和知識圖譜檢索答案。「會話精靈」系統並不會止步於回答,它還會根據知識圖譜檢索其它相關的話題,並向用戶提問以引導對話的發展。
初敏說:「其實從外表看起來會話精靈還是一個小的會話機器人,所以主要的模塊和一般的會話機器人差不多。一般語音和文字都可以作為會話精靈的輸入,然後經過自然語言理解以及對話管理而生成答案。」
但一般的會話系統僅止步於給出答案,目前通過提問進行學習的系統還處於研究階段。初敏表示:「會話精靈與一般系統最大的區別可以分為兩部分,一個是我們稱之為叫啟發式的對話,另一個是我們採用知識型而不是任務型的對話內容。聽音樂訂酒店等傳統任務型對話系統有一個明確的目標來完成一件事情,用戶只要發出指令就能正確執行特定的任務。」
啟發式問答系統
會話精靈並不聚焦於完成任務,它更希望創造機器與用戶之間的信息交流。初敏表示:「不管是人還是公司,我們都需要和別人溝通來傳播核心信息。例如對於微信文章,歷史文章很難再大量獲得用戶的關注,除非是人力將它們重新鏈接到當前的文章。所以我們希望這些核心信息能用更好的知識組織形式,並重新與用戶進行交互。」
因為個人都有自己的私有信息,企業也有自己的溝通目標,所以我們並不能奢望機器人什麼都知道,只需要它在特定領域有很好的體驗就行。初敏表示會話精靈特別的地方在於信息知識的傳播能力,而不是完成任務的能力。她說:「當用戶準備問問題時,很可能他也不確定具體需要什麼樣的信息或知識,而相反企業有一大堆想告訴用戶的問題。所以我們需要做的就是延長對話的輪數,並規劃用戶可能需要獲得哪些知識。這樣通過七八條對話以後,企業基本就能把用戶希望知道的核心知識都傳遞給他。」
所以會話精靈真正要解決的問題就是把企業信息與相應的知識點組織起來,然後它就可以在知識架構中規劃一些路徑與用戶交流。這種方法可以讓用戶不需要費力提問,只需要執行一些挑選就可以與機器溝通。初敏說:「機器人主動引導對話是會話精靈最核心的能力,這種引導也是一種規劃,系統會對接下來可能進行的話題進行規劃。而這些話題也有一些是普通的,也就是說這些不是企業想傳播的信息。如果用戶提問這些普通的話題,系統會回答問題但不會主動啟發這些溝通。而例如銷售等另外一些企業希望傳播的信息,系統會在對話中慢慢引導到那樣的話題。」
完成這樣的對話引導,首要的問題就是理解用戶的提問。正如前文所述,系統需要對提問進行分詞、命名實體識別與話題檢測等過程。當用戶輸入語音或文字,系統會先轉化為文字,然後再通過不同的深度方法與規則系統進行自然語言理解。一般規則系統會採用類似正則的語法,例如 [科研人員][時間] 發表過的 [文章]。而會話精靈也可以採用意圖分類來理解自然語言,例如將關鍵詞作為特徵並利用機器學習進行文本分類。
解析自然語言後,生成的回答或引導需要系統對知識結構有完整的掌握,這樣才能有針對性地提問相關問題。會話精靈的知識點通常可以分為兩種,其中一種是 QA 對(也叫問答對)。每當用戶提出問題後,系統會嘗試檢索是不是已經存在問答對與當前問題相似,如果有的話就能輸出特定的回答。另外一些知識點是通過建立知識圖譜,以知識卡片的形式來存儲的,例如產品和技術的各種屬性,這些信息都是知識性的問題。
對於 QA 對來說,重要的是計算句子間的相似性,這樣才能檢索到與已有問句相似的問題。如下葛付江向我們展示了一種計算語句相似性的基礎方法,我們可以使用 LSTM 分別抽取兩個語句的語義信息,再計算這兩個語義向量的距離而求出它們是不是相似 [1]。如果相似性達到了某個閾值,那麼我們就能輸出對應的已有回答信息。
圖 2:基於 RNN 的句子相似度計算
當然,我們也可以使用其它更為優秀的方法判斷語句相似性,包括序列匹配網路和最近非常流行的 Transformer。其中 Transformer 採用全注意力模型以及編碼器解碼器架構匹配原句與目標句之間的相似性。
解析的語義還能通過知識圖譜檢索對應知識,其最直觀的方式是通過邏輯表達式,例如將問句表述為實體及實體之間的關係。我們隨後可以利用這種嚴格的邏輯表達式搜索回答問題所需的知識。但知識圖譜在規模較大的情況下很難處理,因為用戶的表達很難嚴格地與知識圖譜匹配。
一般系統會同時檢索 QA 對與知識圖譜,如果只能檢索出一種知識點,那麼系統就會返回這一知識點。但如果兩種知識點都能檢索到,那麼系統會根據對話管理與上下文信息對比它們之間的置信度,並選擇更好的回答。
這一過程其實與一般的對話系統非常相似,但會話精靈更注重的是生成回答之後,系統該如何引導問答的發展。初敏說:「當系統回答問題後,我們能獲取當前的話題,因此系統需要對後續的話題進行規劃。也許下一步還處於當前話題,也許就跳到了下一個話題,但這些話題內都有系統建議的另外一些知識點。」這些知識點可能是以提問的形式指出,例如系統在回答了關於長短期記憶(LSTM)網路的問題後,它可能會問「你想不想進一步了解門控循環神經網路(GRU)?」
當然,用戶可以對系統提出的問題進行選擇性接受,也可以重新對其它關心的問題進行提問。但用戶再一次提問後,系統會給出回答並重新進行規劃,這種提問與規劃的循環可以一直持續到用戶獲得了足夠多的知識。
知識問答
實現啟發式問答還有一個非常重要的問題,即在會話精靈主動提出新的問題時,如何選擇候選知識點。初敏說:「選擇候選知識點有非常多的策略,例如橫向擴展或互補擴展。其實知識圖譜可以形象地看作一張表格,表頭是該知識點的實體,而表格單元是該實體的屬性。系統可以候選相關的實體,也可以候選同一實體的不同屬性。」例如在實體為卷積神經網路的知識點中,屬性可以是它的層級數,也可以是它做圖像分類的效果。而系統同樣可以選擇展示與卷積神經網路相關的實體,例如全連接網路或循環神經網路等。
選擇候選知識點依賴於系統存儲的知識結構,因為它可以快速檢索類似的知識點。在會話精靈的知識庫中,會分為一些話題,比如說監督學習、無監督學習以及強化學習等。而每一個話題會以樹狀的結構儲存知識點,例如監督學習可分為回歸問題、分類問題與標註問題等子節點,而分類問題又可以繼續向下分為 Logistic 回歸、K 近鄰、支持向量機和神經網路等子節點。樹狀結構中每一個節點都可以存儲兩種知識,即 QA 對與知識卡片。
其中每一個節點可以有多個問答對,問題和答案也可以有多個。而知識卡片即知識圖譜,例如在支持向量機這一實體中,大間隔分類、支持向量、核函數等屬性就以序列的方式組織在一起,其中核函數又是另一種實體,它又有一些屬性。
當系統根據知識庫給出了一系列的候選知識點後,它需要判斷哪些知識點是重要的,並且需要優先向用戶介紹。初敏表示這種排序也有非常多的策略,例如我們可以根據先驗概率先初始化各種候選知識點的權重,並給最可能需要了解的知識加一個比較大的權重。然後系統會根據用戶反饋進行在線學習以更新權重,直觀上來說用戶總是接受的知識點應該提高權重,而總是拒絕的知識點應該降低權重。
其實這個對話系統的主幹部分並不是基於深度網路的,因為目前很多聊天機器人並沒有一個明確的目的,而工業上是有明確的目的需要傳播信息,所以工業上的對話系統更多是基於知識圖譜與規則系統。不過初敏表示她們正在嘗試結合強化學習來更新候選知識點的權重:「很多基於強化學習的聊天機器人很難有優秀的度量方法來衡量對話的質量,也很難判斷到底該給回答怎樣的獎勵。但是像對話精靈這樣的架構,強化學習是可以很好地嵌入其中,因為系統可以直接根據用戶接受或拒絕推薦的知識點而快速地分配獎勵。」
一般在使用強化學習及 Self-play 的方式訓練對話機器人的過程中,我們經常根據智能體對話的長度而賦予獎勵。但這常常會造成對話陷入一種死循環,也就是說智能體會重複說一些「你好」等正確但又無意義的話語。而對話精靈可以根據用戶接受的知識點推薦數而確定真正的對話長度,因此也就能給智能體非常恰當的獎勵,依據這種獎勵進行對話管理將有非常大的優勢。
圖 3:基於馬爾科夫決策過程(Markov Decision Processes)的對話管理
葛付江表示對話管理一般可以表示成狀態的變換過程,即馬爾可夫決策過程 [2]。基於強化學習的系統需要將對話組織成狀態,並在每一個狀態下選擇不同的動作或主題規劃,且不同的規劃能有不一樣獎勵。對於對話管理,強化學習智能體會模擬多輪對話,並最後反過來判斷為當前對話規劃什麼樣的主題比較合適。在整個過程中,獎勵函數是非常核心以及難以定義的部分,但會話精靈能有比較好的處理。
參考文獻:
[1] Siamese Recurrent Architectures for Learning Sentence Similarity, AAAI,2016
[2] The Markov Assumption in Spoken Dialogue Management, SIGDIAL, 2005
本文為機器之心原創,轉載請聯繫原作者獲得授權。
------------------------------------------------


※比Python快100倍,利用spaCy和Cython實現高速NLP項目
※學界|優於VAE,為萬能近似器高斯混合模型加入Wasserstein距離
TAG:機器之心 |