首页> 中国专利> 创建语义键索引的方法及系统

创建语义键索引的方法及系统

摘要

本发明实施例提供一种创建语义键索引的方法。该方法包括:在对话语料库中,分析各对语句对的输入语句和回复语句的各词语的词性,提取每句语句中符合预设词性要求的各语义键;按照语义键对对话语料库中的所有语句进行聚类,每一类别的语句对应于同一语义键;利用对话语料库中的各类别的语句训练序列到序列模型,得到能够将语句映射成为实值向量的编码网络;将属于同一类别的语句利用编码网络进行编码,得到与各语义键相对应的实值向量集合;从与各语义键相对应的实值向量集合中选择多个实值向量组成记忆矩阵,在各语义键和各记忆矩阵件建立语义键索引。本发明实施例还提供一种创建语义键索引的系统。本发明实施例生成的语句具有多样性、方向性。

著录项

  • 公开/公告号CN107944027A

    专利类型发明专利

  • 公开/公告日2018-04-20

    原文格式PDF

  • 申请/专利号CN201711320645.3

  • 申请日2017-12-12

  • 分类号G06F17/30(20060101);G06F17/27(20060101);

  • 代理机构11400 北京商专永信知识产权代理事务所(普通合伙);

  • 代理人方挺;黄谦

  • 地址 215123 江苏省苏州市苏州工业园区星湖街328号创意产业园9-703

  • 入库时间 2023-06-19 05:05:07

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2023-08-11

    专利权质押合同登记的生效 IPC(主分类):G06F16/22 专利号:ZL2017113206453 登记号:Y2023980049433 登记生效日:20230726 出质人:思必驰科技股份有限公司 质权人:中信银行股份有限公司苏州分行 发明名称:创建语义键索引的方法及系统 申请日:20171212 授权公告日:20200331

    专利权质押合同登记的生效、变更及注销

  • 2020-07-17

    专利权的转移 IPC(主分类):G06F16/22 登记生效日:20200630 变更前: 变更后: 变更前: 变更后: 申请日:20171212

    专利申请权、专利权的转移

  • 2020-03-31

    授权

    授权

  • 2018-05-15

    实质审查的生效 IPC(主分类):G06F17/30 申请日:20171212

    实质审查的生效

  • 2018-04-20

    公开

    公开

说明书

技术领域

本发明涉及人工智能领域,尤其涉及一种创建语义键索引的方法及系统。

背景技术

机器学习的研究进展加快了语音对话系统的发展。语音对话系统的交互能力带来了越来越多的语音对话应用,其中,最能体现语音对话系统的功能的就是聊天机器人,通过根据研发者设置的回答方法,当聊天机器人接收到一个对话时,它会通过算法,找到贴切的答案,进行输出回复。

而这算法一般而言,现如今有两种主要技术:

1、传统的基于检索技术的检索式模型;

2、基于深度学习技术的生成式模型。

其中,基于检索技术的检索式模型主要通过手机网上的论坛、微博或是网站里出现过的对话句子,构建大规模的对话数据库,当用户给出一个句子时,系统会从语料库里找到一个跟这个句子最相像的句子,而这个最相像的句子对应的答复就可以直接输出作为输出句子反馈给用户;

但是基于检索技术的检索式模型,需要维护一个大型的语料库,机器回复的句子限制在语料库中,使得在语料库中检索的回复语句必然是语料库中的语句,而无法出现新的回复;并且由于采取问句匹配的方法寻找相像语句的对应回复,使得生成的回复内容单一,对于同样的输入语句,往往生成相同的回复;同时该技术主要针对用户给出的句子中单词短语等浅层语义匹配,使得在回复上的语义难以拓展。

而基于深度学习技术的生成式模型需要一个大规模的训练语料库,其基本的流程是,用户给出一个句子,系统通过循环神经网络将该句子编码成一个实值向量,然后再通过另一个循环神经网络解码来生成每一个词,从而组合成一个句子反馈给用户。

在实现本发明过程中,发明人发现相关技术中至少存在如下问题:

基于深度学习技术的生成式模型,由于任务聊天中同一个输入语句可以有很多种回答的方法进行输出回复,而基本的序列到序列神经网络模型无法产生多个回复,所以倾向于平均这些回复的语义,导致最终生成的回复多为“是的”、“呵呵”这种类型的通用回复;并且基本的生成式模型无法控制语义和情感,仅仅依靠自身的学习能力难以学习到不同的语义和情感信息,使得回复的内容难以控制情感、主题;同时,对于同一语句,解码时只能生成类似的回复,不具有多样性。

发明内容

为了至少解决现有技术中基于深度学习技术的生成式模型容易生成通用的信息、难以控制情感主题、不具有多样性的问题。本领域技术人员通常会采用:修改神经网络训练目标函数来提高模型回复的多样性的方式,或是增加更长的上下文信息的方式,或是引入了情感极性作为额外的信息来生成不同情绪的回复的方式,或是使用相关实体的外部评价作为补充信息,提高模型的知识性的方式。申请人意外的发现通过以实值向量的形式存储相关的语义等信息,建立语义键可读写的外部记忆存储,不同于传统的直接使用知识库的形式。同时通过指定不同的语义键和相应的映射方法来显示地控制生成语义可以解决上述问题。

第一方面,本发明实施例提供一种创建语义键索引的方法,包括:

在对话语料库中,分析各对语句对的输入语句和回复语句的各词语的词性,提取每一句语句中符合预设词性要求的各语义键,其中,所述预设词性包括:名词、形容词、动词中的至少一种;

按照语义键对对话语料库中的所有语句进行聚类,每一类别的语句对应于同一语义键;

利用对话语料库中的各类别的语句训练序列到序列模型,得到能够将语句映射成为实值向量的编码网络;

将属于同一类别的语句利用所述编码网络进行编码,得到与各语义键相对应的实值向量集合;

