CN111095259A - 使用n-gram机器的自然语言处理 - Google Patents
使用n-gram机器的自然语言处理 Download PDFInfo
- Publication number
- CN111095259A CN111095259A CN201780092818.2A CN201780092818A CN111095259A CN 111095259 A CN111095259 A CN 111095259A CN 201780092818 A CN201780092818 A CN 201780092818A CN 111095259 A CN111095259 A CN 111095259A
- Authority
- CN
- China
- Prior art keywords
- natural language
- model
- encoder
- objective function
- function
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/02—Knowledge representation; Symbolic representation
- G06N5/022—Knowledge engineering; Knowledge acquisition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
-
- 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/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/9032—Query formulation
- G06F16/90332—Natural language query formulation or dialogue systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Evolutionary Computation (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Molecular Biology (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Databases & Information Systems (AREA)
- Machine Translation (AREA)
Abstract
本公开提供了执行机器学习的自然语言处理的系统和方法。计算系统可以包括机器学习的自然语言处理模型,该机器学习的自然语言处理模型包括编码器模型和编程器模型,该编码器模型被训练以接收自然语言文本主体并输出知识图,该编程器模型被训练以接收自然语言问题并输出程序。计算系统可以包括存储指令的计算机可读介质,当被执行时,所述指令使得处理器执行操作。所述操作可以包括获得自然语言文本主体,将自然语言文本主体输入到编码器模型中,接收作为编码器模型的输出的知识图,获得自然语言问题,将自然语言问题输入到编程器模型中,接收作为编程器模型的输出的程序,并且在知识图上执行程序以产生对自然语言问题的回答。
Description
技术领域
本公开一般涉及机器学习。更具体地,本公开涉及经由机器学习执行自然语言处理。
背景技术
自然语言处理(NLP)可能涉及基于包含在自然语言文档中的信息来回答自然语言问题。对这样的问题的准确回答通常可能涉及对自然语言问题和对文档两者的语义解析。有效的语义解析通常取决于具有人工定义的架构(schema)的人工知识库(human-curatedbase)。但是,这种方法可能需要大量劳力,这会使开发和维护的成本高昂。
发明内容
本公开的实施例的方面和优点将在以下描述中部分地阐述,或者可以从描述中获悉,或者可以通过实施例的实施而习知。
本公开的一个示例方面针对计算系统。计算系统可以包括至少一个处理器和机器学习的自然语言处理模型。机器学习的自然语言处理模型可以包括编码器模型,该编码器模型被训练以接收自然语言文本主体,并且响应于接收到自然语言文本主体,输出知识图(knowledge graph)。机器学习的自然语言处理模型可以包括编程器模型(programmermodel),该模型被训练以接收自然语言问题,并且响应于接收到自然语言问题,输出程序。计算系统可以包括至少一种有形的非暂时性计算机可读介质,该介质存储指令,当由至少一个处理器执行时,所述指令使得至少一个处理器执行操作。所述操作可以包括获得自然语言文本主体并将自然语言文本主体输入到编码器模型中。所述操作可以包括接收作为编码器模型的输出的知识图。所述操作可以包括获得自然语言问题并将自然语言问题输入到编程器模型中。所述操作可以包括接收作为编程器模型的输出的程序,以及在知识图上执行程序以产生对自然语言问题的回答。
本公开的另一示例方面针对计算机实现的方法,该方法包括由一个或多个计算设备获得自然语言处理模型,该自然语言处理模型包括编码器模型、解码器模型和编程器模型。编码器模型可以被配置为接收自然语言文本主体,并且响应于接收到自然语言文本主体,输出知识图。解码器模型可以被配置为接收知识图,并且响应于接收到知识图,输出自然语言文本主体的重建(reconstruction)。编程器模型可以被训练以接收自然语言问题,并且响应于接收到自然语言问题,输出程序。计算机实现的方法可以包括由一个或多个计算设备将包括自然语言文本主体和自然语言问题的训练数据集输入自然语言处理模型,以接收对自然语言问题的回答。计算机实现的方法可以包括由一个或多个计算设备评估总目标函数(total objective function),该总目标函数包括自动编码器目标函数和问答(question answer)目标函数。自动编码器目标函数能够描述自然语言文本主体与自然语言文本主体的重建之间的重建损失。问答目标函数能够描述基于回答和包括在训练数据集中的预期回答(expected answer)的比较的奖励(reward)。计算机实现的方法可以包括由一个或多个计算设备基于总目标函数训练自然语言处理模型。
本公开的另一示例方面针对用于响应自然语言查询的计算系统。所述计算系统可以包括编码系统,该编码系统被配置为接收自然语言文本主体,并且使用机器学习的自然语言编码器模型基于自然语言文本主体来生成知识图。该计算系统可以包括查询编程系统,该查询编程系统被配置为接收自然语言输入查询,并且使用机器学习的自然语言查询编程器模型基于自然语言输入查询来生成用于查询知识图的程序。查询执行系统可以被配置为在所生成的知识图上执行所生成的程序并输出查询响应。
本公开的其他方面针对各种系统、装置、非暂时性计算机可读介质、用户界面和电子设备。
参考以下描述和所附权利要求,将更好地理解本公开的各种实施例的这些和其他特征、方面和优点。并入本说明书中并构成本说明书的一部分的附图示出了本公开的示例实施例,并且与描述一起用于解释相关原理。
附图说明
在参考了附图的说明书中阐述了针对本领域普通技术人员的实施例的详细讨论,其中:
图1A描绘了根据本公开的示例方面的执行自然语言处理的示例计算系统的框图;
图1B描绘了根据本公开的示例方面的执行自然语言处理的示例计算系统的框图;
图1C描绘了根据本公开的示例方面的执行自然语言处理的示例计算系统的框图;
图2描绘了根据本公开的示例方面的示例自然语言处理模型的框图;
图3描绘了根据本公开的示例方面的被配置用于训练的示例自然语言处理模型的框图;
图4描绘了根据本公开的示例方面的基于自然语言文本主体来确定对自然语言问题的回答的示例方法的流程图;
图5描绘了根据本公开的示例方面的训练自然语言处理模型的示例方法的流程图;
图6描绘了根据本公开的示例方面的图5中描绘的方法的特定实施方式的流程图;以及
图7描绘了根据本公开的示例方面的图5中描绘的方法的另一特定实施方式的流程图。
在多个附图中重复的附图标记旨在标识各个实施方式中的相同特征。
具体实施方式
概述
一般,本公开针对包括或以其他方式利用(leverage use)自然语言处理模型的系统和方法,该自然语言处理模型被配置为基于自然语言文本主体,诸如形成叙述或故事的一系列句子,来回答自然语言问题。具体地,自然语言处理模型可以接收与包含在自然语言文本主体中的信息有关的自然语言问题,并作为响应,提供对问题的回答。在一个示例中,自然语言处理模型可以包括一个或多个机器学习的模型,诸如编码器模型和编程器模型。在一些实施方式中,编码器模型和编程器模型中的一个或多个可以包括神经网络,例如循环(recurrent)神经网络和/或序列到序列(sequence-to-sequence)神经网络。具体地,根据本公开的一个方面,编码器模型可以被训练以接收自然语言文本主体,并输出表示以自然语言文本包含的信息的知识图。编程器模型可以被训练以响应于自然语言问题而输出程序。然后,可以在知识图上执行这个程序以产生对自然语言问题的回答。例如,在一些实施方式中,该程序可以包括被配置为搜索知识图并定位一个或多个单词以回答自然语言问题的一个或多个函数。以这样的方式,本公开的系统和方法可以基于自然语言文本,提供对自然语言问题的改进的回答。另外,在一些实施方式中,本文公开的系统和方法可以以为大量文本提供可扩展性(scalability)的方式来符号化地(symbolically)存储包含在自然语言文本主体中的信息。
更具体地,本公开的各方面针对自然语言处理模型,其使得能够基于自然语言文本主体来回答自然语言文本问题。自然语言处理模型可以通过计算系统来实现或者由计算系统来执行。在一个示例中,服务器计算设备(例如,搜索服务器)可以实现自然语言处理模型,以回答用户在用户计算设备上输入的自然语言问题。例如,自然语言问题可以是搜索查询,并且自然语言文本主体可以包括在网络搜索期间识别的一个或多个网页(web page)或其他网络文档。作为另一个示例,诸如用户计算设备(例如,智能电话、平板计算机、个人助理设备等)的单一计算设备可以实现自然语言处理模型,以回答由用户提供给设备的自然语言问题(例如,以向个人助理提出问题的方式)。
因此,在一些实施方式中,用户可以向用户计算设备输入自然语言文本主体,以将自然语言文本主体提供给自然语言处理模型。在其他的实施方式中,自然语言处理模型可以从诸如与自然语言问题有关的一个或多个网站的外部源独立地获得自然语言文本主体。计算系统(例如,服务器计算设备和/或用户计算设备)可以将自然语言文本主体输入到编码器模型中,并接收知识图。用户可以将自然语言问题输入到用户计算设备中,从而将自然语言问题提供给自然语言处理模型。计算系统可以将自然语言问题输入到编程器模型中,并接收程序。然后,计算系统可以在知识图上执行程序以产生对自然语言问题的回答。
在本公开的系统和方法中自然语言处理模型的使用为系统本身以及为用户提供了许多技术优势。例如,通过使用编码器模型提供知识图,可以减少用户编程和维护知识图所需的操作时间和处理时间。用户的操作输入的减少可以至少相应地减少用户接口设备和相关处理单元的功耗。此外,自然语言文本主体可以由编码器经由诸如互联网从自然语言文本的更大领域,诸如科学研究、医学研究、新闻报道等中,收集。
以这种方式,自然语言处理模型可以提供知识图的改进的可扩展性,这至少对自然语言问题响应的准确性有相应的贡献。在一些实施方式中,如下面将进一步详细描述的,编码器模型和编程器模型可以在协调的过程中被训练,这至少对自然语言问题响应的准确性有进一步的改进。基于自然语言文本的自然语言问题的准确回答可以有很多用途,例如,可以被实现为提供或改进数字个人助理程序。这样,这种程序的准确性的改进可以导致用户更少的输入,例如,重复问题或请求清楚响应,以及因此响应于用户程序进行更少的输出。可以实现相应地减少至少用户设备的处理器操作时间和屏幕开启时间,这通常能够是减少个人用户设备功耗的特别重要的因素。
在一些实施方式中,如下面将进一步详细描述的,这里公开的系统和方法可以通过信息的符号存储来为大量文本提供可扩展性。例如,在一些实施方式中,知识图的复杂度与知识图的大小无关。这可以提供知识图的减少的存储需求,以及更快的处理时间和/或减少在操作期间的计算需求。
在一些实施方式中,知识图可以包括一系列单词(word)序列,称为“n-gram(n元)”或“元组(tuple)”,其表示包含在句子中的信息。例如,在一些实施方式中,每个n-gram序列可以包括两个单词,称为“bi-gram(两元)”。在其他实施方式中,每个n-gram序列可以包括三个单词,称为“tri-gram(三元)”。在一些实施方式中,每个n-gram序列可以包括多于三个的单词。在又一些实施方式中,每个n-gram可以包括不同数量的单词(例如,知识图可以包括bi-gram、tri-gram或其他n-gram,或者它们的组合)。
如上所述,编码器模型可以被训练以接收自然语言文本主体,并输出表示以自然语言文本包含的信息的知识图。例如,响应于接收到包含“Mary went back to thekitchen”的自然语言文本主体,编码器模型可以生成包含“Mary;Kitchen”的bi-gram。在另一个示例中,响应于接收到包含“John grabbed the apple”的自然语言文本主体,编码器模型可以生成包含“John;got;apple”的tri-gram;根据本公开的一方面,机器学习的编码器可以学习以生成最有助于产生对于问题的正确回答的n-gram表示。另外,在一些实施方式中,知识图的每个n-gram可以包括相应的时间戳,时间戳表示句子在自然语言文本主体中出现的顺序。例如,这样的时间戳可以帮助进行涉及自然语言文本主体中描述的事件顺序的推理。
在一些实施方式中,如上所述,编程器模型输出的程序可以包括引起知识图搜索的函数。例如,该程序可以包括被配置为对知识图中的n-gram执行基于文本的搜索的一个或多个函数。一个示例函数是“hop(跳过)”,其可以被配置为在知识图中定位紧接着其输入的每个单词。例如,在包含“Mary;Kitchen”的知识图上执行“hop Mary”可以产生“Kitchen”。在一些实施方式中,由编程器模型输出的程序可以包含多个函数,它们被配置为一起操作以提供对自然语言问题的回答。例如,示例程序可以包含配置为定位第一变量的第一函数,以及配置为使用第一变量作为输入来定位对自然语言问题的回答的第二函数。根据本公开的一方面,机器学习的编程器模型可以学习以生成最佳地产生对问题的正确回答的程序。
在一些实施方式中,编程器模型可以被训练以输出包括多个程序和多个权重的程序集。每个权重可以与程序集中的相应程序相关联,并且可以表示当在自然语言文本主体上执行时相应程序将生成预期回答的可能性。在一些实施方式中,多个权重可以用于从多个程序中选择程序,以便在知识图上执行以产生回答,该回答由自然语言处理模型输出。
根据本公开的附加方面,至少一些实例中(例如,在自然语言处理模型的训练期间),自然语言处理模型可以包括解码器模型,该解码器模型被配置为在训练期间接收知识图并且输出自然语言文本主体的重建。例如,解码器模型可以尝试生成与原始自然语言文本主体相匹配的自然语言文本主体的重建。因此,当组合时,编码器模型和解码器模型可以操作为自动编码器或者按照自动编码器的方式训练。
根据本公开的另一方面,在一些实施方式中,用于训练自然语言处理模型的方法可以包括评估总目标函数,包括自动编码器目标函数和问答目标函数。自动编码器目标函数可以描述自然语言文本主体与自然语言文本主体的重建之间的重建损失。问答目标函数可以描述基于回答和包括在训练数据集中的预期回答的比较的奖励(reward)。该方法可以包括基于总目标函数训练自然语言处理模型。例如,在一些实施方式中,训练自然语言处理模型可以包括最小化总目标函数。例如,计算系统可以计算每个自动编码器目标函数和问答目标函数的各自梯度(gradient)。然后,计算系统可以根据所计算的梯度调整模型的各种参数(parameter)。
在一些实施方式中,评估总目标函数可以包括将自动编码器目标函数与问答目标函数求和(summing)。在一些实施方式中,训练自然语言处理模型可以包括至少部分基于问答目标函数来训练编程器模型。在一些实施方式中,训练自然语言处理模型可以包括至少部分地基于自动编码器目标函数来联合(jointly)训练编码器模型和解码器模型。另外,在一些实施方式中,训练自然语言处理模型可以包括在(1)使用自动编码器目标函数联合训练编码器模型和解码器模型与(2)使用问答目标函数训练编程器模型之间交替(例如,使用“坐标上升法(coordinate ascent approach)”)。
在一些实施方式中,问答目标函数可以描述编码器概率分布,该编码器概率分布描述了对于编码器模型的输出的编码器模型的输入。另外,在一些实施方式中,问答目标函数可以描述编程器概率分布,该编程器概率分布描述了对于编程器模型的输出的编程器模型的输入。
如上所述,在一些实施方式中,自动编码器目标函数可以描述自然语言文本主体与由解码器模型生成的自然语言文本主体的重建之间的重建损失。例如,在一些实施方式中,重建损失可以指示知识图的每个n-gram包含自然语言文本主体的相应句子中包含的信息的可能性。在一些实施方式中,自动编码器目标函数可以描述上面参考问答目标函数描述的编码器概率分布,和/或描述了对于解码器模型的输出的解码器模型的输入的解码器概率分布。
在一些实施方式中,自动编码器目标函数的定义可以在训练期间从第一训练阶段中的第一自动编码器目标函数转换到第二训练阶段中的第二自动编码器目标函数。在第一训练阶段中,第一自动编码器目标函数可以描述自然语言文本主体与解码器模型基于知识图输出的自然语言文本主体的重建之间的重建损失。相比之下,在第二阶段期间,第二自动编码器目标函数可以描述基于回答和包括在训练数据集中的预期回答的比较的奖励。自动编码器目标函数可以基于编码器模型的性能从第一自动编码器目标函数转换到第二自动编码器目标函数。例如,在一些实施方式中,一旦第一自动编码器目标函数小于预定阈值时,就可以转换自动编码器目标函数。这可以指示知识图包含自然语言文本主体中的信息的足够准确的表示(sufficiently accurate representation)。在这一点上,从第一自动编码器目标函数到第二自动编码器目标函数的转换可以改进编码器模型的训练。例如,以更好地促进正确回答自然语言问题的方式将自然语言文本主体中的信息编码到知识图中,可以更好地训练编码器模型。
在训练期间,在一些实施方式中,“代码辅助(code assist)”函数可用于辅助训练编程器模型。例如,在一些实施方式中,“代码辅助”函数可以防止编程器模型输出导致运行时错误(例如,无法产生回答)的程序。例如,“代码辅助”函数可以为编程器模型提供势函数集(s set of potential functions)。然后,编程器模型可以从势函数集中选择函数以生成程序。例如,在程序生成期间,“代码辅助”函数只能够选择不会引起任何错误的势函数。例如,“代码辅助”函数可以包括内置规则集合,用于管控各种函数的组装顺序。例如,“代码辅助”函数可以基于将所述规则应用于由编程器模型选择的最新近函数来选择提供给编程器模型的函数。
另外,在一些实施方式中,结构调整(structural tweaking)可用于辅助编程器模型。具体地说,如果程序生成的回答是空集,则可以将结构调整函数应用于知识图。例如,可以提出与减少回答为空集的可能性相关的对知识图的修改或调整。例如,该方法可以自动克服可能会阻碍自然语言处理模型产生与预期回答相匹配的回答的训练错误。
在一些实施方式中,如上所述,训练自然语言处理模型可以包括第一训练阶段和第二训练阶段。在第一训练阶段中,“代码辅助”函数可以比“结构调整”函数更频繁地被应用。这可以基于这样的假设:在第一训练阶段期间,编码器模型的性能优于编程器模型。但是,在第二训练阶段中,“结构调整”函数可以比“代码辅助”函数更频繁地被应用。这可以基于这样的假设:在第二训练阶段期间,编程器模型的性能优于编码器模型。
在一些实施方式中,本公开的系统和方法采用不需要单独的语料(corpus)或受限的隐藏序列空间的方法。举例来说,在一些实施方案中,本公开的系统和方法可通过允许复制的令牌和产生的令牌两者(例如,通过CopyNet)而使用较少受限的隐藏空间。在一些实施方式中,可以用随机生成的隐藏序列对解码器进行预训练,所述随机生成的隐藏序列仅包括例如来自源序列的令牌。在一些实施例中,预训练的解码器的困惑(perplexities)可以用于指导编码器的训练。此外,在一些实施方式中,语言模型与编码的序列之间的Kullback-Leibler(“KL”)散度(divergence)没有得到实施或使用,这是因为在一些实施方式中,它们是为了NGM计算而非人类阅读而生成的,因此,不需要采用流利的英语。
本公开的系统和方法可以提供许多技术效果和益处。作为一个例子,基于自然语言文本的自然语言问题的准确回答可以有许多用途。例如,其可以实现以提供或改进数字个人助理程序。在这样的应用中,例如,自然语言文本主体可以从与个人助理的一个或多个先前交互中和/或从互联网中收集。附加应用可以包括从大量自然语言文本(例如,科学研究、医学研究、新闻报道等)中解析和提取信息。此外,如上所述,在一些实施方式中,这里公开的系统和方法可以通过信息的符号存储为大量文本提供可扩展性。例如,在一些实施方式中,知识图的复杂度与知识图的大小无关。这可以提供对计算技术的改进,包括例如,减少的存储需求、操作期间减少的计算需求、更快的处理时间等。
现在参考附图,将进一步详细讨论本公开的示例实施例。
示例设备和系统
图1A描绘了示例计算系统100的框图,该示例计算系统100可以被配置为实现或执行本公开的系统和方法。系统100可以包括通过网络180通信地耦合的用户计算设备102、服务器计算系统130和/或训练计算系统150。
用户计算设备102可以是任何类型的计算设备,例如,个人计算设备(例如,笔记本计算机或台式计算机)、移动计算设备(例如,智能电话或平板计算机)、游戏控制台或控制器、可穿戴计算设备、嵌入式计算设备或任何其他类型的计算设备。
用户计算设备102可以包括一个或多个处理器112和存储器114。一个或多个处理器112可以是任何合适的处理设备(例如,处理器核心、微处理器、ASIC、FPGA、控制器、微控制器),并且可以是一个处理器或可操作地连接的多个处理器。存储器114可以包括一个或多个非暂时性计算机可读存储介质,例如RAM、ROM、EEPROM、EPROM、闪存设备、磁盘等,以及它们的组合。存储器114可以存储数据116和由处理器112执行以使用户计算设备102执行操作的指令118。
用户计算设备102可以存储或包括一个或多个机器学习的自然语言处理模型120。例如,机器学习的自然语言处理模型120可以是或包括各种机器学习的模型,诸如,神经网络或其他多层非线性模型。在一些实施方案中,神经网络可以包括循环神经网络(例如,长短期记忆循环神经网络)、序列到序列神经网络、前馈神经网络或任何其他合适形式的神经网络。参考图2和图3讨论示例机器学习的自然语言处理模型120。
在一些实施方式中,一种或多种机器学习的自然语言处理模型120可以通过网络180从服务器计算系统130接收,存储在用户计算设备存储器114中,并且由一个或多个处理器120使用或实现。在一些实施方式中,用户计算设备102可以实现单一机器学习的自然语言处理模型120的多个并行实例(例如,在机器学习的自然语言处理模型120的多个实例上执行自然语言问题的并行处理)。
更具体地,在一些实施方式中,自然语言处理模型可以被配置为基于自然语言文本主体来回答自然语言问题,诸如形成叙述或故事的一系列句子。例如,自然语言问题可以是搜索查询,而自然语言文本主体可以包括在网络搜索期间识别的一个或多个网页或其他网络文档。作为另一示例,单一计算设备,例如,用户计算设备(例如,智能电话、平板计算机、个人助理设备等)可以实现自然语言处理模型120,以回答由用户提供给设备的自然语言问题(例如,以向个人助理提出问题的样式)。
附加地或替代地,一个或多个机器学习的自然语言处理模型140可以包括在或存储在服务器计算系统130中或由服务器计算系统130实现,服务器计算系统130根据客户端-服务器关系与用户计算设备102进行通信。例如,机器学习的自然语言处理模型140可以由服务器计算系统140实现,作为网络(web)服务的一部分(例如,个人助理服务)。因此,可以在用户计算设备102处存储和实现一个或多个模型120,和/或可以在服务器计算系统130处存储和实现一个或多个模型140。
用户计算设备102还可以包括接收用户输入的一个或多个用户输入组件122。例如,用户输入组件122可以是对用户输入对象(例如,手指或手写笔)的触摸敏感的触敏组件(例如,触敏显示屏或触摸板)。触敏组件可以用来实现虚拟键盘。其他示例用户输入组件包括麦克风、传统键盘或用户可通过其输入通信的其他方式。
服务器计算系统130包括一个或多个处理器132和存储器134。一个或多个处理器132可以是任何合适的处理设备(例如,处理器核心、微处理器、ASIC、FPGA、控制器、微控制器等),并且可以是一个处理器或可操作地连接的多个处理器。存储器134可以包括一个或多个非暂时性计算机可读存储介质,诸如RAM、ROM、EEPROM、EPROM、闪存设备、磁盘等,以及它们的组合。存储器134可以存储由处理器132执行的数据136和指令138,以使服务器计算系统130执行操作。
在一些实施方式中,服务器计算系统130包括一个或多个服务器计算设备或由一个或多个服务器计算设备实现。在服务器计算系统130包括多个服务器计算设备的实例中,这样的服务器计算设备可以根据顺序计算架构、并行计算架构或它们的一些组合来操作。
如上所述,服务器计算系统130可以存储或包括一个或多个机器学习的自然语言处理模型140。例如,模型140可以是各种机器学习的模型或可以包括各种机器学习的模型,诸如神经网络(例如,循环神经网络)或其他多层非线性模型。参考图2和图3讨论示例模型140。
服务器计算系统130可以通过与通过网络180通信地耦合的训练计算系统150的交互来训练模型140。训练计算系统150可以与服务器计算系统130分离或者可以是服务器计算系统130的一部分。
训练计算系统150包括一个或多个处理器152和存储器154。一个或多个处理器152可以是任何合适的处理设备(例如,处理器核心、微处理器、ASIC、FPGA、控制器、微控制器等),并且可以是一个处理器或可操作地连接的多个处理器。存储器154可以包括一个或多个非暂时性计算机可读存储介质,诸如RAM、ROM、EEPROM、EPROM、闪存设备、磁盘等,以及它们的组合。存储器154可以存储数据156和指令158,所述指令由处理器152执行以使训练计算系统150执行操作。在一些实施方式中,训练计算系统150包括一个或多个服务器计算设备或由一个或多个服务器计算设备实现。
训练计算系统150可以包括模型训练器160,模型训练器160使用各种训练或学习技术(例如,错误的向后传播)来训练存储在服务器计算系统130处的机器学习模型140。在一些实施方式中,执行错误的向后传播可以包括随着时间的过去执行截断的反向传播(truncated backpropagation)。模型训练器160可以执行多种泛化(generalization)技术(例如,权重衰减、丢失(dropout)等),以改进被训练的模型的泛化能力。
特别地,模型训练器160可以基于训练数据142的集合来训练机器学习的自然语言处理模型140。训练数据142可以包括例如自然语言文本主体、自然语言问题和预期回答。在一些实施方式中,自然语言文本主体可以包括形成叙述或故事的一系列句子。然而,任何合适的自然语言文本主体可以被包括在训练数据142中,如下面进一步详细解释的。
在一些实施方式中,包括在训练数据142中的自然语言问题可以包括与包含在自然语言文本主体中的信息相关联的问题。用户可以通过用户计算设备102的用户输入组件122输入自然语言问题。例如,在一些实施方式中,用户可以向用户计算设备102指示自然语言问题。用户输入组件122可以包括麦克风,可以感测用户指示的问题并且实现语音识别技术以将音频输入转换为文本。在其他实施方式中,用户可以通过用户输入组件122以文本输入自然语言问题,用户输入组件122可以包括例如虚拟键盘。
包括在训练数据142中的预期回答可以包括一个或多个单词。在一些实施方式中,预期回答可以包括至少一个也可以在自然语言问题和/或自然语言文本主体中找到的单词。
在一些实施方式中,如果用户已经同意,则训练示例可以由用户计算设备102提供(例如,基于先前由用户计算设备102的用户提供的通信)。因此,在这样的实施方式中,可以由训练计算系统150在从用户计算设备102接收的用户特定的通信数据上训练提供给用户计算设备102的模型120。在一些实例中,这个过程可以称为对模型的个性化。例如,训练数据142可以从用户与用户计算设备102之间的一个或多个先前的交互中生成。例如,在一些实施方式中,自然语言文本主体、自然语言问题和/或自然语言回答可以包括用户先前输入的文本。在另一个示例中,自然语言文本主体可以包括从用户先前使用用户计算设备102访问的网页中收集的文本。
模型训练器160包括用于提供预期功能(functionality)的计算机逻辑。可以以控制通用处理器的硬件、固件和/或软件来实现模型训练器160。例如,在一些实施方式中,模型训练器160包括存储在存储设备上、加载到存储器中、以及由一个或多个处理器执行的程序文件。在其他实施方式中,模型训练器160包括一组或多组计算机可执行指令,其存储在有形的计算机可读存储介质中,例如RAM硬盘或光学或磁性介质。
网络180可以是任何类型的通信网络,诸如局域网(例如,内联网)、广域网(例如,因特网)或它们的组合,并且可以包括任何数量的有线或无线链路。通常,可以使用各种通信协议(例如,TCP/IP、HTTP、SMTP、FTP)、编码或格式(例如,HTML、XML)、和/或保护方案(例如VPN、安全HTTP、SSL),经由任何类型的有线和/或无线连接,来承载通过网络180的通信。
图1A示出了可以用来实现本公开的一个示例计算系统。也可以使用其他计算系统。例如,在一些实施方式中,用户计算设备102可以包括模型训练器160和训练数据集162。在这样的实施方式中,模型120可以在用户计算设备102本地训练和使用。在一些这样的实施方式中,用户计算设备102可以实施模型训练器160以基于用户特定的数据来对模型120进行个性化。
图1B描绘了根据本公开的示例实施例执行的示例计算设备10的框图。计算设备10可以是用户计算设备或服务器计算设备。
计算设备10包括多个应用(例如,应用1至应用N)。每个应用都包含自己的机器学习库(library)和机器学习的模型。例如,每个应用可以包括机器学习的模型。示例应用包括文本消息应用、电子邮件应用、听录(dictation)应用、虚拟键盘应用、浏览器应用等。
如图1B所示,每个应用可以与计算设备的多个其他组件通信,例如,一个或多个传感器、上下文管理器、设备状态组件和/或附加组件。在一些实施方式中,每个应用可以使用API(例如,公共API)与每个设备组件进行通信。在一些实施方式中,每个应用所使用的API都是特定于该应用的。
图1C描绘了根据本公开的示例实施例执行的示例计算设备50的框图。计算设备50可以是用户计算设备或服务器计算设备。
计算设备50包括多个应用(例如,应用1至应用N)。每个应用都与中央智能层(central intelligence layer)进行通信。示例应用包括文本消息应用、电子邮件应用、听录应用、虚拟键盘应用、浏览器应用等。在一些实施方式中,每个应用可以使用API(例如,所有应用的公共API)与中央智能层(以及存储在其中的模型)进行通信。
中央智能层包括多个机器学习的模型。例如,如图1C所示,相应的机器学习模型(例如,模型)可以被提供给每个应用,并且由中央智能层进行管理。在其他实施方式中,两个或更多个应用可以共享单一机器学习的模型。例如,在一些实施方式中,中央智能层可以为所有应用提供单一的模型(例如,单一模型)。在一些实施方式中,中央智能层被包括在计算设备50的操作系统中或由计算设备50的操作系统实现。
中央智能层可以与中央设备数据层进行通信。中央设备数据层可以是用于计算设备50的集中式数据存储库(repository)。如图1C所示,中央设备数据层可以与计算设备的多个其他组件进行通信,例如,一个或多个传感器、上下文管理器、设备状态组件和/或附加组件。在一些实施方式中,中央设备数据层可以使用API(例如,私有API)与每个设备组件进行通信。
示例模型布置
图2描绘了根据本公开的示例实施例的示例机器学习的自然语言处理模型200的框图。在一些实施方式中,机器学习的自然语言处理模型200被训练以接收自然语言问题202和自然语言文本主体204,并且作为接收到自然语言问题202和自然语言文本主体204的结果,提供对自然语言问题202的回答206。
在一些实施方式中,机器学习的自然语言处理模型200可以包括编程器模型208,编程器模型208被训练以接收自然语言问题202,并且响应于接收到自然语言问题202,输出程序210。在其他实施方式中,机器学习的自然语言处理模型200可以包括查询编程系统,查询编程系统被配置为接收自然语言输入查询,并使用机器学习的自然语言查询编程器模型208,基于自然语言输入查询生成用于查询知识图214的程序210。自然语言输入查询可以包括例如自然语言问题202。
在一些实施方式中,机器学习的自然语言处理模型200可以包括编码器模型212,编码器模型212被训练以接收自然语言文本主体204,并且响应于接收到自然语言文本主体204,输出知识图214。在其他实施方式中,机器学习的自然语言处理模型200可以包括编码系统,编码系统被配置为接收自然语言文本主体204,并且使用机器学习的自然语言编码器模型212,基于自然语言文本主体204生成知识图214。
程序210可以包括引起对知识图214搜索的函数。例如,在一些实施方式中,程序210可以接收知识图214作为输入,并且作为响应,输出对自然语言问题202的回答206。在其他实施方式中,机器学习的自然语言处理模型200可以包括查询执行系统,查询执行系统被配置为在所生成的知识图214上执行所生成的程序210,并输出可以包括回答206的查询响应。
在一些实施方式中,知识图214可以表示包含在自然语言文本主体204中的信息。例如,知识图可以包括一系列单词序列,称为“n-gram”或“元组(tuple)”,表示句子中所包含的信息。例如,在一些实施方式中,每个n-gram序列或语句(statement)可以包括两个元素(例如,单词),被称为“bi-gram”。在其他实施方式中,每个n-gram序列可以包括三个单词,被称为“tri-gram”。在一些实施方式中,每个n-gram序列可以包括三个以上的单词。在又一些实施方式中,每个n-gram可以包括不同数量的单词(例如,知识图可以包括bi-gram、tri-gram或其他n-gram,或者它们的组合)。在一些实施方式中,每个n-gram中的元素的数量可以是预定值。在其他实施方式中,可以基于自然语言文本主体204的特性,诸如句子的长度、句子的复杂度等,例如由编码器模型212选择元素的数量。此外,在一些实施方式中,知识图214可以包括与n-gram相关联的时间戳。例如,每个n-gram可以具有表示自然语言文本主体204的相关部分出现在自然语言文本主体204中的顺序的相关时间戳。在一些实施方式中,编码器模型212可以被配置为生成与多个n-gram语句中的每一个相关联的相应时间戳。时间戳可以表示n-gram语句从自然语言文本主体中被生成的顺序。这可以改进知识图214表示包含在自然语言文本主体204中的时间顺序信息的能力。
在一些实施方式中,如上所述,编程器模型208输出的程序210可以包括引起知识图214搜索的函数。例如,该函数可以被配置为搜索知识图214并定位包含在知识图214中的一个或多个单词以回答自然语言问题202。一个示例函数是“hop”,其可以被配置为在知识图214中定位紧接着其输入或自变量(argument)的每个单词。例如,在包含“Mary;Kitchen”的知识图214上执行“hop Mary”可以产生“Kitchen”。另一个示例函数是“argmax”,其以类似于“hop”的方式操作,除了“argmax”可以找到接着该输入或自变量的单词集合中的最后一个实例以外。类似地,“argmin”可以找到接着该输入的单词集合中的第一个实例。可以使用另外的函数。在一些实施方式中,程序模型208可以被配置为创建新的函数和/或修改现有函数(JürgenSchmidhuber,Optimal ordered problem solver,Machine Learning,54(3):211–254,2004)。
在一些实施方式中,由编程器模型306输出的程序210可以包括被配置为一起操作以提供对自然语言问题202的回答206的多个函数。例如,示例程序210可以包含被配置为定位第一变量(variable)的第一函数以及被配置为使用第一变量作为输入来定位对自然语言问题202的回答206的第二函数。
如上所述,在一些实施方式中,自然语言处理模型可以包括查询执行系统,查询执行系统被配置为在所生成的知识图214上执行所生成的程序210,并且输出包括回答206的查询响应。在一些实施方式中,执行程序210的每个函数可以使查询执行系统发现包括函数的自变量的至少一个n-gram语句或其一部分。在一些实施方式中,执行程序210的每个函数可以使查询执行系统基于该函数和/或至少一个发现的n-gram语句返回变量。
说明性示例
以下简化示例通过各种模型208、212的样本输入和样本输出(例如,知识图和程序)示出了自然语言处理模型200的一个实施方式的操作。如在随后部分中进一步详细说明的,编程器模型208和编码器模型212的行为可以通过训练来学习。因此,以下描述的样本输入和输出仅仅是说明性的。例如,编码器模型212接收以下自然语言文本主体202:
Bernard is a rhino. |
Lilly is a swan. |
Julius is a swan |
Lily is white. |
Greg is a rhino |
Julius is white. |
Brian is a lion |
Bernard is gray. |
Brian is yellow. |
响应于接收到自然语言文本主体202,编码器模型212可以输出知识图214,知识图214包含一系列n-gram,例如,tri-gram。如上所述,编码器模型212的行为可以基于训练数据来学习。因此,下面呈现的样本知识图214仅仅是响应于接收到以上自然语言文本主体204来自编码器模型212的一个潜在输出的示例:
Bernard | a | rhino |
Lilly | a | swan |
Julius | a | swan |
Lily | is | white |
Greg | a | rhino |
Julius | is | white |
Brian | a | lion |
Bernard | is | gray |
Brian | is | yellow |
在这个示例中,响应于接收到自然语言问题202“What color is Greg?”,编程器模型208可以输出产生正确回答的程序210。例如,程序210可以包括引起知识图214的一次或多次搜索的一个或多个函数。由于编码器模型212的行为是基于训练数据来学习的,因此以下仅仅是来自编程器模型208的一个潜在输出的示例。
Hop | Greg | a |
Hopp | var1 | a |
Hop | var2 | is |
上面的示例程序210包含三个函数。第一函数是“hop”,其输入是“Greg”和“a”。第一函数可以在知识图表214中定位接着“Greg”和“a”的下一个或多个单词:“rhino”。上面的样本程序210中的第二函数是“hopp”。在一些实施方式中,“hopp”可以是被配置为定位紧接在其输入或自变量之前的一个或多个单词的函数。在这个示例中,第二函数可以使用第一函数的输出集“var1”作为输入。因此,第二函数可以在样本知识图表214中定位接在“rhino”和“a”之前的单词:“Bernard”和“Greg”。然后,第三函数可以使用第二函数的输出集“var2”作为输入,并且在知识图214中定位接着“Bernard;is”和“Greg:is”的单词:“gray”。因此,样本程序210可以从样本知识图214中提取或选择正确的回答。
示例模型布置
图3描绘了根据本公开的示例实施例的被配置为接收训练数据集302的示例自然语言处理模型300的框图。自然语言处理模型300类似于图2的自然语言处理模型200,除了自然语言处理模型300还包括解码器模型304之外,如下面进一步详细解释的。例如,在一些实施方式中,自然语言处理模型300是与自然语言处理模型200相同的模型,但是图3示出了用于训练模型的模型配置(例如,在训练时间),而图2示出了用于从模型产生推论(inferences)的模型配置(例如,在推论时间)。
自然语言处理模型300可以包括配置为接收自然语言问题308并输出程序310的编程器模型306。自然语言处理模型300还可以包括编码器模型312,编码器模型312被配置为接收自然语言文本主体314和输出知识图316。在一些实施方式中,知识图316可以表示包含在自然语言文本主体204中的信息。程序310可以在知识图316上执行(例如,接收知识图316作为输入)以产生对自然语言问题308的回答318。
如上所述,自然语言处理模型300可以被配置用于训练并且可以包括解码器模型304。解码器模型304可以被配置为接收知识图316并且响应于接收到知识图316输出自然语言文本主体314的重建320。当组合时,编码器模型306和解码器模型304可以作为自动编码器的方式操作或以自动编码器的方式训练。例如,在一些实施方式中,自动编码器目标函数322可以描述自然语言文本主体314与自然语言文本主体314的重建320之间的重建损失。例如,在一个实施方式中,自动编码器目标函数322可以指示知识图316的每个n-gram包含自然语言文本主体314的相应句子中包含的信息的可能性。在一些实施方式中,自动编码器目标函数322可以描述编码器概率分布,该编码器概率分布描述了相对于编码器模型312的输出的编码器模型312的输入。例如,在一些实施方式中,编码器概率分布可以被定义为:
P(t|s;θenc) (1)
其中t表示包含在知识图316中的元组(例如,n-gram);s表示包含在自然语言文本主体314中的句子;而θenc表示编码器模型312。在一些实施方式中,编码器概率分布可以指示每个句子中包含的信息被包含在知识图316的各个(individual)n-gram中的可能性。在一些实施方式中,编码器概率分布可以用于计算知识图分布,该知识图分布指示句子中包含的信息被包含在知识图316中的可能性。在一些实施例中,知识图分布可以计算如下:
其中kg表示知识图316;t表示知识图316的元组(例如,n-gram);而s表示包含在自然语言文本主体314中的句子。在一些实施方式中,编码器模型312可以被配置为输出编码器概率分布或其分量(component)。在其他实施方式中,自然语言处理模型300的任何合适的组件可以被配置为产生编码器概率分布。
在一些实施方式中,自动编码器目标函数322可以描述解码器概率分布,该解码器概率分布描述了相对于解码器模型304的输出的解码器模型304的输入。例如,在一些实施方式中,解码器概率分布可以被定义为:
P(s|t;θdec) (3)
其中t表示包含在知识图316中的元组,θdec表示解码器模型304。因此,在一些实施方式中,解码器概率分布可以指示包含在知识图316的每个元组(例如,n-gram)中的信息包含知识图316的句子中所包含的信息的可能性。在一些实施方式中,解码器模型304可以被配置为输出解码器概率分布或其分量。在其他实施方式中,任何合适的手段可以用来计算解码器概率分布。
在一些实施方式中,自动编码器目标函数322可以被定义为编码器概率分布和解码器概率分布的函数。例如,在一个实施方式中,自动编码器目标函数322可以定义如下:
其中β可以是平滑变量。
在一些实施方式中,问答目标函数324可以描述基于回答318和包括在训练数据集302中的预期回答330的比较的奖励(reward)328。奖励328可以表示如下:
R(kg,prog,a) (5)
其中kg表示知识图316;prog表示程序310;而a表示预期回答330。
在一些实施方式中,问答目标函数324可以描述编程器概率分布,该编程器概率分布描述了相对于编程器模型306的输出的编程器模型306的输入。在一些实施方式中,编程器模型306可以被配置为输出一组程序310和一组相应的权重。每个权重可以与相应的程序310相关联,并且可以表示当在自然语言文本主体上执行时,相应的程序将生成预期回答的预期可能性。在一些实施方式中,多个权重可以用来从多个程序中选择程序在知识图上执行以产生回答,该回答由自然语言处理模型输出。在一些实施方式中,编程器概率分布可以表示如下:
P(prog|q;θprog) (6)
其中q表示自然语言问题308;prog表示一组程序310;而θprog表示编程器模型306。在一些实施方式中,编程器模型306可以被配置为输出编程器概率分布或其分量。在其他实施方式中,自然语言处理模型300的任何合适的组件可以被配置为计算或输出编程器概率分布。
在一些实施方式中,问答目标函数324可以描述编码器概率分布,如上面参考自动编码器目标函数322所述的。因此,在一些实施方式中,问答目标函数324可以定义如下:
在一些实施方式中,总目标函数332可以包括问答目标函数324和自动编码器目标函数322。例如,在一些实施方式中,总目标函数332可以包括问答目标函数324和自动编码器目标函数322的总和(summation):
O(θdec,θenc,θprog)=OAE(θenc,θdec)+OQA(θenc,θprog) (8)
其中,O(θdec,θenc,θprog)表示总目标函数332;OAE(θenc,θdec)表示自动编码器目标函数322;而OQA(θenc,θprog)表示问答目标函数324。
在一些实施方式中,自动编码器目标函数的定义可以在训练期间从第一训练阶段中的第一自动编码器目标函数转换到第二训练阶段中的第二自动编码器目标函数。在第一训练阶段中,如上所述,第一自动编码器目标函数可以被定义来描述自然语言文本主体314与自然语言文本主体314的重建320之间的重建损失。例如,第一自动编码器目标函数可以根据上面的等式(4)来定义。相比之下,在第二阶段期间,第二自动编码器目标函数可以描述基于回答318与预期回答330的比较的奖励328。例如,在一些实施方式中,在第二阶段期间,自动编码器目标函数322可以与问答目标函数324类似的方式来定义:
在一些实施方式中,自动编码器目标函数可以基于编码器模型的性能,从第一自动编码器目标函数转换到第二自动编码器目标函数。例如,在一些实施方式中,一旦第一自动编码器目标函数小于预定阈值,就可以转换该自动编码器目标函数。可以选择所述预定阈值,使得满足上述条件表示了知识图包含自然语言文本主体中的信息的足够准确的表示。在这一点上,自然语言处理模型300可以被配置为从第一自动编码器目标函数转换到第二自动编码器目标函数。例如,这可以更有效地训练编码器模型312,以更好地促进正确回答自然语言问题308的方式将自然语言文本主体314中的信息编码到知识图316中。
此外,在一些实施方案中,训练自然语言处理模型300可以包括在(1)使用自动编码器目标函数322联合训练编码器模型312和解码器模型304以及(2)使用问答目标函数324训练编程器模型306之间交替(例如,使用坐标上升方法)。在其他实现中,训练自然语言处理模型300可以包括基于与一个或多个相应模型304、306、312中的一个或多个相关联的一个或多个相应目标函数来在训练每个模型304、306、312之间交替。
因此,在一些实施方案中,编码器模型312、解码器模型304和编程器模型306中的一个或多个可以具有各自的目标函数。例如,解码器模型304的解码器目标函数可以定义为:
而解码器目标函数的梯度(gradient)可以定义如下:
在一些实施方式中,可以对解码器模型304进行预训练(例如,在如上所述联合训练编码器模型312和解码器模型304之前)。例如,可以使用输入训练数据和从输入训练数据中随机生成的输出训练数据来预训练解码器模型304。
类似地,第一自动编码器目标函数和第二自动编码器目标函数可以具有可用来执行(例如,交替地)训练的相关联的第一编码器目标函数和第二编码器目标函数。例如,编码器模型312的第一编码器目标函数可以定义为:
第二自动编码器目标函数可以定义为:
第二自动编码器目标函数的梯度可以定义如下:
另外,编程器模型306可以具有相关联的编程器目标函数,其可以定义为:
并且具有如下定义的梯度:
在一些实施方式中,可以基于在解码器模型304的预训练期间收集的信息来指导编码器模型312的训练。另外,在一些实施方式中,可以并入或利用一个或多个压缩器模型以进一步改进自动编码器(例如解码器模型304和编码器模型312)的性能(请参见例如,Miao等人,Language as a Latent Variable:Discrete Generative Models forSentence Compression(《语言作为潜在变量:用于句子压缩的离散生成模型》),2016年自然语言处理经验方法(Empirical Methods in Natural Language Processing EMNLP)会议,arXiv:1609.07317v2,2016)。
如上所述,在一些实施例中,上述目标函数中的一个或多个可以用来训练各种模型304、306、312。例如,上述各种梯度函数可以在每次训练迭代(iteration)中计算,并用来确定如何最好地调整每个相应的模型304、306、312的各种参数。例如,梯度函数可用来最小化相应的目标函数以训练模型304、306、312。
示例方法
图4描绘了根据本公开的示例实施例的示例方法400的流程图。虽然出于说明和讨论的目的,图4描绘了以特定顺序执行的步骤,但是本公开的方法不限于具体示出的顺序或布置。在不脱离本公开的范围的情况下,可以以各种方式省略、重新布置、组合和/或适配方法400的各个步骤。
在(402),计算系统可以获得自然语言文本主体。例如,用户可以将自然语言文本主体输入到用户计算系统(例如,用户计算设备)中,以便将自然语言文本主体提供给自然语言处理模型。在其他实施方式中,自然语言处理模型可以独立地从诸如与自然语言问题有关的一个或多个网站的外部源获得自然语言文本主体。
在(404),计算系统(例如,服务器计算设备和/或用户计算设备)可以将自然语言文本主体输入到编码器模型中。例如,编码器模型可以包括训练的神经网络,例如循环神经网络。编码器模型可以被训练以接收自然语言文本主体,并且响应于接收到自然语言文本主体,输出知识图。在(406),计算系统可以接收作为编码器模型的输出的知识图。在一些实施方式中,知识图可以存储自然语言文本主体中所包含的至少一些信息。例如,知识图可以包含多个n-gram(例如,bi-grams、tri-gram等)。在一些实施例中,n-gram可以在语义上表示自然语言文本主体中所包含的至少一些信息。
在(408),计算系统可以获得自然语言问题。例如,用户可以将自然语言问题输入用户计算系统(例如,用户计算设备),使得自然语言问题被提供给自然语言处理模型。例如,用户可以利用用户输入组件口述或手动输入自然语言问题到用户计算系统中。
在(410),计算系统可以将自然语言问题输入到编程器模型中。在一些实施方式中,编程器模型可以被训练以接收自然语言问题,并作为响应输出程序。例如,在一些实施方式中,编程器模型可以是训练的神经网络,诸如循环神经网络。在(412),计算系统可以接收作为编程器模型的输出的程序。
在(414),计算系统可以在知识图上执行程序以产生对自然语言问题的回答。在一些实施方式中,编程器系统输出的程序可以包括引起知识图搜索的函数。例如,该程序可以包括多个函数,所述多个函数一起工作以定位知识图中回答自然语言问题的单词。
图5描绘了根据本公开的示例实施例的用于训练自然语言处理模型的示例方法500的流程图。虽然为了说明和讨论的目的,图5描绘了以特定顺序执行的步骤,但是本公开的方法不限于具体示出的顺序或布置。在不脱离本公开的范围的情况下,可以以各种方式省略、重新布置、组合和/或适配方法500的各个步骤。
在(502),计算系统可以获得包括编码器模型、解码器模型和编程器模型的自然语言处理模型。例如,一个或多个模型可以存储在用户计算设备和/或服务器计算系统处。例如,在一些实施方式中,训练计算机系统可以从用户计算设备和/或服务器计算系统获得模型。获取自然语言处理模型可以包括以任何合适的方式在操作配置中部署自然语言处理模型。
在(504),计算系统可以将包括自然语言文本主体和自然语言问题的训练数据集输入到自然语言处理模型中,以接收对自然语言问题的回答。例如,训练数据集可以包括一个或多个自然语言文本主体和/或一个或多个自然语言问题。另外,在一些实施例中,训练数据集还可以包括一个或多个预期回答。例如,在一个实施例中,训练数据集可以包括多个预期回答,所述多个预期回答包括针对包括在训练数据集中的每个自然语言问题的相应的正确回答。
在(506),计算系统可以评估总目标函数,该总目标函数包括自动编码器目标函数和问答目标函数。在一些实施例中,评估总目标函数可以包括将自动编码器目标函数和问答目标函数的求和(summing)。在一些实施例中,自动编码器目标函数可以描述编码器概率分布和/或解码器概率分布,编码器概率分布描述了相对于编码器模型的输出的编码器模型的输入,解码器概率分布描述了相对于解码器模型的输出的解码器模型的输入。在一些实施方式中,自动编码器目标函数可以描述奖励,该奖励基于在(504)处接收到的回答与预期回答的比较。例如,在一些实施方式中,自动编码器目标函数可以如上面参考等式(1)-(4)和(9)中的一个或多个所解释的那样被定义。
在一些实施方式中,问答目标函数可以描述奖励,所述奖励基于回答和包括在训练数据集中的预期回答的比较。在一些实施方式中,问答目标函数可以描述编码器概率分布。例如,在一些实施方式中,问答目标函数可以如上面参考等式(5)-(7)中的一个或多个所解释的那样被定义。
在(508),计算系统可以基于总目标函数训练自然语言处理模型。例如,计算系统可以计算总目标函数的梯度,或者其一个或多个分量的各自的梯度,以确定如何调整各个模型参数,以便简化(reduce)总目标函数或其一个或多个分量。例如,在一些实施例中,计算系统可以在(1)使用自动编码器目标函数联合训练编码器模型和解码器模型与(2)使用问答目标函数训练编程器模型之间交替。在其他实施例中,计算系统可以在使用与每个模型相关联的相应的目标函数训练编码器模型、解码器模型和编程器模型中的每一个之间交替。例如,计算系统可以使用如上面参考等式(10)-(17)解释的相应的目标函数中一个或多个。
图6描绘了根据本公开的示例实施例的用于训练自然语言处理模型的示例方法600的流程图。虽然为了说明和讨论的目的,图6描绘了以特定顺序执行的步骤,但是本公开的方法不限于具体示出的顺序或布置。在不脱离本公开的范围的情况下,可以以各种方式省略、重新布置、组合和/或适配方法600的各个步骤。
在(602),计算系统可以获得自然语言处理模型,该自然语言处理模型例如包括编码器模型、解码器模型和编程器模型,如参考图3和/或图5所描述的。
在(604),计算系统可以将包括自然语言文本主体和自然语言问题的训练数据集输入到自然语言处理模型中,以接收对自然语言问题的回答,例如,如参考图3和/或图5所描述的。
在一些实施方式中,方法600可以包括第一训练阶段606和第二训练阶段608。在一些实施方式中,可以在训练期间将自动编码器目标函数的定义从第一训练阶段606中的第一自动编码器目标函数转换到第二训练阶段608中的第二自动编码器目标函数,例如在下面更详细描述的。
在(610),计算系统可以将自动编码器目标函数定义为描述重建损失的第一自动编码器目标函数。在一些实施方式中,计算系统可以被配置为使用机器学习的自然语言解码器模型,基于知识图来生成自然语言文本主体的重建。在一些实施方式中,计算系统可以计算自然语言文本主体与自然语言文本主体的重建之间的重建损失。例如,重建损失可以基于自然语言文本主体与由解码器模型基于知识图输出的自然语言文本主体的重建之间的比较。在一些实施方式中,例如,第一自动编码器目标函数可以如以上面参考等式(7)所解释的那样被定义。
在(612)处,计算系统可以例如以与上面参考图3和/或图5所描述的类似的方式,评估包括自动编码器目标函数和问答目标函数的总目标函数。例如,在一些实施方式中,总目标函数可以被计算为自动编码器目标函数和问答目标函数的和(sum)。在(614)处,计算系统可以例如基于与参考图3和/或图5所描述的类似的方式,基于总目标函数训练自然语言处理模型。在一些实施方式中,训练自然语言处理模型可以包括在例如使用等式(10)-(17)中的一个或多个训练自然语言处理模型中包括的一个或多个模型之间交替。
在一些实施方式中,计算系统可以在第一训练阶段606期间重复(610)、(612)和/或(614)。例如,计算系统可以执行多次迭代以化简总目标函数和/或其一个或多个分量。在一些实施例中,计算系统可以在第一训练阶段606中利用多个自然语言问题和/或多个自然语言文本主体。例如,计算系统可以针对每个自然语言问题和/或自然语言文本主体执行多次迭代。在第一阶段期间,编程器模型可以接收多个自然语言问题并输出一个或多个程序,而编码器模型可以接收一个或多个自然语言文本体并输出一个或多个知识图。
在一些实施方式中,计算系统可以部分地基于编码器模型的性能从第一训练阶段606转换到第二训练阶段608。例如,在一些实施方式中,自动编码器目标函数可以指示编码器模型的性能,使得一旦自动编码器目标函数降到预定阈值以下,计算系统就可以转换到第二训练阶段608。在其他实施方式中,计算系统可以部分地基于解码器输出的重建与自然语言文本主体之间的比较,从第一训练阶段606转换到第二训练阶段608。在其他实施方式中,计算系统可以部分地基于完成的训练迭代的数量和/或训练集的大小,从第一训练阶段606转换到第二训练阶段608。例如,在一些实施方式中,计算系统可以考虑自然语言文本主体和/或自然语言问题的大小、数量和/或复杂度。在其他实施方式中,转换可以部分地基于接收对自然语言问题的一个或多个正确回答。
在第二训练阶段608中,计算系统可以将自动编码器目标函数定义为描述奖励的第二自动编码器目标函数。例如,在一些实施例中,可以如上面参考等式(9)所解释的那样定义自动编码器目标函数。例如,在第二训练阶段608期间,编码器模型可以被训练,以改进自然语言处理模型正确回答自然语言问题的能力的方式,将从自然语言文本主体中的信息编码到知识图中。第二训练阶段608还可以包括以与上述类似的方式在(618)评估总目标函数。第二训练阶段608还可以包括以与上述类似的方式在(620)基于总目标函数训练自然语言处理模型。
在一些实施方式中,在第一训练阶段606中,自动编码器目标函数可以被定义为第一自动编码器目标函数和第二自动编码器目标函数的加权组合,例如求和(summation)。例如,在第一训练阶段606中,与第一自动编码器目标函数相关联的第一权重可以大于与第二自动编码器目标函数相关联的第二权重。随着第一训练阶段606的进行,第一权重可以逐渐减小和/或第二权重逐渐增大。这可以使得自动编码器目标函数逐渐从主要描述第一训练阶段606中的第一自动编码器目标函数转换到主要描述第二训练阶段608中的第二自动编码器目标函数。在某些实施方式中,在第二训练阶段608中,可以进一步调整这些权重以继续进行这样的逐渐转换,直到例如自动编码器目标函数被定义为第二自动编码器目标函数,诸如公式(9)。
然而,在其他实施方式中,自动编码器目标函数的定义可以在第一训练阶段606结束时立即改变,而无需逐渐转换。例如,自动编码器目标函数可以在第一训练阶段606中根据第一自动编码器目标函数(诸如等式(4))来定义,并且在第二训练阶段608中被定义为第二自动编码器目标函数(诸如等式(9))。
图7描绘了根据本公开的示例实施例的用于训练自然语言处理模型的示例方法700的流程图。虽然为了说明和讨论的目的,图7描绘了以特定顺序执行的步骤,但是本公开的方法不限于具体示出的顺序或布置。在不脱离本公开的范围的情况下,可以以各种方式省略、重新布置、组合和/或适配方法700的各个步骤。
方法700可以包括在(702)以与上述类似的方式获得自然语言处理模型。方法700可以包括例如在(704)以与上述类似的方式将训练数据集输入到自然语言处理模型中。
方法700可以包括第一训练阶段706和第二训练阶段708。例如,如上所述,第一训练阶段706和第二训练阶段708中的每一个可以包括在(710)和(716)评估总目标函数,例如,如上所述。第一训练阶段706和第二训练阶段708中的每一个还可以包括在(712)和(716)基于总目标函数训练自然语言处理模型。
在第一训练阶段706期间,该方法可以包括以比结构调整函数更高的频率应用代码辅助函数(参见,例如,Liang等人,Neural Symbolic Machines:Learning SemanticParsers on Freebase with Weak Supervision(《神经符号机器:在具有弱监督的Freebase上学习语义解析器》),计算语言学协会第55届年会论文集(Proceedings of the55th Annual Meeting of the Association for Computational Linguistics),第1卷:长论文,第23-33页)。例如,在一些实施方式中,在第一训练阶段706中,计算系统可以以第一频率应用代码辅助函数,并且以小于第一频率的第二频率应用结构调整函数。在其他实施方式中,第二频率在第一训练阶段706中可以为零。换句话说,在一些实施方式中,自然语言处理模型在第一训练阶段中可以根本不应用结构调整函数。
应用代码辅助函数可以包括为编程器模型提供势函数集,编程器模型可以从其中选择用于编译程序的函数。在一些实施方式中,代码辅助函数可以至少部分地基于与势函数相关联的句法规则(syntax rules)(例如,函数A只能跟随函数C或E),生成势函数集。代码辅助函数可以在程序执行时有效减少或消除潜在的执行错误。例如,提供给编程器模型的势函数可以部分地基于包括在程序中的最后一个函数。在一些实施方式中,代码辅助函数可以有效地减小编程器模型的搜索空间的大小,这可以导致更有效的训练。
在第二训练阶段708期间,该方法可以包括以比代码辅助函数更高的频率应用结构调整函数。在一些实施方式中,结构调整函数可以与降低回答包括空集的可能性相关联。例如,在一些实施方式中,该方法可以包括检测回答是否包括空集,并且当检测到这样的条件时,将结构调整函数应用到知识图。在一些实施方式中,应用结构调整函数可以包括例如在逐个函数的基础上在知识图上检查程序的执行。例如,如果程序包括例如如上所述的串联操作(operate in series)的四个函数,则结构调整函数可以检查包括在程序中的每个函数的相应的中间产品(intermediate product)。结构调整函数可以确定哪个函数导致回答包括空集。结构调整函数可以建议对知识图进行更改,以减小程序将生成包括空集的回答的可能性。
在一些实施方式中,查询编程系统,响应于接收到由查询执行系统针对该程序的函数返回的空结果,可以被配置为向编码系统提供至少一个指令来修改知识图。例如,所述指令可以指示对知识图的至少一个修改,这将降低包括空集的回答的概率。
在一些实施方式中,以与上面参考图6的描述类似的方式,从第一训练阶段706到第二训练阶段708的转换可以基于编码器模型的性能。在一些实施方式中,第一训练阶段706可以包括逐渐增加应用结构调整函数的比率(rate)和/或降低应用代码辅助函数的比率。类似地,第二训练阶段708可以包括逐渐增加应用代码辅助函数的比率和/或降低应用结构调整函数的比率。
另外,在一些实施方式中,“REINFORCE”算法可用来训练自然语言处理模型或其一个或多个分量(Liang等人,Neural Symbolic Machines:Learning Semantic Parsers onFreebase with Weak Supervision(《神经符号机器:在具有弱监督的Freebase上学习语义解析器》),计算语言学协会第55届年会论文集,第1卷:长论文,第23-33页;RonaldJ.Williams,Simple statistical gradient-following algorithms for connectionistreinforcement learning(《用于连接主义强化学习的简单统计梯度跟踪算法》),在“机器学习”中,第229-256页,1992年;Wojciech Zaremba和Ilya Sutskever,Reinforcementlearning neural turing machines(《强化学习神经图灵机》),arXiv预印本arXiv:1505.00521,2015年)。
示例算法
以下算法仅仅是说明性的,并且表示这里公开的系统和方法的示例的可能的实施方式。如上所述,在一些实施方式中,编码器模型和解码器模型可以作为自动编码器的方式来操作或以自动编码器的方式来训练。在一些实施方式中,以下示例算法可以用于训练编码器模型和解码器模型。
示例算法1自动编码器训练
在一些实施方式中,可以使用训练数据集来完成对各种模型的训练。以下示例算法可以用来准备训练数据集、编码器模型、编程器模型、知识图和程序。
示例算法2准备数据集
在一些实施方式中,可以使用以下示例算法来训练编码器模型和编程器模型。
示例算法3问答训练
在一些实施方式中,以上示例算法1和3可以用于以下算法以训练自然语言处理模型。
示例算法4训练
另外的或替代的算法可以用来执行这里公开的方法。此外,可以以多种方式组合和/或修改以上算法。
附加公开
在一些实施方式中,用于响应自然语言查询的计算系统可以包括编码系统,该编码系统被配置为接收自然语言文本主体,并使用机器学习的自然语言编码器模型,基于自然语言文本主体生成知识图。计算系统可以包括查询编程系统,该查询编程系统被配置为接收自然语言输入查询,并使用机器学习的自然语言查询编程器模型,基于自然语言输入查询生成用于查询知识图的程序。计算系统可以包括查询执行系统,该查询执行系统被配置为在所生成的知识图上执行所生成的程序,并输出查询响应。在一些实施方式中,机器学习的自然语言编码器模型和机器学习的自然语言查询编程器模型中的至少一个可以是循环神经网络或序列到序列神经网络。
在一些实施方式中,所述机器学习的自然语言编码器模型可以通过以下步骤来训练:使用机器学习的自然语言解码器模型,基于知识图来生成自然语言文本主体的重建;计算自然语言文本主体与自然语言文本主体的重建之间的重建损失;以及使用描述了重建损失的自动编码器目标函数来训练机器学习的自然语言编码器模型和机器学习的自然语言解码器模型。在一些实施方式中,机器学习的自然语言解码器模型可以是循环神经网络或序列到序列神经网络。
在一些实施方式中,可以通过以下步骤来训练机器学习的自然语言编码器模型和/或机器学习的自然语言查询编程器模型:接收针对自然语言文本主体的自然语言测试查询;基于自然语言测试查询生成用于查询知识图的测试程序;在知识图上执行生成的测试程序以获取测试查询响应;将对自然语言测试查询的测试查询响应与预期查询响应进行比较;以及使用描述了基于对自然语言测试查询的测试查询响应和预期的查询响应的比较的奖励的问答目标函数,来训练机器学习的自然语言编码器模型和机器学习的自然语言查询编程器模型。在一些实施方式中,可以基于包括自动编码器目标函数和问答目标函数的总目标函数来训练机器学习的自然语言编码器模型和机器学习的自然语言查询编程器模型。
在一些实施方式中,编码系统可以被配置为通过将自然语言文本主体转换成多个n-gram语句来生成知识图。在一些实施方式中,所生成的程序可以包括一个或多个包括自变量的函数,并且执行程序的每个函数可以使查询执行系统发现至少一个包括该函数的自变量的n-gram语句,并且基于该函数和至少一个发现的n-gram语句返回变量。在一些实施方式中,所生成的程序中的至少一个函数的自变量可以指代由所生成的程序的至少一个其他函数返回的变量。在一些实施方式中,编码系统可以被配置为与多个n-gram语句中的每一个相关联地生成时间戳,并且所述时间戳可以表示从自然语言文本主体中生成n-gram语句的顺序。
在一些实施方式中,所生成的程序可以包括至少一个函数,所述至少一个函数使得查询执行系统发现至少一个包括该函数的自变量的n-gram语句,并基于该函数和至少一个发现的n-gram语句的时间戳返回变量。在一些实施方式中,编码系统可以被配置为向查询编程系统提供关于知识图的信息,该信息指示在执行函数时将返回变量的函数的至少一个自变量。
在一些实施方式中,查询编程系统,响应于接收到由查询执行系统针对程序的函数返回的空结果,可以被配置为向编码系统提供至少一个指令以修改知识图。该指令可以指示对知识图的至少一个修改,这将减少对于函数的空结果的概率。
这里所讨论的技术参考了服务器、数据库、软件应用和其他基于计算机的系统、以及对这样的系统采取的行动和发送、接收的信息。基于计算机的系统的固有的灵活性允许在组件之间和之中的任务和功能性的多种可能的配置、组合以及划分。例如,这里讨论的过程可以使用单一设备或组件或组合工作的多个设备或多个组件来实现。数据库和应用可以实现在单一系统上,或分布在多个系统上。分布式组件可以顺序地或并行地操作。
尽管已经针对各种具体的示例实施例详细描述了本主题,但是每个示例都是作为说明而提供的,而不是对本公开进行限制。本领域技术人员在理解了前述内容之后,可以容易地对这样的实施例进行替换、变型和等同。因此,本公开内容不排除还包括对本主题的这样的修改、变化和/或添加,这对于本领域普通技术人员而言是清楚的。例如,作为一个实施例的一部分而示出或描述的特征可以与另一个实施例一起使用以产生又一个实施例。因此,本公开意图覆盖这样的变更、变化和等同。
Claims (29)
1.一种计算系统,包括:
至少一个处理器;
机器学习的自然语言处理模型,包括:
编码器模型,其中,所述编码器模型被训练以接收自然语言文本主体,并且响应于接收到自然语言文本主体,输出知识图;以及
编程器模型,其中,所述编程器模型被训练以接收自然语言问题,并且响应于接收到自然语言问题,输出程序;以及
至少一种有形的非暂时性计算机可读介质,其存储指令,当由至少一个处理器执行时,所述指令使得至少一个处理器执行操作,所述操作包括:
获取自然语言文本主体;
将自然语言文本主体输入到编码器模型中;
接收作为编码器模型的输出的知识图;
获得自然语言问题;
将自然语言问题输入到编程器模型中;
接收作为编程器模型的输出的所述程序;以及
在知识图上执行所述程序以产生对自然语言问题的回答。
2.如权利要求1所述的计算系统,其中,由编程器模型输出的所述程序包括引起知识图的搜索的函数。
3.如权利要求1所述的计算系统,其中,所述知识图包括多个n-gram序列。
4.如权利要求1所述的计算系统,其中,所述自然语言文本主体包括多个句子。
5.如权利要求1所述的计算系统,其中,编程器模型和编码器模型中的至少一个已至少部分地基于机器学习的自然语言处理模型的总目标函数被训练,其中,所述总目标函数包括自动编码器目标函数和问答目标函数两者,其中,所述自动编码器目标函数描述了自然语言文本主体与由解码器模型基于知识图输出的自然语言文本主体的重建之间的重建损失,并且其中,所述问答目标函数描述了基于所述回答与预期回答的比较的奖励。
6.如权利要求1所述的计算系统,其中,所述编码器模型或所述编程器模型中的至少一个包括神经网络。
7.如权利要求6所述的计算系统,其中,所述编码器模型和所述编程器模型中的至少一个包括循环神经网络。
8.如权利要求6所述的计算系统,其中,所述编码器模型和所述编程器模型中的至少一个包括序列到序列神经网络。
9.一种计算机实现的方法,该方法包括:
由一个或多个计算设备获得自然语言处理模型,该自然语言处理模型包括编码器模型、解码器模型和编程器模型,其中,所述编码器模型被配置为接收自然语言文本主体,并且响应于接收到自然语言文本主体,输出知识图,其中,所述解码器模型被配置为接收知识图,并且响应于接收到知识图,输出自然语言文本主体的重建,并且其中,所述编程器模型被训练以接收自然语言问题,并且响应于接收到自然语言问题,输出程序;
由一个或多个计算设备将包括自然语言文本主体和自然语言问题的训练数据集输入到自然语言处理模型中,以接收对自然语言问题的回答;
由一个或多个计算设备评估包括自动编码器目标函数和问答目标函数的总目标函数,其中,所述自动编码器目标函数描述了自然语言文本主体与自然语言文本主体的重建之间的重建损失,并且其中,所述问答目标函数描述了基于所述回答与包括在训练数据集中的预期回答的比较的奖励;以及
由一个或多个计算设备基于总目标函数训练自然语言处理模型。
10.如权利要求9所述的计算机实现的方法,其中,由一个或多个计算设备基于总目标函数训练自然语言处理模型包括,由一个或多个计算设备至少部分地基于问答目标函数来训练编程器模型。
11.如权利要求9所述的计算机实现的方法,其中,由一个或多个计算设备基于总目标函数训练自然语言处理模型包括,由一个或多个计算设备至少部分地基于自动编码器目标函数联合训练编码器模型和解码器模型。
12.如权利要求9所述的计算机实现的方法,其中,所述问答目标函数还描述了编码器概率分布或编程器概率分布中的至少一个,所述编码器概率分布描述了相对于编码器模型的输出的编码器模型的输入,所述编程器概率分布描述了相对于编程器模型的输出的编程器模型的输入。
13.如权利要求9所述的计算机实现的方法,还包括由一个或多个计算设备将自动编码器目标函数在第一训练阶段中定义为第一自动编码器目标函数以及在第一训练阶段之后的第二训练阶段中定义为第二自动编码器目标函数,并且其中:
所述第一自动编码器目标函数描述了自然语言文本主体与由解码器模型基于知识图输出的自然语言文本主体的重建之间的重建损失,并且
所述第二自动编码器目标函数描述了基于所述回答与所述预期回答的比较的奖励。
14.如权利要求9所述的计算机实现的方法,还包括由一个或多个计算设备将代码辅助函数应用于编程器模型,其中,应用代码辅助函数包括向编程器模型提供势函数集,并且其中,所述编程器模型被配置为从所述势函数集中选择函数以生成所述程序。
15.如权利要求9所述的计算机实现的方法,还包括:
由一个或多个计算设备检测所述回答是否包括空集;以及
当检测到所述回答包括空集时,由一个或多个计算设备将结构调整函数应用于知识图,所述结构调整函数与降低包括空集的所述回答的概率相关联。
16.如权利要求9所述的计算机实现的方法,还包括:
在第一训练阶段期间,由一个或多个计算设备将代码辅助函数应用于编程器模型,其中,应用代码辅助函数包括向编程器模型提供势函数集,并且其中,所述编程器模型被配置为从所述势函数集中选择函数以生成所述程序;
在第一训练阶段之后的第二训练阶段期间,由一个或多个计算设备检测回答是否包括空集,以及当检测到回答包括空集时,由一个或多个计算设备将结构调整函数应用于知识图,所述结构调整函数与降低包括空集的回答的概率相关联,并且其中,以比在第二训练阶段期间应用代码辅助函数更高的频率在第二训练阶段期间应用结构调整函数。
17.一种用于响应自然语言查询的计算系统,包括:
编码系统,其被配置为接收自然语言文本主体,并且使用机器学习的自然语言编码器模型基于自然语言文本主体生成知识图;
查询编程系统,其被配置为接收自然语言输入查询,并且使用机器学习的自然语言查询编程器模型基于所述自然语言输入查询来生成用于查询所述知识图的程序;以及
查询执行系统,其被配置为在所生成的知识图上执行所生成的程序,并且输出查询响应。
18.如权利要求17所述的计算系统,其中,所述机器学习的自然语言编码器模型和机器学习的自然语言查询编程器模型中的至少一个是循环神经网络或序列到序列神经网络。
19.如前述任何一项权利要求所述的计算系统,其中,所述机器学习的自然语言编码器模型通过以下步骤训练:
使用机器学习的自然语言解码器模型基于所述知识图生成自然语言文本主体的重建;
计算自然语言文本主体与自然语言文本主体的重建之间的重建损失;以及
使用描述了重建损失的自动编码器目标函数来训练机器学习的自然语言编码器模型和机器学习的自然语言解码器模型。
20.如权利要求19所述的计算系统,其中,所述机器学习的自然语言解码器模型是循环神经网络或序列到序列神经网络。
21.如权利要求19或权利要求20所述的计算系统,其中,所述机器学习的自然语言编码器模型和机器学习的自然语言查询编程器模型通过以下步骤训练:
接收自然语言文本主体的自然语言测试查询;
基于自然语言测试查询生成用于查询知识图的测试程序;
在知识图上执行所生成的测试程序以获得测试查询响应;
将自然语言测试查询的测试查询响应与预期查询响应进行比较;以及
使用描述了基于自然语言测试查询的测试查询响应与预期查询响应的比较的奖励的问答目标函数来训练机器学习的自然语言编码器模型和机器学习的自然语言查询编程器模型。
22.如权利要求21所述的计算系统,其中,基于包括自动编码器目标函数和问答目标函数的总目标函数来训练机器学习的自然语言编码器模型和机器学习的自然语言查询编程器模型。
23.如前述任何一项权利要求所述的计算系统,其中,所述编码系统被配置为通过将自然语言文本主体转换成多个n-gram语句来生成所述知识图。
24.如权利要求23所述的计算系统,其中,所生成的程序包括一个或多个包括自变量的函数;并且
其中,执行所述程序的每个函数使得所述查询执行系统发现包括所述函数的自变量的至少一个n-gram语句,并且基于所述函数和至少一个发现的n-gram语句来返回变量。
25.如权利要求24所述的计算系统,其中,所生成的程序中的至少一个函数的自变量是指所生成的程序的至少一个其他函数所返回的变量。
26.如权利要求24或权利要求25所述的计算系统,其中,所述编码系统被配置为与所述多个n-gram语句中的每一个相关联地生成时间戳,所述时间戳表示从自然语言文本主体生成所述n-gram语句的顺序。
27.如权利要求26所述的计算系统,其中,所生成的程序包括使得所述查询执行系统发现包括所述函数的自变量的至少一个n-gram语句的至少一个函数,并且基于所述函数和至少一个发现的n-gram语句的时间戳来返回变量。
28.如权利要求25至28中的任何一项所述的计算系统,其中,所述编码系统被配置为向所述查询编程系统提供关于所述知识图的信息,所述信息指示在执行函数时将返回变量的所述函数的至少一个自变量。
29.如权利要求24至28中的任何一项所述的计算系统,其中,所述查询编程系统,响应于接收到所述查询执行系统针对所述程序的函数返回的空结果,被配置为向所述编码系统提供至少一条指令以修改所述知识图,所述指令指示将减小所述函数的空结果的概率的对所述知识图的至少一个修改。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2017/058229 WO2019083519A1 (en) | 2017-10-25 | 2017-10-25 | NATURAL LANGUAGE PROCESSING USING A N-GRAM MACHINE |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111095259A true CN111095259A (zh) | 2020-05-01 |
CN111095259B CN111095259B (zh) | 2023-08-22 |
Family
ID=60269963
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780092818.2A Active CN111095259B (zh) | 2017-10-25 | 2017-10-25 | 使用n-gram机器的自然语言处理 |
Country Status (4)
Country | Link |
---|---|
US (2) | US11256866B2 (zh) |
EP (1) | EP3625699A1 (zh) |
CN (1) | CN111095259B (zh) |
WO (1) | WO2019083519A1 (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111988294A (zh) * | 2020-08-10 | 2020-11-24 | 中国平安人寿保险股份有限公司 | 基于人工智能的用户身份识别方法、装置、终端及介质 |
CN112559707A (zh) * | 2020-12-16 | 2021-03-26 | 四川智仟科技有限公司 | 一种基于知识驱动的客服问答方法 |
CN113535144A (zh) * | 2021-06-15 | 2021-10-22 | 北京彩彻区明科技有限公司 | 自然语言编程方法、装置、设备及存储介质 |
CN113609157A (zh) * | 2021-08-09 | 2021-11-05 | 平安科技(深圳)有限公司 | 语言转换模型训练、语言转换方法、装置、设备及介质 |
CN113901799A (zh) * | 2021-12-07 | 2022-01-07 | 苏州浪潮智能科技有限公司 | 模型训练、文本预测方法、装置、电子设备及介质 |
CN117178274A (zh) * | 2021-05-21 | 2023-12-05 | 谷歌有限责任公司 | 生成中间文本分析以服务于上下文文本生成的机器学习语言模型 |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019083519A1 (en) * | 2017-10-25 | 2019-05-02 | Google Llc | NATURAL LANGUAGE PROCESSING USING A N-GRAM MACHINE |
CN110096584B (zh) * | 2019-05-14 | 2021-10-15 | 京东数字科技控股有限公司 | 一种应答方法和装置 |
WO2020231049A1 (en) * | 2019-05-16 | 2020-11-19 | Samsung Electronics Co., Ltd. | Neural network model apparatus and compressing method of neural network model |
CN110727806B (zh) * | 2019-12-17 | 2020-08-11 | 北京百度网讯科技有限公司 | 基于自然语言和知识图谱的文本处理方法及装置 |
KR102524766B1 (ko) | 2019-12-17 | 2023-04-24 | 베이징 바이두 넷컴 사이언스 테크놀로지 컴퍼니 리미티드 | 자연어 및 지식 그래프 기반 표현 학습 방법 및 장치 |
US11429876B2 (en) * | 2020-03-10 | 2022-08-30 | International Business Machines Corporation | Infusing knowledge into natural language processing tasks using graph structures |
CN111783423B (zh) * | 2020-07-09 | 2024-09-06 | 北京猿力未来科技有限公司 | 解题模型的训练方法及装置、解题方法及装置 |
US20220067539A1 (en) * | 2020-09-01 | 2022-03-03 | International Business Machines Corporation | Knowledge induction using corpus expansion |
US11321053B1 (en) | 2021-07-09 | 2022-05-03 | People Center, Inc. | Systems, methods, user interfaces, and development environments for generating instructions in a computer language |
CN114611625A (zh) * | 2022-03-23 | 2022-06-10 | 北京百度网讯科技有限公司 | 语言模型训练、数据处理方法、装置、设备、介质及产品 |
US11907643B2 (en) * | 2022-04-29 | 2024-02-20 | Adobe Inc. | Dynamic persona-based document navigation |
CN115269807B (zh) * | 2022-08-17 | 2023-06-30 | 北京中科深智科技有限公司 | 一种基于问题类型识别的问答对联合生成模型 |
CN117094260B (zh) * | 2023-10-16 | 2024-01-19 | 上海合见工业软件集团有限公司 | 一种基于自然语言的命令交互系统 |
CN117290429B (zh) * | 2023-11-24 | 2024-02-20 | 山东焦易网数字科技股份有限公司 | 通过自然语言调用数据系统接口的方法 |
CN118245590B (zh) * | 2024-05-29 | 2024-07-26 | 福建拓尔通软件有限公司 | 基于多视角图对比学习和元学习特征净化网络的答案选择方法及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103430232A (zh) * | 2011-01-21 | 2013-12-04 | 谷歌公司 | 利用设备停靠情境的语音识别 |
CN104699845A (zh) * | 2015-03-31 | 2015-06-10 | 北京奇虎科技有限公司 | 基于提问类搜索词的搜索结果提供方法及装置 |
US20150293904A1 (en) * | 2014-04-10 | 2015-10-15 | Palo Alto Research Center Incorporated | Intelligent contextually aware digital assistants |
CN105095195A (zh) * | 2015-07-03 | 2015-11-25 | 北京京东尚科信息技术有限公司 | 基于知识图谱的人机问答方法和系统 |
CN106934012A (zh) * | 2017-03-10 | 2017-07-07 | 上海数眼科技发展有限公司 | 一种基于知识图谱的自然语言问答实现方法和系统 |
Family Cites Families (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2335801A1 (en) | 1998-04-29 | 2002-05-14 | Justin Winfield | A system and method for text mining |
JP2001075585A (ja) | 1999-09-07 | 2001-03-23 | Canon Inc | 自然言語処理方法及び前記方法を用いた音声合成装置 |
US7725307B2 (en) | 1999-11-12 | 2010-05-25 | Phoenix Solutions, Inc. | Query engine for processing voice based queries including semantic decoding |
US7392185B2 (en) | 1999-11-12 | 2008-06-24 | Phoenix Solutions, Inc. | Speech based learning/training system using semantic decoding |
US7860706B2 (en) | 2001-03-16 | 2010-12-28 | Eli Abir | Knowledge system method and appparatus |
US8874431B2 (en) | 2001-03-16 | 2014-10-28 | Meaningful Machines Llc | Knowledge system method and apparatus |
AUPR579301A0 (en) | 2001-06-19 | 2001-07-12 | Syrinx Speech Systems Pty Limited | Neural network post-processor |
JP4243942B2 (ja) | 2002-10-28 | 2009-03-25 | 株式会社リコー | 文章評価採点装置、プログラム及び記憶媒体 |
US7475015B2 (en) | 2003-09-05 | 2009-01-06 | International Business Machines Corporation | Semantic language modeling and confidence measurement |
WO2005036303A2 (en) | 2003-09-11 | 2005-04-21 | Eli Abir | Knowledge system method and apparatus |
US20090138415A1 (en) | 2007-11-02 | 2009-05-28 | James Justin Lancaster | Automated research systems and methods for researching systems |
US8781833B2 (en) | 2008-07-17 | 2014-07-15 | Nuance Communications, Inc. | Speech recognition semantic classification training |
US8874432B2 (en) | 2010-04-28 | 2014-10-28 | Nec Laboratories America, Inc. | Systems and methods for semi-supervised relationship extraction |
US9135241B2 (en) | 2010-12-08 | 2015-09-15 | At&T Intellectual Property I, L.P. | System and method for learning latent representations for natural language tasks |
US20140108103A1 (en) | 2012-10-17 | 2014-04-17 | Gengo, Inc. | Systems and methods to control work progress for content transformation based on natural language processing and/or machine learning |
EP2915068A4 (en) | 2012-11-02 | 2016-08-03 | Fido Labs Inc | METHOD AND SYSTEM FOR NATURAL LANGUAGE PROCESSING |
US9020806B2 (en) | 2012-11-30 | 2015-04-28 | Microsoft Technology Licensing, Llc | Generating sentence completion questions |
US9571315B2 (en) | 2013-09-10 | 2017-02-14 | Infineon Technologies Ag | Sensor systems and methods utilizing band pass filter tuning |
US10089580B2 (en) * | 2014-08-11 | 2018-10-02 | Microsoft Technology Licensing, Llc | Generating and using a knowledge-enhanced model |
CN105528349B (zh) | 2014-09-29 | 2019-02-01 | 华为技术有限公司 | 知识库中问句解析的方法及设备 |
US9606986B2 (en) | 2014-09-29 | 2017-03-28 | Apple Inc. | Integrated word N-gram and class M-gram language models |
US9946763B2 (en) * | 2014-11-05 | 2018-04-17 | International Business Machines Corporation | Evaluating passages in a question answering computer system |
US10339440B2 (en) | 2015-02-19 | 2019-07-02 | Digital Reasoning Systems, Inc. | Systems and methods for neural language modeling |
US10133729B2 (en) | 2015-08-28 | 2018-11-20 | Microsoft Technology Licensing, Llc | Semantically-relevant discovery of solutions |
US10366158B2 (en) | 2015-09-29 | 2019-07-30 | Apple Inc. | Efficient word encoding for recurrent neural network language models |
US11010550B2 (en) | 2015-09-29 | 2021-05-18 | Apple Inc. | Unified language modeling framework for word prediction, auto-completion and auto-correction |
US10664744B2 (en) | 2015-10-13 | 2020-05-26 | Facebook, Inc. | End-to-end memory networks |
US10606846B2 (en) * | 2015-10-16 | 2020-03-31 | Baidu Usa Llc | Systems and methods for human inspired simple question answering (HISQA) |
US10262062B2 (en) | 2015-12-21 | 2019-04-16 | Adobe Inc. | Natural language system question classifier, semantic representations, and logical form templates |
US9807037B1 (en) | 2016-07-08 | 2017-10-31 | Asapp, Inc. | Automatically suggesting completions of text |
CN106502979A (zh) | 2016-09-20 | 2017-03-15 | 海信集团有限公司 | 一种自然语言信息的数据处理方法和装置 |
US10796217B2 (en) * | 2016-11-30 | 2020-10-06 | Microsoft Technology Licensing, Llc | Systems and methods for performing automated interviews |
CN106997376B (zh) | 2017-02-28 | 2020-12-08 | 浙江大学 | 一种基于多级特征的问题和答案句子相似度计算方法 |
CN110121706B (zh) * | 2017-10-13 | 2022-05-03 | 微软技术许可有限责任公司 | 提供会话中的响应 |
WO2019083519A1 (en) * | 2017-10-25 | 2019-05-02 | Google Llc | NATURAL LANGUAGE PROCESSING USING A N-GRAM MACHINE |
-
2017
- 2017-10-25 WO PCT/US2017/058229 patent/WO2019083519A1/en unknown
- 2017-10-25 EP EP17795150.6A patent/EP3625699A1/en not_active Withdrawn
- 2017-10-25 US US16/069,781 patent/US11256866B2/en active Active
- 2017-10-25 CN CN201780092818.2A patent/CN111095259B/zh active Active
-
2022
- 2022-02-15 US US17/672,364 patent/US11947917B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103430232A (zh) * | 2011-01-21 | 2013-12-04 | 谷歌公司 | 利用设备停靠情境的语音识别 |
US20150293904A1 (en) * | 2014-04-10 | 2015-10-15 | Palo Alto Research Center Incorporated | Intelligent contextually aware digital assistants |
CN104699845A (zh) * | 2015-03-31 | 2015-06-10 | 北京奇虎科技有限公司 | 基于提问类搜索词的搜索结果提供方法及装置 |
CN105095195A (zh) * | 2015-07-03 | 2015-11-25 | 北京京东尚科信息技术有限公司 | 基于知识图谱的人机问答方法和系统 |
CN106934012A (zh) * | 2017-03-10 | 2017-07-07 | 上海数眼科技发展有限公司 | 一种基于知识图谱的自然语言问答实现方法和系统 |
Non-Patent Citations (1)
Title |
---|
CHEN LIANG等: "Neural Symbolic Machines: Learning Semantic Parsers on Freebase with Weak Supervision", 《ARXIV.ORG》 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111988294A (zh) * | 2020-08-10 | 2020-11-24 | 中国平安人寿保险股份有限公司 | 基于人工智能的用户身份识别方法、装置、终端及介质 |
CN111988294B (zh) * | 2020-08-10 | 2022-04-12 | 中国平安人寿保险股份有限公司 | 基于人工智能的用户身份识别方法、装置、终端及介质 |
CN112559707A (zh) * | 2020-12-16 | 2021-03-26 | 四川智仟科技有限公司 | 一种基于知识驱动的客服问答方法 |
CN117178274A (zh) * | 2021-05-21 | 2023-12-05 | 谷歌有限责任公司 | 生成中间文本分析以服务于上下文文本生成的机器学习语言模型 |
CN113535144A (zh) * | 2021-06-15 | 2021-10-22 | 北京彩彻区明科技有限公司 | 自然语言编程方法、装置、设备及存储介质 |
CN113609157A (zh) * | 2021-08-09 | 2021-11-05 | 平安科技(深圳)有限公司 | 语言转换模型训练、语言转换方法、装置、设备及介质 |
CN113609157B (zh) * | 2021-08-09 | 2023-06-30 | 平安科技(深圳)有限公司 | 语言转换模型训练、语言转换方法、装置、设备及介质 |
CN113901799A (zh) * | 2021-12-07 | 2022-01-07 | 苏州浪潮智能科技有限公司 | 模型训练、文本预测方法、装置、电子设备及介质 |
CN113901799B (zh) * | 2021-12-07 | 2022-03-08 | 苏州浪潮智能科技有限公司 | 模型训练、文本预测方法、装置、电子设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
US11947917B2 (en) | 2024-04-02 |
CN111095259B (zh) | 2023-08-22 |
US11256866B2 (en) | 2022-02-22 |
EP3625699A1 (en) | 2020-03-25 |
US20220171942A1 (en) | 2022-06-02 |
US20200364408A1 (en) | 2020-11-19 |
WO2019083519A1 (en) | 2019-05-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111095259B (zh) | 使用n-gram机器的自然语言处理 | |
Alvarez-Melis et al. | A causal framework for explaining the predictions of black-box sequence-to-sequence models | |
US12061954B2 (en) | Methods, systems, and computer program product for dynamically modifying a dynamic flow of a software application | |
US10474478B2 (en) | Methods, systems, and computer program product for implementing software applications with dynamic conditions and dynamic actions | |
US11704506B2 (en) | Learned evaluation model for grading quality of natural language generation outputs | |
CN110326002A (zh) | 使用在线注意的序列处理 | |
US20230110829A1 (en) | Learned evaluation model for grading quality of natural language generation outputs | |
US20210232753A1 (en) | Ml using n-gram induced input representation | |
US20220245353A1 (en) | System and method for entity labeling in a natural language understanding (nlu) framework | |
US20220245361A1 (en) | System and method for managing and optimizing lookup source templates in a natural language understanding (nlu) framework | |
Wang et al. | The APVA-TURBO approach to question answering in knowledge base | |
KR102507809B1 (ko) | 공감대 형성을 통한 심리 치료용 인공지능 대화 시스템 | |
US20240256965A1 (en) | Instruction Fine-Tuning Machine-Learned Models Using Intermediate Reasoning Steps | |
US20220245352A1 (en) | Ensemble scoring system for a natural language understanding (nlu) framework | |
US20220229990A1 (en) | System and method for lookup source segmentation scoring in a natural language understanding (nlu) framework | |
US20220229986A1 (en) | System and method for compiling and using taxonomy lookup sources in a natural language understanding (nlu) framework | |
JP2019133563A (ja) | 情報処理装置および情報処理システム | |
US20240256964A1 (en) | Pretraining Already-Pretrained Models for Diverse Downstream Tasks | |
US20240152546A1 (en) | Processing Diagrams as Search Input | |
Peng et al. | Interactive Mongolian Question Answer Matching Model Based on Attention Mechanism in the Law Domain | |
Seiranian | Large Language Model Parameter Efficient Fine-Tuning for Mathematical Problem Solving | |
Xavier et al. | Math Word Problem Solving with Guided-Context Tree-Structured Model | |
Shrivastava | Contextual cues for deep learning models of code | |
Zhang et al. | ParTRE: A relational triple extraction model of complicated entities and imbalanced relations in Parkinson’s disease | |
Velu et al. | 5 LLM Pretraining Methods |
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 |