(57)【特許請求の範囲】
【請求項１】
データシーケンスを時系列データベースとして記憶した第１の記憶手段と、該第１の記憶手段が記憶しているデータシーケンスを一時記憶する第２の記憶手段と、前記第１及び第２の記憶手段にアクセス可能な制御手段とを備えたコンピュータシステムを使用してサブシーケンスマッチングを行なうサブシーケンスマッチング方法において、前記制御手段が、
前記第１の記憶手段からデータシーケンスを読み出して前記第２の記憶手段に一時記憶させる第１の処理と、
前記第２の記憶手段に一時記憶させたデータシーケンスをディスジョイントウィンドウに分割する第２の処理と、
与えられた質問シーケンスをスライディングウィンドウに分割する第３の処理と、
前記第１の記憶手段へのアクセス回数及びサブシーケンスマッチングに必要な距離計算の回数を削減するために、前記第２の記憶手段に一時記憶させたデータシーケンスを分割したディスジョイントウィンドウに対して、前記質問シーケンスを分割したスライディングウィンドウのサブシーケンスマッチングを行なう第４の処理と
を実行することを特徴とするサブシーケンスマッチング方法。
【請求項２】
前記第４の処理は、前記制御手段が、
データシーケンスを分割したディスジョイントウィンドウを表わす個別点を特徴抽出関数を用いて変換する処理と、
変換した個別点を前記第１の記憶手段に索引として直接記憶させる処理と、
質問シーケンスを分割したスライディングウィンドウを表わす個別点を特徴抽出関数を用いて変換する処理と、
変換した個別点を範囲質問に直接用いる処理と
を更に実行することを特徴とする請求項１に記載のサブシーケンスマッチング方法。
【請求項３】
範囲質問の回数を削減するために、前記制御手段が、多数個の点を含む最小包囲四角形（ＭＢＲ）を構成して質問することにより候補集合を求める処理を更に実行することを特徴とする請求項２に記載のサブシーケンスマッチング方法。
【請求項４】
前記制御手段がサブシーケンスマッチングを行なうための多次元索引を構成する索引構成処理のために、前記制御手段が、
一つのｆ次元索引を生成して初期化する第５の処理と、
前記第２の処理でデータシーケンスを分割したディスジョイントウィンドウを特性抽出関数を用いてｆ次元の点に変換する第６の処理と、
前記第６の処理で変換した点と、この点に変換されたウィンドウが含まれるデータシーケンスの識別子及び開始位置とでレコードを構成する第７の処理と、
前記第７の処理で構成したレコードを前記第１の処理で初期化したｆ次元索引に挿入する第８の処理と、
前記第２の処理で分割された全てのディスジョイントウィンドウに対して前記第６及び第７の処理を反復する第９の処理と、
前記第１の記憶手段から次に読み込むべきデータシーケンスの有無を確認する第１０の処理と、
前記第１０の処理において、次に読み込むべきデータシーケンスがないと判断した場合は索引構成を終了し、次に読み込むべきデータシーケンスがあると判断した場合は次に読み込むべきデータシーケンスを読み込んだ後に前記第３の処理へ戻る第１１の処理と
を更に実行することを特徴とする請求項１に記載のサブシーケンスマッチング方法。
【請求項５】
前記第１の記憶手段が更に多次元索引を記憶しており、ユーザが提示した質問シーケンスと類似したサブシーケンスを前記制御手段が探索するサブシーケンスマッチング処理のために、前記制御手段が、
サブシーケンスに含まれる最小ディスジョイントウィンドウの個数を求める第１２の処理と、
前記第３の処理で分割したスライディングウィンドウを特性抽出関数を用いてｆ次元の点に変換する第１３の処理と、
前記第１３の処理で変換した点と、前記第１２の処理で求めた最小ディスジョイントウィンドウの個数と、ユーザが提示した許容値とを用いて範囲質問を構成する第１４の処理と、
前記第１４の処理で構成した範囲質問を用いて多次元索引を検索し、検索結果に基づいて候補集合を構成する第１５の処理と、
候補集合に含まれる候補サブシーケンスを前記第１の記憶手段から前記第２の記憶手段に読み込む第１６の処理と、
前記第１６の処理で読み込んだ候補サブシーケンスと質問シーケンスとの間の距離計算を行うことにより、候補集合に含まれる全ての候補サブシーケンスに対して錯誤解答であるか否かを確認する第１７の処理と
を更に実行することを特徴とする請求項１に記載のサブシーケンスマッチング方法。
【請求項６】
前記第１の記憶手段は更に多次元索引を記憶しており、ユーザが提示した質問シーケンスと類似したサブシーケンスを前記制御手段が探索する際に、範囲質問の回数を削減するためのサブシーケンスマッチング処理のために、前記制御手段が、
サブシーケンスに含まれる最小ディスジョイントウィンドウの個数を求める第１８の処理と、
前記第３の処理で分割した各スライディングウィンドウを特性抽出関数を用いてｆ次元の点に変換した後、多数個の点を含む最小包囲四角形（ＭＢＲ）を構成する第１９の処理と、
前記第１９の処理で構成した最小包囲四角形（ＭＢＲ）と、前記第１８の処理で求めた最小ディスジョイントウィンドウの個数と、ユーザが提示した許容値とを用いて範囲質問を構成する第２０の処理と、
前記第２０の処理で構成した範囲質問を用いて前記第１の記憶手段が記憶している多次元索引を検索する第２１の処理と、
前記第２０の処理で範囲質問の構成に用いた最小包囲四角形（ＭＢＲ）に含まれる各点と前記第２１の処理での検索結果で探索した各点との間の距離計算を行うことにより、候補集合を構成する第２２の処理と、
前記候補集合に含まれる候補サブシーケンスを前記第２の記憶手段に読み込む第２３の処理と、
前記第２３の処理で前記第２の記憶手段に読み込んだ候補サブシーケンスと質問シーケンスとの間の距離計算を行なうことにより、候補集合に含まれる全ての候補サブシーケンスに対して錯誤解答であるか否かを確認する第２４の処理と
を更に実行することを特徴とする請求項１に記載のサブシーケンスマッチング方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は時系列データベースにおけるサブシーケンスマッチング方法に関するものであり、より詳細にはウィンドウの構成を工夫することによりサブシーケンスマッチングの性能を向上させた時系列データベースにおけるサブシーケンスマッチング方法に関するものである。
【０００２】
【従来の技術】
まず、以下の説明で使用される用語を定義する。
長さがｎである「シーケンス」はｎ個のエントリーから構成された配列を意味し、「時系列データ」は各時間別に測定した実数値を有するエントリーのシーケンスを意味し、「時系列データベース」は時系列データを保存したデータベースを意味する。
【０００３】
また、「データシーケンス」は時系列データベースに保存された時系列データを意味し、「質問シーケンス」はユーザによって与えられるシーケンスを意味し、「類似シーケンスマッチング」とは質問シーケンスと類似したデータシーケンスを検索する方法を意味する。
【０００４】
前記で、類似シーケンスマッチングの二つのシーケンス間の距離が、ユーザが提示した「許容値」であるε以下であれば、二つのシーケンスは「類似」しているという。そして、シーケンスＸとＹとの間の距離がε以下であれば、ＸとＹとはεマッチ（ε−match)であると定義し、長さがｎである二つのシーケンスの距離を計算する演算を「ｎ次元距離計算」であると定義する。
【０００５】
上記の距離計算において、本発明は特定の距離計算方法に限定されない。しかし、本発明の技術に対する理解を助けるためにユークリッド距離計算方法に基づいて説明する。長さがｎである二つのシーケンスＸ＝｛Ｘ0 ，Ｘ1 ，．．．，Ｘn-1 ｝とＹ＝｛Ｙ0 ，ｙ1 ，．．．，Ｙn-1 ｝との「ユークリッド距離」は、
【０００６】
【数１】
0003648709.tif 000002
【０００７】
の式により定義する。
【０００８】
シーケンスＳがシーケンスＡを含んでいる場合、即ちＡがＳの一部分である場合、ＡはＳの「サブシーケンス」であるという。この時、類似シーケンスマッチングは、全体マッチングとサブシーケンスマッチングとの２種類に区分される。前記で「全体マッチング」とは、データシーケンスＳ1 ，Ｓ2 ，．．．，ＳN があって、質問シーケンスＱと許容値εとが与えられた時、Ｑとεマッチする全てのデータシーケンスを探索する方法である。この時、データシーケンスと質問シーケンスとの長さは同一である。また、前記で「サブシーケンスマッチング」とは、それぞれ異なる長さを有するデータシーケンスＳ1 ，Ｓ2 ，．．．，ＳN があって、質問シーケンスＱと許容値εとが与えられた時、Ｑとεマッチするサブシーケンスを含むデータシーケンスＳi と当該サブシーケンスの位置とを探索する方法である。
【０００９】
「ウィンドウ」は、シーケンスを分割する単位であり、分割する方法によってスライディングウィンドウとディスジョイントウィンドウとに区分する。前記「スライディングウィンドウ」は、シーケンスの可能な全ての位置を開始位置として構成したウィンドウを意味するが、添付図面の図１ａはシーケンスを大きさ４であるスライディングウィンドウに分割した例を表す。前記図１ａにおいて２０１はシーケンスであり、２０２は長さ４であるスライディングウィンドウである。また、前記「ディスジョイントウィンドウ」はウィンドウの大きさの倍数になる位置を開始位置として構成したウィンドウを意味するが、図１ｂはシーケンスを大きさ４であるディスジョイントウィンドウに分割した例を表す。前記図１ｂにおいて２０３はシーケンスであり、２０４はディスジョイントウィンドウである。
【００１０】
サブシーケンスマッチングにおける「錯誤棄却」は、与えられた質問シーケンスとεマッチするが、錯誤によって棄却されるサブシーケンスを意味し、「錯誤解答」は質問シーケンスとεマッチはしないが、錯誤によってεマッチするものとして選択されたサブシーケンスを意味する。前記サブシーケンスマッチングにおいては錯誤棄却と錯誤解答とが発生してはならない。
【００１１】
「特性抽出関数」は長さがｎであるシーケンスに対してｎよりも小さな個数の特性ｆ個を抽出する関数を意味するが、前記特性抽出関数を類似シーケンスマッチングに使用するためには、これを使用することによる錯誤棄却が発生しないようにすべきである。前記錯誤棄却が発生しないことを保障するための特性抽出関数の条件は、Agrawal 、R.、Faloutsos 、C.、and Swami 、A.、"Efficient Similarity Search in Sequence Databases、"In Proc. the 4th Int'l Conf. on Foundations of Data Organization and Algorithms、Chicago 、Illinois、pp. 69-84、Oct.1993. ［参考文献１] 及びFaloutsos 、C.、Ranganathan 、M.、and Manolopoulos、Y.、"Fast Subseqeunce Matching in Time-Series Databases 、"In Proc. Int'l Conf. on Management of Data 、ACM SIGMOD、Minneapolis 、Minnesota 、pp.419-429、 May1994.［参考文献２] に詳しく記載されている。
【００１２】
また、以下の説明で使用される表記法を定義する。
Ｌｅｎ（Ｓ）はシーケンスＳの長さを意味し、Ｓ［ｋ］はシーケンスＳのｋ番目のエントリーであり、Ｓ［ｉ：ｊ］はシーケンスＳのｉ番目のエントリーからｊ番目のエントリーまでにより構成されたサブシーケンスを表す。この時、前記Ｓ［ｉ：ｊ］は二つのサブシーケンスＳ［ｉ：ｋ］Ｓ［ｋ＋１：ｊ］で表現することができる。また、Ｓi はシーケンスＳをディスジョイントウィンドウで分割した時、ｉ番目のディスジョイントウィンドウを意味し、ωはスライディングウィンドウ及びディスジョイントウィンドウの大きさを表す。
【００１３】
近年、株式データ、企業の成長率、為替レート変動データ、医療データ、天気変動データなどのように多様な分野で多くの量の時系列データが発生しているが、コンピュータの計算及び記憶能力が発展することによって多くの量の時系列データを活用しようとする研究が活発になされている。特に、時系列データに対する類似シーケンスマッチングは、データベースの新しい応用分野であるデータマイニングの重要な分野として位置を占めている。
【００１４】
以下、従来技術による時系列データに対する類似シーケンスマッチング方法を説明する。
【００１５】
［参考文献１] の従来技術ではデータシーケンスと質問シーケンスとの長さが同一である場合の全体マッチング問題を解決するために次のような過程を行なう。
【００１６】
まず、特性抽出関数を使用して長さがｎであるデータシーケンスをｆ次元の点に変換し、これをｆ次元索引に保存する。このように特性を抽出する理由は、多次元索引の高次元問題(dimensionality curse)によって高次元のシーケンスを多次元索引に直接保存することが難しいためである。その後、質問シーケンスもやはり同一の関数を使用してｆ次元の点に変換し、変換した点と許容値εとを使用して範囲質問(range query) を構成する。そして、構成した範囲質問で多次元索引を検索してεマッチする全ての点を探索して候補集合(candidate set) を求める。このように候補集合を求めれば錯誤棄却は発生しないが、シーケンスの長さｎの代りにｆ個の特性のみを使用することによって錯誤解答が発生し得る。
【００１７】
従って、多次元索引に対する検索結果から得られた各点に対しては実際のデータシーケンスをアクセスし、質問シーケンスとの距離を調べて錯誤解答を除去するが、これを「後処理過程(post-processing step)」という。
【００１８】
また、［参考文献２] の従来技術では［参考文献１] の全体マッチング問題を一般化したサブシーケンスマッチング問題を解決するために次のような過程を行なったが、本発明ではこの解決策を著者等の名前の頭文字を取って「ＦＲＭ」と呼ぶ。
【００１９】
サブシーケンスマッチングにおいて、質問シーケンスと類似したサブシーケンスはデータシーケンスのどの位置にも現れるので、ＦＲＭでは全ての可能なサブシーケンスを調べるためにデータシーケンスの全ての可能な位置に対して一定の大きさのスライディングウィンドウを構成し、質問シーケンスをスライディングウィンドウの大きさと同一の大きさのディスジョイントウィンドウに分割する方法を用いた。ＦＲＭではデータシーケンスを分割した各スライディングウィンドウを低次元空間の点に変換した。そして、変換した点の個数が多すぎて各点を個別に多次元索引に保存することが難しいため、ヒューリスティックを使用していくつかの点を含む最小包囲四角形（ＭＢＲ：minimum bounding rectangle) を構成し、個別点を保存する代わりに、これらＭＢＲのみを多次元索引に保存し、これを利用して多様な長さの質問シーケンスに対するサブシーケンスマッチングを試みた。
【００２０】
前記ＦＲＭでは多様な長さの質問シーケンスに対するサブシーケンスマッチングのために下記のような２種類の定理を提示して使用した。
【００２１】
＜定理１＞
同一の長さのシーケンスＳとＱとを各々ｐ個のディスジョイントウィンドウＳi とｑi （１≦ｉ≦ｐ）とに分割した時、シーケンスＳとＱとがεマッチすると、少なくとも一つ以上の（ｓi ，ｑi ）対がε／√ｐマッチする
【００２２】
＜定理２＞
同一の長さのシーケンスＳとＱとがεマッチすると、Ｓ［ｉ：ｊ］，Ｑ［ｉ：ｊ］のいかなるサブシーケンス対もεマッチする。
【００２３】
前記＜定理１＞と＜定理２＞とを使用してＦＲＭは質問シーケンスをｐ個のディスジョイントウィンドウに分割し、各ウィンドウをｆ次元の点に変換する。そして、変換した点とε／√ｐとを使用して範囲質問を構成し、多次元索引を検索して候補集合を求める。その後、データベースからデータシーケンスを読み込んでＬｅｎ（Ｑ）次元距離計算により候補集合に含まれる錯誤解答を除去するための後処理過程を行なう。
【００２４】
前記サブシーケンスマッチングにおいて索引検索結果から求めた候補集合に錯誤解答がより多く含まれれば、後処理過程のディスクアクセス（データベースが記憶されているハードディスクへのアクセス）及びＣＰＵ演算もより増加し、その結果、性能が大きく低下するため、これを防止するためには錯誤解答を削減させなければならない。前記ＦＲＭにおいて索引検索結果から求めた候補集合に錯誤解答が含まれる最大の原因は個別点を多次元索引に直接保存せずに、多数個の点を含むＭＢＲを構成してＭＢＲのみを索引に保存するためである。即ち、同一の範囲質問に対して個別点を保存した時は候補にならないサブシーケンスが発生し、ＭＢＲのみを構成して保存した時は候補になる場合が多数発生するためである。
【００２５】
【発明が解決しようとする課題】
しかし、ＦＲＭにおいて個別点を多次元索引に直接保存する場合、全てのデータシーケンスの長さの総計程度の多数のｆ次元点が生じる。この結果、本来のデータシーケンスの記憶空間よりも約ｆ倍多い記憶空間が必要になる。また、これを保存する多次元索引の高さが大きくなって性能が大きく低下する（［参考文献２] ）。従って、ＦＲＭではＭＢＲを構成して保存するので、個別点を索引に直接保存し、これを使用して点と点とを比較して錯誤解答を削減する効果、即ち、「点濾過効果(point-filtering effect)」を得ることができなくなる。この結果、錯誤解答が大きく増加し、性能が大きく低下するという問題点がある。
【００２６】
【課題を解決するための手段】
本発明は、前記のような従来技術の問題点を解決するために案出したものであり、その目的はデータシーケンスをディスジョイントウィンドウに分割し、質問シーケンスをスライディングウィンドウに分割するという通常とは逆のウィンドウ構成を利用したデュアルマッチ(Dual Match:Duality-based subsequence Matching) 方法を使用することによって、錯誤解答を大きく削減し、性能を改善した時系列データベースにおけるサブシーケンスマッチング方法を提供することにある。
【００２７】
また、本発明の他の目的は個別点を索引に直接保存し、これにより点濾過効果を得ることによって、錯誤解答を顕著に削減して性能を大きく向上させた時系列データベースにおけるサブシーケンスマッチング方法を提供することにある。
【００２８】
また、本発明の更に他の目的は索引構成過程でＣＰＵオーバーヘッドの多くの部分を占める特性抽出関数の使用を削減することによって迅速に索引を構成できる時系列データベースにおけるサブシーケンスマッチング方法を提供することにある。
【００２９】
前記のような目的を達成するための本発明の第１の特徴によれば、データシーケンスを時系列データベースとして記憶した第１の記憶手段と、該第１の記憶手段が記憶しているデータシーケンスを一時記憶する第２の記憶手段と、前記第１及び第２の記憶手段にアクセス可能な制御手段とを備えたコンピュータシステムを使用してサブシーケンスマッチングを行なうサブシーケンスマッチング方法において、前記制御手段が、前記第１の記憶手段からデータシーケンスを読み出して前記第２の記憶手段に一時記憶させる第１の処理と、前記第２の記憶手段に一時記憶させたデータシーケンスをディスジョイントウィンドウに分割する第２の処理と、与えられた質問シーケンスをスライディングウィンドウに分割する第３の処理と、前記第１の記憶手段へのアクセス回数及びサブシーケンスマッチングに必要な距離計算の回数を削減するために、前記第２の記憶手段に一時記憶させたデータシーケンスを分割したディスジョイントウィンドウに対して、前記質問シーケンスを分割したスライディングウィンドウのサブシーケンスマッチングを行なう第４の処理とを実行する時系列データベースにおけるサブシーケンスマッチング方法を提供する。
【００３０】
この時、本発明の付加的な特徴によれば、前記第４の処理においては、前記制御手段が、データシーケンスを分割したディスジョイントウィンドウを表わす個別点を特徴抽出関数を用いて変換する処理と、変換した個別点を前記第１の記憶手段に索引として直接記憶させる処理と、質問シーケンスを分割したスライディングウィンドウを表わす個別点を特徴抽出関数を用いて変換する処理と、変換した個別点を範囲質問に直接使用する処理とを更に実行する。
【００３１】
この時、範囲質問の回数を削減するために、前記制御手段が、多数個の点を含む最小包囲四角形（ＭＢＲ）を構成して質問することにより候補集合を求める処理を更に実行することが望ましい。
【００３２】
なお、本発明の上述した特徴によれば、索引構成に必要な特性抽出関数の使用を削減して迅速に索引を構成することも可能になる。
【００３３】
一方、前記のような目的を達成するための本発明の第２の特徴によれば、第１の特徴において、前記制御手段がサブシーケンスマッチングを行なうための多次元索引を構成する索引構成処理のために、前記制御手段が、一つのｆ次元索引を生成して初期化する第５の処理と、前記第２の処理でデータシーケンスを分割したディスジョイントウィンドウを特性抽出関数を用いてｆ次元の点に変換する第６の処理と、前記第６の処理で変換した点と、この点に変換されたウィンドウが含まれるデータシーケンスの識別子及び開始位置とでレコードを構成する第７の処理と、前記第７の処理で構成したレコードを前記第１の処理で初期化したｆ次元索引に挿入する第８の処理と、前記第２の処理で分割された全てのディスジョイントウィンドウに対して前記第６及び第７の処理を反復する第９の処理と、前記第１の記憶手段から次に読み込むべきデータシーケンスの有無を確認する第１０の処理と、前記第１０の処理において、次に読み込むべきデータシーケンスがないと判断した場合は索引構成を終了し、次に読み込むべきデータシーケンスがあると判断した場合は次に読み込むべきデータシーケンスを読み込んだ後に前記第３の処理へ戻る第１１の処理とを更に実行する時系列データベースにおけるサブシーケンスマッチング方法を提供する。
【００３４】
また、前記のような目的を達成するための本発明の第３の特徴によれば、第１の特徴において、前記第１の記憶手段が更に多次元索引を記憶しており、ユーザが提示した質問シーケンスと類似したサブシーケンスを前記制御手段が探索するサブシーケンスマッチング処理のために、前記制御手段が、サブシーケンスに含まれる最小ディスジョイントウィンドウの個数を求める第１２の処理と、前記第３の処理で分割したスライディングウィンドウを特性抽出関数を用いてｆ次元の点に変換する第１３の処理と、前記第１３の処理で変換した点と、前記第１２の処理で求めた最小ディスジョイントウィンドウの個数と、ユーザが提示した許容値とを用いて範囲質問を構成する第１４の処理と、前記第１４の処理で構成した範囲質問を用いて多次元索引を検索し、検索結果に基づいて候補集合を構成する第１５の処理と、候補集合に含まれる候補サブシーケンスを前記第１の記憶手段から前記第２の記憶手段に読み込む第１６の処理と、前記第１６の処理で読み込んだ候補サブシーケンスと質問シーケンスとの間の距離計算を行うことにより、候補集合に含まれる全ての候補サブシーケンスに対して錯誤解答であるか否かを確認する第１７の処理とを更に実行する時系列データベースにおけるサブシーケンスマッチング方法を提供する。
【００３５】
また、前記のような目的を達成するための本発明の第４の特徴によれば、第１の特徴において、前記第１の記憶手段は更に多次元索引を記憶しており、ユーザが提示した質問シーケンスと類似したサブシーケンスを前記制御手段が探索する際に、範囲質問の回数を削減するためのサブシーケンスマッチング処理のために、前記制御手段が、サブシーケンスに含まれる最小ディスジョイントウィンドウの個数を求める第１８の処理と、前記第３の処理で分割した各スライディングウィンドウを特性抽出関数を用いてｆ次元の点に変換した後、多数個の点を含む最小包囲四角形（ＭＢＲ）を構成する第１９の処理と、前記第１９の処理で構成した最小包囲四角形（ＭＢＲ）と、前記第１８の処理で求めた最小ディスジョイントウィンドウの個数と、ユーザが提示した許容値とを用いて範囲質問を構成する第２０の処理と、前記第２０の処理で構成した範囲質問を用いて前記第１の記憶手段が記憶している多次元索引を検索する第２１の処理と、前記第２０の処理で範囲質問の構成に用いた最小包囲四角形（ＭＢＲ）に含まれる各点と前記第２１の処理での検索結果で探索した各点との間の距離計算を行うことにより、候補集合を構成する第２２の処理と、前記候補集合に含まれる候補サブシーケンスを前記第２の記憶手段に読み込む第２３の処理と、前記第２３の処理で前記第２の記憶手段に読み込んだ候補サブシーケンスと質問シーケンスとの間の距離計算を行なうことにより、候補集合に含まれる全ての候補サブシーケンスに対して錯誤解答であるか否かを確認する第２４の処理とを更に実行する時系列データベースにおけるサブシーケンスマッチング方法を提供する。
【００３６】
本発明の詳述した目的と種々の長所はこの技術分野に熟練した人々により、添付された図面を参照して後述される本発明の望ましい実施の形態からより明確になることであろう。
【００３７】
前記のように本発明のサブシーケンスマッチング方法はデータシーケンスをディスジョイントウィンドウに分割し、質問シーケンスをスライディングウィンドウに分割するデュアルマッチ方法を使用するが、従来技術のＦＲＭでは本発明とは逆にデータシーケンスをスライディングウィンドウに分割し、質問シーケンスをディスジョイントウィンドウに分割する方法を使用する。この結果、本発明のデュアルマッチ方法によるサブシーケンスマッチング方法は従来技術において発生する多くの錯誤解答を除去して性能を向上させることができるようになる。
【００３８】
従来技術のＦＲＭは索引を保存するために必要な記憶空間を削減するために、ウィンドウが変換された個別点に代えて、多数個の点を含む最小包囲四角形（ＭＢＲ）のみを保存することに起因して多くの錯誤解答が発生するが、本発明のデュアルマッチ方法によるサブシーケンスマッチング方法では従来技術のＦＲＭと同様の大きさの記憶空間に個別点を索引に直接保存することによって、この問題を解決している。
【００３９】
また、本発明では上記の通りに個別点を索引に直接保存し、保存された個別点を使用して点と点とを直接比較することによって錯誤解答を削減する点濾過効果を得ることができる。
【００４０】
【発明の実施の形態】
以下、本発明のデュアルマッチ方法によるサブシーケンスマッチング方法が錯誤棄却を発生せずに、サブシーケンスマッチングを正しく遂行することを証明するための理論的根拠を詳細に説明する。
【００４１】
まず、本発明のデュアルマッチ方法によるサブシーケンスマッチング方法を説明するために用語を定義する。
シーケンスＳを決められたディスジョイントウィンドウに分割した時、これらのうちサブシーケンスＳ［ｉ：ｊ］に含まれるディスジョイントウィンドウをＳ［ｉ：ｊ］の「包囲ウィンドウ」と定義する。そして、長さＬである全てのサブシーケンスの包囲ウィンドウの個数のうち、最小値を長さＬであるサブシーケンスの「最小包囲ウィンドウ個数」と定義し、これをｐで表す。長さＬであるサブシーケンスの最小包囲ウィンドウ個数がｐであるということは、長さＬである全てのサブシーケンスはその位置に関係なく包囲ウィンドウの個数が、ｐ以上であることを意味する。最小包囲ウィンドウ個数は下記の＜定理３＞を利用して求めることができる。
【００４２】
＜定理３＞
シーケンスＳを大きさωであるディスジョイントウィンドウに分割した時、長さＬであるＳのサブシーケンスの最小包囲ウィンドウ個数は「［（Ｌ＋１）／ω］−１」である。
【００４３】
前記＜定理３＞によれば、長さＬｅｎ（Ｑ）のＳのサブシーケンスは「［（ｌｅｎ（Ｑ）＋１）／ω］−１」個以上のディスジョイントウィンドウを含む。この時、前記Ｑは質問シーケンスを意味する。そして、デュアルマッチ方法は下記の＜定理４＞に基づいて錯誤棄却の発生無しに類似サブシーケンスの候補集合を求めることができる。
【００４４】
＜定理４＞
データシーケンスＳを大きさωであるディスジョイントウィンドウに分割し、質問シーケンスＱを同一の大きさのスライディングウィンドウに分割した時、長さＬｅｎ（Ｑ）のＳのサブシーケンスＳ［ｉ：ｊ］とＱとがεマッチすると、少なくとも１つ以上のディスジョイントウィンドウＳ［ｉ＋ｋ：ｉ＋ｋ＋ω−１］（０≦ｋ≦Ｌｅｎ（Ｑ）−ω）とスライディングウィンドウＱ［ｋ：ｋ＋ω−１］とがε／√ｐマッチする。ここで、ｐは＜定理３＞により求められるＬｅｎ（Ｑ）のサブシーケンスの最小包囲ウィンドウ個数である。
【００４５】
前記＜定理４＞は図２を利用して次の通りに証明することができる。
図２で質問シーケンスＱとサブシーケンスＳ［ｉ：ｊ］とがεマッチするとする。この時、最小包囲ウィンドウ個数がｐであるので、Ｓ［ｉ：ｊ］はｐ個以上のディスジョイントウィンドウを含む。図２でＳ［ｉ：ｊ］はｐ個のディスジョイントウィンドウＳ1 ，．．．，Ｓp を含んでおり、これらのディスジョイントウィンドウの前後にＳh （ｈはheadを意味する）とＳt （ｔはtailを意味する）のサブシーケンスを含む。結局、Ｓ［ｉ：ｊ］は、Ｓh ，Ｓ1 ，．．．，Ｓp ，Ｓt のように表すことができる。
【００４６】
同様の方法で、質問シーケンスＱはｑh ，ｑ1 ，．．．，ｑp ，ｑt のように表すことができる。このように表した時、Ｓ［ｉ：ｊ］とＱとがεマッチすると、＜定理２＞によってＳ1 ，．．．，Ｓp とｑ1 ，．．．，ｑp とがεマッチすることになる。そして、再び＜定理１＞によってＳ1 ，．．．，Ｓp とｑ1 ，．．．，ｑp とがεマッチすると、最小限一つのウィンドウ対Ｓk ，ｑk がε／√ｐマッチする。結局、Ｓ［ｉ：ｊ］とＱとがεマッチすると、Ｓ［ｉ：ｊ］は最小包囲ウィンドウ個数（＝ｐ）以上のディスジョイントウィンドウを含んでおり、このうち最小限一つのディスジョイントウィンドウＳk とＱのスライディングウィンドウｑk とがε／√ｐマッチする。
【００４７】
質問時には、質問シーケンスＱをスライディングウィンドウに分割するので、これらの内には＜定理４＞のウィンドウｑk が含まれている。前記＜定理４＞によって、データシーケンスを分割したディスジョイントウィンドウと質問シーケンスを分割した任意のスライディングウィンドウとがε／√ｐマッチする時、即ち、＜定理４＞の必要条件が満足される時、当該ディスジョイントウィンドウを含むサブシーケンスにより候補集合を構成すれば錯誤棄却の発生無しに全ての類似サブシーケンスを探索することができる。
【００４８】
本発明のデュアルマッチ方法によるサブシーケンスマッチング方法の最大ウィンドウ大きさは下記の＜定理５＞を使用して求めることができる。
【００４９】
＜定理５＞
与えられた最小質問シーケンス長さをＭｉｎ（Ｑ）とすると、デュアルマッチ方法での最大ウィンドウ大きさは、「［（Ｍｉｎ（Ｑ）＋１）／２］」である。
【００５０】
以下、本発明による望ましい一実施の形態を添付図面を参照して詳細に説明する。
【００５１】
本発明のデュアルマッチ方法によるサブシーケンスマッチング方法は、索引構成とサブシーケンスマッチングとの二つの過程からなる。この時、時系列データの記憶及び管理が可能で多次元索引構造を支援するデータベース管理システム機能が必要である。
【００５２】
本発明では、効率的なサブシーケンスマッチングを遂行するためには、図３に示されているシステムが必要である。図３において、１０はコンピュータのメモリ、１５はコンピュータのＣＰＵである。この時、前記メモリ１０にはいずれもソフトウェアとしてのデータベース管理システム２０及びサブシーケンスマッチングシステム２５とが具備されるが、本発明のデュアルマッチ方法によるサブシーケンスマッチング方法は前記サブシーケンスマッチングシステム２５で具現される。前記データベース管理システム２０はデータベース記憶装置３５に保存された時系列データベース４０と多次元索引４５とを管理するソフトウェアである。また、前記サブシーケンスマッチングシステム２５はデータベース管理システム２０を通じて時系列データベース４０と多次元索引４５とをアクセスして使用するソフトウェアである。
【００５３】
デュアルマッチ方法での索引構成過程においては、時系列データベース４０に保存されているデータシーケンスを入力としてサブシーケンスマッチングに用いる多次元索引４５を構成するが、図４は索引構成過程のアルゴリズムを表す。
【００５４】
図４を参照すれば、第１ステップＳ３０１では、一つのｆ次元索引を生成して初期化する。第２ステップＳ３０２では、時系列データベース４０から一つのデータシーケンスをメモリ１０に読み込んで現在のシーケンスとする。第３ステップＳ３０３では、第２ステップＳ３０２または後述する第８ステップＳ３０８で読み込んだデータシーケンスをディスジョイントウィンドウに分割する。その後、第４ステップＳ３０４では、各ディスジョイントウィンドウをｆ次元の点に変換する。
【００５５】
第５ステップＳ３０５では、ウィンドウを変換した点と、当該ウィンドウ（点に変換されたウィンドウ）が含まれるデータシーケンスの識別子と、このデータシーケンスにおいて当該ウィンドウの開始位置とでレコードを構成する。第６ステップＳ３０６では、ディスジョイントウィンドウを変換した点をキーとして第５ステップＳ３０５で構成したレコードを第１ステップＳ３０１で構成した多次元索引４５に挿入する。このように第３ステップ（Ｓ３０３) から第６ステップＳ３０６までを反復して一つのディスジョイントウィンドウに対する索引構成を遂行する。
【００５６】
第７ステップＳ３０７では、時系列データベース４０から次に読み込むデータシーケンスがあるか否かを確認する。第７ステップＳ３０７での確認の結果、次に読み込むデータシーケンスがある場合は、第８ステップＳ３０８においてこのデータシーケンスを読み込んだ後、第３ステップＳ３０３に戻って索引構成を続ける。しかし、第７ステップＳ３０７での確認の結果、これ以上読み込むデータシーケンスがない場合は、全てのデータシーケンスに対する索引構成が遂行されたので、索引構成過程を終了する。
【００５７】
一方、サブシーケンスマッチング過程では質問シーケンスｑと許容値εとを入力とし、質問シーケンスｑと類似したサブシーケンスを探索する作業を行なう。図５はサブシーケンスマッチング過程のアルゴリズムを表す。
【００５８】
図５を参照すれば、第１ステップＳ５０１では、＜定理３＞により長さＬｅｎ（Ｑ）のサブシーケンスに含まれる最小ディスジョイントウィンドウ個数「ｐ＝「Ｌｅｎ（Ｑ）＋１／ω」−１」を求める。第２ステップＳ５０２では、質問シーケンスをスライディングウィンドウに分割して現在のシーケンスとする。次に各スライディングウィンドウに対して次の第３ステップＳ５０３から第５ステップＳ５０５までを反復する。第３ステップＳ５０３では、特性抽出関数を用いてスライディングウィンドウをｆ次元の点に変換する。第４ステップＳ５０４では、スライディングウィンドウを変換した点とε／√ｐとで範囲質問を構成して多次元索引４５を検索し、スライディングウィンドウを変換した点とε／√ｐ距離内にある全ての点とを捜し出す。
【００５９】
その後、第５ステップＳ５０５では、スライディングウィンドウに対する検索結果を用いて候補集合を構成するが、検索に用いた点がｉ番目のスライディングウィンドウを変換した点であり、検索結果で捜し出した点がデータシーケンスＳのｊ番目のディスジョイントウィンドウであれば、データシーケンスＳの（ｊ−ｉ）番目のエントリーから始まるサブシーケンスを候補集合に含ませる。第６ステップＳ５０６では、現在のウィンドウが最後のスライディングウィンドウであるか否かを確認する。第６ステップＳ５０６での確認の結果、最後のスライディングウィンドウではない場合は、第７ステップＳ５０７において次のスライディングウィンドウを現在のスライディングウィンドウとして第３ステップＳ５０３に戻って検索をを続ける。しかし、第６ステップＳ５０６での確認の結果、最後のスライディングウィンドウであった場合は、全てのスライディングウィンドウに対する検索が遂行されたので、検索過程を終了する。このように、第３ステップＳ５０３から第５ステップＳ５０５を全てのスライディングウィンドウに対して反復して候補集合を求める。
【００６０】
上記の過程により候補集合が求められると、候補集合に含まれる各候補サブシーケンスに対して第８ステップＳ５０８を行なう。第８ステップＳ５０８では、各候補サブシーケンスを時系列データベース４０からメモリ１０に読み込み、読み込んだ候補サブシーケンスと質問シーケンスとのＬｅｎ（Ｑ）次元距離を計算し、その距離がεより大きければ錯誤解答であるので解答から除き、ε以下であれば類似サブシーケンスであるので解答として出力する。
【００６１】
前記のような索引構成過程とサブシーケンスマッチング過程とを用いれば従来技術のＦＲＭ方法では点濾過効果の欠如により発生する錯誤解答が本発明では現れないようになる。これは索引構成過程においてデータシーケンスを変換した個別点を時系列データベース４０の多次元索引４５に直接保存し、サブシーケンスマッチング過程において質問シーケンスを変換した個別点に質問するためである。即ち、索引構成において個別点をＣＰＵ１５が多次元索引４５に直接記憶させると共に検索に直接使用することによって点濾過効果を得ることができ、これにより錯誤解答を大きく削減することができる。このように錯誤解答を削減することによってその分だけ候補個数も大きく削減され、ディスクアクセス、即ちデータベース記憶装置３５へのアクセスとＬｅｎ（Ｑ）次元距離計算とを削減して結局性能を向上させることができる。
【００６２】
前述した、質問シーケンスをスライディングウィンドウに分割し、これを変換した個別点各々に対して範囲質問を行なうために生じ得る性能低下の問題点を解決するために、本発明では下記のように範囲質問の回数を削減する改善されたサブシーケンスマッチング過程を行うことができる。
【００６３】
改善されたサブシーケンスマッチング過程においても質問シーケンスと許容値とを入力とし、類似サブシーケンスを探索する作業を行なうが、図６は改善されたサブシーケンスマッチング過程のアルゴリズムを表す。
【００６４】
図６を参照すれば、第１ステップＳ６０１では、＜定理３＞により長さＬｅｎ（Ｑ）のサブシーケンスに含まれる最小ディスジョイントウィンドウ個数「ｐ＝［（Ｌｅｎ（Ｑ）＋１）／ω］−１」を求める。第２ステップ（Ｓ６０２) では、質問シーケンスＱをスライディングウィンドウに分割した後、特性抽出関数を用いて各ウィンドウをｆ次元の点に変換し、このような点を多数個含むＭＢＲ（最小包囲四角形）を構成する。第３ステップ（Ｓ６０３）では最初のＭＢＲを現在のＭＢＲとする。
【００６５】
前記ＭＢＲを構成する方法としては、従来のＦＲＭ方法で用いたヒューリスティック方法、固定個数の点によりＭＢＲを構成する方法、そして全ての点を一つのＭＢＲに含ませる方法などがあるが、質問シーケンスが短い場合（ウィンドウ大きさの３〜４倍以下) には、一つのＭＢＲを構成することが効果的であり、質問シーケンスが長い場合（ウィンドウ大きさの５倍以上) には、多数個のＭＢＲを構成することが効果的であることを確認した。
【００６６】
その後、前記構成した各ＭＢＲに対して第４ステップＳ６０４から第５ステップＳ６０５までを反復する。第４ステップＳ６０４では、現在のＭＢＲとε／√ｐとで範囲質問を構成し、構成した範囲質問で多次元索引（ｆ次元索引）を検索してＭＢＲとε／√ｐ距離内にある全ての点を捜し出す。第５ステップＳ６０５では、現在のＭＢＲに含まれる各点と検索結果で捜し出した各点との距離計算により候補集合を構成する。
【００６７】
具体的には、現在のＭＢＲに含まれる一点が質問シーケンスＱのｉ番目のスライディングウィンドウを変換した点であり、検索結果で捜し出した一点がデータシーケンスＳのｊ番目のディスジョイントウィンドウであるとした時、二点間のＦ次元距離がε／√ｐ以下であれば、データシーケンスＳの（ｊ−ｉ）番目のエントリーから始まるサブシーケンスを候補集合に含ませる。第６ステップＳ６０６では、現在のＭＢＲが最後のＭＢＲであるか否かを確認する。第６ステップＳ６０６での確認の結果、最後のＭＢＲではない場合は、第７ステップＳ６０７において次のＭＢＲを現在のＭＢＲとして第４ステップＳ６０４に戻って検索をを続ける。しかし、第６ステップＳ６０６での確認の結果、最後のＭＢＲであった場合は、全てのＭＢＲに対する検索が遂行されたので、検索過程を終了する。このように第４ステップＳ６０４から第５ステップＳ６０５までを全てのＭＢＲに対して反復して候補集合を求める。候補集合が求められると、候補集合に含まれる各候補サブシーケンスに対して第８ステップＳ６０８を行なう。第８ステップＳ６０８では、候補サブシーケンスを時系列データベース４０からメモリ１０に読み込み、読み込んだ候補サブシーケンスと質問シーケンスとのＬｅｎ（Ｑ）次元距離を計算して、その距離がεより大きければ錯誤解答であるので解答から除き、ε以下であれば類似サブシーケンスであるので解答として出力する。
【００６８】
このように個別点の代わりにＭＢＲを構成して検索する改善されたサブシーケンスマッチング過程を用いれば、範囲質問の回数を点の個数からＭＢＲの個数へ削減することができ、しかも個別点を質問に直接用いるサブシーケンスマッチング過程と同一候補集合を求めることができる。これはＭＢＲにより検索した後に、ＭＢＲに含まれる各点と検索結果から得た各点との間の距離計算を行ない、二点間の距離がε／√ｐ以下である場合のみに、二点で構成されるサブシーケンスを候補集合に含ませる「索引水準濾過(index-level filtering) 」を行なうためである。即ち、ＭＢＲを構成して質問することによって追加的な候補サブシーケンスを発生することができるが、ＭＢＲに含まれる各点と検索結果から得た各点との間のｆ次元距離計算を遂行することによってディスクアクセスとＬｅｎ（Ｑ）次元距離計算以前に追加的な候補サブシーケンスを除去することができる。
【００６９】
このように改善されたサブシーケンスマッチング過程を用いることにより、従来技術のＦＲＭ方法に比べて、本発明では候補集合の大きさを削減して性能を向上させることができる。
【００７０】
本出願人による実験結果では、デュアルマッチ方法では従来のＦＲＭに比べて候補個数が最大１／９，０００まで削減し、性能が最大１６０倍まで大きく向上させた。また、デュアルマッチ方法は、データシーケンスをディスジョイントウィンドウに分割することにより、データシーケンスをスライディングウィンドウに分割する従来のＦＲＭに比べて索引構成が１４乃至２３０倍迅速になる特徴を有する。このような結果から、デュアルマッチ方法は、サブシーケンスマッチングの一般的な解決策として見なされている従来のＦＲＭを代替出来るものであることが判る。
【００７１】
【発明の効果】
以上に説明したように、本発明の時系列データベースにおけるサブシーケンスマッチング方法ではデュアルマッチ方法により、ウィンドウを構成する方法を通常とは逆にしてデータシーケンスをディスジョイントウィンドウに分割することにより索引に保存すべき（データベースに記憶すべき）点の個数を従来のＦＲＭの場合に比して１／ω（ω＞１００）に大きく削減して、個別点を索引に直接保存する（データベースに直接記憶する）ことができる。そして、質問シーケンスを分割したスライディングウィンドウを変換した個別点により多次元索引を検索する。従って、デュアルマッチ方法は、質問に用いられた点と索引に保存された点とを比較することによって、点濾過効果を得ることができ、これにより錯誤解答を大幅に削減して性能を大きく向上させることができる効果がある。
【００７２】
また、本発明でのデュアルマッチ方法は、データシーケンスをディスジョイントウィンドウに分割することにより索引構成過程における特性抽出関数の使用をＦＲＭの約１／ω（ω＞１００）以上に削減して、特性抽出関数の使用に必要なＣＰＵ演算の回数を大幅に削減し、従来のＦＲＭに比べて迅速に索引を構成できる効果がある。
【００７３】
以上では本発明を実施の形態によって詳細に説明したが、本発明は実施の形態によって限定されず、本発明が属する技術分野において通常の知識を有するものであれば本発明の思想と精神を離れることなく、本発明を修正または変更できるであろう。
【図面の簡単な説明】
【図１ａ】  シーケンスをスライディングウィンドウに分割する方法を示す例示図である。
【図１ｂ】  シーケンスをディスジョイントウィンドウに分割する方法を示す例示図である。
【図２】  ウィンドウを利用したサブシーケンス及び質問シーケンスの表現方法を示す例示図である。
【図３】  本発明によるサブシーケンスマッチング方法が具現されるシステムの概略的な構成を示す例示図である。
【図４】  本発明によるサブシーケンスマッチング方法で多次元索引を構成する索引構成アルゴリズムを示す図面である。
【図５】  本発明によるサブシーケンスマッチング方法で類似サブシーケンスを捜し出すサブシーケンスマッチングアルゴリズムを示す図面である。
【図６】  本発明によるサブシーケンスマッチング方法で類似サブシーケンスを探索するが、範囲質問回数を削減する改善されたサブシーケンスマッチングアルゴリズムを示す図面である。
【図１ａ】
0003648709.tif 000003
【図１ｂ】
0003648709.tif 000004
【図２】
0003648709.tif 000005
【図３】
0003648709.tif 000006
【図４】
0003648709.tif 000007
【図５】
0003648709.tif 000008
【図６】
0003648709.tif 000009