選自Google AI Blog
作者:Thomas Müller
機器之心編譯
參與:Panda
BERT 在自然語言上已經取得了非凡的成就。近日,谷歌一篇 ACL 2020 論文又將 BERT 模型應用到了基於表格的問答場景中,為弱監督式的表格解析性能帶來了顯著提升。此外,谷歌開源了相關代碼和預訓練模型。
論文地址:https://arxiv.org/pdf/2004.02349.pdf
代碼和模型:https://github.com/google-research/tapas
世上許多信息都是以表格形式存儲的,這些表格見諸於網絡、資料庫或文件中。它們包括消費產品的技術規格、金融和國家發展統計數據、體育賽事結果等等。目前,要想找到問題的答案,人們仍需以人工方式查找這些表格,或使用能提供特定問題(比如關於體育賽事結果的問題)的答案的服務。如果可通過自然語言來查詢這些信息,那麼取用這些信息會容易很多。
舉個例子,下圖展示了一個表格,並給出了一些人們想問的問題。這些問題的答案可在該表格的一個或多個單元格中找到(哪位摔跤運動員奪冠次數最多?),或需要聚合多個單元格的信息才能得到(僅奪冠一次的世界冠軍有多少人?)。
表格,以及問題和預期答案。有的答案通過選擇即可得到(如問題 1 和問題 4),有的答案則需要計算(問題 2 和問題 3)。
針對這一問題,近來的很多方法採用了傳統的語義解析方案,即將自然語言問題轉譯成一個類 SQL 的資料庫查詢,其在資料庫上執行後可提供答案。例如,「僅奪冠一次的世界冠軍有多少人?」這個問題會被映射到這樣一個查詢:select count(*) where column("No. of reigns") == 1,執行該查詢後即可得到答案。為了得到句法和語義上有效的查詢,這種方法所需的工程量大,而且僅適用於與特定表格(如體育賽事結果)有關的問題,難以擴展應用於任意問題。
谷歌在一篇 ACL 2020 論文中提出了一種不同的方法。這篇論文題為《TaPas:通過預訓練實現弱監督式表格解析(TaPas: Weakly Supervised Table Parsing via Pre-training)》,提出了一種擴展型的 BERT 架構。該架構可對問題與表格數據結構進行聯合編碼,最終得到的模型可直接指向問題答案。並且,這種新方法所創建的模型適用於多個領域的表格。
要想得到優良的模型,優質的數據自然是不可或缺的。谷歌首先使用了數百萬個維基百科表格對模型進行預訓練,然後又在三個學術級表格問答數據集上進行實驗,結果表明新方法的準確度表現極具競爭力。不僅如此,谷歌開源了模型訓練和測試代碼,還公開分享了他們在維基百科數據上得到的預訓練模型。
如何處理問題?
對於「兩位頂級摔跤運動員的冠軍賽平均時間是多少?」這樣的問題,谷歌新方法的編碼方式是一種基於擴展型 BERT 模型的聯合編碼方法。這種擴展型 BERT 模型使用特定的嵌入來編碼表格結構,並且能在逐行編碼表格內容的同時聯合編碼問題。
對於基於 transformer 的 BERT 模型,谷歌提出的核心擴展思路是新增了用於編碼結構化輸入的額外嵌入。這依賴於為列索引、行索引和一個特別的排序索引(表示數值列中元素的順序)所學習的嵌入。下圖展示了這些嵌入聚合成輸入的方式以及饋送入 transformer 網絡層的方式。
下圖展示了編碼問題的方式,並在左邊給出了一張小表格。每個單元格 token 都有一個指示其行、列和在列中的數值排序的特殊嵌入。
BERT 層輸入:每個輸入 token 都被表示成其詞、絕對位置、句段(無論是屬於問題還是表)、列和行以及數值排序的嵌入之和。
該模型有兩個輸出:1)一個分數,用於表示每個表格單元格的內容屬於答案一部分的概率;2)一個聚合操作,用於表示是否應用操作以及應用哪些操作來將各個單元格的內容聚合成最終答案。下圖展示了對於問題「兩位頂級摔跤運動員的冠軍賽平均時間是多少?」,該模型有較高的概率選擇 Combined days 列的前兩個單元格以及使用 AVERAGE 操作。
模型示意圖:BERT 層同時編碼問題和表格。該模型會輸出每個聚合操作的概率以及每個表格單元格的選擇概率。對於問題「兩位頂級摔跤運動員的冠軍賽平均時間是多少?」,該模型以較高的概率選擇了 AVERAGE 操作以及數值為 3749 和 3103 的兩個單元格。
預訓練
谷歌採用的預訓練過程類似於 BERT 在文本上的訓練方法,其訓練數據是從英語維基百科提取的 620 萬組表格 - 文本數據對。在預訓練過程中,模型的學習目標是恢復表格和文本中被掩碼替換的詞。通過實驗發現,該模型在這項任務上的準確度相對較高——對於訓練過程中未曾見過的表格,該模型能夠正確恢復 71.4% 的被掩蓋 token。
僅從答案學習
在微調過程中,模型的目標是學習如何基於表格回答問題。這可以通過強監督方法實現,也可使用弱監督方法。如果使用強監督方法,則對於給定表格和問題,必須先提供所要選擇的單元格和聚合操作(比如求和或計數),但這個過程非常耗時耗力。因此更常見的情況是使用弱監督方法進行訓練,此時僅需提供正確答案即可(比如對於以上示例,正確答案是 3426)。
在弱監督情況下,模型需要自己嘗試尋找能得到接近正確答案的聚合操作和單元格。這個過程需要在所有可能的聚合決策上計算期望,並將其與真實結果進行比較。弱監督方法更加有利,因為它讓非專家也能提供訓練模型所需的數據,而且消耗的時間也比強監督方法少。
結果
谷歌在 SQA、WikiTableQuestions (WTQ) 和 WikiSQL 這三個數據集上進行了實驗驗證,並對比了在解析表格數據任務中表現最佳的三種其它方法。其中,在 WikiSQL 上對比的模型為 Min et al (2019),在 WTQ 上對比的模型為 Wang et al. (2019),在 SQA 上對比的模型為 Mueller et al., (2019)(這是谷歌這個團隊自己之前的一項研究)。
對於所有數據集,報告的結果都是弱監督訓練設置下在測試集上的答案準確度。對於 SQA 和 WikiSQL,谷歌使用了基於維基百科數據得到的預訓練模型作為基礎模型;而對於 WTQ,他們發現在 SQA 數據上再進行預訓練會更有利。谷歌新方法的表現優於之前最佳水平——在 SQA 上超過之前最佳方法 12 個百分點,在 WTQ 上超過之前最佳方法 4 個百分點,在 WikiSQL 上與之前最佳方法表現相近。
弱監督設置下,模型在三個學術級表格問答數據集上的測試答案準確度。
原文連結:https://ai.googleblog.com/2020/04/using-neural-networks-to-find-answers.html
世界人工智慧大會線上活動(WAIC)是由上海市政府打造的國際頂級人工智慧會議。為進一步促進人工智慧技術與產業相融合,推動開發者技術生態建設,WAIC 2020年黑客馬拉松將於7月9日-11日期間舉辦。
機器之心聯合優必選科技與軟銀機器人公布兩大賽題,邀請全球開發者來戰。更多精彩賽題將於近期公布,歡迎關注。
原標題:《ACL 2020 | 用BERT解決表格問答任務,谷歌提出弱監督表格解析器TaPas》
閱讀原文