首页 / 专利库 / 人工智能 / 对话语料库 / 基于云平台的服务机器人个性化对话系统及方法

基于平台的服务机器人个性化对话系统及方法

阅读:84发布:2020-05-22

专利汇可以提供基于平台的服务机器人个性化对话系统及方法专利检索,专利查询,专利分析的服务。并且本公开提供了基于 云 平台的服务 机器人 个性化 对话系统 及方法。其中,该人个性化对话系统,包括云端和机器人端,云端包括用户 知识库 ,其用于存储用户交互历史和用户模型;用户模型是由用户模型建立模 块 实时输出的用户模型;用户模型建立模块,其用于调取用户交互历史,并采用Twitter-LDA模型挖掘用户感兴趣主题来构建动态用户模型;动态用户模型由不同时间段层次的用户子模型与相应比重因子相乘后 叠加 而成; 信息检索 模块,其用于利用实时用户模型从用户交互历史中获取与对话上下文相关的用户信息,并初步筛选;端到端对话生成模块,其用于根据初步筛选的用户信息生成序列对话,通过语音合成将文字信息转化为语音信息并播放,完成用户和服务机器人的一次交互。,下面是基于平台的服务机器人个性化对话系统及方法专利的具体信息内容。

1.一种基于平台的服务机器人个性化对话系统,其特征在于,包括云端和机器人端,所述云端包括:
用户知识库,其用于存储用户交互历史和用户模型;所述用户模型是由用户模型建立模实时输出的用户模型;
用户模型建立模块,其用于调取用户交互历史,并采用Twitter-LDA模型挖掘用户感兴趣主题来构建动态用户模型;所述动态用户模型由不同时间段层次的用户子模型与相应比重因子相乘后叠加而成;
信息检索模块,其用于利用实时用户模型从用户交互历史中获取与对话上下文相关的用户信息,并进行初步筛选;
端到端对话生成模块,其用于根据初步筛选的用户信息生成序列对话,通过语音合成将文字信息转化为语音信息并播放,完成用户和服务机器人的一次交互。
2.如权利要求1所述的基于云平台的服务机器人个性化对话系统,其特征在于,在所述端到端对话生成模块中,构建记忆网络和完全使用自注意机制的Transformer部分结构相结合的神经网络结构,利用记忆网络从初步筛选的与对话上下文相关的用户信息中检索用户相关主题词信息,使用Transformer部分结构获取文本特征表达,生成序列对话。
3.如权利要求1所述的基于云平台的服务机器人个性化对话系统,其特征在于,所述用户交互历史包括:
用户一定数量对话回合内所有可能有价值的对话历史记录,作为本轮对话生成的上下文信息;
用户和机器人语音交互系统的全部交互记录,用于用户模型构建的先验知识。
4.如权利要求1所述的基于云平台的服务机器人个性化对话系统,其特征在于,在所述用户模型建立模块中,在Twitter-LDA模型中增加背景主题变量,用来抑制无意义词语对主题模型的影响。
5.如权利要求1所述的基于云平台的服务机器人个性化对话系统,其特征在于,所述云端与机器人端之间通过网关相互通信,所述机器人端还设置有本地数据库,所述本地数据库包括数据采集池,所述数据采集池内存储有用户和服务机器人交互的语音信息。
6.如权利要求5所述的基于云平台的服务机器人个性化对话系统,其特征在于,所述本地数据库还包括资源过滤池,所述资源过滤池用于:
利用正则表达式去除特殊字符;
利用已构建的常用停用词表,过滤没有实际意义的单词。
筛选优质对话语料放置于增量语料库中,用于后期对所述端到端对话生成模块生成的对话模型的动态更新。
7.如权利要求6所述的基于云平台的服务机器人个性化对话系统,其特征在于,所述本地数据库还包括语料库和增量语料库,所述语料库用于为用户知识库提供交互历史信息;
所述增量语料库中的信息是从资源过滤池中筛选的,所述增量语料库用于动态更新语料库。
8.一种基于云平台的服务机器人个性化对话方法,其特征在于,包括:
调取用户交互历史,并采用Twitter-LDA模型挖掘用户感兴趣主题来构建动态用户模型;所述动态用户模型由不同时间段层次的用户子模型与相应比重因子相乘后叠加而成;
利用实时用户模型从用户交互历史中获取与对话上下文相关的用户信息,并进行初步筛选;
根据初步筛选的用户信息生成序列对话,通过语音合成将文字信息转化为语音信息并播放,完成用户和服务机器人的一次交互。
9.如权利要求8所述的一种基于云平台的服务机器人个性化对话方法,其特征在于,生成序列对话的过程为:
构建记忆网络和完全使用自注意力机制的Transformer部分结构相结合的神经网络结构,利用记忆网络从初步筛选的与对话上下文相关的用户信息中检索用户相关主题词信息,使用Transformer部分结构获取文本特征表达,生成序列对话。
10.如权利要求8所述的基一种基于云平台的服务机器人个性化对话方法,其特征在于,所述用户交互历史包括:
用户一定数量对话回合内所有可能有价值的对话历史记录,作为本轮对话生成的上下文信息;
用户和机器人语音交互系统的全部交互记录,用于用户模型构建的先验知识。

说明书全文

基于平台的服务机器人个性化对话系统及方法

技术领域

[0001] 本公开属于机器人领域,尤其涉及一种基于云平台的服务机器人个性化对话系统及方法。

背景技术

[0002] 本部分的陈述仅仅是提供了与本公开相关的背景技术信息,不必然构成在先技术。
[0003] 目前工业机器人已经广泛应用于制造业,虽然服务机器人出现及产业化相对比较晚,但是这些年来随着人工智能技术的发展,服务机器人已经进入迅速发展阶段。工业机器人操作通常需要经过专业的培训,而服务机器人因其应用范围扩大,对人机交互方式提出了更高的要求。服务机器人中以自然语言为基础进行人机交互的口语对话系统,相对于传统的触屏、键盘或者鼠标等输入方式,极大地提高了效率,也具有极大的易用性,对服务机器人的普及及用户的体验起着关键性作用。
[0004] 人机对话系统在人工智能和自然语言处理领域是一个富有挑战性的任务。在过去的几十年中,有很多工作集中在对话模型的研究。早期的研究主要是基于规则和检索生成回答,大体上来讲,这种方式不需要训练数据而是通过人工构造规则,使用模式匹配和替代的方法生成令人相对满意的回复。基于规则的对话系统需要大量的人工制定规则,而规则之间可能存在相互影响,因此系统新功能的添加比较复杂。基于检索的对话系统根据用户输入内容进行匹配,返回对话系统数据库中和输入最相近的回复,因此基于检索的对话系统只能生成数据库中已经存在的回答。人工智能的快速发展,互联网上社交数据的剧增使基于深度学习技术的生成式对话机器人在学术和工业界掀起了另一个热潮。基于数据驱动的生成式方法构建的聊天机器人发展迅速,模型不需要大量人工参与,且比传统基于规则和检索方法的生成内容更加灵活。然而,现阶段生成式对话模型仍存在生成回复信息量少,且针对不同用户回复内容相同等问题,用户交互体验差。
[0005] 目前针对用户信息融入对话系统以生成个性化回复的研究相对较少。新闻消费等网络服务的经验显示用户模型的建立和算法模型是构建个性化服务的核心。针对个性化服务的研究,现有的工作主要集中于可以代表用户的特征,例如,显性的评论和搜索记录,隐形的点击行为和用户关系等。然而不同于网络服务,聊天机器人的用户的可靠信息来源只有用户对话历史记录。
[0006] 综上所述,发明人发现,服务机器人个性化对话系统中存在以下问题:
[0007] (1)现有的利用用户交互历史提取相关实体构建用户知识库无法识别同一主题而使用户模型出现冗余等问题;
[0008] (2)基于模板规则或者检索的传统对话模型需要大量人工参与和灵活性差等缺点。

发明内容

