论文笔记:TABERT: Pretraining for Joint Understanding of Textual and Tabular Data
論文筆記:TABERT: Pretraining for Joint Understanding of Textual and Tabular Data
目錄
- 論文筆記:TABERT: Pretraining for Joint Understanding of Textual and Tabular Data
- 導語
- 摘要
- 1 簡介
- 2 背景
- 2.1 Semantic Parsing over Tables
- 2.2 Masked Language Models
- 3 TABERT: 從表格數據中學習聯合分布
- 3.1 計算自然語言語句和數據庫schema的表示
- 內容快照
- 行的線性化
- 垂直自注意力機制
- 最終的自然語言語句和列的表示
- 3.2 預訓練
- 3.2.1 訓練數據
- 3.2.2 無監督學習目標
- 4 案例應用:表格上的語義解析
- 4.1 有監督的語義解析
- 4.2 弱監督的語義解析
- 5 實驗
導語
- 會議:ACL 2020
- 地址:https://aclanthology.org/2020.acl-main.745/
摘要
最近,大規模預訓練語言模型在NLP的各種任務上應用廣泛。但像BERT之類的傳統模型僅在free-form的自然語言文本中進行訓練,并不能很好的適用于在結構化數據上進行的semantic parsing任務。本文提出了TABERT模型,它使用自然語言文本和(半)結構化文本共同預訓練得到,訓練的語料庫由一個超過2600萬的表格和上下文信息組成。在一個弱監督的semantic parsing數據集WikiTABLEQUESTIONS上取得了最好的結果,在Text-to-SQL數據集Spider上取得了與目前SOTA模型相當的表現。
1 簡介
傳統的預訓練模型使用free-form的自然語言文本進行預訓練,能夠學習到的語言中的句法和語法知識。在下游任務中,通過對這些表示進行Fine-tune將能夠很自然的應用到各個任務中。這在大多數NLP任務中是行得通的方法,但是在面對一些需要同時對自然文本語句和結構化數據進行建模的任務時,比如Text-to-SQL任務,表現并沒有那么好。一個主要的挑戰在于理解數據庫中的schema(即對數據庫中table和column及其關系的統稱)信息,并能夠將schema和輸入自然語言語句中相應的token進行對齊(比如自然語言語句中的“GDP” 指的是table中的 Gross DomesticProduct 這個column)。
在使用預訓練模型到semantic parsing任務時,主要有以下問題和挑戰:
為此,作者提出了一種將free-form的自然語言文本和結構化數據聯合訓練的模型TABERT,可以很好的學習這種(半)結構化信息。TABERT被應用于WikiTableQuestions數據集和Spider數據集并取得了很好地效果。
2 背景
2.1 Semantic Parsing over Tables
對于表格的Semantic Parsing一個重要的應用是Text-to-SQL。在給定關系型數據庫(即schema)的前提下,將用戶的提問Question生成相應的SQL查詢語句。下圖為Spider數據集的一個示例:
2.2 Masked Language Models
在訓練語言模型時,人們將整個自然語言語句中的某些token進行遮擋,訓練模型根據上下文來預測得到這些被遮擋的token。采用這種技術訓練得到的語言模型即Masked Language Model,如BERT等。
3 TABERT: 從表格數據中學習聯合分布
3.1 計算自然語言語句和數據庫schema的表示
如圖所示,整個TABERT模型結構圖分為A、B、C三部分。其大致流程如下:在給定自然語言語句u和數據庫表格T的情況下,首先從表格T中選出與u最相關的K行數據作為數據庫的內容快照(Content Snapshot)。接著,將這幾行內容分別進行序列化和自然語言語句一同輸入到Transformer中或者相應的編碼表示。隨后,編碼后的每一所有行被送入垂直自注意力編碼層(Vertical Self-Attention),一個列值(一個單詞)通過計算同一列的值(同一單詞)的垂直排列向量的自注意力得到。最終經過池化層得到單詞和列的表示。
內容快照
TABERT的一個主要特點是使用了表格中的內容值,因為它們可以更好的反應所屬column的屬性。但是,一個表格T的行數可能會非常多,為了減少模型的計算量。這里,作者設計只選擇與自然語言問句u最相關的前K行輸入到模型。模型使用n-gram的重合程度作為相似度的度量標準。這里也區分了K>1和K=1的情形。
- K>1:K>1的情況下直接使用n-gram計算得到最相似的Top K行輸入給模型。
- K=1:K=1的情況下會將各個column中最相似的單元格拼接為1行輸入給模型。
行的線性化
得到內容快照后,將其線性化后和自然語言語句u組合輸入給Transformer。其輸入格式為:
[CLS] utterance [SEP] c1 [SEP] c2……其中,每一個c值表示成三部分:列名、類型和單元值,中間使用“|”分割。
例如,上圖中R2R_2R2?這一行的輸入即
垂直自注意力機制
當K>1時,會得到多行的編碼結果,不過由于每一行是單獨計算的,因此是相互獨立的。為了使信息在不同行的表示中流動,TABERT引入了垂直自注意力,可以在不同行的相互對齊的向量中進行計算。
如圖2(C)所示,TABERT有V個垂直堆疊的自注意力層。為了生成垂直注意力的對齊輸入,首先對每個單元值計算固定長度的初始向量(對Transformer的輸出向量進行平均池化)。接下來將自然語言描述的向量序列與初始化后的單元值向量進行連接。
垂直注意力與Transformer擁有相同的參數,但是只對垂直對齊的元素(自然語言語句中的同一個單詞,同一列中的單元值)進行操作。這種垂直注意力機制能夠聚合不同行中的信息,允許模型捕獲單元值的跨行依賴關系。
最終的自然語言語句和列的表示
最終每一列的表示是將最后一個垂直自注意力層中對齊的單元值向量進行平均池化,得到該列的表示。自然語言語句中每一個單詞的表示也采用類似的方式進行計算。
3.2 預訓練
3.2.1 訓練數據
使用了從英文維基百科和WDC WebTable語料庫中收集的表格和與其相鄰的文本作為訓練數據。預處理后的語料包含26.6M個表和自然語言句子。
3.2.2 無監督學習目標
TABERT使用不同的目標來學習上下文和結構化表格的表示。對于自然語言上下文,還是使用MLM目標,在句子中隨機mask15%的token。對于列的表示,TABERT設計了兩個學習目標:
- 遮罩列預測(Masked Column Prediction,MCP)目標使模型能夠恢復被遮蔽的列名和數據類型。具體來說就是從輸入表中隨機選取20%的列,在每一行的線性化過程中遮蔽掉它們的名稱和數據類型。給定一列的表示,訓練模型使用多標簽分類目標來預測其名稱和類型。直觀來說,MCP使模型能夠從上下文中恢復列的信息。
- 單元值恢復(Cell Value Recovery,CVR)目標能夠確保單元值信息能夠在增加垂直注意力層之后能夠得以保留。具體而言,使用經過V層vertical attention后的向量來預測表格中的原始值,這里并不是用經過pooling后的,所以只需要預測一個value值,但是每個value值可能由多個token組成,所以后面會采用一個span的預測方式。
4 案例應用:表格上的語義解析
4.1 有監督的語義解析
Spider數據集即是一個有監督的語義解析任務,他是由人工標注得到的大型Text-to-SQL數據集。
4.2 弱監督的語義解析
WikiTableQuestions數據集采用了一種類似于強化學習的方式,即模型看不到SQL語言的標注,只知道其執行結果是否正確。
5 實驗
在Spider和WikiTableQuestions數據集上結果如下:
作者也對比了一些組件的效果。
總結
以上是生活随笔為你收集整理的论文笔记:TABERT: Pretraining for Joint Understanding of Textual and Tabular Data的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Builder 混合式开发
- 下一篇: iOS 加载本地html文件详细操作