JP2000112944A - データ処理装置及びその方法、及びそのプログラムを記憶した記憶媒体 - Google Patents

データ処理装置及びその方法、及びそのプログラムを記憶した記憶媒体

Info

Publication number
JP2000112944A
JP2000112944A JP10277657A JP27765798A JP2000112944A JP 2000112944 A JP2000112944 A JP 2000112944A JP 10277657 A JP10277657 A JP 10277657A JP 27765798 A JP27765798 A JP 27765798A JP 2000112944 A JP2000112944 A JP 2000112944A
Authority
JP
Japan
Prior art keywords
data
similarity
component
value
list
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
Application number
JP10277657A
Other languages
English (en)
Inventor
Teruyoshi Washisawa
輝芳 鷲澤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP10277657A priority Critical patent/JP2000112944A/ja
Priority to US09/406,696 priority patent/US6578031B1/en
Publication of JP2000112944A publication Critical patent/JP2000112944A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

(57)【要約】 【課題】 データベース内のベクトル形式のデータ中か
らテストベクトルと内積に基づく類似度の高い所定個の
データを高速に抽出する。 【解決手段】 データベースの各データのノルムの二乗
を求め、当該各データをベクトルの1成分の値の順に並
べたデータのリストを各成分について作成しておき、テ
ストデータに計量テンソルを作用させ(s301)、基底イン
デクスから順次選択された1つの成分につき、前記リス
トからテストデータと成分値の差の小さい順にデータを
指すポインタを更新し(s306)、ポインタの指すデータの
ノルムに基づく当該データとテストデータとの部分空間
における類似度に基づいて、棄却条件を満足するかを判
定し(s309 〜310)、満足しなければポインタの指すデー
タとテストデータとの全空間における類似度を計算し(s
312)、計算された類似度の高い順に所定数のデータを抽
出する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、ベクトル形式のデ
ータの処理に関し、特に、入力ベクトルとの内積に基づ
いてデータベースより所定数のデータを抽出するデータ
処理装置及びその方法に関するものである。
【0002】
【従来の技術】ベクトルで表現されたデータ間の類似度
として内積が広く用いられている。例えば文字認識や音
声認識システムでは、サンプリングされたデータを適当
な基底で張られた特徴量空間に写像し、ベクトル表現さ
れたデータをプロトタイプとして記憶しておく。新たに
入力されたデータとプロトタイプとの距離を計算し、入
力データを最も近いプロトタイプに対応するクラスに属
するものとして同定する。
【0003】最も効率の悪い計算方法は全数探索であ
り、その計算量はベクトルの次元とプロトタイプ数の積
のオーダーになる。
【0004】内積の計算量が決定的な障害として認識さ
れるのは、データベース検索においてである。近年のコ
ンピュータ処理能力の飛躍的発達によってデータベース
は文書データのみならず、画像や音声といった非テクス
トデータをも蓄積できるようになった。これら非テクス
トデータを従来のキーワードで検索するためにはキーワ
ードを付与しなければならない。キーワード付与の手間
を避けたいなら特徴量ベクトルによる類似検索を行わな
ければならない。
【0005】また文書データを検索する場合でも、より
柔軟な検索を可能にするために文書をベクトルで表現
し、このベクトルに基づく類似検索を行うアルゴリズム
も実現されている。このとき前記計算量が検索システム
実現の本質的問題となる。通常のデータベースに格納さ
れるデータ件数は数十万件を超える。従ってベクトルの
次元数が1個増加する度に計算量が数十万増加するとい
う絶望的な状況になる。
【0006】このような状況を回避するためには、ベク
トルの次元を減らすか、計算するデータ数を減らすしか
ない。前者はデータの表現空間の次元を減らすことに等
しいので、データ検索に必要な情報がベクトルの成分と
して十分表現されない可能性がある。後者は、検索結果
として要求されているデータ数がデータの総数に比べて
十分小さいときに意味のある方法論である。k-NN探索で
取り扱う問題はこの種のものであり、いくつかの有効な
方法が提案されている。
【0007】k-NN探索は、システムに記憶されているプ
ロトタイプの集合から、テストベクトルに近いk 個を探
索し、それらのクラスを基に、テストベクトルのクラス
を同定するための方法である。このような場合、テスト
ベクトルに近いk 個のプロトタイプを如何に高速に見つ
けることができるかが重要な課題の1つである。このよ
うな要求はデータベース検索においても存在する。
【0008】検索ユーザーは、データベースに格納され
ている大量のデータのうち、自分が指定した検索キーに
近いいくつかのデータだけが欲しいのであって、他のデ
ータの、ましてや内積の値などに何の価値も見出さな
い。検索ユーザーのこのような要求に応えるための技術
は、k-NN探索の高速アルゴリズムの目的と一致する。
【0009】プロトタイプの集合からテストベクトルに
近いk 個を抽出する場合、探索の計算量を軽減するため
に、予めプロトタイプの集合を構造化しておくのが一般
的である。構造化の際にデータの性質を反映させればさ
せるほど、探索の計算量の軽減が期待できる。
【0010】例えばプロトタイプを階層的に構造化する
場合では、プロトタイプが表現されているN 次元ベクト
ル空間を分割するという操作を再帰的に繰り返すことに
よって達成される。空間を分割管理するときに用いられ
る境界が超平面であるものをK-D-B Tree 〔文献1〕、
矩形領域で分割する方法をR-Tree 〔文献2〕、超球で
分割する方法をSS-Tree 〔文献3〕、矩形と超球との組
み合わせで空間を分割する方法をSR-Tree 〔文献4〕と
いう。更にN 次元ベクトル空間をプロトタイプの分布の
共分散行列に関する固有ベクトルで張られる空間に変換
し直しておけば、探索の計算量に対して、より効果的な
構造化が期待できる〔文献5,6〕。
【0011】しかしこれらの方法はデータ構造化のため
の計算量と記憶容量がベクトルの次元数の増加に対して
指数関数的に増大してしまい、高次元ベクトルで表現さ
れているデータへの応用が事実上制限されてしまう可能
性がある。 〔文献1〕JT. Robinson: "The K-D-B Tree: A Search
Structure for Large Multidimensional Dynamic Index
es," Proc. on ACM SIGMOD, pp.10-18, 1981. 〔文献2〕A. Guttman: "R-trees: A dynamic index st
ructure for spatial searching," Proc. ACM SIGMOD,
Boston, USA, pp.47-57, Jun. 1984. 〔文献3〕DA. White and R. Jain: "Similarity index
ing with the SS-tree,"Proc. of the 12th Int. Conf.
on Data Engineering, New Orleans, USA, pp.323-33
1, Feb. 1996. 〔文献4〕片山,佐藤: "SR-Tree:高次元点データに対
する最近接検索のためのインデクス構造の提案," 信学
論(D-I), vol.18-D-I, no.8, pp.703-717, Aug.1997. 〔文献5〕RF. Sproull: "Refinemants to Nearest Nei
ghbor Searching in k-Dimensional Trees," Algorithm
ica, 6, pp.579-589, 1991. 〔文献6〕DA. White and R. Jai
n: ”Similarity Indexing:
Algorithms and Performanc
e,” Proc. on SPIE, pp.62−
73, 1996.
【0012】一方、統計的性質を利用しない” 緩い"
構造化と、少し“賢い”探索アルゴリズムによって計算
量の軽減を達成しているアルゴリズムもある。そのうち
最も基本的なもののひとつが射影アルゴリズムと呼ばれ
るFriedmanらのアルゴリズムである〔文献7〕。 〔文献7〕JH. Friedman, F. Baskett, and LJ. Shuste
k: "An Algorithm for Finding Nearest Neighbors," I
EEE Trans. on Computers, pp.1000-1006, Oct.1975.
【0013】射影アルゴリズムで前処理として要求され
るデータの構造化は、ベクトルの各成分毎のソーティン
グであり、位相に基づく構造化である。つまり、プロト
タイプがd次元ベクトルのときは、d個のソーティング
・リストが生成されることになる。
【0014】この処理により、昇順に並べられたj 成分
値を格納したリストVjと、対応するプロトタイプID番号
を格納したリストIjの2種類が、ベクトルの次元数だけ
得られる。即ち、Vjの先頭からn+1 番目の値Vj(n+1) は
n 番目の値Vj(n) 以上である。また、Ij(n) をID番号と
するプロトタイプYIj(n)のj 成分値YIj(n)(j) がVj(n)
と一致する。
【0015】プロトタイプ集合からテストベクトルX に
最も近いもの1 組を抽出するための射影アルゴリズムの
原理を図10を用いて説明する。探索は、適当な基準で
選択された1個のソーティング・リストVmとImに沿って
行われる。これは、図中、mを選択したことに対応して
いる。Imは成分値によってソーティングされたデータ番
号が格納されているので、リスト上での並びがm 軸上で
の位相を正確に反映している。まずテストベクトルX の
m 成分X(m)に最も近い値をVmから探す。これをVm(j) と
する。これに対応するプロトタイプはYIm(j)である。図
ではYIm(j)がY1である。Y1はm 成分に関してX に最も近
いが、全空間での距離が最も近いとは限らない。
【0016】さて次に、X とY1との距離ρ(X,Y1)を計算
する。すると、m 成分の値が開区間( X(m) - ρ(X,
Y1), X(m) + ρ(X,Y1) )( 図中A の領域)に属するプ
ロトタイプのみが、Y1よりX に近い可能性があり、探索
の対象として意味があることがわかる。図10の例で
は、m 成分に関して次に近いプロトタイプY2を検査する
ことによって、探索対象となるプロトタイプの集合が更
に( X(m) - ρ(X,Y2), X(m)+ ρ(X,Y2) )( 図中B の
領域)に制限される。このように1 次元部分空間での成
分値をもとに、探索の対象となるプロトタイプ集合を小
さくしていくことによって、計算量の軽減を図っている
のが射影アルゴリズムである。
【0017】
【発明が解決しようとする課題】しかしながら、Friedm
anらの射影アルゴリズムは、距離計算のための方法であ
って内積のための方法ではない。
【0018】
【課題を解決するための手段】上記課題を解決するため
に、本発明では、データ処理装置に、ベクトル形式のデ
ータの集合を記憶したデータベースと、該データベース
の各データのノルムの二乗を求め、当該各データをベク
トルの1成分の値の順に並べたデータのリストを各成分
について作成する前処理手段と、ベクトル形式のテスト
データを入力して計量テンソルを作用させる入力手段
と、前記ベクトル形式における1つの成分を順次選択す
る成分選択手段と、該成分選択手段により選択された1
つの成分につき、前記リストから前記テストデータと成
分値の差の小さい順に順次データを選択するデータ選択
手段と、該データ選択手段により選択されたデータのノ
ルムの二乗を用いて当該データと前記テストデータとの
全空間における類似度を計算する類似度計算手段と、該
類似度計算手段により計算された類似度の大きい順に所
定数のデータを抽出する抽出手段と、前記データ選択手
段により選択されたデータと前記テストデータとの部分
空間における類似度に基づいて、前記類似度計算手段に
より全空間における類似度を計算するか否かを制御する
類似度計算制御手段とを備える。
【0019】また、他の態様によれば、データ処理方法
に、ベクトル形式のデータの集合を記憶したデータベー
スの各データのノルムの二乗を求め、当該各データをベ
クトルの1成分の値の順に並べたデータのリストを各成
分について作成する前処理工程と、ベクトル形式のテス
トデータを入力して計量テンソルを作用させる入力工程
と、前記ベクトル形式における1つの成分を順次選択す
る成分選択工程と、該成分選択工程により選択された1
つの成分につき、前記リストから前記テストデータと成
分値の差の小さい順に順次データを選択するデータ選択
工程と、該データ選択工程により選択されたデータのノ
ルムの二乗を用いて当該データと前記テストデータとの
全空間における類似度を計算する類似度計算工程と、該
類似度計算手段により計算された類似度の大きい順に所
定数のデータを抽出する抽出工程と、前記データ選択工
程により選択されたデータと前記テストデータとの部分
空間における類似度に基づいて、前記類似度計算工程に
より全空間における類似度を計算するか否かを制御する
類似度計算制御工程とを備える。
【0020】また、他の態様によれば、記憶媒体に、ベ
クトル形式のデータの集合を記憶したデータベースの各
データのノルムの二乗を求め、当該各データをベクトル
の1成分の値の順に並べたデータのリストを各成分につ
いて作成する前処理工程と、ベクトル形式のテストデー
タを入力して計量テンソルを作用させる入力工程と、前
記ベクトル形式における1つの成分を順次選択する成分
選択工程と、該成分選択工程により選択された1つの成
分につき、前記リストから前記テストデータと成分値の
差の小さい順に順次データを選択するデータ選択工程
と、該データ選択工程により選択されたデータのノルム
の二乗を用いて当該データと前記テストデータとの全空
間における類似度を計算する類似度計算工程と、該類似
度計算手段により計算された類似度の大きい順に所定数
のデータを抽出する抽出工程と、前記データ選択工程に
より選択されたデータと前記テストデータとの部分空間
における類似度に基づいて、前記類似度計算工程により
全空間における類似度を計算するか否かを制御する類似
度計算制御工程とを備えるデータ処理プログラムを記憶
する。
【0021】
【発明の実施の形態】本実施形態では内積と距離との関
係式を導出し、内積の高速計算法として、射影アルゴリ
ズムを利用したものである。従って、プロトタイプ集合
に対する" 硬い" 構造化や、予め設定すべきパラメタを
必要としない汎用的なものである。
【0022】まず、提案アルゴリズムの詳細を述べる前
に、問題設定、語句と記号の定義を明らかにしておく。
【0023】想定する問題は、d 次元ベクトルとして表
現されたN 個のプロトタイプYjの集合をΩとする: Ω = { Y1, Y2, …, YN }, Yj∈Rd このとき、適当に与えられたテストベクトルX ∈Rdに、
計量ρG(X,Yj) に関して近いk 個のプロトタイプをΩか
ら抽出する。ただし計量ρG(X,Yj) は内積として定義さ
れ、従って空間は直交基底で張られていることを前提と
している:
【0024】
【外1】 ここで、テストベクトルX 、プロトタイプYjのk 成分値
をそれぞれX(k)、Yj(k)表記した。
【0025】本実施形態の第1 の特徴は計量ρG(X,Yj)
と同じ位相を与える関数としてδ(X,Yj)を採用したこと
である。ρG(X,Yj) は以下のような2 段階の処理に分割
できる: Z = G X ρG(X,Yj) = XTG Y = (GX)TY = ZTY =ρ(Z,Yj) ここでρ(Z,Yj)は正規直交系における内積である。
【0026】一方、Z とYjとの距離の2 乗を展開して次
式を得る: ‖Z − Yj2 = (Z− Yj)T(Z − Yj) =‖Z ‖2 + ‖Yj
2 − 2ρ(Z,Yj) 上式を更に変形して次式を得る: 2 ρ(Z,Yj) −‖Z ‖2 = ‖Yj2 −‖Z − Yj2 上式の右辺( 或いは左辺) を新たな関数δ(X,Yj)として
定義する: δ(X,Yj) =‖Yj2 −‖Z − Yj2
【0027】図1は、本発明の1 実施形態であるデータ
処理装置の機能構成を表す図である。入出力部101
は、受信装置やキーボード等の入力部と、送信装置や表
示装置等の出力部とを備える。
【0028】例えばスタンドアロンのコンピュータの場
合は、入出力部101はキーボードと表示装置から成
り、キーボードから入力された入力データを距離計算部
102へ送信し、内積計算部102から送信されたデー
タを表示装置に出力する。
【0029】或いは、通信回線に接続されている通信端
末の場合は、入出力部101は送受信を行なう通信制御
装置から成り、通信回線を介して入力された入力データ
を内積計算部102に送信し、内積計算部102から送
信されたデータを通信回線を介して指定されたアドレス
に送信する。
【0030】また、内積計算部102は、CPUがRO
Mやディスクメモリ等に記憶された各機能プログラム
(フローチャートにつき後述する処理手順に対応するプ
ログラムを含む)を実行することにより実現され、計算
結果や処理により生成される各種データを記憶するため
のRAMなどのメモリを備える。
【0031】データベース103には、d 次元ベクトル
で表現されたN 個のプロトタイプの集合が格納されてお
り、内積計算部102によってアクセスされる。
【0032】内積計算部102の処理を図2 を用いて説
明する。
【0033】ステップS201で入出力部101から入力が
あったかどうかを検査し、なければステップS201を繰り
返し、あればステップS202へ進む。ステップS202では、
入力データがデータベース103のデータを更新するも
のかどうかを検査し、そうであればステップS203へ、そ
うでなければステップS204へ進む。ステップS203では、
後述する前処理を実行し、それが終了したらステップS2
01へ進む。ステップS204では該入力データが計算処理の
ものかどうかを検査し、そうであればステップS205へ、
そうでなければステップS201へ進む。ステップS205で
は、後述する検索処理を実行し、それが終了したらステ
ップS201へ進む。
【0034】図8を用いてステップS203で実行される前
処理について説明する。
【0035】前処理では、プロトタイプ集合に属するプ
ロトタイプのノルムの2乗と、各成分値に関するソーテ
ィング・リストを作成する。前者はプロトタイプYjのノ
ルムの2乗‖Yj2 を計算して記憶しておくことであ
る。以下に後者の処理を説明する。
【0036】この処理で、昇順に並べられたj 成分値を
格納したリストVjと、対応するプロトタイプID番号を格
納したリストIjという2種類のリストが、ベクトルの次
元数だけ得られる。ステップS801でn を1に設定する。
ステップS802で、N 個のプロトタイプそれぞれについ
て、n 成分値とID番号のペアを作成する。即ち: { (Y1(n), 1), (Y2(n), 2), ... , (YN(n),N) } ステップS803で上記ペアの集合をn 成分値の昇順に並べ
替える。
【0037】{ (YIn(1)(n), In(1)), (YIn(2)(n), In
(2)), ... , (YIn(N)(n), In(N)) }以下、成分値の並び
とID番号の並びを別々にリストX 、I とする: Vn={ YIn(1)(n), YIn(2)(n), ... , YIn(N)(n) } (2) In={ In(1), In(2), ... , In(N) } (3) ステップS804ではn をインクレメントし、ベクトルの次
元dを超えていたら処理を終了し、そうでなければステ
ップS802へ進む。
【0038】2 種類のリストの関係は次のとおりであ
る。Vjの先頭からn+1 番目の値Vj(n+1) はn 番目の値Vj
(n) 以上である。また、Ij(n) をID番号とするプロトタ
イプYIj(n)のj 成分値YIj(n)(j) がVj(n) と一致する。
【0039】次に図3を用いてステップS205で実行され
る検索処理を説明する。
【0040】検索処理の入力として、検索のためのベク
トルX (以下テストベクトルと呼ぶ)と、計量テンソル
G 、検索結果として要求されているプロトタイプの個数
k が与えられている。
【0041】ステップS301ではテストベクトルX に計量
テンソルG を左から乗じてベクトルZ を得る: Z = G X
【0042】ステップS302ではベクトル空間の基底のイ
ンデクスリストを作成する。これは後述する棄却条件を
適用する基底の順序を定めるリストであり、例えば、テ
ストベクトルX の成分値の絶対値の大きい順に対応する
リストである: Λ = { λ1, λ2, ..., λd} (4) また小さいほうからL 個の集合をΛL と書く: ΛL = { λd-L+1, λd-L+2, ..., λd} (5) 更にmをλ1 に設定する。
【0043】ステップS303ではPTR 及び関連する変数の
初期化処理を実行する。この処理を図4 を用いて説明す
る。
【0044】ステップS401でm 成分値のソーティング・
リストVmを取得する。ステップS402ではテストベクトル
のm 成分値X(m)に最も近い値をVmから探索し、その位置
をPTR に格納する。即ち: |Vm(PTR) - X(m)|≦|Vm(j) - X(m)|, ∀j ∈ {1, 2,
..., N} 関連する変数は以下のように初期化する: PTRL = PTR - 1, BNDL = 0, CALL = 0 PTRH = PTR + 1, BNDH = 0, CALH = 0
【0045】ステップS304ではk 個の近傍集合の初期化
を行う。この処理を図5を用いて説明する。
【0046】ステップS501では近傍集合N0(X) を空集合
に初期化する。ステップS502ではt1に設定する。ステ
ップS503では、図6 につき後述するPTR の更新を行う。
ステップS504ではID番号Im(PTR) のプロトタイプY
Im(PTR)とΔS を計算する: s = Im(PTR) ΔS = ‖YS2 −‖Z −YS2 ただし上式の右辺第1 項は前処理で計算されているの
で、記憶装置からの読み出しだけで良い。
【0047】ステップS505では近傍集合Nt-1(X) にID番
号s とΔS の値とを追加する: Nt(X) =Nt-1(X) + {(s,ΔS)}
【0048】ステップS506でt をインクレメントし、k
を超えればステップS507へ、そうでなければステップS5
03へ進む。
【0049】ステップS507では近傍集合のなかでΔS
最小値をξt-1 、またそれに対応するID番号s をτt-1
として記憶する。
【0050】図3に戻り、ステップS305ではt をk+1 に
設定する。ステップS306ではPTR の更新を実行する。こ
の処理を図6を用いて説明する。
【0051】ステップS601ではPTRLが1未満かどうかを
検査し、そうであればステップS602へ、そうでなければ
ステップS603へ進む。ステップS602では以下の処理を実
行する: BNDL = 1, DxL = ∞
【0052】ステップS603ではPTRHがN を超えるかどう
かを検査し、そうであればステップS604へ、そうでなけ
ればステップS605へ進む。ステップS604では以下の処理
を実行する: BNDH = 1, DxH = ∞
【0053】ステップS605ではBNDLとBNDHの積が1かど
うかを検査し、そうであれば検索処理を終了し、そうで
なければステップS606へ進む。
【0054】ステップS606ではBNDL+CALL が1かどうか
を検査しそうであればステップS607へ、そうでなければ
ステップS608へ進む。ステップS607では以下の処理を実
行する: DxL = ‖YIm(PTRL)2 −(Vm(PTRL) −Z(m))2 CALL = 1
【0055】ステップS608ではBNDH+CALH が1かどうか
を検査しそうであればステップS609へ、そうでなければ
ステップS610へ進む。ステップS609では以下の処理を実
行する: DxH = ‖YIm(PTRH)2 −(Vm(PTRH) −Z(m))2 CAL = 1
【0056】ステップS610ではDxL がDxH より小さ
ければステップS611へ、そうでなければステップS612へ
進む。
【0057】ステップS611では以下の処理を実行し、図
3 の検索処理のステップS306へ戻る: Dx=DxL, PTR=PTRL, CALL = 0
【0058】ステップS612では以下の処理を実行し、図
3 の検索処理のステップS306へ戻る: Dx=DxH, PTR=PTRH, CALH = 0
【0059】PTR の更新処理では、PTR と関連する変数
の値を変更し、終了条件が満足されれば、図3 に示した
検索処理そのものを終了する。ステップS307ではステッ
プS306で計算されたDxの値が次式を満足したかどうかを
検査し、満足すればステップS316へ、そうでなければス
テップS308へ進む: Dx ≦ ξt-1 (8)
【0060】ステップS308ではn に2を設定する。ステ
ップS309では次式の処理を実行する: s = Im(PTR) Dx ← Dx − (YS( λn)−X(λn))2
【0061】ステップS310ではDxが次式を満足したかど
うかを検査し、満足したらステップS316へ、そうでなけ
ればステップS311へ進む: Dx ≦ ξt-1 (9)
【0062】ステップS311ではn をインクレメントし、
その結果がg を超えたらステップS312へ、そうでなけれ
ばステップS309へ進む。
【0063】ステップS312では図7 で後述する関数計算
を実行しステップS313へ進む。ただしg がベクトルの次
元d に等しい場合は関数計算を実行せずにステップS314
へ進む。
【0064】ステップS313ではステップS312の関数計算
で値を更新されたDxが次式を満足するかどうかを検査
し、満足したらステップS316へ、そうでなければステッ
プS314へ進む: Dx ≦ ξt-1
【0065】ステップS314では、近傍集合からξt-1
対応する要素を削除し、現在処理中のプロトタイプを追
加する: Nt(X) ←Nt-1(X) - { ( τt-1t-1) } + { (Im(PTR),
Dx) }
【0066】ステップS315では、Nt(X) の要素のうちの
Dxの最小値をξt に、そのID番号をτt に格納し、ステ
ップS317へ進む。
【0067】ステップS316では次式を実行し、ステップ
S317へ進む: ξtt-1 、τtt-1
【0068】ステップS317ではt をインクレメントし、
その結果がN を超えたら処理を終了し、そうでなければ
ステップS306へ進む。
【0069】ステップS312で実行する関数計算を図7 を
用いて説明する。
【0070】ステップS701ではj をg+1 に設定する。ス
テップS702では以下の処理を実行する: Dx ← Dx − (Ys( λj)−X(λj))2 ステップS703ではj をインクレメントし、その結果がベ
クトルの次元d を超えたらステップS312の関数計算を終
了する。そうでなければステップS702へ進む。
【0071】ステップS317で終了したときのNt(X) が、
検索結果として出力される。
【0072】以上説明した発明による効果を計算機実験
によって検証する。 〔計算機実験〕本実施形態の有効性を検証するために、
検索結果として要求されるプロトタイプ数k=10個、プロ
トタイプ数N=10000 個に対して探索の計算機実験を行っ
た。以下の項目が実験パラメタである: ・ベクトルの次元:d = {10, 20, 30, 40, 50, 60, 70,
80, 90, 100 } 実験に使用した計算機の諸元は以下のとおりである: ・シリコングラフィクス社製 O2 ・CPU: MIPS R10000, Rev2.6(175 MHz) ・メインメモリ: 128 MB ・OS: IRIX Release 6.3 尚、プログラム言語はCを用いた。 〔実験手順〕 (1) 一様乱数を用いて、d 次元ベクトルN 個より成るプ
ロトタイプ集合を生成する。 (2) 一様乱数を用いて、d 次元 ベクトル空間の計量テ
ンソルを1 個、生成する。 (3) 一様乱数を用いて、d 次元のテストベクトルを1
個、生成する。 (4) 全数探索を行う。 (5) 提案アルゴリズムによる探索を行う。
【0073】上記5つの手順を100 回繰り返し、相対CP
U 時間の平均値を計算した。ここで、相対CPU 時間 =
(提案アルゴリズムのCPU 時間)/( 全数探索のCPU 時間)
である。
【0074】実験結果を図9に示す。図中、ベクトルの
次元(dimensionarity)を横軸、相対CPU 時間 (CPU time
ratio) ηT を縦軸、プロトタイプ数N をパラメタとし
て示した。
【0075】図10より、プロトタイプ数N に関わら
ず、ベクトルの次元の増加に伴って相対CPU時間が1
次のオーダーで増加していることがわかる。しかしN=10
000 個のときの傾きは非常に小さい。このときの相対CP
U 時間の値は、10次元で3%、100 次元でも11% と、高次
元でも十分小さい値を示している。実際、100 次元ベク
トル10000 個から最近接プロトタイプ10個を取り出す探
索処理では、全数探索3.7(sec)に対して、提案方式では
0.40(sec) で終了した。
【0076】尚、本発明は、上述した実施形態の機能を
実現するソフトウェアのプログラムコードを記憶した記
憶媒体を、装置あるいはシステムに供給し、装置あるい
はシステム内のコンピュータが記憶媒体に格納されたプ
ログラムコードを読み出して実行することによって達成
してもよい。
【0077】更に、装置あるいはシステム内のコンピュ
ータが記憶媒体に格納されたプログラムコードを読み出
して実行することによって、上述した実施形態の機能を
直接実現するばかりでなく、そのプログラムコードの指
示に基づいて、コンピュータ上で稼動しているOSなど
の処理により、上述の機能を実現される場合も含まれ
る。
【0078】これらの場合、そのプログラムコードを記
憶した記憶媒体は本発明を構成することになる。
【0079】
【発明の効果】以上説明したように、本発明によれば、
与えられたベクトル形式のデータとの内積に基づいて、
ベクトル形式のデータ集合から所定数のデータを高速に
抽出することができる。これにより、例えば画像などの
データベースの検索を高速に行なうことができる。
【図面の簡単な説明】
【図1】実施形態の情報処理装置の機能構成図である。
【図2】内積計算部の処理手順を示すフローチャートで
ある。
【図3】検索処理手順を示すフローチャートである。
【図4】ポインタの初期化処理手順を示すフローチャー
トである。
【図5】近傍集合の初期化処理手順を示すフローチャー
トである。
【図6】ポインタの更新処理手順を示すフローチャート
である。
【図7】関数計算の処理手順を示すフローチャートであ
る。
【図8】前処理手順を示すフローチャートである。
【図9】計算機実験の結果を示す図である。
【図10】射影アルゴリズムの原理を示す図である。

