自然语言处理—语义解析子任务 Text2SQL 旨在将用户的自然语言转换为 SQL 序列,继而完成数据库查询工作,打破了人与结构化数据库之间的壁垒,具有广泛的研究&应用价值。
近日,微软亚洲研究院联合北航和西安交大,发布了全新跨领域多轮交互 Text2SQL 中文数据集CHASE,相关论文已被ACL 2021接收。
本文从现有 Text2SQL 数据集、CHASE主要特点、解决方案测评等角度来讲解这篇顶会论文。随同数据集发布的还有同名公开榜单。
论文标题:
CHASE: A Large-Scale and Pragmatic Chinese Dataset for Cross-Database Context-Dependent Text-to-SQL
链接:
1.Text2SQL任务和数据集
典型的Text2SQL任务是给定一张表格 ,用户输入自然语言问句 ,模型自动生成相应SQL序列 ,相当于对文本和结构化表格同时建模:
任务示例
自从上世纪90年代提出该任务以来,Text2SQL在NLP和数据库社区吸引了众多科研人员的关注,学术界和工业界相继发布了一些大规模数据集。从单领域、单轮到跨领域、多轮,任务难度逐渐提升。
现有的Text2SQL数据集
在实际场景,用户往往会围绕一个感兴趣的问题持续发问,直到从数据库中获得想要的信息。而以往的 Text2SQL 多轮数据集没有中文,仅有的英文数据集 Sparc[1] 和 CoSQL[2] 又包含了很多上下文独立的样本,且部分数据存在标注混乱。
2.CHASE 简介
鉴于以上不足,微软亚洲研究院联合北航和西安交大,发布了最新的 Text2SQL 数据集 CHASE,它有以下特点:
1)跨领域,包含280个不同领域的数据库,且 train/dev/test 不重复;
2)大规模,包含5459个多轮问题组成的列表,一共17940个<query, SQL>二元组;
3)多轮交互,同一个列表的问题之间会有实体省略等交互现象,类似于 SParc 和 CoSQL;
4)中文数据集,问题和数据库表名、列名、其中的元素都是中文,相比之下,CSpider只是将表名、列名字段翻译为中文。
5)标注信息丰富,除了 query 和 SQL,CHASE 额外标注了(1)上下文依赖关系,包括 Coreference 共指、Ellipsis 省略;(2)模式链接关系,对于 query 中提到的表名和列名信息进行了标记。
下图是 CHASE 中问题列表的实际例子。
用户的第一个输入“哪所大学培养了最多MVP球员”属于独立问题,没有可参考的上下文;紧接着第二个问题“状元呢”直接省略了主语“大学”,完整的问题应该是“哪所大学培养了最多状元”,模型需要结合历史信息才能生成正确的SQL。第三个问题同样类似。
完整的 CHASE 数据集由 CHASE-C 和 CHASE-T 两部分组成。
CHASE-C
CHASE-C 收集了百度去年发布的 DuSQL[3] 单轮中文数据集中的120个高质量数据库,包含了运动、教育、娱乐等60个子领域;并修复了其中的一些错误(例如重复列、缺少的外键约束等等)。
随后,作者安排了12位中国大学生从头开始标注具有上下文依赖的问题列表,以及上文介绍的两种依赖关系,
CHASE-T
CHASE-T 翻译自 Sparc 数据集公开的 train/dev 部分。作者让参与翻译的学生修改那些与上下或主题无关的 query 和 SQL,使问题序列更加连贯和自然。
在构建过程中,CHASE-T 发现并修复了 SParC 中150个不正确的SQL查询,并调整了1470个 SQL 查询,使最终的问题序列更加连贯。
下表统计了 CHASE 和其他多轮 Text2SQL 数据集的对比信息,可以发现 CHASE 规模最大,且标注信息最丰富。
3.现有 SOTA 模型效果评测
在实验部分,作者选取了 IGSQL[4]、RAT-SQL[5]、EditSQL[6] 3种当前 Text2SQL 领域的SOTA方法进行对比,采用问题匹配度 Question Match(QM) 和交互匹配度 Interaction Match(IM) 两种评测指标。
最终得到了4个观察结论:
1)当前 CHASE 上最优模型 IGSQL 的 QM 仅为40.4%,相比之下 Sparc 和 CoSQL 上的最高 QM 分别是60.1% 和50.8%,表明 CHASE 对未来的研究提出了重大挑战;
2)SOTA 方法在 CHASE-C 上的 QM 和 IM 结果均低于 CHASE-T,证明从头创建的问题序列更具挑战性;
3)SOTA 方法在 CHASE-T 的表现要比 Sparc 差,原因来自两方面:(1)CHASE 修复了 Sparc 中的一些 badcase,使得前者更具挑战性;(2)现有方法只针对英文,在处理中文输入时可能表现的不那么稳定;
4)尽管 RAT-SQL 在 Sparc 和 CoSQL 上达到了 SOTA 性能,却在 CHASE 上远落后于 EditSQL 和 IGSQL,原因在于 RAT-SQL 采用了一种基于字符串匹配的方法来寻找数据库模式和 query 提及之间的联系;然而,当许多模式在问题中没有被准确提及时(例如涉及语义推理),这种方法就会陷入困境;CHASE中的模式链接标注信息为未来解决这一问题提供了帮助。
实验对比
4.总结
CHASE 是最新的 Text2SQL 高质量多轮交互数据集,通过人工标注和 review 丰富了问题的多样性和凝聚力,贴近实际应用场景的同时增大了Text2SQL 任务的难度。
现有的 SOTA 方法在 CHASE 公开榜单上最高 QM 准确率只有 43.7%,还有巨大的提升空间,对语义理解感兴趣的同学不妨来试试刷榜!
最后,我在 Github 上整理了一个 Text2SQL 资源仓库,包含数据集、解决方案、paper、落地应用等信息,可以帮助你快速了解 Text2SQL 领域的研究现状:
Text2SQL 语义解析数据集、解决方案、paper资源整合项目