NL2SQL 智能对话数据库初探(智能对话在打通人与数据查询壁垒上的探索).docx
N1.2SQ1.智能对话数据库初探从数据治理的全生命周期来看,商业银行需要具备数据资产管理,高效、高质量的数据加工以及数据创新运用三个方面的核心能力。商业银行在数据存储的选择上呈现多元化,但大多数业务知识和数据仍以关系型数据库的形式存储。目前业务人员只能通过固定的界面接口查询使用数据,数据查询过程繁琐且效率低下,极大地限定了业务人员按需查询数据库的场景和查询界限。在此背景下,业界在探索一种新的人机交互方式,即通过N1.2SQ1.(Natural1.anguageToSQ1.)技术,将业务人员的查询意图快速准确地转换为可执行的SQ1.查询语句,省去人工构造SQ1.语句的过程,从而大幅提升数据查询效率。新兴技术N1.2SQ1.解读1 .什么是N1.2SQ1.N1.2SQ1.是将用户自然语言转化成数据库可执行的SQ1.,完成人与关系数据库交互的实时数据查询。其目的是让用户无需掌握专业数据库编程技能也可以灵活快速地操作数据,以降低数据库使用门槛。从技术范畴来看,N1.2SQ1.本质是将自然语言问句转换为计算机可读懂、可运行、符合计算机规则的语义表示,需要计算机理解自然语言,并生成准确表达语句语义的可执行程序式语言。其定位属于语义分析的子领域,相关技术还有N1.2Bash.N1.2Python.N1.2Java°N1.2SQ1.的研究成果后续可以为语义分析相关领域的研究提供借鉴思路。2 .N1.2SQ1.的关键技术N1.2SQ1.属于N1.P的子领域,相较其他自然语言处理方向的实现方式,在内部实现的整体结构上大同小异,而在技术实现的具体应用有所不同。N1.2SQ1.实现基于N1.P处理流程,在技术实现层面需要从用户语言意图到SQ1.生成的核心细节考虑。从语言灵活性和泛化能力考虑,大多数研究倾向于基于有监督的机器学习处理方式。N1.2SQ1.处理流程综合应用了人机交互、自然语言理解、机器学习、知识工程等多个领域知识,如图1所示。特征工程N1.2SQ1.流程图图1人机交互:多轮人机交互提升用户意图识别准确度。用户查询数据库提问通常没有明确的查询意图,只有一些假设和猜想,仅通过单轮对话难以得出结论,需要通过“提问一反馈一再提问”的渐进式交互明确用户意图。自然语言理解:正确理解和解析用户表达的查询意图是N1.2SQ1.的核心能力。在人机交互过程中,模型需要具备基于上下文的自然语言理解能力,包括用户意图识别、语法检测、语义预测等,以达到充分理解用户查询意图的目的。机器学习:合理有效的机器学习算法是N1.2SQ1.的基础技术支撑。N1.2SQ1.利用机器学习算法结合领域知识,可以对表数据进行自主学习丰富知识结构,同时结合不同的用户在不同领域的问题,建立预测模型。再者,基于深度学习算法与规则的结合,模型具备泛化能力、可移植、可解释性的语义解析框架。知识工程:采用知识工程技术手段,实现自然语言到数据库的有效预测。基于多种人工智能技术融合,知识工程通过知识获取、知识验证、知识使用等手段,学习表结构相关的领域知识,建立功能完善的N1.2SQ1.知识模型,实现自然语言到符合用户意图SQ1.的准确预测,最终以合理的方式将查询结果返回给用户。创新数据运用模式初探1.N1.2SQ1.应用现状N1.2SQ1.目前主要处于研究阶段,商用案例较少,且大多数的研究是基于英文数据集开展。2019年首届中文N1.2SQ1.挑战赛最高成绩已达92%以上,刷新了中文N1.2SQ1.的业界记录(见图2所示)。中文N1.2SQ1.挑战赛测试准确度:92.19%数据特点:(1)单表单列杳询;(2)聚合操作CMAX丁MN,'COUNT,SUM',AVG');条件连接('AND');(4)条件比较('=丁乂V)测试准确度:92.2%数据特点:(1)单衣单列查询;(2)聚合操作('MAX丁MIN)'COUNT;,SUM,AVG');(3)条件连接CAND%(4)条件比较(E,少SPider挑成测试准确度:61.9%数据特点:(1)跨域多表多列奇闻,复杂子查询;聚合操作('MA)C,MN,'COUNT,'SM',AVG,'GROUP,HAVING',1.IMIT');外表连接口。irV,'on1.as')条件连接('AND;。);(4)f½tt(,not,between,,=:<=丁!=in,等)(5)排序操作('orderbyJdesc',"asc')(6)SQ1.连接('Intersect','UniOn',N1.2SQ1.研究三大数据集对比情况图2这样高的预测准确率是否代表N1.2SQ1.研究成果能够满足真实场景的应用需求?事实并非如此。目前N1.2SQ1.的研究主要分为两个方向,一个是针对单表的简要查询,另一个是针对跨域多表的复杂查询。中文N1.2SQ1.挑战赛高达92%的准确率仅是针对同一数据库的单表简要查询的限定条件,且基于有监督学习所达到的测试精确度,这类似于基于WikiSQ1.数据集的英文N1.2SQ1.挑战(目前公开提交的最高测试精确度为92.2%)。这两者研究没有涉及跨域、多表连接、聚合、子查询等众多复杂情况,难以直接适用于需求灵活多变的实际应用。在真实场景中,N1.2SQ1.需要考虑问题与数据的泛化匹配,表之间错综复杂的联系,多种数据筛选条件等多种情况,而基于单表查询的研究更多是起到抛砖引玉的作用。相较于单表查询,针对跨域多表复杂查询的N1.2SQ1.研究与真实场景应用更为贴近,其中基于Spider数据集的N1.2SQ1.研究成为当前N1.2SQ1.的研究热点。由于查询任务需要考虑众多因素,在数据处理和SQ1.预测上存在极大的挑战,目前在SPider公开提交中的最优算法测试准确率仅有65.8%,离实际应用还有一定的距离。2.N1.2SQ1.应用面临的挑战目前中文N1.2SQ1.技术尚未成熟,面临着中文数据集缺乏、查询意图转换SQ1.缺乏背景知识支撑、模型成熟度三方面的挑战。中文N1.2SQ1.数据集缺口。关于中文N1.2SQ1.研究情况业界信息甚少,且缺乏可以直接使用的开源数据集,目前已知的开源数据集仅有中文Spider数据集。由于在前期的数据收集和数据预处理需要投入大量的人工和时间,因此数据集的缺乏对中文N1.2SQ1.研究造成了一定的阻碍。查询意图转换SQ1.缺乏背景知识支撑。用户自然语言表述问题口语化,一般不包含表格的背景知识,忽略很多查询条件,这对生成正确的SQ1.查询语句造成了困难。因此在自然语言理解的过程应尽量收集用户查询意图,并为表结构知识进行知识增强,比如宇宙行转换为工商银行,从而提高自然语言理解能力。模型移植性等能力存在不足。基于规则的N1.2SQ1.实现往往缺乏移植性和泛化能力,而基于深度学习的N1.2SQ1.实现,构建端到端的神经网络,则缺乏可解释性,难以进行调试优化。如何合理地将规则和机器学习进行综合,是提升预测准确率的突破口之一。N1.2SQ1.在金融行业应用的思考数据库作为商业银行数据的存储基础,无论是金融外围业务,还是核心业务都离不开数据库查询需求。在此背景下,N1.2SQ1.可以作为“AI+”在金融客服、营销支持、金融交易等业务领域应用的切入点,在金融数据运用模式创新方向发力。目前N1.2SQ1.处于快速发展阶段,但仍然不成熟。为发挥在金融场景的应用潜力,建议N1.2SQ1.在金融行业应用进行以下思考。积累金融领域相关的N1.2SQ1.标记数据。目前自然语言处理主要基于有监督学习进行模型训练,需要大量的数据集作为训练支持。为了更好地覆盖银行业务中常见的查询问题类型,应持续积累金融领域相关的N1.2SQ1.标记数据,基于实际应用分析构建满足金融领域业务逻辑以及包含多表复杂查询问题的数据集,作为N1.2SQ1.在金融领域应用的数据基础。探索金融业务创新应用。金融行业是非常注重稳定性,新技术的应用无法做到一蹴而就。建议在风险低的金融场景进行N1.2SQ1.的应用探索,一方面验证新技术应用的成熟度,另一方面可以不断挖掘N1.2SQ1.在具体场景的应用价值,为N1.2SQ1.在金融领域应用做好技术储备。持续跟进N1.2SQ1.技术发展形势。近年来,随着人工智能技术的成熟,N1.2SQ1.得以快速发展。建议持续跟进N1.2SQ1.技术发展形势,包括N1.2SQ1.在跨域多表复杂查询的研究进展、N1.2SQ1.在行业应用情况等技术动态,为N1.2SQ1.在金融领域应用提供技术研判。智能对话在打通人与数据查询壁垒上的探索1、场景介绍某银行业务人员想要查询某款理财产品中原财富1号9月销售额度,对于数据工程人员则会考虑写一个SQ1.语句:Selectsum(sale)fromtablenamewheremonth=9andproductname=*中原财富1号”业务人员一般不具有SQ1.编程能力,而对于上述这些语句比较简单,但问题发散的场景,业务人员想要查询相应的结果需要找到数据工程人员完成相关流程。流程比较繁琐,而通过nI2sql技术,则可直接将问题转换成相对应的SQ1.语句用于相关表的查询并返回结果,因此nl2sql可被用于问答系统,通过配合相关规则及其他语义模型,能够对一些简单常见的用户问题转换成相应的SQ1.oa:2、关于N1.2SQ1.的介绍2.1 什么是N1.2SQ1.N1.zSQ1.(Natural1.anguagetoSQ1.),顾名思义是将自然语言转为SQ1.语句。它可以充当数据库的智能接口,让不熟悉数据库的用户能够快速地找到自己想要的数据,改善用户与数据库的交互方式。2.2 N1.2SQ1.的目标与定位从技术的角度来看,N1.2SQ1.的本质是将用户的自然语言语句转化为计算机可读懂、可运行、符合计算机规则的语义表示,同时需要计算机理解人类的语言,生成准确表达语句语义的可执行程序式语言。其定位是语义分析领域的一个子任务。2.3 N1.2SQ1.的数据集1英文n12sql数据集nl2sql的开源数据集,目前比较火的英文数据集有WikiSQ1.、Spider>W汰iTableQuestions、ATIS等,各个数据集都有各自的特点,下面简单介绍下这几个数据集。WH6SQ1.:该数据集是Salesforce在2017年提出的大型标注n12sql数据集,也是目前规模最大的nl2sql数据集。它包含了24,241张表,80,645条自然语言问句及相应的SQ1.语句。目前学术界的预测准确率可达91.8%oSpider:Spider数据集是耶鲁大学于2018年新提出的一个较大规模的n!2sql数据集。该数据集包含了10181条自然语言问句,分布在200个独立数据库中的5,693条SQ1.,内容覆盖了138个不同的领域。虽然在数据数量上不如WikiSQ1.,但SPider引入了更多的SQ1.用法,例如GroUPBy、OrderBy>Having等高阶操作,甚至需要Join不同表,更贴近真实场景,所以难度也更大。目前准确率最高只有54.7%。WikiTableQuestions:该数据集是斯坦福大学于2015年提出的一个针对维基百科中那些半结构化表格问答的数据集,内部包含22,033条真实问句以及2,108张表格。由于数据的来源是维基百科,因此表格中的数据是真实且没有经过归一化的,一个CeII内可能包含多个实体或含义,比如Beijing,ChinaJ或200kmJ;同时,为了很好地泛化到其它领域的数据,该数据集测试集中的表格主题和实体之间的关系都是在训练集中没有见到过的。TheAirTravellnformationSystem(ATIS):ATIS是一个年代较为久远的经典数据集,由德克萨斯仪器公司在