当前位置: 首页 > 专利查询>重庆大学专利>正文

一种基于对话状态指导的端到端任务型对话系统技术方案

技术编号:37848262 阅读:9 留言:0更新日期:2023-06-14 22:34
本发明专利技术提出了一种基于对话状态指导的端到端任务型对话系统,包括:信息存储结构:用于存储对话内容和与对话相关的知识库信息;层次型编码器:对对话进行编码,获得对话内容的语义表示;对话状态跟踪器:用于根据对话内容获得对话状态向量,并根据对话状态向量对信息存储结构的知识库信息进行检索;复制增强解码器:用于将信息存储结构中的知识融入到生成的回复中,得到最终回复。本发明专利技术将对话状态跟踪模块与Seq2Seq模型结合,采用一组可学习的向量表示对话状态,向量组表示的对话状态不破坏系统端到端可学习的特性。系统端到端可学习的特性。系统端到端可学习的特性。

【技术实现步骤摘要】
一种基于对话状态指导的端到端任务型对话系统


[0001]本专利技术涉及自然语言处理
,特别是涉及一种基于对话状态指导的端到端任务型对话系统。

技术介绍

[0002]流水线式任务型对话系统一般由自然语言理解、对话状态跟踪、对话决策、自然语言生成四大模块构成,分别实现意图识别、槽位填充、策略学习、回复生成等工作。每个模块需要单独训练,并且都需要大量特定格式的人工标注数据,模块的输出会作为下一模块的输入,最后由自然语言模块生成最终的回复。对话状态跟踪模块是流水线式任务型对话系统中很重要的一部分,它的任务是跟踪隐藏在对话内容中的对话状态,有效的对话状态跟踪模块可以辅助系统检索外部知识库。流水线式任务型对话方法使用多个槽

值对来表示对话状态,指导后续模块发起API进行外部知识库检索。但这种对话状态跟踪组件需要特定的数据和单独训练,难以用于端到端的系统中。基于Seq2Seq的端到端任务型对话方法将对话视为从对话内容到回复的映射问题,这种方法虽然结构简单但难以将外部知识融入到回复生成过程中。Seq2Seq模型的编码器在编码时将多轮对话拼接成一个词序列作为编码器的输入,忽略了对话的多轮结构信息。模型在解码过程中只考虑将外部知识库信息融入生成的回复中,然而对话内容通常也会包含一定的知识,这一部分信息对解码器的解码过程同样十分重要。此外,对话状态指导为解决OOV问题,将对话历史和知识库中的所有词汇引入词汇表,解码时词源选择也是一个棘手的问题。
[0003]因此当前对话状态指导的端到端任务型对话方法主要存在以下挑战:

端到端模型无法显示检索外部知识库,所以外部知识难以有效地融入生成的回复中。

编码器忽略了对话的多轮结构信息。

对话状态指导的任务型对话系统在解码过程中没有充分利用对话内容中的知识信息。

解码器在生成过程中难以从多个词源中进行选择。

技术实现思路

[0004]本专利技术旨在至少解决现有技术中存在的技术问题,特别创新地提出了一种基于对话状态指导的端到端任务型对话系统。
[0005]为了实现本专利技术的上述目的,本专利技术提供了一种基于对话状态指导的端到端任务型对话系统,包括:
[0006]信息存储结构:用于存储对话内容和与对话相关的知识库信息;
[0007]层次型编码器:对对话进行编码,获得对话内容的语义表示;
[0008]对话状态跟踪器:用于根据对话内容获得对话状态向量,并根据对话状态向量对信息存储结构的知识库信息进行检索;
[0009]复制增强解码器:用于将信息存储结构中的知识融入到生成的回复中,得到最终回复。
[0010]进一步地,所述信息存储结构包括:
[0011]知识存储模块,用于存储与对话相关的结构化知识,每一行存储着知识库中某个主题结点相关的所有属性信息;
[0012]对话内容存储模块,用于存储对话内容,所述对话内容包括对话中的每个词,以及该词对应的所属者、时间信息、位置信息中的之一或者任意组合。
[0013]进一步地,所述知识存储模块的每个单元为知识库中的每个词,可表示为:
[0014][0015]其中,w
i,j
表示存储结构中第i行j列存储的词;
[0016]a
j
表示w
i,j
对应的属性名即第j列的列名;
[0017]对话内容存储模块中每个存储单元为对话内容存储模块中的每一行,表示为:
[0018][0019]其中,J表示存储单元的总个数;
[0020]Emb(
·
)表示使用一个嵌入矩阵进行编码。
[0021]进一步地,所述层次型编码器包括若干层:
[0022]第一层是句子级编码器,负责对单个句子进行编码并提取句子级语义:
[0023][0024]其中w
m
表示句子中的m步的某个词,通过一个嵌入函数变成嵌入向量;
[0025]是句子级编码器上一时刻的隐藏层状态向量;
[0026]Φ
emd
(
·
)表示嵌入函数;
[0027]表示通过GRU模型得到句子级编码器m时刻的隐藏层状态向量;
[0028]句子级编码器在结束时间步M时刻的输出将作为句子s
n
的语义表示,将其表示为e
s_n

[0029][0030]第二层是对话级编码器,负责对整个对话进行编码,获取整个对话过程的语义表示:
[0031][0032]表示对话级编码器上一时刻的隐藏状态;
[0033]对话级编码器在最后一个时间步N的向量输出是整个对话的语义表示。
[0034]进一步地,所述对话状态跟踪器的输入为层次型编码器中句子级编码器生成的隐藏向量序列其中L表示整个对话序列的长度,即对话包含的词汇数量,是由句子级编码器生成的位于对话过程中第l个词汇的向量表示;这样可以最大限度地保留对话中词汇的原始词义。
[0035]通过计算槽位与对话历史中每个词的注意力来获取槽值的概率分布,然后通过一
个softmax层对该概率分布进行归一化:
[0036][0037]其中,表示第j个槽位的槽值在整个对话历史上的概率分布;
[0038]u
j
表示第j个可学习的槽位信息矩阵;
[0039]softmax()表示softmax函数;
[0040]再通过计算对应槽位下各序列的加权和来获得每个槽位对应的槽值表示:
[0041][0042]表示表示第j个槽位取对话历史中第l个词为槽值的概率;
[0043]是由句子级编码器生成的位于对话过程中第l个词汇的向量表示;
[0044]得到所述对话状态向量,其中向量的个数等于对话包含的槽位个数,也是知识库中每条信息的属性个数。
[0045]通过所述对话状态跟踪器能让外部知识有效地融入生成的回复中。
[0046]进一步地,所述根据对话状态向量对信息存储结构的知识库信息进行检索包括:
[0047]首先通过公式(8)计算知识库中各属性值被对应状态向量选中的概率,然后通过求和操作计算各知识行与当前对话相关的概率:
[0048]v
j
表示第j个对话状态;
[0049]然后将知识库中所有行的概率分布通过一个激活函数进行转换,转换后概率分布的值越接近1越表示该知识行与当前对话相关,否则越不相关;
[0050]最后,将知识存储模块中所有知识行的加权和整合成一个知识向量o:
[0051][0052]其中,o表示与对话相关的知识库信息;
[0053]表示总行数;
[0054]表示知识库中第i行与当前对话相关的概率;
[0055]|S|是对话包含的槽位数量;
[0056]c
i,j
表示第i行第j列的词的向量表示。...

【技术保护点】

【技术特征摘要】
1.一种基于对话状态指导的端到端任务型对话系统,其特征在于,包括:信息存储结构:用于存储对话内容和与对话相关的知识库信息;层次型编码器:对对话进行编码,获得对话内容的语义表示;对话状态跟踪器:用于根据对话内容获得对话状态向量,并根据对话状态向量对信息存储结构的知识库信息进行检索;复制增强解码器:用于将信息存储结构中的知识融入到生成的回复中,得到最终回复。2.根据权利要求1所述的一种基于对话状态指导的端到端任务型对话系统,其特征在于,所述信息存储结构包括:知识存储模块,用于存储与对话相关的结构化知识,每一行存储着知识库中某个主题结点相关的所有属性信息;对话内容存储模块,用于存储对话内容,所述对话内容包括对话中的每个词,以及该词对应的所属者、时间信息、位置信息中的之一或者任意组合。3.根据权利要求2所述的一种基于对话状态指导的端到端任务型对话系统,其特征在于,所述知识存储模块的每个单元为知识库中的每个词,可表示为:其中,w
i,j
表示存储结构中第i行j列存储的词;a
j
表示w
i,j
对应的属性名即第j列的列名;对话内容存储模块中每个存储单元为对话内容存储模块中的每一行,表示为:其中,J表示存储单元的总个数;Emb(
·
)表示使用一个嵌入矩阵进行编码。4.根据权利要求1所述的一种基于对话状态指导的端到端任务型对话系统,其特征在于,所述层次型编码器包括若干层:第一层是句子级编码器,负责对单个句子进行编码并提取句子级语义:其中w
m
表示句子中的m步的某个词,通过一个嵌入函数变成嵌入向量;是句子级编码器上一时刻的隐藏层状态向量;Φ
emd
(
·
)表示嵌入函数;表示Φ
emd
(w
m
),通过GRU模型得到句子级编码器m时刻的隐藏层状态向量;句子级编码器在结束时间步M时刻的输出将作为句子s
n
的语义表示,将其表示为e
s_n
:第二层是对话级编码器,负责对整个对话进行编码,获取整个对话过程的语义表示:
表示对话级编码器上一时刻的隐藏状态;对话级编码器在最后一个时间步N的向量输出是整个对话的语义表示。5.根据权利要求1所述的一种基于对话状态指导的端到端任务型对话系统,其特征在于,所...

【专利技术属性】
技术研发人员:方明弘万里
申请(专利权)人:重庆大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1