人机对话及预训练语言模型训练方法、系统及电子设备转让专利

申请号 : CN202211571108.7

文献号 : CN115587175B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 李永彬余海洋郁博文李晶阳黄非

申请人 : 阿里巴巴达摩院(杭州)科技有限公司

摘要 :

本申请实施例提供了一种人机对话及预训练语言模型训练方法、系统及电子设备,其中,人机对话系统包括:问答引擎模块和文档知识图模块;所述问答引擎模块,用于将用户的问题转换为对应的问题向量;并将所述问题向量与所述文档知识图模块中存储的文档知识图中的多个文档节点对应的特征表示进行比对,以从所述多个文档节点中确定与所述问题向量相匹配的目标文档节点,其中,所述文档知识图基于多个文档的层级结构信息和内容信息生成;以及,根据与所述问题向量相匹配的目标文档节点所对应的节点内容,为所述问题生成答案;所述文档知识图模块,用于存储所述文档知识图,并提供对所述文档知识图的访问。通过本申请实施例,提升了问答交互的准确性。

权利要求 :

1.一种人机对话方法,包括:

获得问题对应的问题向量;

根据预先生成的文档知识图中的多个文档节点对应的特征表示,从所述多个文档节点中确定与所述问题向量相匹配的目标文档节点,其中,所述文档知识图基于多个文档的层级结构信息和内容信息生成,用于对文档进行多层次的知识解析和表示;

根据与所述问题向量相匹配的目标文档节点所对应的节点内容,为所述问题生成答案;

其中,所述文档知识图通过以下方式预先生成:

获取文档的层级结构信息;

根据所述层级结构信息,获得至少部分层级中的文档节点的层级结构链和所述文档节点对应的文档内容;根据获取的、对所述文档节点的文档内容进行的预设类型的数据单元解析的解析结果,获得所述至少部分层级中的文档节点对应的文档数据单元,其中,所述预设类型的数据单元包括以下至少之一:与所述文档内容对应的三元组数据单元、与所述文档内容对应的问题‑答案对数据单元、所述文档内容与其对应的关键信息的数据单元;其中,所述层级结构链表示从文档的最高层级的节点起始,以当前节点为终点的路径上的、按照层级顺序排布的所有节点形成的链条;

根据所述文档节点及其对应的文档数据单元,构建生成对应的文档知识图。

2.根据权利要求1所述的方法,其中,所述根据预先生成的文档知识图中的多个文档节点对应的特征表示,从所述多个文档节点中确定与所述问题向量相匹配的目标文档节点,包括:根据预先生成的文档知识图中的多个文档节点对应的文档表示或者知识表示,从所述多个文档节点中确定与所述问题向量相匹配的目标文档节点;

其中,所述文档表示用于表征文档节点所对应的、携带有文档的层级结构信息的文档整体内容的语义特征;所述知识表示用于表征文档节点所对应的、携带有文档节点的层级结构链条信息的文档内容所对应的语义特征。

3.根据权利要求1或2所述的方法,其中,所述从所述多个文档节点中确定与所述问题向量相匹配的目标文档节点,包括:从所述多个文档节点中确定与所述问题向量相匹配的多个候选文档节点;

使用排序模型对所述多个候选文档节点进行排序,根据排序结果从所述多个候选文档节点中筛选出满足预设条件的文档节点作为与所述问题向量相匹配的目标文档节点。

4.根据权利要求1所述的方法,其中,

所述根据所述文档节点及其对应的文档数据单元,构建生成对应的文档知识图,包括:

将所述文档节点对应的文档数据单元挂载至所述文档节点中,以根据进行了挂载后的所述文档节点及所述文档节点对应的层级结构链生成文档知识图。

5.根据权利要求4所述的方法,其中,所述将所述文档节点对应的文档数据单元挂载至所述文档节点中,以根据进行了挂载后的所述文档节点及所述文档节点对应的层级结构链生成文档知识图,包括:根据各个层级文档节点对应的层级结构链和原文档节点内容,生成对应的节点向量并对应存储至各层级文档节点中,以生成新的节点内容;

根据各层级文档节点及各层级文档节点的新的节点内容,生成所述文档知识图。

6.一种预训练语言模型训练方法,包括:

获取训练样本集合,所述训练样本集合中包含有用于对预训练语言模型进行不同任务训练的不同类型的训练样本;

基于所述不同类型的训练样本,对所述预训练语言模型进行多任务联合训练,以获得能够输出用于生成文档数据单元的数据的模型,所述文档数据单元用于构建具有层级结构信息的文档知识图,所述文档数据单元包括以下至少之一:与所述文档内容对应的三元组数据单元、与所述文档内容对应的问题‑答案对数据单元、所述文档内容与其对应的关键信息的数据单元;所述文档知识图用于对文档进行多层次的知识解析和表示,所述文档知识图通过以下方式生成:获取文档的层级结构信息;根据所述层级结构信息,获得至少部分层级中的文档节点的层级结构链和所述文档节点对应的文档内容;通过训练完成的所述模型、对所述文档节点的文档内容进行的预设类型的数据单元解析的解析结果,获得所述至少部分层级中的文档节点对应的文档数据单元;根据所述文档节点及其对应的文档数据单元,构建生成对应的文档知识图,其中,所述层级结构链表示从文档的最高层级的节点起始,以当前节点为终点的路径上的、按照层级顺序排布的所有节点形成的链条。

7.根据权利要求6所述的方法,其中,

所述不同类型的训练样本包括:文本‑三元组类型的训练样本、答案‑问题类型的训练样本、文本‑摘要类型的训练样本、文本‑标题类型的训练样本中的部分或全部。

8.一种人机对话方法,包括:

通过交互接口接收用户输入的问题,根据所述问题生成问题请求并发送至云服务端;

接收所述云服务端针对所述问题请求反馈的答案内容,并展示或播放所述答案内容;

其中,所述答案内容由所述云服务端根据文档知识图与所述问题请求所对应的问题生成,所述文档知识图基于多个文档的层级结构信息和内容信息生成,包括:获取文档的层级结构信息;根据所述层级结构信息,获得至少部分层级中的文档节点的层级结构链和所述文档节点对应的文档内容;根据获取的、对所述文档节点的文档内容进行的预设类型的数据单元解析的解析结果,获得所述至少部分层级中的文档节点对应的文档数据单元,其中,所述预设类型的数据单元包括以下至少之一:与所述文档内容对应的三元组数据单元、与所述文档内容对应的问题‑答案对数据单元、所述文档内容与其对应的关键信息的数据单元;

将所述文档节点对应的文档数据单元挂载至所述文档节点中,以根据进行了挂载后的所述文档节点及所述文档节点对应的层级结构链生成文档知识图,所述文档知识图用于对文档进行多层次的知识解析和表示,所述层级结构链表示从文档的最高层级的节点起始,以当前节点为终点的路径上的、按照层级顺序排布的所有节点形成的链条。

9.一种人机对话系统,包括:问答引擎模块、和文档知识图模块;

其中:

所述问答引擎模块,用于将用户的问题转换为对应的问题向量;并将所述问题向量与所述文档知识图模块中存储的文档知识图中的多个文档节点对应的特征表示进行比对,以从所述多个文档节点中确定与所述问题向量相匹配的目标文档节点,其中,所述文档知识图基于多个文档的层级结构信息和内容信息生成,用于对文档进行多层次的知识解析和表示;以及,根据与所述问题向量相匹配的目标文档节点所对应的节点内容,为所述问题生成答案;

