生成文档的矢量表示的制作方法

文档序号:10579037阅读:340来源:国知局
生成文档的矢量表示的制作方法
【专利摘要】包括在计算机存储介质上编码的计算机程序的方法、系统以及装置,用于生成文档矢量表示。所述方法中的一个包括:获得新文档;以及使用经训练的神经网络系统来确定所述新文档的矢量表示,其中,所述经训练的神经网络系统已被训练成接收输入文档以及来自所述输入文档的单词序列并且生成单词集中的每个单词的相应单词分数,其中,所述相应单词分数中的每一个都表示对应单词跟随所述输入文档中的所述序列中的最后一个单词的预测似然率,并且其中,使用经训练的神经网络系统来确定所述新文档的矢量表示包括迭代地将所述多个单词序列中的每一个提供给所述经训练的神经网络系统以使用梯度下降来确定所述新文档的所述矢量表示。
【专利说明】
生成文档的矢量表示
【背景技术】
[0001]本说明书涉及使用数据处理系统的文本分类。
[0002]文本分类系统能够对电子文本段进行分类,例如电子文档。例如,文本分类系统能够将文本段分类为与预定的主题集中的一个或多个相关。一些文本分类系统接收文本段的特征作为输入并且使用所述特征来生成所述文本段的分类。
[0003]神经网络是机器学习模型,其采用模型的一个或多个层来生成针对所接收的输入的输出,例如分类。一些神经网络除输出层之外还包括一个或多个隐藏层。每个隐藏层的输出被用作到网络中的下一层的输入,即,网络的下一个隐藏层或者输出层。网络的每个层都根据相应的参数集的当前值而从所接收的输入中生成输出。

【发明内容】