从与各语义键相对应的所述实值向量集合中选择多个实值向量组成记忆矩阵,在各语义键和各记忆矩阵件建立语义键索引。

第二方面,本发明实施例提供一种对话的回复语句生成方法,包括:

提取输入语句中的至少一个语义键;

利用预设的语义映射关系,将所述至少一个语义键扩展为多个语义键集合;

根据所述多个语义键集合中的各语义键,索引与所述各语义键匹配的记忆矩阵;

至少将所述记忆矩阵输入到编码网络中进行解码,选择解码后的其中一条语句作出回复语句。

第三方面,本发明实施例提供一种创建语义键索引的系统,包括:

语义键提取程序模块,用于在对话语料库中,分析各对语句对的输入语句和回复语句的各词语的词性,提取每一句语句中符合预设词性要求的各语义键,其中,所述预设词性包括:名词、形容词、动词中的至少一种;

语句聚类程序模块,用于按照语义键对对话语料库中的所有语句进行聚类,每一类别的语句对应于同一语义键;

编码网络映射程序模块,用于利用对话语料库中的各类别的语句训练序列到序列模型,得到能够将语句映射成为实值向量的编码网络;

语句编码程序模块,用于将属于同一类别的语句利用所述编码网络进行编码,得到与各语义键相对应的实值向量集合;

语义键索引建立程序模块,用于从与各语义键相对应的所述实值向量集合中选择多个实值向量组成记忆矩阵,在各语义键和各记忆矩阵件建立语义键索引。

第四方面,本发明实施例提供一种对话的回复语句生成系统,包括:

语义键提取程序模块,用于提取输入语句中的至少一个语义键;

语义键拓展程序模块,用于利用预设的语义映射关系,将所述至少一个语义键扩展为多个语义键集合;

记忆矩阵索引程序模块,用于根据所述多个语义键集合中的各语义键,索引与所述各语义键匹配的记忆矩阵;

语句回复程序模块,用于至少将所述记忆矩阵输入到编码网络中进行解码,选择解码后的其中一条语句作为回复语句。

第五方面,提供一种电子设备,其包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器,其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明任一实施例的创建语义键索引的方法的步骤。

第六方面,本发明实施例提供一种存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现本发明任一实施例的创建语义键索引的方法的步骤。

第七方面,提供一种电子设备,其包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器,其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明任一实施例的对话的回复语句生成方法的步骤。

第八方面,本发明实施例提供一种存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现本发明任一实施例的对话的回复语句生成方法的步骤。

本发明实施例的有益效果在于:通过提取对话语料库中各语句的语义键,对各语句进行分类,确定各类别集合中语句的实值向量,并将各类别的实值向量组成相应的记忆矩阵与相应的语义键建立索引,以实值向量的形式来存储相关的语义信息,建立语义键索引的可读写的存储设备,相当于将语料库实质化,可以方便地应用其中包含的语义信息,而比直接使用语料库更容易进行语义的拓展和联想;同时通过指定不同的语义键和相应的映射方法来控制生成的语义,可以对同一句话,所选定不同的语义键或者不同的语义映射方法,从而提高了模型生成回复的多样性,并在控制了对话语义的方向,从而提高了用户的体验。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明一实施例提供的一种创建语义键索引的方法的流程图;

图2是本发明另一实施例提供的一种创建语义键索引的方法的流程图;

图3是本发明一实施例提供的一种对话的回复语句生成方法的流程图;

图4是本发明一实施例提供的一种从语义键索引的构建到回复语句的生成的示意图;

图5是本发明一实施例提供的一种从语义键索引的构建到回复语句的生成的框架图;

图6是本发明一实施例提供的一种从语义键索引的构建到回复语句的生成的多样性和实质性的列表数据图;

图7是本发明一实施例提供的一种从语义键索引的构建到回复语句的生成的可控短文对话示例的列表数据图;

图8是本发明一实施例提供的一种从语义键索引的构建到回复语句的生成的具有主题级别外部存储器的ESED的列表数据图;

图9是本发明一实施例提供的一种从语义键索引的构建到回复语句的生成的BLEU分数比较的列表数据图;

图10是本发明一实施例提供的一种从语义键索引的构建到回复语句的生成的人类评估结果的列表数据图;

图11是本发明一实施例提供的一种从语义键索引的构建到回复语句的生成的使用不同语义键映射方法生成的语句的列表数据图;

图12是本发明一实施例提供的一种从语义键索引的构建到回复语句的生成的通过外部存储器产生的知识导入响应的列表数据图;

图13是本发明一实施例提供的一种创建语义键索引的系统的结构示意图;

图14是本发明一实施例提供的一种对话的回复语句生成系统的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

如图1所示为本发明一实施例提供的一种创建语义键索引的方法的流程图,包括如下步骤:

S11:在对话语料库中,分析各对语句对的输入语句和回复语句的各词语的词性,提取每一句语句中符合预设词性要求的各语义键,其中,所述预设词性包括:名词、形容词、动词中的至少一种;

S12:按照语义键对对话语料库中的所有语句进行聚类,每一类别的语句对应于同一语义键;

S13:利用对话语料库中的各类别的语句训练序列到序列模型,得到能够将语句映射成为实值向量的编码网络;

S14:将属于同一类别的语句利用所述编码网络进行编码,得到与各语义键相对应的实值向量集合;

S15:从与各语义键相对应的所述实值向量集合中选择多个实值向量组成记忆矩阵,在各语义键和各记忆矩阵件建立语义键索引。

在本实施方式中,由于一切操作都是以对话语料库中的输入语句和回复语句为基础,所以对话语料库中语句的采集十分重要。在采集对话数据中,可以采取“微博”、“Twitter”、“论坛”等社交网络平台中的STC(Short text conversation,短文本的对话)数据(例如,微博中博主发布的一条所见、所闻、所感的信息,和针对于该信息,其他用户针对于该信息回复的信息,博主发布的信息可以理解为STC数据中的输入语句,其他用户回复的信息可以理解为STC数据中的回复语句)。将从各大社交网络平台中收集的STC数据存入对话语料库中。同时,也可以向即时聊天软件中进行获取。这类软件通常都是由两名对象进行实时通讯,相邻的两条语句通常也都具有相关性,符合STC数据的标准。

对于步骤S11,在对话语料库中,分析各对语句对的输入语句和回复语句中的各词语的词性,为了便于描述,只选取少数语句对进行示例,例如以下几组对话语句:

1、“你最喜欢哪个星座”“我最喜欢摩羯座”;

2、“你最喜欢哪个星座”“因为我是射手座,所以我喜欢射手座”;

3、“周杰伦的电影太好看了”“周杰伦的歌曲也很好听”。

首先,对这些语句进行分词、规范化等语言学处理,然后针对每一句话,找到其中的语义键,其中,语义键可以理解为一段语句中的中心词。简单的查找方式例如组成该语句的名词、动词、形容词等,当然也可以设定更加复杂精准的方法。然后,按照语义键将对话语料库中的语句聚合成不同的类别。

例如,通过LTP(Language Technology Platform,语言技术平台)这一类的工具对上述语句进行词性标注,得到:

“你最喜欢哪个星座”

名词:星座

动词:喜欢

“我最喜欢摩羯座”

名词:摩羯座

动词:喜欢

“因为我是射手座,所以我喜欢射手座”

名词:射手座

动词:喜欢

“周杰伦的电影太好看了”

名词:周杰伦、电影

形容词:好看

“周杰伦的歌曲也很好听”

名词:周杰伦、歌曲

形容词:好听

提取出每一语句中符合要求的各语义键,例如,以名词为例,“你最喜欢哪个星座”的语义键为“星座”、“我最喜欢摩羯座”的语义键为“摩羯座”、“因为我是射手座,所以我喜欢射手座”的语义键为“射手座”、“周杰伦的电影太好看了”的语义键为“周杰伦”、“周杰伦的歌曲也很好听”的语义键为“周杰伦”。

其中,在对语句进行分词。规范化等语言学处理中,还可以将输入语句的主题含义进行提取。以所提取出的主题含义作为语义键在后续的过程中,通常也可以得到更好的效果。

例如:“我不信星座,也不知道我是什么星座”

如果以语句中的“名词、动词、形容词”等进行提取语义键,那么通过语义键引导的输出语句很有可能还与“星座”有关。而如果使用主题含义作为语义键时。例如可以提取到“不喜欢星座”为主题的语义键。进而在下面的过程中,可能得到“那你信血型吗?”类似的与“星座”无关的回复语句。

其中,在对这些语句进行分词、规范化等语言学处理中,还可以将同一输入语句对应的不同的回复语句进行分组。例如:

1、“你最喜欢哪个星座”“我最喜欢摩羯座”;

2、“你最喜欢哪个星座”“因为我是射手座,所以我喜欢射手座”;

3、“你最喜欢哪个星座”“什么是星座”

4、“你最喜欢哪个星座”“不知道”

5、“你最喜欢哪个星座”“巨蟹座和双子座都很喜欢,硬要说最喜欢哪个的话,我也不知道”

通过对应分组,可以按照输出语句进行分类。例如,有具体回复的星座语句1、2、5为一组。无意义的回复的星座语句3、4为一组。这时就可以将无意义的回复语句3、4进行删除。进一步的精简了对话语料库中的语句对,提升了提取语义键的效率。

同时,由于提前对相应的语句对进行分组,还可以针对于特殊的需求创建不同类别的语义键索引,具有针对性群体的需求时,往往涉及不到其他类别的语句对话。通过对其类别对对话语句对进行分类筛选。例如,创建关于儿童早教机方面的对话设备,就可以仅仅获取诗词、儿歌、动画方面的语句,而一些流行、现代不适合儿童的语句可以预先筛除。不但可以大幅度的提升语义键索引的创建效率,而且还可以将语义键索引进行模块化管理,针对于不同类别的语义键索引单独创建,从而便于后期的维护。

对于步骤S12,按照语义键对对话语料库中的语句进行聚类,通过步骤S11确定的语义键,对语句进行分类,

例如,“摩羯座”、“射手座”都属于星座这一类别,将其统一聚类为“星座”。得到:

以语义键“星座”聚类:“你最喜欢哪个星座”、“我最喜欢摩羯座”、“因为我是射手座,所以我喜欢射手座”为一类;

以语义键“周杰伦”聚类:“周杰伦的电影太好看了”“周杰伦的歌曲也很好听”为一类。

对于步骤S13,将步骤S12分类的各类别的语句进行训练模型,可以得到将语句映射成为实值向量的编码网络。

对于步骤S14,按照各语义键的分类,将属于同一类别的语句利用步骤S13确定的编码网络,可以得到各语义键对应的实值向量集合。

例如,以“星座”这类语义键的语句利用编码网络进行编码,得到相应的实值向量,以“周杰伦”这类语义键的语句利用编码网络进行编码,得到相应的实值向量。

由于在步骤S11中示例的对话语料库的对话语句对较少。现实应用中的对话语料库中的语句对的数量会非常的多。使得实值向量集合中的实值向量也会非常的多。

对于步骤S15,从各语义键相对应的实值向量集合中选择多个向量组成记忆矩阵。例如,语义键“星座”相对应的实值向量集合中选择多个实值向量组成记忆矩阵S。为语义键“星座”和矩阵S建立语义键索引。通过所述语义键,即可找到相对应的矩阵。最终得到了众多语义键以及相对应的记忆矩阵,可以存储在存储介质中,可供其他设备进行调用。

