JP2004252795A - 数値系列データの類似検索のための索引構造、およびそれを用いた類似検索法 - Google Patents
数値系列データの類似検索のための索引構造、およびそれを用いた類似検索法 Download PDFInfo
- Publication number
- JP2004252795A JP2004252795A JP2003043534A JP2003043534A JP2004252795A JP 2004252795 A JP2004252795 A JP 2004252795A JP 2003043534 A JP2003043534 A JP 2003043534A JP 2003043534 A JP2003043534 A JP 2003043534A JP 2004252795 A JP2004252795 A JP 2004252795A
- Authority
- JP
- Japan
- Prior art keywords
- error
- index
- line segment
- distance
- intersection
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【課題】数値データの類似検索を行うための索引手法として、数値系列を線分に近似したデータ構造を索引として持つL−indexがある。L−indexでは、近似した線分同士の距離である近似距離を実際の距離に近づけるために誤差を修正するが、この修正幅が大きすぎることが原因で、効率が悪いという問題点があった。
【解決手段】発生しうる全て場合に関しての誤差を予め測定しておき、この最大値を索引のメタデータとして保持する。このメタデータを用いて誤差を修正しることにより、修正幅が過大になることを防ぐ。これにより、より実際の距離に近く近似距離を修正できる。
【選択図】 図7
【解決手段】発生しうる全て場合に関しての誤差を予め測定しておき、この最大値を索引のメタデータとして保持する。このメタデータを用いて誤差を修正しることにより、修正幅が過大になることを防ぐ。これにより、より実際の距離に近く近似距離を修正できる。
【選択図】 図7
Description
【0001】
【発明の属する技術分野】
本発明は、数値系列データ、あるいは画像や文字列データなどの数値系列に変換可能なデータに対して高速に類似検索を行うための索引データ構造、及び索引データ構造の更新および検索手法とこれらを実施するプログラムを記録した記録媒体に関する。
【0002】
【従来の技術】
本明細書中で、二つの数値系列の非類似度を算出する非類似度関数をD(A,B)とするとき、数値系列A、Bが類似しているとは、次の式を満たしている必要がある。
【0003】
【数1】
ただし、εは類似検索を行うユーザが与える非類似度の閾値で、非類似許容値とよぶ。
【0004】
数値系列データの類似検索とは、データベースに格納された数値系列(以下、元系列)の中から、検索対象として与えられる数値系列(以下、目標系列)との非類似度がε以下の部分を全て求める問題とする。
【0005】
数値系列データの類似検索は逐次的に走査することにより、最も単純に実現できる。逐次的な走査は、索引を使わず全てのデータにアクセスする。このため、ディスクアクセス回数、及び計算量が膨大となる。このため、数値系列の類似検索に特化した効率的な幾つかの索引構造が発表されている。
【0006】
索引構造を用いた類似検索では、まず索引を用いて近似解を求め、次に近似解に対して実際の距離を計算して正解を求めるという段階を経る。近似解に対して実際の距離を計算する作業を精錬とよぶ。
【0007】
最も代表的な索引構造は、次の文献で参照できるST−indexである(非特許文献1参照。)。
【0008】
ST−indexは、系列を離散フーリエ変換を用いて圧縮し、これを多次元索引構造を用いて構造化したものである。ST−indexには、大きく次の二つの問題がある。
1、あらかじめ想定した目標系列のサイズと異なるサイズの目標系列を与えた場合、著しく検索効率が低下する。
2、元系列の更新に大きな計算量が必要となる。
【0009】
これらの問題に対して、発明者らは数値に変換された系列データを、線分の系列に近似したものを索引として保持する新しい索引構造、L−indexを次の文献に発表した(非特許文献2参照)。
【0010】
以下、本発明の基礎となる索引構造L−indexについて概説する。
【0011】
数値系列X、 Yに対して、L−indexの構築において前提となっているL1距離関数、及びX、 Yに対する非類似度の定義を以下の定義1に行う。
【0012】
定義1
【0013】
【数2】
【数3】
とするとき、系列X、YのL1距離は、L1(X,Y)は、次の式で表される
【0014】
【数4】
さらに、
【0015】
【数5】
についても同様とするときX,Yの非類似度D(X,Y)は、次の式で定義される。
【0016】
【数6】
元データを線分の系列に近似する線分系列近似法において、元データを線分に近似するアルゴリズムとしてL−indexでは、最小二乗法を用いている。L−indexでは、系列の添字をX座標、その数値をY座標とみなし、これらを最小二乗法を用いて直線に近似する。
【0017】
L−indexでは、元系列を線分に近似する際の詳細さを調整するために、元データの一部分を線分に近似した際に発生する累積誤差に閾値Δを設けている。近似は数値系列の始点から開始し、近似した線分と元系列が持つ実際の値との累積誤差がΔに達する直前まで同一の線分で行う。これを終点まで繰り返すことによって、膨大な数値系列を線分系列に近似し、データサイズを大幅に縮小している。L−indexでは各線分が生成される過程で得られる次の4つのメタデ−タを持つ。
線分の開始点
線分の式
開始点のディスクアドレス
誤差情報
これに従い構築されるL−indexの概要図を図1に、詳細図を図2に示した。図1にはL−indexが持つ先に示した4つの要素の具体例を示している。図2には、数値系列を線分に近似する様子を示した。図中で上向き誤差は、線分に近似したことにより生じた上向きの誤差を表し、下向き誤差も同様である。一つの線分での上向き誤差の合計を上向き偏差、下向き誤差の合計を下向き偏差とよび、それぞれ要素記号δup、δdownで表す。先に述べたL−indexが持つ誤差情報とは、この元データと近似線分との間の偏差の上下差異(上下偏差差異:
【0018】
【数7】
)である。この情報を用いて、近似により生じた距離計算の誤差を修正する。
【0019】
L−index、および同様に線分系列に近似した目標系列を用いることにより、系列間の近似的な距離(近似距離)を高速に計算することが可能となる。図3を用いて、x = kでの元系列と目標系列との近似距離の計算法について概説する。図3に示すように、
L−indexの線分系列の式をy = f(x) 、目標系列の近似線分列の式をy = g(x) とすると、元系列と、目標系列の近似距離d’は以下の式で求めることができる。
【0020】
【数8】
数8の式は、図3に示す線分系列が分断する区間ごとに分けて積分を行うことにより、一次式の積分の加算となり、計算コストを大幅に減少できる。詳細については非特許文献2を参照。
【0021】
近似距離を数8の式に適用し類似検索を行い求めた解を近似解とする。この場合、近似距離は実際の非類似度とは異なっているため、近似解には正解であるはずのものが含まれない(false dismissal)可能性がある。
【0022】
しかしながら、非特許文献1および非特許文献2にあるように、索引空間での距離が実際の距離を決して超えないことが保証される場合、その索引手法はfalse dismissalを犯さない。このことから、正解のもれを防ぐために、L−indexの発明には先に説明した上下偏差差異を用いて近似距離を下向きに修正する。
【0023】
図4は、図3に対して近似する前の元系列、および目標系列の一部を加えて表示したものである。たとえば、図中の区間[t5..t6−1] のS’(Q) に発生している上向き誤差は、この区間の近似距離を実際の距離に比べて増加させている。また、区間[t0..t1−1] のS’(O) に発生している下向き誤差は、この区間の近似距離を実際の距離に比べて減少させている。 L−indexでは、この誤差を下向きに修正した近似距離を、Optimistic Bound Distance(OBD)とよび、d_OBDで表す。さらに、OBDにより求められる近似解をOBD近似解とよぶ。具体的には、近似距離を計算する際に分割した区間(図4の[t0..t1], [t1..t2], ... )ごとに、その区間に終点を持つ線分に関して発生している誤差を修正する。
【0024】
線分系列S’(O) についての誤差の修正については、S’(Q) の位置によりその方法が異なる。逆に、S’(Q) の誤差の修正についても同様である。着目線分をline1、相対する線分をline2とすると、line1についての誤差の修正法は次に示す5つの場合によって異なる。
【0025】
line2がline1と交差せず、
line1の始点あるいは終点のいずれも、2系列の比較区間に収まる場合で、
line1がline2より上方にある場合 : case1
line1がline2より下方にある場合 : case2
line1の始点、終点いずれかが、2系列の比較区間に収まらない場合で
line1がline2より上方にある場合 : case3
line1がline2より下方にある場合 : case4
line2がline1と交差(及び一致)する場合 : case5
case1の場合、完全に誤差を修正できる。従って修正すべき誤差は(−δdown+δup)であり、−δd−uとなる。
【0026】
case2は、case1と上下が逆になるため、修正すべき誤差はδd−uとなる。
【0027】
case3には図4の区間 [t0..t2−1]の線分liが当てはまる。この場合は、線分が途中から始まっているため、線分全体としての上下偏差差異であるδd−uを使用することができない。線分liの始点は、x=t0より前である。図5の(α)に示すように区間[t0..t1−1]において全ての下向き誤差が発生していた場合には、修正すべき誤差は −δdownとなる。図5の(β)の場合は修正すべき誤差は +δupとなる。(α)が近似距離を最も増加させる場合であり、他のどのような場合においても、これ以上の減少方向への修正をする必要がない。従って、最悪の場合を想定して −δdown の誤差修正を行う。
【0028】
case4には、図4の区間 [t5..t6]が当てはまる。これはcase3と上下が逆になるため、修正すべき誤差は −δupとなる。
【0029】
case5には、図4の区間 [t1..t4−1]、 [t2..t3−1]が当てはまる。交差する場所は事前に知り得ないため、誤差の分布を読むことができない。従って最悪の場合の誤差Δを修正する必要がある。修正誤差は−Δとなる。
【0030】
【非特許文献1】
C. Faloutsos, M. Ranganathan, Y. Manolopoulos: Fast Subsequence Matching in Time−Series Database, proc. of SIGMOD, pp. 419〜429, 1994
【非特許文献2】
Yuu Morinaka, Masatoshi Yoshikawa, Toshiyuki Amagasa, Shunsuke Uemura, The L−index: An Indexing Structure for Efficient Subsequence Matching in Time Sequence Databases, International Workshop on Mining Spatial and Temporal data(2001)
【0031】
【発明が解決しようとする課題】
L−indexでの誤差修正は、上のcase1、 case2の場合は、実際の距離に等しくなるよう修正が行われるが、case3、 case4、 case5に関しては下向きの修正誤差が大きく、OBDが実際の距離より大幅に小さくなる可能性が高い。近似距離が実際の距離より非常に小さい場合には、近似解として同定されたものの中で正解ではないものの数が増加する。これをfalse alarmというがfalse alarmの数が増えた場合、精錬作業が多くなり計算量が大きくなる。また、実系列にアクセスするデ−タ量も多くなりディスクアクセスも増加する。
【0032】
本発明は上記に鑑みてなされたもので、その目的とするところは、 L−indexの正解に対する近似解のしぼり込み精度を大幅に上昇させるところにあり、このための近似線分の誤差を修正するアルゴリズム、これに用いる索引機構、それを用いた類似検索方法、及び前記述方式を実施するプログラムを記憶した媒体を提供することを目的とする。
【0033】
【課題を解決するための手段】
L−indexにおけるOBD近似解を求めるための誤差修正法は、以下に説明する発明を用いることにより、さらに実際の距離に近く、かつ実際の距離を越えないように改善することができる。これにより、 false alarmを大幅に減少し精錬過程のコストを下げ、その結果類似検索の精度を落すこと無く、その性能を大幅に向上できる。
【0034】
具体的な手段は次のとおりである。2つの線分が交差する場合、あらかじめ交差する点が分かっていれば、修正すべき誤差を計算することができる。しかし、目標系列が与えられるのは、索引を作成した後であるため、あらかじめこれを知ることは不可能である。そこで、全ての点においてその点で交わった場合の下向き修正誤差を計算する。この最大値を常に修正することにより、下向き修正が足りなくなることは無い。従って、常に実際の距離を超えることがない。このような考えに基づいて、L−indexを拡張し、これを発明とする。
【0035】
【発明の実施の形態】
以下、図面を用いて本発明の実施の形態を説明する。説明の際、本発明であるところの索引構造を拡張L−indexとよぶ。OBDは実際の距離を越えてはならないため、正確に誤差が分かる場合(case1、 case2)を除いて距離を減らす方向に修正される。中でも2つの線分が交差する場合(case5)は下向きへの誤差修正値はΔとなり、これは実際に修正すべき値より非常に大きくなる。二直線が比較的類似している場合には、交差が頻繁に起こり、これによりOBDは実際の距離より大幅に小さくなる。
【0036】
以下、本明細書では説明のために、着目する線分が相対する線分について上方から下方に交差することを順交差、その下方から上方に向かって交差することを逆交差と呼ぶ。
【0037】
図6(a)に図4の区間[t2..t3−1]の詳細図を示した。例えば(b)のように、相対する線分が交差しない場合、修正すべき誤差の求め方は次の通りである。まず、
【0038】
【数9】
で計算される下向き偏差により近似距離は17減少し、
【0039】
【数10】
で計算される上向き偏差により近似距離は18増加した。従って合計で近似距離は実際の距離より1増加しており、修正する誤差は−1となる。
【0040】
しかし、区間[t2..t3−1]では、相対する線分に順交差するため修正すべき誤差は異なる。従来のL−indexの考え方では、交差した場合には常にΔを減算していた。図8(a)の場合Δの値は、上向き偏差+下向き偏差であるため35となり、−35の修正が発生することになる。一方で交差情報が正確に分かっている場合には次のように修正できる。
【0041】
交差前上向き誤差の合計9加算
交差前下向き誤差の合計8減算
→ 交差前修正誤差1加算
交差後下向き誤差の合計9減算
交差後上向き誤差の合計9加算
→ 交差後修正誤差0
従って、全体で修正誤差は見積りは −35であるのに対し実際には +1となる。この結果より、従来のL−indexでの誤差修正の方法は、下方修正が大きすぎることが分かる。
【0042】
ただし、あらかじめ交差する場所が分かっていればL−indexにその情報をメタデ−タとして保持させることも可能であるが、交差する場所は索引構造を構築する段階では知り得ない。
【0043】
次に、二線分の交差位置が図6の(c)の場所の場合を考える。この場合には、上と同様に修正誤差を計算した場合、次のようになる。
【0044】
交差前上向き誤差の合計9加算
交差前下向き誤差の合計15減算
→ 交差前修正誤差 −6加算
交差後下向き誤差の合計9減算
交差後上向き誤差の合計2加算
→ 交差後修正誤差 −7
この場合は全体での修正誤差は −13となる。
【0045】
このように、交差位置によって修正すべき誤差は大きく異なることが分かる。
しかし、交差位置は目標系列が与えられるまで知ることができない。
【0046】
そこで、交差位置として可能性のある全ての場所で、次の4つの情報を計算する。
交差前上向き誤差の合計(加算される)
交差前下向き誤差の合計(減算される)
交差後下向き誤差の合計(減算される)
交差後上向き誤差の合計(加算される)
いずれの場所で交差した場合にも、実際の距離を越えないように誤差を修正する必要がある。それゆえ、上の4つの情報に対して、順交差の場合、次のような組合せで値を選ぶことによりどの場所で交差が起こっても、その値以上の減算はなく、その値以下の加算がない。ここで、Max()は()の全ての要素の最大値を表す。
Max(交差前下向き誤差の合計 − 交差前上向き誤差の合計) … (1)
Max(交差後上向き誤差の合計 − 交差後下向き誤差の合計) … (2)
最後に、誤差修正値として(1)と(2)の値を加算したものをL−indexのメタデ−タとして持つ。ある線分が図6(a)のように上から下に交差する場合には、この値を修正誤差として下方修正する。
【0047】
これにより、実際の距離を決して越えることがなくかつ実際の距離に近いOBDを計算することができる。なお逆交差の場合、上と逆の計算が必要となるため次のような組合せで選んだ値を加算する必要がある。
Max(交差前上向き誤差の合計 − 交差前下向き誤差の合計) … (3)
Max(交差後下向き誤差の合計 − 交差後上向き誤差の合計) … (4)
このような考え方で求められる二種類のメタデ−タ((1)+(2)、及び(3)+(4))を従来のL−indexに付加したものを拡張L−indexとよぶ。
【0048】
以下、上記の考え方を元に従って拡張L−indexの構造、構築アルゴリズム、及び拡張L−indexを用いた類似検索方法について述べる。拡張L−indexは次に示す次の6つの要素の構造体の配列である。
・線分の開始点
・線分の式
・開始点のディスクアドレス
・誤差情報
・順交差最大修正誤差
・逆交差最大修正誤差
以下、拡張L−indexの索引構造の定義を以下の定義2に行う。
【0049】
定義2
もと系列Oを
【0050】
【数11】
、拡張L−index構築時の誤差の閾値をΔで参照する。
これに対する拡張L−indexは
【0051】
【数12】
で表し、拡張L−indexを構成するそれぞれの要素は次のように参照する。
・開始点:
【0052】
【数13】
・線分:
【0053】
【数14】
【数15】
の実データが格納されているディスクアドレス:
【0054】
【数16】
・上下偏差差異:
【0055】
【数17】
・順交差最大修正誤差:
【0056】
【数18】
・逆交差最大修正誤差:
【0057】
【数19】
開始点、線分の式、ディスクアドレスは非特許文献2と同じ方法であり、上下偏差差異は、非特許文献2の誤差情報にあたる。次に順交差最大修正誤差と逆交差最大修正誤差の算出アルゴリズムを示す。図7に、もと系列の部分系列
【0058】
【数20】
に構築されたL−indexのある要素liについての順交差最大修正誤差
【0059】
【数21】
、及び逆交差最大修正誤差
【0060】
【数22】
の算出アルゴリズムを示す。
【0061】
図7のアルゴリズムでは、相対する線分がi=p+1からi=qまで全ての点で交差することを想定して、これらの場合での修正誤差を順交差、及び逆交差それぞれについて求めている。それらの最大値を順交差最大修正誤差、及び逆交差最大誤差としている。
【0062】
まず、step1では、初期値を設定している。step2では交差点がiであるとして次の計算を行う。まず、[p..i]の下向き誤差の合計と上向き誤差の合計を計算する。順交差用と逆交差用に上向き誤差から下向き誤差を減算したものとその逆を計算する。6行目と7行目では、iの値が増加して交差点が移動した場合の最大値を計算している。8行目から12行目は[i+1..q]について同様の計算をしている。この計算をiについて[p+1..q]で行うことにより、順交差、逆交差それぞれについての交差前最大修正誤差と交差後最大修正誤差が求められる。step5では、交差前と交差後の最大修正誤差を順交差、逆交差それぞれについて足し合わせることにより、順交差最大修正誤差、及び逆交差最大誤差を求めている。
【0063】
図7に示すアルゴリズムに従って、拡張L−indexを構築する。これを用いてL−indexと同様に類似検索を行う。類似検索を行う上での距離計算の方法は従来のL−indexと全く同じであるため省略する。
【0064】
次に拡張L−indexを用いた誤差の修正法を示す。誤差は、近似距離計算の対象区間に存在する線分ごとに修正する。また、修正法は、着目線分が相対する線分との位置関係に応じて異なる。線分の位置関係と修正誤差の定義を以下の定義3に示す。
【0065】
定義3:拡張L−indexを用いた誤差の下方修正
【0066】
【数23】
を拡張L−indexのうちでx=kの候補部分系列に相当する部分を標準化したデータ構造、S’(Q)をサイズがnの標準化済み目標系列の近似線分系列(拡張L−indexと同様のメタデータを持つ)とする。
【0067】
このとき、
【0068】
【数24】
に対する修正誤差を次のように定義する。
【0069】
●線分
【数25】
が
【数26】
においてS’(Q)に属するをいかなる線分とも交わらない場合で、
△
【0070】
【数27】
を満たす場合
◇
【0071】
【数28】
(case1)
◇
【0072】
【数29】
(case2)
△
【0073】
【数30】
を満たす場合
◇
【0074】
【数31】
(case3)
◇
【0075】
【数32】
(case4)
△
【0076】
【数33】
を満たす場合
◇
【0077】
【数34】
(case5)
◇
【0078】
【数35】
(case6)
●線分
【0079】
【数36】
が
【0080】
【数37】
においてS’(Q)に属するある線分と交わる場合、
△
【0081】
【数38】
(case7)
△
【0082】
【数39】
(case8)
以上の誤差の下方修正を対象区間の近似距離に対して施したものをOBDと呼ぶ。
【0083】
位置関係の分類は、L−indexと同じであるため図3を参照されたい。なお、定義3内の標準化とは、系列の平均値を0にそろえることを意味している。
【0084】
定義3でcase3以降が従来のL−indexに対して拡張された部分である。case7、及びcase8は上で説明した通りである。case3、case4、case5、case6に関しては、線分が中途より始まる点、あるいは途中で終る点を交差点と捉えることにより定義3のように求めている。
【0085】
case3は、着目線分が相対する線分より上方にあって、着目線分の途中から比較区間が始まる場合である。この場合、修正すべき誤差は逆交差の場合と同じになる。図8(a)はcase3の場合を表している。一方(b)は逆交差の場合を表している。(a)と(b)は、(b)の方が003に示す部分の誤差を多く修正する必要があるという違いを除いては修正すべき誤差に関して全く同じと捉えられる。拡張L−indexにおいては、下向きに誤差を修正しすぎる分には、false dismissalを犯す可能性は発生しない。従って、case3は逆交差の場合と同じ修正誤差となり、定義3の通りとなる。その他、case4、case5、case6においても同様である。
【0086】
端点により遮られた部分の最大誤差も下向きに修正されており冗長な下方修正があるが、従来のL−indexに比べると実際の距離により近くなっている。
【0087】
非特許文献2のPessimistic Bound Distance(PBD)も従来のL−indexに比べて拡張した。PBDは実際の距離を下回ることがないことを保証した近似距離である。以下に説明する。
【0088】
類似検索では非類似許容度εの値が大きくなるにつれて、その検索性能が逐次走査に近づくという問題点がある。非類似許容度εが大きな値をとるとき、正解とされる候補部分系列の数が多くなるのは明らかである。False Dismissalを犯さない索引手法では、索引空間で求められる近似解は、必ず正解を包含しているためεが大きな値をとるとき近似解の数はさらに多くなる。索引手法では、近似解を逐次走査を用いて精錬するため、近似解の数が多くなるほど、性能が逐次走査に近づくことになる。このような場合に、実際の距離を決して下回らない距離、PBDを用いる。
【0089】
系列A、B間の実際の距離をd(A, B)とする。類似検索の非類似許容度をεとするとd(A, B) < εを満たす部分が解となる。
p(A、 B)を系列A、 BのPBDとするとd(A, B) < p(A, B)が成り立つ。よって次の式が成り立つ。
【0090】
【数40】
従って二系列A, BのPBDがεを越えないならば、必ずその二系列は類似検索の解である。このため、PBDを用いて同定した解は正解であることが保証され、精錬において逐次走査を用いて実際の距離を計算する必要がない。以上より、非類似許容値εが大きい場合にはPBDを用いて幾つかの正解をあらかじめ決定することができ、検索効率をあげることが可能となる。
【0091】
以下の定義4にPBDを定義する。PBDの定義は定義3に基づいている。
【0092】
定義4:拡張L−indexを用いた誤差の上方修正(PBD)
【0093】
【数41】
を拡張L−indexのうちでx=kの候補部分系列に相当する部分を標準化したデータ構造、S’(Q)をサイズがnの標準化済み目標系列の近似線分系列(拡張L−indexと同様のメタデータを持つ)とする。
このとき、
【0094】
【数42】
に対する上方修正誤差を次のように定義する。
線分
【0095】
【数43】
が
【0096】
【数44】
においてS’(Q)に属するをいかなる線分とも交わらない場合で、
【0097】
【数45】
を満たす場合
【0098】
【数46】
(case1)
【0099】
【数47】
(case2)
【0100】
【数48】
を満たす場合
【0101】
【数49】
(case3)
【0102】
【数50】
(case4)
【0103】
【数51】
を満たす場合
【0104】
【数52】
(case5)
【0105】
【数53】
(case6)
線分
【0106】
【数54】
が
【0107】
【数55】
においてS’(Q)に属するある線分と交わる場合、
【0108】
【数56】
(case7)
【0109】
【数57】
(case8)
最後に拡張L−indexを用いた類似検索の方法について記す。
1. ユ−ザが非類似許容度εと目標系列を与える。
2. 与えられた目標系列を線分系列に近似する。
3. L−indexと線分系列に近似された目標系列との間のPBD距離がεより小さい全ての候補部分系列を正解とする。
4. 3.で求めた正解を除いた部分の中で、OBD距離がεより小さい全てのOBD近似解を求める。
5. 4.で求めたOBD近似解に対して逐次走査を適用し正解を求める。
【0110】
【発明の効果】
上記で説明した通り、本発明を用いることにより系列データの類似検索において、これを少ない計算量、及び少ないディスクアクセスで行うことが可能となる。結果として検索時間の大幅な短縮が実現する。
【0111】
株価予測や地震予測、あるいは動画検索や遺伝子解読といった系列データを扱うアプリケーション、サービス、ビジネス、およびインフラにおいては、検索を行うユーザは検索結果待機時間を大幅に短縮でき、その価値が向上する。また、これらを提供する側は、CPUパワーやディスク容量、主記憶の容量などのリソースの縮小が実現できる。本発明の応用分野は数値時系列データに限らず、遺伝子やPDFファイルなどの文字列検索、音楽や動画などバイナリデータの類似検索など幅広い分野がある。また、単なる類似検索ではなく、類似パターンを多く発見することによる相関分析、これによりデータに存在する潜在的な知識の発見、潜在知識からビジネスチャンスを見出すデータウェアハウスやCRMに適用できる。
【図面の簡単な説明】
【図1】L−indexの概要を示した図である。
【図2】L−indexの詳細を示した図である。
【図3】近似距離の計算方法を示した図である。
【図4】図3に実系列を加えて示した図である。
【図5】検索区間の端点が線分の途中に現れた場合の図である。
【図6】拡張L−indexの誤差修正について説明した図である。
【図7】拡張L−indexの要素である誤差情報に関するメタデータの計算方法を定義した図である。
【図8】拡張L−indexの誤差修正を説明した図である。
001 始点前
002 始点後
003 交差後の誤差
004 交差前誤差
【発明の属する技術分野】
本発明は、数値系列データ、あるいは画像や文字列データなどの数値系列に変換可能なデータに対して高速に類似検索を行うための索引データ構造、及び索引データ構造の更新および検索手法とこれらを実施するプログラムを記録した記録媒体に関する。
【0002】
【従来の技術】
本明細書中で、二つの数値系列の非類似度を算出する非類似度関数をD(A,B)とするとき、数値系列A、Bが類似しているとは、次の式を満たしている必要がある。
【0003】
【数1】
ただし、εは類似検索を行うユーザが与える非類似度の閾値で、非類似許容値とよぶ。
【0004】
数値系列データの類似検索とは、データベースに格納された数値系列(以下、元系列)の中から、検索対象として与えられる数値系列(以下、目標系列)との非類似度がε以下の部分を全て求める問題とする。
【0005】
数値系列データの類似検索は逐次的に走査することにより、最も単純に実現できる。逐次的な走査は、索引を使わず全てのデータにアクセスする。このため、ディスクアクセス回数、及び計算量が膨大となる。このため、数値系列の類似検索に特化した効率的な幾つかの索引構造が発表されている。
【0006】
索引構造を用いた類似検索では、まず索引を用いて近似解を求め、次に近似解に対して実際の距離を計算して正解を求めるという段階を経る。近似解に対して実際の距離を計算する作業を精錬とよぶ。
【0007】
最も代表的な索引構造は、次の文献で参照できるST−indexである(非特許文献1参照。)。
【0008】
ST−indexは、系列を離散フーリエ変換を用いて圧縮し、これを多次元索引構造を用いて構造化したものである。ST−indexには、大きく次の二つの問題がある。
1、あらかじめ想定した目標系列のサイズと異なるサイズの目標系列を与えた場合、著しく検索効率が低下する。
2、元系列の更新に大きな計算量が必要となる。
【0009】
これらの問題に対して、発明者らは数値に変換された系列データを、線分の系列に近似したものを索引として保持する新しい索引構造、L−indexを次の文献に発表した(非特許文献2参照)。
【0010】
以下、本発明の基礎となる索引構造L−indexについて概説する。
【0011】
数値系列X、 Yに対して、L−indexの構築において前提となっているL1距離関数、及びX、 Yに対する非類似度の定義を以下の定義1に行う。
【0012】
定義1
【0013】
【数2】
【数3】
とするとき、系列X、YのL1距離は、L1(X,Y)は、次の式で表される
【0014】
【数4】
さらに、
【0015】
【数5】
についても同様とするときX,Yの非類似度D(X,Y)は、次の式で定義される。
【0016】
【数6】
元データを線分の系列に近似する線分系列近似法において、元データを線分に近似するアルゴリズムとしてL−indexでは、最小二乗法を用いている。L−indexでは、系列の添字をX座標、その数値をY座標とみなし、これらを最小二乗法を用いて直線に近似する。
【0017】
L−indexでは、元系列を線分に近似する際の詳細さを調整するために、元データの一部分を線分に近似した際に発生する累積誤差に閾値Δを設けている。近似は数値系列の始点から開始し、近似した線分と元系列が持つ実際の値との累積誤差がΔに達する直前まで同一の線分で行う。これを終点まで繰り返すことによって、膨大な数値系列を線分系列に近似し、データサイズを大幅に縮小している。L−indexでは各線分が生成される過程で得られる次の4つのメタデ−タを持つ。
線分の開始点
線分の式
開始点のディスクアドレス
誤差情報
これに従い構築されるL−indexの概要図を図1に、詳細図を図2に示した。図1にはL−indexが持つ先に示した4つの要素の具体例を示している。図2には、数値系列を線分に近似する様子を示した。図中で上向き誤差は、線分に近似したことにより生じた上向きの誤差を表し、下向き誤差も同様である。一つの線分での上向き誤差の合計を上向き偏差、下向き誤差の合計を下向き偏差とよび、それぞれ要素記号δup、δdownで表す。先に述べたL−indexが持つ誤差情報とは、この元データと近似線分との間の偏差の上下差異(上下偏差差異:
【0018】
【数7】
)である。この情報を用いて、近似により生じた距離計算の誤差を修正する。
【0019】
L−index、および同様に線分系列に近似した目標系列を用いることにより、系列間の近似的な距離(近似距離)を高速に計算することが可能となる。図3を用いて、x = kでの元系列と目標系列との近似距離の計算法について概説する。図3に示すように、
L−indexの線分系列の式をy = f(x) 、目標系列の近似線分列の式をy = g(x) とすると、元系列と、目標系列の近似距離d’は以下の式で求めることができる。
【0020】
【数8】
数8の式は、図3に示す線分系列が分断する区間ごとに分けて積分を行うことにより、一次式の積分の加算となり、計算コストを大幅に減少できる。詳細については非特許文献2を参照。
【0021】
近似距離を数8の式に適用し類似検索を行い求めた解を近似解とする。この場合、近似距離は実際の非類似度とは異なっているため、近似解には正解であるはずのものが含まれない(false dismissal)可能性がある。
【0022】
しかしながら、非特許文献1および非特許文献2にあるように、索引空間での距離が実際の距離を決して超えないことが保証される場合、その索引手法はfalse dismissalを犯さない。このことから、正解のもれを防ぐために、L−indexの発明には先に説明した上下偏差差異を用いて近似距離を下向きに修正する。
【0023】
図4は、図3に対して近似する前の元系列、および目標系列の一部を加えて表示したものである。たとえば、図中の区間[t5..t6−1] のS’(Q) に発生している上向き誤差は、この区間の近似距離を実際の距離に比べて増加させている。また、区間[t0..t1−1] のS’(O) に発生している下向き誤差は、この区間の近似距離を実際の距離に比べて減少させている。 L−indexでは、この誤差を下向きに修正した近似距離を、Optimistic Bound Distance(OBD)とよび、d_OBDで表す。さらに、OBDにより求められる近似解をOBD近似解とよぶ。具体的には、近似距離を計算する際に分割した区間(図4の[t0..t1], [t1..t2], ... )ごとに、その区間に終点を持つ線分に関して発生している誤差を修正する。
【0024】
線分系列S’(O) についての誤差の修正については、S’(Q) の位置によりその方法が異なる。逆に、S’(Q) の誤差の修正についても同様である。着目線分をline1、相対する線分をline2とすると、line1についての誤差の修正法は次に示す5つの場合によって異なる。
【0025】
line2がline1と交差せず、
line1の始点あるいは終点のいずれも、2系列の比較区間に収まる場合で、
line1がline2より上方にある場合 : case1
line1がline2より下方にある場合 : case2
line1の始点、終点いずれかが、2系列の比較区間に収まらない場合で
line1がline2より上方にある場合 : case3
line1がline2より下方にある場合 : case4
line2がline1と交差(及び一致)する場合 : case5
case1の場合、完全に誤差を修正できる。従って修正すべき誤差は(−δdown+δup)であり、−δd−uとなる。
【0026】
case2は、case1と上下が逆になるため、修正すべき誤差はδd−uとなる。
【0027】
case3には図4の区間 [t0..t2−1]の線分liが当てはまる。この場合は、線分が途中から始まっているため、線分全体としての上下偏差差異であるδd−uを使用することができない。線分liの始点は、x=t0より前である。図5の(α)に示すように区間[t0..t1−1]において全ての下向き誤差が発生していた場合には、修正すべき誤差は −δdownとなる。図5の(β)の場合は修正すべき誤差は +δupとなる。(α)が近似距離を最も増加させる場合であり、他のどのような場合においても、これ以上の減少方向への修正をする必要がない。従って、最悪の場合を想定して −δdown の誤差修正を行う。
【0028】
case4には、図4の区間 [t5..t6]が当てはまる。これはcase3と上下が逆になるため、修正すべき誤差は −δupとなる。
【0029】
case5には、図4の区間 [t1..t4−1]、 [t2..t3−1]が当てはまる。交差する場所は事前に知り得ないため、誤差の分布を読むことができない。従って最悪の場合の誤差Δを修正する必要がある。修正誤差は−Δとなる。
【0030】
【非特許文献1】
C. Faloutsos, M. Ranganathan, Y. Manolopoulos: Fast Subsequence Matching in Time−Series Database, proc. of SIGMOD, pp. 419〜429, 1994
【非特許文献2】
Yuu Morinaka, Masatoshi Yoshikawa, Toshiyuki Amagasa, Shunsuke Uemura, The L−index: An Indexing Structure for Efficient Subsequence Matching in Time Sequence Databases, International Workshop on Mining Spatial and Temporal data(2001)
【0031】
【発明が解決しようとする課題】
L−indexでの誤差修正は、上のcase1、 case2の場合は、実際の距離に等しくなるよう修正が行われるが、case3、 case4、 case5に関しては下向きの修正誤差が大きく、OBDが実際の距離より大幅に小さくなる可能性が高い。近似距離が実際の距離より非常に小さい場合には、近似解として同定されたものの中で正解ではないものの数が増加する。これをfalse alarmというがfalse alarmの数が増えた場合、精錬作業が多くなり計算量が大きくなる。また、実系列にアクセスするデ−タ量も多くなりディスクアクセスも増加する。
【0032】
本発明は上記に鑑みてなされたもので、その目的とするところは、 L−indexの正解に対する近似解のしぼり込み精度を大幅に上昇させるところにあり、このための近似線分の誤差を修正するアルゴリズム、これに用いる索引機構、それを用いた類似検索方法、及び前記述方式を実施するプログラムを記憶した媒体を提供することを目的とする。
【0033】
【課題を解決するための手段】
L−indexにおけるOBD近似解を求めるための誤差修正法は、以下に説明する発明を用いることにより、さらに実際の距離に近く、かつ実際の距離を越えないように改善することができる。これにより、 false alarmを大幅に減少し精錬過程のコストを下げ、その結果類似検索の精度を落すこと無く、その性能を大幅に向上できる。
【0034】
具体的な手段は次のとおりである。2つの線分が交差する場合、あらかじめ交差する点が分かっていれば、修正すべき誤差を計算することができる。しかし、目標系列が与えられるのは、索引を作成した後であるため、あらかじめこれを知ることは不可能である。そこで、全ての点においてその点で交わった場合の下向き修正誤差を計算する。この最大値を常に修正することにより、下向き修正が足りなくなることは無い。従って、常に実際の距離を超えることがない。このような考えに基づいて、L−indexを拡張し、これを発明とする。
【0035】
【発明の実施の形態】
以下、図面を用いて本発明の実施の形態を説明する。説明の際、本発明であるところの索引構造を拡張L−indexとよぶ。OBDは実際の距離を越えてはならないため、正確に誤差が分かる場合(case1、 case2)を除いて距離を減らす方向に修正される。中でも2つの線分が交差する場合(case5)は下向きへの誤差修正値はΔとなり、これは実際に修正すべき値より非常に大きくなる。二直線が比較的類似している場合には、交差が頻繁に起こり、これによりOBDは実際の距離より大幅に小さくなる。
【0036】
以下、本明細書では説明のために、着目する線分が相対する線分について上方から下方に交差することを順交差、その下方から上方に向かって交差することを逆交差と呼ぶ。
【0037】
図6(a)に図4の区間[t2..t3−1]の詳細図を示した。例えば(b)のように、相対する線分が交差しない場合、修正すべき誤差の求め方は次の通りである。まず、
【0038】
【数9】
で計算される下向き偏差により近似距離は17減少し、
【0039】
【数10】
で計算される上向き偏差により近似距離は18増加した。従って合計で近似距離は実際の距離より1増加しており、修正する誤差は−1となる。
【0040】
しかし、区間[t2..t3−1]では、相対する線分に順交差するため修正すべき誤差は異なる。従来のL−indexの考え方では、交差した場合には常にΔを減算していた。図8(a)の場合Δの値は、上向き偏差+下向き偏差であるため35となり、−35の修正が発生することになる。一方で交差情報が正確に分かっている場合には次のように修正できる。
【0041】
交差前上向き誤差の合計9加算
交差前下向き誤差の合計8減算
→ 交差前修正誤差1加算
交差後下向き誤差の合計9減算
交差後上向き誤差の合計9加算
→ 交差後修正誤差0
従って、全体で修正誤差は見積りは −35であるのに対し実際には +1となる。この結果より、従来のL−indexでの誤差修正の方法は、下方修正が大きすぎることが分かる。
【0042】
ただし、あらかじめ交差する場所が分かっていればL−indexにその情報をメタデ−タとして保持させることも可能であるが、交差する場所は索引構造を構築する段階では知り得ない。
【0043】
次に、二線分の交差位置が図6の(c)の場所の場合を考える。この場合には、上と同様に修正誤差を計算した場合、次のようになる。
【0044】
交差前上向き誤差の合計9加算
交差前下向き誤差の合計15減算
→ 交差前修正誤差 −6加算
交差後下向き誤差の合計9減算
交差後上向き誤差の合計2加算
→ 交差後修正誤差 −7
この場合は全体での修正誤差は −13となる。
【0045】
このように、交差位置によって修正すべき誤差は大きく異なることが分かる。
しかし、交差位置は目標系列が与えられるまで知ることができない。
【0046】
そこで、交差位置として可能性のある全ての場所で、次の4つの情報を計算する。
交差前上向き誤差の合計(加算される)
交差前下向き誤差の合計(減算される)
交差後下向き誤差の合計(減算される)
交差後上向き誤差の合計(加算される)
いずれの場所で交差した場合にも、実際の距離を越えないように誤差を修正する必要がある。それゆえ、上の4つの情報に対して、順交差の場合、次のような組合せで値を選ぶことによりどの場所で交差が起こっても、その値以上の減算はなく、その値以下の加算がない。ここで、Max()は()の全ての要素の最大値を表す。
Max(交差前下向き誤差の合計 − 交差前上向き誤差の合計) … (1)
Max(交差後上向き誤差の合計 − 交差後下向き誤差の合計) … (2)
最後に、誤差修正値として(1)と(2)の値を加算したものをL−indexのメタデ−タとして持つ。ある線分が図6(a)のように上から下に交差する場合には、この値を修正誤差として下方修正する。
【0047】
これにより、実際の距離を決して越えることがなくかつ実際の距離に近いOBDを計算することができる。なお逆交差の場合、上と逆の計算が必要となるため次のような組合せで選んだ値を加算する必要がある。
Max(交差前上向き誤差の合計 − 交差前下向き誤差の合計) … (3)
Max(交差後下向き誤差の合計 − 交差後上向き誤差の合計) … (4)
このような考え方で求められる二種類のメタデ−タ((1)+(2)、及び(3)+(4))を従来のL−indexに付加したものを拡張L−indexとよぶ。
【0048】
以下、上記の考え方を元に従って拡張L−indexの構造、構築アルゴリズム、及び拡張L−indexを用いた類似検索方法について述べる。拡張L−indexは次に示す次の6つの要素の構造体の配列である。
・線分の開始点
・線分の式
・開始点のディスクアドレス
・誤差情報
・順交差最大修正誤差
・逆交差最大修正誤差
以下、拡張L−indexの索引構造の定義を以下の定義2に行う。
【0049】
定義2
もと系列Oを
【0050】
【数11】
、拡張L−index構築時の誤差の閾値をΔで参照する。
これに対する拡張L−indexは
【0051】
【数12】
で表し、拡張L−indexを構成するそれぞれの要素は次のように参照する。
・開始点:
【0052】
【数13】
・線分:
【0053】
【数14】
【数15】
の実データが格納されているディスクアドレス:
【0054】
【数16】
・上下偏差差異:
【0055】
【数17】
・順交差最大修正誤差:
【0056】
【数18】
・逆交差最大修正誤差:
【0057】
【数19】
開始点、線分の式、ディスクアドレスは非特許文献2と同じ方法であり、上下偏差差異は、非特許文献2の誤差情報にあたる。次に順交差最大修正誤差と逆交差最大修正誤差の算出アルゴリズムを示す。図7に、もと系列の部分系列
【0058】
【数20】
に構築されたL−indexのある要素liについての順交差最大修正誤差
【0059】
【数21】
、及び逆交差最大修正誤差
【0060】
【数22】
の算出アルゴリズムを示す。
【0061】
図7のアルゴリズムでは、相対する線分がi=p+1からi=qまで全ての点で交差することを想定して、これらの場合での修正誤差を順交差、及び逆交差それぞれについて求めている。それらの最大値を順交差最大修正誤差、及び逆交差最大誤差としている。
【0062】
まず、step1では、初期値を設定している。step2では交差点がiであるとして次の計算を行う。まず、[p..i]の下向き誤差の合計と上向き誤差の合計を計算する。順交差用と逆交差用に上向き誤差から下向き誤差を減算したものとその逆を計算する。6行目と7行目では、iの値が増加して交差点が移動した場合の最大値を計算している。8行目から12行目は[i+1..q]について同様の計算をしている。この計算をiについて[p+1..q]で行うことにより、順交差、逆交差それぞれについての交差前最大修正誤差と交差後最大修正誤差が求められる。step5では、交差前と交差後の最大修正誤差を順交差、逆交差それぞれについて足し合わせることにより、順交差最大修正誤差、及び逆交差最大誤差を求めている。
【0063】
図7に示すアルゴリズムに従って、拡張L−indexを構築する。これを用いてL−indexと同様に類似検索を行う。類似検索を行う上での距離計算の方法は従来のL−indexと全く同じであるため省略する。
【0064】
次に拡張L−indexを用いた誤差の修正法を示す。誤差は、近似距離計算の対象区間に存在する線分ごとに修正する。また、修正法は、着目線分が相対する線分との位置関係に応じて異なる。線分の位置関係と修正誤差の定義を以下の定義3に示す。
【0065】
定義3:拡張L−indexを用いた誤差の下方修正
【0066】
【数23】
を拡張L−indexのうちでx=kの候補部分系列に相当する部分を標準化したデータ構造、S’(Q)をサイズがnの標準化済み目標系列の近似線分系列(拡張L−indexと同様のメタデータを持つ)とする。
【0067】
このとき、
【0068】
【数24】
に対する修正誤差を次のように定義する。
【0069】
●線分
【数25】
が
【数26】
においてS’(Q)に属するをいかなる線分とも交わらない場合で、
△
【0070】
【数27】
を満たす場合
◇
【0071】
【数28】
(case1)
◇
【0072】
【数29】
(case2)
△
【0073】
【数30】
を満たす場合
◇
【0074】
【数31】
(case3)
◇
【0075】
【数32】
(case4)
△
【0076】
【数33】
を満たす場合
◇
【0077】
【数34】
(case5)
◇
【0078】
【数35】
(case6)
●線分
【0079】
【数36】
が
【0080】
【数37】
においてS’(Q)に属するある線分と交わる場合、
△
【0081】
【数38】
(case7)
△
【0082】
【数39】
(case8)
以上の誤差の下方修正を対象区間の近似距離に対して施したものをOBDと呼ぶ。
【0083】
位置関係の分類は、L−indexと同じであるため図3を参照されたい。なお、定義3内の標準化とは、系列の平均値を0にそろえることを意味している。
【0084】
定義3でcase3以降が従来のL−indexに対して拡張された部分である。case7、及びcase8は上で説明した通りである。case3、case4、case5、case6に関しては、線分が中途より始まる点、あるいは途中で終る点を交差点と捉えることにより定義3のように求めている。
【0085】
case3は、着目線分が相対する線分より上方にあって、着目線分の途中から比較区間が始まる場合である。この場合、修正すべき誤差は逆交差の場合と同じになる。図8(a)はcase3の場合を表している。一方(b)は逆交差の場合を表している。(a)と(b)は、(b)の方が003に示す部分の誤差を多く修正する必要があるという違いを除いては修正すべき誤差に関して全く同じと捉えられる。拡張L−indexにおいては、下向きに誤差を修正しすぎる分には、false dismissalを犯す可能性は発生しない。従って、case3は逆交差の場合と同じ修正誤差となり、定義3の通りとなる。その他、case4、case5、case6においても同様である。
【0086】
端点により遮られた部分の最大誤差も下向きに修正されており冗長な下方修正があるが、従来のL−indexに比べると実際の距離により近くなっている。
【0087】
非特許文献2のPessimistic Bound Distance(PBD)も従来のL−indexに比べて拡張した。PBDは実際の距離を下回ることがないことを保証した近似距離である。以下に説明する。
【0088】
類似検索では非類似許容度εの値が大きくなるにつれて、その検索性能が逐次走査に近づくという問題点がある。非類似許容度εが大きな値をとるとき、正解とされる候補部分系列の数が多くなるのは明らかである。False Dismissalを犯さない索引手法では、索引空間で求められる近似解は、必ず正解を包含しているためεが大きな値をとるとき近似解の数はさらに多くなる。索引手法では、近似解を逐次走査を用いて精錬するため、近似解の数が多くなるほど、性能が逐次走査に近づくことになる。このような場合に、実際の距離を決して下回らない距離、PBDを用いる。
【0089】
系列A、B間の実際の距離をd(A, B)とする。類似検索の非類似許容度をεとするとd(A, B) < εを満たす部分が解となる。
p(A、 B)を系列A、 BのPBDとするとd(A, B) < p(A, B)が成り立つ。よって次の式が成り立つ。
【0090】
【数40】
従って二系列A, BのPBDがεを越えないならば、必ずその二系列は類似検索の解である。このため、PBDを用いて同定した解は正解であることが保証され、精錬において逐次走査を用いて実際の距離を計算する必要がない。以上より、非類似許容値εが大きい場合にはPBDを用いて幾つかの正解をあらかじめ決定することができ、検索効率をあげることが可能となる。
【0091】
以下の定義4にPBDを定義する。PBDの定義は定義3に基づいている。
【0092】
定義4:拡張L−indexを用いた誤差の上方修正(PBD)
【0093】
【数41】
を拡張L−indexのうちでx=kの候補部分系列に相当する部分を標準化したデータ構造、S’(Q)をサイズがnの標準化済み目標系列の近似線分系列(拡張L−indexと同様のメタデータを持つ)とする。
このとき、
【0094】
【数42】
に対する上方修正誤差を次のように定義する。
線分
【0095】
【数43】
が
【0096】
【数44】
においてS’(Q)に属するをいかなる線分とも交わらない場合で、
【0097】
【数45】
を満たす場合
【0098】
【数46】
(case1)
【0099】
【数47】
(case2)
【0100】
【数48】
を満たす場合
【0101】
【数49】
(case3)
【0102】
【数50】
(case4)
【0103】
【数51】
を満たす場合
【0104】
【数52】
(case5)
【0105】
【数53】
(case6)
線分
【0106】
【数54】
が
【0107】
【数55】
においてS’(Q)に属するある線分と交わる場合、
【0108】
【数56】
(case7)
【0109】
【数57】
(case8)
最後に拡張L−indexを用いた類似検索の方法について記す。
1. ユ−ザが非類似許容度εと目標系列を与える。
2. 与えられた目標系列を線分系列に近似する。
3. L−indexと線分系列に近似された目標系列との間のPBD距離がεより小さい全ての候補部分系列を正解とする。
4. 3.で求めた正解を除いた部分の中で、OBD距離がεより小さい全てのOBD近似解を求める。
5. 4.で求めたOBD近似解に対して逐次走査を適用し正解を求める。
【0110】
【発明の効果】
上記で説明した通り、本発明を用いることにより系列データの類似検索において、これを少ない計算量、及び少ないディスクアクセスで行うことが可能となる。結果として検索時間の大幅な短縮が実現する。
【0111】
株価予測や地震予測、あるいは動画検索や遺伝子解読といった系列データを扱うアプリケーション、サービス、ビジネス、およびインフラにおいては、検索を行うユーザは検索結果待機時間を大幅に短縮でき、その価値が向上する。また、これらを提供する側は、CPUパワーやディスク容量、主記憶の容量などのリソースの縮小が実現できる。本発明の応用分野は数値時系列データに限らず、遺伝子やPDFファイルなどの文字列検索、音楽や動画などバイナリデータの類似検索など幅広い分野がある。また、単なる類似検索ではなく、類似パターンを多く発見することによる相関分析、これによりデータに存在する潜在的な知識の発見、潜在知識からビジネスチャンスを見出すデータウェアハウスやCRMに適用できる。
【図面の簡単な説明】
【図1】L−indexの概要を示した図である。
【図2】L−indexの詳細を示した図である。
【図3】近似距離の計算方法を示した図である。
【図4】図3に実系列を加えて示した図である。
【図5】検索区間の端点が線分の途中に現れた場合の図である。
【図6】拡張L−indexの誤差修正について説明した図である。
【図7】拡張L−indexの要素である誤差情報に関するメタデータの計算方法を定義した図である。
【図8】拡張L−indexの誤差修正を説明した図である。
001 始点前
002 始点後
003 交差後の誤差
004 交差前誤差
Claims (5)
- データベースに格納された系列データを圧縮し、構造化した索引構造であって、数値化された系列データを線分系列に近似した索引構造であり、各線分のについての、開始点、線分の式、ディスクアドレス、及び3つの誤差修正に関するメタデータを持つ索引構造を記録した記録媒体。
- 二系列間の距離を計算において、線分に近似してその計算の高速化を実現する場合の、近似による発生誤差をその距離が少なくなる方向に修正するために誤差に関するメタデータを持つ方法、及びそのメタデータの計算方法、及びそれを記録した記録媒体。
- 二系列間の距離を計算において、線分に近似してその計算の高速化を実現する場合の、近似による発生誤差をその距離が多くなる方向に修正するために誤差に関するメタデータを持つ方法、及びそのメタデータの計算方法、及びそれを記録した記録媒体。
- 請求項1記載の索引構造を用いた類似検索において、請求項2記載のメタデータを用いることにより、解の精度を下げること無く高速に類似検索を行うアルゴリズム、それを実装したプログラム、及びそれを記憶した記憶媒体。
- 請求項1記載の索引構造を用いた類似検索において、請求項3記載のメタデータを用いることにより、確実に解であるものを正解の集合の中からから高速に判定し、それ以外については請求項4に記載の方法を用いて残りの正解を判定する類似検索の方法、及びそれを記載した記憶媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003043534A JP2004252795A (ja) | 2003-02-21 | 2003-02-21 | 数値系列データの類似検索のための索引構造、およびそれを用いた類似検索法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003043534A JP2004252795A (ja) | 2003-02-21 | 2003-02-21 | 数値系列データの類似検索のための索引構造、およびそれを用いた類似検索法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004252795A true JP2004252795A (ja) | 2004-09-09 |
Family
ID=33026502
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003043534A Pending JP2004252795A (ja) | 2003-02-21 | 2003-02-21 | 数値系列データの類似検索のための索引構造、およびそれを用いた類似検索法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004252795A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006302027A (ja) * | 2005-04-21 | 2006-11-02 | Nippon Telegr & Teleph Corp <Ntt> | 類似時系列データ計算装置、類似時系列データ計算方法、および類似時系列データ計算プログラム |
CN102565851A (zh) * | 2011-12-16 | 2012-07-11 | 中国石油集团川庆钻探工程有限公司地球物理勘探公司 | 地震资料数据的存储方法 |
-
2003
- 2003-02-21 JP JP2003043534A patent/JP2004252795A/ja active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006302027A (ja) * | 2005-04-21 | 2006-11-02 | Nippon Telegr & Teleph Corp <Ntt> | 類似時系列データ計算装置、類似時系列データ計算方法、および類似時系列データ計算プログラム |
JP4673123B2 (ja) * | 2005-04-21 | 2011-04-20 | 日本電信電話株式会社 | 類似時系列データ計算装置、類似時系列データ計算方法、および類似時系列データ計算プログラム |
CN102565851A (zh) * | 2011-12-16 | 2012-07-11 | 中国石油集团川庆钻探工程有限公司地球物理勘探公司 | 地震资料数据的存储方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Whang et al. | Pay-as-you-go entity resolution | |
Keogh et al. | Locally adaptive dimensionality reduction for indexing large time series databases | |
Andoni et al. | Near-optimal hashing algorithms for approximate nearest neighbor in high dimensions | |
Vlachos et al. | Indexing multi-dimensional time-series with support for multiple distance measures | |
Sakurai et al. | FTW: fast similarity search under the time warping distance | |
JP3648709B2 (ja) | サブシーケンスマッチング方法 | |
US20100106713A1 (en) | Method for performing efficient similarity search | |
Gunopulos et al. | Time series similarity measures (tutorial pm-2) | |
US7761458B1 (en) | Segmentation of a data sequence | |
Houle et al. | Dimensional testing for multi-step similarity search | |
US7849039B2 (en) | Method for using one-dimensional dynamics in assessing the similarity of sets of data using kinetic energy | |
KR20090065130A (ko) | 시그니처 파일을 이용한 고차원 데이터 색인 및 검색방법과 그 시스템 | |
Li et al. | Skyline index for time series data | |
Sharabiani et al. | Asymptotic dynamic time warping calculation with utilizing value repetition | |
Zoumpatianos et al. | Query workloads for data series indexes | |
Mic et al. | Binary sketches for secondary filtering | |
Indyk | On approximate nearest neighbors under l∞ norm | |
Tavenard et al. | Improving the efficiency of traditional DTW accelerators | |
US6910030B2 (en) | Adaptive search method in feature vector space | |
Mohamed et al. | Quantized ranking for permutation-based indexing | |
Jafari et al. | Experimental analysis of locality sensitive hashing techniques for high-dimensional approximate nearest neighbor searches | |
Sinha | LSH vs randomized partition trees: Which one to use for nearest neighbor search? | |
US7849038B2 (en) | Method for using the second homotopy group in assessing the similarity of sets of data | |
Zhu et al. | A generic framework for efficient and effective subsequence retrieval | |
JP2004252795A (ja) | 数値系列データの類似検索のための索引構造、およびそれを用いた類似検索法 |