(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-06-05
(45)【発行日】2024-06-13
(54)【発明の名称】深層学習によるコンパクトな表現と時系列セグメントの取得
(51)【国際特許分類】
G06F 16/9032 20190101AFI20240606BHJP
G05B 23/02 20060101ALI20240606BHJP
【FI】
G06F16/9032
G05B23/02 Z
(21)【出願番号】P 2022578605
(86)(22)【出願日】2021-07-01
(86)【国際出願番号】 US2021040081
(87)【国際公開番号】W WO2022010731
(87)【国際公開日】2022-01-13
【審査請求日】2023-02-16
(32)【優先日】2020-07-07
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2021-06-30
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】504080663
【氏名又は名称】エヌイーシー ラボラトリーズ アメリカ インク
【氏名又は名称原語表記】NEC Laboratories America, Inc.
(74)【代理人】
【識別番号】100123788
【氏名又は名称】宮崎 昭夫
(74)【代理人】
【識別番号】100127454
【氏名又は名称】緒方 雅昭
(72)【発明者】
【氏名】溝口 毅彦
(72)【発明者】
【氏名】ソン、 ドンジン
(72)【発明者】
【氏名】チェン、 ユンコン
(72)【発明者】
【氏名】ルメザヌ、 クリスチャン
(72)【発明者】
【氏名】チェン、 ハイフォン
【審査官】齊藤 貴孝
(56)【参考文献】
【文献】特開2013-206193(JP,A)
【文献】国際公開第2019/176986(WO,A1)
【文献】米国特許出願公開第2019/0034497(US,A1)
【文献】特開2012-133371(JP,A)
【文献】吉永 直生、外2名,時系列データ モデルフリー分析技術,NEC技報,日本,日本電気株式会社,2019年10月31日,第72巻,第1号,p.104-108
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00-16/958
G05B 23/02
(57)【特許請求の範囲】
【請求項1】
類似する多変量の時系列セグメントを取得する、コンピュータで実施される方法であって、
時系列セグメントからロング特徴ベクトル及びショート特徴ベクトルを抽出し(920)、
前記ロング特徴ベクトルをロングバイナリコードに変換し(930)、
前記ショート特徴ベクトルをショートバイナリコードに変換し(930)、
前記ショートバイナリコードに基づいて辞書ロングコードを保存するバイナリ辞書からロングバイナリコードのサブセットを取得し(940)、
辞書ロングコードと前記
ロングバイナリコードとの各ペアの類似度を計算し(950)、
前記ロングバイナリコードと辞書ロングコードとの間の最も近い関係を示す類似度を有する所定の数の辞書ロングコードを識別し(960)、
前記所定の数の辞書ロングコードに関連する所定の数の時系列セグメントを検索する(970)、コンピュータで実施される方法。
【請求項2】
前記所定の数の時系列セグメントをユーザに表示することをさらに含む、請求項1に記載のコンピュータで実施される方法。
【請求項3】
前記ロング特徴ベクトル及び前記ショート特徴ベクトルは、長短期記憶(LSTM)を用いて前記時系列セグメントから抽出される、請求項1に記載のコンピュータで実施される方法。
【請求項4】
前記ロング特徴ベクトルは、前記
ロング特徴ベクトルにおける全てのエントリの符号をチェックすることでロングバイナリコードに変換される、請求項3に記載のコンピュータで実施される方法。
【請求項5】
前記ショート特徴ベクトルは、線形写像によってショートバイナリコードに変換される、請求項4に記載のコンピュータで実施される方法。
【請求項6】
前記ショートバイナリコードをクラスに分類することをさらに含む、請求項5に記載のコンピュータで実施される方法。
【請求項7】
分類することは、前記時系列セグメントに関連付けられた複数のラベルのそれぞれに属する前記ショートバイナリコードの確率を計算することを含む、請求項6に記載のコンピュータによって実行される方法。
【請求項8】
類似する多変量の時系列セグメントを取得するための処理システムであって、
1つまたは複数のプロセッサ(1004)と、
1つまたは複数のプロセッサと接続されたメモリ(1024)と、
時系列セグメントからロング特徴ベクトルを抽出する(920)ように構成された、メモリに格納されたロング特徴抽出器(320)と、
前記ロング特徴抽出器(310)によって生成されたロング特徴を、線形写像によって短い長さの特徴に変換する(920)ように構成された、メモリに格納されたショート特徴抽出器(340)と、
前記ロング特徴抽出器からのロング特徴を、ロング特徴と同じ長さを有するロングバイナリコードに変換する(930)ように構成された、メモリに格納されたロングバイナリ抽出器(320)と、
前記ショート特徴抽出器からのショート特徴を、ショート特徴と同じ長さを有するショートバイナリコードに変換する(930)ように構成された、メモリに記憶されたショートバイナリ抽出器(350)と、
クエリから抽出されたロングバイナリコードと辞書から検索された全てのロングバイナリコードとの間のペア毎の類似度(950)を計算し、所定のロングバイナリコードと辞書ロングコードとの間の最も近い関係を示す類似度を有する所定の数の辞書ロングコードを識別する、メモリに格納された類似度比較器(1130)と、
を有する、処理システム。
【請求項9】
前記ショート特徴抽出器からのショート特徴は、ショート特徴ベクトルにおける全てのエントリの符号をチェックすることで、前記ショート特徴と同じ長さを有するショートバイナリコードに変換される、請求項8に記載の処理システム。
【請求項10】
前記類似度比較器は、前記所定の数の辞書ロングコードに関連する所定の数の時系列セグメントを検索し、前記所定の数の時系列セグメントをユーザに表示するように構成された、請求項8に記載の処理システム。
【請求項11】
前記ロング特徴ベクトル及び前記ショート特徴ベクトルは、長短期記憶(LSTM)を用いて前記時系列セグメントから抽出される、請求項
9に記載の処理システム。
【請求項12】
前記ロング特徴ベクトルは、前記
ロング特徴ベクトルにおける全てのエントリの符号をチェックすることでロングバイナリコードに変換される、請求項11に記載の処理システム。
【請求項13】
前記ショート特徴ベクトルは、線形写像によってショートバイナリコードに変換される、請求項
9に記載の処理システム。
【請求項14】
前記ショートバイナリ抽出器は、前記ショートバイナリコードをクラスに分類するようにさらに構成された、請求項13に記載の処理システム。
【請求項15】
類似する多変量の時系列セグメントを検索するための
手順をコンピュータに実行させるためのプログラムであって、
前記コンピュータに、
時系列セグメントからロング特徴ベクトル及びショート特徴ベクトルを抽出し(920)、
前記ロング特徴ベクトルをロングバイナリコードに変換し(930)、
前記ショート特徴ベクトルをショートバイナリコードに変換し(930)、
前記ショートバイナリコードに基づいて辞書ロングコードを保存するバイナリ辞書からロングバイナリコードのサブセットを取得し(940)、
辞書ロングコードと前記
ロングバイナリコードとの各ペアの類似度を計算し(950)、
前記ロングバイナリコードと辞書ロングコードとの間の最も近い関係を示す類似度を有する所定の数の辞書ロングコードを識別し(960)、
前記所定の数の辞書ロングコードに関連する所定の数の時系列セグメントを検索する(970)、
手順を実行させるための、
プログラム。
【請求項16】
前記コンピュータに、所定の数の時系列セグメントをユーザに表示
させるための手順を実行させることをさらに含む、請求項15に記載の
プログラム。
【請求項17】
前記ロング特徴ベクトル及び前記ショート特徴ベクトルは、長短期記憶(LSTM)を用いて前記時系列セグメントから抽出される、請求項15に記載の
プログラム。
【請求項18】
前記ロング特徴ベクトルは、前記
ロング特徴ベクトルにおける全てのエントリの符号をチェックすることでロングバイナリコードに変換される、請求項17に記載の
プログラム。
【請求項19】
前記ショート特徴ベクトルは、線形写像によってショートバイナリコードに変換される、請求項18に記載の
プログラム。
【請求項20】
前記コンピュータに、前記ショートバイナリコードをクラスに分類
させるための手順を実行させることをさらに含み、前記分類は、前記ショートバイナリコードが前記時系列セグメントに関連付けられた複数のラベルのそれぞれに属する確率を計算することを含む、請求項19に記載の
プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
この出願は、2020年7月7日に出願された米国仮特許出願第63/048,680号及び2021年6月30日に出願された米国特許出願第17/364,125号に対する優先権を主張し、それらの開示の全てをここに取り込む。
【0002】
本発明は、類似する多変量時系列の検索に関し、より詳細には、類似する多変量時系列を検索するためのニューラルネットワークの訓練及び実装に関する。
【背景技術】
【0003】
時系列は、ある期間にわたって時間順に収集された一連の観察またはデータポイントである。多変量時系列には複数の時間に依存する変数があり、変数の値は一定期間にわたって収集される。データポイントは時間において等間隔に配置できる。分析では、収集されたデータのパターン、特に周期性を探すことができる。時系列予測は、モデルを用いて以前に観測された値に基づき将来の値を予測することである。多変量時系列データは、現実世界のアプリケーション、例えば、発電所、炉の運転、飛行機や自動車のエンジン、大気汚染の監視のような複雑な物理システムの多くの分野で自然に発生する。時系列データは、産業プロセスの監視や、経済及びビジネスデータの追跡から発生する可能性がある。時系列データのモデルには多くの形式があり、様々な確率過程を表すことができる。
【0004】
ある期間にわたって収集された一連の観察またはデータポイントは、後で検索及び取り出すために識別及び保存できる。データポイントの各セットを識別して保存するために、バイナリコードを識別子として割り当てることができる。但し、データポイントの最適なバイナリコードを見つける問題はNP困難である。
【発明の概要】
【0005】
本発明の一態様によれば、類似する多変量の時系列セグメントを検索するコンピュータで実施される方法が提供される。本方法は、時系列セグメントからロング特徴ベクトルとショート特徴ベクトルを抽出し、ロング特徴ベクトルをロングバイナリコードに変換し、ショート特徴ベクトルをショートバイナリコードに変換することを含む。さらに、本方法は、ショートバイナリコードに基づいて辞書ロングコードを保存するバイナリ辞書からロングバイナリコードのサブセットを取得することと、各辞書ロングコードを有するロング特徴ベクトルの各ペアについて類似度を計算することとを含む。さらに、本方法は、ロングバイナリコードと辞書ロングコードとの間の最も近い関係を示す類似度測度を有する所定の数の辞書ロングコードを識別すること、所定の数の辞書ロングコードに関連する所定の数の時系列セグメントを検索することとを含む。
【0006】
本発明の別の態様によれば、類似する多変量の時系列セグメントを検索するための処理システムが提供される。本システムは、1つまたは複数のプロセッサと、1つまたは複数のプロセッサに接続されたメモリとを含む。本システムは、メモリに保存されたロング特徴抽出器及びショート特徴抽出器をさらに含み、ロング特徴抽出器は、時系列セグメントからロング特徴ベクトルを抽出するように構成され、ショート特徴抽出器は、ロング特徴抽出器によって生成されたロング特徴を線形写像によりショート特徴に変換するように構成されている。本システムは、メモリに保存されたロングバイナリ抽出器及びショートバイナリ抽出器をさらに含み、ロングバイナリ抽出器は、ロング特徴抽出器からのロング特徴を、ロング特徴と同じ長さを有するロングバイナリコードに変換するように構成され、ショートバイナリ抽出器は、ショート特徴抽出器からのショート特徴を、ショート特徴と同じ長さを有するショートバイナリコードに変換するように構成されている。本システムは、メモリに保存された類似度比較器をさらに含み、類似度比較器は、クエリから抽出されたロングバイナリコードと辞書から取得された全てのロングバイナリコードとの間のペア毎の類似度を計算し、ロングバイナリコードと辞書のロングコードとの間の最も近い関係を示す類似度測度を有する、所定の数の辞書ロングコードを識別するように構成されている。
【0007】
本発明のさらに別の態様によれば、類似する多変量の時系列セグメントを検索するためのコンピュータプログラム製品であって、コンピュータプログラム製品は、プログラム命令が実装された非一時的にコンピュータで読み取り可能な記録媒体を含み、プログラム命令はコンピュータによって実行可能である。コンピュータによって実行可能なプログラム命令がコンピュータで実行されると、コンピュータに、時系列セグメントからロング特徴ベクトルとショート特徴ベクトルを抽出させ、ロング特徴ベクトルをロングバイナリコードに変換させ、ショート特徴ベクトルをショートバイナリコードに変換させる。コンピュータによって実行可能なプログラム命令は、さらにコンピュータに、ショートバイナリコードに基づいて辞書ロングコードを保存するバイナリ辞書からロングバイナリコードのサブセットを取得させ、各辞書ロングコードを有するロング特徴ベクトルの各ペアについて類似度を計算させる。コンピュータによって実行可能なプログラム命令はさらに、さらにコンピュータに、ロングバイナリコードと辞書ロングコードとの間の最も近い関係を示す類似度測度を有する所定の数の辞書ロングコードを識別させ、所定の数の辞書ロングコードに関連する所定の数の時系列セグメントを検索させる。
【0008】
これら及び他の特徴並びに利点は、以下の典型的な実施形態の詳細な説明を添付の図面と併せて読むことで明らかになるであろう。
【0009】
本開示では、後述するように、以下の図面を参照しながら好ましい実施形態について詳細に説明する。
【図面の簡単な説明】
【0010】
【
図1】
図1は、本発明の一実施形態による、ニューラルネットワークによってハッシュコードの後の生成のために複数のセンサから多変量時系列データを収集するための高レベルシステム/方法を示すブロック/フロー図である。
【0011】
【
図2】
図2は、本発明の一実施形態による、ハッシュコードを生成及び記憶するニューラルネットワークのシステム/方法を示すブロック/フロー図である。
【0012】
【
図3】
図3は、本発明の一実施形態による、ロング及びショート特徴抽出器を用いたロング及びショートバイナリコード生成のためのシステム/方法を示すフロー図である。
【0013】
【
図4】
図4は、本発明の一実施形態による、深層サブ線形ハッシングネットワーク(DSLHN)のシステム/方法のアーキテクチャを示すブロック/フロー図である。
【0014】
【
図5】
図5は、本発明の一実施形態による、ローカルな境界を伴うトリプレット損失を示す図である。
【0015】
【
図6】
図6は、本発明の一実施形態による、包括的な境界を伴うトリプレット損失及び交差エントロピーを示す図である。
【0016】
【
図7】
図7は、本発明の一実施形態による、ハッシュコードの生成及び検索のためにニューラルネットワークを訓練する方法を示すブロック/フロー図である。
【0017】
【
図8】
図8は、本発明の一実施形態による、ハッシュコードの生成及び検索のためにニューラルネットワークを実施させる方法を示すブロック/フロー図である。
【0018】
【
図9】
図9は、本発明の一実施形態による、時系列検索のためにニューラルネットワークに実施させる方法を示すブロック/フロー図である。
【0019】
【
図10】
図10は、本発明の一実施形態による、本方法及び本システムを適用できる例示的な処理システム1000を示す図である。
【0020】
【
図11】
図11は、本発明の一実施形態による、LSTM及びGRUニューラルネットワーク及びデータベースに本方法を適用し、それらを使用できる例示的な処理システム1000を示す図である。
【発明を実施するための形態】
【0021】
本発明の実施形態によれば、深層学習ニューラルネットワークを用いて大量の履歴データから関連性が最も高いデータを効率的に検索するために、履歴時系列データのコンパクトな表現を取得するためのシステム及び方法が提供される。多変量時系列検索のタスクは、システム状態の識別、障害検出及び障害予測を含む、複雑なシステムの多くのタスクに適用できる。センサを人に装着して健康状態を継続的に監視することもできる。システムから記録された大量の過去の多変量時系列データを用いて、同様の障害発生と比較することで、システムの現在の状態を理解できる。現在の時系列セグメントを用いてクエリを実行することで、関連する多変量の時系列セグメント(つまり、短い期間続く多変量の時系列のスライス)をデータベースから検索することを、多変量時系列検索と称す。
【0022】
しかしながら、保存されたオブジェクトを識別するために用いるメモリの量は、全てのオブジェクトコードがRAMに収まるように十分に小さくすべきである。そうでない場合、すなわちオブジェクトコードの大部分をディスクに保存する必要がある場合、ディスクへのアクセスはRAMへのアクセスよりもはるかに遅いため、クエリの応答時間が急激に悪化する。メモリの使用量を低減するために、時系列セグメントのより簡素な表現を取得する場合がある。未加工(raw)の入力空間における類似するサンプルは、トリプレット損失を最小限に抑制することで近くのバイナリコードに写像できるが、トリプレット損失によって捕捉される境界は、トリプレットのサンプルの選択によって異なる。交差エントロピー損失は、包括的な判定境界を捕捉するために利用できる。
【0023】
セマンティックなハッシングでは、データベースにおける各アイテムをコンパクトなバイナリコードで表すことができる。このコードは、類似するアイテムが類似のバイナリコードを有し、新しいオブジェクト入力のバイナリコードを計算できるように簡素な順伝播型ネットワークが構築されている。
【0024】
1つまたは複数の実施形態において、深層ニューラルネットワークを訓練することで、入力データのコンパクトなバイナリコードの表現を提供できる。多変量時系列検索では、バイナリ表現に基づいて現在の観測値をクエリすることで、膨大な量の履歴データから最も関連性が高い多変量の時系列セグメントを見つけることができる。例えば、発電所で何らかの障害が発生している場合、発電所のオペレータは、特定の異常な状態を識別するために、過去の同様の障害事例を参照する必要がある。したがって、関連する多変量の時系列セグメント(つまり、短期間の多変量の時系列データのスライス)をデータベースから検索するには、現在の障害状態に関する現在の時系列データセグメントをクエリする。バイナリコードは、未加工の入力空間における時系列の履歴データの相対的な類似関係をコンパクトな表現で保存できる。学習ベースのハッシングは、トリプレット損失を最小限に抑制することで、未加工の入力空間における類似するサンプルが近くのバイナリコードに写像されるように、ビット毎の表現を保持するコンパクトで類似度を学習することを目的としている。学習ベース(データ依存)のハッシュ法は、過去の訓練サンプルを活用してハッシュ関数を構築する。
【0025】
様々な実施形態において、包括的な判定境界を考慮した効率的な多変量時系列検索のために、エンドツーエンドアーキテクチャを提供することができる。相対的な類似関係を考慮するだけでは、判定境界の全体像を把握できない可能性があり、コンパクトなバイナリ表現であっても、多変量時系列データを取得するために高コストな手順が必要になる場合がある。コンパクトなバイナリ表現を用いても、関連性が最も高い時系列を取得するには、全ての履歴データの並べ替えや類似度検索等の高コストな手順が必要になる場合がある。
【0026】
様々な実施形態において、深層サブ線形ハッシングネットワーク(DSLHN:Deep Sub-Linear Hashing Network)を用いて多変量時系列検索及び分類を実行できる。DSLHNは、長短期記憶(LSTM:Long Short-Term Memory)ユニットを用いて、時間ダイナミクスを捕捉する入力時系列セグメントから簡素な低次元特徴を抽出する。2つのハッシュ関数は、2つの異なる長さのバイナリコード(フルレングス(full-length)バイナリコードと、より短いサブ線形バイナリコード)を、2つの直列な全接続層によって特徴から予測できる。DSLHNは、1つの時系列セグメントから2つの長さが異なるバイナリコード(フルレングスバイナリコードと、より短いサブ線形バイナリコード)を生成できる。
【0027】
様々な実施形態において、教師有り学習ベースのハッシングにおける十分なラベル情報を利用するために分類器が用いられる。入力データからのコンパクトなバイナリ表現は、データ依存のハッシングまたは学習ベースのハッシングの場合がある。入力される多変量の時系列セグメント毎に異なる長さの2つのバイナリコードを抽出できるため、効率的な類似度検索を実行できる。
【0028】
1つまたは複数の実施形態において、ロング特徴抽出器及びショート特徴抽出器を含む深層ニューラルネットワークを用いて多変量時系列全体からセグメントを抽出し、LSTM/GRU等の回帰型ニューラルネットワーク(RNN)を用いて各セグメントの特徴を抽出する。ロングバイナリ抽出器は、特徴ベクトル内の全てのエントリの符号をチェックすることで、ロング特徴を同じ長さのバイナリコードに変換できる。抽出されたロングバイナリコードは、データベースに保存できる。ショート特徴抽出器は、線形写像によってロング特徴をショート特徴に変換できる。ショートバイナリ抽出器は、ショート特徴ベクトルの全てのエントリの符号をチェックすることで、ショート特徴を同じ長さのバイナリコードに変換できる。抽出されたショートバイナリコードは、データベースに保存できる。分類器は、各ラベルに属する確率を計算し、指定されたラベルに基づいて誤分類による損失を計算できる。スライディングウィンドウを用いて多変量時系列全体からセグメントを抽出できる。この場合、スライディングウィンドウの長さは、時系列の合計の長さよりも短くなる。
【0029】
本発明の態様は、特定の例示的なアーキテクチャに関して説明されることを理解されたい。しかしながら、他のアーキテクチャ、構造、構成要素及びプロセスの特徴及びステップは、本発明の態様の範囲内で変更してもよい。
【0030】
ここで、同じ数字が同一または同様の要素を表す図面、
図1を詳細に参照すると、
図1には、本発明の実施形態による、ニューラルネットワークによってハッシュコードの後の生成のために複数のセンサから多変量時系列データを収集するための高レベルシステム/方法を示すブロック/フロー図である。
【0031】
1つまたは複数の実施形態において、複数のセンサ110は、観察対象の対応するシステムに関するセンサ読み取り値を収集し、センサ読み取り値の多変量時系列データ120を出力115できる。ここで、各異なるセンサA、B、C、Dは、異なるタイプの時系列データを生成できる。センサ110は、例えば、温度、湿度、振動、圧力、電圧、電流、磁場、電場を測定するためのセンサ及び光センサ等の物理センサ、並びにコンピュータシステムで実行されているオペレーティングシステム及びアプリケーションの状態及び動作に関する情報を記録する、コンピュータシステムにインストールされたロギングユーティリティ等のソフトウェアセンサであり得る。収集された多変量時系列データ120は、センサ110からシステムの挙動の特定の特徴を捕捉する複数の時系列セグメント125、126から構成することが可能であり、観察対象のシステムの挙動を分析してシステムの動作を理解する及び/または予測することができる。多変量時系列データ120は、分析及び保存のためにニューラルネットワーク140に供給することが可能であり(130)、ニューラルネットワーク140は深層学習ニューラルネットワークとすることができる。
【0032】
様々な実施形態において、ニューラルネットワーク140は、回帰型ニューラルネットワーク(RNN)、例えば、長短期記憶(LSTM)またはゲートリカレントユニット(GRU:gated recurrent unit)であってもよい。ニューラルネットワークは、1つまたは複数の入力ノード142、隠れノード145及び出力ノード147を含むことができる。
【0033】
1つまたは複数の実施形態において、ニューラルネットワーク140は、多変量時系列データ120のロング及びショート特徴からバイナリコードを生成するように訓練された複数のニューラルネットワークを含むことができる。ニューラルネットワーク140は、バイナリコードを生成するための重みを含む1つ以上の隠れ層を有する深層ニューラルネットワークであってもよく、隠れノード145は1つ以上の隠れ層を形成し、隠れ層は全接続されていてもよい。
【0034】
様々な実施形態において、より最近の時系列データセグメント126は、同様の以前の時系列データセグメント125を識別するための基準となり得る。時系列検索タスクは、より最近のクエリ時系列セグメント126と履歴時系列セグメント125との間のペア毎の類似度に基づいて関連する時系列を識別し、履歴データベースから検索することを目的とする。
【0035】
様々な実施形態において、提案するモデルは、長短期記憶(LSTM)ユニットを用いて時間ダイナミクスを捕捉する入力時系列セグメントから簡素な低次元特徴を抽出する。2つの異なるハッシュ関数は、2つの連続する全接続層によって、特徴から長さが異なる2つのバイナリコードを予測できる。モデルはエンドツーエンドで訓練できるため、2つのバイナリコードの2つのトリプレット損失は相対的な類似関係と交差エントロピー損失とを同時に保存し、ラベル情報を十分に活用して包括的な判定境界を捕捉できる。実際の値の特徴とそれに対応するハッシュコードの両方が、ニューラルネットワークにおけるエンドツーエンドで共に学習できる。
【0036】
図2は、本発明の一実施形態による、ハッシュコードを生成及び記憶するニューラルネットワークのシステム/方法を示すブロック/フロー図である。
【0037】
様々な実施形態において、ニューラルネットワーク140は、多変量時系列データ120のセグメント125、126毎に個別のハッシュコード160を生成及び出力150するように訓練できる。これにより、ニューラルネットワーク140は、検索効率が向上した小さな検索スペースを提供するショートハッシュコード及び/またはロング特徴と同じ長さのロングハッシュコードを生成するように訓練できる。ロングハッシュコード及びショートハッシュコードは、その後の検索及び取り出しのためにデータベース180に保存170できる。
【0038】
様々な実施形態において、長さが異なる2つのバイナリコード(ハッシュコード)160は、サブ線形バイナリコードによって特定されるように、履歴時系列データのサブセットのみを検索することを含む、サブ線形検索を可能にする。バイナリコードは、(特徴空間距離またはセマンティック距離のいずれかに関して)類似するイメージを、低ハミング距離のバイナリ文字列に写像できる。
【0039】
様々な実施形態において、深層ニューラルネットワークは、ネットワークの最上位層で取得されたコードのための次の3つの基準を用いることで、ネットワークのパラメータを学習できる。(1)元の実数値の特徴と学習されたバイナリベクトルとの間の損失を最小化する。(2)バイナリコードは各ビットに均等に分散される。(3)各ビットは可能な限り独立している。ニューラルネットワークのパラメータは、最上位層の最適化目的関数に基づく誤差逆伝播法によって更新できる。
【0040】
様々な実施形態において、これらの2つのバイナリコードに対して2つのトリプレット損失を用いて、相対的な類似関係を同時に保存できる。潜在空間で包括的な判定境界を捕捉するためのラベル情報を十分に活用するために、交差エントロピー損失を用いることができる。深層サブ線形ハッシングネットワーク(DSLHN)は、2つのトリプレット損失の合計と、確率的勾配降下法に基づくネットワーク全体の誤差逆伝播法による交差エントロピー損失を最小化することで、エンドツーエンドで訓練できる。サブ線形バイナリコードによって特定された履歴データのサブセットのみを検索する必要があるサブ線形検索が、クエリに関して実行できる。
【0041】
図3は、本発明の一実施形態による、ロング及びショート特徴抽出器を用いたロング及びショートバイナリコード生成のためのシステム/方法を示すブロック/フロー図である。
【0042】
様々な実施形態において、複数の時系列セグメントを含む多変量時系列120は、多変量時系列120全体からセグメント125を抽出するためにスライディングウィンドウを用いるロング特徴抽出器310に供給できる。回帰型ニューラルネットワーク(RNN)、例えばLSTMまたはGRUを用いて各セグメント125、126からロング特徴を抽出できる。各セグメントは、事前に定義された時間ステップ数の間続く(持続時間や期間等)多変量時系列のスライスにすることができる。時系列セグメント126は、時系列120からの最新の時系列セグメントであってもよい。
【0043】
様々な実施形態において、ロングバイナリ抽出器320は、ロング特徴抽出器310からロング特徴を受信し、ロング特徴と同じ長さを有するロングバイナリコード330に変換できる。ロングバイナリコード330は、データベースに保存できる。
【0044】
様々な実施形態において、例えばLSTMまたはGRU等の回帰型ニューラルネットワーク(RNN)で実現できるショート特徴抽出器340を用いて、線形写像によりロング特徴抽出器310で生成されたロング特徴をより短い特徴に変換できる。
【0045】
様々な実施形態において、ショートバイナリ抽出器350は、ショート特徴抽出器340からショート特徴を受信し、ショート特徴ベクトルにおけるエントリの符号をチェックすることで、受信したショート特徴を該ショート特徴と同じ長さを有するショートバイナリコード360に変換できる。ショートバイナリコード360は、データベースに保存できる。様々な実施形態において、ショートバイナリコード360は、ロングバイナリコード330よりもはるかに短く、例えば、ロングコードは256ビット長であり、ショートコードは32ビット長の場合がある。ショートコードは、例えば、ロングコードの1/8の長さであってもよく、ロングコードの約1/4から約1/16の長さであってもよく、ロングコードの約1/6から約1/12の長さであってもよく、他の長さの関係も考えられる。
【0046】
様々な実施形態において、分類器370は、ショート特徴を受け取り、該ショート特徴が属するクラスの確率を計算することが可能であり、各クラスはラベル380で識別され、提供されたラベル380に基づいて、分類器による誤分類からの損失を計算できる。損失は、ロング特徴抽出器310及び/またはショート特徴抽出器340のパラメータを更新するために使用できる。損失は、ロングバイナリコード及びショートバイナリコードの両方のトリプレット損失、並びにショート特徴の交差エントロピー損失の場合がある。パラメータは、トリプレットの最小化に基づいて更新できる。様々な実施形態において、分類器370は、ラベル380によって提供されるグラウンドトゥルースからの異なるクラスを含むマルチクラス分類器であり、ラベルによって特定される各クラスに属するショート特徴の確率を計算できる。例えば、3つのクラスc1、c2及びc3が存在する場合、分類器370は、各クラスに属するショート特徴「f」の確率を計算する、すなわち、p(c1|f)、p(c2|f)及びp(c3|f)を計算する。
【0047】
様々な実施形態において、訓練を終了した後、新しい時系列セグメントを用いてハッシュ処理を実行できる。ショートバイナリコードと同じビットパターンを有するロングバイナリコードのセットを保存するロングバイナリ辞書を構築できる。
【0048】
様々な実施形態において、ラベル付けされた多変量の時系列セグメント
【数1】
(ここで、yはラベルを示す)は、d次元及び長さwのセグメント
【数2】
及びラベル
【数3】
のタプルとして示される。ここで、wはウィンドウの長さであり、
【数4】
は長さwの時系列セグメントであり、
【数5】
は特定の時点tにおける時系列セグメントの全ての次元からのベクトルであり、Cは全てのクラスラベルのセットである。
【0049】
【数6】
で示される履歴時系列セグメントの集合があると仮定する。ここで、Nは該集合におけるセグメントの総数である。新しく入力される多変量の時系列セグメントのクエリ
【数7】
、すなわち以前はセットの構成要素ではなかったwタイムステップ(例えば、時系列セグメント126)に続くd次元時系列のスライスを考えると、時系列検索のタスクは、新しい時系列セグメント126に最も類似するDにおける時系列セグメントを見つけることである。すなわち、以下を取得することである。
【0050】
【0051】
ここで、pは、N個のセグメントに関するp番目のセグメント
【数9】
のインデックスであり、
【数10】
は、2つの多変量の時系列セグメント間の類似度を測定する関数である。これは、ロング特徴ベクトルと辞書ロングコードとの各ペアの類似度を計算するために利用できる。
【0052】
特徴抽出層410。多変量時系列検索を効率的に実行するために、時間的なダイナミクスを捕捉する未加工の多変量の時系列セグメントの良好で簡素な表現が得られる。特徴抽出層410において、多変量の時系列セグメント
【数11】
但し、
【数12】
が与えられると、
【数13】
から簡素なm次元(m<<d×w)の表現(特徴)hまでの非線形特徴抽出関数
【数14】
を学習する。ここで、hは、
【数15】
を伴う
【数16】
である。様々な実施形態において、例えば、m=256であり、dxw>20000である。dxwは、mの値の約50倍(50×)から約100倍(100×)、または約75倍(50×)から約80倍(80×)の範囲であってもよい。
【0053】
様々な実施形態において、LSTMは簡素であり、入力の時間的なダイナミクス及び長期依存性の両方を明示的に捕捉し、シーケンス用のシーケンス学習に使用できるため、多変量の時系列セグメントから特徴を抽出することは、LSTMをFとして利用できる。各LSTMユニットは、状態
【数17】
を有するメモリセルと、メモリセルへのアクセスを制御する忘却ゲート
【数18】
、入力ゲート
【数19】
及び出力ゲート
【数20】
の3つのシグモイドゲートで構成される。LSTMユニットの更新は、次のように要約できる。
【0054】
【0055】
【0056】
【0057】
【0058】
【0059】
ここで、
【数26】
は、先の隠れ状態h
t-1の垂直連結であり、現在の入力
【数27】
は要素毎のロジスティックシグモイド関数であり、
【数28】
は要素毎の乗算演算子(すなわちアダマール積)である。
【0060】
重み
【数29】
及びバイアス
【数30】
は、学習するパラメータであり、重みは行列形式にできる。特徴抽出器において、LSTMユニットh
wの最近の隠れ状態は未加工の多変量の時系列セグメントの特徴(簡素な表現)として使用される。
【0061】
図4は、本発明の一実施形態による、深層サブ線形ハッシングネットワーク(DSLHN)のシステム/方法のアーキテクチャを示すブロック/フロー図である。
【0062】
特徴バイナリ層420。多変量時系列の簡素な表現であっても、クエリを用いて履歴時系列を検索することは、クエリと履歴データとの間の全てのペアの類似度を計算し、それらの類似度に基づいてペアをソートすることを含む、時間を要するプロセスである。このプロセスを回避するため、効率的な多変量時系列検索のためにはるかに簡素なバイナリ表現を利用するサブ線形検索戦略を採用できる。
【0063】
様々な実施形態において、特徴バイナリ層420では、長さが異なる2種類のバイナリコード330、360、すなわちv1がv2よりも長い(v1>v2)、v1ビットのフルレングスバイナリコード及びv2ビットのサブ線形バイナリコードは、回帰型ニューラルネットワーク(RNN)として実装できるロング特徴抽出器310及びショート特徴抽出器340を含む、特徴抽出層410の出力から抽出できる。
【0064】
バイナリコード予測関数。未加工の多変量の時系列セグメントh
wの表現が与えられると、2つの写像
【数31】
及び
【数32】
を学習することを目指す。これらは、m次元の実数値入力
【数33】
をv1ビット及びv2ビットのバイナリコードにそれぞれ圧縮する。これらの写像は、文献では全バイナリ埋め込みまたはハッシュ関数と呼ばれ、次のように表現される。
【0065】
【0066】
ここで、sgn(・)は、入力の各要素の符号を抽出する要素毎の符号関数であり、
【数35】
は、FC1及びFC2で表される予測関数である。H
1及びH
2はそれぞれハッシュ関数である。特定のデータドメインや実用的なアプリケーションに対応するために、様々な予測機能を利用できる。様々な実施形態において、G1及びG2の線形予測関数は、
【0067】
【0068】
【0069】
ここで、
【数38】
は、学習する重み行列である。各ビットをほぼ均衡させ、可能な限り多くの情報を取得するためのバイアス項は、
【数39】
及び
【数40】
である。ここで、
【数41】
は全てのサンプル
【数42】
の平均であり、
【数43】
は全てのサンプルのG
1(h)の平均であり、
【0070】
【0071】
【0072】
ハッシュ関数H1及びH2全体は以下のようになる。
【0073】
【0074】
【0075】
これらは、それぞれW
1及びW
2によってパラメータ化される。以下の説明では、
【数48】
を表すのに、単にH
1(h)及びH
2(h)を用いる。
【0076】
トリプレット損失。所望のハッシュ関数は、入力空間における2つの多変量時系列間の関係から、2つのバイナリコード間の出力(ハミング)空間における相対的な類似関係を維持する必要がある。ペア毎の類似度のみを考慮するのではなく、トリプレット(a,p,n)∈Ttripletの形式の相対的な類似度を利用できる。そのインデックスペア(a,p)は、(a,n)によって割り当てられたセグメントペア(Xa,Xn)よりも類似する入力セグメントペア(Xa,Xp)を特定する。ここで、「a」はアンカーを表し、「n」はネガティブを表し、「p」はポジティブを表す。トリプレット損失(例えば、アンカー、ポジティブ、ネガティブ)を用いることで、アンカーとポジティブ間のハミング距離がアンカーとネガティブ間のハミング距離よりも小さくなるようにできる。Ttripletは、考えられる全てのトリプレットインデックスのセット{}である。トリプレットは、XaとXpが同じクラスに属し、XaとXnが異なるクラスに属するように選択されるクラスラベル、例えば(a,p,n)に基づいて選択される。直観的に、目的のハッシュ関数Hi(・)(i=1;2)は、ハミング空間内でLtripletによって明らかにされたこれらの相対的な類似関係を保持すると予想される。つまり、埋め込みHi(ha)とHi(hp)との間のハミング距離をHi(ha)とHi(hn)との間のハミング距離よりも小さくする。ここで、ha、hp及びhnは、F(・)によってXa、Xp及びXnから抽出されたアンカー、ポジティブ及びネガティブの特徴でである。
【0077】
上記の直観の下でハッシュ関数Hi(i=1;2)を評価するトリプレット損失は、次のようになる。
【0078】
【0079】
ここで、
【数50】
は、
【数51】
との間のハミング距離であり、
【数52】
は、hの非ゼロエントリの数をカウントする
【数53】
ノルムであり、
【数54】
はマージンである。
【0080】
その式は、
【数55】
を定義するだけであり、qはpまたはnのいずれかである。h
qは上述したh
pまたはh
nである。
【0081】
分類層430。特徴またはバイナリコードが、入力された多変量時系列のダイナミクスを捕捉できる豊富な情報を有する場合、トリプレット損失は十分に強力である。しかしながら、トリプレット損失は依然として相対距離の関係に基づいているため、特徴空間における判定境界の全体像は考慮されていない。H2(・)によるサブ線形バイナリコードのような短いバイナリは、入力時系列セグメントを完全に表す情報が乏しいため、ハミング空間における判定境界があいまいな場合、大きな影響を与える可能性がある。したがって、利用可能であれば、クラスラベルからの十分な情報を用いて、境界の周りの特徴表現を区別することができる。
【0082】
分類層430は、ロジット440
【数56】
を計算する全接続(FC)ネットワーク370、すなわちFC3を含むことができる。ここで、
【数57】
は、学習する重み行列である。
【数58】
はG
2()によって抽出されたサブ線形特徴である。FC1及びFC2は、中間の特徴を所望の次元の特徴に圧縮(再構成)できる。例えば、FC1は、LSTM出力を
【数59】
によってv1次元の特徴に再構成する。
【0083】
様々な実施形態において、
【数60】
によって予測確率を計算するためにソフトマックス層が追加される。ここで、z
jはzにおけるj番目のエントリである。
【0084】
交差エントロピー損失。異なるクラス間で区別された特徴表現を提供するために、標準的な分類戦略に従って、サブ線形特徴空間における誤分類にペナルティを課すために交差エントロピー損失を利用する。
【0085】
【0086】
ここで、
【数62】
はy
iのワンホット表現であり、
【数63】
は両方の入力時系列セグメント
【数64】
の予測確率であり、
【数65】
は全て1の|C|長ベクトルである。
【0087】
全ての損失関数は、次のように要約できる。
【0088】
【0089】
ここで、θはモデル
【数67】
における全ての訓練可能なパラメータのセットであり、
【数68】
は交差エントロピー損失
【数69】
の重要度を制御する重みパラメータである。
【0090】
残念ながら、ハッシュ関数H
i(・)(i=1;2)は離散写像であり、トリプレット損失
【数70】
のハミング距離は離散空間にあるため、目的を最適化するのは難しい。したがって、ネットワークアーキテクチャは本質的に離散的であり、それに関連する最適化問題は組み合わせ的に困難である。この問題に対処するため、元の離散的な目的を緩和して、連続的で微分可能な目的にすることができる。ハッシュ関数H
1(・)及びH
2(・)は次のように緩和できる。
【0091】
【0092】
【0093】
これらは微分可能である。この緩和は、標準近似
【数73】
に基づいている。ハミング距離も
【数74】
距離に緩和できる。すなわち、
【数75】
である。
【0094】
【数76】
は、
【数77】
または、
【数78】
のいずれかである。
【0095】
上述した緩和に基づいて、最終的に以下の連続して微分可能な目的を有する。
【0096】
【0097】
ここで、
【0098】
【0099】
これらの緩和は、バイナリ埋め込みネットワークの最適化で本質的に使用されてきた。提案したネットワークの訓練可能なパラメータθを最適化するために、ミニバッチサイズが256の確率的勾配降下法(SDG)に基づき、Adamオプティマイザを用いて、ネットワーク全体で誤差逆伝播法を実行できる。
【0100】
サブ線形サーチに基づく多変量時系列検索。
【0101】
訓練が終了した場合、長さが異なる2つのバイナリコード
【数81】
が
【数82】
で示される履歴時系列セグメント
【数83】
に関して抽出される。
【0102】
v2<v1であるため、
【数84】
から抽出される固有のサブ線形バイナリコードの数
【数85】
は、固有のフルレングスバイナリの数よりもはるかに少ないと予想される。すなわち、多くの異なるフルレングスバイナリコード
【数86】
は、同じサブ線形バイナリコードを共有することが期待される。この事実により、部分線形サーチによる効率的な多変量時系列検索が可能になる。
【0103】
多変量のための効率的なサブ線形サーチアルゴリズム。
【0104】
時系列検索は、以下のアルゴリズム1で要約される。
【0105】
【0106】
【0107】
【0108】
【0109】
【0110】
【0111】
【0112】
【0113】
【0114】
【0115】
【0116】
【0117】
全ての履歴時系列セグメントのフルレングス及びサブ線形バイナリコードを抽出した後、同じサブ線形バイナリコードを有する全てのインデックスのセット、すなわち、
【0118】
(Lにおけるアイテムは互いに素であることに注意されたい。)
【0119】
【0120】
L中のアイテムは互いに素である、すなわち、
【数100】
であることに注意されたい。
【0121】
クエリ時系列セグメントX
qに関して、フルレングス及びサブ線形バイナリコード
【数101】
は、DSLHNによって抽出される(第2行)。続いて、最初に
【数102】
によってデータベースにおいて時系列セグメントのインデックスを取得し、それらを候補インデックスJに追加する(r=0の場合、第4~6行)。この時点で十分な数のインデックスを取得しない、すなわち、
【数103】
の場合、次に2番目に近いサブ線形バイナリコード、すなわち、
【数104】
のサブ線形バイナリコードr(≧1)のビットが
【数105】
と異なるLを探す。予め定義された反転ビットの最大数r
max(第3~7行)までで十分な候補(すなわち、
【数106】
)が得られるまで、rをインクリメントしつつこのプロセスを繰り返す。
【0122】
十分な数の候補インデックスが得られると、クエリセグメント
【数107】
のフルレングスバイナリコードと、Jによって割り当てられたデータベースセグメントのサブセットのものとの間のペア毎のハミング距離Δを計算する(第8行)。続いて、Δを昇順にソートし、上位から最大k個までのインデックスを取得する(第9行)。例えば、
【数108】
がΔ内で最小の場合、j’を
【数109】
として取得する。最後に、時系列セグメント
【数110】
を取得する。
【0123】
複雑性。ここでは、サブ線形検索アルゴリズムの時間複雑性について議論する。このアルゴリズムは、主に辞書アクセス(第4~6行)と再ランキング(第9行)とに分かれている。一般的なr
maxの場合、最悪のシナリオでは辞書アクセス数がr
maxに関して指数関数的、すなわち
【数111】
になる可能性があるため、組合せ爆発を避けるために、実際にはr
maxを最大で2に固定する。再ランキングの部分に関しては、
【数112】
時間の複雑さがある。候補
【数113】
の数は、履歴時系列セグメントのセットの属性に依存する。最良の場合はkであり、Nは最悪の場合のシナリオであるが、完全な線形検索の複雑性O(N log N)を超えることはない。
【0124】
DSLHNのハイパーパラメータλ
ceは、
【数114】
にわたるグリッドサーチに基づいて最適化される。
【0125】
xの変動のほとんどは、m個の主成分(PC:principal component)によって説明できる。ここで、m<<p(可変成分の総数)である。元の変数を主成分に変換し、それに対応して情報を格納する変数の数を減らすことで複雑性を軽減し、それに対応してデータサイズを減らすことができる。高次元の実数値オブジェクト記述子をコンパクトなバイナリコードに変換すると、メモリ使用量と計算上の問題の両方に対処できる。データの変換と結果としての圧縮により、大量のバイナリコードをメモリに格納できる。類似するオブジェクトのコード間のハミング距離が小さいため、サーチ対象の特徴に関連付けられたバイナリコードの周辺にクエリを限定できる。これにより、クエリ時間とプロセッサの使用量がさらに削減される。クエリに関するコードの短いハミング距離内にあるコードを有するオブジェクトを取得できる。ハミング距離は、1秒あたり数百万の距離を計算できるハードウェア(つまり、CPU、マルチコアグラフィックプロセッサ)を用いて効率的に計算できる。
【0126】
全てのケースについて、深層学習ベースの方法LSTM+トリプレット、DSLHN(CEなし)(CE=交差エントロピー)及びDSLHNは、深層学習ベースのアプローチが時系列セグメント内の時間的ダイナミクスを捕捉できるため、奥行きのないLSH法やITQ法よりも着実に優れている。深層学習ベースの方法において、提案したDSLHNは、検索タスクと分類タスクの両方でほぼ全てのケースで最高のパフォーマンスを提供する。また、提案したDSLHNは、常にDSLHN(CEなし)よりも優れていることが分かる。これは、交差エントロピー損失が、モデルの検索と分類の両方のパフォーマンスを確実に改善することを意味する。
【0127】
図5は、本発明の一実施形態による、ローカルな境界によるトリプレット損失を示す図である。
【0128】
H2(・)によるサブ線形バイナリコードのようなショートバイナリは、入力時系列セグメントを完全に表す情報が乏しいため、ハミング空間の判定境界が曖昧である場合、これが大きな影響を与える可能性がある。サブ線形ハッシュコードパターン510は、個々のクラス520に一意に写像されない。ハッシュコードのサブセット512は、ローカルの最小値により、2つ以上のクラスに写像することができる。したがって、(利用可能であれば)クラスラベルからの十分な情報を用いて、境界の周りの特徴表現を区別できる。但し、サブ線形バイナリコードのような貧弱な情報しかない場合は、ローカルな境界を考慮するだけでは不十分な場合がある。
【0129】
図6は、本発明の一実施形態による、包括的な境界を伴うトリプレット損失及び交差エントロピーを示す図である。
【0130】
交差エントロピー損失の追加は、包括的な最小値に基づいて特徴をさらに区別することができるため、各サブ線形ハッシュコードが単一のクラス520に写像される。交差エントロピー損失なしで2つ以上のクラスに写像されたサブ線形ハッシュコードのサブセット512は、2つ以上の異なるハッシュコード510が同じクラス520に写像される可能性があるとしても、それによって除去することができる。
【0131】
図7は。本発明の一実施形態による、ハッシュコードの生成及び検索のためにニューラルネットワークを訓練する方法を示すブロック/フロー図である。
【0132】
ブロック710において、スライディングウィンドウを用いて多変量時系列120全体から、所定の時間ステップ数の間持続する多変量時系列のスライスが抽出される。スライディングウィンドウの長さは、時系列データの収集方法によって異なる。例えば、データが5日間連続して1分毎に記録される場合、長さ60のスライディングウィンドウを用いて1時間の時間ウィンドウで観測を要約できる。
【0133】
ブロック720において、回帰型ニューラルネットワークを用いてロング特徴ベクトル及びショート特徴ベクトルが抽出される。
【0134】
ブロック730において、特徴の全てのエントリの符号をチェックすることで、ロング特徴ベクトル及びショート特徴ベクトルからバイナリベクトルが生成される。
【0135】
ブロック740において、トリプレット損失が、ロングバイナリコード及びショートバイナリコードの両方について計算される。
【0136】
ブロック750において、異なるクラス間で特徴表現を区別するために、ショートバイナリコードに関する交差エントロピー損失が計算される。
【0137】
ブロック760において、トリプレット損失及び交差エントロピー損失に基づいて、ニューラルネットワークのパラメータが更新される。
【0138】
図8は、本発明の一実施形態による、ハッシュコードの生成及び検索のためのニューラルネットワークを実装する方法を示すブロック/フロー図である。
【0139】
訓練が完了した後、ハッシングプロセスを実行できる。
【0140】
ブロック810において、スライディングウィンドウを用いて、多変量時系列120全体から、所定の時間ステップ数の間持続する多変量時系列のスライスが抽出される。これは、ニューラルネットワークの訓練や検証で使用されていない、まだ観測されていない新しい時系列セグメントである可能性がある。
【0141】
ブロック820において、訓練された回帰型ニューラルネットワークを用いて時系列セグメントに関するロング特徴ベクトル及びショート特徴ベクトルが抽出される。
【0142】
ブロック830において、特徴の全てのエントリの符号をチェックすることで、訓練されたニューラルネットワークによって生成されたロング特徴ベクトル及びショート特徴ベクトルからバイナリベクトルが生成される。
【0143】
ブロック840において、ロングバイナリコード及びショートバイナリコードがデータベースに格納される。
【0144】
ブロック850において、ショートバイナリコードと同じビットパターンを有するロングバイナリコードのセットを保存するバイナリ辞書を構築できる。
【0145】
図9は、本発明の一実施形態による、時系列検索のためのニューラルネットワークを実装する方法を示すブロック/フロー図である。
【0146】
ブロック910において、システムは、同様の時系列セグメントのクエリ及び検索のための時系列セグメントを受け取ることができる。
【0147】
ブロック920において、現在観測されている時系列セグメントに関して、訓練中に学習された回帰型ニューラルネットワークに基づいてロング特徴及びショート特徴が抽出される。
【0148】
ブロック930において、クエリ時系列セグメントのロング特徴ベクトル及びショート特徴ベクトルは、これらの特徴ベクトル内の全てのエントリの符号をチェックすることで、ロングバイナリコード及びショートバイナリコードにそれぞれ変換される。
【0149】
ブロック940において、クエリ時系列セグメントのロング及びショート特徴ベクトルから抽出されたものと同じショートバイナリコードを有するロングバイナリコードのサブセットが、ハッシング段階で構築されたバイナリ辞書から取り出される。辞書からは十分な数のロングバイナリコードを取得する必要がある。十分な数とは、データベースから上位k個の類似サンプルを取得するための、kよりも大きい値である。
【0150】
ブロック950において、クエリから抽出されたロングバイナリコードと、辞書から検索された全てのロングバイナリコードとの間のペア毎に類似度が計算される。
【0151】
ブロック960において、ロングバイナリコードと辞書ロングコードとの間の最も近い関係を示す類似度を有する所定の数の辞書ロングコードが識別される。
【0152】
ブロック970において、計算された類似度に基づいて、クエリに最も関連するものとして識別された所定の数の多変量の時系列セグメントを検索する。検索された多変量の時系列セグメントの数を用いて、関連する時系列セグメントの視覚的表現を含む、例えばディスプレイやモバイルユーザ装置等のユーザインタフェースへの出力を生成できる。所定の数の時系列セグメントを1人または複数のユーザに表示することが可能であり、表示された時系列セグメントは、観察対象のシステムの状態またはステータスをユーザに示すことができる。予め決められた数は、最も関連性が高いものから見たい数のサンプルである。
【0153】
図10は、本発明の一実施形態による、本方法及びシステムを適用できる例示的な処理システム1000を示している。
【0154】
処理システム1000は、少なくとも1つのプロセッサ(CPU)1004を含むことができ、システムバス1002を介して他の構成要素に動作可能に接続されたベクトル計算/処理を実行できるグラフィック処理(GPU)1005を有することができる。システムバス1002には、キャッシュ1006、読み取り専用メモリ(ROM)1008、ランダムアクセスメモリ(RAM)1010、入出力(I/O)アダプタ1020、サウンドアダプタ1030、ネットワークアダプタ1040、ユーザインタフェースアダプタ1050、及び/またはディスプレイアダプタ1060も動作可能に接続されている。
【0155】
第1の記憶装置1022及び第2の記憶装置1024は、I/Oアダプタ1020によってシステムバス1002に動作可能に接続され、本明細書に記載された機能を実施するためにニューラルネットワークが格納される。記憶装置1022及び1024は、ディスク記憶装置(例えば、磁気または光ディスク記憶装置)、ソリッドステート記憶装置、磁気記憶装置等のいずれであってもよい。記憶装置1022及び1024は、同じタイプの記憶装置であってもよく、異なるタイプの記憶装置であってもよい。
【0156】
スピーカ1032は、サウンドアダプタ1030によってシステムバス1002に動作可能に接続されている。。トランシーバ1042は、ネットワークアダプタ1040によってシステムバス1002に動作可能に接続されている。ディスプレイ装置1062は、ディスプレイアダプタ1060によってシステムバス1002に動作可能に接続されている。
【0157】
第1のユーザ入力装置1052、第2のユーザ入力装置1054及び第3のユーザ入力装置1056は、ユーザインタフェースアダプタ1050によってシステムバス1002に動作可能に接続されている。ユーザ入力装置1052、1054及び1056は、キーボード、マウス、キーパッド、イメージキャプチャ装置、モーション感知装置、マイクロホン、あるいはこれらの装置のうちの少なくとも2つの装置の機能を組み込んだ装置等のいずれであってもよい。もちろん、本発明の原理の主旨を維持しながら、他のタイプの入力装置を使用することもできる。ユーザ入力装置1052、1054及び1056は、同じタイプのユーザ入力装置であってもよく、異なるタイプのユーザ入力装置であってもよい。ユーザ入力装置1052、1054及び1056は、処理システム1000に情報を入力し、処理システム1000から情報を出力するために使用される。
【0158】
様々な実施形態において、処理システム1000は、当業者であれば容易に思いつくような他の要素(図示せず)を含んでもよく、特定の要素を省略することも可能である。例えば、当業者であれば容易に理解できるが、処理システム1000には、その詳細な実装に応じて他の様々なタイプの入力装置及び/または出力装置を含むことができる。例えば、無線及び/または有線による様々な入力装置及び/または出力装置を使用できる。さらに、当業者であれば容易に理解できるが、様々な構成の追加プロセッサ、コントローラ、メモリ等を使用することも可能である。処理システム1000の上記及び他の変形例は、本明細書で提供される本原理の教示によって当業者であれば容易に考えられるであろう。
【0159】
さらに、処理システム1000は、本方法/システムのそれぞれの実施形態を実施するためのシステムであることを理解されたい。処理システム1000の一部または全部は、
図1-8の要素のうちの1つまたは複数で実装され得る。さらに、処理システム1000は、例えば、
図1-8の方法の少なくとも一部を含む、本明細書に記載の方法の少なくとも一部を実行できることを理解されたい。
【0160】
図11は、本発明の一実施形態による、LSTM及びGRUニューラルネットワーク及びデータベースに本方法を適用し、それらを使用することができる例示的な処理システム1000を示す図である。
【0161】
様々な実施形態において、ニューラルネットワーク(例えば、LSTM、GRU等)は、記憶装置1024で保存できる、特徴抽出器の長短期メモリ1140及び類似度比較器1130のGRUである処理システム1000に実装できる。メモリで保存された類似度比較器1130は、クエリから抽出されたロングバイナリコードと辞書から検索された全てのロングバイナリコードとの間のペア毎の類似度を計算し、ロングバイナリコードと辞書ロングコードとの間の最も近い関係を示す、類似度を有する所定の数の辞書ロングコードを識別するように構成できる。受信及び収集された時系列データ120は、第1の記憶装置1022及び/または第2の記憶装置1024に存在するデータベースで保存される。センサ110は、ネットワークアダプタ1040及び/または通信ポートまたは他のアダプタを介してシステム1000と接続されて電気的に通信できる。
【0162】
本明細書に記載する実施形態は、全てハードウェアで実現してもよく、全てソフトウェアで実現してもよく、ハードウェアとソフトウェアの両方の要素を含んでいてもよい。好ましい実施形態において、本発明は、ファームウェア、常駐ソフトウェア、マイクロコード等を含むが、これらに限定されないソフトウェアでも実現可能である。
【0163】
実施形態には、コンピュータもしくは任意の命令実行システムによって使用される、または関連して使用されるプログラムコードを提供する、コンピュータで使用可能な、またはコンピュータで読み取り可能な媒体からアクセスできる、コンピュータプログラム製品を含んでもいてよい。コンピュータで使用可能な、またはコンピュータで読み取り可能な媒体には、命令実行システム、機器、もしくは装置によって使用される、または関連して使用されるプログラムを格納、伝達、伝搬または転送する任意の機器を含んでいてもよい。該媒体は、磁気媒体、光学媒体、電子媒体、電磁気媒体、赤外線媒体または半導体システム(または機器もしくは装置)、あるいは伝搬媒体であってもよい。該媒体には、半導体または固体メモリ、磁気テープ、取り外し可能なコンピュータディスケット、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、リジッド磁気ディスク及び光ディスク等のコンピュータで読み取り可能な媒体を含んでいてもよい。
【0164】
各コンピュータプログラムは、汎用または特別な目的を持つプログラム可能なコンピュータで読み取ることができる、機械で読み取り可能なストレージメディアまたは装置(例えば、プログラムメモリまたは磁気ディスク)に格納される。該コンピュータプログラムは、ストレージメディアまたは装置から本明細書に記載された手順を実行するコンピュータで読み出される、該コンピュータの設定及び制御動作のためのものである。本発明のシステムには、本明細書に記載した機能を実行する、特定の及び事前に定義された方法をコンピュータに動作させるように構成されたコンピュータプログラムを含む、コンピュータで読み取り可能なストレージメディアも考慮される。
【0165】
プログラムコードを格納及び/または実行するのに適したデータ処理システムは、システムバスを介してメモリ要素に直接または間接的に接続された少なくとも1つのプロセッサを備えていてもよい。このメモリ要素には、処理の実行中にバルクメモリ装置からコードが検索される回数を減らすために、プログラムコードの実際の実行中に用いられるローカルメモリ、バルクメモリ装置及び少なくともいくつかのプログラムコードを一時的に記憶するキャッシュメモリを備えていてもよい。入出力またはI/O装置(限定されるものではないが、キーボード、ディスプレイ、ポインティング装置等を含む)は、直接またはI/Oコントローラを介してシステムに接続されてもよい。
【0166】
ネットワークアダプタは、データ処理システムが、プライベートネットワークまたは公衆ネットワークを介して、他のデータ処理システムまたはリモートプリンタもしくはメモリ装置に接続されることを可能にするために、上記システムと接続されていてもよい。モデム、ケーブルモデム及びイーサネット(登録商標)カードは、現在利用可能なタイプのネットワークアダプタのほんの一例である。
【0167】
本明細書で用いる「ハードウェアプロセッササブシステム」または「ハードウェアプロセッサ」という用語は、1つ以上の特定のタスクを実行するために協働するプロセッサ、メモリ、ソフトウェアまたはそれらの組み合わせを指すことができる。有用な実施形態において、ハードウェアプロセッササブシステムは、1つまたは複数のデータ処理要素(例えば、論理回路、処理回路、命令実行装置等)を含むことができる。1つまたは複数のデータ処理要素は、中央処理装置、グラフィックス処理装置及び/または個別のプロセッサまたはコンピューティング要素ベースのコントローラ(例えば、論理ゲート等)を含めることができる。ハードウェアプロセッササブシステムは、1つ以上のオンボードメモリ(例えば、キャッシュ、専用メモリアレイ、読み出し専用メモリ等)を含むことができる。任意の実施形態において、ハードウェアプロセッササブシステムは、オンボードまたはオフボードとすることができる、またはハードウェアプロセッササブシステム(例えば、ROM、RAM、基本入出力システム(BIOS)等)で用いるための専用の1つ以上のメモリを含むことができる。
【0168】
いくつかの実施形態において、ハードウェアプロセッササブシステムは、1つまたは複数のソフトウェア要素を含み、実行することができる。1つまたは複数のソフトウェア要素は、オペレーティングシステム及び/または1つまたは複数のアプリケーション及び/または特定の結果を達成するための特定のコードを含むことができる。
【0169】
他の実施形態において、ハードウェアプロセッササブシステムは、指定された結果を達成するために1つまたは複数の電子処理機能を実行する専用回路を含むことができる。そのような回路は、1つまたは複数の特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)及び/またはプログラマブルロジックアレイ(PLA)を含むことができる。
【0170】
ハードウェアプロセッササブシステムのこれら及び他の変形例もまた、本発明の実施形態によって考えられる。
【0171】
本明細書では本発明の「一実施形態」または「一実施形態」、ならびにその他の変形形態に言及し、実施形態に関連して説明した特定の機能、構成、特徴などが、本発明の少なくとも1つの実施形態に含まれることを意味する。したがって、「一実施形態において」または「一実施形態において」という語句の出現、並びに本明細書全体を通して様々な場所に出現する任意の他の変形形態は、必ずしも全てが同じ実施形態を参照しているわけではない。しかしながら、本明細書で提供される本発明の教示が与えられると、1つまたは複数の実施形態の特徴を組み合わせることができることを理解されたい。
【0172】
要素が別の要素に「接続される」または「結合される」と称する場合、それは他の要素に直接接続または結合されるか、または介在する要素が存在し得ることが理解される。一方で、要素が別の要素に「直接接続されている」または「直接結合されている」と称する場合、介在する要素は存在しない。
【0173】
例えば、「A/B」、「A及び/またはB」、並びに「A及びBのうちの少なくとも1つ」の場合における「/」、「及び/または」、並びに「うちの少なくとも1つ」のうちのいずれかの使用は、第1に挙げた選択肢(A)のみの選択、第2に挙げた選択肢(B)のみの選択、または両方の選択肢(A及びB)の選択を含むことを意図したものと理解すべきである。さらに例を挙げれば、「A、B及び/またはC」、並びに「A、B及びCのうちの少なくとも1つ」の場合、このような表現法は、第1に挙げた選択肢(A)のみの選択、第2に挙げた選択肢(B)のみの選択、第3に挙げた選択肢(C)のみの選択、第1及び第2に挙げた選択肢(A及びB)のみの選択、第1及び第3に挙げた選択肢(A及びC)のみの選択、第2及び第3に挙げた選択肢(B及びC)のみの選択、または3つの選択肢全て(A及びB及びC)の選択を含むことを意図したものである。上述した例は、当業者に容易に明らかとなるように、列挙される多数の項目に応じて拡大適用される。
【0174】
上記は、あらゆる観点において説明的かつ典型的であって限定的でないものと理解されるべきであり、本明細書で開示する本発明の範囲は、詳細な説明から決定されるべきではなく、特許法で認められた最大限の広さに基づいて解釈される特許請求の範囲から決定されるべきである。本明細書中に図示及び記載されている実施形態は、本発明の原理を説明するものにすぎず、本発明の範囲及び主旨から逸脱することなく当業者は様々な変更を実施することができることを理解されたい。当業者は、本発明の範囲及び精神から逸脱することなく、様々な他の特徴の組み合わせを実施できる。以上、本発明の態様について、特許法で要求される細部及び詳細な事項と共に説明したが、特許証で保護されることを要求する特許請求の範囲は、添付の特許請求の範囲に示されている。