CN110192210B - 构建和处理用于动态结构化机器学习模型的计算图 - Google Patents
构建和处理用于动态结构化机器学习模型的计算图 Download PDFInfo
- Publication number
- CN110192210B CN110192210B CN201780067874.0A CN201780067874A CN110192210B CN 110192210 B CN110192210 B CN 110192210B CN 201780067874 A CN201780067874 A CN 201780067874A CN 110192210 B CN110192210 B CN 110192210B
- Authority
- CN
- China
- Prior art keywords
- input
- machine learning
- data
- learning model
- operations
- 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
- 238000010801 machine learning Methods 0.000 title claims abstract description 125
- 238000012545 processing Methods 0.000 title claims abstract description 55
- 238000010276 construction Methods 0.000 title description 2
- 238000000034 method Methods 0.000 claims abstract description 67
- 230000008569 process Effects 0.000 claims abstract description 30
- 239000013598 vector Substances 0.000 claims description 66
- 230000015572 biosynthetic process Effects 0.000 claims description 34
- 238000003786 synthesis reaction Methods 0.000 claims description 34
- 230000001419 dependent effect Effects 0.000 claims description 7
- 238000004590 computer program Methods 0.000 abstract description 14
- 241000282472 Canis lupus familiaris Species 0.000 description 21
- 238000010586 diagram Methods 0.000 description 9
- 230000015654 memory Effects 0.000 description 8
- 230000009471 action Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 230000004044 response Effects 0.000 description 5
- 230000010354 integration Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 238000003058 natural language processing Methods 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 2
- 239000012634 fragment Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 241000282326 Felis catus Species 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000000872 buffer Substances 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013075 data extraction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007787 long-term memory Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/205—Parsing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/43—Checking; Contextual analysis
- G06F8/433—Dependency analysis; Data or control flow analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/45—Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Medical Informatics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- General Health & Medical Sciences (AREA)
- Machine Translation (AREA)
Abstract
公开了用于构造和处理表示动态结构化机器学习模型的计算图的方法、***和装置,包括在计算机存储介质上编码的计算机程序。示例***接收识别能够对输入数据执行的多个操作的数据,以用于由动态结构化机器学习模型进行处理。该***还接收与用于多个操作的自变量相对应的多个标签。有向计算图表示动态结构化机器学习模型的综合层。然后,该***接收用于处理的输入,并且指定通过有向计算图的数据流。通过根据各个实现方式来构建单个计算图,机器学习***能够接受并且有效地处理具有不同特征的输入数据。具体地,***能够在不需要为每个输入重写计算图的情况下处理各种形状的输入。
Description
技术领域
本说明书涉及一种构建和处理表示动态结构化机器学习模型的计算图。
背景技术
机器学习模型接收输入并基于所接收的输入和模型参数的值生成输出。由一些机器学习模型执行的操作能够是依赖于输入的,因此,机器学习模型根据它们的输入被动态地构造。
发明内容
本说明书通常描述了与机器学习***有关的技术,并且具体地描述了用于构造表示依赖于输入的机器学习模型架构的单个计算图并且使用计算图调度要处理的输入的***和方法。通过根据各个实施方式来构建单个计算图,机器学习***能够接受并有效地处理具有不同特征的输入数据。特别地,在各个实施方式中,***能够在不需要为每个输入重写计算图的情况下处理各种形状的输入。
通常,本说明书中描述的主题的一个创新方面能够以以下操作的方法被实施,该方法包括下述活动:接收识别能够对输入数据执行的多个操作的数据,以用于由动态结构化机器学习模型处理;接收与用于所述多个操作的自变量相对应的多个标签;从所识别的操作和标签生成表示所述动态结构化机器学习模型的综合层的有向计算图,其中,所述综合层是包括能够由所述动态结构化机器学习模型执行的每个可能操作的层;接收用于由所述动态结构化机器学习模型处理的输入,其中,所述输入包括多个令牌和指定用于所述多个令牌的标签的标签数据;以及指定通过所述有向计算图的数据流以适合所接收的标签数据。该方法可以包括使用动态结构化机器学习模型处理输入数据。在一些实施方式中,动态结构化机器学习模型被配置成用于自然语言处理。示例***包括一个或多个计算机和存储指令的一个或多个存储设备,该指令在由一个或多个计算机执行时使得一个或多个计算机执行示例方法。
该方面的其他实施例包括相对应的计算机***、装置以及在一个或多个计算机存储设备上记录的计算机程序,分别被配置为执行这些方法的动作。对于要被配置为执行特定操作或动作的一个或多个计算机的***意味着该***已经在其上安装了软件、固件、硬件或它们的组合,其在操作中使***执行操作或动作。对于被配置为执行特定操作或动作的一个或多个计算机程序,意味着一个或多个程序包括当由数据处理装置执行时,使装置执行操作或动作的指令。
前述和其他实施方案能够分别可选地包括单独的或组合地以下特征中的一个或多个。特别地,一个实施例以组合方式包括所有以下特征。生成所述有向计算图能够包括:对于所述操作中的每一个的每个自变量,将相应变量***到所述计算图中,所述相应变量表示相应布线向量,所述相应布线向量指定具有与接收的输入中的所述操作自变量相对应的每个标签的令牌的位置。指定数据流包括:对于每个操作的每个自变量,修改所述布线向量以(i)识别具有与所述自变量相对应的标签的令牌在所述输入中的位置,或者(ii)如果没有令牌具有与所述输入中的所述自变量相对应的标签,则识别在所述输入中不存在所述自变量的令牌。生成所述有向计算图能够包括:为每个操作自变量***相对应的收集操作,所述收集操作接收与所述操作自变量和输入向量相关联的布线向量作为输入,并且将结果输出给所述操作自变量所对应的操作。生成有向计算图能够包括:向所述计算图添加级联所述层中的操作的所有结果的级联操作。使用所接收的标签数据指定通过所述单个有向计算图的数据流能够包括:确定所述标签数据是否具有多级标签;响应于确定所述标签数据具有多级,对于所述标签数据的每一级,将所述计算图的副本生成为所述图的新层,其中,所述计算图的前一层的输出是所述图的下一层的输入。对于每一层,可以根据所述标签数据中的相对应的级,来修改所述布线向量。可以执行所述计算图的操作;以及可以使用最终收集操作来选择结果作为所述模型的输出。可以接收第二输入以用于由所述动态结构化机器学习模型进行处理,所述动态结构化机器学习模型包括第二多个令牌和不同于所述树输入的第二标签数据;以及通过所述单个有向计算图的所述层来修改所述第二令牌的数据流,以适合所述第二标签数据。执行所述计算图的所述操作能够包括:将所述计算图中的节点分配在多个设备上;以及使所述设备中的每一个执行由分配给该设备的节点表示的操作。
本说明书中描述的主题能够在特定实施例中被实现,以便实现以下优点中的一个或多个。通过构建动态结构化机器学习模型,能够接受不同形状的输入图的单个计算图,机器学习***能够接受并有效地处理到机器学习模型、形状不同的输入数据。具体地,***能够在不需要为每个输入重写计算图的情况下处理各种形状的输入。一些惯例的***禁止计算图重写,而其他***允许重写,但这些重写效率低下。因为在示例***中不需要重写,所以减少了到处理动态结构化模型的输入的大规模处理所需的计算资源量,并且输入处理更有效。当向动态结构化机器学习模型接收输入时,不必重写表示模型的计算图,并且能够有效地调度输入用于由多个硬件设备进行处理。
在附图和下述描述中,阐述本说明书的主题的一个或多个实施例的细节。从该描述、附图和权利要求,该主题的其他特征、方面和优点将是显而易见的。
附图说明
图1A图示了示例机器学习***。
图1B是用于在图1A的***中分布表示为计算图的操作的示例性框架的概念图。
图2A图示了句子“大狗跑”的语法图。
图2B图示了句子“这狗快跑”的语法图。
图3是用于构造和使用表示动态结构化机器学习模型的单个有向计算图的示例性过程的流程图。
图4图示了表示动态结构化机器学习模型的综合层的有向计算图,该动态结构化机器学习模型支持仿真由类型"D"、"ADJ"、"N"、"ADV"、"V"、"NP"、"VP"和"S"的单词组成的任意输入图形。
图5是用于构造和使用表示动态结构化机器学习模型、具有多个层的单个有向计算图的示例性过程的流程图。
不同图中的相同的参考数字和标记表示相同的元件。
具体实施方式
动态结构化机器学习模型根据其接收的输入具有各种形状。也就是说,由动态结构化机器学习模型执行的以生成来自接收的输入的输出的操作将根据输入的特性而不同。
动态结构化机器学习模型的示例是通过以拓扑顺序遍历给定结构而生成的递归神经网络。动态结构化机器学习模型的其他示例包括网格长短期记忆网络的高维稀疏变体和包含示例相关的深度的多个长短期记忆网络的任意架构。动态结构化机器学习模型的另外的示例包括图卷积神经网络和树长短期记忆网络。动态结构化机器学习模型能够被配置为接收任何类型的数字数据输入并且基于该输入来生成任何类型的评分、分类或回归输出。
例如,动态结构化机器学习模型能够将输入文本段和输入文本段的解析树接收为输入,并且能够处理文本段以生成文本段的自然语言处理输出,例如,以将文本段分类为与一个或多个主题相关、分类文本段的观点、预测应当跟随在输入文本段的一个或多个单词等等。作为另一示例,动态结构化机器学习模型能够生成文本段的数值表示,例如,表示该文本段的向量或其他有序数值集合,其能够由另一机器学习模型或***处理以生成文本段的自然语言处理输出或以其他方式分类文本段
特别地,在这些示例中,来自序列的输入单词被解析成解析树以显示每个序列的语法结构。到模型的每个输入能够包括单词序列和单词序列的解析树,其将单词分类为句子的一个或多个部分,包括:限定词(D)、形容词(ADJ)、名词(N)、副词(ADV)、动词(V)、名词短语(NP)、和动词短语(VP)。
作为另一示例,动态结构机器学习模型能够采取诸如JSON或协议缓冲器的任意结构化数据,并且构建通用机器学习模型。作为又一示例,动态结构化机器学习模型能够接收以构建机器学习模型的化学性质的图形结构,从而确定模型的化学性质。
一些***将机器学习模型的操作(例如,用于从输入生成推断或用于训练模型的操作)表示为节点和有向边的计算图,以便处理用于机器学习模型的输入或者训练机器学习模型。
然而,一旦定义了表示机器学习模型的计算图的结构,就很难修改图结构来接受不同形状的输入数据。在一些传统***中,不可能修改图结构。在其他传统***中,***允许修改,但***可能不被设计为快速修改图形。因此,为了处理动态结构化模型的不同形状的数据,现有***必须为每个输入形状构建新的计算图。构建多个计算图的这个过程低效且复杂,使得难以通过将机器学习模型表示为计算图来表示***中的、执行对机器学习模型的输入的处理的动态结构化机器学习模型。
通过构建仿真用于给定数据集的所有可能输入数据图或树结构的行为的单个计算图,本说明书中描述的示例***能够容易且有效地表示依赖与输入的动态结构化机器学习模型。
图1A图示了示例机器学习***(100)。机器学习***(100)是被实现为一个或多个位置中的一个或多个计算机上的计算机程序的***的示例,其中,下文所述的***、组件和技术被实现。
机器学习***(100)包括配置引擎(103),其接收识别操作的数据(101),该操作能够对由动态结构化机器学习模型输入的图形或树执行。这些操作分别将一个或多个自变量用作输入并且产生结果输出。
对于每个操作,配置引擎(103)接收指定操作的自变量中的每一个的可能标签的数据。也就是说,每个操作仅对输入数据能够具有的可能标签的子集进行操作,并且所接收的数据识别与操作自变量中的每一个相对应的标签的子集。
然后,配置引擎(103)将表示用于每个操作自变量的布线向量的节点与表示相对应的操作以及收集和连接操作的节点连接,以生成包括用于每个接收的操作的相应节点的计算图,并且用额外的节点和边进行扩充,以支持处理任意输入树。在下文中,将更详细地描述生成计算图。
一旦已经生成了计算图,机器学习***(100)就能够接收能够由表示机器学习模型的计算图调度并处理的标签输入数据(105),以产生模型输出(106)。
示例***修改了布线向量以使数据流通过计算图来匹配该输入,可选地,使计算图的副本考虑具有多个级的输入。
由计算图表示的操作使得在其上调度操作的设备使用指定的数据流来执行操作。在Martin Abadi等人的“TensorFlow:Large-Scale Machine Learning on HeterogeneousDistributed Systems”(2015年11月9日)中描述了用于执行由计算图表示的操作的示例性技术。
***100执行操作以通过在多个设备上划分由计算图表示的操作来生成特定输出。***100将操作划分给数据通信网络(例如,局域网(LAN)或广域网(WAN))上的多个设备。设备执行操作,并且如果适用的话,将相应的输出或指示返回给***100,***100能够向客户端返回所请求的输出或指示。
执行操作的任何设备(例如,设备)能够包括用于存储指令和数据的存储器(例如,随机存取存储器(RAM))和用于执行存储的指令的处理器。通常,每个设备是独立于其他设备来执行操作的硬件资源。例如,每个设备能够具有自己的处理单元。设备能够是图形处理单元(GPU)或中央处理单元(CPU)。举例来说,一台机器能够托管一个或多个设备,例如多个CPU和GPU。能够在图1B中看到这些设备和机器的示例。
图1B是用于分布在***100中表示为计算图的操作的示例性框架的概念图。现在参考图1B,机器的示例能够包括计算设备126、个人计算机128、移动设备130、和服务器132。每个机器可以例如包括一个或多个设备,例如GPU 116和CPU 118。
每个设备还能够具有相应的计算能力。也就是说,设备能够具有不同数量的存储器、处理速度、或其他架构特征。因此,一些设备能够执行其他设备无法执行的操作。例如,一些操作需要仅特定设备具有的一定量的存储器,或者一些设备被配置为仅执行特定类型的操作,例如推理操作。
通常,所标记的输入数据包括一组输入令牌和指定用于输入令牌的标签的树。也就是说,标签可以是分层的,其中,树的第一级中的标签直接标记输入中的输入令牌,并且树的每个较高级中的标签标记来自树中较低级的输入令牌或标签。
图2A和2B图示了形状上不同的两个解析树。这两个解析树能够是用于单个动态结构化机器学习模型的输入,其通过由机器学习***100构建的单个计算图来表示。
图2A图示了句子“大狗跑”的语法图200。在该示例中,“大”是形容词,“狗”是名词,“跑”是动词。解析树的单词是能够被标记使得示例***理解每个单词的数据类型的令牌。短语“大狗”能够被标记为名词短语,其中,“大”作为名词短语的第一自变量,而“狗”作为名词短语的第二自变量。与动词一起使用的名词短语构成完整的句子。如所示,该句子的解析树是三级深度,第一级为形容词、名词和动词,第二级为名词短语,第三级为完整句子表示。
图2B图示了句子“这狗快跑”的语法图250。在该示例中,“这”是限定词,“狗”是名词,“跑”是动词,“快”是副词。如上所述,能够标记这些数据类型,使得示例***理解解析树的每个令牌代表的数据的类型。短语“这狗”是名词短语,“快跑”是动词短语。名词和动词短语一起组成完整的句子。该句子图的解析树也是三层深度。但是,该解析树在第一级具有限定词、名词、动词和副词。该树在第二级具有名词短语和动词短语,并且在第三级具有完整的句子。
图2A和图2B的示例图示了解析树能够具有不同的形状。因此,将解析树或其他图形数据提供为用于机器学习模型的输入因此能够导致机器学习模型根据其处理的输入数据而动态地改变结构。示例机器学习模型对不同的输入标签执行不同的操作,例如,对标记为名词的输入执行一个操作而对标记为动词的输入执行另一个操作。为了在计算图中表示机器学习模型的可能结构,机器学习***100构建了固定结构的计算图,其能够表示用于对模型的所有潜在输入的模型结构。
图3是用于构建和使用表示动态结构化机器学习模型的单个有向计算图的示例过程300的流程图。为方便起见,过程300将被描述为由位于一个或多个位置的一个或多个计算机的***执行并且过程300根据本说明书适当地被编程。例如,适当被编程的机器学习***(例如,图1A的机器学习***100)能够执行过程300。
该***接收识别能够对动态结构化机器学习模型的输入数据执行的操作的数据(301)。假定来自图2A和图2B的解析的句子示例,该***接收形容词、名词、动词、限定词、副词、名词短语、动词短语、和句子操作。
该***还接收与操作的自变量相对应的标签(302)。也就是说,对于每个操作,该***接收识别操作的自变量中的每一个的可能标签的数据。例如,诸如“NP Arg 1”的标签表示对应于该标签的数据应当被作为名词短语操作的第一自变量输入到计算图中。用于名词短语操作的标签能够将第一自变量指定为限定词操作的输出或形容词操作的输出。这些标签还能够将第二自变量指定为名词操作的输出。
然后,该***能够由所识别的操作和标签生成表示动态结构化机器学习模型的综合层的计算图(303)。综合层是包括能够由机器学习模型执行的每个可能操作的层。
该***通过以下操作来生成计算图:对每个可能的操作,首先将用于操作的每个自变量的相应的布线向量和作为输入的图输入连接到表示相对应的收集操作的节点。
布线向量是占位符变量或提取用于操作的自变量的索引的数据提取操作。这种类型的向量在计算图中被表示为变量。每个操作自变量在计算图中具有等效的布线向量,其表示操作自变量的存在。如果操作自变量存在于由其标签识别的标记输入数据中,则用于操作的布线向量指定具有操作自变量所对应的标签的输入的位置。将用于输入中不存在的操作自变量的布线设置为空或空集,使得示例计算图在计算图的数据流中不包括这些操作自变量。示例***使用长度大于一的布线向量支持操作自变量的多个实例。例如,如果是图2B的示例句子被修改为“狗和猫快跑。”则用于名词操作自变量的布线向量将包括带有两个元素1和3的向量,以使用零基索引表示句子的名词位于句子的第一位置和第三位置。
收集操作根据由收集操作调用指定的索引,来从输入的自变量收集片段(slice)。该操作使用一种向量寻址,其中从给定行索引的列表的向量中选择行。收集操作仿真物理复用器。也就是说,每个收集操作接收输入和布线向量,该布线向量指定与相对应的操作相对应的输入的部分的位置,并且输出该输入的相对应的部分。示例***将一个收集操作***到包括用于每个操作类型的直通操作的每个预先声明的操作的每个自变量的计算图中。
在将线向量和输入图连接到表示收集操作的节点之后,然后,示例***将作为输入的表示收集操作的节点连接到表示其相对应的操作的节点。然后,示例***将表示可能操作的每个节点连接到表示级联操作的节点,以级联这些操作的输出来完成动态结构化机器学习模型的综合层,该综合层表示输入图的级。示例***包括用于每个支持的张量类型的一个级联操作。张量类型包括数据类型和数据形状。如果张量类型是计算图中的操作的输入或输出类型,则支持张量类型。
该过程生成表示等同于输入图的一级的机器学习模型的综合层的有向计算图,并且然后能够被用于调度用于动态结构化机器学习模型的输入。
一旦生成了计算图,***就能够接收所标记的输入数据以供动态结构化机器学习模型处理(304),并且指定通过该图的数据流以适合所接收的标记输入数据(305)。
图4图示了支持仿真由节点的类型“D”、“ADJ”、“N”、“ADV”、“V”、“NP”、“VP”和“S”组成的任意输入图的计算图400。在图4中,椭圆表示占位符变量,矩形表示能够对输入数据执行的操作或操作组的节点。计算图中的变量和操作节点通过边连接以形成有向计算图,其表示动态结构化机器学习模型的综合层并且与解析树的第一级相对应。“输入”椭圆被填充有包含单词向量的矩阵。解析树被用于指定单词向量的数据流。在这种情况下,输入是单词向量,它们是例如单词或短语的句子片段的数字表示,以及操作是能够对句子片段执行的操作。为每个操作自变量生成布线向量,如图4所示。每个布线向量连接到收集操作,然后该收集操作馈送到操作自变量所对应的适当操作。这些操作输出输入到级联操作的结果。
为了调度图2A的输入以供处理,图4的示例***采用具有标签的单词向量的输入向量,[<大>,<狗>,<跑>],该标签与由输入表示的数据类型相对应。示例***将设置与解析树中每个级处的标记输入数据的位置相对应的布线向量的值。例如,图4是表示与图2A中所示的解析树的第一级的机器学习模型的第一综合层的有向计算图。在第一级处,解析树将令牌“大”标记为形容词;令牌“狗”标记为名词,以及令牌“跑”标记为动词。在该示例中,示例***接收该标记的数据,然后相应地生成每个占位符变量的相对应的布线向量。例如,因为输入向量的第一元素(零索引)是被标记为形容词的“大”,所以***将形容词(ADJ)布线设置为[0]。
在该示例中,因为输入向量的第二元素是被标记为名词的“狗”,所以机器学习模型***将名词(N)布线设置为[1],以及因为输入向量的第三元素被标记为动词“跑”,所以动词(v)布线被设置为[2]。所有其他布线向量均被设置为空或空向量。示例机器学习模型***调度与解析树的第一级相对应的这个第一综合层,使得在操作中,执行该示例配置图以级联综合层导致,从而导致向量[ADJ(<大>),N(<狗>),V(<跑>)]。
图5是用于构造和使用表示动态结构化机器学习模型的、具有多个层的单个有向计算图的示例性过程500的流程图。为方便起见,过程500将被描述为由位于一个或多个位置的一个或多个计算机的***执行,并且该过程500根据本说明书适当地被编程。例如,适当编程的机器学习***(例如,图1A的机器学习***100)能够执行过程500。
***接收具有即解析树的多级的标记输入数据,用于由动态结构化机器学习模型进行处理(502)。
示例***使用所接收的标记输入数据指定通过图的当前综合层的数据流(503)。对于输入图的后续级,示例***使用先前综合层的输出作为用于当前层的输入来构造表示模型的计算图的综合层的副本。
如上所述,图2A的解析树具有是分级的三级。一旦调度了第一综合层,示例***就构建了计算图的第二综合层,该层采用第一综合层的输出,[ADJ<大>,N(<狗>),V(<跑>)]作为输入。在该第二综合层中,计算图使用该输入和用于该输入的标签来确定令牌“ADJ(<大>)是名词短语(NP)的第一自变量以及令牌”N(<狗>)是第二自变量。所有其他布线向量都被设置为空或空向量。图4示出了输入和到收集操作的输入的示例计算图的级联操作之间的箭头,该箭头还采用直通布线向量。该收集操作允许在解析树中跳级,诸如在其中没有动词短语的图2A中,因此动词输入从级一跳到级三。在这种情况下,机器学习模型***在第二级处设置直通布线向量toe[2],以便通过第二层直通V(<跑>)。***调度了与解析树的第二级相对应的第二综合层,使得在操作中,执行示例计算图以级联综合层,从而导致向量,[NP(ADJ(<大>),N(<狗>),V(<跑>)]。
然后,示例***构造第三层,其采用第二综合层的输出,[NP(ADJ(<大>),N(<狗>)),V(<跑>)],作为输入。计算图使用该输入和数据的标签来确定令牌NP(ADJ(<大>),N(<狗>))和令牌V(<跑>)分别是用于句子的第一自变量和第二自变量。因此,在该综合层处,“SArg 1Wiring”被设置为[0]并且“S Arg 2Wiring”被设置为[1]。所有其他布线向量都被设置为空空向量。***调度了与解析树的第三级相对应的第三综合层,使得在操作中,执行示例计算图以级联层,从而导致[S(NP(ADJ(<大>),N(<狗>)),V(<跑>))]。
一旦已经将所有综合层添加到计算图并且已经调度和处理了数据,示例***就使用最终收集操作来确定模型的输出。最后一个综合层的最后一个级联通过最终收集操作,以便示例***选择应当从模型输出的结果。在该示例中,输出是表示短语的嵌入式的向量,例如S(NP(ADJ(<大>),N(<狗>)),V(<跑>)))。最后一个收集操作过滤掉图中的具有最大深度但不是输出的任何节点。收集操作还将剩余的输出混洗成由用户期望的顺序。当用户将节点标记为输出时,与这些节点相对应的值将按照节点被标记的顺序出现在机器学习模型输出张量中。在该示例中,结果能够被馈送到网络中,该网络试图将句子向量转换成分类。
能够如上参考为定义图2A的解析树的令牌和标签设定的布线向量,以与图2A的解析树类似的方式,由图4的计算图来调度和处理图2B的解析树。因为图2B的解析树具有与图2A的解析树不同的形状,对于图2B的解析树的处理,布线向量的值将是不同的。因此,通过修改综合机器学习层的图形表示中的布线向量并且在不对每个输入重写图形的情况下,能够有效地处理到动态结构化机器学习模型的不同输入。
虽然上述示例示出了每个操作的至多一个实例,但是示例***能够使用长度大于1的布线向量来支持具有操作的多个实例的输入图。附加地,为简单起见,每个示例都示出了单个输入图。然而,在给定适当的布线连接的情况下,示例***能够以并行的方式执行一批输入图。具体地,示例***能够采用一批图形的并集来生成能够在其上运行的单个的、不连续的图算法。
能以数字电子电路、有形嵌入的计算机软件或固件、计算机硬件,包括在本说明书中公开的结构及它们的结构等效,或它们中的一个或多个的组合,实现在本说明书中所述的主题和操作的实施例。在本说明书中描述的主题的实施例能够被实现为一个或多个计算机程序,即,在用于由数据处理装置执行或控制其操作的有形非瞬时存储介质上编码的计算机程序指令的一个或多个模块。计算机存储介质能够是机器可读存储设备、机器可读存储基板、随机或串行存取存储设备,或它们中的一个或多个的组合。然而,计算机存储介质不是传播信号。可替代地或附加地,程序指令能够被编码在人工生成的传播信号,例如,机器生成的电、光、电磁信号上,人工生成的传播信号被生成来编码用于传输到适当的接收机装置以用于由数据处理装置执行的信息。
术语“数据处理装置”是指数据处理硬件并且包含用于处理数据的所有装置、设备和机器,举例来说,包括可编程处理器、计算机或多处理器或计算机。该装置还能够是或进一步包括专用逻辑电路,例如,FPGA(现场可编程门向量)或ASIC(专用集成电路)。除了硬件之外,该装置能可选地包括创建用于计算机程序的执行环境的代码,例如,构成处理器固件、协议栈、数据库管理***、操作***、或它们的一个或多个的组合的代码。
计算机程序(也称为或描述为程序、软件、软件应用、应用、模块、软件模块、脚本或代码)能够以任何形式的编程语言(包括汇编或解释语言、说明性或过程语言)编写,并且能以任何形式(包括作为适合于用在计算环境中的独立程序或作为模块、部件、子例程、或其他单元)部署。程序可以但不必与文件***中的文件相对应。程序能够被存储在保留其他程序或数据,例如以标记语言文档存储的一个或多个脚本的文件的一部分中、专用于所述程序的单个文件中,或多个协同文件,例如存储一个或多个模块、子程序或代码的一部分的文件中。计算机程序能够被部署为在一个计算机上或位于一个站点或跨多个站点分布的并且由数据通信网络互联的多个计算机上执行。
如在本说明书中所使用的,“引擎”或“软件引擎”是指软件实现的输入/输出***,提供了不同于输入的输出。引擎能是功能性的编码块,诸如库、平台、软件开发工具包(“SDK”)、或对象。每个引擎能够被实现在任何适当类型的计算设备,例如包括一个或多个处理器和计算机可读介质的服务器、移动电话、平板计算机、笔记本计算机、音乐播放器、电子书阅读器、膝上型或台式计算机、PDA、智能电话,或其他固定或便携式设备上。附加地,这些引擎的两个或更多个可以被实现在同一计算设备,或不同计算设备上。
在本说明书中所述的过程和逻辑流能够由执行一个或多个计算机程序的一个或多个可编程计算机执行,以通过对输入数据进行操作并生生输出来执行功能。过程和逻辑流还能够由专用逻辑电路,例如FPGA或ASIC,或由专用逻辑电路和一个或多个编程计算机的组合来执行。
适合于执行计算机程序的计算机能够是基于通用和专用微处理器或两者,或任何其他类型中央处理单元。通常,中央处理单元将从只读存储器、随机存取存储器或两者接收指令和数据。计算机的主要元件是用于实行或执行指令的中央处理单元以及用于存储指令和数据的一个或多个存储装置。中央处理单元和存储器能够由专用逻辑电路补充或并入该专用逻辑电路。通常,计算机还将包括用于存储数据的一个或多个大容量存储设备,例如磁盘、磁光盘,或光盘,或可操作地耦合以从其接收数据或向其传送数据或两者。然而,计算机不需要具有这些设备。此外,计算机能够被嵌入在另一设备中,例如智能电话、个人数字助理(PDA)、移动音频或视频播放器、游戏控制台、全球定位***(GPS)接收机、或便携式存储设备,例如通用串行总线(USB)闪速驱动,仅举几例。
适合于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,举例来说包括半导体存储设备,例如EPROM、EEPROM和闪速存储器设备、例如内部硬盘或可移动盘的磁盘、磁光盘、以及CD-ROM和DVD-ROM盘。
为提供用于与用户交互,在本说明书中所述的主题的实施例能够被实现在具有用于向用户显示信息的显示设备,例如CRT(阴极射线管)或LCD(液晶显示器)监视器以及用户通过其能够向计算机提供输入的键盘和指示设备,例如鼠标或轨迹球或的计算机上。其他类型的设备也能够用于提供与用户交互;例如,提供给用户的反馈能是任何形式的感官反馈,例如视觉反馈、听觉反馈、或触觉反馈,以及能够以任何形式接收来自用户的输入,包括声频、语音、或触觉输入。此外,计算机能通过以下操作来与用户交互:向由用户使用的设备发送文档并从其接收文档,例如响应于从Web浏览器接收的请求,向用户的设备上的Web浏览器发送网页。同时,计算机能够通过以下操作来与用户交互:将文本消息或其他形式的消息发送到例如智能电话的个人设备,运行消息应用,以及作为回应从用户接收响应消息。
能够在包括后端组件,例如作为数据服务器,或包括中间件组件,例如应用服务器,或包括前端组件,例如具有用户通过其来与本说明书中所述的主题的实现方式交互的图形用户界面、Web浏览器、或应用的客户计算机,或一个或多个这种后端、中间件或前端组件的任意组合的计算机***中实现本说明书中所述的主题的实施例。***的组件能够通过任何形式或媒介的数字数据通信,例如通信网络互连。通信网络的示例包括局域网(LAN)和广域网(WAN),例如互联网。
计算机***能够包括客户机和服务器。客户机和服务器通常彼此远离并且通常通过通信网络互连。客户机和服务器的关系利用在相应的计算机上运行并且具有客户机-服务器关系的计算机程序来产生。在一些实施方式中,例如针对向与充当客户端的设备交互的用户显示数据以及从该用户接收用户输入的目的,服务器将例如HTML页的数据传送到用户设备。能够在服务器处从该设备接收在用户设备处生成的数据,例如,用户交互的结果。
除了附加权利要求的实施例和上述实施例之外,下述编号的实施例也是创新的:
实施例1是一种方法,包括:
接收识别能够对输入数据执行的多个操作的数据,以用于由动态结构化机器学习模型处理;
接收与用于所述多个操作的自变量相对应的多个标签;
从所识别的操作和标签生成表示所述动态结构化机器学习模型的综合层的有向计算图,其中,所述综合层是包括能够由所述动态结构化机器学习模型执行的每个可能操作的层;
接收用于由所述动态结构化机器学习模型处理的输入,其中,所述输入包括多个令牌和指定用于所述多个令牌的标签的标签数据;以及
指定通过所述有向计算图的数据流以适合所接收的标签数据。
实施例1可以提供下述技术优点或效果中的一个或多个:***能够在不要求对每个输入重写计算图的情况下处理各种形状的输入。当输入被接收为动态结构化学习模型时,表示该模型的计算图不必被重写并且输入能够有效地被调度用于由多个硬件设备进行处理。
实施例2是实施例1所述的方法,其中,生成所述有向计算图包括:
对于所述操作中的每一个的每个自变量,将相应变量***到所述计算图中,所述相应变量表示相应布线向量,所述相应布线向量指定具有与接收的输入中的所述操作自变量相对应的每个标签的令牌的位置。
实施例3是实施例2所述的方法,其中,指定数据流包括:
对于每个操作的每个自变量,修改所述布线向量以(i)识别具有与所述自变量相对应的标签的令牌在所述输入中的位置,或者(ii)如果没有令牌具有与所述输入中的所述自变量相对应的标签,则识别在所述输入中不存在所述自变量的令牌。
实施例4是实施例2或3的任何一个所述的方法,其中,生成有向计算图包括:为每个操作自变量***相对应的收集操作,所述收集操作接收与所述操作自变量和输入向量相关联的布线向量作为输入,并且将结果输出给所述操作自变量所对应的操作。
实施例5是实施例1至4中的任何一个所述的方法,其中,生成有向计算图包括:
向所述计算图添加级联所述层中的操作的所有结果的级联操作。
实施例6是实施例1至5中的任何一个所述的方法,其中,使用所接收的标签数据指定通过所述单个有向计算图的数据流包括:
确定所述标签数据是否具有多级标签;
响应于确定所述标签数据具有多级,
对于所述标签数据的每一级,将所述计算图的副本生成为所述图的新层,其中,所述计算图的前一层的输出是所述图的下一层的输入。
实施例7是实施例6所述的方法,进一步包括:
对于每一层,根据所述标签数据中的所述相对应的级,来修改所述布线向量。
实施例8是实施例1至7中的任何一个所述的方法,进一步包括:
执行所述计算图的所述操作;以及
使用最终收集操作来选择结果作为所述模型的输出。
实施例9是实施例1至8中的任何一个所述的方法,进一步包括:
接收第二输入以用于由所述动态结构化机器学习模型进行处理,所述动态结构化机器学习模型包括第二多个令牌和不同于所述树输入的第二标签数据;以及
通过所述单个有向计算图的所述层来修改所述第二令牌的数据流,以适合所述第二标签数据。
实施例10是实施例8所述的方法,其中,执行所述计算图的所述操作包括:
将所述计算图中的节点分配在多个设备上;以及
使所述设备中的每一个执行由分配给该设备的节点表示的操作。
实施例11是一种***,包括:一个或多个计算机和存储指令的一个或多个存储设备,所述指令在由一个或多个计算机执行时能够使一个或多个计算机执行权利要求1至10中的任何一个所述的方法。
实施例12是编码有计算机程序的计算机存储介质,该程序包括指令,所述指令可操作为在由数据处理装置执行时使所述数据处理装置执行权利要求1至10中的任何一个所述的方法的指令。
尽管本说明书包含许多具体实现细节,但这些不应当解释为限制任何发明或所要求的范围,而是能够专用于具体发明的特定实施例的特征的描述。在单一实施例中,能结合实现在单独的实施例的场境中,本说明书中所述的某些特征。相反,还能在单独的多个实施例中或在任何适当的子组合中,实现在单个实施例的场境中所述的各个特征。此外,尽管上文能够将特征描述为以某些组合运作并且甚至如本身所要求的,在一些情况下,能从组合删除来自所要求的组合的一个或多个特征,以及所要求的组合能够针对子组合和/或子组合的变形。
类似地,尽管以特定顺序在图中图示操作,但这不应当理解为要求按所示的特定顺序或按顺序执行这些操作,或应执行所有所示操作来实现所需结果。在某些情况下,多任务和并行处理能够是有利的。此外,上述实施例中的各个***模块和组件的分离不应当理解为所有实施例中均要求这些分离,并且应当理解到所述程序组件和***通常一起集成在单一软件产品中或封装到多个软件产品中。
已经描述了主题的具体实施例。其他实施例在下述权利要求的范围内。例如,权利要求中所述的动作能以不同顺序执行并且仍然实现所需结果。例如,在附图中所示的过程不一定要求所示的特定顺序,或顺序地顺序来实现预期结果。在某些情况下,多任务和并行处理会有利。
Claims (30)
1.一种计算机实现的方法,包括:
接收指定动态结构化机器学习模型的数据,包括:
(i)接收识别能够对输入数据执行的多个操作的数据,以用于由所述动态结构化机器学习模型处理,以及
(ii)接收与用于所述多个操作的自变量相对应的多个标签;
其中,所述动态结构化机器学习模型被配置为使用所述多个操作中的一个或多个操作来处理所述输入数据以生成输出数据;
生成表示所述动态结构化机器学习模型的有向计算图的数据,所述有向计算图包括表示所述多个操作中能够由所述动态结构化机器学习模型执行的每个可能操作的综合层,其中,所述综合层被配置为执行所述多个操作中对于多个不同的接收的输入中的任一个输入将需要由所述动态结构化机器学习模型执行的一个或多个操作的多个组合中的任一个组合;
接收用于由所述动态结构化机器学习模型处理的输入,其中,所述输入包括多个令牌和指定用于所述多个令牌的标签的标签数据;
指定通过所述有向计算图的数据流以适合所接收的输入;以及
在一个或多个计算设备上执行所述有向计算图以根据所指定的数据流来处理所述输入。
2.如权利要求1所述的方法,其中,执行所述有向计算图包括:
使用最终收集操作来选择根据所指定的数据流来处理所述输入的结果作为模型的输出。
3.如权利要求1所述的方法,其中,执行所述有向计算图包括:
将所述有向计算图中的节点分配在所述一个或多个计算设备上;以及
使所述计算设备中的每一个计算设备执行由分配给该计算设备的节点表示的操作。
4.如权利要求1所述的方法,其中,生成所述有向计算图包括:
对于每个操作的每个自变量,将相应变量***到所述有向计算图中,所述相应变量表示相应布线向量,所述相应布线向量指定均具有与所述输入中的所述自变量相对应的标签的令牌的位置。
5.如权利要求4所述的方法,其中,指定数据流包括:
对于每个操作的每个自变量,修改所述布线向量以(i)识别具有与所述自变量的标签相对应的相应令牌在所接收的输入中的位置,或者(ii)如果没有令牌具有与所述输入中的所述自变量相对应的标签,则识别在所接收的输入中不存在所述自变量的令牌。
6.如权利要求4所述的方法,其中,生成所述有向计算图包括:
为每个自变量***相对应的收集操作,所述收集操作接收与所述自变量和输入向量相关联的布线向量作为输入,并且将结果输出给所述自变量所对应的操作。
7.如权利要求1所述的方法,其中,生成所述有向计算图包括:
向所述有向计算图添加级联所述综合层中的操作的所有结果的级联操作。
8.如权利要求1所述的方法,其中,接收指定所述动态结构化机器学习模型的数据包括接收用于所述多个标签的最大计数的级,其中,所述多个标签中的每一个标签对应于相应的级,以及
其中,生成表示所述动态结构化机器学习模型的所述有向计算图的数据包括对于从初始级开始到所述最大计数的级的每个级,生成与该级相对应的相应综合层,其中,不与所述初始级相对应的每个综合层从前一综合层接收输入。
9.如权利要求1所述的方法,其中,所述输入是第一输入,并且其中,所述方法进一步包括:
接收第二输入以用于由所述动态结构化机器学习模型进行处理,所述动态结构化机器学习模型包括与所述第一输入中包括的所述多个令牌和所述标签数据不同的第二多个令牌和第二标签数据;以及
指定通过所述有向计算图的数据流,以适合所述第二标签数据。
10.如权利要求9所述的方法,其中,指定通过所述有向计算图的数据流包括指定在每个综合层处通过该综合层中的一个或多个操作的数据流,所述一个或多个操作接收具有与该综合层相对应的标签的相应一个或多个令牌作为自变量。
11.一种用于构造和处理计算图的***,包括:
一个或多个计算机;以及
存储指令的一个或多个存储设备,所述指令在由所述一个或多个计算机执行时使所述一个或多个计算机执行方法,所述方法包括:
接收指定动态结构化机器学习模型的数据,包括:
(i)接收识别能够对输入数据执行的多个操作的数据,以用于由所述动态结构化机器学习模型处理,以及
(ii)接收与用于所述多个操作的自变量相对应的多个标签;
其中,所述动态结构化机器学习模型被配置为使用所述多个操作中的一个或多个操作来处理所述输入数据以生成输出数据;
生成表示所述动态结构化机器学习模型的有向计算图的数据,所述有向计算图包括表示所述多个操作中能够由所述动态结构化机器学习模型执行的每个可能操作的综合层,其中,所述综合层被配置为执行所述多个操作中对于多个不同的接收的输入中的任一个输入将需要由所述动态结构化机器学习模型执行的一个或多个操作的多个组合中的任一个组合;
接收用于由所述动态结构化机器学习模型处理的输入,其中,所述输入包括多个令牌和指定用于所述多个令牌的标签的标签数据;
指定通过所述有向计算图的数据流以适合所接收的输入;以及
在一个或多个计算设备上执行所述有向计算图以根据所指定的数据流来处理所述输入。
12.如权利要求11所述的***,其中,生成表示所述有向计算图的数据包括:
对于每个所述操作的每个自变量,将相应变量***到所述有向计算图中,所述相应变量表示相应布线向量,所述相应布线向量指定均具有与所接收的输入中的所述自变量相对应的标签的令牌的位置。
13.如权利要求12所述的***,其中,生成表示所述有向计算图的数据包括:
为每个自变量***相对应的收集操作,所述收集操作接收与所述自变量和输入向量相关联的布线向量作为输入,并且将结果输出给所述自变量所对应的操作。
14.如权利要求12所述的***,其中,指定数据流包括:
对于每个操作的每个自变量,修改所述相应布线向量以(i)识别具有与所述自变量相对应的标签的相应令牌在所接收的输入中的位置,或者(ii)如果没有令牌具有与所述输入中的所述自变量相对应的标签,则识别在所接收的输入中不存在所述自变量的令牌。
15.如权利要求11所述的***,其中,生成有向计算图包括:
向所述有向计算图添加级联所述综合层中的操作的所有结果的级联操作。
16.如权利要求11所述的***,其中,执行所述有向计算图包括:
使用最终收集操作来选择根据所指定的数据流来处理所述输入的结果作为模型的输出。
17.如权利要求11所述的***,其中,接收指定所述动态结构化机器学习模型的数据包括接收用于所述多个标签的最大计数的级,其中,所述多个标签中的每一个标签对应于相应的级,以及
其中,生成表示所述动态结构化机器学习模型的所述有向计算图的数据包括对于从初始级开始到所述最大计数的级的每个级,生成与该级相对应的相应综合层,其中,不与所述初始级相对应的每个综合层从前一综合层接收输入。
18.如权利要求17所述的***,其中,指定通过所述有向计算图的数据流包括指定在每个综合层处通过该综合层中的一个或多个操作的数据流,所述一个或多个操作接收具有与该综合层相对应的标签的相应一个或多个令牌作为自变量。
19.如权利要求11所述的***,其中,执行所述有向计算图包括:
将所述有向计算图中的节点分配在所述一个或多个计算设备上;以及
使所述计算设备中的每一个计算设备执行由分配给该计算设备的节点表示的操作。
20.如权利要求11所述的***,其中,所述输入是第一输入,并且其中,所述方法进一步包括:
接收第二输入以用于由所述动态结构化机器学习模型进行处理,所述动态结构化机器学习模型包括与所述第一输入中包括的所述多个令牌和所述标签数据不同的第二多个令牌和第二标签数据;以及
指定通过所述有向计算图的数据流,以适合所述第二输入。
21.一种包括指令的非瞬时计算机可读存储介质,所述指令在由处理设备执行时使所述处理设备执行方法,所述方法包括:
接收指定动态结构化机器学习模型的数据,包括:
(i)接收识别能够对输入数据执行的多个操作的数据,以用于由所述动态结构化机器学习模型处理,以及
(ii)接收与用于所述多个操作的自变量相对应的多个标签;
其中,所述动态结构化机器学习模型被配置为使用所述多个操作中的一个或多个操作来处理所述输入数据以生成输出数据;
生成表示所述动态结构化机器学习模型的有向计算图的数据,所述有向计算图包括表示所述多个操作中能够由所述动态结构化机器学习模型执行的每个可能操作的综合层,其中,所述综合层被配置为执行所述多个操作中对于多个不同的接收的输入中的任一个输入将需要由所述动态结构化机器学习模型执行的一个或多个操作的多个组合中的任一个组合;
接收用于由所述动态结构化机器学习模型处理的输入,其中,所述输入包括多个令牌和指定用于所述多个令牌的标签的标签数据;
指定通过所述有向计算图的数据流以适合所接收的输入;以及
在一个或多个计算设备上执行所述有向计算图以根据所指定的数据流来处理所述输入。
22.如权利要求21所述的非瞬时计算机可读存储介质,其中,生成表示所述有向计算图的数据包括:
对于每个所述操作的每个自变量,将相应变量***到所述有向计算图中,所述相应变量表示相应布线向量,所述相应布线向量指定均具有与所接收的输入中的所述自变量相对应的标签的令牌的位置。
23.如权利要求22所述的非瞬时计算机可读存储介质,其中,指定数据流包括:
对于每个操作的每个自变量,修改所述布线向量以(i)识别具有与所述自变量相对应的标签的相应令牌在所接收的输入中的位置,或者(ii)如果没有令牌具有与所述输入中的所述自变量相对应的标签,则识别在所接收的输入中不存在所述自变量的令牌。
24.如权利要求22所述的非瞬时计算机可读存储介质,其中,生成表示所述有向计算图的数据包括:
为每个自变量***相对应的收集操作,所述收集操作接收与所述自变量和输入向量相关联的布线向量作为输入,并且将结果输出给所述自变量所对应的操作。
25.如权利要求21所述的非瞬时计算机可读存储介质,其中,生成所述有向计算图包括:
向所述有向计算图添加级联所述综合层中的操作的所有结果的级联操作。
26.如权利要求21所述的非瞬时计算机可读存储介质,其中,执行所述有向计算图包括:
使用最终收集操作来选择根据所指定的数据流来处理所述输入的结果作为模型的输出。
27.如权利要求21所述的非瞬时计算机可读存储介质,其中,所述输入是第一输入,并且其中,所述方法进一步包括:
接收第二输入以用于由所述动态结构化机器学习模型进行处理,所述动态结构化机器学习模型包括与所述第一输入中包括的所述多个令牌和所述标签数据不同的第二多个令牌和第二标签数据;以及
指定通过所述有向计算图的数据流,以适合所述第二输入。
28.如权利要求21所述的非瞬时计算机可读存储介质,其中,执行所述有向计算图包括:
将所述有向计算图中的节点分配在所述一个或多个计算设备上;以及
使所述计算设备中的每一个计算设备执行由分配给该计算设备的节点表示的操作。
29.如权利要求21所述的非瞬时计算机可读存储介质,其中,所述方法进一步包括:
其中,接收指定所述动态结构化机器学习模型的数据包括接收用于所述多个标签的最大计数的级,其中,所述多个标签中的每一个标签对应于相应的级,以及
其中,生成表示所述动态结构化机器学习模型的所述有向计算图的数据包括对于从初始级开始到所述最大计数的级的每个级,生成与该级相对应的相应综合层,其中,不与所述初始级相对应的每个综合层从前一综合层接收输入。
30.如权利要求29所述的非瞬时计算机可读存储介质,其中,指定通过所述有向计算图的数据流包括指定在每个综合层处通过该综合层中的一个或多个操作的数据流,所述一个或多个操作接收具有与该综合层相对应的标签的相应一个或多个令牌作为自变量。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311671681.XA CN117933221A (zh) | 2016-11-04 | 2017-11-03 | 构建和处理用于动态结构化机器学习模型的计算图 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/344,160 | 2016-11-04 | ||
US15/344,160 US10776714B2 (en) | 2016-11-04 | 2016-11-04 | Constructing and processing computational graphs for dynamically structured machine learning models |
PCT/US2017/060016 WO2018085703A1 (en) | 2016-11-04 | 2017-11-03 | Constructing and processing computational graphs for dynamically structured machine learning models |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311671681.XA Division CN117933221A (zh) | 2016-11-04 | 2017-11-03 | 构建和处理用于动态结构化机器学习模型的计算图 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110192210A CN110192210A (zh) | 2019-08-30 |
CN110192210B true CN110192210B (zh) | 2023-12-26 |
Family
ID=60484466
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311671681.XA Pending CN117933221A (zh) | 2016-11-04 | 2017-11-03 | 构建和处理用于动态结构化机器学习模型的计算图 |
CN201780067874.0A Active CN110192210B (zh) | 2016-11-04 | 2017-11-03 | 构建和处理用于动态结构化机器学习模型的计算图 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311671681.XA Pending CN117933221A (zh) | 2016-11-04 | 2017-11-03 | 构建和处理用于动态结构化机器学习模型的计算图 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10776714B2 (zh) |
EP (1) | EP3520040B1 (zh) |
CN (2) | CN117933221A (zh) |
WO (1) | WO2018085703A1 (zh) |
Families Citing this family (73)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9318108B2 (en) | 2010-01-18 | 2016-04-19 | Apple Inc. | Intelligent automated assistant |
US8977255B2 (en) | 2007-04-03 | 2015-03-10 | Apple Inc. | Method and system for operating a multi-function portable electronic device using voice-activation |
US8676904B2 (en) | 2008-10-02 | 2014-03-18 | Apple Inc. | Electronic devices with voice command and contextual data processing capabilities |
US10255566B2 (en) | 2011-06-03 | 2019-04-09 | Apple Inc. | Generating and processing task items that represent tasks to perform |
US10417037B2 (en) | 2012-05-15 | 2019-09-17 | Apple Inc. | Systems and methods for integrating third party services with a digital assistant |
KR20230137475A (ko) | 2013-02-07 | 2023-10-04 | 애플 인크. | 디지털 어시스턴트를 위한 음성 트리거 |
US10652394B2 (en) | 2013-03-14 | 2020-05-12 | Apple Inc. | System and method for processing voicemail |
US10748529B1 (en) | 2013-03-15 | 2020-08-18 | Apple Inc. | Voice activated device for use with a voice-based digital assistant |
US10176167B2 (en) | 2013-06-09 | 2019-01-08 | Apple Inc. | System and method for inferring user intent from speech inputs |
WO2015020942A1 (en) | 2013-08-06 | 2015-02-12 | Apple Inc. | Auto-activating smart responses based on activities from remote devices |
EP3149728B1 (en) | 2014-05-30 | 2019-01-16 | Apple Inc. | Multi-command single utterance input method |
US10170123B2 (en) | 2014-05-30 | 2019-01-01 | Apple Inc. | Intelligent assistant for home automation |
US9715875B2 (en) | 2014-05-30 | 2017-07-25 | Apple Inc. | Reducing the need for manual start/end-pointing and trigger phrases |
US9338493B2 (en) | 2014-06-30 | 2016-05-10 | Apple Inc. | Intelligent automated assistant for TV user interactions |
US9886953B2 (en) | 2015-03-08 | 2018-02-06 | Apple Inc. | Virtual assistant activation |
US10460227B2 (en) | 2015-05-15 | 2019-10-29 | Apple Inc. | Virtual assistant in a communication session |
US10200824B2 (en) | 2015-05-27 | 2019-02-05 | Apple Inc. | Systems and methods for proactively identifying and surfacing relevant content on a touch-sensitive device |
US20160378747A1 (en) | 2015-06-29 | 2016-12-29 | Apple Inc. | Virtual assistant for media playback |
US10747498B2 (en) | 2015-09-08 | 2020-08-18 | Apple Inc. | Zero latency digital assistant |
US10740384B2 (en) | 2015-09-08 | 2020-08-11 | Apple Inc. | Intelligent automated assistant for media search and playback |
US10331312B2 (en) | 2015-09-08 | 2019-06-25 | Apple Inc. | Intelligent automated assistant in a media environment |
US10671428B2 (en) | 2015-09-08 | 2020-06-02 | Apple Inc. | Distributed personal assistant |
US10691473B2 (en) | 2015-11-06 | 2020-06-23 | Apple Inc. | Intelligent automated assistant in a messaging environment |
US10956666B2 (en) | 2015-11-09 | 2021-03-23 | Apple Inc. | Unconventional virtual assistant interactions |
US10223066B2 (en) | 2015-12-23 | 2019-03-05 | Apple Inc. | Proactive assistance based on dialog communication between devices |
US10586535B2 (en) | 2016-06-10 | 2020-03-10 | Apple Inc. | Intelligent digital assistant in a multi-tasking environment |
DK179415B1 (en) | 2016-06-11 | 2018-06-14 | Apple Inc | Intelligent device arbitration and control |
DK201670540A1 (en) | 2016-06-11 | 2018-01-08 | Apple Inc | Application integration with a digital assistant |
US10685295B1 (en) | 2016-12-29 | 2020-06-16 | X Development Llc | Allocating resources for a machine learning model |
US10726832B2 (en) | 2017-05-11 | 2020-07-28 | Apple Inc. | Maintaining privacy of personal information |
DK180048B1 (en) | 2017-05-11 | 2020-02-04 | Apple Inc. | MAINTAINING THE DATA PROTECTION OF PERSONAL INFORMATION |
DK201770427A1 (en) | 2017-05-12 | 2018-12-20 | Apple Inc. | LOW-LATENCY INTELLIGENT AUTOMATED ASSISTANT |
DK179496B1 (en) | 2017-05-12 | 2019-01-15 | Apple Inc. | USER-SPECIFIC Acoustic Models |
DK179745B1 (en) | 2017-05-12 | 2019-05-01 | Apple Inc. | SYNCHRONIZATION AND TASK DELEGATION OF A DIGITAL ASSISTANT |
DK201770411A1 (en) | 2017-05-15 | 2018-12-20 | Apple Inc. | MULTI-MODAL INTERFACES |
US10303715B2 (en) | 2017-05-16 | 2019-05-28 | Apple Inc. | Intelligent automated assistant for media exploration |
US20180336892A1 (en) | 2017-05-16 | 2018-11-22 | Apple Inc. | Detecting a trigger of a digital assistant |
US10333961B2 (en) | 2017-06-27 | 2019-06-25 | Intel Corporation | Malware detection system attack prevention |
US10818288B2 (en) | 2018-03-26 | 2020-10-27 | Apple Inc. | Natural assistant interaction |
US10928918B2 (en) | 2018-05-07 | 2021-02-23 | Apple Inc. | Raise to speak |
US11145294B2 (en) | 2018-05-07 | 2021-10-12 | Apple Inc. | Intelligent automated assistant for delivering content from user experiences |
CN108830383B (zh) * | 2018-05-30 | 2021-06-08 | 第四范式(北京)技术有限公司 | 用于展示机器学习建模过程的方法及*** |
DK179822B1 (da) | 2018-06-01 | 2019-07-12 | Apple Inc. | Voice interaction at a primary device to access call functionality of a companion device |
DK180639B1 (en) | 2018-06-01 | 2021-11-04 | Apple Inc | DISABILITY OF ATTENTION-ATTENTIVE VIRTUAL ASSISTANT |
US10892996B2 (en) | 2018-06-01 | 2021-01-12 | Apple Inc. | Variable latency device coordination |
US11386266B2 (en) | 2018-06-01 | 2022-07-12 | Apple Inc. | Text correction |
US11462215B2 (en) | 2018-09-28 | 2022-10-04 | Apple Inc. | Multi-modal inputs for voice commands |
US11379712B2 (en) * | 2018-10-09 | 2022-07-05 | Hewlett Packard Enterprise Development Lp | Avoiding cycles in neural networks |
US11687795B2 (en) * | 2019-02-19 | 2023-06-27 | International Business Machines Corporation | Machine learning engineering through hybrid knowledge representation |
US11348573B2 (en) | 2019-03-18 | 2022-05-31 | Apple Inc. | Multimodality in digital assistant systems |
US11307752B2 (en) | 2019-05-06 | 2022-04-19 | Apple Inc. | User configurable task triggers |
DK201970509A1 (en) | 2019-05-06 | 2021-01-15 | Apple Inc | Spoken notifications |
US11140099B2 (en) | 2019-05-21 | 2021-10-05 | Apple Inc. | Providing message response suggestions |
DK201970511A1 (en) | 2019-05-31 | 2021-02-15 | Apple Inc | Voice identification in digital assistant systems |
DK180129B1 (en) | 2019-05-31 | 2020-06-02 | Apple Inc. | USER ACTIVITY SHORTCUT SUGGESTIONS |
US11227599B2 (en) | 2019-06-01 | 2022-01-18 | Apple Inc. | Methods and user interfaces for voice-based control of electronic devices |
CN110222779B (zh) * | 2019-06-11 | 2023-08-01 | 腾讯科技(深圳)有限公司 | 分布式数据处理方法及*** |
US11138380B2 (en) * | 2019-06-11 | 2021-10-05 | International Business Machines Corporation | Identifying semantic relationships using visual recognition |
WO2021051958A1 (zh) * | 2019-09-18 | 2021-03-25 | 华为技术有限公司 | 一种模型运行方法和*** |
CN112529206B (zh) * | 2019-09-18 | 2024-05-17 | 华为技术有限公司 | 一种模型运行方法和*** |
US11475024B2 (en) | 2019-10-18 | 2022-10-18 | Splunk Inc. | Anomaly and outlier explanation generation for data ingested to a data intake and query system |
CN114365151A (zh) * | 2019-10-22 | 2022-04-15 | 深圳鲲云信息科技有限公司 | 神经网络模型转化方法、装置、服务器及存储介质 |
CN110889492B (zh) * | 2019-11-25 | 2022-03-08 | 北京百度网讯科技有限公司 | 用于训练深度学习模型的方法和装置 |
US11537852B2 (en) * | 2020-02-13 | 2022-12-27 | International Business Machines Corporation | Evolving graph convolutional networks for dynamic graphs |
US11043220B1 (en) | 2020-05-11 | 2021-06-22 | Apple Inc. | Digital assistant hardware abstraction |
US11061543B1 (en) | 2020-05-11 | 2021-07-13 | Apple Inc. | Providing relevant data items based on context |
US11755276B2 (en) | 2020-05-12 | 2023-09-12 | Apple Inc. | Reducing description length based on confidence |
CN113298263B (zh) * | 2020-05-13 | 2022-09-13 | 阿里巴巴集团控股有限公司 | 计算图处理、模型运行方法及装置、设备、服务器及终端 |
US11490204B2 (en) | 2020-07-20 | 2022-11-01 | Apple Inc. | Multi-device audio adjustment coordination |
US11438683B2 (en) | 2020-07-21 | 2022-09-06 | Apple Inc. | User identification using headphones |
US11704490B2 (en) * | 2020-07-31 | 2023-07-18 | Splunk Inc. | Log sourcetype inference model training for a data intake and query system |
CN112540835B (zh) * | 2020-12-10 | 2023-09-08 | 北京奇艺世纪科技有限公司 | 一种混合机器学习模型的运行方法、装置及相关设备 |
CN112541335B (zh) * | 2020-12-24 | 2023-09-01 | 北京百度网讯科技有限公司 | 生成解读文本的方法、装置、电子设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9141916B1 (en) * | 2012-06-29 | 2015-09-22 | Google Inc. | Using embedding functions with a deep network |
CN106068520A (zh) * | 2013-12-13 | 2016-11-02 | 微软技术许可有限责任公司 | 个性化的机器学习模型 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9547511B2 (en) * | 2009-06-05 | 2017-01-17 | Microsoft Technology Licensing, Llc | Language-based model for asynchronous operations |
EP2488963A1 (en) * | 2009-10-15 | 2012-08-22 | Rogers Communications Inc. | System and method for phrase identification |
US20150186790A1 (en) * | 2013-12-31 | 2015-07-02 | Soshoma Inc. | Systems and Methods for Automatic Understanding of Consumer Evaluations of Product Attributes from Consumer-Generated Reviews |
US10411989B2 (en) * | 2014-09-22 | 2019-09-10 | Wolting Holding B.V. | Compiler for and method of software defined networking, storage and compute determining physical and virtual resources |
US10789545B2 (en) * | 2016-04-14 | 2020-09-29 | Oath Inc. | Method and system for distributed machine learning |
US10366163B2 (en) * | 2016-09-07 | 2019-07-30 | Microsoft Technology Licensing, Llc | Knowledge-guided structural attention processing |
-
2016
- 2016-11-04 US US15/344,160 patent/US10776714B2/en active Active
-
2017
- 2017-11-03 CN CN202311671681.XA patent/CN117933221A/zh active Pending
- 2017-11-03 CN CN201780067874.0A patent/CN110192210B/zh active Active
- 2017-11-03 EP EP17805334.4A patent/EP3520040B1/en active Active
- 2017-11-03 WO PCT/US2017/060016 patent/WO2018085703A1/en unknown
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9141916B1 (en) * | 2012-06-29 | 2015-09-22 | Google Inc. | Using embedding functions with a deep network |
CN106068520A (zh) * | 2013-12-13 | 2016-11-02 | 微软技术许可有限责任公司 | 个性化的机器学习模型 |
Non-Patent Citations (3)
Title |
---|
"Python for Scientific Computing";Travis E .Oliphant;《IEEE CS and the AIP》;20070630;参见第18页 * |
"Theano:A python framework for fast computation of mathematical expressions";Al-Rfou etal.;《arXiv https://arxiv.org/pdf/1605.02688.pdf?spm=a2c4e.11153940.blogcont576283.34.3ac27677blRucu&file=1605.02688.pdf》;20160509;参见第II节MAIN FEATURES * |
CS224d:Deep NLP-Lecture 9 Recursive Neural Networks";Richard Socher;《http://cs224d.stanford.edu/lectures/CS224d-Lecture9.pdf》;20150427;参见第5、10、14页 * |
Also Published As
Publication number | Publication date |
---|---|
US10776714B2 (en) | 2020-09-15 |
CN110192210A (zh) | 2019-08-30 |
WO2018085703A1 (en) | 2018-05-11 |
US20180129967A1 (en) | 2018-05-10 |
EP3520040A1 (en) | 2019-08-07 |
EP3520040B1 (en) | 2024-04-24 |
CN117933221A (zh) | 2024-04-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110192210B (zh) | 构建和处理用于动态结构化机器学习模型的计算图 | |
Luitse et al. | The great transformer: Examining the role of large language models in the political economy of AI | |
JP6790286B2 (ja) | 強化学習を用いたデバイス配置最適化 | |
US10360308B2 (en) | Automated ontology building | |
JP7253593B2 (ja) | 意味解析モデルのトレーニング方法及び装置、電子機器並びに記憶媒体 | |
US10956500B2 (en) | Dynamic-length stateful tensor array | |
US10843080B2 (en) | Automated program synthesis from natural language for domain specific computing applications | |
Kranjc et al. | Active learning for sentiment analysis on data streams: Methodology and workflow implementation in the ClowdFlows platform | |
US11030416B2 (en) | Latent ambiguity handling in natural language processing | |
Ganegedara | Natural Language Processing with TensorFlow: Teach language to machines using Python's deep learning library | |
Memeti et al. | PAPA: a parallel programming assistant powered by IBM Watson cognitive computing technology | |
CN110678882A (zh) | 使用机器学习从电子文档选择回答跨距 | |
CN110427478A (zh) | 一种基于知识图谱的问答搜索方法及*** | |
Pais et al. | NLP-based platform as a service: a brief review | |
CN111133458B (zh) | 增强神经网络 | |
KR20230152629A (ko) | 재구성된 질의를 생성하기 위한 방법, 시스템, 및 컴퓨터 판독가능한 기록 매체 | |
CN112748953B (zh) | 基于神经网络模型的数据处理方法、装置及电子设备 | |
Ganegedara et al. | Natural Language Processing with TensorFlow: The definitive NLP book to implement the most sought-after machine learning models and tasks | |
Lamons et al. | Python Deep Learning Projects: 9 projects demystifying neural network and deep learning models for building intelligent systems | |
CN115427960A (zh) | 使用完全依存森林的关系提取 | |
US20210073335A1 (en) | Methods and systems for semantic analysis of table content | |
Li et al. | ML Tools for the Web: A Way for Rapid Prototyping and HCI Research | |
CN113254635B (zh) | 数据处理方法、装置及存储介质 | |
CN114556326B (zh) | 用于生成自然语言表达变体的方法和*** | |
JP2017111411A (ja) | 教育、勉強又は研究する方法、このためのコンピュータプログラム及び処理装置 |
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 |