(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023034537
(43)【公開日】2023-03-13
(54)【発明の名称】概念ドリフト検出のための装置、方法、及びシステム
(51)【国際特許分類】
G06Q 10/04 20230101AFI20230306BHJP
【FI】
G06Q10/04
【審査請求】未請求
【請求項の数】9
【出願形態】OL
(21)【出願番号】P 2021140828
(22)【出願日】2021-08-31
(71)【出願人】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110000062
【氏名又は名称】弁理士法人第一国際特許事務所
(72)【発明者】
【氏名】バックフース ヤナ
(72)【発明者】
【氏名】増田 峰義
【テーマコード(参考)】
5L049
【Fターム(参考)】
5L049AA04
(57)【要約】
【課題】本発明の態様は、季節的時系列データにおける概念ドリフトの有無を判定することに関する。
【解決手段】過去の時系列データのセット及び現在の時系列データのセットを含む時系列データセットを受信するデータ入力部と、過去の時系列データのセットのサブセットに基づいて基線モデルを生成する基線モデル生成部と、過去データ特徴のセット、基線データ特徴のセット、及び現在データ特徴のセットを抽出する特徴抽出部と、基線距離及び現在距離を計算する距離計算部と、基線統計量及び現在距離に基づいて、現在の時系列データのセットと過去の時系列データのセットとの間の概念ドリフトの有無を判定する概念ドリフト検出部とを含む概念ドリフト検出装置。
【選択図】
図6
【特許請求の範囲】
【請求項1】
時系列データセットにおける概念ドリフトを検出する概念ドリフト検出装置であって、
前記概念ドリフト検出装置は、
第1の期間に関連する過去の時系列データのセットと、前記第1の期間に続く第2の期間に関連する現在の時系列データのセットとを含む時系列データセットを受信するデータ入力部と、
前記過去の時系列データのセットのサブセットに基づいて基線モデルを生成する基線モデル生成部と、
前記過去の時系列データのセットを過去ウィンドウのセットに分割し、前記現在の時系列データのセットを現在ウィンドウのセットに分割し、前記基線モデルによって作成された基線データのセットを基線ウィンドウのセットに分割すると共に、前記基線ウィンドウのセットから基線データ特徴のセットを計算し、前記過去ウィンドウのセットから過去データ特徴のセットを計算し、前記現在ウィンドウのセットから現在データ特徴のセットを計算する特徴抽出部と、
前記過去データ特徴のセットのサブセットと、対応する時間枠に関連する基線データ特徴のサブセットとの間の基線距離を計算し、前記現在データ特徴のセットのサブセットと、対応する時間枠に関連する基線データ特徴のサブセットとの間の現在距離を計算する距離計算部と、
前記基線距離に基づいて、概念ドリフトを判定するための基準を示す基線統計量を計算し、前記基線統計量及び前記現在距離に基づいて、前記現在の時系列データのセットと前記過去の時系列データのセットとの間の概念ドリフトの有無を判定する概念ドリフト検出部と、
を含むことを特徴とする概念ドリフト検出装置。
【請求項2】
指数加重移動平均手法を用いて前記基線距離及び前記現在距離を平滑化する距離平滑化部を更に含むことを特徴とする請求項1に記載の概念ドリフト検出装置。
【請求項3】
前記基線モデルは、
前記過去の時系列データのセットのサブセットに基づいて予測の時系列データのセットを前記基線データとして生成する訓練済みの機械学習モデルである、
ことを特徴とする請求項1に記載の概念ドリフト検出装置。
【請求項4】
前記時系列データセットは、所定の期間にわたって周期的に繰り返す季節的時間パターンのセットを含む季節的時系列データであり、
前記季節的時間パターンのセットの各季節的時間パターンは、時間特徴のセットに対応する季節的時間パターン点のセットを含む、
ことを特徴とする、請求項1に記載の概念ドリフト検出装置。
【請求項5】
前記概念ドリフト検出部は、
前記基線統計量として、前記基線距離の季節的時間パターン点のセットの各々について概念ドリフトを判定するための基準を示す季節的基線を計算し、
前記現在距離の第1の季節的時間パターン点が前記季節的基線に対して統計的閾値を超える場合に、前記現在距離の前記第1の季節的時間パターン点について概念ドリフトが存在すると判定する、
ことを特徴とする、請求項4に記載の概念ドリフト検出装置。
【請求項6】
前記概念ドリフト検出部は、
前記現在距離の所定数の季節的時間パターン点について概念ドリフトが存在すると判定した場合に、概念ドリフト通知を出力する、
ことを特徴とする、請求項5に記載の概念ドリフト検出装置。
【請求項7】
前記基線モデル生成部は、
前記現在距離の所定数の季節的時間パターン点について概念ドリフトが存在すると判定した場合に、前記基線モデルを第2の時系列データセットに基づいて更新する、
ことを特徴とする、請求項6に記載の概念ドリフト検出装置。
【請求項8】
時系列データセットにおける概念ドリフトを検出する概念ドリフト検出方法であって、
前記概念ドリフト検出方法は、
第1の期間に関連する過去の時系列データのセットと、前記第1の期間に続く第2の期間に関連する現在の時系列データのセットとを含む時系列データセットを受信する工程と、
前記過去の時系列データのセットのサブセットに基づいて基線モデルを生成する工程と、
前記過去の時系列データのセットを過去ウィンドウのセットに分割する工程と、
前記現在の時系列データのセットを現在ウィンドウのセットに分割する工程と、
前記基線モデルによって作成された基線データのセットを基線ウィンドウのセットに分割する工程と、
前記基線ウィンドウのセットから基線データ特徴のセットを計算する工程と、
前記過去ウィンドウのセットから過去データ特徴のセットを計算する工程と、
前記現在ウィンドウのセットから現在データ特徴のセットを計算する工程と、
前記過去データ特徴のセットのサブセットと、対応する時間枠に関連する基線データ特徴のサブセットとの間の基線距離を計算する工程と、
前記現在データ特徴のセットのサブセットと、対応する時間枠に関連する基線データ特徴のサブセットとの間の現在距離を計算する工程と、
前記基線距離に基づいて、概念ドリフトを判定するための基準を示す基線統計量を計算する工程と、
前記基線統計量及び前記現在距離に基づいて、前記現在の時系列データのセットと前記過去の時系列データのセットとの間の概念ドリフトの有無を判定する工程と、
を含むことを特徴とする概念ドリフト検出方法。
【請求項9】
時系列データセットにおける概念ドリフトを検出する概念ドリフト検出システムであって、
前記概念ドリフト検出システムは、
クライアント装置と、
第1の期間に関連する過去の時系列データのセットと、前記第1の期間に続く第2の期間に関連する現在の時系列データのセットとを含む時系列データセットを格納するデータ記憶装置と、
前記時系列データセットにおける概念ドリフトを検出する概念ドリフト検出装置と、
を含み、
前記概念ドリフト検出装置は、
データ記憶装置から前記時系列データセットを受信するデータ入力部と、
前記過去の時系列データのセットのサブセットに基づいて基線モデルを生成する基線モデル生成部と、
前記過去の時系列データのセットを過去ウィンドウのセットに分割し、前記現在の時系列データのセットを現在ウィンドウのセットに分割し、前記基線モデルによって作成された基線データのセットを基線ウィンドウのセットに分割すると共に、前記基線ウィンドウのセットから基線データ特徴のセットを計算し、前記過去ウィンドウのセットから過去データ特徴のセットを計算し、前記現在ウィンドウのセットから現在データ特徴のセットを計算する特徴抽出部と、
前記過去データ特徴のセットのサブセットと、対応する時間枠に関連する基線データ特徴のサブセットとの間の基線距離を計算し、前記現在データ特徴のセットのサブセットと、対応する時間枠に関連する基線データ特徴のサブセットとの間の現在距離を計算する距離計算部と、
前記基線距離に基づいて、概念ドリフトを判定するための基準を示す基線統計量を計算し、前記基線統計量及び前記現在距離に基づいて、前記現在の時系列データのセットと前記過去の時系列データのセットとの間の概念ドリフトの有無を判定し、前記現在の時系列データのセットと前記過去の時系列データのセットとの間に概念ドリフトが存在すると判定した場合、概念ドリフト通知を前記クライアント装置に出力する概念ドリフト検出部と、
を含むことを特徴とする概念ドリフト検出システム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、一般に、概念ドリフト検出に関し、より具体的には、季節的時系列データにおける概念ドリフトの検出に関する。
【背景技術】
【0002】
近年、多種多様な事業分野におけるデジタル化の進展に伴い、デジタルデータを活用して洞察を得ることが、事業運営上ますます重要になってきている。AI(Artificial Intelligence、人工知能)及びML(Machine Learning、機械学習)技術は、データ分析及び洞察生成に用いられるツールの例である。
【0003】
AIOPs(AI for Information Technology (IT) Operations)は、Machine Learningの方法及びITシステムデータのデータ分析を用いることで、人間のオペレータのITシステム運用管理を支援する1つの業界トレンドである。AIOpsソリューションは、ITシステム環境の運用の高い信頼性、可用性、及びセキュリティを維持すると共に、AIの利用を通じてTCOコスト(Total Cost of Operation、総保有コスト)及びOpEx(Operation Expenses、運用費用)を削減することを目的とする。
【0004】
いくつかのAIOpsソリューションは、ML(Machine Learning)訓練済みの予測モデルを用いることで、将来の結果に関する予測を行うことに関する。これらの予測モデルは一般に、過去のデータについて訓練された後、所定の入力データセットに基づいて予測を生成するために用いられる。このような予測モデルには、ヘルスケア、リスク評価、故障予測、成長予測など、幅広い用途がある。
【0005】
しかしながら、予測モデルは、概念ドリフトに影響されやすい可能性がある。一般的に、概念ドリフトとは、予測モデルが予測しようとしている目標変数の統計的特性が時間と共に予期せぬ形で変化する概念を指す。これにより、目標変数の統計的特性は、予測モデルが最初に訓練されたデータから乖離してしまうため、予測モデルの精度に悪影響を及ぼす。概念ドリフトの検出と緩和は、精度の高い予測モデルを維持するためには重要である。
【0006】
従来、概念ドリフトを検出する方法が提案されている。一例として、Cavalcanteら(非特許文献1)は、「時系列は、一定のサンプリング間隔にわたって取得された一連の観察である。株価の変動、為替レート、気温など、いくつかの現実世界の動的プロセスを時系列としてモデル化することができる。時系列は、特殊なデータストリームとして、概念ドリフトを示す場合があり、この概念ドリフトは、時系列の分析や予測に悪影響を及ぼす。時系列特徴の監視に基づく明示的なドリフト検出方法では、基本予測子の予測誤差の監視に基づく方法よりも、概念が時間の経過とともにどのように進化するかについて、よりよい理解が得られる可能性がある。本論文では、FEDD(Feature Extraction For Explicit Concept Drift Detection)と呼ばれる、時系列特徴を監視することによって時系列の概念ドリフトを特定するオンライン明示的ドリフト検出方法を提案する。計算実験は、FEDDが、急激で緩やかな概念ドリフトを伴ういくつかの線形及び非線形の人工時系列において、誤差ベースのアプローチよりも性能が優れていることを示した。」と記載している。
【先行技術文献】
【非特許文献】
【0007】
【非特許文献1】CAVALCANTE, R, MINKU, LL & OLIVEIRA, A 2016, FEDD: Feature Extraction for Explicit Concept Drift Detection in Time Series. in Proceedings of 2016 IEEE International Joint Conference on。IEEE Xplore, Vancouver, Canada, pp. 740-747. https://doi.org/10.1109/IJCNN.2016.7727274
【発明の概要】
【発明が解決しようとする課題】
【0008】
非特許文献1には、過去の時系列データと現在の時系列データとの統計的特徴間の距離を計算することで、定常時系列データにおける概念ドリフトを検出する技術が開示されている。単一値のドリフト検出閾値は、既知の基線平均及び標準偏差距離を有する指数加重移動平均制御チャートに基づいて計算される。
【0009】
しかしながら、非特許文献1に開示されている技術は、独立した同一分布の定常時系列データにおける概念ドリフト検出には適用可能であるが、非定常の季節的時系列データ(例えば、ITシステムのパフォーマンスデータ)には適用できない。より詳細には、非特許文献1には、概念ドリフト検出のために単一値のドリフト検出閾値を用いることが記載されているが、このような単一値のドリフト検出閾値は、多数の季節的期間毎に個別の基線統計量を必要とする季節的時系列データにおける概念ドリフトを正確に判定するためには有効ではない。
【0010】
そこで、本開示は、季節的時系列データにおける概念ドリフトの有無を判定することが可能な概念ドリフト検出のための装置、方法、及びシステムを提供することを目的とする。
【課題を解決するための手段】
【0011】
本開示の代表的な例の一つは、時系列データセットにおける概念ドリフトを検出する概念ドリフト検出装置に関し、当該概念ドリフト検出装置は、第1の期間に関連する過去の時系列データのセットと、前記第1の期間に続く第2の期間に関連する現在の時系列データのセットとを含む時系列データセットを受信するデータ入力部と、前記過去の時系列データのセットのサブセットに基づいて基線モデルを生成する基線モデル生成部と、前記過去の時系列データのセットを過去ウィンドウのセットに分割し、前記現在の時系列データのセットを現在ウィンドウのセットに分割し、前記基線モデルによって作成された基線データのセットを基線ウィンドウのセットに分割すると共に、前記基線ウィンドウのセットから基線データ特徴のセットを計算し、前記過去ウィンドウのセットから過去データ特徴のセットを計算し、前記現在ウィンドウのセットから現在データ特徴のセットを計算する特徴抽出部と、前記過去データ特徴のセットのサブセットと、対応する時間枠に関連する基線データ特徴のサブセットとの間の基線距離を計算し、前記現在データ特徴のセットのサブセットと、対応する時間枠に関連する基線データ特徴のサブセットとの間の現在距離を計算する距離計算部と、前記基線距離に基づいて、概念ドリフトを判定するための基準を示す基線統計量を計算し、前記基線統計量及び前記現在距離に基づいて、前記現在の時系列データのセットと前記過去の時系列データのセットとの間の概念ドリフトの有無を判定する概念ドリフト検出部とを含む。
【発明の効果】
【0012】
本開示によれば、季節的時系列データにおける概念ドリフトの有無を判定することが可能な概念ドリフト検出のための装置、方法、及びシステムを提供することができる。
【0013】
上記以外の課題、構成及び効果は、以下の発明を実施するための形態における説明により明らかにされる。
【図面の簡単な説明】
【0014】
【
図1】
図1は、本開示の実施形態を実行するためのコンピューティングアーキテクチャの一例を示すブロック図である。
【
図2】
図2は、本発明の実施形態に係る概念ドリフト検出システムの構成の一例を示す図である。
【
図3】
図3は、本発明の実施形態に係る時系列データにおける概念ドリフトの一例を示すグラフである。
【
図4】
図4は、本開示の実施形態に係る季節的時系列データのセットの一例を示す。
【
図5】
図5は、本開示に係る概念ドリフト検出処理の一例を示すフローチャートである。
【
図6】
図6は、本開示に係る概念ドリフト検出装置250におけるデータの流れの一例を示すブロック図である。
【発明を実施するための形態】
【0015】
本明細書で説明するように、本開示の態様は、季節的時系列データにおける概念ドリフトの検出に関する。概念ドリフト検出は、ML訓練済みの予測モデルのパフォーマンス監視に関連する一つの重要な研究トピックである。多くのML訓練済みのモデルは、対象データについて観測される入出力関係が静的であり、将来の全てのデータについて同じままであると仮定する。この仮定が何らかの理由で失敗した場合、概念ドリフトが発生したと言える。ここで、「概念」という用語は、予測される目標変数や量を指す。この概念からの逸脱、すなわち概念ドリフトは、ML訓練済みの予測モデルのパフォーマンスの低下につながる可能性がある。一般に、概念ドリフトを検出するためには、現在の概念を何らかの基線概念と比較した後、予測モデルのパフォーマンスの誤差や実際のデータ分布の特徴に基づいて概念ドリフトを検出する必要がある。現在の概念と基線概念との比較が閾値を超えて異なる場合、概念ドリフトが発生したと判定される。
【0016】
概念ドリフトの検出が重要なシナリオの一つは、ML訓練済みの予測モデルを用いて、ITシステムデータを分析することに関する。データ記憶設備などのITシステムのシステム構成及び作業負荷の分散が頻繁に変化するため、これらの構成の変化は、観測されるITシステムデータの入出力関係に影響を与え、概念ドリフトを引き起こし、ML訓練済みの予測モデルのパフォーマンスに悪影響を及ぼす可能性がある。運用費用及び総保有コストを削減するために、これらのML訓練済みの予測モデルのパフォーマンス監視及び更新を自動的に行うことが望ましい。
【0017】
従って、本開示の態様は、季節的時系列データにおける概念ドリフトの有無を判定することが可能な概念ドリフト検出のための装置、方法、及びシステムに関する。以下で詳細に説明するように、本開示の態様は、時系列データのセットの各季節的期間毎に、別個の基線統計量を生成することに関する。また、更なる態様は、距離平滑化演算を用いて特徴距離を平滑化し、外れ値を減らすことに関する。更なる態様は、時系列データをローリング時間ウィンドウに分割して、より短い季節的時間枠についての統計的特徴を得ることに関する。
【0018】
以下、本発明の実施の形態について図面を参照して説明する。なお、本明細書に記載された実施形態は特許請求の範囲に係る発明を限定するものではなく、実施形態に関連して記載された要素及びその組み合わせの各々は本発明の態様を実施するために厳密に必要なものではないことを理解されたい。
【0019】
以下の説明及び関連する図面には、様々な態様が開示される。これらの態様は、本開示の範囲から逸脱しない範囲で、代替の態様に変更することができる。更に、本開示の関連する事項が不明瞭にならない範囲で、本開示の周知の要素を詳細に説明しないか、または省略することがある。
【0020】
本明細書では、「例示的な」及び/又は「例」という用語は「例、実例、または例示として示されている」ことを意味するために用いられる。本明細書で「例示的な」及び/又は「例」として本明細書で説明される任意の態様は必ずしも、他の態様よりも好ましい又は有利であると解釈されるべきではない。同様に、「本開示の態様」という用語は、本開示の全ての態様が特定の特徴、利点、又は動作モードを含むことを必要としない。
【0021】
更に、多くの態様は、例えば、コンピューティングデバイスの要素によって実行されるべき動作のシーケンスに関して説明される。本明細書で説明される様々な動作は、特定の回路(例えば、特定用途向け集積回路(ASIC))、1つまたは複数のプロセッサによって実行されるプログラム命令、又はその両方の組み合わせによって実行され得ることが認識されるであろう。更に、本明細書に記載の動作のシーケンスは、実行時に関連するプロセッサに本明細書に記載の機能を実行させるコンピュータ命令の対応するセットをその中に格納した任意の形態のコンピュータ可読記憶媒体内で完全に具体化されるとみなすことができる。従って、本開示の様々な態様は、いくつかの異なる形態で具現化されてもよく、それらのすべては請求の範囲内の内容であると考えられる。
【0022】
図面を参照すると、
図1は、本開示の様々な実施形態を実施するためのコンピュータシステム100の高レベルブロック図を示す。本明細書で開示される様々な実施形態の機構及び装置は、任意の適切なコンピューティングシステムに適用されてもよい。コンピュータシステム100の主要コンポーネントは、1つ以上のプロセッサ102、メモリ104、端末インターフェース112、ストレージインターフェース113、I/O(入出力)デバイスインターフェース114、及びネットワークインターフェース115を含む。これらのコンポーネントは、メモリバス106、I/Oバス108、バスインターフェースユニット109、及びI/Oバスインターフェースユニット110を介して、直接的又は間接的に通信可能に接続されてもよい。
【0023】
コンピュータシステム100は、本明細書ではプロセッサ102と総称される1つ又は複数の汎用プログラマブル中央処理装置(CPU)102A及び102Bを含んでもよい。ある実施形態では、コンピュータシステム100は複数のプロセッサを備えてもよく、また別の実施形態では、コンピュータシステム100は単一のCPUシステムであってもよい。各プロセッサ102は、メモリ104に格納された命令を実行し、1つ以上のレベルのオンボードキャッシュを含んでもよい。
【0024】
ある実施形態では、メモリ104は、データ及びプログラムを記憶又は符号化すするためのランダムアクセス半導体メモリ、記憶装置、又は記憶媒体(揮発性又は不揮発性のいずれか)を含んでもよい。ある実施形態では、メモリ104は、コンピュータシステム100の仮想メモリ全体を表し、コンピュータシステム100に結合された、またはネットワークを介して接続された他のコンピュータシステムの仮想メモリも含んでもよい。メモリ104は、概念的には単一のモノリシックエンティティと見なすことができるが、他の実施形態では、メモリ104は、キャッシュ及び他のメモリデバイスからなる階層構造のような、より複雑な構成であってもよい。例えば、メモリは、複数レベルのキャッシュ内に存在し、これらのキャッシュは機能によって更に分割されてもよい。従って、1つのキャッシュは命令を保持し、別のキャッシュは1つ以上のプロセッサによって使用される非命令データを保持してもよい。メモリは、いわゆるNUMA(non-uniform memory access)コンピュータアーキテクチャのいずれかで知られているように、更に分散され、異なるCPU又はCPUのセットに関連付けられてもよい。
【0025】
メモリ104は、本明細書で説明するように、データ転送を処理するための様々なプログラム、モジュール、及びデータ構造のすべて又は一部を格納することができる。例えば、メモリ104は、概念ドリフト検出アプリケーション150を格納することができる。ある実施形態では、概念ドリフト検出アプリケーション150は、プロセッサ102上で実行する命令またはステートメント、あるいはプロセッサ102上で実行して以下でさらに説明する機能を実行する命令またはステートメントによって解釈される命令またはステートメントを含むことができる。実施形態では、概念ドリフト検出アプリケーション150は、プロセッサ102上で実行される命令又は記述、もしくはプロセッサ102上で実行される命令又は記述によって解釈され、後述する機能を実行する命令または記述を含んでもよい。
ある実施形態では、概念ドリフト検出アプリケーション150は、プロセッサベースのシステムの代わりに、またはプロセッサベースのシステムに加えて半導体デバイス、チップ、論理ゲート、回路、回路カード、及び/又は他の物理ハードウェアデバイスを介してハードウェアで実装されてもよい。ある実施形態では、概念ドリフト検出アプリケーション150は、命令又は記述以外のデータを含んでもよい。ある実施形態では、カメラ、センサ、または他のデータ入力デバイス(図示せず)を、バスインターフェースユニット109、プロセッサ102、又はコンピュータシステム100の他のハードウェアと直接通信するように設けることができる。このような構成では、プロセッサ102がメモリ104及び概念ドリフト検出アプリケーション150にアクセスする必要性を低減することができる。
【0026】
コンピュータシステム100は、プロセッサ102、メモリ104、表示システム124、及びI/Oバスインターフェースユニット110間の通信を行うバスインターフェースユニット109を含んでもよい。I/Oバスインターフェースユニット110は、様々なI/Oユニットとの間でデータを転送するためのI/Oバス108と連結していてもよい。I/Oバスインターフェースユニット110は、I/Oバス108を介して、I/Oプロセッサ(IOP)又はI/Oアダプタ(IOA)としても知られる複数のI/Oインターフェースユニット112、113、114、及び115と通信してもよい。表示システム124は、表示コントローラ、表示メモリ、又はその両方を含んでもよい。表示コントローラは、ビデオ、オーディオ、又はその両方のデータを表示装置126に提供することができる。また、コンピュータシステム100は、データを収集し、プロセッサ102に当該データを提供するように構成された1つまたは複数のセンサ等のデバイスを含んでもよい。
例として、コンピュータシステム100は、心拍数データやストレスレベルデータ等を収集するバイオメトリックセンサ、湿度データ、温度データ、圧力データ等を収集する環境センサ、及び加速度データ、運動データ等を収集するモーションセンサ等を含んでもよい。これ以外のタイプのセンサも使用可能である。表示メモリは、ビデオデータをバッファするための専用メモリであってもよい。表示システム124は、単独のディスプレイ画面、コンピュータモニタ、テレビ、タブレット又は携帯型デバイス等のような表示装置126に接続されてもよい。
ある実施形態では、表示装置126は、オーディオを再生するための1つ又は複数のスピーカを含んでもよい。あるいは、オーディオを再生するための1つ又は複数のスピーカは、I/Oインターフェースユニットに接続されてもよい。他の実施形態では、表示システム124によって提供される1つ又は複数の機能は、プロセッサ102を含む集積回路に実施されてもよい。更に、バスインターフェースユニット109によって提供される1つ又は複数の機能は、プロセッサ102を含む集積回路に実施されてもよい。
【0027】
I/Oインターフェースユニットは、様々な記憶装置及びI/O装置と通信する機能を備える。例えば、端末インターフェースユニット112は、ユーザ出力デバイス(例えば、ビデオ表示装置、スピーカ、及び/又はテレビセット等)及びユーザ入力デバイス(キーボード、マウス、キーパッド、タッチパッド、トラックボール、ボタン、ライトペン、又は他のポインティングデバイス等)のようなユーザI/Oデバイス116の取り付けが可能である。ユーザは、ユーザインターフェースを使用して、ユーザ入力デバイスを操作することで、ユーザI/Oデバイス116及びコンピュータシステム100に対して入力データや指示を入力したり、ユーザ出力デバイスを使用して出力データを受け取ってもよい。ユーザインターフェースは、例えば、ユーザI/Oデバイス116を介して、表示装置に表示されたり、スピーカによって再生されたり、プリンタを介して印刷されたりしてもよい。
【0028】
ストレージインターフェース113は、1つ又は複数のディスクドライブや直接アクセスストレージ装置117(通常は磁気ディスクドライブストレージ装置であるが、ホストコンピュータへの単一の大型ストレージ装置として見えるように構成されたディスクドライブのアレイ、又はフラッシュメモリ等ソリッドステートドライブを含む他のストレージ装置であってもよい)の取り付けが可能である。ある実施形態では、ストレージ装置117は、任意の二次記憶装置として実装されてもよい。メモリ104の内容は、ストレージ装置117に格納され、必要に応じて読み出されてもよい。入出力装置インターフェース114は、プリンタやファックス等のような様々な入出力装置のいずれかへのインターフェースを提供する。ネットワークインターフェース115は、コンピュータシステム100から他のデジタル装置及びコンピュータシステムへの1つ以上の通信経路を提供する。これらの通信経路は例えば、1つ以上のネットワーク130を含んでもよい。
【0029】
図1に示すコンピュータシステム100は、プロセッサ102、メモリ104、バスインターフェースユニット109、表示システム124、及びI/Oバスインターフェースユニット110の間に直接通信経路を提供する特定のバス構造を示すが、他の実施形態では、コンピュータシステム100は、階層構成、スター構成またはウェブ構成のポイント・ツー・ポイント・リンク、複数の階層バス、並列及び冗長経路、又は任意の他の適切なタイプの構成等、様々な形態で構成され得る異なるバスまたは通信経路を含んでもよい。更に、I/Oバスインターフェースユニット110及びI/Oバス108は、それぞれ単一のユニットとして示されているが、実際には、コンピュータシステム100は、複数のI/Oバスインターフェースユニット110及び/又は複数のI/Oバス108を含んでもよい。また、I/Oバス108を、様々なI/O装置に走る他の通信経路から分離する複数のI/Oインターフェースユニットが示されているが、他の実施形態では、I/O装置のいくつか又はすべてが、1つまたは複数のシステムI/Oバスに直接接続される。
【0030】
様々な実施形態では、コンピュータシステム100は、マルチユーザメインフレームコンピュータシステム、シングルユーザシステム、又はサーバコンピュータ等の、直接的ユーザインターフェースを有しない、他のコンピュータシステム(クライアント)からの要求を受信するデバイスであってもよい。他の実施形態では、コンピュータシステム100は、デスクトップコンピュータ、ポータブルコンピュータ、ラップトップコンピュータ又はノートブック・コンピュータ、タブレットコンピュータ、ポケットコンピュータ、電話、スマートフォン、または他の任意の適切なタイプの電子機器として実現されてもよい。
【0031】
次に、
図2を参照して、本開示の実施形態に係る概念ドリフト検出システムの構成の一例について説明する。
【0032】
図2は、本開示の実施形態に係る概念ドリフト検出システム200の構成の一例を示す図である。
図2に示すように、概念ドリフト検出システム200は、クライアント装置210と、時系列データセット230を記憶するデータ記憶装置220と、通信ネットワーク240と、概念ドリフト検出装置250とを含む。クライアント装置210、データ記憶装置220、及び概念ドリフト検出装置250は、通信ネットワーク240を介して通信可能に接続されてもよい。ここで、通信ネットワーク240は、インターネット、LAN(Local Area Network)接続、MAN(Metropolitan Area Network)接続、WAN(Wide Area Network)接続などを含んでもよい。
【0033】
クライアント装置210は、概念ドリフト検出装置250及び/又はデータ記憶装置220に対して、情報を送受信するように構成された装置である。クライアント装置210は、データ記憶装置220及び時系列データセット230の所有者又は管理者によって使用され、時系列データセット230の分析を開始するために、概念ドリフト検出要求を概念ドリフト検出装置250に送信してもよい。ある実施形態では、クライアント装置210は、パーソナルコンピューティング装置(例えば、スマートフォン、タブレット、スマートウォッチ、ラップトップコンピュータ)等を含んでもよい。クライアント装置210は、ユーザインターフェースを介してユーザから指令及び指示を受信するように構成されてもよい。
【0034】
データ記憶装置220は、時系列データセット230を記憶し、維持するように構成された装置である。ある実施形態において、データ記憶装置は、ハードディスクドライブ、ランダムアクセスメモリ、読出し専用メモリ、消去可能プログラマブル読出し専用メモリ、又はフラッシュメモリ、スタティックランダムアクセスメモリ等を含んでもよい。いくつかの実施形態では、データ記憶装置220は、複数の分散型クラウド記憶システムを含んでもよい。
【0035】
時系列データセット230は、概念ドリフト検出装置250の解析対象となるデータである。ここで、時系列データセット230は、連続する等間隔の時点で時間順にインデックス付けされたデータポイントの集合を指す。例として、時系列データセット230は、気象観測、ITシステム、経済学、ヘルスケア、又は時間的順序でモデル化することができる任意の他の情報に関連するデータを含んでもよい。
ある実施形態では、時系列データセット230は、第1の期間に関連する過去の時系列データのセットと、第1の期間に続く第2の期間に関連する現在の時系列データのセットとを含んでもよい。ここで、第1及び第2の期間とは、1年、1か月、1週間、1日、1時間などの任意の期間を指してもよい。
【0036】
時系列データセット230は、自己相関、傾向、又は季節性などの時系列データ点間の内部構造や関係を含み得る。ML予測モデルを訓練する際、これらの内部構造や関係を認識し、考慮することが望ましい。より具体的には、本明細書で説明するように、本開示の態様は、時系列データセット230が季節的である場合に関する。ここで、季節性とは、特定の定期的な間隔で発生するデータの変動の存在を指す。季節性は、システム構成の変更、気象、従業員の作業スケジュールなどの様々な要因によって引き起こされる可能性があり、時系列データセット230における周期的、反復的、及び一般的に規則的で予測可能なパターンからなる。
【0037】
概念ドリフト検出装置250は、時系列データセット230を解析し、概念ドリフトの有無を判定するように構成された装置である。例えば、概念ドリフト検出装置250は、時系列データセット230に含まれる過去の時系列データのセットと現在の時系列データのセットとの間の概念ドリフトの存在を判定してもよい。
図2に示すように、概念ドリフト検出装置250は主に、データ入力部252と、基線モデル生成部254と、特徴抽出部256と、距離計算部258と、概念ドリフト検出部260とを含む。ただし、本開示はこれに限定されるものではなく、概念ドリフト検出装置は他の機能部(例えば、後述する距離平滑化部)を含んでいてもよい。
【0038】
データ入力部252は、データ記憶装置220から時系列データセット230を受信するように構成された機能部である。本明細書で説明するように、時系列データセット230は、過去の時系列データのセット及び現在の時系列データのセットを含んでもよい。ある実施形態では、概念ドリフト検出装置250は、通信ネットワーク240を介して送信された時系列データセット230を受信してもよい。ある実施形態では、概念ドリフト検出装置250は、通信ネットワーク240を介して時系列データセット230を送信することなく、時系列データセット230の分析を実行するためにデータ記憶装置220へのアクセスを許可されてもよい。
【0039】
基線モデル生成部254は、過去の時系列データのセットのサブセットに基づいて基線モデルを生成するように構成された機能部である。ここで、一例として、基線モデルは、現在の時系列データのセットに基づいて予測時系列データのセットを生成するように構成された訓練済みの機械学習モデルを含んでもよい。
【0040】
特徴抽出部256は、過去の時系列データのセットを過去ウィンドウのセットに分割し、現在の時系列データのセットを現在ウィンドウのセットに分割し、基線モデルを基線ウィンドウのセットに分割し、その後、基線ウィンドウのセットから基線データ特徴のセットを計算し、過去ウィンドウのセットから過去データ特徴のセットを計算し、現在ウィンドウのセットから現在データ特徴のセットを計算するように構成された機能部である。
【0041】
距離計算部258は、過去データ特徴のセットのサブセットと、対応する時間枠に関連する基線データ特徴のサブセットとの間の基線距離を計算し、現在データ特徴のセットのサブセットと、対応する時間枠に関連する基線データ特徴のサブセットとの間の現在の距離を計算するように構成された機能部である。
【0042】
概念ドリフト検出部260は、概念ドリフトを判定するための基準を示す基線を基線距離に基づいて計算し、当該基線と現在距離とに基づいて、現在の時系列データのセットと過去の時系列データのセットとの間の概念ドリフトの有無を判定する機能部である。
【0043】
概念ドリフト検出装置250の上述の機能部は、コンピュータシステム上で実行されるように構成されたソフトウェアモジュール(例えば、
図1に示すコンピュータシステム100の概念ドリフト検出アプリケーション150のソフトウェアモジュール)として実装することができる。他の実施形態では、概念ドリフト検出装置250の上述の機能部は、専用ハードウェアユニットとして実装されてもよい。
【0044】
なお、
図2では、概念ドリフト検出システム200の構成の一例を示しているが、本開示はこれに限定されるものではない。例えば、概念ドリフト検出装置250とデータ記憶装置220とを1つのハードウェアユニットとして一体化した構成や、クライアント装置210、データ記憶装置220、概念ドリフト検出装置250を全て同一のローカルエリアネットワークに実装した構成も可能である。
【0045】
図2に示す概念ドリフト検出システム200によれば、季節的時系列データにおける概念ドリフトの有無を判定することができる概念ドリフト検出を行うことができる。
【0046】
次に、
図3を参照して、概念ドリフトを示すグラフの一例について説明する。
【0047】
図3は、本開示の実施形態に係る時系列データにおける概念ドリフトの一例を示すグラフ300である。グラフ300は、時間に対する特定の目標変数(すなわち、概念)の実数値315及び予測値325の両方の推移を示す。一例として、実数値315は、ストレージデバイスの実際に測定されたI/Oトラフィック負荷を表し、予測値325は、ML予測モデルによって予測されるストレージデバイスのI/Oトラフィック負荷を表してもよい。
【0048】
グラフ300に示されるように、予測値325の推移は、第1の期間310の経過全体にわたって、実数値315の推移に密接に対応するが、第2の期間320では、予測値325の推移は実数値315の推移から逸脱する。ここで、実数値315において概念ドリフトが発生しており、その結果、ML予測モデルの予測精度が低下したと言える。この概念ドリフトは、例えば、I/Oトラフィック負荷に影響を及ぼすストレージデバイスの構成の変化の結果として生じた可能性がある。
【0049】
従って、本開示の態様は、このような概念ドリフトを季節的時系列データにおいて検出し、予測精度を向上するように予測モデルを更新することに関する。
【0050】
次に、
図4を参照して、季節的時系列データの一例について説明する。
【0051】
本明細書で説明するように、本開示の態様は、季節的時系列データにおける概念ドリフトの検出に関する。ここで、季節性とは、特定の定期的な間隔で発生するデータの変動の存在を指す。季節性は、システム構成の変更、気象などの様々な要因によって引き起こされる可能性があり、時系列データセットにおける周期的、反復的、及び一般的に規則的で予測可能なパターンからなる。季節的な特性を有する時系列データを分析する予測モデルの精度を向上させるためには、季節性を考慮することが望ましい。
【0052】
図4は、本開示の実施形態に係る季節的時系列データのセット400の一例を示す。本明細書で説明するように、季節的時系列データは、周期的で反復的な変動パターンを自然に含む。ここで、季節的時系列データに存在する周期的で反復的な変動パターンを季節的時間パターンと言う。一例として、
図4に示すように、季節的時系列データのセット400は、3つの季節的時間パターン410、420、430を含む。3つの季節的時系列パターンの各々は、所定の期間に対応する。一例として、
図4に示すように、3つの季節時系列パターンのそれぞれは「一週間」という所定の期間に対応してもよいが、本開示はこれに限定されず、所定の期間は1秒、1分、1時間、1日、複数日、1年、または任意の他の期間としてもよい。
【0053】
更に、各季節的時間パターン410、420、430は、1つまたは複数の季節的時間ウィンドウ412を含む。ここで、季節的時間ウィンドウ412は、季節的時間パターン410、420、430の一部を構成する一連の連続する季節的時間パターン点422を指す。特定の季節的時間パターン410、420、430における各季節的時間ウィンドウ412は、季節的時系列データのセット400の他の季節的時間パターンにおける季節的時間ウィンドウに対応する。一例として、各季節的時間パターン410、420、430が一週間を表す場合、「月曜日」は、3つの季節的時間パターン410、420、430のそれぞれにおける季節的時間ウィンドウ412を表してもよい。
【0054】
季節的時間パターン点422は、季節的時間パターン410、420、430の推移における特定のポイントを指し、特定の時間特徴に対応する。ここで、時間特徴は、所定の反復的な時点または期間を指し、1秒、1分、1時間、1日、1年、または任意の他の期間を含んでもよい。季節的時間パターン410、420、430は、任意の適切な時間特徴に対応する季節的時間パターン点422によって定義されてもよい。特定の季節的時間パターン410、420、430の時間特徴は、観測された季節性のタイプ及び時系列の観測された間隔に依存する。
【0055】
一例として、各季節的時間パターン410、420、430が1週間を表す場合、各季節的時間パターン点422は、曜日(この場合、季節的時間パターン毎に、7個の季節的時間パターン点422が存在する)、1時間(この場合、季節的時間パターン毎に、168個の時間パターン点422が存在する)、1分(この場合、季節的時間パターン毎に、10,080個の時間パターン点422が存在する)などに対応してもよい。
2個の季節的時間パターン点422が同じ時間特徴値(すなわち、縦軸上の値が同じ)を有する場合に等しいと見なされる。同様に、2つの季節的時間ウィンドウ412は、開始及び終了の季節的時間パターン点が等しい場合に等しいと見なされる。
【0056】
季節性の一例は、大規模なビジネス環境で使用されるITシステムのコンピューティング資源の使用において観察することができる。このようなシナリオでは、ITシステムコンピューティング資源の使用を表す時系列データセットに存在する季節性がユーザの労働時間によって大きく影響される。例えば、ITシステムのコンピューティング資源の使用は、従業員の労働時間中(例えば、月曜日から金曜日、午前9時から午後5時まで)に大幅に増加し、これらの時間枠外では減少する。したがって、ユーザの労働時間は、ITシステムコンピューティング資源の使用を表す時系列データセットにおいて、週毎の季節性及び日毎の季節性の両方を生じさせる。
【0057】
次に、
図5を参照して、本開示に係る概念ドリフト検出処理の一例を説明する。
【0058】
図5は、本開示に係る概念ドリフト検出処理500の一例を示すフローチャートである。概念ドリフト検出処理500は、季節的時系列データにおける概念ドリフトを検出するための方法を示し、本開示に係る概念ドリフト検出装置(例えば、
図2に示す概念ドリフト検出装置250)の各種機能部によって実行されてもよい。
図5に示すように、概念ドリフト検出処理は、ステップS501で開始し、ステップS599で完了してもよい。
【0059】
まず、ステップS510では、データ入力部(例えば、概念ドリフト検出装置250のデータ入力部252)は、過去の時系列データのセット(Xpast)と、現在の時系列データのセット(Xcurrent)とを含む時系列データセットを受信する。ここで、時系列データセットは、クライアント装置から概念ドリフト検出装置のデータ入力部に送信されてもよいし、概念ドリフト検出装置がアクセス可能なローカル又は分散型の記憶装置から取得されてもよい。本明細書で説明するように、時系列データセットは、気象観測、ITシステム、経済学、ヘルスケア、又は時間的順序でモデル化することができる任意の他の情報に関連するデータを含んでもよい。
ある実施形態では、時系列データセットは、第1の期間に関連する過去の時系列データのセットと、第1の期間に続く第2の期間に関連する現在の時系列データのセットとを含んでもよい。ここで、第1及び第2の期間とは、1年、1か月、1週間、1日、1時間などの任意の期間を指してもよい。
【0060】
次に、ステップS520では、基線モデル生成部(例えば、概念ドリフト検出装置250の基線モデル生成部254)は、過去の時系列データのセットのサブセットに基づいて、基線モデルを生成する。基線モデルは、過去の時系列データのセットのサブセットを処理して、基線データのセットを生成するように構成されてもよい。後述するように、この基線データは、概念ドリフトの有無を判定するために、基線距離と現在距離の両方を作成するために用いられる。
基線モデルによって生成される基線データは、季節的な特徴の各組み合わせに対して1つのデータ値を提供する基線季節的パターン、又は季節的時間特徴が比較された実データ(過去又は現在)と整列される実過去値を含んでもよい。
【0061】
基線モデルは、様々な構成で実施することができる。例えば、ある実施形態では、基線モデルは、時系列データにおける季節的パターンを検出し、出力を予測するように訓練されたML(Machine Learning、機械学習)予測モデルとして実装してもよい。ここで、ある実施形態では、訓練段階において、MLモデルは、季節的時間特徴(例えば、1分、1時間、曜日など)に基づいて訓練されてもよい。次に、推論段階では、MLモデルは、季節的時間特徴を入力し、季節的時間パターンを出力することができる。更に、他の実施形態では、訓練段階において、MLモデルは、時系列データに基づいて訓練されてもよい。次に、推論段階において、MLモデルは、入力データ(例えば、時系列の最近の過去のデータ)に基づいて、時系列を出力として生成することができる。このように、MLモデルを用いて予測した時系列を基線データとして出力することにより、予測モデルの、過去データの現在データに対するパフォーマンス誤差に基づいて概念ドリフトの有無を判定することが可能となる(すなわち、MLモデルの過去データに対する予測精度と現在データに対する予測精度とを比較し、この比較に基づいて概念ドリフトの有無を判定する)。
【0062】
更に、ある実施形態では、過去の時系列データのセットは、機械学習モデルを使用せずに処理されてもよい。その場合、基線モデルは、データの季節的時間特徴に従って過去の時系列データのセットを平均化し(すなわち、対応する季節的時間パターン点において、過去の時系列データのセットの過去の時系列データの値の平均を計算する)、季節的時間パターンを出力するように構成された統計モデルであってもよい。更に、他の実施形態では、基線モデルは、実際の過去及び現在のデータとの比較の基準として使用する前に、過去の時系列データのセット及び現在の時系列データのセットを1つまたは複数の季節的時間パターン長だけ過去にシフト(すなわち、N分だけシフト)し、基線データ時系列を出力するように構成されてもよい。このように、過去の時系列データのセットから基線データを直接的に計算することにより、実データの季節的時間パターンの観測偏差に基づいて概念ドリフトの有無を判定することが可能となる(すなわち、基線データに対する過去の時系列データと現在の時系列データとの偏差の大きさを判定し、現在の時系列データの方の偏差が大きければ、概念ドリフトが存在すると判定する)。
本明細書で説明するように、様々なタイプの時系列データを入力として使用することが可能であり、本開示は、訓練済みのML予測モデルが利用可能である場合に限定されない。ただし、説明の便宜上、以下では、基線モデルとして、訓練済みの機械学習予測モデルを用いた場合について説明する。
【0063】
次に、ステップS530では、特徴抽出部(例えば、概念ドリフト検出装置250の特徴抽出部256)は、過去の時系列データのセットを過去ウィンドウのセットに分割し、現在の時系列データのセットを現在ウィンドウのセットに分割し、基線データのセットを基線ウィンドウのセットに分割する。ここで、「ウィンドウに分割する」との表現は、過去の時系列データ、現在の時系列データ、及び基線データを、各データセットの季節的時間パターンよりも短い固定長の分割部分に分けることを意味する。例えば、特徴抽出部は、過去の時系列データのセット、現在の時系列データのセット、及び基線データのセットを、長さ「l」の固定の時間差ウィンドウを有するローリングウィンドウに分割することができ、ここで、lは、季節的時間パターンの長さ未満である。ここで、ウィンドウは、部分的に重なっていてもよい。例えば、第1のウィンドウは、時間1からlの長さまでのウィンドウ長を有し、第2のウィンドウは、時間2からl+1の長さまでのウィンドウ長を有してもよい。ウィンドウが重なる量は、自由に構成することができる。別の例として、第1のウィンドウは、時間1からlの長さまでのウィンドウ長を有し、第2のウィンドウは、時間10からl+10の長さまでのウィンドウ長を有してもよい。
このように、季節的時間パターンよりも長さが短いウィンドウにデータを分割することにより、季節的時間パターンにおいて、特定の季節的時間パターン点又は時間ウィンドウでのみ発生する、より小さな概念ドリフトの変化を検出することが可能になる。
【0064】
次に、ステップS540では、特徴抽出部は、基線ウィンドウのセットから基線データ特徴のセットを計算し、過去ウィンドウのセットから過去データ特徴のセットを計算し、現在ウィンドウから現在データ特徴のセットを計算する。ここで、基線データ特徴のセット、過去データ特徴のセット、及び現在データ特徴のセットを計算することは、それぞれのウィンドウ毎に、統計的特徴を抽出することを含んでもよい。より具体的には、特徴抽出部は、長さMを有する時系列の第1の時点(i~1)から第2の時点iまでの各ウィンドウ毎に特徴ベクトルを取得してもよく、ここでl≦i≦Mである(あるいは長さNを有する季節的時間パターンの第1の時間特徴(j~1)からjまで、ここで1≦j≦N)。ここで計算される統計的特徴としては、平均、標準偏差、媒介関係、変動、四分位間範囲、尖度、歪度、絶対偏差中央値、最大値、最小値等が挙げられる。
【0065】
このように、特徴ベクトルは、3つのタイプの入力データのそれぞれのウィンドウについて計算される。すなわち、過去ウィンドウのセットから過去データ特徴のセットが直接的に計算され、基線モデルによって出力される基線データから基線データ特徴のセットが計算され、(時系列データ又は季節的時間パターンデータのいずれか)から計算され、現在ウィンドウのセットから現在データ特徴のセットが直接的に計算される。このように、各ウィンドウについて1つの特徴ベクトルが計算され、ウィンドウのセットに対して特徴ベクトルのセットが存在することになる。
【0066】
次に、ステップS550では、距離計算部(例えば、概念ドリフト検出装置250の距離計算部258)は、過去データ特徴のセットのサブセットと、対応する時間枠に関連する基線データ特徴のサブセットとの間の基線距離を計算し、現在データ特徴のセットのサブセットと、対応する時間枠に関連する基線データ特徴のサブセットとの間の現在距離を計算する。より具体的には、距離計算部は、過去データ特徴のセットにおける過去データ特徴ベクトルと、対応する時間枠に関連する基線データ特徴のセットにおける基線データ特徴ベクトルとの間の基線距離を計算し、現在データ特徴のセットにおける現在データ特徴ベクトルと、対応する時間枠に関連する基線データ特徴のセットにおける基線データ特徴ベクトルとの間の現在距離を計算してもよい。
ここで、「対応する時間枠に関連するデータ特徴ベクトル」は、実質的に同じ期間(例えば、2021年4月1日、午前8時から午後8時)について取得されたデータ特徴ベクトルを指す。
基線距離は、過去データ特徴ベクトルと基線データ特徴ベクトルとの間の相対的な類似性の定量的な指標である。同様に、現在距離は、現在データ特徴ベクトルと基線データ特徴ベクトルとの間の相対的な類似性の定量的な指標である。ある実施形態では、基線距離及び現在距離は、以下の数式を用いて計算されてもよい。
【数1】
【0067】
ここで、A及びBは、2つの異なる特徴ベクトルを表す。例えば、基線距離を計算する際、Aは過去データの時間ウィンドウの特徴ベクトルであり、Bは基線データの時間ウィンドウの特徴ベクトルであってもよい。また、現在距離を計算する際、Aは現在データの時間ウィンドウの特徴ベクトルであり、Bは基線データの時間ウィンドウの特徴ベクトルであってもよい。このように、基線距離は、過去データの特徴ベクトルと基線データの特徴ベクトルとの間で計算することができ、現在距離は、現在データの特徴ベクトルと基線データの特徴ベクトルとの間で計算することができる。個々のウィンドウから得られた特徴ベクトル間の距離を計算することによって(例えば、実データ間の距離を計算するのに対して)、時系列におけるより小さなドリフト/不整合に対する誤差傾向を低減することが可能になる。
【0068】
なお、基線データ特徴ベクトルが1つの季節的時間パターン期間のみからなる場合、基線データの特徴ベクトルは、過去又は現在データの特徴ベクトルの対応する時間特徴に基づいて繰り返し割り当てられる。更に、このステップの出力は、過去の時系列データXpastのセットと現在の時系列データXcurrentのセットの利用可能な各時点iについて、基線の概念に対する基線距離時系列と、現在の概念に対する現在距離時系列との2つの距離の時系列を含む。
【0069】
次に、ステップS560では、距離平滑化部259(例えば、
図6に示す距離平滑化部259)は、ステップS550で求めた基線距離時系列及び現在距離時系列に対して距離平滑化を行う。ここで、距離平滑化部は、基線距離時系列及び現在距離時系列における各データ点に対して、その点に近い時間の値に基づいて距離平滑化を行うようにしてもよい(例えば、直近の観測値に対して所定の重みを強調することによって)。より詳細には、距離平滑化部は、基線距離時系列及び現在距離時系列に対して、EWM(Exponentially Weighted Moving Average、指数加重移動平均)及び分散の手法を適用することができる。距離平滑化部は、以下の数式を用いてEWM平均を計算してもよい。
【数2】
更に、距離平滑化部は、以下の数式を用いてEWM分散を計算してもよい。
【数3】
【0070】
ここで、xiは、ある時間枠に対応する特定の時点iにおける現在の距離値であり、0≦λ≦1のパラメータは、前のデータと比較して最近のデータに与えられる重みを表す。また、現在距離時系列を平滑化する際、距離平滑化部は、最初の観測値に対する平滑化効果を向上させるために、基線距離時系列の既に平滑化された値を入力として用いてもよい(ここでは、時系列特徴の正しい整合を考慮する必要がある)。このように、平滑化済みの基線距離データのセット(EWM平滑化済みの平均/分散)及び平滑化済みの現在距離データのセット(EWM平滑化済みの平均)を得ることができる。基線距離時系列及び現在距離時系列を平滑化することにより、概念ドリフト検出における雑音、偽陽性、及び偽陰性を低減することが可能になる。
【0071】
次に、ステップS570では、概念ドリフト検出部は、基線距離データ(例えば、ステップS560で得られた平滑化済みの基線距離データ)に基づいて基線統計量を計算する。ここで、基線統計量は、概念ドリフトを判定するための基準を示す。ある実施形態では、基線統計量は、同じ季節的時間特徴(例えば、分、時間、曜日)に属する基線距離データの季節的時間パターン点のセットのそれぞれについて概念ドリフトを判定するための基準を示す季節的基線であってもよい。概念ドリフト検出部は、基線距離時系列における各季節的時間パターン点のセットについて、総合的な平均及び標準偏差を計算することによって、季節的基線を計算してもよい。
【0072】
より詳細には、概念ドリフト検出部は、全てのEWM平滑化済みの平均値μ
i及び分散値σ
2を平均化することによって、各季節的時間特徴jについて、季節的基線を計算してもよい。ここで、季節的時間パターン点iは、時間特徴jを有する(すなわち、iは、season
jに属する)。このように、各季節時間特徴jに対する単一の基線平均及び標準偏差値を得ることができる。季節的時間特徴の基線の平均μ
jは、次の数式を用いて計算してもよい。
【数4】
季節的時間特徴の基線の標準偏差σ
jは、次の数式を用いて計算してもよい。
【数5】
【0073】
次に、ステップS580では、概念ドリフト検出部は、基線統計量(例えば、季節的基線)及び現在距離データ(例えば、ステップS560で取得された平滑化済みの現在距離データ)に基づいて、現在の時系列データのセットと過去の時系列データのセットとの間の概念ドリフトの有無を判定する。ここで、概念ドリフト検出部は、ステップS570で計算された季節的基線が示す季節的平均及び標準偏差を用いて、統計的閾値処理手法によって、季節的時間特徴毎の季節的閾値を計算し、その後、この季節的閾値に基づいて、現在距離μ
currentiの平滑化済みの平均の季節的時間パターン点iについて、概念ドリフトが存在するか否かを判定してもよい。概念ドリフト検出部は、以下の次式を用いて、現在距離μ
currentiのEWM平滑化済みの平均の点iについて概念ドリフトが存在するか否かを判定してもよい。
【数6】
【0074】
ここで、「k」とのパラメータは、現在の平均が、概念ドリフトと見なされることなく基線平均から逸脱することができる標準偏差σjの数を指定するパラメータである。一例として、kは3の値に設定されてもよいが、ステップS560の距離平滑化が適用される場合、3未満の値が適切な場合がある。現在距離μcurrentiの平滑化済みの平均が季節的時間特徴の基線の平均μj及びkと標準偏差σjの積(つまり、季節的閾値)の合計よりも大きい場合、概念ドリフト検出部は、季節的時間パターン点iについて、現在の時系列データのセットと、過去の時系列データのセットとの間に概念ドリフトが存在すると判定する。したがって、概念ドリフト検出部は、現在距離μcurrentiの平滑化済みの平均が季節的閾値を満たす場合に真はであり、そうでない場合には偽であるブール値を出力してもよい。
【0075】
ある実施形態では、概念ドリフト検出部は、季節的時間パターン点について、現在の時系列データのセットと過去の時系列データのセットとの間の概念ドリフトの有無を示す概念ドリフト通知を出力するように構成されてもよい。いくつかの実施形態では、概念ドリフト検出部は、平滑化済みの現在距離の所定の数の(連続する)季節的時間パターン点について概念ドリフトが存在すると判定した場合に、概念ドリフト通知を出力するように構成されてもよい。すなわち、概念ドリフトが存在することを判定するために、平滑化済みの現在距離は、特定の時間以上(1つ又は複数のタイムステップ)、又は同じ季節時間パターンに属するいくつかの短期時間ウィンドウ以上(例えば、週毎の季節性の場合、概念ドリフトが同じ曜日に数週間連続して検出される場合等)、季節的閾値を超える必要がある。
【0076】
概念ドリフトが検出された場合、概念ドリフト検出部は、過去の時系列データのセットを更新し、基線モデルを再訓練してもよい。概念ドリフトが検出されない場合、概念ドリフト検出部は、パフォーマンスを更に向上させるために、過去の時系列データのセット及び基線モデルを追加データで更新してもよい。
【0077】
このように、
図5を参照して説明した概念ドリフト検出処理500によれば、季節的時系列データにおける概念ドリフトの有無を判定することができる。なお、単一の閾値を用いて定常データにおける概念ドリフトを検出する既存の方法とは異なり、概念ドリフト検出処理500では、基線距離の季節時間パターン点のセットのそれぞれについて基線統計量が判定され、その結果、季節的時系列データにおける概念ドリフトを検出することが可能になることに留意されたい。
【0078】
次に、
図6を参照して、本開示に係る概念ドリフト検出装置250におけるデータの流れの一例を説明する。
【0079】
図6は、本開示に係る概念ドリフト検出装置250におけるデータの流れの一例を示すブロック図である。
【0080】
まず、データ入力部252は、時系列データセット230を受信する。ここで、時系列データセット230は、クライアント装置(例えば、
図2に示すクライアント装置210)から概念ドリフト検出装置250のデータ入力部252に送信されてもよいし、概念ドリフト検出装置250がアクセス可能なローカル又は分散型の記憶装置から取得されてもよい。本明細書で説明するように、時系列データセット230は、過去の時系列データのセット602及び現在の時系列データのセット604を含んでもよい。
【0081】
次に、基線モデル生成部254は、過去の時系列データのセット602のサブセットに基づいて、基線モデル606を生成する。基線モデル606は、過去の時系列データのセット602のサブセットを処理して、基線データのセットを生成するように構成されてもよい。後述するように、この基線データは、概念ドリフトの有無を判定するために、基線距離データと現在距離データの両方を作成するために用いられる。
【0082】
次に、特徴抽出部256は、過去の時系列データのセット602を過去ウィンドウのセットに分割し、現在の時系列データのセット604を現在ウィンドウのセットに分割し、基線データのセットを基線ウィンドウのセットに分割し、その後、基線ウィンドウのセットから基線データ特徴のセット610を計算し、過去ウィンドウのセットから過去データ特徴のセット608を計算し、現在ウィンドウのセットから現在データ特徴のセット612を計算する。ここで、基線データ特徴のセット、過去データ特徴のセット、及び現在データ特徴のセットを計算することは、それぞれのウィンドウ毎に、統計的特徴を抽出することを含んでもよい。
【0083】
次に、距離計算部258は、過去データ特徴のセット608のサブセットと、対応する時間枠に関連する基線データ特徴610のサブセットとの間の基線距離614を計算し、現在データ特徴のセット612のサブセットと、対応する時間枠に関連する基線データ特徴610のサブセットとの間の現在距離616を計算する。ここで、基線距離614は、過去データ特徴のセット608と基線データ特徴のセット610との間の相対的な類似性の定量的な指標である。同様に、現在距離616は、現在データ特徴のセット612と基線データ特徴のセット610との間の相対的な類似性の定量的な指標である。
【0084】
次に、距離平滑化部259は、距離計算部258によって計算された基線距離614及び現在距離616に対して距離平滑化を行う。ここで、距離平滑化部259は、基線距離614及び現在距離616の各点について距離平滑化を行い、平滑化済みの基線距離618及び平滑化済みの現在距離620を計算してもよい。
【0085】
次に、概念ドリフト検出部260は、平滑化済みの基線距離618に基づいて季節的基線622を計算する。より具体的には、概念ドリフト検出部260は、基線距離における各季節的時間パターン点のセットについて、総合的な平均及び標準偏差を計算することによって、各季節的時間特徴に対する季節的基線を計算してもよい。続いて、概念ドリフト検出部260は、季節的基線622及び平滑化済みの現在距離620に基づいて、概念ドリフト検出624を行ってもよい。
【0086】
ある実施形態では、概念ドリフト検出部260は、現在の時系列データのセット604と過去の時系列データのセット602との間の概念ドリフトの有無を示す概念ドリフト通知を出力してもよい。概念ドリフト検出部260は、この概念ドリフト通知を、時系列データセット230を所有又は管理するクライアントのクライアント装置(例えば、
図2に示すクライアント装置210)に送信してもよい。ある実施形態では、概念ドリフト検出部260は、平滑化済みの現在距離620の所定の数の(連続する)季節的時間パターン点について概念ドリフトが存在すると判定した場合に、概念ドリフト通知を出力するように構成されてもよい。
【0087】
更に、ある実施形態において、概念ドリフトが検出される場合、概念ドリフト検出部260は、第2の時系列データセットに基づいて基線モデル606を更新するように構成されてもよい。この第2の時系列データセットは、時系列データセット230に含まれる過去の時系列データ602の後に取得された時系列データセットを含んでもよい。基線モデル生成部254は、この第2の時系列データセットを用いて、基線モデル606となるMLモデルを再訓練して、基線モデル606を現在のデータの特性と整列させ、概念ドリフトの検出を最小化又は抑えることができる。同様に、概念ドリフトが検出されない場合、概念ドリフト検出部260は、新たに取得された時系列データに基づいて、過去の時系列データのセット602及び基線モデル606を更新するように構成されてもよい。
【0088】
本明細書で説明した実施形態によれば、季節的時系列データにおける概念ドリフトの有無を判定することが可能な、概念ドリフト検出のための装置、方法、及びシステムを提供することができる。なお、単一の閾値を用いて定常データにおける概念ドリフトを検出する既存の方法とは異なり、本開示に係る概念ドリフト検出処理では、基線距離の季節時間パターン点のセットのそれぞれについて基線統計量が判定され、その結果、季節的時系列データにおける概念ドリフトを検出することが可能になることに留意されたい。
【0089】
本発明は、システム、方法、及び/又はコンピュータプログラム製品とすることができる。コンピュータプログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を有するコンピュータ可読記憶媒体を含んでもよい。
【0090】
コンピュータ可読記憶媒体は、命令実行装置によって用いられる命令を保持し記憶することができる有形装置であってもよい。コンピュータ可読記憶媒体は、例えば、電子記憶装置、磁気記憶装置、光記憶装置、電磁記憶装置、半導体記憶装置、または前述の任意の適切な組合せとすることができるが、これらに限定されない。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストは、以下を含む:ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、読取専用メモリ(ROM)、消去可能プログラマブル読取専用メモリ(EPROM又はフラッシュメモリ)、スタティックランダムアクセスメモリ(SRAM)、ポータブルコンパクトディスク読取し専用メモリ(CD-ROM)、デジタル汎用ディスク(DVD)、メモリスティック、フロッピーディスク、パンチカードや溝内で指示が記録された隆起構造物等の機械的にエンコードされたデバイス及び前述の任意の適切な組み合わせ。
本明細書で用いられるコンピュータ可読記憶媒体は、電波又は他の自由に伝播する電磁波、導波管又は他の伝送媒体(例えば、光ファイバケーブルを通過する光パルス)を通って伝播する電磁波、或いはワイヤを通って伝送される電デジタル時的な信号自体であると解釈されるべきではない。
【0091】
本発明の態様は、本発明の実施形態に係る方法、装置(システム)、及びコンピュータプログラム製品を示すフローチャート図および/又はブロック図を参照して本明細書で説明されている。フローチャート図及び/又はブロック図の各ブロック、並びにフローチャート図及び/又はブロック図のブロックの組合せは、コンピュータ可読プログラム命令によって実装できることを理解されたい。
【0092】
これらのコンピュータ可読プログラム命令は、汎用コンピュータ、専用コンピュータ、又は他のプログラマブルデータ処理装置のプロセッサに提供されて、コンピュータ又は他のプログラマブルデータ処理装置のプロセッサを介して実行されることで、フローチャート及び/又はブロック図の1つまたは複数のブロックで指定される機能/動作を実装するための手段を実現する機械が提供される。これらのコンピュータ可読プログラム命令はコンピュータ、プログラマブルデータ処理装置、及び/又は他のデバイスに特定の方法で機能させるように指示することができるコンピュータ可読記憶媒体に格納されてもよく、その結果、命令が格納されたコンピュータ可読記憶媒体は、フローチャート及び/又はブロック図のブロック又は複数のブロックで指定された機能/動作の態様を実施する命令を含む製造品となる。
【0093】
コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラマブルデータ処理装置、又は他のデバイス上にロードされて、コンピュータ、他のプログラマブル装置、又は他のデバイス上で実行される命令がフローチャート及び/又はブロック図の1つまたは複数のブロックで指定された機能/動作を実施するように、一連の動作ステップをコンピュータ、他のプログラマブル装置、又は他のデバイス上で実行させて、コンピュータ実装プロセスを生成することができる。
【0094】
本開示に係る実施形態は、クラウド・コンピューティング・インフラストラクチャを介してエンドユーザに提供されてもよい。クラウドコンピューティングとは、一般に、スケーラブルなコンピューティングリソースをネットワーク上のサービスとして提供することを意味する。より形式的には、クラウドコンピューティングは、コンピューティングリソースとその基盤となる技術的アーキテクチャ(例えば、サーバ、ストレージ、ネットワーク)との間の抽象化を提供するコンピューティング能力として定義されてもよく、迅速に展開及びリリースできる、構成可能なコンピューティングリソースの共有プールへの便利なオンデマンドネットワークアクセスを最小限の管理労力やサービスプロバイダの介入で可能にする。したがって、クラウドコンピューティングによれば、ユーザは、コンピューティングリソースを提供するために用いられる基盤となる物理システム(またはそれらのシステムの場所)に関係なく、「クラウド」内の仮想コンピューティングリソース(ストレージ、データ、アプリケーション、更には完全な仮想化コンピューティングシステム等)にアクセスできる。
【0095】
図中のフローチャート及びブロック図は、本発明の様々な実施形態に係るシステム、方法、及びコンピュータプログラム製品の可能な実装のアーキテクチャ、機能、及び動作を示す。この点に関して、フローチャート又はブロック図の各ブロックは、指定された論理機能を実装するための1つまたは複数の実行可能命令を備える、モジュール、セグメント、又は命令の一部を表してもよい。一部の代替実装形態では、ブロックに記載されている機能は図に記載されている順序と異なる順序で実行されてもよい。例えば、連続して示される2つのブロックは、実際には実質的に同時に実行されてもよく、または関連する機能によっては、ブロックは逆の順序で実行されてもよい。また、ブロック図及び/又はフローチャート図の各ブロック、並びにブロック図及び/又はフローチャート図のブロックの組み合わせは、指定された機能又は動作を実行する、或いは特別な目的のハードウェアとコンピュータの命令の組み合わせを実行する特殊目的ハードウェアベースのシステムによって実施され得ることに留意されたい。
【0096】
上記は、例示的な実施形態に向けられているが、本発明の他の/更なる実施形態は、本発明の基本的な範囲から逸脱することなく考案することができ、本開示の範囲は以下の特許請求の範囲によって規定される。本開示の様々な実施形態の説明は例示の目的で提示されてきたが、網羅的であることも、開示された実施形態に限定されることも意図されていない。記載された実施形態の範囲及び趣旨から逸脱することなく、多くの変更及び変形が当業者には明らかであろう。本明細書で使用される用語は実施形態の原理や、市場で見られる技術に対する実際の適用又は技術的改善を説明するため、或いは当業者が本明細書で開示される実施形態を容易に理解することができるために選択された。
【0097】
本明細書で用いられる用語は、特定の実施形態を説明するためだけのものであり、様々な実施形態を限定することを意図したものではない。本明細書で使用されるように、単数形「a」、「an」、及び「the」は、文脈が明らかに他のことを示さない限り、複数形も含むことが意図される。「セット」、「グループ」、「一部」などは1つ又は複数を含むことが意図される。本明細書で使用されるように、「含む」及び/又は「含んでもよい」との用語は、記載された特徴、整数、ステップ、動作、要素、及び/又はコンポーネントの存在を指定するが、1つまたは複数の他の特徴、整数、ステップ、動作、要素、コンポーネント、又はそれらの組み合わせの存在又は追加を排除しない。様々な実施形態の例示的な態様の前述の詳細な説明において、本明細書の一部であり、様々な態様を実施するための特定の例示的な実施形態を例として示す添付の図面(同一の符号は同様の要素を表す)
を参照した。これらの実施形態は、当業者が実施形態を実施することを可能にするのに十分詳細に説明されたが、他の実施形態を用いることも可能であり、様々な実施形態の範囲から逸脱することなく、論理的、機械的、電気的な変更等を行うことができる。上述の説明では、様々な実施形態を完全に理解するために、多くの具体的な詳細が記載された。しかし、これらの具体的な詳細なしで、様々な実施形態を実施することができる。また、他の箇所では、実施形態を曖昧にしないように、周知の回路、構造、及び技術は詳細に示されていない。
【符号の説明】
【0098】
100 コンピュータシステム
102 プロセッサ
104 メモリ
106 メモリバス
108 I/Oバス
109 バスIF
110 I/OバスIF
112 端末インターフェース
113 ストレージインターフェース
114 I/Oデバイスインターフェース
115 ネットワークインターフェース
116 ユーザI/Oデバイス
117 ストレージ装置
124 表示システム
126 表示装置
130 ネットワーク
150 概念ドリフト検出アプリケーション
200 概念ドリフト検出システム
210 クライアント装置
220 データ記憶装置
230 時系列データセット
240 通信ネットワーク
250 概念ドリフト検出装置
252 データ入力部
254 基線モデル生成部
256 特徴抽出部
258 距離計算部
259 距離平滑化部
260 概念ドリフト検出部