编者按
智能对话系统因其巨大的潜力和商业价值受到越来越多研究者和从业者的关注,对话的主要种类席卷闲谈型、学问型、任意型、阅读理解型等,目前已经广泛应用在智能客服、智能音箱、智能车载等众多场景。近年来,智能对话还出现了新的应用场景,例如可以将自然语言转换为各种程序性语言,如SQL,从数据库中找到相应的答案,让用户和数据库的交互变得更加直接和方便。
为此,Datafun发布了百分点首席算法科学家苏海波署名文章,文中主要介绍了智能问答中的题目语义等价模型、学问图谱问答模型、NL2SQL模型,以及百分点在智能问答领域的实践案例。
本文作者:苏海波
一、智能问答的典型场景
1. 典型的智能问答应用场景
在典型的智能问答应用场景中席卷:
闲谈式,开放域闲谈的典型例子,席卷问天气,寒暄,情感陪伴等。
任意导向式对话,任意驱动的多轮对话的例子,席卷智能音箱,语音智能点餐服务,这是特定任意模式下的服务。
信息问答式,学问型问答,回答信息,例如问姚明的身高等,是用作获取信息的服务。
2. 典型的智能问答对比应用场景
闲谈机器人,在拉近距离、建立信任关系、情感陪伴、顺滑对话过程、以及提高用户粘性等方面发挥着作用,一般以关键词触发,模糊立室回复,学问范围为不深入的开放领域,数据与学问来自于互联网、闲谈交互开发者定期更新的数据。
学问型机器人,主要应用于咨询和售后服务的场景,拥有一问一答,智能立室应答,完成语义归一的能力,在实际使用中代替部分的人工服务,服务于垂直单一行业领域,这部分的数据主要来自于企业自主更新的业务学问库和不断优化的学问体系。
任意机器人,在售前,销售,售后均有涉及,可以举行多轮对话,完成深层语义辨别,意图辨别等任意,主要服务于明确具体的任意场景,数据同样来自于企业自主更新的业务学问库和不断优化的学问体系。
另外,学问型机器人和任意型机器人均属于为垂直行业领域服务的业务型机器人。
二、智能问答的产品架构
1. 智能问答的具体流程
首先举行语音辨别,将用户会话辨别出来后,经过ASR结果纠错和补全、指代消解、省略恢复等预处理之后,经过敏感词检测,送入中控系统。中控系统是在特定语境下举行意图辨别的系统,分为情绪辨别、业务意图辨别、对话管理、异常处理等四个模块,其中业务意图席卷QA问答机器人(QA Bot)、鉴于学问图谱的问答机器人(KG Bot),NL2SQL机器人(DB Bot),任意型机器人(TASK Bot)。对话管理席卷多轮对话的对话历史管理、BOT当前询问、会话状态选取等模块。异常处理席卷安全话术(对意图结果的结果举行后处理)、会话日志记录、告警等功能。然后,进入话术/指令生成子系统,这是辨别问句意图后的对话结果生成,席卷话术生成和指令生成两个模块,在话术生成中,对话系统根据对话历史数据和对话模板生成和拼接产生话术,如果是任意型对话,将生成对应指令。另外,辅助系统通过画像分析、用户分析、题目分析等功能,进一步优化问答系统的效果。
2. 智能问答产品的具体架构
智能问答产品主要席卷学问库、对话模型、配置中心、多渠道接入以及后台管理。针对不同的任意划分,准备不同的学问库,例如QA BOT需要引入问答学问对,KG BOT需要学问图谱的支持等等。将针对不同任意的对话模型服务,部署接入各个平台接口,譬如小程序、微信、网页等,提供在线问答服务。配置中心主要提供QA对、闲谈语料、同义词库、特征词库等的可视化配置服务,完成学问配置的快速拓展。后台管理针对智能问答系统实施整体监控、日志管理、告警、权限管理等等,另外,它还提供各种维度的统计分析服务。
三、QA学问问答的技术完成
1. QA学问问答的简介
这是以智能立室问答库为主要完成原理的问答机器人,将用户所提题目与问答库中的题目举行相似度立室筛选,辨别出语义等价的题目以及对应答案,完成对话。
首先用户访问PC网站或者公众号平台,通过语音描述要咨询的题目,输入ASR语音辨别模块,将失去的题目经过纠错之后,举行题目语义等价的辨别、相似题目的推荐,并对问答结果举行记录。经过一段时间的累积之后,后台就会失去实际应用中对于用户咨询题目的各种情况,这里席卷未辨别的题目、误辨别的题目、新挖掘的高频题目,AI算法团队针对这些题目举行优化,席卷题目的新增、答案的优化、相似题目发掘、算法的优化等部分,并将这些重新梳理的数据作为补充的问答学问在人工审核之后录入学问库,持续迭代。另外,在实际的应用过程中,问答学问库的类型席卷信息中心、组织人事处、后勤管理处、保卫处、计划财务处、离退休工作处等各种部门需要的业务学问数据。
2. 构建学问库的过程
学问库的主要来源席卷:历史的问答和咨询数据、业务学问梳理积累、规章制度和流程等内容、辅之以同义词词库等外部数据,在功能上设立新建学问、导出学问、导入学问等。举个例子来说明学问库的格式,例如“北京分为多少区||北京行政区划||北京有四个区吗”,这个个题目都是语义等价的,其一级分类为中国,二级分类为北京,对应的答案是“2015年北京市辖东城、西城、朝阳、丰台、石景山、海淀、门头沟、房山、通州、顺义、昌平、大兴、怀柔、平谷、密云、延庆16个市辖区(合计16个地市级行政区划单位);#n150个街道、143个镇、33个乡、5个民族乡(合计331个乡级行政单位)。||北京一共有16个区;”如果新增问答学问,那么一级分类、二级分类、题目和回答是必须要添加的,以“||”作为分割多个题目和答案的分隔符等。
在配置中心,也可以通过可视化的配置功能,完成问答意图、QA问答库、闲谈库等学问的快速创建以及分类管理。
3. 如何找到语义等价的问句
构建问答学问库之后,在检索学问库的过程中,最重要的是如何找到与输入语义等价的问句,如下图所示:
常用的相似度算法席卷余弦相似度、编辑距离、关键词重合度、BM25等等,实际使用中是有用,但仍然不够,因为可能遇到如下题目:
字面相似的句子语义不等价
字面不相似的句子语义等价
例如题目“什么是新冠肺炎”和“解释下新冠肺炎的定义”是语义等价,但和“什么是支气管肺炎”却不是语义等价的,采用编辑距离之类的算法是无法辨别的。因而,只有鉴于语义理解的模型才能辨别出来,这里席卷两类,一是传统机器学习方法,二是深度迁移学习方法。
4. 鉴于BERT和BIMPM的语义等价模型方案
我们采用了鉴于BERT和BIMPM的语义等价模型方案,模型的网络结构如下图所示:
BIMPM本身是十分经典的模型,底层是通过word2vec向量来举行语义立室计算,这里我们将word2vec词向量全部替换为BERT的最上面若干层的输出,并将原有模型中的BI-LSTM结构,替换为Transformer,以提高其在序列性上的表现,实际测试中,该模型在Quora和SLNI数据集中达到了state-of-the-art的效果,如下图所示:
上面的表格中显示了BERT层数在效果表现上的差异,其中使用BERT最上面三层的参数,作为模型的输入,整体表现效果最佳。
5. 智能问答中语义等价模型
接下来介绍智能问答中语义等价模型的训练、优化和发布过程,该模型的目标是判断两个问句在语义上是否完全等价。
模型的具体训练和发布闭环流程,如下图所示:
在完成对标注数据样本集的模型训练,生成模型之后,我们将在沙盒环境中测试模型的表现,针对模型表现不好的样本,提取并标注再放入数据集重新训练调优,模型发布至生产环境之后,针对实际使用中未辨别样本、误辨别样本和新高频样本做对话分析,举行模型优化后再重新发布模型。
实例:疫情问答系统
此问答系统鉴于上述技术,采用疫情相关的问答学问库,提供智能化、自动化的疫情学问问答,并且完成了实时统计数据、实时门诊咨询、实时数据咨询、协助求医报警等。
四、学问图谱问答的技术完成
1. 鉴于学问图谱问答的算法完成原理
本系统主要是通过将输入问句,转化为SparQL的语句,完成对学问图谱的智能问答,例如武汉大学出了那些科学家,需要辨别出武汉大学和科学家的两个查问条件才能失去交集答案,当不能使用常规NER辨别出实体的时候,可以将训练语料中的实体词汇导入到ES搜索引擎中,完成对一些难以辨别样例的查问。具体完成原理,如下图所示:
首先针对用户题目,经过文本预处理,先举行实体辨别,将实体送入别名词典和ES中去,失去备选的实体名称;再题目分类,这一步是为了失去题目结果的模板类型是什么,然后槽位预测,填写实体和关系槽位;在实体分析模块中,针对实体辨别失去的备选实体,通过语义特征和人工特征举行实体消歧和实体检索,生成实体链接,并将实体填入SparQL查问模板语句之中;继而,根据上一步实体链接,找到实体在学问图谱中的所有关系,并对所有关系和用户题目语句举行语义立室的排序,失去了相似度最高的关系路径,并将该实体在该关系下的结果填入SparQL的查问模板之中;最后,根据填写完成的查问语句,在图数据库之中检索校验,失去答案。
仔细来谈,在题目分类部分中,一个题目所属的类型有三个判断依据:
链式和夹式,链式解释其查问语句遵循链式查找,一步一步的查问;夹式是指查问的结果满足两个条件的交集;
题目的跳数,指的是需要建立的查问次数;
每一跳是问实体还是问关系。
2. 实体分析模块:实体链接
在实体分析模块,实体链接就是用来处理题目和候选实体举行立室的步骤,以确定所需的实体究竟是哪一个实体,毕竟同名实体是比较常见的。MatcgZoo是一款深度文本立室的工具,支持DRMM、MatchPyramid、MV-LSTM、DSSM等深度立室模型。采用该工具,我们需要准备实体立室的正负样本,将<题目、SparQL>样本数据中,题目和正确的候选实体形成实体链接模型的正样本,错误候选实体形成负样本。在模型的改进方面,将上述失去的文本立室特征和人工特征结合,使用stacking模型取得更好的效果。
3. 查问生成模块:路径排序
在查问生成模块,针对题目和生成候选查问立室的题目上,就需要完成路径排序。这里使用了孪生网络来判断其语义相似度,正负样本生成与实体分析模块类似,在模型改进上,BERT向量会比传统词向量取得更好的效果。
上面的方案在2020CCKS大赛上取得了F1为0.901的成绩,并部署在GPU平台上响应时间只需要200ms。
五、NL2SQL问答的技术完成
与上述两种问答类型不同的是,NL2SQL问答不是鉴于问答对或者学问图谱学问库,它是鉴于结构化数据表举行智能问答,完成自然语言转SQL查问的功能。
1. NL2SQL问答的技术完成原理
首先,针对自然语言查问语句,使用分词、词性标注、实体辨别、依存句法等对句子举行句法分析,然后使用规则、词向量、语言模型、深度学习等多种方法填充语义槽,具体席卷查问字段、聚合函数、筛选条件、分组字段等,然后鉴于这些填充的信息生成对应的SQL查问语句。
在经典的NL2SQL方案中,鉴于Seq2Seq的X-SQL模型是十分常见的,该模型的思路是先通过 MT-DNN 对原始题目及字段名称举行编码,再在题目前面人为地添加一个 [CXT] 用于提取全局信息。中间的 Context Reinforcing Laryer 层是这个模型的核心部分,它的目的是把 MT-DNN 失去的预训练编码在 NL2SQL 任意上举行增强和重组。这个中间层不仅能体现上下文信息,还能通过 Attention机制对字段名称的编码举行强化。这一层输出的结果席卷题目的编码,以及强化后的字段编码,后面的输出层都会在这个基础上举行。输出层席卷6个子模型:S-COL和S-AGG 用于预测 select 的字段,只依赖于强化后的字段名称编码,通过 softmax 对每个字段打分就行了;W-NUM 只依赖全局信息,用于预测 where 条件个数;W-COL、W-OP和W-VAL 用于预测过滤条件的具体内容,通过组合字段编码,当前的 where 条件编号及题目编码,通过softmax 评分就能失去需要的结果。
这个架构已经十分完善了,但是由于数据的局限,模型无法预测多个 select 及 group 的内容。而且模型完全依赖字段名称去提取过滤条件和select的内容,在中文字段名称特征不够明显或者领域数据与训练数据偏差较大时,容易出错。我们提出了一种结合依存语法树的新方案在实际项目中失去了应用,下图显示此新方法的具体思路:
2. 鉴于X-SQL和依存句法树的NL2SQL
首先,对问句举行分词,再做依存句法分析,失去问句每一个成分在词性、实体、是否为数据表字段、聚合函数等信息,再经过词库和后序遍历解析依存树,将各个问句成分组合,最终失去解析结果。在鉴于X-SQL+句法分析+时间模板的模型设计下,达到90%以上的解析准确率,达到实用的效果。
总结
以上就是百分点关于智能问答技术的全部分享,总结起来有以下三点:
(1)鉴于预训练模型的深度迁移学习技术在智能问答中将失去普遍应用。
(2)NL2SQL问答技术目前还存在很多的技术挑战和提升空间,是目前前沿热门的技术研究方向。
(3)垂直行业性的智能问答场景,技术更容易落地,用户能获得更好的问答体验。
注:本文转载自DataFunTalk,转载请注明出处。