1.本发明涉及人工智能技术领域,尤其涉及一种神经网络训练方法及神经网络、问答系统及方法。
背景技术:2.问答(question answering)是自然语言处理(natural language processing)的一个重要研究领域,可以针对人类以自然语言形式提出的问题自动地给出答案。
3.目前的问答系统已经得到了广泛的应用,比如在一些日常搜索、、智能客服、聊天机器人等得到了广泛的应用,早已普及我们每个人的生活。例如,当你清晨起床询问你的智能语音助手“今天天气怎么样?”时,你会得到类似这样的回答:“今天是晴天,温度10-12摄氏度。”4.除了简单单轮对话的信息查询之外,如今更为先进的问答系统是聊天机器人,可以和用户进行多轮对话,并根据过去的对话聊天记录,进一步挖掘信息,从而可以更智能、更理解人的方式进行问答和对话。
5.随着知识图谱技术的发展,借助知识图谱的强大功能,基于知识图谱的问答系统功能更加理解人,信息更加丰富,因而进一步发展基于知识图谱问答的技术,知识图谱问答指的是使用知识图谱作为主要数据源的问答场景。对于给定的问题,我们基于知识图谱进行推理从而得到答案,让问答系统具有一定的推理能力,从而大大增强了智能客服这类的沟通效率。
6.虽然目前的知识图谱问答虽然具有强大的推理能力,但也面对一些更复杂的挑战,当输入的是多级关系的信息时,难以进行准确的推理,因此2级关系后,就出现答案不准的情况,比如“布鲁斯的老婆的爸爸是谁?”这类语句,其信息构建的知识图谱包括多级关系,目前的技术难以进行准确的推理。
技术实现要素:7.本发明为解决现有技术中存在的技术问题,提供一种神经网络的训练方法,包括步骤:
8.s1:数据准备;
9.s2:句子特征分析处理;
10.s3:分布初始化;
11.s4:创建回答列表;
12.s5:指令网络单元初始化及处理;
13.s6:关系和实体初始化;
14.s7:推理网络单元初始化及处理;
15.s8:求损失值并训练。
16.进一步地,s1:数据准备步骤包括:
17.s10:神经网络的参数设置,包括对指数衰减、激活函数以及优化方法的选择和设置;
18.s11:加载数据,包括:
19.加载entity,relation和vocab文件,获取实体,词语和关系对应的id;
20.加载数据集sample和dep文件,获取问答、子图关系和实体,以及问题的句法分析信息;
21.s12:id映射:
22.将sample文件中包含有问题的句子中的实体以及与有问题的问题句子中实体相关联子图的节点,生成g2l元素的字典用以表示全局id以及当前id的转换。并统计所有行中最多的实体数。
23.进一步地,s2:句子特征分析处理步骤包括:
24.s20:对包含有问题的句子的句法的依存关系进行分析:抽取出句子中每个词的父节点编号、关系类型和所在层级关系;
25.s21:对问句实体进行分析,创建问句实体矩阵;
26.s22:对句子关系进行处理:去除子图部分的开始节点、结束节点和关系id,构建成知识图谱矩阵。
27.进一步地,s4:创建回答列表步骤包括:
28.创建回答列表,存放每个回答实体的id号;
29.创建回答字典作为标签,在回答实体的位置取值。
30.进一步地,s5:指令网络单元初始化及处理包括:
31.对输入问题进行编码,转化为多维矩阵;
32.以lstm抽取特征,形成知识矩阵,并进行初始化;
33.对知识矩阵进行处理,得到指令矩阵。
34.进一步地,s6:关系和实体初始化具体为:
35.对关系进行升维的嵌入处理,再通过线性层进行降维处理;
36.对实体进行升维嵌入处理,再经过与嵌入处理相同维度的线性层。
37.进一步地,s7:推理网络单元初始化及处理包括:
38.构建关系、头、尾以及事实之间的稀疏矩阵;
39.将当前实体分布、指令操作输出和关系表征传入图卷积网络中进行处理,最后更新分布矩阵。
40.本发明还提供一种神经网络,所述神经网络为权利要求1-6任一之神经网络训练方法所得,包括指令网络单元、推理网络单元以及学习网络单元,其中,
41.指令网络单元基于图神经网络以及lstm构成,用以将输入的问题转化成推理指令矩阵i;
42.推理网络单元为图卷积神经网络,用以对推理指令矩阵i进行分析,得到实体分布p;
43.学习网络为师徒网路,用以对实体分布p进行推理分析。
44.本发明还提供一种问答系统,包括交互单元以及处理单元,其中:
45.所述交互单元用以接收用户的输入信息以及显示处理单元的结果;
46.处理单元用以对用户的输入信息进行处理,并返回处理结果,
47.所述处理单元为上述神经网络训练方法所得的神经网络或所述的神经网络。
48.本发明还提供一种问答方法,包括步骤:
49.交互单元接收用户的输入信息以及显示处理单元的结果;
50.处理单元对用户的输入信息进行处理,并返回处理结果,
51.处理单元为所之神经网络训练方法所得的神经网络或者所述的神经网络。
52.本发明还提供一种电子设备,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述机器可读指令,以执行如所述的问答方法。
53.本发明公开的方法和系统中所述模块,在实际应用中,即可以在一台目标服务器上部署多个模块,也可以每一模块独立部署在不同的目标服务器上,特别的,根据需要,为了提供更强大的计算处理能力,也可以根据需要将模块部署到集群目标服务器上。
54.由此可见,本发明采取的技术方案使用的问答系统能够从图片中提取到准确的文字信息,还能抽取到各种语义关系,进而基于本技术的创新技术,大大提高了语义分析的准确率,从而提高了其应用的准确性,如检索、预测、推荐等需求场景。
55.为了对本发明有更清楚全面的了解,下面结合附图,对本发明的具体实施方式进行详细描述。
附图说明
56.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍。显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
57.图1为本技术实施例的神经网络训练方法流程示意图。
具体实施方式
58.请参阅图1,本技术针对现有技术的技术缺陷,提出一种神经网络训练方法,包括步骤:
59.s1:数据准备;
60.s2:句子特征分析处理;
61.s3:分布初始化;
62.s4:创建回答列表;
63.s5:指令网络单元初始化及处理;
64.s6:关系和实体初始化;
65.s7:推理网络单元初始化及处理;
66.s8:求损失值并训练。
67.下面结合各种优选的实施方式进一步说明本技术的技术方案。
68.s1:数据准备:
69.本技术所用的训练数据以及知识图谱从公司的数据库中导出,并进行信息的聚
合,问题和标签由可以从客服系统中导出,也可以由第三方提供上述数据。
70.作为一种优选的实施方式,本技术实施例的数据准备步骤包括s10-s12步骤:
71.s10:神经网络的参数设置,包括对指数衰减、激活函数以及优化方法的选择和设置;本实施例,设置0.98指数衰减,使用relu激活函数,采用的优化训练方法为adam。
72.s11:加载数据,包括:
73.先加载entity,relation和vocab文件,获取实体,词语和关系对应的id。然后加载数据集sample和dep文件,获取问答、子图关系和实体,以及问题的句法分析(依存分析)的信息,依存分析用作识别句子中词汇与词汇之间的相互依存关系。
74.s12:id映射:
75.将sample文件中每一行包含有问题的句子中的实体、和有问题的句子中实体相关联子图的节点(实体),以生成g2l元素的字典来表示全局id和当前行id的转换,然后用一个list取存放所有行的g2l,并统计所有行中最多的实体数maxlocal entity。
76.s2:句子特征分析处理:
77.作为一种优选的实施方式,步骤s2具体包括s20-s22:
78.s20:对包含有问题的句子的句法的依存关系进行分析:
79.抽取出句子中每个词的父节点编号parents、关系类型relations和所在层级node_layer,并统计出一句话中最长的单词数max_query_word,此外,还创建问句id矩阵query_text,存放的方式为:如果单词出现在单词表中,则存放单词id,如果不存在,则以句子长度为padding来进行存放。
80.s21:对问句实体进行分析,创建问句实体矩阵;
81.根据sample文件,创建问句实体矩阵query_entities,用来表征每行问句的每个单词,通过上述的g21组成的list,在问题实体的位置local_id标注为1,在seed_list和tp_set中添加问句中问题实体的位置local_id,设置备选实体candidate_entities,将子图sub_graph中的实体,以及在问题实体的位置local_id存放到全局位置global_id上。
82.s22:对句子关系进行处理:
83.在sample文件中去除子图sub_qraph部分的开始节点、结束节点和关系id,构建成知识图谱矩阵kb_adj_mats,存放三元组为知识图谱。
84.s3:分布初始化;
85.创建seed_distribution矩阵记录问句分布情况,如果tp_set的长度大于0,则在tp set中local_id的位置取tp_set长度的倒数,如果不是,则在g2l中local_id的位置取g2l长度的倒数。
86.s4:创建回答列表;
87.创建回答列表answer_lists,存放每个回答实体的id号;
88.创建回答字典answer_dict作为标签,在回答实体的位置取值为1。
89.s5:指令网络单元初始化及处理,作为一种优选的实施例,包括:
90.先对输入的问题进行编码处理,做升维处理,转化为300维的矩阵,然后经过丢弃处理dropout后,其中dropout处理时,取丢弃的概率p=0.3,再进行lstm抽取特征,其中,lstm的隐藏层设为100维度,获取最后一层隐藏状态输出query_node_emb,然后进行初始化全为0的知识矩阵relational_ins。
91.query_node__emb经过一层dropout和线性层后,与relational_ins进行拼接,再经过1层线性层回复到原维度,得到cq,query_node_emb广播后和cq进行张量操作(element-wise乘法)后,经过dropout和线性层,此处的线性层可以选择二分线性层。
92.然后接入激活函数softmax,加上padding位置极小值的加掩码mask,得到注意力系数attn_weight。
93.最后,再把注意力系数attn_weight和relation_ins进行张量操作即element-wise乘法后求和得到推理指令矩阵i。
94.s6:关系和实体初始化:
95.对关系id进行升维的嵌入处理,本实施例中,可以选择升维至200维,再通过线性层进行降维到100维;
96.对实体进行升维嵌入处理,再经过与嵌入处理相同维度的线性层,这里也选择维度为100。
97.s7:推理网络单元初始化及处理:
98.作为一种优选的实施方式,s7步骤包括:
99.构建关系、头、尾以及事实之间的稀疏矩阵,具体为:
100.构建每个batch拉平之后的序号为fact_id,然后构建关系relations、头heads、尾tails和事实fact序号之间的稀疏矩阵,在关系relations至事实fact中的关系id加上batch_ids,乘以*关系的数量num_relations,从而可以用来区别在同一关系中,处于不同batch中的表示。
101.将当前实体分布、指令操作输出和关系表征传入图卷积网络中进行处理,最后更新分布矩阵。
102.处理的过程为将当前实体分布矩阵p、指令操作输出和关系表征传入图卷积神经网络中,具体为:
103.首先将指令矩阵i经过线性层,再和关系矩阵元素相乘,经过激活函数得到fact_val矩阵。
104.将当前分布矩阵与头至事实(head2fact)做矩阵乘法,得到各个头实体的先验分布fact_prior;
105.将factval矩阵与各个头实体的先验分布fact_prior相乘,再与事实至尾(fact2tail)相乘得到本次关系聚合的实体矩阵neighbor_rep;
106.将上一次实体矩阵local_entity_emb和neighbor_rep进行拼接,再进行丢弃处理dropout以及线性层,经过激活函数得到更新的实体矩阵local entity emb;
107.local entity_emb经过1层线性层,加上极小值的mask,经过softmax后更新分布矩阵,得到更新的分布矩阵current dist;
108.取最后一次推理输出的current_dist作为为预测分布pred dist。
109.s8:求损失值并训练:
110.取answer_dist在实体中求和,将大于0的部分设为1的case_valid矩阵,即统计每个batch中有答案的取值为1,没有答案的取值为0;
111.然后,计算pred_dist和answer dist两个分布之间的整体kl散度损失;
112.最后,得到的损失和case valid矩阵相乘后除以case valid矩阵,即无答案的部
分不参与损失计算。
113.得到损失值之后,根据损失值来进行训练。
114.基于上述的神经网络训练方法,本技术还提出一种可以应用上述方法训练的神经网络,包括指令网络单元、推理网络单元以及学习网络单元,其中,
115.指令网络单元基于图神经网络以及lstm构成,用以将输入的问题转化成推理指令矩阵i;
116.推理网络单元为图卷积神经网络,用以对推理指令矩阵i进行分析,得到实体分布p;
117.学习网络为师徒网路,用以对实体分布p进行推理分析。
118.具体的训练过程和方法请参阅上述实施例。
119.基于上述上述实施例,本技术提出一种问答系统,可以应用在聊天机器人、智能客服、搜索等系统,本技术实施例的问答系统包括交互单元以及处理单元,其中:所述交互单元用以接收用户的输入信息以及显示处理单元的结果;
120.处理单元用以对用户的输入信息进行处理,并返回处理结果,本实施例的处理单元为上述实施例之神经网络训练方法所得的神经网络或者上述实施例的神经网络。
121.基于上述上述实施例,本技术提出一种问答方法,包括步骤:
122.交互单元接收用户的输入信息以及显示处理单元的结果;
123.处理单元对用户的输入信息进行处理,并返回处理结果,
124.本技术实施例还提供一种计算机可读存储介质,所述存储介质中存储有指令或者程序,所述指令或者程序由处理器加载并执行如上述任一所述的问答方法。
125.本技术实施例还提供一种电子设备,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述机器可读指令,以执行如上述任一所述的问答方法。
126.需要说明的是,本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过计算机程序来指令相关的硬件来完成,所述计算机程序可以存储于计算机可读存储介质中,所述存储介质可以包括但不限于:只读存储器(rom,read only memory)、随机存取存储器(ram,random access memory)、磁盘或光盘等。
127.对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。