作为一种实施方式,在本实施例中,所述利用对话语料库中的各类别的语句训练序列到序列模型包括:利用对话语料库中的各类别的语句训练序列到序列模型及其变种,其中,所述序列到序列模型及其变种包括:注意力模型和自编码模型。

在本实施方式中,其模型其特点是利用一个编码网络将语句编码为实值向量,而后利用一个解码网络将实值向量解码为一个语句。其中训练序列到序列模型时,编码网络会将输入语句编码成一个句向量;训练注意力模型时,编码网络会将输入的语句编码得到一个向量集合;训练自编码模型时,在回复时,会复现输入的语句。

通过该实施方法可以看出,通过提取对话语料库中各语句的语义键,对各语句进行分类,确定各类别集合中语句的实值向量,并将各类别的实值向量组成相应的记忆矩阵与相应的语义键建立索引,以实值向量的形式来存储相关的语义信息,建立语义键索引的可读写的存储设备,相当于将语料库实质化,可以方便地应用其中包含的语义信息,更容易进行语义的拓展和联想。

如图2所示为本发明另一实施例提供的一种创建语义键索引的方法的流程图,包括如下步骤:

S151:通过均值算法确定实值向量集合的中心点;

S152:确定实值向量集合中的各实值向量与所述中心点的距离;

S153:按照距离由小到大的顺序选取预设数量的实值向量组成记忆矩阵。

在本实施方式中,在现实应用时,对话语料库会收集大量的语句对话,使得对话语料库中的语句对的数量非常多,从而导致了各实值向量集合中的实值向量也很多,会造成记忆矩阵非常大。使得需要筛选出一些关联性较强的语句,进行实值向量选择。

对于步骤S151,通过使用K-均值算法确定出各实值向量的中心点。

对于步骤S152,根据步骤S151确定出的各实值向量集合的中心点,来确定其中心点与所在实值向量集合中各实值向量的距离,其中,常见的距离算法有欧氏距离和曼哈顿距离算法。

对于步骤S153,按照各实值向量到所述中心点的距离由小到大的排序选取预设数量的实值向量组成记忆矩阵,其中,距离越小,其关联性就越强,距离越大,关联性就越弱。

通过该实施方法可以看出,当语义键相对应的实值向量集合中的实值向量过多时,按照各实值向量与中心点的距离选取关联性较强的实值向量,在保持语义键对应的实值向量的精度时,减少了记忆矩阵的大小。

如图3所示为本发明一实施例提供的一种对话的回复语句生成方法的流程图,包括如下步骤:

S21:提取输入语句中的至少一个语义键;

S22:利用预设的语义映射关系,将所述至少一个语义键扩展为多个语义键集合;

S23:根据所述多个语义键集合中的各语义键,索引与所述各语义键匹配的记忆矩阵;

S24:至少将所述记忆矩阵输入到编码网络中进行解码,选择解码后的其中一条语句作出回复语句。

在本实施方式中,对于步骤S21,首先,接收输入的语句,其中,该语句可以为用户输入的语句,也可以由机器作为测试生成的语句。通过对输入语句进行分词、规范化处理等语言学的操作,提取语句中的至少一个语义键。例如,输入语句为:“梵高的画,很漂亮”。提取出其中的至少一个语义键:“梵高的画”。

对于步骤S22,利用预设的语义映射关系,将语义键“梵高的画”拓展为多个语义键集合{“向日葵”,“星月夜”}。

对于步骤S23,根据语义键集合中的各语义键来索引各语义键匹配的记忆矩阵。例如,语义键“向日葵”在外部存储器中索引到相应的记忆矩阵。其他语义键也通过相同的方法去外部存储器中索引相应的记忆矩阵。

对于步骤S24,根据步骤S23索引的记忆矩阵,将这些记忆矩阵输入到编码网络中进行解码,从而解码出多条语句,从中选取一条语句作为回复语句。

例如:输入“梵高的画,很漂亮”

语义键“梵高的画”,拓展为:“向日葵”,“星月夜”

拓展语义键为“向日葵”时,输出“确实很漂亮,尤其是梵高的向日葵,画中的花朵如燃烧的火焰一般,显出画家狂热般的生命激情”

拓展语义键为“星月夜”时,输出“的确挺漂亮的,其中有一副梵高的星月夜,象征着人类挣扎与奋斗的精神”

其中,在映射将语义键时,可以对其拓展的语义键进行控制。例如无论提取的语义键是什么例如“漂亮”。在拓展时,将其控制为“达芬奇”。这样输出语句可能就会是“达芬奇与梵高一样都是出色的画家”。

通过该实施方法可以看出,通过指定不同的语义键和相应的映射方法来控制生成的语义,可以对同一句话,所选定不同的语义键或者不同的语义映射方法,从而提高了模型生成回复的多样性,并在控制了对话语义的方向。从而提高了用户的体验。

作为一种实施方式,在本实施例中,所述至少将所述记忆矩阵输入到编码网络中进行解码包括:

将所述记忆矩阵和所述输入语句的句向量一起输入到编码网络中进行解码,其中,所述输入语句的句向量通过将输入语句导入所述编码网络中预生成。

在本实施方式中,将输入语句也输入到编码网络中,确定输入语句的句向量,再将所述记忆矩阵与输入语句的句向量同时输入到编码网络中进行解码。例如,“梵高的画,很漂亮”,提取的语义键为“漂亮”时进行拓展,得到拓展的语义键为“内涵”。通过拓展的语义键“内涵”在外部存储器中索引到相应的记忆矩阵,同时将输入语句“梵高的画,很漂亮”。输入到编码网络中,确定输入网络的句向量,再通过记忆矩阵与输入语句的句向量共同解码,从而解码出相应的语句“梵高的画,也很有内涵”。

通过该实施方法可以看出,将输入语句的句向量与记忆矩阵共同解码,可以使解码的语句更加贴近于输入语句的回答,使生成的语句与输入语句上下文关联。提高回复的智能程度,同时提升了用户体验,增加用户的满意度。