[0009] 为了解决上述问题,本公开的第一个方面提供一种基于云平台的服务机器人个性化对话系统,其针对用户语音交互短文本信息的特点,使用Twitter-LDA模型挖掘用户感兴趣主题,同时考虑用户交互的时间因素,构建出动态用户模型,保证了用户模型的准确性,充分挖掘用户历史交互数据的信息特征,改善了用户交互体验。
[0010] 为了实现上述目的,本公开采用如下技术方案:
[0011] 一种基于云平台的服务机器人个性化对话系统,包括云端和机器人端,所述云端包括:
[0012] 用户知识库,其用于存储用户交互历史和用户模型;所述用户模型是由用户模型建立模实时输出的用户模型;
[0013] 用户模型建立模块,其用于调取用户交互历史,并采用Twitter-LDA模型挖掘用户感兴趣主题来构建动态用户模型;所述动态用户模型由不同时间段层次的用户子模型与相应比重因子相乘后叠加而成;
[0014] 信息检索模块,其用于利用实时用户模型从用户交互历史中获取与对话上下文相关的用户信息,并进行初步筛选;
[0015] 端到端对话生成模块,其用于根据初步筛选的用户信息生成序列对话,通过语音合成将文字信息转化为语音信息并播放,完成用户和服务机器人的一次交互。
[0016] 进一步地,在所述端到端对话生成模块中,构建记忆网络和完全使用自注意机制的Transformer部分结构相结合的神经网络结构,利用记忆网络从初步筛选的与对话上下文相关的用户信息中检索用户相关主题词信息,使用Transformer部分结构获取文本特征表达,生成序列对话。
[0017] 上述技术方案的优点在于,基于记忆网络和完全自注意力机制的对话模型具有较好的文本特征表示,且在多轮对话中更加有效地利用上下文信息。
[0018] 进一步地,所述用户交互历史包括:
[0019] 用户一定数量对话回合内所有可能有价值的对话历史记录,作为本轮对话生成的上下文信息;
[0020] 用户和机器人语音交互系统的全部交互记录,用于用户模型构建的先验知识。
[0021] 进一步地,在所述用户模型建立模块中,在Twitter-LDA模型中增加背景主题变量,用来抑制无意义词语对主题模型的影响。
[0022] 上述技术方案的优点在于,由于社交媒体中短文本中,存在很多无明显主题和意义的词汇,含有噪声比较多,这样增强了单个主题中主题词汇的相关性,提高了用户模型建立的准确性。
[0023] 进一步地,所述云端与机器人端之间通过网关相互通信,所述机器人端还设置有本地数据库,所述本地数据库包括数据采集池,所述数据采集池内存储有用户和服务机器人交互的语音信息。
[0024] 上述技术方案的优点在于,数据采集池用于存储用户和服务机器人交互的语音信息,有利于用户模型后期的更新,提高对话个性化服务的效率。
[0025] 进一步地,所述本地数据库还包括资源过滤池,所述资源过滤池用于:
[0026] 利用正则表达式去除特殊字符;
[0027] 利用已构建的常用停用词表,过滤没有实际意义的单词。
[0028] 筛选优质对话语料放置于增量语料库中,用于后期对所述端到端对话生成模块生成的对话模型的动态更新。
[0029] 进一步地,所述本地数据库还包括语料库和增量语料库,
[0030] 上述技术方案的优点在于,有利于用户模型后期的更新,提高对话个性化服务的效率。
[0031] 为了解决上述问题,本公开的第二个方面提供一种基于云平台的服务机器人个性化对话方法,其针对用户语音交互短文本信息的特点,使用Twitter-LDA模型挖掘用户感兴趣主题,同时考虑用户交互的时间因素,构建出动态用户模型,保证了用户模型的准确性,充分挖掘用户历史交互数据的信息特征,改善了用户交互体验。
[0032] 为了实现上述目的,本公开采用如下技术方案:
[0033] 一种基于云平台的服务机器人个性化对话方法,包括:
[0034] 调取用户交互历史,并采用Twitter-LDA模型挖掘用户感兴趣主题来构建动态用户模型;所述动态用户模型由不同时间段层次的用户子模型与相应比重因子相乘后叠加而成;
[0035] 利用实时用户模型从用户交互历史中获取与对话上下文相关的用户信息,并进行初步筛选;
[0036] 根据初步筛选的用户信息生成序列对话,通过语音合成将文字信息转化为语音信息并播放,完成用户和服务机器人的一次交互。
[0037] 进一步地,生成序列对话的过程为:
[0038] 构建记忆网络和完全使用自注意力机制的Transformer部分结构相结合的神经网络结构,利用记忆网络从初步筛选的与对话上下文相关的用户信息中检索用户相关主题词信息,使用Transformer部分结构获取文本特征表达,生成序列对话。
[0039] 进一步地,所述用户交互历史包括:
[0040] 用户一定数量对话回合内所有可能有价值的对话历史记录,作为本轮对话生成的上下文信息;
[0041] 用户和机器人语音交互系统的全部交互记录,用于用户模型构建的先验知识。
[0042] 本公开的有益效果是:
[0043] (1)本公开使用主题模型构建用户模型:针对用户语音交互短文本信息的特点,使用Twitter-LDA模型挖掘用户感兴趣主题,同时为了保证用户模型的准确性,对原始的主题模型进行改进,考虑用户交互的时间因素,提出了动态主题模型,利用网络社交媒体平台数据和生活中人与人交流主题的一致性,使用公开数据训练主题模型。
[0044] (2)本公开设计了特殊的网络结构,将记忆网络和基于完全注意力机制结构Transfomer结合起来,使用记忆网络获取对话历史上下文和用户模型信息,具有更好的对话生成表现能力,能够生成和用户相关的回复,用户也更乐于和其进行交互,改善了用户体验。附图说明
[0045] 构成本公开的一部分的说明书附图用来提供对本公开的进一步理解,本公开的示意性实施例及其说明用于解释本公开,并不构成对本公开的不当限定。
[0046] 图1是本公开实施例的一种基于云平台的服务机器人个性化对话系统结构示意图。
[0047] 图2是本公开实施例的对话模型整体结构。
[0048] 图3是本公开实施例的对话系统评分变化图。
[0049] 图4是本公开实施例的云平台对话服务调用时间图。

