CN110263304B - 语句编码方法、语句解码方法、装置、存储介质及设备 - Google Patents

语句编码方法、语句解码方法、装置、存储介质及设备 Download PDF

Info

Publication number
CN110263304B
CN110263304B CN201811444710.8A CN201811444710A CN110263304B CN 110263304 B CN110263304 B CN 110263304B CN 201811444710 A CN201811444710 A CN 201811444710A CN 110263304 B CN110263304 B CN 110263304B
Authority
CN
China
Prior art keywords
vocabulary
ith
jth
unit
sentence
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
Application number
CN201811444710.8A
Other languages
English (en)
Other versions
CN110263304A (zh
Inventor
孟凡东
张金超
周杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201811444710.8A priority Critical patent/CN110263304B/zh
Publication of CN110263304A publication Critical patent/CN110263304A/zh
Priority to JP2021516821A priority patent/JP7229345B2/ja
Priority to PCT/CN2019/121420 priority patent/WO2020108545A1/zh
Priority to US17/181,490 priority patent/US20210174003A1/en
Application granted granted Critical
Publication of CN110263304B publication Critical patent/CN110263304B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/126Character encoding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/151Transformation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/284Lexical analysis, e.g. tokenisation or collocates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/40Processing or translation of natural language
    • G06F40/58Use of machine translation, e.g. for multi-lingual retrieval, for server-side translation for client devices or for real-time translation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Machine Translation (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请实施例公开了一种语句编码方法、语句解码方法、装置、存储介质及设备,属于语句处理领域。所述方法用于编码模型中,编码模型包括级联的n个处理节点,处理节点包括级联的一个第一单元和至少一个第二单元;对待编码的源语句进行分词运算,得到m个词汇;利用第i个处理节点获取第i个词汇,并获取第i‑1个处理节点得到的第i‑1个词汇向量;利用第i个处理节点中的第一单元对第i个词汇和第i‑1个词汇向量进行线性运算和非线性运算,将得到的第i个运算结果输出给至少一个第二单元进行处理,得到第i个词汇向量;根据得到的m个词汇向量生成语句向量。本申请实施例可提高语句处理的准确性。

Description

语句编码方法、语句解码方法、装置、存储介质及设备
技术领域
本申请实施例涉及语句处理领域,特别涉及一种语句编码方法、语句解码方法、装置、存储介质及设备。
背景技术
计算机可以对输入的一个语句进行处理后输出另一个语句。以机器翻译为例,机器翻译是指通过计算机将一种自然语言的语句翻译成另一种自然语言的语句的翻译方式。通常,机器翻译是通过训练好的机器学习模型对语句进行翻译的。比如,用户将中文语句“房价持续增长”输入机器学习模型后,该机器学习模型输出英文语句“The housingprices continued to rise”。
相关技术中,机器学习模型包括编码模型和解码模型,该编码模型用于将输入的一种自然语言的源语句编码成一个语句向量,并将该语句向量输出给解码模型;该解码模型用于将该语句向量解码成另一种自然语言的目标语句。示意性的,编码模型和解码模型都由神经网络模型构成。
由于机器学习模型处理语句时需要依赖于训练得到的权值,而训练需要涉及反向传播算法,即沿着训练数据的输出路径反向传输输出与参考结果之间的误差,以便于根据该误差来修改权值。然而,反向传播时机器学习模型中误差的梯度会呈指数级下降直至消失,使机器学习模型中前面的权值更新较慢,后面的权值更新较快,导致训练得到的权值不准确,也就导致语句处理的准确性较低。
发明内容
本申请实施例提供了一种语句编码方法、语句解码方法、装置、存储介质及设备,用于解决由于梯度消失现象导致机器学习模型的权值不准确,使得语句处理的准确性较低的问题。所述技术方案如下:
一方面,提供了一种语句编码方法,用于编码模型中,所述编码模型包括级联的n个处理节点,所述处理节点包括级联的一个第一单元和至少一个第二单元,n≥2;所述方法包括:
对待编码的源语句进行分词运算,得到m个词汇,m≤n;
利用所述n个处理节点中的第i个处理节点获取所述m个词汇中的第i个词汇,并获取第i-1个处理节点得到的第i-1个词汇向量,所述第i-1个词汇向量是所述m个词汇中的第i-1个词汇的编码向量,i≤m;
利用所述第i个处理节点中的第一单元对所述第i个词汇和所述第i-1个词汇向量进行线性运算和非线性运算,将得到的第i个运算结果输出给所述至少一个第二单元进行处理,得到第i个词汇向量;
在得到m个词汇向量后,根据所述m个词汇向量生成语句向量,所述语句向量用于确定目标语句或目标分类。
一方面,提供了一种语句解码方法,用于解码模型中,所述解码模型包括一个处理节点,所述处理节点包括级联的一个第一单元和至少一个第二单元;所述方法包括:
在第j个时刻,获取语句向量和第j个查询状态,所述语句向量是编码模型对待编码的源语句进行编码后得到的,所述第j个查询状态用于查询第j个时刻时所述源语句中编码的部分;
根据所述语句向量和所述第j个查询状态生成第j个源语言关注上下文,所述第j个源语言关注上下文是第j个时刻时所述源语句中编码的部分;
利用所述处理节点中的第一单元对所述第j个查询状态和所述第j个语言关注上下文进行线性运算和非线性运算,将得到的第j个运算结果输出给所述处理节点中的至少一个第二单元进行处理,得到第j个词汇;
在得到k个词汇后,根据所述k个词汇生成目标语句,j≤k。
一方面,提供了一种语句编码装置,用于编码模型中,所述编码模型包括级联的n个处理节点,所述处理节点包括级联的一个第一单元和至少一个第二单元,n≥2;所述装置包括:
分词模块,用于对待编码的源语句进行分词运算,得到m个词汇,m≤n;
获取模块,用于利用所述n个处理节点中的第i个处理节点获取所述m个词汇中的第i个词汇,并获取第i-1个处理节点得到的第i-1个词汇向量,所述第i-1个词汇向量是所述m个词汇中的第i-1个词汇的编码向量,i≤m;
运算模块,用于利用所述第i个处理节点中的第一单元对所述第i个词汇和所述第i-1个词汇向量进行线性运算和非线性运算,将得到的第i个运算结果输出给所述至少一个第二单元进行处理,得到第i个词汇向量;
生成模块,用于在得到m个词汇向量后,根据所述m个词汇向量生成语句向量,所述语句向量用于确定目标语句或目标分类。
一方面,提供了一种语句解码装置,用于解码模型中,所述解码模型包括一个处理节点,所述处理节点包括级联的一个第一单元和至少一个第二单元;所述装置包括:
获取模块,用于在第j个时刻,获取语句向量和第j个查询状态,所述语句向量是编码模型对待编码的源语句进行编码后得到的,所述第j个查询状态用于查询第j个时刻时所述源语句中编码的部分;
生成模块,用于根据所述语句向量和所述第j个查询状态生成第j个源语言关注上下文,所述第j个源语言关注上下文是第j个时刻时所述源语句中编码的部分;
运算模块,用于利用所述处理节点中的第一单元对所述第j个查询状态和所述第j个语言关注上下文进行线性运算和非线性运算,将得到的第j个运算结果输出给所述处理节点中的至少一个第二单元进行处理,得到第j个词汇;
所述生成模块,还用于在得到k个词汇后,根据所述k个词汇生成目标语句,j≤k。
一方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如上所述的语句编码方法;或者,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如上所述的语句解码方法。
一方面,提供了一种语句处理设备,所述语句处理设备包括处理器和存储器,所述存储器中存储有至少一条指令,所述指令由所述处理器加载并执行以实现如上所述的语句编码方法;或者,所述指令由所述处理器加载并执行以实现如上所述的语句解码方法。
本申请实施例提供的技术方案的有益效果至少包括:
由于处理节点中的第一单元可以对第i个词汇和第i-1个词汇向量进行线性运算和非线性运算,所以,在对编码模型进行训练以得到该编码模型的权值时,该第一单元也会对训练数据进行线性运算和非线性运算后输出,这样,在反向传播输出与参考结果的误差时,该误差中包括线性运算部分和非线性运算部分的误差,由于线性运算部分的误差的梯度是常量,可以减缓整个误差的梯度的下降速度,也就改善了因为整个误差的梯度呈指数级下降直至消失时,导致编码模型的权值不准确的问题,从而提高了语句处理的准确性。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据部分示例性实施例示出的一种语句处理系统的结构示意图;
图2是本申请一个实施例提供的一种编码模型的示意图;
图3是本申请一个实施例提供的语句编码方法的方法流程图;
图4是本申请一个实施例提供的一种编码模型的示意图;
图5是本申请一个实施例提供的一种编码模型的示意图;
图6是本申请一个实施例提供的语句编码方法的方法流程图;
图7是本申请一个实施例提供的语句解码方法的方法流程图;
图8是本申请一个实施例提供的语句解码方法的方法流程图;
图9是本申请一个实施例提供的一种解码模型的示意图;
图10是本申请一个实施例提供的一种解码模型的示意图;
图11是本申请一个实施例提供的一种解码模型的示意图;
图12是本申请一个实施例提供的一种解码模型和解码模型的示意图;
图13是本申请一个实施例提供的语句编码装置的结构框图;
图14是本申请一个实施例提供的语句解码装置的结构框图;
图15是本申请再一实施例提供的服务器的结构框图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
首先,下面对本申请涉及的应用场景进行介绍:
本申请主要涉及两类应用场景,第一类应用场景中机器学习模型根据语句生成语句,第二类应用场景中机器学习模型对语句进行分类,下面分别对这两类应用场景进行说明。
第一类应用场景可以包括多个应用场景,下面以机器翻译、人机对话、文本自动生成这三个应用场景进行举例说明。
1)机器翻译
机器翻译:是指通过计算机将一种自然语言的语句翻译成另一种自然语言的语句的翻译方式。通常,该机器翻译通过训练好的机器学习模型对语句进行翻译。示意性的,通过大量的翻译语料样本对机器学习模型进行训练,该翻译语料样本中包括多组中文语料和英文语料的对应关系,每个中文语料对应一个英文语料作为翻译结果,训练完成后,用户将中文语句“房价持续增长”输入该机器学习模型后,输出英文翻译“The housing pricescontinued to rise”。
下面根据机器学习模型的调用方式,对机器翻译的应用场景进行举例说明。
第一种:机器学习模型的入口对用户可见。例如,机器学习模型的入口为一个输入框。
在一种可能的应用场景中,机器学习模型设置在一个应用程序中,且该应用程序中提供有输入框。当用户需要对语句A进行翻译时,用户可以在该应用程序中找到该输入框,在该输入框中输入语句A,机器学习模型将该语句A作为待翻译的源语句。其中,语句A可以是用户手动输入或从其他文本中复制得到的,本实施例不作限定。
在一种可能的应用场景中,将机器学习模型设置在服务器中,且该服务器对应的网页中提供有输入框。当用户需要对语句A进行翻译时,用户可以启动浏览器以打开该网页,在该网页中找到该输入框,在该输入框中输入语句A,浏览器将该语句A发送给服务器,服务器中的机器学习模型将该语句A作为待翻译的源语句。其中,语句A可以是用户手动输入或从其他文本中复制得到的,本实施例不作限定。
第二种:机器学习模型的入口对用户不可见。例如,机器学习模型中内嵌于某一个应用程序中,或者,机器学习模型能够被某一应用程序调用。
在一种可能的应用场景中,当用户在使用该应用程序浏览文本时,选中该文本中的语句A,此时该应用程序显示对该语句A的操作选项,若该操作选项中包括翻译选项,则当用户触发该操作选项时,该应用程序调用机器学习模型,将该语句A发送给该机器学习模型进行翻译。
2)人机对话
人机对话:是指通过计算机对用户输入的语句进行应答的对话方式。通常,该人机对话通过训练好的机器学习模型对语句进行应答。示意性的,通过大量的对话样本对机器学习模型进行训练,该对话样本中包括多组同种自然语言或不同种自然语句的对话。训练完成后,用户将语句“距离春节还有多少天”输入该机器学习模型后,输出应答语句“距离春节还有60天”。
3)文本自动生成
文本自动生成:是指通过计算机根据一个语句撰写一个或一段语句的文本生成方式。其中,当输入的语句的字数多于输出的语句的字数时,可以理解成是对输入的语句进行了内容提取,可以应用于摘要提取等应用场景中;当输入语句的字数少于输出的语句的字数时,可以理解成是对输入的语句进行了内容扩展,可以应用于语句的复写、文章生成等应用场景中。
通常,该文本自动生成通过训练好的机器学习模型生成文本。示意性的,用户将语句“本周末鲜花包邮”输入该机器学习模型后,输出一段关于鲜花促销的文本。
第二类应用场景可以包括多个应用场景,下面以情感分析、词性分析和实体分析这三个应用场景进行举例说明。
1)情感分析
情感分析:是指通过计算机根据语句对用户的情感进行分析的分类方式,这里所说的情感可以包括诸如悲伤、快乐之类的情绪、诸如忧郁、倦怠之类的心情、诸如冷漠、疏远之类的人际立场、诸如喜欢、讨厌之类的态度等等,本实施例不作限定。
通常,该情感分析通过训练好的机器学习模型对语句进行分析。示意性的,通过大量的情感分析样本对机器学习模型进行训练,该情感分析样本包括多组语句和情感的对应关系,每个语句对应一种情感。训练完成后,用户将语句“我很快乐”输入该机器学习模型后,输出“快乐”的分类结果。
2)词性分析
词性分析:是指通过计算机对语句中词汇的词性进行分析的分类方式,这里所说的词性可以包括动词、名词、形容词、介词、副词等等,本实施例不作限定。
通常,该词性分析通过训练好的机器学习模型对语句进行分析。示意性的,通过大量的词性分析样本对机器学习模型进行训练,该词性分析样本包括多组语句和词性的对应关系,每个语句中的一个词汇对应一种词性。训练完成后,用户将语句“我很快乐”输入该机器学习模型后,输出“我”属于名词分类、“很”属于副词分类、“快乐”属于形容词分类的分类结果。
3)命名实体分析
实体分析:是指通过计算机提取语句中的命名实体的分类方式,这里所说的命名实体可以包括人名、地名、组织等等。
通常,该命名实体分析通过训练好的机器学习模型对语句进行分析。示意性的,通过大量的命名实体分析样本对机器学习模型进行训练,该命名实体分析样本包括多组语句和命名实体的对应关系,每个语句中的一个命名实体对应一种命名实体。训练完成后,用户将语句“我在公司”输入该机器学习模型后,输出“公司”的分类结果。
值得注意的是,上述应用场景仅为示意性的举例,在实际操作中,通过机器学习模型实现语句的编码和解码的应用场景都可以使用本申请实施例中提供的方法,本申请实施例对此不作限定。
其次,对本申请中涉及的名词进行简单介绍:
可选的,上述机器学习模型可以实现为神经网络模型、支持向量机(SupportVector Machine,SVM)、决策树(Decision Tree,DT)等模型,本申请实施例对此不加以限定,本申请实施例中以该机器学习模型为RNN(Recurrent Neural Network,循环神经网络)模型为例进行说明。
编码模型:是指将一种自然语言的语句编码成一个语句向量的模型。其中,语句向量由语句中每个词汇对应的一个词汇向量组成,该词汇向量表示一个词汇在该语句中的向量,下文会对词汇向量的生成方式进行介绍,此处不作赘述。
示意性的,中文语句“房价持续增长”中包括“房价”、“持续”和“增长”这三个词汇,且“房价”对应于词汇向量1、“持续”对应于词汇向量2、“增长”对应于词汇向量3,则得到的语句向量=[词汇向量1,词汇向量2,词汇向量3]。
需要说明的是,在对语句编码成语句向量之前,需要对该语句进行分词运算,以得到至少两个词汇,本实施例不对分词运算作限定。这里所说的词汇是对语句进行分词得到的,可以是字、词、子词等,本实施例不作限定。其中,子词是在词的基础上进行分词得到的。例如,将词“北京大学”分为“北京”和“大学”这两个子词。
解码模型:是指将一个语句向量解码成一种自然语言的语句的模型。其中,解码模型每对语句向量进行一次解码得到一个词汇,将得到的所有词汇组成一个语句。
示意性的,语句向量=[词汇向量1,词汇向量2,词汇向量3],则解码模型对该语句向量进行第1次解码,得到词汇“The”,对该语句向量进行第2次解码,得到词汇“housing”,依此类推,直至对该语句向量进行第6次解码,得到词汇“rise”,将得到的6个词汇组成语句“The housing prices continued to rise”。
值得注意的是,本申请实施例可以实现在终端中,也可以实现在服务器中,还可以由终端和服务器共同实现,如图1所示,终端11用于生成源语句,并将该源语句发送至服务器12,服务器12对该源语句进行处理后,将处理结果发送至终端11进行展示。可选地,终端11与服务器12之间通过通信网络进行连接,该通信网络可以是有线网络也可以是无线网络,本申请实施例对此不加以限定。
示意性的,服务器12中存储有用于机器翻译的机器学习模型,用户在终端11中输入需要翻译的源语句“房价持续上涨”后,终端11将该源语句发送至服务器12,由服务器12对该源语句通过机器学习模型进行翻译后得到目标语句,并将该目标语句发送至终端11进行展示。
本申请中的机器学习模型包括编码模型和解码模型,下面先对编码模型的结构进行介绍。请参考图2,该编码模型包括级联的n个处理节点201,该处理节点201包括级联的一个第一单元和至少一个第二单元,且图2中以阴影框表示第一单元,白框表示第二单元,则每个处理节点201中顺序包括:第一单元、第二单元、…、第二单元。其中,n≥2,
在一种可能的实现方式中,第一单元是具有非线性运算能力和线性运算能力的GRU,如L-GRU或对GRU做出其他线性变换改进的GRU;第二单元是T-GRU。下面分别对GRU、L-GRU和T-GRU进行介绍。
1)GRU(Gate Recurrent Unit,门控循环单元):
在第i个时刻时GRU的输出的计算公式为:
Figure BDA0001885459220000091
其中,zi是GRU的更新门控,计算公式为zi=σ(Wxzxi+Whzhi-1),xi是第i个时刻GRU的输入,hi-1是第i-1个时刻时GRU的输出,σ是激活函数;⊙是元素积运算的符号;
Figure BDA0001885459220000092
是候选激活函数,计算公式为
Figure BDA0001885459220000093
tanh是双曲正切函数;ri是GRU的重置门控,计算公式为ri=σ(Wxrxi+Whrhi-1);Wxz、Whz、Wxh、Whh、Wxr和Whr是GRU的权值,由训练得到。
更新门控zi用于衡量hi来自于xi和hi-1的比例。更新门控zi的数值越大表示来自hi-1的比例越大;更新门控zi的数值越小表示来自hi-1的比例越小。
重置门控ri用于衡量
Figure BDA0001885459220000095
来自于xi和hi-1的比例。重置门控ri的数值越大表示来自hi-1的比例越小;更新门控zi的数值越小表示来自hi-1的比例越大。
2)T-GRU(Transition GRU,转换门控循环单元):
T-GRU不会出现在机器学习模型中的第一层,所以,T-GRU中不存在输入xi
在第i个时刻时T-GRU的输出的计算公式为:
Figure BDA0001885459220000094
其中,zi是T-GRU的更新门控,计算公式为zi=σ(Whzhi-1),hi-1是第i-1个时刻时T-GRU的输出,σ是激活函数;⊙是元素积运算的符号;
Figure BDA0001885459220000101
是候选激活函数,计算公式为
Figure BDA0001885459220000102
tanh是双曲正切函数;ri是T-GRU的重置门控,计算公式为ri=σ(Whrhi-1);Whz、Whh和Whr是T-GRU的权值,由训练得到。
更新门控zi用于衡量hi来自于hi-1的比例。更新门控zi的数值越大表示来自hi-1的比例越大;更新门控zi的数值越小表示来自hi-1的比例越小。
重置门控ri用于衡量
Figure BDA0001885459220000106
来自于hi-1的比例。重置门控ri的数值越大表示来自hi-1的比例越小;更新门控zi的数值越小表示来自hi-1的比例越大。
3)L-GRU(Linear Transformation enhanced GRU,线性变换强化的门控循环单元):
在第i个时刻时L-GRU的输出的计算公式为:
Figure BDA0001885459220000103
其中,zi是L-GRU的更新门控,计算公式为zi=σ(Wxzxi+Whzhi-1),xi是第i个时刻L-GRU的输入,hi-1是第i-1个时刻时L-GRU的输出,σ是激活函数;⊙是元素积运算的符号;
Figure BDA0001885459220000104
是候选激活函数,计算公式为
Figure BDA0001885459220000105
tanh是双曲正切函数;ri是L-GRU的重置门控,计算公式为ri=σ(Wxrxi+Whrhi-1);H是线性变换函数,计算公式为H(xi)=Wxxi;li是L-GRU的线性变换门控,计算公式为li=σ(Wxlxi+Whlhi-1);Wxz、Whz、Wxh、Whh、Wxr、Whr、Wx、Wxl和Whl是L-GRU的权值,由训练得到。
更新门控zi用于衡量hi来自于xi和hi-1的比例。更新门控zi的数值越大表示来自hi-1的比例越大;更新门控zi的数值越小表示来自hi-1的比例越小。
重置门控ri用于衡量
Figure BDA0001885459220000107
来自于xi和hi-1的比例。重置门控ri的数值越大表示来自hi-1的比例越小;更新门控zi的数值越小表示来自hi-1的比例越大。
线性变换门控li用于控制候选激活函数值包含线性变换函数值。换句话说,线性变换门控li用于强化候选激活函数值,使候选激活函数值在一定程度上包含对xi的线性变换结果。
在了解了编码模型的结构后,下面对利用编码模型对语句进行编码的方法进行介绍。
请参考图3,其示出了本申请一个实施例提供的语句编码方法的方法流程图,该语句编码方法,包括:
步骤301,对待编码的源语句进行分词运算,得到m个词汇。
源语句是指对应于一种自然语言的语句。其中,源语句可以是用户输入的,也可以是用户从文本中选定的。
以本实施例的方法应用于机器翻译的应用场景为例,则可选的,源语句为用户输入的待翻译的语句,可选的,该源语句也可以是用户在浏览文本时选中生成的,如:用户浏览文章时选中文字内容“房价持续上涨”后,选择翻译选项后,该被选中的文字内容即为源语句。
在编码模型得到源语句后,可以对该源语句进行分词运算,本实施例不对分词运算的运算方式作限定。
本实施例中,源语句中的每个词汇对应于一个处理节点,所以,分词得到的词汇的数量m需要小于等于机器学习模型中处理节点的数量n,即m≤n。
在得到m个词汇后,编码模型可以执行步骤302和303,在得到一个词汇向量后,将i更新为i+1,继续执行步骤302和303以得到下一个词汇向量,依此类推,直至将i更新为m以得到第m个词汇向量后停止循环,执行步骤304。
步骤302,利用n个处理节点中的第i个处理节点获取m个词汇中的第i个词汇,并获取第i-1个处理节点得到的第i-1个词汇向量,该第i-1个词汇向量是m个词汇中的第i-1个词汇的编码向量。
在编码模型得到m个词汇后,按照每个词汇在源语句中的位置,对该m个词汇进行排序。例如,源语句为“房价持续增长”,则排序后的3个词汇为“房价”、“持续”和“增长”。
其中,第i-1个词汇向量是根据m个词汇中前i-2个词汇生成的,但其表示的是第i-1个词汇的编码向量。例如,图1中的h1是根据第1个词汇生成的,且其表示第1个词汇向量;h2是根据第1和2个词汇生成的,且其表示第2个词汇向量。
步骤303,利用第i个处理节点中的第一单元对第i个词汇和第i-1个词汇向量进行线性运算和非线性运算,将得到的第i个运算结果输出给至少一个第二单元进行处理,得到第i个词汇向量。
以第一单元是L-GRU,第二单元是T-GRU为例,对编码模型在每个时刻得到一个词汇向量的流程进行介绍。其中,本实施例中将处理节点从接收数据到输出数据的时间称为一个时刻,也称为一个时间步。
在第1个时刻,第一个处理节点中的L-GRU接收源语句中的第一个词汇x1,根据计算公式对x1进行线性运算和非线性运算后输出给该第一个处理节点中的第一个T-GRU,该第一个T-GRU根据计算公式对接收到的数据进行处理后输出给该第一个处理节点中的第二个T-GRU,依此类推,直至该第一个处理节点中的最后一个T-GRU根据计算公式对接收到的数据进行处理后得到h1,该h1即为x1对应的词汇向量。
在第2个时刻,第二个处理节点中的L-GRU接收源语句中的第二个词汇x2和第一个处理节点得到的h1,根据计算公式对x1和h1进行线性运算和非线性运算后输出给该第二个处理节点中的第一个T-GRU,该第一个T-GRU根据计算公式对接收到的数据进行处理后输出给该第二个处理节点中的第二个T-GRU,依此类推,直至该第二个处理节点中的最后一个T-GRU根据计算公式对接收到的数据进行处理后得到h2,该h2即为x2对应的词汇向量。
依此类推,第n个处理节点可以得到hm
需要说明的是,处理节点中T-GRU的数量可以是预先设置的。通常,T-GRU的数量与语句处理的准确性呈正相关关系,即T-GRU的数量越多,语句处理的准确性越高。然而,随着T-GRU的数量的增多,准确性的增幅会逐渐减小,而机器学习模型的复杂性会逐渐增大,导致语句处理的效率降低。所以,可以根据用户对语句处理的准确性和效率的需求,设置T-GRU的数量。
步骤304,在得到m个词汇向量后,根据m个词汇向量生成语句向量,该语句向量用于确定目标语句或目标分类。
在编码模型得到m个词汇向量后,按照每个词汇向量对应的词汇在源语句中的位置,对该m个词汇向量进行排序。例如,“房价”对应于词汇向量1、“持续”对应于词汇向量2、“增长”对应于词汇向量3,则得到的语句向量=[词汇向量1,词汇向量2,词汇向量3]。
当本实施例的方法应用于第一类应用场景中时,语句向量用于供解码模型生成目标语句,该目标语句是指对应于一种自然语言的语句。其中,当本实施例的方法应用于机器翻译的应用场景中时,源语句对应的自然语言和目标语句对应的自然语言不同。比如,源语句对应的自然语言是中文,目标语句对应的自然语言是英文;源语句对应的自然语言是法文,目标语句对应的自然语言是英文;源语句对应的自然语言是英文,目标语句对应的自然语言是中文。当本实施例的方法应用于人机对话或文本自动生成的应用场景中时,源语句对应的自然语言和目标语句对应的自然语言可以相同,也可以不同。
当本实施例的方法应用于第二类应用场景中时,语句向量用于确定目标分类。其中,当本实施例的方法应用于情感分析的应用场景中时,目标分类是情感分类。放本实施例的方法应用于词性分析的应用场景中时,目标分类是词性分类。当本实施例的方法应用于命名实体分析的应用场景中时,目标分类是命名实体分类。
综上所述,本申请实施例提供的语句编码方法,由于处理节点中的第一单元可以对第i个词汇和第i-1个词汇向量进行线性运算和非线性运算,所以,在对编码模型进行训练以得到该编码模型的权值时,该第一单元也会对训练数据进行线性运算和非线性运算后输出,这样,在反向传播输出与参考结果的误差时,该误差中包括线性运算部分和非线性运算部分的误差,由于线性运算部分的误差的梯度是常量,可以减缓整个误差的梯度的下降速度,也就改善了因为整个误差的梯度呈指数级下降直至消失时,导致编码模型的权值不准确的问题,从而提高了语句处理的准确性。
可选的,还可以根据编码模型的编码方向设置编码模型的类型,下面对其中的三种编码模型进行介绍。
1、单向编码模型且编码方向为从前往后;
请参考图2,图2中以从左向右的方向来表示从前往后的编码方向,且阴影框表示L-GRU,白框表示T-GRU。此时,第i个处理节点是按照从前往后的顺序排列在n个处理节点中的第i个位置的处理节点201;第i个词汇是按照从前往后的顺序排列在m个词汇中的第i个位置的词汇。
比如,编码模型得到的m个词汇是“房价”、“持续”和“上涨”,则从左向右的方向上的第一个处理节点201处理的第1个词汇是“房价”,第二个处理节点201处理的第2个词汇是“持续”,第三个处理节点201处理的第3个词汇是“上涨”。
2、单向编码模型且编码方向为从后往前;
请参考图4,图4中以从右向左的方向来表示从后往前的编码方向,且阴影框表示L-GRU,白框表示T-GRU。此时,第i个处理节点是按照从后往前的顺序排列在n个处理节点中的第i个位置的处理节点401;第i个词汇是按照从后往前的顺序排列在m个词汇中的第i个位置的词汇。
比如,编码模型得到的m个词汇是“房价”、“持续”和“上涨”,则从右向左的方向上的第一个处理节点401处理的第1个词汇是“上涨”,第二个处理节点401处理的第2个词汇是“持续”,第三个处理节点401处理的第3个词汇是“房价”。
3、双向编码模型且编码方向包括从前往后和从后往前;
请参考图5,图5中以从左向右的方向来表示从前往后的编码方向、以从右向左的方向来表示从后往前的编码方向,且阴影框表示L-GRU,白框表示T-GRU。此时,第i个处理节点包括按照从前往后的顺序排列在n个处理节点中的第i个位置的处理节点501,以及按照从后往前的顺序排列在n个处理节点中的第i个位置的处理节点502;第i个词汇包括按照从前往后的顺序排列在m个词汇中的第i个位置的词汇,以及按照从后往前的顺序排列在m个词汇中的第i个位置的词汇。
比如,编码模型得到的m个词汇是“房价”、“持续”和“上涨”,则从左向右的方向上的第一个处理节点501处理的第1个词汇是“房价”,第二个处理节点501处理的第2个词汇是“持续”,第三个处理节点501处理的第3个词汇是“上涨”;从右向左的方向上的第一个处理节点502处理的第1个词汇是“上涨”,第二个处理节点502处理的第2个词汇是“持续”,第三个处理节点502处理的第3个词汇是“房价”。
请参考图6,其示出了本申请另一实施例提供的语句编码方法的方法流程图。该语句编码方法,包括:
步骤601,对待编码的源语句进行分词运算,得到m个词汇。
源语句是指对应于一种自然语言的语句。其中,源语句可以是用户输入的,也可以是用户从文本中选定的。
以本实施例的方法应用于机器翻译的应用场景为例,则可选的,源语句为用户输入的待翻译的语句,可选的,该源语句也可以是用户在浏览文本时选中生成的,如:用户浏览文章时选中文字内容“房价持续上涨”后,选择翻译选项后,该被选中的文字内容即为源语句。
在编码模型得到源语句后,可以对该源语句进行分词运算,本实施例不对分词运算的运算方式作限定。
本实施例中,源语句中的每个词汇对应于一个处理节点,所以,分词得到的词汇的数量m需要小于等于机器学习模型中处理节点的数量n,即m≤n。
在得到m个词汇后,编码模型可以执行步骤602-607,在得到一个词汇向量后,将i更新为i+1,继续执行步骤602-607以得到下一个词汇向量,依此类推,直至将i更新为m以得到第m个词汇向量后停止循环,执行步骤608。
步骤602,利用n个处理节点中的第i个处理节点获取m个词汇中的第i个词汇,并获取第i-1个处理节点得到的第i-1个词汇向量,该第i-1个词汇向量是m个词汇中的第i-1个词汇的编码向量。
在编码模型得到m个词汇后,按照每个词汇在源语句中的位置,对该m个词汇进行排序。例如,源语句为“房价持续增长”,则排序后的3个词汇为“房价”、“持续”和“增长”。
其中,第i-1个词汇向量是根据m个词汇中前i-2个词汇生成的,但其表示的是第i-1个词汇的编码向量。例如,图1中的h1是根据第1个词汇生成的,且其表示第1个词汇向量;h2是根据第1和2个词汇生成的,且其表示第2个词汇向量。
步骤603,利用第一单元将第i-1个词汇向量与第一差值进行元素积运算,得到第一乘积。
第一差值等于预定数值减去第一单元的更新门控,预定数值可以是1,也可以是其他数值,本实施例不作限定。
更新门控用于衡量第i个词汇向量来自于第i个词汇和第i-1个词汇向量的比例。更新门控的计算公式详见L-GRU中的说明,此处不作赘述。
在步骤604中,利用第一单元通过线性变换函数对第i个词汇进行线性变换,将得到的线性变换函数值与线性变换门控进行元素积运算,得到第二乘积;通过双曲正切函数对第i个词汇和第i-1个词汇向量进行非线性变换,将得到的双曲正切函数值与第二乘积相加,得到候选激活函数值。
线性变换门控用于控制候选激活函数值包含线性变换函数值。线性变换门控的计算公式详见L-GRU中的说明,此处不作赘述。
在步骤605中,利用第一单元将更新门控与候选激活函数值进行元素积运算,得到第三乘积。
在步骤606中,利用第一单元将第一乘积与第三乘积相加,得到第i个运算结果。
需要说明的是,步骤603-606中对数据的处理过程即为一个处理节点中的L-GRU根据计算公式对数据的处理过程,详见上面L-GRU的计算公式,此处不作赘述。
假设处理节点的深度为ls,即处理节点中L-GRU和T-GRU的数量之和为ls,则第i个运算结果为
Figure BDA0001885459220000161
在步骤607中,利用第i个处理节点中的第一单元将得到的第i个运算结果输出给至少一个第二单元进行处理,得到第i个词汇向量。
第i个处理节点中的L-GRU将得到的第i个运算结果输出给该第i个处理节点中的第一个T-GRU,该第i个处理节点中的第一个T-GRU对接收到的数据进行处理后输出给该第i个处理节点中的第二个T-GRU,依此类推,直至该第i个处理节点中的最后一个T-GRU根据计算公式对接收到的数据进行处理后得到第i个词汇向量,该第i个词汇向量即为第i个词汇对应的词汇向量。
假设处理节点的深度为ls,则第k个T-GRU的输出为
Figure BDA0001885459220000162
1≤k≤ls
若编码模型为单向编码模型且编码方向为从前往后,则第i个词汇向量为
Figure BDA0001885459220000163
若编码模型为单向编码模型且编码方向为从后往前,则第i个词汇向量为
Figure BDA0001885459220000164
若编码模型为双向编码模型且编码方向包括从前往后和从后往前,则第i个词汇向量为
Figure BDA0001885459220000171
其中
Figure BDA0001885459220000172
步骤608,在得到m个词汇向量后,根据m个词汇向量生成语句向量,该语句向量用于生成目标语句,且该目标语句与该源语句对应于不同的自然语言。
在编码模型得到m个词汇向量后,按照每个词汇向量对应的词汇在源语句中的位置,对该m个词汇向量进行排序。例如,“房价”对应于词汇向量1、“持续”对应于词汇向量2、“增长”对应于词汇向量3,则得到的语句向量=[词汇向量1,词汇向量2,词汇向量3]。
当本实施例的方法应用于第一类应用场景中时,语句向量用于供解码模型生成目标语句,该目标语句是指对应于一种自然语言的语句。其中,当本实施例的方法应用于机器翻译的应用场景中时,源语句对应的自然语言和目标语句对应的自然语言不同。比如,源语句对应的自然语言是中文,目标语句对应的自然语言是英文;源语句对应的自然语言是法文,目标语句对应的自然语言是英文;源语句对应的自然语言是英文,目标语句对应的自然语言是中文。当本实施例的方法应用于人机对话或文本自动生成的应用场景中时,源语句对应的自然语言和目标语句对应的自然语言可以相同,也可以不同。
当本实施例的方法应用于第二类应用场景中时,语句向量用于确定目标分类。其中,当本实施例的方法应用于情感分析的应用场景中时,目标分类是情感分类。放本实施例的方法应用于词性分析的应用场景中时,目标分类是词性分类。当本实施例的方法应用于命名实体分析的应用场景中时,目标分类是命名实体分类。
综上所述,本申请实施例提供的语句编码方法,由于处理节点中的第一单元可以对第i个词汇和第i-1个词汇向量进行线性运算和非线性运算,所以,在对编码模型进行训练以得到该编码模型的权值时,该第一单元也会对训练数据进行线性运算和非线性运算后输出,这样,在反向传播输出与参考结果的误差时,该误差中包括线性运算部分和非线性运算部分的误差,由于线性运算部分的误差的梯度是常量,可以减缓整个误差的梯度的下降速度,也就改善了因为整个误差的梯度呈指数级下降直至消失时,导致编码模型的权值不准确的问题,从而提高了语句处理的准确性。
请参考图7,其示出了本申请一个实施例提供的语句解码方法的方法流程图,该解码模型包括一个处理节点,该处理节点包括级联的一个第一单元和至少一个第二单元。其中,第一单元是具有非线性运算能力和线性运算能力的GRU,如上文所述的L-GRU或对GRU做出其他线性变换改进的GRU;第二单元是T-GRU。该语句解码方法,包括:
步骤701,在第j个时刻,获取语句向量和第j个查询状态,该语句向量是编码模型对待编码的源语句进行编码后得到的,该第j个查询状态用于查询第j个时刻时源语句中编码的部分。
语句向量可以是如图2-6所示的编码模型根据源语句生成的,也可以是其他编码模型根据源语句生成的,本实施例不作限定。其中,源语句是指对应于一种自然语言的语句。
查询状态表示到当前时刻已经编码的历史状态,用于查询源语句,以获取下一时刻源语句中最可能编码的部分,该部分可以是字、词、短语、不连续的片段等等,本实施例不作限定。
步骤702,根据语句向量和第j个查询状态生成第j个源语言关注上下文,该第j个源语言关注上下文是第j个时刻时源语句中编码的部分。
其中,解码模型可以利用注意力运算对语句向量和第j个查询状态生成第j个源语言关注上下文,该源语言关注上下文是当前时刻源语句中最可能编码的部分,详见下文中的描述。
步骤703,利用处理节点中的第一单元对第j个查询状态和第j个语言关注上下文进行线性运算和非线性运算,将得到的第j个运算结果输出给处理节点中的至少一个第二单元进行处理,得到第j个词汇。
当第一单元是L-GRU,第二单元是T-GRU时,处理节点中的L-GRU可以根据上面介绍的计算公式对第j个查询状态和第j个语言关注上下文进行线性运算和非线性运算,并将得到的第j个运算结果输出给该处理节点中的第一个T-GRU,该处理节点中的第一个T-GRU对接收到的数据进行处理后输出给该处理节点中的第二个T-GRU,依此类推,直至该处理节点中的最后一个T-GRU根据计算公式对接收到的数据进行处理后得到第j个词汇,该第j个词汇即为按照从前往后的顺序排列在目标语句中的第j个位置的词汇。
需要说明的是,假设j≤k,则解码模型可以执行步骤701-703,在得到一个词汇后,将j更新为j+1,继续执行步骤701-703以得到下一个词汇,依此类推,直至将j更新为k以得到第k个词汇后停止循环,执行步骤704。
步骤704,在得到k个词汇后,根据k个词汇生成目标语句,该目标语句与源语句对应于不同的自然语言。
在解码模型得到k个词汇后,按照每个词汇的生成顺序对该k个词汇进行排序,得到目标语句。例如,解码模型得到的第1个词汇是“The”,第2个词汇是“housing”,第3个词汇是“prices”,第4个词汇是“continued”,第5个词汇是“to”,第6个词汇是“rise”,则目标语句是“The housing prices continued to rise”。
当本实施例的方法应用于机器翻译的应用场景中时,源语句对应的自然语言和目标语句对应的自然语言不同。比如,源语句对应的自然语言是中文,目标语句对应的自然语言是英文;源语句对应的自然语言是法文,目标语句对应的自然语言是英文;源语句对应的自然语言是英文,目标语句对应的自然语言是中文。
当本实施例的方法应用于人机对话或文本自动生成的应用场景中时,源语句对应的自然语言和目标语句对应的自然语言可以相同,也可以不同,本实施例不作限定。
综上所述,本申请实施例提供的语句解码方法,由于处理节点中的第一单元可以对第j个查询状态和第j个源语言关注上下文进行线性运算和非线性运算,所以,在对解码模型进行训练以得到该解码模型的权值时,该第一单元也会对训练数据进行线性运算和非线性运算后输出,这样,在反向传播输出与参考结果的误差时,该误差中包括线性运算部分和非线性运算部分的误差,由于线性运算部分的误差的梯度是常量,可以减缓整个误差的梯度的下降速度,也就改善了因为整个误差的梯度呈指数级下降直至消失时,导致解码模型的权值不准确的问题,从而提高了语句处理的准确性。
请参考图8,其示出了本申请一个实施例提供的语句解码方法的方法流程图,该解码模型包括一个处理节点,该处理节点包括级联的一个第一单元和至少一个第二单元。其中,第一单元是具有非线性运算能力和线性运算能力的GRU,如上文所述的L-GRU或对GRU做出其他线性变换改进的GRU;第二单元是T-GRU。该语句解码方法,包括:
步骤801,在第j个时刻,获取语句向量和第j个查询状态,该语句向量是编码模型对待编码的源语句进行编码后得到的,该第j个查询状态用于查询第j个时刻时源语句中编码的部分。
语句向量可以是如图2-6所示的编码模型根据源语句生成的,也可以是其他编码模型根据源语句生成的,本实施例不作限定。其中,源语句是指对应于一种自然语言的语句。
可选的,解码模型可以通过查询节点获取第j个查询状态,该查询节点与处理节点相连。下面对查询节点的三种实现方式进行介绍。
在第一种实现方式中,查询节点包括一个第一单元和至少一个第二单元,则获取第j个查询状态,包括:利用查询节点中的第一单元获取第j-1个解码状态和第j-1个词汇,该第j-1个解码状态是处理节点根据第j-1个运算结果得到的,且该第j-1个解码状态用于确定第j-1个词汇;利用查询节点中的第一单元对第j-1个解码状态和第j-1个词汇进行线性运算和非线性运算,将得到的中间运算结果输出给查询节点中的至少一个第二单元进行处理,得到第j个查询状态。
当第一单元是L-GRU,第二单元是T-GRU时,请参考图9,图9中以阴影框表示L-GRU,以白框表示T-GRU,以虚线框901表示处理节点,以虚线框902表示查询节点。
处理节点中的L-GRU可以根据上面介绍的计算公式对第j-1个解码状态和第j-1个词汇进行线性运算和非线性运算,并将得到的中间运算结果输出给该处理节点中的第一个T-GRU,该处理节点中的第一个T-GRU对接收到的数据进行处理后输出给该处理节点中的第二个T-GRU,依此类推,直至该处理节点中的最后一个T-GRU根据计算公式对接收到的数据进行处理后得到第j个查询状态。
假设查询节点的深度为lq,处理节点的深度为ld,即查询节点中L-GRU和T-GRU的数量之和为lq,处理节点中L-GRU和T-GRU的数量之和为ld,则中间运算结果为
Figure BDA0001885459220000201
第k个T-GRU的运算结果为sj,k=T-GRUk(sj,k-1),1≤k≤lq。其中,s表示解码状态,y表示目标语句中的词汇。
与查询节点包括一个GRU相比,本申请中不仅加深了查询节点的深度,即在查询节点中增加了T-GRU,从而提高了解码模型的学习能力;还将GRU修改为L-GRU,从而提高了解码模型的权值的准确性,以提高语句处理的准确性。
在第二种实现方式中,查询节点包括一个第一单元,则获取第j个查询状态,包括:利用查询节点中的第一单元获取第j-1个解码状态和第j-1个词汇,第j-1个解码状态是处理节点根据第j-1个运算结果得到的,且第j-1个解码状态用于确定第j-1个词汇;利用查询节点中的第一单元对第j-1个解码状态和第j-1个词汇进行线性运算和非线性运算,得到第j个查询状态。
当第一单元是L-GRU,请参考图10,图10中以阴影框表示L-GRU,以白框表示T-GRU,以虚线框901表示处理节点,以虚线框902表示查询节点。
处理节点中的L-GRU可以根据上面介绍的计算公式对第j-1个解码状态和第j-1个词汇进行线性运算和非线性运算,直接得到第j个查询状态。
与查询节点包括一个GRU相比,本申请中将GRU修改为L-GRU提高了解码模型的权值的准确性,以提高语句处理的准确性。
在第三种实现方式中,查询节点包括一个第三单元和至少一个第二单元,则获取第j个查询状态,包括:利用查询节点中的第三单元获取第j-1个解码状态和第j-1个词汇,第j-1个解码状态是处理节点根据第j-1个运算结果得到的,且第j-1个解码状态用于确定第j-1个词汇;利用查询节点中的第三单元对第j-1个解码状态和第j-1个词汇进行非线性运算,将得到的中间运算结果输出给查询节点中的至少一个第二单元进行处理,得到第j个查询状态。
当第三单元是GRU,第二单元是T-GRU时,请参考图11,图11中以黑框表示GRU,以白框表示T-GRU,以虚线框901表示处理节点,以虚线框902表示查询节点。
处理节点中的GRU可以根据上面介绍的计算公式对第j-1个解码状态和第j-1个词汇进行非线性运算,并将得到的中间运算结果输出给该处理节点中的第一个T-GRU,该处理节点中的第一个T-GRU对接收到的数据进行处理后输出给该处理节点中的第二个T-GRU,依此类推,直至该处理节点中的最后一个T-GRU根据计算公式对接收到的数据进行处理后得到第j个查询状态。
与查询节点包括一个GRU相比,本申请中加深了查询节点的深度,即在查询节点中增加了T-GRU,从而提高了解码模型的学习能力。
步骤802,当解码模型还包括注意力运算节点时,利用注意力运算节点对语句向量和第j个查询状态进行注意力运算,得到第j个源语言关注上下文,该第j个源语言关注上下文是第j个时刻时源语句中编码的部分。
其中,注意力运算节点分别与编码模型、查询节点和处理节点相连,详见图9-11,图9-11中以虚线框903表示注意力运算节点。
可选的,本申请中的注意力运算节点可以是多注意力运算模型,也可以是其他注意力模型,例如传统的注意力计算模型、局部和全局注意力模型等等,本实施例不作限定。
以多注意力运算模型为例,则第j个源语言关注上下文
Figure BDA0001885459220000221
C是语句向量,v是查询状态。
步骤803,利用第一单元将第j个查询状态与第一差值进行元素积运算,得到第一乘积,第一差值等于预定数值减去第一单元的更新门控。
第一差值等于预定数值减去第一单元的更新门控,预定数值可以是1,也可以是其他数值,本实施例不作限定。
其中,更新门控用于衡量第j个语言关注上下文向量来自于第j个语言关注上下文和第j个查询状态的比例。更新门控的计算公式详见L-GRU中的说明,此处不作赘述。
步骤804,利用第一单元通过线性变换函数对第j个语言关注上下文进行线性变换,将得到的线性变换函数值与线性变换门控进行元素积运算,得到第二乘积;通过双曲正切函数对第j个语言关注上下文和第j个查询状态进行非线性变换,将得到的双曲正切函数值与第二乘积相加,得到候选激活函数值。
其中,线性变换门控用于控制候选激活函数值包含线性变换函数值。线性变换门控的计算公式详见L-GRU中的说明,此处不作赘述。
步骤805,利用第一单元将更新门控与候选激活函数值进行元素积运算,得到第三乘积。
步骤806,利用第一单元将第一乘积与第三乘积相加,得到第j个运算结果。
需要说明的是,步骤803-807中对数据的处理过程即为处理节点中的L-GRU根据计算公式对数据的处理过程,简单表示为
Figure BDA0001885459220000222
此处不作赘述。其中,c是源语言关注上下文,v是查询状态。
步骤807,将得到的第j个运算结果输出给处理节点中的至少一个第二单元进行处理,得到第j个词汇。
处理节点中的L-GRU将得到的第j个运算结果输出给该处理节点中的第一个T-GRU,该处理节点中的第一个T-GRU对接收到的数据进行处理后输出给该处理节点中的第二个T-GRU,依此类推,直至该处理节点中的最后一个T-GRU根据计算公式对接收到的数据进行处理后得到第j个词汇,该第j个词汇即为按照从前往后的顺序排列在目标语句中的第j个位置的词汇。
若用公式表示,则T-GRU的输出为
Figure BDA0001885459220000231
2≤p≤ld+1。
需要说明的第一点是,解码模型生成了第j个解码状态后,还获取第j-1个词汇、第j个解码状态、第j个源语言关注上下文,并根据上述三个数据计算输出向量oj,计算公式为
Figure BDA0001885459220000232
Figure BDA0001885459220000233
Figure BDA0001885459220000234
是解码模型的权值,通过训练得到;
Figure BDA0001885459220000235
解码模型再通过softmax获取该输出向量oj,根据计算公式
Figure BDA0001885459220000236
计算第j个词汇是词汇表中每个词汇的概率,并将最大概率所对应的词汇作为第j个词汇。其中,词汇表是预先设置在解码模型中的。
需要说明的第二点是,假设j≤k,则解码模型可以执行步骤801-807,在得到一个词汇后,将j更新为j+1,继续执行步骤801-807以得到下一个词汇,依此类推,直至将j更新为k以得到第k个词汇后停止循环,执行步骤808。下面对解码模型在每个时刻得到一个词汇的流程进行介绍。其中,本实施例中将从查询节点接收数据到softmax(归一化函数)输出数据的时间称为一个时刻,也称为一个时间步。
在第1个时刻,查询节点获取初始的查询状态和词汇,根据计算公式对初始的查询状态和词汇进行处理后得到第1个查询状态v1;注意力运算节点获取语句向量和v1,根据计算公式对该语句向量和v1进行处理后得到第1个源语言关注上下文c1;处理节点中的L-GRU获取v1和c1,根据计算公式对该v1和c1进行线性运算和非线性运算后输出给该处理节点中的第一个T-GRU;该处理节点中的第一个T-GRU根据计算公式对接收到的数据进行处理后输出该处理节点中的第二个T-GRU,依此类推,直至该处理节点中的最后一个T-GRU根据计算公式对接收到的数据进行处理后得到第1个解码状态s1;sofrmax获取c1和s1,根据计算公式对c1和s1进行处理后得到第1个词汇y1
在第2个时刻,查询节点获取v1和y1,根据计算公式对该v1和y1进行处理后得到第2个查询状态v2;后续处理流程与第1个时刻的处理流程相同,最终得到第2个词汇y2
依此类推,解码模型可以得到第k个词汇yk,则解码模型最终得到的语句为y1y2…yi…yk
步骤808,在得到k个词汇后,根据k个词汇生成目标语句。
在解码模型得到k个词汇后,按照每个词汇的生成顺序对该k个词汇进行排序,得到目标语句。例如,解码模型得到的第1个词汇是“The”,第2个词汇是“housing”,第3个词汇是“prices”,第4个词汇是“continued”,第5个词汇是“to”,第6个词汇是“rise”,则目标语句是“The housing prices continued to rise”。
当本实施例的方法应用于机器翻译的应用场景中时,源语句对应的自然语言和目标语句对应的自然语言不同。比如,源语句对应的自然语言是中文,目标语句对应的自然语言是英文;源语句对应的自然语言是法文,目标语句对应的自然语言是英文;源语句对应的自然语言是英文,目标语句对应的自然语言是中文。当本实施例的方法应用于人机对话或文本自动生成的应用场景中时,源语句对应的自然语言和目标语句对应的自然语言可以相同,也可以不同,本实施例不作限定。
综上所述,本申请实施例提供的语句解码方法,由于处理节点中的第一单元可以对第j个查询状态和第j个源语言关注上下文进行线性运算和非线性运算,所以,在对解码模型进行训练以得到该解码模型的权值时,该第一单元也会对训练数据进行线性运算和非线性运算后输出,这样,在反向传播输出与参考结果的误差时,该误差中包括线性运算部分和非线性运算部分的误差,由于线性运算部分的误差的梯度是常量,可以减缓整个误差的梯度的下降速度,也就改善了因为整个误差的梯度呈指数级下降直至消失时,导致解码模型的权值不准确的问题,从而提高了语句处理的准确性。
与查询节点包括一个GRU相比,本申请中加深了查询节点的深度,即在查询节点中增加了T-GRU,从而提高了解码模型的学习能力;和/或,将GRU修改为L-GRU,从而提高了解码模型的权值的准确性,以提高语句处理的准确性。
需要说明的是,本申请中不仅通过双曲正切函数对数据进行非线性运算,以保证机器学习模型的学习能力,还通过线性变换函数对数据进行线性运算,这样,反向传播的误差中包括线性运算部分和非线性运算部分的误差,由于线性运算部分的误差的梯度是常量,可以减缓整个误差的梯度的下降速度,也就改善了因为整个误差的梯度呈指数级下降直至消失时,导致编码模型的权值不准确的问题,从而提高了语句处理的准确性。
可选的,本申请中还可以将上述编码模型和解码模型进行结合,以得到一个包含编码和解码能力的机器学习模型,即将图2、4和5中任一编码模型和图9-11中任一解码模型相结合。请参考图12,图12中以编码模型为双向编码模型,且解码模型中的查询器包括一个第一单元和至少一个第二单元为例进行举例说明。
仍然以源语句为“房价持续增长”,且该机器学习模型应用于机器翻译的应用场景中为例,则图12所示的机器学习模型中的编码模型先对源语句进行分词,得到“房价”、“持续”和“增长”这三个词汇;根据从前往后的编码方向,分别利用前3个处理节点对这三个词汇进行处理,依次得到对应于“房价”的词汇向量1、对应于“持续”的词汇向量2、对应于“增长”的词汇向量3;根据从后往前的编码方向,分别利用后3个处理节点对这三个词汇进行处理,依次得到对应于“增长”的词汇向量4、对应于“持续”的词汇向量5、对应于“房价”的词汇向量6,则得到的语句向量为[词汇向量1词汇向量6、词汇向量2词汇向量5、词汇向量3词汇向量4],将该语句向量输出给解码模型。
解码模型利用上述解码方法对该语句向量进行解码,在第一次解码时得到词汇“The”,在第二次解码时得到词汇“housing”,在第三次解码时得到词汇“prices”,在第四次解码时得到词汇“continued”,在第五次解码时得到词汇“to”,在第六次解码时得到词汇“rise”,则目标语句是“The housing prices continued to rise”。
当机器学习模型包括上述编码模型和解码模型时,编码模型的处理节点中T-GRU的数量、解码模型的处理节点中T-GRU的数量、解码模型的查询节点中T-GRU的数量可以相等,也可以不等。
下面以上述三种节点中T-GRU的数量相等,且T-GRU的数量分别是1和4为例,对机器翻译的BLEU指标进行评测,相关评测数据如下表一所示。其中,BLEU指标用于评测机器翻译的效果,且BLEU指标越高,机器翻译的效果越好。
表一
Figure BDA0001885459220000261
表一中BLEU指标的括号中标注了本申请相对于标准的机器学习模型的增值,通常,增值超过1即可以认为机器翻译的效果提升显著,所以,本申请可以显著提升机器翻译的效果。
下面以上述三种节点均为GRU+1T-GRU或L-GRU+1T-GRU或GRU+4T-GRU或L-GRU+4T-GRU为例,对机器翻译的BLEU指标进行评测,相关评测数据如下表二所示。
表二
机器学习模型 中文-英文
GRU+1T-GRU 43.63
L-GRU+1T-GRU 44.41
GRU+4T-GRU 44.16
L-GRU+4T-GRU 45.04
对表二中的BLEU指标进行分析可知:
1)当三个节点均为L-GRU+1T-GRU时,相比于三个节点均为GRU+1T-GRU来说,BLEU指标增加了44.41-43.63=0.78;当三个节点均为L-GRU+4T-GRU时,相比于三个节点均为GRU+4T-GRU来说,BLEU指标增加了45.04-44.16=0.88。所以,将节点中的GRU修改为L-GRU可以提高机器翻译的准确性。
2)当三个节点均为GRU+1T-GRU时,相比于三个节点均为GRU+4T-GRU来说,BLEU指标增加了44.16-43.63=0.53;当三个节点均为L-GRU+1T-GRU时,相比于三个节点均为L-GRU+4T-GRU来说,BLEU指标增加了45.04-44.41=0.63。所以,增加节点中T-GRU的数量可以提高机器翻译的准确性。
下面以上述三种节点为L-GRU+4T-GRU和GRU中的一种,对机器翻译的BLEU指标进行评测,相关评测数据如下表三所示。其中,√表示其对应的节点为L-GRU+4T-GRU,×表示其对应的节点为GRU。
表三
Figure BDA0001885459220000271
根据表三中的BLEU指标可知,当机器学习模型中三个节点均为L-GRU+4T-GRU时,其BLEU指标最高。所以,三个节点均为L-GRU+4T-GRU的机器学习模型的机器翻译效果最好。
请参考图13,其示出了本申请一个实施例提供的语句编码装置的结构框图,用于编码模型中,该编码模型包括级联的n个处理节点,该处理节点包括级联的一个第一单元和至少一个第二单元,n≥2。该语句编码装置,包括:
分词模块1310,用于对待编码的源语句进行分词运算,得到m个词汇,m≤n;
获取模块1320,用于利用n个处理节点中的第i个处理节点获取m个词汇中的第i个词汇,并获取第i-1个处理节点得到的第i-1个词汇向量,第i-1个词汇向量是m个词汇中的第i-1个词汇的编码向量,i≤m;
运算模块1330,用于利用第i个处理节点中的第一单元对第i个词汇和第i-1个词汇向量进行线性运算和非线性运算,将得到的第i个运算结果输出给至少一个第二单元进行处理,得到第i个词汇向量;
生成模块1340,用于在得到m个词汇向量后,根据m个词汇向量生成语句向量,语句向量用于确定目标语句或目标分类。
在一种可能的实现方式中,当编码模型是单向编码模型,且编码方向为从前往后时,
第i个处理节点是按照从前往后的顺序排列在n个处理节点中的第i个位置的处理节点;
第i个词汇是按照从前往后的顺序排列在m个词汇中的第i个位置的词汇。
在一种可能的实现方式中,当编码模型是单向编码模型,且编码方向为从后往前时,
第i个处理节点是按照从后往前的顺序排列在n个处理节点中的第i个位置的处理节点;
第i个词汇是按照从后往前的顺序排列在m个词汇中的第i个位置的词汇。
在一种可能的实现方式中,当编码模型是双向编码模型,且编码方向为从前往后和从后往前时,m≤n/2;
第i个处理节点包括按照从前往后的顺序排列在n个处理节点中的第i个位置的处理节点,以及按照从后往前的顺序排列在n个处理节点中的第i个位置的处理节点;
第i个词汇包括按照从前往后的顺序排列在m个词汇中的第i个位置的词汇,以及按照从后往前的顺序排列在m个词汇中的第i个位置的词汇。
在一种可能的实现方式中,运算模块1330,还用于:
利用第一单元将第i-1个词汇向量与第一差值进行元素积运算,得到第一乘积,第一差值等于预定数值减去第一单元的更新门控,更新门控用于衡量第i个词汇向量来自于第i个词汇和第i-1个词汇向量的比例;
利用第一单元通过线性变换函数对第i个词汇进行线性变换,将得到的线性变换函数值与线性变换门控进行元素积运算,得到第二乘积;通过双曲正切函数对第i个词汇和第i-1个词汇向量进行非线性变换,将得到的双曲正切函数值与第二乘积相加,得到候选激活函数值,线性变换门控用于控制候选激活函数值包含线性变换函数值;
利用第一单元将更新门控与候选激活函数值进行元素积运算,得到第三乘积;
利用第一单元将第一乘积与第三乘积相加,得到第i个运算结果。
综上所述,本申请实施例提供的语句编码装置,由于处理节点中的第一单元可以对第i个词汇和第i-1个词汇向量进行线性运算和非线性运算,所以,在对编码模型进行训练以得到该编码模型的权值时,该第一单元也会对训练数据进行线性运算和非线性运算后输出,这样,在反向传播输出与参考结果的误差时,该误差中包括线性运算部分和非线性运算部分的误差,由于线性运算部分的误差的梯度是常量,可以减缓整个误差的梯度的下降速度,也就改善了因为整个误差的梯度呈指数级下降直至消失时,导致编码模型的权值不准确的问题,从而提高了语句处理的准确性。
请参考图14,其示出了本申请再一实施例提供的语句解码装置的结构框图,用于解码模型中,该解码模型包括一个处理节点,该处理节点包括级联的一个第一单元和至少一个第二单元。该语句解码装置,包括:
获取模块1410,用于在第j个时刻,获取语句向量和第j个查询状态,语句向量是编码模型对待编码的源语句进行编码后得到的,第j个查询状态用于查询第j个时刻时源语句中编码的部分;
生成模块1420,用于根据语句向量和第j个查询状态生成第j个源语言关注上下文,第j个源语言关注上下文用于指示第j个时刻时源语句中编码的部分;
运算模块1430,用于利用处理节点中的第一单元对第j个查询状态和第j个语言关注上下文进行线性运算和非线性运算,将得到的第j个运算结果输出给处理节点中的至少一个第二单元进行处理,得到第j个词汇;
生成模块1420,还用于在得到k个词汇后,根据k个词汇生成目标语句,j≤k。
在一种可能的实现方式中,解码模型还包括与处理节点相连的查询节点,查询节点包括一个第一单元;获取模块1410,还用于:
利用查询节点中的第一单元获取第j-1个解码状态和第j-1个词汇,第j-1个解码状态是处理节点根据第j-1个运算结果得到的,且第j-1个解码状态用于确定第j-1个词汇;
利用查询节点中的第一单元对第j-1个解码状态和第j-1个词汇进行线性运算和非线性运算,得到第j个查询状态。
在一种可能的实现方式中,解码模型还包括与处理节点相连的查询节点,查询节点包括一个第一单元和至少一个第二单元;获取模块1410,还用于:
利用查询节点中的第一单元获取第j-1个解码状态和第j-1个词汇,第j-1个解码状态是处理节点根据第j-1个运算结果得到的,且第j-1个解码状态用于确定第j-1个词汇;
利用查询节点中的第一单元对第j-1个解码状态和第j-1个词汇进行线性运算和非线性运算,将得到的中间运算结果输出给查询节点中的至少一个第二单元进行处理,得到第j个查询状态。
在一种可能的实现方式中,解码模型还包括与处理节点相连的查询节点,查询节点包括一个第三单元和至少一个第二单元;获取模块1410,还用于:
利用查询节点中的第三单元获取第j-1个解码状态和第j-1个词汇,第j-1个解码状态是处理节点根据第j-1个运算结果得到的,且第j-1个解码状态用于确定第j-1个词汇;
利用查询节点中的第三单元对第j-1个解码状态和第j-1个词汇进行非线性运算,将得到的中间运算结果输出给查询节点中的至少一个第二单元进行处理,得到第j个查询状态。
在一种可能的实现方式中,解码模型还包括注意力运算节点,注意力运算节点分别与编码模型、查询节点和处理节点相连;生成模块1420,还用于:
利用注意力运算节点对语句向量和第j个查询状态进行注意力运算,得到第j个源语言关注上下文。
在一种可能的实现方式中,运算模块1430,还用于:
利用第一单元将第j个查询状态与第一差值进行元素积运算,得到第一乘积,第一差值等于预定数值减去第一单元的更新门控,更新门控用于衡量第j个语言关注上下文向量来自于第j个语言关注上下文和第j个查询状态的比例;
利用第一单元通过线性变换函数对第j个语言关注上下文进行线性变换,将得到的线性变换函数值与线性变换门控进行元素积运算,得到第二乘积;通过双曲正切函数对第j个语言关注上下文和第j个查询状态进行非线性变换,将得到的双曲正切函数值与第二乘积相加,得到候选激活函数值,线性变换门控用于控制候选激活函数值包含线性变换函数值;
利用第一单元将更新门控与候选激活函数值进行元素积运算,得到第三乘积;
利用第一单元将第一乘积与第三乘积相加,得到第j个运算结果。
综上所述,本申请实施例提供的语句解码装置,由于处理节点中的第一单元可以对第j个查询状态和第j个源语言关注上下文进行线性运算和非线性运算,所以,在对解码模型进行训练以得到该解码模型的权值时,该第一单元也会对训练数据进行线性运算和非线性运算后输出,这样,在反向传播输出与参考结果的误差时,该误差中包括线性运算部分和非线性运算部分的误差,由于线性运算部分的误差的梯度是常量,可以减缓整个误差的梯度的下降速度,也就改善了因为整个误差的梯度呈指数级下降直至消失时,导致解码模型的权值不准确的问题,从而提高了语句处理的准确性。
与查询节点包括一个GRU相比,本申请中加深了查询节点的深度,即在查询节点中增加了T-GRU,从而提高了解码模型的学习能力;和/或,将GRU修改为L-GRU,从而提高了解码模型的权值的准确性,以提高语句处理的准确性。
本申请还提供了一种服务器,该服务器包括处理器和存储器,存储器中存储有至少一条指令,至少一条指令由处理器加载并执行以实现上述各个方法实施例提供的语句编码方法或语句解码方法。需要说明的是,该服务器可以是如下图15所提供的服务器。
请参考图15,其示出了本申请一个示例性实施例提供的服务器的结构示意图。具体来讲:所述服务器1500包括中央处理单元(CPU)1501、包括随机存取存储器(RAM)1502和只读存储器(ROM)1503的系统存储器1504,以及连接系统存储器1504和中央处理单元1501的系统总线1505。所述服务器1500还包括帮助计算机内的各个器件之间传输信息的基本输入/输出系统(I/O系统)1506,和用于存储操作系统1513、应用程序1514和其他程序模块1515的大容量存储设备1507。
所述基本输入/输出系统1506包括有用于显示信息的显示器1508和用于用户输入信息的诸如鼠标、键盘之类的输入设备1509。其中所述显示器1508和输入设备1509都通过连接到系统总线1505的输入输出控制器1510连接到中央处理单元1501。所述基本输入/输出系统1506还可以包括输入输出控制器1510以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器1510还提供输出到显示屏、打印机或其他类型的输出设备。
所述大容量存储设备1507通过连接到系统总线1505的大容量存储控制器(未示出)连接到中央处理单元1501。所述大容量存储设备1507及其相关联的计算机可读存储介质为服务器1500提供非易失性存储。也就是说,所述大容量存储设备1507可以包括诸如硬盘或者CD-ROI驱动器之类的计算机可读存储介质(未示出)。
不失一般性,所述计算机可读存储介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、EPROM、EEPROM、闪存或其他固态存储其技术,CD-ROM、DVD或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知所述计算机存储介质不局限于上述几种。上述的系统存储器1504和大容量存储设备1507可以统称为存储器。
存储器存储有一个或多个程序,一个或多个程序被配置成由一个或多个中央处理单元1501执行,一个或多个程序包含用于实现上述语句编码或语句解码方法的指令,中央处理单元1501执行该一个或多个程序实现上述各个方法实施例提供的语句编码方法或语句解码方法。
根据本发明的各种实施例,所述服务器1500还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即服务器1500可以通过连接在所述系统总线1505上的网络接口单元1511连接到网络1512,或者说,也可以使用网络接口单元1511来连接到其他类型的网络或远程计算机系统(未示出)。
所述存储器还包括一个或者一个以上的程序,所述一个或者一个以上程序存储于存储器中,所述一个或者一个以上程序包含用于进行本发明实施例提供的语句编码方法或语句解码方法中由服务器所执行的步骤。
本申请实施例还提供一种计算机可读存储介质,该存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器1510加载并执行以实现如上所述的语句编码方法或语句解码方法。
本申请还提供了一种计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行上述各个方法实施例提供的语句编码方法或语句解码方法。
本申请一个实施例提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如上所述的语句编码方法或语句解码方法。
需要说明的是:上述实施例提供的语句编解码装置在进行语句编码或语句解码时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将语句编解码装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的语句编解码装置与语句编解码方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述并不用以限制本申请实施例,凡在本申请实施例的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请实施例的保护范围之内。

Claims (15)

1.一种语句编码方法,其特征在于,用于编码模型中,所述编码模型包括级联的n个处理节点,所述处理节点包括级联的一个第一单元和至少一个第二单元,n≥2;所述方法包括:
对待编码的源语句进行分词运算,得到m个词汇,m≤n;
利用所述n个处理节点中的第i个处理节点获取所述m个词汇中的第i个词汇,并获取第i-1个处理节点得到的第i-1个词汇向量,所述第i-1个词汇向量是所述m个词汇中的第i-1个词汇的编码向量,i≤m;
利用所述第i个处理节点中的第一单元对所述第i个词汇和所述第i-1个词汇向量进行线性运算和非线性运算,将得到的第i个运算结果输出给所述至少一个第二单元进行处理,得到第i个词汇向量;
在得到m个词汇向量后,根据所述m个词汇向量生成语句向量,所述语句向量用于确定目标语句或目标分类。
2.根据权利要求1所述的方法,其特征在于,当所述编码模型是单向编码模型,且编码方向为从前往后时,
所述第i个处理节点是按照从前往后的顺序排列在所述n个处理节点中的第i个位置的处理节点;
所述第i个词汇是按照从前往后的顺序排列在所述m个词汇中的第i个位置的词汇。
3.根据权利要求1所述的方法,其特征在于,当所述编码模型是单向编码模型,且编码方向为从后往前时,
所述第i个处理节点是按照从后往前的顺序排列在所述n个处理节点中的第i个位置的处理节点;
所述第i个词汇是按照从后往前的顺序排列在所述m个词汇中的第i个位置的词汇。
4.根据权利要求1所述的方法,其特征在于,当所述编码模型是双向编码模型,且编码方向包括从前往后和从后往前时,m≤n/2;
所述第i个处理节点包括按照从前往后的顺序排列在所述n个处理节点中的第i个位置的处理节点,以及按照从后往前的顺序排列在所述n个处理节点中的第i个位置的处理节点;
所述第i个词汇包括按照从前往后的顺序排列在所述m个词汇中的第i个位置的词汇,以及按照从后往前的顺序排列在所述m个词汇中的第i个位置的词汇。
5.根据权利要求1至4任一所述的方法,其特征在于,所述利用所述第i个处理节点中的第一单元对所述第i个词汇和所述第i-1个词汇向量进行线性运算和非线性运算,包括:
利用所述第一单元将所述第i-1个词汇向量与第一差值进行元素积运算,得到第一乘积,所述第一差值等于预定数值减去所述第一单元的更新门控,所述更新门控用于衡量所述第i个词汇向量来自于所述第i个词汇和所述第i-1个词汇向量的比例;
利用所述第一单元通过线性变换函数对所述第i个词汇进行线性变换,将得到的线性变换函数值与线性变换门控进行元素积运算,得到第二乘积;通过双曲正切函数对所述第i个词汇和所述第i-1个词汇向量进行非线性变换,将得到的双曲正切函数值与第二乘积相加,得到候选激活函数值,所述线性变换门控用于控制所述候选激活函数值包含所述线性变换函数值;
利用所述第一单元将所述更新门控与所述候选激活函数值进行元素积运算,得到第三乘积;
利用所述第一单元将所述第一乘积与所述第三乘积相加,得到所述第i个运算结果。
6.一种语句解码方法,其特征在于,用于解码模型中,所述解码模型包括一个处理节点,所述处理节点包括级联的一个第一单元和至少一个第二单元;所述方法包括:
在第j个时刻,获取语句向量和第j个查询状态,所述语句向量是编码模型对待编码的源语句进行编码后得到的,所述第j个查询状态用于查询第j个时刻时所述源语句中编码的部分;
根据所述语句向量和所述第j个查询状态生成第j个源语言关注上下文,所述第j个源语言关注上下文是第j个时刻时所述源语句中编码的部分;
利用所述处理节点中的第一单元对所述第j个查询状态和所述第j个源语言关注上下文进行线性运算和非线性运算,将得到的第j个运算结果输出给所述处理节点中的至少一个第二单元进行处理,得到第j个词汇;
在得到k个词汇后,根据所述k个词汇生成目标语句,j≤k。
7.根据权利要求6所述的方法,其特征在于,所述解码模型还包括与所述处理节点相连的查询节点,所述查询节点包括一个第一单元;所述获取第j个查询状态,包括:
利用所述查询节点中的第一单元获取第j-1个解码状态和第j-1个词汇,所述第j-1个解码状态是所述处理节点根据第j-1个运算结果得到的,且所述第j-1个解码状态用于确定所述第j-1个词汇;
利用所述查询节点中的第一单元对所述第j-1个解码状态和所述第j-1个词汇进行线性运算和非线性运算,得到所述第j个查询状态。
8.根据权利要求6所述的方法,其特征在于,所述解码模型还包括与所述处理节点相连的查询节点,所述查询节点包括一个第一单元和至少一个第二单元;所述获取第j个查询状态,包括:
利用所述查询节点中的第一单元获取第j-1个解码状态和第j-1个词汇,所述第j-1个解码状态是所述处理节点根据第j-1个运算结果得到的,且所述第j-1个解码状态用于确定所述第j-1个词汇;
利用所述查询节点中的第一单元对所述第j-1个解码状态和所述第j-1个词汇进行线性运算和非线性运算,将得到的中间运算结果输出给所述查询节点中的至少一个第二单元进行处理,得到所述第j个查询状态。
9.根据权利要求6所述的方法,其特征在于,所述解码模型还包括与所述处理节点相连的查询节点,所述查询节点包括一个第三单元和至少一个第二单元;所述获取第j个查询状态,包括:
利用所述查询节点中的第三单元获取第j-1个解码状态和第j-1个词汇,所述第j-1个解码状态是所述处理节点根据第j-1个运算结果得到的,且所述第j-1个解码状态用于确定所述第j-1个词汇;
利用所述查询节点中的第三单元对所述第j-1个解码状态和所述第j-1个词汇进行非线性运算,将得到的中间运算结果输出给所述查询节点中的至少一个第二单元进行处理,得到所述第j个查询状态。
10.根据权利要求7至9任一所述的方法,其特征在于,所述解码模型还包括注意力运算节点,所述注意力运算节点分别与所述编码模型、所述查询节点和所述处理节点相连;所述根据所述语句向量和所述第j个查询状态生成第j个源语言关注上下文,包括:
利用所述注意力运算节点对所述语句向量和所述第j个查询状态进行注意力运算,得到所述第j个源语言关注上下文。
11.根据权利要求6所述的方法,其特征在于,所述利用所述处理节点中的第一单元对所述第j个查询状态和所述第j个源语言关注上下文进行线性运算和非线性运算,包括:
利用所述第一单元将所述第j个查询状态与第一差值进行元素积运算,得到第一乘积,所述第一差值等于预定数值减去所述第一单元的更新门控,所述更新门控用于衡量所述第j个源语言关注上下文向量来自于所述第j个源语言关注上下文和所述第j个查询状态的比例;
利用所述第一单元通过线性变换函数对所述第j个源语言关注上下文进行线性变换,将得到的线性变换函数值与线性变换门控进行元素积运算,得到第二乘积;通过双曲正切函数对所述第j个源语言关注上下文和所述第j个查询状态进行非线性变换,将得到的双曲正切函数值与第二乘积相加,得到候选激活函数值,所述线性变换门控用于控制所述候选激活函数值包含所述线性变换函数值;
利用所述第一单元将所述更新门控与所述候选激活函数值进行元素积运算,得到第三乘积;
利用所述第一单元将所述第一乘积与所述第三乘积相加,得到所述第j个运算结果。
12.一种语句编码装置,其特征在于,用于编码模型中,所述编码模型包括级联的n个处理节点,所述处理节点包括级联的一个第一单元和至少一个第二单元,n≥2;所述装置包括:
分词模块,用于对待编码的源语句进行分词运算,得到m个词汇,m≤n;
获取模块,用于利用所述n个处理节点中的第i个处理节点获取所述m个词汇中的第i个词汇,并获取第i-1个处理节点得到的第i-1个词汇向量,所述第i-1个词汇向量是所述m个词汇中的第i-1个词汇的编码向量,i≤m;
运算模块,用于利用所述第i个处理节点中的第一单元对所述第i个词汇和所述第i-1个词汇向量进行线性运算和非线性运算,将得到的第i个运算结果输出给所述至少一个第二单元进行处理,得到第i个词汇向量;
生成模块,用于在得到m个词汇向量后,根据所述m个词汇向量生成语句向量,所述语句向量用于确定目标语句或目标分类。
13.一种语句解码装置,其特征在于,用于解码模型中,所述解码模型包括一个处理节点,所述处理节点包括级联的一个第一单元和至少一个第二单元;所述装置包括:
获取模块,用于在第j个时刻,获取语句向量和第j个查询状态,所述语句向量是编码模型对待编码的源语句进行编码后得到的,所述第j个查询状态用于查询第j个时刻时所述源语句中编码的部分;
生成模块,用于根据所述语句向量和所述第j个查询状态生成第j个源语言关注上下文,所述第j个源语言关注上下文是第j个时刻时所述源语句中编码的部分;
运算模块,用于利用所述处理节点中的第一单元对所述第j个查询状态和所述第j个源语言关注上下文进行线性运算和非线性运算,将得到的第j个运算结果输出给所述处理节点中的至少一个第二单元进行处理,得到第j个词汇;
所述生成模块,还用于在得到k个词汇后,根据所述k个词汇生成目标语句,j≤k。
14.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令,所述至少一条指令由处理器加载并执行以实现如权利要求1至5任一所述的语句编码方法,或者,所述至少一条指令由处理器加载并执行以实现如权利要求6至11任一所述的语句解码方法。
15.一种语句处理设备,其特征在于,所述语句处理设备包括处理器和存储器,所述存储器中存储有至少一条指令,所述指令由所述处理器加载并执行以实现如权利要求1至5任一所述的语句编码方法;或者,所述指令由所述处理器加载并执行以实现如权利要求6至11任一所述的语句解码方法。
CN201811444710.8A 2018-11-29 2018-11-29 语句编码方法、语句解码方法、装置、存储介质及设备 Active CN110263304B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201811444710.8A CN110263304B (zh) 2018-11-29 2018-11-29 语句编码方法、语句解码方法、装置、存储介质及设备
JP2021516821A JP7229345B2 (ja) 2018-11-29 2019-11-28 文処理方法、文復号方法、装置、プログラム及び機器
PCT/CN2019/121420 WO2020108545A1 (zh) 2018-11-29 2019-11-28 语句处理方法、语句解码方法、装置、存储介质及设备
US17/181,490 US20210174003A1 (en) 2018-11-29 2021-02-22 Sentence encoding and decoding method, storage medium, and device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811444710.8A CN110263304B (zh) 2018-11-29 2018-11-29 语句编码方法、语句解码方法、装置、存储介质及设备

Publications (2)

Publication Number Publication Date
CN110263304A CN110263304A (zh) 2019-09-20
CN110263304B true CN110263304B (zh) 2023-01-10

Family

ID=67911885

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811444710.8A Active CN110263304B (zh) 2018-11-29 2018-11-29 语句编码方法、语句解码方法、装置、存储介质及设备

Country Status (4)

Country Link
US (1) US20210174003A1 (zh)
JP (1) JP7229345B2 (zh)
CN (1) CN110263304B (zh)
WO (1) WO2020108545A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110263304B (zh) * 2018-11-29 2023-01-10 腾讯科技(深圳)有限公司 语句编码方法、语句解码方法、装置、存储介质及设备
CN112309405A (zh) * 2020-10-29 2021-02-02 平安科技(深圳)有限公司 多种声音事件的检测方法、装置、计算机设备及存储介质
CN112560413B (zh) * 2020-12-15 2023-08-04 中国人寿保险股份有限公司 基于配置模式的报表扩展方法、装置和设备
CN113705652B (zh) * 2021-08-23 2024-05-28 西安交通大学 一种基于指针生成网络的任务型对话状态追踪系统及方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012026667A2 (ko) * 2010-08-23 2012-03-01 에스케이텔레콤 주식회사 토큰 분리 및 번역 과정을 통합한 통합 디코딩 장치 및 그 방법
CN107632981A (zh) * 2017-09-06 2018-01-26 沈阳雅译网络技术有限公司 一种引入源语组块信息编码的神经机器翻译方法
CN108304788A (zh) * 2018-01-18 2018-07-20 陕西炬云信息科技有限公司 基于深度神经网络的人脸识别方法
CN108399230A (zh) * 2018-02-13 2018-08-14 上海大学 一种基于卷积神经网络的中文财经新闻文本分类方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8504361B2 (en) * 2008-02-07 2013-08-06 Nec Laboratories America, Inc. Deep neural networks and methods for using same
US10867597B2 (en) * 2013-09-02 2020-12-15 Microsoft Technology Licensing, Llc Assignment of semantic labels to a sequence of words using neural network architectures
US10606846B2 (en) 2015-10-16 2020-03-31 Baidu Usa Llc Systems and methods for human inspired simple question answering (HISQA)
CN107220231A (zh) * 2016-03-22 2017-09-29 索尼公司 用于自然语言处理的电子设备和方法以及训练方法
JP6633999B2 (ja) 2016-10-31 2020-01-22 日本電信電話株式会社 符号器学習装置、変換装置、方法、及びプログラム
KR20180077847A (ko) * 2016-12-29 2018-07-09 주식회사 엔씨소프트 문장 검증 장치 및 방법
WO2018145098A1 (en) * 2017-02-06 2018-08-09 Thomson Reuters Global Resources Unlimited Company Systems and methods for automatic semantic token tagging
CN107391501A (zh) 2017-09-11 2017-11-24 南京大学 一种基于词预测的神经机器翻译方法
CN107729329B (zh) * 2017-11-08 2021-03-26 苏州大学 一种基于词向量连接技术的神经机器翻译方法及装置
CN110263304B (zh) * 2018-11-29 2023-01-10 腾讯科技(深圳)有限公司 语句编码方法、语句解码方法、装置、存储介质及设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012026667A2 (ko) * 2010-08-23 2012-03-01 에스케이텔레콤 주식회사 토큰 분리 및 번역 과정을 통합한 통합 디코딩 장치 및 그 방법
CN107632981A (zh) * 2017-09-06 2018-01-26 沈阳雅译网络技术有限公司 一种引入源语组块信息编码的神经机器翻译方法
CN108304788A (zh) * 2018-01-18 2018-07-20 陕西炬云信息科技有限公司 基于深度神经网络的人脸识别方法
CN108399230A (zh) * 2018-02-13 2018-08-14 上海大学 一种基于卷积神经网络的中文财经新闻文本分类方法

Also Published As

Publication number Publication date
US20210174003A1 (en) 2021-06-10
WO2020108545A1 (zh) 2020-06-04
CN110263304A (zh) 2019-09-20
JP7229345B2 (ja) 2023-02-27
JP2022503812A (ja) 2022-01-12

Similar Documents

Publication Publication Date Title
EP4060565A1 (en) Method and apparatus for acquiring pre-trained model
CN112712804B (zh) 语音识别方法、系统、介质、计算机设备、终端及应用
CN110263304B (zh) 语句编码方法、语句解码方法、装置、存储介质及设备
CN109214003B (zh) 基于多层注意力机制的循环神经网络生成标题的方法
CN110163181B (zh) 手语识别方法及装置
CN110704621A (zh) 文本处理方法、装置及存储介质和电子设备
CN112395385B (zh) 基于人工智能的文本生成方法、装置、计算机设备及介质
CN111401079A (zh) 神经网络机器翻译模型的训练方法、装置及存储介质
CN111599340A (zh) 一种多音字读音预测方法、装置及计算机可读存储介质
CN111414561B (zh) 用于呈现信息的方法和装置
CN110569505A (zh) 一种文本输入方法及装置
CN113158687B (zh) 语义的消歧方法及装置、存储介质、电子装置
CN112818091A (zh) 基于关键词提取的对象查询方法、装置、介质与设备
CN111126084B (zh) 数据处理方法、装置、电子设备和存储介质
WO2022228127A1 (zh) 要素文本处理方法、装置、电子设备和存储介质
CN116050425A (zh) 建立预训练语言模型的方法、文本预测方法及装置
CN117236410A (zh) 一种可信的电子文件大语言模型训练、推理方法和装置
CN114706973A (zh) 抽取式文本摘要生成方法、装置、计算机设备及存储介质
CN114722832A (zh) 一种摘要提取方法、装置、设备以及存储介质
CN114445832A (zh) 基于全局语义的文字图像识别方法、装置及计算机设备
CN109902273A (zh) 关键词生成模型的建模方法和装置
CN109918484B (zh) 对话生成方法和装置
CN115545030A (zh) 实体抽取模型的训练方法、实体关系抽取方法及装置
CN114417891A (zh) 基于粗糙语义的回复语句确定方法、装置及电子设备
CN112732913B (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