作为一种实施方式,在本实施例中,将所述至少一个语义键扩展为多个语义键集合,所述拓展包括:同词映射、同义词映射、反义词映射、知识图谱。

在本实施方式中,例如输入语句为:“周杰伦的电影太好看了”,提取出的语义键有“周杰伦”、“电影”。通过不同的拓展方法可以映射出多种不同的语义键:“周杰伦”、“昆凌”、“电影”、“歌曲”、“专辑”等。

通过映射出的不同语义键,在解码中也会得到各方面的语句,例如:

“周杰伦的演技十分精彩”

“在电影的拍摄中,昆凌也有露面哦”

“周杰伦的这个电影在2012年1月19日上映”

“周杰伦的歌也很好听”

“这个电影的主题曲就是由周杰伦演唱,还出了同名专辑哦”

通过该实施方法可以看出,通过映射出不同的语义键,解码得到各个方面的语句,提高了回复的多样性。从而提高了用户的体验感受。

作为一种实施方式,在本实施例中,当一轮对话完成后,将本轮对话对中的输入语句和回复语句作为对话对添加到语料库中,以扩充语义键索引。

在本实施方式中,由于输入语句是外界输入进来的,回复语句是解码生成的,有可能在对话语料库中没有该语句对,所以将本轮对话中的输入语句和回复语句作为对话语句对,添加到语料库中,从而扩充了语义键索引。

通过该实施方法可以看出,通过采集每一轮已完成的对话来对语义键索引进行更新。更新过后的新的语义键索引更加充实完善。

上述创建语义键索引的方法与对话的回复语句生成方法可以相互独立的操作和优化,也可以组合成整体的系统,如图4所示,可以应用于机器人的对话聊天中,其中,语句对的第一句话称为post,回应对话的语句对话称为comment。

所述系统的外部语义存储器是以矩阵表的形式构造一个张量。其中,每个矩阵表示对应特定语义键的所有可能代表的输出语句。矩阵的每一个行向量基于一条语句构成,一个矩阵表内的所有行向量都表示其对应的一个特定的语义键。在生成输出对话语句过程中,从输入语句中提取一个语义键,通过使用外部存储器存储的数据以及序列与序列模型来生成最后的输出对话语句。通过操作语义键,可以对输出语句的主题或语义进行引导。

其中,外部语义存储器引导序列到序列学习框架由三部分组成:一个编码器E,一个解码器D和一个外部语义存储器M,其中图5描述了其总体框架和数据流。

将外部语义存储器引入到编码器-解码器框架中,该外部语义存储器被认为是使用训练数据集外部的大量数据(可能是无监督的)构建。因此,外部语义存储器M可以被看作是外部知识的显式存储,这使得编码器-解码器模型能够使用post之外的知识生成comment。外部语义存储器的使用与我们对话的方式相似。在我们对话交流时,通常会关注一个语句的某些特定的语义关键词(例如关键词或者主题),然后根据我们的目标或背景知识思考相关的回复关键字或回复主题方向,最后根据组合出的语义构成一个输出语句进行答复。

我们使用外部语义存储模块来模拟这个对话过程。首先,使用语义键和外部语义存储器构造索引。当相应到有语句输入时,进行响应。提取输入语句的语义键,然后根据映射关系得到输出语义键,根据得到的输出语义键,对存储器进行寻址处理,最后,解码器模型基于输入语句和外部存储器中提取出语句生成输出语句。

具有外部存储器的编码器-解码器的整个框架被制定如下。

假设x1:T={x1,x2,...,xT}表示post中的各单词,其中T表示post的长度。在方程p,c1:T=E(x1:T)中,编码器模块E接收文字嵌入产生输入后文句子的稠密表示p和一组上下文向量c1:T={c1,c2,...,cT}(简称c),在本文中,我们简单地使用一个GRU(gated>

我们从输入的句子中提取语义键。一个典型的语义键只是一个词或短语,在输入的句子中提取语义键时,可以使用POS(Part-of-speech,词性标注)标签的LTP工具进行提取。通常可以从输入语句中提取出多个语义键,提取出的语义键被称为输入语义键。我们可以选择一个输入语义键,在选择输入语义键时,可以使用不同的方法,例如迭代选择或者随机选择的方法进行选择,在选择好一个输入语义键后,通过选择不同的输入语义键,我们可以生成具有不同语义偏好的输出语句。也就是说,一旦找到输入语义键k(i),将其通过语义键映射器S转换成为输出语义键k(o),其公式为:k(o)=S(k(i))。

语义键映射器S可以进行非常简单的映射,例如,直接使用输入语义键作为输出语义键,即k(o)=k(i)。或者,也可以进行很复杂的映射,例如,通过同义词或者从知识图谱等方法推导出的词语。甚至可以无论输入语义键的词语是什么,直接使用指定的词语作为输出语义键,在生成输出语句的时候强制使用指定的输出语义键。这样,使得语义键映射器具有可控性。

在确定了输出语义键之后,我们需要使用它来为外部语义存储器建立索引。如图5所述,存储模块M由k个存储单元组成,其中,k是所有语义键的数量。每个语义键对应于相应的存储单元的地址或索引、每个存储单元是与特定语义键相关联的L*D矩阵,其中L表示存储单元中语句的行数,D表示语句的维度。读取器(Reader)R对所选存储单元m进行读取,以用来产生外部存储器上下文向量r。其中r=R(m,p)。

收到神经图灵机的启发,我们将一种基于内容的寻址应用于所选存储单元的矩阵。给定一个后缀p,读取器R将返回方程的矩阵m上的加权向量,其中wl由方程给出。其中m(l)表示矩阵m中的第l行。上述公式中的β是控制权向量的锐度的系数。为了保证清晰度,在此将β的值设为100。

在获得存储器上下文向量r后,我们将输入语句中每一个单词进行复制,并将其追加到原始上下文C1中,形成一个新的联合上下文向量集其中,在解码期间,解码器D使用来自后置语句和外部语义存储器的语境向量来产生应答输出回复(表示为y)。其中,应答输出回复

下面对外部语义存储器引导序列到序列学习的全过程在以下的算法中进行总结。要注意,外部存储器的构建与编码-解码器的训练无关。在给定外部存储器的情况下,可以使用标准梯度下降算法来训练编码-解码器模型。外部语义存储器引导序列到序列的生成算法如下:

1、接收输入对话语句;

2、将对话语句转换为一个单词嵌入序列x1:T;

3、提取输入语义键k(i)

4、将输入语义键通过映射得到输出语义键k(o)=S(k(i));

5、通过输出语义键找到关联的内存块矩阵m;

6、使用编码器p对输入对话语句进行编码c1:T=E(x1:T);

7、从外部语义存储器读取内存上下文向量r=R(m,p);

8、将r追加到原始的编码器上下文向量中,

9、通过公式解码生成输出回复语句。

整体的系统相比与其他生成式的模型,可以生成更丰富更具体且具有知识性的回复,并且可以在一定程度上控制对话的语义方向。同时,可以将所述整体的系统使用到具有聊天对话功能的机器人系统当中,可以提高用户的满意度,从而增加用户与所述机器人的交互轮数,提高用户的认可度。所述整体的系统应用在其他类似的涉及对话交互的任务上,也可以提高系统整体的只能程度和用户满意度。

上面描述了所述方法的总体框架,下面详细介绍外部语义存储器的结构。

每个存储单元的内容是包括对应于特定语义键的K个代表性评论语句嵌入的矩阵。“语义键”可以由关键字或主题含义的矢量来表示。在基于关键字的表示情况下,它是单向矢量的索引。如上述公式k(o)=S(k(i))所示,可以通过语义键映射器S映射输入语义键来获得输出语义键。

外部语义存储器是独立于编码器-解码器的训练过程而构建的。这种分离可以使得我们能够在编码器-解码器训练数据之外加入信息。根据外部存储器构造的数据,可以使用两种不同的方法来确定编码器。

1、编码解码器

在给定并行的STC数据中,可以预先训练标准的序列到序列学习。在这里,数据可以与用于外部语义存储器引导训练的数据不同,以结合外部知识。一旦训练完成,抛弃解码器,只留下编码器用来训练并转换对话数据。

2、自编码器

当给定的数据不是语句对时(例如新闻,小说,或其他文本材料),可以使用自编码器来对其进行转换训练。

为了构建外部语义存储器,我们可以获得每个对话语句的语义键,然后将这些对话语句按照语义键进行聚合分类。一旦分组完成,我们需要为每个语义键构建一个固定大小的存储单元,即从每个组内的所有句子中选择k个最具代表性的句子。为了选择出最具有代表性的句子,需要对同一存储单元中所有句子进行语义分析,并获得空间的投影向量。然后在投影矢量上使用“K-均值算法”来聚类。最后,为每个相应的潜在投影向量离中心最近的聚类中心选择一个语句。当存储单元中的句子的数量少于k个的情况下,使用零向量进行填充。

通过构建的外部语义存储器与编码器-解码器进行训练,训练过程可分为数据预处理和端到端的编码器-解码器训练两部分。

1、数据预处理:如上所述,可以将一个句子放入存储器结构中的多个语义键组中。训练数据也按照相同的规则进行处理。由于训练语料库是后评语句,我们根据语义键对训练进行过滤。它有两个好处(1)更便于小批量的培训;(2)可能会筛选出一些通用的回应。

首先提取输入语句的语义键,然后由语义键映射器将这些输入语句的语义键转化为相关的输出语义键。然后根据输出语义键将训练对分成不同的关键组。值得注意的是,一个输入的句子可能对应多个输出的句子。通过应用分组,我们根据它们的输出语句进行分类。而一个输出的句子,也可能与多个输入语句有关,这样就说明这个输出的句子很通用,没有实际的意义,将这类无意义语句进行去除。

2、端到端培训和生成:培训过程如上文所述,在训练期间,外部语义存储器是固定的,因此它基本上是解码器的额外输入。该模型的其余部分是标准的编码器-解码器结构。如图5所示。我们从训练数据中随机选择一个回答语义键,然后进行构造输出语句。编码器-解码器的目标函数定义如下:

其中,目标函数是完全可调的。在生成过程中,首先从输入语句中提取语义键,如果有多个输入语义键,则依次使用他们来生成多个输出语句候选。然后根据他们的可能性对这些候选进行排序,以产生最终的前一名或前n名输出。

为了验证此方法,我们使用了来自微博的大约420万对STC数据进行编码器-解码器培训。LTP工具用于分词和POS标记。按照上述预处理方法对数据集进行过滤,从而将其规模缩小到150万。所有的数据都用于外部存储器的建设,而数据集中只有120万用于训练,以显示利用外部语料库的潜力。从数据集中提取1000对作为客观评估的测试集。

我们构建了三种序列生成系统:神经回复机NRM(neural responding machine,标准的序列到序列训练),MrRNN(multiresolution recurrent neural network,多分辨率循环神经网络)和提出的ESED(external semantic memory guided encoder-decodermodel,外部语义存储器引导编码器-解码器模型)。对于我们的模型,我们使用三种方法来构建外部存储器:S2S(sequence to sequence model序列到序列模型)、Atten(neuralattention model,注意力模型)和AutoED(auto-encoder,自编码器),其中,AutoED只对comment进行训练(可以看做是利用无监督大数据的非平行语料库)。

ESED的编码器和解码器结构相同。它是具有400维的词嵌入和800维的隐藏状态矢量的一层GRU。使用名词、形容词作为语义键。所有参数在-0.05和0.05之间均匀分布地初始化。Adam(A method for stochastic optimization,随机优化的一种方法)优化器的初始学习率为0.0004。最小批量大小设置为64。对于NRM,我们使用与词语嵌入和隐藏状态相同的维度作为我们的模型。对于MrRNN,我们用LSTM(long short term memory,长短时记忆)代替了HRED(hierarchical recurrent encoder-decoder,分层循环编码-解码器)模型,并把名词和形容词作为语义键。所有这些模型都经过了多个时间的训练,以最好的有效的解决复杂的问题。值得注意的是,对于ESED,依次使用多个输入语义键来生成多个输出语句进行候选,我们按照语义键的长度降序排列候选词,因为我们认为长词可能会包含更多的信息。

1、多样性和实质性分析

在本文中,我们提出了两个目的分析指标:STC的多样性和实质性。它们都可以从生成语句中轻松直接的计算,而且不需要参考语句。这样避免了控件中的引用的覆盖率可能非常低的问题。

多样性反映了生成语句中的词语的丰富性,被定义为

通过计算单词的总数和唯一出现的单词的数量,对所有测试句子进行计算。这里的基本假设是生成的词汇越丰富,生成的评论就越多样化。从这个度量标准可以轻松的看出,普遍使用的无效答复会减少多样性度量。

实质性反应了生成的答复中包含的实质性信息,这些信息被定义为有意义的实体的数量。我们不使用NER(name entity recognition,命名实体识别)工具来提取实体,因为这些工具通常只识别人名、地名和组织名称,这是相对有限的。相反,我们使用基于维基百科实体表的最大字符串匹配算法来识别有意义的实体。我们将实体定义为测试集上每句话的平均实体字数:

对于测试集中的每个句子,我们选择top-1和top-5来计算这两个度量。结果如图6中表1所示。可以观察到,ESED在多样性和实质性方面始终优于其他两个模型,其差异对于top-1的结果具有统计学的意义。对于top-5的结果,ESED的多样性下降幅度小于NRM模型。这表明ESED能够产生更多样化和丰富的输出语句。实体从top-1到top-5的结果的减少可能是由于语义键中包含的信息减少(更长的语义键排名更高)。

我们相信ESED的上述性能收益主要是由于使用语义键。特别是当ESED的训练数据被分割成共享相同语义键的后评论数据时,我们正在有效地去除通用的回复语句。为了得到这个具体的想法,图7中表二给出了一些例子。从这些例子可以看出,NRM和MrRNN倾向于合理、安全但是无实际意义的答案,而ESED可以使用不同的语义键来产生更具体和多样化的评论。图6中表1的ESED模型使用词语(名词、形容词、成语)作为语义键的表示。将这个单词级别的语义键和使用主题含义级别的语义键进行比较也是有意义的。

为了考虑其他的语义键类型,我们使用主题(topic)作为语义键进行了实验。关于我们实验中使用的话题模型,我们试图培养一个适合短文本的模型。与LDA(Latentdirichlet allocation,潜在狄利克雷分布)相比,BTM(Biterm Topic Model,一种短文本主题模型)在短文本建模方面更为有效。此外,该模型应该以适当的粒度聚集文本:既不是一般的(无信息),也不是太具体(过度拟合)。因此,我们在实验中选择不同的主题大小(200和500)。详细的培训程序和设置与上述原文相同。因此,我们首先如上所述的训练主题模型,并通过最大概率选择主题来为每个句子分配独特的主题。因此,我们首先如上所述地训练主题模型,并通过最大概率选择主题来为每个句子分配独特的主题。我们假设一个普通的语义映射器用于主题。因此,我们只需要估计一个帖子的主题,而语义键就是这个主题的索引。为了调查话题数量的影响,我们将话题数量分别设置为200和500。图8中表3显示了主题级别的多样性和实质性表现。为了比较,也列出了可比较词级别的结果。

可以观察到,主题级别的外部存储器执行比词级别的存储器差很多。我们认为这很大程度上是因为一个话题的语义如此模糊,以至于我们无法很好的控制所产生的输出语句的语义。此外,两个主题之间没有明确的关系,因此也很难定义一个有意义的语义映射器。而且,由于每个句子只能有一个主题,所以在ESED训练中共享相同主题的发表评论对就更加困难。实际上,我们观察到,用于训练ESED和主题级别的数据的数量要小得多。所有这些都造成了图8中表3数据的退化。在本文的其余部分,我们只关注词级别的外部存储器。

2、回复质量的客观评估

我们使用BLEU(a method for automatic evaluation of machinetranslation,机器翻译自动评价的一种方法)评分的参考来评估答复评论质量和客观度量。BLEU评分首先被提出来评估机器翻译的质量。最近它也被用作对话系统中答复质量的客观指标。结果如图9中表4所示。

可以观察到,对于top-1和top-5生成的评论,ESED比BLEU获得更好的评分。尽管有人认为BLEU评分与人类评价的一致性在用于对话系统评价时较差。但一致性的性能收益仍然证明了所提出的ESED方法的有效性。

3、人员评价答复质量

我们还进行了人员评估,比较不同模型在top-1设置上的回复评论质量。我们遵循STC-2挑战的评估标准。答复的适当性从以下四个标准来判断:

(1)流利:评论作为自然语言文本是可以接受的;

(2)一致性:评论应与逻辑联系起来,并与原文相关;

(3)自给自足:评估者可以通过阅读评论对以外的任何内容来判断评论是否合适;

(4)实质性的:评论提供了这个职位发起人眼中的新信息。

如果(1)或者(2)不合标准,评论应该标注为“L0”;如果(3)或者(4)不合标准,评论应该标注为“L1”,否则。标注为“L2”。为了强调通用评论问题,我们增加了一个特殊的符号“LD”来标注合理但通用的评论。当我们计算平均分时,“L2”是2分,“L1”是1分,“L0”是0分。特别地,我们将“LD”记为0分,以鼓励系统产生多样的信息反馈,而不是通用的评论。最终的平均分数就是所有测试句子中所有说话人分数的平均值。

我们的测试集由训练集中的100个句子组成。六个注释者根据上述标准对生成的回答进行评分。结果如图10中表5所示。对于LD、L0、L1、L2,数字是生成句子的百分比,Ave是平均分数。很显然,ESED模型比基线NRM模型产生的通用回复少的多。尽管ESED具有比MrRNN更大的LD百分比,这可能是因为MrRNN倾向于产生多种无法理解的答案。一般来说,ESED模型可以生成更加连贯和信息更丰富的评论,这是人们所赞赏的。这也与图6表1的结论一致。

4、语义键引导分析

前面的已经表明ESED方法STC的效果。这些实验都使用了一个普通的统一语义键映射函数。生成评论的丰富多样性主要来自同一个post中提取的多个语义键。但是,如前文所述,ESED的一个主要优点是可以通过操纵语义映射器来控制生成的语义。

(1)可控语义键映射方法:除了使用相等函数作为映射器外,还有许多其他的自动方法来映射输入语义键。这个想法是找到与输入语义键相关的单词或短语。可以使用语义学关系映射(如同义词或反义词)或数据驱动映射(如词嵌入邻域)。除了自动方式以外,还可以手动控制映射。即设置输出语义键。图11中表6显示了使用不同的语义映射函数生成的同一输入语句的输出语句。可以看到,使用同义词或者反义词映射功能,生成的语句与输入语义联系紧密,但内容不同。这种丰富的语义表明了使用外部存储器的优势。我们还使用随机选择的语义键来显示引导生成的评论的可能性。如图11中表6所示,这些评论大部分能够保持语义相关性和主题一致性。但值得注意的是,并非所有语义映射函数都会有明显的结果。

(2)通过外部存储进行知识导入:除了多样化的信息反馈外,我们的模型还可以利用外部存储将新知识引入生成的评论。考虑到存储器内存储单元的内容是包含top-K代表评论语句嵌入的矩阵的外部语义存储器构建过程,矩阵中可能包含与相应语义关键字相关的知识。嵌入式知识可以与外部存储器的训练数据中,共同出现的词语或相关的实体关联,在图12中表7给了一些例子。

从表中可以看出,外部信息可以通过手动指定特定的语义键来引入,这使得注释实质上不会影响流畅性和一致性。例如,给出了“Song”的语义键,模型显示了关联的能力,并且产生了“周杰伦的歌也不错”的评论,它使用周杰伦是电影明星和歌手的知识。

通过本文提出的方法。通过编码器-解码器框架中结合外部语义存储器,该方法大大缓解了普遍适用的无效答复问题,并产生了更加多样化和具体的反应。客观评估和人类评估都显示出优势。外部存储建构和神经网络训练的分离也使得利用非平行语料库的可能。并且,生成相应的语义可以通过操纵语义映射器来控制,这意味着产生更丰富的新语句。

如图13所示为本发明一实施例提供的一种创建语义键索引的系统的结构示意图,本实施例的技术方案可适用于对设备的创建语义键索引的方法,该系统可执行上述任意实施例所述的创建语义键索引的方法,并配置在终端中。

本实施例提供的一种创建语义键索引的系统包括:语义键提取程序模块11,语句聚类程序模块12,编码网络映射程序模块13,语句编码程序模块14和语义键索引建立程序模块15。

其中,语义键提取程序模块11用于在对话语料库中,分析各对语句对的输入语句和回复语句的各词语的词性,提取每一句语句中符合预设词性要求的各语义键,其中,所述预设词性包括:名词、形容词、动词中的至少一种;语句聚类程序模块12用于按照语义键对对话语料库中的所有语句进行聚类,每一类别的语句对应于同一语义键;编码网络映射程序模块13用于利用对话语料库中的各类别的语句训练序列到序列模型,得到能够将语句映射成为实值向量的编码网络;语句编码程序模块14用于将属于同一类别的语句利用所述编码网络进行编码,得到与各语义键相对应的实值向量集合;语义键索引建立程序模块15用于从与各语义键相对应的所述实值向量集合中选择多个实值向量组成记忆矩阵,在各语义键和各记忆矩阵件建立语义键索引。

进一步地,所述语义键索引建立程序模块用于:

通过均值算法确定实值向量集合的中心点;

确定实值向量集合中的各实值向量与所述中心点的距离;

按照距离由小到大的顺序选取预设数量的实值向量组成记忆矩阵。

如图14所示为本发明一实施例提供的一种对话的回复语句生成系统的结构示意图,本实施例的技术方案可适用于对设备的对话的回复语句生成方法,该系统可执行上述任意实施例所述的对话的回复语句生成方法,并配置在终端中。

本实施例提供的一种创建语义键索引的系统包括:语义键提取程序模块21,语义键拓展程序模块22,记忆矩阵索引程序模块23和语句回复程序模块24。

其中,语义键提取程序模块21用于提取输入语句中的至少一个语义键;语义键拓展程序模块22用于利用预设的语义映射关系,将所述至少一个语义键扩展为多个语义键集合;记忆矩阵索引程序模块23用于根据所述多个语义键集合中的各语义键,索引与所述各语义键匹配的记忆矩阵;语句回复程序模块24用于至少将所述记忆矩阵输入到编码网络中进行解码,选择解码后的其中一条语句作为回复语句。

进一步地,所述至少将所述记忆矩阵输入到编码网络中进行解码包括:

将所述记忆矩阵和所述输入语句的句向量一起输入到编码网络中进行解码,其中,所述输入语句的句向量通过将输入语句导入所述编码网络中预生成。

进一步地,当一轮对话完成后,将本轮对话对中的输入语句和回复语句作为对话对添加到语料库中,以扩充语义键索引。

在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”,不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号