具体实施方式

[0050] 下面结合附图与实施例对本公开作进一步说明。
[0051] 应该指出,以下详细说明都是例示性的,旨在对本公开提供进一步的说明。除非另有指明,本实施例使用的所有技术和科学术语具有与本公开所属技术领域的普通技术人员通常理解的相同含义。
[0052] 需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本公开的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
[0053] 如图1所示,本公开实施例的一种基于云平台的服务机器人个性化对话系统,包括云端和机器人端,所述云端包括:
[0054] (1)用户知识库,其用于存储用户交互历史和用户模型;所述用户模型是由用户模型建立模块实时输出的用户模型。
[0055] 具体地,所述用户交互历史包括:
[0056] 用户一定数量对话回合内所有可能有价值的对话历史记录,作为本轮对话生成的上下文信息;
[0057] 用户和机器人语音交互系统的全部交互记录,用于用户模型构建的先验知识。
[0058] (2)用户模型建立模块,其用于调取用户交互历史,并采用Twitter-LDA模型挖掘用户感兴趣主题来构建动态用户模型;所述动态用户模型由不同时间段层次的用户子模型与相应比重因子相乘后叠加而成。
[0059] 在所述用户模型建立模块中,在Twitter-LDA模型中增加背景主题变量,用来抑制无意义词语对主题模型的影响。
[0060] 为了解决现有的利用用户交互历史提取相关实体构建用户知识库无法识别同一主题而使用户模型出现冗余等问题,本实施例提出采用主题模型方法构建用户模型。
[0061] 主题模型是机器学习和自然语言处理领域用来发现主题的一种统计模型。直观上来讲,如果一篇文章有中心思想,那么一些特定的词语出现的会更加频繁。LDA(Latent Dirichlet Allocation)是当前有效的主题模型主流算法之一,它可以将文章的主题以概率的分布的形式给出。LDA模型是词袋模型,所谓词袋模型是指一篇文档中,仅考虑一个词汇是否出现,而不考虑出现的顺序。它可以通过无监督训练学习,挖掘语料内在的含义。LDA是一种文档主题生成模型,也称为一个三层贝叶斯概率模型,可以用概率图进行表示,包含词、主题和文档三层结构。所谓生成模型,即认为一篇文章的每个词都是通过“以一定概率选择了某个主题,并从这个主题以一定概率选择某个词语”这样的过程得到。文档到主题以及主题到词语均服从多项式分布。
[0062] 通过建立神经语言概率模型获得的词向量组成特定维度的词向量空间,词向量之间具有语义关联,使用余弦距离等方法对向量距离进行度量,可以得到词汇之间的语法和语义相似性。在本实施例的对话系统模型中,使用预训练的Word2Vec或者Glove词向量作为模型的初始化词向量,从而加快模型训练收敛的速度。
[0063] 为了更加高效率利用用户交互历史短文本信息,本实施例采用由Zhao等人针对Twitter、微博等社交媒体中文本较短且噪声比较大的特点进行改进的主题模型Twitter-LDA进行用户模型的基础建模。与传统的LDA相比,Twitter-LDA存在以下特点:
[0064] (1)为了解决短文本中词关联性比较弱的问题,结合社交网络语料的特点,假定每条短文本指包含一个主题,也就是说一条语料中的词汇全部属于同一个主题。
[0065] (2)由于社交媒体中短文本中,存在很多无明显主题和意义的词汇,含有噪声比较B多。为了增强单个主题中主题词汇的相关性,Twitter-LDA模型添加一个新的变量φ为背景主题,抑制无意义词语对主题模型的影响。
[0066] 结合短文本Twitter-LDA概率图,将整个数据集的生成过程阐述如下:
[0067]
[0068] 在模型中,假设在语料库中共有T个主题,每个主题都有一个词汇分布。模型的α表示主题在短文本中所占的权重值,表示主题的词分布,γ代表语料库中主题词和噪声词的比重。φt代表话题t的词汇分布,φB代表背景词的分布,θu代表用户u的主题分布,是模型要学习的隐含变量。π代表背景词和主题词之间的选择是Bernoulli分布。Zu,s代表用户的每条文本的主题,文本中的每个词Wu,s,n是可观察变量。当用户创作一条社交媒体的文本时,比如微博或者Twitter,一个用户首先基于他本身的主题分布选择主题,然后基于主题一个接一个的选择一系列的词汇。其中Multi(.)代表多项式分布,Dir(.)代表Dirichlet分布,模型使用Gibbs采样进行模型参数的求解。
[0069] 和传统的主题模型相比,改进的Twitter-LDA模型对于短文本具有较强的主题挖掘能力,因此本对话系统采用此模型进行用户基础模型构建。
[0070] 用户和对话系统一段时期的交互记录是构建用户模型的关键,但是由于用户和对话机器人交互的信息可能和自身所处的状态相关,用户模型经常是随着时间改变的。在用户整体模型的建立中,用户主题所占的比重可能会随着时间发生改变,并且会有新的兴趣产生。比如说,一个用户的家庭出生了宝宝,那么用户自然就会对教育孩子方面感兴趣,并且可能伴随着其它兴趣的下降。进一步特殊的情况下,比如计划一个假期,买一辆汽车等,用户的交互内容会发生很大的变化。因此,本实施例对基于短文本主题模型进行改进,提出随时间变化的动态的用户主题模型,简称为TVUM(Time-Varying User Model)。用户某个时期的模型随着时间在用户整体模型中占比重不同,构建动态用户画像以保证用户模型的准确性。下面对TVUM模型进行详细的介绍。
[0071] 表示用户i的主题k随着时间t发生变化。为了表示某一时刻t用户的模型信息,本实施例将用户模型分为长期和短期模型。比如:用户长期对和食物相关的主题感兴趣,最近的一个月,用户在找工作,最近的一周,用户准备买辆汽车。为了表示用户i在时刻t时候的主题模型,本实施例将周、月、全部三个层次的用户模型相结合。具体计算公式为:
[0072]
[0073] 表示用户i的主题k随着最近的一周发生的变化;
[0074] 表示用户i的主题k随着最近的一个月发生的变化;
[0075] 表示用户i的主题k随着预设时间段内(至少为一个月)发生的变化;
[0076] uweek、umonth和uall分别为周、月、全部三个层次的用户模型比重参数。
[0077] 为了调节不同时间段用户模型对用户整体模型的影响,本实施例使用参数u进行不同层次重要性的调节。使用uweek=u,umonth=u2,uall=u3,其中u∈[0,1]。当u接近于0的时候,模型赋予用户短期主题更大的权重;当u接近于1的时候,不同层次的权重符合正态分布,表示更侧重于长期用户主题,因为其随着时间得到增强。u可以根据每个用户进行设定,也可以对所有的用户使用相同的值,本实施例后期实验中u均使用同一个值。
[0078] (3)信息检索模块,其用于利用实时用户模型从用户交互历史中获取与对话上下文相关的用户信息,并进行初步筛选。
[0079] 根据用户历史交互信息,利用预训练的主题模型,得到和用户相关的主题模型,设定概率阈值,筛选k个和用户相关的主题,每个主题选择n个最相关的主题词,N个和用户相关的主题词保存在用户知识库中,作为个性化对话系统的先验知识背景。大量的知识背景词表示为w1,…,wN,为了在对话生成过程中利用和用户交流过程中最相近的主题词,模型第一步使用检索技术对候选主题词进行初步选择,得到一个较小的s个用户主题词集合wc1,…,wcs。本实施例使用词向量余弦夹相似度进行筛选,根据相似度和用户模型主题概率值大小。
[0080] (4)端到端对话生成模块,其用于根据初步筛选的用户信息生成序列对话,通过语音合成将文字信息转化为语音信息并播放,完成用户和服务机器人的一次交互。
[0081] 对话生成是一项模拟人类对话过程包括自然语言理解、推理的复杂任务。传统的对话系统研究主要集中于基于规则和基于特定领域的方法研究,虽然这些方法在少量的对话语料和特定对话场景中取得相对较好的结果。但是由于人工的需要,模型的限制,这种方法很难适用于开放域对话生成中。
[0082] 深度神经网络可以对复杂的模型进行特征提取,并使用端到端的方式学习模型的参数。已经在机器视觉语音识别和自然语言处理等很多领域取得了很大的进展。研究表明,它可以用于复杂任务的映射。在自然语言理解中,基于神经网络的端到端模型首先应用于翻译模型中,即将一个序列映射到另一个序列中。采用这种模型,不需要专业领域知识和人手工设置特征,具有极大的优势。对话系统的本质也是序列到序列的映射,因此端到端模型,同样可以应用于对话系统中。但是相对与翻译系统而言,对话系统具有更多的推理和外部知识的应用,因此其更加复杂。
[0083] 基于概率模型生成语言回复,采用神经网络的Seq2Seq编码器解码器框架
[0084] 基础的Seq2Seq模型包含了三个部分,即Encoder、Decoder以及连接两者的中间状态变量。Encoder通过学习输入,将其编码成为一个固定大小的状态向量C,然后将状态向量C传递给Decoder,Decoder通过对状态向量的学习来进行输出和模型的拟合。
[0085] 解码器根据编码器的语义向量c和上一时刻预测的{y1,…,yt-1}结果进行解码,每个时刻预测一个单词,解码生成一个序列的联合概率分布为:
[0086]
[0087] 式中,y=(y1,…,yTN),N是生成序列的长度。
[0088] 在序列模型的预测阶段,使用上一步输出概率最大值对应的单词作为下一次预测的输入进行接下来模型的生成。也可以使用集束搜索(BeamSearh)算法,通过设置参数,将上一步预测的几种结果作为下次预测的输出,最终使用概率最大化选择预测的结果。
[0089] 注意力机制已经成为在很多任务中构建序列模型时一个重要的组成部分,它使得模型不在依赖于输入或者输出的距离。
[0090] 在端到端模型中,编码器首先将输入信息编码为固定长度的语义向量,然后解码器利用其解码生成输出,当输入信息序列长度比较长的时候,编码器生成的固定长度的语义向量会损失语义信息或者由于语义向量不足无法充分整个句子,因此研究人员将注意力机制应用于端到端神经网络模型中,在其解码器解码过程中动态的编码中间语义向量来表示输入序列,即不同时刻中间语义向量的表示不同。注意力机制可以描述为将query和key-value对集合映射为输出,其中query,kyes和values都是向量。通过query和相对应的key之间的函数为value设置权重值,进而计算values的所有权重值的总和得到输出。
[0091] 用以下的方式理解注意力机制的本质:将Seq2Seq中编码的隐藏状态向量{h1,...,hTX}表示为Key,通过注意力模型的对系数为Value,将其表示为一系列的(key,value)数据结构,端到端框架中解码器的隐藏层状态st-1表示为Query。注意力模型通过计算Query和各个Key之间的相关性,得到每个Key对应的权重系数Value,即Value=alignment(Query,Key),接下来利用权重系统Value对Key进行线性加权求和,最终得到基于注意力机制的语义向量:
[0092]
[0093] 为了解决传统循环神经网络训练较慢等问题,2017年谷歌团队提出完全基于注意力机制的可以并行处理所有单词和符号的Transformer模型。Transformer中使用了特殊的自注意力机制,多头注意力机制(Multi-Head Attention Layer)。
[0094] 将相同输入维度为dmodel的矩阵Q,K,V分别通过h次线性映射,使其维度分别成为dQ,dk,dv。每次映射将转化后的Q,K,V并行输入注意力机制函数,产生dv维度大小的输出值。将得到的全部输出值进行拼接,然后经过再次线性映射,得到最终的输出值。多头注意力机制允许模型MultiHead将在不同未知的不同表示子空间的信息联合。具体计算公式为:
[0095] headi=Attention(QWiQ,KWiK,VWiV)
[0096] MultiHead(Q,K,V)=Concat(head1,…,headh)W
[0097] 式中,Attention表示注意力机制函数,Concat表示拼接函数,W表示线性映射矩阵;矩阵参数维度为
[0098] 本实施例在基于对话模型中使用完全注意力机制,使用基于注意力机制的对话模型,能够更好的对用户输入的信息进行语义建模,关注对话中的重点词汇,学习在复杂的话语环境下关注不同语句的重点。
[0099] 本实施例设计了特殊的网络结构,将记忆网络和完全使用自注意力机制的Transformer部分结构结合起来,使用记忆网络检索用户相关主题词信息,使用Transformer部分结构获取文本特征表达,达到较好的文本表示和序列对话生成,将其称为Personalized Transformer Memory Networks(PTMN)。对话模型整体结构如图2所示。
[0100] 图2中基于Transformer结构的编码器和解码器部分结构的每一个子层都添加了残差连接(Residual Connection)和归一化(Normalization)结构。第一个子层是多头注意力层(Multi-Head Attention Layer),后面连接一个全连接层FFN(x)函数(Feed Forward),它包含了两层线性变换,其中一个是使用ReLU函数,具体计算公式为:
[0101] FFN(x)=max(0,xW1+b1)W2+b2
[0102] 其中,b1和b2均为常系数;W1和W2分别为第一层线性变换和第二层线性变换的变换矩阵。
[0103] 基于Transformer模型的解码器和编码器结构完全未使用循环和卷积神经网络结果,为了利用文本序列的相对或者绝对位置信息,Transformer块结构中还增加了数据预处理部分,即采用位置编码(Positional Encoding)的方法。通过使用两个构造函数sin、cos加入相对位置信息。具体计算公式为:
[0104]
[0105]
[0106] 式中,pos表示单词的位置信息,i表示维度。dmodel表示输出的维度值。
[0107] 在每轮对话中,对话模型的最终目的是生成对话回复。x1,...,xt代表当前对话的上下文,t代表的对话的交互次数,x1代表对话的开始,剩下的交互是两个人之间相互交换产生的记录,当前对话表示为c。每个阶段的目标是产生下一次交互内容xt+1。对话历史信息和用户信息mi保存在记忆网络中。
[0108] 用户信息注意力机制利用记忆网络,得到上下文和用户知识的注意力大小。外部信息包括上下文信息和用户主题词信息通过编码器得到记忆向量的编码向量mi。与之类似,当前交互信息c通过编码器得到问题编码中间状态u,然后通过计算记忆编码向量m和问题编码向量u两者的内积,具体计算公式为:
[0109] mi=Transformer_encoder(xi)
[0110] u=Transformer_encoder(c)
[0111] pi=softmax(uTmi)
[0112] 式中, 概率pi的大小代表记忆模块中信息和当前输入信息的相关性。
[0113] 为了对历史信息进行编码表示,通过记忆嵌入和注意力机制分布得到历史信息表示向量h,对记忆向量h和当前输入嵌入u求和,得到记忆网络的输出:
[0114]
[0115] o=W(h+u)
[0116] (3)对话预测(Utterance Prediction)
[0117] 在对话预测部分,模型遵循整体的编码器解码器结构,为了获得更好的表达特征,模型的编码器和解码器结构使用基于Google提出的多层Transformer中解码器部分,在其基础上进行调整。在通过用户注意力机制之后得到的融合用户信息和上下文的词汇表示,进而得到输出词汇u的概率值。
[0118] 在此模型中,为了使生成的对话回复和用户感兴趣的主题词相关,本实施例对模型的损失函数进行改进,并使用参数λ进行控制平衡,具体计算公式为:
[0119] L=(1-λ)LNLL+λLPersonalized
[0120] 其中,L为改进后的损失函数;LNLL为原模型损失函数;LPersonalized为个性化损失函数。
[0121] 在具体实施中,所述云端与机器人端之间通过网关相互通信,所述机器人端还设置有本地数据库,所述本地数据库包括数据采集池,所述数据采集池内存储有用户和服务机器人交互的语音信息。
[0122] 所述本地数据库还包括资源过滤池,所述资源过滤池用于:
[0123] 利用正则表达式去除特殊字符;
[0124] 利用已构建的常用停用词表,过滤没有实际意义的单词。
[0125] 筛选优质对话语料放置于增量语料库中,用于后期对话模型的动态更新。
[0126] 所述本地数据库还包括语料库和增量语料库,所述语料库用于为用户知识库提供交互历史信息;所述增量语料库中的信息是从资源过滤池中筛选的,所述增量语料库用于动态更新语料库。
[0127] 在具体实施中,机器人实体分为上位机和下位机两个部分,其中下位机是由STM32单片机作为主控核心,上位机配置一块ARM架构的树莓派Ⅲ电脑,同时配置了WiFi无线数传模块、摄像头、声卡、麦克以及扬声器等设备,上位机和下位机之间是通过USART实现串口双向通信。手机客户端是服务机器人的配套设备,能实现用户注册和登录等基本功能。用户通过手机客户端录入声音信息,机器人本体能够通过声纹识别判断用户的身份。
[0128] (2)云服务平台硬件配置
[0129] 实验室自主研发的面向服务机器人的云服务平台部署在一组包含一台主机与三台从机构成的服务器集群上。其中每台机器的具体硬件配置如表1所示。
[0130] 表1云平台硬件配置表
[0131]
[0132]
[0133] (1)主题模型数据集构建
[0134] 主题模型的预训练模型数据采用微博爬虫数据,微博是国内一个类似于Twitter的社交网络平台,利用这个平台,人们分享自己生活中想表达的事情,这一点与用户和对话机器人聊天内容具有相似性。
[0135] 用户微博数据集使用爬虫技术进行获取,基于python,使用Scrapy爬虫框架,使用MongoDB进行数据的存储,另外使用json、request等python库进行url和数据的解析。本实施例最终获取2000万用户短文本微博信息作为用户模型训练的数据集,数据集具体统计信息如表2所示。
[0136] 表2微博数据集信息统计表
[0137]
[0138] (2)对话数据集构建
[0139] 为了构建和用户相关的中文个性化数据集,本实施例作者召集实验室25名同学,通过社交网络等方式有偿招募志愿者。志愿者首先用几句话描述自己自身的状态,包括兴趣爱好职业等信息。然后随机两两个体进行随机配对。要求配对的双方在遵循自己特定描述的前提下进行交流,使对方更可能的了解自己。双方每次对话交流来回不低于4次。构建的中文个性化数据集格式如表3所示。
[0140] 表3中文个性化语料库示意表
[0141]
[0142] 最终得到中文和用户信息相关的个性化对话语料,并将其分为训练集、测试集、验证集,最终系统模型使用的个性化对话数据集统计情况如表4所示。
[0143] 表4中文个性化对话语料库统计信息
[0144]
[0145]
[0146] (3)模型训练和系统构建
[0147] 中文分词是中文自然语言处理问题的第一步,中文分词的方法按照特点可以分为:统计方法的分词、字符串匹配方法的分词和机器学习方法的分词。在本实施例中,使用Standford中文分词器对数据进行分词。同时,使用wiki百科训练中文词向量。基于本实施例研究验证模型的训练方法和训练环境,经过模型参数的调整,最终得到中文预训练主题模型和融合用户模型的对话模型。
[0148] 表5用户主题主题词表
[0149]
[0150] 服务机器人云平台后台存储服务记录测试者和机器人交互日志,将测试者交互记录通过用户模型建立模块,得到用户主题模型和其概率值信息。表5显示测试者主题模型概率最大的主题编号和主题下对应的概率值最大的主题词信息。通过TOP主题词容易观察出测试者1-5号感兴趣的话题分别是“音乐”,“运动”,“美术”,“琴”,“电影”主题相关。为了验证对话系统生成回复和用户的相关性,在机器人使用不同云端对话生成服务的条件下,测试者对机器人进行同样内容的语音交互。如表6所示,和传统对话生成系统生成的对话信息相比,个性化对话系统针对不同的用户可以生成不同的回答,并且生成的回复和用户兴趣相关。
[0151] 表6个性化对话系统不同用户回复表
[0152]
[0153] 为了验证本实施例设计的个性化对话系统生成回复的质量,测试者在机器人平台分别使用基于本实施例设计的融合用户模型的个性化对话模型封装服务下进行对话的测试。记录的对话结果如表7所示,从表中可以看出,在测试者和机器人通过语音交互时,机器人对于测试者同样的问题,基于本实施例对话模型的对话系统生成回复内容更加丰富,并且机器人可以通过提问等方式,激发用户交流的兴趣,引导用户继续交流。
[0154] 表7个性化对话系统生成回复示例表
[0155]
[0156]
[0157] 对5名测试者针对个性化对话系统不同时刻回复评分值进行统计,得到系统评分变化图。从图3得出,随着测试者和系统不断交互,评分值逐步上升最后趋于稳定。本实施例设计的个性化对话系统,在用户和系统不断交互过程中,构建和完善用户模型,生成和用户相关的有趣回复,改善用户交互体验。
[0158] 本实施例的基于个性化对话生成服务,部署在云端,机器人通过网络通信调用云服务,因此除了对话生成效果外,整个云服务调用时间是影响服务质量的核心因素之一。本实施例在云端后台记录了100次在真实环境下云平台调用对话生成云服务的时间,结果如图4所示,可以得出云平台完成一次机器人个性化对话生成云服务请求的总耗时约为27ms,满足机器人对用户对话生成回复的实时性要求。
[0159] 本实施例的一种基于云平台的服务机器人个性化对话方法,包括:
[0160] 调取用户交互历史,并采用Twitter-LDA模型挖掘用户感兴趣主题来构建动态用户模型;所述动态用户模型由不同时间段层次的用户子模型与相应比重因子相乘后叠加而成;其中,所述用户交互历史包括:
[0161] 用户一定数量对话回合内所有可能有价值的对话历史记录,作为本轮对话生成的上下文信息;
[0162] 用户和机器人语音交互系统的全部交互记录,用于用户模型构建的先验知识;
[0163] 利用实时用户模型从用户交互历史中获取与对话上下文相关的用户信息,并进行初步筛选;
[0164] 根据初步筛选的用户信息生成序列对话,通过语音合成将文字信息转化为语音信息并播放,完成用户和服务机器人的一次交互。
[0165] 具体地,生成序列对话的过程为:
[0166] 构建记忆网络和完全使用自注意力机制的Transformer部分结构相结合的神经网络结构,利用记忆网络从初步筛选的与对话上下文相关的用户信息中检索用户相关主题词信息,使用Transformer部分结构获取文本特征表达,生成序列对话。
[0167] 以上所述仅为本公开的优选实施例而已,并不用于限制本公开,对于本领域的技术人员来说,本公开可以有各种更改和变化。凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