本明細書は、全般的に、環境の状態が変化したときに環境を制御する制御システムについて説明する。特に、システムは、環境の制御設定と制御設定に対する環境応答との間の因果関係を判定するために、環境を制御する。特に、環境は、患者及び患者が受けている治療、並びに患者を取り巻く環境、例えば、患者がいる部屋から構成される。システムは、患者に治療を提供するための制御設定を選択する。環境応答は、治療が患者に与える効果を測定する。
例えば、因果関係が判定されている環境応答には、(i)治療の効果を反映するセンサ読み取り値若しくはその他の環境測定値、(ii)環境測定値に基づいて制御システムの性能を測定する性能メトリック、例えば、メリット指数若しくは目的関数、又は(iii)両方が含まれ得る。
特に、制御システムは、患者に提供されている治療の制御可能な要素のセットのそれぞれについてそれぞれの設定を含む制御設定を繰り返し選択する。概して、様々な制御設定を選択すると、システム性能に違いが生じる。すなわち、治療の測定された効果の値が異なる。
より具体的には、制御設定を繰り返し選択し、治療が患者に与える効果に関する制御設定の影響を測定することにより、制御システムは、制御設定とそれぞれの治療の効果との間の因果関係をモデル化する因果モデルを更新する、すなわち、制御設定とシステム性能との間の因果関係を識別する維持されたデータを更新する。
いくつかの実装形態では、環境は、特定の治療を受けている複数の患者を含むことができ、制御システムは、患者の個人的特性及び環境に合わせて、個々の患者ごとに治療の設定を提供することができる。これにより、因果モデルはより多くのデータを受け取り、治療の効果をモデル化するときに人口統計の違いを考慮に入れることができる。例えば、制御システムが単一の患者の治療の入力設定のみを制御する場合、性別は変化しないため、因果モデルは、例えば、患者の性別を考慮に入れることができない。しかし、制御システムが異なる性別の複数の患者の治療のための入力設定を制御する場合、因果モデルは、男性及び女性の因果関係を、例えば、クラスタリングを介して独立してモデル化できる。クラスタリングについては、以下でより詳細に説明する。
因果モデルは「因果モデル」と呼ばれるが、いくつかの実装形態では、モデルは、それぞれが環境の異なるセグメント、つまり特定の特性を共有する環境のセグメントに対応する複数の因果モデルで構成できる。
いくつかの実装形態では、制御システムは引き続き動作し、因果モデルを使用して、患者に提供される治療のための制御設定を選択できる。他の実装形態では、特定の基準が満たされると、制御システムは、因果モデルを外部システムに提供するか、又は因果モデルで識別された因果関係を表示するデータを、治療の制御に使用するためにユーザに提供することができる。例えば、システムが治療を特定の時間制御した後、又は設定を特定の回数選択した後、基準を満たすことができる。別の例として、維持されたデータで識別された因果関係が特定の基準を満たす場合、例えば、重複しない信頼区間がある場合に、基準を満たすことができる。
因果モデルを更新している間、システムは、異なる制御設定を繰り返し選択し、制御システムの内部パラメータ及び環境の特性に基づいて、治療の効果に対する可能な各制御設定の影響を測定する。
言い換えると、制御システムの内部パラメータは、(i)システムが因果モデルを更新する方法と、(ii)現在の因果モデルを前提として選択する制御設定をシステムが判定する方法との両方を定義する。因果モデルを更新している間、制御システムは、因果関係の特定を支援するためにより多くの環境応答が利用可能になると、内部パラメータの少なくともいくつかも繰り返し調整する。
図1Aは、患者環境102に適用される制御設定104を選択する制御システム100を示す。患者環境102は、患者、患者が受けている治療、及び患者を取り巻く環境から構成される。各制御設定104は、患者環境102の複数の制御可能な要素のそれぞれの設定を定義する。概して、環境の制御可能な要素は、システム100によって制御することができ、複数の異なる可能な設定をとることができる要素である。特に、制御設定104は、患者の治療に向けられる。
例えば、制御設定104は、1つ以上の医薬品を患者に投与することに関連する設定を含むことができる。制御システム100は、選択された制御設定104を医療専門家に出力することができ、医療専門家はその後、治療を実行するか、又は例えば、ユーザデバイスに指示を表示することによって、直接患者に出力する。医薬品の投与に関連する設定には、医薬品の選択されたタイプ、2つ以上の医薬品を組み合わせて投与するための選択、又は所与の医薬品又はプラセボのどちらを投与するかに関する選択が含まれ得る。これらの設定はまた、所与の医薬品の投与スケジュール、1用量あたりの投与される所与の医薬品の量、及び例えば、医薬品が注射で投与される場合、医薬品が投与される患者の体での場所を含むことができる。
特定の例として、所与の医薬品は、装置、例えば、マイクロニードルパッチを使用して投与することができる。これらの場合、制御設定104は、装置の構成を定義する設定、例えば、パッチサイズ、パッチのアスペクト比、パッチ上のマイクロニードルの形状、パッチ上のマイクロニードルの数、パッチ上のマイクロニードルの密度、又はパッチ上のマイクロニードルのサイズを含むことができる。制御システム100は、選択された設定を、装置を構成しているユーザに出力し得るか、又は制御システム100が装置を構成する機械を直接制御する場合、制御システム100は機械の設定を直接変更することができる。
別の例として、制御設定104は、患者による食物摂取に関連する設定を含むことができる。これらの設定は、患者が摂取する食物カロリー数、患者が摂取する食物カロリーのタイプ、又は患者が食べる時間帯を含むことができる。これらの設定は、患者への治療の効果が食物の摂取によって影響を受ける場合に、例えば、糖尿病の治療のためにインスリンを投与する場合に適用できる。制御システム100は、これらの制御設定を、例えば、ユーザデバイスに指示を表示することによって患者に、又は医療専門家に直接出力することができる。
別の例として、制御設定104は、患者が眠っているときに使用される持続的気道陽圧法(CPAP)装置の入力設定を含むことができる。これらの設定は、CPAPマシンの空気圧、CPAPマシンの空気量、CPAPマシンのデューティサイクル、及び患者がCPAPマシンと組み合わせた毛布又はウォーマーを使用するかどうか、を含み得る。制御システムは、例えば、システムがCPAPマシンに搭載されている場合、CPAPマシンを直接構成することができ、又はCPAPマシンを構成するために患者若しくは医療専門家に制御設定を出力することができる。
別の例として、制御設定104は、患者への麻酔の管理に関連する設定を含むことができる。これらの設定には、切開前の麻酔導入時間、すなわち、患者が切開されるまでの導入時間、又は患者に毛布若しくはウォーマーが使用されているかどうかを含むことができる。制御システムは、麻酔を直接管理する装置を直接構成することも、制御設定を医療専門家に出力して構成することもできる。
別の例として、制御設定104は、患者を直接取り巻く周囲環境に関連する設定を含むことができる。これらの設定は、治療中の環境の温度、又は治療中の環境の空気の流れを含むことができる。制御システムは、例えば、制御システムが「スマートホーム」装置にプログラムされている場合、周囲環境を直接制御することができ、又は制御設定をユーザに出力する、例えば、HVACシステムをプログラミングするための命令を出力することのいずれかができる。
動作中、制御システム100は、制御設定104を繰り返し選択し、制御設定104に対する環境応答130を監視する。環境応答130は、患者に対する治療の効果を測定する。例えば、患者の血圧レベル、患者の心拍数、又は患者の深部体温。これらの応答は、医療専門家又は患者のいずれかによってシステムに提供され得る。
特定の例として、環境応答130は、治療に応答した患者の生理学的シグナルに関連する測定値を含むことができる。これらの測定値には、患者の痛みのレベル、又は患者の欲求に対する抵抗の測定値を含むことができる(例えば、治療が患者の禁煙を助けることを目的としている場合)。これらの応答は、患者によって自己申告され得、そしてユーザ又は医療専門家のいずれかによって制御システム100に入力され得る。
別の特定の例として、環境応答130は、患者の睡眠の質に関連する測定値、例えば、患者が睡眠中に体験する呼吸障害エピソードの数を含むことができる。これらの測定値は、例えば、治療がCPAPマシンの使用を伴う場合に収集できる。測定値は、CPAPマシンが適切にプログラムされている場合は自動的に、又は患者がシステムに、のいずれかで報告できる。
別の特定の例として、環境応答130は、患者の血液の成分に関連する測定値を含むことができる。これらの測定値は、コレステロール値、血糖値、A1Cレベル、血中トロポニンレベル、又は所与の疾患の血中の別のバイオマーカーを含むことができる。これらの測定値は、患者中の物質、例えば、治療中に投与される医薬品のPK曲線も含むことができる。これらの測定値は、患者の血液検査を実施する医療専門家によって、又は患者によってシステムに提供され得る。
システムは、環境応答130の性能メトリックを計算することができ、すなわち、患者に対する治療の効果を最適化するために環境を制御する際のシステムの性能を表す単一の値を計算することができる。システムで使用される全ての治療の効果の測定値を組み合わせた性能メトリックの例は、選択した測定値の加重和である。
別の例として、性能メトリックは、治療の効果の測定値ごとに、測定値と測定値のベースライン又は望ましい値との差の加重和にすることができ、すなわち、システムが治療の効果の各測定値の許容値の範囲外の変動を最小化しようとするようにする。このような性能メトリックの別の例は、治療の効果の測定値ごとに、測定値が許容範囲内にある場合はゼロであり、測定値が許容範囲外の場合、測定値から許容範囲の最も近い終点までの距離に等しくなる、関数の加重和である。
可能な性能メトリックの別の例は、治療の効果の測定値ごとに、測定値の上限と上限の所望の値との差、測定値の下限と下限の所望の値との差、及び測定値の平均と平均の所望の値との差の加重和であり得る。例えば、制御設定に対する環境応答が血糖値である場合、制御システムは、平均値をその範囲内で可能な限り低く保ちながら、血糖値の上限及び下限をある範囲内に維持しようとすることができる。
システム100はまた、環境102の特性140を監視する。概して、特性140は、制御設定104が環境応答130に及ぼす影響を変更することができるが、制御設定では考慮されない、すなわち、制御システム100によって制御できない環境を特徴付ける任意のデータを含むことができる。
例えば、環境特性140は、調整することができない患者の個人的特性を含むことができる。これらの特性には、患者の体重、患者の年齢、患者の性別、又は患者のボディマスインデックスが含まれ得る。これらの特性は、治療に影響を与えるが治療の目標ではない場合に含まれる。例えば、治療の目標が患者の体重を減らすことである場合、患者の体重は、環境特性140ではなく、環境応答130として含まれるであろう。環境特性140に含まれる個人的特性はまた、患者の平均カロリー摂取量、患者の1つ以上の遺伝子マーカー、患者の活動レベル、患者の睡眠レベル、患者の発汗レベル、又は例えば、マイクロニードルパッチが適用される体の領域における、患者が使用するスキンローションの量を含み得る。この場合も、これらは、治療の制御設定によって調整できない場合にのみ、環境特性140のセットに含まれる。例えば、場合によっては、制御設定に患者の平均カロリー摂取量の調整が含まれることがある。これらの場合、平均カロリー摂取量は、環境特性140のセットに含まれない。
環境特性140の他の例は、健康モニタ、活動モニタ、又は所与の時間における患者の現在の状態を特徴づけることができる任意の他のデータからの情報であり得る。例えば、患者が、例えば、患者の心拍数を追跡することができるウェアラブルデバイスを着用している場合、その情報は、制御システム100に提供され得る。
別の例として、環境特性140は、その環境を変更することができない治療中の患者を取り巻く周囲環境に関連する測定を含むことができる。例えば、環境特性140は、治療中の環境の温度を含むことができる。
システム100は、環境応答130を使用して、制御設定と環境応答との間の因果関係をモデル化する、すなわち、異なる要素の異なる設定が環境応答の値にどのように影響するかをモデル化する因果モデル110を更新する。
特に、因果モデル110は、環境の制御可能な要素ごとに、及び異なるタイプの環境応答ごとに、制御可能な要素の様々な可能な設定が環境応答に及ぼす因果効果、及び可能な設定の因果関係に関するシステムの不確実性の現在のレベルを測定する。
特定の例として、因果モデル110は、所与の制御可能な要素の異なる可能な設定ごとに、及び異なるタイプの環境応答ごとに、制御可能な要素の他の可能な設定と比較した、環境応答に対する可能な設定の影響を表す影響測定値、例えば、可能な設定の真の平均効果の平均推定値、及び信頼区間、例えば、因果効果に関するシステムの不確実性の現在のレベルを表す影響測定の95%信頼区間を含むことができる。
したがって、システムは、例えば、システム性能に対する制御設定の影響の95%の上限と下限を指定する信頼区間を計算する。具体的には、これにより、システムは、様々な制御設定の選択が(臨床的に)有意又は有意でない違いをもたらす場合を識別できる。システムは、有意差をもたらさない制御可能な要素の検定を控えることができる。例えば、信頼区間の上限及び下限が、最大の効果であっても臨床的に意味のある違いをもたらさないような範囲で、及び、その制御可能な要素の検定/探索を継続するためのコストがかかる範囲で、システムはその制御設定を削除する許可を求めることができる。臨床例として、収縮期血圧のいくつかの制御設定に関する信頼区間が、設定の影響が±0.02ポイントであることを示していると想像されたい。その設定で実験を続けることに関して、例えば健康関連又はその他のコストがかかる範囲で、実験のコストは、0.02の圧力低下が心臓イベントの確率に与える利益を超えるため、システムは実験を停止する許可を求めることができる。
環境102の制御を開始する前に、制御システム100は外部入力106を受け取る。外部入力106は、様々なソースのいずれかから制御システム100によって受信されたデータを含むことができる。例えば、外部入力106は、システムのユーザから受信したデータ、以前に環境102を制御していた別の制御システムによって生成されたデータ、機械学習モデルによって生成されたデータ、又はこれらのいくつかの組み合わせを含むことができる。
一般に、外部入力106は、少なくとも(i)環境102の制御可能な要素の設定のための可能な初期値、及び(ii)動作中に制御システム100が追跡する環境応答を指定する。
例えば、外部入力106は、制御システム100が環境の特定のセンサの測定値、性能メトリック、すなわち、特定のセンサ測定値から導き出され、環境を制御しながらシステム100によって最適化されるメリット指数若しくは他の目的関数、又はその両方を追跡する必要があることを指定することができる。
制御システム100は、外部入力106を使用して、制御可能な要素の初期の可能な設定値にわたって初期確率分布(「ベースライン確率分布」)を生成する。外部入力106を使用してこれらのベースライン確率分布を初期化することにより、システム100は、外部データ106によって課される制約に違反しない設定が選択されることを保証し、そして、システム100のユーザによって望まれる場合、環境102を制御するために既に使用された制御設定の履歴範囲から逸脱しない。例えば、患者にとって安全でないことが既知である治療の制御設定の特定の範囲がある場合、システムが安全でない範囲内の制御設定を決して選択しないように、外部データ106はそれらの範囲を定義することができる。特定の例として、糖尿病を治療するためにインスリンを投与する場合、許容できることが既知であるインスリン用量の範囲があり得るが、その範囲外の用量を投与することは患者にとって危険であると、これらの場合、その範囲は、システムが常に許容範囲内にとどまるように、外部データ106で定義されるであろう。
制御システム100はまた、外部入力106を使用して、内部パラメータのセット120を初期化する、すなわち、ベースライン値を内部パラメータのセットに割り当てる。概して、内部パラメータ120は、現在の因果モデル110を前提として、すなわち、システム100によって判定された現在の因果関係及び現在の因果関係に関するシステムの不確実性を前提として、システム100が制御設定を選択する方法を定義する。内部パラメータ120はまた、システム100が、受信した環境応答130を使用して因果モデル110を更新する方法を定義する。
以下でより詳細に説明するように、システム100は、因果モデル110を更新しながら、内部パラメータ120の少なくともいくつかを更新する。すなわち、内部パラメータ120のいくつかは、システム100の動作中に初期化されたベースライン値に固定され得るが、システム100は、システムがより効果的に測定し、場合によっては因果関係を利用できるようにするために、動作中に他の内部パラメータ120を繰り返し調整する。
特に、環境を制御するために、動作中、システム100は、内部パラメータ120に基づいて、環境内の手続き型インスタンスを繰り返し識別する。
各手続き型インスタンスは、時間枠又は治療のインスタンスのコレクションである。特に、手続き型インスタンスは、指定された時間枠又は治療のインスタンス中に環境応答を得ることができるように定義される。
任意の所与の手続き型インスタンス内のエンティティに関連付けられた時間枠の長さは、内部パラメータ120によって定義される。特に、システムが所与の手続き型インスタンスに割り当てる時間枠は、システムによって適用される制御設定の時間的範囲を定義する内部パラメータによって定義される。この時間枠、すなわち、インスタンスの時間的範囲は、システム100が判定する将来の環境応答が、手続き型インスタンスに対して選択された制御設定によって引き起こされたものであるかを定義する。
内部パラメータ120は、システム100の動作中に変化するので、システム100によって生成されたインスタンスもまた変化し得る。すなわち、システムは、システムが内部パラメータ120を変更するときに、手続き型インスタンスが識別される方法を変更することができる。
次いで、システム100は、内部パラメータ120に基づいて、場合によっては環境特性140に基づいて、各インスタンスの設定を選択する。
特定の例として、制御システムは、糖尿病患者の治療のための制御を選択することができ得る。この場合、因果モデルは、選択された制御設定と患者に対する治療の効果との関係をモデル化する。制御設定には、1用量あたりのインスリンの量、インスリンを投与する時間、並びに1日の特定の時間に摂取する食物の量及びタイプが含まれる場合がある。調整不可能な環境特性には、患者の個人的特性、例えば、患者の年齢及び性別、並びに治療中の周囲環境、例えば、インスリンを注射する場合の室温が含まれ得る。環境応答には、個人血糖モニタによって報告された患者の血糖値、及び患者の自己申告された症状、例えば、倦怠感又は体重の変動が含まれ得る。外部入力には、単回投与におけるインスリンの量の適切な範囲、すなわち、患者に有害ではないことが既知の安全な範囲が含まれ得る。手続き型インスタンスは、同じ投与量及び食事制御設定が続き、所与の治療に対する環境応答が測定される期間を定義できる(例えば、1日、1週間、又は1か月)。制御システムの目標は、安全な範囲内で、患者の医学的転帰を最適化する(例えば、症状を最小限に抑える)インスリン薬及び食事制限の設定を見つけることである。以下でより詳細に説明するこのプロセスを使用すると、患者は試行錯誤よりもはるかに迅速に最適な設定を見つけることができる。
場合によっては、すなわち、システム100が可能な設定の空間を探索しているとき、システム100は、ベースライン確率分布に基づいて全てのインスタンスの設定を選択する。
他の場合、すなわち、システム100が、目的関数を最適化するために既に判定されている因果関係を利用しているとき、システム100は、ベースライン確率分布に基づいて他のインスタンス(「ベースラインインスタンス」)の設定を選択し続けながら、現在の因果モデル110を使用していくつかのインスタンス(「ハイブリッドインスタンス」)の設定を選択する。より具体的には、システム100の動作中の任意の所与の時点で、内部パラメータ120は、インスタンスの総数に対するハイブリッドインスタンスの割合を定義する。
システム100はまた、各インスタンスについて、どの環境応答130がインスタンスに関連付けられるか、すなわち、内部パラメータ120に基づいて、因果モデル110を更新する際に使用するかを判定する。
次に、システム100は、各インスタンスの設定104を設定し、インスタンスに対して選択された設定に対する環境応答130を監視する。システム100は、環境応答130を各インスタンスの影響測定値にマッピングし、影響測定値を使用して、現在の因果モデル110を更新するために使用される因果モデル更新150を判定する。
特に、システムは、内部パラメータ120に基づいて、どの履歴手続き型インスタンス(及びインスタンスに関連する環境応答130)が因果モデル110によって考慮されるべきかを判定し、そして、これらの判定された履歴手続き型インスタンスのみに基づいて、因果モデル更新150を判定する。どの履歴手続き型インスタンスが因果モデル110によって考慮されるかは、データ包含ウィンドウを定義する内部パラメータ120のセットによって判定される。データ包含ウィンドウは、任意の所与の時点で、その手続き型インスタンスの結果、すなわち、その手続き型インスタンスに関連付けられた環境応答130が因果モデル110によって考慮されるために、手続き型インスタンスが発生するべき1つ以上の履歴時間枠を指定する。
システム100によって変更されているそれらの内部パラメータについて、システム100はまた、因果モデル110に基づいて、それらの内部パラメータについてシステム100によって維持されるデータを定期的に更新する160。言い換えると、因果モデル110がシステム100の動作中に変化すると、システム100はまた、因果モデル110の変化を反映するように内部パラメータ120を更新する。システム100が現在の因果モデル110を利用するためにいくつかの制御設定を割り当てる場合、システム100はまた、「ハイブリッド」インスタンスと「ベースライン」インスタンスとのシステム性能の差を使用して、内部パラメータ更新160を判定することができる。
図1Bは、例示的な因果モデルからのデータを示す。特に、図1Bの例では、因果モデルは、制御設定、すなわち、x軸上の異なる制御可能な要素に対する異なる可能な設定、及びy軸上の制御設定に対する因果効果を示すチャート180として表される。特に、各制御可能な要素の可能な設定ごとに、因果モデルは、影響測定値及びその影響測定値の周囲の信頼区間を示す。
これらの因果関係は、要素固有のチャート190において、特定の制御可能な要素192についてより詳細に示される。要素固有のチャート190は、制御可能な要素192に対して5つの可能な設定があり、可能な設定はチャート190においてレベルと呼ばれることを示す。5つの設定のそれぞれについて、チャートには、影響測定値を表すバー、及び影響測定値の周りのエラーバーとしてのバーの周りの信頼区間の表現が含まれる。したがって、制御可能な要素の任意の所与の設定の因果モデルの情報には、影響測定値、及びその影響測定値の周囲の信頼区間が含まれる。例えば、第2の設定192(図ではIV-LV2として示されている)の場合、チャート190は、第2の設定の影響測定値を示す棒194、第2の設定の信頼区間の上限を示す棒194の上部の上部バー196、及び第2の設定の信頼区間の下限を示す棒194の上部の下の下部バー198を示す。
図1Bは、単一の因果モデルを示しており、以下の説明から、システムは、任意の所与の制御可能な要素について、手続き型インスタンスの各クラスタに1つずつ、複数の異なる因果モデルを維持及び更新できることが理解される。
図2は、環境を制御するための例示的なプロセス200のフロー図である。便宜上、プロセス200は、1つ以上の場所に配置された1つ以上のコンピュータのシステムによって実行されるものとして説明される。例えば、制御システム、例えば、適切にプログラムされた図1の制御システム100は、プロセス200を実行することができる。
システムは、ベースライン値を内部パラメータのセットに割り当て、ベースライン確率分布を環境の制御可能な要素のそれぞれに割り当てる(工程202)。
特に、システムは、例えば、システムのユーザから、又は別のシステムによるシステム環境の以前の制御から得られたデータから外部データを受け取り、次いで、外部データを使用して、ベースライン値を割り当て、確率分布を生成する。概して、外部データは、環境を制御するときにシステムが動作する初期制約を指定する。
特に、外部データは、環境内の制御可能な要素ごとに可能な制御設定を識別する。すなわち、外部データは、環境内の制御可能な要素ごとに、どの可能な設定を、システムを制御するときにシステムが制御可能な要素に対して選択できるかを識別する。
場合によっては、外部データは、可能な制御設定の追加の制約、例えば、特定の制御可能な要素の設定が他の制御可能な要素の設定に依存していること、又は特定のエンティティを特定の制御可能な要素の可能な制御設定の特定のサブセットにのみ関連付けることができることを指定できる。
したがって、外部データは、環境を制御するときにシステムが探索できる制御設定の可能な組み合わせの検索空間を定義する。
いくつかの実装形態では、これらの制約は、システムの動作中に変化する可能性がある。
例えば、システムは、1つ以上の制御可能な要素の可能な制御設定、又は空間的及び時間的範囲の値の範囲を変更する追加の外部入力を受け取ることができる。
別の例として、制御可能な要素のうちの1つ又は内部パラメータのうちの1つに対する最適な設定が、外部制約によって定義された探索空間の境界に近づいているとシステムが判定した場合、例えば、因果モデルの影響測定値が、最適な設定が検索空間の境界の1つに最も近い設定であることを示している場合、システムは、例えば、システム管理者又はシステムの他のユーザから、制御可能な要素又は内部パラメータの可能な値の空間を拡張するための許可を求めることができる。
更に別の例として、外部データで、制御可能な要素の可能な設定が連続範囲内の任意の値であってもよいことが指定されている場合、システムは最初に範囲を1つの方法で離散化でき、信頼区間が連続範囲の1つのセグメントに最適値が含まれることを十分に強く示すと、そのセグメントを優先するように離散化を変更する。
更に別の例として、特定の制御可能な要素が環境応答に因果効果を持たないとシステムが判定した場合、例えば、制御可能な要素の全ての可能な設定の影響測定値が全てゼロである可能性が高い場合、システムは、制御可能な要素をシステムによる制御から削除する許可を求めることができる。
次いで、システムは、環境の制御可能な要素ごとに、可能な制御設定に対してベースライン(又は「事前」)確率分布を生成する。例えば、外部データが所与の制御可能な要素の可能な値のみを指定し、可能な値のいずれにも優先順位を割り当てない場合、システムは、可能な値ごとに等しい確率を割り当てる、可能な値全体で均一な確率分布を生成できる。別の例として、例えば、環境を制御した履歴結果に基づいて、外部データが所与の制御可能な要素に対して特定の設定を他の設定よりも優先する場合、システムは、優先された設定に対しより高い確率を割り当てる確率分布を生成できる。
システムはまた、システムの各内部パラメータにベースライン値を割り当てる。特に、システムの内部パラメータには、(i)システムによって生成された手続き型インスタンスの空間的範囲を定義する内部パラメータのセット(「空間的範囲パラメータ」と呼ばれる)、及び(ii)システムによって生成された手続き型インスタンスの時間的範囲を定義する内部パラメータのセット(「空間的範囲パラメータ」と呼ばれる)が挙げられる。
システムに複数のエンティティが含まれている場合、システムは、複数のエンティティごとに空間的範囲パラメータと時間的範囲パラメータとの別個のセットを維持できる。システムに複数のエンティティが含まれている他の場合、システムは、複数のエンティティ全てに適用される空間的及び時間的範囲パラメータの単一のセットのみを維持する。システムに複数のエンティティが含まれている更に他の場合では、システムは最初に、空間的及び時間的範囲パラメータの単一のセットを維持し、システムの動作中に、システム性能が向上する場合、すなわち、異なるエンティティが他のエンティティとは異なる方法で制御設定に応答する場合は、空間的範囲又は時間的範囲パラメータの別個のセットを維持するように切り替えることができる。
更に、いくつかの実装形態では、システムは、様々な制御可能な要素に対して、時間的範囲パラメータの別個のセットを維持する。
システムはまた、(iii)システムによって使用されるデータ包含ウィンドウを定義する内部パラメータのセット(「データ包含ウィンドウパラメータ」と呼ばれる)を維持する。いくつかの実装形態では、システムは、全ての制御可能な要素に適用されるデータ包含ウィンドウパラメータの単一のセットを維持する。いくつかの他の実装形態では、システムは、環境の制御可能な要素ごとにデータ包含ウィンドウパラメータの別個のセットを維持する。すなわち、因果モデルを更新するときに、システムが、異なる制御可能な要素に異なるデータ包含ウィンドウを使用できるようにする。以下でより詳細に説明するように、システムが手続き型インスタンスを複数のクラスタにクラスタリングした場合、システムは、(a)クラスタごとにデータ包含ウィンドウパラメータの別個のセットを維持するか、又は(b)クラスタごと及び制御可能な要素ごとにデータ包含ウィンドウパラメータの別個のセットを維持するか、のいずれかをできる。すなわち、異なるクラスタが同じ制御可能な要素に対して異なるデータ包含ウィンドウを使用できるようにする。
システムが因果モデルを利用する実装形態では、内部パラメータにはまた、(iv)ハイブリッドインスタンスとベースラインインスタンスとの比率を定義する内部パラメータのセット(「比率パラメータ」と呼ばれる)も含まれる。いくつかの実装形態では、システムは、全ての制御可能な要素に適用される比率パラメータの単一のセットを維持する。いくつかの他の実装形態では、システムは、環境の制御可能な要素ごとに比率パラメータの別個のセットを維持する。すなわち、制御設定を選択するときに、システムが、異なる制御可能な要素に異なる比率を使用できるようにする。以下でより詳細に説明するように、システムが手続き型インスタンスを複数のクラスタにクラスタリングした場合、システムは、(a)全てのクラスタにわたって比率パラメータの単一のセットを維持し続けるか、(b)クラスタごとに比率パラメータの別個のセットを維持するか、又は(c)クラスタごと及び制御可能な要素ごとに比率パラメータの別個のセットを維持するか、のいずれかをできる。すなわち、同じ制御可能な要素の制御設定を選択するときに、異なるクラスタが異なる比率を使用できるようにする。
以下で説明するように、システムがインスタンスを複数のクラスタにクラスタリングする実装形態では、内部パラメータにはまた、(v)現在のクラスタリング戦略を定義する内部パラメータのセット(「クラスタリングパラメータ」と呼ばれる)も含まれる。
概して、クラスタリングパラメータは、システムで使用されるクラスタリング技術のハイパーパラメータであるか、又はそれを定義する。このようなハイパーパラメータの例には、各クラスタのクラスタサイズ、つまり、各クラスタ内の手続き型インスタンスの数、及び手続き型インスタンスをクラスタリングするために使用される環境特性が含まれる。
システムは、制御可能な要素ごとにクラスタリングパラメータのセットを維持する。すなわち、システムは、制御可能な要素ごとに、クラスタリング技術を適用するときに異なるハイパーパラメータを使用して、その制御可能な要素の手続き型インスタンスのクラスタを生成する。
内部パラメータにはまた、所望により、制御システムの動作に影響を与える他の様々な内部パラメータのいずれかを含めることもできる。例えば、内部パラメータには、因果モデルを更新する方法を定義する内部パラメータのセットも含まれる場合がある(例えば、重みのセット、それぞれが、以下で説明するようにdスコアを計算するために使用できる手続き型インスタンス間の傾向マッチング中の各環境特性の相対的な重要性を表す)。
上記のように、システムは、動作中にこれらの内部パラメータの少なくともいくつかを変更する。
環境の制御中にシステムが変更する内部パラメータのセットごとに、システムは、(i)ヒューリスティックベースのアプローチ、(ii)確率的に値をサンプリングして内部パラメータのメリット指数を最適化する、又は(iii)両方を使用して値を変更することができる。
ヒューリスティックにのみ基づいて変更される内部パラメータの任意のセットの場合、システムは内部パラメータの単一の値を維持し、ヒューリスティックに基づいてその単一の値を繰り返し調整する。
確率的にサンプリングすることによって変更される内部パラメータの任意のセットについては、システムは、内部パラメータの可能な値の範囲を定義するパラメータを維持し、内部パラメータの可能な値と内部パラメータのメリット指数との間の因果関係を識別する因果モデルを維持する。内部パラメータのメリット指数は、制御設定の因果モデルで使用される性能メトリックとは異なる場合がある。次いで、システムは、任意の所与の時点でのインスタンスの少なくともいくつかについて、現在の因果モデルに基づいて、可能な値の範囲内から値を選択する。
システムが確率的サンプリングに加えてヒューリスティックを使用して内部パラメータのセットを更新する場合、システムはヒューリスティックを使用して可能な値の範囲を更新できる。すなわち、可能な値の範囲はヒューリスティックベースのアプローチによって更新されるが、任意の所与の時点での範囲内の値の因果モデルは確率的サンプリングによって更新される。
環境の制御中にシステムが変更しない任意の内部パラメータについては、システムは、固定範囲の値及び固定範囲の値にわたる固定確率分布、又はシステムの動作中に常に使用される値である固定単一値のいずれかを維持できる。
外部データに含まれる内容に応じて、システムは各内部パラメータに、外部データから導出されたベースライン値又はデフォルト値のベースライン値のいずれかを割り当てる。
例えば、外部データは概して、空間的及び時間的範囲の値の範囲を識別する。例えば、空間的範囲が固定されておらず、システムによって変更できる内部パラメータである場合、外部データは空間的範囲の最小値及び最大値を指定できる。同様に、時間的範囲が固定されておらず、システムによって変更できる内部パラメータである場合、外部データは時間的範囲の最小値及び最大値を指定できる。
次に、システムは外部データを使用して初期値を空間的範囲パラメータに割り当て、パラメータが外部データで指定された値の範囲を定義するようにし、また、時間的範囲パラメータに初期値を割り当て、パラメータが外部データで指定された値の範囲を定義するようにする。
他の内部パラメータについては、システムがデフォルト値を割り当てる。例えば、システムはクラスタリングパラメータを初期化して、クラスタの数が1であることを示すことができ(すなわち、環境の制御の開始時にクラスタリングがなくなる)、比率パラメータを初期化して、ハイブリッドインスタンスがないことを示すことができる(すなわち、システムは環境の制御の開始時にのみ探索する)。システムは、データ包含ウィンドウパラメータを初期化して、データ包含ウィンドウに完了した全ての履歴手続き型インスタンスが含まれることを示すこともできる。
システムは開始フェーズを実行する(工程204)。開始フェーズでは、システムは、制御可能な要素のベースライン確率分布に基づいて手続き型インスタンスの制御設定を選択し、環境応答を使用して因果モデルを更新する。つまり、外部データの一部として履歴因果モデルが提供されていない限り、システムは、どの制御設定を手続き型インスタンスに割り当てるかを判定するときに、現在の因果モデルを考慮しない。
代わりに、システムは、影響測定値、すなわちdスコアを後で効果的に計算できるようにする割り当てスキームに従って、ベースライン確率分布を使用して制御設定を選択する。言い換えると、割り当てスキームは、システムが影響測定値を計算するために使用するブロックスキームを考慮した方法で制御設定を選択し、すなわち、ブロックされたグループ間の影響測定値を計算するために、ブロックされたグループを後で識別できるようにする様々な手続き型インスタンスに制御設定を割り当てる。システムによって採用されるブロックスキーム(したがって、割り当てスキーム)は、異なる制御設定間の説明のつかない変動を低減する様々なスキームのいずれかであり得る。システムで使用できるブロックスキームの例には、二重盲検割り当て、ペアワイズ割り当て、ラテン方格割り当て、傾向マッチングなどのうちの1つ以上が含まれる。概して、システムは、手続き型インスタンス内のエンティティの現在の環境特性に基づいて、手続き型インスタンスをブロックされたグループに割り当てる任意の適切なブロックスキームを使用できる。
空間的範囲と時間的範囲との一方又は両方をシステムで変更できる場合、システムは初期化フェーズ中に空間的範囲パラメータ、時間的範囲パラメータ、又はその両方を変更し、そのため、十分に直交する手続き型インスタンスをもたらす可能性がより高い空間及び時間的範囲の値が選択される可能性がより高くなる。グループ内のインスタンスの1つに適用された制御設定が、グループ内の他のインスタンスのいずれかに関連付けられている環境応答に影響を与えない場合、インスタンスのグループは直交していると見なされる。
初期化フェーズでの制御設定の選択及び因果モデル更新については、図3を参照して以下でより詳細に説明する。空間的又は時間的範囲パラメータを変更することは、図11で以下でより詳細に説明する。
いくつかの実装形態では、システムは、システムの運用中、この初期化フェーズを継続する。すなわち、システムは可能な制御設定の空間を探索し続け、探索の結果を因果モデルにコンパイルする。
例として、システムは、単一のメリット指数又は目的関数ではなく、複数の異なる環境応答に関して因果モデルを更新しているときに、すなわち、因果モデルを利用するときに使用するメリット指数又は目的関数がシステムにないときに、この初期化フェーズを継続できる。
これらの実装のいくつかでは、システムは、因果モデルに基づいて初期パラメータのセットの特定の1つ、例えば、空間的範囲パラメータ、時間的範囲パラメータ、データ包含ウィンドウパラメータ、クラスタリングパラメータなどもまた調整しながら、可能な制御設定の空間を探索し続ける。
いくつかの他の実装形態では、システムが、特定の基準が満たされていると判定すると、システムは異なるフェーズの実行を開始する。これらの実装形態では、初期化フェーズ中に、システムは内部パラメータの特定のパラメータを固定して保持する。例えば、システムは、全ての履歴インスタンスを因果モデルに組み込む必要があることを示すために、データ包含ウィンドウパラメータを固定して保持できる。別の例として、システムは、クラスタリングを実行するべきではないことを示すために、クラスタリングの内部パラメータを固定しておくことができる。
特に、これらの他の実装形態では、システムが、基準が満たされていると判定すると、システムはエクスプロイトフェーズの実行を開始することができる(工程206)。
例えば、環境応答が収集された手続き型インスタンスの量が閾値を超えると、システムはエクスプロイトフェーズの実行を開始することができる。特定の例として、システムは、そのような手続き型インスタンスの総数が閾値を超えると、閾値が満たされていると判定できる。別の特定の例として、システムは、任意の制御可能な要素の任意の1つの可能な設定に関連する環境応答の最小数が閾値を超えると、閾値が満たされていると判定できる。
更に、場合によっては、システムは初期化フェーズを採用せず、すぐにエクスプロイトフェーズに進む、すなわち、工程204を実行しない。
閾値が使用される場合、システムは様々な方法のいずれかで閾値を判定できる。
一例として、システムは、因果モデルに基づいてインスタンスに設定を割り当てると、選択される尤度が異なる様々な設定になるように、十分なインスタンスの環境応答が収集されたときに閾値が満たされていると判定できる。因果モデルに基づいて尤度を割り当てる方法は、図5を参照して以下でより詳細に説明される。
別の例として、システムは、正確な信頼区間を生成するために信頼区間を判定するためにシステムが実行する統計的検定に必要な手続き型インスタンスの数、すなわち、信頼度計算の統計的仮定を満たす手続き型インスタンスの数である閾値を判定できる。
別の例として、システムは、因果モデルに所望の検定力をもたらすために必要な手続き型インスタンスの数に等しいように、すなわち、検出力分析によって判定されるように、閾値を判定できる。
エクスプロイトフェーズ中、システムは現在の因果モデルに基づいて手続き型インスタンスのいくつかの制御設定を選択し、内部パラメータのベースライン値に基づいて他の手続き型インスタンスの制御設定を選択し続ける。
特に、システムは比率内部パラメータを変更して、ハイブリッドインスタンス、すなわち、因果モデルに基づいて制御設定が割り当てられるインスタンスである手続き型インスタンスの数と、ベースラインインスタンス、すなわち、ベースライン確率分布に基づいて制御設定が割り当てられているインスタンスがゼロより大きい手続き型インスタンスの数との比率を変更する。
システムは、エクスプロイトフェーズ中に特定のインスタンスをハイブリッドインスタンスとして指定し始めるため、システムは、ハイブリッドインスタンス間のシステム性能の違いの使用を開始し、インスタンスを探索して、内部パラメータの値、例えば、比率内部パラメータ、データ包含ウィンドウパラメータなど、を調整できる。
制御設定の選択、因果モデル更新、及びエクスプロイトフェーズ中の内部パラメータの更新については、図3を参照して以下でより詳細に説明する。
いくつかの実装形態では、システムが特定の基準が満たされていると判定すると、システムはクラスタリングフェーズを開始する(工程208)。すなわち、システムが手続き型インスタンスをクラスタリングするように構成されている場合、クラスタリングの基準が満たされると、システムはクラスタリングフェーズを開始する。システムがインスタンスをクラスタリングするように構成されていない場合、システムは、システムの動作中のいずれの時点でも手続き型インスタンスをクラスタリングしない。
概して、システムはクラスタリングを考慮して、同様の手続き型インスタンスの部分母集団を作成する。実世界の状況では、母集団にわたる異なる手続き型インスタンスは、異なる制御設定に対して異なる応答をする可能性がある。ある手続き型インスタンスの最適な制御設定は、別のインスタンスでは最適ではない場合がある。これらの違いは、インスタンスにわたって見られる性能メトリックの分布に影響を与える可能性がある。母集団全体に対して1つの制御設定を選択する場合、ユーティリティ全体、つまりシステムの全体的な性能に悪影響が及ぶ場合がある。全母集団にわたって全体的な有用性を最大化するために、システムは、個々の特性(環境特性でモデル化)とそれらのフィードバック特性(制御設定用に受信した性能メトリックでモデル化)とを考慮して、インスタンスを部分母集団にクラスタリングできる。システムは、これらの部分母集団のレベルで制御設定を選択する。
実装及び基準に応じて、システムは初期化フェーズ又はエクスプロイトフェーズ中にクラスタリングフェーズを開始できる。すなわち、クラスタリングが工程208であり、初期化フェーズ及びエクスプロイトフェーズがそれぞれ工程204及び206である図2にもかかわらず、クラスタリングフェーズは、初期化フェーズ、エクスプロイトフェーズ、又はその両方と重複していることを示している。
クラスタリングフェーズ中、制御設定を手続き型インスタンスに割り当てる前に、システムは、クラスタリング内部パラメータの現在の値及び手続き型インスタンスの特性に基づいて、手続き型インスタンスをクラスタにクラスタリングする。上記のように、任意の所与の制御可能な要素のクラスタリング内部パラメータは、その制御可能な要素のクラスタリングに使用されるクラスタリング技術のハイパーパラメータを定義する。
システムがクラスタリングフェーズを開始すると、任意の所与の時点で、システムはクラスタごとに別個の因果モデルを維持する。つまり、システムは各クラスタ内の別個の因果関係を識別する。上記のように、システムはまた、各クラスタの内部パラメータの少なくともいくつかについて、内部パラメータの別個のセットを維持することもできる。
以下の説明では、全般的に、比率パラメータとデータ包含ウィンドウパラメータとの別個のセットがクラスタごと及び制御可能な要素ごとに維持されることを説明する。しかし、システムがクラスタごとにいくつかのタイプのパラメータのセットを1つだけ維持する場合は、説明されている計算は、クラスタごとに1回だけ実行する必要があり、単回の計算の結果は、クラスタの制御可能な要素ごとに使用できると理解すべきである。同様に、システムが全てのクラスタに対していくつかのタイプのパラメータの単一のセットのみを維持する場合は、説明されている計算は、1回だけ実行する必要があり、単回の計算の結果は、全てのクラスタにおける全ての制御可能な要素に使用できる。
エクスプロイトフェーズ中、クラスタリングが開始されると、所与のクラスタ内で、システムは現在の因果モデルに基づいてクラスタ内の手続き型インスタンスのいくつかの制御設定を選択し、内部パラメータのベースライン値に基づいて他の手続き型インスタンスの制御設定を選択し続ける。
システムは、様々な基準のいずれかを使用して、クラスタリングを開始する時点を判定できる。すなわち、クラスタリングの内部パラメータが、クラスタの総数を1に設定する必要があることを示すベースライン値から変化し始める時点を判定できる。
一例として、1つの基準は、例えば、収集された環境応答の量が閾値を超えると、十分な環境応答が収集されたことを含み得る。特定の例として、システムは、環境応答の総数が閾値を超えると、閾値が満たされていると判定できる。別の特定の例として、システムは、任意の制御可能な要素の任意の1つの可能な設定に関連する環境応答の最小数が閾値を超えると、閾値が満たされていると判定できる。
別の例として、別の基準は、制御可能な要素のいずれか1つについて、異なる環境特性がその制御可能な要素の異なる制御設定の因果効果に異なる影響を与えるとシステムが判定すると、システムがクラスタリングを開始できることを指定できる。特定の例として、この基準は、任意の制御可能な要素のdスコア分布が任意の2つの手続き型インスタンス間で統計的に異なる、すなわち、1つの手続き型インスタンスの環境応答のみに基づく因果モデルのdスコア分布が、すなわち、別の手続き型インスタンスの環境応答のみに基づく因果モデルのdスコア分布から、統計的有意性の閾値レベルまで統計的に異なる場合に、システムがクラスタリングを開始できることを指定できる。
制御設定の選択、因果モデル更新、及びクラスタリングフェーズ中の内部パラメータの更新については、図3を参照して以下でより詳細に説明する。
図3は、環境制御の反復を実行するための例示的なプロセス300のフロー図である。便宜上、プロセス300は、1つ以上の場所に配置された1つ以上のコンピュータのシステムによって実行されるものとして説明される。例えば、制御システム、例えば、適切にプログラムされた図1の制御システム100は、プロセス300を実行することができる。
システムは、プロセス300を繰り返し実行して、制御設定と環境応答との間の因果関係を測定する因果モデルを更新することができる。
システムは、現在の内部パラメータに基づいて、現在の手続き型インスタンスのセットを判定する(工程302)。以下で図4Aを参照してより詳細に説明するように、システムは、現在の内部パラメータに基づいて、例えば、異なる空間的範囲及び時間的範囲が直交するインスタンスをもたらす可能性に基づいて、空間的範囲及び時間的範囲を判定し、次いで、空間的及び時間的範囲に基づいて現在の手続き型インスタンスを生成する。
上記のように、各手続き型インスタンスは、環境内の1つ以上のエンティティのコレクションであり、時間枠に関連付けられている。所与の手続き型インスタンスに関連付けられた時間枠は、以下でより詳細に説明するように、どの環境応答にシステムが帰属するか、又は手続き型インスタンスと関連付けるかを定義する。
場合によっては、制御可能な要素ごとに、システムはまた、制御可能な要素に対して選択された設定が、制御可能な要素に関連付けられた時間枠の一部分(例えば、時間枠全体、時間枠の第1四半期、又は時間枠の前半)として適用される期間を判定する。概して、設定が適用される期間は、時間枠に依存しない値に固定でき、時間枠の固定部分にすることも、又は時間枠の部分をシステムによって変更される内部パラメータにすることもできる。
手続き型インスタンスの現在のセットを判定することは、図4Aを参照して以下でより詳細に説明される。
環境に単一の物理エンティティのみが含まれている場合、現在のインスタンスのセットには1つのインスタンスのみが含まれている場合がある。あるいは、システムは、複数の現在のインスタンスを識別でき、各現在のインスタンスは、単一の物理エンティティを含むが、時間的に、すなわち、少なくともエンティティの時間的範囲によって分離されている。
システムは、現在のインスタンスごとに制御設定を割り当てる(工程304)。システムが任意の所与のインスタンスに制御設定を割り当てる方法は、システムが現在実行している制御フェーズに依存する。
上記のように、環境の制御の開始時、すなわち、因果関係を任意の信頼度で判定するのに十分な情報が利用可能になる前に、システムは初期化フェーズで動作する。初期化フェーズでは、システムは現在の因果モデルを考慮せずにインスタンスの制御設定を選択する、すなわち、システムは可能な制御設定の空間を探索する。すなわち、システムは、各制御可能な要素の可能な制御設定に対するベースライン確率分布に従って、インスタンスの制御設定を選択する。
いくつかの実装形態では、初期化フェーズ中に、システムは、空間的及び時間的範囲のそれぞれの可能な値が、互いに直交するインスタンスをもたらす可能性がどの程度あるかを識別するために、空間的範囲、時間的範囲、又は両方の手続き型インスタンスを判定する内部パラメータを変更する。
上記のように、いくつかの実装形態では、制御フェーズのセットには初期化フェーズのみが含まれ、システムはこの開始フェーズ全体で動作を継続する、すなわち、因果モデルを更新するために環境応答をコンパイルしながら、可能な制御設定の空間を探索し続ける。
いくつかの他の実装形態では、特定の基準が満たされると、システムはエクスプロイトフェーズに移行する。エクスプロイトフェーズにおいて、システムは現在の因果モデルに基づいて現在のインスタンスのいくつかの制御設定を選択して、すなわち、現在因果モデルに反映されている因果関係を利用し、内部パラメータのベースライン値に基づいて他の現在のインスタンスの制御設定を選択し続ける。
更に、いくつかの実装形態では、初期化フェーズ又はエクスプロイトフェーズのいずれかで、システムがクラスタリングの実行を開始する。
クラスタリングが実行されているとき、システムは手続き型インスタンスをクラスタにクラスタリングする。各クラスタ内で、システムは、上記のように独立して進行する。
すなわち、初期化フェーズ中、システムは、ベースライン分布を使用して、各クラスタ内で独立して設定を選択するが、エクスプロイトフェーズ中、システムは、各クラスタ内で独立して現在の因果モデルに基づいて現在のインスタンスのいくつかに制御設定を割り当て、各クラスタ内で独立して内部パラメータのベースライン値に基づいて他の現在のインスタンスの制御設定を選択し続ける。
クラスタリングを実行することにより、システムは、(i)環境応答に対する設定の影響と、インスタンスの環境特性、例えば、制御システムによって操作できないインスタンスの属性との間の要因相互作用、(ii)異なる独立変数の要因交互作用、又は(iii)両方に基づいて条件付きで制御設定を割り当てることができる。
クラスタリングを使用する場合と使用しない場合のエクスプロイトフェーズでの制御設定の選択については、図5を参照して以下でより詳細に説明する。
システムは、手続き型インスタンスのそれぞれについて環境応答を取得する(工程306)。
特に、システムは環境応答を監視し、各手続き型インスタンスに関連付けられた時間枠に基づいて、どの環境応答をどの現在のインスタンスに帰属させるかを判定する。
より具体的には、各手続き型インスタンスについて、システムは、(i)手続き型インスタンスのエンティティに対応し、(ii)手続き型インスタンスに関連付けられた時間枠のいくらかの部分の間に受信される、各環境応答を手続き型インスタンスに関連付ける。特定の例として、以前の制御設定の割り当てからのキャリーオーバー効果を制限するには、システムは、インスタンス内のエンティティに対応し、時間枠の開始後の閾値期間、例えば、時間枠の後半、時間枠の最後の3分の1、又は時間枠の最後の4分の1の間を超えて受信された、各環境応答を手続き型インスタンスに関連付けることができる。いくつかの実装形態では、この閾値の期間は固定されている。他の実装形態では、システムは、この閾値期間を定義し、システムの動作中に期間を変更する内部パラメータのセットを維持する。
システムは、取得された環境応答に基づいて因果モデルを更新する(工程308)。因果モデル更新は、図6を参照して以下でより詳細に説明される。
システムは、システムの現在の性能に基づいて、すなわち、システムのベースライン性能と比較して、更新された因果モデルに反映されるように、又はその両方で、内部パラメータの少なくともいくつかを更新する(工程310)。
特に、システムは、ヒューリスティックベースのアプローチに基づいて、確率的変動によって、又はその両方によって、様々な内部パラメータのセットのいずれかを更新できる。ヒューリスティックベースのアプローチには、次の1つ以上から派生したヒューリスティックを含めることができる:更新された因果モデル、システムのベースライン性能と比較したシステムの現在の性能、又は事前の統計分析を使用して判定された基準。
言い換えると、システムが変更できる内部パラメータのセットごとに、システムは上記の技術の1つ以上を使用して内部パラメータのセットを更新し、システムが因果関係をより正確に測定できるようにする。
場合によっては、システムが内部パラメータを変更できる場合であっても、システムは特定の内部パラメータのセットを固定するように制約する。例えば、システムは、初期化フェーズ中にデータ包含ウィンドウパラメータ及びクラスタリングパラメータを固定できる。別の例として、システムは、特定の基準が満たされるまでクラスタリングパラメータを固定し、基準が満たされた後のエクスプロイトフェーズ中にシステムの制御下にある全ての内部パラメータの変更を開始できる。
内部パラメータのセットを更新することは、図8~図12を参照して以下でより詳細に説明される。
概して、システムは、工程308とは異なる頻度で工程302~306を実行し、工程302~306及び工程310の両方とは異なる頻度で工程310を実行することができる。例えば、システムは、実行される工程308の各反復に対して工程302~306の複数の反復を実行することができ、すなわち、因果モデルを更新する前に、インスタンスの複数の異なるセットに対する環境応答を収集することができる。同様に、システムは、工程310を実行する前に、工程308の複数の異なるインスタンスを実行することができ、すなわち、内部パラメータを更新する前に、複数の異なる因果モデル更新を実行することができる。
図4Aは、手続き型インスタンスを判定するための例示的なプロセス400のフロー図である。便宜上、プロセス400は、1つ以上の場所に配置された1つ以上のコンピュータのシステムによって実行されるものとして説明される。例えば、制御システム、例えば、適切にプログラムされた図1の制御システム100は、プロセス400を実行することができる。
システムは、環境内の各エンティティの空間的範囲を選択する(工程402)。所与のエンティティの空間的範囲は、所与の制御設定のセットによって制御されたときに、所与のエンティティから取得される環境応答に影響を与える環境のセグメントを定義する。所与のエンティティの空間的範囲は、空間的範囲パラメータのセット、例えば、所与のエンティティに固有の空間的範囲パラメータのセット、又は全てのエンティティ間で共有されるセットのいずれかによって定義される。いくつかの実装形態では、空間的範囲の内部パラメータは固定されており、すなわち、同じ値に一定に保たれるか、又は環境の制御全体を通じて固定範囲からランダムにサンプリングされる。例えば、環境に単一のエンティティのみが含まれている場合、各手続き型インスタンスには同じ単一のエンティティが含まれる。別の例として、環境に複数のエンティティが含まれているが、どのエンティティが制御設定の影響を受けるかについて不確実性がない場合、空間的範囲パラメータを、生成されたインスタンスが直交することを保証する値に固定できる。
空間的範囲が固定されておらず、空間的範囲パラメータに対して単一の値が維持されている場合(すなわち、空間的範囲パラメータはヒューリスティックのみに基づいて更新される)、システムは、各エンティティの空間的範囲パラメータの現在の値を、エンティティの空間的範囲として選択する。空間的範囲が固定されておらず、値の範囲が空間的範囲パラメータによって定義されている場合、システムは、エンティティの空間的範囲パラメータの現在の因果モデルに基づいて、空間的範囲パラメータによって現在定義されている範囲から空間的範囲の値をサンプリングする。
エンティティの空間的範囲を選択することにより、システムは、各手続き型インスタンスに含まれるエンティティの数と、どのエンティティが各手続き型インスタンスに含まれるかと、を定義する。特に、システムは、別の手続き型インスタンスのエンティティの空間的範囲内に更に部分的にある環境のセグメントを手続き型インスタンスがカバーしないように、手続き型インスタンスを生成する。
図4Bは、それぞれが空間的範囲に関連付けられている複数の物理エンティティを含む環境の地図420の例を示す。特に、図4Bは、米国の一部分の内の、図に点として表されている複数の物理的エンティティを含む環境を示す。システムによって各エンティティに対して選択された空間的範囲は、影付きの円で表される。例えば、システムは、各エンティティの可能な半径の範囲を維持し得、その範囲から各エンティティの影付きの円の半径を選択することができる。図4Bの例から分かるように、異なるエンティティは、異なる空間的範囲を有することができる。例えば、エンティティ412は、エンティティ414とは異なるサイズの影付きの円を有する。
図4Bの例からも分かるように、システムはまた、所望により、追加の基準を適用して、手続き型インスタンスが直交しない尤度を低減することができる。特に、システムは各エンティティに対して、エンティティの空間的範囲を超えて拡張するバッファ(破線の円で表される)も選択し、異なるインスタンスのエンティティがそのバッファ内の空間的範囲を有することはできないことを要求した。
空間的範囲のため及びバッファのために、環境内の特定のエンティティは、図4Bに示される反復における手続き型インスタンスの一部として選択されない。これらの選択されていないエンティティ、例えば、エンティティ416は、影のないドット又は破線の円として表される。特に、それらの空間的範囲が、手続き型インスタンスの一部として選択された別のエンティティの空間的範囲又はバッファと交差したため、システムはこれらのエンティティを選択していない。エンティティ416については、エンティティ416の空間的範囲がエンティティ414の空間的範囲又はバッファと交差するであろうことから、エンティティは選択されなかった。例えば、サンプリングされた空間的範囲及びバッファを考慮して、システムは、基準のいずれにも違反することなく、現在のインスタンスのセットに含めることができる手続き型インスタンスの数を最大化する空間的範囲を選択できた。
システムは、各手続き型インスタンスに対して、又は異なる制御可能な要素が異なる時間的範囲を有する場合、各手続き型インスタンスの各制御可能な要素に対して時間的範囲を選択する(工程404)。上記のように、時間的範囲は、各手続き型インスタンスに関連付けられている時間枠、又は手続き型インスタンス内の制御可能な要素に関連付けられている時間枠を定義する。
場合によっては、時間的範囲は固定することができる、すなわち、システムのユーザに対する制御システムの動作の前に、環境内の所与のエンティティに対して観察されるどの環境応答が、そのエンティティを含む手続き型インスタンスに属する必要があるかが既知である。他の場合、時間的範囲が未知であるか、又はある程度の不確実性で関連付けられている可能性があり、すなわち、システムのユーザは、設定のセットが適用された後、その設定の効果がどのくらいの期間観測され得るかを正確に知らないか、又は指定しない。
時間的範囲が固定されていない場合、システムは、時間的範囲パラメータの現在の因果モデルに基づいて、時間的範囲パラメータによって現在定義されている範囲から時間的範囲の値をサンプリングする。上記のように、異なるエンティティ(したがって異なる手続き型インスタンス)は、時間的範囲パラメータの異なるセットを有することができ、又は全てのエンティティが時間的範囲パラメータの同じセットを共有することができる。
システムは、選択された空間的範囲及び選択された時間的範囲に基づいて手続き型インスタンスを生成する(工程406)。言い換えると、システムは、空間的範囲に基づいて環境内のエンティティを分割し、すなわち、手続き型インスタンスにあるエンティティが、異なる手続き型インスタンスにある別のエンティティの空間的範囲と交差する空間的範囲(又は使用されている場合はバッファ)を持たないようにし、各手続き型インスタンスを、手続き型インスタンスの空間的範囲によって定義された時間枠に関連付ける。
図5は、現在のインスタンスのセットの制御設定を選択するための例示的なプロセス500のフロー図である。便宜上、プロセス500は、1つ以上の場所に配置された1つ以上のコンピュータのシステムによって実行されるものとして説明される。例えば、制御システム、例えば、適切にプログラムされた図1の制御システム100は、プロセス500を実行することができる。
システムは、例えば、図4Aを参照して上記で説明したように、現在の手続き型インスタンス(工程502)を判定する。
次に、システムは、制御可能な要素のそれぞれに対して工程504~514を実行して、現在の全ての手続き型インスタンスの制御可能な要素の設定を選択する。
所望により、システムは、環境特性に基づいて現在の手続き型インスタンスをクラスタリングする、すなわち、制御可能な要素に対して複数のクラスタを生成する(工程504)。クラスタリングは制御可能な要素ごとに実行されるため、システムは現在の手続き型インスタンスを異なる制御可能な要素に対して異なるようにクラスタリングできる。手続き型インスタンスのクラスタリングは、図7を参照して以下に説明される。
すなわち、システムが現在クラスタリングフェーズを実行している場合、システムは最初に、現在の手続き型インスタンスに対する現在のクラスタ割り当てを判定する。システムが現在のクラスタ割り当てを判定した後、システムは、各クラスタに対して独立して工程506~514の反復を実行する。
システムが現在クラスタリングフェーズを実行していない場合、システムは、現在の手続き型インスタンスをクラスタリングせず、現在の全ての手続き型インスタンスに対して工程506~514の単一の反復を実行する。
システムは、現在のハイブリッド対ベースライン比を判定する(工程506)。特に、制御可能な要素の比率パラメータのセットが単一の値のみを含む場合、システムは、比率パラメータの現在の値を現在のハイブリッド対ベースライン比として選択する。制御可能な要素の比率パラメータのシステムが可能な値の範囲を定義する場合、システムは、比率パラメータのセットの因果モデルに基づいて比率パラメータによって定義された可能な値の現在の範囲から、ハイブリッド対ベースライン比の値をサンプリングする。
システムは、各インスタンスを、現在のハイブリッド対ベースライン比に基づいて、制御可能な要素のハイブリッドインスタンス又は制御可能な要素のベースラインインスタンスのいずれかとして識別する(工程508)。例えば、システムは、比率に基づく確率で各インスタンスをハイブリッドインスタンスに割り当てること、又はインスタンスの総数をランダムに分割して比率にできるだけ等しくすることもできる。あるいは、ハイブリッドインスタンスの性能とベースラインインスタンスとの性能の違いに基づいて、システムが内部パラメータの少なくとも1つを確率的に変更している場合、システムは、現在の比率に基づいてインスタンスを割り当て、性能間の差を測定する因果モデルを計算する(すなわち、上記のとおり)ときに使用されるブロックスキームを考慮する、割り当てスキームを適用する場合がある。
システムは、内部パラメータのベースライン値に基づいて、割り当てスキームに従って、ベースラインインスタンスの制御可能な要素の制御設定を選択する(工程512)。言い換えると、システムは、初期化フェーズの開始時に判定された制御可能な要素の可能な値に対するベースライン確率分布に基づいて、ベースラインインスタンスの制御設定を選択する。
システムは、現在の因果モデルに基づいて、割り当てスキームに従って、ハイブリッドインスタンスの制御設定を選択する(工程514)。
特に、システムは、現在の因果モデルを、制御可能な要素の可能な設定にわたる確率分布にマッピングする。例えば、システムは確率マッチングを適用して、因果モデル内の制御可能な要素の影響測定値及び信頼区間を確率にマッピングできる。
概して、システムはこれらの確率に基づいて制御設定を割り当て、dスコアを計算するときに十分な数のブロックされたグループがシステムによって識別されるようにする。特定の例として、次に、システムはハイブリッドインスタンスをブロックされたグループに分割し(後でdスコアの計算に使用される同じブロックスキームに基づいて)、次いで可能な設定の確率分布に従って、ブロックされた各グループ内の制御設定を選択する。すなわち、ブロックされたグループ内の各インスタンスに、確率分布で指定された確率で任意の所与の可能な設定が割り当てられるようにする。
図6は、所与の制御可能な要素及び所与のタイプの環境応答の因果モデルを更新するための例示的なプロセス600のフロー図である。便宜上、プロセス600は、1つ以上の場所に配置された1つ以上のコンピュータのシステムによって実行されるものとして説明される。例えば、制御システム、例えば、適切にプログラムされた図1の制御システム100は、プロセス600を実行することができる。
システムは、制御可能な要素ごとに、及びシステムが因果モデルを維持している環境応答のタイプごとに、プロセス600を実行することができる。例えば、システムが単一の性能メトリックに対してのみ因果効果をモデル化する因果モデルを維持している場合、システムは性能メトリックに対してプロセス600のみを実行する。あるいは、システムが、複数の異なるタイプの環境応答の因果効果をモデル化する因果モデルを維持している場合、システムは、各タイプの環境応答、例えば、各異なるタイプのセンサの読み取り又は測定に対してプロセス600を実行する。
システムが現在、手続き型インスタンスをクラスタにクラスタリングしているとき、システムは、クラスタごとに独立してプロセス600を実行することができる。すなわち、システムは各クラスタの因果モデルを独立して維持及び更新できる。
システムは、制御可能な要素の現在のデータ包含ウィンドウを判定する(工程602)、すなわち、制御可能な要素の現在のデータ包含ウィンドウパラメータに基づく。特に、制御可能な要素のデータ包含ウィンドウパラメータのセットが単一の値のみを含む場合、システムは、データ包含ウィンドウパラメータの現在の値を現在のデータ包含ウィンドウとして選択する。制御可能な要素のデータ包含ウィンドウパラメータのセットが可能な値の範囲を定義する場合、システムは、データ包含ウィンドウパラメータのセットによって現在定義されている値の範囲からデータ包含ウィンドウの値をサンプリングする。データ包含ウィンドウパラメータがシステムによって変更されない場合、システムは値を固定の初期データ包含ウィンドウに設定するか、又は可能な値の固定範囲から値をサンプリングする。
システムは、制御可能な要素の可能な値ごとに、制御可能な要素の可能な値が選択されたインスタンスについて記録された所与のタイプの環境応答を取得する(工程604)。特に、システムは、現在のデータ包含ウィンドウ中に発生したインスタンスの環境応答のみを取得する。
システムは、制御可能な要素の可能な設定に対する環境応答に基づいて、因果モデルの影響測定値を更新する(工程606)。
すなわち、システムは、ブロックスキーム、例えば、上記のブロックスキームのうちの1つに基づいて、ブロックされたグループのセットを判定する。
次に、ブロックされたグループごとに、システムは、ブロックされたグループ内のインスタンスのいずれかで選択された可能な設定ごとに、それぞれのdスコアを判定する。概して、システムは、ブロックスキームに基づいて、所与の制御可能な要素の影響測定値、すなわち、dスコアを計算する。すなわち、同じブロックされたグループに割り当てられたインスタンスの環境応答間のdスコアを計算する。
特定の例として、ブロックされたグループを割り当てて、それぞれの可能な設定を有する少なくとも1つのインスタンスを含む、ブロックスキームにおける制御可能な要素の可能な設定iの影響測定値diは、以下を満たすことができる。
式中、x_iは、設定iが選択されたブロックされたグループ内のインスタンスに対する所与のタイプの環境応答であり、合計はiを除く全ての可能な設定にわたり、Nは可能な設定の総数である。
別の特定の例として、インスタンスのペアをブロックされたグループに割り当てるブロックスキームにおける制御可能な要素の可能な設定iの影響測定値diは、以下を満たすことができる。
d_i=x_i-x_(i+1)。
式中、x_iは、設定iが選択されたブロックされたグループ内のインスタンスに対する所与のタイプの環境応答であり、x_(i+1)は、設定i+1が選択されたブロックされたグループ内のインスタンスに対する所与のタイプの環境応答であり、式中、設定i+1は、制御可能な要素のすぐ上の設定である。制御可能な要素の最高設定の場合、設定i+1を制御可能な要素の最低設定にすることができる。
更に別の特定の例として、インスタンスのペアをブロックされたグループに割り当てるブロックスキームにおける制御可能な要素の可能な設定iの影響測定値diは、以下を満たすことができる。
d_i=x_i-x_1,
式中、x_1は、選択された制御可能な要素に対して可能な設定の1つが事前に判定されているインスタンスの所与のタイプの環境応答である。
次いで、システムは、設定iに対して計算されたdスコアの平均として、所与の設定iに対して更新された全体的な影響測定値を計算する。
場合によっては、dスコアの計算は加算ではなく比例によることができ、すなわち、上記の定義のいずれかの減算演算を除算演算に置き換えることができる。
システムは、制御可能な要素の可能な値のそれぞれについて、更新された影響測定値の信頼区間を判定する(工程608)。例えば、システムはt検定又は他の統計的仮説検定を実行して、更新された影響測定値の周囲にp%信頼区間(すなわち、dスコアの平均付近であり、式中、pは固定値であり、例えば、95%又は97.5%又は99%である)を構築できる。
いくつかの実装形態では、システムは、例えば、外部データが、異なる制御可能な要素が、異なる制御可能な要素のベースライン確率分布からの逸脱に関連する異なるコスト又はリスクのレベルを有することを指定する場合、異なる制御可能な要素に異なるp値を適用する。
いくつかの実装形態では、制御可能な要素の特定の設定が実装の様々なコスト又はより高いリスクに関連付けられている場合、システムは信頼区間に補正、例えば、ボンフェローニ補正を適用する。特に、ボンフェローニ補正では、制御可能な要素のN個の可能な設定に対してN個の信頼区間が計算され、その要素の全体的な所望の信頼水準が95%(つまり、アルファ=0.05)になるように補正が適用され、その場合、信頼区間を計算するために各個々の検定に使用されるアルファ値は、アルファ/Nである。特定の設定がより高いリスク又は実装コストに関連付けられている場合、より高いレベルの信頼性に関連付けられている「修正された」アルファ値がそれらの設定に指定される場合がある。これにより、これらの設定を利用する前に、システムはより多くのデータを蓄積するようにされる。
図7は、所与の制御可能な要素の手続き型インスタンスのセットをクラスタリングするための例示的なプロセス700のフロー図である。便宜上、プロセス700は、1つ以上の場所に配置された1つ以上のコンピュータのシステムによって実行されるものとして説明される。例えば、制御システム、例えば、適切にプログラムされた図1の制御システム100は、プロセス700を実行することができる。
システムは、制御可能な要素のクラスタリングパラメータから、システムによって使用されているクラスタリング技術の現在のハイパーパラメータを選択する(工程702)。特に、システムによって変更できる各ハイパーパラメータは、内部パラメータの個別のセットによって定義される。すなわち、クラスタリングパラメータには、動作中にシステムの制御下にあるハイパーパラメータごとに内部パラメータの別個のセットが含まれる。
システムは、様々なクラスタリング技術のいずれかを使用してクラスタリングを実行できる。しかしながら、システムによって変更されるハイパーパラメータには、概して、クラスタリング技術によって生成されたクラスタのサイズのハイパーパラメータが含まれ、場合によっては、クラスタを生成するときにクラスタリング技術によって考慮されるインスタンスの環境特性が含まれる。
一例として、システムは、統計分析、例えば、要因分散分析(ANOVA)を使用して、クラスタリング割り当てを生成することができる。特に、要因ANOVAは、クラスタ間の分散の最大量を説明する要因、すなわち環境特性を見つけるために使用される。すなわち、可能な制御設定ごとにDスコアが計算されるため、要因ANOVAは、これらの処理効果と外部要因との間のインタラクション項を監視できる。データが蓄積され、相互作用が出現し始めると、要因ANOVAは、空間及び時間にわたってインスタンスの異なるクラスタを作成し、各クラスタは、個別の外部因子の状態又は属性を表す。
別の例として、システムは、機械学習技術を使用してクラスタリング割り当てを生成できる。機械学習技術の特定の例として、システムは決定木を使用できる。決定木は、分類及び回帰の問題に使用される古典的な機械学習アルゴリズムである。決定木は、ジニ係数のような情報理論関数を使用して分割するために、最良の変数、すなわち最良の環境特性を順次識別することにより、再帰的分割スキームを使用する。機械学習技術の別の特定の例として、システムは条件付き推論木を使用できる。決定木と同様に、条件付き推論木は再帰的なバイナリ分割スキームである。アルゴリズムは、最も強い環境特性要因に基づいて分割する有意性検定手順に基づいて、分割する変数のシーケンスを選択することによって進行する。別の特定の例として、システムは、機械学習モデル、例えば、ディープニューラルネットワークを使用して、手続き型インスタンスのそれぞれ及びそれらに関連する環境特性を特徴付けるデータを処理することができ、埋め込みを生成し、次いで、埋め込み間の類似性に基づいて、手続き型インスタンスを指定されたクラスタにクラスタリングする(例えば、k平均クラスタリング又は別のクラスタリング技術)。特定の例として、埋め込みは、手続き型インスタンスを特徴付けるデータを受信し、手続き型インスタンスの性能メトリックの値を予測するようにトレーニングされたニューラルネットワークの中間層の出力である場合がある。
場合によっては、システムの動作が進むにつれて、すなわち、より多くのデータが利用可能になると、システムはクラスタリング技術を切り替えることができる。例えば、システムは、統計的技術又は決定木の使用から、閾値を超える数の手続き型インスタンスが使用可能になると、ディープニューラルネットワークの使用に切り替えることができる。
システムは、選択されたハイパーパラメータに従ってクラスタリング技術を使用して、現在のデータ包含ウィンドウ内のインスタンスをクラスタリングする(工程704)。
システムは、各クラスタの因果モデルを計算する(工程706)(すなわち、図6を参照して上記のように計算する)が、クラスタに割り当てられているインスタンスのみを使用する。
次いで、システムは、クラスタの計算された因果モデルに基づいて(すなわち、図5を参照して上記で説明したように)、各クラスタ内で制御可能な要素の制御設定を独立して割り当てる(工程708)。特に、システムは、クラスタリング技術を使用して現在の各インスタンスをクラスタリングし、現在のインスタンスが割り当てられているクラスタに基づいて、所与の現在のインスタンスの制御設定を割り当て、所与の現在のインスタンスがベースラインインスタンスに指定されていない場合は、クラスタに対して計算された因果モデルを使用する。
次いで、システムは、クラスタリングパラメータを調整する必要があるかどうかを判定することができ(工程710)、すなわち、クラスタリングパラメータの現在の値が最適でないかどうかを判定し、最適でない場合、制御可能な要素のクラスタリングパラメータを更新する。特に、動作中に、システムはクラスタリングパラメータを更新して、次の2つの競合する目標のバランスを取る:(1)性能メトリックに対する制御可能な要素の影響のクラスタ内の最大の類似性、及び性能メトリックに対する制御可能な要素の影響のクラスタ間の最大の違いが存在するように、インスタンスをクラスタにプールすること、並びに(2)可能なクラスタ内のサンプルサイズを最大にするためにクラスタのサイズを最大化し、因果モデルの精度を高めること。システムは、ヒューリスティックを使用して、確率的サンプリングを使用して、又はヒューリスティック及び確率的サンプリングの両方を使用して値を調整することにより、これを実現できる。
システムは、クラスタの数を変更するかどうか、すなわち、制御可能な要素のクラスタリングパラメータの値を変更するかどうかを、様々な方法で、すなわち、様々なヒューリスティックのいずれかに基づいて判定できる。
より全般的には、上記のように、システムによって変更される内部パラメータの任意の所与のセットについて、システムは、次の3つの方法のうちの1つで内部パラメータのセットを調整することができる:(i)ヒューリスティックベースのアプローチを使用して単一の値を調整すること、(ii)確率的変動を使用して、値の範囲内の異なる値に割り当てられた尤度を調整すること、又は(iii)ヒューリスティックベースのアプローチを使用して値の範囲を調整し、確率的変動を使用して現在の範囲内で尤度を調整すること。
ヒューリスティックベースのアプローチには、現在の因果モデルのプロパティに基づくヒューリスティック、事前の統計分析に基づくヒューリスティック、又はその両方を含めることができる。
確率的変動アプローチでは、システムは、現在の範囲内の異なる値と内部パラメータのセットのメリット指数との間の因果効果を測定する因果モデルを維持する。次いで、システムは因果モデルを様々な値の確率にマップし、必要に応じて、確率に基づいて内部パラメータの値を選択する。以下でより詳細に説明するように、内部パラメータの任意の所与のセットのメリット指数は、概して、制御設定と性能メトリックとの間の因果関係をモデル化する因果モデルで測定されている性能メトリックとは異なる。
図8は、確率的変動を使用して内部パラメータのセットを更新するための例示的なプロセス800のフロー図である。便宜上、プロセス800は、1つ以上の場所に配置された1つ以上のコンピュータのシステムによって実行されるものとして説明される。例えば、制御システム、例えば、適切にプログラムされた図1の制御システム100は、プロセス800を実行することができる。
プロセス800は、確率的変動を使用して更新されている内部パラメータの任意のセットに対して実行することができる。このような内部パラメータの例には、データ包含ウィンドウパラメータのセット、クラスタリングパラメータのセット、比率パラメータのセット、空間的範囲パラメータのセット、時間的範囲パラメータのセットなどのいずれか又は全てを含めることができる。
上記のように、クラスタリングフェーズ中、及びクラスタリングパラメータ以外の内部パラメータの任意のセットに対して、システムは、各クラスタ又は各制御可能な要素及び各クラスタに対して独立してプロセス800を実行することができる。
更に、クラスタリングパラメータが確率的変動を使用して変更される場合、システムはまた、制御可能な要素ごとに独立してプロセス800を実行することができる。
システムは、内部パラメータの異なる可能な値と内部パラメータのセットのメリット指数との間の因果関係を測定する、内部パラメータのセットの因果モデルを維持する(工程802)。
例えば、内部パラメータのセットのメリット指数は、ハイブリッドインスタンスの性能とベースラインインスタンスの性能との差である場合がある。この例では、メリット指数は、ベースラインインスタンスに対するハイブリッドインスタンスの相対的な性能を測定し、システムは、内部パラメータで定義された範囲内の様々な値について、このメリット指数に対する影響測定値、すなわち、dスコアを計算する。
したがって、内部パラメータのセットの因果モデルを計算するとき、システムは、図6を参照して上記のように進行し、ただし、(i)可能な設定は、内部パラメータの可能な値であり、(ii)dスコア計算の各xiは、(1)選択された内部パラメータの可能な値で制御設定が割り当てられたハイブリッドインスタンスの性能メトリックと(2)対応するベースラインインスタンスの性能メトリックとの差である。
別の例として、内部パラメータのセットのメリット指数は、制御可能な要素の因果モデルの精度の測定値、例えば、制御可能な要素の様々な設定の信頼区間の幅の測定値である場合がある。
この維持された因果モデルは、内部パラメータのセットのデータ包含ウィンドウに基づいて判定できる。内部パラメータのセットが実際にデータ包含ウィンドウパラメータである場合、データ包含ウィンドウは、現在の範囲で異なる可能な値では異なる。内部パラメータのセットが内部パラメータの異なるセットである場合、データ包含ウィンドウは、固定されているか、又は以下で説明するヒューリスティックに基づいて、若しくはまたこの図で説明されている確率的変動にも基づいて変更される、内部パラメータの別個のセットである場合がある。
システムは、例えば、確率マッチングを使用して、値の範囲内の可能な値にわたる確率分布に因果モデルをマッピングする(工程804)。すなわち、システムは、確率マッチング又は別の適切な技術を使用して、影響測定値及び信頼区間を、値の範囲内の可能な各値の確率にマッピングする。
値を範囲からサンプリングする必要がある場合、システムは、確率分布に従って、可能な値の範囲から値をサンプリングする(工程806)。すなわち、システムが動作するように、例えば、手続き型インスタンスに時間的範囲を割り当てるように、データ包含ウィンドウを所与の制御可能な要素に割り当てるように、クラスタリング技術のハイパーパラメータを判定するように、又は、インスタンスの現在のセットのベースラインに対する現在のハイブリッドの比率を割り当てるように、内部パラメータで定義された範囲からの値が必要な場合、システムは、確率分布に従って可能な値の範囲からサンプリングする。この方法で値をサンプリングすることにより、システムは、例えば、ハイブリッドインスタンスとベースラインインスタンスとの間のデルタを最大化するために、内部パラメータのセットのメリット指数を最適化する可能性が最も高い値が、可能な値のスペースが探索されることをなお保証しながら、より頻繁にサンプリングされる。
システムは、因果モデル更新を計算する(工程808)。すなわち、新しい手続き型インスタンスに対する新しい環境応答が受信されると、システムは、全体的な影響測定値、すなわち、dスコアの平均、及び全体的な影響測定値の信頼区間を計算することによって、因果モデルを再計算する。システムは、図6を参照して上記の因果モデル更新と同じ方法で、すなわち、ブロックされたグループを選択し、それらのブロックされたグループ内のdスコアを計算することによって(上記のパラメータのセットのメリット指数に基づいて)、この計算を実行することができ、次いで、それらのdスコアから因果モデルを生成する。
プロセス800を繰り返し実行することにより、システムは、範囲内の値に割り当てられた確率を繰り返し調整して、より最適なメリット指数をもたらす値を優先することができる。
例えば、内部パラメータのセットがデータ包含ウィンドウパラメータである場合、様々なデータ包含ウィンドウ値がハイブリッド対ベースライン性能に与える影響をモデル化する因果モデルを維持することで、システムはデータ包含ウィンドウを選択できるため、制御可能な要素に対してより正確で堅牢な因果モデルが計算される。
別の例として、内部パラメータのセットが空間的又は時間的範囲パラメータである場合、異なる空間的又は時間的範囲値がハイブリッド対ベースラインの性能に与える影響をモデル化する因果モデルを維持することで、システムは、ベースラインインスタンスの性能と比較してハイブリッドインスタンスの性能を最大化する直交手続き型インスタンスをもたらす空間的又は時間的範囲を選択できる。
別の例として、内部パラメータのセットがクラスタリングハイパーパラメータを定義する場合、様々なハイパーパラメータ値がハイブリッド対ベースライン性能に与える影響をモデル化する因果モデルを維持することで、システムはシステムの性能を最大化するクラスタリング割り当てを選択でき、すなわち、図7を参照して上記の目標を満たすクラスタリング割り当てをより効果的に識別する。
いくつかの実装形態では、システムは、内部パラメータの可能な値の現在の範囲を調整するかどうかを判定する(工程810)。上記のように、任意の所与の内部パラメータの可能な値の範囲は、システムの動作全体を通じて探索されている可能な値の空間が合理的であり続けることを保証するために、固定され得る、又はヒューリスティックを使用して調整され得る。
可能な値の現在の範囲を調整するために使用できるヒューリスティックの1つの例は、現在の因果モデルの形状に依存するヒューリスティックである。特に、システムは、範囲の現在の上限に近づくにつれて、因果モデルの影響測定値の大きさが大きくなる場合、範囲の上限を上げる(又は範囲の上限及び下限の両方を上げる)ことができ、範囲の現在の下限に近づくにつれて、影響測定値が大きくなる場合、下限を下げる(又は上限及び下限の両方を下げる)ことができる。
可能な値の現在値を調整するために使用できるヒューリスティックの別の例は、検定力分析に依存するヒューリスティックである。
例えば、内部パラメータのセットが、クラスタリング技術で使用されるクラスタサイズを定義するクラスタリングパラメータのセットである場合、システムは、サンプルサイズが変化する影響を表す検定力曲線を計算でき、すなわち、クラスタサイズは、現在の因果モデルが制御可能な要素に反映している信頼区間の幅を有する。検定力曲線の性質を考慮すると、信頼区間はサンプルサイズの小さい方の端でより迅速に正確になるが、サンプルサイズが大きくなると、サンプルサイズが大きくなるごとに、信頼区間の精度の向上が不釣り合いに小幅になる(すなわち、信頼区間の幅の減少が不釣り合いに小幅になる)。したがって、より大きなクラスタサイズを探索しても、検定力の向上はほとんどなく、現在の決定空間を正確に表していないリスクが高くなる。これを考慮するために、システムは、可能なクラスタサイズの範囲を、検定力曲線の下限閾値と上限閾値との間にある範囲に制約できる。このようにクラスタサイズを制約することにより、システムは、有意な信頼区間を計算するには検定力が少なすぎるほど小さいクラスタを探索しない。システムは、不必要に大きいクラスタサイズ、すなわち、インスタンス間の全ての潜在的な変動をキャプチャできないリスクと引き換えに、検定力のわずかな増加しかもたらさないクラスタサイズは実験しない。
別の例として、内部パラメータのセットが比率パラメータのセットである場合、システムは検定力分析を実行して、比率パラメータの現在の因果モデルを前提として、ハイブリッドインスタンスが閾値の検定力でベースラインインスタンスよりも優れているかを判定するために必要なベースラインインスタンスの最小数を計算できる。次いで、システムは、可能な比率値の範囲の下限を調整して、比率がこの最小数を下回るベースラインインスタンスの数にならないようにすることができる。
ヒューリスティックに基づいて範囲を調整する別の例として、環境内のエンティティの時間的範囲パラメータの範囲がヒューリスティックに基づいて更新されている場合、システムは各エンティティに対して、(i)所与の制御反復で選択された制御設定と、(ii)後続の制御反復、すなわち、所与の制御反復の直後の制御反復でエンティティから取得された環境応答との因果関係を測定する因果モデルを維持できる。システムは、手続き型インスタンスが直交することを保証するエンティティの時間的範囲を選択しようとしているため、時間的範囲が適切に選択されている場合は、この因果モデルは、現在の制御設定と後続の制御設定に対する環境応答との間で因果効果がゼロである可能性が高いことを示すものとなる。したがって、因果モデルが、いずれかの制御設定の影響測定値の信頼区間がゼロと重複する閾値を超えていることを示している場合、システムは可能な時間的範囲の、範囲の下限を上げることを判定できる。
ヒューリスティックに基づいて範囲を調整する別の例として、環境内のエンティティの空間的範囲パラメータの範囲がヒューリスティックに基づいて更新されている場合、システムは各所与のエンティティに対して、(i)所与のエンティティを含む手続き型インスタンスの所与の制御反復で選択された制御設定と、(ii)現在の制御反復で所与のエンティティに隣接するエンティティから取得された環境応答と、の因果関係を測定する因果モデルを維持できる。隣接するエンティティは、現在の制御反復のインスタンスの現在のセットに含まれているエンティティから、所与のエンティティに最も近いエンティティにすることができる。システムは、手続き型インスタンスが直交することを保証するエンティティの空間的範囲を選択しようとしているため、空間的範囲が適切に選択されている場合は、この因果モデルは、所与のエンティティに対する現在の制御設定と隣接するエンティティに対する環境応答との間で因果効果がゼロである可能性が高いことを示すものとなる。したがって、因果モデルが、いずれかの制御設定の影響測定値の信頼区間がゼロと重複する閾値を超えていることを示している場合、システムは可能な空間的範囲の、範囲の下限を上げることを判定できる。
データ包含ウィンドウ及び比率パラメータの可能な値の範囲を調整するために使用することができるヒューリスティックの追加の例は、図12を参照して以下でより詳細に説明される。
図9は、ヒューリスティックに基づいて所与の制御可能な要素のデータ包含値の値を更新するための例示的なプロセス900のフロー図である。便宜上、プロセス900は、1つ以上の場所に配置された1つ以上のコンピュータのシステムによって実行されるものとして説明される。例えば、制御システム、例えば、適切にプログラムされた図1の制御システム100は、プロセス900を実行することができる。
概して、システムは、データ包含ウィンドウが、確率的変動を使用せず、ヒューリスティックに基づいて変更されているパラメータである場合、データ包含ウィンドウに対してプロセス900を実行する。
システムが所与の制御可能な要素に対して複数のクラスタを維持する場合、システムは、クラスタごとに独立してプロセス900を実行することができる。すなわち、あるクラスタ内の所与の制御可能な要素のデータ包含ウィンドウを、別のクラスタ内の所与の制御可能な要素の内部パラメータのセットとは異なる方法で更新できるようにする。
システムは、所与の制御可能な要素の現在の因果モデルにアクセスする(工程902)。
システムは、現在の因果モデルの1つ以上のプロパティを分析する(工程904)。例えば、システムは、正規性検定を実行して、所与の制御可能な要素に対して可能な様々な制御設定のdスコアが正規分布しているかどうかを判定することができる(工程904)。特に、システムは、現在の因果モデル内の所与の制御可能な要素のdスコア分布に対して、正規性検定(例えば、Shapiro-Wilk検定)を実行できる。概して、システムは、異なる可能な設定間でdスコア分布をスケーリング及びプールして単一の分布を生成し、次いで単一の分布に対して正規性検定を実行する。システムは、様々なデータ包含ウィンドウに対して、例えば、現在のデータ包含ウィンドウを使用して計算された現在の因果モデル、及び1つ以上の代替データ包含ウィンドウを使用して計算された1つ以上の代替因果モデルに対して、この検定を実行し、いくつかの規定されたp値で正規性検定を満たす最長のデータ包含ウィンドウを見つけることができる。
別の特定の例として、システムは、現在の因果モデルの所与の制御可能な要素における異なる影響測定間の信頼区間の重複を測定できる。システムは、様々なデータ包含ウィンドウに対して、例えば、現在のデータ包含ウィンドウを使用して計算された現在の因果モデル、及び1つ以上の代替データ包含ウィンドウを使用して計算された1つ以上の代替因果モデルに対して、この検定を実行し、所望の重複度に最も近いデータ包含ウィンドウを見つけることができる。
別の特定の例として、システムは検定力分析を計算して、現在の因果モデルが所望の検定力を有する結果となるサンプルサイズを識別できる。次いで、システムはデータ包含ウィンドウを調整することにより、調整されたウィンドウに含まれるインスタンスの数が識別されたサンプルサイズと等しくなるようにすることができる。
システムは、分析の結果に基づいて、データ包含ウィンドウパラメータを調整するかどうかを判定する(工程906)。例えば、システムはデータ包含ウィンドウパラメータを調整して、上記の正規性検定を満たす最長のデータ包含ウィンドウを、又は所望の重複度に最も近いデータ包含ウィンドウを、又は識別されたサンプルサイズに等しいインスタンスの数を含むデータ包含ウィンドウを指定できる。
図9の例は、ヒューリスティックに基づいてデータ包含ウィンドウを調整する例である。ただし、概して、内部パラメータはいずれもヒューリスティックに基づいて調整できる(固定して保持したり、又は確率的変動を使用して調整したりする代わりに)。ヒューリスティックに基づいて内部パラメータを設定するいくつかの例を次に示す。
一例として、システムは検定力分析を使用して比率パラメータの値を設定できる。特に、システムは検定力分析を実行して、ハイブリッドインスタンスが閾値検定力でベースラインインスタンスよりも優れていることを判定するために必要なベースラインインスタンスの最小数を計算できる。次いで、システムは、比率パラメータの値をこの最小数に等しくなるように調整できる。
別の例として、クラスタサイズのハイパーパラメータの値を設定するために、システムは事前の検定力分析を実行して、因果モデルが所望の検定力を持つために、すなわち、上記の範囲の代わりに、必要な環境応答の十分な量を判定でき、クラスタサイズの値をこの範囲に設定する。
上記の説明は、システムの動作中にシステムが内部パラメータを変更できる方法を説明している。この内部パラメータの調整により、システムは環境のプロパティの変化を効果的に考慮することができる。すなわち、制御設定から環境応答へのマッピングが静的ではなく、システムの動作中の様々な時点で変化する可能性がある環境の場合を考慮することができる。適切に考慮されていない限り、全ての制御可能な要素の全ての可能な制御設定に等しく影響を与えない環境のプロパティの変化は、関連性がなくなった古いデータに基づく不正確な因果モデルをもたらす可能性があり、したがって環境の制御におけるシステムの有効性を低下させる可能性がある。
図10は、環境の1つ以上のプロパティの変化に応答するための例示的なプロセス1000のフロー図である。便宜上、プロセス1000は、1つ以上の場所に配置された1つ以上のコンピュータのシステムによって実行されるものとして説明される。例えば、制御システム、例えば、適切にプログラムされた図1の制御システム100は、プロセス1000を実行することができる。
システムは、システムによって選択された制御設定に対する環境応答を監視する(工程1002)。すなわち、上記のように、システムは制御設定を繰り返し選択し、それらの選択された制御設定への応答を監視する。
システムは、環境の1つ以上のプロパティが変化したことの表示を判定する(工程1004)。特に、環境のプロパティの変化は、制御可能な要素の少なくとも1つに対する様々な設定が、システムによって監視されている環境応答に与える相対的な影響を変更するものである。すなわち、1つ以上のプロパティが変化したという表示を判定することにより、システムは、環境応答に対する様々な設定の相対的な因果効果が変化した可能性が高いと判定する。すなわち、可能な全ての制御設定に様々な影響を与える全面的な変化とは対照的である。システムは、変化が発生したことを指定する直接情報にアクセスできないが、システムは、監視された環境応答に基づいて、変化が発生した可能性があることの表示を判定できる。
例えば、システムは、現在のシステム性能とベースラインシステム性能との差が減少しているときに、変化が発生したことの表示を判定できる。特に、以下でより詳細に説明するように、システムは、データ包含ウィンドウの可能な値が小さくなるほど増加する性能メトリックに基づいてこれを判定でき、すなわち、上記のデータ包含ウィンドウの因果モデルに反映される。
別の例として、システムは、上記のように、正規性検定が、制御可能な要素の可能な設定のdスコアがもはや正規分布していないと判定したときに、変化が発生したことの表示を判定することができる。
環境の1つ以上のプロパティが変化したという表示を判定することに応答して、システムは、システムの内部パラメータを調整する(工程1006)。
概して、システムは、システムによって維持される因果モデルが制御設定と環境応答との間の因果関係を正確にキャプチャするかどうかについて不確実性のレベルが増加していることを示すよう、内部パラメータの値を調整する。
例えば、システムは、データ包含ウィンドウパラメータを調整して、データ包含ウィンドウを縮小することができる。すなわち、因果モデルを判定するときに、より直近の履歴環境応答のみが含まれるようになる。すなわち、システムはデータ包含ウィンドウパラメータを調整して、可能なデータ包含ウィンドウの範囲がより短いデータ包含ウィンドウを優先するようにすることができる。
別の例として、システムは比率パラメータを調整して、ハイブリッド対探索比率を下げることができ、すなわち、探索インスタンスに比べてハイブリッドインスタンスの数が少なくなる。比率を下げることにより、システムは、制御設定を選択するときに現在の因果モデルへの依存を減らし、代わりに可能な制御設定の空間をより頻繁に探索する。すなわち、システムは比率パラメータを調整して、可能な比率の範囲がより小さな比率を優先するようにすることができる。
別の例として、システムはクラスタリングパラメータを調整して、インスタンスがクラスタリングされるクラスタの数を減らすことができる。クラスタの数を減らすことにより、システムは、クラスタ間のシステム性能の違いを説明するときに、もはや関係がない可能性のある特性で因果モデルがクラスタリングするのを防ぐ。
図11は、データ包含を定義する内部パラメータのセットが確率的に変更されるときの、環境の所与の制御可能な要素のデータ包含ウィンドウの表現1100を示す。図11の例に見られるように、データ包含ウィンドウは、ゼロ(すなわち、データが含まれない)から無限大(すなわち、全ての手続き型インスタンスが含まれる)までの範囲であり得るが、所与の制御可能な要素のデータ包含ウィンドウがサンプリングされる現在の確率的変動範囲110は、下限A1102と上限B1104との間にある。場合によっては、下限A1102及び上限B1104は固定されており、システムは、上記のように因果モデルを更新することにより、下限A1102と上限B1104との間の異なる値に割り当てられる確率を調整する。他の場合、システムは、因果モデルもまた更新しながら、下限A1102及び上限B1104を変更できる。特に、システムは、制御可能な要素の異なる可能な値の相対的な因果効果が変化している尤度に基づいて、範囲1110を調整することができる。
特に、図11に示されるように、システムは、データ包含ウィンドウの可能な値の範囲を維持する。すなわち、データ包含ウィンドウパラメータには、範囲の下限、範囲の上限、及びデータ包含ウィンドウが範囲内で取ることができる可能な値が含まれる。データ包含ウィンドウパラメータにはまた、値を確率的にサンプリングするときに使用される可能な値の確率も含まれる。図8を参照して上で説明したように、これらの確率は、システムによって調整される。
場合によっては、可能な値の範囲は固定される。他の場合、ただし、システムは、1つ以上のヒューリスティックに基づいて範囲の下限及び上限を変更し、システムによって探索される可能なデータ包含ウィンドウを調整し、システムが短すぎる又は長すぎるデータ包含ウィンドウを探索しないようにする。
例えば、システムは、サンプルサイズの変化(データ包含ウィンドウの変化による)が、現在の因果モデルが制御可能な要素に使用している信頼区間の幅に与える影響を表す検定力曲線を計算できる。検定力曲線の性質を考慮すると、信頼区間はサンプルサイズの小さい方の端でより迅速に正確になるが、サンプルサイズが大きくなると、サンプルサイズが増えるごとに、信頼区間の精度の向上が不釣り合いに小幅になる(すなわち、信頼区間の幅の減少が不釣り合いに小幅になる)。したがって、より長いデータ包含ウィンドウを探索しても、検定力の向上はほとんどなく、現在の決定空間を正確に表していないリスクが高くなる。これを考慮するために、システムは、データ包含ウィンドウの範囲を制約して、検定力曲線の下限閾値と上限閾値との間にあるサンプル数を得ることができる。このようにデータ包含ウィンドウを制約することにより、システムは、有意な信頼区間を計算するには検定力が少なすぎるほど短いデータ包含ウィンドウを探索しない、すなわち、統計的に有意な信頼区間を計算するのに不十分なデータをもたらすデータ包含ウィンドウを探索しない。システムはまた、不必要に長いデータ包含ウィンドウ、すなわち、環境のプロパティの直近の変化を考慮できないリスクと引き換えに、検定力のわずかな増加しかもたらさないデータ包含ウィンドウを探索しない。
別の例として、システムは、時間と制御可能な要素の可能な制御設定の相対的影響測定値との間の相互作用の安定性測定値、例えば、要因分析を計算することができる。すなわち、システムは、時間の経過に伴う因果関係の安定性を判定できる。安定性の測定値が、因果関係が安定していることを示している場合、システムはデータ包含ウィンドウ範囲の上限又は上限と下限との両方のいずれかを上げることができ、安定性の測定値が、因果関係が不安定である、すなわち、動的に変化していることを示している場合、上限又は上限と下限との両方を下げる。これにより、システムは、環境のプロパティが変化している確率がより高い場合はより小さいデータ包含ウィンドウを探索し、より古いデータを無視し、環境のプロパティが安定している確率がより高い場合はより大きいデータ包含ウィンドウを探索できる。
更に別の例として、システムは、上記のように因果モデルの形状に基づいて範囲を調整することができる。特に、システムは、データ包含ウィンドウが大きくなるにつれて影響測定値の大きさが大きくなる場合は、より長いデータ包含ウィンドウの範囲を探索でき、データ包含ウィンドウが短くなるにつれて影響測定値の大きさが大きくなる場合は、より小さいデータ包含ウィンドウの範囲を探索できる。言い換えると、システムは、差が減少すると範囲を下に移動し、差が増加すると範囲を上に移動できる。これにより、システムは、環境のプロパティが変化している確率が高い場合に、より小さいデータ包含ウィンドウを探索し、より古いデータを無視することができる。
場合によっては、システムは、例えば、上限が検定力曲線の上限閾値に対応するサイズを超えない限り、後者の2つの例のいずれか又は両方に基づいて上限を増加させることにより、及び下限が検定力曲線の下限閾値に対応するサイズを下回らない限り、また後者の2つの例のいずれか又は両方に基づいて下限を減少させることにより、これらのヒューリスティックのいくつかの組み合わせを適用できる。
これらの例はデータ包含ウィンドウに関して説明されているが、また、同様のヒューリスティックを使用して、ハイブリッドインスタンスとベースラインインスタンスとの比率を調整する、すなわち、環境のプロパティが変化している、又は直近で変化した確率がより高い場合に、ベースラインインスタンスの数を増やし、環境のプロパティが安定している確率がより高い場合に、ベースラインインスタンスの数を減らすこともできる。
図12は、既存の制御スキームを使用して同じ環境を制御するシステムの性能と比較した、環境を制御するときの説明されているシステム(図12~図18で「DCL」として示される)の性能を示す。特に、図12は、3つの異なる種類の既存の制御スキームと比較した、説明されているシステムの性能を示している:(i)システムが設定を選択せず、ベースライン環境応答のみを受信する「なし」スキーム、(ii)システムが置換なしで制御設定をランダムに割り当てる「ランダム」スキーム、及び(iii)様々な最先端の強化学習アルゴリズム。
図12の例では、制御されている環境には、それぞれ5つの可能な制御設定を有する3つの制御可能な要素があり、各反復での性能メトリックの値は、全体で固定されているガウス分布から取得される。特定の制御設定を適用すると、性能メトリックの値が取得されるガウス分布のパラメータが変更される。これらの特性は、単純又は高度に制御された実世界環境で見られるもの、例えば特定の製造ラインと同様であるが、より複雑な実世界環境で遭遇する可能性のある更なる複雑さが欠けている。
図12のプロットの上方セットは、平均累積FOM(「MeanCumFOM」)の観点からの各システムの性能を示している。所与の反復での平均累積FOMは、最初の反復から所与の反復までに受信した性能メトリック、すなわち、FOMの平均値、すなわち、時間の経過に伴う累積平均性能メトリック値である。
図12のプロットの下方セットは、インスタンスあたりの平均FOM(「MeanFOM」)による各システムの性能を示す。任意の所与の反復でのインスタンスあたりの平均FOMは、所与の反復で、すなわち、以前の反復を考慮せずに、インスタンスに対して受信した性能メトリックの平均である。
概して、最初の列(「DCL」)は説明されているシステムの結果を示し、残りの列は既存の制御スキームの結果を示す。
上に示したように、結果が図12に示されている環境は、多くの実世界環境よりも複雑ではない。例えば、因果効果が固定されているため、性能測定に影響を与える外部の制御できない特性はなく、空間的又は時間的範囲についての不確実性はない。ただし、この比較的単純な環境であっても、説明されているシステムの性能は、高度な機能が有効になっているかどうかに関係なく、最先端のシステムの性能と同等か、又はそれを上回っている。
システムの性能のベンチマークに使用される最先端のシステムの説明は次のとおりである。
● BGE-ボルツマン-ガンベル探査[Cesa-Bianchi et al.Boltzmann Exploration Done Right,Conference on Neural Information Processing Systems(NeurIPS),2017]は、制御設定の割り当ての選択に指数加重アプローチを使用する多腕バンディットアルゴリズムである。これは、制御設定の割り当てごとにFOM全体の分散を維持する。各工程で、これらの各分布からサンプルが生成され、最大のサンプルに対応する制御設定の割り当てがアルゴリズムによって選択される。次いで、受信したフィードバックを使用して、分布の内部パラメータが更新される。
● Ep Greedy-Epsilon Greedyは、確率イプシロンでランダムな制御設定の割り当てを選択し、確率1-イプシロンで過去に最高の平均FOMを与えた制御設定の割り当てを選択する汎用多腕バンディットアルゴリズムである。事実上、それは時間のイプシロンパーセントを探索し、時間の1-イプシロンパーセントを利用する。
● UCB-信頼限界の上限(Upper Confidence Bound、UCB)[Auer et al.Finite-time Analysis of the Multiarmed Bandit Problem,Machine Learning,2002]多腕バンディットアルゴリズムは、多腕バンディット問題を解決するための2つの基本的なアプローチの1つである。これは、履歴データから平均FOM及び信頼区間を計算することによって機能する。これは、平均FOM+信頼区間が最も高い制御設定の割り当てを計算することにより、制御設定の割り当てを選択する。このようにして、制御設定の割り当ての潜在的なFOMについて楽観的に動作し、どの制御設定の割り当てが最も高いFOMを有しているかを時間の経過とともに学習する。
● Lin UCB-LinUCB[Li et al.A Contextual-Bandit Approach to Personalized News Article Recommendation,International World Wide Web Conference(WWW),2010]は、平均FOM及び信頼区間を維持することにより、UCBに基づいて構築され、予想されるFOMは、実験における手続き型インスタンスの特性及び制御設定の割り当ての線形関数であるという重要な仮定を行う。その後、アルゴリズムは、任意の個々の手続き型インスタンスに最良の制御設定の割り当てを選択できる。Lin UCBは、理想的な制御設定の割り当てが、異なる手続き型インスタンスグループに対して異なる状況で、最高の性能を発揮することが予想される。
● Monitored UCB。Monitored UCB[Cao et al.Nearly Optimal Adaptive Procedure with Change Detection for Piecewise-Stationary Bandit,International Conference on Artificial Intelligence and Statistics(AISTATS),2019]は、平均FOM及び信頼区間を計算することにより、UCBに基づいて構築されるが、FOMの急激な変化が発生する可能性がある環境向けに設計されている。そのため、FOMが変化する時点を識別し、内部パラメータをリセット(平均FOM及び信頼区間を効果的にリセット)して新しいFOMの学習を開始する変化点検出アルゴリズムが組み込まれている。Monitored UCBは、FOMの急激な変化が発生する環境で、(UCB及びバリアントよりも良好な)性能を発揮することが予想される。
● ODAAF。遅延集約された匿名フィードバックに対する楽観主義(Optimism for Delayed Aggregated Anonymous Feedback)[Pike-Burke et al.Bandits with Delayed,Aggregated Anonymous Feedback,International Conference on Machine Learning(ICML),2018]は、フィードバックがランダムな有界遅延に悩まされる設定で機能するように設計された多腕バンディットアルゴリズムである。フィードバックは、アルゴリズムに送信される前に追加的に集約及び匿名化されるため、この設定は非常に困難になる。アルゴリズムは段階的に進行し、可能な最適制御設定の割り当ての候補のセットを維持する。各フェーズで、これは、これらの候補の間でラウンドロビン戦略を繰り返し実行し、フィードバックを受信すると、これらの性能メトリック値の見積もりを更新する。各フェーズの終わりに、アルゴリズムは、推定された性能メトリック値が有意に最適ではない候補を排除する。
● Thompson Sampling。Thompson Sampling[Agrawal and Goyal.Analysis of Thompson Sampling for the Multi-armed Bandit Problem,Conference on Learning Theory(COLT),2012]は確率マッチングアルゴリズムであり、多腕バンディット問題を解決するためのもう1つの基本的なアプローチである(もう1つはUCBのような楽観主義に基づくアプローチである)。これは、各制御設定の割り当てオプションの推定FOM全体の分布を維持し、各分布からサンプリングしてから、サンプリングされた(推定)FOMが最も高い制御設定の割り当てオプションを選択することで機能する。真のFOMが観察されると、ベイズアプローチを使用して(事後)分布が更新される。アルゴリズムは、最良の制御設定の割り当てである確率に比例して、各制御設定の割り当てを選択する。
図13は、複数の異なる環境を制御する場合の、他の複数のシステムの性能と比較した、説明されているシステムの性能を示している。
特に、他のシステムのそれぞれは、複数の異なる環境を制御するために、上記の既存の制御スキームの対応する1つを使用する。
制御されている環境には、それぞれ5つの可能な設定を有する3つの制御可能な要素があり、各反復で最適化される性能メトリックの値は、ガウス分布から取得される。
環境は、様々な手続き型インスタンス間で変動を引き起こす様々な要因の追加により、様々な複雑さを有する。
特に、グラフの一番上のセットに示されている基本環境は、手続き型インスタンスに応じてガウス分布の平均及び分散を変更し、すなわち、同じ制御設定が選択されている場合でも、異なる手続き型インスタンスが異なる性能メトリック値を受け取ることができる。
他の環境でもまた、制御可能な要素に様々な可能な設定を適用した場合の効果における時間ベースの変化、性能メトリックの基本的な正弦波動作、及び様々なインスタンスグループの様々な設定効果(すなわち、環境特性と制御可能な要素との間の相互作用を表す)が導入される。
図13から分かるように、既存の制御スキームの多くは、概して単純なベースラインの場合にうまく機能し、所与の制御スキームは1つの追加の複雑さの要因でうまくいく可能性があるが、既存の制御スキームのいずれも全ての場合にうまく機能するわけではない。一方、説明されているシステムは、全ての環境で既存の最良の制御スキームと同等又はそれ以上の性能を発揮する。したがって、図13の例は、記載されたシステムが、異なる環境のそれぞれについて、手動でモデルを選択する必要なく、様々な複雑な環境に自動的に適応するシステムの能力により、すなわち、システムの内部パラメータを継続的に変更して、環境のプロパティに関する事前の知識が利用可能でなかった場合であっても、様々な環境の様々なプロパティを考慮することにより、様々な環境ごとに他の制御スキームと同様又はより良い可能な設定で実行できることを示す。
制御されている各環境の詳細な説明は次のとおりである。
00_base。100個の手続き型インスタンス、各々がガウス分布から取得された性能メトリック値を有する5つの可能な設定を有する3つの制御可能な要素。異なるIVの可能な設定の選択は、分布の平均及び/又は標準偏差を変更する。この環境は比較的単純であるが、実世界環境で多くの場合に見られるように、可能な制御設定の多くの組み合わせを有する。
● 01_add_subject_var。00_baseから開始して、手続き型インスタンスは、これらの性能メトリック値の分布のベースレート平均及び標準偏差が異なる3つのグループに分けられる。これにより、制御設定の割り当ての影響を変更することなく、データに更なる分散が導入される。このタイプの手続き型インスタンス/EUの分散は、実世界では非常に典型的である。例えば、この特定の構成は、製品の小さなグループが全体的な売上の大部分を占め(80/20の法則)、より多くの製品グループの売上は中程度であり、ほとんどの製品の売上は低くなっている、製品の品揃えの販売行動を再現している。
● 02_add_dynamic。00_baseから開始して、IVの可能な設定の効果は、IVの可能な設定の影響が逆転するように、所定の時間(アルゴリズムには未知)で複数回変わる。この変化する動作は、実世界では非常に典型的である。例えば、様々な広告キャンペーン及び技術の効果は、空間及び時間の経過とともに定期的に変化する(以前は機能していたものが現在は機能しない可能性がある)。同様に、製造ラインでの最適な制御設定の割り当ての選択は、温度、湿度、及び特定の機器の微妙な違い(例えば、摩耗及び引き裂き)などの要因により変化する。
● 03_add_subject_var_dynamic。01_add_subject_varと02_add_dynamicとの組み合わせ。これらの2つの動作(上記)の組み合わせにより、この環境は多くの動的な実世界環境に更に類似したものになる。
● 04_add_sine。00_baseから開始して、全体的な正弦波パターンを性能メトリック値に追加する。これは、IVの可能な設定の影響とは無関係な、FOMの定期的な傾向(例えば、季節的、毎週)をシミュレートする。いくつかのアルゴリズムでは、更なるデータの分散を扱うのが困難である。このタイプの周期的な動作は、実世界では非常に典型的である。例えば、小売販売、サプライチェーンなどは、多くの場合、性能メトリックに有意な分散をもたらす、毎週、毎月、及び季節のサイクルに従う。別の例として、天候の季節的変化の影響を受ける製造及びその他のプロセスでもまた、同様の効果が生じる可能性がある。これらの状況(説明されているシステムが対処する)での重要な課題は、(例えば)マーケティング活動の影響をこれらの基本的な行動から区別できるようにすることである。
● 05_add_subject_var_sine。01_add_subject_varと04_add_sineとの組み合わせ。これらの2つの動作(上記)の組み合わせにより、この環境は、複雑で動的な実世界環境に更に類似したものになる。
● 06_add_ev_effects。IVの可能な設定の最適な組み合わせは、いくつかの手続き型インスタンスで異なる。制御設定の割り当てにおけるこの変動は、実世界状況では非常に典型的である。例えば、関連する製品、コンテンツの受信者、空間、時間などに応じて、様々な広告又はプロモーションのアプローチが他のアプローチよりもうまく機能する。
● 10_complex。01_add_subject_var、02_add_dynamic、04_add_sine、及び06_add_ev_effectsの組み合わせ。この環境は、上記の全ての実世界の動作を取り入れ、それらを1つの環境に組み合わせるという点で、実世界の動作をキャプチャするために最も役立つ。
図14は、時間的効果が変化する複数の異なる環境を制御する場合の、他の複数のシステムの性能と比較した、説明されているシステムの性能を示している。
特に、他のシステムのそれぞれは、複数の異なる環境を制御するために、対応する既存の制御スキームを使用する。
制御されている環境には、それぞれ2つの可能な設定を有する4つの制御可能な要素があり、各反復での性能メトリックの値は、ガウス分布から取得される。環境には様々な時間遅延及び期間があり、所与のインスタンスの制御設定の初期適用に関連して、性能メトリック値が生成される時点に影響する。例えば、最上位の環境では、全ての効果に対する環境応答が2回の反復で遅延し、3回の反復で持続する。次の環境では、4つの制御可能な要素は全て異なる時間遅延及び期間を有する。3番目及び4番目の環境は、更なる複雑さ及び変動性を追加する。
図14の例から分かるように、説明されているシステムは、様々な環境のそれぞれについて、他の制御スキームと同様又はより良い可能な設定で実行できる。これは、制御設定を適用する効果の時間的動作に動的に適応する、すなわち、動作中に時間的範囲パラメータを変更することによる、説明されているシステムの能力を示している。
更に、2つの環境には、IV制御設定の割り当て効果とは関係のない基本的な周期的動作が含まれる。この動作は、実行されたアクションが即時に効果が出ず遅延する、実世界(例えば、広告、医薬品など)で遭遇する典型的な状況である。同時に、そのようなシナリオには、多くの場合、制御設定の割り当てが中止された後、引き続く残留効果がある。更に、これらの時間的動作を単独で見つけることはめったにない。むしろ、それらは、示されている正弦波パターンと同様の基本的な動作とほとんどの場合同時発生する。図14から分かるように、説明されているシステムは、従来のシステムよりも優れている。すなわち、時間的範囲パラメータ及び他の内部パラメータを調整して基本的な行動の変化に適応することによって、異なる時間的動作をよりよく説明できるためである。
図14に示す環境の詳細は、以下のとおりである。
● 00_temporal。500個の手続き型インスタンス、各々がガウス分布から取得された性能メトリック値を有する2つの可能な設定を有する4つの制御可能な要素。異なるIVの可能な設定の選択は、分布の平均及び/又は標準偏差を変更する。全ての効果の性能メトリック値は、2回の反復で遅延し、3回の反復で持続する。
● 01_temporal_multi。00_temporalと同じであり、ただし、4つの制御可能な要素の時間遅延及び期間が異なる。
● 02_temporal_sine。正弦波動作が追加された00_baseから開始。
● 03_temporal_delay_only。00_temporalと同じであるが、継続的な動作が削除される。
● 04_temporal_multi_delay_only。01_temporal_multiと同じであるが、継続的な動作が削除される。
● 05_temporal_sine_delay_only。02_temporal_sineと同じであるが、継続的な動作が削除される。
図15は、クラスタリングがある場合とない場合との説明されているシステムの性能を示す。制御されている環境には、それぞれ5つの可能な設定を有する3つの制御可能な要素があり、各反復での性能メトリックの値は、実験を通して固定されるガウス分布から取得される。制御されている環境には、環境特性によって記述される手続き型インスタンス/EUの特性に応じて、異なる最適制御設定の割り当て(制御可能な要素)がある。制御設定の割り当ての1つのセットは、全体的に良好な結果を生成するが、実際には部分母集団に対してはネガティブになる。部分母集団に特定の理想的な制御設定の割り当てが与えられると、全体的な有用性が向上する。これは、最適な制御設定の割り当てが外部特性に基づいて大きく変化する可能性がある実世界状況の典型である。左の図は、クラスタリングコンポーネントが含まれている説明されているシステムの性能を示す。この場合、説明されているシステムは、手続き型インスタンス/EUに特定の制御設定の割り当てを割り当て、これにより、全体的にFOMが高くなる。右の図は、クラスタリングコンポーネントを使用しない場合、すなわち、クラスタリングフェーズに決して入らない場合の、説明されているシステムの性能を示す。この場合、アルゴリズムは、全ての手続き型インスタンスに対して単一の全体的な制御設定の割り当てアプローチを利用する。これにより、特定の部分母集団に対して非最適な制御設定の割り当てが使用される。図15から分かるように、クラスタリングが使用される場合、説明されているシステムはより良好に機能する。
図16は、データ包含ウィンドウパラメータを固定したまま、同じ環境を制御する説明されているシステムの性能と比較してデータ包含を変更する能力を備えた説明されているシステムの性能を示す。図16の例では、制御されている環境は、性能測定値に対する制御設定の相対的効果において2つの漸進的な変化を示す。これは、2つの点で実世界に典型的である:1)アクション(例えば、広告、製造パラメータなど)の影響が常に静的である場合はめったにない、2)そのような変化が発生した場合、それらは本質的に漸進的であり、突然ではないことが多い。左の図は、DIWコンポーネントが含まれている説明されているシステムの性能を示す。この場合、説明されているシステムは、例えば、ハイブリッドベースライン比較を通じて、効果が変化したことを迅速に検出することができ、説明されているシステムは、データ包含ウィンドウを縮小することによって、最良の制御設定の割り当てを即座に再学習することができる。右の図は、DIWコンポーネントを使用しない場合の説明されているシステムの性能を示す。この場合、アルゴリズムは、治療効果の変化に非常に漸進的に適応する。そうするまでに、効果は既に再び変化している。
図17は、時間的分析がある場合とない場合、すなわち、時間的範囲を変更する能力がある場合とない場合との説明されているシステムの性能を示す。制御されている環境には、それぞれ2つの可能な設定を有する4つの制御可能な要素があり、各反復での性能メトリックの値は、実験を通して固定されるガウス分布から取得される。環境には様々な時間遅延及びキャリーオーバー動作があり、IVの可能な設定の初期適用に関連して、性能メトリック値が生成される時点に影響する。更に、2つの環境には、効果とは関係のない基本的な周期的動作が含まれる。この動作は、実世界(例えば、広告、医薬品)で遭遇する典型的な状況であり、多くの場合、実行されたアクションはすぐには効果がなく、制御設定の割り当てが中止された後であっても効果が残ることが多い。更に、この時間的変動は、他の基本的な動作の文脈で存在することが多い。この図は、説明されているシステム内の時間的最適化の値を示す。左の列は、時間的コンポーネントを使用する場合の説明されているシステムの性能を示す。右の列は、時間的コンポーネントを使用しない場合の説明されているシステムの性能を示す。図17の例から分かるように、説明されているシステムは、環境にこれらの時間的特性がある場合に時間的分析を使用すると、性能が大幅に良くなる。
図18は、既存の制御スキーム(「Lin UCB」)を使用して同じ環境を制御するシステムの性能と比較した、環境を制御するときの説明されているシステムの性能を示す。図18の例では、制御されている環境は、最適な制御設定の割り当てが時間とともに変化するように、これらの効果の変化とともに、IVの可能な設定効果とは無関係の周期的な基本的な振る舞いを有する。これらの特性は、多くの実世界環境で見られるものと類似しており、制御設定の割り当て/アクションの影響の経時変化とともに、定期的な基礎となる動態(例えば、毎週、毎月、又は季節的なパターン)がある。図18は、IVの可能な設定の影響が、基礎となる環境で変化している時間のサブセットを示す(反復200~250の間)。図18から分かるように、既存の制御スキームの性能は、以前の制御設定の割り当て効果に基づいてエクスプロイトフェーズにとどまり、変化に迅速に適応することができない。一方、説明されているシステムの性能は、変化する効果にすばやく適応し、変化した環境効果の下で段階的な改善を見つける(上のプロット)。これにより、説明されているシステムからの段階的利益が増加する(下のプロット)。時間の経過とともに、説明されているシステムを利用することによる累積的な利益が増加し続けることに注意されたい。
上記の説明では、特定の用語を使用して、説明されているシステムの機能又は説明されているシステムによって実行されるアクションを参照しているが、システムの動作を説明するために使用できる用語はこれらだけではないことを理解する必要がある。代替用語のいくつかの例を次に示す。一例として、制御可能な要素は、代わりに独立変数(IV)と呼ばれることがある。別の例として、環境特性は、代わりに外部変数(EV)と呼ばれることがある。別の例として、環境応答は、代わりに従属変数(DV)と呼ばれることがある。別の例として、手続き型インスタンスは、代わりに実験ユニット又は自己組織化実験ユニット(SOEU)と呼ばれることがある。別の例として、制御可能な要素の可能な設定は、代わりに要素(又はIV)のレベルと呼ばれることがある。更に別の例として、制御設定は、代わりにプロセス決定と呼ばれることがあり、手続き型インスタンスに制御設定を割り当てることは、処理割り当てと呼ばれることがある。
「繰り返し」という用語は、すなわち、動作を繰り返し実行するという文脈において、概して、動作が特定のシーケンスの有無にかかわらず複数回発生していることを意味するために本明細書で使用される。一例として、プロセスは、指定された順序で工程のセットを一定して若しくは反復してたどることができ、又は工程をランダムに若しくは非連続的にたどることができる。更に、工程が全て同じ頻度で実行されるとは限らない、例えば、処理の割り当ては、因果学習を更新するよりも頻繁に実行される場合があり、後者の頻度は、例えば、エクスプロイトフェーズが支配的になるにつれて、及び/又はコンピューティング容量/速度要件が時間とともに変化するにつれて、時間とともに変化する可能性がある。
本明細書では、システム及びコンピュータプログラムコンポーネントに関連して「構成された」という用語を使用する。特定の動作又はアクションを実行するように構成された1つ以上のコンピュータのシステムの場合、システムにソフトウェア、ファームウェア、ハードウェア、又はそれらの組み合わせがインストールされており、動作中にシステムが動作又はアクションを実行することを意味する。特定の動作又はアクションを実行するように構成される1つ以上のコンピュータプログラムについては、1つ以上のプログラムが、データ処理装置によって実行された場合装置に動作又はアクションを実行させる命令を含むことを意味する。
本明細書に記載されている主題及び機能的動作の実施形態は、デジタル電子回路、具体化されたコンピュータソフトウェア若しくはファームウェア、本明細書に開示されている構造及びそれらの構造的同等物を含むコンピュータハードウェア、又はそれらの1つ以上の組み合わせで実施することができる。本明細書に記載されている主題の実施形態は、1つ以上のコンピュータプログラムとして実装することができる。1つ以上のコンピュータプログラムは、データ処理装置による実行のために、又はデータ処理装置の動作を制御するために、有形の非一時的記憶媒体上にエンコードされたコンピュータプログラム命令の1つ以上のモジュールを含むことができる。コンピュータ記憶媒体は、機械可読記憶デバイス、機械可読記憶基板、ランダム若しくはシリアルアクセスメモリデバイス、又はそれらのうちの1つ以上の組み合わせであり得る。あるいは、又は更に、プログラム命令は、データ処理装置による実行のために適切な受信機装置に送信するための情報をエンコードするために生成される、人工的に生成された伝搬信号、例えば、機械によって生成された電気的、光学的、又は電磁的信号にエンコードすることができる。
用語「データ処理装置」は、データ処理ハードウェアを指し、例えば、1つのプログラマブルプロセッサ、1つのコンピュータ、又は複数のプロセッサ若しくはコンピュータを含む、データを処理するためのあらゆる種類の装置、デバイス、及び機械を包含する。装置はまた、専用論理回路、例えば、FPGA(フィールドプログラマブルゲートアレイ)又はASIC(特定用途向け集積回路)であってもよいか、又は更に含んでもよい。装置所望により、ハードウェアに加えて、コンピュータプログラムのための実行環境を生成するコード、例えば、プロセッサファームウェアを構成するコード、プロトコルスタック、データベース管理システム、オペレーティングシステム、又はこれらのうちの1つ以上の組み合わせを構成するコードを含んでもよい。
コンピュータプログラムは、プログラム、ソフトウェア、ソフトウェアアプリケーション、app、モジュール、ソフトウェアモジュール、スクリプト、又はコードとも呼ばれること、又は説明されることがあり、コンパイル又は解釈された言語、宣言型言語又は手続き型言語を含む任意の形態のプログラミング言語で記述することができ、スタンドアロン型のプログラムとして、又はモジュール、コンポーネント、サブルーチン、若しくはコンピューティング環境での使用に適した他のユニットを含む、任意の形態でデプロイすることができる。プログラムは、ファイルシステム内のファイルに対応する場合があるが、対応する必要はない。プログラムは、他のプログラム又はデータを保持するファイルの一部分に保存でき、例えば、マークアップランゲージドキュメントに、該当するプログラム専用の単一ファイルに、又は複数の調整されたファイル(例えば、1つ以上のモジュール、サブプログラム、又はコードの一部分を保存するファイル)に保存されている1つ以上のスクリプトである。コンピュータプログラムは、1つのコンピュータにおいて、又は1つのサイトに設けられているか、若しくは複数のサイトにわたり分散されており、データ通信ネットワークを介して相互接続されている複数のコンピュータにおいて実行されるようにデプロイすることができる。
本明細書では、用語「データベース」は、データの任意のコレクションを指すために広く使用されており、データは、任意の特定の方法で構造化する必要はなく、又はまったく構造化する必要もなく、1つ以上の場所の記憶デバイスに記憶できる。したがって、例えば、インデックスデータベースには複数のデータコレクションを含めることができ、各コレクションは異なる方法で編成及びアクセスできる。
同様に、本明細書では、「エンジン」という用語は、1つ以上の特定の機能を実行するようにプログラムされたソフトウェアベースのシステム、サブシステム、又はプロセスを指すために広く使用されている。概して、エンジンは1つ以上のソフトウェアモジュール又はコンポーネントとして実装され、1つ以上の場所にある1つ以上のコンピュータにインストールされる。場合によっては、1つ以上のコンピュータが特定のエンジン専用になる。他の場合は、複数のエンジンを同じ1つ又は複数のコンピュータにインストールして実行できる。
本明細書において説明されるプロセス及び論理フローは、入力データに基づいて動作し、出力を生成することによって機能を実行するための1つ以上のコンピュータプログラムを実行する1つ以上のプログラマブルコンピュータによって実行することができる。プロセス及び論理フローは、専用論理回路、例えば、FPGA若しくはASICによって、又は専用論理回路と1つ以上のプログラムされたコンピュータとの組み合わせによって、実行することもできる。
コンピュータプログラムの実行に好適なコンピュータは、汎用若しくは専用のマイクロプロセッサ、又はその両方、又は他の種類の中央演算処理装置に基づくことができる。概して、中央演算処理装置は、読み取り専用メモリ若しくはランダムアクセスメモリ又はその両方から命令及びデータを受信する。コンピュータの必須要素は、命令を実施又は実行するための中央演算処理装置、並びに命令及びデータを記憶するための1つ以上のメモリデバイスである。中央演算処理装置及びメモリは、専用論理回路によって補完されるか、又はその中に組み込まれ得る。概して、コンピュータはまた、データを記憶するための1つ以上のマスストレージデバイス、例えば、磁気ディスク、光磁気ディスク、又は光ディスクを含むか、又はこれらに動作可能に連結されて、これらからデータを受信するか、又はこれらにデータを送信するか、又はその両方を行う。ただし、コンピュータにそのようなデバイスが必要なわけではない。更に、コンピュータを、別のデバイス、例えば、ほんの数例を挙げると、携帯電話、携帯情報端末(PDA)、モバイルオーディオ若しくはビデオプレーヤー、ゲームコンソール、全地球測位システム(GPS)受信機、又はポータブル記憶デバイス、例えば、ユニバーサルシリアルバス(USB)フラッシュドライブに埋め込むことができる。
コンピュータプログラム命令及びデータの記憶に適したコンピュータ可読媒体としては、例えば半導体メモリデバイスを含む、あらゆる形態の不揮発性メモリ、媒体、及びメモリデバイス、例えば、EPROM、EEPROM、及びフラッシュメモリデバイス、磁気ディスク、例えば、内部ハードディスク又はリムーバブルディスク、光磁気ディスク、並びにCD-ROM及びDVD-ROMディスクが挙げられる。
ユーザとの対話を提供するために、本明細書において説明される対象の実施形態は、ユーザに情報を表示するためのディスプレイデバイス、例えば、CRT(陰極線管)又はLCD(液晶ディスプレイ)モニタ、ユーザがコンピュータに対して入力を提供できるようにする、キーボード及びポインティングデバイス、例えば、マウス又はトラックボールを有するコンピュータにおいて実施することができる。他の種類のデバイスを使用して、ユーザとの対話も提供することができ、例えば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック、例えば、視覚フィードバック、聴覚フィードバック、又は触覚フィードバックであってよく、ユーザからの入力は、音響入力、音声入力、又は触覚入力を含む任意の形態で受信することができる。加えて、コンピュータは、ユーザによって使用されるデバイスにドキュメントを送信し、そのデバイスからドキュメントを受信することによって、例えばウェブブラウザから受信したリクエストに応答してユーザのデバイスにおいてウェブブラウザにウェブページを送信することによって、ユーザと対話することができる。また、コンピュータは、テキストメッセージ又は他の形式のメッセージをパーソナルデバイス(例えば、メッセージングアプリケーションを実行しているスマートフォン)に送信し、その返信でユーザから応答メッセージを受信することによって、ユーザと対話することができる。
本明細書に記載されている主題の実施形態は、バックエンドコンポーネントを例えばデータサーバとして含むか、又はミドルウェアコンポーネント、例えばアプリケーションサーバを含むか、又はフロントエンドコンポーネント、例えば、グラフィカルユーザインターフェイス、Webブラウザ、若しくはユーザが本明細書に記載されている主題の実装と対話できるアプリを含むか、又は1つ以上のそのようなバックエンド、ミドルウェア、若しくはフロントエンドコンポーネントの任意の組み合わせを備えたクライアントコンピュータを含む、コンピューティングシステムに実装することができる。システムのコンポーネントは、例えば、通信ネットワークなど、デジタルデータ通信の任意の形式又は媒体によって相互接続することができる。通信ネットワークの例としては、ローカルエリアネットワーク(LAN)及びワイドエリアネットワーク(WAN)(例えば、インターネット)が挙げられる。
コンピューティングシステムには、クライアント及びサーバを含めることができる。クライアント及びサーバは概して、互いにリモートであり、典型的には通信ネットワークを介してインタラクションする。クライアント及びサーバの関係は、それぞれのコンピュータで実行されるコンピュータプログラムによって発生し、互いにクライアント-サーバの関係を有する。いくつかの実施形態では、サーバは、例えば、データを表示し、クライアントとして機能するデバイスと対話するユーザからユーザ入力を受信する目的で、データ、例えば、HTMLページをユーザデバイスに送信する。ユーザデバイスで生成されたデータ、例えば、ユーザ対話の結果は、デバイスからサーバで受信できる。
本明細書は多くの特定の実施の詳細を含むが、これらは、任意の発明の範囲又は請求され得るものの範囲に対する制限として解釈されるべきではなく、むしろ特定の発明の特定の実施形態に固有であり得る特徴の説明として解釈されるべきである。別個の実施形態の文脈で本明細書に記載されている特定の特徴はまた、単一の実施形態で組み合わせて実施することができる。逆に、単一の実施形態の文脈で説明される様々な特徴はまた、複数の実施形態で別々に、又は任意の好適なサブコンビネーションで実装することができる。更に、特徴は、特定の組み合わせで機能するように上述され、及び更に当初そのように特許請求されることがあるが、特許請求された組み合わせからの1つ以上の特徴は、場合によっては、組み合わせから削除されてもよく、特許請求された組み合わせは、部分的組み合わせ又は部分的組み合わせの変形の対象とされてもよい。
同様に、動作は図面に示され、特定の順序で特許請求の範囲に記載されているが、これは、望ましい結果を達成するために、そのような動作を示されている特定の順序若しくは順番に実行すること、又は示されている全ての動作を実行することを必要とするものとして理解されるべきではない。特定の状況では、マルチタスク及び並列処理が有利な場合がある。更に、上記の実施形態における様々なシステムモジュール及びコンポーネントの分離は、全ての実施形態においてそのような分離を必要とするものとして理解されるべきではなく、また、説明されているプログラムコンポーネント及びシステムは、概して、単一のソフトウェア製品に統合することも、複数のソフトウェア製品にパッケージ化することもできると理解されるべきである。
主題の特定の実施形態が説明されてきた。他の実施形態は、以下の特許請求の範囲内とする。例えば、特許請求の範囲に記載されているアクションは、異なる順序で実行することができ、それでも望ましい結果を達成することができる。一例として、添付の図に示されているプロセスは、望ましい結果を実現するために、示された特定の順序又は連続順序を必ずしも必要としない。場合によっては、マルチタスク及び並列処理が有利な場合がある。