所述文档知识图模块,用于获取文档的层级结构信息;根据所述层级结构信息,获得层级结构链和各层级对应的文档内容;通过训练完成的预训练语言模型,对各层级的文档内容进行预设类型的数据单元解析,并根据解析结果,获得各层级中的至少部分层级对应的文档数据单元,其中,所述预设类型的数据单元包括以下至少之一:与所述文档内容对应的三元组数据单元、与所述文档内容对应的问题‑答案对数据单元、所述文档内容与其对应的关键信息的数据单元;根据所述文档数据单元,构建生成对应的文档知识图;以及,存储所述文档知识图,并提供对所述文档知识图的访问;其中,所述层级结构链表示从文档的最高层级的节点起始,以当前节点为终点的路径上的、按照层级顺序排布的所有节点形成的链条。

10.根据权利要求9所述的系统,其中,所述问答引擎模块,将所述问题向量与所述文档知识图模块中存储的文档知识图中的多个文档节点对应的文档表示或者知识表示进行比对,从所述多个文档节点中确定与所述问题向量相匹配的目标文档节点;其中,所述文档表示用于表征文档节点所对应的、携带有文档的层级结构信息的文档整体内容的语义特征;

所述知识表示用于表征文档节点所对应的、携带有文档节点的层级结构链条信息的文档内容所对应的语义特征。

11.根据权利要求9或10所述的系统,其中,

所述系统还包括:预训练模块,用于基于训练样本,对预训练语言模型进行多任务联合预训练,以获得能够输出与训练样本对应的预设类型的数据单元解析结果的模型。

12.一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;

所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如权利要求1‑8中任一项所述的方法对应的操作。

说明书 :

人机对话及预训练语言模型训练方法、系统及电子设备

技术领域

[0001] 本申请实施例涉及人工智能技术领域,尤其涉及一种人机对话方法、预训练语言模型训练方法、人机对话系统及电子设备。

背景技术

[0002] 人机对话是人与机器的一种新型交互方式,其目标是使机器能够理解和运用人类的自然语言实现人机之间的通信,以使机器能代替人类的部分脑力劳动,起到延伸人类大脑的作用。而基于机器阅读理解(Machine Reading Comprehension,MRC)的人机对话交互,则是其中重要的一个分支。
[0003] 机器阅读理解是一种利用算法,使计算机理解文档语义并能够回答与文档相关的问题的技术。目前,基于机器阅读理解的人机对话多通过机器阅读理解技术,针对用户的问题从文档中抽取一个片段作为答案。然而,在实际应用中,答案的生成主要是基于关键词,如,根据问题中的关键词从文档中检索出一个或多个片段内容,基于这些内容生成答案。但一方面,检索出的内容可能并非有效答案;另一方面,若将多段内容组合在一起生成答案,该答案可能存在较为严重的语法问题而无法被理解。
[0004] 可见,现有的基于机器阅读理解的人机对话交互方式中,因答案的生成不可控,容易生成答非所问的片段或不可理解的片段,造成人机对话效率较低。

发明内容

[0005] 有鉴于此,本申请实施例提供一种人机对话方案,以至少部分解决上述问题。
[0006] 根据本申请实施例的第一方面,提供了一种人机对话方法,包括:获得问题对应的问题向量;根据预先生成的文档知识图中的多个文档节点对应的特征表示,从所述多个文档节点中确定与所述问题向量相匹配的目标文档节点,其中,所述文档知识图基于多个文档的层级结构信息和内容信息生成;根据与所述问题向量相匹配的目标文档节点所对应的节点内容,为所述问题生成答案。
[0007] 根据本申请实施例的第二方面,提供了一种预训练语言模型训练方法,包括:获取训练样本集合,所述训练样本集合中包含有用于对预训练语言模型进行不同任务训练的不同类型的训练样本;基于所述不同类型的训练样本,对所述预训练语言模型进行多任务联合训练,以获得能够输出用于生成文档数据单元的数据的模型,所述文档数据单元用于构建具有层级结构信息的文档知识图。
[0008] 根据本申请实施例的第三方面,提供了另一种人机对话方法,包括:通过交互接口接收用户输入的问题,根据所述问题生成问题请求并发送至云服务端;接收所述云服务端针对所述问题请求反馈的答案内容,并展示或播放所述答案内容;其中,所述答案内容由所述云服务端根据文档知识图与所述问题请求所对应的问题生成,所述文档知识图基于多个文档的层级结构信息和内容信息生成。
[0009] 根据本申请实施例的第四方面,提供了一种人机对话系统,包括:问答引擎模块、和文档知识图模块;其中:所述问答引擎模块,用于将用户的问题转换为对应的问题向量;并将所述问题向量与所述文档知识图模块中存储的文档知识图中的多个文档节点对应的特征表示进行比对,以从所述多个文档节点中确定与所述问题向量相匹配的目标文档节点,其中,所述文档知识图基于多个文档的层级结构信息和内容信息生成;以及,根据与所述问题向量相匹配的目标文档节点所对应的节点内容,为所述问题生成答案;所述文档知识图模块,用于存储所述文档知识图,并提供对所述文档知识图的访问。
[0010] 根据本申请实施例的第五方面,提供了一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如第一方面所述方法对应的操作。
[0011] 根据本申请实施例的第四方面,提供了一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现如第一方面或第二方面或第三方面所述的方法。
[0012] 根据本申请实施例提供的方案,在进行基于文档的人机对话交互时,使用了预先生成的文档知识图。该文档知识图基于多个文档的结构信息和内容信息生成,其中,结构信息表征了文档的层级结构。一般来说,大部分文档都具有层级结构,例如,一种自顶向下的文档层级结构可能依次为:标题、副标题、段落、句子的层级结构等。基于文档的层级结构生成的文档知识图可以对文档进行多层次的知识解析和表示。由此,使得后续基于该文档知识图确定与问题向量相匹配的文档内容时,能够将问题向量匹配至具体的文档层级相对应的内容中,使得获得的文档内容更为精准和合理,避免生成答非所问或不可理解的文档片段,提升了问答交互的准确性和人机对话交互的效率。

附图说明

[0013] 为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
[0014] 图1为适用本申请实施例方案的示例性系统的示意图;
[0015] 图2A为根据本申请实施例一的一种人机对话系统的结构框图;
[0016] 图2B为图2A所示实施例中的一个文本示例图;
[0017] 图2C为图2B所示文本对应的层次结构信息的示意图;
[0018] 图2D为图2A所示实施例中的一种示例性预训练语言模型的结构示意图;
[0019] 图3为根据本申请实施例二的一种预训练语言模型训练方法的步骤流程图;
[0020] 图4A为根据本申请实施例三的一种人机对话方法的步骤流程图;
[0021] 图4B为图4A所示实施例中的一种场景示例的示意图;
[0022] 图5为根据本申请实施例四的一种电子设备的结构示意图。

具体实施方式

