CN112789626A - 可扩展和压缩的神经网络数据储存系统 - Google Patents
可扩展和压缩的神经网络数据储存系统 Download PDFInfo
- Publication number
- CN112789626A CN112789626A CN201980063938.9A CN201980063938A CN112789626A CN 112789626 A CN112789626 A CN 112789626A CN 201980063938 A CN201980063938 A CN 201980063938A CN 112789626 A CN112789626 A CN 112789626A
- Authority
- CN
- China
- Prior art keywords
- memory
- data
- neural network
- query
- memory locations
- 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.)
- Pending
Links
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 106
- 238000013500 data storage Methods 0.000 title claims abstract description 12
- 230000015654 memory Effects 0.000 claims abstract description 293
- 238000000034 method Methods 0.000 claims abstract description 47
- 230000008569 process Effects 0.000 claims abstract description 35
- 238000012545 processing Methods 0.000 claims description 30
- 230000006870 function Effects 0.000 claims description 16
- 238000012549 training Methods 0.000 description 21
- 238000004590 computer program Methods 0.000 description 14
- 230000009471 action Effects 0.000 description 6
- 239000011159 matrix material Substances 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 230000000306 recurrent effect Effects 0.000 description 5
- 230000006978 adaptation Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 230000000644 propagated effect Effects 0.000 description 3
- 239000000654 additive Substances 0.000 description 2
- 230000000996 additive effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 239000003795 chemical substances by application Substances 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000013527 convolutional neural network Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000002087 whitening effect Effects 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000012517 data analytics Methods 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000006883 memory enhancing effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 230000001172 regenerating effect Effects 0.000 description 1
- 230000008929 regeneration Effects 0.000 description 1
- 238000011069 regeneration method Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 238000013518 transcription Methods 0.000 description 1
- 230000035897 transcription Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
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/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/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2272—Management thereof
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- 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/048—Activation functions
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Evolutionary Computation (AREA)
- Biophysics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种使用神经网络的用于压缩数据储存的系统。该系统包括存储器,该存储器包括被配置成存储数据的多个存储器位置;查询神经网络,该查询神经网络被配置成处理输入数据项的表示以生成查询;不变键数据存储,该不变键数据存储包括用于对多个存储器位置进行索引的键数据;寻址系统,该寻址系统被配置成处理键数据和查询以生成与多个存储器位置相关联的加权;存储器读取系统,该存储器读取系统被配置成基于与多个存储器位置相关联的所生成的加权和在多个存储器位置处存储的数据来从所述存储器生成输出存储器数据;以及存储器写入系统,该存储器写入系统被配置成基于与多个存储器位置相关联的所生成的加权来将接收到的写入数据写入到存储器。
Description
背景技术
本说明书涉及一种用于使用神经网络的压缩数据储存的系统。
神经网络是机器学习模型,其采用一个或多个层的非线性单元来预测接收到的输入的输出。一些神经网络除输出层外还包括一个或多个隐藏层。每个隐藏层的输出用作网络中下一层,即下一个隐藏层或输出层,的输入。网络的每一层根据相应的参数集合的当前值从接收的输入生成输出。
一些神经网络是循环神经网络。循环神经网络是一种接收输入序列并从输入序列生成输出序列的神经网络。特别地,循环神经网络可以在当前时间步计算输出时使用来自先前时间步的一些或全部网络内部状态。循环神经网络的示例是长短期(LSTM)神经网络,其包括一个或多个LSTM存储块。每个LSTM存储块可以包括一个或多个单元,每个单元包括输入门、忘记门和输出门,允许该单元存储该单元的先前状态,例如,以用于生成当前激活或要提供给LSTM神经网络的其他组件。
发明内容
本说明书描述一种作为计算机程序实现在一个或多个位置中的一个或多个计算机上的系统,该系统提供用于使用神经网络来存储压缩数据的系统。该系统能够对数据进行编码并以稀疏和分布式方式将数据存储在存储器中,以实现适于一个或多个任务的学习数据结构。该学习数据结构是高度压缩的并大大地降低存储器需求。
根据第一方面,提供了一种用于使用神经网络来存储压缩数据的系统,该系统包括:存储器,该存储器包括被配置成存储数据的多个存储器位置;查询神经网络,该查询神经网络被配置成处理输入数据项的表示以生成查询;不变键数据存储,该不变键数据存储包括用于对多个存储器位置进行索引的键数据;寻址系统,该寻址系统被配置成处理键数据和查询以生成与多个存储器位置相关联的加权;存储器读取系统,该存储器读取系统被配置成基于所生成的与多个存储器位置相关联的加权和存储在多个存储器位置处的数据来从存储器生成输出存储器数据;以及存储器写入系统,该存储器写入系统被配置成基于所生成的与多个存储器位置相关联的加权将接收到的写入数据写入到存储器。
键数据存储在键数据一旦被创建就是固定的并且不随时间或在使用中改变的意义上是不变的。另外,虽然可以通过训练来学习神经网络系统的其他组件,但是不学习键数据。
键数据存储可以包括用于对多个存储器位置进行索引的多个随机生成的键,其中,多个键在生成之后是不变的。
替换地,键数据存储可以包括不变种子数据以用于生成用于对多个存储器位置进行索引的多个不变键;并且寻址系统还可以被配置成基于种子数据生成多个键。通过存储种子数据并按需生成多个键而不是存储完整的键集合,可以降低存储器需求。
应领会,使用相同的种子数据将始终导致生成相同的键。还应领会,除了一个单个键的可能性之外,单个种子还可以用于生成多个键。例如,种子可以用于生成添加有附加偏移值的键,以生成另外的键。在另一示例中,可以通过针对多个时间步运行生成算法来生成另外的键,所述多个时间步中的每个时间步产生键。
多个生成的键可以基于高斯随机变量的样本。在存储种子数据的情况下,种子数据包括用于生成高斯随机变量的样本的一个或多个种子。通过使用随机生成的键,可以将数据存储在分布在存储器中各处的存储器位置处,从而提高存储器利用率。
可以将键数据存储实现为矩阵。键可以替换地被称为地址,并且键数据存储可以被称为寻址矩阵。
寻址系统还可以被配置成处理键数据和查询以基于查询与多个键中的每一个之间的相似性来生成与多个存储器位置相关联的加权。相似性可以基于诸如余弦距离或欧几里德距离的任何相似性度量。
系统还可以包括基于k-最近邻模型的多个键的索引。查询与多个键中的每一个之间的相似性还可以基于k-最近邻模型。例如,k-最近邻模型可以基于局部性敏感哈希。以这种方式,可以迅速地确定与查询最相似的键。考虑到键数据存储是不变的,与键数据存储不是不变的并且每当键数据存储被修改时都将需要重新生成键索引的现有技术方法比较,k-最近邻模型仅需要被索引一次。
查询神经网络可以是前馈神经网络。
寻址系统还可以被配置成使查询解相关。处理键数据和查询以生成与多个存储器位置相关联的加权可以基于解相关的查询。以这种方式,可以通过更快的收敛来使系统学习适当的查询表示的训练变得更高效。使用解相关的查询鼓励系统使用于存储数据的所有可用的存储器位置的使用率最大化,从而避免选择仅几个特定存储器位置用于数据储存。此外,解相关的查询还可以在训练期间产生更好的优化,从而产生可以是更多压缩的学习的数据编码方案并因此在存储器使用率上改进。解相关可以基于球化(sphering)变换,例如,移动平均ZCA变换。球化变换还可以被称为白化变换。
加权可以基于稀疏softmax函数。也就是说,该函数可以用于选择k个最相似的键,并且因此,选择由那些键索引的对应的存储器位置。通过选择k个最相似的键和对应的存储器位置,可以在多个存储器位置之间共享信息以增加存储在存储器中的数据的信息内容,同时还维持高效存储器利用率。k的值可以由本领域的技术人员适当地选择。
系统还可以包括编码器神经网络,该编码器神经网络被配置成处理输入数据项以生成输入数据项的表示。以这种方式,表示可以提供比原始输入数据项更多信息的特征以供处理。编码器神经网络可以是前馈神经网络或用于处理特定类型的输入数据项的其他合适类型的神经网络。
存储器读取系统还可以被配置成基于对存储在存储器位置处的数据应用与存储器位置相关联的对应加权来生成输出存储器数据。加权的应用可以是逐元素乘法。因此,存储器读取系统可以是基于内容的软注意力系统。
存储器读取系统还可以被配置成基于存储在存储器位置处的数据具有大于阈值的相关联加权来生成输出存储器数据并且在输出存储器数据的生成中排除存储在其他存储器位置处的数据。可以选取阈值,使得具有最高加权的k个存储器位置被选择。k的值可以由本领域的技术人员适当地选择。
系统还可以包括写入词神经网络,该写入词神经网络被配置成处理输入数据项的表示以生成所接收到的写入数据。以这种方式,还可以学习要写入到存储器的数据。写入词神经网络可以是前馈神经网络。
存储器写入系统还可以被配置成基于所对应的与存储器位置相关联的加权和所接收到的写入数据来为每个存储器位置生成加权写入数据;并且将经加权的写入数据相加地写入到每个存储器位置。通过相加地写入,可以维护存储在存储器中的过去数据。此外,还可以避免在顺序写入之上通过时间反向传播。时间相关性也可以被存储在存储器中。
系统还可以包括输出表示神经网络,该输出表示神经网络被配置成处理存储器读取系统的输出存储器数据、所接收到的写入数据以及输入数据项的表示以生成输入数据项的输出表示。这使得能够捕获存储在存储器中的数据之间的非线性相互作用。此外,可以通过存储在存储器中的数据部分地对输入数据项进行建模。因为与随时间缓慢地改变的神经网络的参数比较,可以迅速地适配存储在存储器中的数据,所以使用如上所述的外部存储器能够使得系统能够在数据项集合的有限数目的示例已被呈现的情况下或者在预期环境或任务随时间改变的情况下推广。可以将属于相同的类或集合的数据项映射到相同的存储器位置,从而使得能实现对未看见过的数据项的推广。输出表示神经网络可以是前馈神经网络。
可以基于元学习框架训练系统。例如,可以基于在每个任务中具有有限数目的训练示例的一系列任务来训练系统。可以从公共分布中采样一系列任务。训练数据集合可以包括将被存储在存储器中的数据以及分布内查询集合和分布外查询集合,其表示系统将在使用期间很可能遇到的数据和查询。应领会,神经网络系统是完全可微的并且可以被端到端训练。可以基于交叉熵损失训练系统。训练目标可以包括二元分类。可以通过查询操作和存储器插入操作联合地使用反向传播来训练系统。
存储在存储器中的数据可以包括指示一个或多个数据集合的数据。存储器读取系统的输出存储器数据可以指示输入数据项是否属于一个或多个数据集合中的集合。例如,系统可以实现类似于布隆过滤器的数据结构,该数据结构使得系统能够迅速地确定输入数据项是否属于特定数据集合。可以训练神经网络系统以充当布隆过滤器并作为现有系统中的布隆过滤器的替代。然而,系统针对诸如近似集员(approximate set membership)的任务具有与布隆过滤器相比学习更多压缩和更空间高效的数据结构的能力。系统适合于静态集员任务和动态集员任务两者。在一些现有技术的神经网络系统中,集合数据以神经网络系统的权重中编码,并且因此考虑到神经网络的权重的慢适配速率,不适合于动态集员任务。在本系统中,能够迅速适配的系统存储器被用于对集合数据进行编码,并且因此适合于动态集员任务。
系统还可以包括用于处置假阴性结果的备用布隆过滤器。
根据另一个方面,提供了一种用于使用神经网络来存储压缩数据的系统,该系统包括:存储器,该存储器包括被配置成存储数据的多个存储器位置;查询神经网络,该查询神经网络被配置成处理输入数据项的表示以生成查询;不变键数据存储,该不变键数据存储包括用于对多个存储器位置进行索引的键数据;寻址系统,该寻址系统被配置成处理键数据和查询以生成与多个存储器位置相关联的加权;存储器访问系统,该存储器访问系统被配置成基于所生成的与多个存储器位置相关联的加权从存储器访问存储器数据。
根据另一方面,提供了一种使用神经网络来从用于存储压缩数据的系统读取数据的方法,该方法包括:接收输入数据项的表示;由查询神经网络处理输入数据项的表示以生成查询;从不变键数据存储中检索用于对存储器的多个存储器位置进行索引的键数据;由寻址系统处理查询和键数据以生成与多个存储器位置相关联的加权;以及由存储器读取系统基于所生成的与多个存储器位置相关联的加权和存储在多个存储器位置处的数据从存储器输出输出存储器数据。
根据另一方面,提供了一种使用神经网络来将数据写入到用于存储压缩数据的系统的方法,该方法包括:接收输入数据项的表示;由查询神经网络处理输入数据项的表示以生成查询;从不变键数据存储中检索用于对存储器的多个存储器位置进行索引的键数据;由寻址系统处理查询和键数据以生成与多个存储器位置相关联的加权;接收写入数据;以及由存储器写入系统基于所生成的与多个存储器位置相关联的加权将所接收到的写入数据写入到存储器。
根据另一方面,提供了一种非暂时性计算机可读介质,该非暂时性计算机可读介质包括计算机可读指令,这些计算机可读指令当被执行时,使一个或多个计算机实现根据以上任何方面的系统或者执行根据以上任何方面的方法。
系统可以被配置成接收任何种类的数字数据输入。例如,所存储的数据和/或输入数据项可以包括图像(包括视频图像)、图像或已从图像中提取的特征;字符、单词或字符串、一种或多种语言的文本序列或段,例如一种语言的文本以及文本变成另一语言的翻译;互联网资源(例如,web页面)、文档或文档的部分或从互联网资源、文档或文档的部分中提取的特征、内容项;特定广告的闪现上下文;针对用户的个性化推荐的特征和/或表征推荐上下文的特征,例如,表征由用户采取的先前动作的特征;表示口头言语和/或针对言语的转录的数据序列;前述中的任一项的分数;或可以被存储在数据库中的任何其他种类的数据项。通常,系统的存储器可以用于存储任何类型的数据,包括但不限于前述项。
能够在特定实施例中实现本说明书中描述的主题以便实现以下优点中的一个或多个,系统能够学习适于一个或多个特定任务的数据结构。考虑到系统提供对新信息的迅速适配,系统在数据项仅能够被检查有限次数、甚至仅一次——诸如在数据流中——的情况下是特别有利的。系统在任务或环境随时间改变的设定中也是特别有利的。系统还能够迅速地推广到未看见过的数据。
系统能够学习如何基于输入数据有效地对数据结构进行索引和查询,并且如何有效地对数据进行编码并将其存储在存储器中。也就是说,系统能够基于存储有数据的特定存储器位置或被存储在存储器位置处的特定数据或数据被存储在的地方和什么数据被存储在存储器中两者的组合使用编码来存储信息。系统通过学习利用输入数据的结构来提供比经典数据无关(data agnostic)数据结构大的数据压缩。因此,与经典数据结构比,系统可能每元素需要更少的位来存储数据。系统还提供跨存储器位置的压缩,从而实现比其他现有技术存储器增强神经网络大的压缩。系统因此提供可扩展的分布式压缩写入方案。
此外,由于系统的架构以及用于执行查询、寻址和存储器访问的高效操作,系统的时延低。
此外,通过提供如上所述的查询机制和不变键数据存储,可以使系统的存储器的大小与神经网络组件的可训练参数的数目无关,并且系统因此可以比其他现有技术存储器增强神经网络更加可扩展。由于存储器的大小和可训练参数的数目的独立性,即使在神经网络组件已被训练之后,也可以在使用期间修改存储器的大小。
系统可以实现适合于确定类似于布隆过滤器的近似集员的数据结构或酌情其他类型的数据结构。
例如,系统可以用于迅速地确定在大型数据库中是否存在记录以避免不必要的磁盘查找、用于确定在高速缓存中是否存在数据项、用于在网络安全方面阻止恶意IP地址、用作用于对图像、视频、音频和文本数据进行分类的一种类型的分类器、由代理用于确定特定环境是否与曾经先前遇到的环境相对应以及如何行动。
将理解,可以组合各方面,并且可以将在一个方面的上下文中描述的特征与本发明的其他方面组合。
还将认识到,诸如存储器、寻址系统、存储器读取系统和存储器写入系统的系统组件可以根据现有存储器和系统适配以用于寻址、向现有计算机中包括的存储器读取和从现有计算机中包括的存储器写入。另外或可替代地,系统的组件可以被配置成与现有的存储器和存储器访问系统以及其他现有的计算组件兼容。
本说明书中描述的主题的一个或多个实施例的细节在附图和以下描述中阐述。根据说明书、附图和权利要求书,本主题的其他特征、方面和优点将变得显而易见。
附图说明
图1示出用于使用神经网络的压缩数据储存的示例系统。
图2示出用于使用神经网络的压缩数据储存的另一示例系统。
图3示出用于从神经网络存储器系统读取数据的示例性处理。
图4示出用于将数据写入神经网络存储器系统的示例性处理。
具体实施方式
图1示出了用于使用神经网络的压缩数据储存的示例系统100。系统100是作为计算机程序实现在一个或多个位置中的一个或多个计算机上的系统的示例,其中能够实现在下面描述的系统、组件和技术。
系统100包括存储器101。存储器101包括被配置成存储数据的多个存储器位置101a…n。存储器101可以存储如适于正被执行的特定任务的任何类型的数据。例如,系统100可以实现与用于执行近似集员任务的布隆过滤器等效的数据结构。因此,存储器101可以存储指示一个或多个数据集合的数据。在其他示例中,所存储的数据可以是图像数据、图像数据的编码、或指示与图像相关联的属性的数据。还可以存储其他模态,诸如视频或音频数据或文本数据,例如,数据可以与数据库中的数据有关。
存储器101的大小可以由本领域的技术人员适当地选取并且基于正被执行的任务来选取。作为示例,对于近似集员任务,存储器可以具有2至128个存储器位置(内含),其中每个存储器位置存储2至10个元素(内含)。
如在下面进一步详细地描述的,系统100可以学习以压缩和分布式方式将数据存储在存储器101中,使得与存储数据的常规方法比较,大大地降低了存储器需求。
系统100还包括不变键数据存储102,该不变键数据存储包括用于对多个存储器位置101a…n进行索引的键数据。键数据存储102在一旦键数据已被生成就不能修改它的意义上是不变的。键数据可以被映射到特定存储器位置并且因此可以被认为提供用于从存储器101读取和写入到存储器101的寻址机制。因此,键数据也可以被认为是地址数据。在下面描述关于键数据的进一步细节。
系统100还包括寻址系统103,该寻址系统被配置成处理键数据和查询104以生成与多个存储器位置101a…n相关联的加权105。可以在基于给定查询104确定要访问多个存储器位置101a…n中的哪一个时使用加权105。以这种方式,加权105也可以被认为是用于访问多个存储器位置101a…n的地址的形式。在下面描述关于加权105的生成的进一步细节。
系统100还包括查询神经网络106,该查询神经网络被配置成处理输入数据项的表示107以生成查询104。输入数据项可以是任何类型的数据。例如,图像数据、音频数据、传感器数据、web数据和文本。输入数据项的表示107可以是输入数据项的编码或嵌入。例如,表示可以是表征输入数据项的特征向量或者可以是由神经网络产生的表示或编码。
系统100还包括被配置成从存储器101访问存储器数据的存储器访问系统。访问可以基于所生成的与多个存储器位置101a…n相关联的加权105。因此,系统100可以包括存储器读取系统108,该存储器读取系统被配置成基于所生成的与多个存储器位置101a…n相关联的加权105和存储在多个存储器位置101a…n处的数据来生成输出存储器数据109。系统100还可以包括存储器写入系统110,该存储器写入系统被配置成基于所生成的与多个存储器位置101a…n相关联的加权105将接收到的写入数据111写入到存储器101。如以上所指出的,加权105可以充当用于选择要访问多个存储器位置101a…n中的哪一个的地址的形式。存储器访问系统在下面被更详细地描述并且可以包括一个或多个神经网络。
具有可训练神经网络参数的系统100不仅能够学习如何最好地对数据进行编码并将数据存储在存储器101中,而且还能够学习如何最好地对存储器101进行寻址和查询以进行高效访问。由于键数据是不变的并未被学习,所以存储器101的大小与可训练参数的数目无关并且因此改进系统的可扩展性。还可以在无需重新训练系统的情况下动态地调整存储器的大小。
此外,与仅能够随时间缓慢地改变的神经网络的参数比较,存储器的使用使得能够迅速适配新数据。系统因此能够在仅数据项集合的有限数目的示例已被呈现的情况下或者在预期环境或任务随时间改变的情况下推广。可以将属于相同的类、分布或集合的数据项映射到相同的存储器位置,从而使得能够推广到看不见的数据项。
现在参考图2,示出了用于使用神经网络的压缩数据储存的另一示例系统200。图2的系统200包括图1的系统100的组件,由此相似的组件在各图中具有相似的附图标记。在这方面,图2还包括附加标签,其中存储器101被标记为“M”;不变键数据存储102被标记为“A”,查询104被标记为“q”,加权105被标记为“a”,输入数据项的表示107被标记为“z”,输出存储器数据109被标记为“r”,并且写入数据111被标记为“w”。
系统200还包括编码器神经网络212,该编码器神经网络被配置成处理输入数据项213以生成输入数据项的表示107。表示107可以提供比原始输入数据项213更多信息的特征以供处理并执行需要的任务,并且可以通过训练编码器神经网络212的参数来学习这样的表示。在下面更详细地描述神经网络参数的训练。
编码器神经网络212可以是如本领域的技术人员视为适当的任何类型的神经网络。例如,如果输入数据项是图像,则编码器神经网络可以是卷积神经网络或前馈多层感知器(MLP)。如果输入数据项是诸如文本序列、视频、音频序列的序列,则编码器神经网络212可以是诸如LSTM的循环神经网络。在一个示例中,编码器神经网络212是被配置成处理图像输入的三层卷积神经网络。在另一示例中,编码器神经网络212是具有被配置成处理诸如数据库行键的文本输入的128个隐藏单元的LSTM。
系统200还包括写入词神经网络214,该写入词神经网络被配置成处理输入数据项的表示107以生成接收到的写入数据111。以这种方式,还可以学习要写入到存储器101的数据。因此,系统除了可以学习要写入到存储器哪里之外,还可以学习将什么写入到存储器,以便进一步提供数据的分布式和压缩编码以供储存。
写入词神经网络214可以是诸如前馈MLP的任何类型的神经网络。在一个示例中,写入词神经网络214是具有带有带泄漏ReLU非线性的128个单元的单个隐藏层的MLP。
系统200还包括输出表示神经网络215,该输出表示神经网络被配置成处理从存储器101读取的输出存储器数据109、所接收到的写入数据111和输入数据项的表示107以生成输入数据项的输出表示216。输入数据项213的输出表示216可以取决于正由系统200执行的任务。例如,如果任务是近似集员,则输出可以是输入数据项属于先前已由系统200看见过的输入数据项集合的概率。可以在诸如缓存、恶意URL检测、数据库查询、拼写检查及其他应用的应用中使用这个。在另一示例中,任务可以是分类任务并且输出可以是诸如图像的输入数据项属于或包括特定类的对象的概率。在另一个示例中,输出表示216可以是作为对输入数据项的更好编码的输入数据项的表示以供在诸如分类器或机器人代理的单独的系统中使用。因此,输入数据项213可以部分地通过存储在存储器101中的数据来建模。
输出表示神经网络215可以是任何类型的神经网络。在一个示例中,输出表示神经网络215是具有残差连接的三层MLP。通过使用输出表示神经网络,能够捕获存储在存储器中的数据中的非线性相互作用。
在图2中,未具体地区分存储器读取系统108和存储器写入系统110。应领会,在从存储器101读取时涉及的组件可以形成存储器读取系统108的一部分,而在写入到存储器101时涉及的组件可以形成存储器写入系统110的一部分。还应领会,所述组件可以属于存储器读取系统108和存储器写入系统110两者。
现在将描述关于键数据的进一步细节。键数据可以包括用于对多个存储器位置101a…n进行索引的多个随机生成的键。例如,多个键可以基于高斯随机变量的样本。替换地,可以酌情使用不同的随机数生成过程。通过使用随机生成的键,可以将数据存储在分布在存储器中各处的存储器位置处,从而提高存储器利用率。
如以上所讨论的,在生成之后,多个键是不变的,也就是说,多个键在创建之后不能被修改。在随机生成多个键的情况下,不变键数据存储102可以存储用于生成多个键的种子数据,而不是多个键本身。因此,寻址系统103可以被配置成使用不变种子数据来重新生成多个键。通过存储不变种子数据而不是多个键,可以降低不变键数据存储102的储存/存储器需求。
应领会,使用输入到相同的随机生成过程的相同的种子数据将导致生成相同的键。还应领会,可以使用单个种子来生成多个键或单个键。例如,种子可以用于生成添加有附加偏移值的键以生成另外的键。在另一示例中,可以通过针对多个时间步运行生成算法来生成另外的键,所述时间步中的每个时间步产生键。
可以将不变键数据存储102实现为矩阵。如以上所讨论的,键数据可以被认为提供用于访问存储器101的寻址机制。因此,键数据存储102也可以被称为寻址矩阵。
为了加速查询104与键数据之间的相似性比较,系统100、200还可以包括多个键的索引。该索引可以基于k-最近邻模型或近似k-最近邻模型。k-最近邻模型可以基于局部性敏感哈希或另一相似性保留哈希函数。可以通过查找k-最近邻模型来找到与查询最相似的键。考虑到键数据存储102是不变的,与可以对存储器本身的内容进行索引并且因此每当存储器被修改时都将需要重新生成索引的现有技术方法比较,仅需对k-最近邻模型进行索引一次。
现在参考图3,现在将描述用于从神经网络存储器系统读取数据的处理。应领会,可以分别使用图1和图2的系统100、200来执行处理。
在步骤S301处,接收输入数据项的表示107。可以使用如下所示的编码函数来生成输入数据项的表示107:
z←fenc(x) (1)
其中z是输入数据项的表示107,fenc(.)是编码函数并且x是输入数据项。如以上所讨论的,可以使用编码器神经网络212来实现编码函数。
在步骤S302处,由查询神经网络106处理输入数据项的表示107以生成查询104。查询神经网络106可以实现将表示107映射到查询104的函数:
q←fq(z) (2)
其中q是查询104,fq(.)是映射函数并且z是输入数据项的表示107。
在步骤S303处,从不变键数据存储102中检索用于对存储器101的多个存储器位置101a…n进行索引的键数据。检索可以是访问不变键数据存储102以读取存储在其中的键数据。如以上所讨论的,不变键数据存储102可以存储用于生成多个键的种子数据而不是多个键本身。在这种情况下,对键数据的检索还可以包括使用不变种子数据来重新生成多个键。寻址系统103可以被配置成执行多个键的这种重新生成。
在步骤S304处,由寻址系统103处理查询104和键数据以生成与多个存储器位置101a…n相关联的加权105。加权105可以基于查询104与多个键中的每一个之间的相似性。例如,相似性可以基于余弦距离并被实现为:
d←qTA (3)
其中A是包含多个键的行矩阵,qT是形式为列向量的查询104并且d是多个键中的每一个的相似性分数的向量。替换地,相似性可以基于其他类型的距离,诸如视为适当的欧几里德距离。
加权105还可以基于稀疏softmax。例如,可以将稀疏softmax函数应用于相似性分数d以便生成概率分布,由此仅几个元素具有非零值。这可以通过忽略低于阈值的值或者仅选择前k个得分元素以具有非零值来实现。因此,可以将加权105计算为:
a←σk(qTA) (4)
其中σk(.)稀疏softmax函数并且qTA如上所述。
在步骤S305处,由存储器读取系统108基于所生成的与多个存储器位置101a…n相关联的加权105和存储在多个存储器位置处的数据来输出来自存储器101的输出存储器数据109。这可以包括将与存储器位置相关联的对应的加权105应用于存储在该存储器位置处的数据。例如,可以如下所示生成输出存储器数据109:
r←M⊙a (5)
其中r是输出存储器数据109,M是包括存储在存储器中的数据的矩阵,a是加权105并且⊙是逐元素乘法。
如果加权105是稀疏加权,则加权105具有基于查询104选择仅几个特定存储器位置来访问的效果。替换地,可以对加权105应用阈值,使得仅具有大于阈值的相关联加权的存储器位置被选择或者可以选择具有最高对应的加权的前k个存储器位置。通过选择仅几个具体存储器位置,系统能够学习以分布式方式将数据存储在存储器101中,并且可以在多个存储器位置之间共享信息以增加存储在存储器101中的数据的信息内容,同时还维持高效存储器利用率。
如果加权105基于键数据与查询104之间的相似性,则可以将加权105认为是用于关注存储器101中的特定位置的注意力向量,并且可以将寻址机制认为是基于内容的软注意力机制。还可以将寻址机制认为是可微哈希方案。
该方法还可以包括生成输入数据项213的输出表示216。生成可以基于使用输出表示神经网络215来处理在步骤S305处从存储器101读取的输出存储器数据109、接收到的写入数据111以及在步骤S301处接收到的输入数据项的表示107。例如,可以如下所示生成输出表示216:
o←fout([r,w,z]) (6)
其中o是输出表示216,fout(·)是由输出表示神经网络215实现的函数,r是输出存储器数据109,w是接收到的写入数据111并且z是输入数据项的表示107。
如以上所讨论的,输入数据项213的输出表示216可以取决于正被执行的任务并且可以例如是概率分数、或输入数据项213的最终输出编码、或表征输入数据项以供在另一系统中使用的其他数据。
在步骤S302处生成的查询104可以任选地在步骤S304处使用之前经历进一步处理。例如,查询104可以是向量并且可以经历解相关操作以使向量的元素解相关。解相关操作可以是任何适当类型的解相关,诸如球化或白化变换。例如,解相关可以基于如下所示的移动ZCA平均:
∑t+1←γ∑t+(1-γ)sTs 第二矩(8)
U,s,-←svd(∑-μ2) 计算奇异值(9)
θsca←ηθzca+(1-η)W ZCA移动平均(11)
q←qθsca 使查询解相关(12)
在另一示例中,解相关操作可以基于PCA。寻址系统103可以被配置成执行解相关。解相关在期望稀疏和分布式寻址系统的情况下是特别有益的。使用解相关的查询鼓励系统使存储器101中的所有可用的存储器位置的使用率最大化,从而避免选择仅几个特定存储器位置以供数据储存。此外,解相关的查询还可以在训练期间产生更快的收敛和更好的优化,从而产生可以更多压缩的学习数据编码方案并因此在存储器使用率上改进。
现在参考图4,现在将描述用于将数据写入到神经网络存储器系统的处理。应领会,可以分别使用图1和图2的系统100、200来执行处理。
图4的步骤S401至S404与图3的步骤S301至S304相同,并且因此,关于步骤S301至S304描述的以上操作也适用于步骤S401至S404。因此,简言之,在步骤S401处,接收输入数据项的表示107;在步骤S402处,由查询神经网络106处理输入数据项的表示107以生成查询104;在步骤S403处,从不变键数据存储102中检索用于对存储器101的多个存储器位置101a…n进行索引的键数据;以及在步骤S404处,由寻址系统103处理查询104和键数据以生成与多个存储器位置101a…n相关联的加权105。
在步骤S405处,接收写入数据111。可以基于输入数据的表示107使用写入词神经网络214来生成写入数据111。例如,可以如下所示生成写入数据111:
w←fw(z) (13)
其中w是写入数据111,fw(.)是由写入词神经网络214实现的函数并且z是输入数据项的表示107。替换地,写入数据111可以在外部被接收或者可以简单地是输入数据项的表示107或输入数据项213本身而无需修改。
在步骤S406处,由存储器写入系统110基于所生成的与多个存储器位置101a…n相关联的加权105将所接收到的写入数据111写入到存储器101。这可以通过以下来执行:基于与存储器位置相关联的对应的加权105和所接收到的写入数据111为每个存储器位置生成加权的写入数据,以及将加权的写入数据相加地写入到每个存储器位置。例如,可以如下所示执行写入:
Mt+1←Mt+waT (14)
其中Mt+1是在写入之后的存储器101,Mt是在写入之前的存储器101,w是所接收的写入数据111并且aT是加权105。因此可以将写入到存储器101认为是相加写入,因为新数据被加到存储器101中的现有数据。这使得能够在存储器中保持过去信息。注意,写入如在一些现有技术的神经网络存储器系统中一样不需要乘法门控或挤压(squashing)。
可以如以上参考图3所描述的那样生成加权105。加权105可以用于选择要写入到的存储器101的哪些特定存储器位置并且因此可以被认为是地址。加权105可以指定多个存储器位置101a...n中的全部都将被写入。替换地,加权105可以是稀疏的并且指定要写入到的存储器位置的小子集。以这种方式,可以以压缩和分布式方式跨存储器位置存储数据。此外,在随机生成键数据的情况下,这与稀疏加权相结合地还确保所存储的数据跨存储器分布以使存储器利用率最大化,而不是仅将数据写入到几个经常使用的存储器位置。这同仅能够在一个时间步中写入到一个存储器位置或者在能够写入到多个存储器位置的情况下在实践中选取仅非常明确的地址的一些现有技术神经网络存储器系统形成比较。
应领会,虽然以上处理被呈现为被以特定次序执行,但是不旨在限于步骤的任何特定排序,并且可以以不同的次序执行以上步骤。
可以基于元学习框架训练图1和图2的系统100、200的神经网络。在元学习框架中,训练最初可以基于采样任务,所述采样任务与系统将在经历最终训练之前执行以使系统适配所需任务的任务有关。这在存在可用于所需任务的有限训练数据但是其他训练数据可能可用的情况下是有益的。因此,可以诸如在小样本(few-shot)或单样本(one-shot)学习设定中用有限的训练数据训练系统100、200。例如,可能的是将数据作为临时数据流提供,由此每个数据项被看见仅一次并且必须基于观察该单个实例来学习。
系统100、200可以为近似集员的任务实现类似布隆过滤器的数据结构。可以使用包括不同数据集合的分布的训练数据集合来训练这样的系统,其中每个数据集合与不同的集员任务相对应。在训练的每次迭代时,如上所述选取数据集合中的一个并且将包括该集合的数据输入到系统100、200以供储存。样本数据查询被生成并作为输入提供给系统100、200。对于每个查询,系统提供输出以指示查询数据是否是被输入到系统100、200的数据集合的一部分。
然后可以基于交叉熵损失函数训练系统。例如,损失函数可以采取以下形式:
其中L是损失,j是遍及查询数据的索引,t是查询的数目,如果查询数据在集合中则yj=1或者如果查询数据不在集合中则yj=0,oj是系统100、200的输出并且可以如等式(6)所示的那样被计算。
然后可以通过计算损失相对于神经网络的参数的梯度并通过所执行的查询和写入反向传播来使用随机梯度下降来更新系统100、200的神经网络的参数。应领会,上述神经网络系统是完全可微的并且是端到端可训练的。
可以执行训练的进一步迭代直到达到合适的停止准则——例如当达到最大训练迭代次数时——为止。然后可以在真实任务数据上进一步训练经训练后的系统。可能的是,系统可能仅具有一次机会来观察特定数据项并且学习它是数据集合的一部分。这与可以能够无限制地访问真实任务数据并且通过遍历整个任务数据许多次直到在付诸使用之前获得了令人满意的性能为止的常规手段来学习对数据集合进行建模的现有技术方法比较。
如以上所讨论的,不学习键数据。系统可以在训练开始之前初始化有键数据并且在整个训练过程中且在使用中保持固定。
在系统使用相加写入的情况下,可以避免在顺序写入之上通过时间反向传播。加法运算符是可交换的,并且因此,对存储器的写入的排序而言是不变的,并且可以并行执行梯度的计算。因此,系统能够被更高效地训练且是可扩展的,由此如果需要在非常长的序列之上通过时间反向传播,则具有存储器的现有技术的神经网络系统可能不能训练或训练不佳。
系统100、200可以被用作布隆过滤器的替代。然而,布隆过滤器保证不会生成假阴性。也就是说,给定查询数据项,如果查询数据项不在集合中,则保证布隆过滤器不会错误地输出查询数据项在集合中。系统100、200不能够保证不会生成假阴性,并且因此,备用布隆过滤器可以被用于存储在训练期间发出的假阴性。表1示出针对目标假阳性率的存储5000个行键字符串的数据库任务的空间需求在系统的示例性实施方式(被标记为“神经布隆过滤器”)及常规布隆过滤器和布谷过滤器之间的比较。
表1.数据库任务。针对目标假阳性率的存储5000个行键字符串。
表1示出即使当需要备用布隆过滤器时,系统的存储器101和备用布隆过滤器的组合空间需求也显著地低于用于存储整个数据的常规布隆过滤器或布谷过滤器的空间需求。因此系统与常规数据结构相比具有学习更多压缩和更空间高效的数据结构的能力。系统能够学习利用输入数据分布中的结构来提供比常规数据结构显著更紧凑的数据的编码。
系统100、200可以用于静态和动态集员任务。在一些现有技术的神经网络系统中,集员以一个或多个神经网络的权重编码,并且因此鉴于神经权重的慢适配速率,不适合用于动态集员任务。系统100、200的存储器101为系统提供迅速适配新数据的能力,并且因此适合于动态集员任务。
本说明书使用结合系统和计算机程序组件“配置的”术语。对于要配置以执行特定操作或动作的一个或多个计算机的系统,意味着该系统已在其上安装了软件、固件、硬件或它们的组合,所述软件、固件、硬件或它们的组合在操作中导致系统执行操作或动作。对于将被配置以执行特定操作或动作的一个或多个计算机程序,意味着该一个或多个程序包括指令,该指令在由数据处理装置执行时使该装置执行该操作或动作。
本说明书中描述的主题和功能操作的实施例可用数字电子电路、用有形地具体实现的计算机软件或固件、用计算机硬件包括本说明书中公开的结构及其结构等同物或者用它们中的一个或多个的组合加以实现。本说明书中描述的主题的实施例可作为一个或多个计算机程序——即在有形非暂时性存储介质上编码以供由数据处理装置执行或者控制数据处理装置的操作的计算机程序指令的一个或多个模块——被实现。可替选地或此外,可将程序指令编码在人工生成的传播信号上,所述传播信号例如为机器生成的电、光学或电磁信号,该信号被生成来对信息进行编码以便传输到适合的接收器装置以供由数据处理装置执行。计算机储存介质可以是机器可读储存设备、机器可读储存基板、随机或串行存取存储器设备,或它们中的一个或多个的组合。计算机储存介质然而不是传播信号。
术语“数据处理装置”包含用于处理数据的所有种类的装置、设备和机器,作为示例包括可编程处理器、计算机或多个处理器或计算机。装置可包括专用逻辑电路,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。装置除了包括硬件之外还可包括为所讨论的计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统或它们中的一个或多个的组合的代码。
计算机程序(其还可以被称为或者描述为程序、软件、软件应用、模块、软件模块、脚本或代码)可用任何形式的编程语言编写,所述编程语言包括编译或解释语言,或声明性或过程语言,并且它可被以任何形式部署,包括作为独立程序或者作为模块、组件、子例行程序或适合于在计算环境中使用的其它单元。计算机程序可以但不必对应于文件系统中的文件。可在保持其它程序或数据(例如,存储在标记语言文档中的一个或多个脚本)的文件的一部分中、在专用于所述程序的单个文件中或者在多个协调文件(例如,存储一个或多个模块、子程序或代码的部分的文件)中存储程序。可将计算机程序部署成在一个计算机上或者在位于一个站点处或者跨越多个站点分布和通过通信网络互连的多个计算机上执行。
如本说明书中所使用的,“引擎”或“软件引擎”指代提供与输入不同的输出的软件实现的输入/输出系统。引擎可以是功能性的编码块,诸如库、平台、软件开发套件(“SDK”)或对象。可将每个引擎实现在包括一个或多个处理器和计算机可读介质的任何适当类型的计算设备上,所述计算设备例如为服务器、智能电话、平板计算机、笔记本计算机、音乐播放器、电子书阅读器、膝上型或台式计算机、PDA、智能电话或其它固定或便携式设备。附加地,可以将这些引擎中的两个或更多个实现在相同的计算设备上或者在不同的计算设备上。
本说明书中描述的过程和逻辑流程可通过执行一个或多个计算机程序的一个或多个可编程计算机来执行以通过对输入数据进行操作并生成输出来执行功能。过程和逻辑流程也可由专用逻辑电路执行,并且装置还可作为专用逻辑电路被实现,所述专用逻辑电路例如为FPGA(现场可编程门阵列)或ASIC(专用集成电路)。例如,处理和逻辑流程可以由图形处理单元(GPU)执行并且装置也可以被实现为图形处理单元(GPU)。
适合于执行计算机程序的计算机作为示例包括可基于通用微处理器或专用微处理器或两者,或任何其它种类的中央处理单元。一般地,中央处理单元将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的元件是用于执行或者实行指令的中央处理单元以及用于存储指令和数据的一个或多个存储器设备。一般地,计算机还将包括或者在操作上耦合以从用于存储数据的一个或多个大容量储存设备——例如,磁盘、磁光盘或光盘——接收数据,或者将数据转移到所述一个或多个大容量储存设备,或者兼而有之。然而,计算机不必具有此类设备。此外,计算机可被嵌入在另一设备中,所述另一设备例如为移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏控制台、全球定位系统(GPS)接收器或便携式储存设备,例如,通用串行总线(USB)闪存驱动器等等。
适合于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,作为示例包括半导体存储器设备,例如,EPROM、EEPROM和闪速存储器设备;磁盘,例如内部硬盘或可移动磁盘;磁光盘;以及CD ROM和DVD-ROM盘。处理器和存储器可由专用逻辑电路补充,或者并入在专用逻辑电路中。
为了提供与用户的交互,可在计算机上实现本说明书中描述的主题的实施例,所述计算机具有用于向用户显示信息的显示设备以及用户可用来向该计算机提供输入的键盘和指点设备,所述显示设备例如CRT(阴极射线管)或LCD(液晶显示器)监视器,所述指点设备例如鼠标或轨迹球。其它种类的设备也可用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以任何形式接收来自用户的输入,包括声学、语音或触觉输入。此外,计算机可通过向由用户使用的设备发送文档并且从由用户使用的设备接收文档来与用户交互;例如,通过响应于从web浏览器接收到的请求而向用户的客户端设备上的web浏览器发送web页面。
可在计算系统中实现本说明书中描述的主题的实施例,所述计算系统包括后端组件(例如,作为数据服务器),或者包括中间件组件(例如,应用服务器),或者包括前端组件(例如,具有用户可用来与本说明书中描述的主题的实施方式交互的图形用户界面或Web浏览器的客户端计算机),或者包括一个或多个此类后端、中间件或前端组件的任何组合。系统的组件可通过任何形式或介质的数字数据通信(例如,通信网络)来互连。通信网络的示例包括局域网(LAN)和广域网(WAN),例如互联网。
计算系统可包括客户端和服务器。客户端和服务器一般地彼此远离并且通常通过通信网络来交互。客户端和服务器的关系借助于在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序而产生。
虽然本说明书包含许多具体实施方式细节,但是这些不应该被解释为对任何发明的或可能要求保护的东西的范围构成限制,而是相反被解释为可以特定于特定发明的特定实施例的特征的描述。还可在单个实施例中相结合地实现在本说明书中在单独的实施例的上下文中描述的某些特征。相反地,还可单独地或者按照任何适合的子组合在多个实施例中实现在单个实施例的上下文中描述的各种特征。此外,尽管特征可以在上面被描述为按照某些组合起作用并且甚至最初如此要求保护,然而来自要求保护的组合的一个或多个特征可在一些情况下被从该组合中除去,并且要求保护的组合可以针对子组合或子组合的变体。
类似地,虽然按照特定次序在附图中描绘操作,但是这不应该被理解为要求按照所示的特定次序或者按照顺序次序执行此类操作,或者执行所有图示的操作以实现所希望的效果。在某些情况下,多任务处理和并行处理可以是有利的。此外,上述的实施例中的各种系统模块和组件的分离不应该被理解为在所有实施例中要求这种分离,并且应该理解的是,所描述的程序组件和系统一般地可被一起集成在单个软件产品中或者包装到多个软件产品中。
已经描述了主题的特定实施例。其它实施例在以下权利要求的范围内。例如,权利要求中叙述的动作可被以不同的次序执行并仍然实现所希望的结果。作为一个示例,附图中描绘的过程不一定要求所示的特定次序或顺序次序以实现所希望的结果。在某些实施方式中,多任务处理和并行处理可以是有利的。
Claims (21)
1.一种使用神经网络的用于压缩数据储存的系统,包括:
存储器,所述存储器包括被配置成存储数据的多个存储器位置;
查询神经网络,所述查询神经网络被配置成处理输入数据项的表示以生成查询;
不变键数据存储,所述不变键数据存储包括用于对所述多个存储器位置进行索引的键数据;
寻址系统,所述寻址系统被配置成处理所述键数据和所述查询以生成与所述多个存储器位置相关联的加权;
存储器读取系统,所述存储器读取系统被配置成基于与所述多个存储器位置相关联的所生成的加权和在所述多个存储器位置处存储的所述数据来从所述存储器生成输出存储器数据;以及
存储器写入系统,所述存储器写入系统被配置成基于与所述多个存储器位置相关联的所生成的加权来将接收到的写入数据写入到所述存储器。
2.根据权利要求1所述的系统,其中,所述键数据存储包括用于对所述多个存储器位置进行索引的多个随机生成的键,其中,所述多个键在生成之后是不变的。
3.根据权利要求1所述的系统,其中,所述键数据存储包括用于生成多个不变键的不变种子数据,所述多个不变键用于对所述多个存储器位置进行索引;以及
其中,所述寻址系统进一步被配置成基于所述种子数据来生成所述多个键。
4.根据权利要求2或3所述的系统,其中,所述多个键是基于高斯随机变量的样本的。
5.根据权利要求2至4中的任一项所述的系统,其中,所述寻址系统进一步被配置成基于所述查询与所述多个键中的每一个键之间的相似性来处理所述键数据和所述查询以生成与所述多个存储器位置相关联的加权。
6.根据权利要求5所述的系统,进一步包括基于k-最近邻模型的所述多个键的索引,并且其中,所述查询与所述多个键中的每个键之间的所述相似性是进一步基于所述k-最近邻模型的。
7.根据任一项前述权利要求所述的系统,其中,所述寻址系统进一步被配置成使所述查询解相关,并且其中,处理所述键数据和所述查询以生成与所述多个存储器位置相关联的加权是基于所解相关的查询的。
8.根据权利要求7所述的系统,其中,所述解相关是基于球化变换的。
9.根据任一项前述权利要求所述的系统,其中,所述加权是基于稀疏softmax函数的。
10.根据任一项前述权利要求所述的系统,进一步包括:
编码器神经网络,所述编码器神经网络被配置成处理所述输入数据项以生成所述输入数据项的所述表示。
11.根据任一项前述权利要求所述的系统,其中,所述存储器读取系统进一步被配置成基于将与存储器位置相关联的对应加权应用于在所述存储器位置处存储的所述数据来生成所述输出存储器数据。
12.根据任一项前述权利要求所述的系统,其中,所述存储器读取系统进一步被配置成基于存储在具有大于阈值的相关联加权的所述存储器位置处的数据来生成输出存储器数据,并且在所述输出存储器数据的所述生成中排除被存储在其它存储器位置处的数据。
13.根据任一项前述权利要求所述的系统,进一步包括:
写入词神经网络,所述写入词神经网络配置成处理所述输入数据项的所述表示以生成所述接收到的写入数据。
14.根据任一项前述权利要求所述的系统,其中,所述存储器写入系统进一步被配置成:
针对每个存储器位置基于与该存储器位置相关联的对应加权和所述接收到的写入数据来生成加权的写入数据;
将所述加权的写入数据相加地写入到每个存储器位置。
15.根据任一项前述权利要求所述的系统,进一步包括:
输出表示神经网络,所述输出表示神经网络被配置成处理所述存储器读取系统的所述输出存储器数据、所述接收到的写入数据和所述输入数据项的所述表示,以生成所述输入数据项的输出表示。
16.根据任一项前述权利要求所述的系统,其中,存储在所述存储器中的所述数据包括指示一个或多个数据集合的数据,并且所述存储器读取系统的所述输出存储器数据指示所述输入数据项是否属于所述一个或多个数据集合中的集合。
17.根据任一项前述权利要求所述的系统,其中,所述系统充当布隆过滤器的替代。
18.根据任一项前述权利要求所述的系统,其中,所述系统基于元学习框架被训练。
19.一种从神经网络存储器系统读取数据的方法,包括:
接收输入数据项的表示;
由查询神经网络处理所述输入数据项的所述表示以生成查询;
从不变键数据存储中检索用于对存储器的多个存储器位置进行索引的键数据;
由寻址系统处理所述查询和所述键数据以生成与所述多个存储器位置相关联的加权;以及
由存储器读取系统基于与所述多个存储器位置相关联的所生成的加权以及在所述多个存储器位置处存储的所述数据来从所述存储器输出输出存储器数据。
20.一种将数据写入神经网络存储器系统的方法,包括:
接收输入数据项的表示;
由查询神经网络处理所述输入数据项的所述表示以生成查询;
从不变键数据存储中检索用于对存储器的多个存储器位置进行索引的键数据;
由寻址系统处理所述查询和所述键数据以生成与所述多个存储器位置相关联的加权;
接收写入数据;以及
由存储器写入系统基于与所述多个存储器位置相关联的所生成的加权来将所接收的写入数据写入到所述存储器。
21.一种非暂时性计算机可读介质,所述非暂时性计算机可读介质包括计算机可读指令,所述计算机可读指令在被执行时,使一个或多个计算机实现根据权利要求1至18中的任一项所述的神经网络存储器系统或执行根据权利要求19或20中的任一项所述的方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862737840P | 2018-09-27 | 2018-09-27 | |
US62/737,840 | 2018-09-27 | ||
PCT/EP2019/076143 WO2020064988A1 (en) | 2018-09-27 | 2019-09-27 | Scalable and compressive neural network data storage system |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112789626A true CN112789626A (zh) | 2021-05-11 |
Family
ID=68136364
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980063938.9A Pending CN112789626A (zh) | 2018-09-27 | 2019-09-27 | 可扩展和压缩的神经网络数据储存系统 |
Country Status (4)
Country | Link |
---|---|
US (2) | US10846588B2 (zh) |
EP (1) | EP3841529A1 (zh) |
CN (1) | CN112789626A (zh) |
WO (1) | WO2020064988A1 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112567395A (zh) | 2018-06-12 | 2021-03-26 | 鹰图公司 | 计算机辅助调度系统的人工智能应用 |
WO2020064988A1 (en) | 2018-09-27 | 2020-04-02 | Deepmind Technologies Limited | Scalable and compressive neural network data storage system |
US11449268B2 (en) * | 2018-11-20 | 2022-09-20 | Samsung Electronics Co., Ltd. | Deep solid state device (deep-SSD): a neural network based persistent data storage |
US11238275B2 (en) * | 2019-11-08 | 2022-02-01 | Dst Technologies, Inc. | Computer vision image feature identification via multi-label few-shot model |
US11762990B2 (en) * | 2020-04-07 | 2023-09-19 | Microsoft Technology Licensing, Llc | Unstructured text classification |
US20210409445A1 (en) * | 2020-06-26 | 2021-12-30 | Zoho Corporation Private Limited | Machine learning-based sensitive resource collection agent detection |
US11741579B2 (en) * | 2020-11-16 | 2023-08-29 | Huawei Technologies Co., Ltd. | Methods and systems for deblurring blurry images |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108431832A (zh) * | 2015-12-10 | 2018-08-21 | 渊慧科技有限公司 | 利用外部存储器扩增神经网络 |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5303330A (en) * | 1991-06-03 | 1994-04-12 | Bell Communications Research, Inc. | Hybrid multi-layer neural networks |
US6341281B1 (en) * | 1998-04-14 | 2002-01-22 | Sybase, Inc. | Database system with methods for optimizing performance of correlated subqueries by reusing invariant results of operator tree |
US8428916B2 (en) * | 2008-10-07 | 2013-04-23 | Los Alamos National Security, Llc | Modeling of the radiation belt megnetosphere in decisional timeframes |
US20130132352A1 (en) * | 2011-11-23 | 2013-05-23 | Microsoft Corporation | Efficient fine-grained auditing for complex database queries |
CN102609446B (zh) * | 2012-01-05 | 2013-12-25 | 厦门市美亚柏科信息股份有限公司 | 一种分布式Bloom过滤系统及其使用方法 |
US10019353B2 (en) * | 2012-03-02 | 2018-07-10 | Longitude Enterprise Flash S.A.R.L. | Systems and methods for referencing data on a storage medium |
US10902043B2 (en) * | 2016-01-03 | 2021-01-26 | Gracenote, Inc. | Responding to remote media classification queries using classifier models and context parameters |
US10552038B2 (en) * | 2016-05-13 | 2020-02-04 | International Business Machines Corporation | Object storage architecture based on file_heat |
CN109906455A (zh) * | 2016-09-08 | 2019-06-18 | Aiq私人股份有限公司 | 视觉搜索查询中的对象检测 |
US10346727B2 (en) * | 2016-10-28 | 2019-07-09 | Adobe Inc. | Utilizing a digital canvas to conduct a spatial-semantic search for digital visual media |
WO2018085643A1 (en) * | 2016-11-04 | 2018-05-11 | Google Llc | Mixture of experts neural networks |
US10496885B2 (en) * | 2016-11-11 | 2019-12-03 | Qualcomm Incorporated | Unified embedding with metric learning for zero-exemplar event detection |
WO2018142212A1 (en) * | 2017-01-31 | 2018-08-09 | Deepmind Technologies Limited | Data-efficient reinforcement learning for continuous control tasks |
US10452526B2 (en) * | 2017-06-15 | 2019-10-22 | Microsoft Technology Licensing, Llc | Machine learning for constrained mutation-based fuzz testing |
US10678786B2 (en) * | 2017-10-09 | 2020-06-09 | Facebook, Inc. | Translating search queries on online social networks |
US11048978B2 (en) * | 2017-11-14 | 2021-06-29 | Magic Leap, Inc. | Meta-learning for multi-task learning for neural networks |
EP3769264A1 (en) * | 2018-05-18 | 2021-01-27 | Deepmind Technologies Limited | Meta-gradient updates for training return functions for reinforcement learning systems |
US11972343B2 (en) * | 2018-06-11 | 2024-04-30 | Inait Sa | Encoding and decoding information |
US10395169B1 (en) * | 2018-07-06 | 2019-08-27 | Global Elmeast Inc. | Self learning neural knowledge artifactory for autonomous decision making |
US10311058B1 (en) * | 2018-07-06 | 2019-06-04 | Global Elmeast Inc. | Techniques for processing neural queries |
WO2020064988A1 (en) | 2018-09-27 | 2020-04-02 | Deepmind Technologies Limited | Scalable and compressive neural network data storage system |
-
2019
- 2019-09-27 WO PCT/EP2019/076143 patent/WO2020064988A1/en unknown
- 2019-09-27 US US16/586,102 patent/US10846588B2/en active Active
- 2019-09-27 CN CN201980063938.9A patent/CN112789626A/zh active Pending
- 2019-09-27 EP EP19782527.6A patent/EP3841529A1/en active Pending
-
2020
- 2020-11-23 US US17/102,318 patent/US11983617B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108431832A (zh) * | 2015-12-10 | 2018-08-21 | 渊慧科技有限公司 | 利用外部存储器扩增神经网络 |
Non-Patent Citations (1)
Title |
---|
TIM KRASKA等: "The Case for Learned Index Structures", SIGMOD \'18: PROCEEDINGS OF THE 2018 INTERNATIONAL CONFERENCE ON MANAGEMENT, pages 489 - 504 * |
Also Published As
Publication number | Publication date |
---|---|
US11983617B2 (en) | 2024-05-14 |
US10846588B2 (en) | 2020-11-24 |
EP3841529A1 (en) | 2021-06-30 |
US20210150314A1 (en) | 2021-05-20 |
US20200104677A1 (en) | 2020-04-02 |
WO2020064988A1 (en) | 2020-04-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112789626A (zh) | 可扩展和压缩的神经网络数据储存系统 | |
US20200234102A1 (en) | Joint learning of local and global features for entity linking via neural networks | |
US11455473B2 (en) | Vector representation based on context | |
US11550871B1 (en) | Processing structured documents using convolutional neural networks | |
Ay Karakuş et al. | Evaluating deep learning models for sentiment classification | |
CN109478248B (zh) | 使用比较集对输入样本进行分类的方法、系统和存储介质 | |
CN110383299B (zh) | 记忆增强的生成时间模型 | |
EP3411835B1 (en) | Augmenting neural networks with hierarchical external memory | |
EP3295381B1 (en) | Augmenting neural networks with sparsely-accessed external memory | |
CN110945500A (zh) | 键值记忆网络 | |
EP3884426A1 (en) | Action classification in video clips using attention-based neural networks | |
US10755171B1 (en) | Hiding and detecting information using neural networks | |
US20200074277A1 (en) | Fuzzy input for autoencoders | |
US20240152749A1 (en) | Continual learning neural network system training for classification type tasks | |
CN113704466B (zh) | 基于迭代网络的文本多标签分类方法、装置及电子设备 | |
Olaode et al. | Adaptive bag‐of‐visual word modelling using stacked‐autoencoder and particle swarm optimisation for the unsupervised categorisation of images | |
US20210383226A1 (en) | Cross-transformer neural network system for few-shot similarity determination and classification | |
US20230186072A1 (en) | Extracting explanations from attention-based models | |
US20230334320A1 (en) | Latency-Aware Neural Network Pruning and Applications Thereof | |
CN117112724A (zh) | 搜索推送方法、装置、设备、存储介质和计算机程序产品 | |
CN117421669A (zh) | 扫描验真网页识别方法、装置、计算机设备和存储介质 | |
CN116881122A (zh) | 测试案例生成方法、装置、设备、存储介质和程序产品 | |
CN113887242A (zh) | 评论监测方法、介质、装置和计算设备 | |
CN111832436A (zh) | 基于多任务与弱监督的美丽预测方法、装置及存储介质 | |
CN115204177A (zh) | 解纠缠词嵌入的系统和方法 |
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 |