基于Transformer和知识图谱的智能交互方法转让专利

申请号 : CN202310448078.9

文献号 : CN116151273B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 路凯峰蒿敬波肖湘江田强

申请人 : 湖南超能机器人技术有限公司

摘要 :

本申请涉及一种基于Transformer和知识图谱的智能交互方法,该方法采用N‑gram掩码方法进行预训练模型的训练,以处理医学领域中的稀疏数据问题,提高预训练模型在处理稀疏数据时的效果。在智能交互过程中,采用Transformer进行特征和意图的联合提取可以提高模型的准确率,并避免因意图和实体之间的不一致性导致的误判。采用稀疏特征和词向量联合输入的方式,可以综合利用不同类型的特征,提高模型准确性,可以充分利用特征之间的关联和词向量的语义信息,从而提高模型的泛化能力和效果。本方法在医疗领域发挥着重要作用,不仅能帮助用户更方便地获取医疗服务,而且能帮助医生提高诊断效率和准确性。

权利要求 :

1.一种基于Transformer和知识图谱的智能交互方法,其特征在于,所述方法包括:获取用户输入的对话文本信息;

将所述对话文本信息进行预处理后采用实体提取和意图理解神经网络模型提取用户的预测意图和所述对话文本信息中的预测实体;所述实体提取和意图理解神经网络模型包括:语义理解模块、实体和意图联合提取模块,所述语义理解模块是改进的基于N‑gram masking的预训练模型;所述语义理解模块用于采用基于N‑gram masking改进的预训练模型来生成对话文本的向量化表示,作为文本序列的密集特征;所述实体和意图联合提取模块用于将用户的输入文本序列转换为基于字符的one‑hot编码和基于词语的n‑gram编码的稀疏特征,然后再将密集特征和经过dropout处理后的稀疏特征结合,并将结合后得到的特征采用两层Transformer对句子进行上下文编码,编码完成后通过在序列之上的实体提取层预测实体,根据编码结果和用户意图的嵌入表示提取用户的预测意图;所述改进的基于N‑gram masking的预训练模型包括:嵌入处理层和多层Transformer结构;所述改进的基于N‑gram masking的预训练模型是利用N‑gram masking的掩码方式改进的预训练模型,所述N‑gram masking的掩码方式用于采用一个长度可变的N个字符的滑动窗口,在每次进行掩码操作时,一次性遮掩N个字符;

对所述预测实体进行正则纠偏处理,得到所述对话文本信息中的医学实体;

根据所述用户的预测意图、所述医学实体以及储存有疾病的专业医学知识的知识图谱,采用基于层次结构的联合模型进行对话控制和决策,得到交互结果,并返回所述交互结果给用户;所述基于层次结构的联合模型包括知识图谱推理子模型和对话管理子模型;所述对话管理子模型用于根据获取的知识图谱中的专业医学知识判断该对话接下来为单轮对话还是多轮对话,若为单轮对话就使用获取的知识直接生成交互结果返回给用户,若为多轮对话,则判断当前获取的问诊信息是否足够,若足够就使用当前获取的信息生成结果返回给用户,若不足就接着与用户进行对话交互,直到信息足够后,生成交互结果返回给用户。

2.根据权利要求1所述的方法,其特征在于,将所述对话文本信息进行预处理后采用实体提取和意图理解神经网络模型提取用户的预测意图和所述对话文本信息中的预测实体,包括:将所述对话文本信息进行预处理,得到输入文本序列和意图标签;

将所述输入文本序列输入到改进的基于N‑gram masking的预训练模型中生成对话文本的向量表示,得到输入文本的密集特征;

将所述输入文本序列、所述意图标签、以及所述密集特征输入到所述实体和意图联合提取模块中,得到用户的预测意图和所述对话文本信息中的预测实体。

3.根据权利要求2所述的方法,其特征在于,所述实体和意图联合提取模块包括前馈神经网络、嵌入层、两层Transformer、实体提取层以及意图提取层;

将所述输入文本序列、所述意图标签、以及所述密集特征输入到所述实体和意图联合提取模块中,得到用户的预测意图和所述对话文本信息中的预测实体,包括:将所述输入文本序列输入到实体和意图联合提取模块中进行编码,得到基于字符的one‑hot编码和基于词语的n‑gram编码的稀疏特征;

将所述稀疏特征采用一次dropout后得到特征和所述密集特征输入到所述前馈神经网络中,得到结合特征;

将所述结合特征输入到所述两层Transformer中,得到上下文编码;

将所述上下文编码输入到所述实体提取层中;得到预测实体;

根据所述预测实体和所述输入文本序列,确定预测实体的损失函数;

将所述意图标签通过嵌入层处理后和通过所述两层Transformer输出的预测意图标签嵌入到同一语义向量空间计算相似度,确定预测意图的损失函数;

将所述预测实体的损失函数和所述预测意图的损失函数相加,得到联合损失函数;

根据所述预测实体和所述预测意图标签,采用最小化所述联合损失函数的方式对所述实体提取和意图理解神经网络模型进行反向训练,得到训练好的实体提取和意图理解神经网络模型。

4.根据权利要求3所述的方法,其特征在于,所述预测实体的损失函数为:

其中, 为预测实体的损失函数, 为预测的实体序列,为输入的序列, 为条件随机场CRF的对数似然可能性;

所述预测意图的损失函数为:

其中, 为预测意图的损失函数, 为预测的意图标签向量空间表示, 为输入的意图标签的向量空间表示。

5.根据权利要求2所述的方法,其特征在于,将所述输入文本序列输入到改进的基于N‑gram masking的预训练模型中生成对话文本的向量表示,得到输入文本的密集特征,包括:将所述输入文本序列输入到所述嵌入处理层中,依次经过词嵌入、句子嵌入、位置嵌入处理,并将得到的处理结果出入到多层Transformer结构中生成对话文本的向量表示,得到输入文本的密集特征。

6.根据权利要求1所述的方法,其特征在于,所述对话管理子模型包括若干个Transformer模型和嵌入层;

根据所述用户的预测意图、所述医学实体以及储存有疾病的专业医学知识的知识图谱,采用基于层次结构的联合模型进行对话控制和决策,得到交互结果,并返回所述交互结果给用户,包括:将储存有疾病的专业医学知识的知识图谱和当前对话文本信息输入到所述知识图谱推理子模型中通过图神经网络对知识图谱进行表示和推理,得到实体关系和属性信息;

将实体关系和属性信息、所述用户的预测意图、所述医学实体、预测的动作以及词槽输入到所述对话管理子模型的第一个Transformer模型中,并将得到的解码结果通过嵌入层,得到第一当前对话状态和第一系统对话动作;

若对话为单轮对话,则使用获取的知识直接生成交互结果返回给用户;

若对话为多轮对话,则将所述第一系统对话动作、所述用户的预测意图、所述医学实体以及所述实体关系和属性信息输入到第二个Transformer模型中,并将得到的解码结果通过嵌入层,得到第二当前对话状态和第二系统对话动作,以此类推,直到对话轮数达到预设最长预测值,得到交互结果并返回给用户。

7.根据权利要求6所述的方法,其特征在于,若对话为多轮对话,则将所述第一系统对话动作、所述用户的预测意图、所述医学实体以及所述实体关系和属性信息输入到第二个Transformer模型中,并将得到的解码结果通过嵌入层,得到第二当前对话状态和第二系统对话动作,以此类推,直到对话轮数达到预设最长预测值,得到交互结果并返回给用户,包括:若对话为多轮对话,则判断当前获取的对话文本信息是否足够;

如果信息足够,则将所述第一系统对话动作、所述用户的预测意图、所述医学实体以及所述实体关系和属性信息输入到第二个Transformer模型中,并将得到的解码结果通过嵌入层,得到第二当前对话状态和第二系统对话动作;

如果信息不够,则判断是否需要用户更多的体检数据,如果需要用户的体检数据,则生成对话信息向用户寻求更多的体检数据,用于下一步进行诊断使用;若不需要用户的体检数据,则直接与用户进行下一轮交互,获取用户口述的症状信息;

以此类推,直到对话轮数达到预设最长预测值,得到交互结果并返回给用户。

8.根据权利要求6所述的方法,其特征在于,将所述实体关系和属性信息、所述用户的预测意图、所述医学实体、预测的动作以及词槽输入到所述对话管理子模型的第一个Transformer模型中,并将得到的解码结果通过嵌入层,得到第一当前对话状态和第一系统对话动作,包括:将所述实体关系和属性信息、所述用户的预测意图、所述医学实体、预测的动作以及词槽输入到所述对话管理子模型的第一个Transformer模型中,得到所述对话的嵌入表示和系统动作的嵌入表示;其中每个节点的特征和形状更新公式为:,

其中, 是节点 和节点 之间边的权重, 和 是权重和向量,是激活函数,为节点的嵌入向量;

将所述对话的嵌入表示和所述系统动作的嵌入表示通过点积的方式计算相似度,然后再计算不匹配的操作和所述对话的嵌入表示之间的相似度,根据得到的两个相似度通过嵌入层处理,得到第一当前对话状态和第一系统对话动作。

9.根据权利要求6所述的方法,其特征在于,所述对话管理子模型的损失函数为:

其中,为对话的嵌入表示和系统动作的嵌入表示之间的相似度, 为不匹配的操作和对话的嵌入表示之间的相似度; 为第i个Transformer模型的损失函数,为对话管理子模型的损失函数,n为Transformer模型的数量。

说明书 :

基于Transformer和知识图谱的智能交互方法

技术领域

[0001] 本申请涉及数据处理技术领域,特别是涉及一种基于Transformer和知识图谱的智能交互方法。

背景技术

[0002] 近年来,随着人工智能和大数据技术的不断发展,智能健康机器人已经成为医疗领域的一种重要趋势。智能健康机器人作为一种智能化医疗设备,具备许多优势,例如可以随时随地为用户提供健康咨询、自我诊断和预防保健等服务,从而使用户更加便利地获得医疗服务,同时也减轻了医生的工作压力。
[0003] 智能健康机器人的核心是智能问诊系统,目前市面上的智能问诊系统主要存在以下问题:首先,这些系统的交互方式通常比较固定,只能按照规定的步骤进行,无法中途进行切换,相关功能单一,并且交互方式多为手动选择固定选项,缺乏上下文理解能力,交流方式死板固定。其次,目前的智能问诊系统主要使用关键词匹配或用户点选的方式获取用户的意图,之后按照固定模式进行交互。这种方式的智能化程度不高,无法准确理解用户的意图,也无法快速诊断用户可能患有的疾病。此外,这些系统只能进行简单的对话交互获取病症信息,无法利用外部其他辅助检测设备来获取用户体征数据,诊断准确率不高。这些问题不仅会影响智能健康机器人为用户提供医疗服务的质量和效率,而且还会增加用户的医疗风险和医疗成本。

发明内容

[0004] 基于此,有必要针对上述技术问题,提供一种基于Transformer和知识图谱的智能交互方法。
[0005] 一种基于Transformer和知识图谱的智能交互方法,所述方法包括:
[0006] 获取用户输入的对话文本信息。
[0007] 将所述对话文本信息进行预处理后采用实体提取和意图理解神经网络模型提取用户的预测意图和所述对话文本信息中的预测实体;所述实体提取和意图理解神经网络模型包括:语义理解模块、实体和意图联合提取模块,所述语义理解模块是改进的基于N‑gram masking的预训练模型;所述语义理解模块用于采用基于N‑gram masking改进的预训练模型来生成对话文本的向量化表示,作为文本序列的密集特征;所述实体和意图联合提取模块用于将用户的输入文本序列转换为基于字符的one‑hot编码和基于词语的n‑gram编码的稀疏特征,然后再将密集特征和经过dropout处理后的稀疏特征结合,并将结合后得到的特征采用两层Transformer对句子进行上下文编码,编码完成后通过在序列之上的实体提取层预测实体,根据编码结果和用户意图的嵌入表示提取用户的预测意图。
[0008] 对所述预测实体进行正则纠偏处理,得到所述对话文本信息中的医学实体。
[0009] 根据所述用户的预测意图、所述医学实体以及储存有常见疾病的专业医学知识的知识图谱,采用基于层次结构的联合模型进行对话控制和决策,得到交互结果,并返回所述交互结果给用户;所述基于层次结构的联合模型包括知识图谱推理子模型和对话管理子模型;所述对话管理子模型用于根据获取的知识图谱中的专业医学知识判断该对话接下来为单轮对话还是多轮对话,若为单轮对话就使用获取的知识直接生成交互结果返回给用户,若为多轮对话,则判断当前获取的问诊信息是否足够,若足够就使用当前获取的信息生成结果返回给用户,若不足就接着与用户进行对话交互,直到信息足够后,生成交互结果返回给用户。
[0010] 在其中一个实施例中,将所述对话文本信息进行预处理后采用实体提取和意图理解神经网络模型提取用户的预测意图和所述对话文本信息中的预测实体,包括:
[0011] 将所述对话文本信息进行预处理,得到输入文本序列和意图标签。
[0012] 将所述输入文本序列输入到改进的基于N‑gram masking的预训练模型中生成对话文本的向量表示,得到输入文本的密集特征。
[0013] 将所述输入文本序列、所述意图标签、以及所述密集特征输入到所述实体和意图联合提取模块中,得到用户的预测意图和所述对话文本信息中的预测实体。
[0014] 在其中一个实施例中,所述实体和意图联合提取模块包括前馈神经网络、嵌入层、两层Transformer、实体提取层以及意图提取层。
[0015] 将所述输入文本序列、所述意图标签、以及所述密集特征输入到所述实体和意图联合提取模块中,得到用户的预测意图和所述对话文本信息中的预测实体,包括:
[0016] 将所述输入文本序列输入到实体和意图联合提取模块中进行编码,得到基于字符的one‑hot编码和基于词语的n‑gram编码的稀疏特征。
[0017] 将所述稀疏特征采用一次dropout后得到特征和所述密集特征输入到所述前馈神经网络中,得到结合特征。
[0018] 将所述结合特征输入到所述两层Transformer中,得到上下文编码。
[0019] 将所述上下文编码输入到所述实体提取层中;得到预测实体。
[0020] 根据所述预测实体和所述输入文本序列,确定预测实体的损失函数。
[0021] 将所述意图标签通过嵌入层处理后和通过所述两层Transformer输出的预测意图标签嵌入到同一语义向量空间计算相似度,确定预测意图的损失函数。
[0022] 将所述预测实体的损失函数和所述预测意图的损失函数相加,得到联合损失函数。
[0023] 根据所述预测实体和所述预测意图标签,采用最小化所述联合损失函数的方式对所述实体提取和意图理解神经网络模型进行反向训练,得到训练好的实体提取和意图理解神经网络模型。
[0024] 在其中一个实施例中,所述预测实体的损失函数为:
[0025] ;
[0026] 其中, 为预测实体的损失函数, 为预测的实体序列,为输入的序列,为条件随机场CRF的对数似然可能性。
[0027] 所述预测意图的损失函数为:
[0028] ;
[0029] 其中, 为预测意图的损失函数, 为预测的意图标签向量空间表示, 为输入的意图标签的向量空间表示。
[0030] 在其中一个实施例中,所述改进的基于N‑gram masking的预训练模型包括:嵌入处理层和多层Transformer结构;所述改进的基于N‑gram masking的预训练模型是利用N‑gram masking的掩码方式改进的预训练模型,所述N‑gram masking的掩码方式用于采用一个长度可变的N个字符的滑动窗口,在每次进行掩码操作时,可以一次性遮掩N个字符。
[0031] 将所述输入文本序列输入到改进的基于N‑gram masking的预训练模型中生成对话文本的向量表示,得到输入文本的密集特征,包括:
[0032] 将所述输入文本序列输入到所述嵌入处理层中,依次经过词嵌入、句子嵌入、位置嵌入处理,并将得到的处理结果出入到多层Transformer结构中生成对话文本的向量表示,得到输入文本的密集特征。
[0033] 在其中一个实施例中,所述对话管理子模型包括若干个Transformer模型和嵌入层。
[0034] 根据所述用户的预测意图、所述医学实体以及储存有常见疾病的专业医学知识的知识图谱,采用基于层次结构的联合模型进行对话控制和决策,得到交互结果,并返回所述交互结果给用户,包括:
[0035] 将储存有常见疾病的专业医学知识的知识图谱和当前对话文本信息输入到所述知识图谱推理子模型中通过图神经网络对知识图谱进行表示和推理,得到实体关系和属性信息。
[0036] 将所述实体关系和属性信息、所述用户的预测意图、所述医学实体、预测的动作以及词槽输入到所述对话管理子模型的第一个Transformer模型中,并将得到的解码结果通过嵌入层,得到第一当前对话状态和第一系统对话动作。
[0037] 若对话为单轮对话,则使用获取的知识直接生成交互结果返回给用户。
[0038] 若对话为多轮对话,则将所述第一系统对话动作、所述用户的预测意图、所述医学实体以及所述实体关系和属性信息输入到第二个Transformer模型中,并将得到的解码结果通过嵌入层,得到第二当前对话状态和第二系统对话动作,以此类推,直到对话轮数达到预设最长预测值,得到交互结果并返回给用户。
[0039] 在其中一个实施例中,若对话为多轮对话,则将所述第一系统对话动作、所述用户的预测意图、所述医学实体以及所述实体关系和属性信息输入到第二个Transformer模型中,并将得到的解码结果通过嵌入层,得到第二当前对话状态和第二系统对话动作,以此类推,直到对话轮数达到预设最长预测值,得到交互结果并返回给用户,包括:
[0040] 若对话为多轮对话,则判断当前获取的对话文本信息是否足够。
[0041] 如果信息足够,则将所述第一系统对话动作、所述用户的预测意图、所述医学实体以及所述实体关系和属性信息输入到第二个Transformer模型中,并将得到的解码结果通过嵌入层,得到第二当前对话状态和第二系统对话动作。
[0042] 如果信息不够,则判断是否需要用户更多的体检数据,如果需要用户的体检数据,则生成对话信息向用户寻求更多的体检数据,用于下一步进行诊断使用;若不需要用户的体检数据,则直接与用户进行下一轮交互,获取用户口述的症状信息。
[0043] 以此类推,直到对话轮数达到预设最长预测值,得到交互结果并返回给用户。
[0044] 在其中一个实施例中,将所述实体关系和属性信息、所述用户的预测意图、所述医学实体、预测的动作以及词槽输入到所述对话管理子模型的第一个Transformer模型中,并将得到的解码结果通过嵌入层,得到第一当前对话状态和第一系统对话动作,包括:
[0045] 将所述实体关系和属性信息、所述用户的预测意图、所述医学实体、预测的动作以及词槽输入到所述对话管理子模型的第一个Transformer模型中,得到所述对话的嵌入表示和所述系统动作的嵌入表示;其中Transformer模型中每个节点的特征和形状更新公式为:
[0046] ;
[0047] 其中, 是节点 和节点 之间边的权重, 和 是权重和向量,是激活函数,为节点的嵌入向量。
[0048] 将所述对话的嵌入表示和所述系统动作的嵌入表示通过点积的方式计算相似度,然后再计算不匹配的操作和所述对话的嵌入表示之间的相似度,根据得到的两个相似度通过嵌入层处理,得到第一当前对话状态和第一系统对话动作;
[0049] 在其中一个实施例中,对话管理子模型的损失函数为:
[0050] ;
[0051] 其中,为对话的嵌入表示和系统动作的嵌入表示之间的相似度, 为不匹配的操作和对话的嵌入表示之间的相似度; 为第i个Transformer模型的损失函数,为对话管理子模型的损失函数,n为Transformer模型的数量。
[0052] 上述基于Transformer和知识图谱的智能交互方法,所述方法采用了N‑gram掩码方法进行预训练模型的训练,以处理医学领域中的稀疏数据问题,提高预训练模型在处理稀疏数据时的效果。预训练模型生成的词向量可以提高模型的泛化能力和效率,在处理医疗领域的专业术语和问题时可以更加准确和高效;在智能交互过程中,采用Transformer进行特征和意图的联合提取可以提高模型的准确率,并避免因意图和实体之间的不一致性导致的误判。采用稀疏特征和词向量联合输入的方式,可以综合利用不同类型的特征,提高模型的准确性;使用稀疏特征和词向量联合的方式,可以充分利用特征之间的关联和词向量的语义信息,从而提高模型的泛化能力和效果。本方法在医疗领域中发挥着重要的作用,不仅可以帮助用户更方便地获取医疗服务,而且可以帮助医生提高诊断效率和准确性。

附图说明

[0053] 图1为一个实施例中基于Transformer和知识图谱的智能交互方法的流程示意图;
[0054] 图2为另一个实施例中实体提取和意图理解神经网络模型的结构示意图;
[0055] 图3为另一个实施例中掩码方式的对比,其中(a)为原始的掩码方式,(b)为改进的基于N‑gram masking的掩码方式;
[0056] 图4为另一个实施例中基于层次结构的联合模型的结构示意图;
[0057] 图5为另一个实施例中基于Transformer和知识图谱的智能交互方法应用流程示意图。

具体实施方式

[0058] 为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
[0059] 本申请提出基于Transformer和知识图谱的智能交互方法可以适用于健康机器人上的基于深度神经网络的智能问诊系统,该系统可以处理数十种用户的问诊意图。获取用户对话内容后,系统首先通过深度神经网络模型准确获取用户的对话意图和对话内容中的病症实体。然后,采用基于层次结构的联合模型进行对话管理,该模型是一种结合知识图谱进行对话管理的联合训练方法。之后对于单轮问诊意图,智能问诊系统通过专业的医疗知识图谱直接生成答案并回复客户;对于需要多轮交互解决的问诊意图,系统结合专业的医疗知识图谱,指导用户使用健康机器人自带的体征检测设备进行体检获取体征数据,同时通过对话获取更全面的病症信息。在获得足够上下文信息后,智能问诊系统可以生成对应的疾病预测信息给用户,从而提高诊断准确性和效率。此外,采用本方法的智能问诊系统还可以为用户提供更加智能化和高效的医疗服务,降低医疗风险和成本。
[0060] 在一个实施例中,如图1所示,提供了一种基于Transformer和知识图谱的智能交互方法,该方法包括以下步骤:
[0061] 步骤100:获取用户输入的对话文本信息。
[0062] 具体的,用户根据智能问诊系统的引导输入自己的相关症状信息,输入方式可以为语音和文字;如果输入方式为语音方式,则将语音信息转换为文本信息。
[0063] 步骤102:将对话文本信息进行预处理后采用实体提取和意图理解神经网络模型提取用户的预测意图和对话文本信息中的预测实体。
[0064] 实体提取和意图理解神经网络模型包括:语义理解模块和实体与意图联合提取模块。
[0065] 语义理解模块,用于采用基于N‑gram masking改进的预训练模型来生成对话文本的向量化表示,作为文本序列的密集特征。
[0066] 实体与意图联合提取模块,用于将用户的输入文本序列转换为基于字符的one‑hot编码和基于词语的n‑gram编码的稀疏特征,然后再将密集特征和经过dropout处理后的稀疏特征结合,并将结合后得到的特征采用两层Transformer对句子进行上下文编码,编码完成后通过在序列之上的实体提取层预测实体,根据编码结果和用户意图的嵌入表示提取用户的预测意图。
[0067] 具体的,获取用户的输入对话文本信息后,调用内部的语义理解模块,该模块使用预训练模型来生成对话文本的向量化表示,用于得到准确标准文本的语义信息。
[0068] 对话文本信息进行预处理是指将对话文本信息就进行分词处理,生成以[CLS]开头的,SEP结尾的([CLS]Tok1 Tok2 … Tokn [SEP])的文本序列。
[0069] 实体提取和意图理解神经网络模型的具体结构如图2所示。
[0070] 步骤104:对预测实体进行正则纠偏处理,得到对话文本信息中的医学实体。
[0071] 具体的,正则纠偏模块是使用预先处理出的标准医学实体和模型提取出的实体使用正则表达式的方式进行比对,将识别的错误的实体或用户输入的疾病实体同义词替换为标准的医学实体词,进一步提高系统的实体识别准确率。
[0072] 步骤106:根据用户的预测意图、医学实体以及储存有常见疾病的专业医学知识的知识图谱,采用基于层次结构的联合模型进行对话控制和决策,得到交互结果,并返回交互结果给用户;基于层次结构的联合模型包括知识图谱推理子模型和对话管理子模型;对话管理子模型用于根据获取的知识图谱中的专业医学知识判断该对话接下来为单轮对话还是多轮对话,若为单轮对话就使用获取的知识直接生成交互结果返回给用户,若为多轮对话,则判断当前获取的问诊信息是否足够,若足够就使用当前获取的信息生成结果返回给用户,若不足就接着与用户进行对话交互,直到信息足够后,生成交互结果返回给用户。
[0073] 具体的,知识图谱中储存有所有常见疾病的专业医学知识,包括症状、疾病、并发症、药品、治疗方法、科室、检查、食物建议、性别、年龄等信息。
[0074] 在知识图谱推理子模型中,根据前面预测的动作和相应的实体及意图信息生成一个知识图谱查询语句,获取到知识图谱中的专业医学知识后,将知识返回到对话管理模块中。
[0075] 知识图谱推理子模型使用的是图神经网络模型,图神经网络是一种能够处理图数据的神经网络模型,它可以有效地捕捉图中节点之间的关系和特征具体来说,知识图谱推理子模型分为两个部分:表示学习和推理。在表示学习部分,模型使用图神经网络对知识图谱数据进行表示学习,从而得到每个实体和关系的向量表示。这些向量表示用于推理部分。在推理部分,模型使用向量表示对实体关系和属性信息进行推理。本发明是基于一种利用神经网络模型进行推理的方法,它可以根据已知的实体关系和属性信息推导出新的实体关系和属性信息。这些推理结果用于对话管理子模型中的解码过程。
[0076] 知识图谱推理子模型主要有以下特点:1)知识图谱表示,通常由节点和边表示,实体就是图谱中的点,关系就是连接节点的边;2)实体和关系嵌入,为了将知识图谱中的实体和关系表示为连续向量,需要使用嵌入技术实体和关系映射到低维空间。这些嵌入向量将作为模型的输入。3)模型就是一个目前常用的图神经网络。
[0077] 上述基于Transformer和知识图谱的智能交互方法中,所述方法采用了N‑gram掩码方法进行预训练模型的训练,以处理医学领域中的稀疏数据问题,提高预训练模型在处理稀疏数据时的效果。预训练模型生成的词向量可以提高模型的泛化能力和效率,在处理医疗领域的专业术语和问题时可以更加准确和高效;在智能交互过程中,采用Transformer进行特征和意图的联合提取可以提高模型的准确率,并避免因意图和实体之间的不一致性导致的误判。采用稀疏特征和词向量联合输入的方式,可以综合利用不同类型的特征,提高模型的准确性;使用稀疏特征和词向量联合的方式,可以充分利用特征之间的关联和词向量的语义信息,从而提高模型的泛化能力和效果。本方法在医疗领域中发挥着重要的作用,不仅可以帮助用户更方便地获取医疗服务,而且可以帮助医生提高诊断效率和准确性。
[0078] 在其中一个实施例中,步骤102具体包括如下步骤:
[0079] 步骤200:将对话文本信息进行预处理,得到输入文本序列和意图标签。
[0080] 步骤202:将输入文本序列输入到改进的基于N‑gram masking的预训练模型中生成对话文本的向量表示,得到输入文本的密集特征。
[0081] 具体的,改进的基于N‑gram masking的预训练模型,利用N‑gram修改原始预训练模型的掩码方式,可以让模型在训练的过程中考虑不同的文字组合;基于N‑gram masking改进的预训练模型同时考虑文本中包含的字符级别序列特征和单词或短语的序列特征,可以充分表达连续文本的内在联系和语言结构的表达能力,拥有更好的词向量表达能力。图3为掩码方式的对比,图3中(a)为原始的掩码方式,图3(b)为改进的基于N‑gram masking的掩码方式。
[0082] 本实施例设计了一个长度可变的N个字符的滑动窗口,在每次进行掩码操作时,可以一次性遮掩N个字符,具体方式如下图3中(b)所示,图中虚线框代表可变长度的滑动窗口。
[0083] 经过改进的基于N‑Gram masking的预训练模型具有24层Transformer结构,1024个隐藏单元和16个多头注意力。具体结构如下图2所示的左侧虚线框内的语义理解模块,用户输入的语句经过处理,生成以[CLS]开头的,SEP结尾的([CLS]Tok1 Tok2 … Tok3 [SEP])的序列后输入模型,经过处理后生成输入的上下文向量表示,即为后续模块中的密集特征输入。
[0084] 步骤204:将输入文本序列、意图标签、以及密集特征输入到实体和意图联合提取模块中,得到用户的预测意图和对话文本信息中的预测实体。
[0085] 在医学领域中,特征包括症状、体征、药物、病史等,数量和类型都非常丰富和多样化。
[0086] 在其中一个实施例中,实体和意图联合提取模块包括前馈神经网络、嵌入层、两层Transformer、实体提取层以及意图提取层;步骤204包括:将输入文本序列输入到实体和意图联合提取模块中进行编码,得到基于字符的one‑hot编码和基于词语的n‑gram编码的稀疏特征;将稀疏特征采用一次dropout后得到特征和密集特征输入到前馈神经网络中,得到结合特征;将结合特征输入到两层Transformer中,得到上下文编码;将上下文编码输入到实体提取层中;得到预测实体;根据预测实体和输入文本序列,确定预测实体的损失函数;将意图标签通过嵌入层处理后和通过两层Transformer输出的预测意图标签嵌入到同一语义向量空间计算相似度,确定预测意图的损失函数;将预测实体的损失函数和预测意图的损失函数相加,得到联合损失函数;根据预测实体和预测意图标签,采用最小化联合损失函数的方式对实体提取和意图理解神经网络模型进行反向训练,得到训练好的实体提取和意图理解神经网络模型。
[0087] 具体的,在实体和意图联合提取模块中,前馈神经网络是简单的人工神经网络,一个全连接层,第一个前馈神经网络就是把输入向量映射到高维空间,并作了dropout,第二个前馈神经网络就是接受两个特征向量并将他们拼接起来的网络;嵌入层是将实际意图和预测的意图嵌入到同一个向量空间,然后求向量之间的相似度;实体提取层是为一个全连接网络,用来将Transformer输出的向量映射到实体类型和非实体类型的标签;意图提取层是一个全连接网络,用来将Transformer输出的向量映射到意图类型的标签,通过softmax获取每个意图的概率分布,取最高的那个。
[0088] 在其中一个实施例中,预测实体的损失函数为:
[0089] (1)
[0090] 其中, 为预测实体的损失函数, 为预测的实体序列,为输入的序列,为条件随机场CRF的对数似然可能性。
[0091] 预测意图的损失函数为:
[0092] (2)
[0093] 其中, 为预测意图的损失函数, 为预测的意图标签向量空间表示, 为输入的意图标签的向量空间表示。
[0094] 具体的,实体和意图联合提取模块是一个同时包含了实体提取和意图识别的多任务模型,实体和意图联合提取模块的结构如图2右侧虚线框所示。实体和意图联合提取模块的具体流程为,模型首先获取语义理解模块生成的用户输入语句的密集特征,之后该模块将用户输入转换为基于字符的one‑hot编码和基于词语的n‑gram编码的稀疏特征。这样生成的稀疏特征包含许多冗余信息,为避免过拟合,系统将对这些稀疏特征应用一次dropout,最后通过前馈神经网络将密集特征和经过dropout的稀疏特征结合起来进行下一步任务,经过实验这种组合的方式可以提高模型在任务上的准确性;在获取输入特征后,模型使用两层Transformer对句子进行上下文编码,编码完成后通过在序列之上的实体提取层预测实体。预测实体的损失值计算公式如式(2)所示。
[0095] 意图分类则通过Transformer输出的__CLS__词符和输入的意图标签嵌入到同一个语义向量空间计算相似度,具体计算公式如下:
[0096] (3)
[0097] (4)
[0098] (5)
[0099] 其中, 为预测的标签向量空间表示, 为实际的标签的向量空间表示,之后将 和 嵌入到一个空间中, 为损失函数,该损失函数的计算方法为将 和的差值取负数,通过最小化该损失函数,可以使模型更准确地预测每个意图的概率。
[0100] 随后将预测意图的损失值和预测实体的损失值,相加得到一个总的损失值,如下所示:
[0101] (6)
[0102] 其中 为总损失值,本发明通过最小化这种联合的损失函数来训练模型实现模型实体和意图的多任务联合提取。
[0103] 在其中一个实施例中,改进的基于N‑gram masking的预训练模型包括:嵌入处理层和多层Transformer结构;改进的基于N‑gram masking的预训练模型是利用N‑gram masking的掩码方式改进的预训练模型,N‑gram masking的掩码方式用于采用一个长度可变的N个字符的滑动窗口,在每次进行掩码操作时,可以一次性遮掩N个字符;步骤202包括:将输入文本序列输入到嵌入处理层中,依次经过词嵌入、句子嵌入、位置嵌入处理,并将得到的处理结果出入到多层Transformer结构中生成对话文本的向量表示,得到输入文本的密集特征。
[0104] 在其中一个实施例中,对话管理子模型包括若干个Transformer模型和嵌入层;步骤106包括:将储存有常见疾病的专业医学知识的知识图谱和当前对话文本信息输入到知识图谱推理子模型中通过图神经网络对知识图谱进行表示和推理,得到实体关系和属性信息;将实体关系和属性信息、用户的预测意图、医学实体、预测的动作以及词槽输入到对话管理子模型的第一个Transformer模型中,并将得到的解码结果通过嵌入层,得到第一当前对话状态和第一系统对话动作;若对话为单轮对话,则使用获取的知识直接生成交互结果返回给用户;若对话为多轮对话,则将第一系统对话动作、用户的预测意图、医学实体以及实体关系和属性信息输入到第二个Transformer模型中,并将得到的解码结果通过嵌入层,得到第二当前对话状态和第二系统对话动作,以此类推,直到对话轮数达到预设最长预测值,得到交互结果并返回给用户。
[0105] 具体的,若干个Transformer模型中Transformer模型的数量是根据对话轮数不同而变化的,因为不同的对话因为对话轮数的不同,导致使用的Transformer模型的个数是不同的,但是使用的单个Transformer模型是相同的。
[0106] 词槽的含义是:在对话管理中有一个表单的概念,比如我要买机票,该句对话就需要填写一个表单,该表单有三个值,时间,出发地,目的地,对应的就有三个词槽,需要填写这三个值。
[0107] 在其中一个实施例中,若对话为多轮对话,则将第一系统对话动作、用户的预测意图、医学实体以及实体关系和属性信息输入到第二个Transformer模型中,并将得到的解码结果通过嵌入层,得到第二当前对话状态和第二系统对话动作,以此类推,直到对话轮数达到预设最长预测值,得到交互结果并返回给用户,包括:若对话为多轮对话,则判断当前获取的对话文本信息是否足够;如果信息足够,则将第一系统对话动作、用户的预测意图、医学实体以及实体关系和属性信息输入到第二个Transformer模型中,并将得到的解码结果通过嵌入层,得到第二当前对话状态和第二系统对话动作;如果信息不够,则判断是否需要用户更多的体检数据,如果需要用户的体检数据,则生成对话信息向用户寻求更多的体检数据,用于下一步进行诊断使用;若不需要用户的体检数据,则直接与用户进行下一轮交互,获取用户口述的症状信息;以此类推,直到对话轮数达到预设最长预测值,得到交互结果并返回给用户。
[0108] 具体的,对话管理模块在获取到知识图谱中的专业医学知识后会判断该对话接下来为单轮对话还是多轮对话,若为单轮对话就使用获取的知识直接生成回复返回给用户,若为多轮对话就使用判断当前获取的问诊信息是否足够,若足够就使用当前获取的信息生成结果,若不足就接着与用户进行对话交互。
[0109] 在获取的诊断信息不足以生成诊断信息后,该模块将生成对话信息向用户寻求更多的体检数据,待用户确认相关请求后,该系统将指导用户使用机器人附带的体检设备进行体检,待数据采集完成后,将体检数据返回给问诊系统,用于下一步进行诊断来使用。若不需要用户的体检数据,系统将跳过这一步骤,直接与用户进行下一轮交互,获取用户口述的症状信息。
[0110] 体检数据可以通过健康机器人自带的体检设备获得,包括但不限于血压、血糖、血脂、血氧、尿酸、胆固醇、体温、心电等体征的专业体检。
[0111] 本方法通过与用户进行交互获取足够的诊断信息或者用户的其它问诊意图信息后,根据知识图谱返回的专业医学知识,为用户生成诊断结果,并生成相应的病历信息保存至用户的个人健康档案中,方便用户的进一步就医。
[0112] 在其中一个实施例中,将实体关系和属性信息、用户的预测意图、医学实体、预测的动作以及词槽输入到对话管理子模型的第一个Transformer模型中,并将得到的解码结果通过嵌入层,得到第一当前对话状态和第一系统对话动作,包括:将实体关系和属性信息、用户的预测意图、医学实体、预测的动作以及词槽输入到对话管理子模型的第一个Transformer模型中,得到对话的嵌入表示和系统动作的嵌入表示;其中Transformer模型中每个节点的特征和形状更新公式为:
[0113] (7)
[0114] 其中, 是节点 和节点 之间边的权重, 和 是权重和向量,是激活函数,为节点的嵌入向量。
[0115] 将对话的嵌入表示和系统动作的嵌入表示通过点积的方式计算相似度,然后再计算不匹配的操作和对话的嵌入表示之间的相似度,根据得到的两个相似度通过嵌入层处理,得到第一当前对话状态和第一系统对话动作。
[0116] 在其中一个实施例中,对话管理子模型的损失函数为:
[0117](8)
[0118] 其中,为对话的嵌入表示和系统动作的嵌入表示之间的相似度, 为不匹配的操作和对话的嵌入表示之间的相似度; 为第i个Transformer模型的损失函数,为对话管理子模型的损失函数,n为Transformer模型的数量。
[0119] 具体的,对话管理是基于层次结构的联合模型进行对话控制和决策的。该模型是一种将知识图谱推理用于对话管理的联合模型,主要是将两个子模型通 过共享一些中间层参数来实现训练的方法。具体地,对话管理子模型通过Transformer模型对对话数据进行编码和解码,得到当前对话状态和可能的系统对话动作。知识图谱推理子模型通过图神经网络对知识图谱数据进行表示学习和推理,得到实体关系和属性信息。最后通过将知识图谱推理子模型的数据输入对话管理子模型来进行训练。
[0120] 在知识图谱推理子模型中,使用的是图神经网络模型,图神经网络是一种能够处理图数据的神经网络模型,它可以有效地捕捉图中节点之间的关系和特征具体来说,知识图谱推理子模型分为两个部分:表示学习和推理。在表示学习部分,模型使用图神经网络对知识图谱数据进行表示学习,从而得到每个实体和关系的向量表示。这些向量表示用于推理部分。在推理部分,模型使用向量表示对实体关系和属性信息进行推理。本文是基于一种利用神经网络模型进行推理的方法,它可以根据已知的实体关系和属性信息推导出新的实体关系和属性信息。这些推理结果用于对话管理子模型中的解码过程。具体过程如图5,每个节点的特征和形状更新公式如式(7)所示。
[0121] 在对话管理子模型中,将预测的动作、词槽、上文提取的用户意图和实体以及知识图谱推理子模型生成的实体关系和属性信息输出一同输入Transformer模型中,通过这些丰富的输入信息可以使得对话管理子模型可以更好地理解用户的意图和需求。训练时通过联合训练每个对话状态和系统动作之间的相似度来进行计算,一次完整的对话总的损失函数,为每轮对话损失值的平均值。推理时直接选取与当前对话的对话相似度最高的动作作为系统动作即可。具体计算公式如下:
[0122] )(9)
[0123] 其中, 为Transformer输出的对话的嵌入,表示 为和系统动作的嵌入,为嵌入操作,表示为映射到一个语义向量空间。
[0124] 相似度通过点积的方式来计算,计算公式如下:
[0125] (10)
[0126] 之后再计算不匹配的操作和Transformer输出对话之间的相似度的最大值 ,同样是嵌入到一个语义向量空间,不匹配的操作表示为 ,计算公式为:
[0127] (11)
[0128] 之后再通过如式(8)所示公式来计算损失值。
[0129] 基于层次结构的联合模型的结构如图4所示,每一次经过Transformer为一次对话,训练时可以设置最长预测多少次对话。
[0130] 在一个具体的实施例中,如图5所示的流程示意图,提供了基于Transformer和知识图谱的智能交互方法应用于健康机器人上的基于深度神经网络的智能问诊系统中的具体实时方案。具体步骤如图所示:
[0131] T1: 用户打开健康机器人选择智能问诊APP进入智能问诊系统,选择注册的个人账号后进入问诊页面,机器人参考超能小康智能健康机器人;该健康机器人带有血压、血糖、血氧、血脂、尿酸、胆固醇、心电、体温等体检设备,相关体检数据可以实时传入智能问诊系统;
[0132] T2:机器人欢迎用户使用,并根据用户的个人账户获取用户的初始个人信息(如年龄、性别和历史体检记录),使用这些个人信息对知识图谱中的疾病信息进行过滤,减轻后续的查询信息量,同时在对话页面上显示针对不同用户的个性化问诊功能推荐。
[0133] T3:用户根据个人的需求,使用语音或文字输入问诊内容,比如症状,如“头痛是什么疾病”,也可以是询问疾病的治疗药物、治疗方法、预防措施或相关的诊断科室等。
[0134] T4:系统在该模块中使用预训练好的语言模型将用户输入的文本转换为向量化表示,以便准确的表示该段文本的语义特征信息。
[0135] T5:将语义理解模块中生成的包含密集特征的词向量和使用用户输入文本生成的稀疏特征一同输入实体提取和意图识别联合提起模型,获取用户输入文本的医学实体和相关意图。如“头痛是什么疾病”这句话,其医学实体为“头痛”,意图为症状查询可能患有的疾病。
[0136] T6:在该模块中使用正则表达式,根据预先设定的医学实体表,对提取的实体进行纠错,如识别出的实体为“肚子痛”,就可以根据预先设定的同义词表替换为医学标准词“腹痛”,以便在专业医疗知识图谱中查询相关信息。
[0137] T7:对话管理模块根据相关预先设定的对话模式,判断该意图为多轮对话,在查询知识图谱后,获取与发烧相关的症状和疾病信息,以便进行下一轮对话。
[0138] T8:保存有常见疾病的专业医学信息,包括疾病、症状、药物、检查、治疗方法、科室等数十种信息。
[0139] T9:根据对话管理反馈的信息判断诊断信息是否足够,如上述的头痛,可以知道仅仅依靠头痛是无法准确诊断信息的,因此判断为否,进入T10的体检判断模块。
[0140] T10:在该模块中判断该疾病是否需要进行体检来辅助诊断,因为头痛与血压、血糖和体温等都有关联,因此提示用户使用机器人自带的体检设备进行体检。
[0141] T11:用户选择进行体检后,问诊系统调用机器人上的体检设备并指定用户使用该设备进行体检获取体检数据,体检数据将实时传输至问诊系统。
[0142] T12:使用体检设备的数据或用户输入的文字作为问诊的内容与系统进行多轮交互后,问诊系统获取到足够的诊断信息,此时系统通过已获取的知识,生成诊断结果给用户,同时将相关的信息整理成病历保存到用户的个人信息档案,用来进行用户的健康信息管理。
[0143] 传统的智能问诊系统主要依靠用户输入的症状、体征等信息进行诊断,但这些信息可能存在误差和不完整性,导致诊断结果的不准确。本发明通过引入专业体检设备数据作为输入,提高了诊断结果的可信度和准确性。专业体检设备可以测量用户的生理参数、病情指标等数据,例如血压、心率、血糖、血脂等,这些数据可以提供更加客观和准确的医疗信息,帮助智能问诊系统做出更加科学和精准的诊断结果。同时本发明通过使用结合知识图谱知识的Transformer进行对话管理和预测,可以和用户更自然的进行多轮对话交流,更符合用户日常的使用习惯,提高了用户的使用体验。
[0144] 应该理解的是,虽然图1和图5的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1和图5中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
[0145] 以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0146] 以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。