Claims (13)

    【特許請求の範囲】
  1. 【請求項1】 ベクトル形式のデータの集合を記憶した
    データベースと、 該データベースの各データのノルムの二乗を求め、当該
    各データをベクトルの1成分の値の順に並べたデータの
    リストを各成分について作成する前処理手段と、 ベクトル形式のテストデータを入力して計量テンソルを
    作用させる入力手段と、 前記ベクトル形式における1つの成分を順次選択する成
    分選択手段と、 該成分選択手段により選択された1つの成分につき、前
    記リストから前記テストデータと成分値の差の小さい順
    に順次データを選択するデータ選択手段と、 該データ選択手段により選択されたデータのノルムの二
    乗を用いて当該データと前記テストデータとの全空間に
    おける類似度を計算する類似度計算手段と、 該類似度計算手段により計算された類似度の大きい順に
    所定数のデータを抽出する抽出手段と、 前記データ選択手段により選択されたデータと前記テス
    トデータとの部分空間における類似度に基づいて、前記
    類似度計算手段により全空間における類似度を計算する
    か否かを制御する類似度計算制御手段とを備えたことを
    特徴とするデータ処理装置。
  2. 【請求項2】 前記リスト作成手段は、各成分につい
    て、前記データベースの各データの当該成分の値を、当
    該値の順に並べたリストと、前記各データの識別子を前
    記値の順に並べたリストとを作成することを特徴とする
    請求項1に記載のデータ処理装置。
  3. 【請求項3】 前記成分選択手段は、前記テストデータ
    の各成分値の絶対値の大きい順に、1つの成分を選択す
    ることを特徴とする請求項1に記載のデータ処理装置。
  4. 【請求項4】 前記抽出手段が、 前記所定数のデータと該所定数のデータと前記テストデ
    ータとの全空間における類似度の最小値とを記憶するデ
    ータ記憶手段と、 前記類似度計算手段により新たに類似度が計算されたデ
    ータの類似度が前記最小値より大きい場合に、当該デー
    タを前記最小値に対応するデータに代えて前記データ記
    憶手段に追加し、最小値を更新する記憶制御手段とを有
    することを特徴とする請求項1に記載のデータ処理装
    置。
  5. 【請求項5】 前記類似度計算制御手段が、前記部分空
    間における類似度が前記最小値以下である場合に、全空
    間における類似度の計算を不実施とするように制御する
    ことを特徴とする請求項4に記載のデータ処理装置。
  6. 【請求項6】 前記データと前記テストデータとの類似
    度が、当該データのノルムの二乗から前記テンソルを作
    用させたテストデータと当該データとの距離の二乗を減
    じた値であることを特徴とする請求項1に記載のデータ
    処理装置。
  7. 【請求項7】 ベクトル形式のデータの集合を記憶した
    データベースの各データのノルムの二乗を求め、当該各
    データをベクトルの1成分の値の順に並べたデータのリ
    ストを各成分について作成する前処理工程と、 ベクトル形式のテストデータを入力して計量テンソルを
    作用させる入力工程と、 前記ベクトル形式における1つの成分を順次選択する成
    分選択工程と、 該成分選択工程により選択された1つの成分につき、前
    記リストから前記テストデータと成分値の差の小さい順
    に順次データを選択するデータ選択工程と、 該データ選択工程により選択されたデータのノルムの二
    乗を用いて当該データと前記テストデータとの全空間に
    おける類似度を計算する類似度計算工程と、 該類似度計算手段により計算された類似度の大きい順に
    所定数のデータを抽出する抽出工程と、 前記データ選択工程により選択されたデータと前記テス
    トデータとの部分空間における類似度に基づいて、前記
    類似度計算工程により全空間における類似度を計算する
    か否かを制御する類似度計算制御工程とを備えたことを
    特徴とするデータ処理方法。
  8. 【請求項8】 前記リスト作成工程において、各成分に
    ついて、前記データベースの各データの当該成分の値
    を、当該値の順に並べたリストと、前記各データの識別
    子を前記値の順に並べたリストとを作成することを特徴
    とする請求項7に記載のデータ処理方法。
  9. 【請求項9】 前記成分選択工程では、前記テストデー
    タの各成分値の絶対値の大きい順に、1つの成分を選択
    することを特徴とする請求項7に記載のデータ処理方
    法。
  10. 【請求項10】 前記抽出工程が、 前記所定数のデータと該所定数のデータと前記テストデ
    ータとの全空間における類似度の最小値とをデータ記憶
    部に記憶するデータ記憶工程と、 前記類似度計算工程により新たに類似度が計算されたデ
    ータの類似度が前記最小値より大きい場合に、当該デー
    タを前記最小値に対応するデータに代えて前記データ記
    憶部に追加し、最小値を更新する記憶制御工程とを有す
    ることを特徴とする請求項7に記載のデータ処理方法。
  11. 【請求項11】 前記類似度計算制御工程では、前記部
    分空間における類似度が前記最小値以下である場合に、
    全空間における類似度の計算を不実施とするように制御
    することを特徴とする請求項10に記載のデータ処理方
    法。
  12. 【請求項12】 前記データと前記テストデータとの類
    似度が、当該データのノルムの二乗から前記テンソルを
    作用させたテストデータと当該データとの距離の二乗を
    減じた値であることを特徴とする請求項7に記載のデー
    タ処理方法。
  13. 【請求項13】 ベクトル形式のデータの集合を記憶し
    たデータベースの各データのノルムの二乗を求め、当該
    各データをベクトルの1成分の値の順に並べたデータの
    リストを各成分について作成する前処理工程と、 ベクトル形式のテストデータを入力して計量テンソルを
    作用させる入力工程と、 前記ベクトル形式における1つの成分を順次選択する成
    分選択工程と、 該成分選択工程により選択された1つの成分につき、前
    記リストから前記テストデータと成分値の差の小さい順
    に順次データを選択するデータ選択工程と、 該データ選択工程により選択されたデータのノルムの二
    乗を用いて当該データと前記テストデータとの全空間に
    おける類似度を計算する類似度計算工程と、 該類似度計算手段により計算された類似度の大きい順に
    所定数のデータを抽出する抽出工程と、 前記データ選択工程により選択されたデータと前記テス
    トデータとの部分空間における類似度に基づいて、前記
    類似度計算工程により全空間における類似度を計算する
    か否かを制御する類似度計算制御工程とを備えたデータ
    処理プログラムを記憶した記憶媒体。
JP10277657A 1998-09-30 1998-09-30 データ処理装置及びその方法、及びそのプログラムを記憶した記憶媒体 Pending JP2000112944A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP10277657A JP2000112944A (ja) 1998-09-30 1998-09-30 データ処理装置及びその方法、及びそのプログラムを記憶した記憶媒体
US09/406,696 US6578031B1 (en) 1998-09-30 1999-09-28 Apparatus and method for retrieving vector format data from database in accordance with similarity with input vector

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10277657A JP2000112944A (ja) 1998-09-30 1998-09-30 データ処理装置及びその方法、及びそのプログラムを記憶した記憶媒体

Publications (1)

Publication Number Publication Date
JP2000112944A true JP2000112944A (ja) 2000-04-21

Family

ID=17586490

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10277657A Pending JP2000112944A (ja) 1998-09-30 1998-09-30 データ処理装置及びその方法、及びそのプログラムを記憶した記憶媒体

Country Status (1)

Country Link
JP (1) JP2000112944A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002024268A (ja) * 2000-06-12 2002-01-25 Internatl Business Mach Corp <Ibm> データベースからのドキュメントのリトリーブ・ランク付け方法、コンピュータシステム、および記録媒体
KR100949893B1 (ko) * 2008-04-28 2010-03-25 경북대학교 산학협력단 텐서 데이터를 이용한 영상 데이터 분류 방법 및 장치

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002024268A (ja) * 2000-06-12 2002-01-25 Internatl Business Mach Corp <Ibm> データベースからのドキュメントのリトリーブ・ランク付け方法、コンピュータシステム、および記録媒体
KR100949893B1 (ko) * 2008-04-28 2010-03-25 경북대학교 산학협력단 텐서 데이터를 이용한 영상 데이터 분류 방법 및 장치

