数据库
首页 > 数据库> > 【P10】Bridging Textual and Tabular Data for Cross-Domain Text-to-SQL Semantic Parsing

【P10】Bridging Textual and Tabular Data for Cross-Domain Text-to-SQL Semantic Parsing

作者:互联网

Bridging Textual and Tabular Data for Cross-Domain Text-to-SQL Semantic Parsing

Findings of EMNLP 2020
Implementation:https://github.com/salesforce/TabularSemanticParsing

Abstract

1 Introduction

针对不同的数据库(DB),近似的自然语言表达生成的 SQL 可能十分不同。因此,跨数据库 text-to-SQL 语义解析器不能仅简单地记住所看到的 SQL 模式,而是必须准确地建模自然语言问题、目标数据库结构以及两者的上下文

最先进的跨数据库 text-to-SQL 语义解析器采用以下设计原则:

  1. 问题和模式(schema)表示相互关联;
  2. BERT等预训练模型可以通过增强对自然语言变化的泛化和捕捉长期依赖关系,显著提高解析准确性;
  3. 在数据隐私允许的范围内,利用可用的 DB 内容可以提高对 DB 的理解。

本文介绍了 text-DB 编码框架 BRIDGE,它整合了上述三个设计原则。

  1. 将关系数据库模式表示为串接在问题后的标记序列,用 BERT 和后续两个单层双向 LSTM 编码混合标记序列。每个模式组件(表或字段)仅使用混合序列中其特殊标记对应的隐藏状态来表示
  2. BRIDGE用锚文本扩展了混合序列,锚文本自动提取问题中提到的DB单元值,隐式地实现 text-DB 对齐。

结合 pointer-generator 解码器和 schema-consistency driven search space pruning(模式一致性驱动的搜索空间修剪),取得了和 SOTA 相当的性能:

benchmarkdevtest
Spider(ensemble model)71.1%67.5%
WikiSQL92.6%91.9%

1通过深入的模型比较和错误分析,我们表明所提出的架构对于概括自然语言变化和记忆结构模式是有效的,但在组合概括方面存在困难,并且缺乏可解释性。这使我们得出结论,跨领域的文本到sql仍然提出了许多未解决的挑战,需要模型在训练数据经常稀少的情况下,对自然语言变化和结构组合进行泛化。

2 Model

BRIDGE模型——结合了基于BERT的编码器顺序 pointer-generator,以执行端到端 cross-DB text-to-SQL 语义解析。

2.1 Problem Definition

给定自然语言问题 Q 和关系型数据库的模式(schema) S = ⟨ T , C ⟩ \mathcal{S}=\langle\mathcal{T}, C\rangle S=⟨T,C⟩,解析器需要生成相应的 SQL 查询 Y Y Y。

图片

一个数据库中可能包含很多张(tables),一张表又包含多个字段(fields),所以 T = { t 1 , … , t N } \mathcal{T}=\left\{t_{1}, \ldots, t_{N}\right\} T={t1​,…,tN​} , C = { c 11 , … , c 1 ∣ T 1 ∣ , … , c n 1 , … , c N ∣ T N ∣ } C=\left\{c_{11}, \ldots, c_{1\left|T_{1}\right|}, \ldots, c_{n 1}, \ldots, c_{N\left|T_{N}\right|}\right\} C={c11​,…,c1∣T1​∣​,…,cn1​,…,cN∣TN​∣​} 。每张表的表名和字段名都是文本字符。表中的字段可能有主键、外键,同时字段有不同的数据类型

最新方法表明访问数据库内容可以显着提高系统性能。但为保护隐私,模型仅可以访问每个字段的值集(value set),而不是整个数据库的内容。 把这些 value sets 叫做 picklists。

2.2 Question-Schema Serialization and Encoding

在这里插入图片描述

如图,作者将Q和S拼接为一个混合的问题-模式序列,作为编码器的输入:
X = [ C L S ] , Q , [ S E P ] , [ T ] , t 1 , [ C ] , c 11 … , c 1 ∣ T 1 ∣ [ T ] , t 2 , [ C ] , c 21 , … , [ C ] , c N ∣ T N ∣ , [ S E P ] \begin{aligned} X=&[\mathrm{CLS}], Q,[\mathrm{SEP}],[\mathrm{T}], t_{1},[\mathrm{C}], c_{11} \ldots, c_{1 \mid T_{1}\mid} \\ &[\mathrm{T}], t_{2},[\mathrm{C}], c_{21}, \ldots,[\mathrm{C}], c_{N\left|T_{N}\right|},[\mathrm{SEP}] \end{aligned} X=​[CLS],Q,[SEP],[T],t1​,[C],c11​…,c1∣T1​∣​[T],t2​,[C],c21​,…,[C],cN∣TN​∣​,[SEP]​
每个表名前面都有特殊标记[T],每个字段名前面都有[C]。

