本发明实施例涉及人工智能领域,尤其涉及一种应答模型的训练方法、应答方法、装置、设备及存储介质。
背景技术:
智能运维(artificialintelligenceforitoperations,aiops),是将人工智能的能力与运维相结合,通过机器学习的方法来提升运维效率。aiops主张由机器学习算法自动地从海量运维数据(包括事件本身以及运维人员的人工处理日志)中不断地学习,不断提炼并总结规则。aiops在自动化运维的基础上,增加了一个基于机器学习的大脑,指挥监测系统采集大脑决策所需的数据,做出分析、决策,并指挥自动化脚本去执行大脑的决策,从而达到运维系统的整体目标。综上看,自动化运维水平是aiops的重要基石,而aiops将基于自动化运维,将ai和运维很好地结合起来,但目前的aiops仍存在不同场景下运维知识迁移的缺陷,对于新场景,新数据,往往需要重新从零构建aiops,需要额外重复的劳动力,费时费力。
技术实现要素:
本发明实施例提供了一种应答模型的训练方法、应答方法、装置、设备及存储介质,以实现提高智能运维的通用性。
第一方面,本发明实施例提供了一种应答模型的训练方法,其特征在于,包括:
基于知识图谱提取出的实体信息构建意图训练样本;
基于预训练模型构建问答训练样本;
根据意图训练样本和问答训练样本构建应答模型训练样本;
使用应答模型训练样本对预先构建的应答模型进行训练,得到训练好的应答模型。
第二方面,本发明实施例还提供了一种应答方法,包括:
获取待应答信息;
将待应答信息输入至预先训练的应答模型中,获得应答模型的输出结果,其中,应答模型是通过本发明任意实施例所提供的应答模型的训练方法训练得到的;
根据输出结果确定应答信息并输出。
第三方面,本发明实施例还提供了一种应答模型的训练装置,包括:
意图样本构建模块,用于基于知识图谱提取出的实体信息构建意图训练样本;
问答样本构建模块,用于基于预训练模型构建问答训练样本;
训练样本构建模块,用于根据意图训练样本和问答训练样本构建应答模型训练样本;
应答模型训练模块,用于使用应答模型训练样本对预先构建的应答模型进行训练,得到训练好的应答模型。
第四方面,本发明实施例提供了一种应答装置,包括:
待应答信息获取模块,用于获取待应答信息;
应答模型预测模块,用于将待应答信息输入至预先训练的应答模型中,获得应答模型的输出结果,其中,应答模型是通过本发明任意实施例所提供的应答模型的训练方法训练得到的;
应答信息输出模块,用于根据输出结果确定应答信息并输出。
第五方面,本发明实施例提供了一种计算机设备,设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现如本发明实施例第一方面所提供的应答模型的训练方法,和/或,实现如本发明实施例第二方面所提供的应答方法。
第六方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明任意实施例第一方面所提供的应答模型的训练方法,和/或,实现如本发明实施例第二方面所提供的应答方法。
本发明实施例提供的应答模型的训练方法通过基于知识图谱提取出的实体信息构建意图训练样本;基于预训练模型构建问答训练样本;根据意图训练样本和问答训练样本构建应答模型训练样本;使用应答模型训练样本对预先构建的应答模型进行训练,得到训练好的应答模型,通过根据知识图谱抽取结果自动生成训练语料,完成端到端的应答模型的会话设计与会话构建,将规则和深度学习结合应用提高了生成的应答模型训练样本与真实问答数据的相似性,一定程度上提高了生成文本的泛化能力,进而提高了应答模型的通用性。
附图说明
图1是本发明实施例一所提供的一种应答模型的训练方法的流程示意图;
图2是本发明实施例二所提供的一种应答模型的训练方法的流程示意图;
图3是本发明实施例三所提供的一种应答模型的训练方法的流程示意图;
图4是本发明实施例四所提供的一种应答方法的流程示意图;
图5是本发明实施例五所提供的一种运维机器人的训练及应用示意图;
图6是本发明实施例六所提供的一种应答模型的训练装置的结构示意图;
图7是本发明实施例七所提供的一种应答装置的结构示意图;
图8是本发明实施例八所提供的一种计算机设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1是本发明实施例一所提供的一种应答模型的训练方法的流程示意图。本实施例可适用于对应答模型进行训练时的情形,尤其适用于对运维机器人中的应答模块进行训练时的情形。该方法可以由应答模型的训练装置执行,该应答模型的训练装置可以采用软件和/或硬件的方式实现,例如,该应答模型的训练装置可配置于计算机设备中。如图1所示,该方法包括:
s110、基于知识图谱提取出的实体信息构建意图训练样本。
在本实施例中,考虑到运维知识的迁移问题,避免新场景,新数据,需要重新从零构建智能运维的技术问题,根据知识图谱抽取结果自动生成训练语料,完成端到端的会话设计与会话构建。对于自然语言理解训练语料,在端到端设计思路中,将规则和深度学习一起结合应用起来提高了生成的训练数据与真实机器人问答数据的相似性,一定程度上提高了生成文本的“泛化”能力。
其中,知识图谱可具体根据智能运维的应用场景确定。示例性的,假设智能运维用于业务往来交易,则知识图谱可以为企业、个人、账户等组成的知识图谱;假设智能运维用于系统维护,则知识图谱可以为系统内硬件、部件等组成的知识图谱。可以理解的是,知识图谱可以根据获取到的源数据构建,也可以直接获取已经构建完成的知识图谱,在此不做限定。知识图谱的构建方式可以参照现有技术中知识图谱的构建方式,在此不做赘述。
在本发明的一种实施方式中,基于知识图谱提取出的实体与实体属性构建意图训练样本,包括:提取出知识图谱中的实体信息,其中实体信息包括实体、实体属性以及实体间的关系;根据预先设置的意图问题模板和实体信息构建意图训练样本。可选的,可以先提取出知识图谱中各实体的实体属性以及各实体之间的关系,将各实体的实体属性以及各实体之间的关系作为已知参数,结合预先设的意图问题模板构建意图训练样本。示例性的,可以根据知识图谱,提取到实体,构建实体表entity1,针对每一类实体,提取其属性,构建属性表attribute1,根据知识图谱提取所有关系,构建关系表relation1。
可选的,根据预先设置的意图问题模板和实体信息构建意图训练样本,包括:根据questioni=∏entityi(∑attributei+∑relationi)构建意图训练样本,其中,questioni为意图训练样本,entityi为实体,attributei为实体属性,relationi为实体间的关系。示例性的,设置意图问题模板questions=∑questioni,其中questioni为第i个意图问题模板,最终生成的意图训练样本是所有意图训练样本的并集,针对每一个意图训练样本questioni,循环采样实体表中的实体entityi,选择性采样属性表中的attributei和关系表中的relationi生成完整的问题,具体为:questioni∏entityi(∑attributei+∑relationi)。基于上述方式构建得到的意图训练样本覆盖了各类意图,使得基于意图训练样本训练出的应答模型具有通用性。
s120、基于预训练模型构建问答训练样本。
在本实施例中,可以采用多种预训练模型构建问答训练样本。
示例性的,结合预训练模型unilm生成问题问句,相比较于基于语言模型的生成模型,bert由于其双向解码无法满足语言模型要求,但是通过maskattention手动控制解码方向,从双向变为单向即可:
p(x1,x2,x3,…,xn)=p(x1)p(x2|x1)p(x3|x1,x2)…p(xn|x1,x2,…,xn-1)
=p(x3)p(x1|x3)p(x2|x3,x1)…p(xn|x3,x1,…,xn-1)…p(xn-1)
=…
=p(x1|xn-1)p(xn|xn-1,x1)…p(x2|xn-1,x1,…,x3)
x1,x2,…,xn任意一种“出场顺序”都有可能。原则上来说,每一种顺序都对应着一个模型,所以原则上就有n!个语言模型。实现一种顺序的语言模型,就相当于将原来的下三角形式的mask以某种方式打乱。由于注意力机制attention提供了一个n×n的attention矩阵,才有足够多的自由度去以不同的方式去mask这个矩阵,从而实现多样化的效果,构建出多样化的问答训练样本。
s130、根据意图训练样本和问答训练样本构建应答模型训练样本。
在本实施例中,将基于知识图谱构建的意图训练样本和基于预训练模型构建的问答训练样本共同作为应答模型训练样本,基于通用性的意图训练样本和多样化的问答训练样本,得到通用多样化的应答模型训练样本,使得基于应答模型训练样本训练出的应答模型通用性强。
s140、使用应答模型训练样本对预先构建的应答模型进行训练,得到训练好的应答模型。
在得到应答模型训练样本后,使用应答模型训练样本对预先构建的应答模型进行训练,得到训练好的应答模型。其中,应答模型的结构及构建在此不做限定。
在本实施例中,可以采用现有技术中模型训练的方式对应答模型进行训练,还可以基于应答模型的结构,基于现有的模型训练方式进行调整,对应答模型进行训练。
示例性的,将应答模型训练样本输入至应答模型中,得到应答模型的预测结果,当预测结果与标签之间的损失值达到设定的阈值时,或迭代次数到达设定的迭代次数阈值时,判定模型收敛,得到训练好的应答模型。
本发明实施例提供的应答模型的训练方法通过基于知识图谱提取出的实体信息构建意图训练样本;基于预训练模型构建问答训练样本;根据意图训练样本和问答训练样本构建应答模型训练样本;使用应答模型训练样本对预先构建的应答模型进行训练,得到训练好的应答模型,通过根据知识图谱抽取结果自动生成训练语料,完成端到端的应答模型的会话设计与会话构建,将规则和深度学习结合应用提高了生成的应答模型训练样本与真实问答数据的相似性,一定程度上提高了生成文本的泛化能力,进而提高了应答模型的通用性。
在上述方案的基础上,还包括:根据意图训练样本中的实体标签数量设置意图训练样本对应意图的关联槽位。以任务型聊天机器人系统为例,其与用户的对话一般会涉及多轮会话动作才能结束一个完整的会话流程,考虑到部分会话流程对于填槽意图并不是很好控制,并且不同意图,不同图谱关系会共享相同的填槽动作,因此,本发明实施例中采用预先设置槽位的技术思路,一旦会话开启,整个会话流程需要的槽位将设置成为必要性槽位,直到所有槽位均被填充完成,会话动作才开始执行,该方法有效控制了填槽时不好把握意图的情况。提高了整个会话系统的准确性。具体的,针对某一意图类型的关联槽位的设置可以基于意图训练样本中该意图类型的实体标签数量设置。假设意图为购买电影票,则其关联槽位可以为“时间”、“影院名称”、“电影名称”、“座位位置”和“数量”,只有明确上述关联槽位的实体,才能够明确需要购买什么电影票。
实施例二
图2是本发明实施例二所提供的一种应答模型的训练方法的流程示意图。本实施例在上述实施例的基础上,对使用应答模型训练样本对预先构建的应答模型进行训练进行了优化。如图2所示,该方法包括:
s210、基于知识图谱提取出的实体信息构建意图训练样本。
s220、基于预训练模型构建问答训练样本。
s230、根据意图训练样本和问答训练样本构建应答模型训练样本。
s240、将应答模型训练样本输入至特征提取模块中,获得特征提取模块输出的样本初始特征。
在本实施例中,应答模型包括特征提取模块、意图识别模块和实体提取模块。一般的,实体提取和意图识别之间存在较强的关联关系,考虑到实体提取与意图识别有强相关性,比如针对低峰场景的数据反馈的意图,该意图的槽位是固定的有限集合,因此对于自然语言理解中的实体提取,可以部分先验的约束,如先做意图识别,然后进行实体提取。也就是说,本发明实施例通过将实体提取与意图识别联合训练的方式来构建自然语言理解模块。
在对应答模型训练样本进行意图识别和实体提取之前,需要提取出应答模型训练样本的数据特征,即样本初始特征。具体的,可以采用特征提取模块提取出应答模型训练样本的样本初始特征。其中,特征提取模块的具体实现可参照现有技术中特征提取模块的实现方式,示例性的,可以采用双向长短期记忆网络(bidirectionallongshorttermmemory,blstm)作为特征提取模块提取出应答模型训练样本的样本初始特征。可以理解的是,样本初始特征可以以矩阵的形式展示。
s250、将样本初始特征输入至意图识别模块中,得到意图识别模块输出的样本意图特征。
s260、将应答模型训练样本和样本意图特征输入至实体提取模块中,得到实体提取模块输出的样本实体特征。
得到样本初始特征后,将样本初始特征输入至意图识别模块中,使意图识别模块对样本初始特征进行意图识别,得到样本意图特征;然后将样本意图特征作为实体提取的参数之一,和应答模型训练样本作为实体提取模块的输入,使实体提取模块进行实体提取,得到样本实体特征。
s270、根据样本意图特征和意图标签确定意图损失值,根据样本实体特征和实体标签确定实体损失值,根据意图损失值和实体损失值确定目标损失值。
可以理解的是,本实施例中,采用意图识别和实体提取联动训练的方式,因此目标损失值包括意图损失值和实体损失值。具体的,根据样本意图特征和意图标签确定意图损失值,根据样本实体特征和实体标签确定实体损失值,根据意图损失值和实体损失值确定目标损失值。其中,根据意图损失值和实体损失值确定目标损失值可以为:将意图损失值和实体损失值的特征值作为目标损失值。意图损失值和实体损失值的特征值可以为意图损失值和实体损失值的特征值的均值、方差、和等特征值,在此不做限定。
一个实施例中,根据意图损失值和实体损失值确定目标损失值,包括:将意图损失值和实体损失值加权求和,得到目标损失值。可选的,可以直接将意图损失值和实体损失值的加权和作为目标损失值,其中,意图损失值和实体损失值的权重可预先根据实际需求设置。若侧重意图识别,可为意图损失值设置较大的权重,为实体损失值设置较小的权重;若侧重实体提取,可为意图损失值设置较小的权重,为实体损失值设置较大的权重;若无侧重,可以为意图损失值和实体损失值设置相同的权重,如均设置为0.5或均设置为1。
s280、以目标损失值达到收敛条件为目标,对应答模型进行训练,得到训练好的应答模型。
可选的,以目标损失值达到收敛条件为目标,对问答模型进行训练,得到训练好的问答模型。其中,目标损失值满足收敛条件可以为相邻两次目标损失值之差小于设定阈值,或迭代次数达到设定的目标迭代次数。
本发明实施例在上述实施例的基础上,对使用应答模型训练样本对预先构建的应答模型进行训练进行了优化,通过将应答模型具体化为特征提取模块、意图识别模块和实体提取模块,将使用所述应答模型训练样本对预先构建的应答模型进行训练,得到训练好的应答模型,具体化为:将所述应答模型训练样本输入至所述特征提取模块中,获得所述特征提取模块输出的样本初始特征;将所述样本初始特征输入至所述意图识别模块中,得到所述意图识别模块输出的样本意图特征;将所述应答模型训练样本和所述样本意图特征输入至所述实体提取模块中,得到所述实体提取模块输出的样本实体特征;根据所述样本意图特征和意图标签确定意图损失值,根据所述样本实体特征和实体标签确定实体损失值,根据所述意图损失值和所述实体损失值确定目标损失值;以所述目标损失值达到收敛条件为目标,对所述应答模型进行训练,实现了意图识别和实体提取的联动训练,充分考虑到了实体提取与意图识别之间的强依赖关系,保证了最终训练得到的模型可以同时兼顾到意图识别和实体提取,使得实体提取更加准确。
实施例三
图3是本发明实施例三所提供的一种应答模型的训练方法的流程示意图。本实施例在上述实施例的基础上,对使用应答模型训练样本对预先构建的应答模型进行训练进行了优化。如图3所示,该方法包括:
s310、基于知识图谱提取出的实体信息构建意图训练样本。
s320、基于预训练模型构建问答训练样本。
s330、根据意图训练样本和问答训练样本构建应答模型训练样本。
s340、将应答模型训练样本输入至特征提取模块中,获得特征提取模块输出的样本初始特征。
s350、将样本初始特征输入至意图识别模块中,得到意图识别模块输出的样本意图特征。
s360、将样本意图特征输入至注意力模型中,得到注意力模型输出的注意力结果。
本实施例在上述实施例的基础上,在应答模型中增加了注意力模块,具体的,应答模型还包括注意力模块,意图识别模块、注意力模块和实体提取模块顺次连接。相应的,样本意图特征经注意力模型处理后,再输入至实体提取模块中进行实体提取。
通过在意图识别模块和意图提取模块之间引入注意力机制,即在意图识别模块和意图提取模块之间添加注意力模块,进一步增强了实体提取与意图识别之间的关系约束,使得实体提取更加准确。
s370、将应答模型训练样本和注意力结果输入至实体提取模块中,得到实体提取模块输出的样本实体特征。
s380、根据样本意图特征和意图标签确定意图损失值,根据样本实体特征和实体标签确定实体损失值,根据意图损失值和实体损失值确定目标损失值。
s390、以目标损失值达到收敛条件为目标,对应答模型进行训练,得到训练好的应答模型。
本发明实施例在上述实施例的基础上,使用应答模型训练样本对预先构建的应答模型进行训练进行了具体化,通过在意图识别模块和实体提取模块之间添加注意力模块,进一步增强了实体提取与意图识别之间的关系约束,使得实体提取更加准确。
实施例四
图4是本发明实施例四所提供的一种应答方法的流程示意图。本实施例可适用于进行智能应答时的情形,尤其适用于运维场景下的智能应答时的情形。该方法可以由应答装置执行,该应答装置可以采用软件和/或硬件的方式实现,例如,该应答装置可配置于计算机设备中。如图4所示,该方法包括:
s410、获取待应答信息。
在本实施例中,待应答信息可以为用户通过语音或文字输入的信息。如用户通过语音输入“我要买电影票”,则将“我要买电影票”作为待应答信息。
s420、将待应答信息输入至预先训练的应答模型中,获得应答模型的输出结果。
在本实施例中,采用上述实施例提供的应答模型的训练方法训练得到的应答模型进行应答。具体的,将待应答信息输入至预先训练的应答模型中,获得应答模型的输出结果。其中,输出结果可以为待应答信息的处理结果。以待应答信息为“我要买电影票”为例,输出结果可以为电影票的具体信息;以待应答信息为“当前内存占用比”为例,输出结果可以为当前内存占用比的具体数值。
在本发明的一种实施方式中,应答模型包括意图识别模块、实体提取模块和会话管理模块,将待应答信息输入至预先训练的应答模型中,获得应答模型的输出结果,包括:将待应答信息输入至意图识别模块中,获得意图识别模块输出的预测意图特征;将待应答信息和预测意图特征输入至实体提取模块中,获得实体提取模块输出的预测实体特征;会话管理模块基于预测意图特征确定目标查询类别,根据目标查询类别对应的查询方式以及预测实体特征得到输出结果。可选的,通过先对待应答信息进行意图识别,得到预测意图特征,并将预测意图特征和待应答信息均作为实体提取模块的输入特征进行待应答信息中实体的提取,使得实体提取考虑到了与意图识别的强依赖性,提高了实体提取的准确度。另外,考虑到不同意图对应的查询方式不同,在进行查询时,基于预测意图特征确定目标查询类别,使用相应的查询方式进行查询,得到输出结果。
一个实施例中,根据目标查询类别对应的查询方式以及预测实体特征得到输出结果,包括:确定目标查询类别对应的目标槽位;基于预测实体特征进行槽位填充,根据槽位填充结果确定输出结果。结合上述实施例可以理解的是,不同意图下所需的槽位不同,在训练应答模型时,已经根据知识图谱设置了各意图的关联槽位,在使用应答模型进行应答时,确定目标查询类别(即意图类别)对应的目标槽位,将预测实体特征填充至目标槽位中,若目标槽位中均填充有预测实体特征,则可以直接将查询结果作为输出结果;若存在未填充的槽位,需要生成该槽位的咨询信息作为输出结果。
可选的,根据槽位填充结果确定输出结果,包括:确定未填充槽位,生成未填充槽位对应的自然语音信息,基于自然语言信息生成输出结果。示例性的,假设待应答信息为“我需要买一张万达广场电影院的电影票”,通过对待应答信息进行意图识别后,得到预测意图特征为“购买电影票”,得到预测实体特征为“万达广场电影院”、“一张”,而意图“购买电影票”对应的目标槽位为“时间”、“影院名称”、“电影名称”、“座位位置”和“数量”,将预测实体特征填充至目标槽位后,目标槽位“影院名称—万达广场电影院”,“数量—一张”,但“时间”、“电影名”和“座位位置”均为未填充槽位。则需生成“时间”、“电影名”和“座位位置”对应的自然语音信息作为输出结果。可以理解的是,未填充槽位为多个时,可以顺次生成每个未填充槽位的自然语音信息作为输出结果与用户进行交互,也可以一次生成所有未填充槽位的自然语音信息作为输出结果与用户交互。如直接生成“您要看几点的什么电影,需要坐在哪个位置”作为输出结果。
s430、根据输出结果确定应答信息并输出。
当输出结果为自然语音信息时,可以直接将输出结果作为应答信息输出;当输出结果为其他形式信息时,需要将其转换为自然语音信息作为应答信息输出。
本发明实施例通过获取待应答信息;将待应答信息输入至预先训练的应答模型中,获得应答模型的输出结果,其中,应答模型是通过本发明任意实施例所提供的应答模型的训练方法训练得到的;根据输出结果确定应答信息并输出,通过本发明任意实施例所提供的应答模型的训练方法进行训练样本的构建及应答模型的训练,提高了应答的准确率及效率。
实施例五
本实施例在上述实施例的基础上,提供了一种优选实施例。本实施例以运维机器人为例,对应答模型的训练进行说明。
图5是本发明实施例五所提供的一种运维机器人的训练及应用示意图,如图5所示,本发明实施例针对大规模的物理和虚拟服务器构建知识图谱,利用自然语言生成技术将自动抽取图谱信息完成对话聊天训练语料构建,结合自然语言理解技术对问题做意图识别设计,槽位设计,并利用表单设计的思路设计对话story,表单设计采用传统贪心算法的思路动态的定位槽位,解决了槽位冗余的问题,在story设计以及自然语言理解设计方面,根据知识图谱提取意图分类,有效限制对话状态系统中的会话状态数目,提升了后端会话动作(action)设计的可扩展性和可移植性,对于新的业务运维图谱,无需重新构建会话动作(action)。最后,结合自然语言处理技术,例如嵌套命名体识别,多标签文本分类,unilm构建了一套完整的端到端的自动化运维方案。
具体的,本发明实施例提供的运维机器人的训练包括:
(1)根据知识图谱,提取到实体,构建实体表entity1,针对每一类实体,提取其属性,构建属性表attribute1,根据知识图谱提取所有关系,构建关系表relation1
(2)根据意图,设计问题模板questions=∑questioni,其中questioni为第i个问题模板,最终生成的问题集合是所有模板的并集,针对每一个问题模板questioni,循环采样实体表中的实体entityi,选择性采样属性表中的attributei和关系表中的relationi生成完整的问题,数学关系式为:
questioni=∏entityi(∑attributei+∑relationi)
(3)结合预训练模型unilm生成问题问句,相比较于基于语言模型的生成模型,bert犹豫其双向解码无法满足语言模型要求,但是通过maskattention手动控制解码方向,从双向变为单向即可。
针对自然语言理解部分,考虑到实体的提取与意图的判断有强相关性,比如针对低峰场景的数据反馈的意图,该意图的槽位是固定的有限集合,因此对于自然语言理解中的实体提取,是有部分先验的约束(先做意图检测,后做实体提取),因此本发明利用实体与意图联合训练的方式来构建自然语言理解模块。
在训练过程中,考虑到意图和实体,设计了意图损失函数以及实体损失函数,并且将其作为最终的损失函数放到优化器中做梯度下降,以实现多任务的训练,保证了最终训练得到的自然语言理解模型可以同时兼顾到意图识别和实体提取。除此之外,引入实体与意图之间的注意力机制,增强了实体与意图之间的关系约束,其中槽位门控制了最终每个词的实体提取结果,机制如下:
g=∑v*tanh(hi+w*attentioni)
yis=softmax(whsy(hi+hi*g))
通过在计算实体的标签结果中,引入实体与意图识别之间的注意力结果,有效“指导了在自然语言理解模块的有效性。
对于会话动作以及槽位的动态检索,摒弃冗余的会话动作设计方案。针对基于银行运维知识图谱构建的机器人,其查询的流程可以抽象分为2大类,第一类是基于实体节点属性的查询,第二类是基于图谱关系的查询,其中第二种关系查询,如果知识图谱包含了n种关系,一般的设计思路是构建n个会话动作来与之匹配,但考虑到可移植性,将图谱中n种关系抽象成为k(k<<n),因此对于k中的任意关系i,其对应的实体一定是大于等于1,当用户输入问句之后,不妨设自然语言理解模块将输入识别的意图为intenti(i<k),通过图谱检索,可以快速检索到抽象的关系intenti在实际图谱所包含的关系集合s,因此会话动作可以根据s集合和用户交互,进一步完成关系定位,从而逐步确定会话的槽位,直到完成会话流程。
会话表单设计,对于一般任务型聊天机器人系统,一般会涉及多轮会话动作才能结束一个完整的会话流程(story),考虑到部分会话流程对于填槽意图并不是很好控制,并且不同意图,不同图谱关系会共享相同的填槽动作,所以本发明采用表单设计槽位的思路,一旦会话开启,整个会话流程需要的槽位将设置成为必要性槽位,直到所有槽位均被填充完成,会话动作才开始执行,本发明实施例提供的方法有效控制了填槽时不好把握意图的情况,提高了整个会话系统的准确性。
本发明实施例根据知识图谱抽取结果自动生成机器人训练语料,完成端到端的会话设计与会话构建。对于自然语言理解训练语料,将规则和深度学习一结合应用起来提高了生成的训练数据与真实机器人问答数据的相似性。并且通过一次提取图谱,可以自动抽取出对于运维机器人的所有意图以及意图所需要的槽位,省去了繁琐的业务逻辑构建过程,某种意义上讲,真正实现了根据知识图谱自动化构建运维机器人。最后通过表单设计,结合槽位设置保证了一旦意图识别正确,会话动作内部可以根据表单规则控制好会话状态。
实施例六
图6是本发明实施例六所提供的一种应答模型的训练装置的结构示意图。该应答模型的训练装置可以采用软件和/或硬件的方式实现,例如该应答模型的训练装置可以配置于计算机设备中。如图6所示,该装置包括意图样本构建模块610、问答样本构建模块620、训练样本构建模块630和应答模型训练模块640,其中:
意图样本构建模块610,用于基于知识图谱提取出的实体信息构建意图训练样本;
问答样本构建模块620,用于基于预训练模型构建问答训练样本;
训练样本构建模块630,用于根据意图训练样本和问答训练样本构建应答模型训练样本;
应答模型训练模块640,用于使用应答模型训练样本对预先构建的应答模型进行训练,得到训练好的应答模型。
本发明实施例提供的应答模型的训练装置通过意图样本构建模块610基于知识图谱提取出的实体信息构建意图训练样本;问答样本构建模块620基于预训练模型构建问答训练样本;训练样本构建模块630根据意图训练样本和问答训练样本构建应答模型训练样本;应答模型训练模块640使用应答模型训练样本对预先构建的应答模型进行训练,得到训练好的应答模型,通过根据知识图谱抽取结果自动生成训练语料,完成端到端的应答模型的会话设计与会话构建,将规则和深度学习结合应用提高了生成的应答模型训练样本与真实问答数据的相似性,一定程度上提高了生成文本的泛化能力,进而提高了应答模型的通用性。
可选的,在上述方案的基础上,意图样本构建模块610具体用于:
提取出知识图谱中的实体信息,其中实体信息包括实体、实体属性以及实体间的关系;
根据预先设置的意图问题模板和实体信息构建意图训练样本。
可选的,在上述方案的基础上,
根据questioni=∏entityi(∑attributei+∑relationi)构建意图训练样本,其中,questioni为意图训练样本,entityi为实体,attributei为实体属性,relationi为实体间的关系。
可选的,在上述方案的基础上,应答模型包括特征提取模块、意图识别模块和实体提取模块,应答模型训练模块640包括:
初始特征提取子模块,用于将应答模型训练样本输入至特征提取模块中,获得特征提取模块输出的样本初始特征;
意图特提取子模块,用于将样本初始特征输入至意图识别模块中,得到意图识别模块输出的样本意图特征;
实体特征提取子模块,用于将应答模型训练样本和样本意图特征输入至实体提取模块中,得到实体提取模块输出的样本实体特征;
损失值计算子模块,用于根据样本意图特征和意图标签确定意图损失值,根据样本实体特征和实体标签确定实体损失值,根据意图损失值和实体损失值确定目标损失值;
应答模型训练子模块,用于以目标损失值达到收敛条件为目标,对应答模型进行训练。
可选的,在上述方案的基础上,损失值计算子模块具体用于:
将意图损失值和实体损失值加权求和,得到目标损失值。
可选的,在上述方案的基础上,应答模型还包括注意力模块,意图识别模块、注意力模块和实体提取模块顺次连接,装置还包括注意力值计算模块,用于:
在将应答模型训练样本和样本意图特征输入至实体提取模块中,得到实体提取模块输出的样本实体特征之前,将样本意图特征输入至注意力模型中,得到注意力模型输出的注意力结果;
相应的,实体特征提取子模块具体用于:
将应答模型训练样本和注意力结果输入至实体提取模块中,得到实体提取模块输出的样本实体特征。
可选的,在上述方案的基础上,装置还包括槽位设置模块,用于:
根据意图训练样本中的实体标签数量设置意图训练样本对应意图的关联槽位。
本发明实施例所提供的应答模型的训练装置可执行本发明任意实施例所提供的应答模型的训练方法,具备执行方法相应的功能模块和有益效果。
实施例七
图7是本发明实施例七所提供的一种应答装置的结构示意图。该应答装置可以采用软件和/或硬件的方式实现,例如该应答装置可以配置于计算机设备中。如图7所示,该装置包括待应答信息获取模块710、应答模型预测模块720和应答信息输出模块730,其中:
待应答信息获取模块710,用于获取待应答信息;
应答模型预测模块720,用于将待应答信息输入至预先训练的应答模型中,获得应答模型的输出结果,其中,应答模型是通过本发明任意实施例所提供的应答模型的训练方法训练得到的;
应答信息输出模块730,用于根据输出结果确定应答信息并输出。
本发明实施例通过待应答信息获取模块710获取待应答信息;应答模型预测模块720将待应答信息输入至预先训练的应答模型中,获得应答模型的输出结果,其中,应答模型是通过本发明任意实施例所提供的应答模型的训练方法训练得到的;应答信息输出模块730根据输出结果确定应答信息并输出,通过本发明任意实施例所提供的应答模型的训练方法进行训练样本的构建及应答模型的训练,提高了应答的准确率及效率。
可选的,在上述方案的基础上,应答模型包括意图识别模块、实体提取模块和会话管理模块,应答模型预测模块720包括:
预测意图确定子模块,用于将待应答信息输入至意图识别模块中,获得意图识别模块输出的预测意图特征;
预测实体确定子模块,用于将待应答信息和预测意图特征输入至实体提取模块中,获得实体提取模块输出的预测实体特征;
输出结果确定子模块,用于会话管理模块基于预测意图特征确定目标查询类别,根据目标查询类别对应的查询方式以及预测实体特征得到输出结果。
可选的,在上述方案的基础上,输出结果确定子模块包括:
目标槽位确定单元,用于确定目标查询类别对应的目标槽位;
输出结果确定单元,用于基于预测实体特征进行槽位填充,根据槽位填充结果确定输出结果。
可选的,在上述方案的基础上,输出结果确定单元具体用于:
确定未填充槽位,生成未填充槽位对应的自然语音信息,基于自然语言信息生成输出结果。
本发明实施例所提供的应答装置可执行本发明任意实施例所提供的应答方法,具备执行方法相应的功能模块和有益效果。
实施例八
图8是本发明实施例八所提供的一种计算机设备的结构示意图。图8是本发明实施例八所提供的计算机设备的结构示意图。图8示出了适于用来实现本发明实施方式的示例性计算机设备812的框图。图8显示的计算机设备812仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图8所示,计算机设备812以通用计算设备的形式表现。计算机设备812的组件可以包括但不限于:一个或者多个处理器816,系统存储器828,连接不同系统组件(包括系统存储器828和处理器816)的总线818。
总线818表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器816或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(isa)总线,微通道体系结构(mac)总线,增强型isa总线、视频电子标准协会(vesa)局域总线以及外围组件互连(pci)总线。
计算机设备812典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机设备812访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器828可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(ram)830和/或高速缓存存储器832。计算机设备812可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储装置834可以用于读写不可移动的、非易失性磁介质(图8未显示,通常称为“硬盘驱动器”)。尽管图8中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如cd-rom,dvd-rom或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线818相连。存储器828可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块842的程序/实用工具840,可以存储在例如存储器828中,这样的程序模块842包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块842通常执行本发明所描述的实施例中的功能和/或方法。
计算机设备812也可以与一个或多个外部设备814(例如键盘、指向设备、显示器824等)通信,还可与一个或者多个使得用户能与该计算机设备812交互的设备通信,和/或与使得该计算机设备812能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口822进行。并且,计算机设备812还可以通过网络适配器820与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器820通过总线818与计算机设备812的其它模块通信。应当明白,尽管图中未示出,可以结合计算机设备812使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。
处理器816通过运行存储在系统存储器828中的程序,从而执行各种功能应用以及数据处理,例如实现本发明实施例所提供的应答模型的训练方法,该方法包括:
基于知识图谱提取出的实体信息构建意图训练样本;
基于预训练模型构建问答训练样本;
根据意图训练样本和问答训练样本构建应答模型训练样本;
使用应答模型训练样本对预先构建的应答模型进行训练,得到训练好的应答模型;
和/或,实现本发明实施例所提供的应答方法,该方法包括:
获取待应答信息;
将待应答信息输入至预先训练的应答模型中,获得应答模型的输出结果,其中,应答模型是通过本发明任意实施例所提供的应答模型的训练方法训练得到的;
根据输出结果确定应答信息并输出。
当然,本领域技术人员可以理解,处理器还可以实现本发明任意实施例所提供的应答模型的训练方法和/或本发明任意实施例所提供的应答方法的技术方案。
实施例九
本发明实施例九还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明实施例所提供的应答模型的训练方法,该方法包括:
基于知识图谱提取出的实体信息构建意图训练样本;
基于预训练模型构建问答训练样本;
根据意图训练样本和问答训练样本构建应答模型训练样本;
使用应答模型训练样本对预先构建的应答模型进行训练,得到训练好的应答模型;
和/或,实现本发明实施例所提供的应答方法,该方法包括:
获取待应答信息;
将待应答信息输入至预先训练的应答模型中,获得应答模型的输出结果,其中,应答模型是通过本发明任意实施例所提供的应答模型的训练方法训练得到的;
根据输出结果确定应答信息并输出。
当然,本发明实施例所提供的一种计算机可读存储介质,其上存储的计算机程序不限于如上的方法操作,还可以执行本发明任意实施例所提供的应答模型的训练方法和/或本发明任意实施例所提供的应答方法的相关操作。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于无线、电线、光缆、rf等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,程序设计语言包括面向对象的程序设计语言—诸如java、smalltalk、c++,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。