CN110036399B - 神经网络数据录入系统 - Google Patents

神经网络数据录入系统 Download PDF

Info

Publication number
CN110036399B
CN110036399B CN201780074004.6A CN201780074004A CN110036399B CN 110036399 B CN110036399 B CN 110036399B CN 201780074004 A CN201780074004 A CN 201780074004A CN 110036399 B CN110036399 B CN 110036399B
Authority
CN
China
Prior art keywords
item
text
length
data entry
entry system
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
CN201780074004.6A
Other languages
English (en)
Other versions
CN110036399A (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 CN110036399A publication Critical patent/CN110036399A/zh
Application granted granted Critical
Publication of CN110036399B publication Critical patent/CN110036399B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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/30Semantic analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • 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/045Combinations of networks
    • 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
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • 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

Abstract

描述了一种数据录入系统,其具有接收由用户输入的一个或多个上下文文本项的序列的用户接口。数据录入系统具有被训练用以预测序列中的接下来的项的预测器。预测器包括多个经学习的文本项嵌入,每个文本项嵌入表示数值式形式的文本项,文本项嵌入具有多个不同的长度。投射组件获得上下文文本项的文本项嵌入并将这些文本项嵌入投射为具有相同的长度。预测器包括经训练的神经网络,其被馈送所投射的文本项嵌入并且其计算与经预测的接下来的项相关联的数值式输出。

Description

神经网络数据录入系统
背景技术
诸如将文本字符、表情符号和其它数据输入到具有小的尺寸的电子设备中的数据录入对于终端用户来说是耗时、麻烦且易于出错的。一种用于助于数据录入的方法是提供预测键盘,例如软键盘,其显示在电子设备的触摸屏上并由终端用户用于键入字符、表情符号、符号和其它数据。预测键盘通常呈现一个或多个预测的候选的词或短语作为供用户进行选择并从而键入电子设备的选项。
用于提供这种预测键盘的功能的技术在某些情况下包括神经网络技术。例如,在神经网络用于预测用户可能想要输入的候选的词的情况下。然而,神经网络占用了大量资源(例如存储器和处理资源),这使得难以在神经网络位于资源受限的设备(如智能电话、平板电脑、可穿戴计算机或其它资源受限的设备)的情况下实现良好的执行准确度。
下文描述的实施例不局限于用于解决使用神经网络技术的已知数据录入系统的任何或所有缺点的实现方案。
发明内容
下面给出了对本公开内容的简化的概括以便向读者提供基本理解。本发明内容并不旨在确定要求保护的发明主题的关键特征或重要特征,也不旨在用于限制要求保护的发明主题的范围。其唯一目的是用简化的形式呈现对在本文中公开的概念的选择,作为稍后给出的更详细说明的前序。
描述了一种数据录入系统,其具有接收由用户输入的一个或多个上下文文本项的序列的用户接口。所述数据录入系统具有被训练用以预测所述序列中的接下来的项的预测器。所述预测器包括多个经学习的文本项嵌入,每个文本项嵌入表示数值式形式的文本项,所述文本项嵌入具有多个不同的长度。投射组件获得所述上下文文本项的文本项嵌入并将这些所述上下文文本项的文本项投射为具有相同的长度。所述预测器包括:经训练的神经网络,其被馈送经投射的文本项嵌入并且计算与经预测的接下来的项相关联的数值式输出。
由于通过参找结合附图考虑的以下具体实施方式,许多附带特征变得更好理解,因此许多附带特征将更加容易领会。
附图说明
根据考虑到附图阅读的以下具体实施方式将更好地理解本说明书,在附图中:
图1是具有神经网络数据录入系统的各种电子设备的示意图;
图2是示出了用于数据录入的用户接口显示的智能电话的示意图;
图3是神经网络语言模型的示意图;
图4是神经网络数据录入系统处的过程的流程图;
图5是具有全长度嵌入的文本项嵌入表、具有可变长度嵌入的对应文本项嵌入表以及两个适配器矩阵的示意图;
图6是投射组件处的过程的示意图;
图7是评分组件处的过程的示意图;
图8A是另一个投射组件处的过程的示意图;
图8B是评分组件处的另一个过程的示意图;
图9示出了在其中实现神经网络数据录入系统的实施例的示例性基于计算的设备。
相同的附图标记用于表示附图中相同的部件。
具体实施方式
结合附图在下文中提供的具体实施方式旨在作为所给出示例的描述,而不是旨在用以表示构造或使用所给出的示例的唯一形式。该描述阐述了示例的功能和用于构造和操作示例的操作的序列。然而,相同的或等效的功能和序列可以由不同的示例来实现。
将诸如文本、图像或其它数据的数据输入到电子设备是困难的,尤其是在那些电子设备具有小的尺寸的情况下。神经网络技术可以用于预测数据的项的序列中的项并将这些项提供作为针对输入的候选,这减轻了终端用户的负担。然而,神经网络占用大量存储器和处理资源,这在涉及具有有限资源的电子设备时存在困难。在本文中描述的各种示例演示了如何减少由神经网络数据录入系统所使用的存储器,同时保持对神经网络预测技术的执行的质量。
图1是通过诸如互连网或任何其它通信网络的通信网络100与服务器108通信的多个电子设备102、104、106的示意图。电子设备102、104、106各自存储神经网络110,用于预测项的序列中的诸如词、短语、语素、字符或其它语言单元的项。在一些示例中,项可以是图像,诸如表情符号、表情符、贴纸或者用作文本的一部分的其它图像。例如,在制造阶段或离线阶段,神经网络110已被预先进行了训练。该训练在服务器108或任何其它实体处进行,并使用训练数据,如本文档后面更详细说明地。
神经网络110包括通过边互连的节点的层,并且具有与节点和/或边相关联的权重。神经网络110具有作为分开的块的在图1中所示的可变长度项嵌入存储118,以便协助理解本技术,尽管项嵌入可以被认为是神经网络110本身的一部分。
图1中的电子设备包括智能电话102、智能手表104和头戴式增强现实计算设备106,这些电子设备仅是示例,这是因为可以使用其它电子设备,例如桌面式计算机、平板计算机、笔记本计算机等。
在本文描述的示例中,神经网络110使用项嵌入。项嵌入是多个经学习的权重,其以可以由神经网络的单元处理的形式表示项的序列中的项。在某些情况下,项嵌入可以是实值向量。在一些示例中,项嵌入还包括标量偏差值,其被存储为实值向量的一部分或者其被分开地存储。项嵌入的经学习的权重是数值。项嵌入用于数据录入过程的至少两个不同的阶段,并且这些阶段可以被称为神经网络输入阶段和神经网络输出阶段。在神经网络输入阶段,在用户将诸如词、短语、语素、表情符号、字符或其它上下文项的项输入到电子设备中的情况下,设备处的神经网络副本被用于预测项的序列中的接下来的候选项。为了将项输入神经网络,项被映射到项嵌入,然后项嵌入被输入到神经网络。在用户输入诸如词“I”、“am”、“a”、“beautiful”的项的序列的情况下,此时这些各个词中的每个词被映射到对应的项嵌入并被输入到神经网络以便预测接下来的候选词,如“person”。
在神经网络输出阶段,神经网络的输出层产生数值,该数值是网络的输出层中的单元的激活水平。这些数值形成经预测的项嵌入。为了将经预测的项嵌入转换为针对各个候选的项(例如候选的词、短语、语素、表情符号或其它项)的评分,在经预测的项嵌入和在电子设备处可用的多个项嵌入中的各个项嵌入之间计算对相似性的度量。在一些示例中,点积被作为对相似性的度量来计算,但这不是必需的,因为可以使用对相似性的其它度量。相似性度量给出多个评分,针对每个项嵌入有一个评分,其当被归一化时表示关于序列中的接下来的项是与项嵌入对应的项中的每个项的可能性。在项嵌入具有相关联的偏差值的情况下,例如通过加法、乘法或其它形式的聚合方式,来将偏差值与评分进行聚合。以这种方式,评分以考虑偏差值的方式变得有所偏向。偏差值被手动配置,被设置为在一元(unigram)模型下的项的对数概率(其可以是根据项的训练集计算的),或者以与项嵌入类似的方式通过反向传播被学习到。
为了使电子设备102、104、106处的神经网络110能够进行操作以生成预测,其将项嵌入用于上述神经网络输入阶段和输出阶段。电子设备102具有至少一个经存储的项嵌入表118,以助于输入阶段和输出阶段。所经存储的项嵌入表118可以在神经网络输入阶段和输出阶段之间共享。然而,尽管有这种共享(这避免了需要具有一个以上的嵌入表(一个用于输入阶段而一个用于输出阶段)),但项嵌入占用电子设备处的存储器并且该存储器是有限的。由项嵌入(其通常存储在表中,表的每一行是一个项嵌入)使用的存储器是显著的,这是因为表中的行的数量可能是一万或更多,列数可能多达160或更多。
为了减少由项嵌入表使用的存储器的量,在本文中描述的各个示例使用不同长度的项嵌入。这给出了可变长度嵌入表118。在示例中,与在用户输入中以较高频率出现的项相比,对于在用户输入中以较低频率出现的项的项嵌入给予较短的项嵌入。这使得减少了嵌入表占用的存储器的量。例如,不是让嵌入表中的所有行都具有160列,而是这些行中的第一部分具有80列,第二部分具有40列,而其余行具有160列。然而,这仅是示例,并且嵌入表中的不同行长度的其它布置是可能的。
使用神经网络在电子设备处进行的预测的质量或准确度是另一个要考虑的因素。在嵌入的维度较低(嵌入表的行中的列较少)的情况下,嵌入的能够描述对应的文本项的能力降低。因此,通过改变项嵌入的长度,在由嵌入表占用的存储器的量与项嵌入的能够描述项的能力之间控制了折衷。
除了具有可变长度嵌入表118的神经网络110之外,电子设备(例如智能电话102)具有投射器112和评分组件120。在神经网络输入阶段的上下文中,投射器112用于将项嵌入向上投射到适合用于到神经网络的输入的指定长度。在神经网络输出阶段的上下文中,投射器112用于将由神经网络输出的经预测的嵌入向下投射到较短的指定长度,其适合用于计算表中的具有较短的指定长度的项嵌入的评分。如下文更详细描述地,在神经网络110的输出阶段使用评分组件120来计算评分。
图1示出了连接到通信网络100的服务器108,其用于提供神经网络110、可变长度嵌入表118和投射器112的全部或部分功能。电子设备能够与服务器108通信以执行神经网络110、可变长度嵌入表118和投射器112的全部或部分功能。
替换地或此外,在本文中描述的服务器和/或电子设备的功能至少部分地由一个或多个硬件或逻辑组件来执行。举例而非限制性地,可选使用的硬件逻辑组件的示例性类型包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、系统芯片系统(SOC)、复杂可编程逻辑器件(CPLD)、图形处理单元(GPU)。
图2是电子设备102的示意图,该设备是具有使用神经网络技术的预测键盘的智能电话。智能电话具有显示屏202(例如触摸屏),其显示用于向电子设备102输入文本的键盘200。键盘200包括三个候选预测区域204、206、208,其显示通过神经网络技术计算的候选的预测。在该示例中,用户已收到来自Robyn的短消息服务(SMS)消息,其显示“Just curious,what is your ETA?”。用户正在录入字段210中输入回复SMS消息,并且到目前为止已输入了词“Running late,be”,并且预测键盘已计算了接下来的三个候选的经预测的词,即“home”,“back”和“there”,并且这些词显示在了键盘200上。用户能够选择接下来的候选的经预测的词中的一个词,而不是输入分开的字符来形成该词。这为终端用户减少了数据输入的负担。然而,预测的质量很重要,这是因为如果候选的词不是用户想要输入的实际的词,则用户必须输入预计的词的各个字符。预测的质量取决于各种因素,例如在训练期间使用的训练数据的量和种类、所使用的训练否认类型、神经网络的架构、神经网络泛化到其在训练期间未见过的示例的能力、以及诸如可用的项嵌入之类的其它因素(在如下文参照图3所描述地使用项嵌入的情况下)。在一些示例中,当用户输入预计的词的各个字符时,候选否认预测被更新。
图3是例如图1的神经网络110的神经网络300的示意图。
神经网络是通过边互连的节点(也被称为单元)的集合,其中存在与节点和/或边相关联的权重。在每个节点中通常应用非线性函数以产生其激活,并且可以使用的非线性函数的非穷举列表为:sigmoid、tanh、rectifier。在训练阶段期间,按照训练示例,根据更新规则来更新权重。这些单元包括输入单元、隐藏单元和输出单元。输入单元是在其上向神经网络进行输入的单元,隐藏单元是连接在输入单元和输出单元(或在深网络情况下的其它隐藏单元)之间,输出单元是在其上观测到来自神经网络的输出的单元。神经网络可以具有分层构造,其具有输入节点的一个层、隐藏单元的一个或多个层和至少一个输出层。在测试时(即训练后)使用神经网络期间,当信号通过一个层时,其经由激活产生输出,该输出成为对神经网络的接下来的层的输入,依此类推,直到信号到达输出层并且输出单元被激活为止。输出层处的激活的模式给出了神经网络的预测。激活的模式已受到在训练阶段期间经学习的权重的影响。
使用反向传播或任何其它神经网络训练算法来训练神经网络300。反向传播算法包括:将经标记的训练数据实例输入到神经网络,通过神经网络来传播训练实例(被称为前向传播)以及观测输出。训练数据实例被标记,并因此神经网络的地面真值输出是已知的,以及观测到的输出和地面真值输出之间的差异或误差被找到并提供关于损失函数的信息。进行搜索以尝试找到损失函数的最小值,其中,损失函数是神经网络的权重的集合,其使得神经网络的输出能够匹配地面真值数据。使用梯度下降或随机梯度下降或者以其它方式来搜索损失函数。
在图3的示例中,神经网络300包括输入层322、单个隐藏层312以及单个输出层316。然而,这仅是一个示例,并且许多其它类型的架构可以与例如更多隐藏层一起使用,并且具有其中单元之间的连接形成有向环的循环结构。
在图3的示例中,用户输入了词“I”、“am”、“a”以及“beautiful”,并且每个词由向量中的1的位置表示,其它位置用零填充。这些向量在图3中的304处示出。通过使用映射308将各个词指示符向量304映射到项嵌入向量306。从预先计算的项嵌入的表118中查找项嵌入,其中如上所述,存在不同长度的项嵌入以便节省存储器。项嵌入306被输入到输入层322的输入单元,并且创建激活,其如线310所示通过输入层向前传播以到达隐藏层312。隐藏层接收输入层的输出作为其输入。隐藏层根据如在图3中表示为314的激活函数来对信号进行处理,并且在隐藏层单元处进行加权。隐藏层312的输出到达输出层316,输出层316还根据如在图3中表示为318的激活函数来对信号进行处理,并在输出单元处产生在线320上表示为小圈的激活。输出单元的激活被转换为可用的项嵌入的集合中的项的评分。这是通过如下来完成的:在由输出单元的激活给出的经预测的项嵌入与可用的项嵌入中的每个项嵌入之间进行点积(或对相似性的其它度量),以及然后在标量偏差值可用的情况下,添加已针对该项存储的标量偏差值。可以例如通过应用softmax函数或以其它方式,对评分进行归一化,使得它们的和为1。如果可用的项嵌入是针对词“person”、“being”、“child”、“house”、“day”,那么结果是“person”、“being”“child”“house”和“day”中的每个词的评分,其表示该词成为由用户预计的接下来的词的可能性。
图4是在诸如图1的电子设备102、104、106的电子设备处的操作方法的流程图。
电子设备在输入接口处接收400由用户输入的作为项的序列的一部分的项。例如,输入接口包括电子设备处的触摸屏和图形用户接口。电子设备接收在电子设备处键入预测键盘的词,或者在电子设备处键入预测键盘的短语、表情符号、字符或其它项。在另一个示例中,输入接口包括麦克风、模数信号转换器和语音识别组件,由此用户能够说出要输入到电子设备的词或短语。输入接口是使用户能够将数据输入到电子设备的任何机制。
如上所述,电子设备具有被存储的可变长度嵌入表420。针对用户输入项中的每个用户输入项,其在表420中查找402项嵌入。例如,假设用户已输入了“Bloomsbury”、“is”、“the”。假设“Bloomsbury”一词具有拥有在嵌入表420的行中的40列数据的短项嵌入,因为“Bloomsbury”是英语中具有相对较低频率的名称。相反,假设词“is”和“the”具有拥有每行160列数据的项嵌入。
在步骤404处,电子设备决定是否投射检索到的项嵌入。例如,任何长度小于160(或另一个最大指定长度)的项嵌入都被向上投射到具有160的长度(或其它指定长度)。这通过计算投射406来完成。稍后描述计算投射的不同可能方式。
在用户输入“Bloomsbury”、“is”、“a”的示例中,针对“Bloomsbury”检索的项嵌入被投射到具有160的长度,而针对“is”和“a”的项嵌入则不需要进行投射,这是因为这些项嵌入已具有160的长度。
电子设备将针对“Bloomsbury”的所投射的项嵌入以及针对“is”和“a”的所检索到的项嵌入馈送408到神经网络语言模型,例如上文参照图3所描述的模型。神经网络语言模型计算经预测的项嵌入410,其用于计算412具有嵌入表420中的嵌入的多个文本项的评分。选择评分最高的文本项作为序列中的接下来的候选的项414。例如,通过在虚拟键盘上显示,这些候选中的一个或多个候选被提供416给用户,并且当被用户选择时被输入418到电子设备。
图5是V行的嵌入表500的示意图,每行具有长度E。在这种情况下,每个项嵌入具有相同的长度。图5示出了如何通过使用可变长度嵌入表512来节省存储器。在表512的情况下,存在具有全长度项嵌入的第一多个项嵌入502,具有半长度项嵌入的第二多个项嵌入504以及具有四分之一长度项嵌入的第三多个项嵌入506。在该示例中,具有相同长度的项嵌入在表中被分组在一起,使得全长度项嵌入在已知的行范围内,半长度项嵌入在已知的行范围内,并且四分之一长度项嵌入在已知的行范围内。在表中按长度对项嵌入进行分组有助于检索指定长度的项嵌入,但不是必需的。当项嵌入在表中按长度被分组时,该表可以被存储为锯齿状阵列,这有利于在神经网络的输出阶段进行评分期间的矩阵操作。锯齿状阵列是各阵列的阵列,其中各阵列具有不同的大小。该表也可以被存储在多个分开的阵列中,针对每个不同的嵌入大小具有一个阵列;这在本文档中被称为多多维阵列方法(multiple multidimensional array approach)。或者,该表可以被存储在单个连续阵列中,每个嵌入大小的长度和词数量也被存储,以便高效地为各个嵌入建立索引;这在本文档中被称为单阵列方法。
在锯齿状阵列方法中,整个表被存储为指针的阵列(指针是存储器地址)。每个指针标识针对各个项嵌入的阵列,其存储嵌入的长度以及数值式嵌入元素。此存储方案是灵活的。
在多多维阵列方法中,嵌入是按长度被分组的。通过分配大小等于嵌入的数量与嵌入长度的乘积的阵列,为每个嵌入长度存储分开的嵌入阵列。跨步式索引(stridedindex)的索引方案被用于对来自多个多维阵列的嵌入进行定位。这在使用适配器矩阵的情况下尤其高效,但在仅使用一个或两个可能的嵌入长度的情况下效率较低。
在单阵列方法中,将可变大小的嵌入向量连接成一个长阵列。为了高效地计算阵列中每个项的相似性度量并为了查找嵌入,存储了另一个阵列,该另一个阵列包含在此索引之前的嵌入的累积长度。使用此方案,对于通过使用两个连续的累积长度之间的差异来指定嵌入的长度,来扫描每个嵌入是高效的(这对于计算输出上的相似性度量是有用的)。对于在给定索引的情况下,通过使用该索引处的累积长度作为到阵列的偏移,并再次使用该累积长度与接下来的累积长度之间的差异来指定嵌入的长度,来查找嵌入也是高效的。
图5还示出了两个适配器矩阵508、510,其是被学习的并且是在如参照图6更详细描述的项嵌入的一些投射方法中使用的。在图5的示例中,存在针对半长度项嵌入504的一个适配器矩阵508、以及针对四分之一长度项嵌入的一个适配器矩阵506。如果存在更多可能的项嵌入长度,则使用更多的适配器矩阵,除了最大项嵌入之外,针对项嵌入的每个可能长度使用一个适配器矩阵。在使用适配器矩阵的情况下,可变长度嵌入表具有大约十个或更少的可能的项嵌入长度。这使得能够针对许多实际应用节省存储器,这是因为适配器矩阵占用的存储器小于通过在针对低频率项的表中使用短项嵌入所节省的存储器。但是,也可能具有可变长度嵌入表,其中可能的项嵌入长度的数量大于10并且最多为表的最大列数。如下文更详细描述地,这是通过使用零填充而不是适配器矩阵来实现的。
每个适配器矩阵508、510包括已经学习的数值的阵列。项嵌入和对应的适配器矩阵的相乘给出了指定长度的经投射的项嵌入。经投射的项嵌入是对原始项嵌入的线性变换的结果。作为神经网络110的整个学习过程的一部分,来学习适配器矩阵的数值。如上文参照图3所解释地,使用反向传播或任何其它神经网络训练算法来训练神经网络300。反向传播算法包括:将经标记的训练数据实例输入到神经网络,通过神经网络来传播训练实例(被称为前向传播)以及观测输出。在要训练一个或多个适配器矩阵的情况下,前向传播包括通过适配器矩阵来传播训练实例。训练数据实例被标记,并因此神经网络的地面真值输出是已知的,以及观测到的输出和地面真值输出之间的差异或误差被找到并提供了关于损失函数的信息。进行搜索以尝试找到损失函数的最小值,其中,损失函数是神经网络的权重以及适配器矩阵中的条目的值的集合,其使得神经网络的输出能够匹配地面真值数据。使用梯度下降或随机梯度下降或者以其它方式来搜索损失函数。
全长度项嵌入是长度为项嵌入表的最大列数的项嵌入。短项嵌入是长度小于项嵌入表的最大列数的项嵌入。
图6是使用适配器矩阵将短项嵌入投射到全长度项嵌入的方法。该方法由投射器(诸如图1的投射器112或图9的投射器926)执行。投射器接收600项嵌入,该项嵌入是短项嵌入。投射器诸如通过检查项嵌入中的元素的数量来找到602项嵌入的长度。投射器访问604经学习的适配器矩阵以获得项嵌入的长度。例如,电子设备具有存储,其具有与不同的长度相关联的多个适配器矩阵,并且投射器针对所关注的特定长度选择适配器矩阵。短项嵌入与所选择的适配器矩阵相乘608,并且结果是全长度的经投射的项嵌入,其被输出610。
图7是评分组件(诸如图1的评分组件120或图9的评分组件928)处的示例方法。评分组件从神经网络110接收700经预测的嵌入。其针对给定的嵌入长度访问710适配器矩阵A。例如,假设其针对图5的半长度项嵌入访问适配器矩阵508。结合投射器112、926,评分组件通过将适配器矩阵的转置与经预测的嵌入进行相乘来向下投射712经预测的嵌入。这给出了经预测的嵌入的缩短版本,在这种情况下,是原始的经预测的嵌入的长度的一半。
评分组件计算714在经向下投射的经预测的嵌入与可变长度嵌入表420中的每个半长度嵌入之间的相似性度量。例如,相似性度量是点积。这给出了评分,针对表420中的每个半长度项嵌入有一个评分。评分组件检查716是否结束评分过程。如果已考虑了表420中的所有短嵌入,则结束该过程。如果没有,则移动到接下来的嵌入长度720(例如四分之一长度嵌入506),并重复操作710、712、714和716。当过程结束时,其输出718计算出的评分,在某些情况下使用softmax或其它归一化过程对该计算出的评分进行归一化。以这种方式,获得了针对表420中的项嵌入的评分,尽管这些项嵌入具有不同的长度。
通过在操作712对经预测的嵌入进行向下投射,实现了效率,这是因为针对每个适配器矩阵仅执行此操作一次,并且不必对嵌入表420的每一行执行此操作。此外,与对表420中的项嵌入进行向上投射然后计算相似性度量的替代方案相比,点积(或其它相似性度量)是在较小的子空间中计算的。
在参照图8A讨论的另一个示例中,投射器112、926用零来填充短项嵌入以使其达到全长度。在这种情况下,投射器接收800短项嵌入,检查其长度,并用零对短项嵌入进行右填充804以使长度达到指定长度(例如可变长度嵌入表420的最大列数)。
如图8B中所述,评分组件接收806经预测的嵌入p,访问808可变长度嵌入表420,并计算810相似性度量(例如经预测的嵌入与表的每行之间的点积)。任何短嵌入都计算与经预测的嵌入的左前缀的经截短的点积,直到项嵌入长度。这在数学上等同于在用零进行右填充之后的完全点积,并且在计算上更高效。得到的评分被输出812(在某些情况下在使用softtmax或类似的归一化处理被归一化之后)并且以与参照图4描述的评分相同的方式被使用。
在另一个示例中,针对每个嵌入长度,投射器可以根据两个分开的通用神经网络来构造。使用反向传播来训练第一个通用神经网络,以便将较小的项嵌入转换为完全的嵌入大小,以输入到神经网络语言模型110。使用反向传播来训练第二个通用神经网络,以便将从神经网络语言模型110输出的经预测的嵌入转换供评分组件120使用的较小的项嵌入。
图9示出了示例性基于计算的设备900的各种组件,其被实现为任何形式的电子设备,其中在一些示例中实现了图4和图6至图8的方法的实施例。
基于计算的设备900包括一个或多个处理器902,处理器902是微处理器、控制器或用于处理用以如下操作的计算机可执行指令的任何其它合适类型的处理器:控制设备的操作,以便预测项的序列中的候选的项,以将项录入到电子设备900中。在一些示例中,例如,在使用片上系统架构的情况下,处理器902包括在硬件(而不是软件或固件)中实现图4以及图6至图8的方法的一部分的一个或多个固定功能块(也被称为加速器)。在基于计算的设备900处提供包括操作系统904的平台软件或任何其它合适的平台软件,以便能够在设备上执行应用软件906。神经网络语言模型920存储在电子设备处。输入接口722接收项的序列中的项以使用户能够将项输入到电子设备900。可变长度嵌入表924包括神经网络的多个项嵌入,其中存在多个不同长度的项嵌入。完成/校正预测器918使用来自神经网络920的输出来完成词、短语、表情符号或其它项。例如,完成/校正预测器918是预测键盘或预测语音识别系统。投射器926计算对项嵌入的向上或向下投射,即,由神经网络920预测的那些或者存储在可变长度嵌入表924中的那些。评分组件926计算关于来自可变长度嵌入表924的项嵌入的来自神经网络920的被预测的项嵌入的评分。
通过使用由基于计算的设备900可访问的任何计算机可读介质,提供了计算机可执行指令。计算机可读介质包括:例如,计算机存储介质(如存储器908)和通信介质。计算机存储介质(如存储器908)包括用于存储诸如计算机可读指令、数据结构、程序模块等的、以任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括但不限于:随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM)、电子可擦除可编程只读存储器(EEPROM)、闪存或其它存储器技术、压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)或其它光学存储、磁带盒、磁带、磁盘存储或其它磁存储设备、或者用于存储用于由计算设备访问的信息的任何其它非传输介质。与此相反,通信介质以调制数据信号(如载波波形)或其它传输机制实施了计算机可读指令、数据结构、程序模块等。如在本文中定义地,计算机存储介质不包括通信介质。因此,本质上,计算机存储介质不应被解释为传播信号。虽然计算机存储介质(存储器908)示为在基于计算的设备900之内,但将理解的是:在一些示例中,存储可以是分布式的或位于远处的并经由网络或其它通信链路(例如,使用通信接口910)来访问的。
基于计算的设备900还包括输入/输出控制器912,其被配置为:向可以与基于计算的设备900分开或集成的显示设备914输出显示信息。显示信息可以提供图形用户接口。输入/输出控制器912还被配置为:接收和处理来自一个或多个设备(如用户输入设备916(例如,鼠标、键盘、摄像头、麦克风或其它传感器))的输入。在一些示例中,用户输入设备916检测语音输入、用户手势或其它用户动作,并且提供自然用户接口(NUI)。用户输入可以用于向电子设备输入数据。在实施例中,如果显示设备914是触摸敏感式显示设备,则该显示设备还可以用作用户输入设备916。在一些示例中,输入/输出控制器912将数据输出到除显示设备之外的设备,例如,本地连接的打印设备。
输入/输出控制器912、显示设备914以及用户输入设备916中的任意一项可以包括NUI技术,其使得用户能够以自然的方式与基于计算的设备进行交互,不受由诸如鼠标、键盘、遥控器等的输入设备施加的人为约束。在一些示例中提供的NUI技术的示例包括但不限于依赖于下列各项的那些技术:语音和/或语言识别、触摸和/或手写笔识别(触摸敏感式显示器)、屏幕上和邻近屏幕的姿势识别、空中姿势、头眼跟踪、语音和语言、视觉、触觉、姿势和机器智能。在一些示例中使用的NUI技术的其它示例包括:意图和目标理解系统、使用深度摄像头(诸如立体摄像头系统、红外摄像头系统、红绿蓝(rgb)摄像头系统和这些的组合)的运动姿势检测系统、使用加速计/回转仪的运动姿势检测、面部识别、三维(3D)显示、头、眼和注视跟踪、融入式增强现实和虚拟现实系统、以及用于使用电场传感电极(脑电图(EEG)和相关方法)来感测大脑活动的技术。
作为本文所述的其它示例的替代或补充,示例包括下列各项的任何组合:
一种数据录入系统,其包括:
用户接口,其接收由用户输入的一个或多个上下文文本项的序列;
预测器,其被训练用以预测所述序列中的接下来的项;
所述预测器包括多个经学习的文本项嵌入,每个文本项嵌入表示数值式形式的文本项,所述文本项嵌入具有多个不同的长度;
投射组件,其获得所述上下文文本项的文本项嵌入并将这些文本项嵌入投射为具有相同的长度;
所述预测器包括:经训练的神经网络,其被馈送所投射的文本项嵌入并且其计算与所预测的接下来的项相关联的数值式输出。
上述数据录入系统还包括评分组件,其接收所述预测器的所述数值式输出,并参照不同的长度的多个项嵌入中的每个项嵌入来计算所述数值式输出的多个评分,所述项嵌入是来自词汇表的文本项。
上述数据录入系统,其中,所述评分组件被配置为:计算所述预测器的所述数值式输出的前缀与具有与所述前缀相同的长度的项嵌入的点积。
上述数据录入系统包括项嵌入的至少一个表,包括由所述评分组件使用的所述词汇表中的文本项的所述项嵌入、以及所述上下文项的所述文本项嵌入。
上述数据录入系统,其中,项嵌入的所述至少一个表被存储在多个分开的阵列中,针对每个项嵌入长度有一个阵列。
上述数据录入系统,其中,具有相同的长度的项嵌入被存储为项嵌入的所述表中的相邻行。
上述数据录入系统,其中,项嵌入的所述至少一个表被存储为单个阵列,其中,具有相同的长度的项嵌入被存储为所述阵列中的相邻行,并且其中,关于哪些范围的行存储了哪些长度的项嵌入的信息也被存储。
上述数据录入系统,其中,所述投射组件包括至少两个神经网络,一个神经网络被训练用以将项嵌入向上投射到最大长度,一个神经网络被训练用以将项嵌入从所述最大长度投射到较短的长度。
上述数据录入系统,其中,所述投射组件包括针对项嵌入的每个长度的两个神经网络,针对项嵌入的每个长度比项嵌入的最大长度短。
上述数据录入系统,其中,所述投射组件通过添加零以增加所述上下文项的所述项嵌入中的一些项嵌入的长度来将所述上下文项的所述项嵌入投射为相同的长度。
上述数据录入系统,其中,所述投射组件通过乘以经学习的适配器矩阵来投射所述上下文项的所述项嵌入。
上述数据录入系统,其中,所述投射组件包括多个经学习的适配器矩阵,针对每个小于指定最大值的可能的项嵌入长度有一个经学习的适配器矩阵。
上述数据录入系统,其中,所述投射组件被配置为:作为所述神经网络的训练的一部分,学习所述适配器矩阵。
上述数据录入系统,其中,所述投射组件被配置为:通过使用所述经学习的适配器矩阵减小所述预测器的所述数值式输出的长度,来对所述预测器的所述数值式输出进行向下投射。
上述数据录入系统,其中,所述投射组件被配置为:通过减小所述预测器的所述数值式输出的长度以匹配由评分组件用以计算所述数值式输出的评分的词汇表中的一个或多个文本项嵌入的长度,来对所述预测器的所述数值式输出进行向下投射。
上述数据录入系统,其中,所述向下投射包括:计算所述预测器的所述数值式输出与所述适配器矩阵的乘积,然后计算所述乘积的结果与具有与所述适配器矩阵相关联的长度的项嵌入的点积。
一种计算机实现的方法,其包括:
接收由用户输入的一个或多个上下文文本项的序列;
在存储器处存储多个经学习的文本项嵌入,每个文本项嵌入表示数值式形式的文本项,所述文本项嵌入具有多个不同的长度;
从所述存储器中检索所述上下文文本项的文本项嵌入,并将所检索的文本项嵌入投射为具有相同的长度;以及
将所投射的文本项嵌入输入到经训练的神经网络语言模型,并且计算与所述序列中的经预测的接下来的项相关联的数值式输出。
上述方法包括:参照不同的长度的多个项嵌入中的每个项嵌入来计算所述数值式输出的多个评分,所述项嵌入是来自词汇表的文本项。
上述方法包括:使用存储器处的单个表来存储由所述评分组件使用的所述词汇表中的文本项的所述项嵌入以及所述上下文项的所述文本项嵌入两者。
具有设备可执行指令的一个或多个设备可读介质,所述设备可执行指令当由计算系统执行时指导所述计算系统执行以执行包括下列各项的操作:
接收由用户输入的一个或多个上下文文本项的序列;
在存储器处存储多个经学习的文本项嵌入,每个文本项嵌入表示数值式形式的文本项,所述文本项嵌入具有多个不同的长度;
从所述存储器中检索所述上下文文本项的文本项嵌入,并将所检索的文本项嵌入投射为具有相同的长度;以及
将所投射的文本项嵌入输入到经训练的神经网络语言模型,并且计算与所述序列中的经预测的接下来的项相关联的数值式输出。
术语‘计算机’或基于计算的设备在本文中用于指代具有处理能力以便执行指令的任何设备。本领域技术人员将认识到,这样的处理能力被并入许多不同的设备,因此,术语‘计算机’和‘基于计算的设备’分别包括个人计算机(PC)、服务器、移动电话(包括智能电话)、平板计算机、机顶盒、媒体播放器、游戏控制台、个人数字助理、可穿戴计算机以及大量其它设备。
在一些示例中,本文中描述的方法通过具有实体存储介质上的机器可读形式的软件来执行,例如,具有包括当计算机程序在计算机上运行并且在计算机程序可以在计算机可读介质上实施的情况下,适用于执行本文中描述的方法中的一种或多种方法的所有操作的计算机程序代码单元的计算机程序的形式。软件适用于在串行处理器或并行处理器上执行,以便方法操作可以任何合适的顺序或同时被执行。
这确认了软件是有价值的、可单独交易的商品。意在包括在“哑的”硬件或标准硬件上运行的或对“哑的”硬件或标准硬件进行控制的软件,以执行所期望的功能。还意在包括用于“描述”或定义硬件的配置的软件(诸如HDL(硬件描述语言)软件),如被用于设计硅芯片或用于配置通用可编程芯片以执行所期望的功能。
本领域技术人员将认识到:用于存储程序指令的存储设备可选地分布在整个网络中。例如,远程计算机能够存储被描述为软件的过程的示例。本地或终端计算机能够访问远程计算机,并下载软件的部分或全部来运行程序。或者,本地计算机可以根据需要来下载软件,或者执行本地终端处的一些软件指令以及远程计算机(或计算机网络)处的一些软件。本领域技术人员还将认识到:通过使用本领域技术人员已知的传统技术,软件指令的所有或部分可以由诸如数字信号处理器(DSP)、可编程逻辑阵列等的专用电路来执行。
如本领域技术人员将理解的,可以在不失去所寻求的效果的前提下,扩展或改变本文中给出的任何范围或设备的值。
虽然以特定于结构特征和/或方法动作的语言对发明主题进行了描述,但应理解的是,所附权利要求书中定义的发明主题并不一定受限于上述具体的特征或动作。而是上述具体的特征或动作作为实现权利要求书的示例形式而公开的。
将理解的是,上述益处和优点可以涉及一个实施例或者可以涉及若干实施例。实施例不局限于解决所述问题中的任何或所有问题的那些实施例或者具有所述益处和优点中的任何或所有益处和优点的那些实施例。还将理解的是:对“一”项的引用是指那些项中的一个或多个项。
在本文中描述的方法的操作可以用任何合适的次序来执行,或者在适当的情况下同时执行。另外,在不脱离本文中描述的发明主题的范围的前提下,可以从这些方法中的任何方法中删除各个块。上述示例中的任何示例的各个方面可以与所描述的其它示例中的任何示例的方面组合,以便在不失去所寻求的效果的前提下形成其它示例。
虽然术语‘包括’在本文中用于意指包括所识别的方法块或元素,但这些块或元素不包括排他性列表以及方法或装置可以包含额外的块或元素。
将理解的是,上述描述是仅通过示例的方式给出的,并且本领域技术人员可以做出各种修改。上述说明、示例和数据提供了对结构和示例性实施例的使用的完整描述。虽然已在上文中以某种具体程度或参照一个或多个个体实施例对各个实施例进行了描述,但本领域技术人员可以在不脱离本说明书的范围的前提下对所公开的实施例做出许多改变。

