Google開源表格解析器TAPAS:使用表格數據回答自然語言問題

Google開源了表格解析器(簡稱:TAPAS),它是一個使用表格數據回答自然語言問題的深度學習系統。TAPAS接受了從維基百科提取的620萬個表格數據的訓練,在幾個基準環境上其性能都達到甚至超過當下最先進的其他系統。

Google的聯合創始人Thomas Müller最近在一篇博客中對TAPAS的工作原理做了簡單概述。提供一份數字形式的表格數據,如運動比賽結果數據或者財務統計數據,那麼TAPAS就可以使用這個表格數據推斷出自然語言問題的答案。舉個例子,如果提供一份運動錦標賽的數據列表,那麼可能TAPAS就能回答“哪個隊獲得的冠軍數最多?”問題。過去解決類似問題的方式,是將自然語言的查詢直接轉換爲類似SQL這樣的軟件查詢語言,然後運行在數據庫中。而TAPAS可以直接在數據上進行操作,且在常見問題基準測試中,其性能都超過了之前的模型。在Microsoft的順序問答(SQA)數據集測試中,其性能相比於之前的模型提高了12個百分點以上;在標準的維基表格問題(WTQ)數據集的測試中,其性能也提高了4個百分點以上。

對於如何使用表格數據回答自然語言問題,早期很多AI系統都是通過一種被稱爲語義解析的方式解決的。這種方式是將自然語言的問題轉換成一種“邏輯形態”——其本質上是將人類語言轉換成編程語言。而對於表格數據的問題,這種邏輯形態通常就是諸如SQL之類的查詢語言了。不管是Microsoft還是Salesforce都開發過類似的系統。但是根據 Google 團隊的說法,語義解析的一個缺點是,它和所有的監督式學習一樣,需要一個手工標記的數據集; 只有在這種情況下,才能將自然語言問題映射成邏輯形態。谷歌團隊發現這一步驟完全是可以跳過的,因此TAPAS是直接輸出“一個表格單元格的子集和一個可能的數據聚合操作(譯者注:如求和、求平均,爲空等)”。

圖片來源:https://ai.googleblog.com/2020/04/using-neural-networks-to-find-answers.html

TAPAS是基於BERT(谷歌的NLP系統)的。經過訓練,該系統可以使用自然語言回答自然語言的問題。在這種情況下,BERT系統訓練時的輸入數據同時包含了問題和答案。但對於使用數字數據回答問題的 TAPAS 來說,訓練的輸入數據同時包括問題和表的數字數據,這些數據會被平鋪成長長的一個序列。由於數據被平鋪了,所以表格就丟掉了與數據結構相關的信息。因此,訓練的輸入數據還要包含一個嵌入層,該嵌入層是每個單元格的行號、列號以及在列中的排序信息的編碼。該模型會輸出兩組數據集合:一組是表中每個單元可能是答案的概率值,任何概率大於0.5的單元格都將包含在最終結果中;另一組則是可選擇的操作集合,例如:求和、求平均(如果需要的話,爲空的操作也可以在集合裏面)。

TAPAS接受了從維基百科中提取的620萬個數據表的預訓練,這批數據表包含了從文章標題、文章描述、表格標題以及其他相關文本片段中提取的問題。然後,使用特定的基準數據集對該模型進行微調。Google團隊使用了三個基準數據集: SQA、WTQ 和Salesforce的WikiSQL。在SQA上,TAPAS達到了67.2% 的準確率,比之前最高水平提高了12個百分點;在WTQ上它達到了48.8%的準確率,比之前的系統提高了4個百分點;在WikiSQL上TAPAS的得分爲83.6%,和最高的83.9%非常接近。

Google的訓練代碼和預訓練模型都託管在Github上,同時還提供了一個Colab 教程

原文鏈接

https://www.infoq.com/news/2020/05/google-natural-language-tables/

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