讓問答更自然:基於拷貝和檢索機制的自然答案生成系統研究

PaperWeekly發表於2019-03-04

論文作者 | 何世柱、劉操、劉康、趙軍(自動化所&中科院大學)

特約記者 | 王哲(中國科學技術大學)

讓機器像人類一樣擁有智慧是研究人員一直以來的奮鬥目標。由於智慧的概念難以確切定義,圖靈提出了著名的圖靈測試(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 框架圖

那麼具體是怎麼做的呢? 這裡以“你知道李連杰來自哪裡嗎?” 這個問題為例來說明:

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 部分,其實該假設對很多問題並不成立,另一個可能的改進方向就是利用不同表示方式的知識庫。另外,該模型也可以應用於機器翻譯等任務,可以讓語言生成模型能外部知識資源進行互動。”

而對於問答系統未來的發展,何世柱博士也有一些自己的的看法:“據我瞭解,真實的工程實踐上,問答系統還是使用模板和規則,很少或者根本不會用到統計模型,更別說深度學習的模型了。而目前在研究界,問答系統幾乎全部採用深度學習模型,甚至是完全端到端的方法。究其原因,我個人認為問答系統是一個系統工程,而不是一個純粹的研究任務,目前研究界對問答系統還沒有一個統一的正規化(不像資訊檢索、機器翻譯、資訊抽取等任務),因此,未來問答系統可能需要總結出一個或幾個通用正規化和流程,可以分解為若干子任務,這樣會更易於推動問答的研究發展。另外,問答系統效果無法達到實用,其問題還沒有分析清楚,是知識資源不完備,還是知識表示的異構性,或者是理解自然語言問題的挑戰?最後,我認為,問答系統這類需要大量知識的任務,在資料規模難以大規模擴充套件的情況下,融合統計模型和先驗知識(萃取的知識庫、語言知識、常識等)是可行的發展方向。”

歡迎點選檢視論文:

Generating Natural Answers by Incorporating Copying and Retrieving Mechanisms in Sequence-to-Sequence Learning

關於PaperWeekly:

PaperWeekly 是一個推薦、解讀、討論、報導人工智慧前沿論文成果的學術平臺。如果你研究或從事 AI 領域,歡迎在公眾號後臺點選「交流群」,小助手將把你帶入 PaperWeekly 的交流群裡。

微信公眾號:PaperWeekly

新浪微博:@ PaperWeekly


相關文章