Claims (15)

1.一种数据录入系统,其包括:
用户接口,其接收由用户输入的一个或多个上下文文本项的序列;
预测器,其被训练用以预测所述序列中的接下来的项;
所述预测器包括多个经学习的文本项嵌入,每个文本项嵌入表示数值式形式的文本项,所述文本项嵌入具有多个不同的长度;
投射组件,其获得所述上下文文本项的文本项嵌入并将这些文本项嵌入投射为具有相同的长度;
所述预测器包括经训练的神经网络,其被馈送所投射的文本项嵌入并且其计算与所预测的接下来的项相关联的数值式输出。
2.根据权利要求1所述的数据录入系统,还包括:评分组件,其接收所述预测器的所述数值式输出,并参照不同的长度的多个项嵌入中的每个项嵌入来计算所述数值式输出的多个评分,所述项嵌入是来自词汇表的文本项。
3.根据权利要求2所述的数据录入系统,其中,所述评分组件被配置为:计算所述预测器的所述数值式输出的前缀与具有与所述前缀相同的长度的项嵌入的点积。
4.根据权利要求2所述的数据录入系统,包括项嵌入的至少一个表,包括由所述评分组件使用的所述词汇表中的文本项的所述项嵌入、以及所述上下文文本项的所述文本项嵌入。
5.根据权利要求4所述的数据录入系统,其中,项嵌入的所述至少一个表被存储在多个分开的阵列中,针对每个项嵌入长度有一个阵列。
6.根据权利要求4所述的数据录入系统,其中,具有相同的长度的项嵌入被存储为项嵌入的所述表中的相邻行。
7.根据权利要求4所述的数据录入系统,其中,项嵌入的所述至少一个表被存储为单个阵列,其中,具有相同的长度的项嵌入被存储为所述阵列的相邻行,并且其中,关于哪些范围的行存储了哪些长度的项嵌入的信息也被存储。
8.根据权利要求1或2中的任一项所述的数据录入系统,其中,所述投射组件包括至少两个神经网络,一个神经网络被训练用以将项嵌入向上投射到预先确定的长度,一个神经网络被训练用以将项嵌入从所述预先确定的长度向下投射到比所述预先确定的长度短的长度。
9.根据权利要求8所述的数据录入系统,其中,所述投射组件包括针对项嵌入的每个长度的两个神经网络,所述针对项嵌入的每个长度比项嵌入的所述预先确定的长度短。
10.根据权利要求1或2中的任一项所述的数据录入系统,其中,所述投射组件通过添加零以增加所述上下文文本项的所述项嵌入中的一些项嵌入的长度来将所述上下文文本项的所述项嵌入投射为相同的长度。
11.根据权利要求1或2中的任一项所述的数据录入系统,其中,所述投射组件通过乘以经学习的适配器矩阵来投射所述上下文文本项的所述项嵌入。
12.根据权利要求11所述的数据录入系统,其中,所述投射组件包括多个经学习的适配器矩阵,针对每个小于指定最大值的可能的项嵌入长度有一个经学习的适配器矩阵;并且其中,所述投射组件被配置为:作为所述神经网络的训练的一部分,学习所述适配器矩阵,并且其中,所述投射组件被配置为:通过使用所述经学习的适配器矩阵减小所述预测器的所述数值式输出的长度,来对所述预测器的所述数值式输出进行向下投射。
13.根据权利要求1或2中的任一项所述的数据录入系统,其中,所述投射组件被配置为:通过减小所述预测器的所述数值式输出的长度以匹配由评分组件用以计算所述数值式输出的评分的词汇表中的一个或多个文本项嵌入的长度,来对所述预测器的所述数值式输出进行向下投射。
14.根据权利要求13所述的数据录入系统,其中,所述向下投射包括:计算所述预测器的所述数值式输出与适配器矩阵的乘积,然后计算所述乘积的结果与具有与所述适配器矩阵相关联的长度的项嵌入的点积。
15.一种计算机实现的方法,其包括:
接收由用户输入的一个或多个上下文文本项的序列;
在存储器处存储多个经学习的文本项嵌入,每个文本项嵌入表示数值式形式的文本项,所述文本项嵌入具有多个不同的长度;
从所述存储器中检索所述上下文文本项的文本项嵌入,并将所检索的文本项嵌入投射为具有相同的长度;以及
将所投射的文本项嵌入输入到经训练的神经网络语言模型,并且计算与所述序列中的经预测的接下来的项相关联的数值式输出。
CN201780074004.6A 2016-11-29 2017-11-22 神经网络数据录入系统 Active CN110036399B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
GBGB1620235.0A GB201620235D0 (en) 2016-11-29 2016-11-29 Neural network data entry system
GB1620235.0 2016-11-29
US15/474,976 US10789529B2 (en) 2016-11-29 2017-03-30 Neural network data entry system
US15/474,976 2017-03-30
PCT/US2017/062915 WO2018102204A1 (en) 2016-11-29 2017-11-22 Neural network data entry system

Publications (2)

Publication Number Publication Date
CN110036399A CN110036399A (zh) 2019-07-19
CN110036399B true CN110036399B (zh) 2023-06-27

Family

ID=58073265

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780074004.6A Active CN110036399B (zh) 2016-11-29 2017-11-22 神经网络数据录入系统

Country Status (5)

Country Link
US (1) US10789529B2 (zh)
EP (1) EP3549069B1 (zh)
CN (1) CN110036399B (zh)
GB (1) GB201620235D0 (zh)
WO (1) WO2018102204A1 (zh)

Families Citing this family (74)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9318108B2 (en) 2010-01-18 2016-04-19 Apple Inc. Intelligent automated assistant
US8977255B2 (en) 2007-04-03 2015-03-10 Apple Inc. Method and system for operating a multi-function portable electronic device using voice-activation
US8676904B2 (en) 2008-10-02 2014-03-18 Apple Inc. Electronic devices with voice command and contextual data processing capabilities
US10706373B2 (en) 2011-06-03 2020-07-07 Apple Inc. Performing actions associated with task items that represent tasks to perform
US10417037B2 (en) 2012-05-15 2019-09-17 Apple Inc. Systems and methods for integrating third party services with a digital assistant
CN104969289B (zh) 2013-02-07 2021-05-28 苹果公司 数字助理的语音触发器
US10652394B2 (en) 2013-03-14 2020-05-12 Apple Inc. System and method for processing voicemail
US10748529B1 (en) 2013-03-15 2020-08-18 Apple Inc. Voice activated device for use with a voice-based digital assistant
US10176167B2 (en) 2013-06-09 2019-01-08 Apple Inc. System and method for inferring user intent from speech inputs
US9966065B2 (en) 2014-05-30 2018-05-08 Apple Inc. Multi-command single utterance input method
US10170123B2 (en) 2014-05-30 2019-01-01 Apple Inc. Intelligent assistant for home automation
US9715875B2 (en) 2014-05-30 2017-07-25 Apple Inc. Reducing the need for manual start/end-pointing and trigger phrases
US9338493B2 (en) 2014-06-30 2016-05-10 Apple Inc. Intelligent automated assistant for TV user interactions
US9721566B2 (en) 2015-03-08 2017-08-01 Apple Inc. Competing devices responding to voice triggers
US9886953B2 (en) 2015-03-08 2018-02-06 Apple Inc. Virtual assistant activation
US10460227B2 (en) 2015-05-15 2019-10-29 Apple Inc. Virtual assistant in a communication session
US10200824B2 (en) 2015-05-27 2019-02-05 Apple Inc. Systems and methods for proactively identifying and surfacing relevant content on a touch-sensitive device
US20160378747A1 (en) 2015-06-29 2016-12-29 Apple Inc. Virtual assistant for media playback
US10740384B2 (en) 2015-09-08 2020-08-11 Apple Inc. Intelligent automated assistant for media search and playback
US10747498B2 (en) 2015-09-08 2020-08-18 Apple Inc. Zero latency digital assistant
US10331312B2 (en) 2015-09-08 2019-06-25 Apple Inc. Intelligent automated assistant in a media environment
US10671428B2 (en) 2015-09-08 2020-06-02 Apple Inc. Distributed personal assistant
US10691473B2 (en) 2015-11-06 2020-06-23 Apple Inc. Intelligent automated assistant in a messaging environment
US10956666B2 (en) 2015-11-09 2021-03-23 Apple Inc. Unconventional virtual assistant interactions
US10223066B2 (en) 2015-12-23 2019-03-05 Apple Inc. Proactive assistance based on dialog communication between devices
US10586535B2 (en) 2016-06-10 2020-03-10 Apple Inc. Intelligent digital assistant in a multi-tasking environment
DK201670540A1 (en) 2016-06-11 2018-01-08 Apple Inc Application integration with a digital assistant
DK179415B1 (en) 2016-06-11 2018-06-14 Apple Inc Intelligent device arbitration and control
US11204787B2 (en) 2017-01-09 2021-12-21 Apple Inc. Application integration with a digital assistant
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
DK201770383A1 (en) 2017-05-09 2018-12-14 Apple Inc. USER INTERFACE FOR CORRECTING RECOGNITION ERRORS
US10726832B2 (en) 2017-05-11 2020-07-28 Apple Inc. Maintaining privacy of personal information
DK180048B1 (en) 2017-05-11 2020-02-04 Apple Inc. MAINTAINING THE DATA PROTECTION OF PERSONAL INFORMATION
DK201770427A1 (en) 2017-05-12 2018-12-20 Apple Inc. LOW-LATENCY INTELLIGENT AUTOMATED ASSISTANT
DK179745B1 (en) 2017-05-12 2019-05-01 Apple Inc. SYNCHRONIZATION AND TASK DELEGATION OF A DIGITAL ASSISTANT
DK179496B1 (en) 2017-05-12 2019-01-15 Apple Inc. USER-SPECIFIC Acoustic Models
US10303715B2 (en) 2017-05-16 2019-05-28 Apple Inc. Intelligent automated assistant for media exploration
US20180336892A1 (en) 2017-05-16 2018-11-22 Apple Inc. Detecting a trigger of a digital assistant
CN116702843A (zh) 2017-05-20 2023-09-05 谷歌有限责任公司 投影神经网络
US10657328B2 (en) * 2017-06-02 2020-05-19 Apple Inc. Multi-task recurrent neural network architecture for efficient morphology handling in neural language modeling
US10503834B2 (en) 2017-11-17 2019-12-10 Digital Genius Limited Template generation for a conversational agent
US10515155B2 (en) * 2018-02-09 2019-12-24 Digital Genius Limited Conversational agent
US10818288B2 (en) 2018-03-26 2020-10-27 Apple Inc. Natural assistant interaction
US11145294B2 (en) 2018-05-07 2021-10-12 Apple Inc. Intelligent automated assistant for delivering content from user experiences
US10928918B2 (en) 2018-05-07 2021-02-23 Apple Inc. Raise to speak
DK180639B1 (en) 2018-06-01 2021-11-04 Apple Inc DISABILITY OF ATTENTION-ATTENTIVE VIRTUAL ASSISTANT
DK179822B1 (da) 2018-06-01 2019-07-12 Apple Inc. Voice interaction at a primary device to access call functionality of a companion device
US10892996B2 (en) 2018-06-01 2021-01-12 Apple Inc. Variable latency device coordination
US10885277B2 (en) 2018-08-02 2021-01-05 Google Llc On-device neural networks for natural language understanding
US11462215B2 (en) 2018-09-28 2022-10-04 Apple Inc. Multi-modal inputs for voice commands
US11475898B2 (en) 2018-10-26 2022-10-18 Apple Inc. Low-latency multi-speaker speech recognition
CN111368996B (zh) * 2019-02-14 2024-03-12 谷歌有限责任公司 可传递自然语言表示的重新训练投影网络
US11348573B2 (en) 2019-03-18 2022-05-31 Apple Inc. Multimodality in digital assistant systems
US11423908B2 (en) 2019-05-06 2022-08-23 Apple Inc. Interpreting spoken requests
DK201970509A1 (en) 2019-05-06 2021-01-15 Apple Inc Spoken notifications
US11475884B2 (en) 2019-05-06 2022-10-18 Apple Inc. Reducing digital assistant latency when a language is incorrectly determined
US11307752B2 (en) 2019-05-06 2022-04-19 Apple Inc. User configurable task triggers
US11140099B2 (en) 2019-05-21 2021-10-05 Apple Inc. Providing message response suggestions
DK201970510A1 (en) 2019-05-31 2021-02-11 Apple Inc Voice identification in digital assistant systems
US11289073B2 (en) 2019-05-31 2022-03-29 Apple Inc. Device text to speech
DK180129B1 (en) 2019-05-31 2020-06-02 Apple Inc. USER ACTIVITY SHORTCUT SUGGESTIONS
US11496600B2 (en) 2019-05-31 2022-11-08 Apple Inc. Remote execution of machine-learned models
US11360641B2 (en) 2019-06-01 2022-06-14 Apple Inc. Increasing the relevance of new available information
US11227599B2 (en) 2019-06-01 2022-01-18 Apple Inc. Methods and user interfaces for voice-based control of electronic devices
US11488406B2 (en) 2019-09-25 2022-11-01 Apple Inc. Text detection using global geometry estimators
US11061543B1 (en) 2020-05-11 2021-07-13 Apple Inc. Providing relevant data items based on context
US11043220B1 (en) 2020-05-11 2021-06-22 Apple Inc. Digital assistant hardware abstraction
US11755276B2 (en) 2020-05-12 2023-09-12 Apple Inc. Reducing description length based on confidence
US11586652B2 (en) * 2020-05-18 2023-02-21 International Business Machines Corporation Variable-length word embedding
US11490204B2 (en) 2020-07-20 2022-11-01 Apple Inc. Multi-device audio adjustment coordination
US11438683B2 (en) 2020-07-21 2022-09-06 Apple Inc. User identification using headphones
US11181988B1 (en) 2020-08-31 2021-11-23 Apple Inc. Incorporating user feedback into text prediction models via joint reward planning
US11829720B2 (en) 2020-09-01 2023-11-28 Apple Inc. Analysis and validation of language models
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 (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101681198A (zh) * 2007-05-21 2010-03-24 微软公司 提供相关文本自动完成
CN102893239A (zh) * 2010-03-04 2013-01-23 触摸式有限公司 电子设备的文本输入系统及文本输入方法
CN104169948A (zh) * 2012-03-15 2014-11-26 赛普特系统有限公司 用于文本语义处理的方法、装置及产品

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0582907A3 (en) 1992-08-10 1995-05-10 Stac Electronics Inc Device and method for data compression using search by comparison of strings and Huffman coding.
US5748512A (en) * 1995-02-28 1998-05-05 Microsoft Corporation Adjusting keyboard
US7679534B2 (en) * 1998-12-04 2010-03-16 Tegic Communications, Inc. Contextual prediction of user words and user actions
US6621424B1 (en) 2000-02-18 2003-09-16 Mitsubishi Electric Research Laboratories Inc. Method for predicting keystroke characters on single pointer keyboards and apparatus therefore
JP2008192031A (ja) * 2007-02-07 2008-08-21 Nec Corp 圧縮方法、圧縮装置、圧縮データ復元方法、圧縮データ復元装置、可視化方法および可視化装置
US7689527B2 (en) * 2007-03-30 2010-03-30 Yahoo! Inc. Attribute extraction using limited training data
CN100565523C (zh) * 2007-04-05 2009-12-02 中国科学院自动化研究所 一种基于多分类器融合的敏感网页过滤方法及系统
US7996369B2 (en) 2008-11-14 2011-08-09 The Regents Of The University Of California Method and apparatus for improving performance of approximate string queries using variable length high-quality grams
GB0917753D0 (en) * 2009-10-09 2009-11-25 Touchtype Ltd System and method for inputting text into electronic devices
US9424246B2 (en) * 2009-03-30 2016-08-23 Touchtype Ltd. System and method for inputting text into electronic devices
US8983884B2 (en) * 2009-07-31 2015-03-17 Gerard J. Rinkus Overcoding-and-paring: a bufferless chunking process and uses thereof
US8572126B2 (en) 2010-06-25 2013-10-29 Educational Testing Service Systems and methods for optimizing very large n-gram collections for speed and memory
US8892488B2 (en) 2011-06-01 2014-11-18 Nec Laboratories America, Inc. Document classification with weighted supervised n-gram embedding
US20120324391A1 (en) 2011-06-16 2012-12-20 Microsoft Corporation Predictive word completion
US8484573B1 (en) * 2012-05-23 2013-07-09 Google Inc. Predictive virtual keyboard
US9524290B2 (en) 2012-08-31 2016-12-20 Blackberry Limited Scoring predictions based on prediction length and typing speed
US8843845B2 (en) 2012-10-16 2014-09-23 Google Inc. Multi-gesture text input prediction
US8850350B2 (en) 2012-10-16 2014-09-30 Google Inc. Partial gesture text entry
US8819574B2 (en) * 2012-10-22 2014-08-26 Google Inc. Space prediction for text input
US9547420B1 (en) * 2013-02-11 2017-01-17 Amazon Technologies, Inc. Spatial approaches to text suggestion
US9558743B2 (en) * 2013-03-15 2017-01-31 Google Inc. Integration of semantic context information
US9495620B2 (en) * 2013-06-09 2016-11-15 Apple Inc. Multi-script handwriting recognition using a universal recognizer
US20150095017A1 (en) * 2013-09-27 2015-04-02 Google Inc. System and method for learning word embeddings using neural language models
US10055681B2 (en) * 2013-10-31 2018-08-21 Verint Americas Inc. Mapping actions and objects to tasks
US20170116498A1 (en) * 2013-12-04 2017-04-27 J Tech Solutions, Inc. Computer device and method executed by the computer device
GB201321927D0 (en) * 2013-12-11 2014-01-22 Touchtype Ltd System and method for inputting text into electronic devices
CN104102720B (zh) * 2014-07-18 2018-04-13 上海触乐信息科技有限公司 高效输入的预测方法和装置
US9678664B2 (en) * 2015-04-10 2017-06-13 Google Inc. Neural network for keyboard input decoding
US9830315B1 (en) * 2016-07-13 2017-11-28 Xerox Corporation Sequence-based structured prediction for semantic parsing
US10515400B2 (en) * 2016-09-08 2019-12-24 Adobe Inc. Learning vector-space representations of items for recommendations using word embedding models
US10552468B2 (en) * 2016-11-01 2020-02-04 Quid, Inc. Topic predictions based on natural language processing of large corpora
US10049103B2 (en) * 2017-01-17 2018-08-14 Xerox Corporation Author personality trait recognition from short texts with a deep compositional learning approach

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101681198A (zh) * 2007-05-21 2010-03-24 微软公司 提供相关文本自动完成
CN102893239A (zh) * 2010-03-04 2013-01-23 触摸式有限公司 电子设备的文本输入系统及文本输入方法
CN104169948A (zh) * 2012-03-15 2014-11-26 赛普特系统有限公司 用于文本语义处理的方法、装置及产品

Also Published As

Publication number Publication date
EP3549069A1 (en) 2019-10-09
CN110036399A (zh) 2019-07-19
EP3549069B1 (en) 2020-12-23
US10789529B2 (en) 2020-09-29
WO2018102204A1 (en) 2018-06-07
US20180150744A1 (en) 2018-05-31
GB201620235D0 (en) 2017-01-11

Similar Documents

Publication Publication Date Title
CN110036399B (zh) 神经网络数据录入系统
EP3529711B1 (en) Device/server deployment of neural network data entry system
US11720744B2 (en) Inputting images to electronic devices
CN107836000B (zh) 用于语言建模和预测的改进的人工神经网络方法、电子设备
US10095684B2 (en) Trained data input system
US11550751B2 (en) Sequence expander for data entry/information retrieval
JP5703331B2 (ja) ユーザがユーザデバイスに異なる複数の言語でエンティティの名前をテキスト入力するのを支援するための技術
EP3549031B1 (en) Language data prediction with neural networks and online learning
US10754441B2 (en) Text input system using evidence from corrections
US10318632B2 (en) Multi-lingual data input system
US10872203B2 (en) Data input system using trained keypress encoder
JP2022502758A (ja) 符号化方法、装置、機器およびプログラム
US20230100964A1 (en) Data input system/example generator
CN112154442A (zh) 短语级缩写的文本录入和转换
US11899904B2 (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