Similar Documents

Publication Publication Date Title
CN108804641B (zh) 一种文本相似度的计算方法、装置、设备和存储介质
McCann et al. Local naive bayes nearest neighbor for image classification
Dash et al. Dimensionality reduction of unsupervised data
US6671683B2 (en) Apparatus for retrieving similar documents and apparatus for extracting relevant keywords
Kanal Interactive pattern analysis and classification systems: A survey and commentary
JP2006252333A (ja) データ処理方法、データ処理装置およびそのプログラム
CN111460090A (zh) 基于向量的文档检索方法、装置、计算机设备及存储介质
US6578031B1 (en) Apparatus and method for retrieving vector format data from database in accordance with similarity with input vector
US11928418B2 (en) Text style and emphasis suggestions
US8682065B2 (en) Distance metric learning with feature decomposition
Luqman et al. Subgraph spotting through explicit graph embedding: An application to content spotting in graphic document images
US6334129B1 (en) Data processing apparatus and method
JP4143234B2 (ja) 文書分類装置、文書分類方法及び記憶媒体
JP2018173909A (ja) 学習プログラム、学習方法および学習装置
Heisterkamp et al. Adaptive quasiconformal kernel metric for image retrieval
JP3903613B2 (ja) 検索装置及び検索プログラムを記録したコンピュータ読み取り可能な記録媒体
CN110209895B (zh) 向量检索方法、装置和设备
US6505207B1 (en) Methods and apparatus for performing dimensionality reduction in a supervised application domain
JPH0944518A (ja) 画像データベースの構築方法と、画像データベースの検索方法及び検索装置
JP3537949B2 (ja) パターン認識装置及び同装置における辞書修正方法
JPH11296552A (ja) 文書分類装置、文書分類方法およびその方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体
JPH10111869A (ja) 情報分類装置とその方法
JP2000112944A (ja) データ処理装置及びその方法、及びそのプログラムを記憶した記憶媒体
JP4086376B2 (ja) データ処理装置及びその方法、及びそのプログラムを記憶した記憶媒体
JP2002318818A (ja) データ処理装置及びその方法、及びそのプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050929

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071030

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20080311