摘要:表格問答是一種針對自然語言問題,根據表格內容給出答案的任務。
一、什么是表格問答
表1是一張綜藝節目收視率報表,假如你需要了解市場份額在3%以上的綜藝節目,你會選擇采用什么樣的方法?
首先,用肉眼去篩選滿足條件的數據,是最方便直觀的方法,但顯然也是效率最低的一種方式。我們可以采用一些工具,如Excel等,或者你可以選擇將表格導入數據庫,然后使用數據庫語言來進行高效的檢索。但是,並不是所有人都懂SQL語法,甚至很多用戶都沒有接觸過Excel。
這些專業工具的使用難度限制了非技術用戶,給數據分析和使用帶來了較高的門檻,所以我們希望設計一種通過自然語言來對表格數據進行檢索、計算等操作的系統,於是就有了表格問答。
表1:綜藝節目收視率報表
表格問答是一種針對自然語言問題,根據表格內容給出答案的任務,它的任務可以描述為:輸入一個表格集合T(包含一個或多個表格)和一個自然語言形式的問題Q,輸出正確的答案A。
有了表格問答,用戶在查詢這些表格的內容時,可以直接通過自然語言與表格進行交互,如打字或者語音輸入,並且可以得到直接結果,甚至是報表,大大降低數據分析門檻,為普通用戶帶來高效又自然的數據查詢、分析和計算體驗。
二、表格問答發展歷史
表格問答主要經歷了三個階段:數據庫自然語言接口、NL2SQL以及復雜表格問答系統。
1. 數據庫自然語言接口
表格問答的研究最早可以追溯到數據庫自然語言接口NLIDB(Natural Language Interfaces to Databases )。
NLIDB是一種允許用戶通過輸入某種自然語言表示的請求來訪問存儲在數據庫中的信息的系統。國外NLIDB的研究起始於20世紀60年代,80年代最為活躍,受制於有限的自然語言理解能力,90年代熱度開始衰減。
這段時間內出現了很多NLIDB系統:如微軟的English Query,IBM的Language Access,以及BIM的LOQUI等等。中文NLIDB的研究始於20世紀70年代末期,后續也出現了一些中文實驗模型與系統如NChiql,NLCQI,RChiQL,以及WTCDIS等等。這些系統主要是基於規則的方法,關鍵步驟主要是詞法分析、語法分析、語義分析和生成SQL語句。
NLIDB是TableQA的前身,但它不是真正意義上的QA,而是一種把自然語言翻譯成數據庫語言的接口。它們完全依賴於規則與模板,對自然語言的約束較多,語言理解能力差,不具備較強的泛化能力。
2. NL2SQL
表格問答的主流技術之一就是讓自然語言更加准確地轉換成SQL語言,這種方法被稱為(Natural Language to SQL)NL2SQL。NL2SQL的主要任務就是將用戶的自然語言語句轉化為計算機可以理解並執行的規范語義表示,與KBQA類似只不過KBQA的目標邏輯形式是SPARQL。NL2SQL有許多開源數據集,如表2所示,其中最為廣泛使用的數據集,有WikiSQL、Spider等。
表2:NL2SQL數據集匯總
WikiSQL是最常用的公開評測數據集之一,它所包含的NL2SQL任務比較簡單,主要是單表單列查詢,可以進行最大、最小、計數、求和以及平均聚合操作,支持大於、小於和等於的條件比較,僅支持“AND”的條件鏈接方式。
Spider數據集是目前領域內最困難的數據集之一,訓練集有7000條數據,對應140個數據庫,驗證集有1034條數據,對應20個數據庫,數據庫名不重合。它支持多表多列查詢,包含復雜的子查詢,以及更多的聚合操作、條件操作和排序操作等。
近年來,NL2SQL在中文領域也出現了一些優質的數據集,例如TableQA、DuSQL等。
3. 復雜表格問答系統
隨着對話領域的不斷完善和發展,一些表格問答系統逐漸具備了上下文理解能力,表格問答與一般對話機器人的融合不斷深入,形成了較為復雜的表格問答系統。這些系統不僅能夠簡單的單輪問詢,還能實現多輪對話,返回結果也從簡單的結果集合變成了豐富的自然語言形式回答。
圖1:復雜表格問答系統
三、表格問答的應用場景
據Google2015年對互聯網數據的統計,僅英文網頁中包含的表格數目就有數百億,說明表格的數據量十分巨大。不僅如此,表格數據高度結構化,不同表格之間不必遵循統一的本體結構和命名規范,表格的編輯和修改可以高效進行,具有較強的可編輯性和時效性。這些特點使得表格問答能夠在諸多應用場景發揮重要的作用。
表格問答具有兩個重要的研究方向:結合智能交互,支持對結構化數據查詢與問答;優化搜索引擎,智能並高效地檢索結構化文本。結合這兩個研究方向,在以下應用場景中能夠發揮重要作用:保費查詢、客戶信息查詢等內部業務數據查詢;覆蓋行情信息、行業研報報表、財務報表等結構化數據;支持酒店信息、火車票與飛機票查詢等出行場景問答;商品銷量、商品詳情、商品篩選與推薦等電商場景;產品信息、活動細則等新零售場景問答;話費查詢、繳費查詢、業務查詢等日常生活問答。
四、表格問答的工程挑戰
表格問答具有廣泛的應用場景,但是在工程實現上也存在很多問題:
表格的識別及規范化表示:表格默認以第一行為表頭,但在實際挖掘表格中,有三種情況:以第一行為表頭,以第一列為表頭,或者第一行和第一列共同表示表格;挖掘的表格存在信息缺失問題,如表名缺失、表格值不全等;同時,面對多個表格時缺失表間鏈接關系。
外界知識的利用:有一些常識信息不包含在表格中,如排序操作的方向判斷(列為“出生日期”,問題為“年齡最大的員工”)、表格值進制轉換(列為“人口(億)”,問題為“人口超5千萬的城市”)等,這些信息需要引入外界知識來協助SQL生成。
融進漸進式對話:對於用戶的歧義表達和模糊表達,需要有“提問-反饋-再提問”的過程,這類問題往往需要通過多輪對話解決,而用戶的問題通常是上下文相關的,因此需要模型具備基於上下文的理解和分析能力。
表格問答具備很高的研究價值和商業價值,很多友商和研究機構都正在致力於表格問答的商業化和研究。與此同時,表格問答也存在很多技術難題和工程難題,在表格問答的研究道路上還有很長的路要走。