X-SQL: reinforce schema representation with context
Abstract
针对 NL-to-SQL 的解析问题,本论文提出了一种新的网络体系结构 X-SQL。利用 bert 风格的预训练模型(MT-DNN)的上下文输出来增强结构模式表示(schema representation),并结合类型信息(type information) 来学习用于下游任务的新模式表示。
1 Introduction
X-SQL 从以下三个方面做出了贡献:
- 表列之类的结构化信息相对稳定,但自然语言查询是高度可变的。利用 MT-DNN 来捕获这种变化,并将非结构化查询(unstructured query)总结为全局上下文表示,然后将其用于增强下游任务的结构化模式(structured schema)表示。
- 部分SQL的语法结合类型信息。例如,aggregator MIN只出现在数值列中,运算符">"不能与字符串类型的列配对。在两个地方合并模式类型信息:
- 通过对预先训练的语言表示的修改进行类型嵌入
- 使用单独学习的类型嵌入来进一步改进某些子任务
- 在预测where子句时,采用了全局排序方法,使用 KL 散度作为目标,将所有列放到一个可比较的空间中,从而有效地建模列之间的关系。
2 Neural Architecture
三层结构:
- Sequence Encoder
- Context Enhanced Schema Encoder
- Output Layer
完成SQL语句的生成,将其分为6个子任务(select-column, select-aggregation, where-number, where-column, where-operator, and where-value),这六个任务彼此之间相互结合,彼此制约。