[0023] 为了使本领域的人员更好地理解本申请实施例中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请实施例一部分实施例,而不是全部的实施例。基于本申请实施例中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于本申请实施例保护的范围。
[0024] 下面结合本申请实施例附图进一步说明本申请实施例具体实现。
[0025] 图1示出了一种适用本申请实施例方案的示例性系统。如图1所示,该系统100可以包括云服务端102、通信网络104和/或一个或多个用户设备106,图1中示例为多个用户设备。
[0026] 云服务端102可以是用于存储信息、数据、程序和/或任何其他合适类型的内容的任何适当的设备,包括但不限于分布式存储系统设备、服务器集群、计算云服务端集群等。在一些实施例中,云服务端102可以执行任何适当的功能。例如,在一些实施例中,云服务端
102可以执行基于文档的人机对话任务。作为可选的示例,在一些实施例中,云服务端102中存储有文档知识图,该文档知识图基于文档的层级结构信息和内容信息生成,云服务端102可以基于该文档知识图,从中确定与用户的问题相匹配的节点的节点内容,以最终为问题生成答案。作为另一示例,在一些实施例中,云服务端102还可以自行构建生成该文档知识图。作为可选的示例,在一些实施例中,云服务端102中设置有人机对话系统,通过该人机对话系统的构建和使用,实现人机对话功能。作为可选的示例,在一些实施例中,该人机对话系统至少包括在线部分的问答引擎模块和离线部分的文档知识图模块。但不限于此,还可以包括智能文档模块和预训练模块。这些模块的具体功能和实现将在下文中详细描述。在一些实施例中,云服务端102可以接收用户设备106发送来的问题,通过人机对话系统进行处理以获得与问题对应的答案内容,并将该答案内容反馈给用户设备106。
[0027] 在一些实施例中,通信网络104可以是一个或多个有线和/或无线网络的任何适当的组合。例如,通信网络104能够包括以下各项中的任何一种或多种:互联网、内联网、广域网(Wide Area Network,WAN)、局域网(Local Area Network,LAN)、无线网络、数字订户线路(Digital Subscriber Line,DSL)网络、帧中继网络、异步转移模式(Asynchronous Transfer Mode,ATM)网络、虚拟专用网(Virtual Private Network,VPN)和/或任何其它合适的通信网络。用户设备106能够通过一个或多个通信链路(例如,通信链路112)连接到通信网络104,该通信网络104能够经由一个或多个通信链路(例如,通信链路114)被链接到云服务端102。通信链路可以是适合于在用户设备106和云服务端102之间传送数据的任何通信链路,诸如网络链路、拨号链路、无线链路、硬连线链路、任何其它合适的通信链路或此类链路的任何合适的组合。
[0028] 用户设备106可以包括适合于与用户交互的任何一个或多个用户设备。在一些实施例中,用户可以通过用户设备106输入问题,用户设备106通过通信网络104将该问题发送给云服务端102,由云服务端102对该问题进行处理并最终获得与该问题相匹配的答案内容,将该答案内容再通过通信网络104返回给用户设备106。用户设备106再将该答案内容显示或播放给用户。在一些实施例中,用户设备106可以包括任何合适类型的设备。例如,在一些实施例中,用户设备106可以包括移动设备、平板计算机、膝上型计算机、台式计算机、可穿戴计算机、游戏控制台、媒体播放器、车辆娱乐系统和/或任何其他合适类型的用户设备。
[0029] 基于上述系统,以下通过多个实施例对本申请的方案进行说明。
[0030] 为便于理解本申请实施例的方案,以下首先对本申请实施例中的人机对话系统进行说明。
[0031] 实施例一
[0032] 参照图2A,示出了根据本申请实施例一的一种人机对话系统的结构框图。
[0033] 由图2A可见,本申请实施例中的人机对话系统至少包括问答引擎模块202和文档知识图模块204。问答引擎模块202可以支持对用户提出的问题的在线处理,而文档知识图模块204则可以预先离线构建文档知识图。
[0034] 其中,问答引擎模块202可以将用户的问题转换为对应的问题向量;并将问题向量与文档知识图模块204中存储的文档知识图中的多个文档节点对应的特征表示进行比对,以从多个文档节点中确定与问题向量相匹配的目标文档节点;以及,根据与问题向量相匹配的目标文档节点所对应的节点内容,为所述问题生成答案。其中,文档知识图基于多个文档的层级结构信息和内容信息生成,文档知识图模块204可以存储文档知识图,并提供对文档知识图的访问。
[0035] 用户的问题可以为通过用户设备提供的任意途径输入的问题,例如,可以为通过问题输入界面中的输入框输入的文本问题,或者,为通过界面中的搜索框输入的搜索问题,或者,为用户通过语音输入的问题,即语音问题。进而由用户设备将用户的问题发送给云服务端。当用户的问题为文本问题时,可以直接向云服务端发送;当用户的问题为语音问题时,也可直接向云服务端发送,由云服务端将语音问题转换为文本问题;或者,也可由用户设备将语音问题转换为文本问题后再向云服务端发送。进一步地,云服务端在得到文本问题后,可将文本问题转换为问题向量。将用户的文本问题转换为问题向量的具体方式可由本领域技术人员根据实际需求采用灵活的转换方式实现,在一种可行方式中,可以采用诸如word2vec的方式,将用户的文本问题转换为问题向量;在另一种可行方式中,可以采用诸如语义提取的方式,提取文本问题的语义作为问题向量。但不管哪种方式,均适用于本申请实施例的方案。进而,可将该问题向量与文档知识图模块204中的文档知识图的节点对应的特征表示进行比较和匹配。其中,节点的特征表示用于表征该节点的特征,至少可以包括层级结构特征及文档内容特征。
[0036] 文档知识图模块204中存储有预先生成的文档知识图,该文档知识图基于多个文档构建。其中,针对每个文档,提取出其对应的层级结构信息。文档的层级结构信息意指文档的层次结构。示例性地,自顶向下可以为:标题‑副标题‑段落‑句子,或者,可以为:标题‑第一级子标题‑第二级子标题‑……第N级子标题‑段落‑句子,等等。但不限于此,某些文档也可能仅有一级标题,甚至无标题等,同样可适用于本申请实施例的方案。
[0037] 一个具体文档示例如图2B所示,最上方的粗体文字“人物介绍”即为该文本的标题,也可称为一级标题。其下方的“人物一”为标题下的第一级子标题,为统一标称,在本示例中也将其称为二级标题。“AAA”为“人物一”对应的文本内容。“人物一”下的“基本信息”、“个人爱好”、“成长故事”均为三级标题,而在各个三级标题下又存在着一个或多个段落,如各个三级标题下的虚线框中所示,每个段落又包括一个或多个句子。需要说明的是,本申请实施例中,若无特殊说明,“多个”、“多种”等与“多”有关的数量,均意指两个及两个以上。
[0038] 基于此,可提取出该文档的层级结构信息。在一种可行方式中,本申请实施例的人机对话系统还包括智能文档模块,用于对多个文档进行解析,获得各个文档对应的层级结构信息。该多个文档可通过大数据采集获得,如通过网页内容获得、或者为文档数据库中的文档,或者为其它方式获取的文档,等等,本申请实施例对多个文档的获取方式不作限制。
[0039] 在一种具体实现方式中,智能文档模块可基于针对文档的机器学习模型实现,该机器学习模型可以对包括网页、文本文件等的文档进行解析,得到对应的文档内容(文本内容)、文档内容的位置信息和/或标题的位置信息、文档的层级结构信息,等。本申请实施例中,对该机器学习模型的具体实现结构及处理过程不作限制,只需能够实现上述功能即可。在具体实现时,该机器学习模型可以先将文档转化为图片格式,并采用识别算法如基于光学字符识别(Optical Character Recognition,OCR)技术和object detection(目标检测)技术识别出文档的页面上的标题、段落等文本块,并给出其类型预测,类型如标题、段落等。
可选地,预测出的类型还可以有页眉页脚、图片、表格等。然后,该机器学习模型可以基于预测出的各文本块的类型,构建文本块间逻辑结构分类模型,从而得到文本块间的父子关系,例如,段落文本块是其标题文本块的子模块,等等。从而,得到文档内部文本块之间的层级结构信息,也即该文档的层次结构信息。仍以前述图2B中所示文档为示例,得到的该文档的层级结构信息可如图2C所示。由图2C中可见,文档中的标题等均以节点形式表示,而标题对应的文档内容可挂载于其所属的标题下,可以以不同类型的数据形式作为节点数据的一部分。
[0040] 但是,该智能文档模块解析出的层级结构信息中,对于有文档内容的那些节点,其挂载的文档内容仍为其下对应的段落文本等,文本粒度仍较粗。为了能够更准确地表征不同节点下的文档内容的文本特征,在一种可行方式中,可以对文档内容进行更细粒度的处理,包括:通过文档知识图模块,获取文档的层级结构信息;根据层级结构信息,获得部分或全部层级中的节点的层级结构链和所述节点对应的文档内容;对所述节点的文档内容进行预设类型的数据单元解析,并根据解析结果,获得所述节点各自对应的文档数据单元;进而,根据各节点及各节点对应的文档数据单元,构建生成对应的文档知识图。如,将各节点对应的文档数据单元对应挂载至各节点中,从而根据进行了挂载后的节点及节点对应的层级结构链生成文档知识图。其中,对于不具有文档内容的那些层级,可将其文档内容设置为空或默认字符或不对该部分节点进行文档内容处理。其中,预设类型的数据单元可以包括以下至少之一:与文档内容对应的三元组数据单元、与文档内容对应的问题‑答案对(Question‑Answer,QA)数据单元、文档内容与其对应的关键信息的数据单元。由此可见,文档数据单元可为表示一定形式的文档内容间关系(三元组、QA对、文档内容‑关键信息等)的数据单位,通过这些文档数据单元,一方面,结合层级结构信息,可以对各种类型的文档进行有效组织和管理;另一方面,通过这些文档数据单元,可以生成有效应对各种问题的数据,以提高后续针对用户问题进行答案检索的速度和效率。
[0041] 上述过程中,层级结构链意指从文档的最高层级的节点如一级标题所在的节点起始,以当前节点为终点的路径上的、按照层级顺序排布的所有节点形成的链条。该层级结构链中的至少部分节点对应有文档内容,在通过对这些节点对应的文档内容进行预设类型的文档数据单元解析,获得解析结果,即解析获得相应的文档数据单元后,可将获得的文档数据单元挂载至其对应的层级结构链中文档内容所对应的层级节点上,以形成最终的文档知识图。
[0042] 为了能够实现对文档内容的高效、精准解析,在一种可行方式中,可通过预训练模块中已训练完成的预训练语言模型,对至少部分层级中的节点的文档内容进行预设类型的数据单元解析,并根据解析结果,获得所述节点对应的文档数据单元。其中,预训练模块用于基于训练样本,对预训练语言模型进行多任务联合预训练,以获得能够输出与训练样本对应的能够生成预设类型的数据单元的数据的模型。该预训练语言模型可以为任意适当的能够进行多任务的文档处理的模型,包括但不限于基于编码器‑解码器结构的预训练语言模型。
[0043] 在一个示例中,如图2D所示,该预训练语言模型包括:编码器‑解码器‑多任务输出层。其中,编码器用于接收输入的文本并将其编码为编码向量;解码器用于对编码向量进行解码,以解码为相应任务的向量;多任务输出层用于将相应任务的向量输出为对应的任务结果。
[0044] 示例性地,以多任务分别为知识发现任务、知识匹配任务和问题生成任务为例。其中,知识发现任务用于从文档内容中发现所需要的内容,如,信息提取、常见问题(Frequently Asked Questions, FAQ)知识点挖掘、文本表示等;知识匹配任务用于判断输入的两部分文本,本申请实施例中为长文本和短文本,如文本‑摘要、文本‑标题等,是否匹配;问题生成任务用于基于文本生成相对应的问题。例如,当输入的文本为大段文本内容,且预训练语言模型识别出其为知识发现任务时,如文档三元组提取任务时,则预训练语言模型会输出与该文本对应的三元组;当输入的文本中设置有相应的文本摘要或者标题,且预训练语言模型识别出其为知识匹配任务时,则会输出该文本是否与文本摘要或标题相匹配的匹配结果;当输入的文本中包括有可用于答案生成的答案文本,且预训练语言模型识别出其为问题生成任务时,则会输出与该文本对应的问题。
[0045] 该预训练语言模型对多种不同任务的处理是基于其在预训练阶段进行的多任务训练实现的,在训练阶段,可以收集大量互联网无标数据、通过模型或远程监督生成的伪标注数据、公开的任务型人工精标数据等作为预训练语言模型的训练样本。最终生成的预训练样本主要包括三部分:用于知识发现任务的知识发现数据、用于问题生成任务的QA(Question‑Answer)数据、和用于知识匹配任务的文本匹配数据。其中,针对知识发现任务,知识发现数据可以来源于使用实体链指工具对齐中文维基百科和维基知识图谱,从而得到文本‑三元组的大量对齐数据,在预训练语言模型的训练阶段,模型输入对齐后的文本‑三元组中的文本,以文本‑三元组中的三元组为监督条件,期望模型预测输出三元组;针对问题生成任务,QA数据可以来源于机器阅读理解模型自动生成的机器阅读理解数据,包括文本‑答案‑问题的大量对齐数据,预训练语言模型的训练阶段,模型输入文本‑答案‑问题中的文本和答案,问题作为监督条件,期望模型预测输出问题;针对知识匹配任务,文本匹配数据可以来源于公开的文本摘要和文本标题数据,包括文本‑摘要和文本‑标题的大量对齐数据,预训练语言模的训练阶段,模型输入文本‑摘要和文本‑标题,期望模型输出它们是否匹配的结果。训练过程中混合上述三类数据,在训练样本前使用用于指示训练任务的任务提示符,与待输入模型的训练样本一起,采用统一的序列生成范式(如任务提示符‑文本内容‑任务指示信息‑问题信息),端到端建模。可选地,预训练语言模型具体可采用基于T5架构的编码器‑解码器结构,该T5架构的预训练语言模型的具体结构可参照相关技术,在此不再赘述。
[0046] 其中,任务提示符可由本领域技术人员根据实际需求设置,可有效表征相对应的任务即可。与文本对应的三元组可采用常规三元组结构,如{第一实体,实体关系,第二实体},但不限于此,在实际应用中,本领域技术人员也可根据实际需要,设置相应的三元组即可。此外,文本摘要和文本标题数据的文本数量都远小于其所属的文本整体,因此,知识匹配任务也可看作是判断长‑短文本是否匹配的任务。
[0047] 在一个简单示例中,待输入预训练语言模型的文本可以为“AAA于2020年10月1日正式成立AAA何时成立”,其中,<>中的为描述符,“d”表示文档文本,“a”表示问题,则输入模型的序列生成范式可以为“

