CN112966520B - 自然语言生成方法及装置 - Google Patents
自然语言生成方法及装置 Download PDFInfo
- Publication number
- CN112966520B CN112966520B CN202110150679.2A CN202110150679A CN112966520B CN 112966520 B CN112966520 B CN 112966520B CN 202110150679 A CN202110150679 A CN 202110150679A CN 112966520 B CN112966520 B CN 112966520B
- Authority
- CN
- China
- Prior art keywords
- vector
- output
- previous
- state vector
- current
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 83
- 239000013598 vector Substances 0.000 claims abstract description 510
- 238000012545 processing Methods 0.000 claims abstract description 70
- 230000004927 fusion Effects 0.000 claims abstract description 68
- 230000009471 action Effects 0.000 claims abstract description 65
- 239000000470 constituent Substances 0.000 claims abstract description 31
- 230000008569 process Effects 0.000 claims description 45
- 230000009466 transformation Effects 0.000 claims description 33
- 238000010606 normalization Methods 0.000 claims description 13
- 238000005070 sampling Methods 0.000 claims description 6
- 238000012512 characterization method Methods 0.000 claims description 5
- 230000015654 memory Effects 0.000 claims description 5
- 230000002123 temporal effect Effects 0.000 claims description 4
- 238000004590 computer program Methods 0.000 claims description 3
- 239000000306 component Substances 0.000 description 16
- 230000006870 function Effects 0.000 description 9
- 239000011159 matrix material Substances 0.000 description 9
- 238000004364 calculation method Methods 0.000 description 7
- 125000003275 alpha amino acid group Chemical group 0.000 description 6
- 150000001875 compounds Chemical class 0.000 description 6
- 230000014509 gene expression Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 238000012549 training Methods 0.000 description 5
- 238000006243 chemical reaction Methods 0.000 description 4
- 230000004913 activation Effects 0.000 description 3
- 238000000137 annealing Methods 0.000 description 3
- 230000000306 recurrent effect Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000007499 fusion processing Methods 0.000 description 2
- 230000000670 limiting effect Effects 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- NAWXUBYGYWOOIX-SFHVURJKSA-N (2s)-2-[[4-[2-(2,4-diaminoquinazolin-6-yl)ethyl]benzoyl]amino]-4-methylidenepentanedioic acid Chemical compound C1=CC2=NC(N)=NC(N)=C2C=C1CCC1=CC=C(C(=O)N[C@@H](CC(=C)C(O)=O)C(O)=O)C=C1 NAWXUBYGYWOOIX-SFHVURJKSA-N 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 229960001948 caffeine Drugs 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000008358 core component Substances 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000005251 gamma ray Effects 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000006403 short-term memory Effects 0.000 description 1
- 235000013599 spices Nutrition 0.000 description 1
- RYYVLZVUVIJVGH-UHFFFAOYSA-N trimethylxanthine Natural products CN1C(=O)N(C)C(=O)C2=C1N=CN2C RYYVLZVUVIJVGH-UHFFFAOYSA-N 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/30—Semantic analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/047—Probabilistic or stochastic networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- General Engineering & Computer Science (AREA)
- Biomedical Technology (AREA)
- Evolutionary Computation (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Biophysics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Probability & Statistics with Applications (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Machine Translation (AREA)
Abstract
本说明书实施例提供一种自然语言生成方法。该方法包括:首先,获取第一对话动作,其n个组成元素中包括动作类型,以及n‑1个词槽‑槽值对,并对该第一对话动作进行编码,得到对应n个组成元素的n个编码向量;然后,基于该n个编码向量进行解码,依次确定待输出的自然语言文本的各个位置的语义项,其中确定任意当前位置的语义项包括:先利用表达器集合中的各个表达器,各自对前一位置输出信息进行处理,得到对应输出,再利用模式切换器对各个表达器的输出进行加权融合,得到当前位置对应的当前状态向量和当前融合概率分布,进而根据该当前融合概率分布,确定当前语义项,其中当前状态向量和当前语义项作为当前位置输出信息。
Description
技术领域
本说明书一个或多个实施例涉及机器学习领域,尤其涉及自然语言生成的方法及装置。
背景技术
随着人工智能和机器学习的快速发展,各种自然语言处理任务已广泛应用于多种业务实施场景。在例如智能客服,自动播报等多种业务场景中,会使用自动对话***,生成自然语言的对话语句。
自动对话***中的核心部件为自然语言生成NLG(Natural LanguageGeneration)***,用于将一种意思表征,也就是对话动作DA(Dialogue Act)转换为自然语言的句子。一般地,对话动作DA中包含动作类型(act type)和一些词槽-槽值对,其中词槽(slot)表示信息类型,槽值表示对应类型的信息内容,而动作类型控制输出句子的句子风格。例如,一个对话动作DA可以是:
Inform(name=ZZ hotel,phone=6788888)
在以上DA中,inform为动作类型,name为一个词槽,槽值为ZZhotel;phone为另一个词槽,槽值为6788888。
而NLG***则用于根据输入的对话动作DA,输出自然语言句子,表达输入DA中的核心意思。
已经通过多种方式构建了一些NLG***。然而,现有的NLG***通常相当于一个黑盒,可解释性较差。因此,希望能有改进的方案,可以提高NLG***的可解释性。
发明内容
本说明书一个或多个实施例描述了一种自然语言生成方法及装置,通过设计异质的语言表达器集合,以及用于切换表达器模式的切换变量,构建新的具有高可解释性的自然语言生成***。
根据第一方面,提供了一种自然语言生成方法,包括:获取第一对话动作,其n个组成元素中包括动作类型,以及n-1个词槽-槽值对;对所述第一对话动作进行编码,得到对应n个组成元素的n个编码向量。基于所述n个编码向量,依次确定待输出的自然语言文本的各个位置的语义项,其中,确定任意当前位置的语义项包括:利用指针网络,对前一位置输出信息以及所述n个编码向量进行第一处理,得到第一输出,其中包括第一状态向量,以及将n-1个槽值中的各个槽值复制到当前位置的第一概率分布;利用序列生成器,对所述前一位置输出信息和n个编码向量进行第二处理,得到第二输出,其中包括第二状态向量,以及从预定字符集中选取各个字符的第二概率分布;利用语言模型,对所述前一位置输出信息进行第三处理,得到第三输出,其中包括第三状态向量,以及从预定字符集中选取各个字符的第三概率分布;对所述第一输出,第二输出和第三输出进行加权融合,得到当前位置对应的当前状态向量和当前融合概率分布;根据该当前融合概率分布,确定在当前位置输出的当前语义项,所述当前状态向量和所述当前语义项作为当前位置输出信息。
在一个实施例中,对所述第一对话动作进行编码,得到对应n个组成元素的n个编码向量,包括:对所述动作类型和n-1个词槽进行嵌入处理,得到n个嵌入向量;利用时序递归网络,对所述动作类型对应的预设字符进行处理,并对所述各个槽值所包含的若干字符进行处理,得到n个时序表征向量;将对应同一组成元素的嵌入向量和时序表征向量进行融合,得到n个融合向量;针对任一组成元素,确定该组成元素对应的融合向量对所述n个融合向量分配的注意力权重;利用该注意力权重对所述n个融合向量进行加权组合,得到该组成元素对应的编码向量。
在一个实施例中,所述前一位置输出信息包括,前一位置输出的前一语义项,该前一位置对应的前一状态向量;所述第一处理包括:利用第一时序递归网络,根据所述前一状态向量和基于所述前一语义项确定的当前输入向量,确定所述第一状态向量;确定所述第一状态向量相对于所述n个编码向量的注意力权重的权重分布,作为所述第一概率分布。
在一个实施例中,所述前一位置输出信息包括,前一位置输出的前一语义项,该前一位置对应的前一状态向量,所述第二处理包括:确定所述前一状态向量相对于所述n个编码向量的注意力权重,并利用所述注意力权重对所述n个编码向量进行加权组合,得到加权向量;利用第二时序递归网络,根据所述前一状态向量,以及基于所述前一语义项和所述加权向量确定的当前输入向量,确定所述第二状态向量;基于所述第二状态向量进行线性变换处理,得到所述第二概率分布。
在一个具体的实施例中,基于所述第二状态向量进行线性变换处理,得到所述第二概率分布,包括:对所述第二状态向量和加权向量的拼接向量进行线性变换处理,得到所述第二概率分布。
在一个实施例中,所述前一位置输出信息包括,前一位置输出的前一语义项,该前一位置对应的前一状态向量,所述第三处理包括:利用第三时序递归网络,根据所述前一状态向量和基于所述前一语义项确定的当前输入向量,确定所述第三状态向量;对所述第三状态向量进行线性变换处理,得到所述第三概率分布。
在一个实施例中,所述前一位置输出信息包括该前一位置对应的前一状态向量;在对所述第一输出,第二输出和第三输出进行加权融合之前,所述方法还包括:基于所述前一状态向量,确定权重向量;对所述第一输出,第二输出和第三输出进行加权融合,具体包括:根据所述权重向量,对所述第一输出,第二输出和第三输出进行加权融合。
在一个具体的实施例中,基于所述前一状态向量,确定权重向量,包括:将所述前一状态向量输入全连接网络,输出第一分数向量;基于对所述第一分数向量进行归一化处理的结果,确定所述权重向量。
在一个更具体的实施例中,基于对所述第一分数向量进行归一化处理的结果,确定所述权重向量,包括:对所述第一分数向量进行归一化处理,得到所述第二分数向量;针对所述第二分数向量中任一的向量元素,对其进行取对数运算,对该取对数运算的运算值进行耿贝尔噪声添加,得到加噪元素,以构建加噪向量;基于所述加噪向量进行归一化处理,得到所述权重向量。
在另一个具体的实施例中,基于所述前一状态向量,确定权重向量,包括:对所述前一状态向量进行参数重构处理,得到重构向量;分别计算所述第一状态向量、第二状态向量和第三状态向量,与所述重构向量之间的相似度;基于所述相似度,确定所述权重向量。
在一个更具体的实施例中,对所述前一状态向量进行参数重构处理,得到重构向量,包括:将所述前一状态向量分别输入第一全连接网络和第二全连接网络,得到第一变换向量和第二变换向量;对所述第二变换向量与随机采样的高斯向量进行对位相乘处理,得到对位相乘向量;将所述第一变换向量与对位相乘向量的和向量,确定为所述重构向量。
在另一个更具体的实施例中,基于所述相似度,确定所述权重向量,包括:基于所述相似度中最大值,进行独热编码,并将得到的独热编码向量作为所述权重向量。
根据第二方面,提供了一种自然语言生成装置,包括:获取单元,配置为获取第一对话动作,其n个组成元素中包括动作类型,以及n-1个词槽-槽值对;编码单元,配置为对所述第一对话动作进行编码,得到对应n个组成元素的n个编码向量;解码单元,配置为基于所述n个编码向量,依次确定待输出的自然语言文本的各个位置的语义项,其中,解码单元利用以下模块确定任意当前位置的语义项:第一处理模块,配置为利用指针网络,对前一位置输出信息以及所述n个编码向量进行第一处理,得到第一输出,其中包括第一状态向量,以及将n-1个槽值中的各个槽值复制到当前位置的第一概率分布;第二处理模块,配置为利用序列生成器,对所述前一位置输出信息和n个编码向量进行第二处理,得到第二输出,其中包括第二状态向量,以及从预定字符集中选取各个字符的第二概率分布;第三处理模块,配置为利用语言模型,对所述前一位置输出信息进行第三处理,得到第三输出,其中包括第三状态向量,以及从预定字符集中选取各个字符的第三概率分布;输出融合模块,配置为对所述第一输出,第二输出和第三输出进行加权融合,得到当前位置对应的当前状态向量和当前融合概率分布;信息确定模块,配置为根据该当前融合概率分布,确定在当前位置输出的当前语义项,所述当前状态向量和所述当前语义项作为当前位置输出信息。
根据第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面的方法。
根据第四方面,提供了一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面的方法。
根据本说明书实施例提供的自然语言生成方法和装置,在将对话动作准确地转换为自然语言文本的同时,使得转换过程具有极高的可解释性。进一步,对于任一位置的输出语义项yj,模式切换器对应输出的权重向量oj可以指示其来表达器集中的哪个表达器,若指示来自指针网络,则指针网络产出的第一概率分布可以进一步指示语义项yj从哪个槽值复制得到,若指示来自序列生成器,则第二概率分布/>可以进一步指示语义项yj是基于哪些槽值进行改写而得到,若指示来自语言模型,则表明语义项yj是生成的文本无关(context-agnostic)词汇。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1示出根据一个实施例的NLG***的使用架构示意图;
图2示出根据一个实施例的自然语言生成的方法流程示意图;
图3示出根据一个实施例的自然语言生成的装置结构示意图。
具体实施方式
下面结合附图,对本说明书提供的方案进行描述。
如前所述,NLG***用于将输入的对话动作DA转换为自然语言句子。对此转换过程,发明人经研究发现,可以将DA中涉及的词槽统一划分为以下三类:复写类词槽,其槽值总是被原封不动、一字不差地搬到自然语言句子中,例如,词槽“name”,其对应槽值“BlueSpice”;指示类词槽,其槽值包括“是”、“否”等,此类词槽及其对应的槽值,在转换过程中可能会涉及到虚词、助词的生成,例如,词槽“familyFriendly”,假定其对应槽值为“yes”,其在自然语言句子中可能会被转换为“is familyFriendly”;改写类词槽,其槽值大概率会在自然语言句子中被转述为其他表达方式,例如,词槽“priceRange”,假定其对应槽值为“less than 5dollars”,则其在自然语言句子中可能会被改写为“low cost”。
基于此,发明人提出一种新的NLG***,其中包括编码组件和解码组件,解码组件中又包括异质的表达器集合(renderer set)和表达模式切换器(mode switcher),表达器集合中的不同表达器具有不同的结构和功能,可以用于处理上述不同类型的词槽,表达模式切换器可用于对不同表达器的输出进行选取或聚合,从而得到最终的自然语言输出结果,并且,通过此种方式,可以明确获知该自然语言输出结果中各个字符的生成方式和来源,使得NLG***的解释性得到极大的增强。
图1示出根据一个实施例的NLG***的使用架构示意图。如图1所示,对话动作DA可表示为包含n个元素的集合,即x={(s1,v1),(s2,v2),…,(sn,vn)},其中s1表示动作类型,v1表示预定字符“TYPE”,剩余元素表示词槽-槽值对;先利用编码组件对DA进行编码,得到(si,vi)对应的编码向量i的取值区间为[0,1];再利用表达器集合对编码向量/>进行解码,具体,在生成当前位置的输出信息时,指针网络(pointer network)利用前一位置的输出信息(包括状态向量/>和语义项yj-1,其中语义项可以是单词或词组等)以及编码向量确定第一输出,包括状态向量/>和针对语义项的第一概率分布/>序列生成器(Sequence Generator)利用前一位置的输出信息和编码向量/>确定第二输出,包括状态向量/>和第二概率分布/>语言模型利用前一位置的输出信息,确定第三输出,包括状态向量/>和第二概率分布/>然后,利用模式切换器对第一输出、第二输出和第三输出进行融合,得到当前位置的输出信息,包括状态向量/>和语义项Qj。如此,可实现自然语言文本的生成。
下面结合具体的实施例,对上述发明构思进行介绍。图2示出根据一个实施例的自然语言生成的方法流程示意图,所述方法的执行主体可以是任何具有计算、处理能力的服务器、装置或设备集群等。如图2所示,所述方法包括以下步骤:
步骤S210,获取第一对话动作,其n个组成元素中包括动作类型,以及n-1个词槽-槽值对;步骤S220,对所述第一对话动作进行编码,得到对应n个组成元素的n个编码向量;步骤S230,基于所述n个编码向量,依次确定待输出的自然语言文本的各个位置的语义项,其中,确定任意当前位置的语义项包括:步骤S231,利用指针网络,对前一位置输出信息以及所述n个编码向量进行第一处理,得到第一输出,其中包括第一状态向量,以及将n-1个槽值中的各个槽值复制到当前位置的第一概率分布;步骤S232,利用序列生成器,对所述前一位置输出信息和n个编码向量进行第二处理,得到第二输出,其中包括第二状态向量,以及从预定字符集中选取各个字符的第二概率分布;步骤S233,利用语言模型,对所述前一位置输出信息进行第三处理,得到第三输出,其中包括第三状态向量,以及从预定字符集中选取各个字符的第三概率分布;步骤S234,对所述第一输出,第二输出和第三输出进行加权融合,得到当前位置对应的当前状态向量和当前融合概率分布;步骤S235,根据该当前融合概率分布,确定在当前位置输出的当前语义项,所述当前状态向量和所述当前语义项作为当前位置输出信息。
针对以上步骤,首先需要说明的是,上述“第一对话动作”、“第一处理”、“第一输出”等中的“第一”,“第二处理”、“第二输出”等中的“第二”,以及文中他处的类似用语,均是为了区分同类事物,不具有其他限定作用。
对以上步骤的展开介绍如下:
首先,步骤S210,获取第一对话动作,其n个组成元素中包括动作类型,以及n-1个词槽-槽值对。需说明,文中将获取到的任意一个对话动作DA,称为第一对话动作。在一个实施例中,可以将对话动作表示为包含n(n为大于1的正整数)个元素的集合,如,x={(s1,v1),(s2,v2),…,(sn,vn)},其中s1可以指代动作类型,如“inform”或“request”,v1可以指代预定字符,如“TYPE”或“ACT”,集合中的其他元素(si,vi),i∈(1,n],指代词槽-槽值对。在另一个实施例中,其中sn指代动作类型,vn指代预定字符,集合中的其他元素(si,vi),i∈[1,n),指代词槽-槽值对。在一个例子中,某一DA可以被表示为:x={(inform,[TYPE]),(name,[Bue,Spice]),(familyFriendly,[yes]),(priceRange,[less,than,20])}。
以上,对获取的第一对话动作进行介绍。接着,在步骤S220,对该第一对话动作进行编码,得到对应n个组成元素的n个编码向量。在一个实施例中,可以直接利用LSTM(LongShort-Term Memory,长短期记忆)网络,对第一对话动作进行编码,但是,这种方式按序读取集合x中的元素,具有较强的顺序敏感性(order-sensitive),容易忽视DA的逻辑结构。在另一个实施例中,可以采取One-hot encoding(独热编码)的方式,对第一对话动作进行编码,但是,One-hot编码无法处理改写类词槽。
基于此,发明人提出一种分级编码的方式,可以规避上述单用LSTM网络或One-hot编码进行编码带来的问题。在此分级编码的方式中,先针对集合x中任一元素(si,vi),i∈[1,n],确定si对应的嵌入向量以及vi的表征向量,从而得到针对(si,vi)的融合向量,进而引入自注意力机制对n个组成元素对应的n个融合向量进行处理,得到n个组成元素对应的n个编码向量。
进一步,关于vi的表征,在一个实施例中,利用时序递归网络,对上述动作类型对应的预设字符进行处理,并对n-1个槽值中各个槽值包含的若干字符进行处理,得到n个时序表征向量。在一个具体的实施例中,上述时序递归网络可以实现为RNN(RecurrentNeural Network,循环神经网络)、LSTM网络或GRU(Gate Recurrent Unit,门限循环单元)。在一个具体的实施例中,不同动作类型所对应的预设字符可以相同,例如,均为“Type”。需说明,对于上述各个槽值中包含的字符,其具体含义与语言种类相关,比如,在英文中,一个字符可以是一个单词(word)、一个标点符号或一个数字等。又比如,在中文中,一个字符可以是一个字、一个标点符号或一个数字等。在一个例子中,槽值“less than 20”中包括三个字符,依次为less,than和20。
在一个更具体的实施例中,可以利用词槽级(slot-level)的LSTM网络(表示为fs),对每个元素(si,vi)包含的值vi进行表征,具体可以表示为其中vi,k表示值vi中的第k个字符,li表示值vi中包含的字符总数。在一个示例中,fs可以是双向LSTM网络,其包括正向网络/>和反向网络/>通过采用下式(1)进行迭代运算,可以得到vi,k对应的隐层状态向量/>并将第li个字符对应的隐层状态向量/>确定为vi的表征向量。
式(1)中,表示向量拼接,如列向量的列向拼接,或行向量的行向拼接,拼接的结果仍为向量。
如此,可以得到vi的表征向量
关于si的嵌入表达,在一个实施例中,可以采用下式(2)实现:
式(2)中,表示对si进行嵌入处理得到的嵌入向量;E表示词嵌入算法,可以通过已有的方式实现。
如此,可以得到si的嵌入向量进而与vi的表征向量/>进行融合处理,得到组成元素(si,vi)对应的融合向量/>在一个实施例中,其中融合处理可以包括加和处理、拼接处理和对位相乘处理等。在一个示例中,可以对/>和/>进行顺序拼接,得到
在得到n个组成元素对应的n个融合向量之后,针对任一组成元素,确定该组成元素对应的融合向量对上述n个融合向量分配的注意力权重,并利用该注意力权重对该n个融合向量进行加权组合,得到该组成元素对应的编码向量。在一个实施例中,针对组成元素(si,vi),可以将其对应的融合向量分别与n个融合向量进行拼接,再将得到的n个拼接向量分别输入第一注意力打分网络中,得到n个注意力分数,并对该n个注意力分数进行归一化处理,得到n个注意力权重,进而利用此n个注意力权重对n个融合向量进行加权组合,得到编码向量/>在一个具体的实施例中,归一化处理可以利用softmax函数实现。在另一个具体的实施例中,归一化处理可以利用计算占比的方式实现,具体,计算任一注意力分数与n个注意力分数的和值之间的比值,作为注意力权重。
在另一个实施例中,可以通过以下公式(3),计算得到n个组成元素对应的n个编码向量。
在公式(3)中,[;]表示向量堆叠,Hd表示n个融合向量堆叠而成的矩阵,Wq、Wk和Wv均为模型学习参数,d表示融合向量的维数,He表示n个编码向量堆叠而成的矩阵。
以上,采用发明人提出的分级编码的方式,可以得到第一对话动作中n个组成元素对应的n个编码向量,并且,分级编码考虑到了对话动作中槽值的字符序列性,以及对话动作的逻辑结构,由此可以有效提高编码的信息丰富性、准确度和可用性。
由上可以实现对第一对话动作的编码,得到其中n个组成元素相对应的n个编码向量。然后,在步骤S230,基于该n个编码向量,依次确定待输出的自然语言文本的各个位置的语义项。需说明,语义项或称语义单元,一般具有相对完整、不可再分的语义,通常可根据人类的语言习惯进行划分。语义项可以包括字符或字符组合,例如,在中文中,语义项可以包括字(如,人)、词(如,北京)、数字和标点符号等,在英文中,语义项可以包括单词、词组、数字和标点符号等。
在步骤S230中,确定任意当前位置的语义项可以通过以下步骤S231至步骤S235实现,在步骤S231至步骤S233中,确定对应当前位置对应的三个输出,在步骤S234,对此三个输出进行融合,在步骤S235,根据融合结果,确定当前位置的最终输出信息。
具体,在步骤S231,利用指针网络,对前一位置输出信息以及所述n个编码向量进行第一处理,得到第一输出,其中包括第一状态向量,以及将n-1个槽值中的各个槽值复制到当前位置的第一概率分布。其中前一位置输出信息包括前一位置输出的前一语义项,该前一位置对应的前一状态向量,相应地,在一个实施例中,本步骤可以实施为:利用第一时序递归网络,根据该前一状态向量和基于该前一语义项确定的当前输入向量,确定第一状态向量;并且,确定第一状态向量相对于n个编码向量的注意力权重的权重分布,作为第一概率分布。
在一个具体的实施例中,第一时序递归网络可以实现为RNN网络、LSTM网络和GRU网络。在一个具体的实施例中,上述当前输入向量的确定可以包括:将前一语义项的嵌入向量确定为当前输入向量,在另一个具体的实施例中,上述当前输入向量的确定可以包括:将前一语义项的嵌入向量与上述n个编码向量的平均向量的拼接向量,确定为当前输入向量。
在一个示例中,第一时序递归网络实现为LSTM网络,将其表示为gp,可以利用下式(4)确定第一状态向量。
在式(4)中,表示第一状态向量,/>表示前一位置(第j-1个位置)的状态向量,yj-1表示前一位置的语义项,E(yj-1)表示当前输入向量,E表示词嵌入算法。
如此,可以得到第一状态向量。进一步,确定该第一状态向量相对于n个编码向量的注意力权重。在一个具体的实施例中,可以先计算第一状态向量与各个编码向量之间的点积,作为注意力分数,再对得到的n个注意分数进行归一化处理,得到n个注意力权重。在另一个具体的实施例中,可以将第一状态向量分别与各个编码向量进行拼接,得到n个拼接向量,再将此n个拼接向量分别输入第二注意力打分网络中,得到n个注意力分数,并对此n个注意力分数进行归一化处理,得到n个注意力权重。如此,n个注意力权重对应n个编码向量,n个编码向量对应上述n个组成元素,相应地,可以将n个注意力权重作为n个概率,指示将组成元素(si,vi)中的vi复制到当前位置,作为当前位置语义项的概率,由此,可以将n个注意力权重的权重分布作为上述第一概率分布。
在一个示例中,可以通过下式(5)确定第一概率分布
在公式(5)中,表示第一状态向量,/>表示第i个组成元素对应的编码向量,βj,i表示/>相较于/>的注意力分数,vβ属于参数向量,Wβ和Uβ属于参数矩阵,tanh是一种激活函数。
由上,利用指针网络可以得到第一输出,包括第一状态向量以及将n-1个槽值中的各个槽值复制到当前位置的第一概率分布/>
在步骤S232,利用序列生成器,对上述前一位置输出信息和n个编码向量进行第二处理,得到第二输出,其中包括第二状态向量,以及从预定字符集中选取各个字符的第二概率分布。需说明,因确定第二输出的过程中用到n个编码向量,所以此序列生成器还可以称为条件序列生成器(Conditional Sequence Generator)。其中预定字符集是预先设定的字符集,其中一般会涵盖常用字符,具体可以根据实际应用场景而设定。
上述前一位置输出信息包括前一位置输出的前一语义项,该前一位置对应的前一状态向量,相应地,在一个实施例中,本步骤可以实施为:先确定上述前一状态向量相对于n个编码向量的注意力权重,并利用此注意力权重对该n个编码向量进行加权组合,得到加权向量;接着,利用第二时序递归网络,根据上述前一状态向量,以及基于所述前一语义项和所述加权向量确定的当前输入向量,确定所述第二状态向量;再基于该第二状态向量进行线性变换处理,得到第二概率分布。
关于上述确定前一状态向量相对于n个编码向量的注意力权重,在一个具体的实施例中,可以先计算前一状态向量与各个编码向量之间的点积,作为注意力分数,再对得到的n个注意分数进行归一化处理,得到n个注意力权重。在另一个具体的实施例中,可以将前一状态向量分别与各个编码向量进行拼接,得到n个拼接向量,再将此n个拼接向量分别输入第三注意力打分网络中,得到n个注意力分数,并对此n个注意力分数进行归一化处理,得到n个注意力权重。
在得到注意力权重后,对上述n个编码向量进行加权组合,得到加权向量。在一个示例中,可以利用以下公式(6),实现对注意力分数、注意力权重和加权向量的计算。
在公式(6)中,vα属于参数向量,Wα和Uα属于参数矩阵,表示前一状态向量,/>表示第i个组成元素对应的编码向量,αj,i表示/>相对于/>的注意力分数,α′j,i表示/>相对于/>的注意力权重,/>表示上述加权向量。
如此,可以得到加权向量,进而可以利用第二时序递归网络,根据基于此加权向量和上述前一语义项确定的当前输入向量,以及上述前一状态向量,确定第二状态向量。在一个具体的实施例中,其中第二时序递归网络基于LSTM网络、RNN网络或GRU网络实现。在一个具体的实施例中,其中当前输入向量的确定可以包括:确定前一语义项的嵌入向量,并将此嵌入向量和上述加权向量的融合向量,如通过拼接处理、相加处理或对位相乘处理而得到的向量,作为当前输入向量。
在一个示例中,上述第二时序递归网络可以实现为LSTM网络,并表示为gc,通过下式(7)可以得到第二状态向量
在式(7)中,表示前一状态向量,/>表示当前输入向量,E(yj-1)表示前一位置语义项的嵌入向量,/>表示上述加权向量,/>表示向量拼接运算。
如此,可以得到第二状态向量然后,基于此第二状态向量进行线性变换处理,得到第二概率分布。在一个具体的实施例中,可以利用模型参数直接对第二状态向量进行线性变换,得到上述第二概率分布。在另一个具体的实施例中,可以对上述第二状态向量和加权向量的拼接向量进行线性变换处理,得到第二概率分布。在一个示例中,可以采用下式(8),计算得到第二概率分布。
在式(8)中,表示第二概率分布,Wc属于参数矩阵,/>表示第二状态向量,/>表示上述加权向量,/>表示向量拼接运算。
如此,可以得到第二概率分布
由上,利用序列生成器可以得到第二输出,第二输出中包括第二状态向量以及从预定字符集中选取各个字符的第二概率分布/>
在步骤S233,利用语言模型,对所述前一位置输出信息进行第三处理,得到第三输出,其中包括第三状态向量,以及从预定字符集中选取各个字符的第三概率分布。需说明,因确定第三输出的过程中未用到上述n个编码向量,而是仅用到前一位置输出信息,所以此语言模型还可以称为非条件语言模型(Unconditional Language Modeling)。
前一位置输出信息包括,前一位置输出的前一语义项,该前一位置对应的前一状态向量,相应地,在一个实施例中,上述第三处理可以包括:先利用第三时序递归网络,根据上述前一状态向量和基于上述前一语义项确定的当前输入向量,确定第三状态向量;再对此第三状态向量进行线性变换处理,得到第三概率分布。
在一个实施例中,第三时序递归网络可以实现为LSTM网络、RNN网络或GRU网络。在一个示例中,第三时序递归网络可表示gl,通过下式(9)可以得到第三状态向量
在式(9)中,表示前一状态向量,E(yj-1)表示前一位置语义项的嵌入向量。
在一个示例中,可以采用下式(10),计算得到第三概率分布。
在式(10)中,表示第三概率分布,Wl属于参数矩阵,/>表示第三状态向量。
如此,可以得到第三概率分布
由上,利用语言模型可以得到第三输出,第三输出中包括第三状态向量以及从预定字符集中选取各个字符的第三概率分布/>
以上通过执行步骤S231至步骤S233,可以得到第一输出、第二输出和第三输出,进而在步骤S234,对该第一输出,第二输出和第三输出进行加权融合,得到当前位置对应的当前状态向量和当前融合概率分布。在一个示例中,加权融合可以表示为以下公式(11)。
在公式(11)中,和/>表示用于加权融合的权重;/>和/>分别表示第一输出、第二输出和第三输出中的第一状态向量、第二状态向量和第三状态向量;/>表示当前状态向量;/>和/>分别表示第一输出、第二输出和第三输出中的第一概率分布、第二概率分布和第三概率分布。
对于加权融合用到的三个权重,在一种实施方式中,可以是人工预先设定的,例如,分别设定为0.2,0.5和0.3。在另一种实施方式种,为了提高加权融合的融合结果的准确性,可以根据上述前一位置对应的前一状态向量,确定三个权重组成的权重向量。
在一个实施例中,权重向量的确定可以包括:将上述前一状态向量输入全连接网络,输出第一分数向量;基于对此第一分数向量进行归一化处理的结果,确定权重向量。在一个具体的实施例中,其中归一化处理可以采用Softmax函数或计算占比的方式实现。
在一个示例中,确定第一分数向量,以及得到此第一分数向量的归一化结果,可以采用下式(12)实现:
其中,表示第一分数向量,Wθ和Uθ表示全连接网络中的参数矩阵,tanh是一种激活函数,/>表示前一状态向量,/>表示利用Softmax函数对/>进行归一化的结果。
在得到第一分数向量的归一化结果后,在一个具体的实施例中,可以直接将该归一化结果确定为权重向量。
在另一个具体的实施例中,还可以引入Gumbel-softmax Trick,解决在训练过程中可能存在的梯度的计算和传播问题。需理解,模型的使用过程与训练过程类似,区别主要在于使用过程中,模型的学习参数是经过训练后确定下来的,在使用过程中不会发生变化,而训练过程主要是采用标注数据不断调整模型的学习参数,从而得到最终供使用的模型参数。因此,若训练阶段引入Gumbel-softmax Trick以解决梯度的计算和传播问题,则在使用阶段同样会用到Gumbel-softmax Trick。在一个更具体的实施例中,将第一分数向量的归一化结果称为第二分数向量,基于此第二分数向量,进一步确定权重向量可以包括:针对第二分数向量中任一的向量元素,对其进行取对数运算,对该取对数运算的运算值进行耿贝尔噪声添加,得到加噪元素,以构建加噪向量;再基于此加噪向量进行归一化处理,得到权重向量。在一个例子中,取对数运算的底数可以预先设定,如设定为2或10。在一个例子中,可以直接对加噪向量进行归一化处理,得到上述权重向量。在另一个例子中,可以对加噪向量除以超参后得到的向量进行归一化,得到上述权重向量,其中超参可以称为温度参数(Temperature parameter)或退火参数(annealing parameter)。在还一个例子中,可以基于对加噪向量进行归一化的结果,将此结果中的最大值重置为1,将其余值重置为0,构成权重向量。
在一个示例中,可以采用以下公式(13),计算得到权重向量。
在公式(13)中,r∈{p,c,l},而p、c、l在本文中分别指示指针网络、序列生成器和语言模型;表示上述第一分数向量中的元素,例如,可以通过上述公式(12)计算得到;γp、γc和γl是从符合Gumbel分布的噪声空间进行采样得到的i.i.d(非独立同分布)样本,例如,具体可以服从Gumbel(0,1)分布;τ表示退火参数,例如,可以被设定为2或2.5等。
如此,可以利用全连接网络,进一步结合Gumbel-softmax Trick,得到权重向量
在另一个实施例中,可以基于上述前一状态向量,以及上述第一输出、第二输出和第三输出中的第一状态向量、第二状态向量和第三状态向量,确定权重向量,具体可以包括:先对上述前一状态向量进行参数重构处理(reparameterization trick),得到重构向量;再分别计算上述第一状态向量、第二状态向量和第三状态向量,与此重构向量之间的相似度;进而基于此相似度,确定上述权重向量。
在一个具体的实施例中,上述重构处理可以包括:将上述前一状态向量与随机采样得到的高斯噪声向量的和向量,确定为上述重构向量。在另一个具体的实施例中,上述重构处理可以包括:将上述前一状态向量分别输入第一全连接网络和第二全连接网络,得到第一变换向量和第二变换向量;对其中的第二变换向量与随机采样的高斯向量进行对位相乘处理,得到对位相乘向量;再将第一变换向量与对位相乘向量的和向量,确定为上述重构向量。如此,重构处理后得到的重构向量中引入了随机性。在一个示例中,可以采用公式(14)进行计算,实现对前一状态向量的向量重构。
在公式(14)中,表示前一状态向量;Wμ和Uμ表示上述第一全连接网络中的参数矩阵;tanh是一种激活函数;μj表示上述第一变换向量,或称均值向量;Wσ和Uσ表示上述第二全连接网络中的参数矩阵;σj表示上述第二变换向量,或称标准差向量;∈表示从符合标准高斯分布的空间采集的高斯向量;⊙表示对位相乘运算;/>表示重构向量。
在一个具体的实施例中,上述相似度的计算可以采用计算欧式距离、曼哈顿距离、切比雪夫距离等方式实现。需理解,通常计算出的距离越远,相似度越低。进一步,对于基于相似度确定上述权重向量,在一个具体的实施例中,可以对计算出的三个相似度进行归一化处理,得到上述权重向量。在另一个具体的实施例中,可以基于计算出的三个相似度中的最大值,进行One-hot编码,并将得到的独热编码向量作为上述权重向量。在一个示例中,可以采用公式(15),计算得到权重向量。
在上式(15)中,表示重构向量;||||2表示欧式距离;/>表示权重向量,例如,假定/>是/>和/>中的最小值,那么得到的权重向量为[0,1,0]。
如此,可以在确定出的权重向量中引入一定的随机性,实现贪心与探索策略的结合和平衡。
基于确定出的权重向量,对上述第一输出,第二输出和第三输出进行加权融合,可以得到当前位置对应的当前状态向量和当前融合概率分布。
以上,可以确定出当前状态向量和当前融合概率分布Qj。进而在步骤S235,根据该当前融合概率分布,确定在当前位置输出的当前语义项,并且,此当前语义项和上述当前状态向量/>被作为当前位置输出信息。在一个实施例中,可以基于当前融合概率分布,将其中的最大概率值所对应的条目(对话动作中的槽值或预定字符集中的字符),确定为当前位置输出的当前语义项,可将此过程表示为yj=argmaxQj,其中Qj表示当前融合概率分布,yj表示当前语义项。
在一个实施例中,步骤S230中还可以包括,若当前语义项是从第一对话动作中的某一槽值复制而来的,则可以将当前语义项目的词嵌入向量,设定为该某一槽值所在的组成元素对应的编码向量,从而提高后续迭代步骤中计算结果的准确度。
由上,通过重复执行上述步骤S231至步骤S235,可以依次确定待输出的自然语言文本的各个位置的语义项。在一个示例中,依次确定出的语义项为:"The","BlueSpice","is","a","low","cost","venue",".","it's","a","family","location"。
综上,采用本说明书实施例披露的自然语言生成方法,在将对话动作准确地转换为自然语言文本的同时,使得转换过程具有极高的可解释性。进一步,对于任一位置的输出语义项yj,模式切换器对应输出的权重向量oj可以指示其来表达器集中的哪个表达器,若指示来自指针网络,则指针网络产出的第一概率分布可以进一步指示语义项yj从哪个槽值复制得到,若指示来自序列生成器,则第二概率分布/>可以进一步指示语义项yj是基于哪些槽值进行改写而得到,若指示来自语言模型,则表明语义项yj是生成的文本无关(context-agnostic)词汇。
与上述自然语言生成方法相对应的,本说明书实施例还披露一种自然语言生成装置。图3示出根据一个实施例的自然语言生成的装置结构示意图,所述装置可以实现为任何具有计算、处理能力的服务器、平台、或设备集群。
如图3所示,所述装置300包括以下单元和模块:
获取单元310,配置为获取第一对话动作,其n个组成元素中包括动作类型,以及n-1个词槽-槽值对。编码单元320,配置为对所述第一对话动作进行编码,得到对应n个组成元素的n个编码向量。解码单元330,配置为基于所述n个编码向量,依次确定待输出的自然语言文本的各个位置的语义项,其中,解码单元330利用以下模块确定任意当前位置的语义项:
第一处理模块331,配置为利用指针网络,对前一位置输出信息以及所述n个编码向量进行第一处理,得到第一输出,其中包括第一状态向量,以及将n-1个槽值中的各个槽值复制到当前位置的第一概率分布;第二处理模块332,配置为利用序列生成器,对所述前一位置输出信息和n个编码向量进行第二处理,得到第二输出,其中包括第二状态向量,以及从预定字符集中选取各个字符的第二概率分布;第三处理模块333,配置为利用语言模型,对所述前一位置输出信息进行第三处理,得到第三输出,其中包括第三状态向量,以及从预定字符集中选取各个字符的第三概率分布;输出融合模块334,配置为对所述第一输出,第二输出和第三输出进行加权融合,得到当前位置对应的当前状态向量和当前融合概率分布;信息确定模块335,配置为根据该当前融合概率分布,确定在当前位置输出的当前语义项,所述当前状态向量和所述当前语义项作为当前位置输出信息。
在一个实施例中,编码单元320具体配置为:对所述动作类型和n-1个词槽进行嵌入处理,得到n个嵌入向量;利用时序递归网络,对所述动作类型对应的预设字符进行处理,并对所述各个槽值所包含的若干字符进行处理,得到n个时序表征向量;将对应同一组成元素的嵌入向量和时序表征向量进行融合,得到n个融合向量;针对任一组成元素,确定该组成元素对应的融合向量对所述n个融合向量分配的注意力权重;利用该注意力权重对所述n个融合向量进行加权组合,得到该组成元素对应的编码向量。
在一个实施例中,所述前一位置输出信息包括,前一位置输出的前一语义项,该前一位置对应的前一状态向量;所述第一处理模块331具体配置为:利用第一时序递归网络,根据所述前一状态向量和基于所述前一语义项确定的当前输入向量,确定所述第一状态向量;确定所述第一状态向量相对于所述n个编码向量的注意力权重的权重分布,作为所述第一概率分布。
在一个实施例中,所述前一位置输出信息包括,前一位置输出的前一语义项,该前一位置对应的前一状态向量,上述第二处理模块332具体配置为:确定所述前一状态向量相对于所述n个编码向量的注意力权重,并利用所述注意力权重对所述n个编码向量进行加权组合,得到加权向量;利用第二时序递归网络,根据所述前一状态向量,以及基于所述前一语义项和所述加权向量确定的当前输入向量,确定所述第二状态向量;基于所述第二状态向量进行线性变换处理,得到所述第二概率分布。
在一个具体的实施例中,上述第二处理模块332进一步配置为:对所述第二状态向量和加权向量的拼接向量进行线性变换处理,得到所述第二概率分布。
在一个实施例中,所述前一位置输出信息包括,前一位置输出的前一语义项,该前一位置对应的前一状态向量,所述第三处理模块333具体配置为:利用第三时序递归网络,根据所述前一状态向量和基于所述前一语义项确定的当前输入向量,确定所述第三状态向量;对所述第三状态向量进行线性变换处理,得到所述第三概率分布。
在一个实施例中,所述前一位置输出信息包括该前一位置对应的前一状态向量;所述解码单元330还包括:权重确定模块336,配置为基于所述前一状态向量,确定权重向量;所述输出融合模块334具体配置为:根据所述权重向量,对所述第一输出,第二输出和第三输出进行加权融合。
在一个具体的实施例中,所述权重确定模块336具体配置为:将所述前一状态向量输入全连接网络,输出第一分数向量;基于对所述第一分数向量进行归一化处理的结果,确定所述权重向量。
在一个更具体的实施例中,所述权重确定模块336进一步配置为:对所述第一分数向量进行归一化处理,得到所述第二分数向量;针对所述第二分数向量中任一的向量元素,对其进行取对数运算,对该取对数运算的运算值进行耿贝尔噪声添加,得到加噪元素,以构建加噪向量;基于所述加噪向量进行归一化处理,得到所述权重向量。
在另一个具体的实施例中,所述权重确定模块336具体配置为:对所述前一状态向量进行参数重构处理,得到重构向量;分别计算所述第一状态向量、第二状态向量和第三状态向量,与所述重构向量之间的相似度;基于所述相似度,确定所述权重向量。
进一步,在一个更具体的实施例中,所述权重确定模块336进一步配置为:将所述前一状态向量分别输入第一全连接网络和第二全连接网络,得到第一变换向量和第二变换向量;对所述第二变换向量与随机采样的高斯向量进行对位相乘处理,得到对位相乘向量;将所述第一变换向量与对位相乘向量的和向量,确定为所述重构向量。
在另一个更具体的实施例中,所述权重确定模块336进一步配置为:基于所述相似度中最大值,进行独热编码,并将得到的独热编码向量作为所述权重向量。
根据另一方面的实施例,还提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行结合图2所描述的方法。
根据再一方面的实施例,还提供一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现结合图2所述的方法。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。
Claims (15)
1.一种自然语言生成方法,包括:
获取第一对话动作,其n个组成元素中包括动作类型,以及n-1个词槽-槽值对;
对所述第一对话动作进行编码,得到对应n个组成元素的n个编码向量;
基于所述n个编码向量,依次确定待输出的自然语言文本的各个位置的语义项,其中,确定任意当前位置的语义项包括:
利用指针网络,对前一位置输出信息以及所述n个编码向量进行第一处理,得到第一输出,其中包括第一状态向量,以及将n-1个槽值中的各个槽值复制到当前位置的第一概率分布;
利用序列生成器,对所述前一位置输出信息和n个编码向量进行第二处理,得到第二输出,其中包括第二状态向量,以及从预定字符集中选取各个字符的第二概率分布;
利用语言模型,对所述前一位置输出信息进行第三处理,得到第三输出,其中包括第三状态向量,以及从预定字符集中选取各个字符的第三概率分布;
对所述第一输出,第二输出和第三输出进行加权融合,得到当前位置对应的当前状态向量和当前融合概率分布;根据该当前融合概率分布,确定在当前位置输出的当前语义项,所述当前状态向量和所述当前语义项作为当前位置输出信息。
2.根据权利要求1所述的方法,其中,对所述第一对话动作进行编码,得到对应n个组成元素的n个编码向量,包括:
对所述动作类型和n-1个词槽进行嵌入处理,得到n个嵌入向量;
利用时序递归网络,对所述动作类型对应的预设字符进行处理,并对所述各个槽值所包含的若干字符进行处理,得到n个时序表征向量;
将对应同一组成元素的嵌入向量和时序表征向量进行融合,得到n个融合向量;
针对任一组成元素,确定该组成元素对应的融合向量对所述n个融合向量分配的注意力权重;利用该注意力权重对所述n个融合向量进行加权组合,得到该组成元素对应的编码向量。
3.根据权利要求1所述的方法,其中,所述前一位置输出信息包括,前一位置输出的前一语义项,该前一位置对应的前一状态向量;所述第一处理包括:
利用第一时序递归网络,根据所述前一状态向量和基于所述前一语义项确定的当前输入向量,确定所述第一状态向量;
确定所述第一状态向量相对于所述n个编码向量的注意力权重的权重分布,作为所述第一概率分布。
4.根据权利要求1所述的方法,其中,所述前一位置输出信息包括,前一位置输出的前一语义项,该前一位置对应的前一状态向量,所述第二处理包括:
确定所述前一状态向量相对于所述n个编码向量的注意力权重,并利用所述注意力权重对所述n个编码向量进行加权组合,得到加权向量;
利用第二时序递归网络,根据所述前一状态向量,以及基于所述前一语义项和所述加权向量确定的当前输入向量,确定所述第二状态向量;
基于所述第二状态向量进行线性变换处理,得到所述第二概率分布。
5.根据权利要求4所述的方法,其中,基于所述第二状态向量进行线性变换处理,得到所述第二概率分布,包括:
对所述第二状态向量和加权向量的拼接向量进行线性变换处理,得到所述第二概率分布。
6.根据权利要求1所述的方法,其中,所述前一位置输出信息包括,前一位置输出的前一语义项,该前一位置对应的前一状态向量,所述第三处理包括:
利用第三时序递归网络,根据所述前一状态向量和基于所述前一语义项确定的当前输入向量,确定所述第三状态向量;
对所述第三状态向量进行线性变换处理,得到所述第三概率分布。
7.根据权利要求1所述的方法,其中,所述前一位置输出信息包括该前一位置对应的前一状态向量;在对所述第一输出,第二输出和第三输出进行加权融合之前,所述方法还包括:
基于所述前一状态向量,确定权重向量;
对所述第一输出,第二输出和第三输出进行加权融合,具体包括:
根据所述权重向量,对所述第一输出,第二输出和第三输出进行加权融合。
8.根据权利要求7所述的方法,其中,基于所述前一状态向量,确定权重向量,包括:
将所述前一状态向量输入全连接网络,输出第一分数向量;
基于对所述第一分数向量进行归一化处理的结果,确定所述权重向量。
9.根据权利要求8所述的方法,其中,基于对所述第一分数向量进行归一化处理的结果,确定所述权重向量,包括:
对所述第一分数向量进行归一化处理,得到所述第二分数向量;
针对所述第二分数向量中任一的向量元素,对其进行取对数运算,对该取对数运算的运算值进行耿贝尔噪声添加,得到加噪元素,以构建加噪向量;
基于所述加噪向量进行归一化处理,得到所述权重向量。
10.根据权利要求7所述的方法,其中,基于所述前一状态向量,确定权重向量,包括:
对所述前一状态向量进行参数重构处理,得到重构向量;
分别计算所述第一状态向量、第二状态向量和第三状态向量,与所述重构向量之间的相似度;
基于所述相似度,确定所述权重向量。
11.根据权利要求10所述的方法,其中,对所述前一状态向量进行参数重构处理,得到重构向量,包括:
将所述前一状态向量分别输入第一全连接网络和第二全连接网络,得到第一变换向量和第二变换向量;
对所述第二变换向量与随机采样的高斯向量进行对位相乘处理,得到对位相乘向量;
将所述第一变换向量与对位相乘向量的和向量,确定为所述重构向量。
12.根据权利要求10所述的方法,其中,基于所述相似度,确定所述权重向量,包括:
基于所述相似度中最大值,进行独热编码,并将得到的独热编码向量作为所述权重向量。
13.一种自然语言生成装置,包括:
获取单元,配置为获取第一对话动作,其n个组成元素中包括动作类型,以及n-1个词槽-槽值对;
编码单元,配置为对所述第一对话动作进行编码,得到对应n个组成元素的n个编码向量;
解码单元,配置为基于所述n个编码向量,依次确定待输出的自然语言文本的各个位置的语义项,其中,解码单元利用以下模块确定任意当前位置的语义项:
第一处理模块,配置为利用指针网络,对前一位置输出信息以及所述n个编码向量进行第一处理,得到第一输出,其中包括第一状态向量,以及将n-1个槽值中的各个槽值复制到当前位置的第一概率分布;
第二处理模块,配置为利用序列生成器,对所述前一位置输出信息和n个编码向量进行第二处理,得到第二输出,其中包括第二状态向量,以及从预定字符集中选取各个字符的第二概率分布;
第三处理模块,配置为利用语言模型,对所述前一位置输出信息进行第三处理,得到第三输出,其中包括第三状态向量,以及从预定字符集中选取各个字符的第三概率分布;
输出融合模块,配置为对所述第一输出,第二输出和第三输出进行加权融合,得到当前位置对应的当前状态向量和当前融合概率分布;
信息确定模块,配置为根据该当前融合概率分布,确定在当前位置输出的当前语义项,所述当前状态向量和所述当前语义项作为当前位置输出信息。
14.一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行权利要求1-12中任一项的所述的方法。
15.一种计算设备,包括存储器和处理器,其中,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现权利要求1-12中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110150679.2A CN112966520B (zh) | 2021-02-03 | 2021-02-03 | 自然语言生成方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110150679.2A CN112966520B (zh) | 2021-02-03 | 2021-02-03 | 自然语言生成方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112966520A CN112966520A (zh) | 2021-06-15 |
CN112966520B true CN112966520B (zh) | 2023-11-14 |
Family
ID=76274584
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110150679.2A Active CN112966520B (zh) | 2021-02-03 | 2021-02-03 | 自然语言生成方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112966520B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110188348A (zh) * | 2019-05-07 | 2019-08-30 | 南京邮电大学 | 一种基于深度神经网络的中文语言处理模型及方法 |
CN111737417A (zh) * | 2020-07-03 | 2020-10-02 | 支付宝(杭州)信息技术有限公司 | 修正自然语言生成结果的方法和装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10049106B2 (en) * | 2017-01-18 | 2018-08-14 | Xerox Corporation | Natural language generation through character-based recurrent neural networks with finite-state prior knowledge |
US10770066B2 (en) * | 2018-05-31 | 2020-09-08 | Robert Bosch Gmbh | Slot filling in spoken language understanding with joint pointer and attention |
-
2021
- 2021-02-03 CN CN202110150679.2A patent/CN112966520B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110188348A (zh) * | 2019-05-07 | 2019-08-30 | 南京邮电大学 | 一种基于深度神经网络的中文语言处理模型及方法 |
CN111737417A (zh) * | 2020-07-03 | 2020-10-02 | 支付宝(杭州)信息技术有限公司 | 修正自然语言生成结果的方法和装置 |
Non-Patent Citations (2)
Title |
---|
基于多模态神经网络生成图像中文描述;陈兴;;计算机***应用(09);全文 * |
融合Attention多粒度句子交互自然语言推理研究;程淑玉;郭泽颖;刘威;印鉴;;小型微型计算机***(06);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112966520A (zh) | 2021-06-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110196894B (zh) | 语言模型的训练方法和预测方法 | |
CN110807332B (zh) | 语义理解模型的训练方法、语义处理方法、装置及存储介质 | |
Yao et al. | An improved LSTM structure for natural language processing | |
CN110188176B (zh) | 深度学习神经网络及训练、预测方法、***、设备、介质 | |
CN110956018B (zh) | 文本处理模型的训练方法、文本处理方法、装置及存储介质 | |
US11544474B2 (en) | Generation of text from structured data | |
CN110795552B (zh) | 一种训练样本生成方法、装置、电子设备及存储介质 | |
CN110795945B (zh) | 一种语义理解模型训练方法、语义理解方法、装置及存储介质 | |
CN110326002B (zh) | 使用在线注意的序列处理 | |
CN110866401A (zh) | 基于注意力机制的中文电子病历命名实体识别方法及*** | |
CN110807333B (zh) | 一种语义理解模型的语义处理方法、装置及存储介质 | |
CN115795009A (zh) | 基于生成式多语言模型的跨语言问答***构建方法和装置 | |
US11475225B2 (en) | Method, system, electronic device and storage medium for clarification question generation | |
CN110457661B (zh) | 自然语言生成方法、装置、设备及存储介质 | |
CN111783478B (zh) | 机器翻译质量估计方法、装置、设备及存储介质 | |
CN111859940B (zh) | 一种关键词提取方法、装置、电子设备及存储介质 | |
JP2021033995A (ja) | テキスト処理装置、方法、デバイス及びコンピューター読み取り可能な記憶媒体 | |
CN111814479B (zh) | 一种企业简称生成及其模型的训练方法及装置 | |
CN113609284A (zh) | 一种融合多元语义的文本摘要自动生成方法及装置 | |
CN110188158A (zh) | 关键词及话题标签生成方法、装置、介质及电子设备 | |
Liu | Neural question generation based on Seq2Seq | |
CN115033733A (zh) | 音频文本对生成方法、电子设备和存储介质 | |
CN111563148A (zh) | 一种基于词组多样性的对话生成方法 | |
CN109918484B (zh) | 对话生成方法和装置 | |
CN112966520B (zh) | 自然语言生成方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |