CN117157712A - 具有关联处理单元的基于n元组的分类 - Google Patents
具有关联处理单元的基于n元组的分类 Download PDFInfo
- Publication number
- CN117157712A CN117157712A CN202280025626.0A CN202280025626A CN117157712A CN 117157712 A CN117157712 A CN 117157712A CN 202280025626 A CN202280025626 A CN 202280025626A CN 117157712 A CN117157712 A CN 117157712A
- Authority
- CN
- China
- Prior art keywords
- tuple
- array
- interest
- row
- vector
- 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
- 239000013598 vector Substances 0.000 claims abstract description 58
- 238000000034 method Methods 0.000 claims description 22
- 230000003213 activating effect Effects 0.000 claims description 5
- 230000008569 process Effects 0.000 description 9
- 238000009825 accumulation Methods 0.000 description 8
- 210000004027 cell Anatomy 0.000 description 7
- 238000010586 diagram Methods 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000003058 natural language processing Methods 0.000 description 2
- 230000001537 neural effect Effects 0.000 description 2
- 241001061225 Arcos Species 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 230000000875 corresponding effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 229920006395 saturated elastomer Polymers 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G08—SIGNALLING
- G08B—SIGNALLING OR CALLING SYSTEMS; ORDER TELEGRAPHS; ALARM SYSTEMS
- G08B25/00—Alarm systems in which the location of the alarm condition is signalled to a central station, e.g. fire or police telegraphic systems
- G08B25/003—Address allocation methods and details
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/289—Phrasal analysis, e.g. finite state techniques or chunking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/284—Lexical analysis, e.g. tokenisation or collocates
-
- G—PHYSICS
- G08—SIGNALLING
- G08B—SIGNALLING OR CALLING SYSTEMS; ORDER TELEGRAPHS; ALARM SYSTEMS
- G08B23/00—Alarms responsive to unspecified undesired or abnormal conditions
-
- G—PHYSICS
- G08—SIGNALLING
- G08B—SIGNALLING OR CALLING SYSTEMS; ORDER TELEGRAPHS; ALARM SYSTEMS
- G08B25/00—Alarm systems in which the location of the alarm condition is signalled to a central station, e.g. fire or police telegraphic systems
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1006—Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/12—Bit line control circuits, e.g. drivers, boosters, pull-up circuits, pull-down circuits, precharging circuits, equalising circuits, for bit lines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K19/00—Record carriers for use with machines and with at least a part designed to carry digital markings
- G06K19/06—Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
- G06K19/067—Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components
- G06K19/07—Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components with integrated circuit chips
- G06K19/077—Constructional details, e.g. mounting of circuits in the carrier
- G06K19/07749—Constructional details, e.g. mounting of circuits in the carrier the record carrier being capable of non-contact communication, e.g. constructional details of the antenna of a non-contact smart card
- G06K19/07758—Constructional details, e.g. mounting of circuits in the carrier the record carrier being capable of non-contact communication, e.g. constructional details of the antenna of a non-contact smart card arrangements for adhering the record carrier to further objects or living beings, functioning as an identification tag
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K7/00—Methods or arrangements for sensing record carriers, e.g. for reading patterns
- G06K7/10—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
- G06K7/10009—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation sensing by radiation using wavelengths larger than 0.1 mm, e.g. radio-waves or microwaves
- G06K7/10366—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation sensing by radiation using wavelengths larger than 0.1 mm, e.g. radio-waves or microwaves the interrogation device being adapted for miscellaneous applications
- G06K7/10376—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation sensing by radiation using wavelengths larger than 0.1 mm, e.g. radio-waves or microwaves the interrogation device being adapted for miscellaneous applications the interrogation device being adapted for being moveable
- G06K7/10386—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation sensing by radiation using wavelengths larger than 0.1 mm, e.g. radio-waves or microwaves the interrogation device being adapted for miscellaneous applications the interrogation device being adapted for being moveable the interrogation device being of the portable or hand-handheld type, e.g. incorporated in ubiquitous hand-held devices such as PDA or mobile phone, or in the form of a portable dedicated RFID reader
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/80—Services using short range communication, e.g. near-field communication [NFC], radio-frequency identification [RFID] or low energy communication
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Emergency Management (AREA)
- Complex Calculations (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Toxicology (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Electromagnetism (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Computer Hardware Design (AREA)
- Microelectronics & Electronic Packaging (AREA)
Abstract
一种用于经由超维计算在感兴趣领域中进行N元组分类的系统包括关联存储器阵列和控制器。所述关联存储器阵列将超维向量存储在所述阵列的行中。所述超维向量表示所述感兴趣领域中的符号,并且所述阵列包括沿所述阵列的位线的部分的位线处理器。所述控制器激活所述阵列的行以利用所述位线处理器对所述超维向量执行XNOR、置换和相加操作,对其中具有N个符号的N元组进行编码,根据所述N元组生成所述感兴趣领域的一部分的指纹,将所述指纹存储在所述关联存储器阵列内,以及将输入序列与所存储的指纹之一进行匹配。
Description
相关申请的交叉引用
本申请要求享有于2021年3月30日递交的美国临时专利申请63/167,905的优先权,该申请通过引用并入本文。
技术领域
概括地说,本发明涉及基于N元组(N-gram)的分类,并且具体地说,本发明涉及使用超维向量的这种分类。
背景技术
超维计算(HDC)是一种用于模拟大脑的神经活动模式的计算范式,其考虑大多数神经元接收大量输入的事实。利用超维空间的点对神经活动模式进行建模,其中每个模式都是一个超维向量,被称为“超向量”,并且每个超向量可以具有到其的1000到10,000个点。
HDC已经用于许多不同类型的学习应用,这些应用涉及对非常大的模式的操作和比较,通常是存储器中的(in-memory)。例如,Karunaratne等人的美国专利公开2020/0380384描述了一种用于使用存储器中计算进行针对推理任务(例如语言分类)的超维计算的系统,其中存储器阵列是忆阻阵列。
现在参考图1,图1示出了用于语言分类的HDC过程。单一语言的大量文本主体10,例如许多书籍、报纸、网站等,通常可以由一组特征向量表示,每个特征向量通常非常大,例如具有16K比特。可以将特征向量提供给特征提取器12,特征提取器12可以从文本的特征向量中提取“N元组”。N元组是N个项的有序序列。在语言分类的情况中,N元组是N个字母的序列,按照它们在文本中出现的顺序排列。因此,如果N是3并且文本是“hello world”,则有9个不同的3元组:“hel”、“ell”、“llo”、“lo_”、“o_w”、“_wo”、“wor”、“orl”和“rld”,其中_指示空格。这可以有效地区分序列“hel”和“hle”。
语言分类器14可以对N元组进行操作,以确定文本10的语言的特性指纹(fingerprint)向量并且可以将该指纹存储在数据库16中。语言分类器14可以对多个文本主体10进行操作,每个文本主体采用不同的语言,以生成每种语言的指纹向量。
当接收到未知语言的一段文本时,特征提取器12可以生成针对其的N元组,并且可以将其提供给语言分类器14。语言分类器14又可以将其指纹向量与每种语言的指纹向量进行比较,以确定新的文本片段最接近哪种语言。
在HDC中,语言的每个字母或符号(包括空格字符)由D维的单独超向量V表示。通常,D可以超过10,000比特长,并且每个比特可以被随机设置为1或0。由于这种随机性,不相关的超向量几乎彼此正交。
现在简要参考图2,其示出了16384比特的3个超向量V,代表英语中的字母“a”、“b”和“z”。在示例中,“a”的超向量以序列1001开始并以01结束,而“b”的超向量以序列0011开始并以10结束。“z”的超向量以0101开始并以10结束。
为了表示HDC中的N元组,特征提取器12在表示N元组中的字母和/或符号(例如“llo”)的N个超向量上计算以下函数:
Ak = β(N-1)V[1] XNOR β(N-2)V[2] XNOR … XNOR β1V[N-1] XNOR V[N] (1)
其中,Ak是第k个N元组的HDC表示,XNOR是互斥NOR运算,并且β(N-X)V[X]指示对表示N元组中的第X个符号的超向量V[X]进行N-X置换操作(即移位和旋转N-X次)。
在HDC中,为了创建语言指纹,语言分类器14首先将文本10的大量N元组Ak转换成双极性形式。转换为双极性形式涉及将每个“0”值转换为“-1”值。语言分类器14然后将大量双极性N元组Ak添加到带符号的全局语言向量中,其中HDC N元组Ak的每个向量元素被单独求和。最后,语言分类器14将带符号的全局语言向量二值化为二元全局语言向量(即语言指纹),并将该语言指纹存储在数据库16中。
一旦已经创建了各种语言指纹,语言分类器14然后就可以实现“检索阶段”,其中未知语言的指纹被生成,然后与数据库16中存储的指纹进行比较。通常利用K最近邻(KNN)相似性搜索来执行比较,并且产生“前K个(Top-K)”候选语言指纹。
由于超向量太大,因此在标准CPU(中央处理单元)上执行计算公式1的N元组的操作在计算上很困难。Karunaratne等人在忆阻阵列上实现了存储器中HDC。然而,Karunaratne等人宣称公式1在计算上很难按原样实现。因此,他们首先将公式1转换为“2N-1个小项的逐分量求和”,然后,由于总和随N呈指数增长,因此他们发现了2小项近似值,当N为偶数时该2小项近似值为真。
发明内容
根据本发明的优选实施例,提供了一种用于经由超维计算在感兴趣领域中进行N元组分类的系统,所述系统包括关联存储器阵列和控制器。所述关联存储器阵列将超维向量存储在所述阵列的行中。所述超维向量表示感兴趣领域中的符号,并且所述阵列包括沿所述阵列的位线的部分的位线处理器。所述控制器激活所述阵列的行以利用所述位线处理器对所述超维向量执行XNOR、置换和相加操作,对其中具有N个符号的N元组进行编码,根据所述N元组生成所述感兴趣领域的一部分的指纹,将所述指纹存储在所述关联存储器阵列内,以及将输入序列与所存储的指纹之一进行匹配。
另外,根据本发明的优选实施例,所述感兴趣领域是音乐。
此外,根据本发明的优选实施例,所述控制器存储第一N元组的中间N元组结果,并生成后续N元组,所述后续N元组是根据其先前N元组的所述中间N元组结果生成的。
根据本发明的优选实施例,还提供了一种用于经由超维计算在感兴趣领域中进行N元组分类的方法。所述方法包括:将超维向量存储在关联存储器阵列的行中;以及激活所述阵列的行以利用所述位线处理器对所述超维向量执行XNOR、置换和相加操作,对其中具有N个符号的N元组进行编码,其中N大于2,根据所述N元组生成所述感兴趣领域的一部分的指纹,将所述指纹存储在所述关联存储器阵列内,以及将输入序列与所存储的指纹之一进行匹配。
另外,根据本发明的优选实施例,所述方法包括:存储第一N元组的中间N元组结果,并生成后续N元组,所述后续N元组是根据其先前N元组的所述中间N元组结果生成的。
附图说明
被认为是本发明的主题在说明书的结尾部分被特别指出并明确要求保护。然而,本发明关于组织和操作方法二者,连同其目的、特征和优点,在阅读附图时可以通过参考以下具体实施方式得到最好的理解,其中:
图1是用于语言分类的HDC过程的示意图;
图2是3个示例性超向量V的示意图;
图3A、3B和3C是可用于本发明的系统的关联处理单元的元件的示意图;
图4是超向量的3个存储体的示意图;
图5是图3A、图3B和图3C的APU可以针对N元组分类的HDC过程实现的操作类型的示意图;
图6是针对示例性3元组“hel”和下一个3元组“ell”的示例性HDC N元组的创建的示意图;并且
图7是使用图6的示例性HDC N元组A3(hel)来创建语言指纹的过程的示意图。
应当理解,为了说明的简单和清晰,图中所示的元素未必按比例绘制。例如,为了清楚起见,一些元素的尺寸可能相对于其他元素被夸大了。此外,在认为适当的情况下,附图标记可以在附图中重复以指示相应或类似的元素。
具体实施方式
在下文的具体实施方式中,阐述了大量具体细节以便提供对本发明的透彻理解。然而,本领域的技术人员将理解是,可以在不使用这些具体细节的情况下来实施本发明。在其他实例中,没有对公知的方法、过程和组件进行详细描述,以防止模糊本发明。
申请人已经认识到不需要近似超维计算(HDC)N元组公式(公式1),也不需要要求N仅是偶数。申请人已经认识到,当HDC N元组操作在关联处理单元(APU)(例如可从美国GSI技术股份有限公司(GSI Technologies Inc.)购买的Gemini APU)上实现时,计算HDC N元组公式的操作的数量与N呈线性关系,使得N元组分类(尤其是HDC语言分类)的操作显著更快且更高效。
简要参考图3A、图3B和图3C,它们一起示出了APU 14的元件。APU 14包括关联存储器阵列30、行解码器32、列解码器36和控制器34。阵列30包括多个部分(图3A中示出了一个),每个部分具有布置成行(由字线定义)和列(由位线定义)的多个单元,其中可以把要操作的向量存储在列中,并且可以一次存储多个向量。阵列30可以是单个阵列,或者它可以跨多个存储器体分布。例如,在于2012年8月7日授权的美国专利No.8,238,173(标题为“USINGSTORAGE CELLS TO PERFORM COMPUTATION”)和于2018年1月2日授权的美国专利No.9,859,005(标题为“MEMORY DEVICE”)中描述了关联存储器存储装置和关联处理单元;上述二者均转让给申请人并通过引用并入本文。
行解码器32可以同时激活多个字线,这可以导致那些行中的单元被激活并且将它们的数据提供给它们的关联位线。一个部分中的每个位线可以连接一列单元,并且当多个字线被激活时,每个位线可以接收其列中的激活的单元的布尔函数。列解码器36可以在其中具有感测放大器,该感测放大器可以接收每列的布尔函数的结果。每个位线可以影响位线处理器(图3B),将其结果提供给列解码器36并对其列中的单元进行操作。示例性位线处理器在于2018年12月11日授权的美国专利No.10,153,042(名称为“IN-MEMORYCOMPUTATIONAL DEVICE WITH BIT LINE PROCESSORS”)中进行了描述,该专利已经转让给申请人并通过引用并入本文。
每个部分(图3C)可以提供针对向量的单个比特的位线处理器BP。一列位线处理器可以对单个向量进行操作,并且一行位线处理器可以对多个向量的相同比特进行操作,从而形成存储器体。激活一个部分的多行可能会导致对多个向量的同一比特进行并发计算。激活存储向量的多个部分的多行可以导致对多个向量的并发计算。控制器34可以控制对行和列的激活以执行特定计算。例如,2018年11月29日公开的美国专利公开No.2018/0341642(标题为“NATURAL LANGUAGE PROCESSING WITH KNN”),其被转让给申请人并通过引用并入本文,描述了可由APU 14执行的示例性K最近邻(KNN)搜索操作。
根据本发明的优选实施例,控制器34可以实现HDC分类器,并且超向量V可以被水平地(即,按行)存储在关联存储器阵列30中。因为每个超向量V可以很大,因此它们可以比存储器阵列30的单行更长。根据本发明的优选实施例并且如图4所示,每个超向量V可以是16K比特向量,并且可以被水平地存储在全部八个存储体31中,其中存储体31的每行存储2K个比特。图4示出了3个存储体,存储体0、存储体1和存储体7,分别存储比特0-2047、2048-4095和14337-16383。
对于每次计算,两个或更多个超向量V可以被存储在位线处理器BP的相关行中。相关控制器34可以一次激活多个行,从而实现每个位线处理器BP中的相关行之间的布尔运算。应当理解,每个位线处理器BP可以对单个比特i进行操作。每个位线处理器BP的输出可以由列解码器36感测,并且如果必要的话,被复制回阵列30的另一行中。以这种方式,可以对超向量V的所有比特并行地执行每个布尔运算。
公式1复制于此:
Ak = β(N-1)V[1] XNOR β(N-2)V[2] XNOR … XNOR β1V[N-1] XNOR V[N] (1)
其中,如前所述,Ak是第k个N元组的HDC元组表示,XNOR是互斥NOR运算,并且β(N-X)V[X]指示对表示N元组中的第X个符号的超向量V[X]进行N-X置换操作(即移位和旋转N-X次)。
现在参考图5,图5示出了控制器34可以针对背景技术中描述的用于语言分类的HDC过程实现的操作类型。示出了三个示例性超向量33、35和37,代表字母“a”和“b”(分别是超向量33和35)和“累加”向量(超向量37)。如先前示例所述,“a”的超向量以序列10开始并以1001结束,而“b”的超向量以序列01开始并以1100结束。
累加向量存储了不是二元值的和,而是“双极性”值的和。可以通过将二元向量的任何为“0”的比特转换为“-1”来将二元向量转换为双极性向量。因此,双极性向量的值为“1”和“-1”。累加向量可以对相关二元向量的双极性版本进行累加。在图5中,累加向量以序列75、3654开始并以序列895、-1、-1542和32767结束。
为了实现XNOR运算,控制器34可以激活存储待相乘的两个超向量V的两行,并且可以指示位线处理器BP对它们实现按比特XNOR运算。然后,控制器34可以将由所有列中的感测放大器接收到的结果复制回阵列的所选择行。在图5的示例中,控制器34可以激活行33和35,并且可以将它们之间的XNOR运算的结果存储在行40中。请注意,行40与行33和行35对齐,因此向量33和35的最左边比特的XNOR(即10与01XNOR)位于行40的最左边列(即,00)。
为了实现置换操作,控制器34可以激活相关数据行,并且可以利用寄存器和逻辑单元(未示出)将数据行的所有数据右移一个单元,然后将该行的最右边的比特旋转(即写入)到该行的最左边的比特。在图5中,行42示出了对超向量33进行置换操作的结果,该超向量以序列10开始并以1001结束,并且被置换为以序列x100结束的序列00,其中“x”是超向量33的原始版本中未示出的序列部分的经移位的值。
生成全局语言向量的加法运算可以被实现为累加行36和所选择的超向量行(例如表示字母“a”的行33)之间的整数累加运算。为此,控制器34可以在超向量行33和累加行36之间执行整数加法运算(如2019年9月3日授权的标题为“CONCURRENT MULTI-BIT ADDER”的US10,402,165中所描述的,该专利已经转让给申请人并通过引用并入本文),其中整数加法函数可以被修改以接收超向量行33的双极性表示。控制器34可以将结果复制回累加行37。在图5中,行44示出了累加行40与超向量行33的双极性版本之间的加法运算的结果。然而,应当注意,最右边单元的值(行37中标记为46和行44中标记为48)并未改变,这是因为其计数器在32767处已饱和。
现在参考的图6示出了3元组“hel”的示例性向量A3(hel)的创建,其中每个示例性向量V具有6个元素。在该示例中,“h”由序列100101表示,“e”由序列001110表示,并且“l”由序列111001表示,并且每个序列被存储在单独的行中,分别被标记为50、52和54。
控制器34可以首先对“h”、“e”和“l”的超向量进行置换,其中“h”的超向量被置换两次,“e”的超向量被置换一次,而“l”的超向量根本不被置换。在该示例中,置换是左移然后旋转,其中对于经两次置换的“h”,由箭头51和53指示旋转,并且对于经置换的“e”,由箭头55指示旋转。置换的结果分别存储在行54和行56中。
然后,控制器34可以对经置换的值一起进行XNOR,以产生A3(hel)=β2'h'XNORβ1'e'XNOR'l',即“hel”的3元组。为此,控制器34可以首先激活行54和58以产生“l”与经置换“e”的XNOR,并且可以将中间结果存储在行59中。控制器34然后可以激活行59,其中行56存储经两次置换的“h”。控制器34可以在行60中写入结果序列110011,即“hel”的HDC N元组A3(hel)。这些操作是按比特操作,对于最左边的比特由箭头57指示。
对于下一个N元组(在该示例中为“ell”),控制器34可以利用存储在行59中的中间结果,行59存储“一次置换“e”和未经置换的“l”。控制器34可以对存储在行59中的中间结果进行置换(由箭头61指示),以生成经两次置换的“e”和经一次置换的“l”(序列001101,存储在行62中),并且然后可以将行62与来自行54的未经置换的“1”(序列111001)进行XNOR(由箭头63指示),生成行64中的A3(ell),即序列001011。
为了生成下一个3元组“llo”,控制器34可以通过从先前3元组A3(ell)中减去“e”的经两次置换的超向量,根据先前3元组“ell”,首先生成下一个中间超向量,即中间向量T。对于先前3元组,控制器34可以置换临时向量T,并且可以将其添加到下一个符号(即“o”的符号)的超向量。
一般过程可以被定义为:
1、对每个符号Q的超向量进行两次置换,以生成P2(Q)并存储它们。
2、给定计算出的3元组A3(UVX),通过从计算出的3元组A3(UVX)中减去经两次置换的超向量P2(U)来生成临时向量T(即T=A3(UVX)-P2(U))。减法运算可以是稍作修改的XNOR运算。
3、通过对T进行置换来计算下一个3元组,以生成P1(T),并向其添加下一个超向量(即A3(VXY)=P1(T)+Y)。
控制器34可以对每个3元组重复该过程。此外,只要为每个符号存储最大置换P(n-1),该过程就可以扩展到N元组。因此,在计算每个顺序N元组时进行单个置换的性能提升需要每个符号额外存储一个经多次置换的向量。
因此,对于除第一个之外的每个N元组(其必须被完整计算),控制器34可以仅对临时向量T进行置换并将其与下一个符号的超向量进行XNOR,而不是完整地实现公式1。
使用图6的示例性HDC N元组A3(hel)创建语言指纹的过程在图7中示出,现在参考图7。如上所述,控制器34可以将行60的HDC N元组A3(hel)的双极性形式(在行68中示为序列11-1-111)添加到存储在行70中的累加带符号全局语言向量,其中双极性N元组Ak的每个向量元素被单独求和。结果显示在行72中,尽管控制器34可以替代地将结果写回到行70中。一旦所有双极性N元组都已被累加,控制器34就可以通过将行72行中的每个正向量元素替换为“1”并将行72中的每个零或负向量元素替换为“0”,将存储在行72中的所得的带符号的全局语言向量二值化为存储在行74中的语言指纹。
应当理解,控制器34生成N元组Ak的操作是简单的行操作,其可以在存储器阵列30中对每个序列的比特并行执行。因此,每个操作可以只需要几个周期。类似地,控制器34生成每个语言指纹的操作也可以在存储器阵列30中并行执行。此外,一旦确定了第一N元组,就可以使用非常简单的操作,根据先前N元组的中间计算来生成每个后续N元组。
控制器34可以将所得的语言指纹存储在存储器阵列30的行中,并且可以对每种感兴趣的语言重复上述操作,从而在存储器阵列30的一部分中生成一组语言指纹。
根据本发明的优选实施例,控制器34还可以对存储在存储器阵列30中的一组语言指纹实施语言分类器。当控制器34可以接收查询文本时,控制器34可以通过执行上文讨论的操作来生成查询文本的查询语言指纹。
然后,为了确定编写查询文本所用的语言,控制器34可以计算查询语言指纹与存储在存储器阵列30中的每个语言指纹之间的距离,例如汉明距离。使用美国专利公开No.2018/0341642(标题为“NATURAL LANGUAGE PROCESSING WITH KNN”)中讨论的KNN搜索操作,控制器34可以比较所得的距离值,并且可以选择距离最小的K个。足够小的距离表明查询文本的N元组频率接近于语言指纹的语言的频率。因此,查询文本很可能是用匹配的语言编写的。
下面的表1示出了在APU和英特尔CPU的单线程上运行此类指纹比较时的结果。
上表是每个存储体的表,并且APU 14中有64个存储体。因此,APU 14比64核CPU快55倍。
应当理解,上文描述的HDC过程可以针对可以应用N元组的任何类型的输入序列分类来实现。其不限于本文提供的对文本或语音的语言进行分类的示例。它还可以用于对其他感兴趣领域进行分类,例如语音、音乐、EEG等。在后者中,超维向量可以表示相关感兴趣领域中的符号。例如,Mickael Arcos于2009年上传到arxiv并通过引用被并入本文的文章“CLARAPRINT:AChord and Melody Based Fingerprint for Western Classical MusicCover Detection”(https://arxiv.org/ftp/arxiv/papers/2009/2009.10128.pdf)讨论了通过将和弦定义为音乐字母表来生成用于音乐检索的音乐指纹的方法。控制器34可以实施该文章描述的方法。该文章使用术语“Shingle”来表示N元组,并建议进行2-7个shingles(即2元组到7元组)。
尽管本文已经说明和描述了本发明的某些特征,但本领域普通技术人员现在将想到许多修改、替换、改变和等同物。因此,应当理解,所附权利要求旨在涵盖落入本发明真正精神内的所有这些修改和变化。
Claims (6)
1.一种用于经由超维计算在感兴趣领域中进行N元组分类的系统,所述系统包括:
关联存储器阵列,所述阵列将超维向量存储在所述阵列的行中,所述超维向量表示所述感兴趣领域中的符号,所述阵列包括沿所述阵列的位线的部分的位线处理器;以及
控制器,其用于激活所述阵列的行以利用所述位线处理器对所述超维向量执行XNOR、置换和相加操作,对其中具有N个符号的N元组进行编码,其中N大于2,根据所述N元组生成所述感兴趣领域的一部分的指纹,将所述指纹存储在所述阵列内,以及将输入序列与所存储的指纹之一进行匹配。
2.根据权利要求1所述的系统,其中,所述感兴趣领域是音乐。
3.根据权利要求1所述的系统,所述控制器用于存储第一N元组的中间N元组结果,并生成后续N元组,所述后续N元组是根据其先前N元组的所述中间N元组结果生成的。
4.一种用于经由超维计算在感兴趣领域中进行N元组分类的方法,所述方法包括:
将超维向量存储在关联存储器阵列的行中,所述超维向量表示所述感兴趣领域中的符号,所述阵列包括沿所述阵列的位线的部分的位线处理器;以及
激活所述阵列的行以利用所述位线处理器对所述超维向量执行XNOR、置换和相加操作,对其中具有N个符号的N元组进行编码,其中N大于2,根据所述N元组生成所述感兴趣领域的一部分的指纹,将所述指纹存储在所述关联存储器阵列内,以及将输入序列与所存储的指纹之一进行匹配。
5.根据权利要求4所述的方法,其中,所述感兴趣领域是音乐。
6.根据权利要求1所述的方法,并且包括存储第一N元组的中间N元组结果,并生成后续N元组,所述后续N元组是根据其先前N元组的所述中间N元组结果生成的。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202163167905P | 2021-03-30 | 2021-03-30 | |
US63/167,905 | 2021-03-30 | ||
PCT/IB2022/052931 WO2022208378A1 (en) | 2021-03-30 | 2022-03-30 | N-gram based classification with associative processing unit |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117157712A true CN117157712A (zh) | 2023-12-01 |
Family
ID=83450621
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280025626.0A Pending CN117157712A (zh) | 2021-03-30 | 2022-03-30 | 具有关联处理单元的基于n元组的分类 |
Country Status (4)
Country | Link |
---|---|
US (2) | US20220318508A1 (zh) |
KR (1) | KR20230155026A (zh) |
CN (1) | CN117157712A (zh) |
WO (1) | WO2022208378A1 (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110013442A1 (en) * | 2009-07-16 | 2011-01-20 | Avidan Akerib | Using storage cells to perform computation |
US20170316829A1 (en) * | 2013-11-28 | 2017-11-02 | Gsi Technology Inc. | In-memory computational device with bit line processors |
US20180341642A1 (en) * | 2016-07-17 | 2018-11-29 | Gsi Technology Inc. | Natural language processing with knn |
US20200379673A1 (en) * | 2019-05-30 | 2020-12-03 | International Business Machines Corporation | Device for high dimensional computing comprising an associative memory module |
US20200381048A1 (en) * | 2019-05-30 | 2020-12-03 | International Business Machines Corporation | Hyper-dimensional computing device |
WO2020240168A1 (en) * | 2019-05-24 | 2020-12-03 | University Of Southampton | Computer-implemented method for creating encoded data |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8005782B2 (en) * | 2007-08-10 | 2011-08-23 | Microsoft Corporation | Domain name statistical classification using character-based N-grams |
JP5115991B2 (ja) * | 2008-04-30 | 2013-01-09 | 独立行政法人産業技術総合研究所 | 物体の状態検出装置および方法 |
US20120280040A1 (en) * | 2011-05-06 | 2012-11-08 | Verizon Patent And Licensing Inc. | Wireless-based checkout and loss prevention |
US9993166B1 (en) * | 2013-06-21 | 2018-06-12 | Fitbit, Inc. | Monitoring device using radar and measuring motion with a non-contact device |
US10037821B2 (en) * | 2013-12-27 | 2018-07-31 | General Electric Company | System for integrated protocol and decision support |
US9967259B2 (en) * | 2014-07-18 | 2018-05-08 | Facebook, Inc. | Controlling devices by social networking |
CA3055747A1 (en) * | 2017-03-07 | 2018-09-13 | Medline Industries, Inc. | Sensor for absorbent article |
US10846321B2 (en) * | 2018-05-31 | 2020-11-24 | Robert Bosch Gmbh | System and method for large scale multidimensional spatio-temporal data analysis |
TWI729334B (zh) * | 2018-06-07 | 2021-06-01 | 荷蘭商Asml荷蘭公司 | 用於判定器件之控制方案的方法、電腦程式和系統及用於判定多個器件處理之基板的方法 |
US10650358B1 (en) * | 2018-11-13 | 2020-05-12 | Capital One Services, Llc | Document tracking and correlation |
US10949214B2 (en) * | 2019-03-29 | 2021-03-16 | Intel Corporation | Technologies for efficient exit from hyper dimensional space in the presence of errors |
US10769150B1 (en) * | 2019-12-26 | 2020-09-08 | Snowflake Inc. | Pruning indexes to enhance database query processing |
-
2022
- 2022-03-30 US US17/708,044 patent/US20220318508A1/en active Pending
- 2022-03-30 KR KR1020237037384A patent/KR20230155026A/ko not_active Application Discontinuation
- 2022-03-30 US US17/708,043 patent/US11954995B2/en active Active
- 2022-03-30 CN CN202280025626.0A patent/CN117157712A/zh active Pending
- 2022-03-30 WO PCT/IB2022/052931 patent/WO2022208378A1/en active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110013442A1 (en) * | 2009-07-16 | 2011-01-20 | Avidan Akerib | Using storage cells to perform computation |
US20170316829A1 (en) * | 2013-11-28 | 2017-11-02 | Gsi Technology Inc. | In-memory computational device with bit line processors |
US20180341642A1 (en) * | 2016-07-17 | 2018-11-29 | Gsi Technology Inc. | Natural language processing with knn |
WO2020240168A1 (en) * | 2019-05-24 | 2020-12-03 | University Of Southampton | Computer-implemented method for creating encoded data |
US20200379673A1 (en) * | 2019-05-30 | 2020-12-03 | International Business Machines Corporation | Device for high dimensional computing comprising an associative memory module |
US20200381048A1 (en) * | 2019-05-30 | 2020-12-03 | International Business Machines Corporation | Hyper-dimensional computing device |
Also Published As
Publication number | Publication date |
---|---|
US20220318508A1 (en) | 2022-10-06 |
US20220327348A1 (en) | 2022-10-13 |
WO2022208378A1 (en) | 2022-10-06 |
KR20230155026A (ko) | 2023-11-09 |
US11954995B2 (en) | 2024-04-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Joshi et al. | Language geometry using random indexing | |
US12073328B2 (en) | Integrating a memory layer in a neural network for one-shot learning | |
Wang et al. | Sequential projection learning for hashing with compact codes | |
US20180341642A1 (en) | Natural language processing with knn | |
US11574209B2 (en) | Device for hyper-dimensional computing tasks | |
Wang et al. | Improved handwritten digit recognition using quantum k-nearest neighbor algorithm | |
CN109669962A (zh) | 精确指数和准确softmax计算 | |
US10971226B2 (en) | Hyper-dimensional computing device | |
Shao et al. | Sparse spectral hashing | |
Kamgar et al. | Matrix profile xv: Exploiting time series consensus motifs to find structure in time series sets | |
Xu et al. | Semi-supervised feature selection based on least square regression with redundancy minimization | |
Wang et al. | A differential evolution approach to feature selection and instance selection | |
Qiu et al. | A neuromorphic architecture for context aware text image recognition | |
Chen et al. | Multi-view representation learning for data stream clustering | |
Han et al. | Generalizing long short-term memory network for deep learning from generic data | |
Malik et al. | Extended features based random vector functional link network for classification problem | |
Abinaya et al. | Randomized kernel approach for named entity recognition in Tamil | |
Duan et al. | A brain-inspired low-dimensional computing classifier for inference on tiny devices | |
Zhang et al. | ELIS++: a shapelet learning approach for accurate and efficient time series classification | |
Liu et al. | Pim-dh: Reram-based processing-in-memory architecture for deep hashing acceleration | |
Joshi et al. | Language recognition using random indexing | |
US20220318508A1 (en) | N-gram based classification with associative processing unit | |
Yammahi et al. | An efficient technique for searching very large files with fuzzy criteria using the pigeonhole principle | |
Wang et al. | Nonlinear feature selection neural network via structured sparse regularization | |
CN110019815B (zh) | 利用knn的自然语言处理 |
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 |