知识发现

AAA于2020年10月1日正式成立AAA何时成立”。其中,“p”表示任务指示符。
[0048] 对应于图2D中所示的预训练语言模型的输入,“

知识发现

”对应于“Prompt”(任务提示符)部分的输入,“AAA于2020年10月1日正式成立”对应于“Document”(文档文本)部分的输入,“AAA何时成立”对应于“Utterance”(问题信息)部分的输入。因该任务为知识发现任务,需要从文本中确定AAA的成立时间,因此,对应于“Scheme”(任务指示信息)部分的输入为待发现的任务提示信息,如“founded‑time”。上述各部分内容拼接后输入预训练语言模型的编码器,生成对应的编码向量。通过任务提示符确定当前输入用于实现知识发现任务,则解码器会结合问题“AAA何时成立”的信息,来重点提取与该问题的答案有关的特征。进而,提取的该特征被输出至知识发现任务对应的分支,针对“AAA何时成立”来预测答案,基于该预测答案及预设的损失函数以及该文本对应的标记数据(“2020年10月1日”)获得对应的损失值,基于该损失值即可对该预训练语言模型进行本次的参数调整。知识匹配任务和问题生成任务也类似,但不管是何种任务,其参数调整都会涉及预训练语言模型的所有任务分支,但可采用不同的权重来进行参数调整。例如,当前任务对应的分支的参数调整权重大于其它任务分支。上述训练过程迭代往复,直至完成预训练语言模型的训练。该预训练语言模型完成训练后,后续即可协助完成文档内容的数据单元解析,从而为构建文档知识图提供更细粒度的节点数据。在后续的推理阶段,训练完成的预训练语言模型可根据输入的文档的文本内容,来确定该文档对应的任务,并输出该任务对应的结果,以生成文档数据单元的具体数据。
[0049] 例如,针对某一个层级节点对应的文档内容,通过训练完成的预训练语言模型对其进行文档数据单元解析,示例性地,如分别解析出三元组、问题Q、和文本‑摘要或文本‑标题的匹配信息。则,进一步地,可基于三元组、结合模型输入的答案A和模型输出的与该答案A对应的问题Q而生成的QA对,以及,在根据匹配信息确定文本‑摘要或文本‑标题匹配时生成的关键信息(如与文本对应的摘要或与文本对应的标题)生成文档数据单元,然后,将这些文档数据单元存储入对应的节点的属性字段,由此,实现将文档数据单元挂载至层级节点中,后续基于这些数据可进行更为准确的问题匹配。
[0050] 此外,针对问题生成任务,一种可行方式中,在预训练语言模型输出问题后,还可以对该问题进行变形和/或泛化处理,例如,可以通过问题变换模型,以预训练语言模型输出的问题为问题变换模型的输入,以不同风格的类似问题为输出。示例性地,对问题的变形或泛化可实现如,提问词的变化、提问方式的变化等。或者可以认为,基于预训练语言模型输出的问题的关键信息如关键词,生成多种不同的、且基于该关键词的问题。比如,预训练语言模型输出的问题为“AAA何时成立”,则经过变形或泛化处理后,获得的其它多个问题可以为:“AAA是什么时候成立的”、“AAA哪年成立的呀”、“我想知道AAA的成立时间”,等等。由此,可以提升人机对话系统针对不同形式但意图相同的问题的处理能力和泛化能力,提高问答交互的有效性和兼容性。
[0051] 进一步地,为了便于与问答引擎模块发送来的问题向量相匹配,在一种可行方式中,还可以为文档知识图中的节点生成相应的向量。其中,对于文档的一级节点如标题节点,可以为其生成与文档整体有关的文档表示,也即,可基于文档的整体层级结构信息和文档整体内容,进行特征提取,生成可表征文档全局特征的文档表示。而对于文档的非一级节点,如副标题或子标题节点,则可根据该节点的层级结构链和节点内容,进行特征提取并生成对应的向量,即该节点的知识表示。该知识表示既携带有从文档的一级节点至当前节点的至少一级层级结构的信息,又携带有当前节点的文档内容的特征信息。不管是文档表示还是知识表示,均可挂载于其所属的节点下,如以属性数据的形式挂载于其所属的节点下等。也即,此种情况下,在将节点对应的文档数据单元挂载至节点中,以生成文档知识图时,会根据各个层级节点对应的层级结构链和原节点内容,生成对应的节点向量并对应存储至各层级节点中,以生成新的节点内容;再根据各层级节点及各层级节点的新的节点内容,生成文档知识图。
[0052] 在一种可行方式中,文档知识图中的节点可采用JSON格式存储。JSON(JavaScript Object Notation, JS对象简谱)是一种轻量级的、KEY‑VALUE存储结构的格式,它采用完全独立于编程语言的文本格式来存储和表示数据。使用JSON格式存储数据时,一个数据对象以“{”左括号开始,“}”右括号结束,每个“名称”后跟一个“:”冒号;KEY‑VALUE对(键‑值对)之间使用“,”逗号分隔。采用JSON格式可以使得数据存储更为灵活,但不限于此,在实际应用中,其它的数据存储格式也同样适用于本申请实施例的方案。基于此,节点的各种属性数据,如文档数据单元的数据可以方便地挂载于节点上。
[0053] 需要说明的是,构建完成的文档知识图可以一经构建长期使用,但在一种可选方式中,还可以对该文档知识图进行定期或不定期更新,以使该文档知识图能够不断丰富和更新知识内容,提供更为准确和及时的答案。该更新过程可使用新的文档,采用前述的文档知识图的构建方式,为该新的文档生成相应的节点并挂载至已有文档知识图中。该更新过程也可使用经过更新的旧文档,如文档中部分内容被更新后,基于该更新后的文档按照前述文档知识图的构建方式,重新生成该文档的节点并挂载至已有文档知识图中。由此,保证了文档知识图的实时性和知识丰富性。
[0054] 当文档知识图的节点具有对应的文档表示或知识表示时,则问答引擎模块可以将问题向量与文档知识图模块中存储的文档知识图中的多个文档节点对应的文档表示或者知识表示进行比对,从多个文档节点中确定与问题向量相匹配的目标文档节点。如前所述,文档表示用于表征文档节点所对应的、携带有文档的层级结构信息的文档整体内容的语义特征;知识表示用于表征文档节点所对应的、携带有节点的层级结构链条信息的文档内容所对应的语义特征。虽然对于某个文档来说,其可能既存在具有文档表示的节点,也具有知识表示的节点,但在实际应用中,可以择一使用也可结合使用。也即,可将问题向量与文档表示进行匹配,也可将问题向量与知识表示进行匹配,或者,也可以将问题向量既与文档节点匹配也与知识表示匹配。但因充分考虑了文档的层级结构信息,即使仅与文档表示匹配或仅与知识表示匹配,也可获得较为准确的匹配结果。
[0055] 虽然问答引擎模块基于问题向量和文档知识图即可为问题确定匹配的文档内容,以生成相应的答案。但为了提高人机交互效率,同时尽可能避免异常情况为人机交互带来的不良影响,在一种可行方式中,问答引擎模块可以包括:文档召回模块、排序模块、知识选择模块和机器阅读理解模块。
[0056] 其中:
[0057] 文档召回模块,用于将问题向量与文档知识图模块中存储的文档知识图中的多个文档节点对应的特征表示(文档表示和/或知识表示)进行比对,获得相匹配的多个候选文档节点。该比对包括但不限于通过相似度来进行比对。
[0058] 排序模块,用于使用排序模型对多个候选文档节点进行排序,根据排序结果从多个候选文档节点中筛选出满足预设条件的文档节点作为与问题向量相匹配的目标文档节点。
[0059] 知识选择模块,用于从与问题向量相匹配的目标文档节点所对应的文档内容中判断是否存在与问题相符合的答案内容;若存在,则获得该答案内容。
[0060] 机器阅读理解模块,用于在知识选择模块未能确定与问题相符合的答案内容时,从预设的文档中为问题确定答案内容。
[0061] 通过文档召回模块可以召回与问题向量相匹配的多个候选文档节点,但这多个候选文档节点中也可能存在着与问题向量匹配度不高的节点,因此,使用排序模块对多个候选文档节点按照匹配度进行排序后,再从中选择出满足预设条件的文档节点作为目标文档节点。其中,预设条件可以由本领域技术人员根据实际需求设定,如,可以是排名在前N位的节点,或者,匹配度大于预设匹配度的节点,等等,本申请实施例对此不作限制。可选地,排序模块可基于Ranker模型实现。Ranker模型预测的目标并不是被选择或者不被选择这样的二分类问题, 而是一个列表的整体排列顺序,以优化排序结果。示例性地,该Ranker模型可采用LTR (Learning To Rank,排序学习)排序算法进行排序,该算法的具体实现可参照相关技术中的描述,在此不再赘述。在传统排序算法不同的是,本申请实施例中,排序算法针对的对象是携带有文档层级结构信息的节点的数据,而非单纯的文档内容。
[0062] 此外,虽然知识选择模块基本上可以为问题确定相符合的答案内容,但为了避免偶发异常情况,本申请实施例的问答引擎模块还设置了机器阅读理解模块即MRC模块,以作为兜底。该MRC模块可采用常规MRC模型和结构实现,本申请实施例对此也不作限制。
[0063] 对于文档召回模块,其至少可基于问题向量与文档知识图中节点的文档表示和/或知识表示的匹配度来进行召回。但不限于此,其还可以基于传统方式,即,问题向量与文档的文档内容对应的向量直接匹配的方式进行召回,和/或,通过预设策略进行策略召回,其中,预设策略包括但不限于功能性召回策略、热点召回策略、个性化召回策略等,本申请实施例中,对上述策略的具体实现不作限制。此外,本领域技术人员也可根据实际需求,增加其它召回策略,或者,将上述召回策略中的部分或全部替换为其它的召回策略。
[0064] 由上,通过智能文档模块获得文档的基本的层级结构;通过训练完成的预训练语言模型对文档进行文档数据单元解析,以在文档的基本层级结构的基础上,细化结构中各个节点的数据,从而,能够充分挖掘文档里可以用于问答的知识,让人机对话系统对产生的答案有控制能力,并且能够为后续精准匹配提供数据基础;通过文档知识图模块基于文档的基本层级结构和文档细化获得的文档数据单元,构建生成文档知识图;通过问答引擎模块接收用户问题,并基于文档知识图获得与问题相对应的答案。由此,可以大幅提升文档问答的准确性。
[0065] 通过本实施例的人机对话系统,基于问答引擎模块中的问答引擎和文档知识图模块中的文档知识图进行人机对话。在进行人机对话交互时,区别于传统方式中将文档仅看做长文本,通过文档知识图将文档按其内容的逻辑层级结构形成粗粒度的知识骨架,再在该知识骨架的基础上,通过添加三元组、QA等细粒度的文档数据单元的知识来丰富知识骨架内容,最终建模为文档知识图,形成文档的多层次知识解析和表示。将其应用于基于文档的问答服务,可取得更为高效的人机对话交互效果。而通过包括问题引擎模块和文档知识图模块在内的人机对话系统,实现了从文档到细粒度问答的整体交互流程,交互高效且准确,有效提升了人机对话交互效率。
[0066] 实施例二
[0067] 基于上述系统,本申请实施例中还提供了一种预训练语言模型训练方法,图3示出了该方法的步骤流程图。以下,结合图3和图2D,对该方法进行说明。
[0068] 如图3所示,该预训练语言模型训练方法包括以下步骤:
[0069] 步骤S302:获取训练样本集合。
[0070] 该训练样本集合用于对预训练语言模型进行训练,训练样本集合中包含有用于对预训练语言模型进行不同任务训练的不同类型的训练样本。
[0071] 本实施例中,不同类型的训练样本包括:文本‑三元组类型的训练样本、答案‑问题类型的训练样本、文本‑摘要类型的训练样本、文本‑标题类型的训练样本中的部分或全部。相对应地,不同任务包括:知识发现任务、问题生成任务和知识匹配任务中的部分或全部。
[0072] 上述不同类型的训练样本可基于收集的大量互联网无标数据、通过模型或远程监督生成的伪标注数据、公开的任务型人工精标数据等获得。基于这些数据最终生成的预训练样本主要包括:
[0073] (1)用于知识发现任务的文本‑三元组类型的训练样本,也称为知识发现任务样本数据。其可以来源于使用实体链指工具对齐中文维基百科和维基知识图谱,得到文本‑三元组的大量对齐数据作为用于预训练语言模型的训练样本。针对该训练样本,输入模型的为对齐后的文本‑三元组中的文本,以文本‑三元组中的三元组为模型训练的监督条件,期望模型基于输入的文本预测输出三元组。
[0074] (2)用于问题生成任务的答案‑问题类型的训练样本,也称为QA(Question‑Answer)样本数据。其可以来源于传统机器阅读理解模型自动生成的机器阅读理解数据,包括文本‑答案‑问题的大量对齐数据,将其作为用于预训练语言模型的训练样本。针对该训练样本,输入模型的为文本‑答案‑问题中的文本和答案,以其中的问题作为模型训练的监督条件,期望模型基于输入的文本和答案预测输出问题。
[0075] (3)用于知识匹配任务的文本‑摘要类型的训练样本和/或文本‑标题类型的训练样本,也称为文本匹配样本数据。其可以来源于任何公开的文本摘要和文本标题数据,包括文本‑摘要和文本‑标题的大量对齐数据,,将其作为用于预训练语言模型的训练样本。针对该训练样本,输入模型的为文本‑摘要或文本‑标题,期望模型输出它们是否匹配的结果。
[0076] 步骤S304:基于不同类型的训练样本,对预训练语言模型进行多任务联合训练,以获得能够输出用于生成文档数据单元的数据的模型。
[0077] 其中,文档数据单元用于构建具有层级结构信息的文档知识图,其可呈现为表示一定形式的文档内容间关系(三元组、QA对、文档内容‑关键信息等)的数据单位。
[0078] 本实施例中, 多任务联合训练可以包括知识发现任务、知识匹配任务和问题生成任务的联合训练。在训练过程会混合上述不同类型的训练样本,在训练样本前使用用于指示训练任务的任务提示符,与待输入模型的训练样本一起,采用统一的序列生成范式(如任务提示符‑文本内容‑任务指示信息‑问题信息),输入模型进行相应任务的训练。
[0079] 其中,知识发现任务用于从文档内容中发现所需要的内容,如,信息提取、常见问题(Frequently Asked Questions, FAQ)知识点挖掘、文本表示等;知识匹配任务用于判断输入的两部分文本,如文本‑摘要、文本‑标题等,是否匹配;问题生成任务用于基于文本生成相对应的问题。例如,当输入的文本为大段文本内容,且预训练语言模型通过任务提示符识别出其为知识发现任务时,如文档三元组提取任务时,则预训练语言模型会输出与该文本对应的三元组;当输入的文本中设置有相应的摘要或者标题,且预训练语言模型通过任务提示符识别出其为知识匹配任务时,则会输出该文本是否与摘要或标题相匹配的匹配结果;当输入的文本中包括有可用于答案生成的答案文本,且预训练语言模型通过任务提示符识别出其为问题生成任务时,则会输出与该文本对应的问题。本实施例中,各个任务对应的损失函数可由本领域技术人员根据实际需求采用与任务相适配的损失函数即可,本申请实施例对此不作限制。
[0080] 一种示例性地预训练语言模型结构如图2D所示,其包括:编码器‑解码器‑多任务输出层。其中,编码器用于接收输入的文本并将其编码为编码向量;解码器用于对编码向量进行解码,以解码为相应任务的向量;多任务输出层用于将相应任务的向量输出为对应的任务结果。例如,假设当前任务三元组提取任务,则,首先,训练样本会被采用任务提示符‑文本内容‑任务指示信息‑问题信息的范式输入模型;然后,由编码器对整个范式进行编码,生成编码向量,该编码向量中携带有用于指示任务的信息;解码器进一步地会基于该指示任务的信息,对编码向量进行有任务有关的相应特征的提取,生成解码向量,类似地,该解码向量中也携带有用于指示任务的信息;基于该信息,该解码向量将被输入多任务输出层中对应的任务分支,本示例中为知识发现任务分支,通过该任务分支预测输出对应的三元组,该预测输出的三元组将与训练样本中作为label的三元组,基于预设的损失函数计算损失值;再基于该损失值对整个预训练语言模型进行参数调整,以实现对模型的训练。其中,知识发现任务分支的参数调整的权重可以大于其它任务分支。
[0081] 在训练完成后,预训练语言模型将能够输出用于生成文档数据单元的数据,如,三元组、问题Q、和文本‑摘要或文本‑标题的匹配信息,等。后续,人机对话系统在构建文档知识图时,可基于模型针对所需文本输出的三元组、结合模型输入的答案A和模型输出的与该答案A对应的问题Q而生成的QA对,以及,在根据匹配信息确定文本‑摘要或文本‑标题匹配时生成的关键信息(如与文本对应的摘要或与文本对应的标题)生成文档数据单元,然后,将这些文档数据单元存储入对应的节点的属性字段,基于此生成文档知识图中的节点,再基于各个节点最终生成文档知识图。
[0082] 通过本实施例,能够获得可对文档进行知识挖掘的预训练语言模型,以在后续应用中能够充分挖掘文档中可以用于问答的知识,实现对文档的多层次知识解析和表示,有效服务于基于文档的人机对话系统。
[0083] 需要说明的是,上述对预训练语言训练模型中部分步骤的说明较为简要,相关之处可参照实施例一相对应部分的描述。
[0084] 实施例三
[0085] 本实施例基于前述实施例一所描述的人机对话系统,从该人机对话系统的应用层面,对人机对话过程进行说明。
[0086] 如图4A所示,其示出了本实施例的人机对话方法的步骤流程,该人机对话方法包括以下步骤:
[0087] 步骤S402:获得问题对应的问题向量。
[0088] 问题可以是原始的文本问题或由语音问题转换成的文本问题或由其它形式的问题转换成的文本问题。基于文本问题,人机对话系统对其进行向量转化处理,转化为问题向量。例如,可由人机对话系统的问答引擎模块对其进行向量转化处理,生成对应的问题向量。
[0089] 步骤S404:根据预先生成的文档知识图中的多个文档节点对应的特征表示,从多个文档节点中确定与问题向量相匹配的目标文档节点。
[0090] 其中,文档知识图基于多个文档的层级结构信息和内容信息生成。
[0091] 如实施例一中所描述的,文档知识图可预先离线构建。首先获取大量的文档,再针对每个文档,获取该文档的层级结构信息;再根据层级结构信息,获取至少部分层级中的节点对应的文档数据单元;然后根据所述节点及其对应的文档数据单元,构建生成对应的文档知识图。
[0092] 在一种较优的方式中,可以先获取大量的文档,再针对每个文档,获取该文档的层级结构信息;再根据层级结构信息,获得该文档对应的部分或全部层级中的节点的层级结构链和这些节点各自对应的文档内容;根据获取的、对这些节点各自的的文档内容进行的预设类型的数据单元解析的解析结果,获得这些节点对应的文档数据单元;再将相应节点的文档数据单元对应挂载至各节点中,以根据进行了挂载后的节点及节点对应的层级结构链生成文档知识图。其中,预设类型的数据单元包括但不限于以下至少之一:与文档内容对应的三元组数据单元、与文档内容对应的问题‑答案对数据单元、文档内容与其对应的关键信息的数据单元。
[0093] 当采用如实施例一中所述的人机对话系统时,可以通过预训练完成的预训练语言模型,对部分或全部层级中的节点对应的文档内容进行预设类型的数据单元解析,获得解析结果。该预训练语言模型为以文本内容为输入、以用于生成多种预设类型的文档数据单元的数据为输出的多任务语言模型,可以更为有效地进行文档数据单元的提取。通过人机对话系统的文档知识图模块,基于智能文档模块输出的文档的层级结构信息,结合预训练语言模型对文档进行文档数据单元解析后获得的解析结果,即文档数据单元,构建生成文档知识图。
[0094] 此外,为了便于后续与问题向量的匹配,在将全部或部分层级中的节点对应的文档数据单元挂载至所述节点中,以生成文档知识图时:可以根据各个层级节点对应的层级结构链和原节点内容,生成对应的节点向量并对应存储至各层级节点中,以生成新的节点内容;再根据各层级节点及各层级节点的新的节点内容,生成文档知识图。该节点向量中既携带有当前节点在整个文档中的层级结构信息,又携带有当前节点的文档内容的特征信息,可为后续进行高效、准确的向量匹配提供有效的数据依据。
[0095] 示例性地,对于文档的一级节点如标题节点,可以为其生成与文档整体有关的文档表示,如,可基于文档的整体层级结构信息和文档整体内容,进行特征提取,生成可表征文档全局特征的文档表示。而对于文档的非一级节点,如副标题或子标题节点,则可根据该节点的层级结构链和节点内容,进行特征提取并生成对应的向量,即该节点的知识表示。该知识表示既携带有从文档的一级节点至当前节点的至少一级层级结构的信息,又携带有当前节点的文档内容的特征信息。不管是文档表示还是知识表示,均可挂载于其所属的节点下,如以属性数据的形式挂载于其所属的节点下等。也即,此种情况下,在将节点对应的文档数据单元挂载至节点中,以生成文档知识图时:会根据各个层级节点对应的层级结构链和原节点内容,生成对应的节点向量并对应存储至各层级节点中,以生成新的节点内容;再根据各层级节点及各层级节点的新的节点内容,生成文档知识图。
[0096] 文档知识图一次构建后,可在后续长期使用。进一步地,也可定期或不定期进行更新。
[0097] 基于文档知识图及其中各节点对应的文档表示或知识表示,在一种可行方式中,根据预先生成的文档知识图中的多个文档节点对应的特征表示,从多个文档节点中确定与问题向量相匹配的目标文档节点可实现为:根据预先生成的文档知识图中的多个文档节点对应的文档表示或者知识表示,从多个文档节点中确定与问题向量相匹配的目标文档节点。其中,文档表示用于表征文档节点所对应的、携带有文档的层级结构信息的文档整体内容的语义特征;知识表示用于表征文档节点所对应的、携带有节点的层级结构链条信息的文档内容所对应的语义特征。
[0098] 虽然,通过问题向量与文档知识图中节点的文档表示和/或知识表示的比较,可以召回与问题向量相匹配的多个候选文档节点,但这多个候选文档节点中也可能存在着与问题向量匹配度不高的节点。因此,在一种可行方式中,当从多个文档节点中确定与问题向量相匹配的目标文档节点时,可以:从多个文档节点中确定与问题向量相匹配的多个候选文档节点;使用排序模型对多个候选文档节点进行排序,根据排序结果从多个候选文档节点中筛选出满足预设条件的文档节点作为与问题向量相匹配的目标文档节点。示例性地,该排序模型可实现为Ranker模型;预设条件可以由本领域技术人员根据实际需求设定,如,可以是排名在前N位的节点,或者,匹配度大于预设匹配度的节点,等等,本申请实施例对此不作限制。
[0099] 此外,人机对话系统还可以面向用户提供产品交互逻辑界面,以为用户提供更好的交互和结果展现。示例性地,人机对话系统可在整体上设置包含文档类目管理、文档上传、文档知识干预、文档问答四个大部分的界面。
[0100] 其中,文档类目管理界面用于划分和管理用户上传的各种文档对应的类目;文档上传界面用于用户上传文档;文档知识干预界面用于接收基于人机对话系统的预训练语言模型对文档进行数据单元解析后生成的文档数据单元的编辑和修改;文档问答界面用于对预训练语言模型对文档进行QA解析后生成的问答进行编辑和修改。
[0101] 在文档知识图的构建阶段,用户通过文档上传界面将文档上传云服务端后,云服务端自动以用户无感知的形式进行文档知识图的构建和存储。构建完毕后,可进入文档知识干预界面,以简单划取的方式干预文档知识图中节点的细粒度知识(文档数据单元中的数据),从而实现轻量级干预生效。之后,可基于文档问答界面进行问答测试,测试完毕点击文档生效,即可提供文档问答服务。
[0102] 步骤S406:根据与问题向量相匹配的目标文档节点所对应的节点内容,为问题生成答案。
[0103] 因与问题向量相匹配的目标文档节点的文档表示或知识表示均携带有相应的层级结构信息和文档内容的特征信息,因此,可以快速定位到具体节点的具体文档内容部分。进而,根据该文档内容,为问题生成相应的答案。如,直接将该部分文档内容作为答案,或者,基于预设的答案模板,根据该文档内容生成答案,等。
[0104] 需要说明的是,上述针对各步骤的具体实现的描述较为简单,相关之处可参照前述实施例一中相对应的部分。
[0105] 以下,以一个具体场景为示例,对上述过程进行示例性说明,如图4B所示。
[0106] 假设,用户通过用户设备提供的搜索页面输入问题A:“足球明星XXX的身高是多少”,并发送给云服务端。云服务端的人机对话系统在接收到该问题A后,一方面,将问题A转化为问题向量AE;另一方面,人机对话系统根据该问题向量AE访问预先建立好的文档知识图,该文档知识图根据大量的文档预先建立生成,其中包含有大量的文档内容和知识数据。假设,本示例中,人机对话系统通过问答引擎模块,将问题向量AE与文档知识图中多个节点的知识表示相比较,以从中找到相匹配的节点。再简单假设文档知识图中当前有100个节点,有10个文档节点的知识表示均与问题向量AE匹配,假设分别为节点1‑10,则节点1‑10为与问题向量AE匹配的候选文档节点。
[0107] 进一步地,使用Ranker模型对节点1‑10进行排序,假设按照匹配度从高到低的排序结果为5‑4‑3‑2‑1‑6‑7‑8‑9‑10,则可将节点5确定为与问题向量AE相匹配的目标文档节点。
[0108] 对于节点5来说,其对应的知识表示中既包含有其对应的文档内容的特征信息,也包含有其对应的层次结构链,即其在所属的文档中的层次结构的信息。则,基于此,可准确定位该节点对应的内容在整个文档中的位置,基于该位置的文档内容,从中确定可回答问题向量所表示的问题的答案。
[0109] 例如,节点5对应的文档为针对该足球明星的信息介绍,文档中包含有:个人信息,包括姓名、身高、体重、出生日期等;比赛信息,包括参加过的知名赛事、成绩等;好友介绍,包括:好友姓名、身高、喜好等。若采用传统方式,即通过关键词匹配的方式,则极有可能将某个好友的身高匹配为该足球明星的身高,从而导致答案错误。而采用本申请实施例的方案,针对好友的身高这部分信息,因其层级结构属于“好友介绍”部分的内容,因此,不会考虑该节点下的身高的信息,而能够直接定位至“个人信息”下的身高信息,即该足球明星的身高信息,从而获得较为准确的答案内容。
[0110] 但不限于此,在一种可行方式中,还可以结合目标文档节点的兄弟节点的信息,以兄弟节点对应的文档内容作为当前节点对应的文档内容的上下文,以提供更为准确的文档内容作为答案。
[0111] 在获得节点5对应的文档内容中的身高信息内容,如“身高195cm”后,可基于该部分内容生成答案,如“足球明星XXX的身高为195厘米”,并通过文本或语音或其它用户易于理解的方式反馈给用户。
[0112] 上述示例中,以用户通过搜索页面输入问题为示例,但不限于此,用户还可通过智能设备以语音的形式输入问题,再将语音问题转换为文本问题后向云服务端发送,或者,将语音问题发送给云服务端后,由云服务端将语音问题转换为文本问题。基于此,从用户设备侧来看,本申请实施例在用户设备侧的方案可实现为:通过交互接口(人机交互接口,可为文本交互接口或为语音交互接口等)接收用户输入的问题,根据问题生成问题请求并发送至云服务端(该问题请求中携带有用户输入的问题的数据);接收云服务端针对问题请求反馈的答案内容,并展示或播放答案内容;其中,该答案内容由云服务端根据文档知识图与问题请求所对应的问题生成,如前所述,该文档知识图基于多个文档的层级结构信息和内容信息生成。
[0113] 其中,云服务端根据问题生成答案内容的具体实现可参照前述实施例中的描述,在此不再赘述。
[0114] 可见,通过本实施例,在进行基于文档的人机对话交互时,使用了预先生成的文档知识图。该文档知识图基于多个文档的结构信息和内容信息生成,其中,结构信息表征了文档的层级结构。一般来说,大部分文档都具有层级结构,例如,自顶向下依次为:标题、副标题、段落、句子的层级结构等。基于文档的层级结构生成的文档知识图可以对文档进行多层次的知识解析和表示。由此,使得后续基于该文档知识图确定与问题向量相匹配的文档内容时,能够将问题向量匹配至具体的文档层级相对应的内容中,使得获得的文档内容更为精准和合理,避免生成答非所问或不可理解的文档片段,提升了人机对话交互的效率。
[0115] 实施例四
[0116] 参照图5,示出了根据本申请实施例四的一种电子设备的结构示意图,本申请具体实施例并不对电子设备的具体实现做限定。例如,可以为服务器,或者为云服务端中的设备。
[0117] 如图5所示,该电子设备可以包括:处理器(processor)502、通信接口(Communications Interface)504、存储器(memory)506、以及通信总线508。
[0118] 其中:
[0119] 处理器502、通信接口504、以及存储器506通过通信总线508完成相互间的通信。
[0120] 通信接口504,用于与其它电子设备或服务器进行通信。
[0121] 处理器502,用于执行程序510,具体可以执行上述任一方法实施例中的相关步骤。
[0122] 具体地,程序510可以包括程序代码,该程序代码包括计算机操作指令。
[0123] 处理器502可能是CPU,或者是特定集成电路ASIC(Application Specific Integrated Circuit),或者是被配置成实施本申请实施例的一个或多个集成电路。智能设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。
[0124] 存储器506,用于存放程序510。存储器506可能包含高速RAM存储器,也可能还包括非易失性存储器(non‑volatile memory),例如至少一个磁盘存储器。
[0125] 程序510中包含有至少一可执行指令,该可执行指令可以用于使得处理器502执行前述任一方法实施例中所描述的方法对应的操作。
[0126] 程序510中各步骤的具体实现可以参见上述方法实施例中的相应步骤和单元中对应的描述,并具有相应的有益效果,在此不赘述。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的设备和模块的具体工作过程,可以参考前述方法实施例中的对应过程描述,在此不再赘述。
[0127] 本申请实施例还提供了一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述多个方法实施例中的任一所述的方法。
[0128] 本申请实施例还提供了一种计算机程序产品,包括计算机指令,该计算机指令指示计算设备执行上述多个方法实施例中的任一方法对应的操作。
[0129] 此外,需要说明的是,本申请实施例所涉及到的与用户有关的信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于对模型进行训练的样本数据、用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
[0130] 需要指出,根据实施的需要,可将本申请实施例中描述的各个部件/步骤拆分为更多部件/步骤,也可将两个或多个部件/步骤或者部件/步骤的部分操作组合成新的部件/步骤,以实现本申请实施例的目的。
[0131] 上述根据本申请实施例的方法可在硬件、固件中实现,或者被实现为可存储在记录介质(诸如CD ROM、RAM、软盘、硬盘或磁光盘)中的软件或计算机代码,或者被实现通过网络下载的原始存储在远程记录介质或非暂时机器可读介质中并将被存储在本地记录介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件(诸如ASIC或FPGA)的记录介质上的这样的软件处理。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件(例如,RAM、ROM、闪存等),当所述软件或计算机代码被计算机、处理器或硬件访问且执行时,实现在此描述的方法。此外,当通用计算机访问用于实现在此示出的方法的代码时,代码的执行将通用计算机转换为用于执行在此示出的方法的专用计算机。
[0132] 本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及方法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请实施例的范围。
[0133] 以上实施方式仅用于说明本申请实施例,而并非对本申请实施例的限制,有关技术领域的普通技术人员,在不脱离本申请实施例的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本申请实施例的范畴,本申请实施例的专利保护范围应由权利要求限定。