从同现矩阵生成特征嵌入的制作方法

文档序号:15307381发布日期:2018-08-31 21:13阅读:137来源:国知局
本说明书涉及从同现矩阵生成特征嵌入。
背景技术
:为了创建词嵌入,系统尝试压缩原始语言同现统计的分布式结构以生成保持原空间(originalspace)的属性的紧凑表示。例如,系统可以实现矩阵分解模型或者来自滑动窗口的样本。创建的词嵌入可以用于自然语言任务,诸如,确定语义相似性、解析和翻译。技术实现要素:本说明书描述了用于从同现矩阵生成特征嵌入的方法和系统,所述系统包括在计算机存储介质上被编码的计算机程序。一般而言,本说明书描述的主题的一个创新方面可以体现为用于如下操作的方法:获得特征同现矩阵的一组子矩阵,其中,特征同现矩阵的每一行与来自第一特征词表的特征相对应,并且特征同现矩阵的每一列与来自第二特征词表的特征相对应;从一组子矩阵中选择子矩阵,其中,子矩阵与特征同现矩阵的特定行块和特征同现矩阵的特定列块相关联;将相应d维初始行嵌入向量指派给来自特定行块的每一行并且将相应d维初始列嵌入向量指派给来自特定列块的每一列,其中,d表示预定目标维数;以及通过使用特征同现矩阵迭代地调整来自特定行块的初始行嵌入向量和来自特定列块的初始列嵌入向量来确定来自特定行块的每一行的最终行嵌入向量和来自特定列块的每一列的最终列嵌入向量。该方面的其他实施例包括对应的计算机系统、装置、以及计算机程序,该计算机程序被记录在一个或者多个计算机存储设备上,该计算机程序均被配置为执行方法的动作。一个或者多个计算机的系统可以被配置为借助于安装在系统上的、在运行时可以使得系统执行动作的软件、固件或者其任何组合来执行特定操作或者动作。一个或多个计算机程序可以被配置为借助于包括指令来执行特定操作或者动作,该指令在由数据处理装置执行时使得该装置执行动作。以上和其它实施例均可以可选地单独或者以组合方式包括以下特征中的一个或者多个特征。在一些实施方式中,通过使用特征同现矩阵迭代地调整来自特定行块的初始行嵌入向量和来自特定列块的初始列嵌入向量来确定来自特定行块的每一行的最终行嵌入向量和来自特定列块的每一列的最终列嵌入向量对于一组子矩阵中的多个子矩阵是并行执行的。在一些实施方式中,从一组子矩阵中选择子矩阵包括:随机地从一组子矩阵中选择子矩阵。在一些实施方式中,每个d维初始行嵌入向量和每个d维初始列嵌入向量具有根据平均值为0并且方差为d-1/2的正态分布而分布的值。在一些实施方式中,使用同现矩阵迭代地调整来自特定行块的初始行嵌入向量和来自特定列块的初始列嵌入向量包括:对于每次迭代:计算来自特定行块的行嵌入向量和来自特定列块的列嵌入向量的矩阵积以生成所选择的子矩阵的预测逐点互信息(pmi)值;将所选择的子矩阵的所生成的预测pmi值与所选择的子矩阵的观测pmi值进行比较以确定误差;基于确定的误差来确定对来自特定行块的行嵌入向量和来自特定列块的列嵌入向量的调整;以及使用所确定的调整来调整来自特定行块的行嵌入向量和来自特定列块的列嵌入向量。在一些实施方式中,基于确定的误差来确定对来自特定行块的行嵌入向量和来自特定列块的列嵌入向量的调整包括:执行随机梯度下降。在一些实施方式中,观测pmi值是基于特征同现矩阵的相应的第i-j条目以及特征同现矩阵的每个行特征和每个列特征的相应边际计数来计算的。在一些实施方式中,使用同现矩阵迭代地调整来自特定行块的行嵌入向量和来自特定列块的列嵌入向量被执行直到连续的确定误差之间的确定降低量低于预定阈值为止。在一些实施方式中,方法进一步包括构建所述同现矩阵的所述一组子矩阵,包括:获得文本语料库;通过文本语料库计算初始m×n特征同现矩阵,其中,初始特征同现矩阵包括m行特征和n列特征;以特征频率的降序对m行排顺序并且通过将经排顺序的m行收集到k元素行块中来生成m/k行块,其中,k是基于目标维数d和期望计算效率来选择的;以特征频率的降序对n列排顺序并且通过将经排顺序的n列收集到k元素行块中来生成n/k列块;以及构建m×n特征同现矩阵的一组mn/k2子矩阵,包括:对于每个行块和列块对,通过选择m×n特征同现矩阵的适当条目来从m×n特征同现矩阵构建k×k子矩阵。在一些实施方式中,初始m×n特征同现矩阵的第i-j条目表示行特征i与列特征j的观测同现计数,并且初始m×n特征同现矩阵的每个第i-j条目都采用大于或者等于零的值。在一些实施方式中,初始m×n特征同现矩阵的第i-j条目的值大于0,并且将所选择的子矩阵的所生成的预测pmi值与所选择的子矩阵的观测pmi值进行比较以确定误差包括:计算特征i和特征j的预测pmi值和观测pmi值之间的加权平方误差。在一些实施方式中,加权平方误差是通过置信度函数来调节的,其中,置信度函数依据初始m×n特征同现矩阵的第i-j条目的置信度来增加或者降低所计算的误差。在一些实施方式中,置信度函数是初始m×n特征同现矩阵的第i-j条目的线性变换。在一些实施方式中,初始m×n特征同现矩阵的第i-j条目等于0,并且将所选择的子矩阵的所生成的预测pmi值与所选择的子矩阵的观测pmi值进行比较以确定误差包括:将软铰链误差施加至预测pmi值。在一些实施方式中,方法进一步包括:通过以下操作来计算虚幻pmi:设置初始m×n特征同现矩阵的第i-j条目并且使用惩罚对虚幻pmi的过高估计的非对称成本函数。在一些实施方式中,m/k行块的元素是通过选择是同余modm/k的行来生成的,并且n/k列块的元素是通过选择是同余modm/k的列来生成的。在一些实施方式中,来自第一特征词表和第二特征词表的特征包括特定语言的词或者词字符串。在一些实施方式中,第一特征词表与用于列特征的第二特征词表不同。在本说明书中描述的主题可以实现为特定实施例从而实现以下优点中的一个或者多个。如在本说明书中所描述的,从特征同现矩阵生成特征嵌入的系统可以用于生成低维特征嵌入,与其它特征嵌入系统所生成的特征嵌入相比较,该低维特征嵌入更准确地表示原特征空间。例如,其它特征嵌入系统通常基于特征之间的观测到的同现来生成特征嵌入。然而,如在本说明书中所描述的,从特征同现矩阵生成特征嵌入的系统基于观测到的同现和未被观测到的同现两者来生成特征嵌入。这使得系统能够识别特征之间的反关联——增加用于生成特征嵌入的相关信息量,并且因此改进生成的特征嵌入的准确性和完整性。如在本说明书中所描述的,与其它特征嵌入系统相比较,从特征同现矩阵生成特征嵌入的系统在计算上可能更有效率。例如,与其它特征嵌入系统相比较,在本说明书中描述的系统可能需要更少的计算时间来生成可比较的、即使不是更好的也是准确的特征嵌入。例如,在本说明书中描述的系统可以同时在数千行和列嵌入之间执行完整的矩阵乘法,同时生成对数百万的个体逐点互信息值的预测。这可以允许系统充分利用现代gpu和向量化cpu硬件的计算能力。另外,为了实现更高的计算效率,在本说明书中描述的系统可以被配置为应用方法,其中将原特征同现矩阵(其可以包含数百万行和数百万列)分成更小的子矩阵,可以针对在单个计算节点(通常是数千行和数千列)上进行优化运算而对该子矩阵定大小。这允许用于生成特征嵌入的计算跨计算机集群分布,从而产生了通过特征同现矩阵中的所有值来学习嵌入的有效方式。如在本说明书中所描述的,用于从特征同现矩阵生成特征嵌入的系统不知道从其抽取特征的域与使用的确切特征集两者。此外,用于同现矩阵的行的特征词表不需要与用于同现矩阵的列的特征词表相同。与生成特征嵌入的其它系统不同,在本说明书中描述的系统的计算需求取决于用于生成特征嵌入的特征同现矩阵的大小,而不是特征从其被抽样的特征集的大小。这意味着,在本说明书中描述的系统和方法与其它系统和方法相比较可以应用于更大的语料库,从而产生质量更高的词嵌入。如在本说明书中描述的,用于从特征同现矩阵生成特征嵌入的系统对生成特征嵌入的其它系统所运行的规模提供改进。例如,在本说明书中描述的系统能够考虑很少单独出现的非常详细的特征(例如,对于语言模型:4克和5克、句法路径),因此需要从中收集准确的统计数据的大量文本数据。另外,在本说明书中描述的系统和方法能够有效率地生成和应用包含数千万的特征的特征嵌入模型。本说明书的主题的一个或者多个实施例的细节在附图和以下描述中阐述。主题的其它特征、方面和优点通过说明书、附图和权利要求书将变得显而易见。附图说明图1示出了示例特征嵌入系统。图2是用于从特征同现矩阵生成特征嵌入的示例过程的流程图。图3是用于构建特征同现矩阵的一组子矩阵的示例过程的流程图。图4是使用特征同现矩阵调整所选择的子矩阵的当前组行嵌入向量和当前组后续列嵌入向量的示例迭代的流程图。相似的附图标记和名称在各个附图中指示相似的元素。具体实施方式本说明书描述了从特征同现矩阵生成低维特征嵌入的方法和系统。示例特征包括特定语言的词、特定语言的词字符串、或者词之间的句法路径。例如,方法和系统可以用于生成(或者“训练”)词的低维向量表示,其进而也可以用于执行自然语言处理任务,包括确定语义相似性、解析或者翻译。这样的特征的同现可以包括词或者词字符串直接出现在另一词或者词字符串旁边的次数、词以特定句法功能出现的次数、或者词或者词字符串以特定句法功能出现的次数。进一步的示例特征可以从域而不是词或者语言中获得。例如,特征可以包括一组视频、一组产品或者一组人。这样的特征的同现可以包括不同人已经观看了不同视频的次数或者不同人已经购买了不同产品的次数。一般而言,特征同现可以由特征同现矩阵表示。特征同现矩阵可以是这样的矩阵:其条目表示描述了来自一个或者多个特征词表的特征如何共同出现的统计数据。例如,对于包括句子“curiositykilledthecat(好奇心害死猫)”和“thecatsatonthemat(猫坐在垫子上)”的文本语料库,特征同现矩阵可以用于表示描述了文本语料库中的词如何共同出现的统计数据。例如,词“the”和“cat”的特征同现矩阵可以由下面的矩阵给出。thecatsatonmatcuriositykilledthe0200100cat0010000示例特征同现矩阵示出在文本语料库中词“cat”出现在词“the”后两次,“sat”出现在“cat”后一次,以及“mat”出现在“the”后一次。大型文本语料库的特征矩阵能够非常大,例如,具有数百万的条目。图1示出了示例特征嵌入系统100。该特征嵌入系统100是被实现为在一个或者多个位置处的一个或者多个计算机上的计算机程序的系统的示例,其中可以实现下面所描述的系统、组件和技术。特征嵌入系统100是接收表示特征同现矩阵——例如特征同现矩阵102——的输入数据的系统。特征同现矩阵是其条目表示描述了来自一个或者多个特征词表的特征如何共同出现的统计数据的矩阵。例如,特征同现矩阵102的每一行可以与来自第一特征词表的特征相对应并且特征同现矩阵102的每一列都可以与来自第二特征词表的特征相对应。第一特征词表可以与第二特征词表不同。在一些实施方式中,接收到的输入数据可以包括高维数据,例如,具有数百万条目的特征同现矩阵。特征词表中的特征可以存储在输入数据储存库(例如,输入数据储存库104)中。作为示例,输入数据储存库104可以包括文本语料库。在该示例中,特征词表可以包括特定语言的词词表、特定语言的词字符串词表、或者出现在文本语料库中的词之间的句法路径词表。特征嵌入系统100生成表示特征嵌入向量(例如,嵌入向量106)的输出数据。生成的特征嵌入向量106可以包括低维特征嵌入向量,即,保持由特征同现矩阵102表示的原特征空间的属性的紧凑特征表示。继续以上示例,包括句子“curiositykilledthecat”和“thecatsatonthemat”的文本语料库可以是例如从书籍或者其它资源获得的英语词和句子的文本语料库。因此,文本语料库可以包括数百万不同词的特征词表,其中,每个词由尺寸取决于特征词表的大小的特征向量(例如,具有数百万条目的特征向量)表示。在该示例中,特征嵌入系统100可以配置为生成输出数据,其表示尺寸低于特征词表的尺寸的特征嵌入向量,例如,具有数百条目而不是数百万条目的特征向量。特征嵌入系统100可以被配置为将生成的低维特征嵌入向量106存储在例如输出数据储存库108中,或者提供低维特征嵌入向量用于一些其它直接目的。例如,可以存储和/或提供生成的低维特征嵌入向量108以在自然语言处理系统、图像分类系统、或者其它机器学习模型中使用。一般而言,特征嵌入可以用作机器学习模型的基础。在由生成的特征嵌入向量表示的特征是词的示例中,特征嵌入向量可以捕获可以被机器学习模型充分利用的基本语言特征。因为生成的特征嵌入向量是低维的,所以与使用高维特征嵌入向量来建立机器学习模型相比较,使用生成的特征嵌入向量来建立机器学习模型可能更容易。在文本域中,特征嵌入可以用于分析文本情感、具有相似意图的查询、具有相似意思的词、具有相似意思的不同语言的词等。在其他域中,特征嵌入可以被用于识别具有相似偏好的用户、相似产品、相似艺术家、电影、歌曲等。特征嵌入系统100被配置为获得特征同现矩阵102的一组子矩阵,其中,每个子矩阵与特征同现矩阵102的特定行块和特征同现矩阵102的特定列块相对应。可选地,特征嵌入系统100可以包括被配置为构建特征同现矩阵102的一组子矩阵的子矩阵构建模块,例如,子矩阵构建模块110。下面参照图3详细描述了构建特征同现矩阵的一组子矩阵。特征嵌入系统100包括用于生成特征嵌入向量的组件,例如,特征嵌入向量生成器112。特征嵌入向量生成器112配置为从一组子矩阵中选择子矩阵,并且将相应d维初始行嵌入向量指派给来自特定行块的每一行并且将相应d维初始列嵌入向量指派给来自特定列块的每一列,其中,d表示预定目标维数。特征嵌入向量生成器112进一步被配置为通过使用特征同现矩阵102迭代地调整来自特定行块的初始行嵌入向量和来自特定列块的初始列嵌入向量来确定来自特定行块的每一行的最终行嵌入向量和来自特定列块的每一列的最终列嵌入向量。最终行嵌入向量和最终列嵌入向量可以组合以产生嵌入向量输出106。下面参照图2和图4更详细地描述从特征同现矩阵102生成特征嵌入向量106。图2是用于从特征同现矩阵生成特征嵌入的示例过程的流程图。为了方便起见,将过程200描述为由位于一个或者多个位置中的一个或者多个计算机的系统执行。例如,根据本说明书被适当地编程的配置为特征嵌入的系统——例如图1的特征嵌入系统100——可以执行过程200。系统获得特征同现矩阵的一组子矩阵(步骤202)。特征同现矩阵是其条目表示描述了来自一个或者多个特征词表的特征如何在给定偏移量下共同出现的统计数据的矩阵。例如,特征同现矩阵的第ij条目可以表示矩阵行特征i与矩阵列特征j的观测同现计数。示例特征包括特定语言的词——例如一组英语词、特定语言的词字符串——例如字符串“unitedstatesofamerica(美国)”、或者词之间的句法路径。然后,特征同现矩阵可以指示词或者词字符串直接出现在另一词或者词字符串旁边的次数、词以特定句法功能出现的次数、或者词或者词字符串以特定句法功能出现的次数。进一步的示例特征可以从域而不是词或者语言中获得。例如,特征可以包括一组视频和一组人,该一组视频和该一组人构成相应特征词表。在该示例中,特征同现矩阵可以指示不同人观看不同视频的次数,例如,观看过第一视频的人也观看第二视频的频繁程度。作为另一示例,特征可以包括一组产品,该一组产品构成相应特征词表。在该示例中,特征同现矩阵可以指示不同人购买不同产品的次数,例如,购买了第一产品的人也购买第二视频的频繁程度。一般而言,特征同现矩阵可以是m×n矩阵,其中,特征同现矩阵的每一行都与来自第一特征词表的特征相对应并且特征同现矩阵的每一列都与来自第二特征词表的特征相对应。在一些实施方式中,第一特征词表可以与第二特征词表不同,例如,在特征同现矩阵用于指示一些词直接出现在某些短语旁边的频繁程度、或者一些人观看某些视频的频繁程度的情况下。一组子矩阵中的子矩阵的数目和一组子矩阵中的子矩阵的大小取决于特征同现矩阵的大小(例如,取决于m和n),并且取决于行嵌入向量和列嵌入向量的预定目标维数。在一些实施方式中,系统可以被配置为构建一组子矩阵,例如,使用图1描述的子矩阵构建模块。下面参照图3更详细地描述构建特征同现矩阵的一组子矩阵。系统从一组子矩阵中选择子矩阵(步骤204)。子矩阵是与特征同现矩阵的特定行块和特征同现矩阵的特定列块相关联的矩阵。例如,选自m×n特征同现矩阵的左上角的2×2子矩阵可以与包括特征同现矩阵的前两行的行块和特征同现矩阵的前两列相关联。在一些实施方式中,系统可以随机从一组子矩阵中选择子矩阵,例如,根据均匀分布。系统将相应d维初始行嵌入向量指派给来自特定行块的每一行并且将相应d维初始列嵌入向量指派给来自特定列块的每一列(步骤206)。在一些实施方式中,d是预定目标维数。一般而言,d维初始行嵌入向量和初始列嵌入向量的低值可能产生紧凑但是杂乱(noisy)的特征嵌入向量。d维初始行嵌入向量和初始列嵌入向量的高值可能产生不太紧凑但是更细粒化的特征嵌入向量。因此,预定目标维数可以是基于各种因素来选择的,该各种因素包括但不限于:特征同现矩阵的大小、由特征同现矩阵表示的特征的类型、用于执行过程200的计算硬件或者待使用生成的特征嵌入向量的情景,如上面参照图1所描述的。在一些实施方式中,每个d维初始行嵌入向量和每个d维初始列嵌入向量具有根据平均值为0并且方差为d-1/2的正态分布而分布的值。系统使用特征同现矩阵来确定来自特定行块的每一行的最终行嵌入向量和来自特定列块的每一列的最终列嵌入向量(步骤208)。最终行嵌入向量和最终列嵌入向量可以包括特征同现矩阵的低维特征嵌入向量。系统通过使用特征同现矩阵迭代地调整初始行嵌入向量和初始列嵌入向量来确定来自特定行块的最终行嵌入向量和来自特定列块的最终列嵌入向量。在一些实施方式中,这可以包括:使用特征同现矩阵迭代地调整初始行嵌入向量和初始列嵌入向量直到连续确定的误差之间的确定下降低于预定阈值为止。下面参照图4描述使用特征同现矩阵调整初始行嵌入向量和初始列嵌入向量的示例迭代。在一些实施方式中,系统可以通过使用特征同现矩阵对于一组子矩阵中的多个子矩阵并行地迭代地调整来自特定行块的初始行嵌入向量和来自特定列块的初始列嵌入向量来确定来自特定行块的每一行的最终行嵌入向量和来自特定列块的每一列的最终列嵌入向量。例如,系统可以对于特征同现矩阵的多个子矩阵并行执行上述步骤204至208。可以提供确定的最终行嵌入向量和最终列嵌入向量以与用于生成和处理特征嵌入的系统(例如,自然语言处理系统)结合使用。例如,可以使用生成的词或者短语嵌入来表示在用于确定语义相似性、解析或者翻译的机器学习系统中的对应词或者短语。在从相同词表抽取行特征和列特征的情况下,系统可以通过仅仅选择行嵌入向量并且丢弃列嵌入向量来选择一组最终嵌入向量,反之亦然。替选地,系统可以将对应条目的行嵌入特征和列嵌入特征串接以获得每个条目的具有2*d数值的嵌入向量。替选地,系统可以对于对应条目逐元素对行嵌入和列嵌入取平均。图3是用于构建特征同现矩阵的一组子矩阵的示例过程的流程图。为了方便起见,将示例过程描述为构建文本语料库的特征同现矩阵的一组子矩阵。然而,在一些实施方式中,过程300可以用于构建其它情景——例如视频或者图像——的特征同现矩阵的子矩阵。过程300将被描述为由位于一个或者多个位置中的一个或者多个计算机的系统执行。例如,根据本说明书被适当地编程的配置为执行特征嵌入的系统——例如,包括图1的子矩阵构建模块110的特征嵌入系统100——可以执行过程300。系统可以获得文本语料库(步骤302)。例如,文本语料库可以包括网页的一部分、一本或者多本书籍的一部分、或者多个搜索查询。在其它示例中,系统也可以获得视频、图像或者感兴趣的其它特征或者尺度的集合。系统通过文本语料库计算初始m×n特征同现矩阵(步骤304)。初始特征同现矩阵可以包括m行特征和n列特征。如上面参照图2描述的,初始m×n特征同现矩阵的第i-j条目可以表示行特征i与列特征j的观测同现数。例如,如果m行特征是特定语言的词并且n列特征是词字符串,则m×n特征同现矩阵的条目可以表示m词和n词字符串共同出现在文本语料库中的次数。作为另一示例,在系统在步骤302中获得在线用户所观看的视频集合而不是文本语料库的情况下,m行特征可以表示在线视频并且n列特征可以表示在线用户。m×n特征同现矩阵的条目然后可以表示在线用户观看视频的次数。系统以特征频率的降序对初始特征同现矩阵的m行排顺序(步骤306)。系统然后可以通过将排顺序的m行收集到k元素行块中来生成m/k行块。在一些实施方式中,k是基于行嵌入向量和列嵌入向量的目标维数以及期望计算效率来选择的。例如,k可以设置为最大化对用于生成特征嵌入的硬件的利用。系统以特征频率的降序对初始特征同现矩阵的n列排顺序(步骤308)。系统然后可以通过将排顺序的n列收集为k元素行块中来生成n/k列块。在一些实施方式中,m/k行块的元素可以是通过选择是同余modm/k的行来生成的。同样,m/k列块的元素可以是通过选择是同余modm/k的列来生成的。例如,如果在初始m×n特征同现矩阵中存在225的总数行,例如,k=4096,可以选择每第225/4,096=8,192行来形成行块:第一行块包含行(0、8192、16384……)、第二行块包含行(1、8193、16385……)等。以这种方式,系统根据频率对行进行排布。该构建因此可以导致每个行块包含常见和罕见行特征的混合。系统构建m×n特征同现矩阵的一组mn/k2子矩阵(步骤310)。系统通过选择生成的m×n特征同现矩阵的适当的(例如,对应的)条目,通过对于每个行块和列块对从m×n特征同现矩阵构建k×k子矩阵来构建一组mn/k2子矩阵。图4是使用特征同现矩阵调整所选子矩阵的当前组行嵌入向量和当前组后续列嵌入向量的示例迭代400的流程图。例如,可以对初始组行嵌入向量和初始组列嵌入向量执行迭代400,如上面参照图2所描述的。为了方便起见,过程400将被描述为由位于一个或者多个位置中的一个或者多个计算机的系统执行。例如,根据本说明书被适当地编程的配置为特征嵌入的系统——例如,图1的特征嵌入系统100——可以执行过程400。系统计算来自特定行块的当前行嵌入向量与来自特定列块的当前列嵌入向量的矩阵积以生成所选子矩阵的预测逐点互信息(pmi)值(步骤402)。系统将所选子矩阵的生成的预测pmi值与所选子矩阵的观测pmi值进行比较以确定误差(步骤404)。观测pmi值可以是基于以下来计算的:特征同现矩阵的相应的第i-j条目和特征同现矩阵的每个行特征的相应边际计数——例如,xi*=∑jxij,其中xij表示特征同现矩阵的每个条目,以及特征同现矩阵的每个列特征的边际计数——例如x*j=∑ixij,其中xij表示特征同现矩阵的每个条目。如上面参照图3的步骤304描述的,在一些实施方式中,m×n特征同现矩阵的每个第i-j条目可以采用大于或者等于零的值。例如,如果没有观测到同现,则特征同现矩阵的条目可以是零,或者如果观测到同现,则特征同现矩阵的条目大于零。在初始m×n特征同现矩阵的第i-j条目的值大于0的情况下,系统可以通过计算特征i和特征j的预测pmi值和观测pmi值之间的加权平方误差将所选子矩阵的生成的预测pmi值与所选子矩阵的观测pmi值进行比较以确定误差。计算得到的加权平方误差是通过置信度函数来调节的,其中,置信度函数依据初始m×n特征同现矩阵的第i-j条目的置信度来增加或者降低所计算的误差。在一些实施方式中,置信度函数是初始m×n特征同现矩阵的第i-j条目的线性变换。示例置信度函数包括但不限于或者f(xij)=ln(xij)。在初始m×n特征同现矩阵的第i-j条目的值等于0的情况下,系统可以通过将软铰链误差(softhingeerror)(例如,sigmoid函数的反导数)施加至预测pmi值来将所选子矩阵的生成的预测pmi值与所选子矩阵的观测pmi值进行比较以确定误差。将软铰链误差施加至预测pmi值避免系统对pmi估计过高。例如,系统可以通过以下操作来计算“虚幻(hallucinated)”pmi:设置初始m×n特征同现矩阵的第i-j条目并且使用惩罚对虚幻pmi的过高估计的非对称成本函数。通过考虑初始m×n特征同现矩阵的第i-j条目的值等于0的情况,系统使用与未被观测到的同现有关的信息。这样的信息能够是重要的并且提高生成的特征嵌入的准确性,例如,当考虑很少出现的特征时。例如,在特征包括特定人所观看过的电影的情况下,两部电影之间的未被观测到的同现可以用于指示两部电影具有不同体裁或者风格。系统基于确定的误差来确定对来自特定行块的当前行嵌入向量和来自特定列块的当前列嵌入向量的调整(步骤406)。在一些实施方式中,系统执行随机梯度下降以确定对当前行嵌入向量和当前列嵌入向量的调整,例如,通过计算误差函数相对于输入嵌入向量的梯度。系统使用确定的调整来调整来自特定行块的当前行嵌入向量和来自特定列块的当前列嵌入向量以生成随后的行嵌入向量和随后的列嵌入向量(步骤408)。如上面参照图2所描述的,在一些实施方式中,系统可以使用特征同现矩阵迭代地调整初始行嵌入向量和随后行嵌入向量以及初始列嵌入向量和随后列嵌入向量直到连续确定的误差之间的确定的下降低于预定阈值为止。在本说明书中描述的方法和系统可以包括用于生成和处理特征嵌入的其它系统(例如,自然语言处理系统)或者与其结合使用。例如,系统可以获得文本语料库,例如,一组英语语言的文本,并且确定词或者词字符串(“短语”)的对应特征词表。特征词表可以用于构建特征同现矩阵,该特征同现矩阵进而可以被解析成区段并且用于构建上述对应组子矩阵。子矩阵的所构建的组可以用于生成特征词表的词或者短语嵌入。生成的词嵌入可以在自然语言处理系统中被使用或者处理。例如,词或者短语嵌入可以用于表示自然网络系统中的对应词或者短语。作为另一示例,词或者短语嵌入可以用于表示机器学习模型中的对应词的特征。本说明书中所描述的主题和功能操作的实施例可以实现在数字电子电路系统中、在有形地体现的计算机软件或者固件中、在计算机硬件中——包括本说明书中所公开的结构和其结构等同物的、或者在它们中的一个或者多个的组合中。本说明书中所描述的主题的实施例可以实现为一个或者多个计算机程序,即,编码在有形非暂时性程序载体上的由数据处理装置执行或者控制数据处理装置的操作的计算机程序指令的一个或者多个模块。替选地或者另外,程序指令可以编码在人工生成的传播信号上——例如机器生成的电气、光学或者电磁信号,生成该信号是为了对用于传输至合适的接收器装置供数据处理装置执行的信息进行编码。计算机存储介质可以是机器可读存储设备、机器可读存储基底、随机或者串行存取存储器设备、或者它们中的一个或者多个的组合。然而,计算机存储介质不包括传播信号。术语“数据处理装置”涵盖用于处理数据的各种装置、设备和机器,包括:例如,可编程处理器、计算机、或者多个处理器或者计算机。装置可以包括专用逻辑电路系统,例如,fpga(现场可编程门阵列)或者asic(专用集成电路)。除了硬件之外,装置还可以包括:为所讨论的计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统、或者它们中的一个或者多个的组合的代码。计算机程序(其也可以被称为或者描述为程序、软件、软件应用、模块、软件模块、脚本或者代码)可以用任何形式的编程语言(包括编译语言或者解译语言、声明性语言或者过程语言)来编写,并且可以用任何形式(包括作为独立程序或者作为模块、组件、子例程、或者适合用于计算环境的其它单元)来部署。计算机程序可以但不需要对应于文件系统中的文件。程序可以存储在保持其它程序或者数据的文件的一部分中(例如,存储在标记语言文档中的一个或者多个脚本)、存储在专用于讨论中的程序的单个文件、或者存储在多个协调文件(例如,存储一个或者多个模块、子程序或者部分代码的文件)中。计算机程序可以被部署为在一个计算机或者位于一个站点或者跨多个站分布并且由通信网络互连的多个计算机上执行。如本说明书所使用的,“引擎”或者“软件引擎”指代提供与输入不同的输出的软件实现的输入/输出系统。引擎可以是编码功能块,诸如,库、平台、软件开发包(“sdk”)或者对象。每个引擎可以实现在任何适当类型的计算设备上,例如,包括一个或者多个处理器和计算机可读介质的服务器、移动电话、平板计算机、笔记本式计算机、音乐播放器、电子书阅读器、膝上型或者台式计算机、pda、智能电话、或者其它固定或者便携式设备。另外,两个或者更多个引擎可以实现在相同计算设备或者不同计算设备上。本说明书中所描述的过程和逻辑流程可以由执行一个或者多个计算机程序的一个或者多个可编程计算机执行以通过在输入数据上操作和生成输出来执行功能。过程和逻辑流程也可以由专用逻辑电路系统(例如,fpga(现场可编程门阵列)或者asic(专用集成电路))执行,并且装置也可以实现为专用逻辑电路系统。适于计算机程序的执行的计算机包括,例如,可以是基于,通用或者专用微处理器或者其二者、或者任何其它种类的中央处理单元。一般而言,中央处理单元将接收来自只读存储器或者随机存取存储器或者两者的指令和数据。计算机的基本元素是用于进行或者执行指令的中央处理单元和用于存储指令和数据的一个或者多个存储器设备。一般而言,计算机还包括用于存储数据的一个或者多个海量存储设备(例如,磁盘、磁光盘、或者光盘),或者可以操作地耦合以接收来自该海量存储设备的数据或者将数据传输至该海量存储设备或者进行两者。然而,计算机不需要有这样的设备。此外,计算机可以嵌入在另一设备中,例如,仅举几个例子,移动电话、个人数字助理(pda)、移动音频或者视频播放器、游戏控制台、全球定位系统(gps)接收器、或者便携式存储设备(例如,通用串行总线(usb)闪存驱动)。适合存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,包括:例如,半导体存储器设备(例如,eprom、eeprom和闪速存储器设备)、磁盘(例如,内部硬盘或者可移动盘)、磁光盘、cd-rom盘和dvd-rom盘。处理器和存储器可以由专用逻辑电路系统补充或者被合并到专用逻辑电路系统中。为了提供与用户的交互,本说明书中所描述的主题的实施例可以实现在具有用于向用户显示信息的显示设备(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器)、以及键盘和指示设备(诸如,鼠标或者轨迹球)的计算机上,用户可以通过键盘和指示设备将输入提供至计算机。其它种类的设备也可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感官反馈,例如,视觉反馈、听觉反馈或者触觉反馈;并且来自用户的输入可以以任何形式被接收,包括声音、语音或者触觉输入。另外,计算机可以通过将文档发送至用户所使用的设备并且从用户所使用的设备接收文档来与用户交互;例如,通过响应于从web浏览器接收到的请求来将网页发送至用户的客户端设备上的web浏览器。本说明书中所描述的主题的实施例可以实现在计算系统中,计算系统包括后端组件(例如,作为数据服务器),或者包括中间件组件(例如,应用服务器),或者包括前端组件(例如,具有图形用户界面或者web浏览器的客户端计算机,用户可以通过图形用户界面或者web浏览器与本说明书中所描述的主题的实施方式进行交互),或者包括一个或者多个这样的后端组件、中间件组件或者前端组件的任何组合。系统的组件可以通过任何形式或者介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“lan”)和广域网(“wan”),例如,互联网。计算系统可以包括客户端和服务器。客户端和服务器一般彼此远离,并且通常通过通信网络进行交互。客户端和服务器的关系通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序而产生。虽然本说明书包含了许多具体实施细节,但是不应该将这些细节视为对任何发明或者可能被要求的内容的范围的限制,而是作为针对特定发明的特定实施例的特征的描述。本说明书中在分开的实施例的场境(context)下描述的某些特征还可以组合形式实现在单个实施例中。相反,在单个实施例的场境下描述的各种特征也可以分开地或者按照任何合适的子组合实现在多个实施例中。此外,虽然上文可以将特征描述为以某些组合动作并且甚至起初这样要求保护,但是来自要求保护的组合的一个或者多个特征可以在一些情况下从该组合中被删除,并且要求保护的组合可以涉及子组合或者子组合的变型。同样,虽然在附图中按照特定顺序描绘了操作,但是不应该将其理解为需要按照所示的特定顺序或者按照相继的顺序来进行这样的操作,或者需要进行所有图示的操作以实现期望的结果。在某些环境下,多任务和并行处理可能是有利的。而且,上述实施例中的各种系统模块和组件的分离不应该被理解为在所有实施例中需要这样的分离,并且应该理解,所描述的程序部件和系统通常可以一起集成在单个软件产品中或者封装到多个软件产品中。已经描述了主题的特定实施例。其它实施例在所附权利要求书的范围内。例如,在权利要求书中所记载的动作可以按照不同的顺序进行并且仍然可以实现期望结果。作为一个示例,附图中所示的过程不一定需要所示的特定顺序或者相继顺序来完成期望结果。在某些实施方式中,多任务处理和并行处理可能是有益的。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1