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

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

Info

Publication number
JPH11218806A
JPH11218806A JP10018934A JP1893498A JPH11218806A JP H11218806 A JPH11218806 A JP H11218806A JP 10018934 A JP10018934 A JP 10018934A JP 1893498 A JP1893498 A JP 1893498A JP H11218806 A JPH11218806 A JP H11218806A
Authority
JP
Japan
Prior art keywords
data
vector
list
similarity
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.)
Granted
Application number
JP10018934A
Other languages
English (en)
Other versions
JP4194680B2 (ja
Inventor
Yasushi Seiki
康 清木
Takatsugu Kitagawa
高嗣 北川
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 JP01893498A priority Critical patent/JP4194680B2/ja
Priority to US09/236,221 priority patent/US6334129B1/en
Publication of JPH11218806A publication Critical patent/JPH11218806A/ja
Application granted granted Critical
Publication of JP4194680B2 publication Critical patent/JP4194680B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • YGENERAL 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • YGENERAL 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99932Access augmentation or optimizing
    • YGENERAL 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • YGENERAL 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • Y10S707/99935Query 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)

Abstract

(57)【要約】 【課題】 データベースのデータの中から問い合わせベ
クトルに類似する所定個数の候補データを高速に出力す
る。 【解決手段】 データベース103に記憶されたベクトル
形式のデータの集合から、問い合わせベクトルと類似度
の高いデータを第1の所定数抽出するデータ処理装置
に、データベース103のデータをベクトルの1成分の強
度の降順に並べたデータのリストを各成分について作成
するリスト作成部101と、入力された問い合わせベクト
ルに基づいて、前記リストに対する優先順位を決定し、
前記リストから前記リスト優先度とリスト内の順位とに
基づいて未出力のデータを第2の所定数ずつ順次選択
し、選択された前記第2の所定数のデータから、該デー
タの各々と前記問い合わせデータとの類似度に基づいて
1つのデータを出力する候補出力部102とを備える。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、ベクトル間の類似
度を計算するデータ処理装置及びその方法に関し、特
に、問い合わせベクトルとの類似度に基づいて所定数の
データを出力するデータ処理装置及びその方法に関する
ものである。
【0002】
【従来の技術】ベクトル間の類似度を計算する方法とし
て距離が一般的に用いられている。一般には、あるキー
・ベクトルが与えられたときに、予め定められたベクト
ルの集合の中から、キー・ベクトルに近いものをL個抽
出するという問題を扱うことが多い。このような問題設
定では、全てのベクトルとの比較演算を行っていたので
は、計算量のオーダーは、ベクトルの次元Mとベクトル
の集合の要素数Nに対して、O(MN)となってしまう。
【0003】そこで、距離計算に対する高速アルゴリズ
ムがいくつか提供されている。これら高速アルゴリズム
に共通の戦略は、予めデータを構造化しておき、距離計
算時の計算複雑性を軽減しようというものである。
【0004】例えばベクトルの各軸の成分値をもとにソ
ーティング・リストを作成しておく方法では、キーとな
るベクトルが与えられたときに、適当な優先度によって
軸をソーティングし、最上位に位置する軸のソーティン
グ・リスト中で、キー・ベクトルの成分値がどこに位置
するかを特定する。そして、近い位置に格納されている
ベクトルから順に、そのIDをもとに、ベクトルとキー
・ベクトルとの距離を計算していく。正確な結果を得る
ためには全てのベクトルとの距離を計算しなければなら
ないが、もしも、選択した軸の成分値に関する順序が実
際のベクトル間の距離を良く反映していれば、少ない計
算量で満足できる結果が期待できる。
【0005】この方法ではデータの構造化にO(Nlog2
N)、L個のベクトルとの比較演算にO(Llog2N)のオ
ーダーの計算量で済む。射影方式と呼ばれるこの方式の
他にも、K-dツリーや、その派生バージョンがあるが、
前処理と検索時の計算量のオーダーは同じ程度である。
【0006】以上説明した従来技術はベクトルの距離計
算に関するものであったが、ベクトル間の類似度を表現
する尺度としてノルムが有効な場合がある。例えば、
「Kiyoki Y., Kitagawa T., and Hayama T., "A Metada
tabase System for Semantic Image Search by a Mathe
matical Model of Meaning," SIGMOD RECORD, Col.23,N
o.4, (Dec.1994)」(以下文献1と称する)では、文脈
ベクトルとの類似度を以下のように計算している。即
ち、文脈ベクトルをもとに表現空間に対する射影作用素
を生成し、この射影作用素によって抽出された部分空間
でのベクトルのノルムを計算することによって、文脈ベ
クトルとの類似度を定義している。
【0007】また、「宮原,清木,北川:“意味の数学
モデルによる意味的画像探索のための高速化アルゴリズ
ム,”情報処理学会研究報告,データベースシステム1
13−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つのデータを出
力する出力手段とを備える。
【0011】また、他の態様によれば、データベースに
記憶されたベクトル形式のデータの集合から、問い合わ
せベクトルと類似度の高いデータを第1の所定数抽出す
るデータ処理方法に、前記データベースのデータをベク
トルの1成分の強度の降順に並べたデータのリストを各
成分について作成するリスト作成工程と、前記リストの
それぞれに対する優先度を決定するリスト優先度決定工
程と、問い合わせベクトルを入力する入力工程と、前記
リストから前記リスト優先度とリスト内の順位とに基づ
いて未出力のデータを第2の所定数ずつ順次選択する選
択工程と、該選択工程により順次選択された前記第2の
所定数のデータから、該データの各々と前記問い合わせ
データとの類似度に基づいて1つのデータを出力する出
力工程とを備える。
【0012】また、他の態様によれば、記憶媒体に、デ
ータベースに記憶されたベクトル形式のデータの集合か
ら、問い合わせベクトルと類似度の高いデータを第1の
所定数抽出するデータ処理プログラムであって、前記デ
ータベースのデータをベクトルの1成分の強度の降順に
並べたデータのリストを各成分について作成するリスト
作成工程と、前記リストのそれぞれに対する優先度を決
定するリスト優先度決定工程と、問い合わせベクトルを
入力する入力工程と、前記リストから前記リスト優先度
とリスト内の順位とに基づいて未出力のデータを第2の
所定数ずつ順次選択する選択工程と、該選択工程により
順次選択された前記第2の所定数のデータから、該デー
タの各々と前記問い合わせデータとの類似度に基づいて
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は、 J = R( PAX(PTR(2)), INDX(PAX(PTR(2))) = R( PAX(1), INDX(PAX(1))) = R( 4, INDX(4)) = R( 4, 1) = 7 と計算される。
【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につきT
NRMのノルムの計算処理を説明する。
【0036】ステップS401では、nを1に初期化す
る。ステップS402では、図5につき後述するノルム
計算処理によって、PTR(n)に対応するベクトルのノルム
を計算し、TNRM(n)に値を格納する。ステップS403
では、nに1を加算する。ステップS404では、nが
3を超えたかどうか検査し、超えていなければS402
へ進み、超えていれば処理を終了する。
【0037】図5は、各ベクトルのノルム計算処理手順
を示すフローチャートである。図5につきステップS4
02で実行されるノルム計算処理を説明する。この処理
はポインタ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)))が既に答えとして出力さ
れたかどうかを検査し、出力されていればステップS5
06へ、そうでなければステップ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では、戻り値としてNR
M(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 )
【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(P
AX(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未満なのでステップS
307に進む。
【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を更新する。T
NRMの成分のうち最大値を取るのは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, X
9}という候補リストが得られた。内積計算を正確に行っ
た結果である{ 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】具体例による計算の途中結果を示す図である。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 北川 高嗣 茨城県つくば市並木2−207−202 (72)発明者 鷲澤 輝芳 東京都大田区下丸子3丁目30番2号キヤノ ン株式会社内

Claims (13)

    【特許請求の範囲】
  1. 【請求項1】 ベクトル形式のデータの集合から、問い
    合わせベクトルと類似度の高いデータを第1の所定数抽
    出するデータ処理装置であって、 ベクトル形式のデータの集合を記憶したデータベース
    と、 該データベースのデータをベクトルの1成分の強度の降
    順に並べたデータのリストを各成分について作成するリ
    スト作成手段と、 前記リストのそれぞれに対する優先度を決定するリスト
    優先度決定手段と、 問い合わせベクトルを入力する入力手段と、 前記リストから前記リスト優先度とリスト内の順位とに
    基づいて未出力のデータを第2の所定数ずつ順次選択す
    る選択手段と、 該選択手段により順次選択された前記第2の所定数のデ
    ータから、該データの各々と前記問い合わせデータとの
    類似度に基づいて1つのデータを出力する出力手段とを
    備えたことを特徴とするデータ処理装置。
  2. 【請求項2】 前記リスト優先度決定手段は、前記問い
    合わせベクトルの成分強度に基づいて前記リスト優先度
    を決定することを特徴とする請求項1に記載のデータ処
    理装置。
  3. 【請求項3】 前記類似度は、前記問い合わせベクトル
    の成分強度に基づいて重み付けされた各データのノルム
    であることを特徴とする請求項1に記載のデータ処理装
    置。
  4. 【請求項4】 前記選択手段は、前記リストから前記第
    2の所定数のリストを選択し、当該選択された各リスト
    より未出力のデータ中で最上位のデータを選択すること
    を特徴とする請求項1に記載のデータ処理装置。
  5. 【請求項5】 前記選択手段は、前記出力手段により前
    回出力されたデータの優先度に基づいて、前記第2の所
    定数のリストを選択することを特徴とする請求項4に記
    載のデータ処理装置。
  6. 【請求項6】 前記選択手段により選択された前記第2
    の所定数のデータの中で、前記問い合わせデータとの類
    似度を未計算のデータについて当該類似度を計算する類
    似度計算手段を備えたことを特徴とする請求項1に記載
    のデータ処理装置。
  7. 【請求項7】 データベースに記憶されたベクトル形式
    のデータの集合から、問い合わせベクトルと類似度の高
    いデータを第1の所定数抽出するデータ処理方法であっ
    て、 前記データベースのデータをベクトルの1成分の強度の
    降順に並べたデータのリストを各成分について作成する
    リスト作成工程と、 前記リストのそれぞれに対する優先度を決定するリスト
    優先度決定工程と、 問い合わせベクトルを入力する入力工程と、 前記リストから前記リスト優先度とリスト内の順位とに
    基づいて未出力のデータを第2の所定数ずつ順次選択す
    る選択工程と、 該選択工程により順次選択された前記第2の所定数のデ
    ータから、該データの各々と前記問い合わせデータとの
    類似度に基づいて1つのデータを出力する出力工程とを
    備えたことを特徴とするデータ処理方法。
  8. 【請求項8】 前記リスト優先度決定工程では、前記問
    い合わせベクトルの成分強度に基づいて前記リスト優先
    度を決定することを特徴とする請求項7に記載のデータ
    処理方法。
  9. 【請求項9】 前記類似度は、前記問い合わせベクトル
    の成分強度に基づいて重み付けされた各データのノルム
    であることを特徴とする請求項7に記載のデータ処理方
    法。
  10. 【請求項10】 前記選択工程では、前記リストから前
    記第2の所定数のリストを選択し、当該選択された各リ
    ストより未出力のデータ中で最上位のデータを選択する
    ことを特徴とする請求項7に記載のデータ処理方法。
  11. 【請求項11】 前記選択工程では、前記出力工程によ
    り前回出力されたデータの優先度に基づいて、前記第2
    の所定数のリストを選択することを特徴とする請求項1
    0に記載のデータ処理方法。
  12. 【請求項12】 前記選択工程により選択された前記第
    2の所定数のデータの中で、前記問い合わせデータとの
    類似度を未計算のデータについて当該類似度を計算する
    類似度計算工程を備えたことを特徴とする請求項7に記
    載のデータ処理方法。
  13. 【請求項13】 データベースに記憶されたベクトル形
    式のデータの集合から、問い合わせベクトルと類似度の
    高いデータを第1の所定数抽出するデータ処理プログラ
    ムであって、 前記データベースのデータをベクトルの1成分の強度の
    降順に並べたデータのリストを各成分について作成する
    リスト作成工程と、 前記リストのそれぞれに対する優先度を決定するリスト
    優先度決定工程と、 問い合わせベクトルを入力する入力工程と、 前記リストから前記リスト優先度とリスト内の順位とに
    基づいて未出力のデータを第2の所定数ずつ順次選択す
    る選択工程と、 該選択工程により順次選択された前記第2の所定数のデ
    ータから、該データの各々と前記問い合わせデータとの
    類似度に基づいて1つのデータを出力する出力工程とを
    備えたことを特徴とするデータ処理プログラムを記憶し
    た記憶媒体。
JP01893498A 1998-01-30 1998-01-30 データ処理装置及びその方法、及びそのプログラムを記憶した記憶媒体 Expired - Lifetime JP4194680B2 (ja)

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 true JPH11218806A (ja) 1999-08-10
JP4194680B2 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)

* Cited by examiner, † Cited by third party
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
US6795819B2 (en) * 2000-08-04 2004-09-21 Infoglide Corporation System and method for building and maintaining a database
US6839714B2 (en) * 2000-08-04 2005-01-04 Infoglide Corporation System and method for comparing heterogeneous data sources
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)

* Cited by examiner, † Cited by third party
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 富士ゼロックス株式会社 文書検索装置及び文書検索方法

Also Published As

Publication number Publication date
JP4194680B2 (ja) 2008-12-10
US6334129B1 (en) 2001-12-25

Similar Documents

Publication Publication Date Title
CN108875074B (zh) 基于交叉注意力神经网络的答案选择方法、装置和电子设备
US6131092A (en) System and method for identifying matches of query patterns to document text in a document textbase
CN111611361A (zh) 抽取式机器智能阅读理解问答系统
JP4003468B2 (ja) 適合性フィードバックによる類似データ検索方法および装置
KR20200000216A (ko) 단어자질을 강화한 음성 대화 방법 및 시스템
JPH10240759A (ja) 検索装置
JPH11203294A (ja) 情報検索システム、装置、方法及び記録媒体
US11461613B2 (en) Method and apparatus for multi-document question answering
US6347315B1 (en) Method and apparatus for selecting and utilizing one of computers or databases
CN110909145A (zh) 针对多任务模型的训练方法及装置
JP2022500808A (ja) 文生成方法と装置、電子機器及びプログラム
JPH11218806A (ja) データ処理装置及びその方法、及びそのプログラムを記憶した記憶媒体
CN111259126A (zh) 基于词语特征的相似度计算方法、装置、设备及存储介质
CN110717405A (zh) 人脸特征点定位方法、装置、介质及电子设备
JPH10289240A (ja) 画像処理装置及びその制御方法
US11783129B2 (en) Interactive control system, interactive control method, and computer program product
CN116680381A (zh) 文档检索方法、装置、电子设备和存储介质
US7523115B2 (en) Method for finding objects
CN112650869A (zh) 图像检索重排序方法、装置、电子设备及存储介质
JPH10269235A (ja) 類似文書検索装置及び類似文書検索方法
JP2003150635A (ja) 検索装置、画像検索装置、音声検索装置、語句検索装置及び検索プログラム、並びに検索方法
JP3907294B2 (ja) 情報処理装置及びその方法、及びそのプログラムを記憶した記憶媒体
JPH05314320A (ja) 認識距離の差と候補順を利用した認識結果の評価方式
JP2580508B2 (ja) メニュー選択装置
JPH10254894A (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