IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ グーグル インコーポレイテッドの特許一覧

<>
  • 特許-時系列予測 図1
  • 特許-時系列予測 図2
  • 特許-時系列予測 図3
  • 特許-時系列予測 図4
  • 特許-時系列予測 図5
  • 特許-時系列予測 図6
  • 特許-時系列予測 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-17
(45)【発行日】2024-09-26
(54)【発明の名称】時系列予測
(51)【国際特許分類】
   G06Q 10/04 20230101AFI20240918BHJP
   G06F 16/903 20190101ALI20240918BHJP
【FI】
G06Q10/04
G06F16/903
【請求項の数】 24
(21)【出願番号】P 2022570355
(86)(22)【出願日】2021-05-06
(65)【公表番号】
(43)【公表日】2023-06-23
(86)【国際出願番号】 US2021031090
(87)【国際公開番号】W WO2021236344
(87)【国際公開日】2021-11-25
【審査請求日】2023-01-05
(31)【優先権主張番号】16/986,861
(32)【優先日】2020-08-06
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】63/026,573
(32)【優先日】2020-05-18
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】チェン,シー
(72)【発明者】
【氏名】イン,リサ
(72)【発明者】
【氏名】ホルマティ,アミル
(72)【発明者】
【氏名】サイド,ウマル
【審査官】牧 裕子
(56)【参考文献】
【文献】米国特許出願公開第2017/0193371(US,A1)
【文献】米国特許出願公開第2019/0384762(US,A1)
【文献】米国特許出願公開第2020/0125941(US,A1)
【文献】米国特許出願公開第2016/0300252(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06Q 10/00 - 99/00
G06F 16/903
(57)【特許請求の範囲】
【請求項1】
方法(600)であって、
データ処理ハードウェア(144)において、ユーザ(12)から時系列予測クエリ(20)を受信することを含み、前記時系列予測クエリ(20)は、前記データ処理ハードウェア(144)に複数の時系列予測(22)を実行するよう要求し、各時系列予測(22)は、それぞれの現在のデータ(152)に基づく将来のデータ(162)の予測であり、前記方法はさらに、
前記時系列予測クエリ(20)によって要求される前記複数の時系列予測(22)の各時系列予測(22)について、同時に、
前記データ処理ハードウェア(144)が、複数の成分に分解されるそれぞれの時系列予測(22)について複数のモデル(212)をトレーニングすることと、
前記複数のモデルの各それぞれのモデルについて、前記データ処理ハードウェア(144)が、前記それぞれの現在のデータを用いて、前記それぞれのモデルのそれぞれの相対品質を推定することとを含み、前記それぞれの相対品質は前記複数のモデルのうちの各他のモデルに対する前記それぞれのモデルの品質を表し、
前記データ処理ハードウェア(144)が、経験的手段に頼ることなく各それぞれのモデルの前記それぞれの相対品質を用いて、前記複数のモデル(212)のうちのどのモデル(212)が、前記それぞれの時系列予測(22)に最良に適合するかを判断することと、
前記データ処理ハードウェア(144)が、前記判断された最良適合モデル(212)および前記それぞれの現在のデータ(152)に基づいて前記将来のデータ(162)を予測することとを含み、前記方法はさらに、
前記データ処理ハードウェア(144)が、前記ユーザ(12)に、前記時系列予測クエリ(20)によって要求される前記複数の時系列予測(22)の各々について前記予測された将来のデータ(162)を返すことを含む、方法。
【請求項2】
前記時系列予測クエリ(20)は、単一のクエリ(20)のみを含む、請求項1に記載の方法(600)。
【請求項3】
前記単一のクエリ(20)は、構造化照会言語(SQL)クエリ(20)を含む、請求項2に記載の方法(600)。
【請求項4】
前記単一のクエリ(20)は、テーブル(158)の3つの列(300)への参照を含む、請求項2または3に記載の方法(600)。
【請求項5】
前記テーブル(158)の前記3つの列(300)は、
タイムスタンプデータを含む第1の列(300a)と、
前記現在のデータ(152)を含む第2の列(300b)と、
時系列予測識別データを含む第3の列(300c)とを含む、請求項4に記載の方法(600)。
【請求項6】
各それぞれの時系列予測(22)のための前記複数のモデル(212)の各モデル(212)は、自己回帰和分移動平均モデル(212)を含む、請求項1~5のいずれか1項に記載の方法(600)。
【請求項7】
前記複数のモデル(212)をトレーニングすることは、ハイパーパラメータチューニングを実行することを含む、請求項6に記載の方法(600)。
【請求項8】
前記将来のデータ(162)を予測することは、季節的影響をモデル化することを含む、請求項1~7のいずれか1項に記載の方法(600)。
【請求項9】
前記将来のデータ(162)を予測することは、休日効果をモデル化することを含む、請求項1~8のいずれか1項に記載の方法(600)。
【請求項10】
前記将来のデータ(162)を予測することは、ドリフトをモデル化することを含む、請求項1~9のいずれか1項に記載の方法(600)。
【請求項11】
前記将来のデータ(162)を予測することは、異常検出(518)を実行することを含む、請求項1~10のいずれか1項に記載の方法(600)。
【請求項12】
前記複数のモデル(212)のうちのどのモデル(212)が前記それぞれの時系列予測(22)に最良に適合するかを判断することは、どのモデル(212)が最低の赤池情報量基準(AIC)を有するかを判断することを含む、請求項1~11のいずれか1項に記載の方法(600)。
【請求項13】
システム(100)であって、
データ処理ハードウェア(144)と、
前記データ処理ハードウェア(144)と通信するメモリハードウェア(146)とを備え、前記メモリハードウェア(146)は、前記データ処理ハードウェア(144)上で実行されると前記データ処理ハードウェア(144)に動作を実行させる命令を記憶し、前記動作は、
ユーザ(12)から時系列予測クエリ(20)を受信することを含み、前記時系列予測クエリ(20)は、前記データ処理ハードウェア(144)に複数の時系列予測(22)を実行するよう要求し、各時系列予測(22)は、それぞれの現在のデータ(152)に基づく将来のデータ(162)の予測であり、前記動作はさらに、
前記時系列予測クエリ(20)によって要求される前記複数の時系列予測(22)の各時系列予測(22)について、同時に、
複数の成分に分解されるそれぞれの時系列予測(22)について複数のモデル(212)をトレーニングすることと、
前記複数のモデルの各それぞれのモデルについて、前記それぞれの現在のデータを用いて、前記それぞれのモデルのそれぞれの相対品質を推定することとを含み、前記それぞれの相対品質は前記複数のモデルのうちの各他のモデルに対する前記それぞれのモデルの品質を表し、
経験的手段に頼ることなく各それぞれのモデルの前記それぞれの相対品質を用いて、前記複数のモデル(212)のうちのどのモデル(212)が前記それぞれの時系列予測(22)に最良に適合するかを判断することと、
前記判断された最良適合モデル(212)および前記それぞれの現在のデータ(152)に基づいて前記将来のデータ(162)を予測することとを含み、前記動作はさらに、
前記時系列予測クエリ(20)によって要求される前記複数の時系列予測(22)の各々について、前記予測された将来のデータ(162)を前記ユーザ(12)に返すことを含む、システム(100)。
【請求項14】
前記時系列予測クエリ(20)は、単一のクエリ(20)のみを含む、請求項13に記載のシステム(100)。
【請求項15】
前記単一のクエリ(20)は、構造化照会言語(SQL)クエリ(20)を含む、請求項14に記載のシステム(100)。
【請求項16】
前記単一のクエリ(20)は、テーブル(158)の3つの列(300)への参照を含む、請求項14または15に記載のシステム(100)。
【請求項17】
前記テーブル(158)の前記3つの列(300)は、
タイムスタンプデータを含む第1の列(300a)と、
前記現在のデータ(152)を含む第2の列(300b)と、
時系列予測識別データを含む第3の列(300c)とを含む、請求項16に記載のシステム(100)。
【請求項18】
各それぞれの時系列予測(22)のための前記複数のモデル(212)の各モデル(212)は、自己回帰和分移動平均モデル(212)を含む、請求項13~17のいずれか1項に記載のシステム(100)。
【請求項19】
前記複数のモデル(212)をトレーニングすることは、ハイパーパラメータチューニングを実行することを含む、請求項18に記載のシステム(100)。
【請求項20】
前記将来のデータ(162)を予測することは、季節的影響をモデル化することを含む、請求項13~19のいずれか1項に記載のシステム(100)。
【請求項21】
前記将来のデータ(162)を予測することは、休日効果をモデル化することを含む、請求項13~20のいずれか1項に記載のシステム(100)。
【請求項22】
前記将来のデータ(162)を予測することは、ドリフトをモデル化することを含む、請求項13~21のいずれか1項に記載のシステム(100)。
【請求項23】
前記将来のデータ(162)を予測することは、異常検出(518)を実行することを含む、請求項13~22のいずれか1項に記載のシステム(100)。
【請求項24】
前記複数のモデル(212)のうちのどのモデル(212)がそれぞれの時系列(410)に最良に適合するかを判断することは、どのモデル(212)が最低の赤池情報量基準(AIC)を有するかを判断することを含む、請求項13~23のいずれか1項に記載のシステム(100)。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、時系列予測に関する。
【背景技術】
【0002】
背景
履歴データに基づいて将来の傾向を予測することは、多数の異なるアプリケーションに有用な情報を提供することができる。膨大な量のデータが容易に入手可能であり、ユーザが競争力のある利点を得るために正確な予測を活用しようとするにつれて、将来の傾向の正確な予測の必要性が高まっている。将来のデータ傾向を予測するとき、いくつかの基礎となる成分は、データの変動に影響を及ぼし得る。これらの変動は、時間成分を正確に予測することを非常に困難にし得る。多くの機械学習モデルは、時間成分を組み込んだ将来の傾向を正確に予測することを目的とする。
【発明の概要】
【0003】
概要
本開示の一局面は、時系列予測のための方法を提供する。本方法は、データ処理ハードウェアにおいて、ユーザから時系列予測クエリを受信することを含む。時系列予測クエリは、データ処理ハードウェアに複数の時系列予測を実行するよう要求する。各時系列予測は、それぞれの現在のデータに基づく将来のデータの予測である。時系列予測クエリによって要求される複数の時系列予測の各時系列予測について、本方法は、データ処理ハードウェアが、それぞれの時系列予測について複数のモデルを同時にトレーニングすることを含む。本方法はまた、複数のモデルのうちのどのモデルが、それぞれの時系列予測に最良に適合するかを同時に判断することと、判断された最良適合モデルおよびそれぞれの現在のデータに基づいて、将来のデータを同時に予測することとを含む。本方法はまた、データ処理ハードウェアが、時系列予測クエリによって要求される複数の時系列予測の各々について、予測された将来のデータをユーザに返すことを含む。
【0004】
本開示の実現例は、以下の任意選択の特徴のうちの1つ以上を含んでもよい。いくつかの実現例では、時系列予測要求は、単一のクエリのみを含む。これらの実現例では、単一のクエリは、構造化照会言語(SQL)クエリを含んでもよい。追加または代替として、単一のクエリはまた、テーブルの3つの列への参照を含む。いくつかの例では、テーブルの3つの列は、タイムスタンプデータを含む第1の列と、現在のデータを含む第2の列と、時系列予測識別データを含む第3の列とを含む。
【0005】
いくつかの実現例では、各それぞれの時系列予測のための複数のモデルの各モデルは、自己回帰和分移動平均モデルを含む。複数のモデルをトレーニングすることは、ハイパーパラメータチューニングを実行することを含んでもよい。いくつかの例では、将来のデータを予測することは、季節的影響をモデル化することを含む。任意選択的に、将来のデータを予測することは、休日効果をモデル化することを含む。追加の例では、将来のデータを予測することは、ドリフトをモデル化することを含む。いくつかの実現例では、将来のデータを予測することは、異常検出を実行することを含む。いくつかの例では、複数のモデルのうちのどのモデルがそれぞれの時系列予測に最良に適合するかを判断することは、どのモデルが最低の赤池情報量基準(AIC)を有するかを判断することを含む。
【0006】
本開示の別の局面は、時系列予測のためのシステムを提供する。システムは、データ処理ハードウェアと、データ処理ハードウェアと通信するメモリハードウェアとを含む。メモリハードウェアは、データ処理ハードウェア上で実行されると、データ処理ハードウェアに動作を実行させる命令を記憶する。動作は、ユーザから時系列予測クエリを受信することを含む。時系列予測クエリは、データ処理ハードウェアに複数の時系列予測を実行するよう要求する。各時系列予測は、それぞれの現在のデータに基づく将来のデータの予測である。時系列予測クエリによって要求される複数の時系列予測の各時系列予測について、動作は、それぞれの時系列予測について複数のモデルを同時にトレーニングすることを含む。動作はまた、複数のモデルのうちのどのモデルがそれぞれの時系列予測に最良に適合するかを同時に判断することと、判断された最良適合モデルおよびそれぞれの現在のデータに基づいて将来のデータを同時に予測することとを含む。動作はまた、時系列予測クエリによって要求される複数の時系列予測の各々について、予測された将来のデータをユーザに返すことを含む。
【0007】
本開示の実現例は、以下の任意選択の特徴のうちの1つ以上を含んでもよい。いくつかの実現例では、時系列予測要求は、単一のクエリのみを含む。これらの実現例では、単一のクエリは、構造化照会言語(SQL)クエリを含んでもよい。追加または代替として、単一のクエリはまた、テーブルの3つの列への参照を含む。いくつかの例では、テーブルの3つの列は、タイムスタンプデータを含む第1の列と、現在のデータを含む第2の列と、時系列予測識別データを含む第3の列とを含む。
【0008】
いくつかの実現例では、各それぞれの時系列予測のための複数のモデルの各モデルは、自己回帰和分移動平均モデルを含む。複数のモデルをトレーニングすることは、ハイパーパラメータチューニングを実行することを含んでもよい。いくつかの例では、将来のデータを予測することは、季節的影響をモデル化することを含む。任意選択で、将来のデータを予測することは、休日効果をモデル化することを含んでもよい。追加の例では、将来のデータを予測することは、ドリフトをモデル化することを含む。いくつかの実現例では、将来のデータを予測することは、異常検出を実行することを含む。いくつかの例では、複数のモデルのうちのどのモデルがそれぞれの時系列予測に最良に適合するかを判断することは、どのモデルが最低の赤池情報量基準(AIC)を有するかを判断することを含む。
【0009】
本開示の1つ以上の実現例の詳細を、添付の図面および以下の説明に記載する。他の局面、特徴、および利点は、説明および図面、ならびに特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【0010】
図1】時系列予測を生成するための例示的なシステムの概略図である。
図2図1のシステムの例示的な構成要素の概略図である。
図3】時系列識別列を含むテーブルの概略図である。
図4】時系列およびその時系列の対応する分解成分のプロットである。
図5図1の例示的なシステムの追加の例示的な構成要素の概略図である。
図6】時系列予測を生成する方法のための動作の例示的な構成のフローチャートである。
図7】本明細書で説明されるシステムおよび方法を実現するために使用され得る例示的なコンピューティングデバイスの概略図である。
【発明を実施するための形態】
【0011】
様々な図面における同様の参照符号は、同様の要素を示す。
詳細な説明
時系列は、(典型的には規則的な間隔での)時系列の一連のデータ点である。時系列上の分析は、経時的に変化する任意の変数(例えば、工業プロセスまたはビジネスメトリック)に適用され得る。時系列予測は、過去のデータ値に基づいて将来のデータ値を予測する(すなわち、外挿する)実算である。非常に多くの予測問題は時間成分を伴うので、時系列予測は関心のある活発な領域である。具体的には、時系列予測は、機械学習にとって重要な領域となっている。しかしながら、固有の非定常性および不確実性のため、時系列予測は、依然として困難な問題である。
【0012】
典型的な機械学習の課題により、モデルは、満足のいく結果をそれが提供するまで、トレーニングされる。次いで、モデルは、追加の新たなデータでモデルを再トレーニングすることを保証するのに充分な新たなデータが存在するまで、ある期間にわたって新たなデータに対する予測を行うために使用される。しかしながら、時系列予測では、単一の新たなデータ点が受信されるときであっても、モデルを再トレーニングすることが有益である場合がある。実際的な観点から、(多くの機械学習モデルで伝統的であるように)静的モデルを展開することは、時系列予測には効果がない。
【0013】
本明細書の実現例は、「大規模な」時系列予測を実行することができる時系列予測システムを対象とする。すなわち、システムは、ユーザが、単一のクエリを提出することによって、多くの時系列を並列に適合および予測することを可能にする。システムは、システムが複数の時系列予測を実行することを要求する時系列予測要求をユーザから受信する。複数の時系列予測の各々について、システムは、複数のモデルを同時にトレーニングし、複数のモデルのうちのどのモデルがそれぞれの時系列予測に最良に適合するかを判断する。システムは、判断された最良適合モデルの各々に基づいて将来のデータを予測し、要求された各時系列予測について、予測された将来のデータをユーザに返す。
【0014】
ここで図1を参照すると、いくつかの実現例では、例示的な時系列予測システム100は、ネットワーク112を介して1つ以上のユーザデバイス10と通信する遠隔システム140を含む。遠隔システム140は、コンピューティングリソース144(例えば、データ処理ハードウェア)および/またはストレージリソース146(例えば、メモリハードウェア)を含む、スケーラブル/弾性リソース142を有する、単一のコンピュータ、複数のコンピュータ、または分散システム(例えば、クラウド環境)であってもよい。データストア150(すなわち、遠隔ストレージデバイス)は、クライアントのうちの1つ以上(例えば、ユーザデバイス10)またはコンピューティングリソース144によるストレージリソース146のスケーラブルな使用を可能にするように、ストレージリソース146上にオーバーレイされてもよい。データストア150は、複数の行および列300、300a~n(図3)を各々が含む1つ以上のテーブル158、158a~n(すなわち、クラウドデータベース)内に複数のデータブロック152、152a~nを記憶するよう構成される。データストア150は、任意の時点で任意の数のテーブル158を記憶してもよい。
【0015】
遠隔システム140は、例えば、ネットワーク112を介して、それぞれのユーザ12に関連付けられるユーザデバイス10から時系列予測クエリ20を受信するよう構成される。ユーザデバイス10は、デスクトップワークステーション、ラップトップワークステーション、またはモバイルデバイス(すなわち、スマートフォン)などの任意のコンピューティングデバイスに対応してもよい。ユーザデバイス10は、コンピューティングリソース18(例えば、データ処理ハードウェア)および/またはストレージリソース16(例えば、メモリハードウェア)を含む。ユーザ12は、構造化照会言語(SQL)インターフェイス14を使用してクエリ20を構築してもよい。各時系列予測クエリ20は、1つ以上の時系列予測22、22a~nを要求する。具体的には、クエリ20によって要求される各時系列予測22は、遠隔システム140に対する、現在のデータ152に基づいて将来のデータ162の予測を生成する要求に関連付けられる。
【0016】
遠隔システム140は、将来のデータ162を予測し、ユーザデバイス10に返すための、時系列予測器160を実行する。時系列予測器160は、クエリ20を受信するよう構成される。以下でより詳細に説明するように、モデルトレーナ210は、各予測要求22について複数の予測モデル212、212a~nを同時に生成し、トレーニングする。本明細書で使用されるとおりでは、予測要求22および時系列予測22という用語は、互換的に使用され得る。モデルトレーナ210は、要求される時系列予測22に関連付けられる、データストア150に記憶された1つ以上のテーブル158から取り出される現在のデータ152(すなわち、データブロック152)で予測モデル212をトレーニングしてもよい。すなわち、クエリ20は、データストア150に記憶された1つ以上のテーブル158内に位置する現在のデータ152に基づいて将来のデータを予測するように遠隔システム140に対して各々が要求する複数の時系列予測22を含むことができる。代替的に、クエリ20は、現在のデータ152を含んでもよい。すなわち、ユーザ12は(ユーザデバイス10を介して)、現在のデータ152がデータストレージ150を介して利用可能でない場合、現在のデータ152を提供してもよい。
【0017】
モデルトレーナ210は、異なるパラメータを用いて各モデル212を生成および/またはトレーニングしてもよい。例えば、モデルトレーナ210は、複数の自己回帰統合移動平均(ARIMA)モデルを、自己回帰モデルの異なる次数(すなわち、タイムラグの数であり、パラメータpとして一般的に表される)、異なる差分度(すなわち、データが過去の値を減算された回数であり、パラメータdとして一般に表される)、および移動平均モデルの次数(すなわち、移動平均ウィンドウのサイズであり、パラメータqとして一般的に表される)で、生成およびトレーニングしてもよい。異なるパラメータ(例えば、パラメータp、d、およびq)の組み合わせを使用して、モデルトレーナ210は、各組み合わせについて対応する予測モデル212を生成する。各モデル212は、同じデータ152を使用してトレーニングされる。1つ以上のパラメータが、ユーザ12によって設定可能または部分的に設定可能であってもよい。
【0018】
モデルトレーナ210は、複数のモデル212を生成およびトレーニングするときに、ハイパーパラメータチューニング(ハイパーパラメータ最適化としても知られる)を実行してもよい。ハイパーパラメータは、他のパラメータ(例えば、ノード重み)が学習されている間に実際の学習プロセスを制御または調整するパラメータである。たとえば、モデルトレーナ210は、データ頻度および非季節性次数パラメータに対してハイパーパラメータチューニングを実行してもよい。以下でより詳細に説明するように、モデルトレーナ210は、時系列の多くの異なる局面をモデル化してもよい予測モデル212を生成し、トレーニングしてもよい。例えば、予測モデル212は、季節効果、休日効果、ドリフトモデリング、および異常を考慮してもよい。
【0019】
モデルセレクタ220は、トレーニングされた各モデル212を受け取り、どのモデル212がデータ152に最良に適合するかを判断する。典型的には、機械学習モデルは、トレーニングデータセット上でトレーニングされ、次いで、試験データセット上で評価される。しかしながら、時系列データは非常に限られたデータセットを有することが多いので、時系列予測器160は、同じデータを使用して、モデル212をトレーニングし、モデル212を評価(すなわち、将来のデータ162を予測)してもよい。したがって、いくつかの例では、モデルセレクタ220は、どのモデル212が最低の赤池情報量基準(AIC)をもたらすかを判断する。AICは、サンプル外予測誤差の推定量であり、したがって、同じデータ152でトレーニングされた他の各モデル212に対する、対応するモデル212の相対品質を表してもよい。モデルセレクタ220は、最良適合モデル212S(例えば、最低のAICを有するモデル212)を選択し、モデル212Sを予測器230に送る。これは、モデルセレクタ220が、経験的手段(例えば、別個の試験用データセット)に頼ることなく、分析的に最良適合モデル212を決定することを可能にする。
【0020】
予測器230は、選択されたモデル212Sを使用して、現在のデータ152に基づいて将来のデータ162を予測する。予測器230は、予測された将来のデータ162をユーザ12に(ユーザデバイス10を介して)返す。ユーザデバイス10は、予測データ162を例えばグラフとして表示する。クエリ20によって要求される各時系列は、どの時系列のどの部分が表示されるかを制御するためのユーザ設定可能フィルタを用いて、同じグラフ上に表示されてもよい。例えば、クエリ20は、10個の時系列予測22の要求を含む。将来のデータ162を受信した後、ユーザデバイス10は、10個の時系列予測すべてを同時にグラフ上に表示してもよい。ユーザは、どの時系列が閲覧可能であるかを選択し、所望に応じてデータにズームインまたはズームアウトしてもよい。
【0021】
ここで図2を参照すると、いくつかの例では、クエリ20は、複数の時系列予測22を実行するよう遠隔システム140に要求する。この場合、モデルトレーナ210は、複数の時系列予測22の各々について、複数のモデル212を同時にトレーニングする。例えば、クエリ20が10個の時系列予測22を含み、モデルトレーナ210が時系列予測22ごとに40個のモデル212をトレーニングする場合、モデルトレーナ210は、400(すなわち、40×10)個のモデル212を同時に生成してトレーニングする。図2に示すように、時系列予測器160は、クエリ20によって要求される時系列予測22ごとにモデルトレーナ210を複製してもよい(すなわち、10個の予測要求22に対してモデルトレーナ210の10個の複製)。モデルセレクタ220は、同様に、モデル212の各セットから対応する予測要求22に対する最良適合モデル212Sを同時に(例えば、複製を介して)判断する。予測器230はまた、選択されたモデル212Sの各々に基づいて将来のデータ162を同時に(例えば、複製を介して)予測してもよい。選択されたモデル212Sの各々からの予測された将来のデータ162は、ユーザデバイス10を介してユーザ12に返されるクエリ応答164内に含まれてもよい。したがって、ユーザ12は、単一のクエリ20のみを用いて、複数の時系列予測22を要求してもよく、時系列予測器160は、時系列予測22の各々を並列に処理し、クエリ20に応答するために必要とされる時間の量を大幅に低減する。
【0022】
ここで図3を参照すると、いくつかの実現例では、クエリ20は、データストア150に記憶されたテーブル158の3つの列300、300a~cへの参照を含む。例えば、1つの列300aは時系列識別情報を含み、別の列300bは時系列タイムスタンプデータを含み、第3の列300cは時系列データを含む。時系列タイムスタンプ列300bは、時系列の必要な時間成分を含む。時系列タイムスタンプ列300bの各データ要素310は、時系列データ列300cからのそれぞれの時系列データ要素310に関連付けられる時点を表す。時系列予測器160は、時系列タイムスタンプ列300bおよび時系列データ列300cを使用して、予測モデル212をトレーニングし、将来のデータ162を予測する。
【0023】
いくつかの例では、時系列タイムスタンプ列300bおよび時系列データ列300cは、時系列識別(ID)列300aに関連付けられる。時系列ID列300aは、時系列タイムスタンプ列300bおよび時系列データ列300cのうちのどの部分が、クエリ20が要求する複数の時系列予測22の各々に対応するかを識別する。すなわち、時系列ID列300aは、クエリ20から要求された複数の時系列予測22に基づいて、時系列タイムスタンプ列300bおよび時系列データ列300cを区分する。
【0024】
図示の例では、「ID1」という時系列IDは、一連のタイムスタンプおよびデータ要素310を区分する。時系列ID「ID1」に関連付けられる各タイムスタンプおよびデータ要素310は、クエリ20によって要求される時系列予測22のうちの1つに対応する。同様に、「ID2」という時系列IDは、第2の時系列データ要求22に対する一連のタイムスタンプおよびデータ要素310を区分し、「ID3」という時系列IDは、第3の時系列に対する一連のタイムスタンプおよびデータ要素310を区分する。このように、時系列ID列300aは、クエリ20によって要求される別々の時系列予測22の各々の境界を識別する。したがって、ユーザ12は、単一のクエリ20内の複数の要求される時系列予測22を識別するために、時系列ID列300a、時系列タイムスタンプ列300b、および時系列データ列300cに対応する、データストア150上に記憶されるテーブル158の3つの列300の識別子を提供する単一のクエリを(たとえば、SQLインターフェイス14を使用して)生成してもよい。
【0025】
図3は、明確な例を提供するために明示的な識別列300aを示しているが、表の任意の列300が時系列識別列300aとして機能してもよい。例えば、複数の異なるオフィスについてのメトリックを表すデータを含むテーブル158は、オフィスロケーションごとに複数の時系列予測22を生成するために、時系列識別列300aとしてオフィスロケーション列を使用してもよい。別の例として、異なる国についての気象統計を表すデータを含むテーブル158は、各国の複数の時系列データ予測22を生成するために、時系列識別列300aとして国を表す列を使用してもよい。すなわち、ユーザ12は、所望の時系列を区分する目的で明示的に列300を生成する必要なく、テーブル158内の任意の既存の列300に基づいて複数の時系列予測22を生成してもよい。
【0026】
ここで図4を参照すると、プロット400は、例示的な時系列410と、時系列410の対応する成分412a~cとを示す。時系列410は、時間(x軸)に対する一連のデータ点(y軸)を含む。ここで、データは、y軸上において、約60~140の間に表され、x軸は、およそ1995年から2015年までの範囲である。時系列410は、傾向成分412aと、季節成分412bと、残差成分412cとに分解される。傾向成分412aは、合理的に予測可能なパターンで上下に移動する、データの傾向を表す。ここで、傾向成分412aは、サイクル(例えば、「ブーム-バスト」サイクル)に対応する循環変動も含む。季節成分412bは、特定の周期(例えば、日、週、月など)にわたって繰り返す変動を示す。例えば、12月の売上の増加は、季節成分412bの季節効果を表す。残差成分412cは、他の成分412の分類に該当しない、見かけ上ランダムな残差変動を表す。
【0027】
ここで図5を参照すると、いくつかの例では、エンドツーエンド時系列予測器500は、複数の入力時系列502(例えば、データストア150に記憶されたデータ152から構成される)を受信する。エンドツーエンド時系列予測器500は、3つの主要段階、すなわち、前処理段階510、トレーニング段階520、および予測段階530を含んでもよい。前処理段階510は、入力時系列502を受け取り、データ頻度処理512、NULL代入514(すなわち、入力時系列502における任意のヌルを判断および/または拒否する)、休日効果モデリング516、および異常検出518を実行する。
【0028】
休日効果は、時系列予測において重要な役割を果たしてもよい。例えば、オンライン小売業者の販売を表す時系列は、「ブラックフライデー」での販売の著しい急増を経験してもよい。しかしながら、ブラックフライデーは、11月の第4木曜日である感謝祭の翌日にあたるので、固定された周期を持たない。したがって、効果は、季節性モデリングで考慮に入れることが不可能ではないにしても、困難である。加えて、休日効果は、休日効果の望ましくない平滑化につながり得る異常と間違えられる場合がある。休日効果モデリングモジュール516は、そうでなければ季節性モデリングによって見逃されるか、または異常検出によって誤って平滑化される、これらの効果を説明する。
【0029】
前処理の後、トレーニング段階520は、脱季節成分523aおよび季節成分523bを生成する局所回帰(STL)モジュール522を用いた季節および傾向分解から始まる。STLモジュール522は、非線形関係を推定し、時系列を複数の成分412a~c(図4)に分解する。脱季節成分523aは、Kwiatkowsi-Phillips-Schmidt-Shin(KPSS)試験モジュール524を介して処理され、526において複数のARIMAモデルを並列に生成する。季節成分523bは、二重指数平滑化モジュール528に渡される。予測段階530において、ARIMAモデルからの脱季節成分523aは、予測モジュール532aによって予測され、二重指数平滑化モジュール528からの季節成分523bは、予測モジュール532bによって予測される。予測モジュール532aおよび予測モジュール532bの両方からの結果は、予測結果534を作成するために組み合わされる。予測器500は、ユーザデバイス10を介してユーザ12に予測結果534を返してもよい。エンドツーエンド時系列予測器500は、各入力時系列502が同時に並列に予測されるように、各入力時系列502について段階510、520、530を複製する。
【0030】
図6は、時系列予測を実行するための方法600のための動作の例示的な構成のフローチャートである。方法600は、動作602において、データ処理ハードウェア144において、複数の時系列予測22を実行するようにデータ処理ハードウェア144に要求するユーザ12からの時系列予測クエリ20を受信することを含む。各時系列予測22は、それぞれの現在データ152に基づく将来のデータ162の予測である。
【0031】
複数の時系列予測22の各時系列予測22について、方法600は、動作604において、データ処理ハードウェア144が、複数の時系列予測22のそれぞれの時系列予測22のために複数のモデル212を同時にトレーニングすることを含む。動作606において、方法600は、データ処理ハードウェア144が、複数のモデル212のどのモデル212Sが複数の時系列予測22のそれぞれの時系列予測22に最良に適合するかを同時に判断することを含む。動作608において、方法600は、データ処理ハードウェア144が、判断された最良適合モデル212Sおよびそれぞれの現在のデータ152に基づいて将来のデータ162を同時に予測することを含む。動作610において、方法600は、データ処理ハードウェア144が、時系列予測クエリ20によって要求される複数の時系列予測22の各々について、予測された将来のデータ162をユーザ12に返すことを含む。
【0032】
図7は、本文書で説明されるシステムおよび方法を実現するために用いられ得る例示的なコンピューティングデバイス700の概略図である。コンピューティングデバイス700は、ラップトップ、デスクトップ、ワークステーション、携帯情報端末、サーバ、ブレードサーバ、メインフレーム、および他の適切なコンピュータなど、様々な形態のデジタルコンピュータを表すことが意図されている。本明細書に示された構成要素、それらの接続および関係、ならびにそれらの機能は、例示的なものにすぎず、本文書に記載および/または特許請求される本発明の実現例を限定するものではない。
【0033】
コンピューティングデバイス700は、プロセッサ710と、メモリ720と、ストレージデバイス730と、メモリ720および高速拡張ポート750に接続する高速インターフェイス/コントローラ740と、低速バス770およびストレージデバイス730に接続する低速インターフェイス/コントローラ760とを含む。構成要素710、720、730、740、750および760の各々は、様々なバスを用いて相互接続され、共通のマザーボード上に、または必要に応じて他の方法で実装されてもよい。プロセッサ710は、高速インターフェイス740に結合されたディスプレイ780などの外部入力/出力装置上にグラフィカルユーザインターフェイス(GUI)のためのグラフィカル情報を表示するために、メモリ720またはストレージデバイス730に記憶された命令を含む、コンピューティングデバイス700内で実行するための命令を処理することができる。他の実現例では、複数のプロセッサおよび/または複数のバスが、必要に応じて、複数のメモリおよびメモリのタイプとともに用いられてもよい。また、複数のコンピューティングデバイス700が接続されてもよく、各デバイスは、(たとえば、サーババンクとして、ブレードサーバのグループとして、またはマルチプロセッサシステムとして)必要な動作の部分を提供する。
【0034】
メモリ720は、コンピューティングデバイス700内で情報を非一時的に記憶する。メモリ720は、コンピュータ可読媒体、揮発性メモリユニット、または不揮発性メモリユニットであってもよい。非一時的メモリ720は、コンピューティングデバイス700による使用のためにプログラム(例えば、命令のシーケンス)またはデータ(例えば、プログラム状態情報)を一時的または永続的に記憶するために用いられる物理デバイスであってもよい。不揮発性メモリの例は、フラッシュメモリおよび読み出し専用メモリ(ROM)/プログラマブル読み出し専用メモリ(PROM)/消去可能プログラマブル読み出し専用メモリ(EPROM)/電子的消去可能プログラマブル読み出し専用メモリ(EEPROM)(たとえば、ブートプログラムなどのファームウェアに典型的に用いられる)を含むが、これらに限定されない。揮発性メモリの例には、ランダムアクセスメモリ(RAM)、ダイナミックランダムアクセスメモリ(DRAM)、スタティックランダムアクセスメモリ(SRAM)、相変化メモリ(PCM)、およびディスクまたはテープが含まれるが、これらに限定されない。
【0035】
ストレージデバイス730は、コンピューティングデバイス700のための大容量ストレージを提供することができる。いくつかの実現例では、ストレージデバイス730はコンピュータ可読媒体である。様々な異なる実現例では、ストレージデバイス730は、フロッピー(登録商標)ディスクデバイス、ハードディスクデバイス、光ディスクデバイス、もしくはテープデバイス、フラッシュメモリもしくは他の同様のソリッドステートメモリデバイス、またはストレージエリアネットワークもしくは他の構成におけるデバイスを含むデバイスのアレイであってもよい。さらなる実現例では、コンピュータプログラム製品は、情報担体において有形に具現化される。コンピュータプログラム製品は、実行されると上述の方法などの1つ以上の方法を実行する命令を含む。情報担体は、メモリ720、ストレージデバイス730、またはプロセッサ710上のメモリなどのコンピュータ可読媒体または機械可読媒体である。
【0036】
高速コントローラ740は、コンピューティングデバイス700のための帯域幅集約型動作を管理し、低速コントローラ760は、より低い帯域幅集約型動作を管理する。そのような役割の割り当ては、例示的なものにすぎない。いくつかの実現例では、高速コントローラ740は、メモリ720、ディスプレイ780(たとえば、グラフィックスプロセッサまたはアクセラレータを通して)、および様々な拡張カード(図示せず)を受け入れ得る高速拡張ポート750に結合される。いくつかの実現例では、低速コントローラ760は、ストレージデバイス730および低速拡張ポート790に結合される。低速拡張ポート790は、様々な通信ポート(たとえば、USB、Bluetooth(登録商標)、イーサネット(登録商標)、無線イーサネット(登録商標))を含んでもよく、キーボード、ポインティングデバイス、スキャナ、またはスイッチもしくはルータなどのネットワーキングデバイスなどの1つ以上の入力/出力装置に、たとえばネットワークアダプタを介して結合されてもよい。
【0037】
コンピューティングデバイス700は、図に示されるように、いくつかの異なる形態で実現されてもよい。例えば、標準サーバ700aとして、もしくはそのようなサーバ700aのグループ内で複数回、ラップトップコンピュータ700bとして、またはラックサーバシステム700cの一部として実現されてもよい。
【0038】
本明細書に記載のシステムおよび技術のさまざまな実現例は、デジタル電子および/もしくは光学回路系、集積回路系、特別に設計されたASIC(特定用途向け集積回路)、コンピュータハードウェア、ファームウェア、ソフトウェア、ならびに/またはそれらの組合せで実現されてもよい。これらのさまざまな実現例は、少なくとも1つのプログラマブルプロセッサを含むプログラマブルシステム上で実行可能および/または解釈可能な1つ以上のコンピュータプログラムにおける実現例を含んでいてもよく、当該プロセッサは専用であっても汎用であってもよく、ストレージシステム、少なくとも1つの入力装置、および少なくとも1つの出力装置からデータおよび命令を受信するように、かつこれらにデータおよび命令を送信するように結合されている。
【0039】
ソフトウェアアプリケーション(すなわち、ソフトウェアリソース)は、コンピューティングデバイスにタスクを実行させるコンピュータソフトウェアを指してもよい。いくつかの例では、ソフトウェアアプリケーションは、「アプリケーション」、「アプリ」、または「プログラム」と呼ばれることがある。アプリケーションの例には、システム診断アプリケーション、システム管理アプリケーション、システム保守アプリケーション、ワード処理アプリケーション、スプレッドシートアプリケーション、メッセージングアプリケーション、メディアストリーミングアプリケーション、ソーシャルネットワーキングアプリケーション、およびゲームアプリケーションが含まれるが、これらに限定はされない。
【0040】
これらのコンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーションまたはコードとしても知られる)は、プログラム可能なプロセッサのための機械命令を含み、高水準手続き型および/もしくはオブジェクト指向型プログラミング言語で、ならびに/またはアセンブリ/機械言語で実現することができる。本明細書で使用されるとき、用語「機械可読媒体」および「コンピュータ可読媒体」は、機械命令を機械可読信号として受信する機械可読媒体を含む、機械命令および/またはデータをプログラマブルプロセッサに提供するよう使用される任意のコンピュータプログラム製品、非一時的コンピュータ可読媒体、装置および/またはデバイス(例えば、磁気ディスク、光ディスク、メモリ、プログラマブルロジックデバイス(PLD))を指す。「機械可読信号」という用語は、機械命令および/またはデータをプログラマブルプロセッサに提供するために使用される任意の信号を指す。
【0041】
本明細書で説明するプロセスおよび論理フローは、データ処理ハードウェアとも呼ばれ、入力データに対して演算し出力を生成することによって1つ以上のコンピュータプログラムを実行して機能を実行する1つ以上のプログラマブルプロセッサによって実行されことができる。プロセスおよび論理フローはまた、専用論理回路、たとえば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)によって実行され得る。コンピュータプログラムの実行に好適であるプロセッサは、例として、汎用マイクロプロセッサおよび特殊目的マイクロプロセッサの両方、ならびに任意の種類のデジタルコンピュータの任意の1つ以上のプロセッサを含む。概して、プロセッサは、読み取り専用メモリもしくはランダムアクセスメモリまたは両方から命令およびデータを受信することになる。コンピュータの必須要素は、命令を実行するためのプロセッサ、ならびに命令およびデータを記憶するための1つ以上のメモリデバイスである。一般に、コンピュータはさらに、たとえば磁気ディスク、光磁気ディスクまたは光ディスクといった、データを格納するための1つ以上の大容量記憶装置を含むか、当該1つ以上の大容量記憶装置からデータを受取るかもしくは当該1つ以上の大容量記憶装置にデータを転送するよう作動的に結合されるか、またはその両方を行うことにもなる。しかしながら、コンピュータは、そのようなデバイスを有する必要はない。コンピュータプログラム命令およびデータを記憶するのに好適なコンピュータ可読媒体は、例として、半導体メモリデバイス、たとえば、EPROM、EEPROM、およびフラッシュメモリデバイス;磁気ディスク、たとえば内蔵ハードディスクまたはリムーバブルディスク;光磁気ディスク;およびCD ROMおよびDVD-ROMディスクを含む、あらゆる形態の不揮発性メモリ、媒体、ならびにメモリデバイスを含む。プロセッサおよびメモリは、特殊目的論理回路によって補足され得るか、または特殊目的論理回路に組み込まれ得る。
【0042】
ユーザとの対話を提供するために、本開示の1つ以上の局面は、たとえばCRT(陰極線管)、LCD(液晶ディスプレイ)モニタまたはタッチスクリーンといったユーザに対して情報を表示するための表示装置と、選択肢的にキーボードおよびたとえばマウス、トラックボールといったユーザがコンピュータに入力を提供可能であるポインティングデバイスとを有するコンピュータ上で実現され得る。他の種類のデバイスを用いて、ユーザとの対話を提供することもでき、たとえば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック、たとえば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックであり得、ユーザからの入力は、音響入力、音声入力、または触覚入力を含む、任意の形態で受信することができる。加えて、コンピュータは、ユーザが用いるデバイスにドキュメントを送信し、ユーザが用いるデバイスからドキュメントを受信することによって、たとえば、ユーザのクライアントデバイス上のウェブブラウザから受信された要求に応答してそのウェブブラウザにウェブページを送信することによって、ユーザと対話し得る。
【0043】
いくつかの実現例について説明した。それにもかかわらず、本開示の精神および範囲から逸脱することなく、様々な修正がなされ得ることが理解されるであろう。したがって、他の実現例は特許請求の範囲内にある。
図1
図2
図3
図4
図5
図6
図7