Meta-data Features

相比于表名,字段名多了主键、外键等属性。为了利用这些特征(meta-data),论文中用了一层前馈网络( g ( R 4 n → R n ) g\left(\mathbb{R}^{4 n} \rightarrow \mathbb{R}^{n}\right) g(R4n→Rn))对表名、字段名进一步编码。
h S t i = g ( [ h X p ; 0 ; 0 ; 0 ] ) h S c i j = g ( [ h X q ; f p r i u ; f f o r v ; f t y p e w ] ) = ReLU ⁡ ( W g [ h X m ; f p r i u ; f f o r v ; f t y p e w ] + b g ) h S = [ h t 1 , … , h t ∣ T ∣ , h c 11 , … , h c N ∣ T N ∣ ] ∈ R ∣ S ∣ × n , \begin{aligned} \boldsymbol{h}_{S}^{t_{i}} &=g\left(\left[\boldsymbol{h}_{\mathrm{X}}^{p} ; \boldsymbol{0} ; \boldsymbol{0} ; \boldsymbol{0}\right]\right) \\ \boldsymbol{h}_{S}^{c_{i j}} &=g\left(\left[\boldsymbol{h}_{\mathrm{X}}^{q} ; \boldsymbol{f}_{\mathrm{pri}}^{u} ; \boldsymbol{f}_{\mathrm{for}}^{v} ; \boldsymbol{f}_{\mathrm{type}}^{w}\right]\right) \\ &=\operatorname{ReLU}\left(\boldsymbol{W}_{g}\left[\boldsymbol{h}_{\mathrm{X}}^{m} ; \boldsymbol{f}_{\mathrm{pri}}^{u} ; \boldsymbol{f}_{\mathrm{for}}^{v} ; \boldsymbol{f}_{\mathrm{type}}^{w}\right]+\boldsymbol{b}_{g}\right) \\ \boldsymbol{h}_{S} &=\left[\boldsymbol{h}^{t_{1}}, \ldots, \boldsymbol{h}^{t|\mathcal{T}|}, \boldsymbol{h}^{c_{11}}, \ldots, \boldsymbol{h}^{c_{N\left|T_{N}\right|}}\right] \in \mathbb{R}^{|\mathcal{S}| \times n}, \end{aligned} hSti​​hScij​​hS​​=g([hXp​;0;0;0])=g([hXq​;fpriu​;fforv​;ftypew​])=ReLU(Wg​[hXm​;fpriu​;fforv​;ftypew​]+bg​)=[ht1​,…,ht∣T∣,hc11​,…,hcN∣TN​∣​]∈R∣S∣×n,​

2.3 Bridging

仅对表名/字段名及其关系进行建模并不足以捕捉模式(schema)的语义及其与Question的依赖关系,即缺少 Q 和 S 的交互。

2.4 Decoder

解码器的目的是从编码特征中还原出相应SQL。

相比于前人的工作(RAT-SQL、IRNet等),BRIDGE解码器设计非常简洁,仅使用了一层带多头注意力机制的 LSTM pointer-generator 网络

在每一个step中,解码器从如下动作中选择1种:

  1. 从词汇表 V 中选择一个token(SQL关键字)
  2. 从问题 Q 中复制一个token
  3. 从模式 S 中复制一个组件(字段名、表名、单元值)

从数学定义上分析,在每一个时刻 t t t ,给定解码状态 s t s_t st​和编码表示 [ h Q ; h S ] ∈ \left[\boldsymbol{h}_{Q} ; \boldsymbol{h}_{S}\right] \in [hQ​;hS​]∈ R ( ∣ Q ∣ + ∣ S ∣ ) × n \mathbb{R}^{(|Q|+|S|) \times n} R(∣Q∣+∣S∣)×n,按照[4]中的方式计算多头注意力:
e t j ( h ) = s t W U ( h ) ( h j W V ( h ) ) ⊤ n / H ; α t j ( h ) = softmax ⁡ j { e t j ( h ) } z t ( h ) = ∑ j = 1 ∣ Q ∣ + ∣ S ∣ α t j ( h ) ( h j W V ( h ) ) ; z t = [ z t ( 1 ) ; ⋯   ; z t ( H ) ] \begin{array}{l} e_{t j}^{(h)}=\frac{\boldsymbol{s}_{t} W_{U}^{(h)}\left(\boldsymbol{h}_{j} W_{V}^{(h)}\right)^{\top}}{\sqrt{n / H}} ; \quad \alpha_{t j}^{(h)}=\operatorname{softmax}_{j}\left\{e_{t j}^{(h)}\right\} \\ \boldsymbol{z}_{t}^{(h)}=\sum_{j=1}^{|Q|+|\mathcal{S}|} \alpha_{t j}^{(h)}\left(\boldsymbol{h}_{j} W_{V}^{(h)}\right) ; \quad z_{t}=\left[z_{t}^{(1)} ; \cdots ; z_{t}^{(H)}\right] \end{array} etj(h)​=n/H ​st​WU(h)​(hj​WV(h)​)⊤​;αtj(h)​=softmaxj​{etj(h)​}zt(h)​=∑j=1∣Q∣+∣S∣​αtj(h)​(hj​WV(h)​);zt​=[zt(1)​;⋯;zt(H)​]​
其中 h ∈ [ 1 , 。 。 。 , H ] h∈[1,。 。 。 ,H] h∈[1,。。。,H]是头数, H H H是总头数。 α t j ( h ) \alpha_{t j}^{(h)} αtj(h)​表示从 Q 或 S 中复制相应 token 加入当前解码结果的权重

解码由 V V V产生(即上述解码器动作1)的概率为:
p g e n t = sigmoid ⁡ ( s t W g e n s + z t W g e n z + b g e n ) \begin{array}{l} p_{\mathrm{gen}}^{t}=\operatorname{sigmoid}\left(s_{t} W_{\mathrm{gen}}^{s}+z_{t} W_{\mathrm{gen}}^{z}+b_{\mathrm{gen}}\right) \\ \end{array} pgent​=sigmoid(st​Wgens​+zt​Wgenz​+bgen​)​
总的输出分布为:
p o u t t = p g e n t P V ( y t ) + ( 1 − p g e n t ) ∑ j : X ~ j = y t α t j ( H ) , p_{\mathrm{out}}^{t}=p_{\mathrm{gen}}^{t} P_{\mathcal{V}}\left(y_{t}\right)+\left(1-p_{\mathrm{gen}}^{t}\right) \sum_{j: \tilde{X}_{j}=y_{t}} \alpha_{t j}^{(H)}, poutt​=pgent​PV​(yt​)+(1−pgent​)j:X~j​=yt​∑​αtj(H)​,
其中, P V ( y t ) P_{\mathcal{V}}\left(y_{t}\right) PV​(yt​)是 softmax LSTM 的输出分布, X ~ j \tilde{X}_{j} X~j​是长度为 ( ∣ Q ∣ + ∣ S ∣ ) (|Q|+|\mathcal{S}|) (∣Q∣+∣S∣)的序列,其只包含 X X X中的 question words 和特殊标记[T]、[C]。

2.5 Schema-Consistency Guided Decoding

3 Related work

4 Experimental Setup

4.1 Dataset

4.2 Evaluation Metrics

4.3 Implementation details

5 Results

5.1 End-to-end Performance Evaluation

5.1.1 Spider

5.1.2 WikiSQL

5.2 Ablation Study

5.3 Error Analysis

5.3.1 Manual Evaluation

5.3.2 Qualitative Analysis

6 Conclusion

数据充足而目标逻辑形式较浅时,sequence-to-sequence 模型是跨数据库语义解析的良好选择,实现更容易且解码效率更高。

后续计划:

  1. 进一步改进模型的组合泛化(compositional generalization)和可解释性。
  2. 研究BRIDGE的扩展应用,这些任务需要结合文本和表格的理解,如弱监督的语义分析和事实检查。

标签:Bridging,right,Semantic,boldsymbol,Tabular,SQL,mathrm,字段名,left
来源: https://blog.csdn.net/qq_42341984/article/details/113059271