(57)【要約】  時系列データ処理装置は、データ変換部と記憶部と検索部とを有する。データ変換部は、複数の時系列データの集合である時系列データセットを所定の時間毎に区切った部分時系列データセットを、部分時系列データセットの特徴を示す特徴ベクトルに変換する。記憶部は、複数の第１の部分時系列データセットと、複数の第１の部分時系列データセットがデータ変換部によって変換された複数の第１の特徴ベクトルとを対応付けて記憶する。検索部は、記憶部に記憶された複数の第１の特徴ベクトルのうち、入力された第２の部分時系列データセットがデータ変換部によって変換された第２の特徴ベクトルに類似する少なくとも１つの第１の特徴ベクトルを選択し、選択した第１の特徴ベクトルに対応する第２の部分時系列データセットを出力する。
2020049666.tif 000002
【特許請求の範囲】
【請求項１】
複数の時系列データの集合である時系列データセットを所定の時間毎に区切った部分時系列データセットを、前記部分時系列データセットの特徴を示す特徴ベクトルに変換するデータ変換部と、
複数の第１の部分時系列データセットと、前記複数の第１の部分時系列データセットが前記データ変換部によって変換された複数の第１の特徴ベクトルとを対応付けて記憶する記憶部と、
前記記憶部に記憶された前記複数の第１の特徴ベクトルのうち、入力された第２の部分時系列データセットが前記データ変換部によって変換された第２の特徴ベクトルに類似する少なくとも１つの第１の特徴ベクトルを選択し、前記選択した第１の特徴ベクトルに対応する前記第１の部分時系列データセットを出力する検索部と
を備える時系列データ処理装置。
【請求項２】
前記第１の特徴ベクトル、および前記第２の特徴ベクトルは、次元数ｎの二値ベクトルである
請求項１に記載の時系列データ処理装置。
【請求項３】
前記次元数ｎは、前記第１の部分時系列データセット、および前記第２の部分時系列データセットに含まれる数値データの総数より少ない
請求項２に記載の時系列データ処理装置。
【請求項４】
前記データ変換部は、
前記第１の部分時系列データセットを入力し、次元数ｎの実数ベクトルを出力する特徴抽出部と、
前記実数ベクトルを入力し、前記二値ベクトルを出力する二値化部と、を含む
請求項２または３に記載の時系列データ処理装置。
【請求項５】
前記データ変換部は、
所定のパラメータを有する縦続接続されたＴ個のＬＳＴＭと、
最終段の前記ＬＳＴＭの出力を入力とする、所定のパラメータを有する全結合層と、を含む
請求項４に記載の時系列データ処理装置。
【請求項６】
それぞれが部分時系列データセットである複数のトレーニングデータを使用して、前記データ変換部の機械学習を行う学習部を備える
請求項５に記載の時系列データ処理装置。
【請求項７】
前記学習部は、前記複数のトレーニングデータが、前記複数のトレーニングデータ間の相対的な類似性を維持する複数の特徴ベクトルに変換されるように、前記データ変換部の機械学習を行うように構成されている
請求項６に記載の時系列データ処理装置。
【請求項８】
前記学習部は、
前記複数のトレーニングデータから、複数のトレーニングデータのペアを生成し、
前記ペア毎に、
ペアの一方の前記トレーニングデータｉを前記データ変換部に入力したときの前記全結合層の出力ベクトルとペアの他方の前記トレーニングデータｊを前記データ変換部に入力したときの前記全結合層の出力ベクトルとの内積Ωijと、前記ペアの一方の前記トレーニングデータｉと前記ペアの他方の前記トレーニングデータｊとの間の類似度Ｓijとを計算し、損失関数Ｌij ＝−（Ｓij logΩij＋(1‐Ｓij )log (1‐Ωij )＋ηＲ(Ｗ)が小さくなるように前記データ変換部の前記パラメータを更新する
請求項６または７に記載の時系列データ処理装置。
【請求項９】
前記学習部は、
前記複数のトレーニングデータから、アンカーセグメントである１つの前記トレーニングデータと、前記アンカーセグメントに類似する正セグメントである１つの前記トレーニングデータと、前記アンカーセグメントに類似しない負セグメントである１つの前記トレーニングデータとから成る複数の三つ組を生成し、
前記三つ組毎に、
前記アンカーセグメントを前記データ変換部に入力したときの前記全結合層の出力ベクトルｆiaと、前記正セグメントを前記データ変換部に入力したときの前記全結合層の出力ベクトルｆipと、前記負セグメントを前記データ変換部に入力したときの前記全結合層の出力ベクトルｆinとを計算し、損失関数Ｌi ＝−Σi=1N（||ｆia‐ｆip||2−||ｆia‐ｆin||2＋α）+ ＋ηＲ(Ｗ)が小さくなるように前記データ変換部の前記パラメータを更新する
請求項６または７に記載の時系列データ処理装置。
【請求項１０】
複数の時系列データの集合である時系列データセットを所定の時間毎に区切った部分時系列データセットを、前記部分時系列データセットの特徴を示す特徴ベクトルに変換するデータ変換部を使用して、登録対象の複数の第１の部分時系列データセットを複数の第１の特徴ベクトルに変換し、前記複数の第１の部分時系列データセットと前記複数の第１の特徴ベクトルとを対応付けて記憶部に記憶し、
第２の部分時系列データセットを入力し、
前記データ変換部を使用して、前記第２の部分時系列データセットを第２の特徴ベクトルに変換し、
前記記憶部に記憶された前記複数の第１の特徴ベクトルのうち前記第２の特徴ベクトルに類似する少なくとも１つの前記第１の特徴ベクトルを選択し、前記選択した第１の特徴ベクトルに対応する前記第２の部分時系列データセットを出力する
時系列データ処理方法。
【請求項１１】
前記第１の特徴ベクトル、および前記第２の特徴ベクトルは、次元数ｎの二値ベクトルである
請求項１０に記載の時系列データ処理方法。
【請求項１２】
前記次元数ｎは、前記第１の部分時系列データセット、および前記第２の部分時系列データセットに含まれる数値データの総数より少ない
請求項１１に記載の時系列データ処理方法。
【請求項１３】
前記第１の部分時系列データセットの前記二値ベクトルへの変換では、前記第１の部分時系列データセットを次元数ｎの実数ベクトルに変換し、次に前記実数ベクトルの各次元を二値化する
請求項１１または１２に記載の時系列データ処理方法。
【請求項１４】
前記第２の部分時系列データセットの前記実数ベクトルへの変換では、所定のパラメータを有し縦続接続されたＴ個のＬＳＴＭと、最終段の前記ＬＳＴＭの出力を入力とする、所定のパラメータを有する全結合層とを使用する
請求項１３に記載の時系列データ処理方法。
【請求項１５】
前記第１の部分時系列データセットを前記第１の特徴ベクトルに変換する前に、それぞれが部分時系列データセットである複数のトレーニングデータを使用して、前記データ変換部の機械学習を行う
請求項１４に記載の時系列データ処理方法。
【請求項１６】
前記学習では、前記複数のトレーニングデータが、前記複数のトレーニングデータ間の相対的な類似性を維持する複数の特徴ベクトルに変換されるように、前記データ変換部の機械学習を行う
請求項１４に記載の時系列データ処理方法。
【請求項１７】
前記機械学習では、
前記複数のトレーニングデータから、複数のトレーニングデータのペアを生成し、
前記ペア毎に、
ペアの一方の前記トレーニングデータｉを前記データ変換部に入力したときの前記全結合層の出力ベクトルとペアの他方の前記トレーニングデータｊを前記データ変換部に入力したときの前記全結合層の出力ベクトルとの内積Ωijと、前記ペアの一方の前記トレーニングデータｉと前記ペアの他方の前記トレーニングデータｊとの間の類似度Ｓijとを計算し、損失関数Ｌij ＝−（Ｓij logΩij＋(1‐Ｓij )log (1‐Ωij )＋ηＲ(Ｗ)が小さくなるように前記データ変換部の前記パラメータを更新する
請求項１５または１６に記載の時系列データ処理方法。
【請求項１８】
前記学習では、
前記複数のトレーニングデータから、アンカーセグメントである１つの前記トレーニングデータと、前記アンカーセグメントに類似する正セグメントである１つの前記トレーニングデータと、前記アンカーセグメントに類似しない負セグメントである１つの前記トレーニングデータとから成る複数の三つ組を生成し、
前記三つ組毎に、
前記アンカーセグメントを前記データ変換部に入力したときの前記全結合層の出力ベクトルｆiaと、前記正セグメントを前記データ変換部に入力したときの前記全結合層の出力ベクトルｆipと、前記負セグメントを前記データ変換部に入力したときの前記全結合層の出力ベクトルｆinとを計算し、損失関数Ｌi ＝−Σi=1N（||ｆia‐ｆip||2−||ｆia‐ｆin||2＋α）+ ＋ηＲ(Ｗ)が小さくなるように前記データ変換部の前記パラメータを更新する
請求項１５または１６に記載の時系列データ処理方法。
【請求項１９】
コンピュータを、
複数の時系列データの集合である時系列データセットを所定の時間毎に区切った部分時系列データセットを、前記部分時系列データセットの特徴を示す特徴ベクトルに変換するデータ変換部と、
複数の第１の部分時系列データセットと、前記複数の第１の部分時系列データセットが前記データ変換部によって変換された複数の第１の特徴ベクトルとを対応付けて記憶する記憶部と、
前記記憶部に記憶された前記複数の第１の特徴ベクトルのうち、入力された第２の部分時系列データセットが前記データ変換部によって変換された第２の特徴ベクトルに類似する少なくとも１つの前記第１の特徴ベクトルを選択し、前記選択した第１の特徴ベクトルに対応する前記第２の部分時系列データセットを出力する検索部と、
して機能させるためのプログラムを記憶するコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、時系列データ処理装置、時系列データ処理方法、およびコンピュータ読み取り可能な記録媒体に関する。
【背景技術】
【０００２】
温度センサなどのセンサによって一定周期で測定された観測データなどの数値データを時刻順に並べたデータは、一般に時系列データと呼ばれる。そのような時系列データを記憶する記憶部を有し、検索クエリに類似する時系列データを記憶部から検索する装置の一例が特許文献１に記載されている。【０００３】
特許文献１に記載される装置は、センサと、ユーザ端末と、時系列ストア装置と、ストレージ装置とを有する。時系列ストア装置は、センサから入力した時系列データを処理した後、ストレージ装置に登録する。その際、時系列ストア装置は、時系列データを特徴量に変換し、さらに特徴区間に分割して特徴区間データを生成し、特徴区間どうしの類似度に応じて特徴区間を階層的にクラスタリングし、得られる特徴区間のクラスタ間の類似度を枝クラスタに、特徴区間を識別する識別子を葉クラスタに持つ木構造の特徴インデクスを構築することにより、時系列データを管理する。また、時系列ストア装置は、ユーザ端末から検索クエリとして時系列データを入力し、検索結果を返却する。検索の際、時系列ストア装置は、上記特徴インデクスと特徴区間データを利用することにより、検索クエリに類似する時系列データを検索する。【０００４】
他方、時系列データ、およびその特徴量を扱う技術として、特許文献２及び特許文献３が知られている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】ＷＯ２０１３／０５１１０１
【特許文献２】特開２０１４−３２６５７号公報
【特許文献３】特開２００７−２４１８６６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、複数の時系列データを扱う装置において、複数の時系列データを１つにまとめた時系列データセットの単位で類似検索できると便利である。例えば、設備から収集した温度センサの時系列データ、圧力センサの時系列データ等を含む複数の時系列データを１つにまとめた時系列データセットに基づいて設備の異常を検知する装置において、異常を検知した時系列データセットに類似する過去の時系列データセットを検索できると、障害の早期復旧や対策に役立つ。しかるに、上述した特許文献１に記載される装置は、或る１つの時系列データに類似する時系列データを検索する。時系列データセットが有する複数の時系列データのそれぞれに対して、このような時系列データ単位の検索を行った場合、検索に多くの時間が費やされるおそれがある。そのため、特許文献１に記載される技術では、時系列データセットの全体に類似する過去の時系列データを高速に検索することが困難である。【０００７】
本発明の目的は、上述した課題、すなわち、時系列データセットの全体に類似する過去の時系列データを高速に検索することは困難である、という課題を解決する時系列データ処理装置を提供することにある。
【課題を解決するための手段】
【０００８】
本発明の一形態に係る時系列データ処理装置は、
複数の時系列データの集合である時系列データセットを所定の時間毎に区切った部分時系列データセットを、前記部分時系列データセットの特徴を示す特徴ベクトルに変換するデータ変換部と、
複数の第１の部分時系列データセットと、前記複数の第１の部分時系列データセットが前記データ変換部によって変換された複数の第１の特徴ベクトルとを対応付けて記憶する記憶部と、
前記記憶部に記憶された前記複数の第１の特徴ベクトルのうち、入力された第２の部分時系列データセットが前記データ変換部によって変換された第２の特徴ベクトルに類似する少なくとも１つの前記第１の特徴ベクトルを選択し、前記選択した第１の特徴ベクトルに対応する前記第２の部分時系列データセットを出力する検索部と、
を備える。【０００９】
また本発明の他の形態に係る時系列データ処理方法は、
複数の時系列データの集合である時系列データセットを所定の時間毎に区切った部分時系列データセットを、前記部分時系列データセットの特徴を示す特徴ベクトルに変換するデータ変換部を使用して、登録対象の複数の第１の部分時系列データセットを複数の第１の特徴ベクトルに変換し、前記複数の第１の部分時系列データセットと前記複数の第１の特徴ベクトルとを対応付けて記憶部に記憶し、
第２の部分時系列データセットを入力し、
前記データ変換部を使用して、前記第２の部分時系列データセットを第２の特徴ベクトルに変換し、
前記記憶部に記憶された前記複数の第１の特徴ベクトルのうち前記第２の特徴ベクトルに類似する少なくとも１つの前記第１の特徴ベクトルを選択し、前記選択した第１の特徴ベクトルに対応する前記第２の部分時系列データセットを出力する。【００１０】
また本発明の他の形態に係るコンピュータ読み取り可能な記録媒体は、
コンピュータを、
複数の時系列データの集合である時系列データセットを所定の時間毎に区切った部分時系列データセットを、前記部分時系列データセットの特徴を示す特徴ベクトルに変換するデータ変換部と、
複数の第１の部分時系列データセットと、前記複数の第１の部分時系列データセットが前記データ変換部によって変換された複数の第１の特徴ベクトルとを対応付けて記憶する記憶部と、
前記記憶部に記憶された前記複数の第１の特徴ベクトルのうち、入力された第２の部分時系列データセットが前記データ変換部によって変換された第２の特徴ベクトルに類似する少なくとも１つの前記第１の特徴ベクトルを選択し、前記選択した第１の特徴ベクトルに対応する前記第２の部分時系列データセットを出力する検索部と、
して機能させるためのプログラムを記憶する。
【発明の効果】
【００１１】
本発明は上述した構成を有することにより、時系列データセットの全体に類似する過去の時系列データを高速に検索することができる。
【図面の簡単な説明】
【００１２】
【図１】本発明の第１の実施形態に係る時系列データ処理装置のブロック図である。
【図２Ａ】本発明の第１の実施形態に係る時系列データ処理装置の記憶部に記憶されているテーブルの内容例を示す図である。
【図２Ｂ】本発明の第１の実施形態に係る時系列データ処理装置の記憶部に記憶されている他のテーブルの内容例を示す図である。
【図３】本発明の第１の実施形態に係る時系列データ処理装置の登録部の処理例を示すフローチャートである。
【図４】本発明の第１の実施形態に係る時系列データ処理装置の検索部の処理例を示すフローチャートである。
【図５】本発明の第１の実施形態に係る時系列データ処理装置の動作の概要を示すフローチャートである。
【図６】本発明の第１の実施形態に係る時系列データ処理装置のデータ変換部の構成の一例を示す図である。
【図７】本発明の第１の実施形態に係る時系列データ処理装置のデータ変換部で使用するＬＳＴＭの構造の一例を示す図である。
【図８】本発明の第１の実施形態に係る時系列データ処理装置のデータ変換部へ入力される部分時系列データセット（セグメント）のベクトルｘ1，ｘ2，…，ｘTを説明するための模式図である。
【図９】本発明の第１の実施形態に係る時系列データ処理装置で使用する計算式を示す図である。
【図１０Ａ】本発明の第１の実施形態に係る時系列データ処理装置の学習部が実施する前半部分の学習の概要を示す図である。
【図１０Ｂ】本発明の第１の実施形態に係る時系列データ処理装置の学習部が実施する後半部分の学習の概要を示す図である。
【図１１】本発明の第１の実施形態に係る時系列データ処理装置の学習部が実施するＰａｉｒｗｉｓｅ  ｌｏｓｓ最小化に基づくモデル学習方法を説明するためのフローチャートである。
【図１２】本発明の第１の実施形態に係る時系列データ処理装置の学習部が実施するＴｒｉｐｌｅｔ  ｌｏｓｓ最小化に基づくモデル学習方法を説明するためのフローチャートである。
【図１３】本発明の第２の実施形態に係る時系列データ処理装置のブロック図である。
【図１４】本発明の時系列データ処理装置のハードウェア構成の一例を示すブロック図である。
【発明を実施するための形態】
【００１３】
先ず、本発明の実施形態を説明する前に、本明細書で使用する幾つかの用語を定義しておく。
【００１４】
本明細書において、時系列データとは、物理システム、ＩＴ（Ｉｎｆｏｒｍａｔｉｏｎ  Ｔｅｃｈｎｏｌｏｇｙ）システム、構造物などに設置されたセンサ１個から観測された物理量などの実数値を、所定の時間間隔で時刻順に並べたデータである。例えば、温度センサによって一定時間間隔で測定した複数の温度データを時刻順に並べたデータは、時系列データの一例である。また、圧力センサによって一定時間間隔で測定した複数の圧力データを時刻順に並べてデータは、時系列データの他の例である。
【００１５】
また、時系列データセットとは、システム全体（或いは一部）に設置された複数のセンサから得られる時系列データを１つにまとめたものである。例えば、ＩＴシステムや構造物全体（或いは一部）に合計１００個のセンサが設置されている場合、１００個のセンサで得られる時系列データを１つにまとめたものは、時系列データセットの一例である。
【００１６】
また、時系列データの時点数とは、時系列データを構成している観測値の個数（時間方向のデータ数）である。また、センサ数・属性数とは、システム全体（或いは一部）に設置されたセンサの総数（空間方向のデータ数）である。従って、時系列データセットは、（時点数）×（センサ数）の数だけ数値データを持つ。
【００１７】
また、セグメントとは、時系列データセットから所定の時間窓で抽出した時系列データセットの一部分である。セグメントは、部分時系列データセットと呼ぶことがある。また、部分時系列データとは、部分時系列データセットを構成する、センサ毎の時系列データの部分である。部分時系列データセットは、センサ数の数に等しい数だけ部分時系列データを持つ。また、部分時系列データセットの時点数とは、部分時系列データを構成している観測値の個数（時間方向のデータ数）である。従って、部分時系列データセットは、（部分時系列データセットの時点数）×（センサ数）の数だけ数値データを持つ。
【００１８】
また、セグメントセットとは、時間窓を所定の間隔で時系列データの開始時刻から終了時刻まで移動させたときに得られる全セグメントの集合（全部分時系列データセットの集合）である。
【００１９】
［第１の実施形態］
次に本発明の第１の実施形態について図面を参照して詳細に説明する。
【００２０】
図１は、本発明の第１の実施形態に係る時系列データ処理装置のブロック図である。図１を参照すると、本実施形態に係る時系列データ処理装置１は、入出力部１０と、学習部１１と、登録部１２と、検索部１３と、データ変換部１４と、記憶部１５とを備えている。
【００２１】
入出力部１０は、時系列データや時系列データセットなどのデータおよび検索要求などのコマンドを図示しない記憶装置や端末装置などの外部装置から入力するように構成されている。また、入出力部１０は、検索結果などのデータを図示しない表示装置や端末装置などの外部装置に出力するように構成されている。
【００２２】
データ変換部１４は、部分時系列データセット（セグメント）を実数ベクトルに変換し、さらにその実数ベクトルを二値ベクトルに変換するように構成されている。実数ベクトルとは、各次元の値が実数をとるベクトルである。二値ベクトルとは、各次元の値が、例えば１と−１あるいは０と１のように二つの値の何れか一方の値をとるベクトルである。データ変換部１４は、部分時系列データセットのセンサ数をＳ、部分時系列データセットの時点数をＴ、二値ベクトルの次元数をｎとすると、Ｓ×Ｔ個の数値データをｎ次元の二値ベクトルに変換するように構成されている。ここで、好ましくは、ｎ＜Ｓ×Ｔである。
【００２３】
学習部１１は、入出力部１０を通じて外部から入力した、それぞれが部分時系列データセットである複数のトレーニングデータを用いて、データ変換部１４の機械学習を行うように構成されている。トレーニングデータとは、学習のために使用するデータのことである。学習部１１は、複数のトレーニングデータが、それら複数のトレーニングデータ間の相対的な類似性を維持する複数の実数ベクトルに変換されるように、データ変換部１４の機械学習を行う。即ち、学習部１１は、互いに類似するトレーニングデータは互いに類似する実数ベクトルに変換され、互いに類似しないトレーニングデータは互いに類似しない実数ベクトルに変換されるように、データ変換部１４の機械学習を行う。
【００２４】
記憶部１５は、複数の部分時系列データセットと当該複数の部分時系列データセットを学習後のデータ変換部１４によって変換した後の複数の二値ベクトルとを対応付けて記憶するように構成されている。図２Ａおよび図２Ｂは、記憶部１５に記憶されているテーブルの一例を示す。
【００２５】
図２Ａに示すテーブル１５Ａは、部分時系列データセット（セグメント）とその識別情報である時刻とを対応付けて記憶するように構成されている。例えば、テーブル１５Ａの１行目のエントリは、部分時系列データセットＸt1と、この部分時系列データセットＸt1を一意に識別する時刻ｔ１との組が記憶されている。時刻ｔ１は、部分時系列データセットＸt1の開始時刻とすることができるが、それに限定されない。例えば、時刻ｔ１は、部分時系列データセットＸt1の終了時刻であってもよい。
【００２６】
図２Ｂに示すテーブル１５Ｂは、二値ベクトルとこの二値ベクトルに対応する部分時系列データセットの識別情報である時刻とを対応付けて記憶するように構成されている。例えば、テーブル１５Ｂの１行目のエントリは、二値ベクトルＳt1と、この二値ベクトルＳt1に対応する部分時系列データセットＸt1の識別情報である時刻ｔ１との組が記憶されている。
【００２７】
図２Ａおよび図２Ｂでは、部分時系列データセットの識別情報に時刻を使用したが、それに限定されない。例えば、１つの部分時系列データセットを１つのファイルとして記憶部１５に記憶する場合、ファイルの識別子を部分時系列データセットの識別情報に用いてもよい。また、図２Ａおよび図２Ｂでは、複数の部分時系列データセットと複数の二値ベクトルとを２つのテーブル１５Ａ、１５Ｂを使用して１対１に対応付けたが、それに限定されない。例えば、部分時系列データセットとそれに対応する二値ベクトルとを１つのテーブルの同じエントリに記憶するようにしてもよい。
【００２８】
登録部１２は、入出力部１０を通じて外部から入力した時系列データセットを構成する複数の部分時系列データセットと当該複数の部分時系列データセットを学習後のデータ変換部１４を使用して変換した複数の二値ベクトルとを対応付けて記憶部１５に登録するように構成されている。図３は、登録部１２の処理の一例を示すフローチャートである。
【００２９】
図３を参照すると、登録部１２は、入出力部１０を通じて外部から登録対象となる時系列データセットを入力する（ステップＳ１）。次に登録部１２は、入力した時系列データセットを部分時系列データセット（セグメント）に分割する（ステップＳ２）。個々の部分時系列データセットは、入力の時系列データセットと同じセンサ数を有する。また、複数の部分時系列データセットの時点数は同じである。次に登録部１２は、１つの部分時系列データセット（セグメント）に注目する（ステップＳ３）。次に登録部１２は、学習済みのデータ変換部１４を使用して、注目中の部分時系列データセットを二値ベクトルに変換する（ステップＳ４）。即ち、登録部１２は、注目中の部分時系列データセットを学習済みのデータ変換部１４に入力し、学習済みのデータ変換部１４から出力される二値ベクトルを取得する。次に登録部１２は、注目中の部分時系列データセットとそれに対応する二値ベクトルとを対応付けて記憶部１５に登録する。即ち、登録部１２は、テーブル１５Ａの空きエントリに、注目中の部分時系列データセットと識別情報としての時刻との組を登録する。また登録部１２は、テーブル１５Ｂの空きエントリに、注目中の部分時系列データセットに対応する二値ベクトルと識別情報としての時刻との組を登録する。次に登録部１２は、次の１つの部分時系列データセットに注目を移し（ステップＳ６）、ステップＳ４に戻って上述した処理と同様の処理を繰り返す。登録部１２は、全ての部分時系列データセットに注目し終えると（ステップＳ７でＹＥＳ）、図３の処理を終了する。
【００３０】
検索部１３は、入出力部１０を通じて外部から検索クエリとしての部分時系列データセットを入力し、検索クエリに類似する部分時系列データセットを記憶部１５から検索し、検索結果を入出力部１０経由で外部へ出力するように構成されている。図４は、検索部１３の処理の一例を示すフローチャートである。
【００３１】
図４を参照すると、検索部１３は、入出力部１０を通じて外部から検索クエリとしての部分時系列データセットを入力する（ステップＳ１１）。この検索クエリの部分時系列データセットのセンサ数及び時点数は、記憶部１５のテーブル１５Ａに登録されている部分時系列データセットのセンサ数及び時点数と同じである。次に検索部１３は、学習済みのデータ変換部１４を使用して、検索クエリの部分時系列データセットをｎ次元の二値ベクトルに変換する（ステップＳ１２）。即ち、検索部１３は、検索クエリの部分時系列データセットを学習済みのデータ変換部１４に入力し、データ変換部１４から出力される二値ベクトルを取得する。次に検索部１３は、記憶部１５のテーブル１５Ｂに登録されている１つのエントリに注目する（ステップＳ１３）。次に検索部１３は、検索クエリの二値ベクトルと注目中エントリに記憶されている二値ベクトルとが類似している程度を表す類似度を計算する（ステップＳ１４）。
【００３２】
２つのｎ次元ベクトルａ（ａ1，ａ2，…，ａn）、ｂ（ｂ1，ｂ2，…，ｂn）間の類似度としては、例えば、図９に示す式１１に示すようなユークリッド距離ｄ（ａ，ｂ）を使用することができる。この場合、類似度を表す数値は、２つのｎ次元ベクトルが似ていれば小さな値をとり、似ていなければ大きな値をとる。但し、ｎ次元ベクトル間の類似度はユークリッド距離に限定されない。例えば、ｎ次元ベクトル間の類似度は、ユークリッド距離の逆数であってもよいし、ハミング距離などとしてもよい。
【００３３】
次に検索部１３は、ステップＳ１３で計算した類似度と注目中エントリに記録されている時刻（対応する部分時系列データセットの識別情報）との組を一時的に記憶する（ステップＳ１５）。次に検索部１３は、記憶部１５のテーブル１５Ｂの次の１つのエントリに注目を移し（ステップＳ１６）、ステップＳ１４に戻って上述した処理と同様の処理を繰り返す。そして検索部１３は、テーブル１５Ｂの全てのエントリに注目し終えると（ステップＳ１７でＹＥＳ）、ステップＳ１５で一時的に記憶した全ての類似度と時刻との組の中から、予め設定された閾値以下の類似度を有する組を選択する（ステップＳ１８）。次に検索部１３は、選択した組の時刻に対応する部分時系列データセットを記憶部１５のテーブル１５Ａから取得し、検索結果として入出力部１０を通じて外部へ出力する（ステップＳ１９）。そして、検索部１３は図４に示した処理を終了する。
【００３４】
図４に示した処理では、検索部１３は、検索クエリの部分時系列データセットとの間の類似度を表す数値が閾値以下である部分時系列データセットを検索結果としたが、それに限定されない。例えば、検索部１３は、検索クエリの部分時系列データセットとの間の類似度を表す数値が閾値以下である部分時系列データセットの上位ｍ（ｍは予め設定された整数）個の部分時系列データセットを検索結果としてもよい。
【００３５】
図５は、本実施形態に係る時系列データ処理装置１の全体の動作の概要を示すフローチャートである。図５を参照すると、時系列データ処理装置１は、先ず学習部１１によるデータ変換部１４の学習を行う（ステップＳ２１）。この学習により、データ変換部１４は、複数の部分時系列データセットを、当該複数の部分時系列データセット間の相対的な類似性を保持する複数の二値ベクトルに変換するような特性を有するものとなる。
【００３６】
次に時系列データ処理装置１は、登録部１２によるデータの記憶部１５への登録を行う（ステップＳ２２）。このとき登録部１２は、登録対象となる複数の部分時系列データと、その複数の部分時系列データセットを学習済みのデータ変換部１４によって変換した複数の二値ベクトルとを対応付けて記憶部１５に登録する。
【００３７】
その後、時系列データ処理装置１は、検索部１３による検索を行う（ステップＳ２３）。検索部１３は、入出力部１０から検索クエリとして部分時系列データセットが入力されると、先ず、その時系列データセットを学習済みのデータ変換部１４を使用して二値ベクトルに変換する。次に検索部１３は、記憶部１５のテーブル１５Ｂに記憶された二値ベクトルのうち検索クエリの二値ベクトルに類似する少なくとも１つの二値ベクトルを選択し、それに対応する時刻を取得する。次に検索部１３は、取得した時刻に対応する部分時系列データセットを記憶部１５のテーブル１５Ａから取得し、その取得した部分時系列データセットを入出力部１０へ出力する。検索部１３は、入出力部１０から検索クエリを入力する毎に同様の処理を繰り返し実行する。
【００３８】
続いて、データ変換部１４の構成例について、図６および図７を参照して説明する。図６はデータ変換部１４の構成の一例を示す図である。また、図７はＬＳＴＭ（Ｌｏｎｇ  Ｓｈｏｒｔ−Ｔｅｒｍ  Ｍｅｍｏｒｙ）の構造の一例を示す図である。図６および図７において、小文字の変数記号はベクトルを表し、大文字は行列を表す。また、演算子および関数は全て要素ごとに適用される。
【００３９】
図６に示すように、データ変換部１４は、ＲＮＮ層（Ｒｅｃｕｒｒｅｎｔ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋ  Ｌａｙｅｒ：再帰型ニューラルネットワークレイヤ）１４１と、２つの全結合層１４２、１４３と、二値化部１４５とから構成されている。またＲＮＮ層１４１は、合計Ｔ個のＬＳＴＭ１４４−１〜１４４−Ｔを含んで構成されている。Ｔ個のＬＳＴＭ１４４−１〜１４４−Ｔは、縦続接続されている。先頭からｉ番目のＬＳＴＭ１４１−ｉ（ｉは１以上、Ｔ以下の整数）は、部分時系列データセット（セグメント）からベクトルｘiを入力として受け取り、ベクトルｈiを次段のＬＳＴＭ１４４−ｉ＋１に出力するように構成されている。但し、最終段のＬＳＴＭ１４１−ＴはベクトルｈTを全結合層１４２に出力するように構成されている。ＲＮＮ層１４１と２つの全結合層１４２、１４３とは、特徴抽出器を構成している。
【００４０】
図８は、データ変換部１４へ入力される部分時系列データセット（セグメント）のベクトルｘ1，ｘ2，…，ｘTを説明するための模式図である。図８に示す部分時系列データセットは、説明の便宜上、センサ数を４、時点数を５として簡略化している。ａ１〜ａ５までの５つは、センサＡで得られた観測値を時刻順に並べた部分時系列データである。同様に、ｂ１〜ｂ５、ｃ１〜ｃ５、ｄ１〜ｄ５は、センサＢ、Ｃ、Ｄで得られた観測値を時刻順に並べた部分時系列データである。図８に示す部分時系列データセットをＲＮＮ層１４１に入力する場合、最初に、各センサＡ〜Ｄの部分時系列データの先頭の４つの観測値ａ１、ｂ１、ｃ１、ｄ１から成るベクトルｘ1を先頭のＬＳＴＭ１４４−１へ入力する。次に、各センサＡ〜Ｄの部分時系列データの次の４つの観測値ａ２、ｂ２、ｃ２、ｄ２からなるベクトルｘ2を、ＬＳＴＭ１４４−１からベクトルｈ1が出力されるタイミングに同期してＬＳＴＭ１４４−２へ入力する。以下、観測値ａ３、ｂ３、ｃ３、ｄ３からなるベクトルｘ3をＬＳＴＭ１４４−３へ、観測値ａ４、ｂ４、ｃ４、ｄ４からなるベクトルｘ4をＬＳＴＭ１４４−４へ、観測値ａ５、ｂ５、ｃ５、ｄ５からなるベクトルｘ5をＬＳＴＭ１４４−５へ入力する。このように、ＲＮＮ層１４１を構成するＬＳＴＭの個数は、部分時系列データセットの時点数Ｔに等しい。また、各ＬＳＴＭの入力ベクトルｘの次元数はセンサ数に等しい。
【００４１】
１つのＬＳＴＭ１４４−ｉ（ｉ＝１〜Ｔ）は、図７に示すような構造を有している。即ち、ＬＳＴＭ１４４−ｉは、忘却ゲート、入力ゲート、セル更新ゲート、出力ゲートという合計４つのゲートを有している。またＬＳＴＭ１４４−ｉは、ベクトルの要素毎の乗算、加算を行う幾つかの演算子を有している。図７において、ｘtは時刻ｔにおけるセル（即ちＬＳＴＭ１４４−ｉ）の入力、ｃtは時刻ｔにおけるセルの状態、ｈtは時刻ｔにおけるセルの出力である。
【００４２】
また、図７において、ｆtは時刻ｔにおける忘却ゲートの出力であり、図９に示す式２により計算される。式２において、Ｗfはｘtに対する線形変換行列、Ｒfはｈt-1に対する線形変換行列、ｂfはバイアスであり、何れも忘却ゲートのために準備されたパラメータである。また、σはシグモイド関数であり、活性化関数として使用されている。
【００４３】
また、図７において、ｉtは時刻ｔにおける入力ゲートの出力であり、図９に示す式３により計算される。式３において、Ｗiはｘtに対する線形変換行列、Ｒiはｈt-1に対する線形変換行列、ｂiはバイアスであり、何れも入力ゲートのために準備されたパラメータである。
【００４４】
また、図７において、ａtは時刻ｔにおけるセル更新ゲートの出力であり、図９に示す式４により計算される。式４において、Ｗaはｘtに対する線形変換行列、Ｒaはｈt-1に対する線形変換行列、ｂaはバイアスであり、何れもセル更新ゲートのために準備されたパラメータである。また、ｔａｎｈはハイパボリックタンジェント関数であり、活性化関数として使用されている。
【００４５】
また、図７において、ｏtは時刻ｔにおける出力ゲートの出力であり、図９に示す式５により計算される。式５において、Ｗoはｘtに対する線形変換行列、Ｒoはｈt-1に対する線形変換行列、ｂoはバイアスであり、何れも出力ゲートのために準備されたパラメータである。
【００４６】
ＬＳＴＭ１４４−ｉは、上記４つのゲートの出力に基づいて、時刻ｔにおけるセルの状態ｃtを図９に示す式６により更新する。即ち、ｃtは、前の時刻におけるセルの状態ｃt-1と時刻ｔにおける忘却ゲートの出力ｆtとの要素毎の積と、時刻ｔにおける入力ゲートの出力ｉtと時刻ｔにおけるセル更新ゲートの出力セルａtとの要素毎の積とを要素毎に加算して求められる。
【００４７】
また、ＬＳＴＭ１４４−ｉは、時刻ｔにおける出力ゲートの出力ｏtと時刻ｔにおけるセルの状態ｃtとに基づいて、時刻ｔにおけるセルの出力ｈtを図９に示す式７により更新する。即ち、出力ｈtは、時刻ｔにおける出力ゲートの出力ｏtと、時刻ｔにおけるセルの状態ｃtに活性化関数としてｔａｎｈを適用して得た値との要素毎の積により求められる。
【００４８】
再び図６を参照すると、全結合層１４２は、最終段のＬＳＴＭ１４１−Ｔの出力ｈtを入力し、図９の式８で与えられるｎ１次元のベクトルｆ1を全結合層１４３に出力するように構成されている。式８において、Ｗ1は全結合層１４２の重みを表すｎ１×ｎ０行列であり、全結合層１４２のために準備されたパラメータである。ここで、ｎ０はＬＳＴＭの出力次元数である。
【００４９】
また、全結合層１４３は、全結合層１４２の出力ｆ1を入力し、図９の式９で与えられるｎ２次元のベクトルｆ2を二値化部１４５に出力するように構成されている。式９において、Ｗ2は全結合層１４３の重みを表すｎ２×ｎ１行列であり、全結合層１４３のために準備されたパラメータである。
【００５０】
二値化部１４５は、全結合層１４３の出力ｆ2を入力し、ｆ2の各次元を二値化した二値ベクトルをデータ変換部１４の出力とするように構成されている。全結合層１４３の活性化関数はｔａｎｈなので、ｆ2の各次元の値は必ず−１〜＋１の値域になる。二値化部１４５は、ｆ2の各次元の値を閾値（例えば０）と比較し、閾値以上であれば例えば＋１に、閾値未満であれば−１に二値化する。或いは二値化部１４５は、ｆ2の各次元の値の符号を参照し、−であれば−１に、−でなければ＋１に二値化する。
【００５１】
上記では、二値化部１４５は、全結合層１４３の出力ｆ2の各次元を二値化した二値ベクトルをデータ変換部１４の出力とした。しかし、それに限定されない。二値化部１４５は、全結合層１４２の出力ｆ1の各次元を二値化した二値ベクトルをデータ変換部１４の出力とするように構成されていてもよい。或いは、二値化部１４５は、全結合層１４２の出力ｆ1の各次元を二値化した二値ベクトルと、全結合層１４３の出力ｆ2の各次元を二値化した二値ベクトルとの２種類の二値ベクトルをデータ変換部１４の出力とするように構成されていてもよい。
【００５２】
次に、学習部１１によるデータ変換部１４の機械学習方法について詳細に説明する。
【００５３】
学習部１１は、データ変換部１４が図６に示されるような構成を有する場合、学習を前半と後半に分け、前半では図１０Ａに示すように、全結合層１４２に対して計算される誤差を最小化するように、誤差逆伝搬法によりモデルを学習する。また学習部１１は、後半では図１０Ｂに示すように、全結合層１４３に対して計算される誤差を最小化するように、誤差逆伝搬法によりモデルを学習する。
【００５４】
前半と後半の学習は、基本的に同じ機械学習方法を用いて実施される。以下では、機械学習方法の例として、Ｐａｉｒｗｉｓｅ  ｌｏｓｓ最小化に基づくモデル学習方法と、Ｔｒｉｐｌｅｔ  ｌｏｓｓ最小化に基づくモデル学習方法との２つの学習方法を説明する。
【００５５】
＜Ｐａｉｒｗｉｓｅ  ｌｏｓｓ最小化に基づくモデル学習方法＞
図１１は、Ｐａｉｒｗｉｓｅ  ｌｏｓｓ最小化に基づくモデル学習方法を説明するためのフローチャートである。
【００５６】
図１１を参照すると、学習部１１は、先ず、学習のために準備した時系列データセット、即ちトレーニングデータを入出力部１０経由で外部から入力する（ステップＳ３１）。次に学習部１１は、入力した時系列データセットをセグメントセットに分割する（ステップＳ３２）。即ち、学習部１１は、時系列データを複数のセグメントに分割する。このセグメントのセンサ数及び時点数は、記憶部１５に登録される対象となる部分時系列データセットのセンサ数及び時点数と同じである。次に学習部１１は、セグメントセットからランダムに２セットのバッチ（部分セット）を抽出する（ステップＳ３３）。バッチに属するセグメントの数Ｎをバッチサイズと呼ぶ。また、一方のバッチをデータバッチ、他方のバッチをクエリバッチと呼ぶ。また、データバッチに属するセグメントをデータセグメント、クエリバッチに属するセグメントをクエリセグメントと呼ぶ。
【００５７】
次に学習部１１は、データバッチおよびクエリバッチからそれぞれ１セグメントずつ選んだときの全ての組合せのセグメントペアを生成する（ステップＳ３４）。１つのセグメントペアは、１つのデータセグメントｉと１つのクエリセグメントｊから成る。次に学習部１１は、セグメントペア毎に、データセグメントｉをデータ変換部１４に入力したときの全結合層の出力ベクトルｆiと、クエリセグメントｊをデータ変換部１４に入力したときの全結合層の出力ベクトルｆjの内積Ωijを計算する（ステップＳ３５）。ここで、前半の学習では全結合層１４２が計算の対象となり、後半の学習では全結合層１４３が計算の対象となる。全結合層１４２、１４３の活性化関数はｔａｎｈなので、出力ベクトルｆi，ｆjの次元の値は−１〜＋１の範囲であることが保証される。また、出力ベクトルの内積が大きいほどそのペアの出力は似ている。また学習部１１は、セグメント毎に、データセグメントｉとクエリセグメントｊの類似度Ｓijを計算する（ステップＳ３５）。類似度Ｓijは、１、０の何れかの値とする。例えば、データセグメントｉとクエリセグメントｊとの間のユークリッド距離を計算し、その値が閾値以下であれば類似度Ｓijを１、その値が閾値を超えていれば類似度Ｓijを０とする。
【００５８】
次に学習部１１は、図９に示す式１０で表される損失関数Ｌijが小さくなるようにデータ変換部１４（ＲＮＮモデル）のパラメータを更新する（ステップＳ３６）。式１１において、Ｒ（Ｗ）は計算対象となる全結合層の重みパラメータに対する正則化項である。また、ηは学習率である。
【００５９】
損失関数Ｌijは、似ているセグメントについては出力を似せて、似ていないセグメントについては出力も似せないように損失を設計している。この結果、損失関数Ｌijが小さくなるようにデータ変換部１４のパラメータを更新することにより、データ変換部１４は、複数の部分時系列データセットを、それらの間の相対的な類似性を保持する複数の実数ベクトルに変換するように学習される。
【００６０】
＜Ｔｒｉｐｌｅｔ  ｌｏｓｓ最小化に基づくモデル学習方法＞
図１２は、Ｔｒｉｐｌｅｔ  ｌｏｓｓ最小化に基づくモデル学習方法を説明するためのフローチャートである。
【００６１】
図１２を参照すると、学習部１１は、先ず、学習のために準備した時系列データセットを入出力部１０経由で外部から入力し、複数のセグメントに分割する（ステップＳ４１、Ｓ４２）。この処理は図１１のステップＳ３１、Ｓ３２と同じである。次に学習部１１は、セグメントセットからランダムに３セットのバッチ（部分セット）を抽出する（ステップＳ４３）。１つのバッチをアンカーバッチ、他の１つのバッチを正バッチ、残り１つのバッチを負バッチと呼ぶ。各バッチのバッチサイズはＮである。また、アンカーバッチに属するセグメントをアンカーセグメント、正バッチに属するセグメントを正セグメント、負バッチに属するセグメントを負セグメントと呼ぶ。
【００６２】
次に学習部１１は、アンカーセグメントをランダムに１つ選び、それに似ている正セグメントと、似ていない負セグメントをそれぞれ１つずつ選び、それら３つのセグメントを組み合わせたセグメントの三つ組を生成する（ステップＳ４４）。これをバッチサイズＮ回分繰り返す。セグメント同士が似ている、似ていないは、セグメント間のユークリッド距離などを計算して判定する。次に学習部１１は、セグメントの三つ組毎に以下の値を計算する（ステップＳ４５）。１つは、アンカーセグメントをデータ変換部１４に入力したときの全結合層の出力ベクトルｆiaである。また他の１つは、正セグメントをデータ変換部１４に入力したときの全結合層の出力ベクトルｆipである。最後の１つは、負セグメントをデータ変換部１４に入力したときの全結合層の出力ベクトルｆinである。ここで、前半の学習では全結合層１４２が計算の対象となり、後半の学習では全結合層１４３が計算の対象となる。
【００６３】
次に学習部１１は、図９に示す式１１で表される損失関数Ｌiが小さくなるようにデータ変換部１４（ＲＮＮモデル）のパラメータを更新する（ステップＳ４６）。式１１において、αはマージンである。また、（・）+ ＝ｍａｘ（・，０）である。
【００６４】
上記損失関数Ｌiを用いることにより、アンカーセグメントがデータ空間で正セグメントより負セグメントに近い場合、アンカーセグメントが特徴空間で正セグメントとの距離を縮め、負セグメントとの距離を広げるようにモデルを学習することができる。この結果、データ変換部１４は、複数の部分時系列データセットを、それらの間の相対的な類似性を保持する複数の実数ベクトルに変換するように学習される。
【００６５】
上述したような構成を有する時系列データ処理装置１は、例えば図１４に示すように、通信インタフェース部１００１と、キーボードやマウスなどの操作入力部１００２と、液晶ディスプレイ等の画面表示部１００３と、メモリやハードディスク等の記憶部１００４と、１以上のマイクロプロセッサ等の演算処理部１００５とを有するパーソナルコンピュータ等の情報処理装置１０００と、プログラム１１００とで実現することができる。プログラム１１００は、情報処理装置１０００の立ち上げ時等に外部のコンピュータ読み取り可能な記憶媒体から記憶部１００４に読み込まれ、演算処理部１００５の動作を制御することにより、演算処理部１００５上に、入出力部１０、学習部１１、登録部１２、検索部１３、データ変換部１４、および記憶部１５を実現する。
【００６６】
以上説明したように、本実施形態によれば、時系列データセット単位の類似検索が可能になる。その理由は、複数の部分時系列データセット間の相対的な類似性を保持する複数の二値ベクトルに変換するデータ変換部１４を使用して、被検索対象となる部分時系列データセットを二値ベクトルに変換して変換前の部分時系列データセットと対応付けて記憶部１５に登録しておき、検索クエリとしての部分時系列データセットを、データ変換部１４を使用して二値ベクトルに変換し、変換クエリの二値ベクトルに類似する二値ベクトルを記憶部１５から選択し、その選択した二値ベクトルに対応する部分時系列データセットを記憶部１５から取得して出力するためである。
【００６７】
また、二値ベクトルは、実数ベクトルに比べてデータ量が削減されるため、コンピュータのメモリ量を削減することができる。また、二値ベクトル間の類似度の計算量は、実数ベクトル間の類似度の計算量に比べて少ないため、コンピュータの計算量・計算時間を短縮することができる。また、コンピュータの計算量・計算時間を短縮できるため、コンピュータの消費電力量を削減することができる。
【００６８】
［第２の実施形態］
図１３は、本発明の第２の実施形態に係る時系列データ処理装置２のブロック図である。図１３を参照すると、時系列データ処理装置２は、入出力部２０と、記憶部２５と、処理装置２６とを含んで構成されている。また、処理装置２６は、検索部２３とデータ変換部２４とを備えている。
【００６９】
データ変換部２４は、複数の時系列データの集合である時系列データセットを所定の時間毎に区切った部分時系列データセットを、前記部分時系列データセットの特徴を示す特徴ベクトルに変換するように構成されている。このデータ変換部２４は、例えば図１のデータ変換部１４と同様に構成することができるが、それに限定されない。
【００７０】
記憶部２５は、複数の部分時系列データセットと、前記複数の部分時系列データセットがデータ変換部２４によって変換された複数の特徴ベクトルとを対応付けて記憶するように構成されている。記憶部２５は、例えば図１の記憶部１５と同様に構成することができるが、それに限定されない。
【００７１】
検索部２３は、記憶部２５に記憶された複数の特徴ベクトルのうち、入力された部分時系列データセットがデータ変換部２４によって変換された特徴ベクトルに類似する少なくとも１つの特徴ベクトルを選択し、前記選択した特徴ベクトルに対応する前記部分時系列データセットを出力するように構成されている。検索部２３は、例えば図１の検索部１３と同様に構成することができるが、それに限定されない。
【００７２】
以上のような構成を有する時系列データ処理装置２は、例えば図１４に示すように、通信インタフェース部１００１と、キーボードやマウスなどの操作入力部１００２と、液晶ディスプレイ等の画面表示部１００３と、メモリやハードディスク等の記憶部１００４と、１以上のマイクロプロセッサ等の演算処理部１００５とを有するパーソナルコンピュータ等の情報処理装置１０００と、プログラム１１００とで実現することができる。プログラム１１００は、情報処理装置１０００の立ち上げ時等に外部のコンピュータ読み取り可能な記憶媒体から記憶部１００４に読み込まれ、演算処理部１００５の動作を制御することにより、演算処理部１００５上に、入出力部２０、検索部２３、データ変換部２４、および記憶部２５を実現する。
【００７３】
以上のように構成された時系列データ処理装置２は、以下のように動作する。即ち、データ変換部２４は、複数の時系列データの集合である時系列データセットを所定の時間毎に区切った部分時系列データセットを、前記部分時系列データセットの特徴を示す特徴ベクトルに変換する。次に記憶部２５は、複数の部分時系列データセットと、前記複数の部分時系列データセットがデータ変換部２４によって変換された複数の特徴ベクトルとを対応付けて記憶する。次に検索部２３は、記憶部２５に記憶された複数の特徴ベクトルのうち、入力された部分時系列データセットがデータ変換部２４によって変換された特徴ベクトルに類似する少なくとも１つの特徴ベクトルを選択し、前記選択した特徴ベクトルに対応する前記部分時系列データセットを出力する。
【００７４】
このように構成され動作する時系列データ処理装置２によれば、時系列データセット単位の類似検索が可能になる。その理由は、複数の時系列データの集合である時系列データセットを所定の時間毎に区切った部分時系列データセットを、前記部分時系列データセットの特徴を示す特徴ベクトルに変換するデータ変換部２４を備えているためである。また、複数の部分時系列データセットと、前記複数の部分時系列データセットから変換された複数の特徴ベクトルとを対応付けて記憶部２５に記憶しておき、検索クエリとしての部分時系列データセットを、データ変換部２４を使用して特徴ベクトルに変換し、変換クエリの特徴ベクトルに類似する特徴ベクトルを記憶部２５から選択し、その選択した特徴ベクトルに対応する部分時系列データセットを記憶部２５から取得して出力するためである。
【００７５】
以上、上記各実施形態を参照して本発明を説明したが、本発明は、上述した実施形態に限定されるものではない。本発明の構成や詳細には、本発明の範囲内で当業者が理解しうる様々な変更をすることができる。例えば、以下のような変更が可能である。
【００７６】
例えば、本発明は、検索クエリとして必要な部分時系列データセットが揃い次第、当該部分時系列データセットに対する類似検索を自動で行うよう、構成することが可能である。このように構成することで、時々刻々と部分時系列データセットに対する類似検索をリアルタイムで行うことができる。
【００７７】
また本発明は、記憶部１５に記憶されているセグメントのうち、障害が発生したセグメントと障害が発生したセグメントの一定時間前のセグメント（障害前セグメント）とを把握しておき、現時点のセグメントが、障害前セグメントと一定条件以上類似する場合にアラート等を発生するよう、構成することが可能である。このように構成することで、過去に発生した障害と似たような障害が発生するおそれがある旨を、管理者等に知らせることができる。
【００７８】
また本発明は、例えば、現時点のセグメントと障害前のセグメントとの類似度に比べ、当該現時点から一定時間後におけるセグメントと障害前のセグメントとの類似度が、一定条件以上の割合で上昇（又は下降）した場合にアラート等を発生するよう、構成することが可能である。このように構成することで、過去に発生した障害と似たような障害が発生するおそれがある旨を、管理者等に知らせることができる。
【００７９】
また本発明は、現時点のセグメントが、記憶部１５に記憶されているセグメントのいずれにも一定条件以上類似していない場合にアラート等を発生するよう、構成することが可能である。このように構成することで、記憶部１５に記憶されていない、未知の異常を検出することができる。
【００８０】
なお、本発明は、検索クエリとして必要な部分時系列データセットが揃い次第、当該部分時系列データセットに対する類似検索を自動で行うよう、構成することが可能である。このように構成することで、時々刻々と部分時系列データセットに対する類似検索をリアルタイムで行うことができる。
【００８１】
また、本発明は、記憶部１５に記憶されているセグメントのうち、障害が発生したセグメントと障害が発生したセグメントの一定時間前のセグメント（障害前セグメント）とを把握しておき、現時点のセグメントが、障害前セグメントと一定条件以上類似する場合にアラート等を発生するよう、構成することが可能である。このように構成することで、過去に発生した障害と似たような障害が発生するおそれがある旨を、管理者等に知らせることができる。
【００８２】
また、本発明は、例えば、現時点のセグメントと障害前のセグメントとの類似度に比べ、当該現時点から一定時間後におけるセグメントと障害前のセグメントとの類似度が、一定条件以上の割合で上昇（又は下降）した場合にアラート等を発生するよう、構成することが可能である。このように構成することで、過去に発生した障害と似たような障害が発生するおそれがある旨を、管理者等に知らせることができる。
【００８３】
なお、本発明は、現時点のセグメントが、記憶部１５に記憶されているセグメントのいずれにも一定条件以上類似していない場合にアラート等を発生するよう、構成することが可能である。このように構成することで、記憶部１５に記憶されていない、未知の異常を検出することができる。
【産業上の利用可能性】
【００８４】
本発明は、類似データを検索する分野に利用でき、特に複数の時系列データから構成される時系列データセットの単位で類似検索を行う分野に利用できる。【００８５】
上記の実施形態の一部又は全部は、以下の付記のようにも記載され得るが、以下には限られない。
［付記１］
複数の時系列データの集合である時系列データセットを所定の時間毎に区切った部分時系列データセットを、前記部分時系列データセットの特徴を示す特徴ベクトルに変換するデータ変換部と、
複数の第１の部分時系列データセットと、前記複数の第１の部分時系列データセットが前記データ変換部によって変換された複数の第１の特徴ベクトルとを対応付けて記憶する記憶部と、
前記記憶部に記憶された前記複数の第１の特徴ベクトルのうち、入力された第２の部分時系列データセットが前記データ変換部によって変換された第２の特徴ベクトルに類似する少なくとも１つの第１の特徴ベクトルを選択し、前記選択した第１の特徴ベクトルに対応する前記第１の部分時系列データセットを出力する検索部と
を備える時系列データ処理装置。
［付記２］
前記第１の特徴ベクトル、および前記第２の特徴ベクトルは、次元数ｎの二値ベクトルである
付記１に記載の時系列データ処理装置。
［付記３］
前記次元数ｎは、前記第１の部分時系列データセット、および前記第２の部分時系列データセットに含まれる数値データの総数より少ない
付記２に記載の時系列データ処理装置。
［付記４］
前記データ変換部は、
前記第１の部分時系列データセットを入力し、次元数ｎの実数ベクトルを出力する特徴抽出部と、
前記実数ベクトルを入力し、前記二値ベクトルを出力する二値化部と、を含む
付記２または３に記載の時系列データ処理装置。
［付記５］
前記データ変換部は、
所定のパラメータを有する縦続接続されたＴ個のＬＳＴＭと、
最終段の前記ＬＳＴＭの出力を入力とする、所定のパラメータを有する全結合層と、を含む
付記４に記載の時系列データ処理装置。
［付記６］
それぞれが部分時系列データセットである複数のトレーニングデータを使用して、前記データ変換部の機械学習を行う学習部を備える
付記５に記載の時系列データ処理装置。
［付記７］
前記学習部は、前記複数のトレーニングデータが、前記複数のトレーニングデータ間の相対的な類似性を維持する複数の特徴ベクトルに変換されるように、前記データ変換部の機械学習を行うように構成されている
付記６に記載の時系列データ処理装置。
［付記８］
前記学習部は、
前記複数のトレーニングデータから、複数のトレーニングデータのペアを生成し、
前記ペア毎に、
ペアの一方の前記トレーニングデータｉを前記データ変換部に入力したときの前記全結合層の出力ベクトルとペアの他方の前記トレーニングデータｊを前記データ変換部に入力したときの前記全結合層の出力ベクトルとの内積Ωijと、前記ペアの一方の前記トレーニングデータｉと前記ペアの他方の前記トレーニングデータｊとの間の類似度Ｓijとを計算し、損失関数Ｌij ＝−（Ｓij logΩij＋(1‐Ｓij )log (1‐Ωij )＋ηＲ(Ｗ)が小さくなるように前記データ変換部の前記パラメータを更新する
付記６または７に記載の時系列データ処理装置。
［付記９］
前記学習部は、
前記複数のトレーニングデータから、アンカーセグメントである１つの前記トレーニングデータと、前記アンカーセグメントに類似する正セグメントである１つの前記トレーニングデータと、前記アンカーセグメントに類似しない負セグメントである１つの前記トレーニングデータとから成る複数の三つ組を生成し、
前記三つ組毎に、
前記アンカーセグメントを前記データ変換部に入力したときの前記全結合層の出力ベクトルｆiaと、前記正セグメントを前記データ変換部に入力したときの前記全結合層の出力ベクトルｆipと、前記負セグメントを前記データ変換部に入力したときの前記全結合層の出力ベクトルｆinとを計算し、損失関数Ｌi ＝−Σi=1N（||ｆia‐ｆip||2−||ｆia‐ｆin||2＋α）+ ＋ηＲ(Ｗ)が小さくなるように前記データ変換部の前記パラメータを更新する
付記６または７に記載の時系列データ処理装置。
［付記１０］
複数の時系列データの集合である時系列データセットを所定の時間毎に区切った部分時系列データセットを、前記部分時系列データセットの特徴を示す特徴ベクトルに変換するデータ変換部を使用して、登録対象の複数の第１の部分時系列データセットを複数の第１の特徴ベクトルに変換し、前記複数の第１の部分時系列データセットと前記複数の第１の特徴ベクトルとを対応付けて記憶部に記憶し、
第２の部分時系列データセットを入力し、
前記データ変換部を使用して、前記第２の部分時系列データセットを第２の特徴ベクトルに変換し、
前記記憶部に記憶された前記複数の第１の特徴ベクトルのうち前記第２の特徴ベクトルに類似する少なくとも１つの前記第１の特徴ベクトルを選択し、前記選択した第１の特徴ベクトルに対応する前記第２の部分時系列データセットを出力する
時系列データ処理方法。
［付記１１］
前記第１の特徴ベクトル、および前記第２の特徴ベクトルは、次元数ｎの二値ベクトルである
付記１０に記載の時系列データ処理方法。
［付記１２］
前記次元数ｎは、前記第１の部分時系列データセット、および前記第２の部分時系列データセットに含まれる数値データの総数より少ない
付記１１に記載の時系列データ処理方法。
［付記１３］
前記第１の部分時系列データセットの前記二値ベクトルへの変換では、前記第１の部分時系列データセットを次元数ｎの実数ベクトルに変換し、次に前記実数ベクトルの各次元を二値化する
付記１１または１２に記載の時系列データ処理方法。
［付記１４］
前記第２の部分時系列データセットの前記実数ベクトルへの変換では、所定のパラメータを有し縦続接続されたＴ個のＬＳＴＭと、最終段の前記ＬＳＴＭの出力を入力とする、所定のパラメータを有する全結合層とを使用する
付記１３に記載の時系列データ処理方法。
［付記１５］
前記第１の部分時系列データセットを前記第１の特徴ベクトルに変換する前に、それぞれが部分時系列データセットである複数のトレーニングデータを使用して、前記データ変換部の機械学習を行う
付記１４に記載の時系列データ処理方法。
［付記１６］
前記学習では、前記複数のトレーニングデータが、前記複数のトレーニングデータ間の相対的な類似性を維持する複数の特徴ベクトルに変換されるように、前記データ変換部の機械学習を行う
付記１４に記載の時系列データ処理方法。
［付記１７］
前記機械学習では、
前記複数のトレーニングデータから、複数のトレーニングデータのペアを生成し、
前記ペア毎に、
ペアの一方の前記トレーニングデータｉを前記データ変換部に入力したときの前記全結合層の出力ベクトルとペアの他方の前記トレーニングデータｊを前記データ変換部に入力したときの前記全結合層の出力ベクトルとの内積Ωijと、前記ペアの一方の前記トレーニングデータｉと前記ペアの他方の前記トレーニングデータｊとの間の類似度Ｓijとを計算し、損失関数Ｌij ＝−（Ｓij logΩij＋(1‐Ｓij )log (1‐Ωij )＋ηＲ(Ｗ)が小さくなるように前記データ変換部の前記パラメータを更新する
付記１５または１６に記載の時系列データ処理方法。
［付記１８］
前記学習では、
前記複数のトレーニングデータから、アンカーセグメントである１つの前記トレーニングデータと、前記アンカーセグメントに類似する正セグメントである１つの前記トレーニングデータと、前記アンカーセグメントに類似しない負セグメントである１つの前記トレーニングデータとから成る複数の三つ組を生成し、
前記三つ組毎に、
前記アンカーセグメントを前記データ変換部に入力したときの前記全結合層の出力ベクトルｆiaと、前記正セグメントを前記データ変換部に入力したときの前記全結合層の出力ベクトルｆipと、前記負セグメントを前記データ変換部に入力したときの前記全結合層の出力ベクトルｆinとを計算し、損失関数Ｌi ＝−Σi=1N（||ｆia‐ｆip||2−||ｆia‐ｆin||2＋α）+ ＋ηＲ(Ｗ)が小さくなるように前記データ変換部の前記パラメータを更新する
付記１５または１６に記載の時系列データ処理方法。
［付記１９］
コンピュータを、
複数の時系列データの集合である時系列データセットを所定の時間毎に区切った部分時系列データセットを、前記部分時系列データセットの特徴を示す特徴ベクトルに変換するデータ変換部と、
複数の第１の部分時系列データセットと、前記複数の第１の部分時系列データセットが前記データ変換部によって変換された複数の第１の特徴ベクトルとを対応付けて記憶する記憶部と、
前記記憶部に記憶された前記複数の第１の特徴ベクトルのうち、入力された第２の部分時系列データセットが前記データ変換部によって変換された第２の特徴ベクトルに類似する少なくとも１つの前記第１の特徴ベクトルを選択し、前記選択した第１の特徴ベクトルに対応する前記第２の部分時系列データセットを出力する検索部と、
して機能させるためのプログラムを記憶するコンピュータ読み取り可能な記録媒体。
【符号の説明】
【００８６】
１…時系列データ処理装置
２…時系列データ処理装置
１０…入出力部
１１…学習部
１２…登録部
１３…検索部
１４…データ変換部
１５…記憶部
２０…入出力部
２３…検索部
２４…データ変換部
２５…記憶部
１４１…ＲＮＮ層
１４２…全結合層
１４３…全結合層
１４４−１〜１４４−Ｔ…ＬＳＴＭ
１４５…二値化部
１０００…情報処理装置
１００１…通信インタフェース部
１００２…操作入力部
１００３…画面表示部
１００４…記憶部
１００５…演算処理部
１１００…プログラム
【図１】
2020049666.tif 000003
【図２Ａ】
2020049666.tif 000004
【図２Ｂ】
2020049666.tif 000005
【図３】
2020049666.tif 000006
【図４】
2020049666.tif 000007
【図５】
2020049666.tif 000008
【図６】
2020049666.tif 000009
【図７】
2020049666.tif 000010
【図８】
2020049666.tif 000011
【図９】
2020049666.tif 000012
【図１０Ａ】
2020049666.tif 000013
【図１０Ｂ】
2020049666.tif 000014
【図１１】
2020049666.tif 000015
【図１２】
2020049666.tif 000016
【図１３】
2020049666.tif 000017
【図１４】
2020049666.tif 000018
【手続補正書】
【提出日】令和2年11月12日(2020.11.12)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数の時系列データの集合である時系列データセットを所定の時間毎に区切った部分時系列データセットを、前記部分時系列データセットの特徴を示す特徴ベクトルに変換するデータ変換部と、
複数の第１の部分時系列データセットが前記データ変換部によって変換された複数の第１の特徴ベクトルのうち、入力された第２の部分時系列データセットが前記データ変換部によって変換された第２の特徴ベクトルに類似する少なくとも１つの第１の特徴ベクトルに対応する前記第１の部分時系列データセットを出力する検索部と
を備える時系列データ処理装置。
【請求項２】
前記第１の特徴ベクトル、および前記第２の特徴ベクトルは、次元数ｎの二値ベクトルである
請求項１に記載の時系列データ処理装置。
【請求項３】
前記次元数ｎは、前記第１の部分時系列データセット、および前記第２の部分時系列データセットに含まれる数値データの総数より少ない
請求項２に記載の時系列データ処理装置。
【請求項４】
前記データ変換部は、
前記第１の部分時系列データセットを入力し、次元数ｎの実数ベクトルを出力する特徴抽出部と、
前記実数ベクトルを入力し、前記二値ベクトルを出力する二値化部と、を含む
請求項２または３に記載の時系列データ処理装置。
【請求項５】
前記データ変換部は、
所定のパラメータを有する縦続接続されたＴ個のＬＳＴＭと、
最終段の前記ＬＳＴＭの出力を入力とする、所定のパラメータを有する全結合層と、を含む
請求項１乃至４の何れかに記載の時系列データ処理装置。
【請求項６】
それぞれが部分時系列データセットである複数のトレーニングデータを使用して、機械学習を行う学習部を備える
請求項５に記載の時系列データ処理装置。
【請求項７】
前記学習部は、前記複数のトレーニングデータが、前記複数のトレーニングデータ間の相対的な類似性を維持する複数の特徴ベクトルに変換されるように機械学習する
請求項６に記載の時系列データ処理装置。
【請求項８】
前記学習部は、
前記複数のトレーニングデータから、複数のトレーニングデータのペアを生成し、
前記ペア毎に、
ペアの一方の前記トレーニングデータｉを前記データ変換部に入力したときの前記全結合層の出力ベクトルとペアの他方の前記トレーニングデータｊを前記データ変換部に入力したときの前記全結合層の出力ベクトルとの内積Ωijと、前記ペアの一方の前記トレーニングデータｉと前記ペアの他方の前記トレーニングデータｊとの間の類似度Ｓijとを計算し、損失関数Ｌij ＝−（Ｓij logΩij＋(1‐Ｓij )log (1‐Ωij )＋ηＲ(Ｗ)が小さくなるように前記データ変換部の前記パラメータを更新する
請求項６または７に記載の時系列データ処理装置。
【請求項９】
複数の時系列データの集合である時系列データセットを所定の時間毎に区切った部分時系列データセットを、前記部分時系列データセットの特徴を示す特徴ベクトルに変換し、
複数の第１の部分時系列データセットが変換される複数の第１の特徴ベクトルのうち、入力された第２の部分時系列データセットが変換される第２の特徴ベクトルに類似する少なくとも１つの第１の特徴ベクトルに対応する前記第１の部分時系列データセットを出力する
時系列データ処理方法。
【請求項１０】
コンピュータに対して、
複数の時系列データの集合である時系列データセットを所定の時間毎に区切った部分時系列データセットを、前記部分時系列データセットの特徴を示す特徴ベクトルに変換する処理と、
複数の第１の部分時系列データセットが変換された複数の第１の特徴ベクトルのうち、入力された第２の部分時系列データセットが変換された第２の特徴ベクトルに類似する少なくとも１つの前記第１の特徴ベクトルに対応する前記第１の部分時系列データセットを出力する処理と、
を実行させるためのプログラム。
【国際調査報告】
2020049666.tif 000019
2020049666.tif 000020
2020049666.tif 000021