JP4194680B2 - データ処理装置及びその方法、及びそのプログラムを記憶した記憶媒体 - Google Patents
データ処理装置及びその方法、及びそのプログラムを記憶した記憶媒体 Download PDFInfo
- Publication number
- JP4194680B2 JP4194680B2 JP01893498A JP1893498A JP4194680B2 JP 4194680 B2 JP4194680 B2 JP 4194680B2 JP 01893498 A JP01893498 A JP 01893498A JP 1893498 A JP1893498 A JP 1893498A JP 4194680 B2 JP4194680 B2 JP 4194680B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- list
- output
- vector
- predetermined number
- 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.)
- Expired - Lifetime
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99932—Access augmentation or optimizing
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99933—Query processing, i.e. searching
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99933—Query processing, i.e. searching
- Y10S707/99935—Query augmenting and refining, e.g. inexact access
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Focusing (AREA)
Description
【発明の属する技術分野】
本発明は、ベクトル間の類似度を計算するデータ処理装置及びその方法に関し、特に、問い合わせベクトルとの類似度に基づいて所定数のデータを出力するデータ処理装置及びその方法に関するものである。
【0002】
【従来の技術】
ベクトル間の類似度を計算する方法として距離が一般的に用いられている。一般には、あるキー・ベクトルが与えられたときに、予め定められたベクトルの集合の中から、キー・ベクトルに近いものをL個抽出するという問題を扱うことが多い。このような問題設定では、全てのベクトルとの比較演算を行っていたのでは、計算量のオーダーは、ベクトルの次元Mとベクトルの集合の要素数Nに対して、O(MN)となってしまう。
【0003】
そこで、距離計算に対する高速アルゴリズムがいくつか提供されている。これら高速アルゴリズムに共通の戦略は、予めデータを構造化しておき、距離計算時の計算複雑性を軽減しようというものである。
【0004】
例えばベクトルの各軸の成分値をもとにソーティング・リストを作成しておく方法では、キーとなるベクトルが与えられたときに、適当な優先度によって軸をソーティングし、最上位に位置する軸のソーティング・リスト中で、キー・ベクトルの成分値がどこに位置するかを特定する。そして、近い位置に格納されているベクトルから順に、そのIDをもとに、ベクトルとキー・ベクトルとの距離を計算していく。正確な結果を得るためには全てのベクトルとの距離を計算しなければならないが、もしも、選択した軸の成分値に関する順序が実際のベクトル間の距離を良く反映していれば、少ない計算量で満足できる結果が期待できる。
【0005】
この方法ではデータの構造化にO(Nlog2N)、L個のベクトルとの比較演算にO(Llog2N)のオーダーの計算量で済む。射影方式と呼ばれるこの方式の他にも、K-dツリーや、その派生バージョンがあるが、前処理と検索時の計算量のオーダーは同じ程度である。
【0006】
以上説明した従来技術はベクトルの距離計算に関するものであったが、ベクトル間の類似度を表現する尺度としてノルムが有効な場合がある。例えば、「Kiyoki Y., Kitagawa T., and Hayama T., "A Metadatabase System for Semantic Image Search by a Mathematical Model of Meaning," SIGMOD RECORD, Col.23, No.4, (Dec.1994)」(以下文献1と称する)では、文脈ベクトルとの類似度を以下のように計算している。即ち、文脈ベクトルをもとに表現空間に対する射影作用素を生成し、この射影作用素によって抽出された部分空間でのベクトルのノルムを計算することによって、文脈ベクトルとの類似度を定義している。
【0007】
また、「宮原,清木,北川:“意味の数学モデルによる意味的画像探索のための高速化アルゴリズム,”情報処理学会研究報告,データベースシステム113−41,(1997.7.15)」(以下文献2と称する)では、このような類似度計算のための高速計算アルゴリズムが提案されている。これは上記、距離計算における、射影方式の直接的な応用となっている。即ち、予め各軸に対するソーティング・リストを作成しておく。そして文脈ベクトルが与えられると、文脈ベクトルの成分値に基づいて各軸の優先度を決定する。ソーティング・リストの優先度と、各リストにおける順位に基づいて、文脈ベクトルとの類似度を決定する。この方式では、前処理の計算量がO(Nlog2N)、比較計算は結果として出力するデータ数Lのオーダーである。
【0008】
【発明が解決しようとする課題】
しかしながら、上記文献2の従来方式には以下のような問題がある。これを図2を用いて説明する。図2は、文献2の従来方式で作成されるソーティング・リストの例を示す図である。
【0009】
文献2の方式では、最初に、優先度が最も高い軸のソーティング・リストの最上位に位置するベクトルを最も類似度が高いと判断する。図2ではID番号10のベクトルである。次に同じ軸の第2位に位置するベクトル、図2中ID番号6のベクトルを、2番目に類似度が高いとする。3番目に類似度が高いベクトルは、優先度が2番目の軸のソーティング・リストの最上位に位置するベクトル、図中ID番号3のベクトルと決定する。このように、文献2の方式では、リスト上の位置の順に類似度を決定していくので、例えばID番号6とID番号3の順序が実際の類似度とは逆転している可能性がある。
【0010】
【課題を解決するための手段】
上記課題を解決するために、本発明では、ベクトル形式のデータの集合を記憶したデータベースと、問い合わせベクトルを入力する入力手段と、プログラムを記憶するメモリと、該メモリに記憶されたプログラムを実行することで、リスト作成手段と、リスト優先順位決定手段と、選択手段と、出力手段と、制御手段とを実現するプロセッサとを備え、前記ベクトル形式のデータの集合から、前記問い合わせベクトルと類似度の高いデータを第1の所定数抽出するデータ処理装置において、前記リスト作成手段が、前記データベースのデータをベクトルの1成分の強度の降順に並べたデータのリストを各成分について作成し、前記リスト優先順位決定手段が、前記問い合わせベクトルの成分強度の降順に前記リストのそれぞれに対する優先順位を決定し、前記選択手段が、前記各成分についてのリストから各リストに対する前記優先順位と各リスト内の順位とに基づいて第2の所定数のデータを選択し、前記出力手段が、前記選択手段により選択された前記第2の所定数のデータから、該データの各々と前記問い合わせベクトルとの類似度に基づいて1つのデータを出力し、前記制御手段が、前記出力手段により出力したデータ以外のデータを対象として、前記選択手段による前記第2の所定数のデータ選択と、前記出力手段による1つのデータの出力とを、当該出力手段より出力したデータの総数が前記第1の所定数のデータに達するまで繰り返し実行するように制御することを特徴とする。
【0011】
また、他の態様によれば、ベクトル形式のデータの集合を記憶したデータベースと、問い合わせベクトルを入力する入力手段と、プログラムを記憶するメモリと、該メモリに記憶されたプログラムを実行することで、リスト作成手段と、リスト優先順位決定手段と、選択手段と、出力手段と、制御手段とを実現するプロセッサとを備えたデータ処理装置において、前記データベースに記憶されたベクトル形式のデータの集合から、前記問い合わせベクトルと類似度の高いデータを第1の所定数抽出するデータ処理方法に、前記リスト作成手段が、前記データベースのデータをベクトルの1成分の強度の降順に並べたデータのリストを各成分について作成するリスト作成工程と、前記リスト優先順位決定手段が、前記問い合わせベクトルの成分強度の降順に前記リストのそれぞれに対する優先順位を決定するリスト優先順位決定工程と、前記選択手段が、前記各成分についてのリストから各リストに対する前記優先順位と各リスト内の順位とに基づいて第2の所定数のデータを選択する選択工程と、前記出力手段が、前記選択手段により選択された前記第2の所定数のデータから、該データの各々と前記問い合わせベクトルとの類似度に基づいて1つのデータを出力する出力工程と、前記制御手段が、前記出力工程で出力したデータ以外のデータを対象として、前記選択工程による前記第2の所定数のデータ選択と、前記出力工程による1つのデータの出力とを、当該出力工程で出力したデータの総数が前記第1の所定数のデータに達するまで繰り返し実行するように制御する制御工程とを備える。
【0012】
また、他の態様によれば、コンピュータ読み取り可能な記憶媒体に、ベクトル形式のデータの集合を記憶したデータベースと、問い合わせベクトルを入力する入力手段とを備えたコンピュータに、前記ベクトル形式のデータの集合から、前記問い合わせベクトルと類似度の高いデータを第1の所定数抽出する処理を実行させるデータ処理プログラムであって、前記データベースのデータをベクトルの1成分の強度の降順に並べたデータのリストを各成分について作成するリスト作成工程と、前記問い合わせベクトルの成分強度の降順に前記リストのそれぞれに対する優先順位を決定するリスト優先順位決定工程と、前記各成分についてのリストから各リストに対する前記優先順位と各リスト内の順位とに基づいて第2の所定数のデータを選択する選択工程と、該選択工程により選択された前記第2の所定数のデータから、該データの各々と前記問い合わせベクトルとの類似度に基づいて1つのデータを出力する出力工程と、前記出力工程で出力したデータ以外のデータを対象として、前記選択工程による前記第2の所定数のデータ選択と、前記出力工程による1つのデータの出力とを、当該出力工程で出力したデータの総数が前記第1の所定数のデータに達するまで繰り返し実行するように制御する制御工程とを前記コンピュータに実行させることを特徴とするデータ処理プログラムを記憶する。
【0013】
【発明の実施の形態】
図1は、本発明の1実施形態であるデータ処理装置の機能構成を表す図である。装置の各部は、以下に説明する機能を実現するものであれば、それぞれが専用のプログラムメモリやプロセッサを含む機器であってもよいし、複数の機能部を、同一のCPUがROMやディスクメモリ等に記憶された各機能プログラム(フローチャートにつき後述する処理手順に対応するプログラムを含む)を実行することにより、あるいは各機能に対応する特定のハードウェアを制御する制御プログラムを実行することにより実現してもよい。
【0014】
図1において、データベース103は、ベクトルとして記述された検索対象データを格納している。リスト作成部101は、データベース103のデータについて、成分毎に降順に並べたデータIDのリストを作成・記憶する。候補出力部102は、問い合わせベクトルとデータベース103のデータとの類似度を計算して所定数の候補データを出力する。
【0015】
<リスト作成部101>
処理の対象となるデータは、適当な次元を持つ計量ベクトル空間上のベクトルとして表現されているとし、ベクトルの次元をDとする。以下、データ集合に属する任意のデータXのm成分強度をXmと記述する。また、データ集合Ωに含まれるデータをXj, j∈ (1,2, ... , N)と記述する。
【0016】
リスト作成部101では、データ集合に含まれる全てのデータの各成分値毎のソーティング・リストを作成し、記憶する。
【0017】
m番目の成分に関するソーティング・リストのn番目の値をR(m,n)と書く。すなわち、R(m,n)は、m番目の成分に関してn番目に大きい値を持つベクトルのインデクスを表す。
【0018】
<候補出力部102>
候補出力部102では、与えられた文脈ベクトルの下でのベクトルXのノルムを計算する。その処理の流れを説明する前に、計算に用いられるデータについて、図7を用いて説明する。図7は、具体例による各データの計算の途中結果を示す図である。
【0019】
PAXはベクトル空間の各軸の優先順位を表わすベクトル変数であり、優先順位の高い順に軸の番号が格納されている。図7の例では、第4成分が最も優先順位が高く、次が第3成分となっている。Rはリスト作成部101により作成される、各成分値に基づくデータIDのソーティング・リストである。
【0020】
INDXは、各成分で現在計算の対象となっているのが、ソーティング・リストRの何番目のベクトルかを示すベクトル変数である。図7ではINDX(1)が1であるが、これは第1成分に対するソーティング・リストの第1番目のベクトル、即ちID10のベクトルが計算の対象となっていることを示している。NRMは上記計算の対象となっている各ベクトルのノルムを格納するベクトル変数である。
【0021】
PTRは計算の対象としているベクトルを指すポインタを成分に持つベクトルである。TNRMはPTRで指し示されるベクトルのノルムを格納する。ANSは検索結果を格納する。
【0022】
図3は、候補出力部102の処理手順を示すフローチャートである。同図を用いて候補出力部102の処理の流れを説明する。
【0023】
ステップS301では、問い合わせベクトルの成分値に基づいてPAXを作成する。ここでは、問い合わせベクトルの成分強度の降順に軸の優先順位を定め、優先順位の高い順に軸の番号を格納するものとする。ステップS302では、PTR、D、INDX、NRMを初期化する。
【0024】
ここで、PTRは計算の対象としているベクトルを指すポインタを成分に持つ3次元ベクトルであり、以下のように初期化する:
PTR = (0, 1, 2)T (1)
【0025】
DはPTRの有効成分数を表すものであり、ベクトルの次元数Mに初期化する。
【0026】
INDXはデータベクトルと同じ次元数Mを持つベクトル変数であり、INDX(n)には、n番目の成分に対するソーティング・リストにおいて現在計算の対象となっている要素が何番目の要素かが格納されている。
【0027】
例えば、INDX(m)にnが格納されているときには、R(m,n)の内容(ベクトルのID番号)を指すポインタを意味している。全ての要素に対して1で初期化される。
【0028】
NRMはデータベクトルと同じ次元数Mを持つベクトル変数であり、NRM(n)には、INDX(n)で指し示されるID番号のノルムが格納されている。ノルムの計算は、要求されるまでは行わない。そこで、−1を格納することによって、まだ計算されていないことを表すことにする。従って、初期値は全ての値に対して−1を設定する。
【0029】
TNRMはPTRと同じ次元を持つベクトル変数であり、PTRで指し示される3個のベクトルのノルムを格納する。
【0030】
PTR、PAX、そしてINDXによってベクトルのID番号が決定される。実際、PTR(n)に対応するベクトルID番号Jは次式で計算される:
J = R( PAX(PTR(n)), INDX(PAX(PTR(n))) (2)
例えば、図7のPTR(2)に対するベクトルのID番号Jは、
と計算される。
【0031】
ステップS303では、図4につき後述する処理によって、PTRで指し示される3個のベクトルのノルムの計算を行う。これにより変数TNRMが更新される。ただし、PTRが指すベクトルID番号が適当でないとき、例えば0以下であったり、データの総数を超えるような場合、或いはPTRが直接指し示すべき行列Rのインデクスが適当でないような場合には、−1が格納される。これによって格納されている値が有効かどうかが判断できる。
【0032】
ステップS304では、検索結果が何番目であるかを示すmを1に設定する。ステップS305では、PTR(2)に対応するベクトルID番号を(2)式で計算し、m番目の検索結果ANS(m)として出力する。
【0033】
ステップS306では、mが出力すべき候補数L以上であれば処理を終了し、そうでなければステップS307へ進む。ステップS307では、
INDX(PAX(PTR(2)))の内容に1を加算する。ステップS308では、
NRM(PAX(PTR(2)))に−1を格納する。
【0034】
ステップS309では、図4につき後述するノルム計算処理によってノルムを計算し、TNRMの値を更新する。ステップS310では、図6につき後述するポインタ更新処理によってPTRの値を更新する。ステップS311では、mに1を加算し、ステップS305へ進む。
【0035】
図4は、ポインタの指すベクトルのノルム計算処理手順を示すフローチャートである。図4につきTNRMのノルムの計算処理を説明する。
【0036】
ステップS401では、nを1に初期化する。ステップS402では、図5につき後述するノルム計算処理によって、PTR(n)に対応するベクトルのノルムを計算し、TNRM(n)に値を格納する。ステップS403では、nに1を加算する。ステップS404では、nが3を超えたかどうか検査し、超えていなければS402へ進み、超えていれば処理を終了する。
【0037】
図5は、各ベクトルのノルム計算処理手順を示すフローチャートである。図5につきステップS402で実行されるノルム計算処理を説明する。この処理はポインタPTR(n)の指すベクトルのID番号Jを引数として受け取る。
【0038】
ステップS501では、PAX(J)が0を超え、かつN以下かどうかを検査し、この範囲内であればステップS502へ、そうでなければステップS506へ進む。
【0039】
ステップS502では、NRM(PAX(J))が非負かどうか検査し、そうであればステップS505へ、そうでなければステップS503へ進む。
【0040】
ステップS503では、ID番号J = R( PAX(PTR(n)), INDX(PAX(PTR(n)))が既に答えとして出力されたかどうかを検査し、出力されていればステップS506へ、そうでなければステップS504へ進む。
【0041】
ステップS504では、次式によってID番号JのベクトルXのノルムを計算し、NRM(PAX(PTR(J)))に格納する:
‖X‖ = (ΣjKj 2Xj 2)1/2 (3)
ただし、K=(K1, K2, ... , KM)はユーザによって与えられた問い合わせベクトルである。あるいはノルムの2乗でも構わない:
‖X‖2 = (ΣjKj 2Xj 2) (3)'
【0042】
ステップS505では、戻り値としてNRM(PAX(PTR(J)))をセットする。
ステップS506では戻り値として−1をセットする。
【0043】
図6は、ポインタの更新処理手順を示すフローチャートである。図6につきステップS310で実行される処理を説明する。
【0044】
ステップS601では、TNRMの3個の成分のうちの最大値を求め、そのインデクスが1であればステップS602へ、そうでなければステップS603へ進む。ステップS602では、PTRの全ての成分から1を減ずる。ステップS603では、最大値のインデクスが3であればステップS604へ、そうでなければ処理を終了する。ステップS604では、PTRの全ての成分に1を加算する。以上により、PTR(2)はTNRMの3個の成分のうちの最大値に対応するベクトルを指すようになり、ステップS305で、そのID番号が検索結果として出力される。
【0045】
上記装置を用いて、以下に示す10個の5次元(縦)ベクトルのソーティングリストを作成する。ただし、ユーザーが指定した問い合わせベクトルK = (0.1208, 0.3529, 0.6511, 0.6595, 0.0439)T、L=3とする。
【0046】
X1 = ( 0.1612, 0.0346, 0.4996, 0.5000, 0.6879 )T
X2 = ( 0.3638, 0.4927, 0.7882, 0.0328, 0.0507 )T
X3 = ( 0.5638, 0.7144, 0.0082, 0.4081, 0.0712 )T
X4 = ( 0.2602, 0.4280, 0.3671, 0.5799, 0.5274 )T
X5 = ( 0.4488, 0.0783, 0.5570, 0.3543, 0.5972 )T
X6 = ( 0.6401, 0.5359, 0.1845, 0.0334, 0.5176 )T
X7 = ( 0.2215, 0.4269, 0.5105, 0.6688, 0.2465 )T
X8 = ( 0.1550, 0.6164, 0.4534, 0.4726, 0.4087 )T
X9 = ( 0.0603, 0.5242, 0.7343, 0.2263, 0.3622 )T
X10 = ( 0.7386, 0.4604, 0.2291, 0.2649, 0.3462 )T
【0047】
さて、まずリスト作成部101において、成分毎の強度に関する降順リストとして以下の5個のリストを生成し、記憶する:
1番目の成分 → {X10, X6, X3, X5, X2, X4, X7, X1, X8, X9}
2番目の成分 → {X3, X8, X6, X9, X2, X10, X4, X7, X5, X1}
3番目の成分 → {X2, X9, X5, X7, X1, X8, X4, X10, X6, X3}
4番目の成分 → {X7, X4, X1, X8, X3, X5, X10, X9, X6, X2}
5番目の成分 → {X1, X5, X4, X6, X8, X9, X10, X7, X3, X2}
【0048】
降順リストの計算量はデータ数Nに対してO(NlogN)であるから、ベクトルがM次元であるとすると、予めO(MNlogN)の準備を行えばよい。
【0049】
次に候補出力部102の処理を実行する。
【0050】
ステップS301で、問い合わせベクトルの成分値からPAXは以下のように決定できる:
PAX = ( 4, 3, 2, 1, 5 ) (4)
【0051】
ステップS302で以下のように初期化を行う:
D = 5
PTR = ( 0, 1, 2 )
INDX = ( 1, 1, 1, 1, 1)
NRM = ( -1, -1, -1, -1, -1 )
【0052】
ステップS303では、ノルムを計算する。PTR(1)に対応する行列Rのインデクスは、(PAX(PTR(1)), INDX(PAX(PTR(1)))) = (PAX(0), INDX(PAX(0)))となり、PAX(0)は適当でないので、PTR(1)に対応するID番号は存在せず、TNRM(1)には−1が格納される。
【0053】
PTR(2)に対応する行列Rのインデクスは、
(PAX(PTR(2)), INDX(PAX(PTR(2)))) = (PAX(1), INDX(PAX(1)))= (4, 1)となり、ベクトルID番号はR(4, 1)の値、即ち7と与えられる。ID7のベクトルX7のノルムを(3)式を用いて計算すれば0.5376が得られ、NRM(PAX(PTR(2))) = NRM(4)に格納する。同様にPTR(3)に対し、NRM(PAX(PTR(3))) = NRM(3)にX2のノルム、0.5070を格納する。
【0054】
ステップS304では、mを1に設定する。ステップS305では、PTR(2)に対応するベクトルID番号である7を出力する。ステップS306では、mがL以上かどうかを検査し、mがL未満なのでステップS307に進む。
【0055】
ステップS307では、INDX(PAX(PTR(2))) = INDX(4)の値1に1を加算し、2とする。ステップS308では、NRM(PAX(PTR(2))) = NRM(4)に−1を格納する。
【0056】
ステップS309ではノルムを計算する。PTRで指し示されているNRMのインデクスは4と3であり、NRM(4)とNRM(3)のうち、値が負であるのはNRM(4)なので、ID番号がR(4, INDX(4)) = R(4, 2) = 4のベクトルのノルムを計算する。その結果0.3945という値が得られ、この値をNRM(4)及びTNRM(2)に格納する。
【0057】
ステップS310では、PTRの値を更新する。図6に示すフローチャートに基づけば、TNRMの値に基づいて処理が行われる。現在のTNRMは
TNRM = ( -1, 0.3945, 0.5070 )T
であり、最大値を取る成分のインデクスは3なので、PTRの全ての値に1を加算し、
PTR = ( 1, 2, 3)T
となる。ここまでの処理によって、各データの値は図8に示すように更新される。
【0058】
ステップS311では、mに1を加算する。ステップS305では、R(PAX(PTR(2)), INDX(PAX(PTR(2)))) = 2を2番目の結果として出力する。ステップS306では、mがL以上かどうか検査し、mはL未満なのでステップS307へ進む。ステップS307では、INDX(PAX(PTR(2))) = 1に1を加算し2にする。ステップS308では、NRM(PAX(PTR(2)))に−1を格納する。
【0059】
ステップS309では、ノルムを計算する。NRM(PTR(1))、NRM(PTR(2))、NRM(PTR(3))のうちで−1なのはNRM(PTR(2))とNRM(PTR(3))なので、これらに対応するベクトル、即ち、ID番号9と3のベクトルのノルムを計算する。その結果、
NRM(PTR(3)) = 0.4880, TNRM(2) = 0.4880
NRM(PTR(2)) = 0.3286, TNRM(3) = 0.3286となる。
【0060】
ステップS310では、PTRを更新する。TNRMの成分のうち最大値を取るのは2番目の成分なので、PTRの値はそのままである。ここまでの処理によって、各データの値は図9に示すように更新される。
【0061】
ステップS311において、mを更新する。ステップS305では、
R(PAX(PTR(2)), INDX(PAX(PTR(2)))) = R(3, 2) = 9なので、9を結果として出力する。ステップS306でmがL以上かどうか検査するが、m=Lなので処理を終了する。
【0062】
上記例題に対する出力として、{X7, X2, X9}という候補リストが得られた。内積計算を正確に行った結果である{ X7, X2, X9, X8, X4, X1, X3, X5, X10, X6 }の上位3個と比較すると、上述の高速近似計算の結果全てが正解であったことがわかる。常に正解を与える保証はないが、本発明が良い近似解を与えることが期待できる。以上の処理の計算量は、ベクトルの次元Mと抽出すべきデータ数Lに対してML個の乗算と加算で十分である。
【0063】
これに対し、通常の内積計算を行うには、全データ数をNとすると、それぞれの内積を計算するためにMN個の乗算と加算が必要である。従って、LがNに比べて非常に小さい場合、計算量の点で有効な技術である。膨大なNを扱う状況は、一般の認識問題で常に出くわすものであり、その際、基本となるデータKと近いデータをせいぜい数個得られれば、その後の処理にとって十分有効である場合が多い。上記の方法は、そのような場合に有効である。
【0064】
尚、本発明は、上述した実施形態の機能を実現するソフトウェアのプログラムコードを記憶した記憶媒体を、装置あるいはシステムに供給し、装置あるいはシステム内のコンピュータが記憶媒体に格納されたプログラムコードを読み出して実行することによって達成してもよい。
【0065】
更に、装置あるいはシステム内のコンピュータが記憶媒体に格納されたプログラムコードを読み出して実行することによって、上述した実施形態の機能を直接実現するばかりでなく、そのプログラムコードの指示に基づいて、コンピュータ上で稼動しているOSなどの処理により、上述の機能を実現される場合も含まれる。
【0066】
これらの場合、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【0067】
【発明の効果】
以上説明したように、本発明によれば、与えられたベクトルとの類似度に基づくデータ集合のソーティング・リストの一部を、高速に生成することができる。これにより、問い合わせベクトルとの類似度の高いデータをデータベースから検索する場合において、検索速度を劇的に短縮することができる。
【図面の簡単な説明】
【図1】実施形態の情報処理装置の機能構成図である。
【図2】ソーティング・リストの例を示す図である。
【図3】候補出力部の処理手順を示すフローチャートである。
【図4】ポインタの指すベクトルのノルム計算処理手順を示すフローチャートである。
【図5】各ベクトルのノルム計算処理手順を示すフローチャートである。
【図6】ポインタの更新処理手順を示すフローチャートである。
【図7】具体例による計算の途中結果を示す図である。
【図8】具体例による計算の途中結果を示す図である。
【図9】具体例による計算の途中結果を示す図である。
Claims (11)
- ベクトル形式のデータの集合を記憶したデータベースと、問い合わせベクトルを入力する入力手段と、プログラムを記憶するメモリと、該メモリに記憶されたプログラムを実行することで、リスト作成手段と、リスト優先順位決定手段と、選択手段と、出力手段と、制御手段とを実現するプロセッサとを備え、前記ベクトル形式のデータの集合から、前記問い合わせベクトルと類似度の高いデータを第1の所定数抽出するデータ処理装置であって、
前記リスト作成手段が、前記データベースのデータをベクトルの1成分の強度の降順に並べたデータのリストを各成分について作成し、
前記リスト優先順位決定手段が、前記問い合わせベクトルの成分強度の降順に前記リストのそれぞれに対する優先順位を決定し、
前記選択手段が、前記各成分についてのリストから各リストに対する前記優先順位と各リスト内の順位とに基づいて第2の所定数のデータを選択し、
前記出力手段が、前記選択手段により選択された前記第2の所定数のデータから、該データの各々と前記問い合わせベクトルとの類似度に基づいて1つのデータを出力し、
前記制御手段が、前記出力手段により出力したデータ以外のデータを対象として、前記選択手段による前記第2の所定数のデータ選択と、前記出力手段による1つのデータの出力とを、当該出力手段より出力したデータの総数が前記第1の所定数のデータに達するまで繰り返し実行するように制御することを特徴とするデータ処理装置。 - 前記類似度は、前記問い合わせベクトルの成分強度に基づいて重み付けされた各データのノルムであることを特徴とする請求項1に記載のデータ処理装置。
- 前記選択手段は、前記リストから前記第2の所定数のリストを選択し、当該選択された各リストより前記出力手段により出力したデータを除いたデータ中で最上位のデータを選択することを特徴とする請求項1に記載のデータ処理装置。
- 前記選択手段は、前記出力手段により前回データが出力されたリストの優先順位に基づいて、前記第2の所定数のリストを選択することを特徴とする請求項3に記載のデータ処理装置。
- 前記選択手段により選択された前記第2の所定数のデータの中で、前記問い合わせデータとの類似度を未計算のデータについて当該類似度を計算する類似度計算手段を備えたことを特徴とする請求項1に記載のデータ処理装置。
- ベクトル形式のデータの集合を記憶したデータベースと、問い合わせベクトルを入力する入力手段と、プログラムを記憶するメモリと、該メモリに記憶されたプログラムを実行することで、リスト作成手段と、リスト優先順位決定手段と、選択手段と、出力手段と、制御手段とを実現するプロセッサとを備えたデータ処理装置において、前記データベースに記憶されたベクトル形式のデータの集合から、前記問い合わせベクトルと類似度の高いデータを第1の所定数抽出するデータ処理方法であって、
前記リスト作成手段が、前記データベースのデータをベクトルの1成分の強度の降順に並べたデータのリストを各成分について作成するリスト作成工程と、
前記リスト優先順位決定手段が、前記問い合わせベクトルの成分強度の降順に前記リストのそれぞれに対する優先順位を決定するリスト優先順位決定工程と、
前記選択手段が、前記各成分についてのリストから各リストに対する前記優先順位と各リスト内の順位とに基づいて第2の所定数のデータを選択する選択工程と、
前記出力手段が、前記選択手段により選択された前記第2の所定数のデータから、該データの各々と前記問い合わせベクトルとの類似度に基づいて1つのデータを出力する出力工程と、
前記制御手段が、前記出力工程で出力したデータ以外のデータを対象として、前記選択工程による前記第2の所定数のデータ選択と、前記出力工程による1つのデータの出力とを、当該出力工程で出力したデータの総数が前記第1の所定数のデータに達するまで繰り返し実行するように制御する制御工程とを備えたことを特徴とするデータ処理方法。 - 前記類似度は、前記問い合わせベクトルの成分強度に基づいて重み付けされた各データのノルムであることを特徴とする請求項6に記載のデータ処理方法。
- 前記選択工程では、前記選択手段が、前記リストから前記第2の所定数のリストを選択し、当該選択された各リストより前記出力工程で出力したデータを除いたデータ中で最上位のデータを選択することを特徴とする請求項6に記載のデータ処理方法。
- 前記選択工程では、前記出力工程により前回データが出力されたリストの優先順位に基づいて、前記第2の所定数のリストを選択することを特徴とする請求項8に記載のデータ処理方法。
- 前記プロセッサが、前記メモリに記憶されたプログラムを実行することで、更に類似度計算手段を実現し、該類似度計算手段が、前記選択工程により選択された前記第2の所定数のデータの中で、前記問い合わせデータとの類似度を未計算のデータについて当該類似度を計算する類似度計算工程を備えたことを特徴とする請求項6に記載のデータ処理方法。
- ベクトル形式のデータの集合を記憶したデータベースと、問い合わせベクトルを入力する入力手段とを備えたコンピュータに、前記ベクトル形式のデータの集合から、前記問い合わせベクトルと類似度の高いデータを第1の所定数抽出する処理を実行させるデータ処理プログラムであって、
前記データベースのデータをベクトルの1成分の強度の降順に並べたデータのリストを各成分について作成するリスト作成工程と、
前記問い合わせベクトルの成分強度の降順に前記リストのそれぞれに対する優先順位を決定するリスト優先順位決定工程と、
前記各成分についてのリストから各リストに対する前記優先順位と各リスト内の順位とに基づいて第2の所定数のデータを選択する選択工程と、
該選択工程により選択された前記第2の所定数のデータから、該データの各々と前記問い合わせベクトルとの類似度に基づいて1つのデータを出力する出力工程と、
前記出力工程で出力したデータ以外のデータを対象として、前記選択工程による前記第2の所定数のデータ選択と、前記出力工程による1つのデータの出力とを、当該出力工程で出力したデータの総数が前記第1の所定数のデータに達するまで繰り返し実行するように制御する制御工程とを前記コンピュータに実行させることを特徴とするデータ処理プログラムを記憶したコンピュータ読み取り可能な記憶媒体。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP01893498A JP4194680B2 (ja) | 1998-01-30 | 1998-01-30 | データ処理装置及びその方法、及びそのプログラムを記憶した記憶媒体 |
US09/236,221 US6334129B1 (en) | 1998-01-30 | 1999-01-25 | Data processing apparatus and method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP01893498A JP4194680B2 (ja) | 1998-01-30 | 1998-01-30 | データ処理装置及びその方法、及びそのプログラムを記憶した記憶媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH11218806A JPH11218806A (ja) | 1999-08-10 |
JP4194680B2 true JP4194680B2 (ja) | 2008-12-10 |
Family
ID=11985483
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP01893498A Expired - Lifetime JP4194680B2 (ja) | 1998-01-30 | 1998-01-30 | データ処理装置及びその方法、及びそのプログラムを記憶した記憶媒体 |
Country Status (2)
Country | Link |
---|---|
US (1) | US6334129B1 (ja) |
JP (1) | JP4194680B2 (ja) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7251637B1 (en) * | 1993-09-20 | 2007-07-31 | Fair Isaac Corporation | Context vector generation and retrieval |
US6578031B1 (en) * | 1998-09-30 | 2003-06-10 | Canon Kabushiki Kaisha | Apparatus and method for retrieving vector format data from database in accordance with similarity with input vector |
US6694311B1 (en) * | 1999-01-25 | 2004-02-17 | International Business Machines Corporation | Method and apparatus for fast query approximation using adaptive query vector projection |
WO2001046858A1 (fr) * | 1999-12-21 | 2001-06-28 | Matsushita Electric Industrial Co., Ltd. | Creation d'un indice vectoriel, recherche de vecteurs similaires et dispositifs correspondants |
AU2001281111A1 (en) * | 2000-08-04 | 2002-02-18 | Infoglide Corporation | System and method for comparing heterogeneous data sources |
US6795819B2 (en) * | 2000-08-04 | 2004-09-21 | Infoglide Corporation | System and method for building and maintaining a database |
US7130466B2 (en) * | 2000-12-21 | 2006-10-31 | Cobion Ag | System and method for compiling images from a database and comparing the compiled images with known images |
US6993532B1 (en) * | 2001-05-30 | 2006-01-31 | Microsoft Corporation | Auto playlist generator |
US7680833B1 (en) * | 2002-11-22 | 2010-03-16 | Bmc Software, Inc. | System and method for database structure comparison |
US7124149B2 (en) * | 2002-12-13 | 2006-10-17 | International Business Machines Corporation | Method and apparatus for content representation and retrieval in concept model space |
US8600963B2 (en) * | 2003-08-14 | 2013-12-03 | Google Inc. | System and method for presenting multiple sets of search results for a single query |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1996041281A1 (en) * | 1995-06-07 | 1996-12-19 | International Language Engineering Corporation | Machine assisted translation tools |
US5920859A (en) * | 1997-02-05 | 1999-07-06 | Idd Enterprises, L.P. | Hypertext document retrieval system and method |
US5864846A (en) * | 1996-06-28 | 1999-01-26 | Siemens Corporate Research, Inc. | Method for facilitating world wide web searches utilizing a document distribution fusion strategy |
JP3598742B2 (ja) * | 1996-11-25 | 2004-12-08 | 富士ゼロックス株式会社 | 文書検索装置及び文書検索方法 |
-
1998
- 1998-01-30 JP JP01893498A patent/JP4194680B2/ja not_active Expired - Lifetime
-
1999
- 1999-01-25 US US09/236,221 patent/US6334129B1/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JPH11218806A (ja) | 1999-08-10 |
US6334129B1 (en) | 2001-12-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108875074B (zh) | 基于交叉注意力神经网络的答案选择方法、装置和电子设备 | |
CN108804641B (zh) | 一种文本相似度的计算方法、装置、设备和存储介质 | |
US8761496B2 (en) | Image processing apparatus for calculating a degree of similarity between images, method of image processing, processing apparatus for calculating a degree of approximation between data sets, method of processing, computer program product, and computer readable medium | |
JP4003468B2 (ja) | 適合性フィードバックによる類似データ検索方法および装置 | |
JP4011906B2 (ja) | プロファイル情報の情報検索方法、プログラム、記録媒体及び装置 | |
US6173275B1 (en) | Representation and retrieval of images using context vectors derived from image information elements | |
JP3225912B2 (ja) | 情報検索装置、方法及び記録媒体 | |
CN111611361A (zh) | 抽取式机器智能阅读理解问答系统 | |
US20020164078A1 (en) | Information retrieving system and method | |
JP4194680B2 (ja) | データ処理装置及びその方法、及びそのプログラムを記憶した記憶媒体 | |
CN112069801A (zh) | 基于依存句法的句子主干抽取方法、设备和可读存储介质 | |
US11461613B2 (en) | Method and apparatus for multi-document question answering | |
US20140236869A1 (en) | Interactive variable selection device, interactive variable selection method, and interactive variable selection program | |
CN116648698A (zh) | 动态分面排序 | |
KR100318512B1 (ko) | 두그룹간의유사도계산방법 | |
CN110413749B (zh) | 确定标准问题的方法及装置 | |
JPH11213004A (ja) | データ処理装置及びその方法、及びそのプログラムを記憶した記憶媒体 | |
CN111259126A (zh) | 基于词语特征的相似度计算方法、装置、设备及存储介质 | |
EP4198844A1 (en) | Artificial intelligence feedback method and artificial intelligence feedback system | |
US20230306278A1 (en) | Artificial intelligence feedback method and artificial intelligence feedback system | |
US7523115B2 (en) | Method for finding objects | |
CN112650869A (zh) | 图像检索重排序方法、装置、电子设备及存储介质 | |
JP4636734B2 (ja) | 情報検索システム、情報検索方法、情報検索プログラム、情報検索プログラムを記録した記録媒体、出力情報選択装置、出力情報選択方法、出力情報選択プログラム及び出力情報選択プログラムを記録した記録媒体 | |
Gallas et al. | Negative relevance feedback for improving retrieval in large-scale image collections | |
JP4086376B2 (ja) | データ処理装置及びその方法、及びそのプログラムを記憶した記憶媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040527 |
|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20040705 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080219 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080421 |
|
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: 20080715 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
R155 | Notification before disposition of declining of application |
Free format text: JAPANESE INTERMEDIATE CODE: R155 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080924 |
|
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: 20111003 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111003 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121003 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131003 Year of fee payment: 5 |
|
EXPY | Cancellation because of completion of term |