CN110023930B - 利用神经网络和在线学习的语言数据预测 - Google Patents

利用神经网络和在线学习的语言数据预测 Download PDF

Info

Publication number
CN110023930B
CN110023930B CN201780073753.7A CN201780073753A CN110023930B CN 110023930 B CN110023930 B CN 110023930B CN 201780073753 A CN201780073753 A CN 201780073753A CN 110023930 B CN110023930 B CN 110023930B
Authority
CN
China
Prior art keywords
embedding
vocabulary
text item
item
neural network
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
Application number
CN201780073753.7A
Other languages
English (en)
Other versions
CN110023930A (zh
Inventor
D·A·H·欧
J·伊索-西皮莱
M·菲斯凯托
M·J·威尔森
J·奥斯本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN110023930A publication Critical patent/CN110023930A/zh
Application granted granted Critical
Publication of CN110023930B publication Critical patent/CN110023930B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/02Input arrangements using manually operated switches, e.g. using keyboards or dials
    • G06F3/023Arrangements for converting discrete items of information into a coded form, e.g. arrangements for interpreting keyboard generated codes as alphanumeric codes, operand codes or instruction codes
    • G06F3/0233Character input methods
    • G06F3/0237Character input methods using prediction or retrieval techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • G06F40/216Parsing using statistical methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/274Converting codes to words; Guess-ahead of partial word inputs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/284Lexical analysis, e.g. tokenisation or collocates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Biomedical Technology (AREA)
  • Evolutionary Computation (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Biophysics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Probability & Statistics with Applications (AREA)
  • Machine Translation (AREA)

Abstract

描述了用于将文本项输入至电子设备的数据输入***。所述数据输入***具有保存文本项的嵌入的词汇表的存储单元,其中每个嵌入是对文本项的数值编码。数据输入***接收用户输入,该用户输入包括一个或多个上下文文本项和新的文本项的序列,所述新的文本项是具有要被计算并且被添加至词汇表的嵌入或者具有已经在词汇表中并且要被更新的嵌入的文本项。神经网络预测器在已知上下文文本项和词汇表的情况下预测序列中的接下来的文本项。在线训练模块通过使用与所预测的接下来的项相关联的方向或者通过将所述新的文本项与所预测的接下来的文本项进行比较来预测接下来的文本项。

Description

利用神经网络和在线学习的语言数据预测
背景技术
诸如预测性键盘之类的数据输入***旨在帮助用户将数据输入至诸如智能电话、可穿戴计算机、以及其他类型的小形状因子电子设备之类的电子设备。预测性键盘通常呈现一个或多个候选的所预测的词语或短语以作为选项供用户选择并且因此输入到电子设备中。
使用神经网络技术的现有预测性键盘通常使用一般由制造商指定的所定义的词汇表来操作。难以对该词汇表进行个性化设置,以使得用户能够更容易地输入用户经常使用但不在制造商定义的词汇表中的词语。解决该问题的一种方法是通过观察由特定用户输入的词语来为该特定用户构建N元(N-gram)语言模型。该类型的N元语言模型不是神经网络并且因此有各种缺点,包括其不能够很好地对用户输入以前从未遇到过的上下文词语的情况进行泛化。另一种方法是尝试使用用户输入到电子设备的新的词语来重新训练整个神经网络预测性键盘本身。然而,这是极其消耗时间和资源密集的,并且在联机模式期间在资源受约束的设备上实行是不切实际的。
下文所描述的实施例不限于利用在线学习来解决已知数据输入***的缺点中的任何一个或所有缺点的实现。
发明内容
以下呈现了本公开的简化的概要,以便向读者提供基本的理解。该发明内容不旨在标识所要求保护的主题的关键或重要特征,也不旨在用于限制所要求保护的主题的范围。其唯一的目的是以简化的形式呈现在本文中所公开的概念的选择,作为之后所呈现的更加详细的描述的前序。
描述了用于将文本项输入至电子设备的数据输入***。所述数据输入***具有保存文本项的嵌入的词汇表的存储单元,每个嵌入是对文本项的数值编码。数据输入***具有处理器,该处理器接收用户输入,该用户输入包括一个或多个上下文文本项和新的文本项的序列,所述新的文本项是具有要被计算并且被添加至词汇表的嵌入或者具有已经在词汇表中并且要被更新的嵌入的文本项。神经网络预测器在已知上下文文本项和词汇表的情况下预测序列中的接下来的文本项。在线训练模块通过使用与所预测的接下来的项相关联的方向或者通过将所述新的文本项与所预测的接下来的文本项进行比较来预测接下来的文本项。
许多伴随的特征将更易于被理解,因为通过参考以下结合附图考虑的详细描述可以更好地理解这些特征。
附图说明
本描述将从以下根据附图对具体实施方式的阅读中更好地理解,其中:
图1是具有数据输入***的多个电子设备的示意图;
图2是具有预测性键盘的智能电话的示意图;
图3是数据输入***的部件的示意图;
图4是神经网络语言模型的示意图;
图5是图1的在线训练模型处的方法的流程图;
图6是对偏置进行计算的方法的流程图,该方法被用作图5的方法的部分;
图7是所预测的嵌入向量的示意图;
图8是对嵌入进行计算的方法的流程图,该方法是图6的方法的部分;
图9是使用浅层反向传播来计算嵌入的方法的流程图,该方法是图6的方法的部分;
图10示出了其中实现数据输入***的实施例的示例性的基于计算的设备。
在附图中相同的附图标记用于指代相同的部分。
具体实施方式
下文结合附图提供的消息描述旨在作为对本示例的描述,并且不旨在仅表示本示例被构造或利用的形式。描述阐述了示例的功能以及用于构造和操作所述示例的操作序列。然而,通过不同的示例,可以完成相同或等价的功能和序列。
在本文中所描述的各种示例中,神经网络预测性文本数据输入***被在线训练以成为对特定用户或用户群组定制的。由于使用了神经网络,并且当作为对用户定制的而被学习的文本项在该神经网络先前没有遇到过的上下文中被输入时,该技术有能力进行泛化并且可以很好地执行。
在线训练对神经网络的文本项嵌入的词汇表进行更新,而不是使用资源受约束的设备来实行对整个神经网络的完整在线训练,所述完整在线训练是昂贵且不切实际的。在一些示例中,还更新了与文本项嵌入相关联的偏置。这是使用启发法和/或浅层反向传播(shallow backpropagation)训练算法实现的,该算法仅更新神经网络的一部分,而不是神经网络的所有层。在某些情况下,使用浅层反向传播来更新文本项嵌入,并且不同于浅层反向传播也更新与嵌入相关联的偏置值,使用启发法来更新所述偏置值以便实现效率。
为了节约存储器,使用不同长度的文本项嵌入来存储文本项嵌入的词汇表。例如,通过使用全长度的文本项嵌入来存储频繁的文本项,以及使用较短长度的文本项嵌入来存储较不频繁的文本项。在线训练流程被布置在一些示例中,以使得其通过以下操作来改变文本项嵌入的长度:当作为对用户定制的而被学习的文本项变得更加频繁时使其更长,或者当在给定时间内没有观察到作为对用户定制的而被学习的文本项时降低该文本项的长度。这使能实现对存储器节约和神经网络性能之间的权衡的精细粒度控制。
如前所述,使用预测性文本神经网络技术的先前的数据输入***发现其在用户输入的文本项不在该神经网络的词汇表中的情况下很难很好地执行。在资源受约束的部署中,由于存储器约束,神经网络的词汇表通常被限制为数万个文本项。然而,不一定以该方式来限制词汇表。无论词汇表的大小如何,总有想要学习其表示但又不能提前训练的一些新的词语或特殊的拼写方式是在该词汇表中找不到的。
这在用户输入罕见的词语而不是在出版的词典中找到的词语时是特别的问题,所述罕见词语例如地名,或者是用户的特有词语。例如,用户可能会重复词语中的字母来表达强调或情感,例如“helloooo”而不是“hello(你好)”,并且在用户经常优选使用“helloooo”的情况下,当预测性文本神经网络数据输入***反复尝试将该词语纠正为“hello”时,这会变得很烦人。因为词语“helloooo”不在预测性文本神经网络数据输入***的词汇表中,因此由于预测性文本神经网络数据输入***没有提供针对“helloooo”的候选项,迫使用户键入“helloooo”中的每个个体字母。
预测性文本神经网络数据输入***能够提供与诸如“hellooo”之类的用户输入项相同的候选项,但不将“hellooo”包含在神经网络的词汇表中。另一个选项是使用对来自特定用户的用户输入的观察来填充N元语言模型。然而,在这两种情况下,都没有能力泛化至先前没有遇到过的、词汇表之外的词语的上下文。例如,如果用户输入“he said(他说)”作为上下文,则如果先前没有观察到过“he said hellooo”,那么预测性文本数据输入***就不太可能提供“hellooo”作为候选项。
现在参考图1描述一示例,其中,数据输入***具有在线训练模块114,在线训练模块114已经被用于使得智能电话102处的数据输入***针对该智能电话的特定用户以给出泛化的方式被定制。
图1是通过诸如互联网或任何其他通信网络之类的通信网络100来与服务器108进行通信多个电子设备102、104、106的示意图。所述电子设备102、104、106中的每个电子设备具有数据输入***116,该数据输入***116包括神经网络110、存储单元112、和在线训练模块114。数据输入***116具有如稍后参考图10更加详细地描述的并且为了清楚起见从图1中被省略的其他组件。
神经网络110预测一序列项(例如,词语、短语、词素、字符、或其他语言单位)中的项。在一些示例中,这些项可以是图像,例如表情符号(emoji)、表情图标、贴纸表情(sticker)、或作为文本的部分使用的其他图像。例如,神经网络110已经在制造阶段或者在离线阶段提前被训练。该训练在服务器108或任何其他实体上进行,并且使用训练数据,如之后在该文档中更加详细地解释的。经训练的神经网络110使用在线训练模块114来更新,以变得适应于特定的用户或用户群组。
数据输入***116具有存储单元112,其保存文本项的嵌入的词汇表以及与所述嵌入相关联的偏置值。所述存储单元是神经网络110的一部分,但在图1中被示出为单独的组件以帮助理解该技术。参考图3对存储进行了更加详细的描述。
图1中的电子设备包括智能电话102、智能手表104、和头戴式增强现实计算设备106,并且这些仅仅是示例,因为可以使用诸如台式计算机、平板计算机、膝上型计算机等之类的其他电子设备。
在本文中所描述的示例中,神经网络110使用文本项的嵌入。嵌入是以能够由神经网络的单元处理的形式来表示文本项的多个学习的权重。在一些情况下,嵌入可以是实值向量。在一些示例中,嵌入还包括标量偏置值,其作为实值向量一部分被存储或者被分开存储。嵌入的学习的权重是数值。嵌入在数据输入过程的至少两个不同的阶段中被使用,并且所述阶段可以被称为神经网络输入阶段和神经网络输出阶段。在神经网络输入阶段,在用户将诸如词语、短语、词素、表情符号、字符、或其他上下文项之类的项输入到电子设备中的情况下,所述神经网络用于预测所述项的序列中的候选的接下来的项。为了将所述项输入到所述神经网络中,所述项被映射至嵌入,所述嵌入接着被输入至所述神经网络。在用户输入诸如词语“I(我)”、“am(是)”、“a(一个)”、“beautiful(漂亮的)”之类的项的序列的情况下,这些个体的词语中的每个词语被映射至对应的嵌入并且被输入至所述神经网络,以便预测出诸如“人”之类的候选的接下来的词。
在神经网络输出阶段,神经网络的输出层产生数值,这些数值是该网络的输出层中的单元的激活水平。这些数值形成了所预测的嵌入。为了将所预测的嵌入转换成个体的候选项(例如,候选的词语、短语、词素、表情符号、或其他项)的得分,计算所预测的嵌入与对于得分过程可用的多个嵌入中的个体嵌入之间的相似性的度量。在一些示例中,点乘被计算为相似性的度量,但是这不是必要的,因为可以使用相似性的其他度量。相似性度量给出多个得分,每个得分针对所述嵌入中的每个嵌入,所述得分当被归一化时表达所述序列中的接下来的项是与所述嵌入相对应的项中的每一项的可能性。在嵌入具有相关联的偏置值的情况下,例如通过加法、乘法、或其他形式的聚合来将所述偏置值与所述得分聚合。以该方式,所述得分以将偏置值考虑在内的方式变成经偏置的。所述偏置值被手动配置,在一元模型下被设置为项的对数概率(其可以从项的训练集中计算),或者与嵌入一起通过后向传播算法习得。
为了电子设备102、104、106处的神经网络110能够操作以生成预测,其针对上文所提及的神经网络输入和输出阶段而使用嵌入。电子设备102具有至少一个存储单元112,其保存用于促进输入阶段和输出阶段的嵌入。存储单元112可以在输入神经网络阶段与输出神经网络阶段之间被共享。然而,尽管有避免了对具有多于一个嵌入表(一个用于输入阶段,一个用于输出阶段)的需求的这样的共享,但是嵌入会占用电子设备处的存储器,并且该存储器是受限的。由于表格中的行数可以是一万或更多并且列数多达160或更多,因此在资源受约束的部署的情况下,由嵌入所使用的存储器是大量的,所述嵌入通常被存储在该表格中,其中该表格的每一行是一个嵌入。
为了减少由存储单元112所使用的存储器的量,在本文中所描述的各种示例使用不同长度的嵌入。在一示例中,与在用户输入中以高频率出现的项相比,给予在用户输入中以低频率出现的项的嵌入以较短的嵌入。这使能够降低由嵌入所占用的存储器的量。例如,不同于使得嵌入表格中的所有行具有160列,使这些行中的第一部分具有80列,第二部分具有40列,其余行具有160列。然而,这仅仅是示例,并且嵌入表中的具有其他不同长度的行的其他布置是可能的。
使用神经网络进行的预测的质量或准确性是要考虑的另一个因素。在嵌入的维数较低(嵌入表格的行中的列数较少)的情况下,该嵌入描述对应的文本项的能力会降低。因此,通过改变项嵌入的长度,可以控制嵌入所占用的存储器的量与嵌入描述所述项的能力之间的权衡。
在使用不同长度的嵌入的情况下,神经网络110能够投影(project)嵌入以使其更长或更短。例如,作为神经网络输入阶段的一部分,神经网络操作以投影出上至指定长度的嵌入,以适合于输入至该神经网络。在神经网络输出阶段的上下文中,神经网络110操作以投影出由神经网络输出的、下至较短的指定长度的所预测的嵌入,以适合于利用表格中具有所述较短的指定长度的嵌入来计算得分。在某些情况下,所述投影是通过补零来完成的。在某些情况下,投影是通过线性插值完成的,其是通过将嵌入与经习得的适配器矩阵相乘来实现的。
在图1的示例中,智能电话102的用户接收到一条文本消息,其写着“只是好奇,您的ETA(预计到达时间)是什么时候(Just curious,what is your ETA)?”智能电话102的用户正在编写回复,并使用智能电话102处的预测性虚拟键盘键入了“Running la”。智能电话102处的在线训练模块114已经学习到,智能电话102的用户常常使用“laaate”这个词来表达他或她非常迟到。“laaate”一词没有处于在智能电话102的制造过程中被安装的嵌入的原始存储单元112中,也没有由于该词不是在英语语言中通常观察到的词而从提供方处被下载。在线训练模块114已经观察到用户在各种不同上下文中键入词语“laaate”,并且已经学习到“laaate”的嵌入并将该嵌入添加至存储单元112。作为结果,在该示例中由神经网络110计算的候选的文本项包括“late”、“laaate”和“there”。以该方式,由于用户能够选择空格键或者选择候选项“laaate”并使用单个用户动作来输入该词语,因此数据输入的负担有所降低。同样的情况在智能手表104上被示出并且使用增强现实计算设备106也是可能的。
图1示出了服务器108,其连接至通信网络100,并且用于提供神经网络110、存储单元112、和在线训练模块114的功能中的全部或部分。电子设备能够与服务器108进行通信以实行神经网络110、存储单元112、和在线训练模块114的功能中的全部或部分。
可替代地或另外地,在本文中所描述的服务器和/或电子设备的功能是至少部分地由一个或多个硬件逻辑组件执行的。例如但非限制,可选地使用的逻辑硬件组件的说明性类型包括现场可编程门阵列(FPGA)、应用专用集成电路(ASIC)、应用专用标准产品(ASSP)、片上***(SOC)、复杂可编程逻辑器件(CPLD)、图形处理单元(GPU)。
图2是电子设备102示意图,在该情况下,该设备是具有使用神经网络技术的预测性键盘的智能电话。该智能电话具有诸如触摸屏之类的显示屏202,其显示用于向电子设备102输入文本的键盘200。键盘200包括三个候选预测区域204、206、208,它们分别显示由神经网络技术计算出的候选预测。在该示例中,用户接收到了来自Robyn的短消息服务(SMS)消息,其写着“How are you(你好吗)?”。该用户处于在输入字段210中输入回复SMS消息过程中,并且截止当前已经输入了“I am feeling(我感到)pf”,并且预测性键盘已经计算出三个候选的所预测的接下来的词语,它们是“Happy(开心)”,“Good(好)”和“pflunked”,并且这些词语都被显示在键盘200上。用户能够选择候选的所预测的接下来的词语中的一个,而不是输入单独的字符来形成该词语。这就数据输入方面为终端用户节约了负担。然而,预测的质量很重要,因为如果候选的词语不是用户打算输入的实际的词语,那么用户必须输入期望的词语的个体字符。预测的质量取决于各种因素,例如在训练期间所使用的训练数据的数量和种类、所使用的训练的类型、神经网络的架构、神经网络泛化至在训练期间没有见过的示例的能力、以及诸如可用的嵌入之类的其他因素。在一些示例中,随着用户输入期望的词语的个体的字符,更新候选的预测。
在图2的示例中,在线训练模块已经观察到智能电话102的用户在先前的场合中输入了编造的词语“pflunked”,并且已经学习到该编造的词语的嵌入和偏置。作为结果,尽管该词语不是英语语言中的词语并且先前不在神经网络110的词汇表中,但候选结果也可以包括“pflunked”。即使神经网络110以前没有观察到过“I am feeling pflunked”,但其也能够预测“pflunked”作为候选项。
图3是数据输入***116的组件的更加详细的示意图。神经网络110包括参考图4描述的核心预测器300并且可选地包括字符组成嵌入模型302,所述字符组成嵌入模型302是在已知词语的个体的字符的情况下计算该词语的嵌入的神经网络。储存单元112包括嵌入的一个或多个表格302、306,并且在一些情况下包括偏置值304、308,并且在一些情况下包括修正项310,所述存储单元112严格来说是神经网络110的一部分,但为了帮助理解被示出为单独的实体。所述嵌入一起形成了神经网络110的词汇表。为了节约存储器,嵌入的表格302、306在如前所述的某些情况下具有不同长度的嵌入。在某些情况下,特定于用户的数据是独立的以使其容易被识别,并且能够与由同一用户使用的其他设备相同步。因此,在图3中,特定于用户的嵌入306与嵌入302被分开示出,并且特定于用户的偏置308与偏置304是分开的。在在线训练模块114学习一个或多个嵌入302或偏置304的修正项的情况下,这些术语被存储为修正项310。在某些情况下,用户特定的嵌入、偏置、和修正项与用户的其他设备相同步。在线训练模块114能够根据规则和/或标准(例如,在用户输入中观察到对应的文本项的频率、时间段、以及其他标准)来从存储单元112中提出数据。
图4是诸如图1的神经网络110之类的神经网络300的示意图。
神经网络是通过边相互连接的节点(也称为单元)的集合,并且其中,存在与节点和/或边相关联的权重。非线性函数通常被应用在每个节点中以产生其激活,并且可以使用的非线性函数的非详尽列表是:sigmoid函数、双曲正切(tanh)、整流器(rectifier)。在训练阶段期间,所述权重根据训练示例、按照更新规则来更新。所述单元包括输入单元、隐藏单元、和输出单元。输入单元是在其处向神经网络进行输入的单元,隐藏单元在输入单元与输出单元(或在深度网络的情况下的其他隐藏单元)之间连接,而输出单元是在其处观察到来自神经网络的输出的单元。神经网络可以具有分层结构,该结构具有输入节点的层、隐藏单元的一个或多个层、以及至少一个输出层。在使用神经网络期间,在测试时(即,在训练之后),当信号通过一层时,其经由激活产生输出,该输出变成对神经网络的下一层的输入,以此类推,直到信号到达输出层并且输出单元被激活为止。在输出层处的激活的模式给出了对神经网络的预测。激活的模式已经受到在训练阶段期间学习的权重的影响。
神经网络300是使用后向传播或任何其他神经网络训练算法来训练的。后向传播算法包括将经标记的训练数据实例输入至神经网络,通过神经网络来传播所述训练实例(称为前向传播),以及对输出进行观察。训练数据实例被标记,且因此神经网络的真实的输出是已知的,并且观察的输出与真实输出之间的差别或误差被找到,并且提供关于损失函数的信息。例如,损失函数是分类交叉熵。进行搜索以尝试找到损失函数的最小值,其是使得神经网络的输出能够与真实数据相匹配的神经网络的一组权重。对损失函数进行搜索是使用梯度下降或随机梯度下降或以其他方式来实现的。一旦找到解,便使用该解来更新输出层处的权重。接着,关于损失函数的信息可用于先前的层,并且该损失函数的解被找到并且用于更新先前层的权重。进而针对该神经网络的每个先前的层重复该过程,并且该阶段中的处理被称为后向传递或后向传播。
在图4的示例中,神经网络300包括输入层422、单个隐藏层412、和单个输出层416。然而,这仅是一个示例,并且可以使用例如具有更多的隐藏层并且具有递归的结构的许多其他类型的架构,在所述递归结构中,单元之间的连接形成有向圆。
在图4的示例中,用户已经输入了词语“我”、“是”、“一个”以及“漂亮的”,并且每个词语由向量中的1的位置来表示,向量中的其他位置以零填充。在图4中的404处示出了这些向量。通过使用映射408,将每个个体词语指示符向量404映射至嵌入向量406。嵌入是从存储单元112中查找的。嵌入406被输入到输入层422的输入单元,并创建激活,该激活如由线410所指示的那样通过输入层前向传播以到达隐藏层412。隐藏层接收输入层的输出作为其输入。隐藏层根据在图4中被表示为414的激活函数以及隐藏层单元处的权重来处理信号。隐藏层412的输出到达输出层416,输出层416还根据在图4中被表示为418的激活函数来处理所述信号,并且在输出单元处生成被表示为线420上的滴(blob)的激活。输出单元的激活被转换成一组可用的项嵌入中的项的得分。这通过在由输出单元的激活已知的预测的项嵌入与可用的项嵌入中的每个项嵌入之间的点积(或其他相似性的度量)来完成,并且接着,在标量偏置值可用的情况下,添加针对该项所存储的标量偏置值。可以例如通过应用柔性最大传输(softmax)函数或以其他的方式将得分归一化,以使得它们总和是一。如果可用的项嵌入是针对词语“人”、“是”、“孩子”、“房屋”、“天”的,则结果是针对“人”、“是”、“孩子”、“房屋”、和“天”中的每个的得分,该得分指示该词语有多大可能是用户期望的接下来的词语。
图5是在线训练模块114处的操作的方法的流程图。在线训练模块114位于电子设备处,或者位于服务器108处。其接收(500)用户输入,例如使用图2的示例的“I am feelingpf”。用户输入是经由电子设备处的输入界面做出的,所述电子设备例如智能电话102、智能手表104、或增强现实计算设备106,并且被发送至在线训练模块。所述输入接口是使得用户能够向电子设备输入数据的任何机制。
在线训练模块114关于所接收到的用户输入来决定(502)是否进行操作以实行在线训练。其将几个因素考虑在内,例如,要使用哪种类型的在线训练算法,以及什么数据已经存在(如果存在的话)于关于用户输入的存储单元中。
在某些情况下,在线训练算法是将正示例和负示例二者考虑在内的算法。在该情况下,在线训练模块潜在地在步骤502处决定针对所接收到的每个用户输入进行操作。假设在线训练模块尝试学习新的词语的嵌入和偏置值。正(positive)示例是用户输入中有新的词语的实例。负(negative)示例是不包含新的词语的用户输入。
在某些情况下,在线训练算法是将正示例考虑在内而忽略负示例的算法。如果观察到负示例,则步骤502返回至步骤500。在在线训练算法将正示例而不是负示例考虑在内的情况下,502处的决策涉及诸如以下中的一个或多个的因素:检查文本项的嵌入是否在词汇表中可获得,检查文本项的嵌入是否是由组成字符模型生成的,检查词汇表中的文本项的嵌入的时长(age),检查词汇表中的文本项的嵌入已经被更新的次数。如果在存储单元112处没有在词汇表中可获得的文本项的嵌入,则在线训练模块在图5中的决策点502的yes(是)分支上进行,这是由于该文本项很有可能是由用户再次使用的文本项,例如“pflunked”或“laaate”。如果在存储单元112中存在文本项的嵌入但该嵌入是由CCE模型302生成的,那么嵌入的质量可能较差,因为其没有经过较大规模的离线学习过程来学习。在线训练模块能够更新由CCE模型302所生成的嵌入,或者计算该嵌入的修正项。在线训练模块能够检查存储单元112中的嵌入的时长。如果用户输入500包括这样的项,其具有已经由在线训练模块学习并且大于阈值时长的嵌入,则在线学习模块能够选择该嵌入项以被更新或者使得修正项被计算。以该方式,在线训练模块使得预测性键盘能够适应于特定用户对语言的使用随时间的改变,例如,随着特定词语或其他文本条目变得流行或不流行。在线训练模块能够检查其已经更新了文本项的嵌入的次数。如果该次数高于阈值,则可以决定不再对嵌入进行任何进一步的更新。这使得资源得到节约。
当在操作502处决定沿着yes(是)分支进行时,如在图5中所指示的,在线训练模块选择(504)嵌入长度。这在存储单元112存储具有不同长度的嵌入以节约存储器的情况下是有用的。如果在线训练模块504要初始化在存储单元112中还不存在的新的嵌入,则其选择较短的嵌入长度。当新的嵌入随着时间的推移使用正示例被更新时,由于对与嵌入所表示的项相关的更多信息的了解,并且由于已经观察到正示例而很可能会再次使用该嵌入,因此所述长度会增加。以该方式,在线训练模块提供了对由存储单元112所使用的存储器与由神经网络110进行的预测的质量之间的权衡的精细粒度动态控制。
使用所选择的长度,在线训练模块继续进行以下中的一个或多个操作:计算嵌入和/或偏置的初始值,计算嵌入和/或偏置的经更新的值,以及计算被应用于嵌入的修正项。
图6是在线训练模块114中的计算嵌入文本项的初始偏置值并且更新该偏置值的方法的流程图。该方法被在线训练模块“on the fly(即时)”或作为后台进程使用。在线训练模块114从神经网络110接收到针对特定偏置值的请求。例如,在“on the fly”模式下,在神经网络输出阶段110处的评分过程中,神经网络110当其需要偏置值时发送请求。在后台模式中,每当存在与在线训练模块114处的嵌入相关联的事件时,在线训练模块114就要求自己生成或更新与该嵌入相关联的偏置值。所述事件包括对嵌入的初始化、对嵌入的更新、计算嵌入的修正项。
在线训练模块对已经在来自用户的输入中观察到的、与偏执值相关联的文本项的出现次数N进行计数602。在线训练模块计数604已经由用户输入的文本条目的总数T。在线训练模块进行以下计算606:文本项的出现次数N的对数,除以总数T加上平滑常数。平滑常数是由操作者(operator)基于经验数据来设定的。步骤606处的计算的结果是偏置值608,其被存储在存储单元112处和/或由神经网络110用来评分。该过程返回至步骤600。
图7是三个所预测的嵌入p1、p2、p3的示意图,它们被描绘为嵌入空间中的从原点出发的向量。所述向量具有由箭头的长度指示的长度,并且具有由图7中的箭头指示的方向。假设p1是在用户输入是“he was(他…)”时由神经网络110计算的所预测的嵌入,p2是在用户输入是“are you(你)”时由神经网络计算的所预测的嵌入,并且p3是在用户输入是“the whole job was(整个工作)”时由神经网络计算的所预测的嵌入。在每种情况下,用户随后都键入“pflunked”,其是一开始不在神经网络110的词汇表中的编造的词语,所以用户在任一情况下都不得不键入“pflunked”中的个体字母。发明者已经认识到,所预测的嵌入向量的方向很可能是相似的,这是由于所述输入在每种情况下常常产生相似的一组所预测的词语。因此,计算“pflunked”的嵌入的方法包括计算具有与所预测的嵌入p1、p2和p3的方向相关的方向的嵌入。为了找到“pflunked”的嵌入的大小(例如,范数),使用词汇表中的嵌入的统计数据,例如,词汇表中的嵌入的平均范数,或者平均值或中值范数或其他统计数据。在某些情况下,所述范数是L2范数,其被计算为向量中的值的均方根。现在参考图8来描述一个示例。
图8的方法是由在线训练模块114实行的。当在线训练模块决定通过忽略负示例来计算或更新文本项的嵌入时,能够使用图8的方法。在线训练模块114以已经接收(800)了诸如来自图7的“he was pflunked”之类的正示例。使用神经网络110,其在已知上下文(例如,在该示例中是“he was”)的情况下计算(802)所预测的嵌入。在线训练模块计算(804)“pflunked”的嵌入的长度。例如,其发现存储单元112中的文本项的嵌入的平均长度,或者存储单元112的用户特定的部分中的文本项的嵌入的平均长度。在线训练模块将“pflunked”的嵌入的方向设置(806)为与所预测的嵌入的方向相同。在线训练模块收(808)诸如“are you pflunked”之类的另一正示例。其使用神经网络110来在已知上下文“areyou”的情况下计算(812)所预测的嵌入。在线训练模块更新“pflunked”的嵌入的方向,以将在步骤812处计算的所预测的嵌入的方向考虑在内。更新包括例如通过平均、计算移动平均、或其他聚合方法来聚合所述方向。
图9是在使用正示例和负示例两者的情况下的、在线训练模块114处的方法的示例。在该情况下,使用浅层反向传播过程。浅层传播过程是一种神经网络训练算法,其与任何形式的神经网络反向传播相同,但限于对输出层的参数进行更新。也就是说,不同于在向后传递的过程中对神经网络的所有层的参数进行更新,仅更新输出层的参数。输出层的这些参数包括词汇表中的嵌入以及偏置。图9的过程是浅层反向传播过程的示例,该过程更新词汇表中的嵌入,并且可选地更新偏置。也就是说,在某些情况下,偏置值不受图9的过程的影响。发明者已经认识到,可以将对偏置值的更新从反向传播过程中移除并且替代地使用图6的过程来计算偏置值,以使得在不损害神经网络预测的质量的情况下实现效率。
在线训练模块114接收(900)诸如“he was pflunked”之类的用户输入,并且检测到(902)不存在于存储单元112处的词汇表中的新的文本项“pflunked”。其通过将“he”和“was”的嵌入输入到神经网络110中来计算(904)所预测的嵌入。在线训练模块选择“pflunked”的新的嵌入的长度(见图5,504),并且将“pflunked”的新的嵌入初始化。初始化是通过如上所述的那样计算标度,以及使用所述标度作为嵌入长度来完成的。在某些情况下,初始化是通过使用CCE模型302计算嵌入来完成的。在某些情况下,初始化是通过使用默认或随机选择的嵌入来完成的。在本文中认识到,随机初始化不一定要打破对称性来训练网络参数,这是因为网络的现有部分和训练观察可能已经打破了新的参数中的对称性。因此,在某些情况下,初始化是通过将嵌入值设置为零来完成的。在线训练模块114计算(908)正浅层反向传播更新。这是通过将所预测的嵌入与初始化的嵌入进行比较以找到关于损失函数的信息来完成的。如上文所述的那样搜索损失函数,并找到解。在一些示例中使用了公知的Adagrad算法来搜索损失函数,但可以使用其他梯度下降算法。使用所述解来更新神经网络110的输出层的参数,其包括“pflunked”的嵌入并且可选可包括相关联的偏置值。
当接收到(910)进一步的用户输入时,在线训练模块114继续实行正或负浅层反向传播更新。在线训练模块114选择(912)正在更新的嵌入的长度。在线训练模块可以利用在步骤906处所使用的长度继续,或者选择新的长度。例如,如果长度当前低于最大长度,并且如果浅层正向传播更新的数量已超过阈值,则增加长度。在线训练模块114检查(914)用户输入是否包含其嵌入正在被更新的新的文本项“pflunked”。如果包含,则其以与在操作908处相同的方式在操作916处计算正浅层反向传播更新。如果用户输入不包含新的文本项“pflunked”,则该过程将移动至操作918。假设用户输入是“he was happy”。“pflunked”一词不存在,并且因此该过程移动至框918。在过程918处,实行负浅层反向传播更新以将正在使用的任何批处理和/或采样考虑在内。通过以下操作来计算负浅层传播更新:在已知上下文词语“he was”的情况下计算所预测的嵌入,将“pflunked”的所预测的嵌入与“pflunked”的当前嵌入之间的差异进行比较,以及使用所述差异作为关于损失函数的证据。对损失函数进行搜索以找到解,所述解被用于对神经网络110的输出层的参数进行负更新。为了给出效率,负更新被批量处理、累积以节约存储器,并且在出现某一数量的负示例或者观察到下一个正示例后被周期性地清除。在某些情况下,采样用于降低过程918处的负浅层反向传播更新的数量。在采样的情况下,每个负更新都是以由噪声分布指定的概率而随机执行的。在一些示例中,经采样的负更新大小上增加,例如根据公知的噪声对比估计算法的更新方程。
可以通过随机地采样上下文来计算针对多个嵌入的高效负更新。如果一上下文被选择以进行负更新,则将所预测的嵌入存储在缓冲器中。已经学习了嵌入的项或修正项的概率也被存储在缓冲器中。当缓冲器达到指定的大小限制后,负更新使用缓冲器被计算并其被应用于所述嵌入,然后清除所述缓冲器。
在线训练模块114在检查点920处例如通过检查收敛性(随后的更新的嵌入中的小改变)或者通过检查已经发生的固定数量的更新来决定是否停止对“pflunked”的嵌入进行更新。如果过程要结束,则通过以下操作之一来存储(922)输出:用存储单元112中的嵌入的新版本来替换原来的嵌入,在存储单元112中创建新的嵌入,或者存储修正项来。
图10示出了示例性的基于计算的设备1000的各种组件,所述基于计算的设备被实现为图5-9的方法的实施例在一些示例中在其中被实现的并且提供图1的数据输入***116的任何形式的电子设备。
基于计算的设备1000包括一个或多个处理器1002,其是微处理器、控制器、或者任何其他合适类型的处理器,所述处理器用于处理计算机可执行指令以控制设备操作,以便预测项的序列中的候选项,从而促进将所述项输入到电子设备1000中。在一些示例中,例如在使用片上***架构的情况下,处理器1002包括一个或多个固定功能框(也称为加速器),其以硬件(而不是软件或固件)实现图5-9的方法的一部分。包括操作***1004的平台软件或任何其他合适的平台软件在基于计算的设备1000处被提供,以使得应用软件1006能够在该设备处被执行。神经网络模型110被存储在电子设备处。输入接口1022接收项的序列中的项,以使得用户能够将项输入至电子设备1000。存储单元112包括神经网络的多个嵌入以及相关联的偏置值,并且其在某些情况下存储多个不同长度的嵌入。完成/校正预测器1018使用来自神经网络1020的输出以完成词语、短语、表情符号、或其他项。例如,完成/校正预期器1018是预测性键盘或预测性语音识别***。在线训练模块114能够根据在输入接口1022处观察到的用户输入在存储单元112中更新/创建/删除数据,以使得神经网络110能够进行针对基于计算的设备100的用户个性化的预测。
计算机可执行指令是使用由基于计算的设备1000可访问的任何计算机可读介质来提供的。计算机可读介质包括诸如存储器1008之类的计算机存储介质以及通信介质。计算机存储介质(例如,存储器1008)包括以用于存储信息(例如,计算机可读指令、数据结构、程序模块等)的任何方法或技术来实现的易失性和非易失性的、可移动和不可移动的介质。计算机存储介质包括但不限于随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM)、电子可擦除可编程只读存储器(EEPROM)、闪速存储器或其他存储器技术、压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)或其他光存储设备、盒式磁带、磁带、磁盘存储设备或其他磁存储设备、或者用于存储供计算设备访问的信息的任何其他非传输介质。相比之下,通信介质在诸如载波之类的调制数据信号或其他传输机制中实施计算机可读指令、数据结构、程序模块等。如在本文中所定义的,计算机存储介质不包括通信介质。因此,计算机存储介质不应当被解释为传播信号本身。尽管计算机存储介质(存储器1008)被示出在基于计算的设备1000内,但是将领会的是,所述存储设备在一些示例中远程地分布或被定位,并且经由网络或其他通信链路访问(例如,使用通信接口1010)。
基于计算的设备1000还包括被布置为向显示设备1014输出显示信息的输入/输出控制器1012,其中,显示设备1014可以与基于计算的设备1000相分离或者集成至计算的设备1000。显示信息可以提供图形用户界面。输入/输出控制器1012还被布置为从诸如用户输入设备1016(例如,鼠标、键盘、相机、麦克风、或其他传感器)之类的一个或多个设备接收输入并处理所述输入。在一些示例中,用户输入设备1016检测语音输入、用户手势、或其他用户动作,并且提供自然用户接口(NUI)。该用户输入可以用于向电子设备输入数据。在实施例中,如果显示设备1014是触摸感应显示设备,则显示设备1014还充当用户输入设备1016。在一些实施例中,输入/输出控制器1012向与显示设备不同的设备(例如,本地连接的打印设备)输出数据。
输入/输出控制器1012、显示设备1014、和用户输入设备1016中的任何一个可以包括使得用户能够以自然的方式与基于计算的设备进行交互的NUI技术,摆脱了由诸如鼠标、键盘、远程控制等之类的输入设备施加的人为约束。在一些示例中提供的NUI技术的示例包括但不限于以下技术,其依赖于声音和/或语音识别、触摸和/或手写笔识别(触摸感应显示器)、在屏幕上以及接近屏幕的手势识别、空中手势、头部和眼睛跟踪、声音和语音、视觉、触摸、手势、及机器智能。在一些示例中使用的NUI技术的其他示例包括意图和目标理解***,使用深度相机(例如,立体照相***、红外照相***、红绿蓝(rgb)照相***及这些的结合)的运动姿势检测***,使用加速度计、陀螺仪的运动姿势检测,脸部识别,三维(3D)显示,头部、眼睛和注视跟踪,沉浸式增强现实和虚拟现实***,以及用于使用电场传感电极(脑电图(EEG)和相关方法)来感测脑部活动的技术。
可替代地或者除了在本文中所描述的其他示例之外,示例包括以下项的任何组合:
电子设备处的用于将文本项输入至所述电子设备的数据输入***,包括:
存储单元,其保存文本项的嵌入的词汇表,其中每个嵌入是对文本项的数字编码;
处理器,其接收包括一个或多个上下文文本项和新的文本项的序列的用户输入,所述新的文本项是具有要被计算并且要被添加至所述词汇表的嵌入或者具有已经在所述词汇表中并且要被更新的嵌入的文本项;
神经网络预测器,其被训练为通过在已知所述上下文文本项和所述词汇表的情况下预测所述序列中的接下来的文本项,来预测所述新的文本项;
在线训练模块,其被配置为通过以下操作来更新所述词汇表:使用与所预测的接下来的项相关联的方向,或者将所述新的文本项与所预测的接下来的文本项进行比较并且将所述比较的结果传播至所述神经网络的最终层。
如在上文中所描述的数据输入***,其中,所述在线训练模块被配置为通过以下操作中的任何一个或多个操作来确定所述用户输入中的文本项是否是新的文本项:检查所述文本项的嵌入是否在所述词汇表中可获得,检查所述文本项的嵌入是否是由组成字符模型生成的,检查所述词汇表中的所述文本项的嵌入的时长,检查所述词汇表中的所述文本项的嵌入已经被更新的次数。
如在上文中所描述的数据输入***,其中,所述在线训练模块被配置为通过选择与所述新的文本项相关联的嵌入的多个可能的长度中的一个可能的长度来更新所述词汇表。
如在上文中所描述的数据输入***,其中,所述在线训练模块被配置为通过以下操作使用与所预测的接下来的项相关联的方向来更新所述词汇表:将所述新的文本项的嵌入的方向与所预测的接下来的项的嵌入的方向相关地设置。
如在上文中所描述的数据输入***,其中,所述处理器被配置为接收用户输入中的所述新的文本项的多个实例,以及计算多个相关联的所预测的嵌入,并且其中,所述在线训练模块被配置为使用对所预测的嵌入的方向的聚合来设置所述新的文本项的所述嵌入的所述方向。
如在上文中所描述的数据输入***,其中,所述在线训练模块被配置为使用所述词汇表的一个或多个统计数据来设置所述新的文本项的所述嵌入的范数。
如在上文中所描述的数据输入***,其中,所述在线训练模块被配置为将所述新的文本项与所预测的接下来的文本项进行比较,并且将所述比较的结果传播至所述神经网络的最终层。
如在上文中所描述的数据输入***,其中,所述在线训练模块被配置为将所述新的文本项与所预测的接下来的文本项进行比较,并且将所述比较的结果传播至所述神经网络的最终层;所述处理器被配置为接收另外的用户输入,所述另外的用户输入包括所述新的文本项的正示例和所述新的文本项的负示例,并且其中,所述在线训练模块被配置为使用所述正示例和所述负示例两者来更新所述词汇表。
如在上文中所描述的数据输入***,其中,所述在线训练模块被配置为使用所述正示例和所述负示例两者来更新所述嵌入和/或所述嵌入的偏置。
如在上文中所描述的数据输入***,其中,所述在线训练模块被配置为对所述新的文本项的所述负示例进行采样和/或批处理。
如在上文中所描述的数据输入***,其中,所述在线训练模块被配置为改变所述新的文本项的嵌入的多个元素。
如在上文中所描述的数据输入***,其中,所述在线训练模块被配置为将所述新的文本项与所预测的接下来的文本项进行比较,并且将所述比较的结果传播至所述神经网络的最终层,并且其中,所述在线训练模块被配置为通过对在所述电子设备处的用户输入中观察到的所述新的文本项的出现和文本项的总数进行计数,来计算所述新的文本项嵌入的偏置。
如在上文中所描述的数据输入***,其中,所述在线训练模块被配置为通过对在所述电子设备处的用户输入中观察到的所述新的文本项的出现和文本项的总数进行计数,来计算所述新的文本项嵌入的偏置。
如在上文中所描述的数据输入***,其中,所述在线训练模块被配置为使用通过字符组成嵌入模型计算的嵌入来将所述新的文本项的嵌入初始化。
如在上文中所描述的数据输入***,其中,所述神经网络被配置为使得,当接收到包括所述新的文本项的另外的用户输入时,所述神经网络使用经更新的词汇表来计算所预测的接下来的项;并且其中,所述处理器被配置为作为数据来提供所预测的接下来的项以输入至所述电子设备。
一种电子设备处的计算机实现的方法,所述方法包括:
在存储器处存储文本项的嵌入的词汇表,其中每个嵌入是对文本项的数字编码;
接收包括一个或多个上下文文本项和新的文本项的序列的用户输入,所述新的文本项是具有要被计算并且要被添加至所述词汇表的嵌入或者具有已经在所述词汇表中并且要被更新的嵌入的文本项;
使用经训练的神经网络以通过在已知所述上下文文本项和所述词汇表的情况下预测所述序列中的接下来的文本项,来预测所述新的文本项;
通过以下操作来更新所述词汇表:使用与所预测的接下来的项相关联的方向,或者将所述新的文本项与所预测的接下来的文本项进行比较并且将所述比较的结果传播至所述神经网络的最终层。
如在上文中所描述的方法,其中,所述词汇表是在所述电子设备处在线更新的。
如在上文中所描述的方法,包括通过以下中的一个或多个来确定所述用户输入中的文本项是否是新的文本项:检查所述文本项的嵌入是否在所述词汇表中可获得,检查所述文本项的嵌入是否是由组成字符模型生成的,检查所述词汇表中的所述文本项的嵌入的时长,检查所述词汇表中的所述文本项的嵌入已经被更新的次数。
如在上文中所描述的方法,包括通过以下操作使用与所预测的接下来的项相关联的方向来更新所述词汇表:将所述新的文本项的嵌入的方向与所预测的接下来的项的嵌入的方向相关地设置。
具有设备可执行指令的一个或多个设备可读介质,所述设备可执行指令当由计算***执行时,引导所述计算***执行以下操作,包括:
在存储器处存储文本项的嵌入的词汇表,其中每个嵌入是对文本项的数字编码;
接收包括一个或多个上下文文本项和新的文本项的序列的用户输入,所述新的文本项是具有要被计算并且要被添加至所述词汇表的嵌入或者具有已经在所述词汇表中并且要被更新的嵌入的文本项;
使用经训练的神经网络以通过在已知所述上下文文本项和所述词汇表的情况下预测所述序列中的接下来的文本项,来预测所述新的文本项;
通过以下操作来更新所述词汇表:使用与所预测的接下来的项相关联的方向,或者将所述新的文本项与所预测的接下来的文本项进行比较并且将所述比较的结果传播至所述神经网络的最终层。
在本文中使用术语“计算机”或“基于计算的设备”来指代具有处理能力以使其执行指令的任何设备。本领域技术人员将认识到,这样的处理能力被并入到许多不同的设备中,并且因此术语“计算机”和“基于计算的设备”中的每个包括个人计算机(PC)、服务器、移动电话(包括智能电话)、平板计算机、机顶盒、媒体播放机、游戏机、个人数字助理、可穿戴计算机、以及许多其他设备。
在一些示例中,通过有形存储介质上的采用机器可读形式(例如,采用计算机程序形式)的软件来执行在本文中所描述的方法,所述计算机程序包括适配成当所述程序在计算机上运行时执行在本文中所描述的方法中的一个或多个方法的所有操作的计算机程序代码模块,并且所述计算机程序可以在计算机可读介质上被实施。所述软件适合于在并行处理器或串行处理器上执行,以使得可以以任何适当的顺序或者同时地实行所述方法操作。
这承认了软件是有价值的、单独可交易的商品。其旨在包含在“哑的(dumb)”或标准硬件上运行或者控制“哑的”或标准硬件以实行期望的功能的软件。其还旨在包含“描述”或定义硬件配置的软件,例如HDL(硬件描述语言)软件,其用于设计硅芯片、或用于配置通用可编程芯片以实行期望的功能。
本领域技术人员将认识到,用于存储程序指令的存储设备可选地跨网络分布。例如,远程计算机能够存储被描述为软件的过程的示例。本地或终端计算机能够访问远程计算机并且下载软件的部分或全部以运行程序。可替代地,本地计算机可以根据需要下载软件的片段,或者执行在本地终端上的一些软件指令或者在远程计算机(或计算机网络)上的一些软件指令。本领域技术人员还将认识到,通过利用本领域技术人员已知的传统技术,软件指令的全部或部分可以由诸如数字信号处理器(DSP)、可编程逻辑阵列等之类的专用电路来实行。
在本文中给出的任何范围或设备值可以在不失去所寻求的效果的情况下被扩展或改变,如本领域技术人员显而易见的。
尽管已经用特定于结构特征和/或方法动作的语言描述了本主题,但是要理解的是,在所附权利要求书中定义的本主题不一定限于上文所描述的具体特征或动作。相反,上文所描述的具体特征和动作是作为实现权利要求的示例性形式被公开的。
应当理解的是,在上文中所描述的好处和优点可以与一个实施例相关,或者可以与几个实施例相关。所述实施例不限于解决所述的问题那些实施例,或者具有所述的好处和优点中的任何一个或全部的那些实施例。还应当理解的是,所提到的“一个”项指的是那些项中的一个或多个。
可以以任何合适的顺序或者在合适的情况下同时地实行在本文中所描述的方法的步骤。另外地,可以从方法中的任何一个中删除个别模块而不脱离在本文中所描述的主题的范围。在上文中所描述的示例中的任何一个的方面可以与所描述的其他示例中的任何一个的方面相结合以形成进一步的示例,而不失去所寻求的效果。
在本文中所使用的术语“包括”意指包括所标识的方法模块或元素,但是这样的模块或元素不包括排除性的列表,并且方法或装置可以包含额外的模块或元素。
应当理解的是,仅仅作为示例给出了上文中的描述,并且可以由本领域技术人员做出各种修改。以上的详细说明、示例、和数据提供了对示例性实施例的使用和结构的完整的描述。尽管已经结合某种程度上的特殊性,或者参考一个或多个个别的实施例在上文中描述了各种实施例,但是本领域技术人员可以对所公开的实施例做出各种改变而不脱离该说明书的精神或范围。

