百度语义解析 ( Text-to-SQL ) 技术研究及应用( 五 )


百度语义解析 ( Text-to-SQL ) 技术研究及应用
本文插图
图5
首先 , “成分映射”模块完成问题中表格相关成分识别(图6黑色箭头表示的流程) , 用户提供的数据包括同义词、应用常见问题形式等 , 该部分可充分利用用户提供的数据进行效果优化 。 然后对识别的成分进行SQL关键词识别(图6紫色箭头表示的流程) , 该部分算法基于Sequence-to-set模型改进 。
前两个过程将问题中被映射成功的词汇替换成相应的符号 , 输入到基于文法组合的解析算法中 , 该部分的替换使后面模块与具体数据库无关 , 这提升了模型对新数据库的泛化能力 。
最后 , 在基于文法组合的语义解析阶段 , 通过改造CYK算法 , DuParser构建了一个自下向上的解析框架(图6蓝色箭头表示的流程) , 并且 , 在文法组合过程中通过引入SQL片段与对应问题片段相似度匹配来选择最优文法 。
百度语义解析 ( Text-to-SQL ) 技术研究及应用
本文插图
图6:黑色箭头表示成分映射 , 紫色表示标签识别 , 蓝色表示文法组合
该框架有以下几个优点:

  • 首先 , 与端到端的神经网络模型相比 , 它具有良好的可解释性和效果可控性 , 容易进行系统调试和针对性效果优化;
  • 其次 , 它可以充分利用用户提供的数据及反馈 , 在用户任务上快速启动且加快迭代优化速度;
  • 最后 , 该框架可以做到语言无关、领域无关 , 有很好的扩展能力 。
该模型在单表数据集合上进行了效果验证 , 结果见表5(使用的预训练模型与对应的SOTA一致) 。
百度语义解析 ( Text-to-SQL ) 技术研究及应用
本文插图
表5
注:
1)NL2SQL数据集的SOTA是开源最好模型[20]在开发集上的结果;
2)WikiSQL数据集的SOTA模型是不加执行指导的X-SQL[13]模型;
3)Spider单表来自Spider数据集中的单表部分数据 , SOTA模型是IRNet[16] , 评估了其中单表上的准确率(非bert版本);
4)百度应用数据会针对数据集做优化 , 重点是“同义词”部分 。
百度对Text-to-SQL技术的应用
Text-to-SQL技术主要的应用场景是基于数据库的问答 。 在实际的应用中 , 百度将该技术应用于ToB客服业务和搜索业务中 。
对于ToB业务 , 以UNIT平台为输出接口 , 支持结构化问答业务(参见下方链接) 。 支持的业务应用于车载对话系统、企业智能报表生成系统、电话客服系统等 , 图7给出落地于车载对话系统中的案例 。
链接:
https://ai.baidu.com/forum/topic/show/957042
百度语义解析 ( Text-to-SQL ) 技术研究及应用
本文插图
图7
对于搜索业务 , 我们探索了搜索中的计算类问答(图8)和企业表格问答(图9) 。
百度语义解析 ( Text-to-SQL ) 技术研究及应用
本文插图
图8
百度语义解析 ( Text-to-SQL ) 技术研究及应用
本文插图
图9
目前挑战及未来思考
Text-to-SQL技术在实际应用中可直接使用 , 但由于实际应用领域覆盖广泛 , 模型需要满足领域无关、语言无关、问题无关 。
当前模型在中间表示、树形解码、图网络建模数据库等方向均有探索 , 并取得了一定的成效 , 但对一些复杂操作的解决效果还不够好 , 可参见Spider数据集标注为“难”和“极难”的数据效果 。 同时 , 在实际应用中 , 还需要考虑以下问题: