CN107836000A - 用于语言建模和预测的改进的人工神经网络 - Google Patents
用于语言建模和预测的改进的人工神经网络 Download PDFInfo
- Publication number
- CN107836000A CN107836000A CN201680040427.1A CN201680040427A CN107836000A CN 107836000 A CN107836000 A CN 107836000A CN 201680040427 A CN201680040427 A CN 201680040427A CN 107836000 A CN107836000 A CN 107836000A
- Authority
- CN
- China
- Prior art keywords
- output
- vector
- layer
- neural network
- word
- 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
Classifications
-
- 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
-
- 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/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- 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/08—Learning methods
- G06N3/088—Non-supervised learning, e.g. competitive learning
Abstract
本发明涉及改进的人工神经网络,其用于基于输入序列项目来预测项目序列中的一个或多个下一项目。改进的人工神经网络大大降低了存储器的需求,使其适用于诸如移动电话和平板电脑等电子设备。本发明包括改进的人工神经网络在其上操作的电子设备、以及使用改进的人工神经网络来对序列中的一个或多个下一项目进行预测的方法。
Description
背景技术
诸如移动电话和平板电脑等现代移动电子设备通常经由软键盘来接收经键入的用户输入,除了简单地接收键盘输入之外,软键盘还包括各种附加功能。这些附加功能之一是能够在给出先前的单词或输入的(多个)单词的情况下预测用户将经由键盘输入的下一单词。该预测通常使用诸如在欧洲专利号2414915中所详细描述的基于n元语法(n-gram)的预测语言模型来生成。
基于n元语法的预测语言模型经常受到批评的缺点之一是它们仅依赖于先前几个单词的统计依赖关系。相比之下,本领域已经示出人工神经网络(ANN)和递归神经网络(RNN)语言模型在语言预测方面比n元语法模型表现更好(Recurrent Neural NetworkBased Language Model,Mikolov et al,2010;RNNLM-Recurrent Neural NetworkLanguage Modeling Toolkit,Mikolov et al,2011)。
人工神经网络是一种统计学习算法,其结构来源于在动物的中枢神经系统中找到的神经元和突触网络。ANN是用于对依赖于大量输入的未知函数进行逼近的有效工具。然而,在本上下文中,“函数”应当被赋予其最广泛的含义,即“将输入映射到输出的任何操作”。ANN不仅可用于逼近数学函数,还可广泛用于分类器、数据处理和机器人学等。
为了逼近这些未知函数,ANN在已知输入和相关联的已知输出的大型数据集上被训练。已知输入被输入到ANN,并且ANN的各种内部属性的值被迭代地调节,直到ANN输出或逼近已知输入的已知输出。通过使用具有多组已知输入和输出的大型数据集来执行该训练过程,ANN被训练为逼近将已知输入映射到已知输出的基础函数。通常,用来逼近不同功能的ANN具有相同的人工神经元和突触的一般结构;这是一个提供期望行为的训练过程。
迄今为止,由于ANN的计算复杂性和存储需求,在移动设备上运行ANN是不实际的。现有技术中的神经网络,并且特别是神经网络语言模型已经被设计为在具有大量存储空间和处理能力的计算机或服务器上运行。与计算机或服务器相比,诸如移动电话和平板电脑等便携式设备通常具有少得多的随机存取存储器(RAM)和长期非易失性存储器。移动设备上可用资源的减少不仅阻止包括ANN的大型复杂应用以可接受的性能水平执行,而且它们的大的尺寸也会阻止最终用户将应用安装在其有限存储设备上。
因此,需要一种能够通过提供存储和存储器需求上的显著减少来在移动设备上有效运行的ANN预测性语言模型。
下面描述的实施例不限于解决已知的ANN或ANN预测语言模型的任何或全部缺点的实施方式。
发明内容
本发明的第一方面提供了一种电子设备,其包括处理器、至少一个输入接口和人工神经网络。人工神经网络包括输入层、输出层以及至少第一和第二隐藏层。第二隐藏层的单元的数目等于输入层的单元的数目。处理器被配置为通过以下方式基于在至少一个输入接口处接收的输入序列项目来生成项目序列中的一个或多个预测的下一项目:使用存储的数据来取回与输入序列项目对应的上下文向量;用人工神经网络来处理上下文向量;通过使用至少一些存储的数据来对人工神经网络的第二隐藏层的输出进行变换,来在人工神经网络的输出层处取回输出向量,其中输出向量对应于一个或多个预测的下一项目;以及输出输出向量。
优选地,处理器被配置为通过以下方式用人工神经网络来处理上下文向量:向人工神经网络的输入层提供上下文向量;将输入层的内容与第一权重矩阵W0相乘,并且向人工神经网络的第一隐藏层提供结果;利用第一隐藏层的节点来处理到第一隐藏层的输入以产生第一隐藏层的输出;将第一隐藏层的输出与第二权重矩阵W1相乘,并且向人工神经网络的第二隐藏层提供结果;以及利用第二隐藏层的节点来处理到第二隐藏层的输入以产生第二隐藏层的输出。
另外,人工神经网络还可以包括递归隐藏向量。递归隐藏向量包括指示人工神经网络的先前状态的数据,以允许人工神经网络保持与先前输入项目有关的上下文,从而提高其输出的准确性。
如果人工神经网络包括递归隐藏向量,则处理器被配置为:在用人工神经网络的隐藏层来处理输入层的内容之前,优选地通过将输入层的内容与递归隐藏向量的内容附加来将输入层的内容与递归隐藏向量连结,反之亦然。连结的输入层和递归隐藏层由人工神经网络的第一隐藏层处理。处理器还被配置为:优选地通过利用第一隐藏层的输出替换当前递归隐藏向量,来根据第一隐藏层的输出来更新递归隐藏向量。
优选地,处理器被配置为:通过取回编码矩阵中的行或列来取回上下文向量,编码矩阵与在至少一个输入接口处接收的输入相对应。或者,处理器可以被配置为产生与输入序列项目相对应的N选1向量,并且通过使用编码矩阵对N选1向量进行变换来取回上下文向量,其中对N选1向量进行变换包括使用矩阵乘法来将N选1向量与编码矩阵相乘。
优选地,处理器还被配置为从人工神经网络的输出层取回输出类别预测,其中输出类别预测限定一组一个或多个序列项目,并且还优选地,处理器被配置为:将用编码矩阵对第二隐藏层的输出进行的变换限制为仅包括输出类别预测中的一个或多个序列项目。
作为由人工神经网络产生的预测的对象的项目序列可以是以下中的一个或多个的序列:单词、字符、语素、单词段、标点符号、心情符号、表情符号、贴图、主题标签和语标字符笔划。
优选地,至少一个输入界面是键盘,并且其中输入序列项目是以下之一:单词、字符、语素、单词段、标点符号、心情符号、表情符号、贴图、主题标签和软键盘上的按键位置。
电子设备还可以包括触敏显示器,其中键盘是软键盘,并且处理器被配置为在显示器上输出软键盘。
优选地,处理器还被配置为从输出向量来确定一个或多个序列预测;生成与一个或多个序列预测相对应的一个或多个显示对象;并且在显示器上输出一个或多个显示对象。
一个或多个显示对象可以是可选的,并且处理器可以被配置为在选择一个或多个显示对象之一时选择对应于所选择的显示对象的序列项目。
优选地,处理器被配置为基于一个或多个可选择的显示对象中的所选择的显示对象来生成项目序列中的一个或多个另外的预测项目。
本发明的第二方面提供了一种用于基于输入序列项目来生成项目序列中的一个或多个预测的下一项目的计算机实现的方法。该方法包括以下步骤:在电子设备处接收输入序列项目;从存储的数据中取回与输入序列项目相对应的上下文向量;利用人工神经网络来处理上下文向量,其中人工神经网络包括输入层、第一隐藏层、第二隐藏层和输出层;通过使用至少一些存储的数据来对人工神经网络的第二隐藏层的输出进行变换,来在人工神经网络的输出层处取回输出向量,其中输出向量与一个或多个预测的下一项目相对应;并且输出输出向量,其中人工神经网络的第二隐藏层的单元的数目等于人工神经网络的输入层的单元的数目。
用人工神经网络来处理上下文向量优选地包括:向人工神经网络的输入层提供上下文向量;将输入层的内容与第一权重矩阵W0相乘,并且向人工神经网络的第一隐藏层提供结果;用第一隐藏层的节点来处理到第一隐藏层的输入以产生第一隐藏层的输出;将第一隐藏层的输出与第二权重矩阵W1相乘,并且向人工神经网络的第二隐藏层提供结果;以及用第二隐藏层的节点来处理到第二隐藏层的输入以产生第二隐藏层的输出。
优选地,人工神经网络还包括递归隐藏向量,并且该方法还包括在用人工神经网络的隐藏层处理输入层的内容之前,将输入层的内容与递归隐藏向量连结。
递归隐藏向量包括指示人工神经网络的先前状态的数据,并且优选地,递归隐藏向量根据第一隐藏层的输出来更新。递归隐藏向量可以通过用第一隐藏层的输出代替递归隐藏向量来更新。
优选地,取回上下文向量的步骤包括从对应于输入序列项目的编码矩阵中取回行或列。或者,在取回上下文向量的步骤之前,该方法还可以包括产生与输入序列项目相对应的N选1向量的步骤,并且其中取回上下文向量的步骤包括用编码矩阵对N选1向量进行变换。对N选1向量进行变换可以包括使用矩阵乘法来将N选1向量与编码矩阵相乘。
在取回输出向量的步骤之前,该方法优选地包括从人工神经网络的输出层中取回输出类别预测,其中输出类别预测限定一组一个或多个序列项目。在取回输出类别预测之后,在取回输出向量的步骤中,优选地将用编码矩阵对第二隐藏层的输出进行的变换限制为仅包括对应于输出类别预测的一个或多个序列项目。
项目序列可以是以下中的一个或多个的序列:单词、字符、语素、单词段、标点符号、心情符号、表情符号、贴图、主题标签和语标字符笔划。
优选地,至少一个输入界面是键盘,并且其中输入序列项目是以下之一:单词、字符、语素、单词段、标点符号、心情符号、表情符号、贴图、主题标签和软键盘上的按键位置。
该方法还可以包括以下步骤:从输出向量来确定一个或多个序列预测;生成对应于一个或多个序列预测的一个或多个显示对象;并且在显示器上输出一个或多个显示对象。优选地,一个或多个显示对象是可选择的,并且该方法还包括:在选择一个或多个显示对象之一时,选择与所选择的显示对象相对应的序列项目。
该方法还可以包括以下步骤:基于一个或多个显示对象中的所选择的显示对象来生成项目序列中的一个或多个另外的预测项目。
在本发明的第三方面中,提供了一种计算机可读介质。计算机可读介质包含在由处理器执行时引起处理器执行方法步骤的指令。
附图说明
图1描绘了根据现有技术的示例前馈人工神经网络。
图2描绘了根据现有技术的人工神经网络的层的示例单元。
图3描绘了用于预测语言建模的现有技术的递归神经网络。
图4描绘了根据本发明的人工神经网络。
图5描绘了根据本发明的使用人工神经网络来预测句子中的单词的示例过程。
图6是具有人工神经网络的电子设备处的操作方法的流程图;
图7示出了其中实现了人工神经网络的实施例的示例性的基于计算的设备。
具体实施方式
图1描绘了根据现有技术的简单ANN 100。实质上,诸如ANN 100等人工神经网络是在诸如输入层101、隐藏层102和输出层103等方向依赖层中组织的数学函数链,每个层包括多个单元或节点110-131。ANN 100被称为“前馈神经网络”,因为每个层101-103的输出被用作下一层的输入(或者在输出层103的情况下是ANN 100的输出),并且没有反向步骤或循环。应当理解,图1中描绘的单元110-131的数目是示例性的,并且典型的ANN在每个层101-103中包括更多的单元。
在ANN 100的操作中,在输入层101处提供输入。这通常涉及将真实世界的输入映射成适合于输入层101(即,可以输入到输入层101的每个单元110-112)的离散形式。例如,诸如ANN 100等ANN可以用于光学字符识别(OCR)。输入层的每个单元110-112可以对应于包含要被识别的字符的位图中每个像素的颜色通道值。
在将输入提供给输入层101之后,这些值通过ANN 100传播到输出层103。隐藏层102(之所以被这样命名是因为其输入和输出被包含在神经网络内)的每个单元实质上是将多个输入值作为参数并且返回单个值的函数。以隐藏层102的单元120为例,单元120接收来自输入层101的单元110、111和112的输入,并且产生单个输出值,该输出值然后被传递到输出层103的单元130和131。
输出层103的单元130和131以与隐藏层102的单元类似的方式操作。输出层103的每个单元130和131接收来自隐藏层102的所有四个单元120-123的输入,并且输出单个值。与输入层的输入类似,输出层的输出是以某种方式被映射到真实世界量的离散值。在OCR示例中,输出层103可以具有与ANN 100能够识别的每个字符相对应的单元。然后在输出层103中,所识别的字符可以用值为1的单个单元指示,而其余单元的值为0。实际上,ANN 100不太可能提供如此干净的输出,并且输出层103将代之以包括具有各种值的多个单元,每个值指示输入字符是与该单元相关联的字符的概率。
现在参考图2更详细地描述隐藏层102和输出层103的单元120-131的操作和配置。图2的单元200可以是上述ANN 100的单元120-131之一。单元200从ANN的前一层中的单元接收三个输入x0、x1和x2。当这些输入被单元200接收时,它们被乘以对应的自适应权重值w0、w1和w2。这些权重值是“自适应的”,因为这些权重值是在训练过程中修改的ANN的值。应当理解,值x0、x1和x2由神经网络的前一层的单元生成,并且因此取决于到神经网络的输入。自适应权重值w0、w1和w2独立于输入,并且对于定义ANN的行为是必不可少的。
在输入x0、x1和x2乘以自适应权重值之后,它们的乘积被累加并且用作传递函数的输入。传递函数通常是诸如阶跃函数等阈值函数,它类似于生物神经元,因为它在其输入达到阈值时“激发”。其他传递函数(诸如S形激活函数、softmax函数和输入的线性组合)可以并且被经常使用。传递函数的输出是单元200的输出。
如上所述,ANN 100使用具有已知输入和已知输出的大量数据来训练。例如,如果要使用ANN 100来以当前单词作为输入来预测句子中的下一单词,则可以使用任何合适的文本主体来训练ANN 100。用于训练ANN的常用算法是误差反向传播方法,其通常称为简单反向传播。反向传播通过调节自适应权重(例如,图2的w0、w1和w2)以使预测输出与实际输出的误差或差异最小化来工作。后向传播算法的详细描述可以在“Chapter 7 of NeuralNetworks-A Systematic Introduction by Raul Rojas,published by SpringerScience&Business Media,1996”中找到。
图3描绘了由Mikolov等人在“RNNLM-Recurrent Neural Network LanguageModeling Toolkit”中描述的ANN 300。ANN 300用于在给定上下文的情况下预测文本数据中的下一单词,将当前单词作为其输入并且产生预测的下一单词作为其输出。
与ANN 100类似,ANN 300包括输入层304、隐藏层306和输出层308。与典型的ANN一样,ANN 300包括以第一权重矩阵340形式的自适应权重,其在输入层304的单元的值被传递到隐藏层306时修改这些值。ANN 300还包括编码矩阵320和解码矩阵330。编码矩阵320将真实世界的单词映射成可以由ANN 300的单元处理的离散形式。解码矩阵330在隐藏层106的单元的值被传递到输出层108时修改这些值,以将ANN 300处理的结果变成真实世界的单词。
输入到ANN 300的单词以N选1形式302来表示,即一连串的N个位,除了值为1的单个位以外,所有其他位的值为0。N个不同的N选1向量(每个具有1位的唯一位置)映射到预定义的词汇表中的单词。N选1表示302由编码矩阵320修改以提供输入层304的值。
除了典型前馈ANN的输入层、隐藏层和输出层之外,ANN 300还包括递归隐藏向量(RHV)312。在输入层304的单元的值由权重矩阵340修改之前,通过ANN 300的每次传递,RHV312的单元的值与输入层304的单元的值连结。这里使用的术语“连结”具有本领域中的标准含义:RHV 312的单元的值被附加到输入层304的单元的值,反之亦然。然后,输入层304和RHV 312的单元的连结的值乘以第一权重矩阵340,并且被传递到隐藏层306。在ANN 300的每次传递之后,隐藏层306的单元的值被复制到RHV 312,以替换先前的RHV。通过引入RHV312,ANN 300能够在预测之间保持先前预测的单词的上下文,从而提高了系统在用于诸如语言建模等固有地基于上下文的应用中时的准确性。
当在输出层308中使用softmax激活函数时,输出层308的单元的值表示在给定输入单词的情况下的下一单词的概率分布,并且经由RHV 312表示先前传递时的隐藏层的状态。
ANN 300还可以包括类别预测输出310。通过将隐藏层306的单元的值乘以第二权重矩阵342来提供单词类别预测,其中类别是可能的输出单词的逻辑分组。
编码矩阵320和解码矩阵330必须对可用于ANN 300的整个词汇表进行编码,并且因此构成了磁盘上和存储器中的神经网络的大部分尺寸。通常,编码矩阵和解码矩阵占据ANN大小的约80%。
本发明提供了一种用于ANN预测语言模型的新的框架,其通过以准确度少量的(如果有的话)相应损失来提供存储空间和存储器需求的显著减少,以能够在移动设备上有效运行。该改进通过以下方式来实现:提供具有与输入层相同的维度的第二隐藏层,以使得能够将相同矩阵同时用作编码矩阵和解码矩阵。
由于编码矩阵和解码矩阵消耗了大部分所需要的存储空间,并且具有最大的存储器要求,所以出于两个目的使用相同的矩阵产生约40%的尺寸减小。这可以降低软件提供商和用户两者的下载成本,减少手机上所需要的存储空间,并且减少RAM使用和要求。
图4描绘了根据本发明的示例ANN 400。ANN 400包括输入层404、第一隐藏层406、第二隐藏层408和输出层410。根据本发明,第二隐藏层408具有与输入层404相同的维度,即第二隐藏层408和输入层404具有相同数目的单元。
ANN 400可以包括多于两个隐藏层,只要最终隐藏层具有与输入层404相同数目的单元。
ANN 400基于输入序列项目来生成项目序列中的一个或多个预测的下一项目,例如基于用户已经输入到系统的先前单词来预测用户可能希望在句子中包括的下一单词。下面的描述是针对预测单词序列中的下一单词的特定实施例而给出的,但是应当理解,通过在不同的数据集上训练ANN 400,本公开可以容易地推广到其他项目序列,而不改变ANN400的架构。例如,可以使用相同的ANN 400来预测项目序列中的下一项目,例如:单词、字符、语标字符笔划(例如,汉字)、语素、单词段、标点符号、心情符号、表情符号、贴图和主题标签、或者光学字符识别或用户意图预测。例如,如果ANN 400的输入是操作系统或软件应用事件,则ANN 400可以生成用户可能希望执行的下一动作的预测,例如,如果发生的事件是打开应用,则ANN 400可以预测用户随后最有可能打开特定文档。例如,所生成的预测可以随后用于向用户更显眼地呈现或者在呈现任何其他选项之前打开特定文档的选项。
在一个实施例中,ANN 400的输入单词由N选1向量402表示。除了值为1的单个元素,N选1向量402的所有N个元素的值为0。1元素的位置对应于输入单词。ANN 400的层404-410对通过用编码矩阵420变换N选1向量402而生成的输入单词的上下文向量表示进行操作。典型地,该变换是矩阵乘法;然而,应当理解,也可以使用其他合适的方法和矩阵乘法的变型。然后,从N选1向量402的变换得到的上下文向量被用作到ANN 400的输入层404的输入。
如果将ANN 400用于除了预测序列中的下一单词之外的目的,则ANN 400的适当输入将代之以用N选1向量402表示。例如,如果ANN 400用于预测下一语素,则N选1向量402将表示输入语素。类似地,如果ANN 400用于预测下一字符,则N选1向量402将表示输入字符。
应当理解,具有N×m或m×N矩阵(诸如编码矩阵E 420)的N选1向量的矩阵乘法相当于从编码矩阵E 420中选择单个行或列以产生单个m维向量。因此,根据本发明的ANN实际上不需要包括N选1向量402或用于用编码矩阵E 420来变换N选1向量402的装置——在ANN400的传递时,通过简单地选择与输入单词相对应的编码矩阵E 420的行或列,可以取回输入单词的上下文向量。
编码矩阵E 420的每行可以对应于系统词典中的单词,系统词典例如是,由ANN400在其上运行的设备的操作系统所使用的词典、或者由利用ANN 400的软键盘应用所使用的词典。编码矩阵E 420的第一行对应于已经被分配ID 1的单词,第二行对应于已经被分配ID 2的单词,等等。编码矩阵E 420的每行的大小为m,其是上下文向量大小。每行的大小m在ANN 400被投入使用之前在执行训练时基于测试来确定。较少数目的列减少了利用编码矩阵E 420执行操作的计算复杂度。然而,矩阵E 420必须具有足够高的列数m来对每一行所表示的输入序列项目进行编码。可以使用m的各种值,但是m对于任何给定的经训练的ANN 400是固定的。优选地,列数m小于或等于128,其已经在实验上示出以提供编码与计算复杂性之间的良好平衡。如果ANN 400在其上运行的电子设备具有较少的可用计算资源(例如较弱的处理器或较少的存储器),则计算复杂度与准确度之间的最佳平衡可以导致较少的列数m。行数优选地固定到词典大小,但是应当理解,单词可以被分组在一起,或者从编码矩阵E420完全省略。应当理解,以上讨论(通过“行”和“列”的必要切换)同样适用于其中每列对应于系统词典中的单词的备选方案。
一旦已经从编码矩阵E 420生成了上下文向量,则上下文向量由ANN 400处理。输入层404的单元的值被乘以自适应权重W0 430,并且在第一隐藏层406的每个单元处被求和。输入层404的单元的加权输出之和用作传递函数的输入。可以使用任何合适的传递函数,自然S形激活函数或softmax激活函数。应当理解,由第一隐藏层406对输入层404的单元的加权输出的求和可以通过对1×m上下文向量与m×H1第一权重矩阵W0 430的矩阵相乘来执行,其中H1是第一隐藏层406的单元的数目。然后,将第一隐藏层406的传递函数应用于由上下文向量与第一权重矩阵W0 430相乘所得到的1×H1向量的每个元素,传递函数的结果是第一隐藏层406的输出,其本身可以由1×H1向量表示。
在本发明的优选实施例中,ANN 400还包括递归隐藏向量(RHV)414;然而,应当理解,ANN 400在没有RHV的情况下将仍然工作。在ANN 400的每次传递之后,第一隐藏层406的输出被复制到RHV414。应当理解,将第一隐藏层406的输出复制到移动设备、计算机或其他电子设备的存储器内的RHV 414的实际动作不一定在本发明被执行时执行。例如,指向当前RHV 414的指针可以被存储在存储器中,并且在ANN 400的每次传递时被更新以指向电子设备的存储器中存储有第一隐藏层406的最近生成的输出的位置。此外,应当理解,“更新”递归隐藏向量的动作(通过复制、修改指针或通过任何其他合适的方式)可以在第一隐藏层406的输出被生成之后的任何时间发生。
当以这种方式执行本发明时,RHV 414保持关于系统的先前状态(即先前输入的序列项目)的上下文信息,从而提高了ANN 400提供精确预测的能力。
当使用RHV 414时,在第一隐藏层406对上下文向量的操作之前,上下文向量与RHV414连结。这可以在数学上表示为1×(m+H1)向量,其包含上下文向量和RHV 414两者的元素。然后连结的向量乘以(m+H1)×H1第一权重矩阵W0 430以产生激活函数对其进行操作的1×H1向量,以生成第一隐藏层406的输出。
一旦生成第一隐藏层406的输出,第一隐藏层406的每个单元的值被再次乘以自适应权重,相加并且用作第二隐藏层408的单元处的传递函数的输入。对于第一隐藏层404,第二隐藏层的功能可以被执行为对矩阵乘法的乘积的传递函数的操作。表示第一隐藏层406的输出的1×H1向量乘以H1×H2第二权重矩阵W1 440,其中H2是第二隐藏层408的单元的数目。由于第二隐藏层具有与输入层相同的维度,H2=m。第二隐藏层408的激活函数(再次优选地为S形激活函数,尽管可以使用任何其他适当的传递函数)被应用于所得到的矩阵乘法的1×m向量以产生第二隐藏层408的输出。
第一隐藏层406的单元的数目优选地大于第二隐藏层408的单元的数目;然而,第一隐藏层406的单元的数目并不是绝对必要地是更大的,特别是当ANN 400包括多于两个隐藏层时。
由于输入层和第二隐藏层具有相同的维度,所以可以使用相同的编码矩阵420或其转置来将单词402的N选1表示编码为适合于由ANN 400处理的形式,并且可以使用相同的编码矩阵420或其转置来对第二隐藏层408的输出进行解码以提供输出层410的概率分布。因此,第二隐藏层408的输出用编码矩阵420进行变换,并且通过最终激活函数(优选地是softmax激活函数)进行操作,尽管,诸如S形激活函数等任何其他适当的传递函数在被正确地归一化时也可以用于来产生输出向量410。输出向量410对应于在给定输入单词的情况下的下一单词的概率分布,其中输出向量410的每个元素的值对应于下一单词是与该元素在输出向量410中的位置相对应的单词的概率。
在优选实施例中,除了输出向量410之外,ANN 400的输出层还可以包括基于类别的输出412。为了生成基于类别的输出412,第二隐藏层408的单元的输出乘以自适应权重W2450,相加并且用作传递函数(优选地是softmax激活函数,但是也可以使用任何其他适当的传递函数,诸如自然适当地归一化的S形激活函数)的输入。类似于第一隐藏层406和第二隐藏层408,输出层412的基于类别的部分的操作可以由第二隐藏层408的输出与第三加权矩阵W2 450的矩阵乘法表示。所得到的向量被用作传递函数的输入,以产生输出层412的基于类别的部分的输出。
基于类别的输出用于预测单词类别-分组相关的单词。例如,类别可以根据单词在训练文本中出现的频率来对它们进行分组,或者可以根据语义或句法相似度来对单词分组,或者根据字母顺序来对单词分组。使用基于类别的输出412可以减少预测过程中所涉及的计算。例如,当ANN 400正在进行预测时,它首先使用比编码矩阵420小得多的第三权重矩阵W2 450(潜在地小几个数量级)来寻找预测类别。然后可以使用基于类别的输出来将最可能的单词的计算限制为一个或多个输出类别中的单词。
softmax函数由下式给出:
其中z是L维向量。如果不使用类别,则向量z的大小与词典的大小相同,即L是词典中单词的数目。词典中单词的数目通常在104的量级;因此,等式的分母中的求和是特别复杂的,从而在计算上要求很高。
然而,单词wi的输出概率P(wi)可以重新表示为:
P(wi)=P(cj)P(wi|cj)
其中c是单词类别,i是单词wi的索引,j是单词wj所属的类别的索引。因此,如果使用类别,则输出层的softmax函数可以分为两部分。首先,计算每个类别的softmax函数以产生向量σ(c),它为每个单词类别提供概率P(cj)。第二,对于给定的单词类别,用softmax函数仅计算该类别中的单词wi的第二向量σ(w)j,以提供概率P(wi|cj)。优选地,计算多于一个类别cj的向量σ(w)j,例如,计算向量σ(c)中具有最高值的三个类别中的每个类别的向量σ(w)j,即最高概率P(cj)。
例如,如果将10,000个单词的词典分成100个类别,每个类别包含100个单词,并且计算前三个类别中单词的概率,则简化了softmax函数的计算,仅需要计算100个取幂值的四个和(一个用于向量σ(c),另一个和用于计算三个类别cj中的每个的向量σ(w)j),而不是10,000个取幂值的和。
图5描绘了从输入“I”开始处理文本“I drive a car”的ANN 400的示例。图中所示的上标t表示该过程的时间步骤(time step)。时间t是在句子“I drive a car”已经被处理之后的过程中的最后的时间步骤,t-1是先前的时间步,t-2是t-1之前的时间步,等等。在这个示例中,采用基于类别的输出,虽然这是可选的。
所描绘的过程开始于步骤501和时间t-2。ANN 400具有从系统的先前状态所学习的上下文信息,其包括过去的输入的知识、以及输入并且被存储在RHV H1 (t-3)中的先前文本。当用户输入字母“I”后跟空格时,上下文单词“I”的N选1维向量与编码矩阵E相乘,产生上下文向量M(t-2)。如上所述,这个步骤不是必要的。优选地,可以简单地选择与单词“I”相对应的编码矩阵E的行或列,而不生成N选1向量并且将其与编码矩阵E相乘。上下文向量M(t-2)与表示ANN的先前状态的RHV H1 (t-3)连结,并且与第一权重矩阵W0 (t-2)相乘以形成第一隐藏层H1 (t-2)。如由将处理步骤501的第一隐藏层链接到处理步骤502的箭头所指示的,使用隐藏层H1 (t-2)的输出作为RHV H1 (t-2)的下一迭代的输入。
隐藏层H1 (t-2)的输出也与第二权重矩阵W1 (t-2)相乘,并且由第二隐藏层的激活函数操作,以产生第二隐藏层H2 (t-2)的输出。如上所述,该隐藏层具有与上下文单词向量M(t-2)相同的维度。接下来,第二隐藏层H2 (t-2)的输出乘以权重矩阵W2 (t-2),并且被馈送到激活函数以预测单词类别C(t-2)。然后第二隐藏层H2 (t-2)的输出与编码矩阵E相乘,以得到实际的N维单词预测O(t-2),其中使用softmax函数计算输出概率限于最可能的一个或多个类别。在这种情况下,预测的下一单词可以是单词“drive”。
如果用户在处理步骤501之后选择了单词“drive”,则到第二处理步骤502的输入单词是“drive”。单词“drive”的N选1维向量与编码矩阵E相乘,或者E的相关行或列被选择以产生上下文向量M(t-1)。上下文向量与先前状态的第一隐藏层H1 (t-2)的递归隐藏向量连结。连结的向量与权重矩阵W0 (t-1)相乘,并且被馈送到激活函数以产生第一隐藏层H1 (t-1)的输出。第一隐藏层H1 (t-1)的输出被复制到递归隐藏向量,以在后续处理步骤中使用。
第一隐藏层H1 (t-1)的输出与第二权重矩阵W1 (t-1)相乘,并且被馈送到激活函数以生成第二隐藏层H2 (t-1)的输出。接下来,第二隐藏层H2 (t-1)的输出乘以第三权重矩阵W2 (t-1),并且被馈送到激活函数以预测单词类别C(t-1)。然后第二隐藏层H2 (t-1)的输出与编码矩阵E相乘,以得到实际的N维单词预测O(t-1),其中使用softmax函数计算输出概率限于最可能的一个或多个类别。在这种情况下,预测的下一单词可以是单词“a”。
再次,如果用户在处理步骤502之后选择了单词“a”,则到第三处理步骤503的输入单词是“a”。单词“a”的N选1维向量与编码矩阵E相乘,或者E的相关行或列被选择以产生上下文向量M(t)。上下文向量与先前状态的第一隐藏层H1 (t-1)的递归隐藏向量连结。连结向量与第一权重矩阵W0 (t)相乘,并且被馈送到激活函数以产生第一隐藏层H1 (t)的输出。第一隐藏层H1 (t)的输出被复制到递归隐藏向量,以在后续处理步骤中使用。
第一隐藏层H1 (t)的输出与第二权重矩阵W1 (t)相乘,并且被馈送到激活函数以生成第二隐藏层H2 (t)的输出。接下来,第二隐藏层H2 (t)的输出乘以第三权重矩阵W2 (t),并且被馈送到激活函数以预测单词类别C(t)。然后第二隐藏层H2 (t)的输出与编码矩阵E相乘,以得到实际的N维单词预测O(t-1),其中使用softmax函数计算输出概率限于最可能的一个或多个类别。在这种情况下,预测的下一单词可以是单词“car”。
输入句号可以表示到系统的句子结束。优选地,句号和其他标点符号被类似地处理为任何单词,即标点符号项目是在适当的情况下可以由ANN 400产生的有效预测。因此,标点符号被自动地考虑作为要用于任何后续预测的上下文的一部分,因为通过存储RHV H1 (t),ANN 400能够使用该句子的上下文来帮助预测另外的句子。
与所有ANN类似,ANN 400必须在训练数据上被训练,然后才能够准确地预测序列中的下一单词或其他项目。通过将所选择的文本馈送到系统中来训练ANN 400。所选择的文本可以使用已经由用户书写的写入单词的语料库(例如,社交媒体文章、电子邮件和文本消息),为该特定的最终用户进行个性化。在使用最终用户生成的文本进行训练之前,或者作为使用最终用户生成的文本的备选方案,可以使用标准文本来初始训练ANN 400。第一权重矩阵430、第二权重矩阵440和第三权重矩阵450以及编码矩阵420的值被相应地修改,以向系统给予基准准确性水平。
随着用户从在移动设备上的选择栏上所呈现的候选中选择单词,ANN 400通过不断学习来进一步提高准确性,从而为用户进行个性化预测。由ANN 400以最高概率生成的预测的下一单词可以被输出,并且适当的单词由用户选择。或者,如果输出给用户的预测单词都不是正确的预测,则用户可以继续手动输入单词。无论这两个过程如何发生,系统都知道输入单词和正确的输出单词两者。因此,随着ANN400的使用,它可以被不断训练以提高其准确性。
应当理解,根据本发明的预测项目序列中的下一项目、而不是具体地预测单词的通用ANN可以使用任何合适的数据选择来训练,该数据选择具有良好定义的已知输入和相应的已知输出。
ANN 400的训练使用被称为反向传播时间(BPTT)算法的反向传播算法的修改版本。反向传播时间算法在Raul Rojas的“Neural Networks-A Systematic Introduction”中在7.4.1章节中有详细描述。用于训练ANN 400的BPTT算法是由Rojas描述的算法的修改版本。具体地,该算法用以下两种方式之一修改:
1.编码矩阵420在每次正向传递之后在输出层中被修改。向后计算误差导数直到第一隐藏层406,并且随后存储误差导数。当达到所选择的时间窗口的结束时,可以执行反向传播时间。误差导数被执行到先前的时间步,并且误差被向下反向传播到输入层。此时,可以根据输入层中的误差导数来更新编码矩阵420。这种方法的优点是所有更新都尽快完成:每一步都可以使用前一步的更新后的权重。如图3所示的网络的上半部分(即从输入通过矩阵E、隐藏层并且再次通过编码矩阵E到输出的路径)在每次正向传递时与编码矩阵一起被更新。下半部分(即递归隐藏向量的权重矩阵W0)在窗口的结束时与对编码矩阵的第二组更新一起被更新。
2.每个步骤都执行前向传递,而没有任何更新。所有的更新都在反向传播时间期间在时间窗口结束处进行。这包括第一权重矩阵430、第二权重矩阵440和第三权重矩阵450以及对编码矩阵420的全部更新。首先在时间窗口中的所有点处计算误差导数,并且然后对其求平均并用于更新权重。这种方法的好处是所有权重更新在所选择的时间窗口中的所有时间步骤上求平均,以可能产生更平滑和更稳定的更新。
ANN 400通常位于电子设备上,例如智能电话或平板电脑。电子设备包括至少一个输入接口,例如触敏显示器或者硬或软键盘、处理器和ANN 400。ANN 400的输入经由输入接口来提供,并且ANN 400的输出预测可以在电子设备的图形用户界面上输出。
电子设备的处理器被配置为处理在ANN 400的输入接口处所接收的输入,以产生序列中的一个或多个预测的下一项目。ANN 400优选作为计算机可读指令被存储在与电子设备相关联的存储器中,其中指令可以由处理器访问和执行。
优选地,输入界面是在移动电话或平板电脑的触敏显示器上操作的软键盘。电子设备的用户首先使用软键盘将文字输入到文本域,然后输入空格字符或标点符号。空格字符或标点符号向键盘软件指示用户已经完成输入单词。作为空格字符或标点符号的备选,单词的结束可以通过选择建议的更正或单词完成来指示。键盘软件然后利用ANN400来基于输入的单词为下一单词生成多个预测。然后(优选地在用户开始输入下一单词之前)在触敏显示器上(优选地与键盘同时)显示由ANN 400输出的最可能预测中的预定义数目(例如,三个或四个)的预测(即,对应于具有最高值的输出层的单元的单词),。用户然后可以选择所显示的单词预测之一,以提示键盘将所选择的单词输入到文本域中。一旦用户选择了单词,然后将所选择的单词输入到ANN 400,并且生成和显示另外的预测单词。或者,如果呈现给用户的单词预测均不正确,则用户可以继续使用软键盘的键来输入下一单词。
如果电子设备的用户没有选择所显示的预测,而是用户继续手动输入下一单词,则由ANN生成的当前单词的预测由过滤模块根据字符或输入的其他符号来过滤,并且所显示的预测可以使用本领域已知的技术根据与该过滤器相匹配的具有最高概率的单词来更新。例如,考虑上面关于图5讨论的句子,“I drive a car”,ANN 400可能不能正确地预测“car”是在给定输入序列项目的情况下最有可能的单词或最有可能的下一单词之一。在这种情况下,单词“car”不会被呈现给用户使得他们可以选择它作为正确的预测。如果没有向用户呈现正确的预测,则用户可以开始向电子设备中键入下一单词,即“car”。当用户键入单词的字母时,由ANN 400生成的预测列表被过滤。例如,当用户输入“car”的字母“c”时,预测列表被过滤以仅包括以字母“c”开始的单词。当预测列表被过滤时,被呈现给用户的预测可以被更新,不匹配过滤器的预测被匹配过滤器的次最可能的预测替换。
应当理解,预测的过滤可以基于除了键入的字符之外的其他因素。例如,如果用户开始键入,表示没有显示的预测是适当的,则过滤器可以简单地对所显示的预测进行打折,并且可以显示下一最可能的预测,而不考虑哪些特定字符被键入。或者,过滤器可以考虑到按键可能不准确,并且可以扩展过滤器以包括键盘上与键入的字符相邻或靠近的字符。
图6是在电子设备(诸如智能电话、平板电脑、头戴式计算机、或具有人工神经网络(诸如本文中描述的示例的人工神经网络)的其他计算设备)处的操作方法的流程图。该方法使用设备处的软件、固件、硬件中的任何一个或多个来实施。下面参考图7更详细地描述电子设备的示例。
图6的方法是预测时间方法,也被称为测试时间方法,其中经训练的神经网络正被用于生成针对先前未被神经网络看到的新的示例的预测。在图6的情况下,预测是单词的预测。然而,这不是必需的,因为该方法适用于预测序列中的任何项目。在一些情况下,这些项目可以分解为字符或其他较小的单元。
电子设备接收(600)由用户输入的单词,诸如通过在软键盘上键入来将字符输入到图形用户界面上的文本输入框中。在一些示例中,使用其他输入方法,诸如语音输入、手势输入等。
电子设备检查(602)在电子设备的高速缓存中是否存在与用户输入的单词相关联的单词嵌入条目。单词嵌入是值的向量,其表示单词在多维空间中的位置,向量中的每个条目表示单词表现出由空间的维度之一表示的特征的程度。如果在高速缓存中存在用于输入单词的单词,则这在操作610中被取回,并且通过ANN(诸如图3或图4中的ANN)来处理以计算预测的单词嵌入614。
在高速缓存没有存储针对由用户输入的单词的单词嵌入的情况下,可选地向单词嵌入模型中输入单词604。单词嵌入模型604的参数可以存储在高速缓存或电子设备可用的另一存储位置处。
在一些示例中,单词嵌入模型在电子设备本身处实施。在其他示例中,单词嵌入模型是电子设备可用的云服务。单词嵌入模型是以单词作为输入,并且计算预测的单词嵌入606的预测模型。例如,单词嵌入模型是字符组成单词嵌入模型,其是考虑每个单词的一个或多个字符的模型。单词嵌入模型被参数化并且使用经标记的训练数据来被预先训练。
在示例中,字符组成单词嵌入模型是卷积的。例如,从构成模型参数的部分的查找表中取回每个单词的每个字符的字符嵌入向量。例如,在训练模型期间,以与模型的其他参数相同的方式,经由反向传播来学习字符嵌入向量。经取回的给定字的字符嵌入向量被馈送到一维卷积过滤器集合中。然后获得单词长度上的每个一维卷积的最大输出。这些最大输出通过神经网络的附加密集前馈层(诸如高速公路(highway)层)被馈送,以产生针对所讨论单词的单词嵌入。这是基于卷积的架构的一个示例,并且其他的架构也是可能的。
在其他示例中,字符组成单词嵌入模型是具有单向性或是双向的字符递归神经网络。在一些示例中,递归神经网络使用门控递归单元(GRU)或长短期记忆(LSTM)单元。在一些示例中,字符组成单词嵌入模型是表示按字符表示每个单词的神经网络和附加的每单词校正项(包括定义的词汇表中每个单词经学习的向量表示和其他单词经学习的词汇表外表达)的组合(诸如连结、求和或其他混合)。
在一些示例中,字符组成单词嵌入模型是神经网络和基于该单词的散列的确定性伪随机校正项的组合(诸如连结、求和或其他混合)。
单词嵌入模型计算被添加到高速缓存608的预测单词嵌入606。预测单词嵌入606也通过神经网络612(诸如图4和5的递归神经网络)进行处理。神经网络的输出是预测的单词嵌入614。
为了从预测的单词嵌入计算预测单词,电子设备利用经高速缓存的单词嵌入或单词嵌入模型所存储的参数值。通过重新使用高速缓存中的数据和/或通过共享单词嵌入模型的参数值,可以如上所述节省大量的存储器和资源。也就是说,不必为输入和输出阶段保持分离的单词嵌入(或单词嵌入模型)。另外,通过在预测时间期间向高速缓存动态地添加,使用高速缓存的数据的能力和资源的节省被不断提高,因为随时间高速缓存越来越容易保持所需要的值。在图6的过程中,没有必要为字符组成单词模型存储和保持两个参数副本(一个用于输入阶段,一个用于输出阶段)。
电子设备在高速缓存中查找与预测的单词嵌入类似的单词嵌入。高速缓存已经存储了与它所保持的单词嵌入相对应的单词。所以电子设备能够快速地从高速缓存中找到候选单词预测,并且能够根据高速缓存的单词嵌入与预测的单词嵌入之间的相似程度来对候选单词预测进行排序。在一些示例中,电子设备计算预测的单词嵌入与高速缓存的单词嵌入之间的点积以给出得分。这是为多个高速缓存的单词嵌入和用于对相应单词进行排序的得分来完成的。
在一些示例中,电子设备可选地接收来自另一个来源(诸如单词完成/校正预测器)的候选单词嵌入。单词完成/校正预测器可以独立于在操作处使用的神经网络612。单词完成/校正预测器至少以用户输入单词(如在操作600处)作为输入,并且产生单词的一个或多个候选完成或者单词的一个或多个候选校正作为输出。单词完成/校正预测器是神经网络模型、或n元语法单词模型、或用于预测/纠正单词的任何其他类型的模型。在一些情况下,单词完成/校正预测器在电子设备处。在一些情况下,单词完成/校正预测器是云服务、或者在电子设备可访问的另一实体处。
由单词完成/校正预测器产生的候选单词被输入到单词嵌入模型,以计算相应的预测的单词嵌入。这给出了已知的单词和相应的单词嵌入的配对。这些配对被添加到要搜索的候选集合。通过这种方式,神经网络的输出以便于在资源受限设备上进行操作的精确且高效的方式被转换成候选单词,因为搜索空间以智能的方式被限制。神经网络的输出是准确的并且在图6的预测过程中被实时获得,使得能够促进在物理尺寸以及存储器和处理能力方面受到限制的到电子设备的文本输入。
该过程的输出是一个或多个排名的单词622,其中排名根据如上所述的相似度来被计算。在一些示例中,过程的输出包括具有相关联的概率值的单词,其中可能单词的已知词汇表上的概率值相加为1。这通过在预测时使用完全的softmax归一化(其是资源密集型的)来实现,因为这涉及存储词汇表。在一些示例中,在使用噪声对比估计来对在操作处使用的神经网络612进行训练的情况下,来自上述点积的得分被用作逼近对数概率预测,而不需要存储词汇表。
先前看到的单词的一个或多个单词嵌入可以用于形成上下文向量,诸如本文中前面描述的上下文向量。例如,在递归神经网络(RNN)的情况下,先前看到单词的单词嵌入的连结形成上下文向量,诸如本文档中前面描述的上下文向量。例如,在快速压缩神经网络(FCNN)的情况下,先前看到单词的单词嵌入的连结形成上下文向量,诸如本文档中前面描述的上下文向量。因此,在一些示例中,高速缓存保存本文档中前面描述的嵌入矩阵的全部或至少部分,并且图6的方法在操作610处取回上下文向量并且在操作614处计算预测的上下文向量。在这种情况下,从高速缓存中取回(618)候选单词嵌入包括从高速缓存访问嵌入矩阵。
本文中描述的各种示例中,诸如神经网络的权重等参数的量化被包括作为可选的处理步骤。权重的量化或者在训练完成之后完成或者在训练期间完成。权重被表示为完全精度浮点或双精度、或者具有量化的小数整数值,每个值低至8位。在一些示例中,权重的量化被实现为每个参数低至1位。权重量化用于对经训练的神经网络的大小进行压缩,以促进在移动设备和其他资源受限设备中使用神经网络。
图7示出了被实施为任何形式的计算和/或电子设备的并且其中在一些示例中实施人工神经网络的实施例的示例性的基于计算的设备700的各种组件。例如,在一些情况下,基于计算的设备700是具有有限的存储器和处理能力、并且具有有限尺寸的键盘(物理或软)的智能电话、平板电脑或可穿戴计算机。
基于计算的设备700包括一个或多个处理器802,其是微处理器、控制器或用于处理计算机可执行指令以控制设备的操作以便预测单词的任何其他合适类型的处理器。在一些示例中,例如,在使用片上系统架构的情况下,处理器702包括利用硬件(而不是软件或固件)实施预测单词的方法的部分的一个或多个固定功能块(也称为加速器)。在基于计算的设备处提供包括操作系统704的平台软件或任何其他合适的平台软件,以使得应用软件706能够在设备上执行。存储器保存神经网络720,诸如图4和图5中的递归神经网络。在一些情况下,存储器还保存单词嵌入模型726。存储器包括被配置为保持配对的高速缓存724,每个配对包括单词和相应的单词嵌入。在一些示例中,存储器保存完成/校正预测器718。在一些情况下,高速缓存724保持单词嵌入模型726的参数的值。在一些示例中,基于计算的设备具有被配置为训练单词嵌入模型726、完成/校正预测器和神经网络720中的一个或多个的训练引擎722。
计算机可执行指令使用由基于计算的设备700可访问的任何计算机可读介质来提供。计算机可读介质例如包括诸如存储器708和通信介质等计算机存储介质。诸如存储器708等计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块等信息的任何方法或技术实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM)、电子可擦除可编程只读存储器(EEPROM)、闪存或其他存储器技术、光盘只读存储器(CD-ROM)、数字多功能盘(DVD)或其他光存储器、盒式磁带、磁带、磁盘存储器或其他磁存储设备、或者用于存储用于由计算设备访问的信息的任何其他非传输介质。相反,通信介质在诸如载波等调制数据信号或其他传输机制中实施计算机可读指令、数据结构、程序模块等。如本文中定义的,计算机存储介质不包括通信介质。因此,计算机存储介质不应当被解释为传播信号本身。尽管计算机存储介质(存储器708)被示出为在基于计算的设备700内,但是应当理解,在一些示例中,存储装置是分布式的,或者被远程地定位并且经由网络或其他通信链路(例如,使用通信接口710)来访问。
基于计算的设备700还包括输入/输出控制器712,其被布置为向可以与基于计算的设备700分开或集成的显示设备714输出显示信息。显示信息可以提供图形用户界面。输入/输出控制器712还被布置为接收和处理来自诸如用户输入设备716(例如,鼠标、键盘、相机、麦克风或其他传感器)等一个或多个设备的输入。在一些示例中,用户输入设备716检测语音输入、用户手势或其他用户动作并且提供自然用户界面(NUI)。该用户输入可以用于选择预测的单词以便向设备输入文本,输入文本,设置参数值,或用于其他目的。在实施例中,如果显示设备714是触敏显示设备,则其还用作用户输入设备716。在一些示例中,输入/输出控制器712向除了显示设备之外的其他设备(例如,本地连接的打印设备)输入数据。
输入/输出控制器712、显示设备714和用户输入设备716中的任何一个可以包括NUI技术,其使得用户能够以自然的方式与基于计算的设备交互,而不受由诸如鼠标、键盘、遥控器等输入设备施加的人为约束。在一些示例中所提供的NUI技术的示例包括但不限于:依赖于语音和/或语音识别、触摸和/或触笔识别(触敏显示器)、在屏幕上和邻近屏幕的手势识别、空气手势、头部和眼睛跟踪、声音和语音、视觉、触摸、手势和机器智能的NUI技术。在一些示例中使用的NUI技术的其他示例包括意图和目标理解系统、使用深度相机(诸如立体相机系统、红外相机系统、红绿蓝(rgb)相机系统及其组合)、使用加速计/陀螺仪的运动手势检测系统、面部识别、三维(3D)显示、头部、眼部和视线跟踪、身临其境的增强现实虚拟现实系统、以及用于使用电场感测电极(脑电图(EEG)和相关方法)来感测大脑活动的技术。
神经网络720、单词嵌入模型726、完成/校正预测器718和训练引擎722中的任何一个或多个的功能可以至少部分由一个或多个硬件逻辑组件来执行。作为示例而非限制,可选地使用的说明性类型的硬件逻辑组件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、系统级芯片系统(SOC)、复杂可编程逻辑器件(CPLD)、图形处理单元(GPU)。
替代或除了本文中描述的其他示例之外,示例包括以下的任何组合:
一种电子设备,包括:
处理器,
至少一个输入接口,以及
人工神经网络,包括输入层、输出层、至少第一和第二隐藏层、以及编码矩阵,其中所述第二隐藏层的单元的数目等于所述输入层的单元的数目;
其中所述处理器被配置为通过以下方式基于在所述至少一个输入接口处所接收的输入序列项目来生成项目序列中的一个或多个预测的下一项目:
使用所述神经网络的所述编码矩阵取回与所述输入序列项目相对应的上下文向量;
利用所述人工神经网络来处理所述上下文向量;
通过用所述编码矩阵对所述人工神经网络的所述第二隐藏层的输出进行变换,来在所述人工神经网络的所述输出层处取回输出向量,其中所述输出向量与一个或多个预测的下一项目相对应;以及
输出所述输出向量。
在所述电子设备中,所述处理器被配置为通过以下方式来用所述人工神经网络来处理所述上下文向量:
向所述人工神经网络的所述输入层提供所述上下文向量;
将所述输入层的内容与第一权重矩阵W0相乘,并且向所述人工神经网络的所述第一隐藏层提供结果;利用所述第一隐藏层的节点来处理到所述第一隐藏层的输入以产生所述第一隐藏层的输出;
将所述第一隐藏层的输出与第二权重矩阵W1相乘,并且向所述人工神经网络的所述第二隐藏层提供结果;以及
利用所述第二隐藏层的节点来处理到所述第二隐藏层的输入以产生所述第二隐藏层的输出。
在所述电子设备中,所述人工神经网络还包括递归隐藏向量。
在所述电子设备中,所述处理器被配置为在用所述人工神经网络的所述隐藏层来处理所述输入层的内容之前,将所述输入层的内容与所述递归隐藏向量连结。
在所述电子设备中,所述递归隐藏向量包括指示人工神经网络的先前状态的数据。
在所述电子设备中,所述处理器被配置为:根据所述第一隐藏层的输出来更新所述递归隐藏向量。
在所述电子设备中,所述处理器被配置为:通过利用所述第一隐藏层的输出代替所述递归隐藏向量,来更新所述递归隐藏向量。
在所述电子设备中,所述处理器被配置为:通过取回编码矩阵中的行或列来检索所述上下文向量,所述编码矩阵与在所述至少一个输入接口处接收的所述输入相对应。
在所述电子设备中,所述处理器被配置为:产生与所述输入序列项目相对应的N选1向量,以及通过使用所述编码矩阵对所述N选1向量进行变换来取回所述上下文向量。
在所述电子设备中,对所述N选1向量进行编号包括:使用矩阵乘法来将所述N选1向量与所述编码矩阵相乘。
在所述电子设备中,所述处理器还被配置为从所述人工神经网络的所述输出层取回输出类别预测,其中所述输出类别预测定义一组一个或多个序列项目。
在所述电子设备中,所述处理器被配置为:将用所述编码矩阵对所述第二隐藏层的输出进行的变换限制为仅包括所述输出类别预测中的所述一个或多个序列项目。
在所述电子设备中,所述项目序列是单词、字符、语素、单词段、标点符号、心情符号、表情符号、贴图和主题标签中的一个或多个的序列。
在所述电子设备中,所述至少一个输入接口是键盘,并且其中所述输入序列项目是以下之一:单词、字符、语素、单词段、标点符号、心情符号、表情符号、贴图、主题标签和软键盘上的按键位置。
所述电子设备还包括触敏显示器,并且其中所述键盘为软键盘,并且所述处理器被配置为在显示器上输出所述软键盘。
在所述电子设备中,所述处理器还被配置为:
从输出向量来确定一个或多个序列预测;
生成与所述一个或多个序列预测相对应的一个或多个显示对象;以及
在显示器上输出所述一个或多个显示对象。
在所述电子设备中,所述一个或多个显示对象是可选择的,并且其中在选择所述一个或多个显示对象之一时,所述处理器被配置为选择对应于所选择的显示对象的序列项目。
在所述电子设备中,所述处理器被配置为:基于所述一个或多个可选择的显示对象中的所选择的显示对象,来生成所述项目序列中的一个或多个另外的预测项目。
一种用于基于输入序列项目来生成项目序列中的一个或多个预测的下一项目的计算机实现的方法,所述方法包括:
在电子设备处接收输入序列项目;
从编码矩阵中取回与所述输入序列项目相对应的上下文向量;
用人工神经网络处理所述上下文向量,其中所述人工神经网络包括输入层、第一隐藏层、第二隐藏层和输出层;
通过用所述编码矩阵对所述人工神经网络的所述第二隐藏层的输出进行变换,以在所述人工神经网络的所述输出层处取回输出向量,其中所述输出向量与一个或多个预测的下一项目相对应;以及
输出所述输出向量,
其中所述人工神经网络的所述第二隐藏层的单元的数目等于所述人工神经网络的所述输入层的单元的数目。
上述方法,其中用所述人工神经网络处理所述上下文向量包括:
向所述人工神经网络的所述输入层提供所述上下文向量;
将所述输入层的内容与所述第一权重矩阵W0相乘,并且向所述人工神经网络的所述第一隐藏层提供结果;
利用所述第一隐藏层的节点处理到所述第一隐藏层的输入以产生所述第一隐藏层的输出;将所述第一隐藏层的输出与第二权重矩阵W1相乘,并且向所述人工神经网络的所述第二隐藏层提供结果;以及
利用所述第二隐藏层的节点处理到所述第二隐藏层的输入以产生所述第二隐藏层的输出。
上述方法,其中所述人工神经网络包括递归隐藏向量,并且其中所述方法还包括在用所述人工神经网络的隐藏层处理所述输入层的内容之前,将所述输入层的内容与所述递归隐藏向量连结。
上述方法,其中所述递归隐藏向量包括指示所述人工神经网络的先前状态的数据,并且其中所述递归隐藏向量根据所述第一隐藏层的输出来更新。
上述方法,递归隐藏向量通过用所述第一隐藏层的输出代替所述递归隐藏向量来更新。
上述方法,其中取回上下文向量的步骤包括从对应于所述输入序列项目的编码矩阵中取回行或列。
上述方法还包括在取回上下文向量的步骤之前,产生与输入序列项目相对应的N选1向量,并且其中取回上下文向量的步骤包括用所述编码矩阵对N选1向量进行变换。
上所方法,其中对所述N选1向量进行变换包括使用矩阵相乘来将所述N选1向量与所述编码矩阵相乘。
上述方法还包括在取回输出向量之前,从所述人工神经网络的所述输出层中取回输出类别预测,其中所述输出类别预测定义一组一个或多个序列项目。
上述方法,其中在检索输出向量的步骤中,用所述编码矩阵对所述第二隐藏层的输出进行变换被限制为仅包括与所述输出类别预测相对应的所述一个或多个序列项目。
上述方法,其中所述项目序列是以下中的一个或多个的序列:单词、字符、语素、单词段、标点符号、心情符号、表情符号、贴图和主题标签。
上述方法,其中所述至少一个输入接口是键盘,并且其中所述输入序列项目是以下之一:单词、字符、语素、单词段、标点符号、心情符号、表情符号、贴图、主题标签和软键盘上的按键位置。
上述方法还包括以下步骤:
从所述输出向量确定一个或多个序列预测;
生成对应于所述一个或多个序列预测的一个或多个显示对象;以及
在显示器上输出所述一个或多个显示对象。
上述方法,其中所述一个或多个显示对象是可选择的,并且其中所述方法还包括:在选择所述一个或多个显示对象之一时,选择与所选择的显示对象相对应的序列项目。
上述方法还包括以下步骤:
基于所述一个或多个显示对象中的所选择的显示对象来生成所述项目序列中的一个或多个另外的预测项目。
一种计算机可读介质,包含在由处理器执行时引起所述处理器执行上述任一组合的方法的指令。
一种电子设备,包括:
处理器,
至少一个输入接口,以及
人工神经网络,包括输入层、输出层以及至少第一隐藏层和第二隐藏层,其中所述第二隐藏层的单元的数目等于所述输入层的单元的数目;
其中所述处理器被配置为通过以下方式基于在所述至少一个输入接口处接收的输入序列项目来生成项目序列中的一个或多个预测的下一项目:
使用存储的数据来取回与所述输入序列项目相对应的上下文向量;
利用所述人工神经网络来处理所述上下文向量;
通过使用所述存储的数据来对所述人工神经网络的所述第二隐藏层的输出进行变换,来在所述人工神经网络的所述输出层处取回输出向量,其中所述输出向量与一个或多个预测的下一项目相对应;以及
输出所述输出向量。
在上述电子设备中,所述存储的数据是字符组成模型的参数的值,所述字符组成模型是被配置为从项目单独的字符来计算所述项目在多维空间中的位置的预测器,或者所述存储的数据是项目嵌入,所述项目嵌入为项目在所述多维空间中的位置。在上述电子设备中,所述存储的数据被保持在高速缓存中,并且其中所述处理器被配置为从所述字符组成模型来计算与所述输入序列项目相对应的项目嵌入,并且将所述项目嵌入添加到所述高速缓存。
在上述电子设备中,所述处理器被配置为通过从高速缓存访问项目嵌入来取回对应于所述输入序列的所述上下文向量。
术语“子集”在本文中用于指代适当的子集,使得集合的子集不包括集合的全部元素(即,集合中的至少一个元素没有在子集中)
应当认识到,本描述仅作为示例;可以在不偏离如权利要求中限定的本发明的范围的情况下对所描述的实施例进行替换和修改。
Claims (15)
1.一种电子设备,包括:
处理器,
至少一个输入接口,以及
人工神经网络,所述人工神经网络包括输入层、输出层以及至少第一隐藏层和第二隐藏层,其中所述第二隐藏层的单元的数目等于所述输入层的单元的数目;
其中所述处理器被配置为通过以下方式、基于在所述至少一个输入接口处所接收的输入序列项目来生成项目序列中的一个或多个预测的下一项目:
使用存储的数据来取回与所述输入序列项目相对应的上下文向量;
利用所述人工神经网络来处理所述上下文向量;
通过使用所述存储的数据来对所述人工神经网络的所述第二隐藏层的输出进行变换,以在所述人工神经网络的所述输出层处取回输出向量,其中所述输出向量与一个或多个预测的下一项目相对应;以及
输出所述输出向量。
2.根据权利要求1所述的电子设备,其中所述存储的数据是字符组成模型的参数的值,所述字符组成模型是被配置为从项目的单独字符来计算所述项目在多维空间中的位置的预测器,或者所述存储的数据是项目嵌入,所述项目嵌入为项目在所述多维空间中的位置。
3.根据权利要求2所述的电子设备,其中所述存储的数据被保持在高速缓存中,并且其中所述处理器被配置为:从所述字符组成模型来计算与所述输入序列项目相对应的项目嵌入,以及将所述项目嵌入添加到所述高速缓存。
4.根据权利要求1所述的电子设备,其中所述处理器被配置为:通过从高速缓存访问项目嵌入来取回与所述输入序列相对应的所述上下文向量。
5.根据权利要求1所述的电子设备,其中所述处理器被配置为通过以下方式而利用所述人工神经网络来处理所述上下文向量:
向所述人工神经网络的所述输入层提供所述上下文向量;
将所述输入层的内容与第一权重矩阵W0相乘,并且向所述人工神经网络的所述第一隐藏层提供结果;
利用所述第一隐藏层的节点来处理到所述第一隐藏层的输入,以产生所述第一隐藏层的输出;
将所述第一隐藏层的所述输出与第二权重矩阵W1相乘,并且向所述人工神经网络的所述第二隐藏层提供结果;以及
利用所述第二隐藏层的节点来处理到所述第二隐藏层的输入,以产生所述第二隐藏层的输出。
6.根据权利要求1或2所述的电子设备,其中所述人工神经网络还包括递归隐藏向量。
7.根据权利要求6所述的电子设备,其中所述处理器被配置为:在利用所述人工神经网络的所述隐藏层来处理所述输入层的内容之前,将所述输入层的所述内容与所述递归隐藏向量连结。
8.根据权利要求2到7中任一项所述的电子设备,其中所述递归隐藏向量包括指示所述人工神经网络的先前状态的数据。
9.根据权利要求8所述的电子设备,其中所述处理器被配置为:根据所述第一隐藏层的所述输出来更新所述递归隐藏向量。
10.根据权利要求9所述的电子设备,其中所述处理器被配置为:通过利用所述第一隐藏层的所述输出代替所述递归隐藏向量,来更新所述递归隐藏向量。
11.根据任一前述权利要求所述的电子设备,其中所述处理器被配置为:通过取回编码矩阵的行或列来取回所述上下文向量,所述编码矩阵与在所述至少一个输入接口处所接收的所述输入相对应。
12.根据权利要求8所述的电子设备,其中所述处理器被配置为:产生与所述输入序列项目相对应的N选1向量,以及通过使用所述编码矩阵对所述N选1向量进行变换来取回所述上下文向量。
13.根据权利要求12所述的电子设备,其中对所述N选1向量进行变换包含:使用矩阵乘法来将所述N选1向量与所述编码矩阵相乘。
14.根据任一前述权利要求所述的电子设备,其中所述处理器还被配置为:从所述人工神经网络的所述输出层取回输出类别预测,其中所述输出类别预测定义一组一个或多个序列项目。
15.一种计算机实施的方法,所述方法用于基于输入序列项目来生成项目序列中的一个或多个预测的下一项目,所述方法包括:
在电子设备处接收输入序列项目;
从存储的数据中取回与所述输入序列项目相对应的上下文向量;
利用人工神经网络来处理所述上下文向量,其中所述人工神经网络包括输入层、第一隐藏层、第二隐藏层和输出层;
通过使用所述存储的数据中的至少一些数据来对所述人工神经网络的所述第二隐藏层的输出进行变换,以在所述人工神经网络的所述输出层处取回输出向量,其中所述输出向量与一个或多个预测的下一项目相对应;以及
输出所述输出向量,
其中所述人工神经网络的所述第二隐藏层的单元的数目等于所述人工神经网络的所述输入层的单元的数目。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GBGB1511887.0A GB201511887D0 (en) | 2015-07-07 | 2015-07-07 | Improved artificial neural network for language modelling and prediction |
GB1511887.0 | 2015-07-07 | ||
PCT/GB2016/052022 WO2017006104A1 (en) | 2015-07-07 | 2016-07-05 | Improved artificial neural network for language modelling and prediction |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107836000A true CN107836000A (zh) | 2018-03-23 |
CN107836000B CN107836000B (zh) | 2022-04-01 |
Family
ID=54013603
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680040427.1A Active CN107836000B (zh) | 2015-07-07 | 2016-07-05 | 用于语言建模和预测的改进的人工神经网络方法、电子设备 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11797822B2 (zh) |
EP (1) | EP3320489A1 (zh) |
CN (1) | CN107836000B (zh) |
GB (1) | GB201511887D0 (zh) |
WO (1) | WO2017006104A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110245359A (zh) * | 2018-05-18 | 2019-09-17 | 谷歌有限责任公司 | 使用自回归机器学习模型进行并行解码 |
CN110580285A (zh) * | 2018-06-08 | 2019-12-17 | 北京三快在线科技有限公司 | 一种产品标签确定方法及装置,电子设备 |
CN111461340A (zh) * | 2020-03-10 | 2020-07-28 | 北京百度网讯科技有限公司 | 权重矩阵的更新方法、装置及电子设备 |
CN112154509A (zh) * | 2018-04-19 | 2020-12-29 | 皇家飞利浦有限公司 | 具有用于文本注释的演变领域特异性词典特征的机器学习模型 |
Families Citing this family (41)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10423874B2 (en) * | 2015-10-02 | 2019-09-24 | Baidu Usa Llc | Intelligent image captioning |
US10504010B2 (en) | 2015-10-02 | 2019-12-10 | Baidu Usa Llc | Systems and methods for fast novel visual concept learning from sentence descriptions of images |
US10268671B2 (en) * | 2015-12-31 | 2019-04-23 | Google Llc | Generating parse trees of text segments using neural networks |
EP3374932B1 (en) * | 2016-02-03 | 2022-03-16 | Google LLC | Compressed recurrent neural network models |
US10416619B2 (en) | 2016-07-25 | 2019-09-17 | General Electric Company | System modeling, control and optimization |
US11222263B2 (en) * | 2016-07-28 | 2022-01-11 | Samsung Electronics Co., Ltd. | Neural network method and apparatus |
US10552728B2 (en) * | 2016-07-29 | 2020-02-04 | Splunk Inc. | Automated anomaly detection for event-based system |
US10956481B2 (en) | 2016-07-29 | 2021-03-23 | Splunk Inc. | Event-based correlation of non-text machine data |
US11227208B2 (en) * | 2016-07-29 | 2022-01-18 | Splunk Inc. | Automated data-generation for event-based system |
US11314799B2 (en) | 2016-07-29 | 2022-04-26 | Splunk Inc. | Event-based data intake and query system employing non-text machine data |
US10832130B2 (en) * | 2016-09-19 | 2020-11-10 | Google Llc | Recommending a document for a user to access |
US10565493B2 (en) * | 2016-09-22 | 2020-02-18 | Salesforce.Com, Inc. | Pointer sentinel mixture architecture |
US11205110B2 (en) * | 2016-10-24 | 2021-12-21 | Microsoft Technology Licensing, Llc | Device/server deployment of neural network data entry system |
US10685285B2 (en) * | 2016-11-23 | 2020-06-16 | Microsoft Technology Licensing, Llc | Mirror deep neural networks that regularize to linear networks |
CA3047353C (en) * | 2017-01-06 | 2023-05-23 | The Toronto-Dominion Bank | Learning document embeddings with convolutional neural network architectures |
US11520412B2 (en) * | 2017-03-06 | 2022-12-06 | Microsoft Technology Licensing, Llc | Data input system/example generator |
US11934934B2 (en) | 2017-04-17 | 2024-03-19 | Intel Corporation | Convolutional neural network optimization mechanism |
CN107273509B (zh) * | 2017-06-20 | 2020-06-05 | 哈尔滨理工大学 | 一种神经网络数据存储器、数据存储方法及数据查找方法 |
CN108460481B (zh) * | 2018-01-30 | 2021-11-19 | 中国航天电子技术研究院 | 基于循环神经网络的无人机侦察目标演变规律预测方法 |
EP3537345A1 (en) * | 2018-03-06 | 2019-09-11 | Hybris AG | Computer-implemented method, system and computer program product for providing a conversational application interface |
US10853725B2 (en) * | 2018-05-18 | 2020-12-01 | Deepmind Technologies Limited | Neural networks with relational memory |
US10726058B2 (en) * | 2018-07-31 | 2020-07-28 | Market Advantage, Inc. | System, computer program product and method for generating embeddings of textual and quantitative data |
US10672382B2 (en) * | 2018-10-15 | 2020-06-02 | Tencent America LLC | Input-feeding architecture for attention based end-to-end speech recognition |
CN109710837A (zh) * | 2018-11-30 | 2019-05-03 | 平安科技(深圳)有限公司 | 基于word2vec的用户缺失画像的补充方法和相关设备 |
KR20200072308A (ko) * | 2018-12-12 | 2020-06-22 | 삼성전자주식회사 | 뉴럴 네트워크에서 컨볼루션 연산을 수행하는 방법 및 장치 |
KR102179025B1 (ko) * | 2018-12-14 | 2020-11-16 | (주)이스트소프트 | 문서의 컨텍스트 이상문장 검출장치, 이를 위한 방법 및 이 방법을 실행시키기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록매체 |
US11449730B2 (en) * | 2018-12-24 | 2022-09-20 | Wipro Limited | Method and system for verifying classification performed by an artificial neural network |
CN109858004B (zh) * | 2019-02-12 | 2023-08-01 | 四川无声信息技术有限公司 | 文本改写方法、装置及电子设备 |
CN111753822A (zh) * | 2019-03-29 | 2020-10-09 | 北京市商汤科技开发有限公司 | 文本识别方法及装置、电子设备和存储介质 |
KR102211762B1 (ko) * | 2019-04-02 | 2021-02-04 | 네이버웹툰 유한회사 | 딥러닝 기반 컬러링 방법, 시스템 및 프로그램 |
US11899786B2 (en) * | 2019-04-15 | 2024-02-13 | Crowdstrike, Inc. | Detecting security-violation-associated event data |
US11126890B2 (en) * | 2019-04-18 | 2021-09-21 | Adobe Inc. | Robust training of large-scale object detectors with a noisy dataset |
CN110457700B (zh) * | 2019-08-07 | 2020-04-21 | 中国人民解放军国防科技大学 | 短文本描述方法和装置 |
US11115356B2 (en) * | 2019-11-14 | 2021-09-07 | Woofy, Inc. | Emoji recommendation system and method |
CN111555897B (zh) * | 2019-11-25 | 2022-12-16 | 江苏艾佳家居用品有限公司 | 一种基于客户输入行为的tcp报文半包粘包智能处理方法 |
KR20210098247A (ko) | 2020-01-31 | 2021-08-10 | 삼성전자주식회사 | 전자 장치 및 그 동작방법 |
CN111368974B (zh) * | 2020-02-25 | 2023-11-21 | 北京声智科技有限公司 | 一种fsmn数据处理方法、装置、介质和设备 |
US11886813B2 (en) * | 2020-04-13 | 2024-01-30 | Capital One Services, Llc | Efficient automatic punctuation with robust inference |
JP7424474B2 (ja) * | 2020-04-20 | 2024-01-30 | 日本電信電話株式会社 | 学習装置、異常検知装置、学習方法及び異常検知方法 |
US11461680B2 (en) * | 2020-05-21 | 2022-10-04 | Sap Se | Identifying attributes in unstructured data files using a machine-learning model |
US20230289524A1 (en) * | 2022-03-09 | 2023-09-14 | Talent Unlimited Online Services Private Limited | Articial intelligence based system and method for smart sentence completion in mobile devices |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5293458A (en) * | 1990-08-18 | 1994-03-08 | Samsung Electronics Co., Ltd. | MOS Multi-layer neural network and its design method |
CN101566998A (zh) * | 2009-05-26 | 2009-10-28 | 华中师范大学 | 一种基于神经网络的中文问答系统 |
CN101853426A (zh) * | 2010-05-21 | 2010-10-06 | 南京邮电大学 | 普适计算环境中基于神经网络的上下文融合方法 |
CN103733210A (zh) * | 2011-08-18 | 2014-04-16 | 西门子公司 | 用于对技术系统进行计算机辅助的建模的方法 |
CN103810999A (zh) * | 2014-02-27 | 2014-05-21 | 清华大学 | 基于分布式神经网络的语言模型训练方法及其系统 |
CN104036010A (zh) * | 2014-06-25 | 2014-09-10 | 华东师范大学 | 一种基于半监督cbow的用户搜索词主题分类的方法 |
US20140278379A1 (en) * | 2013-03-15 | 2014-09-18 | Google Inc. | Integration of semantic context information |
US20150066496A1 (en) * | 2013-09-02 | 2015-03-05 | Microsoft Corporation | Assignment of semantic labels to a sequence of words using neural network architectures |
CN104504442A (zh) * | 2014-12-30 | 2015-04-08 | 湖南强智科技发展有限公司 | 神经网络优化方法 |
Family Cites Families (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5594800A (en) * | 1991-02-15 | 1997-01-14 | Trifield Productions Limited | Sound reproduction system having a matrix converter |
US5905773A (en) | 1996-03-28 | 1999-05-18 | Northern Telecom Limited | Apparatus and method for reducing speech recognition vocabulary perplexity and dynamically selecting acoustic models |
US5822730A (en) | 1996-08-22 | 1998-10-13 | Dragon Systems, Inc. | Lexical tree pre-filtering in speech recognition |
US6195641B1 (en) | 1998-03-27 | 2001-02-27 | International Business Machines Corp. | Network universal spoken language vocabulary |
US7181399B1 (en) | 1999-05-19 | 2007-02-20 | At&T Corp. | Recognizing the numeric language in natural spoken dialogue |
US6751595B2 (en) | 2001-05-09 | 2004-06-15 | Bellsouth Intellectual Property Corporation | Multi-stage large vocabulary speech recognition system and method |
US7716058B2 (en) | 2001-09-05 | 2010-05-11 | Voice Signal Technologies, Inc. | Speech recognition using automatic recognition turn off |
US6999931B2 (en) | 2002-02-01 | 2006-02-14 | Intel Corporation | Spoken dialog system using a best-fit language model and best-fit grammar |
US20040186815A1 (en) | 2002-12-20 | 2004-09-23 | Stockfisch Thomas P. | Method for accommodating missing descriptor and property data while training neural network models |
US20050209983A1 (en) * | 2004-03-18 | 2005-09-22 | Macpherson Deborah L | Context driven topologies |
US7512570B2 (en) * | 2006-05-30 | 2009-03-31 | Zaracom Technologies Inc. | Artificial intelligence analyzer and generator |
US20080294982A1 (en) | 2007-05-21 | 2008-11-27 | Microsoft Corporation | Providing relevant text auto-completions |
CN101373468B (zh) | 2007-08-20 | 2012-05-30 | 北京搜狗科技发展有限公司 | 一种加载词库的方法、字符输入的方法和输入法系统 |
US8375190B2 (en) | 2007-12-11 | 2013-02-12 | Microsoft Corporation | Dynamtic storage hierarachy management |
GB0905457D0 (en) | 2009-03-30 | 2009-05-13 | Touchtype Ltd | System and method for inputting text into electronic devices |
CN101697099B (zh) | 2009-10-26 | 2012-06-27 | 北京搜狗科技发展有限公司 | 一种字词转换结果的获取方法及系统 |
US8589163B2 (en) | 2009-12-04 | 2013-11-19 | At&T Intellectual Property I, L.P. | Adapting language models with a bit mask for a subset of related words |
US9158559B2 (en) | 2012-01-27 | 2015-10-13 | Microsoft Technology Licensing, Llc | Roaming of note-taking application features |
CN103870001B (zh) | 2012-12-11 | 2018-07-10 | 百度国际科技(深圳)有限公司 | 一种生成输入法候选项的方法及电子装置 |
CN103870000B (zh) | 2012-12-11 | 2018-12-14 | 百度国际科技(深圳)有限公司 | 一种对输入法所产生的候选项进行排序的方法及装置 |
US20150095017A1 (en) | 2013-09-27 | 2015-04-02 | Google Inc. | System and method for learning word embeddings using neural language models |
US20150100537A1 (en) | 2013-10-03 | 2015-04-09 | Microsoft Corporation | Emoji for Text Predictions |
US20150213365A1 (en) | 2014-01-30 | 2015-07-30 | Shine Security Ltd. | Methods and systems for classification of software applications |
CN104951428B (zh) | 2014-03-26 | 2019-04-16 | 阿里巴巴集团控股有限公司 | 用户意图识别方法及装置 |
US9563825B2 (en) | 2014-11-20 | 2017-02-07 | Adobe Systems Incorporated | Convolutional neural network using a binarized convolution layer |
US11080587B2 (en) | 2015-02-06 | 2021-08-03 | Deepmind Technologies Limited | Recurrent neural networks for data item generation |
US9678664B2 (en) | 2015-04-10 | 2017-06-13 | Google Inc. | Neural network for keyboard input decoding |
US20160328644A1 (en) | 2015-05-08 | 2016-11-10 | Qualcomm Incorporated | Adaptive selection of artificial neural networks |
US20160342720A1 (en) * | 2015-05-22 | 2016-11-24 | Andreas Veneris | Method, system, and computer program for identifying design revisions in hardware design debugging |
US10366158B2 (en) * | 2015-09-29 | 2019-07-30 | Apple Inc. | Efficient word encoding for recurrent neural network language models |
KR20180001889A (ko) | 2016-06-28 | 2018-01-05 | 삼성전자주식회사 | 언어 처리 방법 및 장치 |
US11205110B2 (en) | 2016-10-24 | 2021-12-21 | Microsoft Technology Licensing, Llc | Device/server deployment of neural network data entry system |
WO2018146514A1 (en) * | 2017-02-07 | 2018-08-16 | Qatar University | Generalized operational perceptrons: newgeneration artificial neural networks |
CN111739078B (zh) * | 2020-06-15 | 2022-11-18 | 大连理工大学 | 一种基于上下文注意力机制的单目无监督深度估计方法 |
-
2015
- 2015-07-07 GB GBGB1511887.0A patent/GB201511887D0/en not_active Ceased
-
2016
- 2016-07-05 EP EP16738856.0A patent/EP3320489A1/en active Pending
- 2016-07-05 CN CN201680040427.1A patent/CN107836000B/zh active Active
- 2016-07-05 US US15/742,486 patent/US11797822B2/en active Active
- 2016-07-05 WO PCT/GB2016/052022 patent/WO2017006104A1/en active Application Filing
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5293458A (en) * | 1990-08-18 | 1994-03-08 | Samsung Electronics Co., Ltd. | MOS Multi-layer neural network and its design method |
CN101566998A (zh) * | 2009-05-26 | 2009-10-28 | 华中师范大学 | 一种基于神经网络的中文问答系统 |
CN101853426A (zh) * | 2010-05-21 | 2010-10-06 | 南京邮电大学 | 普适计算环境中基于神经网络的上下文融合方法 |
CN103733210A (zh) * | 2011-08-18 | 2014-04-16 | 西门子公司 | 用于对技术系统进行计算机辅助的建模的方法 |
US20140278379A1 (en) * | 2013-03-15 | 2014-09-18 | Google Inc. | Integration of semantic context information |
US20150066496A1 (en) * | 2013-09-02 | 2015-03-05 | Microsoft Corporation | Assignment of semantic labels to a sequence of words using neural network architectures |
CN103810999A (zh) * | 2014-02-27 | 2014-05-21 | 清华大学 | 基于分布式神经网络的语言模型训练方法及其系统 |
CN104036010A (zh) * | 2014-06-25 | 2014-09-10 | 华东师范大学 | 一种基于半监督cbow的用户搜索词主题分类的方法 |
CN104504442A (zh) * | 2014-12-30 | 2015-04-08 | 湖南强智科技发展有限公司 | 神经网络优化方法 |
Non-Patent Citations (3)
Title |
---|
LALIT GUPTA ET AL.: "Investigating the prediction capabilities of the simple recurrent neural network on real temporal sequences", 《PATTERN RECOGNITION》 * |
X. LIU ET AL.: "Efficient lattice rescoring using recurrent neural network language models", 《2014 IEEE INTERNATIONAL CONFERENCE ON ACOUSTIC, SPEECH AND SIGNAL PROCESSING (ICASSP)》 * |
李鹏华 等: "量子门Elman神经网络及其梯度扩展的量子反向传播学习算法", 《自动化学报》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112154509A (zh) * | 2018-04-19 | 2020-12-29 | 皇家飞利浦有限公司 | 具有用于文本注释的演变领域特异性词典特征的机器学习模型 |
CN110245359A (zh) * | 2018-05-18 | 2019-09-17 | 谷歌有限责任公司 | 使用自回归机器学习模型进行并行解码 |
CN110245359B (zh) * | 2018-05-18 | 2024-01-26 | 谷歌有限责任公司 | 使用自回归机器学习模型进行并行解码 |
CN110580285A (zh) * | 2018-06-08 | 2019-12-17 | 北京三快在线科技有限公司 | 一种产品标签确定方法及装置,电子设备 |
CN110580285B (zh) * | 2018-06-08 | 2021-09-24 | 北京三快在线科技有限公司 | 一种产品标签确定方法及装置,电子设备 |
CN111461340A (zh) * | 2020-03-10 | 2020-07-28 | 北京百度网讯科技有限公司 | 权重矩阵的更新方法、装置及电子设备 |
CN111461340B (zh) * | 2020-03-10 | 2023-03-31 | 北京百度网讯科技有限公司 | 权重矩阵的更新方法、装置及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
US11797822B2 (en) | 2023-10-24 |
EP3320489A1 (en) | 2018-05-16 |
GB201511887D0 (en) | 2015-08-19 |
US20180204120A1 (en) | 2018-07-19 |
CN107836000B (zh) | 2022-04-01 |
WO2017006104A1 (en) | 2017-01-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107836000A (zh) | 用于语言建模和预测的改进的人工神经网络 | |
CN111291181B (zh) | 经由主题稀疏自编码器和实体嵌入的用于输入分类的表示学习 | |
CN111368996B (zh) | 可传递自然语言表示的重新训练投影网络 | |
CN112487182B (zh) | 文本处理模型的训练方法、文本处理方法及装置 | |
CN111699498B (zh) | 作为问答的多任务学习 | |
US11210306B2 (en) | Dialogue system, a method of obtaining a response from a dialogue system, and a method of training a dialogue system | |
US11741109B2 (en) | Dialogue system, a method of obtaining a response from a dialogue system, and a method of training a dialogue system | |
CN113312500B (zh) | 一种面向大坝安全运行的事件图谱构建方法 | |
EP3529711B1 (en) | Device/server deployment of neural network data entry system | |
CN108628935B (zh) | 一种基于端到端记忆网络的问答方法 | |
CN110036399A (zh) | 神经网络数据录入系统 | |
CN111753081A (zh) | 基于深度skip-gram网络的文本分类的系统和方法 | |
EP3549031B1 (en) | Language data prediction with neural networks and online learning | |
CN112926322A (zh) | 融合自注意力机制和深度学习的文本分类方法及系统 | |
CN114528398A (zh) | 一种基于交互双重图卷积网络的情感预测方法及系统 | |
Madukwe et al. | A ga-based approach to fine-tuning bert for hate speech detection | |
CN110781666A (zh) | 基于生成式对抗网络的自然语言处理文本建模 | |
US11941360B2 (en) | Acronym definition network | |
US20230316055A1 (en) | Attention neural networks with parallel attention and feed-forward layers | |
KR102059015B1 (ko) | 인공 지능 기반의 대화 시스템 및 그 응답 제어 방법 | |
CN113779244B (zh) | 文档情感分类方法、装置、存储介质以及电子设备 | |
CN116561323B (zh) | 一种基于方面词嵌入图卷积网络的情感分析方法 | |
CN116227500A (zh) | 一种评分方法、装置、设备及存储介质 | |
US20230124177A1 (en) | System and method for training a sparse neural network whilst maintaining sparsity | |
US20240005131A1 (en) | Attention neural networks with tree attention mechanisms |
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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20200831 Address after: Washington State Applicant after: MICROSOFT TECHNOLOGY LICENSING, LLC Address before: England Atsushi Applicant before: TOUCHTYPE Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |