(57)【特許請求の範囲】
【請求項１】
時間経過に伴って生成されるデータである時系列データと、前記時系列データの特徴を示す情報である特徴情報と、を保持するストレージ装置と、
前記時系列データから複数の前記時系列データから構成される時系列データ群を抽出し、
前記時系列データ群に含まれる前記時系列データの値の時間経過に伴う推移の特徴を特徴量算出方法にて算出し、
特定のラベルに対応する推移パターンと前記算出した推移の特徴の類似度を算出し、
前記類似度に基づいて、前記特定のラベルを第一の特徴情報として前記時系列データ群と関連付けて前記ストレージ装置に記録する特徴情報生成部と、
前記ストレージ装置に記録された複数の前記第一の特徴情報を抽出し、
前記ラベル列が規則性を備えた場合には、新たなラベルを追加し、
同じラベルを記録した区間が複数ある場合に、前記特徴量算出方法とは異なる特徴量算出方法で該複数の区間に対して算出した特徴量が互いに異なる場合には、新たなラベルを追加することで、
前記抽出を行った前記複数の前記第一の特徴情報に基づく前記特徴情報である第二の特徴情報を生成し、前記第二の特徴情報を、前記抽出を行った前記第一の特徴情報に対応付けられて前記ストレージ装置に保持されている前記時系列データの少なくとも一部に対応付けて、前記ストレージ装置に記録する追加特徴情報生成部を
を備えるデータ処理装置と、
を有することを特徴とするデータ処理システム。
【請求項２】
請求項１に記載のデータ処理システムであって、
前記ストレージ装置は、
前記時系列データ群に含まれる前記時系列データの開始時刻、終了時刻を、前記時系列データ群について生成された前記第一の特徴情報と対応付けて保持し、
前記追加特徴情報生成部は、
２以上の前記第一の特徴情報と、当該２以上の前記第一の特徴情報にそれぞれ前記対応付けられた前記時系列データの開始時刻、終了時刻を前記ストレージ装置から抽出し、前記ストレージ装置から抽出した２以上の前記第一の特徴情報と、前記時系列データ生成時間情報と、に基づいて前記第二の特徴情報を生成することを特徴とするデータ処理システム。
【請求項３】
ストレージ装置に接続するデータ処理装置であって、
時間経過に伴って生成されるデータである時系列データを受信する時系列データ受信部と、
前記時系列データ受信部が受信した前記時系列データから複数の前記時系列データから構成される時系列データ群を抽出し、前記時系列データ群に含まれる前記時系列データの値の時間経過に伴う推移の特徴を特徴量算出方法にて算出し、特定のラベルに対応する推移パターンと前記算出した推移の特徴の類似度を算出し、前記類似度に基づいて、前記特定のラベルを第一の特徴情報として前記時系列データ群と関連付けて前記ストレージ装置に記録する特徴情報生成部と、
前記ストレージ装置に記録された複数の前記第一の特徴情報を抽出し、
前記ラベル列が規則性を備えた場合には、新たなラベルを追加し、
同じラベルを記録した区間が複数ある場合に、前記特徴量算出方法とは異なる特徴量算出方法で該複数の区間に対して算出した特徴量が互いに異なる場合には、新たなラベルを追加することで、
前記抽出を行った前記複数の前記第一の特徴情報に基づいて、前記抽出を行った前記第一の特徴情報に対応付けられている前記時系列データの少なくとも一部のデータ値の推移に関する特徴を示す情報である第二の特徴情報を生成し、前記第二の特徴情報を、前記抽出を行った前記第一の特徴情報に対応付けられて前記ストレージ装置に保持されている前記時系列データの少なくとも一部に対応付けて、前記ストレージ装置に記録する追加特徴情報生成部を、
を備えることを特徴とするデータ処理装置。
【請求項４】
請求項３に記載のデータ処理装置であって、
前記特徴情報生成部は、
前記時系列データ群に含まれる前記時系列データの開始時刻、終了時刻と、前記時系列データ群について生成された前記第一の特徴情報と、を対応付けて前記ストレージ装置に記録し、
前記追加特徴情報生成部は、
２以上の前記第一の特徴情報と、当該２以上の前記第一の特徴情報にそれぞれ前記対応付けられた前記時系列データの開始時刻、終了時刻を前記ストレージ装置から抽出し、前記ストレージ装置から抽出した２以上の前記第一の特徴情報と、前記時系列データ生成時間情報と、に基づいて前記第二の特徴情報を生成することを特徴とするデータ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データを処理する方法、及びその方法を実行するデータ処理システム、データ処理装置に係る。特に、時間の経過に伴い発生するデータである時系列データの時系列パターンを用いてデータの処理を行う技術に関する。
【背景技術】
【０００２】
ＲＦＩＤ（Ｒａｄｉｏ  Ｆｒｅｑｕｅｎｃｙ  ＩＤｅｎｔｉｆｉｃａｔｉｏｎ）やＧＰＳ（Ｇｌｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍ）などセンシング技術の発達に伴い、工場やオフィスなどの実世界から様々なセンサデータが取得可能となり、これらを事業に活用する事例が増加している。例えば、工場などのプラント機器や設備などからモータ回転数や圧力といった稼動情報を取得し、その値や変動により機器の異常や故障を事前に検知する機器予防保守などといった応用事例が実用段階になりつつある。
【０００３】
センサデータを活用するためには、データを分析しその動作特性を理解することが不可欠である。センサデータは、時間の経過に伴って発生する、いわゆる時系列データであることが特徴として挙げられ、動作特性を理解するためには時間に沿ったデータの変動やパターンを見出すことが重要である。その結果、センサデバイスから取得される機器や設備の特徴・傾向を利用して、業務に活用することが可能となる。
【０００４】
時系列データの分析には、データを蓄積し、蓄積したデータに対して様々な時系列データのパターンを試行錯誤的に検索する方法が取られる。ここで、工場のプラント機器における異常診断を例に挙げて、時系列データ検索を具体的に説明する。近年、プラント業界では機器にセンサを取り付けて設備監視や予防保全に活用する事例が増えつつある。一例として、エンジンに温度センサを取り付けて異常診断を行う例を考える。この温度センサから時々刻々と取得されたセンサデータは、随時、ハードディスク等の記憶装置に蓄積しておく。
【０００５】
工場のプラント機器における異常診断では、管理者は、センサから取得した時系列データを監視しており、何らかの異常が起こった時に、蓄積された過去の時系列データを参考に、その異常に対して早期対策が必要となる場合がある。この際に、大量のセンサデータに対する問合せを高速で行うことが求められる。大量のセンサデータに対する問合せの高速化の手法として、非特許文献１で開示されるような、時系列データを特定の時間幅で区切り、各区間に平均値などの集約特徴量を付与する手法が挙げられる。
【０００６】
例えば、前述の温度センサの例において、温度が１０００度以上となった時刻を問い合わせたい場合、集約特徴量を用いれば、最大値が１０００度未満の区間について元の時系列データにアクセスせずに問い合わせ対象から取り除くことができるため、問い合わせの高速化ができる。非特許文献１には、区間ごとに平均値を算出して、平均値に対応するアルファベットを割り振ることで、元のセンサデータにアクセスせずに、前記アルファベットに基づいてセンサデータに対する問合せを行い、問合せの高速化を図る手法が開示されている。
【０００７】
また、特許文献１には、区間ごとに集約特徴量を用いてラベル付けを行い、ラベル同士の規則性を発見する手法が開示されている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００６−３３８３７３号公報
【非特許文献】
【０００９】
【非特許文献１】「センサデータに対する問合せ高速化のための索引の実装」中島 沙季, お茶の水女子大学理学部情報科学科第17回卒業発表会要旨集, pp. 67-68
【発明の概要】
【発明が解決しようとする課題】
【００１０】
上述のような工場のプラント機器等における異常診断等において、管理者は、通常とは違う異常な時系列データのパターンを観察した時点で、蓄積された過去の時系列データから類似の時系列データのパターンである類似時系列パターンを探し出すことで、類似時系列パターンを異常に対する早期対策に役立てることができる。このような類似時系列パターンをはじめとする時系列データの検索では、例えばある時点におけるモータ回転数、温度、圧力等、の個々のセンサデータのセンサ値も重要であるが、それ以上に、データ系列から導き出されるセンサ値の推移（時系列パターン）が重要になる。従って、検索においても、個々のセンサ値に対して条件に合致するデータを１つずつ取り出すことよりも、特定の検索パターンとマッチするデータ系列を抽出することが重要となる。
【００１１】
上述したような従来技術を用いて、蓄積された時系列データに対する類似時系列パターンの検索を行う場合、非特許文献１で用いるような平均値等の集約特徴量のみでは類似する時系列パターンがある区間の絞り込みを十分に行うことができない。集約特徴量では、区間内のデータを1つの代表値として表すため、区間内の時系列パターンを表すことはできないからである。簡単な例として、最大値と最小値が同じである、単調増加の時系列パターンと、単調減少の時系列パターンを考える。この時、区間内の最大値・最小値・平均値は全て同じ値となるため、単調増加のパターンのみを検索したい場合でも、集約特徴量では双方の区間が、類似時系列パターンがある区間として検索されてしまう。このように、区間の絞り込みを十分に行うことができないと、必要のない（類似していない）データも含めて検索してしまい、検索性能の劣化という問題がある。
【００１２】
また、特許文献１で開示されるような技術では、単一又は複数センサ間において、同時に発現しやすい分類ラベルの組み合わせや、分類ラベルの発現しやすい順序などの規則性を発見するが、それを表示しているに過ぎない。つまり、発見した規則性を保存して、時系列パターンの検索に用いることは行っていないため、ラベル同士の規則性を用いて時系列データの検索の高速化を実現できないという問題がある。
【課題を解決するための手段】
【００１３】
上述した課題の少なくとも一の課題を解決するための本発明の一態様として、本発明によるデータ処理装置は、受信したデータの特徴を示す情報である特徴情報を生成し、前記特徴情報を、接続するストレージ装置中に保持された前記データと関連付けて前記ストレージ装置に記録する。
また、上述した課題の少なくとも一の課題を解決するための本発明の一態様として、本発明によるデータ処理装置は、前記ストレージ装置に保持された前記特徴情報に基づいて、前記ストレージ装置に保持された前記データに関する検索を行う。
また、上述した課題の少なくとも一の課題を解決するための本発明の一態様として、前記データは時間経過に伴って生成したデータであり、前記特徴情報は前記データの推移に関する特徴を示す。
さらに、上述した課題の少なくとも一の課題を解決するための本発明の一態様として、前記データ処理装置は、前記ストレージ装置に保持された複数の前記特徴情報を抽出し、当該抽出した複数の前記特徴情報に基づいて新たに特徴情報を生成する。
【発明の効果】
【００１４】
本発明の一態様によれば、蓄積されたデータから、所望のデータパターンを有するデータを高速に検索することが可能になる。
【図面の簡単な説明】
【００１５】
【図１】本発明が適用された時系列データ処理システムの一実施形態における簡略化されたシステム構成を示すブロック図である。
【図２】時系列データの例を示す概念図である。
【図３】時系列データテーブルの例を示す図である。
【図４】特徴量テーブルの例を示す図である。
【図５】特徴量算出方法テーブルの例を示す図である。
【図６】時系列データ蓄積プログラムと時系列データ検索プログラムの構成とデータフローの第一の例を示すブロック図である。
【図７】時系列データ書込部の処理を示すフローチャートである。
【図８】特徴量書込部の処理を示すフローチャートである。
【図９】時系列データに特徴量としてラベルを付与した例を示す図である。
【図１０】ラベルを付与したあとに、ラベルに基づいて特徴量の区間長を可変にする例を示す図である。
【図１１】時系列データと特徴量のラベルの例を示す図である。
【図１２】時系列データ蓄積プログラムと時系列データ検索プログラムの構成とデータフローの第二の例を示すブロック図である。
【図１３】特徴量算出方法による特徴量追加部の処理を示すフローチャートである。
【図１４】規則性発見による特徴量追加部の処理を示すフローチャートである。
【図１５】非類似性判定による特徴量追加部の処理を示すフローチャートである。
【図１６】規則性発見による特徴量追加の例を示す図である。
【図１７】非類似性判定による特徴量追加の例を示す図である。
【図１８】時系列データ検索プログラムの処理を示すフローチャートである。
【図１９】検索クエリの第一の例を示す図である。
【図２０】検索クエリのうち、ｗｈｅｒｅ_ｃｏｎｄｉｔｉｏｎ句で指定する検索条件の例を示した図である
【図２１】検索条件として、ラベル指定検索が与えられた時の特徴量検索処理のフローチャートである。
【図２２】検索条件として、時間指定類似検索が与えられた時の特徴量検索処理のフローチャートである。
【図２３】検索条件として、非類似検索が与えられた時の特徴量検索処理のフローチャートである。
【図２４】検索の概念の例を示す図である。
【図２５】本発明が適用された時系列データネットワークシステムの一実施形態におけるシステムの概要を示す図である。
【図２６】センサＩＤや特徴量の値に複数の値を持つ特徴量テーブルの例を示す図である。
【図２７】特徴量算出方法テーブルの例を示す図である。
【図２８】特徴量算出方法３の処理を示すフローチャートである。
【図２９】入力された時系列データがバッファに読み込まれる様子を示した図である。
【図３０】検索クエリの第二の例を示す図である。
【図３１】ラベルによる検索における検索クエリの結果表示画面の例を示す図である。
【図３２】ユーザから入力される特徴量テーブル更新コマンドの例を示す図である。
【図３３】特徴量更新処理例を示すフローチャートである。
【発明を実施するための形態】
【００１６】
図２５は、本発明が適用された時系列データネットワークシステムの一実施形態におけるシステムの概要を示すブロック図である。時系列データネットワークシステムは、センサ等のデータ発生装置２５０１、時系列データ処理装置１０１、ストレージ装置１０２、管理者ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）１０３、及びユーザが使用する端末であるクライアントＰＣ１０４を備え、ネットワーク２５０２、２５０３、２５０４を介して相互に接続される。ネットワークとしては、例えば、専用線やいわゆるインターネットなどの広域網、ＬＡＮなどのローカルなネットワークを用いて良い。
【００１７】
データ発生装置２５０１は、時間の経過に伴ってデータを発生するものをいう。例えば、プラントの設備や機器に取り付けられたセンサや、データセンタ内のサーバのログやパフォーマンスデータ（ＣＰＵやメモリ使用率等）、ＲＦＩＤ、自動車や列車等の車両のセンサ等が考えられるが、これに限定されるものではない。データ発生装置２５０１で発生した時系列データは、ネットワークを経由して時系列データ処理装置１０１に入力される。また、一度管理者ＰＣ１０３に入力し、管理者ＰＣ１０３において一定分蓄積した後時系列データ処理装置１０１に入力してもよい。時系列データ処理装置１０１では、入力された時系列データを処理した後、ストレージ装置１０２にデータとして保存する。ストレージ装置１０２は、時系列データ処理装置１０１と直接接続されていても良いし、又ネットワーク経由で接続されていても良い。クライアントＰＣは、ネットワーク２５０３を介してデータ発生装置２５０１からデータを受信し、受信したデータに関して、時系列データ処理装置１０１に対して検索等のリクエストをネットワーク２５０３経由で行う。
【００１８】
図１は、図２５にて説明した時系列データネットワークシステムの一実施形態に関して、特に時系列データ処理装置１０１、ストレージ装置１０２の構成をより詳細に示すブロック図である。なお、本実施形態において用いる時系列データとは、時間の経過に伴って連続的又は断続的に発生するデータを意味する。本実施形態の時系列データ処理システムは、時系列データ処理装置１０１、ストレージ装置１０２、管理者ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）１０３、及びクライアントＰＣ１０４を備える。
【００１９】
時系列データ処理装置１０１は、時系列データの蓄積と検索を行う装置である。時系列データ処理装置は、相互に接続されたメモリ１０５、プロセッサ１０６、ディスクインタフェース（Ｉ／Ｆ）１０７、入出力装置１０８を備え、ディスクＩ／Ｆ１０７を介してストレージ装置１０２と相互に接続される。また、管理者ＰＣＩ／Ｆ１１８を介して管理者ＰＣ１０３と接続され、クライアントＰＣＩ／Ｆ１１９を介してクライアントＰＣ１０４と接続されている。
【００２０】
メモリ１０５は、例えばＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）のような記憶媒体で構成される。入出力装置１０８は、例えばキーボードやマウス、液晶モニタなどの装置で構成される。
【００２１】
メモリ１０５には、時系列データ１１２の蓄積と特徴量の算出及び蓄積を行う時系列データ蓄積プログラム１１０と、クライアントＰＣから入力された検索クエリ１１３に基づいて時系列データの検索を行う時系列データ検索プログラム１１１が格納されており、時系列データ１１２を一時的に格納できる領域であるバッファ１１８を有している。本実施形態において、後述する時系列データ蓄積プログラム１１０及び時系列データ検索プログラム１１１の各処理は、プロセッサ１０６が、メモリ１０５に格納されたこれらのプログラムを実行することにより実現される。ただし、これらの処理は、その一部ないし全てを集積回路化するなどしてハードウェアで実現することもできる。
【００２２】
管理者ＰＣ１０３は、時系列データ処理装置１０１に対して、時系列データ１１２の格納指示や、データ管理に関する各種設定を行う運用管理者の端末である。クライアントＰＣ１０４は、時系列データ処理装置１０１に対して、検索を実行するユーザの端末であり、検索要求を示す検索クエリ１１３を送信し、検索結果１１４を受信する。管理者ＰＣ１０３、クライアントＰＣ１０４は、図示していないが、プロセッサ、メモリ、入出力装置などを有している。また、管理者ＰＣ１０３とクライアントＰＣ１０４は同一でもかまわない。
【００２３】
ストレージ装置１０２は、時系列データを格納する時系列データテーブル１１７、時系列データの特徴量を格納する特徴量テーブル１１６、及び特徴量算出方法を格納する特徴量算出方法テーブル１１５を備える。本実施形態では、処理の対象となるデータを永続的に保持するストレージ装置としてストレージ装置１０２を使用するものとして説明するが、記憶媒体としてフラッシュメモリを用いた半導体ディスク装置や、光ディスク装置など、永続的にデータを保持することのできる記憶装置であればどのようなものをストレージ装置として用いてもかまわない。また、テーブル１１５〜１１７は、例えばリレーショナルデータベースのテーブルとして説明するが、ファイルシステム上に格納された１ないし複数のファイルとこれらのファイルにアクセスするためのプログラムなど、テーブルとして表現できる手法であれば、どのようなものをテーブルとして用いても構わない。
【００２４】
図２は、時系列データ１１２の例を示す図である。時系列データは、センシングデバイスや設備・機器などから取得した計測値であるセンサ値２０４（例えば回転数・圧力などの稼働情報や温度・湿度などの物理量）、発生元のセンサを表すセンサＩＤ２０３、及びその発生時刻２０２から成る。図２では、１行目２０１で２行目以降に読み込む行の各列の意味を表す。ここでは、センサ値の発生時刻２０２、センサ値２０４をセンサ１、センサ２、センサ３……という順で入力される。この例ではセンサ値は１秒ごとに取得され（発生時刻２０２が１秒刻み）、センサＩＤ２０３は順に１、２、３……と付けられており、カンマと改行で区切られたＣＳＶ形式で表示されている。例えば、２０１０年９月１日０時０分０秒にセンサＩＤ１で取得されたセンサ値は１２３である。なお、本実施形態では、時系列データ１１２は各種計測データとして説明するが、時間経過に伴って発生するデータであればこれに限定されない。この例のように定期的に発生しなくても構わない。例えば、株価データ等も本発明の対象となりうる。
【００２５】
図３は、時系列データテーブル１１７の例を示す図である。時系列データテーブル１１７は時系列データ１１２を蓄積するためのテーブルであり、センサデータ２０１の発生時刻２０２、センサＩＤ２０３、センサ値２０４から構成される。１行に１つ又は複数のセンサデータ２０１のセンサ値２０４がまとめて格納されている。このまとめる単位として、管理者ＰＣから設定される固定値が用いられる。図の例では、時系列データを１日ごとに分割し、この分割された時間的な区間のセンサ値２０４をまとめて格納されている。１行目では、２０１０年９月１日０時０分０秒から同日２３時５９分５９秒までに、センサＩＤ２０３が１のセンサで計測された値を格納されている。テーブルの構成はこの図の例に限らず、入力された時系列データ１１２の発生時刻２０２、センサＩＤ２０３、センサ値２０４を格納できる構成であればよい。また、格納時にデータを圧縮することも可能である。データを圧縮することで、データ量を減らし、ストレージのコスト等を削減することができる。
【００２６】
図４は、特徴量テーブル１１６の例を示す図である。特徴量テーブル１１６は、時系列データを高速検索するための特徴量を格納するためのテーブルであり、各特徴量を付与した区間の開始時刻４０１、終了時刻４０２、センサＩＤ２０３、特徴量算出方法ＩＤ４０４、特徴量４０７を含んでいる。特徴量４０７は、時系列データテーブル１１７に時系列データを格納するときの時間的な区間とは独立した時間的な区間に対して付与され、その区間幅も可変であるため、開始時刻４０１と終了時刻４０２で指定する。特徴量テーブル１１６における特徴量算出方法ＩＤ４０４は、後述する特徴量算出方法テーブル１１５内の特徴量算出方法ＩＤ５０１を指定する。特徴量４０７は、開始時刻４０１から終了時刻４０２までの区間の時系列データに対して、特徴量算出方法ＩＤ４０４で指定される特徴量算出方法を適用して求めた特徴量を格納する。特徴量４０７は、ラベル４０５と値４０６の少なくとも何れか一方から構成される。特徴量算出方法によって、ラベルのみを持つ特徴量、値のみを持つ特徴量、ラベルと値の双方を持つ特徴量がある。
【００２７】
特徴量とは、特定の区間の時系列データの特徴を示す情報である。特徴量の１つの例は集約特徴量であり、その区間の最大値、最小値や平均値である。本実施例では、特徴量はラベルと値から構成されるが、最大値のような集約特徴量は値のみを持つ特徴量として扱われる。また、ラベルを特徴量とする一例として、時系列データのパターンを表すラベルがある。ラベルには、文字や数値、記号等を用い、時系列データのパターンが類似している区間に同じラベルを特徴量として付与する。時系列データは時間の経過に伴った値の列であり、時系列データのパターン（時系列パターン）とは時間経過に伴った時系列データの値の推移の仕方であり、時系列データのパターンが類似しているとは、時系列データの値の推移の仕方が類似していることをいう。
【００２８】
このように、集約特徴量と違い、ある区間の時系列データを１つの値に集約するのではなく、パターンとして類似の時系列データに同じラベルを付加する。また、ラベルと値との組み合わせを特徴量とする例として、パターンを表すラベルと、その類似度を値とする特徴量が例にある。ここでいう類似度とは、その区間の時系列パターンが、同じラベルが付加されたその他の区間の時系列パターンに、どの程度類似しているかを表す値である。具体的な例は後述する。なお、図４では特徴量テーブル１１６の一例として、センサＩＤ２０３が１であるセンサデータに関する特徴量テーブルを示したが、１つの特徴量テーブルに異なるセンサＩＤのセンサデータに関する特徴量４０７を格納することも可能である。
【００２９】
また、特徴量テーブル１１６の変形例として、センサＩＤ２０３や特徴量の値４０６が、複数の値をとる場合もありえる。図２６に特徴量テーブルの変形例を、図２７に対応する特徴量算出方法テーブルを示す。センサＩＤ２０３が複数の場合の例として、２つのセンサの値の差分を用いた特徴量算出方法等が考えられる。例えば、センサ１とセンサ３の値は正常時はほぼ同じだということが分かっているとすると、センサ１とセンサ３の値の差の最大値（図２７の２７０１）を特徴量として格納しておく（図２６の２６０１）。これによって、２つのセンサの差が大きくなる異常な区間、といった複数のセンサに関わる検索を高速にできる。また、特徴量の値として、複数の値をもつベクトル値とする特徴量算出方法も可能である。例えば、時系列データの最大値と最小値の組（図２７の２７０２）を特徴量として格納しておく（図２６の２６０２）。これによって、最大値と最小値の差が一定以上の区間の検索、といった複数の値に関わる検索を高速にできる。また、最大値と最小値をそれぞれ別の特徴量として格納するよりも特徴量テーブルのサイズを小さくできる。
【００３０】
本実施例では、１つの特徴量テーブル１１６に複数の特徴量算出方法ＩＤ４０４による特徴量４０７を格納することで、特徴量算出方法の変更に伴うテーブルの管理は必要無くなり、特徴量テーブルの管理を容易にすることができる。ユーザやシステムが適宜必要に応じて特徴量算出方法を追加・削除しても、その特徴量算出方法に該当する特徴量テーブルを新たに追加・削除する必要が無いためである。ただし、特徴量テーブル１１６を特徴量算出方法毎に分けて作成することも可能である。
【００３１】
図５は、特徴量算出方法テーブル１１５の例を示す図である。特徴量算出方法テーブル１１５は、特徴量算出方法ＩＤ５０１と、特徴量算出方法５０８から構成される。特徴量算出方法５０８は、ある区間の時系列データ（値の配列）またはラベルの集合に対する特徴量の算出方法と（=>の左側）とそれによって算出される特徴量（=>の右側）を含む。図５の１〜４では、ｆｌｏａｔ型の値の配列ｄａｔａに対する特徴量の算出方法やラベル同士の関係による特徴量の算出方法が示されている。例えば、特徴量算出方法１と２では、与えられた区間の時系列データのうち、それぞれ最小値と最大値を特徴量として算出する（５０２，５０３）。また、特徴量算出方法５と６のように、時系列データではなく、ラベルの関係性（=>の右側）によって算出される特徴量（=>の右側）もありえる（５０６，５０７）。各特徴量算出方法の詳細については後述する。なお、説明のために図５では特徴量算出方法５０８を自然言語で記述しているが、実際には、あらかじめ用意された、又はユーザによって個別に定義されたプログラムを呼び出すなどして特徴量算出を行う。
【００３２】
特徴量算出方法テーブル１１５は、運用開始時に管理者ＰＣ１０３から設定される。そして、それぞれの特徴量算出方法５０８はプログラムとしてストレージ装置内の特徴量算出方法テーブル１１５に保持され、時系列データ蓄積プログラム１１０に基づいてプロセッサ１０６が特徴量算出方法５０８を実行することで特徴量４０７を算出する。また、運用中に、ユーザは時系列データを分析しながら、試行錯誤的に検討・検証の上変更をしていくことになる場合もある。特徴量算出方法テーブルを適宜必要に応じて変更し、特徴量算出方法を追加・削除することで、その運用にあった特徴量テーブルが作成されるようになる。特徴量算出方法の指定方法としては、ユーザが独自で個別に作成・指定する以外にも、システム側で、どの業務にも利用出来る汎用的な算出方法や業務業種に特化した算出方法のセットをあらかじめ用意しておき、指定する方法などが考えられる。また、後述するように、ユーザが指定する特徴量算出方法以外にも、時系列データ処理システムが特徴量算出方法を追加することも可能である。
【００３３】
図６は、時系列データ蓄積プログラム１１０と時系列データ検索プログラム１１１の機能ブロックの構成と矢印によって示されるデータフローとを示すブロック図である。時系列データ蓄積プログラム１１０は、入力された時系列データ１１２を時系列データテーブル１１７に書き込む時系列データ書込部６０３、入力された時系列データ１１２に対する特徴量を特徴量算出方法テーブル１１５を元に計算し特徴量テーブル１１６に書き込む特徴量書込部６０１、特徴量テーブル１１６に格納された特徴量を元に新たな特徴量を計算し特徴量テーブル１１６に追加する追加特徴量書込部６０２から構成される。
【００３４】
時系列データ検索プログラム１１１は、特徴量テーブル１１６を参照して検索対象範囲の全時系列データの中から、入力された検索クエリ１１３に合致する可能性がある区間を特定する特徴量検索部６０４と、特徴量検索部６０４で特定された区間の時系列データを時系列データテーブル１１７から取得する時系列データ取得部６０５と、取得した時系列データを詳細検索して検索クエリ１１３に合致する部分を取得する時系列データ詳細検索部６０６と、詳細検索して得た結果を検索結果として出力する出力部６０７から構成される。
【００３５】
ここで、時系列データ蓄積プログラム１１０によるデータ蓄積と時系列データ検索プログラム１１１によるデータ検索の全体的な流れを簡単に説明する。時系列データ蓄積プログラム１１０は、管理者ＰＣ１０３から入力された時系列データ１１２を時系列データテーブル１１７に蓄積する（時系列データ書込部６０３）。また同時に、入力された時系列データ１１２を用いて、時系列データ検索時のインデックスとなる、時系列データのパターンを表す特徴量を算出し、特徴量テーブル１１６に格納しておく（特徴量書込部６０１）。ここで、図１２に示すように、特徴量書込部６０１が用いる時系列データは、時系列データ書込部６０３が先に時系列データテーブル１１７に書き込んだデータを読み込んで用いてもよい（６１０）。この際、時系列データテーブル１１７での分割時間幅とは異なる時間幅で読み込むことも可能である。追加特徴量書込部６０２は、特徴量テーブルを参照して新たな特徴量を追加する。時系列データ検索プログラム１１１では、クライアントＰＣ１０４から検索クエリ１１３が与えられると、まず特徴量検索部６０４が特徴量テーブル１１６を用いて、検索対象範囲の時系列データの中から検索クエリ１１３に合致する時系列データの区間を絞り込む。その後、絞り込まれた時系列データを取得して時系列データ（生データ）を用いた詳細検索を行ない、最終的な検索結果１１４を出力する。検索の最初に特徴量を用いて絞り込みを行うことで、取得及び詳細検索を行う時系列データの量を削減することができ、検索処理の高速化が可能となる。なお、検索クエリ１１３の内容の説明については、図２０を用いて後述する。
【００３６】
次に、時系列データ及び特徴量の蓄積の処理について説明する。図７は、時系列データ蓄積プログラム１１０における、時系列データ書込部６０３の処理を示すフローチャートである。この処理は、管理者ＰＣ１０３から時系列データ１１２が入力されたのを契機に実行される。まず、入力された時系列データ１１２を、その入力形式にしたがってバッファ１１８に格納して読み込む（Ｓ７０１）。図２９を用いて、Ｓ７０１で図２で説明した時系列データ１１２を読む込む様子を示す。時系列データ１１２の読込では、発生時刻にそってセンサ値（２９０１〜２９０３）を読み込んでいき、センサ毎のバッファ（２９０４〜２９０６）にそれぞれ格納していく。そして、バッファ（２９０４〜２９０６）に格納されたセンサ値を、センサ毎のバッファ（２９０４〜２９０６）に設定された時系列データ分割時間幅にしたがって、時系列データを一定時間ごとに分割する（Ｓ７０２）。
【００３７】
例えば、図２９の場合は、１時間の時間幅にて分割している。この場合、１秒ごとに連続するセンサ値であれば、３６００個のデータが分割された一定時間に含まれることとなる。そしてバッファ１１８に分割して格納した時系列データを読み込んで時系列データテーブル１１７に格納する（Ｓ７０３）。この時、分割したデータを圧縮することで、データ量を削減することも可能である。なお、図７ではＳ７０２で分割した時系列データを時系列データテーブル１１７に格納したが、時系列データ書込部６０３は、バッファ（２９０４〜２９０６）を介さずに時系列データ１１２を取得し、取得した時系列データを時系列データテーブル１１７に格納することも可能である。
【００３８】
図８は、時系列データ蓄積プログラム１１０における、特徴量書込部６０１の処理を示すフローチャートである。この処理は、管理者ＰＣ１０３から時系列データ１１２が入力されたのを契機に実行され、時系列データ書込部６０３の処理によって一定時間ごとに分割してバッファ（２９０４〜２９０６）に格納された時系列データに対して、特徴量算出方法テーブル１１５を参照しながら特徴量を算出し、特徴量テーブル１１６に格納していく（Ｓ８０２〜Ｓ８０６）。具体的には、バッファ（２９０４〜２９０６）に格納された時系列データを読み込み（Ｓ８０１）、特徴量算出方法テーブル１１５の全ての特徴量算出方法について以下の処理を行う（Ｓ８０２）。その算出方法が時系列データに対する算出方法でない場合（Ｓ８０３）は、ループ終端に移行する（Ｓ８０６）。その算出方法が時系列データに対して特徴量を算出する算出方法であれば（Ｓ８０３）、その算出方法を使って、特徴量を算出する（Ｓ８０４）。そして、使用した時系列データの開始時刻と終了時刻、使用した算出方法ＩＤ、算出した特徴量を特徴量テーブル１１６に格納する（Ｓ８０５）。ここで、ステップＳ８０３において、時系列データに対しての特徴量算出方法でない場合、その算出方法は追加特徴量書込部で用いる算出方法であり、ここではその算出方法を用いた特徴量算出は行わない。図５では、特徴量算出方法ＩＤが１〜４（５０２〜５０５）の特徴量算出方法が時系列データｄａｔａを用いた算出方法であり、５〜６（５０６〜５０７）の特徴量算出方法が時系列データを用いない（追加特徴量書込部で用いる）算出方法である。なお、追加特徴量書込部６０２の処理については、後述する。
【００３９】
なお、上述の例では、時系列データをバッファ１１８に分割して格納する処理は時系列データ書込部６０３が行う処理（Ｓ７０１〜Ｓ７０２）として説明したが、特徴量書込部６０１が、管理者ＰＣ１０３から時系列データ１１２が入力されたのを契機としてデータ入力（Ｓ８０１）に先立って実行することも可能である。
【００４０】
特徴量書込部６０１が行う特徴量算出の例として、パターンによるラベル付与の例を、図９の時系列データを使って説明する。ここでは、図５に示した特徴量算出方法テーブルの特徴量算出方法３（５０４）を用いる。図９に示すのは、時系列データの一例であり、毎日起動停止を繰り返すエンジンの温度センサの時系列データである。縦軸はセンサ値である温度で、横軸は時間を示す。停止時には温度は低く安定し（９０２、９０６）、起動中は変動しながら温度が上がっていき（９０３）、起動が終了すると高い温度で安定し（９０４）、停止中は変動しながら温度が下がっていく（９０５）、という推移である。時系列データの一番右側（９０７）は、起動が失敗するなどの異常があり、一度温度が上がったがすぐに落ちてしまっている。時系列データの下部に示したアルファベット９０１は、図５に示した特徴量算出方法テーブルの特徴量算出方法３（５０４）を使って算出した特徴量のラベルの例である。ラベル付与では、時系列データの下部に示したアルファベット９０１に示す通り、温度が低く安定しているデータ（９０２、９０６）には停止時を示すＡ、温度が上がっていくデータ（９０３）にはエンジン立ち上げ中を示すＢ、温度が高く安定しているデータ（９０４）には起動安定状態を示すＣ、温度が下がっていくデータ（９０５）には停止処理中を示すＤ、温度が一度上がってすぐに下がったデータ（９０７）には異常時を示すＥ、のようにそれぞれの時系列データのパターンに応じて個別のラベルを付与する。
【００４１】
このように、ラベル付与は、類似時系列パターンの検索の高速化を目的としたもので、時系列データのパターンが類似している部分に同じラベル９０１を付与するようにする。また、特徴量の値として類似度を併記することで、類似時系列パターンのうち上位１０件を表示するといった検索も高速に行うことができる。
【００４２】
図５に示した特徴量算出方法３（５０４）では、時系列データを図９のように固定長９０８に分割した上で、分割した区間内の時系列データに基づいてクラスタリングを行ない、クラスタそれぞれに一意のラベルを付加する。クラスタリングは、区間内のデータの傾き、データの平均、回帰直線と極大値・極小値をとる点との距離、の３つに基づいて行う。図２８に特徴量算出方法３のフロー図を示す。ある区間の時系列データｄａｔａの特徴量を特徴量算出方法３（５０４）で算出する場合、まずクラスタリングに必要な値の計算を行う（Ｓ２８０２）。そして、その区間がどのクラスタに属する区間かを計算し、属するクラスタを特徴量のラベル４０５とする（Ｓ２８０３）。また、その区間を表す点と属するクラスタの重心とのの距離（ユークリッド距離）を計算して、類似度として特徴量の値４０６に格納する（Ｓ２８０４）。他にも前記フロー図２８のステップＳ２８０２において、極大値・極小値の数や順番等を追加で算出し、これらの考慮に入れてクラスタリングを行うことで、パターンを表すこともできる。また、同様に、前記フロー図２８のステップＳ２８０２において、傾き・平均値・距離を算出する代わりに区間内の個々の値を個々の軸として多次元空間のベクトルとしてマッピングし、クラスタリングを行う方法も考えられる。また、クラスタリングではなく、高速フーリエ変換をするなども考えられる。
【００４３】
ラベルを付与したあとに、ラベルに基づいて特徴量の区間長を可変にすることもできる。図１０に例を示す。なお、縦軸はセンサ値である温度で、横軸は時間を示す。この例では、隣接する区間に同じラベルが付与されていれば、区間を統合する。例えば、図９で付与したラベル（９０１）を示す図１０上の左から１つ目の区間１００１と２つ目の区間１００２は、共にラベルＡが付与されている。そこで、図１０の１０００に示すように、例えばこの２つの区間を統合して１つの区間とし、統合した区間にラベルＡを付与する（１００３）。前述したとおり、特徴量テーブルは開始時刻と終了時刻で区間を表すため、固定区間である必要はない。このようにラベルを付与する区間を可変長にして統合することによって、特徴量テーブルのサイズを削減することができる。なお、この処理は例えば、図８の特徴量書込部６０１の特徴量テーブル格納時（Ｓ８０５）に行うことができる。処理中の区間のラベルと、直前の区間のラベルが同じであれば、直前の区間の終了時刻４０２を処理中区間の終了時刻に書き換えることで、処理中区間と直前の区間を１つの区間として統合して格納することができる。
【００４４】
また、異常検知を示すラベルのように、ラベル付与の頻度が少ないラベルも考えられる。このとき、ラベルに基づいて特徴量の区間長を可変することで、特徴量が付与された区間のデータのみを、特徴量テーブル１１６に格納する。このことによって、特徴量テーブルのサイズを削減することができる。この例を示したのが、図１１の上部に示した、図５における算出方法４（５０５）によるラベル１１０１とラベル１１０２である。なお、縦軸はセンサ値である温度で、横軸は時間を示す。この例の場合、算出方法４で用いている異常検知手法Ａで検知できる異常Ｘが２つ発生している。１つ目は時刻ｔ３で開始し時刻ｔ４で終了し、２つ目は時刻ｔ６で開始し時刻ｔ７で終了している。そこで、区間ｔ３〜ｔ４と区間ｔ６〜ｔ７に算出方法４でラベル異常Ｘを付与する。また、その他の区間には算出方法４によって付与されたラベルはないため、特徴量テーブルに格納しない。算出方法４では、何らかの異常検知手法Aによって、異常Ｘであると判断する。
【００４５】
なお、異常検知手法としては、値のスパイク等一定時間内に値の増加・減少があったら異常とする、といったルールベースや、値が一定の範囲内になければ異常とする、といったアノマリ型等が考えられるが、ここでは特に限定せず、どの異常検知手法を用いてもよいとする。
【００４６】
図１１の時系列パターンに対応する特徴量テーブルの一部が図４である。例えば、図１１では、区間ｔ１〜ｔ２について算出方法３でラベルBが付加されており（１１０３）、これは図４の特徴量テーブルで行４０９のように表される。同様に、図１１のラベル１１０１、１１０２、１１０４、１１０５がそれぞれ図４の行４１２、４１３、４１０、４１１で表される。ここで、特徴量の値は、算出方法３の行については、前述したように類似度を値とする。算出方法４については、異常検知手法Aによって定義された異常度を値とする。例えば、アノマリ型の異常検知手法であれば、統計的な手法でどのくらい正常と異なっているかを数値で表す等が考えられる。
【００４７】
次に、追加特徴量書込部６０２の処理について説明する。特徴量書込部６０１が、時系列データが入力されたのを機に、時系列データを元に特徴量を算出し書き込みを行うのに対し、追加特徴量書込部６０２は、定期的に又は管理者ＰＣ１０３からの実行命令によって実行され、特徴量テーブル１１６に格納された特徴量を元に新たな特徴量を算出し書き込みを行う。定期的というのは、具体的には、特定の時間が経過するごとに、又は特定の量のデータが入力・格納されるごとに等である。特徴量書込部６０１の最後で、追加特徴量書込部６０２の処理を呼び出しても良い。追加特徴量書込部６０２の処理は、特徴量算出方法による特徴量追加処理、規則性発見による特徴量追加処理と、非類似性判定による特徴量追加処理に分けられる。これら３つの処理は、追加特徴量書込部が実行されたときに、全ての処理を行ってもよいし、一部の処理だけを行っても良い。
【００４８】
図１３は、追加特徴量書込部６０２が、特徴量算出方法テーブル１１５に格納された特徴量算出方法のうち、特徴量テーブルに格納された特徴量を元に新たな特徴量を算出する方法を用いて、特徴量を特徴量テーブル１１６に追加する処理を示すフローチャートである。具体的には、特徴量算出方法テーブル１１５の全ての特徴量算出方法について、以下のＳ１３０１からＳ１３０５までをループして行う。処理を開始すると（Ｓ１３０１）、その算出方法が時系列データに対する算出方法であるか判定する（Ｓ１３０２）。時系列データに対する算出方法でないとは、図８のステップＳ８０３でＮｏの分岐をとった算出方法と同義である。すなわち、特徴量算出方法が時系列データを用いない算出方法であり、図５では算出方法５〜６（５０６〜５０７）がこれに該当する。そして、その算出方法が時系列データに対する算出方法である場合は、ループ終端に移行する（Ｓ１３０５）。その算出方法が時系列データに対する算出方法でなく、特徴量テーブルの特徴量に対する算出方法であれば、特徴量テーブルを参照し、その算出方法に一致する区間があるかを調べる（Ｓ１３０３）。もし一致する区間があれば、その算出方法で定義されたラベルを新たな追加ラベルと算出し、その区間の開始時刻と終了時刻、算出方法ＩＤ、算出した特徴量を特徴量テーブルに追加する（Ｓ１３０４）。一致する区間が無い場合はループ終端に移行する（Ｓ１３０５）。
【００４９】
この特徴量算出方法による特徴量追加処理より、例えば、時系列データ入力時とは異なる分割単位にて新たに特徴量を生成することや、時系列データ入力時には設定されていなかった特徴量算出方法によって新たに特徴量を付与し直すことが可能になる。
【００５０】
図１４は、追加特徴量書込部６０２が、規則性発見による特徴量追加処理を示すフローチャートである。この処理は、特徴量テーブル１１６を参照して、同じラベル列が複数あれば、別のラベルを追加する。具体的には、まず、特徴量テーブル１１６を参照して、同じセンサＩＤ２０３でかつ同じ特徴量算出方法でかつ特徴量としてラベルが存在する行から、（開始時刻、終了時刻、ラベル）を抜き出す（Ｓ１４０１）。次のステップ（Ｓ１４０２）では、これらを開始時刻順にソートし、ラベル列とする。そして、このラベル列に規則性のあるラベル列があるか否かを判定する。このラベル列に一定数以上の同一の部分ラベル列が含まれていた場合、規則性のあるラベル列が発見されたことになる。部分ラベル列とは、あるラベル列に含まれる、２つ以上の連続したラベルの列である。規則性のあるラベル列が発見できない又は発見したラベル列が既に特徴量算出方法テーブルに格納されている場合は、処理を終了する。一方、特徴量算出方法テーブルに未登録の規則性のあるラベル列が発見された場合、その規則性のあるラベル列に新たな別のラベルを付与する（Ｓ１４０３）。そして、規則性のあるラベル列から新たなラベルを付与するという新たな特徴量算出方法として、特徴量算出方法テーブルに格納する（Ｓ１４０４）。また、全ての規則性のあるラベル列について、規則性のあるラベル列の各繰り返し単位における最初のラベルの開始時刻を開始時刻、最後のラベルの終了時刻を終了時刻、新たに追加した特徴量算出方法ＩＤ、新たなラベルを特徴量テーブルに格納する（Ｓ１４０５）。
【００５１】
図１６に、規則性発見による特徴量追加処理において規則性のあるラベル列に付与される新たな特徴量の例を示す。この図では、ラベルは左側（時刻の古い方）から順に、ＡＢＣＤＡＢＣＤＡＢＣＤＡＢＤとなっており、部分ラベル列ＡＢＣＤが規則的に現れている（１６０２）。これは、例えば、エンジンの起動と終了の繰り返しなど、周期的なものを示すと考えられる。そのため、このラベル列ＡＢＣＤに新たなラベルＦ（１６０３）を追加する。そして、特徴量算出方法テーブルに、「ラベル列ＡＢＣＤがあれば、その区間にラベルＦを追加」という特徴量算出方法を追加する（図５の５０６）。特徴量算出方法ＩＤは、特徴量算出方法テーブルにある他の特徴量算出方法と重複しないＩＤであれば、時系列データ処理装置が指定しても良いし、図示していないテーブルを管理するシステムが決めてもよい。そして、特徴量テーブルには、「開始時刻４０１がｔ０、終了時刻４０２がｔ８、センサＩＤ２０３が１、特徴量算出方法ＩＤ４０４が５、特徴量のラベル４０５がＦ」という行を追加する。ラベル列ＡＢＣＤを持つ他の区間についても同様に特徴量テーブルに追加する。
【００５２】
新たなラベルＦが追加されたことによって、ラベルＢ１６０１のように、ラベルＦに含まれないラベルＢを含む区間を検索することができる。すなわち、正常な繰り返しを示すラベルＦの中に含まれないラベルＢを検索することで、異常発見時の類似異常検索を効率良く行うことが可能となる。検索の処理については後述する。
【００５３】
図１５は、追加特徴量書込部６０２が行う、非類似性判定による特徴量追加処理を示すフローチャートである。この処理は、特徴量テーブル１１６を参照して、ある特徴量算出方法に関して同じ特徴量を有する区間で、別の特徴量算出方法に関して特徴量の出現頻度に違いがあれば、別のラベルを追加する。なお、出現頻度の違いとは、その特徴量が含まれるか否か（出現頻度が１か０か）という場合も含む。具体的には、まず、特徴量テーブル１１６を参照して、センサＩＤ２０３、特徴量算出方法ＩＤ４０４、特徴量４０７が同じである区間を抽出し（Ｓ１５００）、抽出した区間について別の特徴量算出方法ＩＤ４０４を有する特徴量列を取得する（Ｓ１５０１）。そして、取得した特徴量列について、同じラベルが付与されている区間で他の特徴量に関して違いがある区間が存在するかを調べる（Ｓ１５０２）。もし違いがある区間が存在し、かつ特徴量算出方法テーブルに未登録であったら、その区間に新たなラベルを追加する（Ｓ１５０３）。そして、同じラベルが付与されている区間で他の特徴量に関して違いが存在した特徴量から新たなラベルを追加する、という新たな特徴量算出方法として、特徴量算出方法テーブルに格納する（Ｓ１５０４）。そして、違いがあった区間について、新たなラベルを特徴量とし、特徴量テーブルに格納する（Ｓ１５０５）。
【００５４】
図１７に、図１５で説明した非類似性判定による特徴量追加処理において付与される新たな特徴量の例を示す。この図１７で、同じラベルＣが付いている区間について、異常Ｘの数を比較することを考える。ここで、図では異常Ｘは点で示してあるが、実際には図１１のように短い区間である。この図の中でラベルＣが付与された区間は３つあり、そのうち左側と中央の２区間１７０１については、異常Ｘの数は１と少ない。また、図示していない区間についても、ラベルＣが付与された区間内の異常Ｘの数は高々１であるとする。しかし、ラベルＣが付与された右側の区間１７０２については、異常Ｘの数が５であり、他のラベルＣが付与された区間と異なる。そのため、同じラベルＣが付いている区間であり、かつ異常Ｘの数が他と異なって多い区間１７０２に、新たなラベルＧ（１７０３）を追加する。これは、例えば、特徴量算出テーブルに「異常Ｘを５個以上含むラベルＣの区間であれば、その区間にラベルＧを追加」という特徴量算出方法を追加する（図５の行５０７）。
【００５５】
上述の規則性発見の場合と同様、特徴量算出方法ＩＤ４０４は、特徴量算出方法テーブル５０８にある他の特徴量算出方法ＩＤ４０４と重複しないＩＤであれば、時系列データ処理装置が指定しても良いし、図示していないテーブルを管理するシステムが決めてもよい。そして、特徴量テーブルには、「開始時刻４０１がｔ１０、終了時刻４０２がｔ１１、センサＩＤ２０３が１、特徴量算出方法ＩＤ４０４が６、特徴量のラベル４０５がＧ」という行を追加する。他にも異常Ｘを５個以上含むラベルＣの区間があれば、それらの区間についても同様に特徴量テーブルに追加する。なお、上述の例では異常Ｘの数が５ということを基準としているが、当然５以外の異常Ｘの個数に基づいて判断可能である。
【００５６】
このような違いの検出、および５以上といった閾値の決定方法としては、平均・分散等をはじめとした統計手法を用いる方法や、クラスタリングを行う手法などが考えられる。例えば、統計手法を用いる場合、ラベルＣの区間に含まれる異常Ｘの数の平均と分散を求め、「（平均−３＊標準偏差）以下、又は（平均＋３＊標準偏差）以上」の場合非類似とする、などが考えられる。このように、閾値についても、「５以上」のように１つの閾値に限らず、「１０以下または１００以上」のように２つ以上の値を閾値とする場合もある。また、本実施例では５を閾値としているが、他の値を閾値としても構わない。
新たなラベルＧが追加されたことによって、同じラベルＣが付いた区間であっても、他と異なる区間を検索することができる。すなわち、異常Ｘが多発する起動中定常状態区間の高速検索をすることができる。
【００５７】
以上の追加特徴量書込部６０２による特徴量追加処理によって、時系列データが入力された時には付与されていなかった特徴量を付与して特徴量テーブルを更新していくことで、ユーザのニーズにリアルタイムに応じた検索を行うことが可能となる。また、複数の特徴量の関係性に基づいて新たに特徴量を付与することで、複合的な検索条件に対応した効率のよい検索が可能となる。
【００５８】
次に、以下にて、検索の処理について説明する。図１８は、時系列データ検索プログラム１１１の処理を示すフローチャートである。この処理では、クライアントＰＣ１０４から受け取った検索クエリ１１３に合致する時系列データを抽出し、検索結果１１４として出力する。まず、特徴量検索部６０４で、受け取った検索クエリ１１３を元に、特徴量テーブル１１６を参照し、検索クエリ１１３に合致する時系列データがある区間を絞り込む、特徴量検索処理を行う（Ｓ１８０１）。そして、時系列データ取得部６０５にＳ１８０１で絞り込んだ該当区間の時系列データを渡す。時系列データ取得部６０５では、渡された区間の時系列データを、時系列データテーブル１１７から取得し、取得した時系列データを時系列データ詳細検索部６０６に渡す、時系列データ取得処理を行う（Ｓ１８０２）。時系列データ詳細検索部６０６では、渡された時系列データと検索クエリ１１３を元に時系列データを詳細検索し、検索クエリに一致するデータを抽出して、出力部６０７に渡す、時系列データ詳細検索し処理を行う（Ｓ１８０３）。
【００５９】
特徴量検索処理では特徴量を用いて検索クエリに合致する区間を検索するのに対し、時系列データ詳細検索部では時系列データ（生データ）を用いて検索クエリに合致する区間を検索する。時系列データ詳細検索処理において、全ての区間の時系列データを用いて検索クエリに合致する区間を検索することは可能だが、大量の時系列データの取得・検索を行わなければならないため、検索性能が低下する。特徴量検索処理によって、時系列データ詳細検索処理で扱うデータ量を効果的に絞り込むことで、検索の高速化ができる。詳細検索の方法は特に限定しないが、例えばユークリッド距離やタイムワーピング距離を用いて類似度を計算し、上位k件（kは自然数)又は類似度が閾値以内とする手法が考えられる。出力部６０７では、渡されたデータと検索結果として出力する、出力処理を行う（Ｓ１８０４）。
【００６０】
特徴量検索部６０４は、検索対象とする全時系列データのうち、検索クエリに合致する可能性のある区間を特徴量テーブルを用いて絞り込む。その結果、後の処理である、時系列データの取得と詳細検索の対象となるデータ量を削減することができる。検索対象となる時系列データが大量である場合、本発明によって特徴量を付与しておけば、取得・詳細検索の対象となるデータ量を大幅に削減することができるため、高速検索を行うことができる。
【００６１】
図１９に、検索クエリ１１３の例を示す。ｓｅｌｅｃｔ_ｓｅｎｓｏｒ句１９０１で検索対象センサ、ｗｈｅｒｅ_ｔｉｍｅｒａｎｇｅ句１９０２で時系列データの検索対象区間、ｗｈｅｒｅ_ｃｏｎｄｉｔｉｏｎ句１９０３で特徴量算出方法１１５及び特徴量４０７といった検索条件を指定する。図１９では、センサ１の２００９年９月１日〜２０１０年８月３１日の時系列データを対象に、特徴量算出方法３によって算出されたラベルＥが付与されている区間を検索する。なお、図１９に示した検索クエリの記述形式は一例であり、同様の意味を表現できるものであればこれに限定しない。
【００６２】
図２０に、検索クエリのうち、ｗｈｅｒｅ_ｃｏｎｄｉｔｉｏｎ句１９０３で指定する検索条件の例をいくつか示す。ここでは、検索条件は３種類あり、指定した特徴量算出方法とそのラベルが付与された区間を検索する「ラベル指定検索」（２００１〜２００５）、指定した区間の時系列パターンに類似した区間を検索する「時間指定類似検索」（２００６〜２００８）、また指定したラベルに関して、他と違い異常と思われる区間を検索する「非類似検索」（２００９）を示している。ラベル指定検索では、上述した検索条件のようにラベル１つを指定する（１９０３）以外にも、別のラベルに含まれる又は含まれないといった包含関係も指定できる（２００１、２００２）。時間指定類似検索では、指定した区間に類似した時系列パターンを検索する（２００６）。このとき、算出方法による値や区間に付与されたラベル群の類似度などで、類似度を計算することで、類似度が高いものだけ（２００７）や類似度が一定以上のものだけ（２００８）を結果として返すといったことも可能である。類似度は、前述したクラスタリングにおいて属するクラスタの重心との距離を類似度とする方法や、パターン同士のユークリッド距離やタイムワーピング距離を類似度とする。非類似検索は、非類似性判定による追加特徴量書込部で他と違うと判定されラベルが追加された区間を検索する（２００９）。以下、フロー図（図２１〜２３）を用いて、各検索条件において特徴量検索部６０４が実行する特徴量検索処理の詳細について説明する。
【００６３】
図２１は、検索条件として、ラベル指定検索２１０１が与えられた時の特徴量検索処理Ｓ１８０１のフローチャートである。ラベル指定検索では、図２０に例示した記述形式等を使用して、１つ以上の特徴量算出方法ＩＤとラベルの組と、この包含関係を指定する。これを検索条件とした検索クエリを入力として受け取った特徴量検索部６０４は、まず特徴量テーブル１１６を参照し、（特徴量算出方法ＩＤ、ラベル）が入力された検索条件のどれかと同じ区間を取得する（Ｓ２１０２）。そして、取得した区間の（開始時刻、終了時刻）を用いて、包含関係が検索条件に合致する区間の時系列データを時系列データテーブル１１７から取得する（Ｓ２１０３）。
【００６４】
図２４は、時系列データのラベルによる検索の例を示した図である。図２４の例においては、ユーザは２４０２の区間の時系列データのパターンを見ておかしいと思い、同様の時系列データパターンを検索する場合を考える。この時系列パターンには、ラベルＥ２４０１が付与されていることを知り、ラベルＥが付与された区間を検索する。そこで、検索条件２１０１として、「（算出方法３、ラベルＥ）、包含関係なし」を指定し、検索を行う。図１９と図２０で例に挙げた記述方法を用いると、ｗｈｅｒｅ＿ｃｏｎｄｉｔｉｏｎ句に「ｌａｂｅｌ＝Ｅ  ｂｙ  ３」と記述する。すると、Ｓ２１０２で、ラベルＥ２４０３が付与されている区間ｔ３〜ｔ４（２４０４）を取得できる。この場合は包含関係の指定はないため、Ｓ２１０３では取得した全ての区間を検索結果として、時系列データ取得部６０５に渡す。
【００６５】
ここで、ユーザが２４０２の区間にラベルＥが付与されていることの判別は、例えば時系列データテーブル１１７に蓄積された過去のデータに関して、図３０のような検索クエリを発行することで知ることができる。この検索クエリでは、図１９で示した検索対象センサ１９０１と検索対象区間１９０２と共に、「ｗｉｔｈ  ｌａｂｅｌ  ｂｙ  ３」（３００１）という行を含むことによって、指定したセンサと時間幅にある時系列データと共に、算出方法３によるラベルを取得する。この検索クエリの結果表示画面の例が図３１である。下に指定したセンサと区間の時系列データをグラフとして表示し（３１０２）、その上部に算出方法３によるラベルを対応する区間の上に表示している（３１０１）。この画面を見ることで、ユーザは時系列パターン３１０３のラベルがＥだということを知ることができ、ラベルに基づいた類似検索を行うことができる。なお、特徴量算出方法テーブルはユーザが直接管理するため、ユーザは算出方法３がどんな算出方法であるかはあらかじめ分かっている。
【００６６】
また、包含関係がある場合の例として、図１６を用いて説明する。通常の繰り返しであるラベルＦに含まれないラベルＢを検索する場合を考える。そこでは、検索条件２１０１として、「（（算出方法３、ラベルＢ）、（算出方法５、ラベルＦ））、Ｂ  ｎｏｔ  ｉｎ  Ｆ」を指定し、検索を行う。図１９と図２０で挙げた記述方法を用いると、ｗｈｅｒｅ＿ｃｏｎｄｉｔｉｏｎ句に「ｌａｂｅｌ＝（Ｂ  ｂｙ  ３）ｎｏｔ  ｉｎ（Ｆ  ｂｙ  ５）」と記述する。すると、まずＳ２１０２で、ラベルＢが付与されている区間が４つ、ラベルＦが付与されている区間が３つ取得できる。Ｓ２１０３で包含関係を満たすラベルＢの区間、すなわち「どのラベルＦについても（（ラベルＦの開始時刻＜＝ラベルＢの開始時刻）かつ（ラベルＢの終了時刻＜＝ラベルＦの終了時刻））を満たさないラベルＢ」を求める。その結果、図１６一番右のラベルＢの区間１６０１を検索結果として、時系列データ取得部６０５に渡す。
【００６７】
この処理により、異常発見時の類似時系列パターン検索や、ラベル同士の関係性を考慮したコンテキスト・アウェアな検索を高速に行うことができる。ここで、コンテキスト・アウェアな検索とは、時系列データのパターンで表される特定の状態の元で（又は特定の状態以外の元で）起こった時系列パターンの検索をいう。例えば、機械の過渡状態（起動中・停止中など）を除いた平常状態での変動の検索などである。また、前述の図１６の例では、ラベルＦが付与された正常時の周期的な変動以外に含まれるラベルＢも、この処理で検索できる。
【００６８】
図２２は、検索クエリにおける検索条件１９０３として、時間指定類似検索２２０１が与えられた時の特徴量検索処理Ｓ１８０１のフローチャートである。時間指定類似検索では、区間を指定する開始時刻ｔ１と終了時刻ｔ２を入力として指定する。この処理では、区間ｔ１〜ｔ２の特徴量と類似した特徴量を持つ区間を特徴量テーブル１１６を用いて検索する。まず、与えられた区間ｔ１〜ｔ２の特徴量を求める。もし区間ｔ１〜ｔ２が既に特徴量テーブル１１６に格納されていれば（Ｓ２２０２）、特徴量テーブル１１６を参照して、区間ｔ１〜ｔ２の（特徴量算出方法ＩＤ、特徴量）を取得する（Ｓ２２０３）。また、区間ｔ１〜ｔ２を含む区間や、区間ｔ１〜ｔ２が含む区間の特徴量も取得できる。一方で、区間ｔ１〜ｔ２が特徴量テーブル１１６に格納されていなければ、図１２の６１０と同様に、時系列データテーブルから区間ｔ１〜ｔ２の時系列データ１１２を読み出し、特徴量算出方法テーブル１１５を参照して、特徴量書込部の特徴量算出の処理と同様に、区間ｔ１〜ｔ２の（特徴量算出方法ＩＤ、特徴量）を算出する（Ｓ２２０４）。上記と同様に、区間ｔ１〜ｔ２を含む区間や、区間ｔ１〜ｔ２が含む区間の特徴量も可能であれば算出する。その後、特徴量テーブルを参照し、取得又は算出した（特徴量算出方法ＩＤ、特徴量）又はそれらの組み合わせが同じである区間を取得する（Ｓ２２０５）。区間ｔ１〜ｔ２に付与された特徴量は複数ある場合には、それらの全て又は多くが一致する区間を取得することで、区間ｔ１〜ｔ２と類似した時系列データを検索することができる。
【００６９】
図２４を用いて、時間指定による類似検索の例を説明する。前述と同様に、ユーザは区間ｔ１〜ｔ２の時系列データのパターンを見ておかしいと思い、同様の時系列データパターンを検索する。検索条件２２０１は、「区間ｔ１〜ｔ２（２４０２）に類似」を指定し、検索を行う。前述のＳ２２０２〜Ｓ２２０４において、区間ｔ１〜ｔ２（２４０２）の特徴量として、（算出方法３、ラベルＥ）と取得する。Ｓ２５０５において、ラベルＥ２４０３が付与されている区間ｔ３〜ｔ４（２４０４）を取得できる。
【００７０】
この処理により、異常発見時の類似時系列パターンの検索を高速に行うことができる。この処理は、上記のラベル指定検索と類似しているが、ユーザはラベルではなく区間を指定し、特徴量検索部においてラベルを取得又は算出する。これによって、ユーザはラベルを意識する必要がないため、より直感に近い指定ができる。
【００７１】
図２３は、検索条件として、非類似検索２３０１が与えられた時の特徴量検索処理Ｓ１８０１のフローチャートである。非類似検索では、ラベルを入力として指定し、指定されたラベルに関連して他と違うと判定された区間を検索する。まず、特徴量算出方法テーブルを参照し、指定されたラベルに関連した特徴量算出方法を取得する（Ｓ２３０２）。すなわち、特徴量算出方法テーブルに格納されている算出方法のうち、指定されたラベルを含む算出方法であり、かつラベル列に新たなラベルを追加する算出方法でないもの、を取得する。そして、特徴量テーブルを参照し、取得した特徴量算出方法で追加されたラベルが付与された区間を取得する（Ｓ２３０３）。
【００７２】
この処理により、あるラベルに関連した非類似検索を高速に行うことができ、設備監視での異常検知などに利用出来る。前述の図１７の例では、ラベル異常Ｘに関連する非類似検索を行えば、ラベルＧが付与された区間が検索結果として得られ、異常Ｘが他より多い区間を得ることができる。
【００７３】
以下、ユーザからの入力による特徴量テーブルの更新処理について説明する。本システムの使用において、ユーザは生データを分析しながら、試行錯誤的に特徴量の算出方法を検討・検証・変更をしていきたい場合がある。そのため、一度、付与・作成した特徴量テーブルを、条件を変えて再作成したり、特徴量を追加したり、削除したりすることを考慮する必要がある。ユーザは、特徴量テーブル更新コマンドを入力し、時系列データ蓄積プログラム１１０における特徴量書込部６０１が更新処理を行う。特徴量テーブル更新コマンドとは、例えば特徴量テーブルを全て削除して時系列データテーブルから特徴量テーブルをつくり直す「再構築命令」や、特徴量算出方法テーブルに算出方法を新たに追加・削除する「特徴量算出方法追加・削除命令」などがある。
【００７４】
図３２にユーザから入力される特徴量テーブル更新コマンドの例を示す。ここでは、コマンドラインからの例を示すが、同様の処理を行うＧＵＩを提供してもかまわない。コマンドは、テーブル内の項目を削除する削除コマンド（３２０１〜３２０３）、テーブルの構築を行う構築コマンド（３２０４）、特徴量算出におけるパラメータ等を設定する設定コマンド（３２０５〜３２０６）等がある。削除コマンド３２０１では、特徴量テーブル内の全ての項目を削除する。これは例えば特徴量テーブルの再構築をおこないたい時に、構築コマンド３２０４と組み合わせて使うことができる。
【００７５】
削除コマンド３２０２は特徴量テーブルから一部の特徴量を削除する。例えば、時間幅や算出方法、付けられた特徴量を指定して削除する。削除コマンド３２０３は特徴量算出方法テーブルから算出方法３を削除し、同時に特徴量テーブルから算出方法３に関する特徴量を削除する。構築コマンド３２０４は、特徴量テーブルを時系列テーブル内にある時系列データを元に構築する。これは、前述した特徴量テーブルの再構築時の他、初期時に時系列データテーブル内のデータを元に特徴量テーブルを構築したい時に用いる。設定コマンドは、算出方法３の区間幅を設定するコマンド３２０５や、非類似性判定による追加特徴量処理で対象とする特徴量を指定するコマンド３２０６が考えられる。また、これらのコマンドを組み合わせて新しいコマンドを定義したり、それぞれの特徴量算出方法に応じたコマンドを作成したりして構わない。例えば、特徴量テーブルの再構築は、コマンド３２０１とコマンド３２０４を順に呼び出すことで定義できる。
【００７６】
図３３に特徴量書込部６０１が実行する、特徴量更新処理例を示すフローチャートを示す。まず、コマンド（３２０１〜３２０６）を受信し（Ｓ３３００）、削除コマンド（３２０１〜３２０３）に従って削除処理を実行する。削除対象のテーブルが特徴量テーブルである場合（Ｓ３３０１）、かつテーブル内の全ての項目を削除する場合（Ｓ３３０２）、特徴量テーブルから全ての項目を削除する（S３３０３）。また、削除対象テーブルが特徴量テーブルであり（Ｓ３３０１）、全ての項目を削除でない場合（Ｓ３３０２）、特徴量テーブルからコマンドで指定された特徴量を削除する（Ｓ３３０４）。一方、削除対象のテーブルが特徴量算出方法テーブルである場合（Ｓ３３０１）、特徴量算出方法テーブルにアクセスし、指定された特徴量算出方法を特徴量算出方法テーブルから削除し（Ｓ３３０５）、特徴量テーブルにアクセスして特徴量テーブルから削除した特徴量算出方法で算出された特徴量を削除する（Ｓ３３０６）。
【００７７】
次に、設定コマンド（３２０５〜３２０６）に従って、特徴量算出方法テーブルにアクセスし、特徴量算出におけるパラメータ等を設定し直す（Ｓ３３０７）。その後、構築コマンド（３２０４）に従って構築処理を実行して特徴量を算出する（Ｓ３３０８）。構築処理は、図１２を用いて説明したように、特徴量書込部６０１が時系列データテーブル１１７に格納されている時系列データから時系列データを取得し（６１０）、当該時系列データに基づいて特徴量を算出して特徴量テーブルに格納すれば良い。この際の特徴量書込部６０１が行う処理は図８のＳ８０２〜Ｓ８０６と同様である。特徴量テーブルに特徴量を格納すれば特徴量テーブルの更新処理を終了する。
【００７８】
このように、特徴量テーブルの更新処理を行うことによって、ユーザが生データの分析結果に基づいて、試行錯誤的に特徴量の算出方法を検討・検証・変更することで、ユーザにとってより好ましい時系列データに対する検索を実現することが可能となる。
【００７９】
なお、特徴量テーブルの更新処理では、削除コマンド（３２０１〜３２０３）、構築コマンド（３２０４）、設定コマンド（３２０５〜３２０６）等の中でＳ３３００で受信するコマンドに含まれているコマンドに対応する処理を行えばよく、必ずしも削除処理（Ｓ３３０１ 〜Ｓ３３０６）、設定処理（Ｓ３３０７）、構築処理（Ｓ３３０８）の全てを行う必要があるわけではない。
また、特徴量テーブルの更新処理を行っている途中での、ユーザからの検索クエリへの応答については、いくつかのオプションが考えられる。例えば、特徴量テーブルの更新中はユーザからの検索は一切受け付けないこともできる。更新中の特徴量テーブルを元に返答を返せば、不完全な検索結果が返る可能性があるからである。
【００８０】
また、特徴量を用いずに直接時系列データテーブルから全ての時系列データを取得して詳細検索を行うことで、前述した方法よりも可用性を高めることができる。
また、特徴量テーブルの更新がどこまで終了したかを特徴量更新処理部から特徴量検索部６０４にメッセージや共有メモリを用いて知らせることによって、更新処理が終わっている部分については特徴量を用い、終わってない部分については全ての時系列データを取得することで、前述した方法よりも性能を向上させることができる。
また、一貫性が特に必要とされていない利用場面においては、更新中の特徴量テーブルを用いて検索をする、ということもできる。
【００８１】
これらのどの方法を用いるかは、ユーザ又は管理者がそのシステムの運用・利用場面に適した方法を選べばよい。時系列データの蓄積処理については、同時に並行して行っても問題はないため、並行して行えばよい。
【００８２】
以上説明した実施形態によれば、時間の経過に伴い連続的又は断続的に発生する時系列データを処理する時系列データ処理装置において、時系列データ蓄積時に、時系列データのある区間におけるパターンをラベルとして特徴量テーブルに格納しておく。これによって、時系列データ検索時には、特徴量テーブルを元に、時系列データの取得と詳細検索の範囲を絞り込むことで、検索処理の高速化を図ることが可能となる。
【符号の説明】
【００８３】
１０１  時系列データ処理装置
１０２  ストレージ装置
１０３  管理者ＰＣ
１０４  クライアントＰＣ
１０５  メモリ
１０７  プロセッサ
１１０  時系列データ蓄積プログラム
１１１  時系列データ検索プログラム
１１２  時系列データ
１１３  検索クエリ
１１４  検索結果
１１５  特徴量算出方法テーブル
１１６  特徴量テーブル
１１７  時系列データテーブル
６０１  特徴量書込部
６０２  追加特徴量書込部
６０３  時系列データ書込部
６０４  特徴量検索部
６０５  時系列データ取得部
６０６  時系列データ詳細検索部
６０７  出力部
【図１】
0005678620.tif 000002
【図２】
0005678620.tif 000003
【図３】
0005678620.tif 000004
【図４】
0005678620.tif 000005
【図５】
0005678620.tif 000006
【図６】
0005678620.tif 000007
【図７】
0005678620.tif 000008
【図８】
0005678620.tif 000009
【図９】
0005678620.tif 000010
【図１０】
0005678620.tif 000011
【図１１】
0005678620.tif 000012
【図１２】
0005678620.tif 000013
【図１３】
0005678620.tif 000014
【図１４】
0005678620.tif 000015
【図１５】
0005678620.tif 000016
【図１６】
0005678620.tif 000017
【図１７】
0005678620.tif 000018
【図１８】
0005678620.tif 000019
【図１９】
0005678620.tif 000020
【図２０】
0005678620.tif 000021
【図２１】
0005678620.tif 000022
【図２２】
0005678620.tif 000023
【図２３】
0005678620.tif 000024
【図２５】
0005678620.tif 000025
【図２６】
0005678620.tif 000026
【図２７】
0005678620.tif 000027
【図２８】
0005678620.tif 000028
【図２９】
0005678620.tif 000029
【図３０】
0005678620.tif 000030
【図３１】
0005678620.tif 000031
【図３２】
0005678620.tif 000032
【図３３】
0005678620.tif 000033
【図２４】
0005678620.tif 000034