讓機器像人類同樣擁有智能是研究人員一直以來的奮鬥目標。因爲智能的概念難以確切定義,圖靈提出了著名的圖靈測試(Turning Test):若是一臺機器可以與人類展開對話而不能被辨別出其機器身份,那麼稱這臺機器具備智能。圖靈測試一直以來都被做爲檢驗人工智能的象徵。問答系統自己就是圖靈測試的場景,若是咱們有了和人同樣的智能問答系統,那麼就至關於經過了圖靈測試,所以問答系統的研究始終受到很大的關注。微信
傳統知識問答都是針對用戶(使用天然語言)提出的問句,提供精確的答案實體,例如:對於問句「泰戈爾的出生地在哪兒?」,返回「加爾各答」。可是,僅僅提供這種孤零零的答案實體並非很是友好的交互方式,用戶更但願接受到以天然語言句子表示的完整答案,如「印度詩人泰戈爾出生於加爾各答市」。天然答案能夠普遍應用有社區問答、智能客服等知識服務領域。知識問答中天然答案的生成在具備很是明確的現實意義和強烈的應用背景。網絡
與返回答案實體相比,知識問答中返回天然答案有以下優點:框架
1. 普通用戶更樂於接受可以自成一體的答案形式,而不是局部的信息片斷。函數
2. 天然答案可以對回答問句的過程提供某種形式的解釋,還能夠無形中增長用戶對系統的接受程度。學習
3. 天然答案還可以提供與答案相關聯的背景信息(如上述天然答案中的「印度詩人」)。測試
4. 完整的天然語言句子能夠更好地支撐答案驗證、語音合成等後續任務。編碼
可是讓知識問答系統生成天然語言形式的答案並非一件容易的事情。目前,基於深度學習的語言生成模型大多基於原始數據學習數值計算的模型,如何在天然答案生成過程當中融入符號表示的外部知識庫是一個大的挑戰。另外,不少問句的回答須要利用知識庫中的多個事實,而且一個天然答案的不一樣語義單元(詞語、實體)可能須要經過不一樣途徑得到, 回答這種須要使用多種模式提取和預測語義單元的複雜問句,給天然答案的生成帶來了更大的挑戰。人工智能
爲了解決這些問題,中科院自動化所的何世柱博士、劉操同窗、劉康老師和趙軍老師在今年的 ACL2017 上發表了論文「Generating Natural Answers by Incorporating Copying and Retrieving Mechanisms in Sequence-to-Sequence Learning」,提出了端到端的問答系統 COREQA,它基於編碼器-解碼器(Encoder-Decoder)的深度學習模型,針對須要多個事實才能回答的複雜問句,引入了拷貝和檢索機制,從不一樣來源,利用拷貝、檢索和預測等不一樣詞彙獲取模式,得到不一樣類型的詞彙,對應複雜問句中答案詞彙的不一樣部分,從而生成複雜問句的天然答案。翻譯
▲ 圖1:COREQA 框架圖code
那麼具體是怎麼作的呢? 這裏以「你知道李連杰來自哪裏嗎?」 這個問題爲例來講明:
1. 知識檢索:首先要先識別問題中的包含的實體詞。這裏咱們識別出的實體詞是:李連杰。而後根據實體詞從知識庫(Knowledge Base,KB)中檢索出相關的三元組(主題,屬性,對象)。針對李連杰這個實體,咱們能夠檢索出(李連杰,性別,男),(李連杰,出生地,北京),(李連杰,國籍,新加坡)等三元組。
2. 編碼(Encoder):爲了生成答案,咱們須要將問題和檢索到的知識編碼成向量,以便後續深度生成模型利用。
問題編碼:使用了雙向 RNN(Bi-RNN),用兩種方式來表示問題:一種是將兩種方向 RNN 狀態向量拼在一塊兒,獲得向量序列 Mq;另一種方式是把每一個方向 RNN 的最後一個向量拿出來拼在一塊兒,獲得向量 q,用來總體表示問題句子。
知識編碼:使用了記憶網絡(Memory Network),對知識檢索階段獲得的知識三元組分別進行編碼。針對一個三元組,用三個向量分別表示各部分,再將它們拼接在一塊兒,變成一個向量 fi 來表示這個三元組,用 Mkb 表示全部三元組向量。
3. 解碼(Decoder):接下來根據答案和知識的編碼向量來生成天然答案。天然答案雖然是詞序列,可是不一樣的詞可能須要經過不一樣途徑得到。例如:對於上述問題的答案「李連杰出生在北京,它如今是一個新加坡公民。」,詞語「李連杰」須要從源問句中拷貝獲得,實體詞「北京」,「新加坡」須要從知識庫中檢索獲得,而其餘詞如「出生」、「在」,「如今」等須要經過模型預測獲得。所以,這裏在標準的序列到序列(Sequence-to-Sequence)模型基礎上,融合了三種詞語得到模式(包括拷貝、檢索和預測),用統一的模型對其建模,讓各類模式之間相互競爭相互影響,最終對複雜問題生成一個最好的天然答案。
▲ 圖2:COREQA 解碼示例圖
爲了檢驗模型的效果,論文分別在模擬數據集(由 108 個問答模板規則構造的問答數據)和真實數據集(從百度知道獲取的 239,934 個社區問答數據)上進行了實驗,在自動評估和人工評估上均取得了不錯的結果。
談到之後的工做,何世柱博士表示:「 COREQA 模型目前仍是過於依賴學習數據。從實驗結果能夠看出,在模擬的人工數據上幾乎能夠有完美的表現,可是在真實的數據上仍是差強人意。究其緣由仍是該模型本質是對原始數據的擬合,學習一個輸入問題(詞序列)到輸出答案(詞序列)的映射函數,特別是非實體詞(即,不是拷貝和檢索獲得的詞)經常預測得不許確。這是該模型最大的問題,咱們計劃加入一些外部的人工知識對模型進行調整,對現有模型進行改進。另外一個不足是目前只能利用三元組形式表示的知識庫,並假設答案實體就是三元組的 object 部分,其實該假設對不少問題並不成立,另外一個可能的改進方向就是利用不一樣表示方式的知識庫。另外,該模型也能夠應用於機器翻譯等任務,可讓語言生成模型能外部知識資源進行交互。」
而對於問答系統將來的發展,何世柱博士也有一些本身的的見解:「據我瞭解,真實的工程實踐上,問答系統仍是使用模板和規則,不多或者根本不會用到統計模型,更別說深度學習的模型了。而目前在研究界,問答系統幾乎所有采用深度學習模型,甚至是徹底端到端的方法。究其緣由,我我的認爲問答系統是一個系統工程,而不是一個純粹的研究任務,目前研究界對問答系統尚未一個統一的範式(不像信息檢索、機器翻譯、信息抽取等任務),所以,將來問答系統可能須要總結出一個或幾個通用範式和流程,能夠分解爲若干子任務,這樣會更易於推進問答的研究發展。另外,問答系統效果沒法達到實用,其問題尚未分析清楚,是知識資源不完備,仍是知識表示的異構性,或者是理解天然語言問題的挑戰?最後,我認爲,問答系統這類須要大量知識的任務,在數據規模難以大規模擴展的狀況下,融合統計模型和先驗知識(萃取的知識庫、語言知識、常識等)是可行的發展方向。」
歡迎點擊查看論文: