JP2009503732A - 選択されたセグメントのビット平面表現を用いた連想マトリックス法、システムおよびコンピュータプログラム製品 - Google Patents

選択されたセグメントのビット平面表現を用いた連想マトリックス法、システムおよびコンピュータプログラム製品 Download PDF

Info

Publication number
JP2009503732A
JP2009503732A JP2008525098A JP2008525098A JP2009503732A JP 2009503732 A JP2009503732 A JP 2009503732A JP 2008525098 A JP2008525098 A JP 2008525098A JP 2008525098 A JP2008525098 A JP 2008525098A JP 2009503732 A JP2009503732 A JP 2009503732A
Authority
JP
Japan
Prior art keywords
bit
count
plane
bit plane
matrix
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2008525098A
Other languages
English (en)
Other versions
JP5235666B2 (ja
Inventor
レメン,マイケル・ジェイ
フレミング,ジェイムズ・エス
アパリシオ,マニュエル,ザ・フォース
Original Assignee
サフロン・テクノロジー,インコーポレイテッド
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 サフロン・テクノロジー,インコーポレイテッド filed Critical サフロン・テクノロジー,インコーポレイテッド
Publication of JP2009503732A publication Critical patent/JP2009503732A/ja
Application granted granted Critical
Publication of JP5235666B2 publication Critical patent/JP5235666B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/213Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods
    • G06F18/2135Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods based on approximation criteria, e.g. principal component analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • 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

連想マトリックス圧縮方法、システム、コンピュータプログラム製品およびデータ構造は、属性の対の中で関連を示すカウントを含む連想マトリックスを圧縮する。圧縮を可能にするために、少なくとも1つのカウントを有する連想マトリックスのそれらの選択されたセグメントの選択的ビット平面表現が行われる。さらに具体的には、それぞれが属性の対の1より大きい部分集合を定義するセグメントの集合が生成される。少なくとも1つのカウントを有するそれらのセグメントの選択的識別情報が格納される。それぞれの識別されたセグメントに関連付けられる少なくとも1つのカウントもまた、少なくとも1つのビット平面表現として格納される。少なくとも1つのビット平面表現は、関連付けられたビット平面に対応するカウントのビット位置に関して、少なくとも1つの関連付けられたカウントの値を識別する。

Description

本発明は、知識管理システム、方法およびコンピュータプログラム製品に関し、さらに詳細には、連想メモリシステム、方法およびコンピュータプログラム製品に関する。
連想メモリはまた、内容アドレス可能メモリとも呼ばれ、パターン整合およびパターン認識、エキスパートシステムおよび人工知能の分野に広く用いられている。広く用いられている連想メモリは、ホップフィールド型人工ニューラルネットワークである。ホップフィールド型人工ニューラルネットワークは、例えば、ホップフィールド(Hopfield)に付与された「Electronic Network for Collective Decision Based on Large Number of Connections Between Signals」という名称の米国特許第4,660,166号に記載されている。
連想メモリは、従来の逆伝搬ネットワークにおける問題を回避する可能性があるが、連想メモリは、スケーリングおよび偽記憶の問題を生じる可能性がある。連想メモリにおける最近の改良により、これらの問題および他の問題を解決しようとしている。例えば、共同発明者であるAparicio、IV et al.に付与された「Artificial Neural Networks Including Boolean−Complete Compartments」という名称の米国特許第6,052,679号は、複数の人工ニューロンと、それぞれが人工ニューロンのそれぞれの対を連結する複数のブーリアンコンプリートコンパートメント(Boolean−complete compartment)を提供する。ブーリアンコンプリートコンパートメントを提供することによって、偽相補記憶は回避されることができる。
残念なことに、実世界の問題を克服するために、連想メモリの使用を制限し得る基本的なスケーリング問題がある場合がある。特に、多くの連想メモリは、入力数の関数として幾何的にスケーリングをする。この幾何的なスケーリングはそのような技術を保証する複雑さのスケールにおいてアプリケーションをサポートすることは不合理的である可能性がある。
連想メモリにおけるスケーリングは、共同発明者であるAparicio、IV et al.に付与された「Artificial Neurons Including Power Series of Weights and Counts That Represent Prior and Next Associations」という名称の米国特許第6,581,049号において検討されている。本特許は、本発明の譲受人に譲渡され、この結果、その開示は、本明細書に完全に記載されているように、参照によりその全体を本明細書に組み込まれる。米国特許第6,581,049号において記載されたように、人工ニューロンは、複数の入力と、それぞれが複数の入力のそれぞれに関連付けられる複数の樹状突起を含む。各樹状突起は、重みのべき級数を含み、べき級数の各重みは、関連付けされたべき級数に対する関連付けされたカウントを含む。重みをべき級数として表すことによって、リソースの消費が削減されることができる。大きな数の入力は、実世界システムを用いて処理されることができ、それによって実世界へ適用について解決することができる。また、Cabana et al.に付与された「Artificial Neurons Including Weights That Define Maximal Projections」という名称で2003年2月13日に出願された米国特許出願第2003/0033265A1号も参照のこと。この特許出願は、本発明の譲受人に譲渡され、この結果、その開示は、本明細書に完全に記載されているように、参照によりその全体を本明細書に組み込まれる。
米国特許第6,581,049号および米国特許出願第2003/0033265A1号に記載された技術にもかかわらず、大規模な連想マトリックスのロスのない圧縮を可能にすると同時に、新たな関連のランダムアクセス観察(書き込み)および格納された関連からのランダムアクセス画像化(読み出し)を依然として可能にする連想メモリシステム、方法およびコンピュータプログラム製品を提供する需要が引き続きある。
本発明の例示の実施形態による連想マトリックスの方法、システム、コンピュータプログラム製品およびデータ構造は、属性の複数対の間の関連を表す複数のカウントを含む連想マトリックスを圧縮する。本発明の一部の実施形態によれば、圧縮を可能にするために、関連付けられる少なくとも1つのカウントを有する連想マトリックスの選択されたセグメントの選択的ビット平面表現が実行される。さらに具体的に言えば、本発明の一部の実施形態によれば、それぞれが属性の複数対の1より大きい部分集合を定義するセグメントの集合が生成される。関連付けられる少なくとも1つのカウントを有するそれらのセグメントの選択された識別情報が格納される。それぞれの識別されたセグメントに関連付けられる少なくとも1つのカウントもまた、少なくとも1つのビット平面表現として格納される。少なくとも1つのビット平面表現は、関連付けられたビット平面に対応するカウントのビット位置に関して、少なくとも1つの関連カウントの値を識別する。
本発明の他の実施形態によれば、少なくとも1つのビット平面表現としてそれぞれの識別されたセグメントに関連付けられる少なくとも1つのカウントの格納は、それぞれの識別されたセグメントに関連付けられる少なくとも1つのカウントを複数のビット平面に分割することによって行われてもよい。ビット平面の少なくとも1つが識別され、該ビット平面は該ビット平面に関連付けられる非ゼロのビット平面データを有する。関連付けられる非ゼロのビット平面データを有する少なくとも1つのビット平面における非ゼロのビット平面データの位置を識別するマップが生成される。識別された少なくとも1つのビット平面に関連付けられる非ゼロのビット平面データの少なくとも1つの表現が生成される。次に、非ゼロのビット平面データのマップおよび少なくとも1つの表現が格納される。
本発明の他の実施形態によれば、関連付けられる少なくとも1つのカウントを有するこれらのセグメントの選択された識別情報を連続範囲に再編成することによって、さらなる圧縮が行われてもよい。次に、連続範囲のそれぞれのセグメントに関連付けられる少なくとも1つのカウントが、上述したように、少なくとも1つのビット平面表現として格納される。上述した実施形態によれば、少なくとも1つのカウントが格納されてもよい。
本発明の例示の実施形態によれば、観察される属性が、関連付けられる少なくとも1つのカウントを有する連想マトリックスのセグメントの識別情報に存在する場合には、観察される属性に対応する少なくともビット平面表現に観察される属性の間の関連を追加することによって、関連は、連想マトリックスの中で観察され得る。観察される属性が、関連付けられる少なくとも1つのカウントを有する連想マトリックスのセグメントの識別情報に存在しない場合には、観察される属性に関する少なくとも1つのビット平面表現が作成される。
さらに、本発明の例示の実施形態によれば、圧縮された連想マトリックスにおいて選択された属性に対応する少なくとも1つのビット平面表現を取得し、選択された属性の間の関連を識別するカウントを取得した少なくとも1つのビット平面表現を変換することによって、関連は、連想マトリックスから画像化されることができる。
本発明の実施形態が主に方法の実施形態に関して上述したことは、理解される。しかし、類似のシステムの実施形態および/または類似のコンピュータプログラム製品の実施形態もまた、提供され得る。連想マトリックスに関する類似のデータ構造もまた、提供され得る。
ここで、本発明は、添付図面を参照して以下にさらに十分に記載され、添付図面では本発明の説明のための実施形態が示される。しかし、本発明は種々の異なる形態で具体化されてもよく、本明細書に記載される実施形態に限定されるものと捉えるべきではない。正確に言えば、これらの実施形態は、本開示が綿密かつ完全であり、当業者に本発明の範囲を十分に知らせるように提供される。
要素が別の要素に「連結される」「接続される」または「応答する」と言及される場合には、要素が他の要素に直接的に連結、接続または応答されることができるか、または介在する要素もまた存在してもよいことは理解される。対照的に、要素が別の要素に「直接連結される」「直接接続される」または「直接応答する」と言及される場合には、介在する要素は存在しない。同様の参照符号は、全体を通じて同様の要素を示す。本明細書で用いられるとき、用語「および/または」は、関連して列挙される品目の1つまたは複数のいずれかおよびすべての組み合わせを含む。この用語「および/または」は、「/」という表記によって省略表記される場合もある。
また、「第1の」「第2の」などの用語が種々の要素を記述するために本明細書において用いられ得るが、これらの要素はこれらの用語によって制限されるべきではないことも理解される。これらの用語は、別の要素からある要素を区別するために用いられるに過ぎない。
本明細書において用いられる専門用語は、特定の実施形態を記述するために過ぎず、本発明の限定と見なすべきではない。本明細書で用いられるとき、特に文脈が明確に示さない限り、単数形の「a」、「an」および「the」は、複数形も含むと見なすべきである。さらに、用語「備える(comprises)」、「備える(comprising)」、「含む(includes)」および/または「含む(including)」は、本明細書で用いられるとき、記述した特徴、ステップ、演算、要素および/または構成要素の存在を明示しているが、1つまたは複数の他の特徴、ステップ、演算、要素、構成要素および/またはその群の存在または追加を除外しているわけではないことも理解される。
特に定義しない限り、本明細書に用いられるすべての用語(技術用語および科学用語を含む)は、本発明が属する当業者によって一般的に理解されている意味と同一の意味を有する。さらに、一般に用いられる辞書に定義されている語などの用語は、関連分野に照らしてそれらの意味と一致する意味を有するものと解釈すべきであり、本明細書に特に定義しない限り、理想化された意味または過度に形式化された意味に解釈しないと理解される。
本発明は、本発明の実施形態による方法、システムおよびコンピュータプログラム製品のブロック図およびフローチャートを参照して部分的に以下に記載される。ブロック図またはフローチャートの1つのブロックおよびブロック図またはフローチャートにおけるブロックの組み合わせが、少なくとも部分的にはコンピュータプログラム命令によって実行され得ることは理解される。これらのコンピュータプログラム命令は、1つまたは複数の企業、アプリケーション、個人、普及したコンピュータシステムおよび/または埋め込み式コンピュータシステムに提供されてもよく、その結果、コンピュータシステムを介して実行する命令は、ブロック図のブロックで指定された機能/作用を実現するための手段、モジュール、デバイスまたは方法を作成する。他の実施形態において、汎用コンピュータシステムおよび/または特殊目的のハードウェアの組み合わせもまた、用いられ得る。
これらのコンピュータプログラム命令はまた、特定の様式で機能するようにコンピュータシステムを向けることができるコンピュータシステムのメモリに格納されてもよく、その結果、メモリに格納された命令は、ブロックで指定された機能/作用を実現するコンピュータ読み出し可能プログラムコードを含む製品を作成する。コンピュータプログラム命令はまた、コンピュータシステムにロードされ、コンピュータシステムによって行われることになっている一連の演算ステップによって、コンピュータ実行プロセスを作成させて、その結果、プロセッサ上で実行する命令が、ブロックで指定された機能/作用を実現するためのステップを提供してもよい。したがって、ブロック図および/またはフローチャートの所与のブロックは、方法、コンピュータプログラム製品および/またはシステム(構造的および/または手段プラス機能)向けのサポートを提供する。
一部の代替的な実施において、フローチャートに言及された機能/作用は、フローチャートに言及された順序以外で生じることもまた、留意すべきである。例えば、連続的に示された2つのブロックは、必要とされる機能性/作用に応じて、実際には同時に実行されてもよく、またはブロックは逆の順序で実行されてもよい。1つまたは複数のブロックの機能性は、分離されてもよく、および/または他のブロックの機能性と結合されてもよい。
本発明の種々の実施形態による連想マトリックス圧縮方法、システム、データ構造およびコンピュータプログラム製品は、有線および/または無線ネットワークによって接続され得る1つまたは複数の企業、アプリケーション、個人、普及したコンピュータシステムおよび/または埋め込み式コンピュータシステムにおいて具体化され得ることも理解される。システム、方法、データ構造および/またはコンピュータプログラム製品はまた、もう1つの格納されたプログラムを実行する1つまたは複数の汎用データプロセッサ、特殊プロセッサおよび/または特殊目的のハードウェアもまた、含み得る。さらに、連想マトリックスデータ構造は、1つまたは複数の汎用メモリデバイスおよび/または特殊目的のメモリデバイスに格納されてもよい。これらのメモリデバイスは、本発明の実施形態を実行するために用いられるソフトウェアおよび/またはデータを含むメモリデバイスの全体的階層を表し得る。メモリは、以下のタイプのデバイス、すなわち、キャッシュ、ROM、PROM、EPROM、EEPROM、フラッシュメモリ、SRAMおよび/またはDRAMを含むことができるが、これらに限定されるわけではない。
本発明の完全な説明を行うために、図1〜図3は、本発明の例示の実施形態の高レベル概略図を提供する。次に、図4〜図21は、多数の説明のための実施例を含む中間レベルの説明を提供する。最後に、図22〜図32は、本発明の例示の実施形態による詳細の演算を記載するフローチャートを提供する。
図1は、本発明の例示の実施形態による連想マトリックスを圧縮するために実行され得る演算のフローチャートのほか、これらの演算の簡略化した実施例である。
図1を参照すると、連想マトリックスを圧縮するための演算が示されている。ブロック102に示されているように、連想マトリックスは、属性の複数対の間で関連付けを示す複数のカウントを含む。連想マトリックスはまた、関連付けマトリックス、連想メモリまたは内容アドレス可能メモリと呼ばれ得る。
ブロック110を参照すると、それぞれが属性の複数対の1より大きい部分集合を定義するセグメントの集合が生成される。セグメントの一例が、ブロック112に示されている。一部の実施形態において、セグメントは、連想マトリックス102の行に対応してもよい。しかし、他の実施形態において、セグメントは、行の一部、2行以上の行に対応してもよく、および/または列に基づいていてもよい。セグメントは、同一のサイズである必要はない。さらに、全体的な連想マトリックスは、2つ以上の属性対のセグメントに分割される必要はない。特に、連想マトリックスのいくつかの部分はセグメントに分割される必要はなく、いくつかのセグメントは単独の属性対に対応してもよい。
次に、ブロック120で、それらのセグメントの識別情報が格納される。それらのセグメントは該セグメントに関連付けられる少なくとも1つのカウントを有する。これらの識別情報は、ブロック122でアスタリスクによって示される。したがって、ブロック122において示されているように、第1のセグメントおよび第3のセグメントのみがそれに関連付けられるカウントを有する場合には、第1のセグメントおよび第3のセグメントのみが識別されてもよい。
最後に、ブロック130で、それぞれの識別されたセグメントに関連付けられる少なくとも1つのカウントが、少なくとも1つのビット平面表現として格納される。したがって、ブロック132で示されているように、カウントを有するそれらのセグメントに関して、カウントは、1つまたは複数のビット平面提示として格納する。ビット平面表現は、関連ビット平面に対応するカウントのビット位置に関して、少なくとも1つの関連カウントの値を識別する。例えば、所与のカウントはゼロビット平面において値を有する場合には、その値がゼロビット平面における適切なビット位置に格納される。ブロック132において示されているように、ビット平面の数は、各セグメントに関して同一である必要はなく、セグメントに関連付けられる少なくとも1つのカウントの値に基づいて可変であってもよい。
したがって、図1はまた、選択的にビット平面化されたセグメントの識別情報に加えて、関連付けられる少なくとも1つのカウントを有する連想マトリックスのそれらのセグメントを選択的にビット平面化することによって、本発明の例示の実施形態による連想マトリックスの圧縮を示す。本発明の例示の実施形態によれば、関連付けられる少なくとも1つのカウントを有するそれらのセグメントの識別情報を格納することによって、およびビット平面表現における少なくとも1つのカウントを格納することによって、大規模な連想マトリックスが圧縮形態で格納されてもよい。ロスの多い圧縮が行われる必要はないため、連想マトリックスの圧縮格納にもかかわらず、カウント値は正確に観察され、画像化することができる、
図2は、カウントをビット平面として格納するための本発明の例示の実施形態のフローチャートであり、図1のブロック130に対応し得る。簡略化された実施例もまた提供される。
さらに具体的に言えば、ブロック210で、それぞれの識別されたセグメントに関連付けられる少なくとも1つのカウントは、複数のビット平面に分割される。ビット平面への識別されたセグメント(アスタリスクによって示される)の分割は、ブロック212で示される。次に、ブロック220で、ビット平面の少なくとも1つが、ブロック222で第2のビット平面に関してアスタリスクによって示されているように識別される。前記少なくとも一つのビット平面は、該ビット平面に関連付けられる非ゼロのビット平面データを有する。
次に、ブロック230で、関連付けられる非ゼロのビット平面データを有する少なくとも1つのビット平面における非ゼロのビット平面データの位置を識別するマップが生成される。例えば、ブロック232で示されているように、マップは、ブロック232のマップにおいてアスタリスクによって示されている非ゼロのビット平面データを含むものとして第2の位置を識別する。ブロック240で、識別された少なくとも1つのビット平面に関連付けられる非ゼロのビット平面データの少なくとも1つの表現が、ブロック242に示されているように生成される。最後に、ブロック250で、非ゼロのビット平面データのマップおよび少なくとも1つの表現が格納される。したがって、カウントが存在する場合には、ビット平面は、効率的な格納を可能にするように作成される。
図1に示された本発明の実施形態は、連想マトリックス102がマトリックス(本明細書では「大規模マトリックス」と呼ばれる)にわたって広く分散される比較的多数のカウントを含む場合に用いられ得る。本発明の他の実施形態において、比較的少数のカウント(本明細書では「小規模マトリックス」と呼ばれる)である場合には、圧縮のさらによい効率を可能にするために、図3の実施形態が用いられ得る。図3の実施形態はまた、いずれの種類のカウント配置に用いられてもよく、図1の実施形態と組み合わせてもよいことは理解される。
したがって、図3を参照すると、図1のブロック110および120の演算が行われる。ブロック410で、関連付けられる少なくとも1つのカウントを有するそれらのセグメントの識別情報が、連続範囲に再編成される。連続範囲は、ブロック412で、互いに隣接して配置されている2つのアスタリスクが付けられたセグメントによって示される。次に、ブロック130に類似の演算が、連続範囲のそれぞれの範囲に関連付けられる少なくとも1つのカウントを少なくとも1つのビット平面表現として格納することによって、ブロック430で行われてもよい。ブロック430の詳細な演算は、ブロック130に関連して図2に既に説明されたものとして具体化されてもよい。
ここで、本発明の中間レベルの説明が、代表例と共に、図4〜図21に提供される。図4は、本発明の例示の実施形態による文脈がどのように構成され得るかを示している。本明細書で用いられるとき、「文脈」とは、連想マトリックスにおいて格納(観察)されることになっている文書または他の入力データにおける属性間の関係を意味する。さらに、本明細書で用いられるとき、「属性」は、連想マトリックスにおいて格納(観察)されることになっている文書または他の入力データにおける任意のデータ項および/または概念である。属性は、人、場所、物、動詞および/または潜在的に関心のある他のデータ項および/または概念を含んでもよい。図4に示されているように、実施例の入力データ「John and Mary went to New York」の場合には、文脈は、属性「Person」:John、属性「Person」:Mary、属性「City」:New Yorkによって生成される。図4の実施形態において、属性は、属性キー(Person、Cityなど)および属性値(John、MaryおよびNew Yorkなど)に関して表現される。
ここで図5Aを参照すると、属性が同一の文脈内の他のすべての属性に共に関連付けられる場合には、文脈は、連想マトリックス500(図1および/または図3の連想マトリックス102に対応し得る)で観察される。図5Bは、入力データ「John and Mary went to Seattle」に基づいて、同一の連想マトリックス500で観察される別の文脈を示している。
図6は、属性(Attribute)がどのように内部表現に変換されることができるかを示している。図5Aおよび図5Bの実施例からの外部属性は、ブロック610に示されている。ブロック620は、各属性キー(Attribute Key)または属性値(Attribute Value)が数表現にどのように割り当てられることができるかを示す。ブロック630は、16ビットに対応する4桁の16進数によって各キー:値を表すために、これらの数値表現が次にどのような用いられることができるかを示す。他の表現もまた、用いられることができる。
ここで図7を参照すると、ブロック630の内部属性などの内部属性が、大規模連想マトリックス700で次に観察される。本明細書で用いられるとき、大規模連想マトリックスは、2N×2Nマトリックスを定義し、指数はNビットの内部属性である。指数として内部属性を用いることによって、関連カウントの自然順序が提供されることができる。図7は、Nビットの内部属性に関する連想マトリックス700の一般化された実施例を示す。図8は、216×216セルを有する大規模連想マトリックス800を示し、図6の実施例はカウントとしてマトリックス800で観察されている。したがって、図8において、(Person:John、Person:Mary、City:New York)および(Person:John、Person:Mary、City:Seattle)の実施例の文脈が、マトリックス800で観察されている。したがって、図8は、属性(図8では216個の属性)の複数対間の関連を示す複数のカウント(図8の実施例では、0、1および2によって示される)を含む連想マトリックス800を示し、これは、図1および/または図3のブロック102に対応し得る。
図9は、図1および/または図3のブロック110に対応し得るそれぞれが属性の複数対の1より大きい部分集合を定義するセグメントの集合を生成する実施例を示す。図9に示されているように、ブロック910で、それぞれが属性の複数対の1より大きい部分集合を定義するセグメントの順序付けされた集合、Segment 1、...、Segment Nが生成される。図9において、セグメントは、連想マトリックスからN×Mカウントに対応し、Nはマップビットの数であり、Mは平面データにおけるビットの数である。したがって、ブロック910は、図1および/または図3のブロック112に対応し得る。また、より大規模なセグメントおよび/またはより小規模なセグメントを用いてもよく、すべてのセグメントが同一サイズである必要はなく、マトリックスの一部はセグメント化される必要はなく、または1つのセグメントサイズを用いてもよいことは理解される。
さらに、図9を参照すると、ブロック920は、関連付けられる少なくとも1つのカウントを有するそれらのセグメントの選択された識別情報の格納を示し、これは、図1および/または図3のブロック120および/または122に対応し得る。ブロック920に示されているように、データが関連セグメントに存在する場合に、ビット平面が唯一存在し得るため、図9の実施例では、Segment 2のみが識別される。ブロック920はまた、少なくとも1つのビット平面表現としてそれぞれの識別されたセグメントに関連付けられる少なくとも1つのカウントの格納を示し、少なくとも1つのビット平面表現は、関連ビット平面に対応するカウントのビット位置に関して少なくとも1つの関連カウントの値を識別する。これは、図1および/または図3のブロック130および/または132に対応し得る。ブロック920に示されているように、この実施例では、32ビット平面が作成され得る。各ビット平面は、関連ビット平面に対応するカウントのビット位置に関して少なくとも1つの関連カウントの値、例えば第0のビット、第1のビット、...、第32のビットを識別する。
さらに、図9を参照すると、ブロック930は、それぞれの識別されたセグメントに関連付けられる少なくとも1つのカウントがどのように少なくとも1つのビット平面表現930として格納され得るかを示し、図2の全体的な演算に対応し得る。ブロック920に示されているように、カウントは、ビット平面に分割され、これは図2のブロック210および/または212に対応し得る。さらに、ブロック930に示されているように、関連付けられる非ゼロのビット平面データを有するそれらのビット平面934のみが識別され、これは図2のブロック220および/または222に対応し得る。さらに、非ゼロのビット平面データを有する少なくとも1つのビット平面における非ゼロのビット平面データの位置を識別するマップ932が、生成され、これは、図2のブロック230および/または232に対応し得る。したがって、図2のブロック240および/または242に対応し得る非ゼロのビット平面データのマップ930および表現934が格納されて、圧縮形態で関連マトリックを格納してもよく、これは図2のブロック250に対応し得る。
図10は、図9のブロック920のビット平面の特定の実施例を提供することによって、図9のブロック920を詳述する。図10に示されているように、ビット平面は、平面の部分セグメントのアレイと見なされてもよく、カウントに関する2進数表現がその所与のビットに関して1を有する場合には、各平面の部分セグメント構造はデータを含む。一部の実施形態においては、そのセグメントに関する最高のカウントまでの平面の部分セグメントを含むだけである。したがって、図10に示されているように、セグメントに関する最高のカウント5である場合には、ビット平面は、第0の平面、第1の平面および第2の平面に関して平面の部分セグメントを有する。第3の平面から第31の平面に関しては平面の部分セグメントを有さない。さらに具体的に言えば、5のカウントは、0101の2進数に対応し、これは第0のビット平面には非ゼロのデータがあり、第1のビット平面にはゼロのデータがあり、第2のビット平面には非ゼロのデータがあり、それより高いビット平面にはゼロのデータがあることを意味している。
図11は、図10の平面の部分セグメント構造のさらに詳細な実施例を提供し、これは図9のブロック930にも対応し得る。本発明の一部の実施形態において、平面の部分セグメント構造は、1ビットマスクされたルックアップマップ1112および1つまたは複数の平面データ1114を含む。対応する関連カウントがその平面に関して1を含む場合には、平面データ1114が情報を含む。そのデータに関する実際の表現は、非ゼロの値を含む平面データを列挙することができるだけである。一部の実施形態において、ブロック1120に示されているように、マップ1112は、所与の平面において、第0の位置に格納され、平面の次の最下位ビットが実際の次の平面データに対応する。したがって、図11は、それに関連付けられる非ゼロのビット平面データを有するビット平面の少なくとも1つの識別(図2のブロック220に対応し得る)の例、非ゼロのビット平面データを有する少なくとも1つのビット平面における非ゼロのビット平面データの位置を識別するマップの生成(図2のブロック230に対応し得る)および識別された少なくとも1つのビット平面に関連付けられる非ゼロのビット平面データの少なくとも1つの表現の生成(図2のブロック240に対応し得る)の実施例を示す。最後に、図11は、図2のブロック250に対応し得るブロック1120における非ゼロのビット平面データのマップおよび少なくとも1つの表現の格納を示す。
図12は、大規模連想マトリックスをセグメントに区分または分割するさらに別の実施例を提供し、これは、図1および/または図3のブロック110および/または112に対応し得る。実施例は、図8の大規模連想マトリックスに対応する。図12に示されているように、大規模連想マトリックスは、データのストリームとして表記される。データは、16カウントのセグメントにセグメント化される(この場合には、マップビットの数が4であり、平面データビットの数が4である)。この実施例において、全体的な216×216連想マトリックスは、図12に示される16カウントの268、435、456のセグメントに分かれる。
図13は、関連付けられる少なくとも1つのカウントを有するそれらのセグメントの選択された識別情報の格納を示し、これは図1および/または図3のブロック120および/または122に対応し得る。特に、図13に示されているように、平面のセグメント構造は、非ゼロのデータを含むそれらのセグメントを追跡しさえすればよいため、図12の連想マトリックスは、図13に示されるセグメントに分割され得る。
図14は、図13のセグメント1,056,784に関してカウントがビット平面としてどのように格納され得るか(図1および/または図3のブロック130および/または132に対応し得る)を示す。また示されているように、このセグメントに関する平面データは、Null値であるビット平面0と、2のカウントを示すために第3のビット位置に1を有するビット平面1とに分割される。Null値の第0のビット平面は格納される必要はない。第1の部分セグメントにデータがあることを示すマップ(1000)(すなわち、非ゼロのビット平面データの位置)を生成し、データ自体(0010)を格納することによって、第3の位置に1(2のカウントを示す)の値を有する第1のビット平面が、格納される。したがって、セグメント1,056,784に関して示される実際のデータ提示として、plane 0がNull値であり、plane 1がデータ1000,0010を有する。
図15は、図13のセグメント1,056,832に関する平面の構造の別の実施例を示す。この実施例において、0ビット平面のみがデータを有し、データはビット平面表現の第2の部分セグメントで見つかるため、マップは0100であり、データは0110である。実際のデータ表現もまた、示される。
図16は、図13の実施例に関する完全な平面のセグメント構造を示す。したがって、図16に示されているように、ブロック1610で、関連付けられる少なくとも1つのカウントを有するそれらのセグメントの選択された識別情報が、格納される。さらに、ブロック1620で、それぞれの識別されたセグメントに関連付けられる少なくとも1つのカウントが、少なくとも1つのビット平面表現として格納され、ビット平面表現は、関連ビット平面に対応するカウントのビット位置に関して少なくとも1つの関連カウントの値を識別する。また、図16に示されるように、一部の実施形態において、ビット平面表現は、関連付けられる非ゼロのビット平面データを有する少なくとも1つのビット平面における非ゼロのビット平面データの位置のマップと、識別された少なくとも1つのビット平面に関連付けられる非ゼロのビット平面の少なくとも1つの表現とによって提供される。
図17は、本発明の例示の実施形態による平面のセグメント構造がどのように格納され得るかを示す。図17に示されているように、セグメントの順序付けされた集合(ブロック1610)は、図17では仮想ストア1と記された仮想ストア1710に格納され得る。セグメントは、ブロック1720で示されているように、それ自体がデータベースまたはファイルシステムに格納され得るビット平面データに対する参照を含み得る。ビット平面データは、データのブロックとして格納され得る。しかし、本発明の種々の実施形態によれば、記憶装置の1つまたは複数の階層レベルを用いて、その他の多くの格納技術が提供され得ることは理解される。
図18は、本発明の他の実施形態による小規模連想マトリックスの生成の実施例を示す。小規模連想マトリックスは、上述した大規模連想マトリックスと同様に、内部属性に関する関連カウントを格納する。大規模連想マトリックスにおいて、同一行に共にカテゴリーメンバーを配置することによって、同時局在性が得られ得る。小規模連想マトリックスにおいて、データを小さなメモリ設置面積に圧縮することにさらに重点が置かれてもよく、照会(読み出し)時間に対してあまり重点を置かなくてもよい。本発明の一部の実施形態によれば、小規模連想マトリックスは、セグメント(連想マトリックスの行など)の指数の再付与または再編成によって、同時局在性を実現し得る。他の実施形態において、また、対称な連想マトリックスの半分のみが格納されてもよい。したがって、図18の実施形態は、関連付けられる少なくとも1つのカウントを有するそれらのセグメントの識別情報がどのように連続範囲に再編成されることができるかを示す。図18は(Person:John、Person:Mary、City:New York)および(Person:John、Person:Mary、City:Seattle)の文脈に関する前の実施例を用いる。図18の実施例において、内部属性は、16ビットの数字として定義される。図18は、再編成前の内部属性の生成を示しているため、この時点で図18は図6のブロック630に類似している。
ここで図19を参照すると、セグメント(ここでは行)は、データを含む行および列を追跡するだけで済むように再編成される。これは、図19に示される中間ステップによって提供されてもよく、内部属性1910をブロック1920で示される新たな行/列の指数にマッピングする。また、マトリックスが対称であるために、マトリックスの下半分のみが追跡されてもよい。したがって、図19に示されているように、内部属性258、259、1029、1030は、0、1、2および3の内部属性を有する小規模マトリックスにマッピングされる。図19の演算は、図3のブロック410および/または412に対応し得る。
次に、図20に示されているように、小規模連想マトリックスが、セグメントに区分される。図20において、ブロック1920の小規模連想マトリックスは、データのストリームとして表記される。データは、16カウントのセグメントにセグメント化され、マップビットの数が4であり、平面データビットの数が4である。したがって、図20の実施例において、小規模連想マトリックスのデータは、16カウントの1つのセグメントに分かれる。次に、図21に示されているように、小規模連想マトリックスは、大規模連想マトリックスと同一の機構を用いて平面のセグメント構造として格納され、これは図3のブロック430および/または132に対応し得る。したがって、図21に示されているように、plane 0およびplane 1のみが、実際のカウント値を有し、plane 0の部分セグメントおよびplane 1の部分セグメントが、上述したように、大規模マトリックスのマップおよび表現と類似のマップおよび表現を用いて格納される。実際のデータ表現は、ブロック2100で示される。
図22〜図32は、本発明の例示の実施形態による詳細の演算を示すフローチャートである。これらのフローチャートは、本発明の例示の実施形態によれば、外部文脈を内部表現に変換する詳細な説明を提供し、観察がどのように行われることができるかを示し、画像化がどのように行われることができるかを示すために用いられる。
図22は、例えば、図6に一般的に示したように、外部文脈を内部文脈に変換するために用いられ得る演算のフローチャートである。概して、新たな関連を観察するために、観察される属性が、関連付けられる少なくとも1つのカウントを有する連想マトリックスのセグメントの識別情報に存在する場合には、観察される属性の間の関連が、観察される属性に対応する少なくとも1つのビット平面表現に追加される。さらに、観察される属性が、関連付けられる少なくとも1つのカウントを有する連想マトリックスのセグメントの識別情報に存在しない場合には、観察される属性に関する少なくとも1つのビット表現が作成される。
特に、図22に示されているように、演算は、文脈を構成するためにブロック2210から始まる。ブロック2220で、例えば、図6のブロック610で示されたように、属性が文脈から取得される。ブロック2230で、内部キー/値が既に存在するかどうかについて試験が行われる。存在しない場合には、ブロック2240で、新たなアトム(すなわち、図6のブロック620におけるアトムテーブルにおけるエントリ)が作成される。ブロック2230で内部キー/値が既に存在する場合には、ブロック2250で既存の内部アトムが用いられる。ブロック2260で、例えば、図6のブロック630で示されたように、内部キーおよび値が内部属性を作成するために連結される。ブロック2270でさらに多くの属性がある場合には、演算は続行される。さらに多くの属性がない場合には、演算は終了する。
図23は、連想マトリックスの中で内部属性を観察するために行われ得る演算のフローチャートである。最初に、ブロック2310で小規模マトリックスが存在するかどうかについて試験が行われる。存在する場合には、ブロック2320で、第1の内部属性および第2の内部属性の相互関連が取得される。ブロック2232および2234で、内部属性(IAttr1,IAttr2)がいずれも存在する場合には、ブロック2236で関連が追加される。マトリックスデータの下半分のみが格納されてもよいため、それらは連想マトリックスに一度限り追加され得ることを留意されたい。関連が存在しない場合には、ブロック2238および2242で作成する。最後に、ブロック2244でさらに多くの相互関連がある場合には、演算は続行される。ブロック2310に戻ると、大規模マトリックスが存在する場合には、ブロック2250で、2つの属性の相互関連が内部文脈から取得され、ブロック2252および2254で新たな関連が追加される。大規模マトリックスの両半分が格納されるため、新たな関連は二度追加されることを留意されたい。さらに多くの相互関連がある場合には、ブロック2256で演算は続行される。
図24は、2つの引数Argument 1、Argument 2についてセグメント数およびオフセットを計算するために用いられ得る演算のフローチャートである。これらの演算は、以下に記載されるように、次のフローチャートで用いられる。
図24を参照すると、ブロック2410で小規模マトリックスが存在するかどうかについて最初の試験が行われる。存在する場合には、ブロック2420で行が設定され、ブロック2422で列が設定される。最後に、ブロック2424で、大域オフセットが設定される。あるいは、大規模マトリックスが存在する場合には、ブロック2432およびブロック2434で大域オフセットが設定される。次に、ブロック2442でセグメント数が設定され、ブロック2444でオフセットが設定される。セグメント数およびオフセットは、次にブロック2446で返される。
図25は、図23のブロック2236、2252および2254に対応し得る関連を追加するために行われ得る演算のフローチャートである。一般化のために、包括的な表現としてArgl、Arg2が用いられる。
図25を参照すると、図24に関連して既に述べたように、ブロック2510でセグメント数およびオフセットが計算される。ブロック2446で返されたセグメント数が、ブロック2512で検索され、ブロック2514で現在のビット平面がPlane0に設定される。ブロック2516でビット平面が存在しない場合には、ブロック2518でビット平面が作成され、ブロック2522でマップが作成される。他方、ブロック2516でビット平面が存在するが、ブロック2524でそのオフセットに関する部分セグメントが存在しない場合には、ブロック2526で部分セグメントが作成され、ブロック2528でマップにおけるそのビットがオンにされる。
次に、演算は図26に進む。図26において、ブロック2610で第1の部分セグメントにおけるオフセットに関するビットがあるかどうかについての決定が行われる。存在しない場合には、ブロック2612でビットに関する部分セグメントが1に設定される。あるいは、存在する場合には、ブロック2614でオフセットに関する部分セグメントビットが0に設定される。次に、ブロック2616で、部分セグメントにおけるすべてのビットが0であるかどうかについての試験が行われる。すべてのビットが0である場合には、ブロック2618で部分セグメントが除去され、ブロック2622で部分セグメントマップにおけるビットがオフにされる。他方、ブロック2616で、部分セグメントにおけるすべてのビットが0でない場合には、ブロック2624で、部分セグメントマップにおけるすべてのビットが0であるかどうかについての試験が行われる。すべてのビットが0である場合には、ブロック2626で部分セグメントマップが除去され、ブロック2628でビット平面が除去される。次いで、ブロック2632で、現在のビット平面が次のビット平面に設定され、演算は、図25のブロック2516に戻る。したがって、図26の演算は、ビット平面にわたってビット平面データの「キャリー(桁上げ)」を明らかにし得る。
図27は、本発明の実施形態による画像化に関する全体的な演算のフローチャートである。概して、圧縮された連想マトリックスにおいて選択された属性に対応する少なくとも1つのビット平面表現を取得し、取得した少なくとも1つのビット平面表現を選択された属性の間での関連を識別するカウントに変換することによって、画像化が実行され得る。
一部の実施形態において、2つのタイプの画像化、すなわち点画像化(point imagine)および走査画像化(scan imagine)が行われ得る。点画像化演算において、2つの属性に関連付けられるカウントが取得される。走査画像化演算において、属性対の大きな集合にわたるカウントが取得される。
ここで図27を参照すると、点画像化を行うための演算がここで示される。ブロック2710で、小規模マトリックスが存在するかどうかに関する決定が行われる。小規模マトリックスが存在する場合には、ブロック2712で第1の属性に関する指数が取得され、ブロック2714で第2の属性に関する指数が取得される。次に、図28に関して以下に詳細に示されるように、ブロック2716で適切な値が取得される。他方、ブロック2710で大規模マトリックスが存在する場合には、図28に関して以下に記載されるように、ブロック2718で値がまた取得される。
図28は、図27のブロック2716または2718に対応し得る指数または属性における値を取得するために行われ得る演算のフローチャートである。一般化のため、指数および/または属性に関して「引数」(Arg)が用いられる。図28に示されているように、ブロック2510で行われたように、セグメント数およびオフセットが計算される。ブロック2810でセグメントが検索され、ブロック2812で現在のビット平面がPlane0に設定される。ブロック2814でビット平面が存在する場合には、ブロック2816でビットがオフセットマップに関する部分セグメントマップから取得される。ブロック2818で部分セグメントビットが1であり、ブロック2822において部分セグメントにおけるオフセットに関するビットが1に等しい場合には、ブロック2824で、値は現在の値+2bit#plane##として設定される。それ以外の場合には、ブロック2826で現在のビット平面は、次のビット平面に設定され、ブロック2828でビット平面が存在しなくなるまで、ブロック2814における演算が続行される。次に、値が返される。
図29は、走査画像化、すなわち一連のキー:値:カウントの結果を提供する画像化を行うために行われ得る演算のフローチャートである。例えば、連想マトリックスの行に関するカウントが返されてもよい。ブロック2910で、小規模マトリックスが存在するかどうかに関する試験が行われる。小規模マトリックスが存在する場合には、ブロック2912でAttr1に関する指数が取得され、ブロック2914で属性キーを有するすべての指数が指数マップから取得される。ブロック2916で次の指数がIndex2に設定され、図28に関して既に示したように、値が取得される。次に、ブロック2922でIndex2が指数マップを介してAttr2に変換され、ブロック2924でAttr2および値が結果リストに追加される。ブロック2926で指数がなくなるまで、これらの演算は続行され、その後で、ブロック2928で結果リストが返される。
図29を再び参照すると、ブロック2910で大規模マトリックスが存在する場合には、ブロック2932で、第1の非ゼロのセグメントが検索され、ブロック2934で、セグメント数が最大値を有するキーのセグメント数未満であるかどうかに関する試験が行われる。セグメント数が最大値を有するキーのセグメント数未満である場合には、図30で演算が続行される。したがって、ブロック2932および2934は、走査画像化演算に関する基本的な開始/停止制御を提供する。
図30にブロック3010で示されているように、Nは0に設定される。尚、Nは部分セグメントマップへのオフセットである。ブロック3012でビットNが部分セグメントマップの最大値より大きいかどうかについての試験が行われる。大きい場合には、演算は、図29のブロック2936に戻る。大きくない場合には、ブロック3014で現在のビット平面は、Plane0に設定され、ブロック3016でビット平面が存在し、ブロック3018で現在の平面の部分セグメントマップビットが1である場合には、演算は、図31に続く。図31に続かず、ブロック3022でより多くのビット平面が存在する場合には、ブロック3024で現在のビット平面が次のビット平面に設定され、演算は続行される。ブロック3022でこれ以上ビット平面がない場合には、ブロック3026でNはN+1に設定され、演算は続行される。
ここで図31を参照すると、ブロック3110で開始ビット平面が現在のビット平面に設定され、Mが0に設定される。Mは、ブロック3112の部分セグメントへのオフセットである。ブロック3114で、Mが部分セグメントの最大値より大きいかどうかについての試験が行われる。大きい場合には、演算は、Fを経て図30のブロック2206に続く。大きくない場合には、演算は、Hを経て図32に続く。
ここで図32を参照すると、ブロック3210で第1の部分セグメントにおけるオフセットMに関するビットが存在するかについての試験が行われ、存在する場合には、ブロック3212で値が設定される。したがって、ブロック3212は、すべての値に関する数を構成することができる。存在しない場合には、ブロック3214で現在のビット平面は次の平面に設定され、ブロック3216でビット平面が存在するかどうかについての試験が行われる。存在して、ブロック3218で、現在の平面の部分セグメントが1に等しい場合には、演算は、ブロック3210に戻る。それ以外の場合には、ブロック3222でさらに多くのビット平面があるかどうかについての試験が行われ、ない場合には、ブロック2224でAttr2が計算され、ブロック3226でAttr2の値が結果リストに追加される。
ここで、本発明の種々の例示の実施形態に関するさらなる説明が提供される。ロスのないメモリを提供するために、本発明の実施形態によるアーキテクチャに基づくメモリは、抽象化の原理から圧縮の原理へ移行し得る。従来の人工知能は、論理的であるか統計的であるかに関係なく、知的機能の複雑さに関して「次元数の呪い」に嘆くことが多い。したがって、経験則および統計的技法に基づく規則は一般にロスが多いモデルに基づく抽象化である。抽象化は、情報および精度を失う可能性がある。例えば、規則は、規則の例外も網羅する際に問題を生じる可能性があり、市場細分化は、各顧客に関する予測において極めて不正確である可能性がある。一方、連想メモリは、経験を記録する際に完全なメモリであることを求めるが、そのような連想メモリは十分にスケーリングされない。
本発明の実施形態は、メモリをより小さく構成することができる。より小さなメモリは空間が少なくて済み、抽象化および削減に対する手段を講じるまでにより多くの情報を保持する。本発明の実施形態は、ロスのない圧縮を提供することができる。本発明の一部の実施形態は、画像化に用いられ得る従来の圧縮方法とは対照的であってもよいが、連想メモリの場合には十分に機能しない可能性がある。一般的な圧縮もまた、ロスがない場合であっても、一般に連想メモリの場合には十分に機能しない可能性がある。例えば、算術符号化のような圧縮の埋め込みは一般に、探索可能な圧縮を提供することはない。さらに、連想メモリは、単に探索可能であることにとどまらず、一般に、ランダムアクセスを可能にすべきである。問題は、一般に悪名高く困難である極めて大きなデータチューブの圧縮に類推されることができる。さらに、増加する学習のために、圧縮は新たなデータ更新を可能にすべきであり、これは、たとえランダムにアクセス可能であっても、データキューブの圧縮は提供し得ない。要約すると、連想メモリの圧縮は、ロスのない圧縮、ランダムアクセスおよび増大する書き込みを可能にすべきである。
本発明の実施形態は、属性:値、またはキー:値、ベクトルとして定義される「スナップショット」に外部世界の状況を変形することができる。例えば、トランザクションレコードは、フィールド名およびフィールド値のベクトルとして定義される。構造化されていないソースの場合には、本発明の実施形態は、例えば、各文における人、場所および物を定義するために、エンティティ抽出装置を用いることができる。これらの「エンティティ」は、周囲のキーワードと共に、文脈、すなわち各エンティティが周囲のエンティティおよびキーワードにどのように関連付けられるかを記述する。認知的構文として、各エンティティは、個別の連想メモリとしてモデル化されてもよいが、一部の実施形態において、レコードまたは文の属性値は、1つのマトリックスで観察されるべき1つの文脈として扱われてもよい。エンティティ連想メモリは、本発明の譲受人に譲渡された「Networks Of Networks Of Associative Memory Networks For Knowledge Management」という名称の2004年11月3日出願の米国特許出願第10/980、520号に詳細に記載され、その開示は、本明細書に完全に記載されているように、参照によりその全体を本明細書に組み込まれる。
さらに多くの文脈が観察されると、関連のリストは増大する。所与の関連が何度も観察されると、図4〜図5Bに関連して上述したように、関連カウントもまた、増大する。関連のリストを閲覧するための別の方式は、マトリックス形態にあり、キー:値の対がマトリックスの指数である。このマトリックスは、連想マトリックスと呼ばれ、図7〜図8に関連して上述したように、同時発生マトリックスとしても既知である。連想マトリックスの次元は、O(N2)の速度で成長する可能性があり、Nはキー:値対の数である。カウント自体は、O(logO)速度で成長する可能性があり、Oは観察の数である。本発明の実施形態は、N2の成長を削減または最低限に抑えることができ、logOの成長を利用することができる。
外部キー:値情報は、内部表現に変更される。これは、データのより簡単な操作を可能にする。各「キー」および「値」に関するすべての値は、図6に関連して記載したように、数値数(「アトム」とも呼ぶ)にマッピングされることができる。「キー」アトムおよび「値」アトムは、キー:値対の内部表現を作成するために連結される。キー:値対の連結は、1つのMビットの数値(内部属性とも呼ぶ)を介して表現される。内部属性の第1のM/2ビットはキーアトムであり、第2のM/2ビットは値アトムである。この実施例は、同一のマップでキーアトムおよび値アトムを追跡したことを留意されたい。キーアトムおよび値アトムが個別のマップで追跡される場合には、Mビットの内部属性の分割は、値アトムに多少のビットを与え得る。
Mビットの内部属性の実世界の実装は、Mを64(キーアトムに対して32ビット、値アトムに対して32ビット)に設定してもよい。この案は、簡単であり、より遅い効率に関する特性を提供することができる。値のすべては、高いビットキーの範囲内の低いビット変動であってもよい。したがって、キー内の値に関する内部属性のすべては、内部属性の距離の中で、同じ場所に位置付けられることができる。用いられる連想マトリックスのタイプに応じて、この同位置配置特性は、連想マトリックスの質問に答え、物理的区分内で互いに近くにある可能な答えのすべての実行を行う際に役立つ可能性がある。
内部属性および関連カウントは、連想マトリックスに表記される。上述したように、それぞれは潜在的に長所および短所を有してもよい2つのタイプの連想マトリックスがあり得る。Mビットの内部属性が指数である場合(図7および図8)には、大規模連想マトリックスは、2M×2Mマトリックスであってもよい。指数として内部属性を用いることにより、記載したようにキーによって自然順序付けを可能にすることができる(例えば、すべての人が一緒であってもよい)。この順序は、属性およびキーを与えられたすべての関連属性を要求する問い合わせにおいて用いられることができる(例えば、すべての人が、New Yorkの都市に関連付けられる)。大規模連想マトリックスは通常、極めて大きく、疎に記入されたマトリックスである。本発明の実施形態による圧縮は、データを有するマトリックスに領域を集中させることができると同時に、データのない領域を無視することもできる。一部の実施形態において、そのようなマトリックスは、1万〜1000万の属性を自動的に関連付けることができ、極めて疎に構成される。
大規模連想マトリックスは、以下の長所および短所を有し得る。
長所:第一に、キー:値は、マトリックス指数に直接的にマッピングされる。これは、変換表によってマトリックス指数を再度マッピングする必要なく、指数の高速かつ直接計算を行うことができる。第二に、キー:値対は、当然のことながら、線形なシーケンスで共にグループ化されることができ、所与のキーに関する質問に答える場合などのマトリックスの高速走査を可能にすることができる。最後に、大規模マトリックスは、完全なマトリックスであってもよく、たとえ対称であっても、関連は、キー:値1→キー:値2およびキー:値2→キー:値1として2度格納される。これは一般に冗長な情報であるが、これは、所与のキー:値のすべてが連続的なキー:値の答えからなるそれ自体の「行」を有することを可能にし、マトリックスが線形化され、セグメント化されるときにこれを用いることができる。
短所:大規模マトリックスはまた、大きな設置面積を有する可能性がある。セグメント化およびビット平面分割を用いた場合であっても、ビットは疎であり、維持するのに費用が嵩む可能性がある。他方、そのような極めて大規模なマトリックスの場合には、圧縮は可能な限り強力に構成されることができるが、本質的には圧縮のための同位置配置だけではなく、所与のキー内の問い合わせに迅速に答えるために、ビットの同位置配置に依然として焦点を置くことができる。
認知的構文として、大規模連想マトリックスは、例えば、大規模連想ディレクトリとして最適な役割を果たし得る。ルータに類推され得る実施例において、そのようなメモリは、他のより小さなメモリに対する指数であってもよいキー:値を検索することができる。そのような大規模マトリックスはまた、数においても少数である傾向があり、大きな画像を表現し得るが、より小規模なメモリは詳細を捕捉し得る。
それぞれのより小規模なマトリックスは、小規模連想マトリックスとも呼ばれ、内部属性間の関連カウントを格納してもよい。しかし、小規模連想マトリックスは、本質的に小さなメモリ設置面積に圧縮することにより重点を置き、空間が大規模マトリックスにおける場合のように極めて大きくなる場合には、高速の照会(読み出し)時間にはあまり重点を置かない場合がある。
小規模連想マトリックスの行は、データを含むマトリックスの行/列を追跡するだけで済むように再編成されることができる。図19に示されているように、これは、中間ステップによって実現されることができ、変換表1910は、内部属性を新たな連続する行/列の指数にマッピングする。変換表1910はまた、より大きな同位置配置を可能にするために分類されてもよい。また、連想マトリックスが対称であり、圧縮に重点が置かれるために、マトリックスの下半分のみが追跡される。小規模マトリックスは、下の三角形であってもよい。
小規模連想マトリックスもまた、潜在的な長所および短所を有し得る。
長所:設置面積が極めて小さくてもよい。関連付けカウントは、はるかに疎ではなく、完全なマトリックスの半分のみが表現されれば良い。任意の2つの内部属性が与えられる場合には、関連付けカウントは、より大きな行およびより小さな列に含まれる。
短所:変換表は潜在的に計算および格納に関するコストを増加させる。また、ここで、属性は、任意に位置決めされてもよいため、走査のために同位置に配置された値を含み得る大規模マトリックスとは異なり、分配される関連付けカウントにはより多くのランダムアクセスが必要である可能性がある。
他方、小規模マトリックスは、RAMに含まれ得る可能性が高く、効率的なランダムアクセスを可能にすることができるのに対し、大規模マトリックスは、RAMに適合しない可能性がある。入出力のボトルネックが顕著になる可能性があるため、属性の同位置配置がより望ましくなる可能性がある。要約すると、用いられるこれらのマトリックスタイプは、圧縮アルゴリズムにのみ基づいているのではなく、唯一のそのようなマトリックスのサイズおよび演算に基づいていてもよい。脳全体のスケールにさらに近づけ、本発明の例示の実施形態は、数百万のそのようなマトリックスを構成することができ、一部の実施形態において、大きさに関しては、いくつかの大規模な企業スケールのアプリケーションを有し、大部分は小規模に構成することができる。そのようなアプリケーションでは、入出力は顕著なボトルネックである可能性があるため、これらのマトリックスは、2つの異なる規則に関する2つの異なる戦略に対して設計されてもよい。すなわち、極めて大規模である場合には、キャッシュとストアとの間の唯一の部分に送信するように同位置配置および区分を行い、小規模である場合には、キャッシュとストアとの間にマトリックス全体(但しより小規模である)を送信するように圧縮する。
連想マトリックスタイプのいずれかのうちからのデータは、カウントの長いリストとして閲覧されてもよい。一部の実施形態において、カウントのリストは、サイズL×Kの部分集合に区分される。Lはマップビットの数であり、Kは平面データにおけるビットの数である。現実的な実装は、LおよびKを64ビットに設定してもよいが、簡単にするため、LおよびKは4ビットに設定され得る。したがって、連想マトリックスの線形表現は、16カウントのより小さなセグメントに区分され得る。0のカウントのみを含むセグメントは、無視される。このセグメント構造は、非ゼロのデータを含むセグメントを追跡しさえすればよい。
小規模連想マトリックスはまた、下側の三角形マトリックスの線形化によって定義されるデータのストリームとして表記され得る。例えば、2次元マップを線形化して、同位置に配置するために、複数の形状を満たす曲線が可能である。マトリックスはまた、分類の2次元マップであり、下側の三角形マトリックスによって行ごとの簡素な線−曲線が、最適な空間を満たす特性および照会性能を有し得る。
本発明の例示の実施形態によれば、各セグメントは、ビット平面の集合として表現され得る。ビット平面の分離は、画像用のJPEGの中で用いられているものなど、圧縮に関して既知である。例えば、256ビットの画像では、2の級数のべきにおける256「平面」のそれぞれが、特定の平面内で、ONの指定ビットを有するすべての画素に関するすべてのビットからなる。この表現は、すべての画素値が2進数で表現され、画像全体がその側面になると考えられてもよい。次に、各平面は、べき級数のおける各レベルのビットをすべて表現する。
ビット平面が画像圧縮の一部として用いられてもよいのに対し、連想マトリックス圧縮の場合にはビット平面は特に有用である場合がある。画像において、完全に画像および画素の符号化によって、ビットは任意の平面において任意に見つけられることができる。この意味で、任意の平面におけるビットは、(一般に)任意の他の平面における任意の他のビットと同等の確率がある。しかし、連想マトリックスは一般に、機械学習システムにおいて用いられる。この場合には、観察負荷が増大すると、より高いカウントのみが生成されるという点で、より低いカウントは、より高いカウントより確率が高い。観察がもう1つの平面によって平面の数を単に増大させるために、現在の観察より2倍多い観察が行われなければならないという点で、この要求は一般に対数である。本発明の例示の実施形態によれば、十分に活用されない(または溢れる)固定のカウンタサイズを割り当てるのではなく、ビット平面は、必要に応じてのみ生成される。負荷の小さいマトリックスは、少数のビット平面のみを用いることができるが、より多くのリソースは、より負荷の大きいより大規模なマトリックスにゆだねられてもよい。したがって、本発明の一部の実施形態において、ビット平面は、最大カウントの必要に基づく連想マトリックス全体ではなく、所与のセグメントによって必要とされるように、局所的であってもよい。
さらに、画像がビット平面に分割される間、本発明の例示の実施形態による連想マトリックスの線形化およびセグメントの分割は、ビット平面の要求に基づく成長を、マトリックス平面全体ではなく、各セグメントの最大カウントを超えないようにすることが可能である。2次元画像における同位置配置は、四分木またはRツリーなどの圧縮方法をもたらすことができる。しかし、本発明の例示の実施形態によれば、関連のキー−値の同時局在性は、さらに線形であり、したがって、線形セグメントに編成されてもよい。いずれの場合でも、マトリックス全体は、そのセグメントおよびビット平面に関して側面から閲覧されることができる。カウントが大きい場合には、セグメントはより多くのビットを用いることができるのに対し、マトリックスの他の領域はより少数のビットを用いることができるに過ぎない。
何度も、カウントを32ビットの数で、0に初期化されると仮定する。観察される各関連に関する増分は、関連が極めて重い負荷でない限り、上位ビットを用いることは滅多にない。しかし、連想マトリックスが疎である(多くのゼロ値を含む)傾向がある場合と同様に、ビット平面方向においても疎である傾向があり、より低い値となる。したがって、本発明の例示の実施形態によるビット平面の使用は、カウントを格納するために用いられる物理的メモリの量を削減することができる。
ビット平面内に格納されるデータは、部分セグメントと呼ばれ得る。部分セグメント構造は、ビットでマスクされたルックアップマップのアレイおよび1つまたは複数のデータ要素を含むことができる。その平面において対応する関連カウントが「1」を含む場合には、データ要素は情報を含むことができる。データの実際の表現は、非ゼロの値を含むデータを列挙するだけでよい。マップは、所与の平面における第0の位置に格納されることができ、マップの次の最下位ビットは次のデータに対応することができる。
大規模マトリックス構造の場合には、セグメントの数は極めて大きくなり得る。総メモリ要件は、システムの総メモリより大きい場合がある。したがって、大規模構造を所望によりメモリからロードして除去することができる多くのより小規模のブロックに分割することができる仮想ストアキャッシュシステムと共に、この構造は用いられてもよい。
そのようなブロック指向設計は、標準的な階層持続案を用いることができるが、極めて大規模なスケールの連想メモリアプリケーションは一般に、単独のマトリックス埋め込み型システムとは異なる。ハードウェア処理またはソフトウェア処理のいずれであるかに関係なく、メモリ集中アプリケーションの問題は、データ集中アプリケーションの問題に似ている可能性がある。圧縮および区分の解決策を用いて、多数のそのようなマトリックスを格納することができ、常に常駐している必要性はほとんどなく、新たな関連によって更新するため、または関連を読み出して広範囲の数の問い合わせをサポートするために、全体または部分的に高速でフェッチする必要があり得る。
本発明の例示の実施形態は実際には、完全に一致するマトリックスから始めて、例えば、セグメント化およびビット平面化のステップを完了する必要はない。正確に言えば、そのような表現が動的に構成され維持される増分学習が提供され得る。新たな文脈が観察されると、新たなキー−値が符号化され、場合によって変換されて、新たなセグメントが作成されてもよく、および/または新たなビット平面が形成されてもよい。
図面および明細書において、本発明の実施形態が開示され、特定の用語が用いられるが、それらは、総括的かつ記述的意味でのみ用いられ、制限のためではなく、本発明の範囲は、以下の特許請求の範囲に記載される。
その実施例に加えて、本発明の例示の実施形態による連想マトリックスを圧縮するために行われ得る演算のフローチャートである。 その実施例に加えて、本発明の例示の実施形態による連想マトリックスを圧縮するために行われ得る演算のフローチャートである。 その実施例に加えて、本発明の例示の実施形態による連想マトリックスを圧縮するために行われ得る演算のフローチャートである。 その実施例に加えて、中間レベルの記述を提供する本発明の例示の実施形態のブロック図である。 その実施例に加えて、中間レベルの記述を提供する本発明の例示の実施形態のブロック図である。 その実施例に加えて、中間レベルの記述を提供する本発明の例示の実施形態のブロック図である。 その実施例に加えて、中間レベルの記述を提供する本発明の例示の実施形態のブロック図である。 その実施例に加えて、中間レベルの記述を提供する本発明の例示の実施形態のブロック図である。 その実施例に加えて、中間レベルの記述を提供する本発明の例示の実施形態のブロック図である。 その実施例に加えて、中間レベルの記述を提供する本発明の例示の実施形態のブロック図である。 その実施例に加えて、中間レベルの記述を提供する本発明の例示の実施形態のブロック図である。 その実施例に加えて、中間レベルの記述を提供する本発明の例示の実施形態のブロック図である。 その実施例に加えて、中間レベルの記述を提供する本発明の例示の実施形態のブロック図である。 その実施例に加えて、中間レベルの記述を提供する本発明の例示の実施形態のブロック図である。 その実施例に加えて、中間レベルの記述を提供する本発明の例示の実施形態のブロック図である。 その実施例に加えて、中間レベルの記述を提供する本発明の例示の実施形態のブロック図である。 その実施例に加えて、中間レベルの記述を提供する本発明の例示の実施形態のブロック図である。 その実施例に加えて、中間レベルの記述を提供する本発明の例示の実施形態のブロック図である。 その実施例に加えて、中間レベルの記述を提供する本発明の例示の実施形態のブロック図である。 その実施例に加えて、中間レベルの記述を提供する本発明の例示の実施形態のブロック図である。 その実施例に加えて、中間レベルの記述を提供する本発明の例示の実施形態のブロック図である。 本発明の例示の実施形態によって行われ得る詳細な演算のフローチャートである。 本発明の例示の実施形態によって行われ得る詳細な演算のフローチャートである。 本発明の例示の実施形態によって行われ得る詳細な演算のフローチャートである。 本発明の例示の実施形態によって行われ得る詳細な演算のフローチャートである。 本発明の例示の実施形態によって行われ得る詳細な演算のフローチャートである。 本発明の例示の実施形態によって行われ得る詳細な演算のフローチャートである。 本発明の例示の実施形態によって行われ得る詳細な演算のフローチャートである。 本発明の例示の実施形態によって行われ得る詳細な演算のフローチャートである。 本発明の例示の実施形態によって行われ得る詳細な演算のフローチャートである。 本発明の例示の実施形態によって行われ得る詳細な演算のフローチャートである。 本発明の例示の実施形態によって行われ得る詳細な演算のフローチャートである。

Claims (20)

  1. 属性の複数対の間の関連を表す複数のカウントを含む連想マトリックスを圧縮する方法であって、
    それぞれが属性の複数対の1より大きい部分集合を定義するセグメントの集合を生成するステップと、
    それらのセグメントの選択された識別情報を格納するステップであって、前記それらのセグメントは該それらのセグメントに関連付けられる少なくとも1つのカウントを有する、ステップと、
    それぞれの識別されたセグメントに関連付けられる少なくとも1つのカウントを少なくとも1つのビット平面表現として格納するステップとを含み、少なくとも1つのビット平面表現は、関連付けられたビット平面に対応するカウントのビット位置に関して、少なくとも1つの関連付けられたカウントの値を識別する連想マトリックスの圧縮方法。
  2. それぞれの識別されたセグメントに関連付けられる少なくとも1つのカウントを少なくとも1つのビット平面表現として格納するステップは、
    それぞれの識別されたセグメントに関連付けられる少なくとも1つのカウントを複数のビット平面に分割するステップと、
    ビット平面の少なくとも1つを識別するステップであって、前記ビット平面は該ビット平面に関連付けられる非ゼロのビット平面データを有する、ステップと、
    前記非ゼロのビット平面データを有する少なくとも1つのビット平面において、非ゼロのビット平面データの位置を識別するマップを生成するステップと、
    識別された少なくとも1つのビット平面に関連付けられる非ゼロのビット平面データの少なくとも1つの表現を生成するステップと、
    非ゼロのビット平面データのマップおよび少なくとも1つの表現を格納するステップとを含む、請求項1に記載の方法。
  3. 選択された識別情報を格納するステップと、少なくとも1つのカウントを格納するステップとの間において、
    前記関連付けられる少なくとも1つのカウントを有するこれらのセグメントの選択された識別情報を連続範囲に再編成するステップを実行し、
    少なくとも1つのカウントを格納するステップは、少なくとも1つのビット平面表現として連続範囲のそれぞれのセグメントに関連付けられる少なくとも1つのカウントを格納するステップを含み、少なくとも1つのビット平面表現は、関連付けられたビット平面に対応するカウントのビット位置に関して、少なくとも1つの関連付けられたカウントの値を識別する、請求項1に記載の方法。
  4. 少なくとも1つのビット平面表現として連続範囲のそれぞれのセグメントに関連付けられる少なくとも1つのカウントを格納するステップは、
    連続範囲のそれぞれの範囲に関連付けられる少なくとも1つのカウントを複数のビット平面に分割するステップと、
    ビット平面の少なくとも1つを識別するステップであって、前記ビット平面は該ビット平面に関連付けられる非ゼロのビット平面データを有する、ステップと、
    前記関連付けられる非ゼロのビット平面データを有する少なくとも1つのビット平面において、非ゼロのビット平面データの位置を識別するマップを生成するステップと、
    識別された少なくとも1つのビット平面に関連付けられる非ゼロのビット平面データの少なくとも1つの表現を生成するステップと、
    非ゼロのビット平面データのマップおよび少なくとも1つの表現を格納するステップとを含む、請求項3に記載の方法。
  5. 請求項1に記載の方法を行うように構成されるシステム。
  6. 請求項2に記載の方法を行うように構成されるシステム。
  7. 請求項1に記載の方法を行うように構成されるコンピュータプログラム製品。
  8. 請求項2に記載の方法を行うように構成されるコンピュータプログラム製品。
  9. 請求項1に記載の選択された識別情報および少なくとも1つのビット平面表現を含む連想マトリックスを圧縮するデータ構造。
  10. 請求項2に記載の選択された識別情報、非ゼロのビット平面データのマップおよび少なくとも1つの表現を含む連想マトリックスを圧縮するデータ構造。
  11. 属性の複数対の間の関連を表す複数のカウントを含む連想マトリックスを圧縮する方法であって、
    連想マトリックスのそれらのセグメントを選択的にビット平面化するステップであって、該ビット平面化は選択的にビット平面化されたセグメントの識別情報を伴い、前記それらのセグメントは該それらのセグメントに関連付けられる少なくとも1つのカウントを有する、ステップを含む連想マトリックスの圧縮方法。
  12. 選択的にビット平面化するステップは、
    それらのビット平面を選択的に表現するステップであって、該ビット平面表現は選択されたビット平面の識別情報を伴い、前記それらのビット平面は該それらのビット平面に関連付けられる非ゼロのビット平面データを有する、ステップを含む、請求項11に記載の方法。
  13. 請求項11に記載の方法を行うように構成されるシステム。
  14. 請求項12に記載の方法を行うように構成されるシステム。
  15. 請求項11に記載の方法を行うように構成されるコンピュータプログラム製品。
  16. 請求項12に記載の方法を行うように構成されるコンピュータプログラム製品。
  17. 請求項11に記載のセグメントの識別情報およびビット平面化されたセグメントを含む連想マトリックスを圧縮するデータ構造。
  18. 請求項12に記載のセグメントの識別情報、記載の非ゼロのビット平面データを有するそれらのビット平面のマップおよび表現を含む連想マトリックスを圧縮するデータ構造。
  19. 属性の複数対の間の関連を表す複数のカウントを含む圧縮された連想マトリックスにおいて観察される属性の間の関連を観察する方法であって、
    圧縮された連想マトリックスが、連想マトリックスのセグメントの識別情報であって前記セグメントは該セグメントに関連付けられる少なくとも1つのカウントを有するセグメントの識別情報と、それぞれの識別されたセグメントに関連付けられる前記少なくとも1つのカウントの少なくとも1つのビット平面表現とを含み、
    前記少なくとも1つのビット平面表現は、関連付けられたビット平面に対応する前記カウントのビット位置に関して、前記少なくとも1つの関連付けられたカウントの値を識別し、
    観察される属性が、関連付けられる少なくとも1つのカウントを有する連想マトリックスのセグメントの識別情報に存在する場合には、前記観察される属性に対応する少なくとも1つのビット平面表現に、観察される属性間の関連を追加し、
    観察される属性が、関連付けられる少なくとも1つのカウントを有する連想マトリックスのセグメントの識別情報に存在しない場合には、観察される属性に関する少なくとも1つのビット平面表現を作成する、方法。
  20. 属性の複数対の間の関連を表す複数のカウントを含む圧縮された連想マトリックスの選択された属性の間の関連を画像化する方法であって、圧縮された連想マトリックスが、関連付けられる少なくとも1つのカウントを有する連想マトリックスのセグメントの識別情報と、それぞれの識別されたセグメントに関連付けられる少なくとも1つのカウントの少なくとも1つのビット平面表現とを含み、前記少なくとも1つのビット平面表現は、前記関連付けられたビット平面に対応するカウントのビット位置に関して、前記少なくとも1つの関連付けられたカウントの値を識別し、
    前記圧縮された連想マトリックスにおいて選択された属性に対応する少なくとも1つのビット平面表現を取得し、
    取得された前記少なくとも1つのビット平面表現を、選択された属性の間の関連を識別するカウントに変換する、画像化方法。
JP2008525098A 2005-08-04 2006-07-31 選択されたセグメントのビット平面表現を用いた連想マトリックス法、システムおよびコンピュータプログラム製品 Expired - Fee Related JP5235666B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/196,871 US7565491B2 (en) 2005-08-04 2005-08-04 Associative matrix methods, systems and computer program products using bit plane representations of selected segments
US11/196,871 2005-08-04
PCT/US2006/029838 WO2007019124A2 (en) 2005-08-04 2006-07-31 Associative matrix methods, systems and computer program products using bit plane representations of selected segments

Publications (2)

Publication Number Publication Date
JP2009503732A true JP2009503732A (ja) 2009-01-29
JP5235666B2 JP5235666B2 (ja) 2013-07-10

Family

ID=37718862

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008525098A Expired - Fee Related JP5235666B2 (ja) 2005-08-04 2006-07-31 選択されたセグメントのビット平面表現を用いた連想マトリックス法、システムおよびコンピュータプログラム製品

Country Status (5)

Country Link
US (2) US7565491B2 (ja)
EP (1) EP1913531B1 (ja)
JP (1) JP5235666B2 (ja)
KR (1) KR101488010B1 (ja)
WO (1) WO2007019124A2 (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7478192B2 (en) * 2004-11-03 2009-01-13 Saffron Technology, Inc. Network of networks of associative memory networks
US7657496B2 (en) * 2006-06-26 2010-02-02 Saffron Technology, Inc. Nonlinear associative memories using linear arrays of associative memory cells, and methods of operating same
EP2012260B1 (en) * 2007-06-22 2012-04-11 Honda Research Institute Europe GmbH Method and device for realizing an associative memory based on inhibitory neural networks
US8352488B2 (en) * 2009-06-02 2013-01-08 Saffron Technology, Inc. Methods, systems and computer program products for providing a distributed associative memory base
EP2259214B1 (en) * 2009-06-04 2013-02-27 Honda Research Institute Europe GmbH Implementing a neural associative memory based on non-linear learning of discrete synapses
US8914149B2 (en) 2009-10-12 2014-12-16 The Boeing Company Platform health monitoring system
US20110087387A1 (en) * 2009-10-12 2011-04-14 The Boeing Company Platform Health Monitoring System
WO2011160140A1 (en) 2010-06-18 2011-12-22 Susan Bennett System and method of semantic based searching
US8572009B2 (en) 2011-08-16 2013-10-29 The Boeing Company Evaluating the health status of a system using groups of vibration data including images of the vibrations of the system
US8750617B2 (en) * 2012-03-09 2014-06-10 Blackberry Limited Signature representation of data having high dimensionality
BR112016009470A2 (pt) * 2013-10-28 2018-03-20 Intel Corp métodos, sistemas e produtos de programa de computador para o uso de uma base de memória associativa distribuída para determinar correlações e convergências de dados na mesma
EP3069305B1 (en) 2013-11-15 2020-11-04 Intel Corporation Methods, systems and computer program products for using a distributed associative memory base to determine data correlations and convergence therein
CN108665062B (zh) * 2018-04-28 2020-03-10 中国科学院计算技术研究所 一种基于小波变换减少io开销的神经网络处理系统
CN111753949A (zh) * 2019-03-28 2020-10-09 杭州海康威视数字技术股份有限公司 一种数据块处理方法、装置及电子设备
KR102515159B1 (ko) 2022-07-12 2023-03-29 인하대학교 산학협력단 딥러닝 기반 추천 시스템에서 메모리 크기와 에너지를 줄일 수 있는 임베딩의 니어-메모리 프로세싱 방법 및 시스템

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004538582A (ja) * 2001-08-10 2004-12-24 サフロン・テクノロジー,インコーポレイテッド 最大射影を規定する重みを含む人工ニューロン
US20050024402A1 (en) * 2003-07-31 2005-02-03 Quintana Jason M. Transfer of data from a controller to an output device

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59180898A (ja) * 1983-03-31 1984-10-15 Hitachi Ltd 不良ビット救済方法
US4660166A (en) * 1985-01-22 1987-04-21 Bell Telephone Laboratories, Incorporated Electronic network for collective decision based on large number of connections between signals
GB9509988D0 (en) * 1995-05-17 1995-07-12 Sgs Thomson Microelectronics Matrix transposition
US6052679A (en) * 1997-09-11 2000-04-18 International Business Machines Corporation Artificial neural networks including Boolean-complete compartments
US6597809B1 (en) * 1999-03-19 2003-07-22 Raf Technology, Inc. Rollup functions for efficient storage presentation and analysis of data
US6581049B1 (en) * 1999-11-08 2003-06-17 Saffron Technology, Inc. Artificial neurons including power series of weights and counts that represent prior and next association
US6904179B2 (en) * 2000-04-27 2005-06-07 Xerox Corporation Method for minimal-logic non-linear filter implementation
TW494322B (en) * 2000-05-29 2002-07-11 Ibm Prefix search method and data structure using compressed search tables
CA2364820A1 (en) * 2001-12-11 2003-06-11 Ibm Canada Limited-Ibm Canada Limitee Variable length encoding and decoding of ascending numerical sequences
JP4107314B2 (ja) * 2005-03-30 2008-06-25 日本電気株式会社 画像処理、圧縮、伸長、伝送、送信、受信装置及び方法並びにそのプログラム、及び表示装置
US7196641B2 (en) * 2005-04-26 2007-03-27 Gen Dow Huang System and method for audio data compression and decompression using discrete wavelet transform (DWT)
US8599925B2 (en) * 2005-08-12 2013-12-03 Microsoft Corporation Efficient coding and decoding of transform blocks

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004538582A (ja) * 2001-08-10 2004-12-24 サフロン・テクノロジー,インコーポレイテッド 最大射影を規定する重みを含む人工ニューロン
US20050024402A1 (en) * 2003-07-31 2005-02-03 Quintana Jason M. Transfer of data from a controller to an output device

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
JPN6011067607; 'BitMagic' Hierarchical Compression , 20031006 *
JPN6011067608; Denis Rinfret: TERM MATCHING AND BIT-SLICED INDEX ARITHMETIC , 200206 *
JPN7011004661; Alistair Moffat: 'Parameterised compression for sparse bitmaps' SIGIR '92 Proceedings of the 15th annual international ACM SIGIR conference on Research and developm , 1992, 274-285ページ *

Also Published As

Publication number Publication date
US20070033346A1 (en) 2007-02-08
US20100023683A1 (en) 2010-01-28
WO2007019124A2 (en) 2007-02-15
KR101488010B1 (ko) 2015-01-29
KR20080042110A (ko) 2008-05-14
US7565491B2 (en) 2009-07-21
EP1913531A2 (en) 2008-04-23
EP1913531B1 (en) 2019-02-20
WO2007019124A3 (en) 2008-03-27
JP5235666B2 (ja) 2013-07-10
US7908438B2 (en) 2011-03-15

Similar Documents

Publication Publication Date Title
JP5235666B2 (ja) 選択されたセグメントのビット平面表現を用いた連想マトリックス法、システムおよびコンピュータプログラム製品
CN111353076B (zh) 训练跨模态检索模型的方法、跨模态检索的方法和相关装置
Wang et al. TRC‐YOLO: A real‐time detection method for lightweight targets based on mobile devices
CN111782826A (zh) 知识图谱的信息处理方法、装置、设备及存储介质
Lian et al. Product quantized collaborative filtering
CN113177141A (zh) 基于语义嵌入软相似性的多标签视频哈希检索方法及设备
CA3004097A1 (en) Methods and systems for investigation of compositions of ontological subjects and intelligent systems therefrom
Ng et al. Incremental hash-bit learning for semantic image retrieval in nonstationary environments
Kan et al. Zero-shot learning to index on semantic trees for scalable image retrieval
Wang et al. Multi-concept representation learning for knowledge graph completion
CN115222998A (zh) 一种图像分类方法
CN108027816B (zh) 数据管理系统、数据管理方法及记录介质
Wang et al. Performance of training sparse deep neural networks on GPUs
Yang et al. Aggregated squeeze-and-excitation transformations for densely connected convolutional networks
CN113240046B (zh) 一种基于知识的视觉问答任务下的多模态信息融合方法
Grzegorczyk et al. Binary paragraph vectors
Wei et al. Structured network pruning via adversarial multi-indicator architecture selection
Chung et al. Filter pruning by image channel reduction in pre-trained convolutional neural networks
Liu et al. Entity representation learning with multimodal neighbors for link prediction in knowledge graph
Li et al. Flow group convolution: group convolution with channels information interaction
Gao Classification with Hash Collision Networks
CN111563159B (zh) 文本排序方法及装置
CN116230146A (zh) 数据处理方法、icd编码模型的训练方法及相关设备
Persson et al. Compression Selection for Columnar Data using Machine-Learning and Feature Engineering
Xia et al. Deep hash image retrieval based on supervised semantic preservation

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090713

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111213

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111226

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120326

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120824

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20121122

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20121130

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20121221

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20130104

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130122

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130305

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130326

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160405

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees