论文导读 |SQL-to-Text Generation with Graph-to-Sequence Model

论文导读 |SQL-to-Text Generation with Graph-to-Sequence Model

原文《SQL-to-Text Generation with Graph-to-Sequence Model》收录于EMNLP2018。文章是Graph2Seq在文本生成上的应用。
SQL2text这类问题旨在将sql自动翻译成人能理解的自然语言描述,以帮助非专家用户理解sql的查询需求。Seq2Seq是一种常用的处理SQL2text的生成任务的模型,但是模型难以捕获SQL 查询中的图结构特征。
论文导读 |SQL-to-Text Generation with Graph-to-Sequence Model

Sql查询可视为一张有向图,即,select本身为一个节点,select后面的列名为节点,聚集函数为与列名节点相连的节点,对于where语句中的每个条件,key和value表达式分别对应一个节点。注意value相同的可合并为一个节点,连接字and、or等作为单独节点,将相关联的节点连接起来。
本文的输入为SQL语句,首先通过上述方法将SQL语句转换成一个有向图,再通过Graph2Seq模型, 将有向图翻译为文本序列。即首先利用每个点的k跳个邻居节点进行节点嵌入的编码,再利用所有节点嵌入生成全局的图嵌入,最后利用全局嵌入进行解码得到最后的翻译结果。
实验在Wikisql和*数据集上进行,评测指标为BLEU-4和人工评测。分别与如下方案进行对比:

  • 基于模板。例如将>翻译成more than
  • Seq2seq。分别基于注意力机制,以及在解码器端加入copy机制
  • Tree2Seq。通过SQL Parser tool将SQL转成一棵树

论文导读 |SQL-to-Text Generation with Graph-to-Sequence Model

相比Seq2Seq模型,Graph2Seq在以下两类情况下具有明显优势:

  • 有两个条件以上的复杂问题
  • 列名有隐式关系的查询

论文导读 |SQL-to-Text Generation with Graph-to-Sequence Model