Claims (15)

1.电子设备处的用于将文本项输入至所述电子设备的数据输入***,包括:
存储单元,其保存文本项的嵌入的词汇表,其中每个嵌入是对文本项的数字编码,其指示用于在神经网络中对文本项的分析的权重;
处理器,其:
接收包括跟随有新的文本项的一个或多个上下文文本项的序列的用户输入,所述新的文本项是用户输入的词语并且初始未在所述神经网络的所述词汇表中;
基于所述用户输入的词语来确定是否执行在线训练;
当确定执行所述在线训练时,计算以下中的一项:
要被添加至所述词汇表的嵌入,或者
对已经在所述词汇表中的嵌入的更新;
实现所述神经网络,所述神经网络被训练以在已知所述上下文文本项和所述词汇表的情况下产生对所述序列中的接下来的文本项的预测;
实现在线训练以通过将所述新的文本项与所预测的接下来的文本项进行比较来改变所述词汇表;并且
将所述比较的结果传播至所述神经网络的最终层。
2.根据权利要求1所述的数据输入***,其中,所述在线训练被配置为通过以下操作中的任何一个或多个操作来确定所述用户输入中的文本项是否是新的文本项:检查所述文本项的嵌入是否在所述词汇表中可获得,检查所述文本项的嵌入是否是由组成字符模型生成的,检查所述词汇表中的所述文本项的嵌入的时长,或者检查所述词汇表中的所述文本项的嵌入已经被更新的次数。
3.根据权利要求1或权利要求2所述的数据输入***,其中,所述在线训练被配置为通过选择与所述新的文本项相关联的嵌入的多个可能的长度中的一个可能的长度来改变所述词汇表。
4.根据权利要求1或权利要求2所述的数据输入***,其中,所述在线训练被配置为通过以下操作使用与所预测的接下来的项相关联的方向来更新所述词汇表:将所述新的文本项的嵌入的方向与所预测的接下来的项的嵌入的方向相关地设置。
5.根据权利要求4所述的数据输入***,其中,所述处理器被配置为接收用户输入中的所述新的文本项的多个实例,以及计算多个相关联的所预测的嵌入,并且其中,所述在线训练被配置为使用对所预测的嵌入的方向的聚合来设置所述新的文本项的所述嵌入的所述方向。
6.根据权利要求4所述的数据输入***,其中,所述在线训练被配置为使用所述词汇表的一个或多个统计数据来设置所述新的文本项的所述嵌入的范数。
7.根据权利要求1所述的数据输入***,其中,所述在线训练被配置为将所述新的文本项与所预测的接下来的文本项进行比较,并且将所述比较的结果传播至所述神经网络的最终层。
8.根据权利要求1所述的数据输入***,其中,所述在线训练被配置为将所述新的文本项与所预测的接下来的文本项进行比较,并且将所述比较的结果传播至所述神经网络的最终层;所述处理器被配置为接收另外的用户输入,所述另外的用户输入包括所述新的文本项的正示例和所述新的文本项的负示例,并且其中,所述在线训练被配置为使用所述正示例和所述负示例两者来更新所述词汇表。
9.根据权利要求8所述的数据输入***,其中,所述在线训练被配置为使用所述正示例和所述负示例两者来更新所述嵌入和/或所述嵌入的偏置。
10.根据权利要求8所述的数据输入***,其中,所述在线训练被配置为对所述新的文本项的所述负示例进行采样和/或批处理。
11.根据权利要求1所述的数据输入***,其中,所述在线训练被配置为改变所述新的文本项的嵌入的多个元素。
12.根据权利要求1所述的数据输入***,其中,所述在线训练被配置为将所述新的文本项与所预测的接下来的文本项进行比较,并且将所述比较的结果传播至所述神经网络的最终层,并且其中,所述在线训练被配置为通过对在所述电子设备处的用户输入中观察到的所述新的文本项的出现和文本项的总数进行计数,来计算所述新的文本项的嵌入的偏置。
13.根据权利要求1所述的数据输入***,其中,所述在线训练被配置为通过对在所述电子设备处的用户输入中观察到的所述新的文本项的出现和文本项的总数进行计数,来计算所述新的文本项的嵌入的偏置。
14.根据权利要求1所述的数据输入***,其中,所述在线训练被配置为使用通过字符组成嵌入模型所计算的嵌入来将所述新的文本项的嵌入初始化。
15.一种电子设备处的计算机实现的方法,所述方法包括:
在存储器处存储文本项的嵌入的词汇表,其中每个嵌入是对文本项的数字编码,其指示用于在神经网络中对文本项的分析的权重;
接收包括跟随有新的文本项的一个或多个上下文文本项的序列的用户输入,所述新的文本项是用户输入的词语并且初始未在所述神经网络的所述词汇表中;
基于所述用户输入的词语来确定是否执行在线训练;
当确定执行所述在线训练时,计算以下中的一项:
要被添加至所述词汇表的嵌入,或者
对已经在所述词汇表中的嵌入的更新;
实现经训练的神经网络以在已知所述上下文文本项和所述词汇表的情况下产生对所述序列中的接下来的文本项的预测;
实现在线训练以通过将所述新的文本项与所预测的接下来的文本项进行比较来改变所述词汇表;并且
将所述比较的结果传播至所述神经网络的最终层。
CN201780073753.7A 2016-11-29 2017-11-22 利用神经网络和在线学习的语言数据预测 Active CN110023930B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
GBGB1620232.7A GB201620232D0 (en) 2016-11-29 2016-11-29 Data input system with online learning
GB1620232.7 2016-11-29
US15/475,038 2017-03-30
US15/475,038 US20180150143A1 (en) 2016-11-29 2017-03-30 Data input system with online learning
PCT/US2017/062914 WO2018102203A1 (en) 2016-11-29 2017-11-22 Language data prediction with neural networks and online learning

Publications (2)

Publication Number Publication Date
CN110023930A CN110023930A (zh) 2019-07-16
CN110023930B true CN110023930B (zh) 2023-06-23

Family

ID=58073260

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780073753.7A Active CN110023930B (zh) 2016-11-29 2017-11-22 利用神经网络和在线学习的语言数据预测

Country Status (5)

Country Link
US (1) US20180150143A1 (zh)
EP (1) EP3549031B1 (zh)
CN (1) CN110023930B (zh)
GB (1) GB201620232D0 (zh)
WO (1) WO2018102203A1 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10691886B2 (en) * 2017-03-09 2020-06-23 Samsung Electronics Co., Ltd. Electronic apparatus for compressing language model, electronic apparatus for providing recommendation word and operation methods thereof
US11003856B2 (en) * 2018-02-22 2021-05-11 Google Llc Processing text using neural networks
US11145313B2 (en) * 2018-07-06 2021-10-12 Michael Bond System and method for assisting communication through predictive speech
MA43451B2 (fr) * 2018-10-01 2021-08-31 Univ Int Rabat Procédé de prédiction des codes à barres non lus par intelligence artificielle
US20210383311A1 (en) * 2020-06-08 2021-12-09 Walmart Apollo, Llc Methods and apparatus for marketplace item updates
US11742901B2 (en) * 2020-07-27 2023-08-29 Electronics And Telecommunications Research Institute Deep learning based beamforming method and apparatus
US11245648B1 (en) * 2020-07-31 2022-02-08 International Business Machines Corporation Cognitive management of context switching for multiple-round dialogues

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004003721A2 (en) * 2002-07-01 2004-01-08 Sony Ericsson Mobile Communications Ab Entering text into an electronic communications device
CN105786782A (zh) * 2016-03-25 2016-07-20 北京搜狗科技发展有限公司 一种词向量的训练方法和装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1324314B1 (de) * 2001-12-12 2004-10-06 Siemens Aktiengesellschaft Spracherkennungssystem und Verfahren zum Betrieb eines solchen
US20120253792A1 (en) * 2011-03-30 2012-10-04 Nec Laboratories America, Inc. Sentiment Classification Based on Supervised Latent N-Gram Analysis
US9558743B2 (en) * 2013-03-15 2017-01-31 Google Inc. Integration of semantic context information
JP6588449B2 (ja) * 2014-01-31 2019-10-09 グーグル エルエルシー 文書のベクトル表現の生成
WO2016134183A1 (en) * 2015-02-19 2016-08-25 Digital Reasoning Systems, Inc. Systems and methods for neural language modeling
CN106776534B (zh) * 2016-11-11 2020-02-11 北京工商大学 词向量模型的增量式学习方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004003721A2 (en) * 2002-07-01 2004-01-08 Sony Ericsson Mobile Communications Ab Entering text into an electronic communications device
CN105786782A (zh) * 2016-03-25 2016-07-20 北京搜狗科技发展有限公司 一种词向量的训练方法和装置

Also Published As

Publication number Publication date
WO2018102203A1 (en) 2018-06-07
CN110023930A (zh) 2019-07-16
US20180150143A1 (en) 2018-05-31
GB201620232D0 (en) 2017-01-11
EP3549031A1 (en) 2019-10-09
EP3549031B1 (en) 2022-03-02

Similar Documents

Publication Publication Date Title
CN110036399B (zh) 神经网络数据录入***
EP3529711B1 (en) Device/server deployment of neural network data entry system
CN110023930B (zh) 利用神经网络和在线学习的语言数据预测
US11573698B2 (en) Neural network for keyboard input decoding
CN107836000B (zh) 用于语言建模和预测的改进的人工神经网络方法、电子设备
US10095684B2 (en) Trained data input system
US20230049258A1 (en) Inputting images to electronic devices
US20180005112A1 (en) Artificial neural network with side input for language modelling and prediction
US10318632B2 (en) Multi-lingual data input system
US20180314343A1 (en) Text input system using evidence from corrections
US10872203B2 (en) Data input system using trained keypress encoder
US20180300021A1 (en) Text input system with correction facility

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