[0004]—般而言,在本说明书中所述主题的一个创新方面能够被体现在包括以下动作的方法中:获得新文档,其中,所述新文档包括多个单词序列,并且针对每个单词序列包括跟随所述新文档中的所述单词序列中的最后一个单词的单词;以及使用经训练的神经网络系统来确定所述新文档的矢量表示,其中,所述经训练的神经网络系统已被训练成接收输入文档以及来自所述输入文档的单词序列并且生成预定单词集中的每个单词的相应单词分数,其中,所述相应单词分数中的每一个都表示对应单词跟随所述输入文档中的所述序列中的最后一个单词的预测似然率,并且其中,使用经训练的神经网络系统来确定所述新文档的矢量表示包括迭代地将所述多个单词序列中的每一个提供给所述经训练的神经网络系统以使用梯度下降来确定所述新文档的所述矢量表示。
[0005]该方面的其他实施例包括对应的计算机系统、装置以及被记录在一个或多个计算机存储设备上的计算机程序,每个计算机存储设备都被配置成执行所述方法的所述动作。
[0006]一个或多个计算机的系统能够被配置成借助具有软件、固件、硬件或其组合而执行特定的操作或动作,这些被安装于所述系统上,所述系统在操作中致使所述系统执行所述动作。一个或多个计算机程序能够被配置成借助包括当由数据处理装置执行时使得所述装置执行所述动作的指令而执行特定的操作或动作。
[0007]这些及其他方面能够可选择地包括以下特征中的一个或多个。所述经训练的神经网络系统能够包括被配置成将所述输入文档以及来自所述输入文档的单词序列中的每个单词映射到相应的矢量表示的嵌入层、被配置成将所述矢量表示组合到组合表示内的组合层以及被配置成使用所述组合表示生成所述单词分数的分类器层。所述嵌入层能够根据第一参数集而将所述单词序列中的单词映射到矢量表示,并且所述分类器层能够根据第二参数集而从所述组合表示中生成所述单词分数。所述第一参数集的值以及上述第二参数集的值可以从训练所述神经网络系统以生成所述单词分数开始被固定。
[0008]使用经训练的神经网络系统来确定所述新文档的矢量表示能够包括对于所述多个单词序列中的每一个执行梯度下降的相应迭代,以调节来自梯度下降的先前迭代的所述新文档的所述矢量表示。对于所述多个序列中的每一个执行梯度下降的相应迭代能够包括:使用所述嵌入层将所述序列中的单词中的每一个映射到矢量表示;将所述序列中的单词的矢量表示与来自先前迭代的所述新文档的矢量表示进行组合以生成组合表示;从所述组合表示中生成单词分数;使用所述单词分数以及跟随所述新文档中的所述序列的单词来计算梯度;以及使用所述梯度来调节来自先前迭代的所述新文档的所述矢量表示。所述组合层能够被配置成将所述序列中的单词的矢量表示与所述输入文档的矢量表示相连结。所述组合层能够被配置成对所述序列中的单词的矢量表示与所述输入文档的矢量表示取平均值。所述多个单词序列中的每一个都能够包含固定数目的单词。
[0009]—般而言,在本说明书中所述主题的另一个创新方面能够被体现在包括以下动作的方法中:获得多个训练文档,其中,所述多个训练文档中的每个文档包括多个训练单词序列,并且针对每个单词序列包括跟随所述训练文档中的所述训练单词序列中的最后一个单词的单词;以及使用梯度下降以及反向传播来依靠所述训练文档中的每一个训练神经网络系统,其中,所述神经网络系统被配置成接收识别输入文档以及来自所述输入文档的输入单词序列的数据并且生成预定单词集中的每个单词的相应单词分数,其中,所述相应单词分数中的每一个都表示对应单词跟随所述输入文档中的所述序列中的最后一个单词的预测似然率,并且其中,依靠所述训练文档中的每一个训练所述神经网络系统包括针对每个训练文档,对于所述训练文档中的每个单词序列执行梯度下降的相应迭代。
[0010]该方面的其他实施例包括对应的计算机系统、装置以及记录在一个或多个计算机存储设备上的计算机程序,每个计算机存储设备都被配置成执行所述方法的所述动作。
[0011]这些及其他方面能够可选择地包括以下特征中的一个或多个。所述神经网络系统能够包括被配置成将所述输入文档以及来自所述输入文档的单词序列中的每个单词映射到相应的矢量表示的嵌入层、被配置成将所述矢量表示组合到组合表示内的组合层以及被配置成使用所述组合表示生成所述单词分数的分类器层。所述嵌入层能够根据第一参数集而将所述单词序列中的单词映射到矢量表示,并且所述分类器层能够根据第二参数集而从所述组合表示中生成所述单词分数。对于所述训练文档中的所述多个单词序列中的每一个执行梯度下降的相应迭代能够包括:使用所述嵌入层将所述序列中的单词中的每一个映射到矢量表示;使用所述嵌入层将指示所述训练文档的所述数据映射到矢量表示;将所述序列中的单词的矢量表示与来自先前迭代的所述新文档的矢量表示进行组合以生成组合表示;从所述组合表示中生成单词分数;使用所述单词分数以及跟随所述训练文档中的所述序列的单词来计算梯度;以及使用所述梯度来调节所述第二参数集的值。执行梯度下降的相应迭代能够进一步包括使用反向传播来调节所述第一参数集的值。所述组合层能够被配置成将所述序列中的单词的矢量表示与所述输入文档的矢量表示相连结。所述组合层能够被配置成对所述序列中的单词的矢量表示与所述输入文档的矢量表示取平均值。所述多个单词序列中的每一个都能够包含固定数目的单词。
[0012]本说明书中所述的主题的特定实施例能够被实施以便实现以下优点中的一个或多个。能够例如由文本分类系统将用作文档的特征的所述文档的矢量表示有效地生成。神经网络系统能够被训练以仅使用未经标记的训练文档来生成所述文档表示。由所述经训练的神经网络系统生成的所述矢量表示能够具有多个期望的属性。例如,与不包括在语义上类似的内容的两个文档的文档矢量表示相比,在语义上类似的文档能够具有更接近的文档矢量表示。
[0013]在附图以及下面的描述中阐明了本说明书的主题的一个或多个实施例的细节。通过说明书、附图和权利要求,所述主题的其他特征、方面和优势将变得显而易见。
【附图说明】
[0014I图1示出了示例矢量表示系统。
[0015]图2是用于确定新文档的文档矢量表示的示例过程的流程图。
[0016]图3是用于依靠来自训练文档的单词序列来训练神经网络系统的示例过程的流程图。
[0017]图4是用于调节新文档的文档矢量表示的示例过程的流程图。
[0018]在各图中相同的附图标号和标记指示相同的元素。
【具体实施方式】
[0019]图1示出了示例矢量表示系统100。矢量表示系统100是作为一个或多个位置中的一个或多个计算机上的计算机程序所实现的系统的示例,能够在其中实现下述的系统、组件以及技术。
[0020]矢量表示系统100生成来自输入文档的单词序列的单词分数,例如,来自输入文档102的单词序列106的单词分数126。单词序列106的单词分数126包括预定单词集中的每个词的相应分数,给定单词的单词分数表示该单词跟随输入文档中的单词序列106中的最后一个单词的预测似然率。
[0021]作为生成给定输入文档中的单词序列的单词分数的一部分,矢量表示系统100生成输入文档的文档矢量表示,例如,输入文档102的文档矢量表示120。由矢量表示系统100所生成的文档矢量表示是文档的矢量表示。例如,文档矢量表示可以是浮点值的矢量或者量化浮点值的矢量。
[0022]特别地,矢量表示系统100包括神经网络系统110,针对给定输入文档中的给定单词序列,该神经网络系统110接收识别输入文档以及单词序列的数据并且处理所述识别输入文档以及单词序列的数据以生成单词序列的单词分数。例如,矢量表示系统100能够从输入文档102接收输入文档102以及单词序列106的文档标识符104并且生成单词序列106的单词分数126。例如,文档标识符可以被预先分配给输入文档102或者由矢量表示系统100生成,以便标识符唯一识别输入文档102。
[0023]神经网络系统110包括嵌入层112、组合层114以及分类器层116。嵌入层112根据文档参数集的当前值而将识别文档的数据映射到文档矢量表示,例如,输入文档102的文档矢量表示120。嵌入层112还根据单词参数集的当前值而将单词序列中的每一个单词都映射到相应的文档矢量表示,例如,单词序列106中的单词的单词矢量表示122。每个单词矢量是对应单词的矢量表示,例如,浮点的矢量或者量化的浮点值。
[0024]组合层114接收文档矢量表示以及单词矢量表示并且从文档矢量表示以及单词矢量表示中生成组合表示,例如,从单词矢量表示122以及文档矢量表示120中生成组合表示124。下面参照图3和图4来更详细地对生成组合表示进行描述。
[0025]分类器层116根据分类器参数集的当前值而接收组合表示并且处理该组合表示以从输入文档中生成单词序列的单词分数。例如,分类器层116可以处理组合表示124以生成单词序列106的单词分数126。
[0026]矢量表示系统100依靠来自训练文档的多个单词序列来训练神经网络系统110,以便确定单词参数以及分类器参数的训练值。下面参照图2和图3来更详细地对训练神经网络系统进行描述。一旦单词参数以及分类器参数的训练值已被确定,矢量表示系统100便能够接收新输入文档并且使用神经网络系统110来处理来自新输入文档的单词序列,以确定新文档的文档矢量表示。下面参照图2和图4来更详细地描述生成新文档的文档矢量表示。
[0027]一旦给定文档的文档矢量表示已被生成,矢量表示系统100便能够将文档矢量表示与存储库中的文档相关联或者将文档表示提供给单独的系统,以便出于一些即时目的而使用。例如,文档表示能够被用作输入文档的特征并且能够作为输入而被提供给已被配置成将输入文档进行分类(例如,分类为与特定主题有关)的常规的机器学习系统,例如,逻辑回归系统、支持矢量机(SVM)系统或者k-means系统。例如,常规的机器学习系统可以被配置成接收输入文档的文档表示以及选择性地接收输入文档的其他特征并且生成主题集中的每一个主题的相应分数,每个分数表示文档有关或关于对应主题的估计似然率。
[0028]图2是用于确定新文档的文档矢量表示的示例过程200的流程图。方便起见,过程200将被描述为由位于一个或多个地点的一个或多个计算机的系统来执行。例如,适当编程的矢量表示系统(例如图1的矢量表示系统100)能够执行过程200。
[0029]系统训练神经网络系统(例如,图1的神经网络系统110)以生成单词分数(步骤202)。神经网络系统是包括嵌入层、组合层以及分类器层的系统。嵌入层被配置成接收识别文档以及来自文档的单词序列的数据,根据文档参数集的当前值而将识别文档的数据映射到文档矢量表示,并且根据单词参数集的当前值而将单词序列中的每个单词都映射到相应的单词矢量表示。组合层被配置成将单词矢量表示与文档矢量表示相组合,以生成组合表示。分类器层被配置成根据分类器参数集的当前值而处理组合表示,以生成单词序列的单词分数集。
[0030]在训练期间,系统调节单词参数以及分类器参数的值,以确定单词参数以及分类器参数的训练值。特别地,系统依靠来自训练文档集的单词序列集来训练神经网络系统。例如,训练文档可以包括以下中的一个或多个:语句、语段、多个语段的集合、搜索查询或者其他多个自然语言单词的集合。
[0031]为了调节神经网络系统的参数值,系统针对训练序列中的每一个执行梯度下降训练规程的一个实例。特别地,系统使用神经网络系统来处理单词序列以生成序列的单词分数,并且再使用单词分数以及跟随训练文档中的序列中的最后一个单词的单词来调节参数的值,即,使用梯度下降以及反向传播。下面参照图3来更详细地描述使用来自训练文档的单词序列来调节神经网络系统的参数。
[0032]因为所述系统仅使用单词序列的单词分数以及跟随训练文档中的单词序列中的最后一个单词的单词以便调节神经网络系统的参数的值,所以训练文档无需被标记成在训练神经系统网络时将被使用。也就是说,所述系统可以仅使用来自未经标记的训练文档的单词序列来训练神经网络系统以生成单词分数,所述未经标记的训练文档即尚未被分类为与任何特定主题有关或以其他方式被文本分类系统处理的文档。
[0033]所述系统接收新文档(步骤204)。例如,新文档可以是语句、语段、多个语段的集合、搜索查询或者其他多个自然语言单词的集合。
[0034]所述系统使用经训练的神经网络系统来确定新文档的文档矢量表示(步骤206)。一般而言,所述系统使用经训练的神经网络系统来处理来自新文档的多个单词序列,以确定新文档的文档矢量表示。特别地,所述系统识别来自新文档的多个单词序列。在一些实施方式中,序列中的每一个都是固定的长度,即,包括相同固定数目的单词。例如,所述系统能够将滑动窗口应用于新文档以从新文档中提取预定的固定长度的每个可能序列。
[0035]所述系统能够接着使用经训练的神经网络系统来处理所提取的序列中的每一个,以便迭代地确定新文档的文档矢量表示。也就是说,在来自新文档的每个序列都通过经训练的神经网络序列而被处理以生成序列的单词分数之后,所述系统调节新文档的当前表示。下面参照图4来更详细地描述使用来自新文档的序列来调节新文档的文档矢量表示。
[0036]图3是用于依靠来自训练文档的单词序列来训练神经网络系统的示例过程300的流程图。方便起见,过程300将被描述为由位于一个或多个地点的一个或多个计算机的系统来执行。例如,适当编程的矢量表示系统(例如图1的矢量表示系统100)能够执行过程300。
[0037]所述系统使用嵌入层将序列中的单词中的每一个都映射到相应的单词矢量表示(步骤302)。特别地,所述系统根据单词参数的当前值而处理序列中的每个单词,以确定序列中的单词中的每一个的相应单词矢量表示。
[0038]所述系统使用嵌入层将训练文档映射到文档矢量表示(步骤304)。特别地,所述系统根据文档参数的当前值而处理识别训练文档的数据,以确定训练文档的文档矢量表示。
[0039]所述系统使用组合层从单词矢量表示以及文档矢量表示中生成组合表示(步骤306)。特别地,所述系统使用组合层处理单词矢量表示以及当前的文档矢量表示,以生成组合表示。例如,组合层可以将单词矢量表示与当前的文档矢量表示表示连结,以生成组合表示。作为另一示例,组合层可以计算单词矢量表示与当前的文档矢量表示的集中趋势的度量,即均值、中值或其他平均值,以生成组合表示。
[0040]所述系统使用分类器层从组合表示中生成单词分数(步骤308)。特别地,所述系统使用分类器层并且根据分类器层的参数的当前值来处理组合表示,以生成预定的单词集中的每个单词的相应单词分数。
[0041]所述系统使用单词分数计算梯度(步骤310)。也就是说,所述系统计算单词分数与单词序列的期望输出之间的误差,所述期望输出即指示实际上跟随新文档中的序列中的最后一个单词的单词是序列中的下一个单词的单词分数集,并且接着计算误差的梯度。
[0042]所述系统使用梯度调节神经网络系统的参数的当前值(步骤312)。特别地,所述系统使用误差的梯度来调节分类器层的参数的当前值并且接着使用反向传播来调节嵌入层的参数的当前值,即文档参数以及单词参数的当前值。
[0043]所述系统能够对于来自多个训练文档的多个训练序列中的每一个执行过程300,以便迭代地确定文档的参数的训练值。例如,针对过程300的每一次迭代,所述系统都能够随机地选择训练文档以及来自训练文档的固定长度的单词序列。所述系统能够接着对来自训练文档的序列执行过程300的迭代,直至每一个可能的序列均已被处理或者直至训练的其他终止准则已被满足。
[0044]图4是用于调节新文档的文档矢量表示的示例过程400的流程图。方便起见,过程400将被描述为由位于一个或多个地点的一个或多个计算机的系统来执行。例如,适当编程的矢量表示系统(例如图1的矢量表示系统100)能够执行过程400。
[0045]所述系统接收来自新文档的单词序列(步骤402)。例如,单词序列可以是已从新文档中提取的固定长度的单词序列。
[0046]所述系统将序列中的单词中的每一个都映射到相应的矢量表示(步骤404)。也就是说,所述系统使用嵌入层来处理序列中的单词中的每一个,以根据单词参数的训练值而将每个单词映射到单词矢量表示。
[0047]所述系统将新文档映射到文档矢量表示(步骤406)。也就是说,所述系统使用嵌入层来处理识别新文档的数据,以根据文档参数的当前值而将新文档到文档矢量表示。
[0048]所述系统使用组合层来生成组合表示(步骤406)。特别地,所述系统使用组合层来处理单词矢量表示以及文档矢量表示,以生成组合表示。例如,组合层可以将单词矢量表示与当前的文档矢量表示表示相连结,以生成组合表示。作为另一示例,组合层可以计算单词矢量表示与当前的文档矢量表示的集中趋势的度量,即均值、中值或其他平均值,以生成组合表不。
[0049]所述系统使用分类器层从组合表示中生成单词分数(步骤408)。特别地,所述系统使用分类器层并且根据分类器层的参数的训练值来处理组合表示,以生成预定的单词集中的每个单词的相应单词分数。
[0050]所述系统使用单词分数计算梯度(步骤410)。也就是说,所述系统计算单词分数与单词序列的期望输出之间的误差,所述期望输出即指示实际上跟随新文档中的序列中的最后一个单词的单词是序列中的下一个单词的单词分数集,并且接着计算误差的梯度。
[0051]所述系统使用梯度来调节新文档的矢量表示(步骤412)。也就是说,所述系统保留分类器层的参数的训练值以及固定的单词参数并且使用反向传播更新文档参数的当前值。
[0052]所述系统接着在计算来自新文档的下一个单词序列的文档矢量表示时使用文档参数的更新值。替选地,如果当前的单词序列是来自新文档的待处理的最后一个序列,则所述系统使用文档参数的更新值计算新文档的经调节的文档矢量表示并且使用经调节的文档矢量表示作为新文档的文档表示。
[0053]本说明书中所述的主题的实施例以及功能性操作能够在数字电子电路中、有形体现的计算机软件或固件中、包括本说明书中所公开的结构和它们的结构等价物在内的计算机硬件中、或者其中一个或多个的组合中来实现。本说明书中所述的主题的实施例能够被实现为一个或多个计算机程序,即,在有形的非暂时性程序载体上编码的计算机程序指令的一个或多个模块,用于由数据处理装置来执行或者控制所述数据处理装置的操作。替选地或附加地,程序指令能够被编码于人工生成的传播信号上,例如机器生成的电子、光学或者电磁信号,该信号被生成以编码用于传输至适当的接收器装置的信息,以便由数据处理设备来执行。计算机存储介质能够是机器可读的存储设备、机器可读的存储基底、随机或串行存取存储器设备或者其中一个或多个的组合。
[0054]术语“数据处理装置”包含用于处理数据的所有种类的装置、设备以及机器,例如,包括可编程处理器、计算机或者多个处理器或计算机。所述装置能够包括专用逻辑电路,例如FPGA(现场可编程门阵列)或者ASICX专用集成电路)。所述装置除硬件之外还能够包括为讨论中的计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统或者其中一个或多个的组合的代码。
[0055]计算机程序(其也可以被称为或者被描述为程序、软件、软件应用、模块、软件模块、脚本或者代码)能够以任何形式的编程语言来编写,包括编译或解释型语言,或者声明性或过程式语言,并且其能够以任何形式来部署,包括部署为独立程序或者模块、组件、子例程或者适于在计算环境中使用的其他单元。计算机程序可以但不必与文件系统中的文件相对应。程序能够被存储于保持例如存储成标记语言文档的一个或多个脚本的其他程序或者数据的文件的一部分中、专用于讨论中的程序的单个文件中、或者多个协作文件中,例如存储一个或多个模块、子程序或者代码的多个部分的文件。计算机程序能够被部署成在一个计算机上或者在位于一个地点或者分布于多个地点并且通过通信网络而互联的多个计算机上来执行。
[0056]本说明书中所述的过程以及逻辑流程能够由执行一个或多个计算机程序以通过对输入数据进行操作并且生成数据来执行功能的一个或多个可编程计算机来执行。所述的过程以及逻辑流程也能够由专用逻辑电路来执行,并且装置也能够被实现为专用逻辑电路,例如,FPGA(现场可编程门阵列)或者ASICX专用集成电路)。
[0057]例如,适于执行计算机程序的计算机包括能够基于通用或专用的微处理器或者二者,或者任何其他种类的中央处理单元。通常,中央处理单元会从只读存储器或随机存取存储器或者二者接收指令和数据。计算机的基本元素是用于实践或执行指令的中央处理单元以及用于存储指令和数据的一个或多个存储器设备。通常,计算机还会包括或者可操作地被耦合至用于存储数据的一个或多个大容量存储设备以自其接收数据或向其传送数据或者兼顾,例如磁性的磁光盘或者光盘。然而,计算机不必具有这样的设备。此外,计算机能够被嵌入在其他设备中,例如,移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏机、全球定位系统(GPS)接收器、或者便携式存储设备,例如通用串行总线(USB)闪存驱动器,仅此举出几例。
[0058]适于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失存储器、介质和存储器设备,例如包括例如EPROM、EEPROM和闪存设备的半导体存储器设备、例如内置硬盘或可移动磁盘的磁盘、磁光盘以及⑶ROM和DVD-ROM磁盘。处理器和存储器能够由专用逻辑电路加以补充或被结合在专用逻辑电路中。
[0059]为提供与用户的交互,本说明书中所述的主题的实施例能够在计算机上来实现,该计算机具有用于将信息显示给用户的显示设备,例如CRT(阴极射线管)或者LCD(液晶显示器)监视器,以及用户能够借以向计算机提供输入的键盘和指针设备,例如鼠标或跟踪球。其他种类的设备也能够被使用于提供与用户的交互;例如,提供给用户的反馈能够是任何类型的感觉反馈,例如,视觉反馈、听觉反馈或者触觉反馈;并且来自用户的输入能够以任何形式被接收,包括声音、语音或者触觉输入。此外,计算机能够通过将文档发送至由用户所使用的设备并且从由用户所使用的设备接收文档,例如通过响应于从web浏览器所接收的请求而将网页发送至用户的客户端设备上的web浏览器,来与用户交互。
[0060]本说明书中所述主题的实施例能够在计算系统中被实现,所述计算系统包括例如作为数据服务器的后端组件、包括例如应用服务器的中间件组件、包括例如具有用户能够借以与本说明书中所述主题的实施方式交互的图形用户界面或者web浏览器的客户端计算机的前端组件、或者一个或多个这样的后端、中间件或前端组件的任意组合。系统的组件能够通过数字数据通信的任何形式或者介质来互联,例如,通信网络。通信网络的示例包括局域网(“LAN” )以及广域网(“WAN” ),例如,互联网。
[0061]计算系统能够包括客户端以及服务器。客户端与服务器一般彼此远离,并且通常通过通信网络来进行交互。客户端与服务器的关系借助在相应计算机上运行并且彼此具有客户端-服务器关系的计算机程序来实现。
[0062]虽然本说明书包含许多特定的实施方式细节,但这些不应当被解释为对任何发明或者可能要求保护的内容的范围的限制,而应被理解为对可能对于特定发明的特定实施例是特定的特征的描述。本说明书中在单独实施例的场境中描述的某些特征也能够在单个实施例中组合来实施。反之,在单个实施例的场境中描述的各种特征也能够单独地在多个实施例中或者以任何适当的子组合来实施。此外,尽管在上文可以将特征描述为以某些组合进行动作乃至最初如此要求保护特征,但来自要求保护的组合的一个或多个特征在一些情况下能够从所述组合中被排除,并且所要求保护的组合可以涉及子组合或者子组合的变型。
[0063]类似地,虽然在图中以特定次序来描绘操作,但这不应被理解为要求以所示的特定次序或者以顺序来执行这样的操作,或者执行所有图示的操作,以获得期望的结果。在某些情况下,多任务以及并行处理可能是有利的。此外,上述实施例中的各种系统模块和组件的分离不应被理解为在所有实施例中要求这样的分离,而应理解的是,所述的程序组件和系统一般能够一起被集成于单个软件产品中或者被封装到多个软件产品中。
[0064]已对所述主题的特定实施例进行了描述。其他实施例在所附权利要求的范围内。例如,能够以不同的次序来执行权利要求中所述的动作并且仍然获得期望的结果。作为一个示例,在附图中所描绘的过程不一定要求所示的特定次序或者顺序来获得期望的结果。在某些实施方式中,多任务以及并行处理可能是有利的。
【主权项】
1.一种方法,包括: 获得新文档,其中,所述新文档包括多个单词序列,并且针对每个单词序列,包括跟随所述新文档中的所述单词序列中的最后一个单词的单词;以及 使用经训练的神经网络系统来确定所述新文档的矢量表示, 其中,所述经训练的神经网络系统已被训练用于接收输入文档以及来自所述输入文档的单词序列,并且用于生成预定单词集中的每个单词的相应单词分数,其中,所述相应单词分数中的每一个表示对应单词跟随所述输入文档中的所述序列中的最后一个单词的预测似然率,并且 其中,使用所述经训练的神经网络系统来确定所述新文档的所述矢量表示包括:迭代地将所述多个单词序列中的每一个提供给所述经训练的神经网络系统,以使用梯度下降来确定所述新文档的所述矢量表示。2.如权利要求1所述的方法,其中,所述经训练的神经网络系统包括:嵌入层,所述嵌入层被配置成将所述输入文档以及来自所述输入文档的所述单词序列中的每个单词映射到相应的矢量表示;组合层,所述组合层被配置成将所述矢量表示组合成组合表示;以及,分类器层,所述分类器层被配置成使用所述组合表示来生成所述单词分数。3.如权利要求2所述的方法,其中,根据第一参数集,所述嵌入层将所述单词序列中的所述单词映射到矢量表示,并且其中,根据第二参数集,所述分类器层从所述组合表示中生成所述单词分数。4.如权利要求3所述的方法,其中,自从训练所述神经网络系统以生成所述单词分数,所述第一参数集的值以及所述第二参数集的值是固定的。5.如权利要求2所述的方法,其中,使用所述经训练的神经网络系统来确定所述新文档的所述矢量表示包括:对于所述多个单词序列中的每一个执行梯度下降的相应迭代,以调节来自梯度下降的先前迭代的所述新文档的所述矢量表示。6.如权利要求5所述的方法,其中,对于所述多个序列中的每一个执行梯度下降的相应迭代包括: 使用所述嵌入层,将所述序列中的所述单词中的每一个映射到矢量表示; 将所述序列中的所述单词的所述矢量表示与来自所述先前迭代的所述新文档的所述矢量表示进行组合,以生成组合表示; 从所述组合表示中生成单词分数; 使用所述单词分数以及跟随所述新文档中的所述序列的所述单词来计算梯度;以及 使用所述梯度来调节来自所述先前迭代的所述新文档的所述矢量表示。7.如权利要求2所述的方法,其中,所述组合层被配置成将所述序列中的所述单词的所述矢量表示与所述输入文档的所述矢量表示相连结。8.如权利要求2所述的方法,其中,所述组合层被配置成对所述序列中的所述单词的所述矢量表示与所述输入文档的所述矢量表示取平均值。9.如权利要求1所述的方法,其中,所述多个单词序列中的每一个包含固定数目的单Τ.κ| ο10.一种方法,包括: 获得多个训练文档,其中,所述多个训练文档中的每个文档包括多个训练单词序列,并且针对每个单词序列,包括跟随所述训练文档中的所述训练单词序列中的最后一个单词的单词;以及 使用梯度下降以及反向传播,来依靠所述训练文档中的每一个训练神经网络系统, 其中,所述神经网络系统被配置成接收识别输入文档以及来自所述输入文档的输入单词序列的数据,并且生成预定单词集中的每个单词的相应单词分数, 其中,所述相应单词分数中的每一个表示对应单词跟随所述输入文档中的所述序列中的最后一个单词的预测似然率,并且 其中,依靠所述训练文档中的每一个训练所述神经网络系统包括:针对每个训练文档,对于所述训练文档中的每个单词序列执行梯度下降的相应迭代。11.如权利要求10所述的方法,其中,所述神经网络系统包括:嵌入层,所述嵌入层被配置成将所述输入文档以及来自所述输入文档的所述单词序列中的每个单词映射到相应的矢量表示;组合层,所述组合层被配置成将所述矢量表示组合成组合表示;以及,分类器层,所述分类器层被配置成使用所述组合表示来生成所述单词分数。12.如权利要求11所述的方法,其中,根据第一参数集,所述嵌入层将所述单词序列中的所述单词映射到矢量表示,并且其中,根据第二参数集,所述分类器层从所述组合表示中生成所述单词分数。13.如权利要求12所述的方法,其中,对于所述训练文档中的所述多个单词序列中的每一个执行梯度下降的相应迭代包括: 使用所述嵌入层,将所述序列中的所述单词中的每一个映射到矢量表示; 使用所述嵌入层,将识别所述训练文档的所述数据映射到矢量表示; 将所述序列中的所述单词的所述矢量表示与来自所述先前迭代的所述训练文档的所述矢量表示进行组合,以生成组合表示; 从所述组合表示中生成单词分数; 使用所述单词分数以及跟随所述新文档中的所述序列的所述单词来计算梯度;以及 使用所述梯度来调节所述第二参数集的值。14.如权利要求13所述的方法,其中,执行所述梯度下降的相应迭代进一步包括:使用反向传播来调节所述第一参数集的值。15.如权利要求10所述的方法,其中,所述组合层被配置成将所述序列中的所述单词的所述矢量表示与所述输入文档的所述矢量表示相连结。16.如权利要求10所述的方法,其中,所述组合层被配置成对所述序列中的所述单词的所述矢量表示与所述输入文档的所述矢量表示取平均值。17.如权利要求10所述的方法,其中,所述多个单词序列中的每一个包含固定数目的单Τ.κ| ο18.—种包括一个或多个计算机以及存储指令的一个或多个存储设备的系统,所述指令当由所述一个或多个计算机来执行时致使所述一个或多个计算机执行操作,所述操作包括: 获得新文档,其中,所述新文档包括多个单词序列,并且针对每个单词序列,包括跟随所述新文档中的所述单词序列中的最后一个单词的单词;以及使用经训练的神经网络系统来确定所述新文档的矢量表示, 其中,所述经训练的神经网络系统已被训练用于接收输入文档以及来自所述输入文档的单词序列,并且用于生成预定单词集中的每个单词的相应单词分数,其中,所述相应单词分数中的每一个表示对应单词跟随所述输入文档中的所述序列中的最后一个单词的预测似然率,并且 其中,使用所述经训练的神经网络系统来确定所述新文档的所述矢量表示包括:迭代地将所述多个单词序列中的每一个提供给所述经训练的神经网络系统,以使用梯度下降来确定所述新文档的所述矢量表示。19.如权利要求18所述的系统,其中,所述经训练的神经网络系统包括:嵌入层,所述嵌入层被配置成将所述输入文档以及来自所述输入文档的所述单词序列中的每个单词映射到相应的矢量表示;组合层,所述组合层被配置成将所述矢量表示组合成组合表示;以及,分类器层,所述分类器层被配置成使用所述组合表示来生成所述单词分数。20.如权利要求19所述的系统,其中,使用所述经训练的神经网络系统来确定所述新文档的所述矢量表示包括:对于所述多个单词序列中的每一个执行梯度下降的相应迭代,以调节来自梯度下降的先前迭代的所述新文档的所述矢量表示。
【文档编号】G06N3/08GK105940395SQ201580006653
【公开日】2016年9月14日
【申请日】2015年1月30日
【发明人】国·V·勒
【申请人】谷歌公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1