(57)【特許請求の範囲】
【請求項１】
システムであって、
プロバイダネットワークのネットワークにアクセス可能な機械学習サービスで、（ａ）変数の１つまたは複数のグループを指示するグループ定義セクションであって、前記１つまたは複数のグループの個々は、少なくとも１つの共通変換動作が適用される複数の変数を含む、前記グループ定義セクション、（ｂ）１つまたは複数の中間変数を定義する割り当てセクション、（ｃ）レポジトリに記憶されている１つまたは複数の機械学習人工物へのそれぞれの参照を指示する依存性セクション、または（ｄ）前記グループ定義セクション、前記割り当てセクション、もしくは前記依存性セクション、で指示された少なくとも１つのエンティティに適用される１つまたは複数の変換動作、に少なくとも部分的に基づいて出力されるデータを指示する出力セクション、のうちの１つまたは複数を含むレシピのテキスト表現を受信することと、
（ａ）前記機械学習サービスによって定義されている一組の構文規則、及び（ｂ）前記機械学習サービスによってサポートされている種類の変換動作に対応する一組のライブラリの一組のライブラリ関数定義に従って前記レシピの前記テキスト表現を検証することと、
前記レシピの実行可能な表現を生成することと、
前記実行可能な表現を前記レポジトリに記憶することと、
前記レシピが特定のデータセットに適用されることを判定することと、
前記特定のデータセットが前記レシピの実行時間承認基準を満たしていることを検証することと、
１つまたは複数の選択されたプロバイダネットワークリソースを使用して、前記１つまたは複数の変換動作の特定の変換動作を前記特定のデータセットに適用することと、を行うように構成された、１つまたは複数のコンピューティングデバイスを備える、システム。
【請求項２】
前記１つまたは複数のコンピューティングデバイスは、
前記レシピを異なるデータセットに適用するための要求を受信することと、
前記異なるデータセットが前記レシピの前記実行時間承認基準を満たしていることを検証することと、
前記特定の変換動作を前記異なるデータセットに適用することと、を行うようにさらに構成される、請求項１に記載のシステム。
【請求項３】
前記１つまたは複数のコンピューティングデバイスは、
プログラム的インターフェースを介してクライアントに、複数の機械学習問題領域の個々に適用可能なそれぞれの組の１つまたは複数のレシピの指標を提供するようにさらに構成される、請求項１または２に記載のシステム。
【請求項４】
前記テキスト表現は、前記特定の変換動作の結果を使用して実行される特定の機械学習モデルの指標を含む、請求項１〜３のいずれかに記載のシステム。
【請求項５】
前記１つまたは複数のコンピューティングデバイスは、
自動パラメータ調整が前記レシピに対して行われるという指標に応答して、前記１つまたは複数の変換動作の異なる変換動作に適用可能な複数のパラメータ値オプションを判定することと、
前記機械学習サービスによって、前記複数のパラメータ値オプションの個々を使用して、前記異なる変換動作のそれぞれの結果を生成することと、
前記それぞれの結果の分析に基づいて前記機械学習サービスによって、パラメータ承認基準を満たす前記複数のパラメータ値オプションの少なくとも１つの候補パラメータ値の指標を提供することと、を行うようにさらに構成される、請求項１〜４のいずれかに記載のシステム。
【請求項６】
方法であって、
１つまたは複数のコンピューティングデバイスによって、
ネットワークにアクセス可能な機械学習サービスで、（ａ）変数の１つまたは複数のグループを指示するグループ定義セクションであって、前記１つまたは複数のグループの個々が少なくとも１つの共通変換動作が適用される複数のデータセット変数を含む、前記グループ定義セクション、及び（ｂ）（ｉ）前記グループ定義セクションまたは（ｉｉ）入力データセットのうちの１つまたは複数で指示された少なくとも１つのエンティティに適用される１つまたは複数の変換動作、に少なくとも部分的に基づいて出力されるデータを指示する出力セクション、のうちの１つまたは複数を含む、レシピの第１の表現を受信することと、
前記機械学習サービスによってサポートされている種類の変換動作に対応する一組のライブラリの少なくとも一組のライブラリ関数定義に従って、前記レシピの前記第１の表現を検証することと、
前記レシピの実行可能な表現を生成することと、
前記レシピが特定のデータセットに適用されることを判定することと、
前記特定のデータセットが実行時間承認基準を満たしていることを検証することと、
１つまたは複数の選択されたプロバイダネットワークリソースを使用して、前記１つまたは複数の変換動作の特定の変換動作を前記特定のデータセットに適用することと、を行うことを含む、方法。
【請求項７】
前記第１の表現は、テキスト表現または二進表現であり、前記第１の表現は、前記機械学習サービスから得られたツールを使用して前記機械学習サービスのクライアントによって生成される、請求項６に記載の方法。
【請求項８】
前記特定のデータセットの入力データ記録の少なくとも１つの変数のデータ型は、（ａ）テキスト、（ｂ）数値データ型、（ｃ）Ｂｏｏｌｅａｎ、（ｄ）２値データ型、（ｅ）カテゴリーデータ型、（ｆ）画像処理データ型、（ｇ）音声処理データ型、（ｈ）生物情報学データ型、または（ｉ）構造化データ型のうちの１つまたは複数を含み、前記入力データ記録の特定の変数の前記データ型は、特定の構造化データ型を含み、前記１つまたは複数のコンピューティングデバイスによって、
前記特定の構造化データ型に少なくとも部分的に基づいて、少なくとも前記特定の変数を変換するために使用される特定のライブラリ関数を選択することを行うことをさらに含む、請求項６または７に記載の方法。
【請求項９】
前記第１の表現は、（ａ）入力データセット変数、または（ｂ）前記グループ定義セクションで定義されるエンティティのうちの１つまたは複数の点から中間変数を定義する割り当てセクションを含み、前記中間変数は、前記出力セクションで参照される、請求項６〜８のいずれかに記載の方法。
【請求項１０】
前記第１の表現は、前記機械学習サービスのレポジトリに記憶されている特定の人工物への参照を指示する依存性セクションを含み、前記特定の変換動作は、前記特定の人工物の出力を入力として実行し、前記特定の人工物は、（ａ）機械学習モデル、（ｂ）異なるレシピ、（ｃ）統計セット、または（ｄ）機械学習モデルへの参照を含むエイリアス、のうちの１つまたは複数を含む、請求項６〜９のいずれかに記載の方法。
【請求項１１】
前記特定の変換動作は、ユーザ定義関数を利用し、前記１つまたは複数のコンピューティングデバイスによって、
前記第１の表現の前記受信の前にクライアントから前記機械学習サービスで、前記ユーザ定義関数を実行するモジュールの指標を受信することを行うことをさらに含み、前記モジュールは、テキスト形式またはバイナリ形式である、請求項６〜１０のいずれかに記載の方法。
【請求項１２】
前記１つまたは複数のコンピューティングデバイスによって、
前記機械学習サービスによって定義された一組の構文規則に従って、前記第１の表現を検証することを行うことをさらに含む、請求項６〜１１のいずれかに記載の方法。
【請求項１３】
前記１つまたは複数のコンピューティングデバイスによって、
前記レシピを異なるデータセットに適用するための要求を受信することと、
前記異なるデータセットが前記レシピの前記実行時間承認基準を満たしていることを検証することと、
前記特定の変換動作を前記異なるデータセットに適用することと、を行うことをさらに含む、請求項６〜１２のいずれかに記載の方法。
【請求項１４】
前記１つまたは複数のコンピューティングデバイスによって、
前記機械学習サービスによって、自動パラメータ調整が前記レシピに対して行われるという指標に応答して、前記１つまたは複数の変換動作の異なる変換動作に適用可能な複数のパラメータ値オプションを判定することと、
前記機械学習サービスによって、前記複数のパラメータ値オプションの個々を使用して、前記異なる変換動作のそれぞれの結果を生成することと、
前記機械学習サービスによって、前記特定のパラメータ値に対応する特定の結果セットに少なくとも部分的に基づいて、前記複数のパラメータ値オプションの特定のパラメータ値を、許容できる値として選択することと、
前記機械学習サービスによってクライアントに、前記それぞれの結果の分析に基づいて、少なくとも前記複数のパラメータ値オプションのサブセットを候補値として示すことと、
前記機械学習サービスで前記クライアントから、前記異なる変換動作のために使用される前記サブセットの特定のパラメータ値の指標を受信することと、を行うことをさらに含み、
前記複数のパラメータ値オプションは、（ａ）言語処理データセットから導出されるｎ−ｇｒａｍのそれぞれの長さ、（ｂ）特定の変数のそれぞれの分位ビン境界、（ｃ）画像処理パラメータ値、（ｄ）データセットが分類されるいくつかのクラスタ、（ｅ）クラスタ境界閾値の値、または（ｆ）テキスト文書のベクトル表現の次元値、のうちの１つまたは複数を含む、請求項６〜１３のいずれかに記載の方法。
【請求項１５】
１つまたは複数のプロセッサ上で実行されたとき、
機械学習サービスで、（ａ）変数の１つまたは複数のグループを指示するグループ定義セクションであって、前記１つまたは複数のグループの個々が少なくとも１つの共通変換動作が適用される複数のデータセット変数を含む、前記グループ定義セクション、または（ｂ）（ｉ）前記グループ定義セクションまたは（ｉｉ）レシピの入力データセット、のうちの１つまたは複数で指示された少なくとも１つのエンティティに適用される１つまたは複数の変換動作、に少なくとも部分的に基づいて出力されるデータを指示する出力セクション、のうちの１つまたは複数を含む、前記レシピの第１の表現を判定することと、
前記機械学習サービスによってサポートされている種類の変換動作に対応する一組のライブラリの少なくとも一組のライブラリ関数定義に従って、前記レシピの第１の表現を検証することと、
前記レシピの実行可能な表現を生成することと、
前記レシピが特定のデータセットに適用されるという判定に応答して、１つまたは複数の選択されたプロバイダネットワークリソースを使用して、前記特定のデータセットへの前記１つまたは複数の変換動作の特定の変換動作を実行することと、を行うプログラム命令を記憶する、非一時的コンピュータアクセス可能記憶媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
機械学習は、統計学からの技術と人工知能とを組み合わせて、経験的データから学習し、一般化して、例えば、自然言語処理、金融詐欺検出、テロリズム脅威レベル検出、ヒト健康診断等の様々な領域における問題を解決することができるアルゴリズムを作成する。近年、機械学習モデルのために潜在的に利用され得るますます多くの生データが、例えば、様々な種類のセンサ、ウェブサーバログ、ソーシャルメディアサービス、金融取引記録、防犯カメラ等の多岐にわたるソースから収集されている。
【０００２】
従来、統計学及び人工知能における専門知識が、機械学習モデルの開発及び使用のための必要条件である。多くのビジネスアナリストとって、かつ高い技術を有する主題の専門家にとってさえ、そのような専門知識を得る困難さは、時折、改善された事業予測を行い決断を下すために潜在的に利用可能な大量のデータを最大限に活用することができるようになるには、高すぎる障壁である。さらに、多くの機械学習技術は、計算集約的であり得、少なくとも一部の事例では、技術の様々な段階のためにどれくらいの計算能力が必要であり得るか、正確に予測することは困難であり得る。そのような予測不可能性を考慮すると、事業組織が自身の機械学習計算設備を構築することは、必ずしも賢明または実行可能ではない場合がある。
【０００３】
機械学習アルゴリズムから得られる結果の質は、モデルを訓練するために使用される経験的データが、データ内に表される異なる変数の間の重要な関係をどれだけうまく捕捉するか、及びこれらの関係が、どれくらい効果的かつ効率的に識別され得るかに左右され得る。機械学習を使用して解決される問題の性質に応じて、非常に大きなデータセットが、正確な予測、特に、比較的低頻度だが重大な事象の予測を行うことができるために、分析される必要があり得る。例えば、不正取引の数が一般的に取引の総数のごくわずかな部分である金融詐欺検出の用途において、取引を不正としてラベル付けするために使用され得る識別因子は、各々が数十またはさらには数百の変数を表す数百万の取引記録の分析を潜在的に必要とする可能性がある。生入力データセットサイズ、多数の潜在的に不完全もしくはエラーを含んでいる記録のクレンジングもしくは正規化に対する制約、及び／または生データの典型的サブセットを抽出する能力に対する制約はまた、機械学習技術の多くの潜在的受益者にとって克服が容易ではない障壁も意味する。多くの機械学習問題に関して、変換は、データがモデルを訓練するために効果的に使用され得る前に、様々な入力データ変数に対して適用される必要があり得る。一部の従来の機械学習環境において、そのような変換に適用するのに利用可能な機構は、最善ではない場合があり、例えば、類似した変換が時折、データセットの多くの異なる変数に１つ１つ適用される必要がある場合があり、多くの冗長かつエラーが起こりやすい作業を潜在的に必要とする。
【図面の簡単な説明】
【０００４】
【図１】少なくとも一部の実施形態に従った、機械学習サービスの様々な構成要素が実装され得るシステム環境例を例示する。
【図２】少なくとも一部の実施形態に従った、プロバイダネットワークの複数のネットワークにアクセス可能なサービスを使用して実装された機械学習サービスの例を例示する。
【図３】少なくとも一部の実施形態に従った、機械学習サービスのためのプロバイダネットワークの複数の可用性コンテナ及びセキュリティコンテナの使用の例を例示する。
【図４】少なくとも一部の実施形態に従った、機械学習サービスで生成され得る複数の処理計画及び対応するリソースセットの例を例示する。
【図５】少なくとも一部の実施形態に従った、機械学習サービスでのジョブの非同期スケジューリングの例を例示する。
【図６】少なくとも一部の実施形態に従った、機械学習サービスを使用して生成及び記憶され得る人工物例を例示する。
【図７】少なくとも一部の実施形態に従った、データソースをインスタンス化するためのクライアント要求に応答した統計の自動生成の例を例示する。
【図８】少なくとも一部の実施形態に従った、機械学習サービスでサポートされ得るいくつかのモデル使用モードを例示する。
【図９ａ】少なくとも一部の実施形態に従った、機械学習ジョブの非同期スケジューリングをサポートしている機械学習サービスで行われ得る動作の態様を例示する流れ図である。
【図９ｂ】少なくとも一部の実施形態に従った、機械学習ジョブの非同期スケジューリングをサポートしている機械学習サービスで行われ得る動作の態様を例示する流れ図である。
【図１０ａ】少なくとも一部の実施形態に従った、一組の冪等プログラム的インターフェースがサポートされている機械学習サービスで行われ得る動作の態様を例示する流れ図である。
【図１０ｂ】少なくとも一部の実施形態に従った、異なる問題領域に関するベストプラクティスについての情報を収集及び発信するために機械学習サービスで行われ得る動作の態様を例示する流れ図である。
【図１１】少なくとも一部の実施形態に従った、機械学習サービスでのデータ変換のためのレシピの使用と関連付けられた対話の例を例示する。
【図１２】少なくとも一部の実施形態に従った、レシピのセクション例を例示する。
【図１３】少なくとも一部の実施形態に従った、レシピ構文を定義するために使用され得る文法例を例示する。
【図１４】少なくとも一部の実施形態に従った、レシピの一部分のために生成され得る抽象構文木の例を例示する。
【図１５】少なくとも一部の実施形態に従った、機械学習サービスから利用可能な領域固有レシピの検索のために使用され得るプログラム的インターフェースの例を例示する。
【図１６】少なくとも一部の実施形態に従った、クライアントの代わりにレシピ変換のためのパラメータ設定の範囲を自動的に調査し、そのような調査の結果に基づいて許容可能な、または推奨されるパラメータ設定を選択する機械学習サービスの例を例示する。
【図１７】少なくとも一部の実施形態に従った、データセット変換のための再使用可能なレシピをサポートしている機械学習サービスで行われ得る動作の態様を例示する流れ図である。
【図１８】少なくとも一部の実施形態に従った、機械学習サービスによる大きな入力データセットに効率的なインメモリフィルタリング動作を行うための手順例を例示する。
【図１９】少なくとも一部の実施形態に従った、機械学習データセットへのフィルタリング動作シーケンスのために使用されるチャンクサイズを変化させることに関連したトレードオフを例示する。
【図２０ａ】少なくとも一部の実施形態に従った、入れ換え、続いて分割を含む、チャンクレベルフィルタリング動作のシーケンス例を例示する。
【図２０ｂ】少なくとも一部の実施形態に従った、チャンクレベルフィルタリング及びチャンク内フィルタリングを含む、インメモリフィルタリング動作のシーケンス例を例示する。
【図２１】少なくとも一部の実施形態に従った、データセットのインメモリサンプリングの代替手法の例を例示する。
【図２２】少なくとも一部の実施形態に従った、観測記録境界の位置に基づいてチャンク境界を判定する例を例示する。
【図２３】少なくとも一部の実施形態に従った、様々なデータソース型のうちのいずれかからのデータ記録の抽出のための要求に応答して機械学習サービスでスケジュールされ得るジョブの例を例示する。
【図２４】少なくとも一部の実施形態に従った、機械学習サービスによって実装されたＩ／Ｏ（入力／出力）ライブラリのプログラム的インターフェースを使用してクライアントによって提出され得る、記録検索要求の構成要素例を例示する。
【図２５】少なくとも一部の実施形態に従った、大きな入力データセットへのインメモリフィルタリング動作シーケンスのためのＩ／Ｏライブラリを実装する機械学習サービスで行われ得る動作の態様を例示する流れ図である。
【図２６】少なくとも一部の実施形態に従った、機械学習モデルによって立てられた予測の質を改善するために使用され得る反復手順の例を例示する。
【図２７】少なくとも一部の実施形態に従った、機械学習モデルの交差検証のために使用され得るデータセット分割の例を例示する。
【図２８】少なくとも一部の実施形態に従った、擬似乱数のシーケンスを使用して行われ得る交差検証のための入力データセットの整合的チャンクレベル分割の例を例示する。
【図２９】少なくとも一部の実施形態に従った、擬似乱数発生器の不適切な再設定の結果として起こり得る入力データセットの不整合的チャンクレベル分割の例を例示する。
【図３０】少なくとも一部の実施形態に従った、スケジューリング関連の訓練ジョブと評価ジョブとの組のタイムラインの例を例示する。
【図３１】少なくとも一部の実施形態に従った、クライアント要求に応答して整合性メタデータが機械学習サービスで生成されるシステムの例を例示する。
【図３２】少なくとも一部の実施形態に従った、機械学習モデルの訓練及び評価の反復のための要求に応答して、機械学習サービスで行われ得る動作の態様を例示する流れ図である。
【図３３】少なくとも一部の実施形態に従った、機械学習サービスにおける予測のために生成され得る決定木の例を例示する。
【図３４】少なくとも一部の実施形態に従った、機械学習モデルのための訓練段階の木構築パスの間に、永続的記憶装置の深さ優先順に決定木ノードの表現を記憶する例を例示する。
【図３５】少なくとも一部の実施形態に従った、決定木のノードのために生成され得る予測有用性分配情報の例を例示する。
【図３６】少なくとも一部の実施形態に従った、実行時間メモリフットプリント目標と累積予測有用性との組み合わせに少なくとも部分的に基づいた決定木の枝刈りの例を例示する。
【図３７】少なくとも一部の実施形態に従った、予測時間変動目標に少なくとも部分的に基づいた決定木の枝刈りの例を例示する。
【図３８】少なくとも一部の実施形態に従った、機械学習サービスで決定木の集合体を使用するモデルを訓練するために生成され得る複数のジョブの例を例示する。
【図３９】少なくとも一部の実施形態に従った、深さ優先順で永続的記憶装置に記憶された決定木を生成及び枝刈りするために機械学習サービスで行われ得る動作の態様を例示する流れ図である。
【図４０】少なくとも一部の実施形態に従った、候補特徴処理変換の費用及び利点の分析に基づいて、クライアントのための特徴処理提案を生成するように構成された機械学習サービスの例を例示する。
【図４１】少なくとも一部の実施形態に従った、測定された予測速度及び予測の質に基づいて、特徴処理セット形態いくつかの代替手段の選択の例を例示する。
【図４２】少なくとも一部の実施形態に従った、クライアントと機械学習サービスの特徴処理マネージャとの間の対話の例を例示する。
【図４３】少なくとも一部の実施形態に従った、ランダム選択を使用した候補特徴処理変換の枝刈りの例を例示する。
【図４４】少なくとも一部の実施形態に従った、候補特徴処理変換の推奨されるセットを識別するための貪欲法の例を例示する。
【図４５】少なくとも一部の実施形態に従った、モデルが、第１の組の候補処理済み変数を使用して訓練され、評価される特徴処理最適化技法の第１の段階の例を例示する。
【図４６】少なくとも一部の実施形態に従った、様々な処理済み変数の予測の質への影響を判定するために、変更された評価データセットを使用してモデルが再評価される特徴処理最適化技法の後続の段階の例を例示する。
【図４７】少なくとも一部の実施形態に従った、予測実行時間費用への処理済み変数の使用の影響を判定するために、変更された一組の処理済み変数を使用してモデルが再訓練される特徴処理最適化技法の別の段階例を例示する。
【図４８】少なくとも一部の実施形態に従った、質に対する実行時間費用トレードオフに基づいて特徴処理変換を推奨する、機械学習サービスで行われ得る動作の態様を例示する流れ図である。
【図４９】クライアントが少なくとも一部の実施形態に従った、様々な機械学習モデル実行の状態を見ることを可能にし得るプログラム的ダッシュボードインターフェースの例である。
【図５０】少なくとも一部の実施形態に従った、線形予測モデルを生成し、線形予測モデルを使用するための手順例を例示する。
【図５１】少なくとも一部の実施形態に従った、モデルを訓練するために使用される機械学習サーバのメモリ容量が、パラメータベクトルサイズへの制約になり得るシナリオ例を例示する。
【図５２】少なくとも一部の実施形態に従った、それぞれのパラメータ値が訓練の間パラメータベクトルに記憶される特徴のサブセットが、枝刈り被害者（ｖｉｃｔｉｍ）として選択され得る技法を例示する。
【図５３】少なくとも一部の実施形態に従った、線形モデルの訓練段階の反復を学習するために使用される観測記録が、機械学習サービスにストリーミング配信され得るシステムを例示する。
【図５４】少なくとも一部の実施形態に従った、作動条件の検出に応答して、訓練中のメモリ消費を低減するために１つまたは複数の特徴に対応するパラメータがパラメータベクトルから枝刈りされ得る、機械学習サービスで行われ得る動作の態様を例示する流れ図である。
【図５５】少なくとも一部の実施形態に従った、特徴に割り当てられた重みの絶対値の分位境界推定値を得るために使用され得る単一パス技法を例示する。
【図５６】少なくとも一部の実施形態に従った、分位ビニング変換を使用して、生入力変数と機械学習モデルの予測目標変数との間の非線形の関係を捕捉する例を例示する。
【図５７】少なくとも一部の実施形態に従った、機械学習サービスでモデルの訓練段階の間に生成され得る同時ビニング計画の例を例示する。
【図５８】少なくとも一部の実施形態に従った、機械学習サービスに実装され得る同時多変数分位ビニング変換の例を例示する。
【図５９】少なくとも一部の実施形態に従った、機械学習サービスで同時ビニング動作を表すために使用され得るレシピの例を例示する。
【図６０】クライアントが、機械学習サービスのプログラム的インターフェースを利用して、同時分位ビニングの使用に関するクライアントの好みを示し得るシステムの例を例示する。
【図６１】少なくとも一部の実施形態に従った、同時分位ビニング変換が実装された機械学習サービスで行われ得る動作の態様を例示する流れ図である。
【図６２】少なくとも一部の実施形態に従った、機械学習サービスが、クライアントが様々な予測の質メトリック目標間のトレードオフを調査し、モデル実行結果を解釈するために使用することができる設定を変更することを可能にする、対話型グラフィカルインターフェースを実装したシステム環境例を例示する。
【図６３】少なくとも一部の実施形態に従った、対話型グラフィカルインターフェースを介して提供され得る二項分類モデルの評価実行の結果の表示例を例示する。
【図６４ａ】少なくとも一部の実施形態に従った、対話型グラフィカルインターフェースの特定の制御を介してクライアントによって示された予測解釈閾値の変更の、一組のモデルの品質メトリックへの影響を総じて例示する。
【図６４ｂ】少なくとも一部の実施形態に従った、対話型グラフィカルインターフェースの特定の制御を介してクライアントによって示された予測解釈閾値の変更の、一組のモデルの品質メトリックへの影響を総じて例示する。
【図６５】少なくとも一部の実施形態に従った、それぞれの制御装置が対話型グラフィカルインターフェースに含まれ得る機械学習モデルの評価実行に関する詳細なメトリックの例を例示する。
【図６６】少なくとも一部の実施形態に従った、分類ラベルを変更し、かつ出力変数値に基づいて選択された観測記録の詳細を見るために使用され得る対話型グラフィカルインターフェースの要素の例を例示する。
【図６７】少なくとも一部の実施形態に従った、対話型グラフィカルインターフェースを介して提供され得る多重分類モデルの評価実行の結果の表示例を例示する。
【図６８】少なくとも一部の実施形態に従った、対話型グラフィカルインターフェースを介して提供され得る回帰モデルの評価実行の結果の表示例を例示する。
【図６９】少なくとも一部の実施形態に従った、クライアントが調査評価結果に基づいて予測解釈設定を変更することを可能にする、対話型グラフィカルインターフェースを実装した機械学習サービスで行われ得る動作の態様を例示する流れ図である。
【図７０】少なくとも一部の実施形態に従った、機械学習データセットの空間効率の良い表現を利用して、１つのデータセットが機械学習サービスに別のデータセットの重複観測記録を含む可能性が高いかどうかを判定し得る重複検出器例を例示する。
【図７１ａ−７１ｂ】少なくとも一部の実施形態に従った、機械学習サービスでの重複観測記録の確率的検出のためのブルームフィルタの使用の例を総じて例示する。
【図７２】少なくとも一部の実施形態に従った、機械学習サービスの重複検出器で使用され得る代替的重複定義の例を例示する。
【図７３】少なくとも一部の実施形態に従った、機械学習サービスでの大きなデータセットのための重複検出の並列化手法の例を例示する。
【図７４】少なくとも一部の実施形態に従った、所与の機械学習データセット内の確率的重複検出の例を例示する。
【図７５】少なくとも一部の実施形態に従った、観測記録の重複検出を実装した機械学習サービスで行われ得る動作の態様を例示する流れ図である。
【図７６】少なくとも一部の実施形態において使用され得るコンピューティングデバイス例を例示する、ブロック図である。
【０００５】
実施形態が、いくつかの実施形態及び例示の図面の例として本明細書に記載されている一方で、当業者は、実施形態が記載される実施形態または図面に限定されないことを認識するであろう。図面及び詳細な説明は、開示された特定の形態に実施形態を限定するものではないことが理解されるべきであり、それとは反対に、その意図は、添付の特許請求の範囲によって定められる趣旨及び範囲にある全ての修正、均等物、及び代替物を包含するものである。本明細書で使用する見出しは、構成上の目的のためだけにあり、説明または特許請求の範囲を制限するために使用されることを意味しない。本出願全体に使用される場合、「ｍａｙ」という語は、必須の意味（すなわち、「しなければならない」という意味）よりもむしろ、許容的な意味（すなわち、それを行う可能性があるという意味）で使用される。同様に、「ｉｎｃｌｕｄｅ」、「ｉｎｃｌｕｄｉｎｇ」、及び「ｉｎｃｌｕｄｅｓ」という語は、「を含むがこれらに限定されない」を意味する。
【発明を実施するための形態】
【０００６】
多数のユーザ、ならびに多岐にわたるアルゴリズム及び問題の大きさをサポートするように設計された個別化可能な使用が容易な機械学習サービス（ＭＬＳ）のための方法及び装置の様々な実施形態が記載される。一実施形態において、ユーザがモデルの調整、または高度な統計もしくは人工知能技術の学習に多くの時間及び労力を費やす必要なしに、機械学習のベストプラクティスを比較的早く使用開始するように専門家ではないユーザを誘導するいくつかのＭＬＳプログラム的インターフェース（例えば、アプリケーションプログラミングインターフェース（ＡＰＩ））は、本サービスによって定義されても良い。インターフェースは、例えば、機械学習モデルを構築、訓練、及び使用するために使用される手順の様々な態様のための規定の設定またはパラメータに、非専門家が依存することを可能にしても良く、それらの規定は、類似の種類の機械学習問題に対処している他の実務者が積み重ねてきた経験から得られる。同時に、熟練ユーザは、入力記録取り扱い、特徴処理、モデルの構築、実行、及び評価等の様々な種類の機械学習タスクのために熟練ユーザが使用することを望むパラメータまたは設定を個別化しても良い。少なくとも一部の実施形態において、様々な種類の機械学習タスクを実装した定義済みライブラリの使用に加えて、または、その代わりに、ＭＬＳクライアントは、例えば、自身の個別化された関数を本サービスに登録することにより、本サービスの組み込み能力を拡張することができても良い。そのような個別化されたモジュールまたは関数を実装したクライアントのビジネスニーズまたは目標に応じて、一部の事例では、モジュールが、本サービスの他のユーザと共有されても良い一方で、他の事例では、個別化されたモジュールの使用は、個別化されたモジュールの実装者／所有者に制限されても良い。
【０００７】
一部の実施形態において、ＭＬＳユーザがデータセットに適用させることを望む様々な特徴処理行程をユーザが示すことを可能にする、比較的簡単なレシピ言語をサポートしても良い。そのようなレシピは、テキスト形式で指定され、次いで必要に応じて、異なるリソースセットの異なるデータセットで再使用することができる実行可能な形式にコンパイルされても良い。少なくとも一部の実施形態において、ＭＬＳは、極秘データのための高レベルの隔離及び機密保護を依然として確保すると同時に、テラバイト規模またはペタバイト規模のデータセット及びそれに対応する大きな計算必要条件に関連する機械学習問題が、比較的明白な様式で対処されることを可能にする、世界中に分布している数百、数千のコンピューティングデバイス及び記憶装置を有する多数のデータセンタを備えるプロバイダネットワークに実装されても良い。少なくとも一部の実施形態において、ウェブサービスインターフェース、データベースサービス、仮想コンピューティングサービス、並列コンピューティングサービス、高性能コンピューティングサービス、負荷分散サービス等を介してアクセス可能な恣意的に大きなデータオブジェクトをサポートしているストレージサービス等のプロバイダネットワークの既存のサービスが、様々な機械学習タスクのために使用されても良い。高可用性及びデータ耐久性必要条件を有するＭＬＳクライアントに関して、機械学習データ（例えば、生入力データ、変換／操作された入力データ、中間結果、もしくは最終結果）及び／またはモデルは、以下に記載されるように異なる地理的位置または可用性コンテナにわたって複製されても良い。ＭＬＳクライアントのデータ機密保護への要求を満たすために、例えばクライアントの機械学習タスクがプロバイダネットワークのサービスの一部のために典型的に使用され得るマルチテナント手法の代わりに、隔離されたシングルテナント様式で実行される一部の実施形態において、ユーザ定義関数または第三者関数を実装した選択されたデータセット、モデル、またはコードは、プロバイダネットワークによって定義されたセキュリティコンテナに制限されても良い。「ＭＬＳ制御プレーン」という用語は、本明細書において、ＭＬＳのクライアントの代わりに様々な種類の機械学習機能性を実装し、かつ、例えばリソースの適切なセットをクライアントの要求を満たすように設定することを確実にする、不具合を検出し回復する、請求書を発行する等の、外部ＭＬＳクライアントに必ずしも見えない管理タスクに関与するハードウェアエンティティ及び／またはソフトウェアエンティティのコレクションを指すのに使用され得る。「ＭＬＳデータプレーン」という用語は、クライアントによって要求された動作のために使用される入力データの処理、転送、及び記憶、ならびにクライアントによって要求された動作の結果として生成された出力データの処理、転送、及び記憶のために使用される経路及びリソースを指し得る。
【０００８】
一部の実施形態に従って、機械学習タスクに関連するいくつかの異なる種類のエンティティが、ＭＬＳプログラム的インターフェースを介して、生成、変更、読み出し、実行、及び／または問い合わせ／検索されても良い。一実施形態においてサポートされているエンティティタイプには、数ある中でも、データソース（例えば、機械学習のための入力記録を得ることができる位置もしくはオブジェクトの記述子）、入力データを分析することによって生成された統計のセット、レシピ（例えば、モデルを訓練するための入力データに適用される特徴処理変換の記述子）、処理計画（例えば、様々な機械学習タスクを実行するためのテンプレート）、（予測子とも称され得る）モデル、レシピ及び／もしくはモデルのために使用されるパラメータセット、予測もしくは評価等のモデル実行結果、ストリーミング配信もしくはリアルタイムデータで使用されるモデルのためのオンラインアクセスポイント、及び／またはエイリアス（例えば、以下に記載されるように、使用のために「発行された」モデルバージョンへのポインタ）が挙げられ得る。これらのエンティティタイプのインスタンスは、本明細書で機械学習人工物と称されることもあり、例えば、特定のレシピまたは特定のモデルが各々、人工物と見なされることもある。エンティティタイプの各々は、以下でさらに詳細に論じられる。
【０００９】
ＭＬＳプログラム的インターフェースは、ユーザが所与の機械学習ワークフローのいくつかの関連タスク、例えば、データソースからの記録の抽出、記録の統計の生成、特徴処理、モデル訓練、及び予測のためのタスク等のためのそれぞれの要求を提出することを可能にしても良い。プログラム的インターフェース（例えばＡＰＩ）の所与の呼び出しは、サポートされているタイプのエンティティの１つまたは複数のインスタンスの１つまたは複数の動作またはタスクのための要求に対応しても良い。いくつかのタスク（及びその対応するＡＰＩ）は、複数の異なるエンティティタイプを伴っても良く、例えば、データソースの作成を要求するＡＰＩは、データソースエンティティインスタンス及び統計エンティティインスタンスの生成をもたらしても良い。所与のワークフローのタスクの一部は、他のタスクの結果に依存しても良い。データの量、及び／または行われる処理の性質によって、一部のタスクは、完了するのに数時間、またはさらには数日間かかり得る。少なくとも一部の実施形態において、非同期手法が、タスクをスケジューリングするためにとられても良く、ここでは、ＭＬＳクライアントは、先に提出されたタスクが完了するのを待たずに、先に提出されたタスクの出力に依存する追加のタスクを提出することができる。例えば、クライアントは、たとえＴ２の実行が少なくとも部分的にＴ１の結果に依存し、Ｔ３の実行が少なくとも部分的にＴ２の結果に依存するとしても、先に提出されたタスクＴ１が完了する前に、タスクＴ２及びＴ３のためのそれぞれの要求を提出しても良い。そのような実施形態において、ＭＬＳが、（いずれかの依存関係が存在する場合）その依存関係が満たされたときにのみ、所与のタスクが、実行に対してスケジュールされることを確実にすることを担当しても良い。
【００１０】
ジョブオブジェクトの待ち行列またはコレクションは、一部の実装例において、要求されたタスクの内部表現を記憶するために使用されても良い。本明細書で使用される場合、「タスク」という用語が、クライアントからの所与の要求に対応する一組の論理動作を指す一方で、「ジョブ」という用語は、ＭＬＳ内のタスクの内部表現を指す。一部の実施形態において、所与のジョブオブジェクトは、特定のプログラム的インターフェースのクライアントの呼び出し、及び他のジョブへの依存性の結果として行われる動作を表しても良い。ＭＬＳは、対応する動作が開始される前に所与のジョブの依存関係が満たされていることを確実にすることに関与しても良い。ＭＬＳはまた、そのような実施形態において、各ジョブの処理計画の生成、その計画のための適切な組のリソース（例えば、ＣＰＵ／コア、記憶装置、またはメモリ）の識別、計画の実行のスケジューリング、結果の収集、適切な提供先／記憶先への結果の提供／記憶、及び少なくとも一部の事例では、状態の最新情報または要求元クライアントへの応答の提供にも関与しても良い。ＭＬＳはまた、一部の実施形態において、１つのクライアントのジョブの実行が他のクライアントのジョブの実行に影響を与えないか、または干渉しないことを確実にすることにも関与しても良い。一部の実施形態において、タスク間の部分的依存性は、例えば、タスクのシーケンス（Ｔ１、Ｔ２、Ｔ３）でサポートされても良く、Ｔ２は、Ｔ１の部分的完了に依存しても良く、したがって、Ｔ２は、Ｔ１が完了する前にスケジュールされても良い。例えば、Ｔ１は、統計計算の２つの段階またはパスＰ１及びＰ２を含んでも良く、Ｔ２は、段階Ｐ２が完了するのを待たずに、段階Ｐ１が完了したらすぐに実行することができ得る。一部の事例では、Ｔ１（例えば、段階Ｐ１の間に計算された少なくともいくらかの統計）の部分的結果は、タスク全てが完了することを待つ代わりに、部分的結果が利用可能になったらすぐに要求元クライアントに提供されても良い。一部の実装例において、ＭＬＳの複数のクライアントからの要求に対応するジョブを含む単一の共有待ち行列が、使用されても良い一方で、他の実装例において、それぞれの待ち行列は、異なるクライアントのために使用されても良い。一部の実装例において、オブジェクトコレクションをモデル化するために使用され得るリストまたは他のデータ構造は、待ち行列の代わりか、または待ち行列に加えて、スケジュールされるジョブのコンテナとして使用されても良い。一部の実施形態において、クライアントからの単一のＡＰＩ要求は、ＭＬＳによるいくつかの異なるジョブオブジェクトの生成をもたらしても良い。少なくとも１つの実施形態において、全てのクライアントＡＰＩ要求がジョブを使用して実行され得るわけではなく、例えば、比較的短いか、または軽いタスクは、ジョブ作成及び非同期ジョブスケジューリングのオーバーヘッドを被ることなしに、対応する要求に関して同期的に行われても良い。
【００１１】
一部の実施形態において、ＭＬＳによって実行されたＡＰＩは、クライアントが、サポートされている様々なエンティティタイプの少なくとも一部のインスタンスの作成、インスタンスの属性の問い合わせ、インスタンスの読み出し、更新／変更、検索、または削除するための要求を提出することを可能にしても良い。例えば、「ＤａｔａＳｏｕｒｃｅ」というエンティティタイプに関して、「ｃｒｅａｔｅＤａｔａＳｏｕｒｃｅ」、（データソースの属性の対を得るための）「ｄｅｓｃｒｉｂｅＤａｔａＳｏｕｒｃｅ」、「ｕｐｄａｔｅＤａｔａＳｏｕｒｃｅ」、「ｓｅａｒｃｈＦｏｒＤａｔａＳｏｕｒｃｅ」、及び「ｄｅｌｅｔｅＤａｔａＳｏｕｒｃｅ」に類似したそれぞれのＡＰＩは、ＭＬＳによってサポートされても良い。ＡＰＩの同様のセットが、レシピ、モデル等のためにサポートされても良い。一部のエンティティタイプは、様々な実施形態において、「ｅｘｅｃｕｔｅＭｏｄｅｌ」または「ｅｘｅｃｕｔｅＲｅｃｉｐｅ」等のエンティティを実行、すなわち走らせるためのＡＰＩも有しても良い。ＡＰＩは、大部分は、（例えば、所与のＡＰＩを使用するための正しい方法が、非専門家にとって明らかであるように）学習及び自己文書化が容易であるように、より複雑なタスクの実施が困難になりすぎることなく、大部分の共通タスクの実施を簡単にすることに重点を置いて設計されることがある。少なくとも一部の実施形態において、ＡＰＩの複数のバージョン（例えば、１つのバージョンは、（ネットワーキングスタックのアプリケーションレベルの）ワイヤプロトコルのため、別のバージョンはＪａｖａ（商標）ライブラリまたはＳＤＫ（ソフトウェア開発キット）として、別のバージョンはＰｙｔｈｏｎライブラリとして、以下同様）が、サポートされても良い。ＡＰＩ要求は、様々な実装例において、ＨＴＴＰ（Ｈｙｐｅｒｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）、ＨＴＴＰＳ（高安全性ＨＴＴＰ）、Ｊａｖａｓｃｒｉｐｔ、またはＸＭＬ等を使用して、クライアントによって提出されても良い。
【００１２】
一部の実施形態において、一部の機械学習モデルは、例えば、モデル開発者またはデータ科学者のグループによってＭＬＳ  ＡＰＩを使用して作成及び訓練され、次いでユーザの別のコミュニティによる使用のために発行されても良い。モデルの作成者だけでなく、より幅広い対象ユーザによる使用のためのモデルの発行を容易にするために、より幅広い対象ユーザの未熟な構成員によるモデルへの不適切である可能性がある変更を防ぐ一方で、そのような実施形態において、「エイリアス」エンティティタイプがサポートされても良い。一実施形態において、エイリアスは、変更不能な名前（例えば、「ＳｅｎｔｉｍｅｎｔＡｎａｌｙｓｉｓＭｏｄｅｌ１」）、ならびにＭＬＳ人工物レポジトリ内に既に作成及び記憶されているモデルへのポインタ（例えば、「ｓａｍＭｏｄｅｌ−２３ａｄｆ−２０１３−１２−１３−０８−０６−０１」、ＭＬＳによってモデルのために生成された内部識別子）を含んでも良い。異なるセットのエイリアスへの許可は、エイリアスが実行のために利用可能にされているユーザに与えられるよりもむしろ、モデル開発者に与えられても良い。例えば、一実装例において、ビジネスアナリストグループの構成員が、モデルのエイリアス名を使用してモデルを実行させることを許可されても良いが、ポインタを変更することを許可されなくても良い一方で、モデル開発者は、ポインタを変更し、及び／または基礎となるモデルを変更することを許可されても良い。ビジネスアナリストのために、エイリアスを介して公開された機械学習モデルが、様々な入力データセットの有益な予測を提供することが見込まれる、専門家によって既に検証された「ブラックボックス」ツールを表しても良い。ビジネスアナリストは、そのようなモデルの内部作業に、特に関心がない場合がある。モデル開発者は、様々なアルゴリズム、パラメータ、及び／または入力データセットを用いて実験し続けて、基礎となるモデルの改善されたバージョンを得ても良く、ビジネスアナリストによって得られた予測の質を改善するために、ポインタが改良されたバージョンを指すように変更することができても良い。少なくとも一部の実施形態において、エイリアスユーザを基礎となるモデルへの変更から隔離するために、ＭＬＳは、（ａ）エイリアスがうまく訓練されたモデルのみを指すことができ、（ｂ）エイリアスポインタが変更されたとき、元のモデル及び新しいモデルの両方（すなわち、古いポインタ及び新しいポインタによって指されているそれぞれのモデル）が同じ種類の入力を使用し、同じ種類の予測（例えば、二項分類、多クラス分類、または回帰）を提供することを保証しても良い。一部の実装例において、所与のモデルは、エイリアスがモデルのために作成された場合、それ自体が変更不可と指定されても良く、例えば、そのような実装例において、ポインタ「ｓａｍＭｏｄｅｌ−２３ａｄｆ−２０１３−１２−１３−０８−０６−０１」によって参照されたモデルは、エイリアスが作成された後にそのモデルの開発者によってさえも、もはや変更することができなくても良い。モデルの開発及びモデルの使用に関する役割及び能力のそのような明確な分離は、単に事業組織内のモデルを開発するのに十分���熟練した人たちよりも多くの対象ユーザが機械学習モデルから利益を享受することを可能にし得る。
【００１３】
いくつかの選択肢が、所与のジョブに対応する動作がＭＬＳサーバにマッピングされる方式に関して利用可能であって良い。例えば、より高い性能を達成するために、多くの異なるサーバ間の所与のジョブのために必要な作業を区分することが可能であっても良い。一部の実施形態において、ジョブのための処理計画の開発の一部として、ＭＬＳは、ジョブのための作業負荷分配戦略を選択しても良い。様々な実施形態において、作業負荷分配のために決定されたパラメータは、ジョブの性質に基づいて異なっても良い。そのような要因には、例えば、（ａ）処理のパスの数の判定、（ｂ）並列化レベルの判定（例えば、Ｍａｐ−Ｒｅｄｕｃｅ技術を使用して実行されるジョブの場合、「マッパー」及び「レデューサ」の数）、（ｃ）ジョブを終了するために使用される収束基準の判定、（ｄ）ジョブの間に生成された中間データの目標耐久性レベルの判定、または（ｅ）ジョブのリソース容量限界の判定（例えば、ＭＬＳサーバプール内で利用可能なサーバの数、もしくはクライアントの予算限度額に基づいてジョブに割り当てられ得るサーバの最大数）、が含まれ得る。作業負荷戦略が選択された後、使用されるリソースの実際のセットが、戦略に従って識別されても良く、ジョブの動作は、識別されたリソースにスケジュールされても良い。一部の実施形態において、計算サーバ及び／またはストレージサーバのプールは、ＭＬＳのために事前に構成されても良く、所与のジョブのためのリソースは、そのようなプールから選択されても良い。他の実施形態において、リソースは、自身に代わってジョブを実行させたクライアントに割り当てられたプールから選択されても良く、例えば、クライアントは、ＡＰＩ要求を提出する前にプロバイダネットワークのコンピューティングサービスからリソースを取得しても良く、ジョブスケジューリングのために、取得したリソースの指標をＭＬＳに提供しても良い。クライアント提供のコード（例えば、必ずしもＭＬＳによって徹底的に試験されていない、及び／またはＭＬＳのライブラリに含まれていないコード）が所与のジョブのために使用されている場合、一部の実施形態において、クライアントは、クライアント提供のコードを実行するあらゆる副作用が、他のクライアントに影響を与える可能性がある代わりに、クライアント自体のリソースに制限され得るように、ジョブのために使用されるリソースを取得する必要があっても良い。
【００１４】
システム環境例
図１は、少なくとも一部の実施形態に従った、機械学習サービス（ＭＬＳ）の様々な構成要素が実装され得るシステム環境例を例示する。システム１００内で、ＭＬＳは、様々な機械学習タスクまたは動作のための要求１１１を提出するために、クライアント１６４（例えば、ＭＬＳの顧客によって所有されているか、またはＭＬＳの顧客に割り当てられたハードウェアもしくはソフトウェアエンティティ）によって使用され得る一組のプログラム的インターフェース１６１（例えば、ＡＰＩ、コマンドラインツール、ウェブページ、もしくはスタンドアロンＧＵＩ）を実装しても良い。ＭＬＳの管理または制御プレーン部分は、クライアント要求１１１を承認し、矢印１１２によって示されるように対応するジョブオブジェクトをＭＬＳジョブ待ち行列１４２内に挿入するＭＬＳ要求ハンドラ１８０を含んでも良い。一般に、ＭＬＳの制御プレーンは、（要求ハンドラ、作業負荷分配戦略セレクタ、１つまたは複数のジョブスケジューラ、メトリックスコレクタ、他のサービスとのインターフェースとして機能するモジュールを含む）複数の構成要素を含んでも良く、これはＭＬＳマネージャとも総じて称され得る。ＭＬＳのデータプレーンは、例えば、少なくとも、プール（複数可）１８５のサーバのサブセット、入力データセットを記憶するために使用される記憶装置、中間結果または最終結果（これらの一部は、ＭＬＳ人工物レポジトリの一部であり得る）、ならびにクライアント入力データ及び結果を転送するために使用されるネットワーク経路を含んでも良い。
【００１５】
先に言及したように、各ジョブオブジェクトは、プログラム的インターフェース１６１の呼び出しの結果として行われる１つまたは複数の動作を指示しても良く、一部の事例では、所与のジョブのスケジューリングは、少なくとも先に生成されたジョブの動作のサブセットの正常完了に依存しても良い。少なくとも一部の実装例において、ジョブ待ち行列１４２は、ジョブが待ち行列から削除されるためには所与のジョブの依存性必要条件が満たされなければならないというさらなる制約付きで、先入れ先出し（ＦＩＦＯ）待ち行列として管理されても良い。一部の実施形態では、いくつかの異なるクライアントの代わりに作成されたジョブが、単一の待ち行列内に入れられても良い一方で、他の実施形態では、複数の待ち行列が、維持されても良い（例えば、使用されるプロバイダネットワークの各データセンタ内に１つの待ち行列、または１人のＭＬＳ顧客当たり１つの待ち行列）。描写される実施形態において、要求１１１の提出に関して非同期的に、依存性必要条件が満たされた次のジョブは、矢印１１３によって示されるように、ジョブ待ち行列１４２から削除されても良く、作業負荷分配戦略を含む処理計画は、ジョブのために識別されても良い。先に言及したようにＭＬＳ制御プレーンの構成要素でもあり得る作業負荷分配戦略層１７５は、ジョブのより低いレベルの動作が１つまたは複数の計算サーバ（例えば、プール１８５から選択されたサーバ）間で分配される方式、及び／またはジョブのために分析もしくは操作されたデータが、１つまたは複数の記憶装置もしくはサーバ間で分配される方式を判定しても良い。処理計画が生成され、ジョブのために利用されるリソースの適切なセットが識別された後、ジョブの動作が、リソースにスケジュールされても良い。一部の実施形態において、一部のジョブの結果は、矢印１４２によって示されるように、レポジトリ１２０内にＭＬＳ人工物として記憶されても良い。
【００１６】
少なくとも１つの実施形態において、一部の比較的単純な種類のクライアント要求１１１は、（矢印１４１によって示されるように）ＭＬＳ要求ハンドラ１８０による、ＭＬＳ人工物レポジトリ１２０内の対応する人工物の即時の生成、検索、記憶、または変更を生じても良い。したがって、ジョブ待ち行列１４２内へのジョブオブジェクトの挿入は、全ての種類のクライアント要求に対して必要でなくても良い。そのような実施形態において、例えば、既存のモデルのエイリアスの作成または削除は、新しいジョブの作成を必要としなくても良い。図１に示される実施形態において、クライアント１６４は、例えば、プログラム的インターフェース１６１を介して読み出し要求１１８を投入することによって、少なくともレポジトリ１２０内に記憶された人工物のサブセットを見ることができても良い。
【００１７】
クライアント要求１１１は、動作を行うために、ＭＬＳによって使用されても良い１つまたは複数のパラメータ、例えばデータソース定義１５０、特徴処理変換レシピ１５２、または特定の機械学習アルゴリズムのために使用されるパラメータ１５４を指示しても良い。一部の実施形態において、パラメータをそれぞれ表す人工物はまた、レポジトリ１２０内にも記憶されても良い。クライアント１６４からのＡＰＩ要求のシーケンスに対応しても良い一部の機械学習ワークフローは、矢印１１４によって示されるように、ＭＬＳの入力記録ハンドラ１６０による生データレポジトリ１３０（例えば、データソース定義１５０で指示されたレポジトリ）からの入力データ記録の抽出及びクレンジングを含んでも良い。ワークフローのこの第１の部分は、クライアント１６４からの特定のＡＰＩ呼び出しに応答して開始しても良く、プール１８５からの第１の組のリソースを使用して実行されても良い。入力記録ハンドラは、例えば、ＭＬＳのＩ／Ｏ（入力／出力）ライブラリに定義されている一組の関数に従って、データ記録の分割、データ記録のサンプリング等のタスクを行なっても良い。入力データは、例えば、文字列、数値データ型（例えば、実数または整数）、Ｂｏｏｌｅａｎ、２値データ型、カテゴリーデータ型、画像処理データ型、音声処理データ型、生物情報学データ型、Ｕｎｓｔｒｕｃｔｕｒｅｄ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｍａｎａｇｅｍｅｎｔアーキテクチャ（ＵＩＭＡ）に準拠しているデータ型等の構造化データ型等の様々なデータ型のうちのいずれかの変数を含むデータ記録を含んでも良い。少なくとも一部の実施形態において、ＭＬＳに到着する入力データは、暗号化または圧縮されても良く、入力データ記録が機械学習タスクのために使用され得る前に、ＭＬＳ入力データ取り扱い機が、解読または解凍を行う必要があっても良い。暗号化が使用される一部の実施形態において、ＭＬＳクライアントは、ＭＬＳがデータ記録を解読することが可能になるように、解読メタデータ（例えば、キー、パスワード、または他の証明書）をＭＬＳに提供する必要があっても良い。同様に、一部の実装例において、使用される圧縮技法の指標は、ＭＬＳが入力データ記録を適切に解凍することを可能にするために、クライアントによって提供されても良い。入力記録ハンドラによって生成された出力は、（矢印１１５によって示されるように）特徴プロセッサ１６２に供給されても良く、ここで、プール１８５からの別のセットのリソースを使用して、レシピ１５２に従って一組の変換動作が行われても良い１６２。様々な特徴処理手法のうちのいずれかが、問題領域に応じて使用されても良く、例えば、コンピュータビジョン問題のために典型的に使用されるレシピは、音声認識問題、自然言語処理等のために使用されるものとは異なっても良い。次いで、特徴処理変換の出力１１６が、プール１８５からのさらに別のセットのリソースを使用して、アルゴリズムパラメータ１５４に従って実行されても良い選択された機械学習アルゴリズム１６６のための入力として使用されても良い。例えば、ランダムフォレストアルゴリズム、ニューラルネットワークアルゴリズム、及び確率的勾配降下アルゴリズム等を含��多岐にわたる機械学習アルゴリズムは、ＭＬＳライブラリによってネイティブにサポートされても良い。少なくとも１つの実施形態において、ＭＬＳは、拡張可能に設計されても良く、例えば、クライアントは、入力記録取り扱い、特徴処理のために、またはＭＬＳによってネイティブにサポートされているものよりも、追加の機械学習アルゴリズムを実装するために、（ユーザ定義関数とも定義され得る）クライアントのモジュールを提供または登録しても良い。一部の実施形態において、機械学習ワークフローの中間結果（例えば、入力記録ハンドラによって生成された要約された統計）の一部は、ＭＬＳ人工物レポジトリ１２０に記憶されても良い。
【００１８】
図１に描写される実施形態において、ＭＬＳは、様々な機械学習タスクのベストプラクティスに関する情報を含む知識ベース１２２を管理しても良い。エントリは、例えば、サーバプール１８５から収集されたメトリック、クライアント１６４によって提供されたフィードバック等に基づいて、ＭＬＳの様々な制御プレーン構成要素によってベストプラクティスＫＢ１２２内に追加されても良い。クライアント１６４は、矢印１１７によって示されるように、プログラム的インターフェース１６１を介してＫＢエントリを検索及び取得することができても良く、エントリに含まれる情報を使用して、クライアントの要求提出のためのパラメータ（例えば、使用される特定のレシピまたはアルゴリズム）を選択しても良い。少なくとも一部の実施形態において、新しいＡＰＩは、様々な種類の機械学習実践に関して経時的に識別されたベストプラクティスに基づいて、ＭＬＳによって実装されても良い（またはＡＰＩパラメータの規定値が選択されても良い）。
【００１９】
図２は、少なくとも一部の実施形態に従った、プロバイダネットワークの複数のネットワークにアクセス可能なサービスを使用して実装された機械学習サービスの例を例示する。インターネット及び／または他のネットワークを介して、分布しているセットのクライアントにアクセス可能な１つまたは複数のサービス（例えば、様々な種類のマルチテナント及び／またはシングルテナントのクラウドベースコンピューティングサービスもしくはストレージサービス）を提供するために、企業または公共部門の団体等のエンティティによって設定されたネットワークは、本明細書において、プロバイダネットワークと称され得る。所与のプロバイダネットワークには、プロバイダによって提供されるインフラ及びサービスを実装、構成、及び分配するために必要とされる、多数のデータセンタが提供する様々なリソースプール、例えば、物理的及び／または仮想化コンピュータサーバ、記憶装置、ネットワーク機器等のコレクションが含まれ得る。少なくとも一部のプロバイダネットワーク及び対応するネットワークにアクセス可能なサービスは、それぞれ「パブリッククラウド」及び「パブリッククラウドサービス」と称され得る。大きなプロバイダネットワーク内で、一部のデータセンタは、他のものとは異なる市、州、または国に配置されても良く、一部の実施形態において、ＭＬＳ等の所与のサービスに割り当てられたリソースは、図３に関して以下にさらに詳細に記載されるように、所望のレベルの可用性、耐障害性、及び性能を達成するように、いくつかのそのような場所の間で分配されても良い。
【００２０】
図２に示される実施形態において、ＭＬＳは、プロバイダネットワーク２０２のストレージサービス２０２、コンピューティングサービス２５８、及びデータベースサービス２５５を利用する。描写される実施形態において、これらのサービスの少なくとも一部はまた、他の顧客（例えば、プロバイダネットワークで実行された他のサービス、及び／またはプロバイダネットワーク外の外部顧客）によって同時に使用されても良く、すなわち、本サービスは、ＭＬＳ使用に制限されなくても良い。ＭＬＳゲートウェイ２２２は、クライアント１６４によって外部ネットワーク２０６（例えば、インターネットの部分）上で提出されたクライアント要求２１０を受信するように設定されても良い。ＭＬＳゲートウェイ２２２は、例えば、ＭＬＳにアクセスするために使用され得る一組の公共的にアクセス可能なＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）アドレスを用いて構成されても良い。一部の実施形態において、クライアント要求は、ＭＬＳによって実行された表象状態転送（ＲＥＳＴ）ＡＰＩに従ってフォーマットされても良い。一実施形態において、ＭＬＳ顧客は、クライアントコンピューティングデバイスにローカルインストールするためのＳＤＫ（ソフトウェア開発キット）２０４を提供されても良く、要求２１０は、ＳＤＫに準拠して書かれたプログラム内から提出されても良い。様々な実施形態において、クライアントは、クライアントに割り当てられたコンピューティングサービス２６２の計算サーバ２６２からＭＬＳ関数にもアクセスしても良いか、または代わりにＭＬＳ関数にアクセスしても良い。
【００２１】
ストレージサービス２５２は、例えば、任意のサイズの非構造化データオブジェクトを作成及び操作するために使用することができる、ウェブサービスインターフェースを実装しても良い。データベースサービス２５５は、リレーショナルデータベースまたは非リレーショナルデータベースのいずれかを実装しても良い。描写される実施形態において、ストレージサービス２５２、及び／またはデータベースサービス２５５は、ＭＬＳに対して様々な役割を担っても良い。一部の実施形態において、ＭＬＳは、クライアントの機械学習タスクのために、プロバイダネットワーク境界内のデータソースを定義するようにクライアント１６４に要求しても良い。そのようなシナリオにおいて、クライアントは、まず外部データソース２２９からのデータを、ストレージサービス２５２によって管理されている内部データソース２３０Ａ、またはデータベースサービス２５５によって管理されている内部データソース２３０Ｂ等の、プロバイダネットワーク内の内部データソース内に転送しても良い。一部の事例では、ＭＬＳのクライアントは、他のアプリケーションのためにプロバイダネットワークサービスを既に使用している場合があり、ストレージサービス２５２またはデータベースサービス２５５に記憶されているこれらのアプリケーションの出力（例えば、ウェブサーバログまたはビデオファイル）うちの一部は、ＭＬＳワークフローのためのデータソースとして機能しても良い。
【００２２】
少なくとも一部のクライアント要求２１０に応答して、ＭＬＳ要求ハンドラ１８０は、先に論じられたように、ジョブ待ち行列１４２内の対応するジョブオブジェクトを生成及び記憶しても良い。図２に描写される実施形態において、ジョブ待ち行列１４２は、それ自体がデータベースサービス２５５に記憶されたデータベースオブジェクト（例えば、表）によって表されても良い。ジョブスケジューラ２７２は、例えば、ジョブの依存性必要条件が満たされたことを確認した後に、待ち行列１４２からジョブを取得し、コンピューティングサービス２５８から１つまたは複数のサーバ２６２を識別して、ジョブの計算動作を実行しても良い。計算のための入力データは、サーバ２６２によって内部データソースまたは外部データソースから読み出されても良い。様々な実施形態において、ＭＬＳ人工物レポジトリ２２０は、データベースサービス２５５内（及び／またはストレージサービス２５２内）に実装されても良い。一部の実施形態において、様々な機械学習タスクの中間結果または最終結果もまた、ストレージサービス２５２、及び／またはデータベースサービス２５５内に記憶されても良い。
【００２３】
一部の実施形態において、例えば、負荷分散サービス、並列コンピューティングサービス、自動スケーリングサービス、及び／または識別管理サービスを含む、プロバイダネットワークの他のサービスもまた、ＭＬＳによって使用されても良い。負荷分散サービスは、例えば、一組のサーバ２６２間で計算負荷を自動的に分散させるために使用されても良い。Ｍａｐ−ｒｅｄｕｃｅプログラミングモデルを実行する並列コンピューティングサービスが、いくつかの種類の機械学習タスクのために使用されても良い。自動スケーリングサービスは、特定の長期機械学習タスクに割り当てられたサーバを追加または削除するために使用されても良い。一部の実施形態において、クライアント要求の承認及び認証は、プロバイダネットワークの識別管理サービスの助けを借りて行われても良い。
【００２４】
一部の実施形態において、プロバイダネットワークは、複数の地理的地域内に編成されても良く、各地域は、「可用性ゾーン」とも称され得る１つまたは複数の可用性コンテナを含んでも良い。次いで、可用性コンテナは、所与の可用性コンテナ内のリソースが他の可用性コンテナ内の不具合から隔離されるような手段で、（例えば、電力関連装置、冷房装置、及び／または物理的機密保護構成要素等の独立したインフラ構成要素を用いて）設計された、１つまたは複数の異なる物理的施設またはデータセンタのうちのいくつかまたは全てを備えても良い。１つの可用性コンテナ内の不具合が、他のあらゆる可用性コンテナ内に不具合をもたらすことは予期されない場合があり、したがって、所与の物理的ホストまたはサーバの可用性プロファイルは、異なる可用性コンテナ内の他のホストまたはサーバの可用性プロファイルから独立していることが意図される。
【００２５】
一部の実施形態において、異なる可用性コンテナ間でのこれらの分配に加えて、プロバイダネットワークリソースもまた、異なるセキュリティコンテナ内へと区分されても良い。例えば、プロバイダネットワークの一般な様々な種類のサーバが、異なる顧客のアプリケーション間で共有されても良い一方で、一部のリソースは、単一の顧客による使用のために制限されても良い。機密保護ポリシーは、リソース（これらには、例えば、コンピューティングサービス、ストレージサービス、またはデータベースサービス等のいくつかの異なるプロバイダネットワークサービスによって管理されているリソースが含まれ得る）の指定されたグループが、指定された顧客または指定されたセットのクライアントによってのみ使用されることを確実にするように、定義されても良い。そのようなリソースのグループは、本明細書で、「セキュリティコンテナ」または「セキュリティグループ」と称され得る。
【００２６】
図３は、少なくとも一部の実施形態に従った、機械学習サービスのためのプロバイダネットワークの複数の可用性コンテナ及びセキュリティコンテナの使用の例を例示する。描写される実施形態において、プロバイダネットワーク３０２は、可用性コンテナ３６６Ａ、３６６Ｂ、及び３６６Ｃを備え、これらの各々は、１つまたは複数のデータセンタのうちのいくつかまたは全てを備えても良い。各可用性コンテナ３６６は、それ自体のＭＬＳ制御プレーン構成要素３４４のセット、例えば、可用性コンテナ３６６Ａ〜３６６Ｃそれぞれ内に制御プレーン構成要素３４４Ａ〜３４４Ｃを有する。所与の可用性コンテナ内の制御プレーン構成要素は、例えば、ＭＬＳ要求ハンドラのインスタンス、１つまたは複数のＭＬＳジョブ待ち行列、ジョブスケジューラ、作業負荷分配構成要素等を含んでも良い。異なる可用性コンテナ内の制御プレーン構成要素は、例えば、２つ以上のデータセンタのリソースを利用するタスクを調整するように、必要に応じて互いに通信しても良い。各可用性コンテナ３６６は、マルチテナント様式で使用されるＭＬＳサーバのそれぞれのプール３２２（例えば、３２２Ａ〜３２２Ｃ）を有する。プール３２２のサーバは各々、潜在的に異なるＭＬＳクライアントのために同時に様々なＭＬＳ動作を行うために使用されても良い。対照的に、より高いレベルの機密保護または隔離を必要とするＭＬＳタスクを実行するためには、単一のクライアントの作業負荷のためにのみ指定された、シングルテナントサーバプール３３０Ａ、３３０Ｂ、及び３３０Ｃ等のシングルテナントサーバプールが使用されても良い。プール３３０Ａ及び３３０Ｂが、セキュリティコンテナ３９０Ａに属する一方で、プール３３０Ｃは、セキュリティコンテナ３９０Ｂの一部である。セキュリティコンテナ３９０Ａが、（例えば、顧客提供の機械学習モジュール、または顧客によって指定された第三者モジュールを実行するために）顧客Ｃ１のために独占的に使用されても良い一方で、セキュリティコンテナ３９０Ｂは、描写される実施例において異なる顧客Ｃ２のために独占的に使用されても良い。
【００２７】
一部の実施形態において、ＭＬＳによって使用されるリースの少なくとも一部は、所与の可用性コンテナのＭＬＳリソースに影響を与える不具合にも関わらずＭＬＳタスクが継続することができるように、可用性コンテナ境界を横断する二重化グループ内に配置されても良い。例えば、一実施形態において、可用性コンテナ３６６Ａ内に少なくとも１つのサーバＳ１、及び可用性コンテナ３６６Ｂ内に少なくとも１つのサーバＳ２を備える二重化グループＲＧ１は、Ｓ１のＭＬＳ関連作業負荷をＳ２に障害迂回すること（またはその逆も同様）ができるように設定されても良い。長期ＭＬＳタスク（例えば、テラバイトまたはペタバイト規模のデータセットを伴うタスク）に関して、所与のＭＬＳジョブの状態は、障害迂回サーバが最初からもう一度やり直さなければならない代わりに、直近のチェックポイントから部分的に完了したタスクを再開することができるように、定期的に永続的記憶装置に（例えば、単一の可用性コンテナ不具合に耐えるようにも設計されたプロバイダネットワークのストレージサービスまたはデータベースサービスで）チェックポイント（ｃｈｅｃｋ−ｐｏｉｎｔ）されても良い。プロバイダネットワークのストレージサービス及び／またはデータベースサービスは、不具合の場合、データセットが必ずしもコピーされる必要がなくても良いように、例えば、消失訂正符号または他の複製法を使用して、非常に高いレベルのデータ耐久性を本質的に提供しても良い。一部の実施形態において、ＭＬＳのクライアントは、クライアントの入力データセット、中間データセット、人工物等の所望のデータ耐久性のレベル、及び所望の計算サーバ可用性のレベルを指定することができても良い。ＭＬＳ制御プレーンは、クライアント必要条件に基づいて、複数の可用性コンテナ内のリソースが所与のタスクまたは所与のクライアントのために使用されるべきかどうかを判定しても良い。様々なＭＬＳタスクのためにクライアントが支払わなければならない請求額は、タスクの耐久性及び可用性必要条件に少なくとも部分的に基づいても良い。一部の実施形態において、一部のクライアントは、ＭＬＳ制御プレーンに、所与の可用性コンテナまたは所与のセキュリティコンテナ内のリソースのみを使用することを望むと指示しても良い。ある特定の種類のタスクについて、ＭＬＳがタスクをプロバイダネットワークの単一の地理的地域内（またはさらには単一のデータセンタ内）に制限し得るほどに、データセット及び／または結果を長距離送信する費用が、非常に高額になる場合があるか、または送信のために必要な時間が、非常に長くなる場合がある。
【００２８】
処理計画
少なくとも一部の実施形態において、先に言及されたように、ＭＬＳ制御プレーンは、クライアント要求に応答して生成されたジョブオブジェクトの各々に対応する処理計画の生成に関与しても良い。次いで、各処理計画について、対応するセットのリソースは、例えば、計画のために選択された作業負荷分配戦略、利用可能なリソース等に基づいて計画を実行するように識別される必要があっても良い。図４は、少なくとも一部の実施形態に従った、機械学習サービスで生成され得る様々な種類の処理計画及び対応するリソースセットの例を例示する。
【００２９】
例示されるシナリオにおいて、ＭＬＳジョブ待ち行列１４２は、それぞれがクライアントによるそれぞれのＡＰＩの呼び出しに対応する５個のジョブを含む。（待ち行列の頭に示される）ジョブＪ１は、ＡＰＩ１の呼び出しに応答して作成された。ジョブＪ２〜Ｊ５は、ＡＰＩ２〜ＡＰＩ５の呼び出しにそれぞれ応答して作成された。ジョブＪ１に対応して、入力データクレンジング計画４２２が生成されても良く、計画は、リソースセットＲＳ１を使用して実行されても良い。入力データクレンジング計画は、指定されたデータソースのコンテンツを読み出し、検証するため、欠損値を埋めるため、エラーを含む入力記録を識別し、破棄する（またはさもなければエラーを含む入力記録に対応する）ため等の動作を含んでも良い。一部の事例では、入力データはまた、クレンジングの目的のために読み出され得る前に、解凍、解読、またはさもなければ操作される必要があっても良い。ジョブＪ２に対応して、統計生成計画４２４が生成され、続いてリソースセットＲＳ２上で実行されても良い。各データ属性（例えば、数値属性の平均、最小、最大、標準偏差、分位ビニング等）のために生成される統計の種類と、統計が生成される方式（例えば、データクレンジング計画４２２によって生成された全ての記録が統計のために使用されるか、またはサブサンプルが使用されるか）と、が、統計生成計画内で指示されても良い。描写される実施形態において、ジョブＪ２の実行は、ジョブＪ１の完了に依存しても良いが、ジョブＪ２の生成をもたらすクライアント要求は、Ｊ１が完了するかなり前に提出されても良い。
【００３０】
ジョブＪ３（及びＡＰＩ３）に対応するレシピベースの特徴処理計画４２６は、生成され、リソースセットＲＳ３上で実行されても良い。レシピの構文及び管理に関するさらなる詳細は、以下に提供される。ジョブＪ４は、モデル訓練計画４２８の生成をもたらしても良い（次いでこれは、例えば、異なるセットのパラメータを用いた複数回の訓練の反復を伴っても良い）。モデル訓練は、リソースセットＲＳ４を使用して行われても良い。モデル実行計画４３０は、（ＡＰＩ５のクライアントの呼び出しから生じた）ジョブＪ５に対応しても良く、モデルは、最終的にはリソースセットＲＳ５を使用して実行されても良い。一部の実施形態において、同じセットのリソース（または重複したセットのリソース）が、クライアントのジョブのうちのいくつかまたは全てを行うために使用されても良く、例えば、リソースセットＲＳ１〜ＲＳ５は、必ずしも互いに異ならなくても良い。少なくとも１つの実施形態において、クライアントは、例えば、ＡＰＩ呼び出しに含まれるパラメータを介して所望の処理計画の様々な要素または特性を指示しても良く、ＭＬＳは、そのようなクライアントの好みを考慮に入れても良い。例えば、特定の統計生成ジョブについて、クライアントは、クレンジングされた入力記録のうちの２５％のランダムに選択されたサンプルが使用されても良いと、指示しても良く、ＭＬＳは、それに応じて、データのうちの２５％のランダムサンプルを生成する行程を含む統計生成計画を生成しても良い。他の事例では、ＭＬＳ制御プレーンは、特定のジョブがまさにどのように実行されるかを判定するより大きな自由を与えられても良く、ベストプラクティスのＭＬＳ制御プレーンの知識ベースを参照して、使用されるパラメータを選択しても良い。
【００３１】
ジョブスケジューリング
図５は、少なくとも一部の実施形態に従った、機械学習サービスでのジョブの非同期スケジューリングの例を例示する。描写される実施例において、クライアントは、４つのＭＬＳ  ＡＰＩ、ＡＰＩ１〜ＡＰＩ４を呼び出し、４つの対応するジョブオブジェクト、Ｊ１〜Ｊ４が作成され、ジョブ待ち行列１４２内に入れられる。タイムラインＴＬ１、ＴＬ２、及びＴＬ３は、ＡＰＩを呼び出すクライアント、ジョブを作成し、そのジョブを待ち行列１４２内に挿入する要求ハンドラ、及び待ち行列からジョブを削除し、選択されたリソースにジョブをスケジュールするジョブスケジューラの観点からのイベントのシーケンスを示す。
【００３２】
描写される実施形態において、他のジョブへの依存性がない規範事例に加えて、２つの種類のジョブ間依存性がサポートされても良い。「完了依存性」と称される一事例において、１個のジョブＪｐの実行は、（例えば、別のジョブＪｑの最終出力がＪｐの入力として必要であるため）Ｊｑが正常に完了するまで開始することができない。完全依存性は、ジョブオブジェクトに示されるパラメータ「ｄｅｐｅｎｄｓＯｎＣｏｍｐｌｅｔｅ」によって図５に示され、例えば、Ｊ２は、Ｊ１の実行完了に依存し、Ｊ４は、Ｊ２の正常完了に依存する。他の種類の依存性において、１個のジョブＪｐの実行は、別のジョブＪｑの何らかの指定された段階が完了したらすぐに開始されても良い。この後者の依存は、「部分的依存性」と称されても良く、「ｄｅｐｅｎｄｓＯｎＰａｒｔｉａｌ」パラメータによって図５に示される。例えば、Ｊ３は、Ｊ２の部分的完了に依存し、Ｊ４は、Ｊ３の部分的完了に依存する。一部の実施形態において、スケジューリングを単純化するために、そのような段階ベースの依存性は、Ｎ個の段階を有するジョブをＮ個のより小さいジョブに分割し、それにより部分的依存性を完全依存性に変換することにより、処理されても良いことが留意される。Ｊ１は、描写される実施例において、いずれの種類の依存性も有さない。
【００３３】
クライアントタイムラインＴＬ１上に示されるように、ＡＰＩ１〜ＡＰＩ４は、期間ｔ０〜ｔ１内に呼び出されても良い。描写される実施形態において、たとえクライアントによって要求された動作の一部が、先に呼び出されたＡＰＩに対応する動作の完了に依存するとしても、ＭＬＳは、先に呼び出されたＡＰＩのジョブの処理よりもはるか前にクライアントが依存動作要求を提出することを可能にしても良い。少なくとも一部の実施形態において、ＡＰＩ呼び出しにおけるクライアントによって指定されたパラメータは、ジョブ間依存性を指示しても良い。例えば、一実装例において、ＡＰＩ１に応答して、クライアントは、Ｊ１のジョブ識別子を提供されても良く、そのジョブ識別子は、ＡＰＩ２に対応する動作を行うためにはＡＰＩ１の結果が必要であることを指示するために、パラメータとしてＡＰＩ２内に含まれても良い。要求ハンドラのタイムラインＴＬ２によって示されるように、各ＡＰＩ呼び出しに対応するジョブは、ＡＰＩが呼び出された直後に作成され、待ち行列に入れられても良い。このように、ｔ１の後、短時間で全ての４個のジョブが生成され、ジョブ待ち行列１４２内に入れられる。
【００３４】
ジョブスケジューラタイムラインＴＬ３に示されるように、ジョブＪ１は、時間ｔ２に実行をスケジュールされても良い。（ｔ０直後の）待ち行列１４２内へのＪ１の挿入とＪ１のスケジューリングとの間の遅延は、描写される実施形態において、例えば、待ち行列１４２内のＪ１の前に他のジョブが存在し得るためか、またはＪ１の処理計画を生成し、Ｊ１のために使用されるリソースを識別するのにいくらか時間がかかるためか、または十分なリソースがｔ２まで利用可能でなかったためなどの、いくつかの理由のために起こり得る。Ｊ１の実行は、ｔ３まで続く。描写される実施形態において、Ｊ１が完了したとき、（ａ）クライアントに通知し、（ｂ）Ｊ２の実行がスケジュールされる。Ｊ２のｄｅｐｅｎｄｓＯｎＣｏｍｐｌｅｔｅパラメータ値によって指示されるように、Ｊ２は、Ｊ１の完了に依存し、したがってＪ２の実行は、たとえＪ２の処理計画の準備が整い、Ｊ２のリソースセットがｔ３の前に利用可能であっても、ｔ３まで開始することができない。
【００３５】
描写される実施例において、Ｊ３の「ｄｅｐｅｎｄｓＯｎＰａｒｔｉａｌ」パラメータ値によって指示されるように、Ｊ３は、Ｊ２の作業の指定された段階またはサブセットが完了したとき、開始することができる。例示される実施形態において、Ｊ３が依存するＪ２の部分は、時間ｔ４に完了し、したがってＪ３の実行は、（Ｊ２の残りの部分の実行と並列で）ｔ４に開始する。描写される実施例において、クライアントは、時間ｔ４にＪ２の部分的完了に関して通知されても良い（例えば、Ｊ２の完了した段階の結果がクライアントに提供されても良い）。
【００３６】
ｔ５に、Ｊ４が依存するＪ３の一部分が完了しても良く、クライアントは、その都度通知されても良い。しかしながら、Ｊ４はまた、Ｊ２がｔ６に完了するまでＪ４が開始することができないように、Ｊ２の完了にも依存する。Ｊ３は、ｔ８まで実行を継続する。Ｊ４は、ｔ８よりも前にｔ７に完了する。描写されるシナリオ例において、クライアントは、それぞれのＡＰＩ呼び出し、ＡＰＩ１〜ＡＰＩ４に対応するジョブの各々の完了について通知される。一部の実施形態において、ジョブ間の部分的依存性は、サポートされなくても良く、代わりに、先に言及されたように、一部の事例ではそのような依存性は、多段階ジョブをより小さなジョブに分割することにより完全依存性に変換されても良い。少なくとも１つの実装例において、ＡＰＩ呼び出しに対応するジョブが完了したとき（またはジョブの段階が完了したとき）に通知される代わりにか、またはそれに加えて、クライアントは、問い合わせをＭＬＳに提出して、様々なＡＰＩ呼び出しに対応する動作の状態（または完了の程度）を判定することができても良い。例えば、ＭＬＳジョブ監視ウェブページは、クライアントが（例えば、各ジョブの「完了パーセント」指標を介して）クライントの要求の進捗、及び予想される完了時間等を見ることを可能にするように実装されても良い。一部の実施形態において、ポーリングメカニズムが、ジョブの進捗または完了を判定するためにクライアントによって使用されても良い。
【００３７】
ＭＬＳ人工物
図６は、少なくとも一部の実施形態に従った、機械学習サービスを使用して生成及び記憶され得る人工物例を例示する。一般に、ＭＬＳ人工物は、ＭＬＳプログラム的インターフェースの呼び出しの結果として、永続的方式で記憶されても良いオブジェクトのうちのいずれかを含んでも良い。一部の実装例において、ＭＬＳに渡される一部のＡＰＩパラメータ（例えば、文字列バージョンのレシピ）は、人工物として記憶されても良い。描写される実施形態において、示されるように、ＭＬＳ人工物６０１は、数ある中でも、データソース６０２、統計６０３、特徴処理レシピ６０６、モデル予測６０８、評価６１０、変更可能または開発中のモデル６３０、及び公開されたモデルまたはエイリアス６４０を含んでも良い。一部の実装例において、ＭＬＳは、示される人工物の種類のうちの少なくともいくつかの各インスタンスのそれぞれの固有の識別子を生成し、識別子をクライアントに提供しても良い。続いて、識別子は、（例えば、後続のＡＰＩ呼び出し内、状態問い合わせ内等の）人工物を参照するために、クライアントによって使用されても良い。
【００３８】
データソース人工物６０２を作成するためのクライアント要求は、例えば、データ記録を読み出すことができるアドレスまたは位置の指標、及びデータ記録の形式またはスキーマの何らかの指標を含んでも良い。例えば、ＨＴＴＰ  ＧＥＴ要求を、データ記録、プロバイダネットワークストレージサービスの記憶オブジェクトのアドレス、またはデータベース表識別子を取得するように向けることができるソースＵＲＩ（ユニバーサルリソース識別子）の指標が提供されても良い。一部の実装例において、形式（例えば、データ記録のフィールドまたは列のシーケンス及び種類）は、別個のカンマ区切り変数（ｃｓｖ）ファイルを介して指示されても良い。一部の実施形態において、ＭＬＳは、例えば、クライアントの識別子に基づいて、データソース人工物を作成するために必要なアドレス情報及び／または形式情報の少なくとも一部を推測することができても良く、クライアントのデータソースのルートディレクトリまたはルートＵＲＩを推測することが可能でも良く、最初のいくつかの記録の分析に基づいて、少なくともスキーマの列のデータ型を推測することが可能でも良い。一部の実施形態において、データソースを作成するためのクライアント要求はまた、例えば、ＭＬＳのＩ／Ｏライブラリを使用してデータ記録をサンプリングまたは分割することにより、生入力データを再配置するための要求も含んでも良い。一部の実装例において、データソースの作成を要求するとき、クライアントはまた、データ記録にアクセスするためにＭＬＳによって使用され得る機密保護証明書を提供する必要があっても良い。
【００３９】
一部の実施形態において、図７に関して以下にさらに詳細に記載されるように、少なくともいくつかの統計６０３が、データソースのデータ記録のために自動的に生成されても良い。他の実施形態において、ＭＬＳはまた、または代わりに、例えば、指定されたデータソースのために生成される統計の種類をクライアントが指示するｃｒｅａｔｅＳｔａｔｉｓｔｉｃｓ（ｄａｔａＳｏｕｒｃｅＩＤ、ｓｔａｔｉｓｔｉｃｓＤｅｓｃｒｉｐｔｏｒ）要求の同等物を介して、クライアントが様々な種類の統計の生成を明確に要求することを可能にしても良い。生成される統計人工物の種類は、入力記録変数のデータ型に基づいて変化しても良く、例えば、数値変数の場合、平均、中央値、最小、最大、標準偏差、分位ビン、ヌルまたは「非該当」値の数等が生成されても良い。少なくとも一部の実施形態において、相関等の交差変数統計もまた、自動的またはオンデマンドのいずれかで生成されても良い。
【００４０】
一部の実施形態において、特徴処理変換命令を含むレシピ６０６は、クライアントによって提供されても良い（ＭＬＳレシピコレクションからアクセス可能な一組の利用可能なレシピから選択されても良い）。そのような実施形態において、以下にさらに詳細に記載されるように、クライアントが変数群、割り当て、モデル等の他の人工物への依存性、変換出力を定義することを可能にするレシピ言語は、ＭＬＳによってサポートされても良い。一部の実装例において、テキスト形式で提出されたレシピは、実行可能なバージョンにコンパイルされ、様々なデータセットに再使用されても良い。
【００４１】
描写される実施形態において、機械学習モデルまたは予測子を表す少なくとも２つのタイプの人工物が生成され、記憶されても良い。多くの場合、モデルの開発及び改良のプロセスは、様々なデータセット及び様々なパラメータを使用して、予測の正確さを改善しようとする場合があるため、長い時間かかる場合がある。一部のモデルは、例えば、数週間、または数カ月にわたり改善される場合がある。そのようなシナリオにおいて、他のユーザ（例えば、ビジネスアナリスト）がモデルの一バージョンを利用することを可能にする一方で、モデル開発者が他の改善されたバージョンの生成を継続する価値がある場合がある。したがって、一部の実施形態において、モデルを表す人工物は、変更可能なモデル６３０、及び公開されたモデルまたはエイリアス６４０の２つのカテゴリーのうちの１つに属しても良い。エイリアスは、エイリアス名または識別子、ならびにモデルへのポインタ（例えば、描写される実施形態では、モデル６３０Ｂを指すエイリアス６４０Ａ、及びモデル６３０Ｄを指すエイリアス６４０Ｂ）を含んでも良い。本明細書で使用される場合、「モデルの公開」という表現は、エイリアス名または識別子を参照することによって特定のバージョンのモデルを一組のユーザによる実行を可能にすることを指す。一部の事例では、その組のユーザの少なくとも一部は、モデルまたはエイリアスを変更することが許可されなくても良い。一部の実施形態において、非熟練ユーザ６７８が、エイリアスへの読み出し許可及び実行許可を与えられても良い一方で、モデル開発者６７６はまた、モデル６３０（及び／またはエイリアス６４０のポインタ）を変更することが許可されても良い。一部の実施形態において、例えば、エイリアスの入力及び出力の形式（ならびにエイリアスによって参照される基礎となるモデル）は、一旦エイリアスが公開されたら変わらず、モデル開発者が、エイリアスによって指されている基礎となるモデルを徹底的に試験及び検証したという一組の保証がエイリアスユーザに提供されても良い。さらに、そのような実施形態において、いくつかの他の論理制約が、エイリアスに対して課されても良い。例えば、エイリアスがオンラインモード（モデルの使用モードは、図８に関して以下にさらに詳細に記載される）で使用されるモデルのために作成された場合、ＭＬＳは、指されているモデルがオンラインのままであることを保証しても良い（すなわち、モデルは、アンマウントすることができない）。一部の実装例において、現在本番モードにあるエイリアスと、内部使用モードまたは試験モードにあるものとの間で区別がつけられなくても良く、ＭＬＳは、本番モードのエイリアスのために削除またはアンマウントされないことを確実にしても良い。一部の実施形態において、オンラインモードのモデルにエイリアスを作成するとき、予測／評価の最低スループット率が、エイリアスについて判定されても良く、ＭＬＳは、モデルに割り当てられたリソースが最低スループット率を満たすことを確実にしても良い。モデル開発者６７６が、エイリアス６４０が作成されたより古いバージョンに対してより新しいバージョンのモデル６３０の正確さ及び／または性能特性を改善した後で、モデル開発者６７６は、エイリアスのポインタがこれから改善されたバージョンを指すように、エイリアスのポインタを切り替えても良い。したがって、非熟練ユーザは、自身がエイリアスを使用している手段に何も変更を加える必要がない一方で、改善から利益を享受しても良い。一部の実施形態において、エイリアスユーザは、問い合わせを提出して基礎となるモデルが最後にいつ変更されたかを知ることができても良いか、またはエイリアスユーザがエイリアスの実行を要求したとき、基礎となるモデルが最後の実行以来変更されたかを通知されても良い。
【００４２】
一部の実施形態において、予測６０８（従属変数の実際の値が既知であるシナリオにおいて、従属変数についてモデルによって予測された値）及びモデル評価６１０（モデルの予測を従属変数の既知の値と比較することができるときに計算された、モデルの正確さの測定値）等のモデル実行の結果もまた、ＭＬＳによって人工物として記憶されても良い。後続の説明において、「従属変数」、「出力変数」、及び「目標変数」という用語は同じ意味で使用される場合があり、「独立変数」及び「入力変数」もまた、同じ意味で使用される場合があることが留意される。少なくともいくつかの種類の機械学習技術において、従属変数値は、１つまたは複数の独立変数の値に依存することを前提とし得るが、これは、独立変数のうちのいずれかが、他の独立変数のうちのいずれかから必ず統計的に独立していることを暗示することを意味しない。一部の実施形態において、図６に例示される人工物の種類に加えて、他の人工物の種類もまたサポートされても良く、例えば、一部の実施形態において、（データの静的セットのバッチモード実行とは対照的に）ストリーミングデータのリアルタイムのモデル実行のために使用することができるネットワークエンドポイントを表すオブジェクトが、人工物として記憶されても良く、他の実施形態において、クライアントセッションログ（例えば、所与のセッションの間の、クライアントとＭＬＳとの間の全ての対話の記録）が、人工物として記憶されても良い。
【００４３】
一部の実施形態において、ＭＬＳは、関連したジョブの反復的スケジューリングをサポートしても良い。例えば、クライアントは、モデル等の人工物を作成しても良く、同じモデルが、指定された時点に異なる入力データセットに関して、（例えば、訓練または予測反復の各々のためのリソースの同じ構成を使用して）再訓練され、及び／または再実行されることを望んでも良い。一部の事例では、時点は、（例えば、「毎日１１：００、１５：００、及び１９：００にデータソースＤＳ１の現在利用可能なデータセットにモデルＭ１を再実行させる」の同等物を要求するクライアントによって）明確に指定されても良い。他の事例では、クライアントは、（例えば、「次の組の１００００００個の新しい記録がデータソースＤＳ１から利用可能になったときはすぐに、モデルＭ１を再実行させる」の同等物を要求するクライアントによって）、反復がスケジュールされる条件を指示しても良い。それぞれのジョブは、各反復的訓練または実行反復のためにＭＬＳジョブ待ち行列内に入れられても良い。一部の実施形態において、ＭＬＳは、そのようなスケジュールされた反復的動作を可能にする一組のプログラム的インターフェースを実装しても良い。そのようなインターフェースを使用して、クライアントは、反復の各々のために使用される一組のモデル／エイリアス／レシピ人工物（もしくは同じ下役人工物のそれぞれのバージョン）、及び／または使用されるリソース構成を指定しても良い。一部の実施形態において、そのようなプログラム的インターフェースは、「パイプラインＡＰＩ」と称され得る。一部の実施形態において、図６に示される人工物の種類に加えて、パイプライン人工物は、ＭＬＳ人工物レポジトリに記憶されても良く、パイプライン人工物の各インスタンスは、そのようなＡＰＩを介して要求された、名前を付けられた組の反復的動作を表す。一実施形態において、プロバイダネットワークに実装された別々に管理されているデータパイプラインサービスは、そのような反復動作をサポートするためにＭＬＳと組み合わせて使用されても良い。
【００４４】
先に言及されたように、一部の実施形態において、ＭＬＳは、データソースが作成されるとき、統計を自動的に生成しても良い。図７は、少なくとも一部の実施形態に従った、データソースをインスタンス化するためのクライアント要求に応答した統計の自動生成の例を例示する。示されるとおり、クライアント７６４は、ＭＬＳ  ＡＰＩ７６１を介してＭＬＳ制御プレーン７８０にデータソース作成要求７１２の実行を依頼する。作成要求は、データ記録を取得することができるアドレスまたは位置、及び任意選択的にデータ記録の列またはフィールドを示すスキーマまたは形式文書を指定しても良い。
【００４５】
要求７１２の受信に応答して、ＭＬＳ制御プレーン７８０は、データソース人工物７０２を生成して、ＭＬＳ人工物レポジトリに記憶しても良い。さらに、かつ一部の事例ではＭＬＳのリソースの現在の可用性に応じて、ＭＬＳは、描写される実施形態において、たとえクライアント要求がそのような統計を明確に要求しなかったとしても、１つまたは複数の統計オブジェクト７３０の生成も開始しても良い。様々な実施形態において、いくつかの異なる種類の統計の任意の組み合わせが、２つのモードのうちの１つで自動的に生成されても良い。例えば、非常に大きなデータセットについて、サブサンプル（例えば、大きなデータセットのランダムに選択されたサブセット）に基づいた最初の組の統計７６３が、第１の段階で得られても良い一方で、全データセットから得られた全サンプル統計７６４の生成は、第２の段階に保留されても良い。統計生成に向けたそのような多段階手法は、例えば、完全なデータセットの統計分析を待たずに、クライアントが後続の機械学習ワークフロー行程の計画を開始することができるように、クライアントが第１の段階でかなり早くデータセット値の大まかまたはおおよその要約を得ることが可能であるように実装されても良い。
【００４６】
示されるように、様々な異なる統計が、いずれかの段階で得られても良い。数値変数について、基本的統計７６５には、平均値、中央値、最小値、最大値、標準偏差値が含まれても良い。数値変数はまた、ビニング（四分位または五分位等の一組の範囲に分類）もされても良く、そのようなビン７６７は、クライアントに表示されても良いヒストグラムの構築のために使用されても良い。変数の分布の性質に応じて、線形または対数ビン境界のいずれかが選択されても良い。一部の実施形態において、異なる変数間の相関７６８もまた、計算されても良い。少なくとも１つの実施形態において、ＭＬＳは、（相関値等の）自動的に生成された統計を利用して、他の予測よりも高い予測力を有し得る変数の候補グループ７６９を識別しても良い。例えば、モデルのある特定のクラスへの過度の一致を避けるため、互いに非常に強く相関する一組の変数の中の１つの変数だけが、モデルへの入力の候補として推奨されても良い。そのようなシナリオにおいて、クライアントは、他の変数の重要性を調査するために必要な時間及び労力を回避することができる。所与のデータ記録が数百またはさらには数千の変数を有し得る多くの問題領域において、より高い予測有効性を有することが予想される候補変数のそのような自動化された選択は、ＭＬＳのクライアントにとって非常に有益であり得る。
【００４７】
図８は、少なくとも一部の実施形態に従った、機械学習サービスでサポートされ得るいくつかのモデル使用モードを例示する。モデル使用モードは、バッチモード、オンラインモードまたはリアルタイムモード、及びローカルモードの３つのカテゴリーに大まかに分類されても良い。バッチモードにおいて、所与のモデルは、データ記録の静的セット上で実行されても良い。リアルタイムモードで、ネットワークエンドポイント（例えば、ＩＰアドレス）が、指定されたモデルのための入力データ記録が提出される宛先として割り当てられても良く、モデル予測は、記録が受信されたらストリーミングデータ記録のグループ上に生成されても良い。ローカルモードにおいて、クライアントは、ＭＬＳで訓練及び検証された指定されたモデルの実行可能な表現を受信しても良く、クライアントは、クライアントが選択したコンピューティングデバイス上で（例えば、ＭＬＳが実装されているプロバイダネットワーク内よりもむしろクライアントネットワーク内に位置するデバイスで）モデルを実行しても良い。
【００４８】
描写される実施形態において、ＭＬＳのクライアント１６４は、プログラム的インターフェース８６１を介して、ＭＬＳ制御プレーン１８０にモデル実行要求８１２を提出しても良い。モデル実行要求は、実行モード（バッチ、オンライン、またはローカル）、（一部の事例において、指定されたデータソースもしくはレシピを使用して生成されても良い）モデル実行のために使用される入力データ、所望される出力の種類（例えば、予測もしくは評価）、及び／または任意のパラメータ（例えば、所望のモデルの品質目標、オンライン予測のために使用される最小入力記録グループサイズ等）を指定しても良い。それに応答して、ＭＬＳは、モデル実行の計画を生成し、計画を実装するための適切なリソースを選択しても良い。少なくとも一部の実施形態において、ジョブオブジェクトは、先に記載されるように、実行要求８１２を受信したら生成され、（特徴処理のためのレシピの実行等の）他のジョブへの任意の依存性を示しても良く、ジョブが待ち行列内に入れられても良い。バッチモード８６５については、例えば、１つまたは複数のサーバが、モデルを実行させるために識別されても良い。オンラインモード８６７については、モデルは、データ記録がストリーミング配信され、予測８６８及び／または評価８６９を含む結果を取得することができる、マウント（例えば、ネットワークアドレスを用いて構成）されても良い。少なくとも１つの実施形態において、クライアントは、オンラインモードでインスタンス化されるモデルの予想される作業負荷レベルを任意選択的に指定しても良く、モデルのために展開される組のプロバイダネットワークリソースは、予想される作業負荷レベルに従って選択されても良い。例えば、クライアントは、モデルのパラメータを介して各々１００万個の記録のデータセットに対して、１日当たり最大１００個の予測要求が予想される実行／作成要求を指示しても良く、モデルのために選択されたサーバは、指定された要求率を処理するように選択されても良い。ローカルモードについて、ＭＬＳは、（バイトコードまたはモデルが実行するハードウェアアーキテクチャの種類等の、提供される実行可能なものの種類の詳細が、実行要求８１２内に指定されていても良い）モデルの実行可能なローカルバージョン８４３をパッケージにして、ローカルモデルをクライアントに送信しても良い。一部の実施形態において、例示される実行モードのサブセットのみが、サポートされても良い。一部の実装例において、実行モードと出力の種類との組み合わせの全てがサポートされるとは限らない場合があり、例えば、一実装例において、予測が、オンラインモードに関してサポートされても良い一方で、評価は、オンラインモードに関してサポートされなくても良い。
【００４９】
ＭＬＳ動作を実行するための方法
図９ａ及び９ｂは、少なくとも一部の実施形態に従った、機械学習ジョブの非同期スケジューリングをサポートしている機械学習サービスで行われ得る動作の態様を例示する流れ図である。図９ａの要素９０１に示されるように、ＭＬＳは、（ＡＰＩ、コマンドラインツール、ウェブページ、またはカスタムＧＵＩ等の）プログラム的インターフェースを介してクライアントから要求を受信して、ＭＬＳの一組のサポートされたエンティティタイプに属するエンティティに特定の動作を行なっても良い。描写される実施形態において、エンティティタイプは、例えば、データソース、統計、特徴処理レシピ、モデル、エイリアス、予測、及び／または評価を含んでも良い。要求される動作には、例えば、属性の作成、読み出し（もしくは属性の記述）、変更／更新、動作の実行、検索、または削除が含まれても良い。一部の実施形態において、動作の種類が全てを、全てのエンティティタイプに適用しなくても良く、例えば、データソースを「実行」することが可能ではない場合がある。少なくとも一部の実装例において、要求は、クライアントによって暗号化またはカプセル化されても良く、ＭＬＳは、適切なキー及び／または証明書を使用して要求のコンテンツを抽出する必要があっても良い。
【００５０】
次に、要求は、ＭＬＳの様々な規則またはポリシーに従って検証されても良い（要素９０４）。例えば、機密保護ポリシーに従って、要求元クライアントに与えられた許可、役割、または能力を確認して、そのクライアントが、要求された動作を行わせるための権限が与えられているかを確実にしても良い。要求自体の構文、及び／または要求パラメータとして渡されたレシピ等のオブジェクトは、何らかの種類の要求に関して確認されても良い。一部の事例では、要求内で指示された１つまたは複数のデータ変数の種類もまた、確認される必要があっても良い。
【００５１】
要求が検証チェックを合格した場合、ジョブオブジェクトがその要求に対して作成されるべきかに関する判定が下されても良い。先に言及されたように、一部の事例では、必要な作業量は、（少なくとも、要求の前提条件または依存関係が既に満たされ、ＭＬＳが要求された作業を完了するのに十分なリソースが利用可能であるシナリオにおいて）、非同期実行のためにジョブオブジェクトを作成し、待ち行列内に挿入する代わりに、ＭＬＳが要求された動作を同時、または「インライン」で単純に行うことができ得るほど小さくても良い。（要素９０７で検出されたように）要求の分析が、ジョブが必要であると示す場合、ＭＬＳで行われるより低いレベルの動作の性質及び他のジョブへの任意の依存性を示すジョブオブジェクトが生成されても良く、このジョブオブジェクトは、待ち行列内に入れられても良い（要素９１３）。一部の実装例において、要求元クライアントは、（例えば、ジョブが後の実行のために待ち行列に入れられたことをクライアントに示すことにより）、要求が実行の承認をされたことを通知されても良い。一部の事例において、クライアントは、待ち行列に入れられたジョブの完了（またはさらには開始）を待たずに、別のプログラム的要求を提出しても良い。ジョブがまだ満たされていないいずれの依存性を有さず、かつ、（要素９０７でも判定される）即時実行またはインライン実行のための他の基準を満たしている場合、要求された動作は、ジョブオブジェクトを作成せずに実行されても良く（要素９１０）、その結果は、任意選択的に要求元クライアントに提供されても良い。要素９０１〜９１３に対応する動作は、ＭＬＳのプログラム的インターフェースを介して受信される各要求について行われても良い。特定のジョブＪｋが待ち行列内に入れられた後のある時点で、Ｊｋは、実行される次のジョブとして（例えば、ＭＬＳ制御プレーンのジョブスケジューラ構成要素によって）識別されても良い（図９ｂの要素９５１）。実行される次のジョブを識別するために、スケジューラは、例えば、待ち行列の頭（まだ実行されていない最初の挿入されているジョブ）から開始し、（指定されている場合）依存関係が満たされているジョブを検索しても良い。
【００５２】
一部の実施形態において、図９ａの要素９０４に示されている検証の種類に加えて、ＭＬＳは、例えば、（ａ）特定の要求が無効であることが分かったとき、できるだけ早くクライアントに知らせることと、（ｂ）成功する可能性が低い要求へのＭＬＳのリソースの浪費を回避することと、の普遍的目標で、様々な他の段階で検証を行なっても良い。図９ｂの要素９５２に示されるように、１つまたは複数の種類の検証チェックが、要素９５１で識別されたジョブＪｋに行われても良い。例えば、一実施形態において、各クライアントは、（所与の顧客のジョブの全てのため、または顧客の任意の所与のジョブのために同時に使用することができるサーバの最大数等の）クライアントのジョブに適用することができるリソースの割り当てまたは制限を有しても良い。一部の実装例において、それぞれの割り当ては、例えば、ＣＰＵ／コア、メモリ、ディスク、ネットワーク回線容量等のいくつかの異なるリソースの種類の各々について設定されても良い。そのようなシナリオにおいて、ジョブスケジューラは、自身に代わってジョブＪｋを実行させるクライアントの割り当て（単数または複数）が枯渇していないという検証に関与しても良い。割り当てが枯渇した場合、ジョブの実行は、（例えば、同じクライアントの代わりに行われていた他のジョブの完了の結果として）クライアントのリソースの少なくとも一部が開放されるまで保留されても良い。そのような制約制限は、任意の所与のクライアントの、共有ＭＬＳリソースを独占する能力を制限するのに有用であり得、また、不用意なエラーまたは悪意のあるコードの負の結果を最小化するのにも有用であり得る。割り当てチェックに加えて、他の種類の実行時間検証が、少なくとも一部のジョブについて必要である場合があり、例えば、データ型チェックは、特徴処理を伴うジョブのための入力データセット上で行われる必要があり得るか、またはＭＬＳは、入力データセットサイズが許容できる範囲内にあることを検証する必要があり得る。このように、クライアント要求は、少なくとも一部の実施形態において、（図９ａの要素９０４に示されるように、要求が受信されたときに）同期的に、及び（図９ｂの要素９５２に示されるように）非同期的に検証されても良い。作業負荷分配戦略及び処理計画は、例えば、使用される処理パスまたは段階の数、使用される並列度、Ｊｋを完了するために使用される反復収束基準等、Ｊｋのために識別されても良い（要素９５４）。一部の実施形態において、（存在する場合）クライアントの予算的制約、クライアントのデータ耐久性への要求、クライアントの性能目標、（マルチテナントモードでの代わりに隔離して、第三者コードまたはクライアント提供のコードを実行させる要求等の）機密保護への要求等のいくつかの追加の要因が、処理計画を生成するときに、考慮に入れられても良い。
【００５３】
選択された分配戦略及び処理計画に従って、一組のリソースがＪｋのために識別されても良い（要素９５７）。（計算サーバまたは計算クラスタ、記憶装置等を含んでも良い）リソースは、例えば、ＭＬＳ管理の共有プールから、及び／または顧客割り当てもしくは顧客所有のプールから選択されても良い。次いで、ＪＫの動作は、識別されたリソース上で行われても良く（要素９６０）、自身に代わってＪｋを作成させたクライアントは、任意選択的に、動作が完了したときに（または動作の完了を妨げる不具合の場合に）通知されても良い。
【００５４】
冪等プログラム的インターフェース
ＭＬＳクライアントによって要求された動作の種類のうちのいくつかは、リソース集約的であっても良い。例えば、（例えば、データストアを作成するためのクライアント要求に応答した）テラバイト規模のデータセットの取り込み、またはそのようなデータセットの統計の生成は、展開される組のリソース及び使用される並列の程度によって、数時間または数日間かかる場合がある。少なくとも一部の実施形態において、クライアント要求が処理される非同期方式を考えると、クライアントは時折、同じ要求の実行を複数回依頼してしまうことがある。一部の事例では、そのような複数の提出は、クライアントが、前の提出が承認されたか、またはされなかったかを意識していなかったため（例えば、クライアントが前の提出が承認されたという指標に気付かなかったためか、またはそのような指標が失われたため）に起こる場合がある。他の事例では、重複要求は、要求されたタスクの完了の予想される結果が長期間提供されていないため、クライアントが前の要求は失敗したに違いないと推測したために受信される場合がある。そのような重複提出に応答して、ＭＬＳが別の潜在的に大きなジョブを実際にスケジュールした場合、リソースが不必要に展開され得、一部の事例ではクライアントは、一回だけサービスを受けることを意図した要求に対して２回請求され得る。したがって、少なくとも１つの実施形態において、そのような問題のあるシナリオを回避するために、ＭＬＳによってサポートされているプログラム的インターフェースのうちの１つまたは複数は、同じクライアントによる重複要求の再提出が負の結果を招かないように、冪等性であるように設計されても良い。
【００５５】
図１０ａは、少なくとも一部の実施形態に従った、一組の冪等プログラム的インターフェースがサポートされている機械学習サービスで行われ得る動作の態様を例示する流れ図である。図１０ａにおいて、作成インターフェース（例えば、「ｃｒｅａｔｅＤａｔａＳｏｕｒｃｅ」または「ｃｒｅａｔｅＭｏｄｅｌ」と類似したＡＰＩ）が、冪等プログラム的インターフェースの例として使用されている。冪等性は、データソース及びモデル等の人工物の作成を伴うプログラム的インターフェースに特に有益であり得るが、様々な実施形態において、冪等インターフェースはまた、他の種類の動作（例えば、削除または実行）についてもサポートされても良い。要素１００１に示されるように、新しいエンティティタイプＥＴ１のインスタンスを作成するための要求は、クライアントＣ１から特定のＡＰＩ等のプログラム的インターフェースを介して、ＭＬＳで受信されても良い。要求は、クライアントによって選択され、新しいインスタンスのために使用される識別子ＩＤ１を示しても良い。一部の実装例において、クライアントは、インスタンス識別子を指定する必要があっても良く、以下に記載されるように、識別子は、重複要求を検出するために使用されても良い。（クライアントが識別子を選択することを可能にすることは、クライアントがＭＬＳによって割り当てられた名前よりも意味のある名前を、エンティティインスタンスに割り当てることができ得るという追加の利点を有し得る。）ＭＬＳは、プログラム的インターフェースのクライアントの呼び出しに含まれる入力パラメータの表現ＩＰＲ１を生成しても良い（要素１００４）。例えば、組の入力パラメータは、選択されたハッシュ関数に入力として供給されても良く、ハッシュ関数の出力は、ＩＰＲ１として記憶されても良い。
【００５６】
図１０ａに描写される実施形態において、生成された人工物の少なくとも一部について、ＭＬＳレポジトリは、対応するインスタンス識別子、入力パラメータ表現、及びクライアント識別子（すなわち、人工物の作成を要求したクライアントの識別子）を記憶しても良い。ＭＬＳは、例えば、人工物レポジトリ内の探索を介して、エンティティタイプＥＴ１のインスタンスが、インスタンス識別子ＩＤ１及びクライアント識別子Ｃ１と一緒に、レポジトリ内に既に存在するかどうかを確認しても良い。（要素１００７で検出されて）そのようなインスタンスが見つからない場合、識別子ＩＤ１、入力パラメータ表現ＩＰＲ１、及びクライアント識別子Ｃ１を有するタイプＥＴ１の新しいインスタンスが、レポジトリ内に挿入されても良い（要素１００７）。さらに、インスタンスの種類に応じて、ジョブオブジェクトは、例えば、データセットの読み出し／取り込み、一組の統計の生成、特徴処理の実施、モデルの実行等のクライアント要求に対応する追加の動作を行うために、ジョブ待ち行列に追加されても良い。描写される実施形態において、クライアントの要求への成功した応答（要素１０１６）が、生成されても良い。（一部の実装例において、成功応答は、暗黙的でも良く、例えば、エラーメッセージの非存在は、成功の暗黙的指標の代わりになっても良いことが留意される。）
【００５７】
要素１００７に対応する動作において、同じインスタンス識別子ＩＤ１及びクライアント識別子Ｃ１を有する既存のインスタンスがレポジトリ内に見つかった場合、ＭＬＳは、既存のインスタンスの入力パラメータ表現もまた、ＩＰＲ１と一致するかどうかを確認しても良い（要素１０１３）。入力パラメータ表現も一致した場合、ＭＬＳは、クライアントの要求が（害のない）重複であり、新しい作業が行われる必要はないと推測しても良い。したがって、ＭＬＳはまた、そのような重複要求が見つかった場合、クライアントに（明示的また暗黙的のいずれかで）成功も示して良い（要素１０１６）。したがって、クライアントが不用意に同じ要求を再提出した場合、新しいジョブオブジェクトの作成及び関連したリソース使用を回避し得る。一部の実装例において、クライアント要求が、記載される方法を使用して前の要求の寸分違わない重複であることが分かった場合、要求は、エラーとして指定されない一方で、実際に重複として識別されたという指標が、クライアントに提供されても良い。既存のインスタンスの入力パラメータ表現がクライアントの要求のものと一致しない場合、例えば、同じ識別子を有する同じエンティティタイプＥＴ１の既存のインスタンスが存在することを示すエラーメッセージが、クライアントに返されても良い（要素１０１９）。一部の実装例において、クライアントが識別子を提出する必要がある代わりに、クライアント要求の永続的ログの使用、または（要求、クライアント）の組み合わせを表す署名の使用等の重複検出の異なる手法が使用されても良い。
【００５８】
ベストプラクティス
多数の顧客によって様々なユースケースのために使用され得る機械学習サービス構築の利益のうちの１つは、例えば、どの技法が、データクレンジング、サンプリングまたはサブセット抽出、特徴処理、予測等に最もうまく機能するかに関するベストプラクティスを識別することが、時間と共に可能になり得ることである。図１０ｂは、少なくとも一部の実施形態に従った、異なる問題領域に関するベストプラクティスについての情報を収集及び発信するために機械学習サービスで行われ得る動作の態様を例示する流れ図である。要素１０５１に示されるように、クライアント要求の結果としてＭＬＳで生成される（レシピ及びモデル等の）人工物の少なくとも一部は、問題領域に基づいてグループに分類されても良く、例えば、一部の人工物は、財務分析のため、他の人工物は、コンピュータビジョン用途のため、他の人工物は、生物情報学のため等に使用されても良い。異なる実施形態において、そのような分類は、様々な要因に基づいて、例えば、使用されるアルゴリズムの種類、入力及び出力変数の名前、顧客提供の情報、顧客の識別等に基づいて行われても良い。
【００５９】
一部の実施形態において、ＭＬＳ制御プレーンは、機械学習動作の様々な段階のために使用されるリソースから、性能メトリック及び他のメトリックを収集する一組の監視エージェントを含んでも良い（要素１０５４）。例えば、Ｃ１のＣＰＵ等級及びＭ１のメモリサイズを有するサーバを使用してランダムフォレストのＮ木を構築するためにかかる処理時間が、メトリックとして収集されても良いか、またはデータベースサービスでデータソースから調べられたデータ属性の数の関数として一組の統計を計算するのにかかる時間が、メトリックとして収集されても良い。ＭＬＳは、異なる問題領域のための様々な手法またはモデルの有効性もしくは質に関して、ＭＬＳクライアントから格付け／等級付けまたは他の種類のフィードバックも収集しても良い。一部の実施形態において、様々な分類子についての受信者動作特性（ＲＯＣ）曲線の下の領域等の、モデル予測有効性の定量的測度もまた、収集されても良い。一実施形態において、質に関する情報の一部は、暗黙的クライアントフィードバックを介して得られる代わりに、例えば、モデルが試験データセットのために最終的に使用される前に訓練反復の間に変更された一組のパラメータを記録することによって、ＭＬＳによって暗黙に推測または観測されても良い。一部の実施形態において、クライアントは、ＭＬＳとのクライアントの対話が、ベストプラクティス知識ベース向上のために使用され得るか、または使用され得ないかを判定することができても良く、例えば、一部のクライアントは、クライントの個別化された技術が他の人々によって広く使用されるようになることを望まない場合があり、したがって、ＭＬＳを用いたそのような技術または他のユーザと関連付けられたメトリックの共有に加わらなくても良い。
【００６０】
収集されたメトリック及び／またはフィードバックに基づいて、機械学習ワークフローの様々な段階のためのそれぞれの組のベストプラクティスが、識別されても良い（要素１０５７）。ベストプラクティスの一部が、特定の問題領域に固有のものでも良い一方で、他の部分は、より一般的に適用可能でも良く、したがって問題領域を超えて使用されても良い。識別されたベストプラクティスの表現または要約は、ＭＬＳの知識ベースに記憶されても良い。（例えば、ブラウザまたは検索ツールを介した）知識ベースへのアクセスが、ＭＬＳユーザに提供されても良い（要素１０６０）。ＭＬＳはまた、例えば、ベストプラクティスを利用するようにユーザを誘導する可能性がより高い新しいＡＰＩを導入することによって、ベストプラクティスに基づいて規定のパラメータを選択することによって、及びベストプラクティスと関連付けられた選択肢が選択される可能性がより高くなるように、ドロップダウンメニュー内のパラメータの選択肢が提示される順序を変更すること等によって、ベストプラクティスをユーザ公開されているプログラム的インターフェース内に組み込んでも良い。一部の実施形態において、ＭＬＳは、クライアントの機械学習目標を達成するためにクライアントの手助けをすることができる、様々なツール及び／またはテンプレートを提供しても良い。例えば、テンプレートと、レシピ、モデル等のための自動化構文エラー修正等の開発ガイダンスと、を提供する、ウェブベースのリッチテキストエディタまたはインストール可能な統合開発環境（ＩＤＥ）が、ＭＬＳによって提供されても良い。少なくとも１つの実施形態において、ＭＬＳは、（例えば、同様の問題を解決する他のクライアントのために）過去に有益であることが証明された候補モデルまたは例をユーザに提供しても良い。一部の実装例において、ＭＬＳはまた、複数の対話セッションをまたいで、クライアントによって（または同じ顧客アカウントと関連付けられた一組のユーザによって）行われた動作の履歴も管理し、同じクライアントが前に生成した人工物を用いてかまたは使用して、クライアントが容易に実験することを可能にしても良い。
【００６１】
特徴処理レシピ
図１１は、少なくとも一部の実施形態に従った、機械学習サービスでのデータ変換のためのレシピの使用と関連付けられた対話の例を例示する。描写される実施形態において、ＭＬＳによって定義されたレシピ言語は、モデル訓練及び予測のための使用のための記録を準備するために、指定された組のデータ記録に対して行われる変換を、ユーザが容易かつ簡潔に指定することを可能にする。レシピ言語は、以下にさらに詳細に記載されるように、１つまたは複数の変換が適用される変数の個別化されたグループをユーザが作成し、中間変数及び他の人工物への依存性等を定義することを可能にしても良い。使用の流れの一例において、生データ記録は、まず、（例えば、ＭＬＳ  Ｉ／Ｏライブラリの助けを借りて、図１に示されるもの等の入力記録ハンドラによって）データソースから抽出され、１つまたは複数のレシピに従って処理され、次いで訓練または予測のための入力として使用されても良い。別の使用の流れにおいて、レシピ自体が、訓練行程及び／または予測行程を組み込んでも良い（例えば、宛先モデルまたはモデルは、レシピ内で指定されても良い）。レシピは、既に訓練サブセットと試験サブセットとに分割されたデータ記録、または訓練サブセット及び試験サブセットに分割する前のデータセット全体のいずかに適用されても良い。少なくとも一部の実施形態において、所与のレシピは、潜在的に様々な異なる機械学習問題領域のためのいくつかの異なるデータセットに対して再使用されても良い。ＭＬＳのレシピ管理構成要素は、（１つのモデルの出力が別のモデルのための入力として使用され得るか、または反復予測を行うことができる）理解し易い複合モデルの生成、ならびにデータ変換のためのベストプラクティスの共有及び再使用を可能にしても良い。少なくとも１つの実施形態において、所与の入力データセットから開始する、行われる連続的変換のパイプラインは、単一のレシピ内で指示されても良い。一実施形態において、ＭＬＳは、１つまたは複数のレシピのためのパラメータ最適化を行なっても良く、例えば、ＭＬＳは、特定の機械学習アルゴリズムのために使用されるより有益な一組の入力変数を識別する試みにおいて、分位ビンのサイズまたは語根の数がｎ−ｇｒａｍ内に含まれるような変換特性を自動的に変えても良い。
【００６２】
一部の実施形態において、変換レシピのテキストバージョン１１０１は、クライアントによる「ｃｒｅａｔｅＲｅｃｉｐｅ」ＭＬＳ  ＡＰＩ呼び出し内のパラメータとして渡されても良い。示されるように、レシピバリデータ１１０４は、例えば、描写される実施形態において、レシピのテキストバージョン１１０１がＭＬＳによって定義された文法１１５１に適合し、レシピが定義済みの順序で配置された１つまたは複数のセクションを含むことを確実にするために、語彙的正しさに関して、レシピのテキストバージョン１１０１を確認しても良い（レシピの予想される構造の例は、図１２に例示され、以下に記載される）。少なくとも一部の実施形態において、ＭＬＳによって受信されたレシピのバージョンは、必ずしもテキストバージョンである必要はなく、代わりに、例えば、前処理されたかまたは部分的に組み合わされたバージョン（これは、一部の事例では、プレーンテキストよりもむしろバイナリ形式でも良い）が、クライアントによって提供されても良い。一実施形態において、ＭＬＳは、例えば、ウェブベースのレシピ編集ツールまたはダウンロード可能な統合開発環境（ＩＤＥ）の形式の、レシピを準備するために使用することができるツールを提供しても良い。そのようなレシピ準備ツールは、例えば、構文及び／もしくはパラメータ選択ガイダンスの提供、自動構文エラー修正、ならびに／または（テキスト形式またはバイナリ形式のいずれかの）レシピがＭＬＳサービスに送信される前に、クライアント側でレシピテキストに対して少なくともある程度の前処理の実施を行なっても良い。レシピは、変数のカルテシアン積、（テキストデータの場合）ｎ−ｇｒａｍ、（数値データ変数の場合）分位ビン等を形成するための関数等の、１つまたは複数のライブラリ１１５２で定義された、いくつかの異なる変換関数または方法を使用しても良い。少なくとも一部の実施形態において、レシピ検証のために使用されるライブラリは、サービスのコアまたはネイティブにサポートされている特徴処理能力を向上させるためにＭＬＳ内に組み込まれたカスタム特徴処理拡張を表す、第三者またはクライアント提供の関数またはライブラリを含んでも良い。レシピバリデータ１１０４は、テキストバージョン１１０１で呼び出された関数が（ａ）ライブラリ１１５２のサポートされている関数内にあり、かつ（ｂ）適切な署名と一緒に使用されている（例えば、関数の入力パラメータがライブラリ内で指定されているパラメータの種類及びシーケンスと一致している）ことの検証にも関与しても良い。一部の実施形態において、ＭＬＳ顧客は、例えば、カスタム「ユーザ定義関数」（ＵＤＦ）もレシピ内に含むことができるように、追加の関数をライブラリの一部として登録しても良い。一部の実施形態において、ＵＤＦを利用することを望む顧客は、（例えば、ソースコード、実行可能なコード、またはモジュールのソースもしくは実行可能なバージョンがＭＬＳによって得られ得る第三者エンティティへの参照の形態の）ＵＤＦを実装するために使用することができるモジュールの指標を提供する必要があっても良い。一部の実装例において、例えば、Ｊａｖａ（商標）、Ｐｙｔｈｏｎ等を含むいくつかの異なる���ログラミング言語及び／または実行環境が、ＵＤＦのためにサポートされても良い。描写される実施形態において、レシピのテキストバージョンは、実行可能なバージョン１１０７に変換されても良い。レシピバリデータ１１０４は、レシピ言語のためのコンパイラに類似し、レシピのテキストバージョンは、ソースコードに類似し、実行可能なバージョンは、ソースコードから得られたコンパイルされたバイナリまたはバイトコードに類似していると見なされても良い。一部の実施形態において、実行可能なバージョンは、特徴処理計画とも称され得る。描写される実施形態において、レシピのテキストバージョン１１０１及び実行可能なバージョン１１０７の両方は、ＭＬＳ人工物レポジトリ１２０内に記憶されても良い。
【００６３】
一部の実施形態において、ＭＬＳの実行時間レシピマネージャ１１１０は、例えば、入力データセットを指定する「ｅｘｅｃｕｔｅＲｅｃｉｐｅ」ＡＰＩの同等物に応答して、レシピ実行のスケジューリングに関与しても良い。描写される実施形態において、それぞれの入力データセットＩＤＳ１及びＩＤＳ２を有する、同じレシピＲ１のための２つの実行要求１１７１Ａ及び１１７１Ｂが示される。入力データセットは、データ記録の変数が様々なデータ型、例えば、テキスト、数値データ型（例えば、実数または整数）、Ｂｏｏｌｅａｎ、２値データ型、カテゴリーデータ型、画像処理データ型、音声処理データ型、生物情報学データ型、非構造化情報管理アーキテクチャ（ＵＩＭＡ）に準拠した特定のデータ型等の構造化データ型等のうちのいずれかのインスタンスを含んでも良いデータ記録を含んでも良い。各事例において、実行時間レシピマネージャ１１１０は、Ｒ１の実行可能なバージョンを取得（または生成）し、（例えば、リクエスタがレシピを実行することを許可されること、入力データが正しいかまたは予想される形式であるように見えること等を確実にするために）一組の実行時間検証を行い、最終的にそれぞれのリソースセット１１７５Ａ及び１１７５ＢにＲ１の変換動作の実行をスケジュールしても良い。少なくとも一部の事例では、変換のために使用される特定のライブラリまたは関数は、入力記録のデータ型に基づいて判定されても良く、例えば、特定の構造化データ型のインスタンスは、そのデータ型のために定義された対応するライブラリの関数または方法を使用して処理される必要があっても良い。描写される実施形態において、それぞれの出力１１８５Ａ及び１１８５Ｂは、ＩＤＳ１及びＩＤＳ２に対してレシピＲ１を適用することにより生成されても良い。レシピＲ１の詳細に応じて、出力１１８５Ａは、モデルのための入力として使用されるデータ、または（予測もしくは評価等の）モデルの結果のいずれかを表しても良い。少なくとも一部の実施形態において、レシピは、実行要求に対して非同期的に適用されても良く、例えば、先に記載されるように、ジョブオブジェクトは、実行要求に応答してジョブ待ち行列内に挿入されても良く、実行は、後でスケジュールされても良い。一部の事例において、レシピの実行は、例えば、入力記録の取り扱いに関連したジョブ（データセットの解読、解凍、訓練セット及び試験セットへの分割等）の完了にあたり等、他のジョブに依存しても良い。一部の実施形態において、テキストレシピの検証及び／またはコンパイルはまた、または代わりに非同期的にスケジュールされるジョブを使用して管理されても良い。
【００６４】
一部の実施形態において、テキスト形式のレシピを指定し、指定されたデータセットに対してレシピを実行するための要求も含むクライアント要求は、受信されても良く、つまり図１１に示される静的分析行程及び実行行程は、必ずしも別個のクライアント要求を必要としなくても良い。少なくとも一部の実施形態において、クライアントは、例えば、ＭＬＳによってプログラム的に公開されているレシピコレクションから選択されたデータセットに対して実行される既存のレシピを単純に指示しても良く、レシピのテキストバージョンを生成する必要すらなくても良い。一実施形態において、ＭＬＳのレシピ管理構成要素は、一組の入力データ変数、及び／またはレシピ内に指示された変換の出力を調べ、他のグループよりも高い予測能力を有し得る変数または出力のグループを自動的に識別し、そのようなグループの指標をクライアントに提供しても良い。
【００６５】
図１２は、少なくとも一部の実施形態に従った、レシピのセクション例を例示する。描写される実施形態において、レシピ１２００のテキストは、グループ定義セクション１２０１、割り当てセクション１２０４、依存性セクション１２０７、及び出力／宛先セクション１２１０の４つの分離したセクションを含んでも良い。一部の実装例において、出力／宛先セクションのみが必須でも良く、他の実装例において、セクションの他の組み合わせもまた、またはセクションの他の組み合わせの代わりに必須でも良い。少なくとも１つの実施形態において、図１２に示される４つのセクションタイプのうちの２つ以上がレシピ内に含まれる場合、セクションは、指定された順序で配置される必要があっても良い。少なくとも１つの実施形態において、宛先モデル（すなわち、レシピ変換の出力が提供される機械学習モデル）は、出力セクションとは分離したセクションで指示されても良い。
【００６６】
グループ定義セクション１２０１で、名前によって暗示されるように、クライアントは、例えば、同じ変換動作がグループの全てのメンバー変数に適用されるということを、レシピ内で指示することをより容易にするため、入力データ変数のグループを定義しても良い。少なくとも一部の実施形態において、レシピ言語は、（入力データセット内の全ての変数を含む）ＡＬＬ＿ＩＮＰＵＴ、ＡＬＬ＿ＴＥＸＴ（データセット内の全てのテキスト変数）、ＡＬＬ＿ＮＵＭＥＲＩＣ（データセット内の全ての整数及び実数値変数）、ＡＬＬ＿ＣＡＴＥＧＯＲＩＣＡＬ（データセット内の全てのカテゴリー変数）、ならびにＡＬＬ＿ＢＯＯＬＥＡＮ（データセット内の全てのＢｏｏｌｅａｎ変数、例えば、（それぞれ一部の実装例において「１」及び「０」として表され得る）「真」または「偽」の値のみを有することができる変数）等の一組の基準グループを定義しても良い。一部の実施形態において、レシピ言語は、グループを定義するときに、ユーザが一部の変数の種類を変更または「投げる」ことを可能にしても良く、例えば、任意のテキストを含むように見えるが、年の月の名前、週の曜日、または国の州等の、不連続的な一組の値のみを有することが単に予想される変数は、一般的テキスト変数として取り扱われる代わりに、カテゴリー変数に変換されても良い。グループ定義セクション内で、方法／関数「ｇｒｏｕｐ」及び「ｇｒｏｕｐ＿ｒｅｍｏｖｅ」（またはセット動作を表す他の類似した関数）は、新しいグループを定義するときに変数を組み合わせるか、または除外するために使用されても良い。少なくとも一部の実施形態において、所与のグループ定義は、別のグループ定義と称され得る。図１２に示されるセクションコンテンツ１２５０の例において、ＬＯＮＧＴＥＸＴ、ＳＰＥＣＩＡＬ＿ＴＥＸＴ、及びＢＯＯＬＣＡＴの３つのグループが定義される。ＬＯＮＧＴＥＸＴは、「ｔｉｔｌｅ」及び「ｓｕｂｊｅｃｔ」と呼ばれる変数を除く、入力データ内の全てのテキスト変数を含む。ＳＰＥＣＩＡＬ＿ＴＥＸＴは、テキスト変数「ｓｕｂｊｅｃｔ」及び「ｔｉｔｌｅ」を含む。ＢＯＯＬＣＡＴは、入力データ内の全てのＢｏｏｌｅａｎ及びカテゴリー変数を含む。少なくとも一部の実施形態において、示されるグループ定義の例は、たとえ、データセットが「ｓｕｂｊｅｃｔ」変数、「ｔｉｔｌｅ」変数、いかなるＢｏｏｌｅａｎ変数、いかなるカテゴリー変数、またはさらにはいかなるテキスト変数を含まないとしても、任意のデータセットに適用することができることが留意される。そのような実施形態において、入力データセット内にテキスト変数が存在しない場合、例えば、ＬＯＮＧＴＥＸＴ及びＳＰＥＣＩＡＬ＿ＴＥＸＴの両方は、その特定の入力データセットに関して、メンバーのいない空のグループになるであろう。
【００６７】
レシピ１２００の他のセクションで参照されても良い中間変数は、割り当てセクション１２０４で定義されても良い。割り当てセクションの例において、「ｂｉｎａｇｅ」と呼ばれる変数は、「３０」のビン計数を用いて入力データ内の「ａｇｅ」変数に適用される（描写される実施形態において、レシピ言語の定義済みライブラリ関数の中に含まれることが想定される）「ｑｕａｎｔｉｌｅ＿ｂｉｎ」関数に関して定義される。「ｃｏｕｎｔｒｙｇｅｎｄｅｒ」と呼ばれる変数は、入力データセットの２つの他の変数「ｃｏｕｎｔｒｙ」及び「ｇｅｎｄｅｒ」のカルテシアン積として定義され、「ｃａｒｔｅｓｉａｎ」関数は、定義済みライブラリの一部であることが想定される。依存性セクション１２０７において、ユーザは、レシピが依存する（例示される例において、ＭＬＳ人工物識別子「ｐｒ−２３８７２−２８３４７−ａｌｋｓｄｊｆ」を有する、「ｃｌｕｓｔｅｒｍｏｄｅｌ」として参照されるモデル等の）他の人工物を指示しても良い。例えば、一部の事例では、レシピの依存性セクションで参照されるモデルの出力は、レシピの入力として取り込まれても良いか、または参照されるモデルの出力の一部分は、レシピの出力に含まれても良い。描写される実施形態において、依存性セクションは、レシピベースのジョブをスケジュールするとき、例えば、ＭＬＳジョブスケジューラによって使用されても良い。異なる実施形態において、他のレシピ、エイリアス、統計セット等を含む様々な人工物のうちのいずれかへの依存性は、所与のレシピ内で指示されても良い。
【００６８】
出力セクション１２１０の例において、いくつかの変換は、入力データ変数、変数のグループ、レシピの前のセクションで定義された中間変数、または依存性セクションで識別された人工物の出力に提供される。変換されたデータは、「ｍｏｄｅｌ１」と識別された異なるモデルに入力として提供される。用語頻度−逆文書頻度（ｔｆｉｄｆ）統計は、句読点が（「ｎｏｐｕｎｃｔ」関数を介して）削除された後に、ＬＯＮＧＴＥＸＴグループ内に含まれる関数に関して得られ、変数のテキストは、（「ｌｏｗｅｒｃａｓｅ」関数によって）小文字に変換される。ｔｆｉｄｆ測定値は、コレクションまたはコーパスの文書内のワードの相対的重要性を反映することが意図されても良く、所与のワードに対するｔｆｉｄｆ値は、典型的に、文書内のワードの発生数に比例し、コレクション全体内のワードの頻度によってオフセットされる。ｔｆｉｄｆ、ｎｏｐｕｎｃｔ、及びｌｏｗｅｒｃａｓｅ関数は全て、レシピ言語のライブラリ内で定義されることが想定される。同様に、出力セクションで指示された他の変換は、ｏｓｂ（直交スパースｂｉｇｒａｍ）ライブラリ関数、数値をビニングまたはグループ化するためのｑｕａｎｔｉｌｅ＿ｂｉｎライブラリ関数、及びカルテシアン積関数を使用する。セクション１２１０で指示される出力の一部は、必ずしも変換自体を伴わなくても良く、例えば、入力データセット内のＢＯＯＬＣＡＴグループの変数は、単純に出力内に含まれても良く、「ｃｌｕｓｔｅｒｍｏｄｅｌ」の「ｃｌｕｓｔｅｒＮｕｍ」出力変数は、いずれの変更もなしに、レシピの出力内にも含まれても良い。
【００６９】
少なくとも一部の実施形態において、出力セクション内に列挙されるエントリは、列挙されていないこれらの入力データ変数を暗黙的に破棄するために使用されても良い。したがって、例示される例において、例えば、入力データセットが「ｔａｘａｂｌｅ−ｉｎｃｏｍｅ」数値変数を含む場合、「ｔａｘａｂｌｅ−ｉｎｃｏｍｅ」数値変数が直接的または間接的に出力セクション内で参照されないため、その数値変数は、単純に破棄されても良い。図１２に示されるレシピ構文及びセクションずつの編成は、他の実施形態のものとは異なっても良い。異なる実施形態において、多岐にわたる関数及び変換タイプ（これらの少なくとも一部は、図１２に示される特定の例とは異なっても良い）は、サポートされても良い。一部の実施形態において、例えば、日／時間に関連した関数「ｄａｙｏｆｗｅｅｋ」、「ｈｏｕｒｏｆｄａｙ」「ｍｏｎｔｈ」等は、レシピ言語でサポートされても良い。少なくとも１つの実施形態において、数学的関数、例えば「ｓｑｒｔ」（平方根）、「ｌｏｇ」（対数）等が、サポートされても良い。一部の実施形態において、数値を（例えば、｛−Ｎ１〜＋Ｎ２｝の範囲のマップ値を、｛０〜１｝の範囲に）正規化するための関数、または欠損値を埋めるための関数（例えば、「ｒｅｐｌａｃｅ＿ｍｉｓｓｉｎｇ＿ｗｉｔｈ＿ｍｅａｎ（ＡＬＬ＿ＮＵＭＥＲＩＣ）」）が、サポートされても良い。一実施形態において、単一の表現内での１つまたは複数の事前に定義されたグループ変数、中間変数、または依存性への複数の参照が、許可されても良く、例えば、レシピ断片「ｒｅｐｌａｃｅ＿ｍｉｓｓｉｎｇ（ＡＬＬ＿ＮＵＭＥＲＩＣ，ｍｅａｎ（ＡＬＬ＿ＮＵＭＥＲＩＣ））」は、有効であると見なされても良い。少なくとも一部の実施形態において、「’ｉｎｃｏｍｅ’＋１０*’ｃａｐｉｔａｌ＿ｇａｉｎｓ’」等の変数の組み合わせを伴う数学的表現もまた、レシピ内に許可されても良い。一部のレシピにおいて、コメントは、「／／」等の区切り記号によって指示されても良い。
【００７０】
レシピ検証
図１３は、少なくとも一部の実施形態に従った、許容できるレシピ構文を定義するために使用され得る文法例を例示する。示される文法は、ＡＮＴＬＲ（ＡＮｏｔｈｅｒ  Ｔｏｏｌ  ｆｏｒ  Ｌａｎｇｕａｇｅ  Ｒｅｃｏｇｎｉｔｉｏｎ）の一バージョン等の構文解析ルーチン生成システムの必要条件に従ってフォーマットされても良い。示されるように、文法１３２０は、レシピ内で使用される表現の構文の規則を定義する。図１３に示されるものと類似した文法を前提として、ＡＮＴＬＲ等のツールは、レシピのテキストバージョンから抽象構文木を構築することができるよりも、構文解析系を生成しても良く、次いで、抽象構文木は、ＭＬＳ制御プレーンによって処理計画に変換されても良い。文法１３２０を使用して生成された木の例は、図１４に示される。
【００７１】
図１３に示される文法「ＭＬＳ−Ｒｅｃｉｐｅ」の例において、表現「ｅｘｐｒ」は、「ＢＡＲＥＩＤ」、「ＱＵＯＴＥＤＩＤ」、「ＮＵＭＢＥＲ」、または「ｆｕｎｃｔｉｏｎｃａｌｌ」のうちの１つであり得、後者の４つのエンティティの各々は、文法においてさらに深く定義される。ＢＡＲＥＩＤは、大文字または小文字で始まり、数値を含むことができる。ＱＵＯＴＥＤＩＤは、シングルクォート内に任意のテキストを含むことができる。ＮＵＭＢＥＲは、指数の有無に関わらない実数値、及び整数を含む。ｆｕｎｃｔｉｏｎｃａｌｌは、関数名（ＢＡＲＥＩＤ）に続いて丸括弧内にゼロ以上のパラメータを含まなければならない。空白及びコメントは、文法１３２０に従って抽象構文木を生成するとき、「  −＞  ｓｋｉｐ」で終了するラインに示されるように、無視される。
【００７２】
図１４は、少なくとも一部の実施形態に従った、レシピの一部分のための生成され得る抽象構文木の例を例示する。描写される実施形態において、テキスト「ｃａｒｔｅｓｉａｎ（ｂｉｎａｇｅ，ｑｕａｎｔｉｌｅ＿ｂｉｎ（‘ｈｏｕｒｓ−ｐｅｒ−ｗｅｅｋ’，１０））」を含むレシピ断片１４１０の例は、文法１３２０（または何か他の類似した文法）に従って抽象構文木１４２０に翻訳されても良い。示されるように、「ｃａｒｔｅｓｉａｎ」及び「ｑｕａｎｔｉｌｅ＿ｂｉｎ」は、各々が２つのパラメータを有する関数呼び出しとして認識される。例示されるレシピ断片の構文分析の間、レシピバリデータ１１０４は、「ｃａｒｔｅｓｉａｎ」及び「ｑｕａｎｔｉｌｅ＿ｂｉｎ」に渡されたパラメータの数及び順序がこれらの関数の定義に適合し、かつ、変数「ｂｉｎａｇｅ」及び「ｈｏｕｒｓ＿ｐｅｒ＿ｗｅｅｋ」が、レシピ内で定義されていることを確実にしても良い。これらの条件のうちのいずれかが満たされていない場合、「ｃａｒｔｅｓｉａｎ」断片が配置されているレシピ内のライン番号を示すエラーメッセージが、レシピを提出したクライアントに提供されても良い。仮に検証エラーがレシピ全体の中に見つからなかったとして、レシピの実行可能なバージョンが生成されても良く、その中で、部分１４３０は、断片１４１０を表しても良い。
【００７３】
領域固有レシピコレクション
少なくとも一部の実施形態において、ＭＬＳの一部のユーザは、少なくともＭＬＳを使用し始めたときの期間の間、特徴処理の専門家ではない場合がある。したがって、ＭＬＳは、ユーザに、様々な問題領域において有益であることが既に見出されているレシピのコレクションへのアクセスを提供しても良い。図１５は、少なくとも一部の実施形態に従った、機械学習サービスから利用可能な領域固有レシピの検索のために使用され得るプログラム的インターフェースの例を例示する。示されるように、高レベルガイダンスをＭＬＳユーザに提供するメッセージ領域１５０４、及びレシピが利用可能ないくつかの問題領域を含む、ウェブページ１５０１が、レシピ検索のために実装されても良い。描写される実施例において、ＭＬＳ顧客は、チェックボックスを使用して、問題領域の中でもとりわけ、詐欺検出１５０７、感情分析１５０９、画像分析１５１１、ゲノム分析１５１３、または音声認識１５１５から選択することができる。ユーザは、描写されるウェブページ内の検索語テキストブロック１５１７を使用して、他の問題領域と関連付けられたレシピを検索しても良い。
【００７４】
選択された問題領域（画像分析）に関して、顔認識についてレシピＦＲ１及びＦＲ２、脳腫瘍認識についてＢＴＲ１、海のゴミ認識についてＯＤＡ１、ならびに天文学的事象検出についてＡＥＤ１の５つのレシピ例へのリンクが、ウェブページ１５０１に示されている。所与のレシピに関する追加の詳細は、レシピの名前をクリックすることによりユーザによって得られても良く、例えば、一部の実施形態において、レシピが行うことについての説明が提供されても良く、他のユーザによって提出されたレシピの格付け／等級付けが提供されても良く、他のユーザによってレシピ上に提出されたコメント、以下同様である。ユーザが、（変更せずにか、またはレシピを変更した後のいずれかに）使用したいレシピを見つけた場合、ユーザは、例えば、その後のＭＬＳ  ＡＰＩ呼び出し内に含めるために、レシピのテキストバージョンをダウンロードすることができても良い。描写される実施形態において、メッセージ領域１５０４に示されるように、ユーザは、ＭＬＳによって公開されているコレクションに含めるために、自身のレシピも提出することができても良い。少なくとも一部の実装例において、ＭＬＳは、他のユーザアクセスを許可する前に、（例えば、レシピが様々な入力データセットに対して意味のある出力を生成していることを確認することにより）提出されたレシピに対して何らかの組の検証行程を行なっても良い。
【００７５】
レシピ変換のための自動パラメータ調整
数値データ属性の分位ビンの作成、ｎｇｒａｍの生成、または分析される文書からのスパースもしくは低頻度単語の削除等の多くの種類の特徴処理変換動作に関して、ビンのサイズ／境界、ｎｇｒａｍの長さ、スパースワードに対する削除基準等のパラメータが、一般的に選択される必要があっても良い。（一部の環境においてハイパーパラメータとも称され得る）そのようなパラメータの値は、レシピ出力を使用して立てられる予測に著しい影響を与え得る。一部の実施形態において、ＭＬＳユーザが手動で各パラメータ設定またはパラメータ設定の各組み合わせに対する要求を提出する必要がある代わりに、ＭＬＳは、自動パラメータ調査をサポートしても良い。図１６は、少なくとも一部の実施形態に従った、クライアントの代わりにレシピ変換のためのパラメータ設定の範囲を自動的に調査し、そのような調査の結果に基づいて許容できるか、または推奨されるパラメータ設定を選択する機械学習サービスの例を例示する。
【００７６】
描写される実施形態において、ＭＬＳクライアント１６４は、パラメータ自動調整設定１６０６を含むレシピ実行要求１６０１の実行を依頼しても良い。例えば、クライアント１６４は、入力データ内の１つまたは複数の変数の分位ビニングのビンサイズ／境界は、サービスによって選択されるべきであること、またはｎ−ｇｒａｍ内のワード数は、サービスによって選択されるべきであることを指示しても良い。一部の実施形態において、パラメータ調査及び／または自動調整は、所与のデータセットが分類されるべきであるクラスタの数、クラスタ境界閾値（例えば、どれくらい離れた２つの地理的位置が一組の「近くの」位置の一部と見なされ得るか）等の様々なクラスタ化関連パラメータに対して要求されても良い。一部の実施形態において、特徴処理の間に所与の画像がトリミング、回転、またスケーリングされるべき程度等の様々な種類の画像処理パラメータ設定は、自動調整のための候補であっても良い。自動パラメータ調査はまた、（例えば、Ｌａｔｅｎｔ  Ｄｉｒｉｃｈｌｅｔ  Ａｌｌｏｃａｔｉｏｎ（ＬＤＡ）技術に従って）テキスト文書のベクトル表現の選択次元値、または他の自然言語処理技術のためにも使用されても良い。一部の事例では、クライアントは、例えば、許容できるパラメータ値に達するように、パラメータ値空間の調査を終了するために使用される基準も指示しても良い。少なくとも一部の実施形態において、クライアントは、ＭＬＳに使用される承認基準を決定させる選択肢を与えられても良く、そのような選択肢は、非熟練ユーザにとって特に有用であり得る。一実装例において、クライアントは、パラメータ調査のためのリソースまたは実行時間の限度を指示しても良い。少なくとも１つの実装例において、少なくとも一部の出力変換のための自動調整設定の規定の設定は、「真」でも良く、例えば、クライアントは、ＭＬＳが変換に関してパラメータ空間を調査することを防ぐために、自動調整を行わないことを明確に指示する必要があっても良い。
【００７７】
自動調整が所与の変換動作に関して行われるという判定に応答して、ＭＬＳ（例えば、レシピ実行時間マネージャ１６４０のパラメータエクスプローラー１６４２）は、（例えば、１０、２０、３０、及び４０の分位ビン計数が特定の数値変数に関して調査されるべきかどうか）変換に対するパラメータ調整範囲１６５４を選択しても良い。異なる実施形態において、パラメータ範囲は、類似した変換、リソース制約、入力データセットのサイズ等に関してＭＬＳに知られているベストプラクティスを含む、様々な要因に基づいて選択されても良い。いくつかの変換動作の組み合わせのためのそれぞれのパラメータが調整されるシナリオにおいて（例えば、分位ビニングが２つ以上の変数のために自動調整される場合）、パラメータエクスプローラー１６４２は、試される組み合わせの数が閾値未満に保たれるように、各パラメータのそれぞれの組の値を選択しても良い。パラメータ値の範囲が判定されると、パラメータエクスプローラーは、各パラメータ値または組み合わせに対する変換の反復を実行し、少なくとも一部の実装例において、反復結果１６５６を一時記憶装置に記憶しても良い。異なるパラメータ値に対して生成された結果のセット、及び使用される最適化基準に基づいて、少なくとも１つのパラメータ値が、各パラメータに対し許容できるとして、識別されても良い。描写される実施形態において、自動調整される異なるパラメータの承認または推奨されるパラメータ値または値１６６８を示す結果通知１６６７が、クライアントに提供されても良い。一部のパラメータについて、特定のパラメータ値を単一の最良の値として識別するのは、例えば、いくつかの異なる値が、類似した結果を生じる場合があるため、必ずしも簡単ではない場合がある。一部の実施形態において、そのようなパラメータについて単一の最適な値を識別する代わりに、ＭＬＳは、代わりに、その組の全ての値が類似した質の結果を提供するような、所与のパラメータＰに対する一組の候補値｛Ｖ１、Ｖ２、Ｖ３、…、Ｖｎ｝を識別しても良い。この組の候補値は、クライアントに提供され、使用される特定のパラメータ値をクライアントが選択することを可能にしても良く、クライアントは、選択されたパラメータ値に関してＭＬＳに通知しても良い。一実施形態において、クライアントは、使用されるパラメータ値設定について必ずしも知らされずに、承認／最適化されたパラメータ値を使用して得られたレシピ変換の結果の指標のみを提供されても良い。
【００７８】
再使用可能なレシピを介して特徴処理をサポートする方法
図１７は、少なくとも一部の実施形態に従った、データセット変換のための再使用可能なレシピをサポートしている機械学習サービスで行われ得る動作の代用を例示する流れ図である。要素１７０１に示されるように、入力データセットに対して行われる変換動作のためのレシピのテキストバージョンの指標は、プロバイダネットワークに実装されたネットワークにアクセス可能なＭＬＳで受信されても良い。一実施形態において、レシピテキストは、ＭＬＳによって定義されたレシピ言語に従った４つのセクション：グループ定義セクション、割り当てセクション、依存性セクション、及び（単純に出力セクションとも称され得る）出力／宛先セクションのうちの１つまたは複数を含んでも良い。一部の実施形態において、（出力セクション等の）１つまたは複数のセクションは、必須でも良い。一般に、出力／宛先セクションは、レシピの他のセクションで定義されるエンティティに対して、または直接データセットの入力変数に対して行われる様々な特徴処理変換動作を指示しても良い。グループ定義セクションは、入力変数のカスタムグループ（または他のグループと組み合わせた入力データ変数、もしくは他のグループから派生したグループ）を定義するために使用されても良い。そのようなグループ定義は、出力セクションで、共通変換がいくつかの変数に適用されることを指定することを容易にし得る。一部の実施形態において、ＡＬＬ＿ＮＵＭＥＲＩＣまたはＡＬＬ＿ＣＡＴＥＧＯＲＩＣＡＬ等のいくつかの組み込みまたは定義済みグループが、レシピ作成者が新しいグループを定義するときに、変数除外及び使用される組み合わせを容易に指示することを可能にするために、「ｇｒｏｕｐ＿ｒｅｍｏｖｅ」及び「ｇｒｏｕｐ」等の関数と共に、レシピ言語によってサポートされても良い。割り当てセクションは、レシピ内の他所で使用され得る１つまたは複数の中間変数を定義するために使用されても良い。依存性セクションは、レシピが別の機械学習人工物（例えば、モデル、もしくは別のレシピ）、またはＭＬＳのレポジトリに記憶された複数の他の人工物に依存することを指示しても良い。一部の実施形態において、出力セクションは、依存性セクションで指示された人工物の指定された入力変数、定義されたグループ、中間変数または出力に適用される特定の変換だけでなく、変換結果が入力として提供される宛先モデルも指示しても良い。
【００７９】
機械学習サービスは、図１２に例示される関数の種類等の、レシピの出力セクションで使用することができる様々な異なる変換動作を含むライブラリをネイティブにサポートしても良い。一部の実施形態において、各々が所与の問題領域または機械学習アルゴリズムのそれぞれのクラスに対応するいくつかの異なるライブラリが、ＭＬＳによってサポートされても良い。さらに、一実施形態において、ＭＬＳ顧客は、ＭＬＳのコア特徴処理能力を拡張するために、ＭＬＳに（「ユーザ定義関数」またはＵＤＦと呼ばれる）自身のカスタム関数、第三者関数、または複数のＵＤＦまたは第三者関数を含むライブラリを登録することができても良い。一部の実施形態において、ＵＤＦは、クライアントによって（例えば、１つまたは複数のテキスト形式及び／または１つまたは複数のバイナリ形式を含む）様々な異なる形式でＭＬＳに提供されても良い。そのような実施形態において、いくつかの異なるプログラミングまたはスクリプト言語が、ＵＤＦのためにサポートされても良い。一部の実施形態において、外部で生成された変換関数またはライブラリをＭＬＳに登録するためのＡＰＩがサポートされ、例えば、新規に登録された関数を他のクライアントがアクセス可能にするか、または提出したクライアントによる使用を制限させるかをクライアントが指示することを可能にしても良い。一実装例において、レシピは、それ自体の関数がレシピで使用される１つまたは複数のライブラリ（例えば、ＭＬＳのコアライブライまたは標準ライブラリ以外のライブラリ）が列挙されても良いインポートセクションを含んでも良い。一部の実装例において、ＭＬＳは、リソース使用制限を少なくとも一部のＵＤＦに課しても良く、例えば、ＣＰＵ時間、メモリ、ディスクスペース等の暴走消費を防ぐために、上限が、所与のＵＤＦが実行することができる時間に設定されても良い。このように、潜在的にエラーが起こりやすいＵＤＦ（例えば、ある特定の条件下でそれ自体の論理が無限ループを含むＵＤＦ）の実行の負の結果が制限されても良い。少なくとも一部の実施形態において、レシピテキスト（またはレシピテキストが読み出され得るファイルもしくはＵＲＬ）は、ＭＬＳクライアントによって呼び出される（「ｃｒｅａｔｅＲｅｃｉｐｅ」ＡＰＩ等の）ＡＰＩ内のパラメータとして渡されても良い。
【００８０】
レシピテキストは、文法、及び例えば、サポートされている変換方法または関数を定義する一組のライブラリの一組の構文規則に従って、ＭＬＳで検証されても良い（要素１７０４）。少なくとも一部の実施形態において、構文エラーまたは解決不可能なトークンがテキスト検証チェック中に識別された場合、修正される必要があるテキストの部分を示すエラーメッセージが、（例えば、ライン番号及び／またはエラーを含むトークンを示すことにより）レシピ提出者に提供されても良い。エラーが発見されないか、または見つかったエラーが修正され、レシピが再提出された後、レシピテキストの実行可能なバージョンが、生成されても良い（要素１７０７）。描写される実施形態において、レシピの１つまたは両方のバージョン（テキストバージョン及び実行可能なバージョン）は、ＭＬＳの人工物レポジトリに記憶されても良く、例えば、ＭＬＳによって生成された固有のレシピ識別子が、レシピ提出者に提供される。
【００８１】
ＭＬＳは、例えば、異なるＡＰＩ呼び出しに応答してか、またはレシピの最初の提出が実行要求の中に含まれているため、レシピが特定のデータセットに適用されることを判定しても良い（要素１７１０）。データセットは、データセットが実行時間承認基準を満たすこと、例えば、入力変数名及びデータ型がレシピ内で指示されているものと適合すること、及びデータセットが許容できるサイズのものであることを確認しても良い（要素１７１３）。一組のプロバイダネットワークリソース（例えば、ＭＬＳによって判定された適切な量の記憶装置容量及び／またはネットワーク容量で構成された１つまたは複数の計算サーバ）が、レシピ実行のために識別されても良い（要素１７１６）。次いで、レシピ内で指示された変換は、入力データセットに適用されても良い（要素１７１９）。一部の実施形態において、図１６に関して上で記載されるように、ＭＬＳは、変換のうちの１つまたは複数のための許容できるパラメータ値を識別することを目指すパラメータ調査を行なっても良い。描写される実施形態において、レシピ変換が完了した（及び／または変換の結果がレシピ自体の中で指定されたモデル等の適切な宛先に提供された）後、レシピの実行が完了したという通知が、実行を要求したクライアントに提供されても良い（要素１７２２）。
【００８２】
Ｉ／Ｏ効率的入力データフィルタリングシーケンス
先に言及されたように、一部の機械学習入力データセットは、（例えば、テラバイトのように）機械学習サービスの任意の所与のサーバで利用可能であり得るメモリ容量よりもはるかに大きくあり得る。モデルを訓練し評価するために、いくつかのフィルタリングまたは入力記録並べ替え動作が、時折入力データセットに対して、順々に行われる必要がある場合がある。例えば、分類モデルを交差検証するために、同じ入力データセットが、複数回、訓練データセット及び試験データセットに分割される必要がある場合があり、そのような分割動作は、入力フィルタリングの一例と見なされても良い。他の入力フィルタリング動作の種類には、サンプリング（データセットのサブセットを得る）、入れ換え（入力データオブジェクトの順序の並べ替え）、あるいは並列化のための区分（例えば、ｍａｐ−ｒｅｄｕｃｅもしくは類似の並列計算パラダイムを使用して実行される計算のため、またはモデルの複数の並列訓練動作を行うためにデータセットをＮサブセットに分ける）が含まれ得る。数テラバイトのスペースを消費するデータセットが、（連続的入れ換えまたは分割等の）各フィルタリング動作に対して、永続的記憶装置から読み出され、及び／または永続的記憶装置に書き込まれる場合、Ｉ／Ｏ動作単独だけのためにかかる時間は、特に、Ｉ／Ｏの大きな断片が循環ディスクベース記憶装置からの入力データセットの個々の観測記録のランダム読み出しを含む場合、禁止になっても良い。したがって、一部の実施形態において、大きなデータセットを複数のサーバのメモリ内に一旦読み出されるより小さな連続的チャンクへとマッピングし、次いで連続的フィルタリング動作間に、データセットを永続的記憶装置にコピーせずに、一連のチャンクレベルフィルタリング動作のシーケンスを決まった場所で行う技法が、機械学習サービスで実行されても良い。少なくとも１つのそのような実施形態において、Ｉ／Ｏライブラリは、機械学習サービスによって実装され、クライアントがデータソース非依存ＡＰＩの単一の呼び出しを介して、指定されたデータセットに対して行われる様々な入力フィルタリング動作を指定すること可能にしても良い。そのようなライブラリは、入力データセットが表等の構造化データベースオブジェクト内よりもむしろ、ファイルシステムディレクトリ内のファイル内に記憶された、異なる長さの観測記録を含むシナリオにおいて特に有用であり得るが、以下に記載されるチャンキング及びインメモリフィルタリング技法は、一般に以下に記載されるように（データベースを含む）様々なデータソース型のうちのいずれかに対して行われても良い。Ｉ／Ｏライブラリは、クライアントが様々な種類のデータソース（例えば、シングルホストファイルシステム、分散ファイルシステム、プロバイダネットワークに実装されたもののストレージサービス、非リレーショナルデータベース、リレーショナルデータベース等）を指示することを可能にしても良く、同じ種類のフィルタリング動作が使用されるデータソースの種類に関わらずサポートされ得るという点で、データソース非依存と見なされても良い。一部の事例では、所与の入力データセットのそれぞれのサブセットが、異なる種類のデータソース内に記憶されても良い。
【００８３】
図１８は、少なくとも一部の実施形態に従った、機械学習サービス（ＭＬＳ）による大きな入力データセットに効率的インメモリフィルタリング動作を行うための手順例を例示する。示されるように、描写される実施形態において、機械学習サービスのクライアントが観測記録を抽出することを望むデータソース１８０２は、ファイルＦ１、Ｆ２、Ｆ３、及びＦ４等の複数のデータオブジェクトを含んでも良い。ファイルのサイズは異なっても良く、及び／または任意の所与のファイル内の観測記録の数は、他のファイル内の観測記録の数と異なっても良い。本明細書で使用される場合、「観測記録」という用語は、機械学習動作のための入力データを指すとき、「データ記録」という用語と同義に用いられる場合がある。ここから、クライアントによって提出されたデータ記録抽出要求は、例えば、ファイルＦ１、Ｆ２、Ｆ３、及びＦ４の位置（例えば、ディレクトリ名または一組のＵＲＬ）を参照することにより、データソース１８０２を指示しても良い。描写される実施形態において、抽出要求に応答して、ＭＬＳは、データセット全体のサイズ（例えば、ファイルの合わせたサイズ）を確認または推定し、統合されたアドレス空間を形成するためにファイルが論理的に連結されるべき順序を判定しても良い。示される例において、データセット１８０４は、例えば、Ｆ１、Ｆ２、Ｆ３、及びＦ４の順序でファイルを論理的に連結することにより生成されても良い。一部の実施形態において、クライアントのデータ記録抽出要求は、（少なくとも最初に）マルチファイルデータセットのファイルが組み合わされる順序、及び／またはファイルのサイズを指定しても良い。他の実施形態において、ＭＬＳは、（例えば、ファイル名の語彙的順序付け、ファイルのサイズ等の様々な要因の任意の組み合わせに基づいて）連結順序を判定しても良い。ファイルが、図１８及びいくつかのそれに続く図において観測記録が記憶されるデータオブジェクトの例として使用されるが、様々な実施形態において、入力フィルタリングの同様の技法が、使用されるデータオブジェクトの種類（例えば、ブロックレベルインターフェースを提供する容量、データベース記録等）に関わらず使用されても良いことが留意される。
【００８４】
次いで、データセット１８０４の連結されたアドレス空間は、チャンクマッピング１８０６に示されるように、複数の連続的チャンクに細分されても良い。異なる実施形態において、チャンクのサイズ（Ｃｓ）は、いくつかの要因のうちのいずれかに基づいて判定されても良い。例えば、一実施形態において、チャンクサイズは、クライアントのデータ記録抽出要求に対する応答の少なくとも一部分が生成されるＭＬＳサーバ（例えば、図１のプール１８５のサーバ）のメモリ内に各チャンクが入ることができるように設定されても良い。いくつかのＭＬＳサーバの各々でデータ記録のために利用可能なメモリ部分がＳｍである単純なシナリオを、考えられたい。そのようなシナリオにおいて、図１８に示されるように、ＣｓがＳｍ以下であるようにチャンクサイズＣｓが選択されても良い。他の実施形態において、たとえ異なるサーバがデータ記録に利用可能なメモリの異なる容量を有したとしても、クライアント要求は、チャンクサイジングの好みを指示しても良いか、またはＭＬＳは、使用される規定のチャンクサイズを定義しても良い。一部の実施形態において、１つの記録抽出要求に応答するために使用されるチャンクサイズは、別の記録抽出要求に対して使用されるものとは異なっても良く、他の実施形態において、同じチャンクサイズが、複数の要求、または全ての要求に対して使用されても良い。連結データセット１８０４の（例えば、ランダムに選択されたサブ部よりもむしろ）連続的チャンクへの細分化は、図１９に関して、以下に例示されるように、ランダム読み出しを介して読み出される必要がある断片よりも効率的な連続読み出しを介して読み込むことができるデータセットの断片を、増加させ得る。一部の実施形態において、所与のチャンクマッピングの異なるチャンクは、異なるサイズを有しても良く、例えば、チャンクサイズは、所与のデータセットの全てのチャンクと必ずしも同じである必要はない。データセットのチャンクへの最初の細分化は、データセットに対する物理的Ｉ／Ｏ動作の前に行われても良い論理動作を表すことが留意される。
【００８５】
描写される実施形態において、最初の組の候補チャンク境界１８０８は、例えば、使用されるチャンクサイズに基づいて判定されても良い。示されるように、少なくとも一部の実施形態において、候補チャンク境界は、ファイル境界と一致する必要はない。少なくとも一部の実施形態において、図２２を参照して以下にさらに詳細に記載されるように、候補チャンク境界は、チャンクが最終的に読み出されるとき、チャンク境界を観測記録境界と一致させるようにいくらか変更される必要があっても良い。一部の実施形態において、チャンクレベルフィルタリング計画１８５０は、例えば、クライアントの要求内に含まれる（検索記述子とも称され得る）フィルタリング記述子のコンテンツに基づいて、チャンクされたデータセット１８１０に対して生成されても良い。チャンクレベルフィルタリング計画は、例えば、ｍａｐ  ｒｅｄｕｃｅ等の並列計算のための入れ換え、分割、サンプリング、または区分等の複数のインメモリフィルタリング動作１８７０（例えば、１８７０Ａ、１８７０Ｂ、及び１８７０Ｎ）が入力データのチャンクに対して行われるシーケンスを指示しても良い。一部の実施形態において、機械学習モデルは、例えば、入力データセットのそれぞれの（及び部分的に重複している可能性がある）サブセットが並列で所与のモデルを訓練するために使用され得るモデルの並列化訓練をサポートしても良い。そのようなシナリオにおいて、１つの訓練動作の持続時間は、別のものの持続時間と少なくとも部分的に重複しても良く、入力データセットは、チャンクレベルフィルタリング動作を使用して、並列訓練セッションのために区分されても良い。例えば、チャンクレベル入れ換えは、所与のチャンク内の観測記録の相対順序を必ずしも並べ替えない、チャンクの相対順序の並べ替えを伴っても良い。様々な種類のチャンクレベルフィルタリング動作の例が、以下に記載される。
【００８６】
少なくとも一部の実施形態において、クライアントは、フィルタリング動作の少なくとも一部が、個々のデータ記録の粒度よりもむしろデータセットのチャンクに対して行われることを必ずしも知らない場合がある。描写される実施形態において、チャンクのコンテンツ（例えば、Ｃ１、Ｃ２、Ｃ３、及びＣ４内にそれぞれ含まれる観測記録）のデータ転送１８１４は、そのシーケンスの最初のフィルタリング動作に従って、１つまたは複数のＭＬＳサーバのメモリ内にデータセットを書き込むために行われても良い。そのシーケンスの最初のインメモリフィルタリング動作を実行するために、例えば、チャンクの最小の一部が記憶される１つまたは複数の永続的記憶装置に向けられた一組の読み出しが、実行されても良い。一部の実施形態において、復元及び／または解読も、例えば、フィルタリング動作１８７０のシーケンスの１つまたは複数の動作の前に必要であっても良い。例えば、データが圧縮された形態で永続的記憶装置内に記憶された場合、そのデータは、クライアントによって提供されたか、またはＭＬＳによって判定された復元命令／メタデータに従って復元されても良い。同様に、ソースデータが暗号化されている場合、ＭＬＳは、（例えば、クライアントによって提供または指示されたキーまたは証明書を使用して）データを解読しても良い。
【００８７】
一組の読み出し（及び／または一組の関連した復元／解読動作）が完了した後、少なくともチャンクＣ１〜Ｃ４のサブセットが、ＭＬＳサーバメモリ内に存在しても良い。（そのシーケンスの最初のフィルタリング動作がサンプルの生成を伴う場合、例えば、全てのチャンクが読み込まれる必要すらなくても良い。）描写される実施形態において、計画１８５０の残りのフィルタリング動作は、例えば、チャンクのうちのいずれかのコンテンツを永続的記憶装置にコピーせずに、及び／またはチャンクのうちのいずれかのコンテンツをソースデータ位置から再び読み出さずに、ＭＬＳサーバメモリ内の適所で行われても良い。例えば、第１のフィルタリング動作のインメモリの結果は、第２のフィルタリング動作のための入力データセットとして機能しても良く、第２のフィルタリング動作のインメモリの結果は、第３のフィルタリング動作のための入力データセットとして機能しても良く、以下同様である。描写される実施形態において、フィルタリング動作のシーケンスの最終出力は、（すなわち、観測記録の様々な変数のコンテンツを判定する）記録構文解析１８１８のための入力として使用されても良い。次いで、構文解析の結果として生成された観測記録１８８０は、１つまたは複数の宛先、例えば、モデル（複数可）１８８４及び／または特徴処理レシピ（複数可）１８８２への入力として提供されても良い。したがって、描写される実施形態において、物理的読み出し動作の単一パスだけが、多数の異なるフィルタリング動作を実行する必要があっても良く、これは、データセットが各連続的フィルタリング動作のために永続的記憶装置にコピーされる（または再読み出しされる）シナリオと比較して、実質的入力処理の加速をもたらし得る。もちろん、複数のチャンクレベル及び／または観測記録レベル動作は、永続的記憶装置にアクセスせずにメモリ内で行われても良いが、例えば、その結果が別のジョブのために後で再使用され得るように、任意のそのような動作の結果は、必要な場合、永続的記憶装置に記憶されても良い。したがって、ディスクベースの記憶装置または他の永続的記憶装置に対する頻繁かつ潜在的に時間のかかるＩ／Ｏ動作の回避は、上述の技法によってより簡単にされるが、永続的記憶装置に対するＩ／Ｏは、依然として適用の必要条件に基づいて、必要に応じて、かつ必要なときに任意の段階で行われても良い。
【００８８】
上述のようにチャンクレベルで入れ換えまたはサンプリング等のフィルタリング動作を行うことによって、個々のデータ記録に向けられたランダムな物理的読み出し動作を回避することができる。（例えば、分類モデルを交差検証するために）入力データセットが入れ換えられ、入れ換えは１メガバイトのチャンクサイズを用いてチャンクレベルで行われるシナリオを考えると、データセットのデータ記録は、１キロバイトの平均サイズを有し、復元または解読のいずれも必要ではない。元のデータセットのサイズが１０００メガバイトであった場合、ランダム入れ換えの任意の所与の反復において、１０００個のチャンクが論理的に配置される順序は、変更されても良い。しかしながら、任意の所与のチャンク内のデータ記録の順序は、チャンクレベル入れ換え動作において変わらないであろう。結果として、特定のチャンク（例えば、１０００個のチャンクの内チャンク６５４）内にある全てのデータ記録は、入れ換えの結果を使用してモデルを訓練するためのグループとして提供される。チャンク６５４内の記録が目的の（入力変数とも称され得る）独立変数Ｖ１に関してランダムに分散されていない場合、チャンクレベル入れ換えは、訓練目的のためのＶ１の値のランダム化に関して、最終的には、例えば、記録レベル入れ換えほどは良くない場合がある。したがって、少なくとも一部のシナリオにおいて、データ記録レベルではなくチャンクレベルでフィルタリングを行なった結果として、統計の質または予測正確さのいくらかの損失が存在する場合がある。しかしながら、一般に質／正確さの損失は、チャンクサイズを適切に選択することにより、適度な範囲内に保たれ得る。図１９は、少なくとも一部の実施形態に従った、機械学習データセットへのフィルタリング動作シーケンスのために使用されるチャンクサイズを変化させることに関連したトレードオフを例示する。
【００８９】
２つのチャンクマッピング例に対応する読み出し動作が、図１９に所与のデータセットＤＳ１に対して示される。提示を単純化するために、データセットＤＳ１は、ＤＳ１上で読み出し動作（ランダム読み出しまたは一組の連続読み出しのいずれか）を開始するために、ディスク読み出しヘッドが指定されたオフセットで位置付けられる必要があるように、単一のディスク上に記憶されると仮定する。チャンクマッピング１９０４Ａにおいて、Ｓ１のチャンクサイズが使用され、ＤＳ１は、その結果、データセットアドレス空間内のオフセットＯ１、Ｏ２、Ｏ３、及びＯ４から開始する４つの連続的チャンクに細分される。（図１９及びそれに続く図に示されるマッピング例において、チャンクの数は、説明される概念を例示するために自明に少なく保たれ、実際面では、データセットは、数百または数千のチャンクを含んでも良いことが留意される。）４個のチャンクを読み出すために、合計（少なくとも）４つの読み出しヘッド位置付け動作（ＲＨＰ）が行われる。ディスク読み出しヘッドをオフセットＯ１に位置付けた後、例えば、Ｏ１〜Ｏ２の間にオフセットを有するＤＳ１のコンテンツを含む第１のチャンクが、連続的に読み込まれても良い。この連続読み出し（ＳＲ１）または一組の連続読み出しは、ディスク読み出しヘッドが連続読み出しの間に再位置付けされる必要がなくても良く、（「シーキング」とも知られる）ディスク読み出しヘッド位置付けは、多くの場合、数メガバイトのデータを連続的に読み出すのにかかる時間と同じ桁数のものであり得る数ミリ秒かかる場合があるため、典型的にランダム読み出しと比較して早くあり得る。したがって、Ｓ１のチャンクサイズを用いて、４個のチャンクにマッピングされたデータセットＤＳ１全体の読み出しは、４つの緩徐なＲＨＰ（ＲＨＰ１〜ＲＨＰ４）及び４つの速い連続読み出し（ＳＲ１〜ＳＲ４）を含む、読み出し動作混合１９１０Ａを伴っても良い。
【００９０】
Ｓのチャンクサイズを使用する代わりに、マッピング１９０４Ｂにおいて見られるように２Ｓのチャンクサイズ（マッピング１９０４Ａのために使用されるサイズの２倍）が使用された場合、たった２つのＲＨＰが、読み出し動作混合１９１０Ｂに示されるように必要であり（オフセットＯ１に対して１つ及びオフセットＯ３に対して１つ）、データセットは、２つの連続読み出しシーケンスＳＲ１及びＳＲ２を介して読み込まれ得る。したがって、ＤＳ１を読み出すために必要な緩徐な動作の数は、使用されるチャンクサイズに反比例して減少する。トレードオフグラフ１９９０のＸ軸上で、チャンクサイズは、左から右に増加し、Ｙ軸上に、チャンクサイズの変化から生じた様々なメトリックにおける変化が例示される。一般に、チャンクサイズの増加は、大きなデータセットをメモリ内に転送するための総読み出し時間（ＴＲＴ）を減少させる傾向がある。たとえ異なるチャンクの読み出しを並列で行うことができたとしても、連続的に読み出されるデータの断片の増加は、一般に総読み出し時間を減少させる傾向がある。チャンクサイズの増加は、一般に、グラフ１９９０に示されるサーバ当たりのメモリ必要条件（ＭＲ）曲線によって示されるように、チャンクコンテンツを保持するためにＭＬＳサーバにより多くのメモリを必要とし得る。最後に、先に論じられたように、少なくとも一部の種類の機械学習問題に関して、チャンクサイズの増加は、機械学習モデルの若干より低い質の統計（ＱＳ）または若干より低い予測正確さをもたらす場合がある。これは、所与のチャンク内の記録が、チャンクが互いに対してフィルタリングされるのと同じ手段で、全データセット内の記録に対して（または互いに対して）フィルタリングされない場合があるため、起こり得る。したがって、ＭＬＳがチャンクサイズを選択することができるシナリオにおいて、グラフ１９９０に示される総読み出し時間間のトレードオフ、メモリ必要条件、及び統計的質が考慮に入れられる必要があり得る。実際面では、チャンクの全データセットに対するサイズに応じて、より大きなチャンクの使用によってもたらされる統計の質の低下は、極めて小さくあり得る。少なくとも一部の実施形態において、チャンクとＭＬＳサーバとの間に１：１の関係が存在する必要はなく、例えば、所与のＭＬＳサーバは、データセットの複数のチャンクを記憶するように構成されても良い。一部の実施形態において、部分的チャンクまたはチャンクのサブセットもまた、ＭＬＳサーバに記憶されても良く、例えば、所与のサーバのメモリに記憶されているチャンクの数は、整数である必要はない。様々な実施形態において、チャンクレベルフィルタリング動作に加えて、以下にさらに詳細に記載されるように、統計の質の低下をさらに低減するのに役立ち得る、チャンク内及び／またはチャンク間フィルタリング動作が（例えば、観測記録レベルで）行われても良い。グラフ１９９０に示される曲線は、正確な数学的関係ではなく、広い定性的関係を例示することが意図されることが留意される。異なるメトリックがチャンクサイズに対して変化する速度は、グラフに示されるものとは異なる場合があり、実際の関係は、示される滑らかな曲線または線によって表すことが必ずしも可能ではない場合がある。
【００９１】
図２０ａは、少なくとも一部の実施形態に従った、入れ換え、続いて分割を含むチャンクレベルフィルタリング動作のシーケンス例を例示する。示されるように、チャンクされたデータセット２０１０は、１０個のチャンクＣ１〜Ｃ１０を含む。図２０ａの上部のチャンクＣ１の詳細図は、チャンクＣ１の構成観測記録ＯＲ１−１〜ＯＲ１−ｎを示し、連続的観測記録は、区切り記号２００４によって区切られている。示されるように、データセットまたはチャンクの観測記録は、同じサイズのものである必要はない。計画１８５０のインメモリチャンクレベルフィルタリング動作のうちの１つでも良いチャンクレベル入れ換え動作２０１５において、チャンクが再順序付けされる。入れ換え後、チャンクの順序は、Ｃ５−Ｃ２−Ｃ７−Ｃ９−Ｃ１０−Ｃ６−Ｃ８−Ｃ３−Ｃ１−Ｃ４でも良い。描写される実施例では、後続のチャンクレベル分割動作２０２０において、チャンク（例えば、Ｃ５−Ｃ２−Ｃ７−Ｃ９−Ｃ１０−Ｃ６−Ｃ８）のうちの７０％が、訓練セット２０２２内に入れられても良い一方で、チャンク（Ｃ３−Ｃ１−Ｃ４）のうちの３０％は、試験セット２０２４に入れられても良い。描写される実施例において、入れ換えがチャンクレベルで行われているとき、所与のチャンク内の観測記録の内部順序付けは、変更されないままである。したがって、チャンクＣ１の観測記録は、入れ換え及び分割後、入れ換え及び分割フィルタリング動作が行われた前の順序と同じ相対順序（ＯＲ１−１、ＯＲ１−２、…、ＯＲ１−ｎ）である。描写される実施形態において、少なくとも一部の種類のフィルタリング動作に関して、永続的記憶装置へのコピーを回避することに加えて、チャンクコンテンツは、１つのメモリ位置から別のメモリ位置に移動される必要すらない場合があることが留意される。例えば、入れ換えの間にチャンクをＣ１−Ｃ２−Ｃ３−Ｃ４−Ｃ５−Ｃ６−Ｃ７−Ｃ８−Ｃ９−Ｃ１０からＣ５−Ｃ２−Ｃ７−Ｃ９−Ｃ１０−Ｃ６−Ｃ８−Ｃ３−Ｃ１−Ｃ４に物理的に再順序付けする代わりに、チャンクへのポインタが、入れ換え後に最初のチャンクを指示するポインタがＣ１の代わりにＣ５を指す等のように、変更されても良い。
【００９２】
一部の実施形態において、先に言及されたように、観測記録レベルでのフィルタリングもまた、ＭＬＳによってサポートされても良い。例えば、クライアントの記録抽出要求は、チャンクレベルフィルタリング及び記録レベルフィルタリングの両方のための記述子を含んでも良い。図２０ｂは、少なくとも一部の実施形態に従った、チャンクレベルフィルタリング及びチャンク内フィルタリングを含むインメモリフィルタリング動作のシーケンス例を例示する。描写される実施例において、同じ組のチャンクレベルフィルタリング動作は、図２０ａに例示されるもののように行われ、すなわち、チャンクレベル入れ換え２０１５が、データセット２００４に対して行われ、続いて訓練セット２０２２及び試験セット２０２４への７０−３０分割２０２０が行われても良い。しかしながら、チャンクレベル分割後、チャンク内入れ換え２０４０もまた行われ、チャンクのうちのいくつかまたは全て内の観測記録の再配置をもたらす。チャンク内入れ換えの結果として、チャンクＣ１の観測記録は、例えば、入力としてチャンクレベル入れ換えの前の観測記録の元の順序とは異なるＯＲ１−５、ＯＲ１−ｎ、ＯＲ１−４、ＯＲ１−１、ＯＲ１−２、…の順序で、モデルまたは特徴処理レシピに（または後続のフィルタリング動作に）提供されても良い、図２０ａまたは図２０ｂに示されていない他のチャンク（例えば、Ｃ２〜Ｃ１０）の観測記録もまた、クライアントのフィルタリング記述子に従って同様の方式で入れ換えられても良い。少なくとも１つの実施形態において、チャンク間（ｃｒｏｓｓ−ｃｈｕｎｋ）記録レベルフィルタリング動作もまた、サポートされても良い。例えば、少なくとも２個のチャンクＣｊ及びＣｋが所与のＭＬＳサーバＳ１のメモリに読み込まれるシナリオを考える。チャンク間入れ換えにおいて、Ｃｊの少なくとも一部の観測記録は、Ｓ１のメモリ内のＣｋの観測記録の一部を用いて入れ換えまたは再順序付されても良い。そのような実施形態において、他の種類の記録レベルフィルタリング動作（例えば、サンプリング、分割、または区分）もまた、所与のサーバのメモリ内に一緒に配置されているチャンクをまたがって行われても良い。一実装例において、複数のサーバは、互いに協働して、チャンク間動作を行なっても良い。一部の用途に関して、単一のチャンクレベルフィルタリング動作のみが、結果の組のチャンクレベル動作が特徴処理のためのレシピに、または訓練のためのモデルに供給される前に行われても良く、つまり、複数のチャンクレベル動作のシーケンスは必要でなくても良い。少なくとも一部の実施形態において、（観測記録の集約／収集、または集約関数を観測記録の選択された変数の値に適用する等の）他の種類の動作もまた、１つまたは複数のチャンクレベル動作の後に行われても良い。
【００９３】
チャンクレベルまたは観測記録レベルのいずれかでフィルタリング動作を行うための能力は、いくつかの異なる代替手段が同じ入力フィルタリング目標を達成することを可能にし得る。図２１は、少なくとも一部の実施形態に従った、データセットのインメモリサンプリングの代替手法の例を例示する。１０個のチャンクＣ１〜Ｃ１０を含むチャンクされたデータセット２１１０のサンプルのうちの６０％が得られ、つまり、データセットの観測記録のおおよそ６０％が保存される一方で、観測記録のうちのおおよそ４０％は、サンプリング動作の出力から除外される。
【００９４】
「１」のラベルが付けられた矢印によって示される第１の手法において、チャンクの簡単なチャンクレベルサンプリング２１１２が実行され、例えば、所望のサンプルとしてチャンクＣ１、Ｃ２、Ｃ４、Ｃ６、Ｃ８、及びＣ１０の選択をもたらしても良い。第２の手法において、チャンクレベルサンプリング及びチャンク内サンプリングの組み合わせが、使用されても良い。例えば、「２」のラベルが付けられた矢印によって示されるように、第１の行程において、チャンクレベルサンプリング２１１４を使用して、（チャンクＣ１、Ｃ２、Ｃ３、Ｃ５、Ｃ６、Ｃ７、Ｃ８、及びＣ９の保存をもたらす）チャンクのうちの８０％が選択されても良い。次いで、チャンク内サンプリング行程２１１６において、保存されているチャンクの各々の観測記録のうちの７５％が選択され、（８０％のうちの７５％は６０％であるため）観測記録のうちのおおよそ６０％の最終出力をもたらしても良い。「３」のラベルが付けられた矢印によって示される第３の代替手法において、各チャンクの観測記録のうちの６０％が、単一のチャンク内サンプリング行程２１１８においてサンプリングされても良い。少なくとも一部の実施形態において、所与の入力フィルタリング目標を達成するための同様の代替手段及び組み合わせもまた、他の種類のフィルタリング動作のためにサポートされても良い。
【００９５】
少なくとも一部の実施形態において、候補チャンク境界は、個々の観測記録が分割されないことを確実にし、かつ観測記録がチャンクに割り当てられる方式における整合性を確実にするために、調節される必要があっても良い。図２２は、少なくとも一部の実施形態に従った、観測記録境界の位置に基づいてチャンク境界を判定する例を例示する。データセット２２０２Ａは、区切り記号２２６５等の記録区切り記号によって区切られた（サイズが異なっても良い）観測記録ＯＲ１〜ＯＲ７を含む。例えば、データソースが英数字ファイルまたはテキストファイルを含む一実装例において、新しいライン文字（「＼ｎ」）または他の特殊文字が、記録区切り記号として使用されても良い。選択されたチャンクサイズに基づいて、候補チャンク境界は、データセット２２０２Ａ内の観測記録の本体内に期せずして含まれる。描写される実施例において、候補チャンク境界（ＣＣＢ）２２０４Ａは、観測記録ＯＲ２内に含まれ、ＣＣＢ２２０４Ｂは、ＯＲ４内に含まれ、ＣＣＢ２２０４Ｃは、ＯＲ６内に含まれる。描写される実施形態において、以下の手法を使用して、実際のチャンク境界（ＡＣＢ）を識別しても良い。所与のチャンクの終了境界のためのＣＣＢの直後にオフセットで開始し、（例えば、連続走査または読み出しで）増加オフセットの順序でデータセットを調べ、見つかった最初の観測記録区切り記号が、チャンクの終了ＡＣＢとして選択される。このように、データセット２２０２Ａの例において、ＯＲ２とＯＲ３との間の区切り記号の位置が、ＣＣＢ２２０４Ａに対応する実際のチャンク境界２２１４Ａとして識別される。同様に、ＡＣＢ２２１４Ｂは、ＯＲ４とＯＲ５との間の区切り記号に対応し、ＡＣＢ２２１４Ｃは、ＯＲ６とＯＲ７との間の区切り記号に対応する。実際のチャンク境界の選択の結果として、チャンク表２２５２Ａに示されるように、チャンクＣ１が、ＯＲ１及びＯＲ２を含み、チャンクＣ２が、ＯＲ３及びＯＲ４を含み、チャンクＣ３が、ＯＲ５及びＯＲ６を含む一方で、チャンクＣ４は、ＯＲ７を含む。記載される技法を使用して、各観測記録が、１つ、かつたった１個のチャンクにマッピングされる。
【００９６】
一部の実施形態において、チャンク境界の判定に関する同じ規則は、たとえ、ＣＣＢが期せずしてＯＲ区切り記号と一致したとしても、適用されても良い。例えば、データセット２２０２Ｂにおいて、ＣＣＢ２２０４Ｋが、期せずしてＯＲ２とＯＲ３とを区切っている区切り記号と一致し、ＣＣＢ２２０４Ｌが、ＯＲ４とＯＲ５とを区切っている区切り記号と一致する一方で、ＣＣＢ２２０４Ｍは、ＯＲ６及びＯＲ７とを区切っている区切り記号と一致する。上で言及された規則を使用して、各事例において、次の区切り記号の検索は、ＣＣＢの直後にオフセットで開始し、次に見つかった区切り記号がＡＣＢとして選択される。結果として、ＡＣＢ２２１４Ｋは、ＯＲ３とＯＲ４との間の区切り記号に位置付けられ、ＡＣＢ２２１４Ｌは、ＯＲ５とＯＲ６との間の区切り記号に位置付けられ、ＡＣＢ２２１４Ｍは、ＯＲ７とＯＲ８との間の区切り記号に位置付けられる。チャンク表２２５２Ｂに示されるように、データセット２２０２ＢのチャンクＣ１は、最終的にＯＲ１、ＯＲ２、及びＯＲ３を含み、チャンクＣ２は、ＯＲ４及びＯＲ５を含み、チャンクＣ３は、ＯＲ６及びＯＲ７を含み、チャンクＣ４は、ＯＲ８を含む。
【００９７】
図２３は、少なくとも一部の実施形態に従った、様々なデータソース型のうちのいずれかからのデータ記録の抽出のための要求に応答して機械学習サービスでスケジュールされ得るジョブの例を例示する。示されるように、クライアント１６４がデータソース非依存方式で観測記録抽出／検索要求２３１０の提出をすることを可能にする一組のプログラミングインターフェース２３６１が、機械学習サービスによって実装されても良い。ウェブサービスインターフェースをデータオブジェクトに提示しても良いオブジェクトストレージサービス２３０２、ブロックデバイスインターフェースを提示する容量を実装するブロックストレージサービス２３０４、（Ｈａｄｏｏｐ  Ｄｉｓｔｒｉｂｕｔｅｄ  Ｆｉｌｅ  ＳｙｓｔｅｍまたはＨＤＦＳ等の）様々な分散ファイルシステム２３０６のうちのいずれか、及び（Ｌｉｎｕｘ（登録商標）ベースのオペレーティングシステムによってサポートされても良いＥｘｔ３の異形等の）シングルホストファイルシステム２３０８等のいくつかの異なる種類２３１０のデータソースが、ＭＬＳによってサポートされても良い。少なくとも一部の実施形態において、データベース（例えば、リレーショナルデータベースまたは非リレーショナルデータベース）もまた、サポートされているデータソースであり得る。サポートされている種類のデータソースのうちのいずれかを使用して実行されたデータオブジェクト（例えば、ファイル）は、２３５２Ａ及び２３５２Ｂのラベルが付けられた矢印によって示されるように、検索要求において参照されても良い。一部の実装例において、単一のクライアント要求は、いくつかの異なる種類のデータソース、及び／または１つまたは複数のデータソース型のいくつかの異なるインスタンス内に位置されるファイル等の入力データオブジェクトを参照しても良い。例えば、所与の入力データセットの異なるサブセットが、２つの異なるシングルホストファイルシステム２３０８に配置されたファイルを含んでも良い一方で、別の入力データセットのそれぞれのサブセットは、オブジェクトストレージサービス及びブロックストレージサービスに配置されても良い。
【００９８】
ＭＬＳ要求ハンドラ１８０は、（例えば、ｍａｐ−ｒｅｄｕｃｅ計算等の並列計算のため、またはやがて互いに重複し、使用される訓練セット内で互いに重複しても良いモデル訓練動作／セッションのための）入れ換え、分割、サンプリング、区分等のある組み合わせ等の、１つまたは複数のデータソースに配置された指定されたデータセットに対して行われるフィルタリング動作のシーケンスを指示する記録抽出要求２３１０を受信しても良い。フィルタリング計画ジェネレータ２３８０は、指定されたデータセットのチャンクマッピング、ならびに、描写される実施形態において、（チャンクレベル、記録レベルのいずれか、またはこれら両方のレベルでの）フィルタリング動作の要求されたシーケンスを達成するための複数のジョブ、及び１つまたは複数のＭＬＳジョブ待ち行列１４２内にジョブを挿入する挿入ジョブを生成しても良い。例えば、１つまたは複数のチャンク読み出しジョブ２３１１は、データソースから読み込みデータに生成されても良い。必要である場合、別個のジョブが、（ジョブ２３１２等の）チャンクを復元し、及び／またはデータ（ジョブ２３１３）を解読するために作成されても良い。描写される実施形態において、ジョブ２３１４が、チャンクレベルフィルタリング動作のために生成されても良い一方で、ジョブ２３１５は、観測記録レベルフィルタリング動作のために生成されても良い。描写される実施形態において、観測記録レベルでのフィルタリング動作は、チャンク内動作（例えば、所与のチャンク内の記録の入れ換え）及び／またはチャンク間動作（例えば、所与のＭＬＳサーバのメモリ内に一緒に配置されていても良い２個以上の異なるチャンクの記録の入れ換え）を含んでも良い。少なくとも一部の実施形態において、それぞれのジョブは、各チャンクに対する各種類の動作のため作成されても良く、したがって、例えば、チャンクマッピングが１００個のチャンクを生じる場合、１００個のジョブが１個のチャンクそれぞれを読み込むために作成されても良く、１００個のジョブが第１のチャンクレベルフィルタリング動作等のために作成されても良い。他の実施形態において、所与のジョブは、複数のチャンクを伴う動作のために作成されても良く、例えば、別個のジョブが、各チャンクのために必要でなくても良い。一部の実施形態において、以下にさらに詳細に記載されるように、データセットの訓練セット及び試験セットへの分割は、訓練セットに対して１つ、及び試験セットに対して１つの別個のジョブとして実行されても良い。先に論じられたように先に論じられたように、所与のジョブは、他のジョブへの依存性を指示しても良く、そのような依存性は、クライアントによって要求されたフィルタリングタスクが正しい順序で行われることを確実にするために使用されても良い。
【００９９】
図２４は、少なくとも一部の実施形態に従った、機械学習サービスによって実装されたＩ／Ｏ（入力／出力）ライブラリのプログラム的インターフェースを使用してクライアントによって提出され得る、記録抽出要求の構成要素例を例示する。示されるように、観測記録（ＯＲ）抽出要求２４０１は、入力データセットが取得される位置（複数可）またはアドレス（複数可）を指定するソースデータセット指標２４０２を含んでも良い。ウェブサービスインターフェースを提示するオブジェクトストレージサービス内に記憶されているデータセットに関しては、例えば、１つまたは複数のＵＲＬ（統一資源位置指定子）またはＵＲＩ（統一資源識別子）が指定されても良く、ファイルに関しては、１つまたは複数のファイルサーバホスト名、１つまたは複数のディレクトリ名、及び／または１つまたは複数のファイル名のある組み合わせが、指標２４０２として提供されても良い。一実装例において、データセットが２つ以上のファイル等の複数のオブジェクトを含む場合、クライアントは、統合されたアドレス空間を形成するために、データセットのオブジェクトの論理的連結（例えば、「ディレクトリｄ１のファイルをファイル名によるアルファベット順で、次いでディレクトリｄ２のファイルをアルファベット順で組み合わせる」の論理的同等物）のための命令を含んでも良い。一部の実施形態において、観測記録の予想される形式２４０４またはスキーマが、ＯＲ抽出要求内に含まれても良く、例えば、ＯＲの変数またはフィールドの名前、変数間区切り記号（例えば、カンマ、コロン、セミコロン、タブ、または他の文字）及びＯＲ区切り記号、ならびに変数のデータ型等を指示しても良い。少なくとも１つの実装例において、ＭＬＳは、規定のデータ型（例えば、「文字列」または「文字」）をデータ型がクライアントによって指示されない変数に割り当てても良い。
【０１００】
一実施形態において、ＯＲ抽出要求２４０１は、例えば、データセットのために使用される圧縮アルゴリズム、圧縮されたデータが記憶されるユニットまたはブロックのサイズ（これは、チャンクレベルインメモリフィルタリング動作が行われるチャンクのサイズとは異なっても良い）、及びデータセットを正しく復元するために必要不可欠であり得る他の情報を指示する圧縮メタデータ２４０６を含んでも良い。一部の実施形態において、キー、証明書、及び／またはデータセットに対して使用される暗号化アルゴリズムの指標等の解読メタデータ２４０８は、要求２４０１内に含まれても良い。データセットへの読み出しアクセスを得ることを可能にするために使用される承認／認証メタデータ２４１０は、一部の実装例において、クライアントによって要求２４０１内に及びある特定の種類のデータソースのために提供されても良い。そのようなメタデータは、例えば、アカウント名もしくはユーザ名及び対応する組の証明書、または（図３に示されるセキュリティコンテナ３９０と類似した）セキュリティコンテナのための識別子及びパスワードを含んでも良い。
【０１０１】
描写される実施形態において、ＯＲ抽出要求２４０１は、例えば、チャンクレベル及び／またはＯＲレベルで行われるフィルタリング動作（入れ換え、分割、サンプル等）の種類、ならびにフィルタリング動作が実行される順序を指示する１つまたは複数のフィルタリング記述子２４１２を含んでも良い。一部の実装例において、１つまたは複数の記述子２４５２は、チャンクレベルフィルタリング動作のために含まれても良く、１つまたは複数の記述子２４５４は、記録レベル（例えば、チャンク内及び／またはチャンク間）フィルタリング動作のために含まれても良い。各々のそのような記述子は、対応するフィルタリング動作、例えば、分割動作に関しては分割比、サンプリング動作に関してはサンプリング比、データセットが並列計算または並列訓練セッションのために細分される区分の数、記録のスキーマが無効であることが見つかった場合に講じられる措置等のためのパラメータを指示しても良い。
【０１０２】
少なくとも１つの実施形態において、ＯＲ抽出要求２４０１は、例えば、特定の許容できるチャンクサイズまたは許容できるチャンクサイズの範囲を指示するチャンキング好み２４１４を含んでも良い。フィルタリング動作シーケンスの出力が向けられる宛先（複数可）（例えば、特徴処理レシピまたはモデル）は、フィールド２４１６内で指示されても良い。一部の実施形態において、クライアントは、ＭＬＳによって使用されるサーバの種類を選択するため、または所望の目標を達成することが意図されるフィルタリングシーケンス計画を生成するために使用されても良い、「完了」時間等のフィルタリング動作に関する性能目標２４１８を指示しても良い。少なくとも一部の実施形態において、図２５に示される構成要素の全てが記録抽出要求内に含まれなくても良く、例えば、圧縮及び／または解読関連フィールドは、圧縮及び／または暗号化された形態で記憶されるデータセットのためだけに含まれても良いことが留意される。
【０１０３】
図２５は、少なくとも一部の実施形態に従った、大きな入力データセットへのインメモリフィルタリング動作シーケンスのためのＩ／Ｏライブラリを実装する機械学習サービスで行われ得る動作の態様を例示する流れ図である。クライアントが、図２４に例示されるものと類似した観測記録抽出要求を提出することを可能にするＩ／Ｏライブラリが、実装されても良い。Ｉ／Ｏライブラリは、入力データセットが記憶されるデータストアの種類に関して非依存でも良く、例えば、共通の一組のプログラム的インターフェースは、いくつかの異なるデータストアタイプの任意の組み合わせで記憶された記録抽出要求に対して提供されても良い。ＭＬＳサーバの利用可能なメモリ内に大きすぎて入らない場合があるソースデータセットを指示するそのようなＯＲ抽出要求が、受信されても良い（要素２５０１）。ＯＲ抽出要求は、入力データセットに対して行われるフィルタリング動作のシーケンスを指示する１つまたは複数の記述子を含んでも良い。
【０１０４】
入力データセットの連続的サブセットを１つまたは複数のＭＬＳサーバのメモリ内に転送するために使用されるチャンクサイズは、例えば、ＭＬＳサーバのメモリ容量制約、要求元クライアントによって要求のパラメータを介して指示された好み、ＭＬＳの規定の設定、入力データセットの推定サイズまたは実際のサイズ等の様々な要因のうちのいずれかに基づいて判定されても良い（要素２５０４）。一部の実装例において、いくつかの異なるチャンクサイズが、選択されても良く、例えば、一部のＭＬＳサーバは、他のサーバよりも大きいメモリ容量を有しても良く、そのためより大きなメモリを有するサーバに対するチャンクは、より大きくても良い。一部の実施形態において、入力データセットが複数の（ファイル等の）オブジェクトを含む場合、オブジェクトは、単一の統合されたアドレス空間を形成するために論理的に連結されても良い（要素２５０７）。オブジェクトが連結されるシーケンスは、例えば、要求内に提供される命令またはガイダンスに基づいて、オブジェクト名のアルファベット順に基づいて、ファイルサイズの順で、ランダムな順序で、またはＭＬＳによって選択された何らかの他の順序で判定されても良い。
【０１０５】
チャンクマッピングは、データセットに対して生成されても良く（要素２５１０）、これは選択されたチャンクサイズ（複数可）及び統合されたアドレス空間に基づいて、一組の候補チャンク境界を指示する。入力データセットのデータオブジェクトまたはオブジェクト内の候補チャンク境界の位置またはオフセットは、マッピング生成プロセスの一部として計算されても良い。ＯＲ抽出要求内のフィルタリング記述子（複数可）に対応するチャンクレベルフィルタリング動作のシーケンスのための計画が、作成されても良い（要素２５１３）。一部の実施形態において、計画は、チャンクレベルフィルタリング動作に加えてか、またはチャンクレベルフィルタリング動作の代わりに、記録レベルフィルタリング動作（例えば、チャンク内動作またはチャンク間動作）を含んでも良い、一部の実施形態において、チャンク間動作は、例えば、所与のＭＬＳサーバのメモリ内に一緒に配置されるいくつかのチャンクの観測記録に対して行われても良い。他の実施形態において、チャンク間動作はまた、または代わりに異なるＭＬＳサーバのメモリに読み込まれたチャンクに対して行われても良い。サポートされているフィルタリング動作の種類は、サンプリング、分割、入れ換え、及び／または区分を含んでも良い。計画の第１のフィルタリング動作に少なくとも部分的に基づいて、永続的記憶装置からＭＬＳサーバメモリへの、少なくともデータセットのチャンクのサブセットのデータ転送が、行われても良い（要素２５１６）。一部の実施形態において、データがＯＲ抽出要求内で指示されるソース位置に記憶される方式に応じて、データ転送プロセスは、読み出し動作に加えて、解読及び／または解凍を含んでも良い。一部の実施形態において、クライアントは、ソース位置からＭＬＳサーバへチャンクを転送する前に、データを暗号化及び／または圧縮するようＭＬＳに要求し、次いで暗号化／圧縮されたデータがＭＬＳサーバに到着したら、逆動作（解読及び／または解凍）を行なっても良い。
【０１０６】
描写される実施形態において、そのシーケンスの最初のフィルタリング動作がＭＬＳサーバのメモリ内で行われた後、（存在する場合）残りのフィルタリング動作が、例えば、チャンクを永続的記憶装置にコピーせずにか、またはチャンクをチャンクの元のソース位置に対して再読み出しせずに適所で行われても良い（要素２５１９）。一実施形態において、それぞれのジョブは、生成され、フィルタリング動作のうちの１つまたは複数のためのＭＬＳジョブ待ち行列内に入れられても良い。少なくとも一部の実施形態において、記録構文解析系は、行われたフィルタリング動作のシーケンスの出力から観測記録を得るために使用されても良い（要素２５２２）。ＯＲは、（例えば、ＯＲ抽出要求を表すＡＰＩ呼び出しに応答して返された配列またはコレクションとして）要求元クライアントに、及び／またはモデルまたは特徴処理レシピ等の指定された宛先にプログラム的に提供されても良い（要素２５２５）。
【０１０７】
入力データセットの整合的フィルタリング
図２６は、少なくとも一部の実施形態に従った、機械学習モデルによって立てられた予測の質を改善するために使用され得る反復手順の例を例示する。以下に記載されるように、手順には、例えば、いくつかの交差検証反復の各々のための入力データセットの再分割または再入れ換えが含まれても良い。ラベル付けされた観測記録を含む入力データセット（すなわち、従属変数の値または「ラベル」が既知である観測記録）は、例えば、連続的に行うことができる物理的Ｉ／Ｏの断片を増加させるために上述の技法を使用して、一組の連続的チャンク２６０２にマッピングされても良い。インメモリチャンクレベル分割動作２６０４は、訓練セット２６１０及び試験セット２６１５を得るために行われても良い。１つのシナリオにおいて、例えば、チャンクの８０％は、訓練セット２６１０内に含まれても良く、チャンクの残りのうちの２０％は、試験セット２６１５内に含まれても良い。候補モデル２６２０は、訓練実行２６１８で訓練されても良い（例えば、線形回帰モデルに関しては、データセットの様々な独立変数／入力変数に割り当てられる候補係数が判定されても良い）。次いで、候補モデル２６２０を使用して、試験セットについての予測を立てても良く、（例えば、そのモデルがどれくらい正確に候補係数を使用して試験セットの記録の従属変数の予測を生成することができたかを示す）モデルの評価結果２６２５が、得られても良い。異なる実施形態において、正確さまたは質の様々な測定値２６３０が、使用されるモデルの種類に応じて得られても良く、例えば、二乗平均平方根誤差（ＲＭＳＥ）または標準偏差（ＲＭＳＤ）が、線形回帰モデルに関して計算されても良く、試験セットのサイズに対する真陽性と真陰性との合計の比が、二項分類問題に関して計算されても良く、以下同様である。
【０１０８】
描写される実施形態において、正確さ／質測定値２６３０が満足できるものである場合、候補モデル２６２０は、承認済みモデル２６４０として指定されても良い。さもなければ、いくつかの技法のうちのいずれかが、モデルの予測の質または正確さを向上させる試みにおいて採用されても良い。モデル調整２６７２は、予測のために使用される一組の独立変数または入力変数の変更、（木ベースの分類モデルの最小バケットサイズまたは最大木深度等の）モデル実行パラメータの変更等、及び追加の訓練実行２６１８の実行を含んでも良い。モデル調整は、結果の正確さまたは質を向上させる試みにおいて、各反復における入力変数とパラメータとのある組み合わせを変えた同じ訓練セット及び試験セットを使用して反復して行われても良い。モデル改善に対する別の手法において、変更２６７４が、連続的訓練／評価反復のために訓練データセット及び試験データセットに加えられても良い。例えば、入力データセットは、（例えば、チャンクレベルで及び／または観測記録レベルで）入れ換えられても良く、新しい組の訓練／試験セットが、訓練の次の一巡のために得られても良い。別の手法において、データの質は、例えば、観測記録の変数値が無効または外れ値であるような観測記録を識別し、そのような観測記録をデータセットから削除することによって改善されても良い。モデル改善のための１つの共通手法は、図２７を参照して以下に記載されるように、同じ基礎となるデータから抽出された指定された数の異なる訓練セット及び試験セットを使用した、候補モデルの交差検証を伴っても良い。一部の実施形態において、まさにモデル調整２６７２の複数回反復が行われても良いように、データセット変更２６７４もまた、例えば、所望のレベルの質／正確さのいずれかが得られるまで、モデル改善のために利用可能なリソースまたは時間が枯渇するまで、または試されている変更がもはやモデルの質または正確さにおいてほとんど改善をもたらさなくなるまで、反復的に行われても良い。
【０１０９】
図２７は、少なくとも一部の実施形態に従った、機械学習モデルの交差検証のために使用され得るデータセット分割の例を例示する。描写される実施形態において、ラベル付けされた観測記録２７０２を含むデータセットは、各々がデータのうちの８０％を含むそれぞれの訓練セット２７２０（例えば、２７２０Ａ〜２７２０Ｅ）、及びデータの残りのうちの２０％を含む対応する試験セット２７１０（例えば、２７１０Ａ〜２７１０Ｅ）を得るために、５つの異なる部分に分割される。訓練セット２７２０の各々が、モデルを訓練するために使用されても良く、次いで、対応する試験セット２７１０が、モデルを評価するために使用されても良い。例えば、交差検証反復２７４０Ａにおいて、モデルは、訓練セット２７２０Ａを使用して訓練され、次いで試験セット２７１０Ａを使用して評価されても良い。同様に、交差検証反復２７４０Ｂにおいて、（図２７の１部及び２部の２つの部分で示される）入力データのうちの８０％を含む異なる訓練セット２７２０Ｂが使用されても良く、異なる試験セット２７１０Ｂが、モデルを評価するために使用されても良い。図２７に例示される交差検証例は、（生成される異なる訓練／試験セット組の数及び訓練／評価反復の対応する数のために）「５分割交差検証」と称され得る。一部の実施形態において、ＭＬＳは、クライアントがｋ分割交差検証を要求することを可能にするＡＰＩを実装しても良く、ここで、ｋは、同じ基礎となる入力データセットを使用して指定されたモデルを訓練するために生成される異なる訓練セット（及び対応する試験セット）の数を指示するＡＰＩパラメータである。
【０１１０】
ラベル付けされた観測記録は、図２７に示される例において、８個のチャンクＣ１〜Ｃ８の間で分散される。先に言及されたように、チャンクサイズ及び境界は、ＭＬＳサーバのメモリサイズ限度、クライアントの好み等の様々な要因のうちのいずれかに基づいて判定されても良い。一部のシナリオにおいて、（図２７に例示される８０／２０分割等の）所望の分割比は、所与のチャンクの観測記録が訓練セット及び対応する試験セットをまたがって分散される必要があることをもたらし得る。つまり、一部の事例では、部分的チャンクは、訓練セット及び試験セット内に含まれる必要があっても良い。例えば、チャンクＣ２の一部の観測記録が、試験セット２７１０Ａ内に含まれても良い一方で、チャンクＣ２の他の観測記録は、訓練セット２７２０Ａ内に含まれても良い。
【０１１１】
少なくとも一部の実施形態において、訓練セットは、図２７で入力データセットの連続的部分を含むように見え得るが、実際面では、訓練データセット及び試験データセットは、（例えば、チャンクレベル、観測記録レベルのいずれか、またはこれら両方のレベルで）ランダム選択を使用して得られても良いことが留意される。異なる交差検証反復２７４０Ａ〜２７４０Ｅの訓練セット及び試験セット内に含まれる一組の観測記録を変更することにより、立てられた予測の質は、一般に、入力データセットの異なるサブセット内の入力変数値のローカライズされた不均一性の影響が低減され得るため、改善し得る。例えば、試験セット２７１０Ａ内のデータ記録のサブセット内の独立数値変数の値が、通常、全データセット全体の変数の平均と比較して高い場合、モデル正確さ／質へのその変則の効果は、他の交差検証反復のための異なる試験データセットの使用によって、消失されることが予測される。
【０１１２】
図２８は、少なくとも一部の実施形態に従った、擬似乱数のシーケンスを使用して行われ得る交差検証のための入力データセットの整合的チャンクレベル分割の例を例示する。乱数ベースの分割アルゴリズム２８０４は、連続的訓練／評価反復（ＴＥＩ）のために、データセットチャンクＣ１〜Ｃ１０を訓練セット及び試験セットに分けるために使用される。各ＴＥＩは、例えば、図２７に例示されるもの等の特定の交差検証反復を表しても良いが、そのような訓練及び評価反復もまた、交差検証を試みているかどうかに関わらず、独立して行われても良い。擬似乱数発生器（ＰＲＮＧ）２８５０もまた、擬似乱数のシーケンス２８７２を得るために使用されても良い。ＰＲＮＧ２８５０は、例えば、ＭＬＳライブラリまたはＭＬＳの構成要素からアクセス可能なプログラミング言語ライブラリの有用性関数または方法として実装されても良い。描写される実施形態において、ＰＲＮＧ２８５０の状態は、所与のシードＳを用いて状態を再設定した後に生成される擬似乱数のシーケンスが反復可能であるように、シード値Ｓ（例えば、実数または文字列）を使用して決定論的に初期化またはリセットされても良い（例えば、ＰＲＮＧが同じシードを使用して複数回リセットされた場合、ＰＲＮの同じシーケンスが各々のそのような状態リセット後に提供される）。
【０１１３】
描写される実施例において、提示を単純化するために、入力データセット（１０）のチャンクの数及び分割比（８０／２０）は、整数のチャンクが訓練セット及び試験セット内に入れられるように選択されており、すなわち、所与のチャンクの観測記録は、訓練セット及び試験セットの両方の間で分散される必要はない。ＰＲＮＧによって生成されたシーケンス２８７２の擬似乱数（ＰＲＮ）は、訓練セット及び試験セットのメンバーを選択するために使用されても良い。例えば、８４６２１３５６の値を有する（ＰＲＮＧの状態の再設定後に生成された）第１のＰＲＮ２８７４を使用して、チャンクＣ７は、ＴＥＩ２８９０Ａのために使用される訓練セット２８５４Ａ内に含むために選択されても良い。第２のＰＲＮ５６３８３６７２を使用して、チャンクＣ２は、訓練セット２８５４Ａのために選択されても良く、以下同様である。描写されるシナリオ例において、乱数ベースの分割アルゴリズム２８０４は、入力データセットの各チャンクを訓練セットまたは試験セットのいずれかの中に正しく指定するために、ＰＲＮシーケンスのある特定の統計特性に依存しても良い。統計特性は、極めて多数の異なる擬似乱数（または何らかの長さＮの異なるサブシーケンス）が、（例えば、所与のＰＲＮがシーケンス内で反復される前、または長さＮのサブシーケンスが反復される前に）任意の所与のシーケンスで生成されることが予想される特性を含んでも良い。描写される実施形態において、ＰＲＮＧの状態が、所与の訓練セット２８５４が生成された時間と対応する試験セット２８５６が生成された時間との間にリセットされなかった場合、生成されたＰＲＮ２８７２のシーケンスは、入力データの各チャンクが訓練セットまたは試験セットのいずれかにマッピングされ、いずれのチャンクも訓練セット及び試験セットの両方にマッピングされないことを確実にしても良い。ソースデータセットの各オブジェクト（例えば、チャンクまたは観測記録）が正確に１つの分割結果セット（例えば、訓練セットまたは対応する試験セット）内に入れられるそのような分割動作は、「整合的」または「有効」分割と称され得る。入力データセットの１つまたは複数のオブジェクトが、（ａ）分割結果セットのいずれの中にも入れられないか、または（ｂ）分割結果セットのうちの２つ以上の中に入れられるかのうちのいずれかである分割動作は、「不整合的」または「無効」分割と称され得る。少なくとも一部の実施形態において、２つの分割マッピング（訓練セットへのマッピング及び試験セットへのマッピング）の各々のために使用されるＰＲＮのシーケンス、したがってＰＲＮソースの状態は、不整合的分割の生成確率に影響を与え得る。次いで、訓練及び評価のための不整合的分割の使用は、整合的分割が使用された場合よりも低い予測の質及び／または低い正確さをもたらし得る。
【０１１４】
少なくとも一部の実施形態において、チャンク内入れ換えは、例えば、ＴＥＩが実行されたことに応答して、クライアント要求のコンテンツに基づいて、訓練セット及び／または試験セット内で実行されても良い。したがって、例えば、訓練セット２８５４Ａの所与のチャンク（例えば、Ｃ７）内の観測記録は、訓練されるモデルへの入力として提供される前に、（記録を永続的記憶装置にコピーせずに）メモリ内で互いに対して再順位付けされても良い。同様に、試験セット２８５６Ａの所与のチャンク（例えば、Ｃ３）の観測記録は、試験セットを使用してモデルが評価される前にメモリ内で入れ換えられても良い。
【０１１５】
ＰＲＮシーケンス２８７２の使用の結果として、第１のＴＥＩ２８９０Ａは、チャンク（Ｃ７、Ｃ２、Ｃ４、Ｃ５、Ｃ９、Ｃ１、Ｃ１０、Ｃ８）の訓練セット２８５４Ａ、及びチャンク（Ｃ３、Ｃ６）の試験セット２８５６Ａを用いて実行されても良い。一部の実施形態において、同じＰＲＮＧ２８５０もまた、次のＴＥＩ２８９０Ｂのための入力データセットを分割するために（例えば、再初期化または再設定なしで）使用されても良い。様々な実施形態において、一部のモデル及び／または用途に関して、たった１回のＴＥＩが実行されても良いことが留意される。描写される実施例において、ＴＥＩ２８９０Ｂの訓練セット２８５４Ｂは、チャンク（Ｃ８、Ｃ３、Ｃ５、Ｃ６、Ｃ１０、Ｃ２、Ｃ１、Ｃ９）を含み、対応する試験セット２８５６Ｂは、チャンク（Ｃ４、Ｃ７）を含む。図２８に例示される分割の両方は、先に提供された定義に従って、整合的／有効である。少なくとも一部の実施形態において、図２８でデータの分割は、チャンクレベルで例示されているが、ＰＲＮＧの状態と分割の整合性との間の同じ種類の関係が、観測記録レベルでの分割（または部分的チャンクを伴う分割）に適用されても良いことが留意される。つまり、ＰＲＮＧを使用して観測記録レベルで整合的分割を行うために、ＰＲＮＧの状態は、理想的には、訓練セットの判定と試験セットの判定との間に再初期化されるべきではない。一部の実施形態において部分的チャンクを伴う分割は、整数ではない数のチャンクが各分割結果セット内に入れられるチャンクレベル分割、続いてチャンクの記録が複数の分割結果セットをまたがって分散されるチャンクのためのチャンク内分割として実行されても良い。２方分割に加えて、データセットを分割するためのＰＲＮベースの手法もまた、（Ｎ＞２である）Ｎ方分割のために使用されても良い。
【０１１６】
図２９は、少なくとも一部の実施形態に従った、擬似乱数発生器の不適切な再設定の結果として起こり得る入力データセットの不整合的チャンクレベル分割の例を例示する。描写される実施例において、ＰＲＮＧ１８５０は、シードＳを使用して初期化される。ＰＲＮシーケンス２９７２Ａは、図２８の試験セット２８５４Ａ内に含まれたデータセット２８４４Ａ（Ｃ７、Ｃ２、Ｃ４、Ｃ５、Ｃ９、Ｃ１、Ｃ１０、Ｃ８）の同じ組のチャンクを含む訓練セット２９５４Ａを生成するために、分割アルゴリズム２８０４によって使用される。訓練セット２９５４Ａが生成された後、ＰＲＮＧは、再初期化される。結果として、生成された擬似乱数のシーケンスは、反復され、例えば、リセットの後に生成された第１のＰＲＮは、またしても８４６２１３５６であり、第２のＰＲＮは、またしても５６３８３６７２であり、以下同様である。描写される実施例において、分割アルゴリズムは、ＰＲＮの反復の結果として試験セット２９５６Ａ内に含めるためにチャンクＣ７及びＣ２を選択する。そのような分割は、Ｃ２及びＣ７が訓練セット及び試験セットの両方内にあるため（かつ、チャンクＣ３及びＣ６が訓練セットまたは試験セットのいずれにも入っていないため）無効または不整合的であると見なされても良い。
【０１１７】
一部の実施形態において、ＰＲＮＧは、訓練セットまたは試験セット内への所与のチャンクまたは記録の各配置のために、リアルタイムで呼び出されなくても良い。代わりに、擬似乱数または乱数のリストは、（例えば、ＰＲＮＧを使用して）事前に生成されても良く、事前に生成されたリスト内の数は、分割配置のために１つずつ使用されても良い。少なくとも一部の実施形態において、そのようなシナリオでは、ポインタが訓練セットのために使用されたリスト内の最後の数に維持され、試験セット配置判定がその残りの数（すなわち、訓練セットのために使用されなかった数）を使用して下される限り、分割整合性は、達成され得る。
【０１１８】
一実施形態では、整合的分割を成し遂げるための別の手法において、それぞれの機構（例えば、ＡＰＩ）は、（ａ）ＰＲＮＧの最新の状態を保存し、（ｂ）ＰＲＮＧを保存された状態にリセットするために、実装されても良い。ＡＰＩ「ｓａｖｅ＿ｓｔａｔｅ（ＰＲＮＧ）」が、ＴＥＩの訓練セットが生成された後にＰＲＮＧの内部状態をオブジェクト「ｓｔａｔｅ＿ＡｆｔｅｒＴｒａｉｎｉｎｇ」に保存するために呼び出され得、異なるＡＰＩ「ｓｅｔ＿ｓｔａｔｅ（ＰＲＮＧ，  ｓｔａｔｅ＿ＡｆｔｅｒＴｒａｉｎｉｎｇ）」が、ＴＥＩの試験セットの選択を開始する直前にＰＲＮＧ（または異なるＰＲＮＧ）の状態を保存された状態にリセットするために呼び出され得るシナリオを考えられたい。そのような一組の状態保存動作及び復元動作を使用して、全てのＰＲＮがＰＲＮＧ状態を保存／再設定せずに得られた場合に得られるように、ＰＲＮの同じシーケンスが得られても良い。一部の実施形態において、図３０に関して以下に記載されるように、試験セット選択のために使用される所与のＴＥＩのＰＲＮソースとは異なるＰＲＮソースが、訓練セット選択のために使用されても良く、そのようなＰＲＮソースの状態は、整合的分割を達成する手助けをするために、同期化されても良い。
【０１１９】
少なくとも一部の実施形態において、所与の入力データセットからの試験セットの選択は、対応する訓練セットの選択に対して（及び一部の事例では、対応する訓練セットよりもかなり後に）非同期的に起こっても良い。例えば、別個のジョブは、訓練セットの選択及び対応する試験セットの選択のためにＭＬＳジョブ待ち行列内に挿入されても良く、ジョブは、先に記載されたのと同様の方式で互いに独立してスケジュールされても良い。そのようなシナリオにおいて、一部の実施形態では、訓練／試験分割が２つの動作間の遅延にもかかわらず有効及び整合的であることを確実にするために、ＭＬＳは、訓練セットの選択に関する状態情報を管理しても良く、これは次いで試験セットを生成する手助けをするために使用することができる。図３０は、少なくとも一部の実施形態に従った、スケジューリング関連の訓練ジョブと評価ジョブとの組のタイムラインの例を例示する。おおよそ４時間（特定の日の１１：００から１５：００まで）のジョブスケジューラのタイムラインの時間中に起こる４つのイベントが示される。
【０１２０】
時間ｔ１に、モデルＭ１に対する訓練／評価反復ＴＥＩ１の訓練ジョブＪ１が開始する。ジョブＪ１は、ＭＬＳの一組のサーバＳＳ１でスケジュールされ、例えば、チャンクレベル、観測記録レベルのいずれか、またはこれら両方のレベルでの、訓練セットの選択を含んでも良い。（ＰＲＮのシーケンスを返す関数または方法、または事前に生成されたＰＲＮのリスト等の）擬似乱数ソースＰＲＮＳ３００２は、ジョブＪ１のための訓練セットを生成するために使用されても良い。時間ｔ２に、訓練ジョブＪ２は、異なるモデルＭ２に対する訓練／評価反復ＴＥＩ２のために、サーバセットＳＳ２にスケジュールされても良い。ジョブＪ２のための訓練セットは、異なるＰＲＮＳ３００２Ｂから得られた擬似乱数を使用して得られても良い。
【０１２１】
時間ｔ３に、ＴＥＩ１の評価段階のための試験ジョブＪ３が、ジョブＪ１の２時間超遅れてスケジュールされる。描写される実施例において、Ｊ３のスケジューリングは、例えば、Ｊ１が完了するまで遅延されても良く、Ｊ１／Ｊ３のために使用されるデータセットのサイズは、訓練段階を完了するために２時間超かかる程大きくても良い。Ｊ３は、Ｊ１のために使用されたものとは異なる組のサーバＳＳ３にスケジュールされても良い。少なくとも一部の実装例において、サーバセットＳＳ１で利用可能であったものとは異なるＰＲＮＳ９００２Ｃが、サーバセットＳＳ３で利用可能であっても良い。描写される実施形態において、訓練／試験分割の整合性を確実にするために、ＰＲＮＳ３００２Ｃは、ＰＲＮＳ３００２Ａと同期化されても良い。したがって、例えば、シード値であるシード１がＰＲＮＳ３００２Ａを初期化するために使用され、１０００個の擬似乱数がジョブＪ１の間にＰＲＮＳ３００２Ａから得られた場合、同じシード値であるシード１が、論理的に同等なＰＲＮＳ３００２Ｃを初期化するために使用されても良く、１０００個の擬似乱数が、試験セット選択のために使用される擬似乱数が取得される前に、ＰＲＮＳ３００２Ｃから取得されても良い。一部の実施形態において、先に論じられた「ｓａｖｅ＿ｓｔａｔｅ（）」及び「ｓｅｔ＿ｓｔａｔｅ（）」呼び出しの同等物が、ＰＲＮＳ３００２ＣをＰＲＮＳ３００２Ａと同期化させるために使用されても良い。一実施形態において、事前に生成されたＰＲＮＳのリストがＰＲＮソースとして使用されている場合、ＭＬＳは、（ａ）同じリストがＪ１及びＪ３のために使用され、かつ（ｂ）Ｊ３のために使用されるリストの最初のＰＲＮが、Ｊ１のために使用された最後のＰＲＮの位置の直後の位置にあることを確実にしても良い。様々な実施形態において、他の同期技法が、試験セット判定のために使用される擬似乱数のシーケンスがジョブＪ１及びＪ３に対して有効かつ整合的分割が達成されるようなものであることを確実にするために、使用されても良い。同様に、訓練ジョブＪ２に対応する（ｔ４にスケジュールされる）試験ジョブＪ４に関して、ＰＲＮＳ３００２Ｄは、ＰＲＮＳ３００２Ｂと同期化されても良い。少なくとも描写される実施形態において、分割整合性を確実にするために、訓練セットを生成するために使用される擬似乱数の組と対応する試験セットとの間の論理関係またはある程度の協調を強制することが必要である場合がある（例えば、Ｊ３で使用される数は、Ｊ１で使用される数に対して調整される必要があっても良く、Ｊ４で使用される数は、Ｊ２で使用される数に対して調整される必要があっても良い）。
【０１２２】
図３１は、少なくとも一部の実施形態に従った、クライアント要求に応答して整合性メタデータが機械学習サービスで生成されるシステムの例を例示する。整合性メタデータは、図３０に関して論じられた協調／同期の種類を達成するために、関連したジョブ（例えば、訓練ジョブ及び対応する評価ジョブ）をまたいで保存または共有されても良い。図３１のシステム３１００において、ＭＬＳのクライアント１６４は、ＭＬＳ  Ｉ／Ｏライブラリのデータソース非依存プログラム的インターフェース３１６１を介して、分割要求３１１０を提出しても良い。一部の実装例において、分割要求は、交差検証要求の一部、または指定された数の訓練／評価反復を行うための要求の一部でも良い。少なくとも１つの実施形態において、分割要求は、図２４に示される観測記録抽出要求２４０１の種類の異形を表しても良い。少なくとも１つの実施形態において、分割要求は、例えば、要求された分割動作のための擬似乱数を得るために使用されても良い１つまたは複数のクライアント指定のシード値３１２０を含んでも良いが、そのようなシード値は、クライアントによって提供される必要がなくても良い。さらに、描写される実施形態において、分割要求３１１０は、入力データセット３１２２の指標（例えば、ファイル名、パス、または識別子）を含んでも良い。分割パラメータ３１２４は、１つまたは複数の訓練対試験の比率（例えば、図２９に例示される８０／２０分割比）を指示しても良い。分割要求が訓練／評価反復または交差検証反復に対する要求の一部である一部の実施形態において、所望の反復回数３１２６が、クライアント要求内に含まれても良い。
【０１２３】
描写される実施形態において、ＭＬＳの要求ハンドラ構成要素１８０は、要求３１１０を計画ジェネレータ３１８０に渡しても良い。計画ジェネレータは、一組の整合性メタデータ３１５２、例えば、要求された分割反復のためにＭＬＳジョブ待ち行列内に挿入された関連したジョブ間で共有されても良いメタデータを判定しても良い。例えば、メタデータ３１５２は、クライアント提供のシード値３１２０を含んでも良い。一実施形態において、クライアント提供のシード値が、（例えば、クライアント要求に対して使用されるＡＰＩ３１６１がシードが提供されることを必要としないため、またはクライアントが有効シード値を提供しないために）利用可能でない場合、計画ジェネレータ３１８０は、一組の１つまたは複数のシード値を判定しても良い。そのようなＭＬＳ選択シード値は、例えば、入力データセットＩＤ３１２２（例えば、入力データセットのファイル名またはディレクトリ名に対応するハッシュ値が、シードとして使用されても良い）、クライアント識別子、要求３１１０が受信された時間、要求３１１０が受信されたＩＰアドレス等のある組み合わせに基づいても良い。一実装例において、ＭＬＳは、ＰＲＮＧまたは事前に生成されたＰＲＮのリスト等の、利用可能な擬似乱数のいくつかのソースを有しても良く、１つまたは複数のＰＲＮソースの識別子は、整合性メタデータ３１５２内に含まれても良い。事前に生成されたＰＲＮリストが使用される実施形態において、指定されたリスト内の最後に使用されたＰＲＮへのポインタは、リストを使用する各エンティティ（例えば、ＭＬＳジョブ実行部）が複数のリストのＰＲＮを使用した後にポインタを更新するように使用されても良い。上述の「ｓａｖｅ＿ｓｔａｔｅ（）」及び「ｓｅｔ＿ｓｔａｔｅ（）」動作の同等物がＰＲＮＧに対してサポートされている一実施形態において、ＰＲＮＧの状態記録は、メタデータ内に含まれても良い。状態記録は、例えば、ＰＲＮＧを使用する次のエンティティが、整合的分割を行うために使用され得るＰＲＮを得るために、それ自体の状態を設定することができるように、ＰＲＮＧを使用した各エンティティ（例えば、ＭＬＳジョブ実行部）によって更新されても良い。
【０１２４】
計画ジェネレータ３１８０は、分割結果セットを選択するためのそれぞれのジョブ３１５５を生成しても良い。例えば、所与の訓練／評価反復のために、１個のジョブは、訓練セットを選択するために作成されても良く、別のジョブは、試験セットを選択するために選択されても良い。一部の実装例において、計画ジェネレータ３１８０によって作成されたジョブオブジェクトは、そのジョブのために使用される整合性メタデータへの参照またはポインタを含んでも良い。別の実装例において、整合性メタデータ３１５２の少なくとも一部分は、ジョブオブジェクト内に含まれても良い。ジョブが実行されたとき、メタデータ３１５２を使用して、入力データセットが整合的に分割されたことを確実にしても良い。一部の実施形態において、訓練セット及び試験セット選択の両方を含む単一のジョブが、作成されても良い。
【０１２５】
少なくとも一部の実施形態において、整合性または再現性に向けた同様の手法が、サンプリングまたは入れ換え等の他の種類の入力フィルタリング動作のためにとられても良いことが留意される。例えば、一実施形態において、クライアントは、入れ換え再現性（すなわち、同じ入力データ及び同じ要求パラメータを用いた第２の入れ換え要求が後に行われた場合、１つの入れ換え要求の結果を再び得ることができること）、またはサンプル再現性（すなわち、同じ観測記録またはチャンクが反復されたサンプル要求の結果としてデータセットから取得可能であること）を確実にすることを所望する場合がある。フィルタリング動作が擬似乱数の使用を伴う場合、図３１に示される保存シード値及び／または他の種類の整合性メタデータは、入れ換え再現性及び／またはサンプル再現性もまたサポートすることができても良い。例えば、同じ入力データセットから始まり、最初の入れ換えのために使用されたのと同じシード値を用いてＰＲＮＧを再初期化する反復された入れ換えが、得られても良い。同様に、同じシードの再使用もまた、反復可能なサンプルをもたらし得る。様々な実施形態において、整合的分割は、上述の種類の整合性メタデータを使用して、チャンクレベルで、観測記録レベルで、またはチャンクと記録レベルとのある組み合わせで行われても良い。少なくとも１つの実施形態において、チャンクレベル分割が行われた後、訓練セットまたは試験セット内の個々のチャンクの記録は、モデルを訓練／評価するために使用する前に入れ換えられても良い。
【０１２６】
図３２は、少なくとも一部の実施形態に従った、機械学習モデルの訓練及び評価の反復のための要求に応答して、機械学習サービスで行われ得る動作の態様を例示する流れ図である。要素３２０１に示されるように、１つまたは複数のＴＥＩ（交差検証反復等の訓練／評価反復）を行うための要求は、ＭＬＳ  Ｉ／ＯライブラリＡＰＩ等のプログラム的インターフェースを介して受信されても良い。例えば、擬似乱数ソース（ＰＲＮＳ）の（値Ｖ１等の）１つまたは複数の初期化パラメータ値を含む一組の整合性メタデータは、反復（複数可）のために生成されても良い。メタデータは、ＰＲＮＧの状態、例えば、または事前に生成された擬似乱数のリスト内の特定のオフセットへのポインタを初期化またはリセットするために使用されるシード値を含んでも良い。一部の実施形態において、クライアントは、ＴＥＩ要求内にメタデータの少なくとも一部分を含んでも良い。シード値（複数可）に加えてか、またはシード値（複数可）の代わりに、整合性メタデータ、例えば、ＰＲＮＳの識別子、ＰＲＮＳの状態の表現、及び／または擬似乱数のリスト内へのポインタが、含まれても良い。
【０１２７】
要求内で指示された入力データセットが複数のファイルまたは複数のデータオブジェクトに広がっている場合、ファイル／オブジェクトは、論理的に連結されて、入力データのための統合されたアドレス空間を形成しても良い。入力データセットのアドレス空間は、連続的チャンクに細分されても良く（要素３２０７）、例えば、チャンクサイズ／境界は、クライアント好み、ＭＬＳサーバのメモリ制約、及び／または他の要因に基づいて選択される。入力データセットの１つまたは複数のチャンクは、例えば、チャンクＣ１の少なくとも一部分がサーバＳ１のメモリに記憶され、チャンクＣ２の少なくとも一部分がサーバＳ２のメモリに記憶されるように、永続的記憶装置から１つまたは複数のＭＬＳサーバのそれぞれのメモリに読み込まれても良い（要素３２１０）。
【０１２８】
整合性メタデータを使用して、例えば、チャンクＣ１の少なくともいくつかの観測記録を含む入力データの第１の訓練セットＴｒｎ１が、選択されても良い（要素３２１３）。訓練セットは、チャンクレベル、観測記録レベル、またはチャンクレベルと観測記録レベルとのある組み合わせで選択されても良い。少なくとも一部の実施形態において、部分的チャンクは、訓練セットＴｒｎ１内に含まれても良い（つまり、所与のチャンクのいくつかの観測記録が訓練セット内に含まれても良い一方で、他の観測記録は、最終的に対応する試験セット内に含まれても良い）。一実施形態において、初期化パラメータ値Ｖ１を使用して、ソースの最初の状態に基づいてそのような数の決定論的シーケンスを提供したソースから第１の組の擬似乱数を得ても良く、次いで、第１の組の擬似乱数を使用して、標的の機械学習モデルＭ１を訓練するために使用される訓練セットＴｒｎ１を選択しても良い。
【０１２９】
モデルが訓練された後に、そのモデルを評価するために、試験セットＴｓｔ１が整合性メタデータを使用して（例えば、同じソースから、またはソースの状態がＴｒｎ１を選択するために使用されたソースの状態と同期化されているソースから得られた一組の擬似乱数を使用して）判定されても良い（要素３２１６）。一実装例において、例えば、整合性メタデータは、シードであるシード１と、Ｔｒｎ１を生成するためにＰＲＮＧから得られた擬似乱数のカウントＮ１と、を指示しても良い。元のＰＲＮＧがＴｓｔ１を選択するための擬似乱数を提供するのに利用可能でない場合、（例えば、試験セットがＴｒｎ１を識別するために使用されたサーバとは異なるサーバで識別され、ローカルＰＲＮＧが各サーバで使用される必要がある場合）、同等のＰＲＮＧがシード１を用いて初期化されても良く、同等のＰＲＮＧから生成された第１のＮ１擬似乱数は、Ｔｓｔ１を選択するための（（Ｎ１＋１）番目から開始する）後続の擬似乱数を使用する前に破棄されても良い。別の実装例において、Ｔｒｎ１及びＴｓｔ１（または任意の組の訓練セット及び試験セット）を選択するために使用されるアルゴリズムは、依然として先に記載された整合性基準を満たしながら、擬似乱数の同じシーケンスがＴｒｎ１及びＴｓｔ１を選択するために使用され得るような方法で設計されても良い。そのような実装例において、同じシード値が、Ｔｓｔ１のためのＰＲＮＧを初期化するために使用されても良く、擬似乱数は、Ｔｓｔ１を選択するためにスキップされる必要がなくても良い。モデルＭ１は、試験セットＴｓｔ１を使用して試験／評価されても良い（例えば、モデルの予測の正確さ／質が判定されても良い）。
【０１３０】
描写される実施形態において、（要素３２１９で判定されるように）より多くのＴＥＩが行われたままになっている限り、次の反復のための訓練セット及び試験セットは、チャンクコンテンツのうちのいずれも他の位置にコピーせずに定位置で識別されても良い（要素３２２２）。描写される実施形態において、Ｔｒｎ１及びＴｓｔ１を生成するために使用された整合性メタデータは、後続のＴＥＩのための訓練セット及び試験セットを選択するためにも使用されても良い。他の実施形態において、それぞれの組の整合性メタデータは、それぞれのＴＥＩのために使用されても良い。訓練セットがチャンクレベルで最初に識別される少なくとも一部の実施形態において、訓練セットの個々のチャンク内の観測記録は、訓練モデルに対して観測記録を使用する前にメモリ内で入れ換えられても良い（すなわち、チャンク内入れ換えが永続的記憶装置へのあらゆる追加のＩ／Ｏなしに行われても良い）。同様に、一部の実施形態において、チャンク内入れ換えは、試験セットが評価のために使用される前に試験セットに対して行われても良い。訓練及び評価の全ての要求された反復が完了した後、要素３２０１に対応する動作において受信された要求の処理は、完了したと見なされても良く、反復の最終結果が、要求内で指示された宛先に提供されても良い（要素３２２５）。
【０１３１】
決定木ベースのモデルの最適化
いくつかの機械学習方法、例えば分類及び回帰問題のために使用される技法は、決定木の使用を伴う場合がある。図３３は、少なくとも一部の実施形態に従った、予測のために機械学習サービスで生成され得る決定木の例を例示する。ＯＲ３３０４Ａ、ＯＲ３３０４Ｂ、及びＯＲ３３０４Ｃ等の複数の観測記録（ＯＲ）を含む訓練セット３３０２は、従属変数ＤＶの値を予測するために、モデルを訓練するために使用される。訓練セット３３０２内の各ＯＲは、ＩＶ１、ＩＶ２、ＩＶ３、…、ＩＶｎ等の複数の独立変数（ＩＶ）の値（例えば、ＯＲ３３０４Ａにおいて、ＩＶ１の値はｘであり、ＩＶ２の値はｙであり、ＩＶ３の値はｋであり、ＩＶ４の値はｍであり、ＩＶｎの値はｑである）、及び従属変数ＤＶ（これの値はＯＲ３３０４Ａの場合にはＸである）の値を含む。独立変数は、本明細書で入力変数とも称され得、従属変数は、出力変数と称され得る。少なくとも一部の実施形態において、一般に、全てのＯＲ３３０４が、独立変数の全ての値を有する必要はなく、例えば、いくつかの値は、観測記録が得られるソースから利用可能でなくても良い。描写される実施例において、「ラベル」または（モデルが予測する変数の値の変数であるため）「目標変数」とも称され得る従属変数が、２つの値、ＸまたはＹのうちの１つを持つことを想定されたい。任意の所与の独立変数及び従属変数は、任意の数の異なる値を持っても良く、数値、カテゴリー、Ｂｏｏｌｅａｎ、文字等の任意の所望のデータ型のものでも良い。
【０１３２】
サブセットの観測記録３３０４または訓練セットの全ての分析に基づいて、１つまたは複数の決定木３３２０が、観測記録のＩＶの少なくとも一部の値に基づいてＤＶの値の予測を立てるために、例えば、上述の機械学習サービスのモデルジェネレータ構成要素またはモデルマネージャ構成要素によって構築されても良い。決定木３３２０のルートノード３３２２等の各葉なしノードは、１つまたは複数の独立変数に対して評価される１つまたは複数の条件または述語を指示しても良く、述語の評価の結果は、ＤＶの予測がＯＲのために立てられる木の葉ノードに向かって次にとられるパスを判定しても良い。例えば、例示される決定木において、ルートノードは、独立変数ＩＶ２の値がｋと比較されることを指示する。ＩＶ２が、予測が立てられる所与の観測記録に関してｋ未満である場合、中間ノード３３２３へのパスが、（「ＩＶ２＜ｋ」の評価に対する「ｙｅｓ」を表す）「ｙ」のラベルが付けられた枝によって示されるようにとられるべきである。ＩＶ２が分析される観測記録においてｋ以上である場合、（「ｎｏ」を表す）「ｎ」のラベルが付けられたパスがとられる。同様の判定が、パスに沿って確認された述語の組み合わせに基づいてＤＶの値が予測される点に葉ノードが到達するまで、様々な葉なしノードで行われる。したがって、描写される木３３２０において、以下の条件が真であることが分かった場合、ＸのＤＶ値は、葉ノード３３２４で予測されても良い。すなわち、（ＩＶ２＜ｋ）及び（ＩＶ１＞＝ｐ）及び（ＩＶ６＞＝ｐ）及び（ＩＶ７＝＝ｑ）及び（ＩＶ４！＝ｚ）。同様の走査は、決定木ベースのモデル３３３５によって試験データセット３３３０の全ての記録に対して行われ、ＤＶ値の一組の予測３３４０をもたらす。多くの訓練データセットについて、独立変数のうちの１つまたは複数が、必ずしも決定木の中に表されなくても良く、例えば、独立変数ＩＶｎが予測ＤＶに対して有意でない場合、木３３２０の中に含まれているノードのいずれも、ＩＶｎを参照する条件を含まなくても良い。一般に、機械学習サービスのモデルジェネレータ構成要素は、独立変数のあるサブセットを使用してＤＶ値を正確に予測する効率的手段を識別し、そのような効率的手段を１つまたは複数の決定木の形態にコード化することに関与しても良い。予測の質及び効率を助長することができるいくつかの要因が、以下に論じられる。
【０１３３】
単純な二項分類の例が、提示を単純化するために図３３に例示される。様々な実施形態において、決定木は、多重分類及び／または回帰のためにも使用されても良い。一部の実施形態において、決定木の所与のノードは、３つ以上の子ノード（すなわち、葉の方に向かう３つ以上の外向きパス）を有しても良く、つまり、図３３に示される単純なバイナリテストよりも複雑な複数の結果条件が、各ノードで評価されても良い。以下にさらに詳細に記載されるように、各ノードは、木全体がノード記述子のコレクションとして表されても良いように、確認される述語／条件、その子ノードの数及び識別等を指示する対応する記述子によって表されても良い。生成される決定木３３２０のサイズ及び形状は、予測にとって有意であることが見出されている独立変数の数、木生成アルゴリズムが訓練セットの観測記録を分析する順序等の様々な要因に依存しても良い。（ランダムフォレストモデル及びａｄａｐｔｉｖｅ  ｂｏｏｓｔｉｎｇモデル等の）一部のモデルは、多くの異なる木、例えば、訓練データセットのそれぞれのサブセットを使用して得られるそれぞれの木の集合体またはコレクションを必要とするか、またはこれらに依存しても良い。
【０１３４】
決定木ベースの予測を作成するための（例えば、使用されたリソースまたは必要とした時間に関する）費用は、２つのカテゴリー、訓練費用及び実行／予測費用に大まかに分類されても良い。実行／予測費用はまた、本明細書で実行時間費用とも呼ばれ得る。訓練費用が、木を構築し、訓練データセットを使用してモデルを訓練するために使用されるリソースを指す一方で、実行費用は、訓練段階のために使用されなかった新しいデータ（または試験データ）に対してモデルが予測を立てるときに使用されるリソースを指す。少なくとも一部の実施形態において、以下に記載されるように、トレードオフは、訓練費用と新しいデータに対して立てられた予測の質との間で起こり得る。訓練の間により多くのリソース及び／または時間を費やすことによって、より良い（例えば、より正確及び／またはより速い）予測が、少なくとも一部の種類の問題に関して可能になり得る。例えば、一部の従来の木構築手法でとは異なり、一部の実施形態において決定木は、深さ優先順で構築されても良く、ノードの記述子は、木構築手順が所与のサーバで利用可能なメインメモリの容量に限定される必要がある代わりに、作成されるに従い、すぐにディスクまたは他の何らかの形態の永続的記憶装置にストリーミング配信される。そのような深さ優先かつ永続的記憶装置ベースの木構築パスは、幅優先のメモリに制約される手法に対して、小さい母集団を有する観測記録クラスに対するより高い予測正確さ、より良いプロセッサキャッシュ使用率（例えば、ＭＬＳサーバで使用されているＣＰＵまたはコアと関連付けられたレベル２またはレベル１ハードウェアキャッシュで）等のいくつかの利点をもたらし得る。（木のサイズは、木構築パスの間にメモリによって制約されないため）極めて大きな木が、そのような手法の結果として生成され得るが、木は、例えば、１つまたは複数の実行時間最適化目標に基づいて、ノードのサブセットを削除するために訓練段階の第２のパスの間に高度に枝刈りされても良い。「実行時間最適化目標」という用語は、本明細書で予測を立てるために訓練されたモデルの実行と関連付けられた、試験データセットまたは本番データセットの予測を生成するのにかかる時間の低減、そのような予測のために消費されるＣＰＵまたは他のリソースの量の低減等の目標を指し得る。（一部の実施形態において、そのような実行時間または予測時間目標に加えてか、またはそれらの代わりに、ＭＬＳのクライアントはまた、または代わりに訓練モデルのために使用されたリソースまたは時間に関する訓練時間目標を有しても良い。）次いで、メモリ制約内に適合することができる枝刈りされた木は、非訓練データセットに対して高い質の予測を立てるために使用されても良い。異なる実施形態において、決定木が生成され、かつ枝刈りされても良い方式に関する詳細は、以下に提供される。
【０１３５】
図３４は、少なくとも一部の実施形態に従った、機械学習モデルのための訓練段階の木構築パスの間に、永続的記憶装置の深さ優先順に決定木ノードの表現を記憶する例を例示する。描写される実施例において、訓練データ３４３２は、１つまたは複数の決定木の木３４３３の構築の前に、（例えば、１つまたは複数のＭＬＳサーバの）訓練セットメモリバッファ３３４０に読み込まれても良い。他の実施形態において、訓練セット全体がメモリに読み込まれる必要はなく、例えば、一実装例において、記録全体の代わりに観測記録へのポインタが、メモリに保存されても良い。木３４３３の各ノードが作成されるに従い、訓練セット（例えば、観測記録自体、または観測記録へのポインタ）は、そのノードの評価された述語に従ってメモリ内でソートまたは再配置されても良い。描写される実施形態において、例えば、木３４３３のノードＮ１が独立変数ＩＶ１の述語「ＩＶ１＜＝ｘ」の評価を含む場合、訓練セット記録が、ｘ以下のＩＶ１値を有する全ての記録がメモリの１つの連続的部分Ｐ１の中にあるように再配置されても良く、次いでＭＬＳの木ジェネレータ構成要素が、左のサブ木（ノードＮ２及びその子）を構築するためにその部分Ｐ１のコンテンツを分析しても良い。少なくとも一部の実施形態において、訓練セット記録の再配置は、メモリ内で（すなわち、ディスクまたは他の永続的記憶装置へのＩ／Ｏなしに）行われても良い。少なくとも一部の実施形態において、より低いレベルの木に達するに従い、訓練セットのより小さいサブセットが再配置される必要があっても良く、それによりハードウェアキャッシュ使用率レベルを改善する可能性がある。
【０１３６】
描写される実施形態において、木３４３３は、深さ優先順で構築されても良い。一部の実施形態において、深さ優先走査／構築の先行順バージョンが図３４に例示されるが、中間順または後行順深さ優先走査／構築が、採用されても良い。ノードのラベル「Ｎ＜＃＞」は、ノードが生成されるシーケンスと、対応する記述子３４３０がメモリからモデルジェネレータまたはモデルマネージャが実行するＭＬＳサーバでアクセス可能な様々なディスクベースのデバイス等の永続的記憶装置（複数可）に書き込まれる順序と、を指示する。したがって、矢印３４３５によって示されるように、ノードＮ１が、最初に作成され、最初に永続的記憶装置に書き込まれ、Ｎ２、Ｎ３…が続く。深さ優先シーケンスで作成された最初の葉ノードは、Ｎ６であり、Ｎ７、Ｎ８、Ｎ９、Ｎ１０、及びＮ１２が続く。記述子３４３０（例えば、ノードＮ１〜Ｎ１２それぞれに対する３４３０Ａ〜３４３０Ｌ）は、例えば、対応するノードで評価される述語または条件、子ノードの数及び／または識別等を指示しても良い。
【０１３７】
描写される実施形態において、各ノードで評価される述語に加えて、それぞれの予測有用性メトリック（ＰＵＭ）３４３４もまた、木３４３３のノードのうちのいくつかまたは全てに対して生成され、永続的記憶装置に記憶されても良く、例えば、ＰＵＭ３４３４Ａは、ノードＮ１に対して計算及び記憶され、ＰＵＭ３４３４Ｂは、ノードＮ２に対して計算及び記憶され、以下同様である。概して、所与のノードのＰＵＭは、全てのノードを使用して立てられ得る予測に対する、そのノードの相対的貢献度または有用性を示しても良い。異なる実施形態において、異なる測定値が、例えば、解決される機械学習問題の種類、木の構築のために使用される特定のアルゴリズム等に基づいて予測有用性メトリックとして使用されても良い。一実装例において、例えば、Ｇｉｎｉ不純度値が、ＰＵＭとしてまたはＰＵＭの一部として使用されても良いか、または情報利得のエントロピーベースの測定値、または情報利得の他の何らかの測定値が、使用されても良い。一部の実装例において、いくつかの異なる測定値の組み合わせが、使用されても良い。少なくとも一部の実施形態において、予測有用性の何らかの測定値または述語の利点は、いずれにせよ木の構築の間に木に追加されるノードの少なくとも一部に関して計算される必要が合っても良く、ノードに割り当てられたＰＵＭは、単純にそのような利点を表しても良い。一部の実装例において、木の１つまたは複数のノードのＰＵＭ値は、識別されなくても良く、つまり、ＰＵＭ値をノードのサブセットのために利用可能にさせることは、木の枝刈りの目的に十分であり得る。
【０１３８】
少なくとも一部の実装例において、ノードのＰＵＭに基づいて決定木のノードの部分的（または全）順序を作成することが可能であっても良く、以下に記載されるように、そのような順序付けが、訓練段階の木の枝刈りパスで使用されても良い。一実施形態において、全ノードの順位付けされたリストの生成の代わりに、またはそれに加えて、木ノードに対するＰＵＭ値のヒストグラムまたは類似した分布指標が、作成されても良く、及び／または例えば、ノード記述子及びＰＵＭ値と一緒に、永続的記憶装置に書き込まれても良い。ヒストグラムは、例えば、木のノード及び対応するＰＵＭ値の網羅的なリストよりもかなり少ないメモリを要し得る。
【０１３９】
図３５は、少なくとも一部の実施形態に従った、決定木のノードのために生成され得る予測有用性分配情報の例を例示する。ＰＵＭ値は、ＰＵＭヒストグラム３５１０のＸ軸上で左から右に増加し、各ＰＵＭ値バケット内に含まれる決定木ノードの数は、ヒストグラムの対応する棒の高さによって示される。分布情報の生成の結果として、例えば、いくつのノードが低ＰＵＭ値を有するかを示す比較的低値ノードを表すバケット３５２０Ａが、識別されても良く、高値のノードの数を示すバケット３５２０Ｂが、識別されても良い。低値ノードは、枝刈りの間に木から削除するのに高値のノードよりも適した候補であると見なされても良い。一部の実装例において、ヒストグラム３５１０のバケットのうちの１つまたは複数に属するノードの少なくとも一部の識別子は、枝刈り段階で補助するために、永続的記憶装置に記憶されても良い。例えば、一実装例において、葉ノードから２レベル以内のノードの識別子は、１つまたは複数の低値バケットに対して記憶されても良く、そのようなリストは、枝刈り候補ノードを識別するために使用されても良い。
【０１４０】
少なくとも一部の実施形態において、訓練段階の木構築パスの後に、１つまたは複数の実行時間最適化目標または基準の点から見て選択されたノードを削除することにより木表現のサイズが縮小される、枝刈りパスが続いても良い。一部の実施形態において、いくつかの木のノードが枝刈りされる前に木全体が必ずしも生成される必要がないように、木の枝刈りの期間が組み込まれた木構築のいくつかの別個の期間が実装されても良い（これは、生成されるノードの総数を低減するのに役立ち得る）。異なる実施形態において、いくつかの異なる目標が、枝刈りに関して考慮に入れられても良い。図３６は、少なくとも一部の実施形態に従った、実行時間メモリフットプリント目標と累積予測有用性との組み合わせに少なくとも部分的に基づいた決定木の枝刈りの例を例示する。「実行時間メモリフットプリント」という用語は、本明細書で、例えば、モデルの訓練段階が完了した後に、所与のサーバまたはサーバの組み合わせでのモデルの実行のために必要なメインメモリの容量を示すために使用され得る。描写される実施形態において、２つの相反する実行時間目標（モデル実行の間に木を記憶するために必要なメモリの容量と、予測の正確さまたは質）間のトレードオフが、考慮に入れられても良い。少なくとも一部の実装例において、（より低い値が望ましい）メモリフットプリントまたは使用及び（より高い値が望ましい）正確さ／質の両方は、保存されたノード（すなわち、上述の深さ優先の永続的記憶装置にストリーミング配信する技法を使用して生成された最初の決定木から削除／枝刈りされないノード）の数と共に増加しても良い。実行時間メモリフットプリント目標は、保存され得るノードの最大数を示す「最大ノード」値３６１０へと翻訳されても良い。枝刈りされた木の質または正確さは、例えば、累積保存済み予測有用性３６２０の見地から表されても良く、これは、保存されたノードのＰＵＭ値を合計することによって、または保存されたノードのＰＵＭ値を入力としてとるいくつかの他の関数によって計算されても良い。
【０１４１】
異なる実施形態において、ノードは、様々な手法を使用して削除に関して識別されても良い。例えば、貪欲枝刈り法３６５０において、枝刈りされていない木３６０４は、木の中の各分割で最高ＰＵＭ値を有するノードに至るパスを選択するトップダウン様式で分析されても良い。貪欲トップダウン走査の間に遭遇したノードの累積ＰＵＭ値及び遭遇したノードの総数が、追跡されても良い。遭遇したノードの総数が最大ノード値と等しいとき、これまで遭遇したノードは、保存されても良く、他のノードは、破棄または削除されても良い。少なくとも一部の実施形態において、木３６０４の変更または枝刈りされたバージョン３６０８は、例えば、必要な場合、異なる枝刈り手法を使用して再枝刈りを試みることができるように、枝刈りされていないバージョンとは別に（例えば、永続的記憶装置に）記憶されても良い。他の実施形態において、枝刈りされたバージョン３６０８だけが、保存されても良い。一部の実施形態において、貪欲トップダウン手法を使用する代わりに、葉ノードが最初に分析され、モデルの質／正確さへのノードの貢献度が閾値未満の場合、最大ノード制約３６１０が満たされるまでノードが削除される、矢印３６６０によって示されるボトムアップ手法が、使用されても良い。一部の実施形態において、（図３５に例示されるものと類似したヒストグラム等の）ＰＵＭ分布情報が、枝刈りされるノードを選択するとき参照されても良い。複数の実行時間目標（これらのうちのいくつかは、互いに相反する場合がある）が枝刈り手順を導く実施形態において、ＭＬＳは、互いに対して相反する目標に優先順位を付ける必要があっても良い。例えば、図３６に示される最大ノード目標は、累積予測有用性の目標よりも優先度が高いと見なされても良い。少なくとも一部の実装例において、枝刈りの少なくともいくつかのノードが、例えば、実行時間目標及び質目標を順守しながら、厳密にトップダウンまたはボトムアップ手法を使用せずにランダム選択手順を使用して選択されても良い。
【０１４２】
一部の実施形態において、他の種類の実行時間目標が、モデルの訓練段階の木の枝刈りパスの間、考慮に入れられても良い。図３７は、少なくとも一部の実施形態に従った、予測時間変動目標に少なくとも部分的に基づいた決定木の枝刈りの例を例示する。一部の事例では、訓練データセットの独立変数の値の分布、及び独立変数と従属変数との間の関係によっては、枝刈りされていない決定木３７０４等の決定木は、極めて不平衡であり得る。つまり、ルートノードと葉ノードとの間の一部のパスは、他のパスよりもはるかに長い場合がある。例えば、木３７０４の葉ノードＮ８には、ルートノードＮ１から（Ｎ１及びＮ８を含む）８個のノードを横断する判定パス３７０４Ａを介して辿り着いても良い一方で、葉ノードＮ１７には、たった３個のノードを含む判定パス３７０４Ｂを介して辿り着いても良い。
【０１４３】
描写される実施形態において、所与の観測記録の従属変数の予測を立てるためにかかる時間（及び消費されるＣＰＵリソース）は、グラフ３７８６に示されるように、少なくとも判定パスの長さにおおよそ比例しても良い。一部の遅延に影響されやすい用途に関して、異なる観測記録または試験セットの予測を立てるのにかかる時間における変動は、モデルの質の重要な指標であると見なされても良く、より小さい変動は、一般的により大きな変動よりも望ましい。したがって、そのような実施形態において、予測時間３７１０における最大変動が、重要な実行時間最適化目標であっても良く、複数のノードが、可能性のある判定パスにおける最大変動を低減するために、木３７０４から削除されても良い。示されるように、例えば、ノードＮ６、Ｎ７、Ｎ８、Ｎ９、Ｎ１０、及びＮ１１は、変更／枝刈済み木３６０８における最大判定パス長さが８から５に縮小されるように、木３７０４から削除されても良い。少なくとも一部の実施形態において、予測時間における変動最小化の第一目標は、累積保存済み予測有用性を最大化する第二目標と組み合わせられても良い。例えば、判定パスの長さに等しく影響を与える枝刈りの選択が行われるとき、代替枝刈り標的ノードのＰＵＭ値が、比較され、より大きいＰＵＭ値を有するノードが、保存されても良い。
【０１４４】
少なくとも一部の実施形態において、ビジネス目標もまた、決定木を枝刈りするとき、考慮に入れられても良い。例えば、サービスの潜在的顧客のグループが、セグメントＳ６に属すると分類される顧客が、顧客が他のセグメントに属するサービスに実質的により高い金額を使うことが予想されるような、セグメントＳ１、Ｓ２、…、Ｓｎに分類されるシナリオを考えられたい。そのようなシナリオにおいて、Ｓ６顧客の分類につながる判定パスに沿ったノードは、他のセグメントにつながる判定パスに沿ったノードに優先して、枝刈りの間に保存されても良い。様々な実施形態において、メモリフットプリント／制約、質／正確さ目標、絶対実行時間（予測時間）目標、予測時間変動目標、ビジネス／収益目標、及び／または他の目標の組み合わせが、異なる目標の用途特化優先順位付けと一緒に使用されても良い。少なくとも一部の実施形態において、ＭＬＳのプログラム的インターフェースは、例えば、クライアントにとっての所与のモデルまたは問題の異なる種類の目標の相対的重要性を等級付けすることにより、クライアントが上述の種類の１つまたは複数の実行時間最適化目標を指示することを可能にしても良い。一部の実施形態において、異なる問題領域に対して、決定木の枝刈りのためのベストプラクティスに関する情報（例えば、どの枝刈り方法が最も有用か）が、ＭＬＳによって（図１に示される）知識ベース１２２内に収集され、必要に応じて適用されても良い。
【０１４５】
図３８は、少なくとも一部の実施形態に従った、機械学習サービスで決定木の集合体を使用するモデルを訓練するために生成され得る複数のジョブの例を例示する。描写される実施形態において、それぞれの訓練サンプル３８０５Ａ、３８０５Ｂ、及び３８０５Ｃは、（例えば、再配置を伴うランダムサンプリング等の様々なサンプリング方法のうちのいずれかを使用して）より大きな訓練セット３８０２から得られても良く、各々のそのようなサンプルを使用して、それぞれの決定木を上述の深さ優先手法を使用して作成しても良い。したがって、訓練サンプル３８０５Ａを使用して、訓練段階３８２０の木作成パス３８１２の間に、永続的記憶装置に深さ優先順で枝刈りされていない決定木（ＵＤＴ）３８１０Ａを生成及び記憶しても良く、訓練サンプル３８０５Ｂは、ＵＤＴ３８１０Ｂのために使用されても良く、ＵＤＴ３８１０Ｃは、訓練サンプル３８０５Ｃを使用して生成されても良い。一部の実施形態において、それぞれのジョブＪ１、Ｊ２、及びＪ３は、ＵＤＴ３８１０Ａ、３８１０Ｂ、及び３８１０Ｃの構築のためにＭＬＳジョブ待ち行列またはコレクション内に挿入されても良い。少なくとも一部の実施形態において、木作成パスのジョブは、例えば、ＭＬＳサーバプールのそれぞれのサーバを使用してか、または同じＭＬＳサーバで実行（または処理）の複数のスレッドを使用して並列で行われても良い。
【０１４６】
描写される実施形態において、各ＵＤＴは、訓練段階の枝刈りパス３８１４の対応する枝刈り済み決定木（ＰＤＴ）３８１８を生成するための適切な実行時間最適化目標に従って枝刈りされても良い。ジョブＪ４、Ｊ５、及びＪ６は、ＵＤＴ３８１０Ａ〜３８１０Ｃそれぞれを枝刈りし、ＰＤＴ３８１８Ａ〜３８１８Ｃを生成するために実行されても良い。描写される実施形態において、最後に、ジョブＪ７、Ｊ８、及びＪ９それぞれが、ある指定された試験セット（または本番データセット）を使用して、３つのＰＤＴ３８１８Ａ〜３８１８Ｃを使用してモデルを実行し、予測結果３８５０Ａ〜３８５０Ｃをもたらすようにスケジュールされても良い。異なるＰＤＴから得られた結果３８５０は、使用されている機械学習アルゴリズムの予測または試験段階の間に集計予測結果３８６０を生成するように、（例えば、各試験セットの観測記録の予測のための平均値または中央値を識別することによって）任意の所望の様式で組み合わせられても良い。予測段階は、例えば、データセットの従属変数の値が予測段階では既知ではない一方で、モデルを試験するために使用されるデータセットの従属変数の値は既知であり得るという点において、試験段階とは異なっても良い。一部の実施形態において、追加のジョブＪ１０は、結果の集約のためにスケジュールされても良い。ジョブＪ１〜Ｊ１０のうちのいずれかも、適切なジョブ依存関係が満たされている限りは他のジョブと並列で行われても良く、例えば、ジョブＪ４は、Ｊ１の完了後に開始される必要があっても良く、Ｊ７は、Ｊ４の完了後に開始されても良いことが留意される。しかしながら、Ｊ７は、Ｊ７がＪ２に依存しないためＪ２の完了前であっても開始しても良く、したがって、少なくとも一部の実施形態において、予測／試験段階３８３０は、十分なリソース利用可能である場合、訓練段階と重複しても良いことに留意されたい。ランダムフォレスト等の一部の木集合体ベースのアルゴリズムに関して、数百のＵＤＴ及びＰＤＴが、所与の訓練セットのために生成されても良く、並列化の使用は、連続手法と比較して実質的に訓練時間及び実行時間の両方を短縮し得る。一部の実施形態において、異なる実行時間最適化目標が異なるＵＤＴの枝刈りに適用されても良い一方で、他の実施形態において、同じ組の実行時間最適化目標は、集合体の全ての木に適用されても良い。様々な実施形態において、依存関係を満たしている、例示される異なるタスクのうちのいずれかのためのジョブ（例えば、木生成、木の枝刈り、またはモデル実行）は、スレッドレベル（例えば、実行の異なるスレッドは、同じサーバ上のジョブのために使用されても良い）、処理レベル（例えば、それぞれの処理は、同じサーバまたは異なるサーバ上で同時に実行される複数のジョブに対して開始されても良い）、またはサーバレベル（例えば、一組の同時にスケジュール可能なジョブの各ジョブは、それぞれのＭＬＳサーバで、異なるスレッド／処理で実行されても良い）で並列で実行されても良い。一部の実施形態において、スレッドレベルでの並列化、処理レベルでの並列化、及びサーバレベルでの並列化の組み合わせが、使用されても良く、例えば、並列で実行される４個のジョブのうち、２つが１つのＭＬＳサーバでそれぞれのスレッド／処理で実行されても良い一方で、２つは、別のＭＬＳサーバで実行されても良い。
【０１４７】
図３９は、少なくとも一部の実施形態に従った、深さ優先順で永続的記憶装置に記憶された決定木を生成及び枝刈りするために機械学習サービスで行われ得る動作の態様を例示する流れ図である。要素３９０１に示されるように、一組の実行時間最適化目標が、訓練データセットＴＤＳを使用して訓練される予測木ベースのモデルＭ１のために識別され、機械学習サービスで実行されても良い。異なる実施形態において、例えばメモリ使用率またはフットプリント目標、ＣＰＵ等の他のリソースの使用率目標、予測時間目標（例えば、モデルの予測実行の経過時間）、予測時間変動目標（例えば、異なる観測記録に対するモデル予測時間の間の差異を縮小する）、予測正確さ／質目標、予算目標（例えば、モデル実行のＣＰＵ使用率または他のリソースの使用率レベルに比例し得る、クライアントがモデル実行に使うことを望む総額）、上述の種類の収益／利益目標等を含む、様々な目標が、判定され、及び／または優先順位を付けられても良い。一部の実施形態において、訓練データセット及び／または最適化目標（もしくは異なる目標の相対的優先度）のうちのいくつかまたは全ての指標は、例えば、１つまたは複数のＭＬＳ  ＡＰＩを介して、プログラム的にＭＬＳクライアントによって提供されても良い。例えば、一実施形態において、決定木ベースのモデルを作成するためのＡＰＩは、データセット及び１つまたは複数の実行時間目標を指示するそれぞれの要求パラメータを用いて、クライアントによって呼び出されても良い。一部の実施形態において、目標の少なくとも一部は、正確な量で表される代わりに定性的であっても良く、例えば、一部のシナリオにおいて、累積予測有用性の正確な目標値を指示することが必ずしも可能ではない場合があるが、可能な程度において累積予測有用性を最大化する目標は、依然として、枝刈りを指導するために使用されても良い。
【０１４８】
Ｍ１の訓練段階の木構築パスは、訓練データセットの全てのある選択されたサブセットを使用して開始されても良い。一部の実装例において、訓練データ（または少なくとも訓練データの観測記録へのポインタ）は、木の構築の前にメモリ内に書き込まれ、ノードが生成されるに従い木のノードで評価された述語に基づいてメモリ内に再配置されても良い。描写される実施形態において、木構築パスの間に、決定木のノードが、深さ優先順で生成されても良く（要素３９０４）、試験される述語等のノード情報、及び子ノードカウントまたは子ノードへのポインタは、深さ優先順で永続的記憶装置（例えば、回転ディスクベースの記憶装置）にストリーミング配信されても良い。描写される実施形態において、モデルによって立てられた予測に対するノードの貢献度または有用性を示す予測有用性メトリック（ＰＵＭ）値は、ノードの少なくとも一部のために記憶されても良い。異なる実装例において、Ｇｉｎｉ不純度値、エントロピー測定値、情報利得測定値等のいくつかの種類の統計的測定値のうちのいずれかが、ＰＵＭ値として使用されても良い。ＰＵＭ値は、例えば、訓練段階の後続の木の枝刈りパスで、モデル予測の質に大幅に影響を与えずにノードを木から枝刈りまたは削除することができる順序を判定するために、使用されても良い。一部の実施形態において、木のノード間のＰＵＭの分布のヒストグラムまたは類似した表現が、木構築パスの間に生成されても良い。他の実施形態において、分布情報は、木の別個の走査において収集されても良い。「木構築」及び「木作成」という用語は、本明細書で類義語として使用され得る。
【０１４９】
描写される実施形態において、構築された木は、実行時間最適化目標及び／またはノードのＰＵＭ値の点から見て削除されるべきである複数のノードを識別するために、例えば、トップダウン貪欲手法またはボトムアップ手法のいずれかで分析されても良い（要素３９０７）。一部の実施形態において、木の枝刈り段階は、例えば、枝刈りされていない木が既に所望の最適化目標を達成している場合、行われる必要はない。少なくとも１つの実施形態において、これは、例えば、費用対効果分析が削除は価値がないと示すため、所与の木のノードのいずれも枝刈りされない事例であり得る。決定木の変更または枝刈りされたバージョンは、例えば、モデルの試験段階及び／または本番レベル予測実行の間の後の使用のために、枝刈りされていない木とは離れた位置に記憶されても良い（要素３９１０）。
【０１５０】
一部の事例では、モデルが集合体ベースであるか否かに応じて、複数の木が、構築される必要があっても良い。（要素３９１３で判定されるように）より多くの木が必要である場合、訓練データセットの異なるサンプルが、生成されても良く、要素３９０４以降の構築及び枝刈り動作が、反復されても良い。並列化図３９に明確に例示されていないが、一部の実施形態において、先に言及されたように、複数の木は、並列で構築及び／または枝刈りされても良い。描写される実施形態において、全ての木が構築及び枝刈りされた後、モデルは、１つまたは複数の組の予測を得るために、枝刈り済み木（複数可）を使用して実行されても良い（要素３９１６）。一部の実装例において、複数の枝刈り済み木に対応する予測実行は、並列で行われても良い。一部の実施形態において、最適化目標が予測実行（複数可）の間に達成されたかどうかを判定するために使用することができるメトリックが、得られても良い。全ての目標が要素３９１９で検出される適切な程度まで達成された場合、モデルの訓練及び実行段階は、完了したと見なされても良い（要素３９２８）。一部の実施形態において、（所望のレベルの正確さ等の）いくつかの目標が達成されなかった場合、かつ（要素３９２２で検出された）より多くのメモリ等の追加のリソースが利用可能である場合、訓練段階及び／または実行段階は、追加のリソースを使用して、再試行されても良い（要素３９２５）。一部の実施形態において、そのような再試行は、目標が達成されるか、または追加のリソースが利用可能でなくなるまで反復されても良い。異なる実施形態において、訓練時間対実行時間のトレードオフに基づく木の生成及び枝刈りに関して本明細書で記載される技法は、例えばＣＡＲＴ（分類及び回帰木）モデル、ランダムフォレストモデル、ならびにａｄａｐｔｉｖｅ  ｂｏｏｓｔｉｎｇモデルを含む様々な種類の木ベースのモデルのために使用されても良い。一部の実施形態において、木生成及び木の枝刈りは、例えば、モデルの訓練段階の間に互いが点在する木生成のいくつかの異なる期間及び木の枝刈りのいくつかの異なる期間を用いて、反復して行われても良い。そのようなシナリオにおいて、複数のノードが、生成され、最初の木生成期間に深さ優先順で記憶されても良い。次いで、木生成を、休止しても良く、作成されたノードは、第１の木の枝刈り期間に（例えば、これらのＰＵＭ値及び最適化目標に基づいて）枝刈りに関して調べられても良く、一部のノードは、分析に基づいて削除されても良い。より多くのノードが、次の木生成期間に得られた木に対して生成され、続いて、次の木の枝刈り期間の間に０個以上のノードが削除され、以下同様でも良い。そのような反復生成及び枝刈りは、任意のノードが枝刈りされる前に木全体が生成される手法においてよりも早く、低有用性を有するノードを木から削除するのに役立ち得る。
【０１５１】
少なくとも１つの実施形態において、機械学習サービスのいくつかの異なる構成要素が、決定木最適化に関連した動作を総じて行なっても良い。１つまたは複数のＡＰＩを介して提出された、木ベースのモデル（例えば、単一の木に基づくモデル、もしくはモデル木の集合体を使用するモデルのいずれか）の訓練または作成に対するクライアント要求は、モデルジェネレータまたはモデルマネージャへの要求の性質及びクライアント要求（またはクライアント要求の内部表現）に対するパスを判定しても良い要求／応答ハンドラで受信されても良い。一部の実施形態において、訓練段階の各パスは、それぞれのＭＬＳ構成要素によって行われても良く、例えば、１つまたは複数の木ジェネレータ構成要素が、深さ優先順で木を作成し、ノード記述子を１つまたは複数のＭＬＳサーバの永続的記憶装置にストリーミング配信しても良い一方で、１つまたは複数の木レデューサは、木の枝刈りに関与しても良い。少なくとも１つの実施形態において、ＭＬＳの１つまたは複数の訓練サーバが、木ベースのモデルを訓練するために使用されても良い一方で、１つまたは複数の予測サーバは、実際の予測のために使用されても良い。それぞれのジョブが異なるタスクに対して作成される実施形態において、ジョブマネージャは、未処理のジョブのコレクションまたは待ち行列の管理、及びリソースが利用可能になりジョブ依存関係が満たされたとき、ジョブのスケジューリングに関与しても良い。一部の実施形態において、応答（例えば、木ベースのモデルの識別子、または予測実行の結果）は、フロントエンド要求／応答ハンドラによってクライアントに提供されても良い。少なくとも一部の実施形態において、これらの構成要素のうちのいくつかまたは全ては、特殊化、調整、またはタスク最適化されたハードウェア及び／またはソフトウェアを備えても良い。
【０１５２】
特徴処理トレードオフ
先に記載されたように、プロバイダネットワークに実装された機械学習サービスは、分位ビニング、１つまたは複数の変数の値のカルテシアン積の生成、ｎ−ｇｒａｍ生成等の多岐にわたる（ＦＰＴとも称され得る）特徴処理変換をサポートしても良い。多くの独立変数を有し、モデルを訓練するために使用される入力データセットに対して、極めて多数の特徴処理変換が、その後に、処理済み変数がクライアントにとって関心のある１つまたは複数の目標または従属変数の値を予測するために使用されても良いように、生入力データから導出または処理された変数を生成するのに、潜在的に実行可能である可能性がある。クライアントにとって、ＦＰＴの結果を使用して訓練されたモデルの予測の質に関する所与のＦＰＴの有用性、またはＦＰＴの実行に関連する費用のいずれも推定することは必ずしも簡単ではない場合がある。各ＦＰＴ（または関連したＦＰＴのグループ）は、モデルのライフサイクルの様々な段階の経過時間、リソース消費等の様々な単位のうちのいずれかで表すことが可能であり得るそれ自体の一組の費用を有しても良い。一部の実施形態において、ＦＰＴを行う価値があるかどうかを判定するとき、例えば、ＦＰＴの訓練セットへの適用、ＦＰＴの結果を含む入力データを使用したモデルの訓練、ＦＰＴの評価または試験データセットへの適用、及び予測／評価実行のためのモデルの実行の入力としてＦＰＴの処理済み変数（複数可）を含むための追加または限界費用（例えば、メモリ、ＣＰＵ、ネットワーク、もしくは記憶装置費用）が全て、考慮に入れられる必要があり得る。一部の実施形態において、ＭＬＳは、例えば、クライアントによって指示された目標の点から見ての自動費用対効果分析に基づいて考えられる組の特徴処理変換に関する提案を、クライアントに提供するように構成されても良い。モデルの本番実行の間により正確及び／またはより速い予測を見つけ出すために、例えば、訓練時間により多くの時間またはより多くのリソースを費やしてＦＰＴを分析することは可能であり得る。一部の実施形態において、上述のように、少なくとも一部のそのような特徴処理提案技法は、レシピに対して行われても良い自動パラメータ調整と類似した目的を有しても良い。
【０１５３】
図４０は、少なくとも一部の実施形態に従った、候補特徴処理変換の費用及び利点の分析に基づいて、クライアントのための特徴処理提案を生成するように構成された機械学習サービスの例を例示する。示されるように、機械学習サービスの特徴処理（ＦＰ）マネージャ４０８０は、候補ジェネレータ４０８２及びオプティマイザ４０８４を含んでも良い。ＦＰマネージャ４０８０は、値がモデルによって予測される、一組の生または未処理独立変数４００６及び１つまたは複数の目標変数４００７の値を含む訓練データセット４００４の指標を受信しても良い。モデルは、１つまたは複数のＦＰＴを使用して訓練データセットから導出された変数を使用して訓練可能であっても良い。さらに、描写される実施形態において、ＦＰマネージャ４０８０はまた、１つまたは複数の予測の質メトリック４０１２、及び予測の１つまたは複数の実行時間目標４０１６も判定しても良い。様々な品質メトリック４０１２が、異なる実施形態において、かつ、二項分類問題の場合、ＲＯＣ（受信者動作特性）ＡＵＣ（曲線下面積）測定値、回帰問題の場合、平均平方根誤差メトリック、以下同様等の異なる種類のモデルに関して判定されても良い。一部の実施形態において、クライアントは、訓練モデルに対する（１つまたは複数の必要なまたは必須のＦＰＴ、及び／または１つまたは複数の禁止されたＦＰＴ等の）１つまたは複数の制約４０１４を指示しても良く、ＦＰマネージャは、指定された制約を満たすように試みても良い。目標４０１６には、指定されたサイズのデータセットの予測の生成経過時間目標、そのような予測を立てるときに超えるべきではないメモリの容量目標、１つの予測当たりの最大請求費用に関する予算目標等が含まれても良い。一部の実施形態において、ＦＰマネージャはまた、モデルを訓練するために費やされる最大時間、訓練モデルのための超えるべきではない予算、またはＭＬＳが特徴処理提案をクライアントに提供するための時間限度もしくは予算限度等の、一組の訓練段階目標も提供されても良い。
【０１５４】
描写される実施形態において、候補ジェネレータ４０８２は、最初の候補ＦＰＴセット４０５２の識別に関与しても良い。一部の実装例において、最初の候補ＦＰＴセットは、ＭＬＳ内で少なくとも内部的に、ＦＰＴ１〜ＦＰＴ１０を含む例示されるグラフ等の考えられる変換の非巡回グラフとして表されても良い。非巡回グラフ表現は、例えば、異なるＦＰＴが行われるべき推奨されるシーケンス、及び／または異なるＦＰＴ間の依存性を指示しても良い。例えば、ＦＰＴセット４０５２の描写される表現は、ＦＰＴ９がＦＰＴ７の結果に依存し、ＦＰＴ７がＦＰＴ３の結果に依存する、以下同様を指示しても良い。予算限度または時間限度が特徴処理提案の生成に対して指示されない一部の実施形態において、候補ジェネレータ４０８２は、多数（例えば、数十または数百）の候補ＦＰＴを含んでも良い。時間限度またはリソース限度等の制約が、ＦＰ提案生成に関してＦＰマネージャに対して設けられる他の実施形態において、候補ＦＰＴの最初の組４０５２は、実行可能な候補変換の比較的小さいサブセットを含んでも良い。最初の組４０５２は、（例えば、制約４０１４で）必須として指定された任意のＦＰＴを含み、禁止された任意のＦＰＴを除外しても良い。
【０１５５】
オプティマイザ４０８４は、４０６２Ａ及び４０６２Ｂ等の１つまたは複数のＦＰ提案の生成に関与しても良い。ＦＰ提案は、典型的に、例えば、オプティマイザによって行われた費用対効果分析に基づいて複数の候補ＦＰＴが削除または枝刈りされた、候補セット４０５２のバージョンでも良い。クライアントが制約４０１４を介して必須特徴処理変換を指示した場合、そのような変換は、ＦＰ提案内に保存されても良い。様々な実施形態において、以下に記載されるように、費用対効果分析は、複数のジョブ、例えば、候補ＦＰＴの最初の組の結果を用いたモデルの訓練及び評価を伴うジョブのスケジューリング、様々なＦＰＴの予測の質への影響を推定するための変更された評価セットを用いたモデルの再評価、及び／または様々なＦＰＴの予測実行時間メトリックへの影響を推定するための変更された組の処理済み変数を用いたモデルの再訓練を含んでも良い。図４０に示されるシナリオにおいて、提案４０６２Ａが、ＦＰＴ５、ＦＰＴ８、ＦＰＴ９、及びＦＰＴ１０を削除することによって最初のＦＰＴ候補セット４０５２から得られる一方で、提案４０６２Ｂは、ＦＰＴ候補セット４０５２からＦＰＴ４、ＦＰＴ７、ＦＰＴ８、ＦＰＴ９、及びＦＰＴ１０を削除することによって生じる。異なる実施形態において、以下にさらに詳細に記載されるように、様々な技法が、ランダム削除、貪欲アルゴリズム等の、異なる提案において削除されるＦＰＴの選択のために使用されても良い。候補セットからのＦＰＴの枝刈り（例えば、削除）の利点のうちの１つは、クライアントの訓練及び試験データセットにいくつかの独立変数を含む手間を掛ける必要がなくても良いことである。例えば、ＦＰＴ５が所与の独立変数４００６に適用する候補セット４０５２における唯一の変換であり、かつＦＰマネージャが、クライアントの目標を達成するためにＦＰＴ５が必要ではないことを判定する場合、クライアントは、将来の訓練及び／または試験／評価データのために独立変数４００６の値を収集する必要はない。ＭＬＳへの訓練データの収集、記録、及び提供は、機械学習問題に対する解決策を得るためのクライアントの全費用に有意に影響を与え得るため、そのような訓練データ縮小最適化は、特に有益であり得る。
【０１５６】
少なくとも一部の実施形態において、１つまたは複数のＦＰ提案４０６２が、例えば、クライアントが特定の提案または複数の提案を承認し得るカタログまたはメニューの形態で、プログラム的にＭＬＳのクライアントに提供されても良い。一部の事例では、反復処理が、最終承認済みＦＰ計画に到達するために、例えば、クライアントへの提案を提供するＭＬＳを含む所与の反復を用いて、続いてクライアントからの提案変更要求によって使用されても良い。一部の実施形態において、クライアントが反復の間に生成された提案のうちのいずれも承認しない場合、ＦＰマネージャは、事実上、目標または品質メトリックの少なくとも一部に優先順位を付ける／変更するか、または制約の一部を緩和するようにクライアントに要求する必要条件再考要求をクライアントに送信しても良い。クライアントは、目標及びメトリックのうちのいくつかまたは全てに対して相対的優先度を指示することにより、再考要求に応答しても良い。ＦＰ提案が最終的に承認された後、ＭＬＳは、モデルを訓練するための入力として承認されたＦＰＴの結果を使用して、クライアントに代わって提案を実行し、次いで、指定された非訓練データについての予測／評価を得ても良い。特徴処理の費用対効果トレードオフに基づくそのような最適化は、例えば分類モデル、回帰モデル、クラスタ化モデル、自然言語処理モデル等を含む様々なモデルの種類に対して、及び異なる実施形態において、様々な問題領域に対して使用されても良い。
【０１５７】
少なくとも一部の実施形態において、クライアントは、先に記載された種類のレシピ言語を使用して書かれたレシピが、クライアントのモデルを訓練するための処理済み変数を生成するために使用されることを指示しても良い。そのようなシナリオにおいて、ＭＬＳは、レシピ内で指示されたＦＰＴを分析しても良く、レシピ内のＦＰＴの一部（または全て）が、クライアントに提供されるＦＰ提案を生成するとき、置換または削除されるべきかどうかを確認しても良い。つまり、そのような実施形態において、ＦＰマネージャは、より良い代替手段が利用可能でありそうな場合、クライアント指定のＦＰレシピへの変更を提案または推奨するように構成されても良い。一部の実施形態において、１つまたは複数のプログラム的インターフェースを、クライアントが例えば、クライアントの訓練データ、目標変数、実行時間目標、予測の質メトリック等を指示するＦＰ最適化に対する要求を提出することを可能にするために、クライアントに利用可能にしても良い。そのようなＡＰＩを介した要求の受信に応答して、ＭＬＳは、様々な内部ＡＰＩを利用して、要求された提案を提供しても良く、例えば、それぞれのジョブは、特徴処理、訓練、評価、再訓練、及び／または再評価を行うために、上述のチャンクされた手法を使用して訓練データを読み出すために、より低いレベルのＡＰＩを使用してスケジュールされても良い。少なくとも１つの実施形態において、プログラム的インターフェース（例えば、ウェブベースのダッシュボード）を、クライアントが様々なモデルに関してクライアントの実行時間目標が達成された程度を見ることを可能にするために、クライアントに利用可能にしても良い。
【０１５８】
図４１は、少なくとも一部の実施形態に従った、測定された予測速度及び予測の質に基づいて、いくつかの代替手段から特徴処理セットを選択する例を例示する。描写されるグラフにおいて、（訓練後に予測が立てられることが見込まれる所与のデータセットサイズに対する）予測速度は、Ｘ軸に沿って左から右に増加する。各点４１１０（例えば、１２個の点４１１０Ａ〜４１１０Ｎのうちのいずれか）は、モデルの予測実行を表し対応する組のＦＰＴは、訓練モデルのために使用される。自身に代わってモデルが訓練及び実行されているクライアントは、目標予測速度目標ＰＳＧ及び目標予測質目標ＰＱＧを指示した。結果がＦＰマネージャによって得られた組のＦＰＴの中で、ＦＰＴセット４１１０Ｇが、クライアントの基準の両方の基準を満たしているため、最良の代替手段として選択される。
【０１５９】
少なくとも一部のシナリオにおいて、全てのクライアントの目標が、同時に達成可能ではない場合がある。例えば、クライアントは、ＭＬＳが必ずしも両方の目標を達成することができないような、予測時間がＸ秒未満であることを望み、また、予測の質が、何らかの測定値Ｑ１を超えることも望む場合がある。一部のそのような事例において、クライアントは、ＭＬＳが他のものに優先して１つの目標の最適化を試みることができるように、目標に優先順位を付けるように要求されても良い。多くの実施形態において、少なくとも一部のクライアントは、質目標を指定する必要がなくても良く（またはたとえそのような目標を指定することができたとしても、質目標を指定しなくても良く）、代わりに、最適化のために目標にされるべきである適切な予測の質基準の選択を、ＭＬＳに委ねても良い。少なくとも１つの実施形態において、ＭＬＳは、さらには、所与のクライアントの代わりに、目標にされるべきである実行時間目標を選択し、及び／または実行時間目標に優先順位を付けても良い。一部の実施形態において、機械学習に関してより精通しているクライアントは、例えば、ＭＬＳと対話しているとき、任意のＡＰＩパラメータの値を使用して、クライアントが望むだけいくらでも、ＦＰトレードオフ管理に関する詳細なガイダンスを提供することを許可されても良い。したがって、ＭＬＳは、特徴処理の費用と効果との間のトレードオフの管理に関する様々なクライアントの専門知識レベルを処理することができても良い。
【０１６０】
図４２は、少なくとも一部の実施形態に従った、クライアントと機械学習サービスの特徴処理マネージャとの間の対話の例を例示する。示されるように、システム４２００に実装された機械学習サービスのクライアント１６４は、プログラム的インターフェース４２６２を介してモデル作成要求４２１０を提出しても良い。モデル作成要求４２１０は、例えば、次の要素のある組み合わせを指示しても良い。すなわち、（予測される目標変数の指標を含む）１つまたは複数の訓練セット４２２０、１つまたは複数の試験または評価セット４２２２、クライアントにとって関心のある１つまたは複数のモデルの品質メトリック４２２４、（予測実行時間目標及び／もしくは訓練目標等の）目標４２２５、ならびに一部の事例では、ＭＬＳのレシピ言語仕様に従ってフォーマットされた１つまたは複数の任意の特徴処理レシピ４２２６。少なくとも１つの実施形態において、クライアントは、クライアントの代わりに行われる必要がある必須特徴処理変換等の１つまたは複数の制約４２２７、または行われてはならない禁止された変換も任意選択的に指示しても良い。一部の実施形態において、図４２に示される全ての要素が、モデル作成要求４２１０内に含まれても良いとは限らず、例えば、特定のモデルの品質メトリックが指示されない場合、ＦＰマネージャは、解決される機械学習問題の性質に基づいて、最適化のためにある特定のメトリックを選択しても良い。モデル作成要求４２１０は、ＭＬＳのフロントエンド要求／応答ハンドラ４２８０によって受信されても良く、要求の内部表現は、ＦＰマネージャ４０８０に引き渡されても良い。モデル作成要求は、本明細書でモデル訓練要求とも称され得る。
【０１６１】
ＦＰマネージャ４０８０は、特徴処理変換の候補セットを生成し、次いでモデルのために識別された品質メトリック、目標、及び／または制約に基づいて提案を識別するために、その候補セットを枝刈りしても良い。描写される実施形態において、例えば１つまたは複数の特徴処理ジョブ４２５５、１つまたは複数のモデル評価ジョブ４２５８、及び／または１つまたは複数の訓練ジョブもしくは再訓練ジョブ４２６１を含むいくつかの異なるジョブが、この処理の間に生成され、スケジュールされても良い。モデル作成要求がレシピ４２２６を含む場合、ＦＰマネージャは、考慮される一組の変換をレシピ内で指示されたものに必ずしも制限せずに、レシピ４２２６を特徴処理オプションのＦＰマネージャの調査の開始点と見なしても良い。一部の実施形態において、ＦＰマネージャは、例えば、作成または訓練されるモデルによって対処される問題領域に基づいて候補変換を識別するために、ベストプラクティスのＭＬＳの知識ベースを参照しても良い。先に言及されたように、ＦＰＴ（特徴処理変換）の候補セットが識別されたら、変換のあるサブセットが、いくつかの最適化反復の各々の中の組から削除または枝刈りされても良く、モデルの異なる異形は、枝刈り済みＦＰＴセットを使用して訓練及び／または評価されても良い。少なくとも一部の実施形態において、モデル異形４２６８は、ＭＬＳ人工物レポジトリ内に記憶されても良い。クライアント要求が訓練時間目標、またはＭＬＳがＦＰ提案を提供する必要がある締め切りを含む場合、そのような目標／締め切りは、ＦＰマネージャ４０８０によって使用される特定の枝刈り法に影響を与えることがあり、例えば、以下に例示されるもの等の貪欲枝刈り法が、厳密な訓練時間締め切りと一緒に使用されても良い。少なくとも一部の問題に関して、極めて多数のＦＰＴを考慮に入れることが可能であり得るため、ＭＬＳは、例えば、訓練時間リソース消費を適度な範囲内に保つために、クライアントがそのような目標を指定しないシナリオでそれ自体の訓練時間目標を設定しても良い。一部の実施形態において、クライアントは、ＦＰ提案の生成に対して固定の料金を請求されても良く、この場合、ＦＰマネージャによる異なるＦＰＴオプションの実験／試験は、固定料金に対応するリソース使用限度によって制約されても良い。
【０１６２】
描写される実施形態において、ＦＰマネージャ４０８０は、代替変換セットのその分析を最終的に終了し、１つまたは複数のＦＰ提案４２７２を（例えば、要求／応答ハンドラ４２８０によって生成されたＡＰＩ応答を介して）クライアント１６４に提供しても良い。クライアントがレシピ４２２６を提供したシナリオにおいて、ＦＰ提案は、ＭＬＳによって行われた分析に基づいて推奨されたクライアントのレシピ（複数可）への１つまたは複数の変更を指示しても良いか、または完全に異なるレシピが指示されても良い。一部の実施形態において、ＦＰ提案（複数可）が、ＭＬＳのレシピ言語に従ってフォーマットされても良い一方で、他の実施形態においては、提案された特徴処理変換の異なる表現が提供されても良い。クライアント１６４は、提案のうちの１つまたは複数の承認、または例えば、ＦＰ変更要求４２７８を介した提案（複数可）への変更の要求のいずれかを行なっても良い。少なくとも一部の実施形態において、クライアントが変更に関する提案を提出し、ＭＬＳが変更を試してみるために、追加の評価または再訓練動作を行う反復ネゴシエーションが、ＭＬＳとクライアントとの間で起こっても良い。一部の実施形態において、ネゴシエーションが終了する前に行われるそのような反復の回数もまた、請求に少なくとも部分的に基づいても良く、例えば、クライアントは、再試験の各反復のために消費された時間またはリソースの量に基づいて料金を請求されても良い。描写される実施形態において、最終的に、クライアントは、例えば、ＭＬＳ  ＡＰＩを介して特定のＦＰ提案を承認し、モデル実行要求４２５４を提出しても良い。次いで、本番レベルのモデル実行マネージャ４２３２が、承認されたＦＰ提案に対応するモデルの本番実行（複数可）４２５８を実行しても良い。クライアントは、例えば、新しい訓練データに基づいて、追加の変更要求４２７８を提出し、及び／またはモデルの再訓練もしくは再作成を要求することにより、本番実行において達成された結果に基づいて追加の変更を要求しても良い。
【０１６３】
様々な実施形態において、いくつかの異なる技法が、枝刈り候補ＦＰ変換（すなわち、候補セットからの変換の削除）のために使用されても良い。図４３は、少なくとも一部の実施形態に従った、ランダム選択を使用した候補特徴処理変換の枝刈りの例を例示する。この手法において、最初の候補ＦＰＴセット４３０２の１つまたは複数のＦＰＴが、ランダムな削除のために選択されても良く、そのような削除のモデルの品質メトリック及び目標への影響が、推定されても良い。ＦＰ変形４３２０Ａが、候補ＦＰＴセット４３０２からのＦＰＴ１１の削除から生じても良い一方で、例えば、ＦＰ変形４３２０Ｂは、ＦＰＴ６、ＦＰＴ７、及びＦＰＴ１３の削除から生じても良い。
【０１６４】
候補セットの異なるＦＰＴ間の論理関係または依存性によっては、枝刈り被害者（ｐｒｕｎｉｎｇ  ｖｉｃｔｉｍ）としてのＦＰＴセットの１つの特定のノードの選択は、１つまたは複数の他のノードの削除ももたらし得る。例えば、ＦＰＴ１３及びＦＰＴ７がＦＰＴ６に依存する（例えば、ＦＰＴ６の出力を使用する）場合、被害者としてのＦＰＴ６の選択はまた、ＦＰＴ７及びＦＰＴ１３の枝刈りをもたらし得る。被害者ＦＰＴを削除する費用及び効果の推定は、例えば、予測の質メトリックへの影響を判定するために、ダミーまたは被害者によって生成された特徴の統計的に選択された代替値を使用してモデルを再評価することによって、及び／または実行時間性能メトリックへの影響を判定するためにより、小さい一組の特徴を用いてモデルを再訓練することによって判定されても良い。描写される実施形態において、ＦＰマネージャは、各ＦＰ変形４３２０の枝刈り結果を、例えば、人工物としてＭＬＳ人工物レポジトリ内に記憶しても良い。例えば、変形４３２０Ｂに対応する枝刈り結果４３９０は、予測の実行時間の費用に対する、削除されたＦＰＴ（ＦＰＴ６、ＦＰＴ７、及びＦＰＴ１３）の予測の質貢献度４３３３の推定値、ならびに削除されたＦＰＴの貢献度４３３４の推定値を含んでも良い。異なる変形に関するそのような推定値は、ＦＰマネージャによってクライアントに提供される提案を生成するために使用されても良い。ランダム化枝刈り手法は、特に、異なる候補ＦＰＴが、これらの費用及び質貢献度において有意に異なることが見込まれない場合、またはＦＰマネージャが、（例えば、ベストプラクティスに基づいて）異なる候補が有意に異なる費用または質貢献度を有する可能性が高いかどうかを予測できない場合に、有用であり得る。
【０１６５】
一部の実施形態において、例えば、複数のランダム化枝刈り反復の結果としてか、または類似のモデルでの経験に基づいてかのいずれかで、ＦＰマネージャのオプティマイザが、モデルの品質に対して有意なプラスの貢献を提供することが見込まれる特定のＦＰＴを識別することは可能であり得る。次いで、ＦＰマネージャは、候補ＦＰＴグラフにおけるそのような非常に有益なＦＰＴの位置に基づいて、提案、例えば、有益なＦＰＴ及びこれらの隣接物を含む提案をしても良い。図４４は、少なくとも一部の実施形態に従った、候補特徴処理変換の推奨されるセットを識別するためのそのような貪欲法の例を例示する。
【０１６６】
最初の候補ＦＰＴセット４４０２のグラフにおいて、ＦＰマネージャは、モデルの品質に対して最も高い貢献度（または少なくとも質貢献度が評価されたノード中で最も高い貢献度）を有する特定のノードとして、（ＦＰＴ１４に対応する）識別済みノード４４１０を有する。その結果、ノード４４１０が、クライアントに提供される推奨されるＦＰＴの提案の中に含まれるＦＰＴのグラフを構築するための開始ノードとして、選択されている。提案を構築するための一手法において、開始ＦＰＴノードが識別された後で、（存在する場合）開始ＦＰＴノードの前提条件ノードもまた、提案の中に含まれても良い。描写される実施例において、例えば、ＦＰＴ１４によって指示された変換を行うために、ＦＰＴ１０、ＦＰＴ３、ＦＰＴ２、及びＦＰＴ１の結果が必要であっても良い。次いで、既に選択されたノードのノードＦＰＴ８、ＦＰＴ９、ＦＰＴ４、ＦＰＴ１１、ＦＰＴ５、及びＦＰＴ１２等の他の隣接したノードの貢献度及び費用が、所望の質及び／または費用目標が達成されるまで、再評価と再訓練との反復を使用して判定されても良い。（削除された他の候補ＦＰＴを有する）得られたＦＰＴグラフが、クライアントに送信されるＦＰ提案４４３２の中に含まれても良い。
【０１６７】
異なる実施形態において、特定の実行時間目標の最適化に基づくＦＰ提案生成の処理は、いくつかの段階を伴っても良い。一実施形態において、例えば、モデルはまず、最初に識別された一組の候補ＦＰＴ全部を使用して生成／訓練されても良い。ある特定の候補処理済み変数（ＰＶ）の値の統計が、得られ、モデル予測の質に対するＰＶ及びこれらの対応するＦＰＴの特定の貢献度を判定するため、後に使用されても良い。図４５は、少なくとも一部の実施形態に従った、モデルが、第１の組の候補処理済み変数を使用して訓練され、評価される特徴処理最適化技法の第１の段階の例を例示する。描写される実施形態において、示されるように、元の組の処理済み変数（ＰＶ）４５６０（すなわち、ＦＰＴの結果）は、未処理の訓練セット４５０２から得られても良い。未処理の訓練セット４５０２は、複数の独立変数ＩＶ１、ＩＶ２、…、及び独立変数または目標変数ＤＶを含んでも良い。ＰＶ訓練セット４５６０は、（特徴処理変換ＦＰＴ１から得られた）ＰＶ１、（ＦＰＴ２を介して得られた）ＰＶ２、及び（ＦＰＴ３を介して得られた）ＰＶ３等の複数のＰＶを含んでも良い。一般に、訓練セットが、１つまたは複数の未処理変数及び複数の処理済み変数を含んでも良い一方で、提示を単純化するために、わずか３つの処理済み変数が、訓練セット４５６０の例に示されることが留意される。描写される実施形態において、ＰＶ１統計、ＰＶ２統計、及びＰＶ３統計等の（数値ＰＶの場合、平均、中央値、最小値、及び最大値、または非数値ＰＶの場合モード値等の）それぞれの組の統計は、ＰＶのうちのいくつかまたは全てに対して、生成されても良い。少なくとも一部の実施形態において、ＦＰＴの生成の前に、未処理訓練データのカテゴリー変数は、数値またはＢｏｏｌｅａｎ値に変換またはマッピングされても良く、一部の事例では、数値は、正規化（例えば、−１〜１の範囲内の実数にマッピング）されても良い。
【０１６８】
モデル４５１０は、ある訓練費用ＴＣで元のＰＶ訓練セット４５６０を使用して訓練されても良い。ＴＣは、メモリサイズＭ１を有する機械上のＣＰＵの秒数等の様々な単位、または対応する請求額で表されても良い。描写される実施形態において、モデルは、未処理の評価セット（またはいくつかのそのようなセット）４５０４から導出されたＰＶセット４５６２を使用して、評価されても良い。したがって、ＰＶ１、ＰＶ２、及びＰＶ３に対する訓練セット値が、それぞれ変換ＦＰＴ１、ＦＰＴ２、ＦＰＴ３を使用して得られたのと同様に、ＰＶ１、ＰＶ２、及びＰＶ３に対する評価セット値は、同じ種類の変換を未処理の評価セット（複数可）４５０４に提供することにより、得られても良い。少なくとも一部の事例では、訓練済みモデルの評価費用（ＥＣ）は、（例えば、予測のために使用される様々な係数の識別が、試験／評価実行の間に係数を単純に適用するよりも計算集約的であり得るため）全ての候補ＦＰＴの結果を使用したモデルの訓練費用であるＴＣよりも低くても良い。候補ＦＰＴのうちのいずれも枝刈りせずに得られた元の評価結果４５３６は、（例えば、以下に記載されるように、異なるＦＰＴのそれぞれの質貢献度を判定するため、後に使用されるように）永続的レポジトリに保存されても良い。同様に、全ての候補ＦＰＴの使用に対応する元の予測実行時間メトリック４５３７（例えば、経過時間、使用されるＣＰＵの秒数、使用されるメモリ等）は、（例えば、後で異なるＦＰＴのそれぞれの費用貢献度を決定するときに使用されるように）収集及び保存されても良い。
【０１６９】
少なくとも一部の種類の機械学習問題に関して、一般に、モデルの予測の質は、より多くのＦＰＴが訓練のために使用されるとき、より高くなり得る。次いで、以下に記載されるように、異なる枝刈り選択に対応するモデルの予測の質メトリックに対する差またはデルタが、特徴処理技法の後の段階で得られても良い。図４６は、少なくとも一部の実施形態に従った、様々な処理済み変数の予測の質への影響を判定するために、変更された評価データセットを使用してモデルが再評価される特徴処理最適化技法の後続の段階の例を例示する。描写される実施例において、ＰＶ１、ＰＶ２、及びＰＶ３に対して得られた統計が、モデルのそれぞれの実行のための評価データセットを変更するために使用される。示されるように、変更された評価セット４６６２Ａにおいて、元のＰＶ１値が（先に得られたＰＶ１統計からの）ＰＶ１の平均値によって置換される一方で、ＰＶ２及びＰＶ３の元の値は、保存される。変更された評価セット４６６２Ｂにおいて、元のＰＶ２値は、ＰＶ２の最小値と最大値との間の範囲で元の候補訓練セットを使用して生成された統計から選択されたランダム値によって置換される。変更された評価セット４６６２Ｃにおいて、元のＰＶ３値は、元の候補訓練セットから得られたＰＶ３統計の中央ＰＶ３値によって置換される。
【０１７０】
次いで、変更された評価セットの各々は、それぞれの組の予測を得るために、元のＰＶ訓練セット４５６０を使用して訓練済みモデル４５１０への入力として提供される。変更された評価セット４６６２Ａを使用して、（達成することができた結果がモデル４５１０の訓練セット内に含まれていないＰＶ１を有したことを示すか、またはその結果に近似する）ＰＶ１で枝刈りされた評価結果４６３６Ａが、得られても良い。ＰＶ１の枝刈りに対応する予測の質メトリックと、図４５に示される枝刈りされていない評価セットに対応する予測の質メトリックとの間の差を計算することにより、（図４６でＦＰＴ１−ｑｕａｌｉｔｙ−ｄｅｌｔａと称される）モデルの質に対するＰＶ１の貢献度の測定値を得ることができる。同様に、ＰＶ１で枝刈りされた評価結果４６３６Ｂが、モデル予測結果の質に対するＦＰＴ２またはＰＶ２の貢献度であるＦＰＴ２−ｑｕａｌｉｔｙ−ｄｅｌｔａを推定するために使用されても良く、ＰＶ３で枝刈りされた評価結果４６３６Ｃが、ＦＰＴ３−ｑｕａｌｉｔｙ−ｄｅｌｔａを推定するために、使用されても良い。このように、モデルの予測の質に対するいくつかの異なるＦＰＴの相対的貢献度を推定しても良く、そのような貢献度推定値が、クライアントに対するＦＰ提案を生成するために使用されても良い。変更された評価セットを使用したＦＰＴ１−ｑｕａｌｉｔｙ−ｄｅｌｔａ、ＦＰＴ２−ｑｕａｌｉｔｙ−ｄｅｌｔａ、及びＦＰＴ３−ｑｕａｌｉｔｙ−ｄｅｌｔａ等の質貢献度を見積もる（例えば、リソース消費または時間に関する）費用は、モデルＴＣを再訓練し、次いでモデルを再評価する費用よりも低くても良い評価費用ＥＣと類似していても良い。
【０１７１】
変更されたＰＶ評価セットを生成するために使用される特定の統計または値は、異なる種類のＰＶによって、及び／または異なる種類のモデルもしくは問題領域によって異なっても良い。一部の実施形態において、平均値が、（図４６のＰＶ１の事例のように）規定の代替値として使用されても良い一方で、他の事例では、ランダム値が割り当てられても良いか、または中央値またはモード値が、同様の種類の問題のために達成された先の結果に基づいて使用されても良い。
【０１７２】
先に論じられたように、図４６に示される代替値ベースの技法は、異なるＰＶ及びＦＰＴの質貢献度が得られる最適化の第２の段階の一部でも良い。異なるＰＶまたはＦＰＴに関連した実行時間費用を得るために、一部のモデルが、再訓練される必要があっても良い。図４７は、少なくとも一部の実施形態に従った、予測実行時間費用への処理済み変数の使用の影響を判定するために、変更された一組の処理済み変数を使用してモデルが再訓練される特徴処理最適化技法の別の段階例を例示する。描写される実施例において、枝刈り済みＰＶ訓練セット４７６０は、例えば、ＰＶ２の値を単純に除外することにより、最適化処理のより早い段階で生成されたＰＶ訓練セット４５６０から得られても良い。同様に、枝刈り済みＰＶ評価セットは、例えば、ＰＶ２値を除外することにより、元のＰＶ評価セット４５６２から得られても良い。元のＰＶ訓練セット及び／または元のＰＶ評価セットが元の段階の後に破棄される実施形態において、枝刈り済みＰＶ訓練セット４７６０及び／または枝刈り済みＰＶ評価セット４７６２は、未処理の訓練及び評価セットから得られる必要があっても良い。
【０１７３】
モデル４７１０は、枝刈り済みＰＶ訓練セット４７６０を使用して訓練され、枝刈り済みＰＶ評価セット４７６２を使用して評価されても良い。予測実行時間費用に対するＦＰＴ２の貢献度の測定値であるＦＰＴ２−ｃｏｓｔ−ｄｅｌｔａは、（ＦＰＴ２またはＰＶ２の枝刈りに対応する）予測実行時間メトリック４７３６と、（全ての候補ＦＰＴを使用して訓練／評価されたモデルを使用して得られた）元の実行時間メトリック４５３７との間の差として計算されても良い。再訓練モデルの費用ＴＣ２が、全てのＦＰＴが含まれた訓練モデルの（図４５に示される）費用ＴＣと類似していても良い一方で、モデルを再評価する費用ＥＣ２は、より低くても良い。訓練費用が評価費用よりもかなり高い一部の実施形態において、ＦＰマネージャは、再訓練よりも多くの再評価を試みても良く、例えば、多くのＦＰＴが、これらの質貢献度に関して分析されても良く、次いでより小さいサブセットが、これらの費用貢献度に関して分析されても良い。
【０１７４】
図４８は、少なくとも一部の実施形態に従った、質に対する実行時間費用トレードオフに基づいて特徴処理変換を推奨する、機械学習サービスで行われ得る動作の態様を例示する流れ図である。要素４８０１に示されるように、（特徴処理マネージャ等の）ＭＬＳの構成要素は、指定された訓練データセット、クライアントにとって関心のある１つまたは複数の予測の質メトリック、及び１つまたは複数の予測実行時間目標を用いて訓練済みモデルを使用して予測される、１つまたは複数の目標変数を判定しても良い。一実施形態において、クライアントは、１つまたは複数の必須特徴処理変換または１つまたは複数の禁止されている特徴処理変換等の制約を指示しても良い。少なくとも一部の実施形態において、これらのパラメータのうちのいくつかまたは全ては、例えば、ＡＰＩ（アプリケーションプログラミングインターフェース）、ウェブベースのコンソール、スタンドアロンＧＵＩ（グラフィカルユーザインターフェース）、またはコマンドラインツール等のプログラム的インターフェースを介してＭＬＳに提出されたクライアントの要求内で指示されても良い。一部の事例では、クライアントは、例えば、予測実行に対する実行時間目標に加えて、１つまたは複数の訓練時間目標を指示しても良い。ＡＵＣ（曲線下面積）メトリック、正確さメトリック、再現度メトリック、感度メトリック、真陽性率、特異性メトリック、真陰性率、精度メトリック、偽陽性率、偽陰性率、Ｆ１スコア、適用範囲メトリック、絶対パーセントエラーメトリック、または二乗エラーメトリック等の様々な予測の質メトリックの任意の組み合わせが、異なる種類の機械学習問題に対してＭＬＳ構成要素によって識別されても良い。同様に、モデル実行時間目標、メモリ使用率目標、プロセッサ使用率目標、記憶装置使用率目標、ネットワーク使用率目標、または予算等の様々な実行時間目標の任意の組み合わせが、判定されても良い。一部の実施形態において、（訓練後予測に対する）訓練の対応する種類の目標が、判定されても良い。一部の実施形態において、目標は、（例えば、モデル実行時間は、Ｘ秒未満でなければならない等の）絶対項で、または分布または（例えば、モデル実行時間のうちの９０％は、ｘ秒未満でなければならない等の）パーセンタイル値の点から指定されても良い。異なる実施形態において、クライアントは、例えば分類モデル（例えば、二項分類モデルまたはｎ方分類モデル）、回帰モデル、自然言語処理（ＮＬＰ）モデル、クラスタ化モデル等を含む多岐にわたるモデルの作成、訓練、または再訓練を要求しても良い。
【０１７５】
ＭＬＳは、次いで、特徴が目標変数（複数可）の値を予測するために使用されても良いように、生訓練データから処理済み変数または特徴を得るために使用することができる、一組の候補特徴処理変換（ＦＰＴ）を識別しても良い（要素４８０４）。少なくとも一部の事例では、未処理の独立変数のうちの１つまたは複数もまた、訓練のために使用される変数の候補セット内に含まれても良く、つまり、訓練セット内の全ての変数が、ＦＰＴの結果である必要はない。問題またはモデルの性質に応じて、分位ビニング、カルテシアン積生成、ｂｉ−ｇｒａｍ生成、ｎ−ｇｒａｍ生成、直交スパースｂｉｇｒａｍ生成、カレンダ関連の変換、画像処理関数、音声処理関数、生物情報学処理関数、または自然言語処理関数等の多岐にわたるＦＰＴ候補のうちのいずれかが、選択されても良い。一部の実施形態において、ＭＬＳが、一般に候補の広範なリストを見つけ出すよう試みても良い一方で、異なるＦＰＴ候補の数は、訓練時間または訓練リソースの明確または暗黙的目標等の１つまたは複数の制約に基づいて制限されても良い。一実施形態において、ＦＰＴ候補の少なくとも一部は、互いに依存しても良く、例えば、あるＦＰＴの出力が、別のＦＰＴの入力として使用されても良く、一部の事例では、ＦＰＴ候補の１つまたは複数の有向グラフが、そのような関係を表すために生成されても良い。
【０１７６】
少なくとも識別されたＦＰＴ候補のサブセットに関して、モデルの予測の質に対するＦＰＴの貢献度のそれぞれの推定値、及び／または実行時間目標に影響を与えるメトリックへのＦＰＴの効果のそれぞれの推定値が、判定されても良い（要素４８０７）。例えば、一実施形態において、モデルは、まず、最高条件の予測の質測定値及び対応する実行時間メトリックを得るために、完全な組の候補ＦＰＴを使用して、訓練及び評価されても良い。次いで、質貢献度を得るために、モデルは、変更された評価データセット、例えば、所与の処理済み変数の値が、図４６に例示されるものと同様の方式で、変更されていない訓練セット内のその処理済み変数の平均値（または一部の他の統計的に導出された代替値）によって置換された評価データセットを使用して、再評価されても良い。一部の実施形態において、実行時間目標への影響を得るために、モデルは、枝刈り済み訓練データ（すなわち、候補セットの１つまたは複数の処理済み変数が削除される訓練データ）を用いて、再訓練される必要があっても良い。少なくとも１つの実施形態において、それぞれのジョブは、再評価及び／または再訓練のために生成されても良い。
【０１７７】
質貢献度及び費用の影響の推定値を使用して、ＭＬＳは、例えば、任意の明確または暗黙的な訓練時間制約もしくは目標に違反せずに、クライアントにプログラム的に提示される１つまたは複数の特徴処理提案を生成しても良い（要素４８１０）。クライアントが（要素４８１３で検出される）特定の提案ＦＰ１の承認を指示した場合、その提案は、クライアントに代わって後続の実行（例えば、モデルの訓練後本番実行）のために、実行されても良い（要素４８１６）。クライアントが（同様に要素４８１３で検出される）ＭＬＳによって出された任意の提案を承認しない場合、ＦＰＴの異なる組み合わせが、さらなる訓練／試験のために選択されても良く（要素４８１９）、以降の要素４８０７に対応する動作は、提案が承認されるか、または最適化反復をやめるための判定がＭＬＳまたはクライアントによって下されるかのいずれかまで、新しい組み合わせに対して反復されても良い。一部の実施形態において、クライアントは、ＦＰＴの完全な（最適化されていない）候補セットを利用するオプションを与えられても良く、つまり、ＭＬＳは、枝刈り前に識別された全ての候補ＦＰＴを使用して訓練されたモデル異形を保存しても良い。
【０１７８】
様々な実施形態において、ＭＬＳは、クライアントによって指示された目標間で優先順位を付ける必要があっても良く、例えば、速い予測実行時間が、低メモリ使用率目標と矛盾しても良い。一部のそのような事例において、ＭＬＳは、そのような優先順位付けをクライアントに示し、目標の選択された順序付けのクライアントの承認を得ても良い。少なくとも一部の実施形態において、クライアントは、使用されるＦＰＴのレシピを指示または提案しても良く、ＭＬＳは、候補ＦＰＴセット内への考えられる包含に関して、レシピ内で指示されたＦＰＴのうちの少なくともいくつかを分析しても良い。一実装例において、たとえクライアントがモデル作成要求内でレシピを指示しなかったとしても、ＭＬＳは、先に論じられたＭＬＳレシピ言語にフォーマットされたレシピの形態のＦＰ提案を提供しても良い。少なくとも一部の実施形態において、この提案（または提案に対応するレシピ）は、人工物としてＭＬＳ人工物レポジトリ内に記憶されても良い。
【０１７９】
ＦＰ提案がクライアントによって承認された後、ＦＰ提案は、潜在的に、多くの異なる本番モードのデータセットに対するモデルの後続の実行のために使用されても良い（すなわち、ＦＰ提案を使用して生成された処理済み変数は、モデルを訓練し、かつモデルを使用して予測を立てるために使用される入力変数として使用されても良い）。所与のクライアントは、いくつかの異なるモデル作成要求をサービスに提出し、各モデルへのそれぞれのＦＰ提案を承認し、次いで、しばらくの間、承認済みモデルを利用しても良い。一部の実装例において、クライアントは、モデルが承認された後に、様々なモデルに対するクライアントの予測実行時間目標に関する成功率を見ることを望むことがある。図４９は、クライアントが少なくとも一部の実施形態に従った、様々な機械学習モデル実行の状態を見ることを可能にし得るプログラム的ダッシュボードインターフェースの例である。描写される実施例において、ダッシュボードが、メッセージ領域４９０４及びクライアントの承認済みモデルのあるサブセットまたは全てに関するそれぞれのエントリを含むウェブページ４９０１内に、組み込まれても良い。描写される実施例において、メッセージ領域４９０４内に示されるように、過去２４時間の間にクライアントに代わって実行されていたモデルについての情報が、提供される。一部の実施形態において、クライアントは、例えば、リンク４９０８をクリックすることにより、ダッシュボードによって対象とされる期間を変更しても良い。
【０１８０】
図４９に示されるダッシュボード例が表示されるクライアントは、２４時間の対象期間内に実行された、脳腫瘍検出モデルＢＴＭ１、海馬萎縮検出モデルＨＡＤＭ１、及び運動皮質損傷検出モデルＭＣＤＤ１の３つのモデルを有する。ダッシュボードの領域４９１２内に示されるように、ＢＴＭ１に関してクライアントによって選択された品質メトリックは、ＲＯＣ  ＡＵＣであり、実行時間性能目標は、予測がＸ秒未満後に完了することであり、過去２４時間の予測実行のうちの９５％が、目標を達成した。ＨＡＤＭ１に関しては、領域４９１４内に示されるように、品質メトリックは、偽陽性率であり、実行時間性能目標は、Ｙ以下のメモリフットプリントであり、達成された成功率は、９７％である。領域４９１６内に示されるように、ＭＣＤＤ１に関して、予測の質メトリックもまた偽陽性率であり、実行時間性能目標は、Ｚ未満の予測実行当たりの費用目標であり、達成された成功率は、９２％である。異なる実施形態において、図４９に提供される種類の情報のいくつかの変動は、クライアントにプログラム的に示されても良く、実際面で使用されるインターフェースの詳細は、ここで示されるものとは実質的に異なっても良い。
【０１８１】
訓練線形モデルの最適化
訓練線形モデルの最適化の以下の考察の文脈において、「特徴識別子」という用語は、モデルを訓練するために使用されるデータセットの観測記録から導出された特性の固有の識別子を指し得ることが留意される。「特徴セット」という用語は、（ａ）特徴値が訓練モデルを訓練している間に観測可能であり、（ｂ）特徴パラメータが既知であるか、または訓練データから推測される一組の特徴識別子を指し得る。「特徴」という用語は、特徴識別子によってインデックス化された観測記録の特性の値（例えば、単一の数値、カテゴリー値、もしくは二進値のいずれか、またはそのような値の配列）を指し得る。「特徴ベクトル」という用語は、例えば、（ハッシュマップ等の）キー／値構造または圧縮されたベクトルで記憶されても良い一組の対またはタプルの（特徴識別子、特徴値）、を指し得る。「特徴パラメータ」または「パラメータ」という用語は、特徴識別子によってインデックス化された特性に対応するパラメータの値を指し得る。一部の実施形態において、重みを表す実数が、使用されても良いパラメータの一例であるが、いくつかの種類の機械学習技術に関して、より複雑なパラメータ（例えば、複数の数値または確率分布を含むパラメータ）が、使用されても良い。「パラメータベクトル」という用語は、一組の対またはタプル（特徴識別子、パラメータ）を指し得、これもまた、ハッシュマップまたは圧縮されたベクトル等のキー／値構造で記憶されても良い。少なくとも一部の実施形態において、特徴ベクトルは、主にパラメータベクトルを更新するために使用され、次いで破棄される（学習反復の間に調べられる所与の観測記録のために作成される）一時的構造と見なされても良い。これとは対照的に、一部の実施形態において、パラメータベクトルは、モデルの訓練段階の持続時間、保存されても良いが、以下に記載されるように、パラメータベクトルは、訓練段階の間に拡大及び縮小しても良い。一部の実施形態において、キー／値構造は、パラメータベクトル及び／または特徴ベクトルのために使用されても良いが、様々な実施形態において、パラメータベクトル及び／または特徴ベクトルの他の種類の表現が、採用されても良い。
【０１８２】
一般化線形モデルの様々な例等の線形予測モデルは、多くの種類の機械学習問題に取り組むための、数ある中でも最も人気がある（かつ、多くの場合、最も効果的な）手法である。図５０は、少なくとも一部の実施形態に従った、線形予測モデルを生成し、線形予測モデルを使用するための手順例を例示する。示されるように、線形モデルを訓練するために使用される未処理データセットまたは生訓練データセット５００２は、ＯＲ５００４Ａ、５００４Ｂ、及び５００４Ｂ等の複数の観測記録（ＯＲ）５００４を含んでも良い。次いで、各ＯＲ５００４は、ＩＶ１、ＩＶ２、ＩＶ３、…、ＩＶｎ等の複数の入力変数（ＩＶ）の値、及び少なくとも１つの従属変数ＤＶの値を含んでも良い。従属変数はまた、「出力」変数とも称され得る。少なくとも一部の実施形態において、全ての観測記録が、モデル訓練を開始する必要がある前に利用可能であり得るとは限らず、例えば、以下にさらに詳細に記載されるように、一部の事例では観測記録は、１つまたは複数のオンラインデータソースから利用可能になるに従い、機械学習サービスにストリーミング配信されても良い。そのようなシナリオにおいて、ＭＬＳは、反復的モデルの訓練に関与しても良く、例えば、各反復は、その点まで分析されたＯＲに基づいてモデルの予測の質を向上させるための試みを表す。それぞれの組の観測記録の分析に基づくそのような訓練反復はまた、本明細書で「学習反復」とも称され得る。
【０１８３】
少なくとも一部の実施形態において、ＭＬＳのモデルジェネレータ構成要素は、ある特定のデータ種類の制約を満たす（次いで、線形モデルを訓練するために使用することができる）特徴を生成するために入力変数が使用されることを必要としても良い。例えば、描写される実施形態において、モデルジェネレータは、訓練データのカテゴリーＩＶの生の値が数値に変換され、及び／または（例えば、数値を−１〜１の実数にマッピングすることにより）正規化されることを必要としても良い。そのような種類変換は、最初のデータ準備段階５０１０の間に行われ、一組の変更または準備された観測記録５０１５を生成しても良い。
【０１８４】
次いで、描写される実施形態において、線形モデルは、例えば、複数の学習反復５０２０を使用して反復的に訓練されても良い。少なくとも一部の実装例において、最初に空のパラメータベクトル５０２５が、作成されても良い。パラメータベクトル５０２５を使用して、特徴または処理済み変数値のコレクションに割り当てられたパラメータ（例えば、それぞれの重みを表す実数）を記憶しても良く、ここで、特徴は、先に記載された種類の１つまたは複数の特徴処理変換（ＦＰＴ）を使用して観測記録コンテンツから導出される。一部の実装例において、弾力性観測記録の従属変数値の予測を立てるとき、線形モデルは、重みがパラメータベクトル内に含まれる特徴の重み付けされた合計を計算しても良い。少なくとも一部の実施形態において、ハッシュマップ等のキー／値構造は、（モデルジェネレータによって割り当てられた）特徴識別子は、キーとして、パラメータは、各キーに対して記憶されたそれぞれの値として、パラメータベクトル５０２５のために使用されても良い。例えば、図５０に示されるパラメータＷ１、Ｗ２、及びＷｍは、特徴識別子Ｆ１、Ｆ２、及びＦｍを有する特徴にそれぞれ割り当てられる。
【０１８５】
各学習反復５０２０の間、１つまたは複数の準備されたＯＲ５０１５は、（モデルトレーナーとも称され得る）モデルジェネレータによって調べられても良い。準備されたＯＲ内の入力変数の調査、及び／またはモデルの現在の状態におけるモデルによる、準備されたＯＲの従属変数についての予測の正確さに基づいて、それぞれのパラメータまたは重みが、新しい組の１つまたは複数の処理済み変数に関して識別されても良い。少なくとも一部の実装例において、事前に記憶されたパラメータまたは重みは、必要である場合、１つまたは複数の学習反復において、例えば、確率的勾配降下法または何らかの類似した最適化手法を使用して更新されても良い。観測記録がどんどん調べられるに従い、対の（特徴識別子、パラメータ）キー／値が、パラメータベクトル内にどんどん追加されても良い。図５１を参照して以下に記載されるように、パラメータベクトルのこの拡大は、確認されないままにされた場合、最終的に、モデルジェネレータのために使用されているＭＬＳサーバの利用可能なメモリが枯渇し、メモリ不足エラーがモデルの訓練段階を時期尚早に終了し得るシナリオにつながる場合がある。
【０１８６】
一部の実施形態において、そのような望ましくないシナリオを避けるために、選択されたパラメータを枝刈りする（すなわち、選択された特徴に対するエントリをパラメータベクトルから削除する）ための技法が、採用されても良い。そのような技法に従って、ある特定の作動条件が満たされたとき（例えば、パラメータがパラメータベクトル内に記憶されている特徴の数が、閾値を超えたとき）、モデルの予測に最も貢献していない特徴の断片が、枝刈り被害者（すなわち、エントリがパラメータベクトルから削除または「枝刈りされる」特徴）として識別されても良い。一部の実施形態において、パラメータの分位境界値（例えば、モデルの予測に最も貢献しない特徴のうちの２０％）を推定するための効率的なインメモリ技法が、パラメータのコピーまたは明確なソート動作を必要とせずに、使用されても良い。より一般的には、少なくとも一部の実施形態において、モデルの予測性能に対する所与の特徴の重要性または貢献度（例えば、モデルの予測の正確さまたは質）が、「事前（ａ−ｐｒｉｏｒｉ）パラメータ値」からの対応するパラメータ値の偏差によって判定されても良い。分位境界値を推定するための以下に記載される効率的インメモリ技法は、スカラ重み値がパラメータ値として使用され、事前パラメータ値がゼロであり、相対的貢献度が重みの絶対値（重みのゼロからのそれぞれの「距離」）に対応するシナリオに関連する、枝刈り被害者を選択するためにそのような偏差を使用する１つの特定の例を表し得る。パラメータが値のベクトルであり、事前値がゼロのベクトルであるモデルに対して、ゼロのベクトルからの特定のベクトルパラメータの距離の計算を伴う同様の手法が、使用されても良い。一部の種類のモデルに関して、パラメータは、スカラよりもむしろ確率分布を含んでも良い。パラメータが確率分布を含む一実施形態において、パラメータベクトルで表される異なる特徴の相対的貢献度は、事前値からのカルバック・ライブラー（ＫＬ）情報量を推定することによって得られても良く、そのような情報量推定値は、パラメータが枝刈りされるべきである特徴を識別するために、使用されても良い。
【０１８７】
識別された枝刈り被害者に対するエントリ（例えば、パラメータ値）は、パラメータベクトル５０２５から削除されても良く、したがって消費されるメモリを低減する。しかしながら、追加の学習反復は、いくつかのパラメータの枝刈り後でさえ、行われても良い。したがって、パラメータベクトルサイズは、より多くの観測記録が考慮に入れられ、より多くのパラメータが追加され、より多くのパラメータが枝刈りされるに従い、反復的に拡大及び縮小しても良い。「パラメータの枝刈り」または「特徴の枝刈り」という用語は、本明細書で、パラメータベクトルから一対の（特徴識別子、パラメータ）を含む特定のエントリを削除することを指すのに、同義に用いられ得ることが留意される。少なくとも一部の実装例において、１つの学習反復において枝刈りされた特定の特徴に対するパラメータはさらに、例えば、（追加の観測記録に基づく）モデルジェネレータによる、特徴が枝刈りされたときよりもその特徴が予測のためにより有用であるという判定に応答して、後にパラメータベクトルに再追加されても良い。一部の事例では、再追加されたパラメータの値は、先に削除された値とは異なっても良い。
【０１８８】
パラメータベクトルが何度も拡大及び縮小し得る複数の学習反復の後に、線形モデルは、最新のパラメータベクトルを使用して実行されても良い。一部の実施形態において、パラメータベクトル５０２５は、本番データセットまたは試験データセット５０５０についての予測５０７２のためのモデル実行５０４０の前に、「凍結」されても良い（例えば、特定の時点でのパラメータベクトルの変更不能な表現が、ＭＬＳ人工物レポジトリに記憶されても良い）。他の実施形態において、モデルが本番実行または試験実行を作成するために使用された後ですら、追加の学習反復５０２０が、新しい観測記録を使用して行われても良い。パラメータベクトルが本番の使用または試験のために凍結されるシナリオにおいて、追加の学習反復が、パラメータベクトルの凍結されていないか、または変更可能なバージョンに対して継続されても良い。様々な実施形態において、図５０で点線によって示される境界のいずれかの側上の動作は、互いに組み入れられても良く、例えば、パラメータベクトルが新しい観測データに基づいて変更される１つまたは複数の学習反復の後に、モデルの本番実行が続いても良く、本番実行の後に、さらなる学習反復が続いても良く、以下同様である。
【０１８９】
図５１は、少なくとも一部の実施形態に従った、モデルを訓練するために使用される機械学習サーバのメモリ容量が、パラメータベクトルサイズへの制約になり得るシナリオ例を例示する。様々な実施形態において、先に論じられたように、多岐にわたる特徴処理変換（ＦＰＴ）が、機械学習サービスで入力変数に対してサポートされても良く、少なくとも一部のＦＰＴは、シーケンスで連鎖され、すなわち、他のＦＰＴを使用して生成された特徴に適用されても良い。サポートされている特徴処理変換関数には、例えば、数値変数の場合、分位ビン関数５１５４、様々な種類の変数の場合、カルテシアン積関数５１５０、テキストの場合、ｎ−ｇｒａｍ関数５１５２、カレンダ関数、画像処理関数等の領域固有変換関数５１５６、音声処理関数、動画処理関数、生物情報学処理関数、ｎ−ｇｒａｍ以外の自然言語処理関数等が含まれても良い。入力変数５１０１のデータ型に応じて、１つまたは複数のＦＰＴが入力変数５１０１に適用されても良く、追加のＦＰＴがその結果に適用されても良い。描写される実施形態において、例えば、ｎ−ｇｒａｍのカルテシアン積、分位ビン、及び／または領域固有変換を含む新しい特徴が、作成されても良い。可能性のある特徴処理変換及び組み合わせの５１３３番は、非常に大きくなる場合があり、これは、サイズが制限されないパラメータベクトル５１４４をもたらし得る。一部の実装例において、識別された様々な特徴は、実数のベクトルにマッピングされても良く、ここでベクトルの寸法は、少なくとも原理上は恣意的に大きくなり得る。
【０１９０】
少なくとも一部の実装例において、特定のモデルの学習反復の有意部分または全ては、サーバ５１６０等の単一のＭＬＳサーバ上で（例えば、そのようなサーバの実行の１つまたは複数のスレッドを使用して）行われることが意図されても良い。一部のそのような実装例において、モデルのためのパラメータベクトルは、ＭＬＳサーバ５１６０のメインメモリ５１７０内に収まる必要があっても良い。インメモリパラメータベクトル表現５１８０が大きく拡大しすぎた場合、学習のために使用された処理またはスレッドは、メモリ不足エラーで時期尚早に出て行く場合があり、学習反復の少なくとも一部が、再実行される必要がある場合がある。メモリ必要条件グラフ５１７５に示されるように、ＭＬＳサーバメモリ必要条件は、調べられた入力変数及び／または観測記録の数と共に、非線形の様式で拡大しても良い。必要条件グラフ５１７５は、任意の所与の機械学習問題に関する観測の数と、可能性のあるパラメータベクトルサイズとの間の正確な関係を例示することを意図せず、代わりに、そのような関係の中で観測され得る一般的な傾向を伝えることを意図することが留意される。
【０１９１】
一部の従来の機械学習システムにおいて、モデルの訓練は、パラメータがパラメータベクトル内に記憶されている特徴の数が選択された最大数に達したとき、単純に終了されても良い。そのような手法において、これは、さもなければ予測の質への有意な一因と後に識別され得る特徴が、パラメータベクトル内の表現の対象に決してなり得ないことを意味する。別の一般的な技法において、異なる特徴は、ハッシュ関数を使用して選言的に組み合わせられても良く（例えば、スペースを節約するために、さもなければ特定の特徴を表すハッシュ値のＫビットのＮビットだけが、使用されても良く、Ｎビットは、モジュロ関数を使用して選択される）、これは、予測の質の低減ももたらし得る。一部の機械学習システムにおいて、異なる特徴に割り当てられた重みまたはパラメータが、様々な学習反復において何らかの要因によって低減され得、結果として、いくつかの特徴が（これらの重みがゼロに近付くために）パラメータベクトルから徐々に削除され得る１つまたは複数の規則化法が、使用されても良い。しかしながら、それ自体によってパラメータベクトルサイズを制約するために使用されるとき、規則化は、モデル予測の比較的低い質をもたらし得る。規則化はまた、単純ではない場合がある（使用するための減少要因等の）１つまたは複数のハイパーパラメータの選択も必要としても良い。以下に記載されるパラメータ枝刈り法が実行される実施形態においてさえ、規則化は、（過剰適合を防ぐため、またはパラメータベクトルサイズ縮小に少なくとも貢献するため等の）様々な理由のために依然として使用されても良いことが留意される。
【０１９２】
一部の実施形態において、線形モデルのために使用されるパラメータベクトルのサイズに制限を課す技法は、立てられた予測の質を犠牲にせずに、かつ訓練段階の間でどれくらい早く特徴が識別されたかに基づいて、一組の特徴を制限せずに、利用されても良い。この技法に従って、作動条件が満たされたとき、これまでに識別された特徴のサブセットに対応するパラメータが、（削除されたパラメータ値を既定値または事前値に効果的に置換する）パラメータベクトルから枝刈りされても良い。先に示されるように、そのような特徴は、本明細書で「枝刈り被害者（ｖｉｃｔｉｍ）特徴」またより単純に「枝刈り被害者」と称され得る。一部の実装例において、以下に記載されるように、モデルの予測に最も貢献しない特徴の選択された断片または分位を識別するための効率的推定法は、枝刈り被害者を識別するために、使用されても良い。少なくとも一部の実装例において、そのような技法は、パラメータを明確にソートするか、またはパラメータをコピーすることを必要としなくても良い。枝刈り被害者特徴に対応するパラメータが枝刈りされた後、追加の特徴のためのパラメータが、後続の学習反復の中で追加されても良い。一部の事例では、先に枝刈り被害者として選択された所与の特徴のためのパラメータは、その特徴が枝刈りされたときに予想されたものよりも、予測に有用であり得ると後の観測が示した場合、パラメータベクトル内に再導入されても良い。
【０１９３】
図５２は、少なくとも一部の実施形態に従った、それぞれのパラメータ値が訓練の間パラメータベクトルに記憶される特徴のサブセットが、枝刈り被害者（Ｖｉｃｔｉｍ）として選択され得るような技法を例示する。４つの学習反復５２１０Ａ、５２１０Ｂ、５２１０Ｋ、及び５２１０Ｌが示される。各学習反復において、１つまたは複数の観測記録を含むそれぞれの観測記録セット（ＯＲＳ）５２０２（例えば、学習反復５２１０ＡにおけるＯＲＳ５２０２Ａ、学習反復５２１０ＢにおけるＯＲＳ５２０２Ｂ、以下同様）は、任意の新しいパラメータがパラメータベクトルに追加されるべきかどうかを判定するために、モデルジェネレータによって調べられても良い。さらに、少なくとも一部の実施形態において、先に生成されたパラメータ値は、例えば、確率勾配技法を使用して更新または調節されても良い。学習反復５２１０の後、パラメータベクトルは、特徴識別子５２１２Ａに対応するパラメータ５２２２Ａを含む。次の学習反復５２１０Ｂの後、パラメータベクトルは、拡大し、今では、特徴識別子５２１２Ｂのためのパラメータ５２２２Ｂを含む（学習反復５２１０Ａのパラメータセットのうちのいくつかまたは全ては、調節または変更されていても良い）。
【０１９４】
追加の学習反復が行われるに従い、より多くのパラメータがパラメータベクトルに追加されても良い。最終的に、ある学習反復５２１０Ｋの間またはそれの後に、モデルジェネレータは、閾値パラメータベクトルサイズＰＶＳを超え、枝刈り分析を行なっても良いことを判定しても良い。少なくとも一部の実施形態において、枝刈りのための作動条件が満たされたかどうかを検出するための動作は、全ての学習反復において、またはそれの後に行われなくても良く、そのため、そのような頻繁な枝刈りは不必要であり得ることが留意される。代わりに、そのような確認は、例えば、そのような確認が最後に完了して以来行われた学習反復の数に基づいてか、またはそのような確認が最後に行われてから経過した時間に基づいてか、または確認が最後に行われて以来調べられた観測記録の数に基づいて、定期的に行われても良い。少なくとも一部の実施形態において、ＰＶＳは、ＭＬＳサーバのメモリ容量に少なくとも部分的に基づいても良い（例えば、ＭＬＳサーバのメモリ容量のある断面に設定されても良い）か、または作動条件は、ＣＰＵ使用率限度等の他の何らかのサーバリソース容量制約に基づいても良い。一実施形態において、自身に代わってモデルが訓練されるクライアントは、（例えば、Ｘギガバイト以下のメモリを有するサーバが訓練のために使用される）訓練及び／または訓練後実行の１つまたは複数の目標を指示しても良く、そのような目標は、ＰＶＳの値に影響を与えても良い。様々な実施形態において、ＰＶＳは、パラメータベクトルの中に含まれるパラメータの数に関して、または単純にパラメータベクトルによって消費されるメモリの量に関して表されても良い。
【０１９５】
枝刈り分析において、モデルジェネレータは、パラメータが削除される特徴のある選択された数（またはある選択された断片）を識別しても良い。一実施形態において、例えば、最も有意ではない特徴のうちの１０％は、例えば、パラメータベクトルの中に表された特徴に割り当てられた重みの絶対値に基づいて、識別されても良い。一部の実施形態において、先に言及されたように、（特徴値の重み付けされた合計を少なくとも部分的に使用して計算された）予測に対する特徴の相対的貢献度が、特徴の重みの絶対値に比例すると想定されても良い。したがって、最も重要ではない特徴のうちの１０％を識別するタスクは、最小絶対値を有する重みのうちの１０％を識別することと等しくあり得る。特徴のそのような断片の正確な識別は、パラメータベクトル全体の重みの絶対値のソートを必要とする場合があり、これは、大きなパラメータベクトルのためのそれ自体のリソース消費問題を引き起こすことがあり、例えば、メモリの実質的容量、ＣＰＵサイクル、及び／または永続的記憶装置が、そのようなソート動作のために必要であり得る。したがって、一部の実装例において、最適化は、重みをソートせずに、または重みをコピーせずに、選択された断片のおおよその境界重み（すなわち、特徴のうちのおおよそ１０％がより小さい絶対重みを有し、特徴のうちの残りのおおよそ９０％が、より大きい絶対重みを有するような重みＷｋ）を見つけるために使用されても良い。そのような最適化技法の例は、図５５の考察と併せて、以下に記載される。選択された分位（例えば、上記例において１０％）の境界が推定された後、絶対値が境界未満である重みは、容易に識別され得、そのような重みのためのエントリは、パラメータベクトルから削除されても良い。重みは、本明細書で、記憶されても良いパラメータの種類の単純な例として論じられるが、同様の技法が、より複雑なパラメータ（例えば、たった１つの実数より多い実数を含むパラメータ構造）が使用されるときに、枝刈り候補を判定するために使用されても良いことが留意される。つまり、記載される枝刈り法は、（実数値での重み等の）単一の数量がパラメータとして使用される実施形態に制限されない。より複雑なパラメータは、例えば、対応する特徴の相対的貢献度をモデルによって立てられた予測に接近させる数値へと変換されても良い。先に言及されたように、様々な実施形態において、事前値からの特定のパラメータ値の偏差の異なる測定値は、モデルに対して使用されるパラメータの種類に応じて、パラメータの相対的貢献度を推定するために使用されても良い。
【０１９６】
特徴のあるサブセットが枝刈り候補として識別され、特徴のパラメータが削除された後、図５２で５２５５とラベル付けされた矢印によって示されるように、（特徴識別子５２１２Ｋ*に対する調節されたパラメータ５２２２Ｋ*を含む）枝刈りされたパラメータベクトルは、もはやＰＶＳ制約に違反しなくても良い。少なくとも一部の実施形態において、追加のパラメータが図５２に示される学習反復５２１０Ｌ等の１つまたは複数の後続の学習反復に再び追加されても良いパラメータベクトルの十分に大きい断片が、枝刈りされても良い。したがって、パラメータベクトルサイズは、枝刈りを介して縮小された後に、再び拡大しても良い。追加の枝刈りは、パラメータベクトルサイズが再び最終的にＰＶＳを超え、さらなるパラメータが追加の枝刈りが完了した後に追加される場合、必要である場合がある。例えば、先に枝刈り被害者として選択された特徴に対応するパラメータを含む任意の特徴に対応するパラメータは、所与の学習反復において、パラメータベクトルに追加されても良い。任意の学習反復の間にパラメータベクトル内の表現と見なされ得る一組の特徴を制限しないことによって、及び今のところモデルの予測に最も貢献していないと識別された各枝刈り段階のパラメータのみを削除することにより、図５２に例示される技法が、訓練の間にメモリ使用を制限すると同時に非常に正確な予測を提供するパラメータベクトルに収束しても良い。さらに、パラメータベクトルサイズの縮小はまた、予測実行の間にモデルを読み込み、実行するのに掛かる時間も低減することができ、したがって、技法の利益が訓練段階の間及び訓練後段階予測実行においての両方で得られ得る。
【０１９７】
パラメータベクトルメンバーシップが経時的に減少及び増加し得る上述の反復学習の手法は、観測記録が様々なデータソースからＭＬＳにストリーミング配信されても良い実施形態において、特に有用であり得る。そのようなシナリオにおいて、訓練データセット全体が学習反復のうちのいずれかの前に収集される環境と比較して、パラメータが先に枝刈りされた特徴を再考し、かつ一般に、さらなる観測記録が到着するに従ってパラメータベクトルを変更し続けることができることは、さらにより有益であり得る。観測記録の特性（例えば、様々な入力変数の値の分布）は、経時的に変化しても良く、例えば、最良の予測を立てることができるパラメータベクトルもまた経時的に変化する可能性が高くなる。
【０１９８】
図５３は、少なくとも一部の実施形態に従った、線形モデルの訓練段階の反復を学習するために使用される観測記録が、機械学習サービスにストリーミング配信され得るシステムを例示する。示されるように、データレシーバエンドポイント５３０８（例えば、ネットワークアドレスまたは統一資源識別子）は、ＳＤＳ５３０２Ａ、ＳＤＳ５３０２Ｂ、及びＳＤＳ５３０２Ｃ等の１つまたは複数のストリーミングデータソース（ＳＤＳ）５３０２から観測記録を受信するために、ＭＬＳに設定されても良い。そのようなデータソースには、例えば、地理的に分散した用途のウェブサーバログ、センサベースのデータコレクタ等が含まれても良い。そのようなデータソースからの観測記録（ＯＲ）は、任意の順序で到着しても良く、例えば、最初にＳＤＳ５３０２ＡからＯＲ１が、続いて、ＳＤＳ５３０２ＣからＯＲ２、ＳＤＳ５３０２ＢからＯＲ３及びＯＲ４、以下同様で受信されても良い。
【０１９９】
描写される実施形態において、モデルジェネレータで、記録は、記録が到着する順序で学習反復のために使用されても良い。例えば、ＯＲ１、ＯＲ２、及びＯＲ３は、第１の組の学習反復５３３３Ａの間に調べられ、特定のパラメータベクトルの生成をもたらしても良い。学習反復セット５３３３Ａの後に、訓練されているモデルの予測へのパラメータ相対的貢献度に基づいていくつかの選択されたパラメータがパラメータベクトルから削除される、枝刈り反復５３３４が続いても良い。枝刈り反復５３３４の後に、ＯＲ４、ＯＲ５、及びＯＲ６が調べられ、１つまたは複数の新しい特徴（及び／またはパラメータが事前に枝刈りされた特徴）に対するパラメータがパラメータベクトルに追加される別の学習反復セット５３３３Ｂが、続いても良い。経時的に、パラメータベクトルは、全てのストリーミングデータソース５３０２からのデータに対して正確な予測を提供するように、進化しても良い。一部の実施形態において、枝刈り反復５３３４は、観測記録が受信または調べられる速度に関わらず、一定間隔で、例えば、Ｘ秒毎に１回、スケジュールされても良い。そのようなスケジュールベースの枝刈りは、例えば、パラメータベクトルサイズが、既にその最大閾値に近いときに到着する観測記録の突然のバーストから生じるメモリ不足エラーを防ぐために、ＭＬＳが観測記録到着速度における広い変動に対応するのに役立ち得る。
【０２００】
図５４は、少なくとも一部の実施形態に従った、作動条件の検出に応答して、訓練中のメモリ消費を低減するために１つまたは複数の特徴に対応するパラメータがパラメータベクトルから枝刈りされ得る、機械学習サービスで行われ得る動作の態様を例示する流れ図である。要素５４０１に示されるように、訓練データセットの未処理観測記録または生観測記録が線形予測モデルを開発するために使用されるデータソースの指標は、機械学習サービスで受信されても良い。少なくとも一部の実施形態において、データソースは、ＡＰＩ、ウェブベースのコンソール、スタンドアロンＧＵＩ、またはコマンドラインツール等のＭＬＳのプログラム的インターフェースを介して、クライアントによって指示されても良い。線形予測モデルは、例えば、先に記載された種類の１つまたは複数の特徴処理変換（ＦＰＴ）を介して、訓練データから導出された特徴値の重み付けされた合計に少なくとも部分的に基づいて、予測を立てることが見込まれても良い。一部の実装例において、モデルを生成／訓練するためのジョブオブジェクトは、クライアントによるＡＰＩの呼び出しに応答して作成され、図１の待ち行列１４２等のジョブ待ち行列の中に入れられても良い。ジョブは、ＭＬＳサーバプール（複数可）１８５の選択された訓練サーバ（または一組の訓練サーバ）に、例えば、非同期的にスケジュールされても良い。
【０２０１】
訓練モデルの処理は、（例えば、待ち行列に入れられたジョブがスケジュールされたときに）開始されても良い。空のパラメータベクトルが、初期化されても良く（要素５４０４）、かつモデルの訓練段階の間に使用される１つまたは複数の設定が、判定されても良く、例えば、枝刈りを作動させるために使用される閾値条件が、識別され、そのような閾値条件が検出されたら毎回枝刈りされるパラメータの断片が、識別されても良く、以下同様である。異なる実装例において、閾値は、パラメータベクトルの中に含めることができるパラメータの最大数、モデルを訓練するために使用されるＭＬＳサーバ（複数可）のメモリ容量、及び／またはクライアントによって指示された目標等の様々な要因に基づいても良い。閾値が導出されても良いクライアント提供の目標は、例えば、メモリ、ＣＰＵ、ネットワーク回線容量、ディスクスペース等を含む、モデルの訓練の間及び／または訓練後実行の間に消費することができる様々な種類のリソースの最高限度を含んでも良い。一部の実施形態において、クライアントは、訓練及び／または予測実行の予算目標を指定しても良く、予算は、ＭＬＳの構成要素の対応するリソースの最高限度に翻訳されても良い。
【０２０２】
次いで、描写される実施形態において、モデルジェネレータまたはトレーナーは、１つまたは複数の学習反復の実行を開始しても良い。一組の１つまたは複数の観測記録は、次の学習反復のために識別されても良い（要素５４０７）。観測記録の性質に応じて、いくつかの予備データ型変換及び／または正規化動作が行われる必要がある場合がある（要素５４１０）。例えば、一部のモデルジェネレータは、カテゴリー入力変数が数値変数またはＢｏｏｌｅａｎ変数に変換され、及び／または数値変数の値が−１〜１の範囲の実数にマッピングされる必要がある場合がある。重み等のパラメータがパラメータベクトルに追加される１つまたは複数の新しい特徴が、識別されても良い（要素５４１３）。一部の事例では、先に枝刈り被害者として選択された特徴の新しいエントリが、パラメータベクトルの中に再挿入されても良い。一部の事例では、そのような再追加されたエントリのパラメータ値が、事前に枝刈りされたエントリのパラメータ値とは異なっても良い一方で、他の事例では、元のエントリ及び再導入されたエントリのパラメータ値は、同じでも良い。一部の実装例において、ハッシュマップまたはハッシュ表等のキー／値構造が、例えば、特徴識別子をキーとして用いて、（特徴識別子、パラメータの）組のパラメータベクトルを記憶するために使用されても良い。一部の実施形態において、１つまたは複数の事前に生成されたパラメータ値はまた、例えば、確率的勾配降下法を使用して、この段階で更新もされても良い。
【０２０３】
モデルジェネレータが、枝刈りの一巡を作動させるための（要素５４０４に対応する動作において識別された）閾値条件が満たされていると判定した場合（要素５４１６）、１つまたは複数の特徴が、枝刈り被害者と識別されても良い（要素５４１９）。描写される実施形態において、例えば最小絶対重みを有する長所によるモデルの予測に最も貢献しない特徴が、枝刈り被害者として選択されても良い。様々な実施形態において、異なる特徴の相対的貢献度が判定または推定される方式と、最低の貢献度を提供することが予想される特徴が識別される方式と、は、異なっても良い。各特徴に重みとしてそれぞれの実数が割り当てられる一部の実施形態において、重みのソートまたはコピーを必要とせず、かつパラメータベクトルにわたる単一のインメモリパス内の重み間の分位境界値を推定することができる効率的推定法が、使用されても良い。分位境界（例えば、パラメータベクトルの中に表された重みの絶対値の範囲の中の推定１０パーセンタイル値または推定２０パーセンタイル値を表す重み）が識別された後、より低い重みを有する特徴のエントリが、パラメータベクトルから削除されても良い。パラメータベクトルによって消費されるメモリは、枝刈り被害者に対応するエントリの削除によって低減されても良い（要素５４２２）。
【０２０４】
（要素５４２５で検出される）学習反復が完了した場合、訓練済みモデルは、本番データ、試験データ、及び／または他の訓練後段階データセットに対して予測を生成するために使用されても良い（要素５４２８）。学習反復は、例えば、利用可能になると見込まれる全ての観測記録が調べられた場合、またはこれまで行われた学習反復に基づいてモデルによって立てられ得る予測の正確さが承認基準を満たした場合、完了したと見なされても良い。（同様に要素５４２５で検出される）追加の学習反復が行われる場合、要素５４０７以降に対応する動作が、反復されても良く、例えば、新しい一組の１つまたは複数の観測記録が識別されても良く、生データが必要に応じて変換されても良く新しい特徴に対するパラメータがパラメータベクトルに追加されても良く、以下同様である。一部の事例では、少なくとも数回の追加の学習反復が、既に調べられた観測記録に対して行われても良い。
【０２０５】
先に言及されたように、枝刈り被害者は、モデル予測に対する相対的貢献度または個々の特徴の相対的重要性の分析に基づいて、パラメータベクトルの中に表される特徴から選択されても良い。図５５は、少なくとも一部の実施形態に従った、特徴に割り当てられた重みの絶対値の分位境界推定値を判定するために使用され得る単一パス技法を例示する。それぞれの特徴Ｆ１、Ｆ２、…、Ｆｍに対応する一組の重みＷ１、Ｗ２、…Ｗｍが、例えば、重みをコピーせず、かつ、重みを明確にソートせずに、メモリの中で調べられても良い。描写される実施形態において、境界値が得られる分位は、「タウ」と称される。したがって、例えば、重みの絶対値の最低２０％と重みの残りの８０％との間の境界が識別される場合、タウは、０．２に設定されても良い。境界自体は、「ファイタウ」と称される。最初に、要素５５０２に示されるように、タウ及び（ファイタウを判定するために使用される学習率を表す）別のパラメータ「エータ」が、判定されても良く、ファイタウは、ゼロに設定されても良い。次いで、次の重みＷｊが調べられても良く、その絶対値ａｂｓ（Ｗｊ）が得られ得る（要素５５０５）。要素５５０８で判定される、ａｂｓ（Ｗｊ）がファイタウよりも大きい場合、ファイタウは、タウ及びエータの積である（タウ*エータ）を足すことにより、増加されても良い。ａｂｓ（Ｗｊ）がファイタウ以下である場合、ファイタウは、（１−タウ）*エータを引くことにより、減少されても良い（要素５５１１）。（要素５５１７で検出される）さらなる重みがまだ調べられていない場合、要素５５０５以降に対応する動作が、反復されても良い。さもなければ、全ての重みが調べられた後に、分位境界ファイタウの推定が完了しても良い（要素５５２０）。次いで、図５５に例示される手順の最後のファイタウの値は、枝刈り被害者を選択するために使用されても良く、例えば、絶対値がファイタウ未満である重みを有する特徴が、被害者として選択されても良い一方で、絶対値がファイタウ以上である重みを有する特徴は、保存されても良い。少なくとも一部の実装例において、学習率（エータ）は、分位境界推定手順の間に変更または調節されても良く、つまり、エータは、一定のままである必要はない。
【０２０６】
同時ビニング
分位ビニングの以下の考察の文脈において、「特徴識別子」という用語は、モデルを訓練するために使用されるデータセットの観測記録から導出された特性の固有の識別子を指し得ることが留意される。「特徴セット」という用語は、（ａ）特徴値が訓練モデルを訓練している間に観測可能であり、（ｂ）特徴パラメータが既知であるか、または訓練データから推測される一組の特徴識別子を指し得る。「特徴」という用語は、特徴識別子によってインデックス化された観測記録の特性の値（例えば、単一の数値、カテゴリー値、もしくは二進値のいずれか、またはそのような値の配列）を指し得る。「ビニング済み特徴」という用語は、例えば、一組の観測記録の１つまたは複数の入力変数に適用される分位ビニング変換から得られたバイナリ指標値の配列の特定のバイナリ指標値（例えば、「０」または「１」）を指し得る。「特徴ベクトル」という用語は、例えば、（ハッシュマップ等の）キー／値構造または圧縮されたベクトルで記憶されても良い一組の対またはタプルの（特徴識別子、特徴値）、を指し得る。「特徴パラメータ」または「パラメータ」という用語は、特徴識別子によってインデックス化された特性に対応するパラメータの値を指し得る。一部の実施形態において、重みを表す実数が、使用されても良いパラメータの一例であるが、いくつかの種類の機械学習技術に関して、より複雑なパラメータ（例えば、複数の数値を含むパラメータ）が、使用されても良い。「パラメータベクトル」という用語は、一組の対またはタプル（特徴識別子、特徴パラメータ）を指し得、これもまた、ハッシュマップまたは圧縮されたベクトル等のキー／値構造で記憶されても良い。一部の実施形態において、キー／値構造は、パラメータベクトル及び／または特徴ベクトルのために使用されても良いが、様々な実施形態において、パラメータベクトル及び／または特徴ベクトルの他の種類の表現が、採用されても良い。
【０２０７】
一般化線形モデルが多くの種類の機械学習問題に対して最も人気がある一方で、少なくとも一部の事例では、データセットの入力変数と予測される目標変数または出力変数（複数可）との間の関係は、非線形ではない場合がある。例えば、所与の数値入力変数の観測された値の分布は、特定の（及び多くの場合小さい）サブ範囲が、多数の観測を含むような、かなりの程度まで不平衡である場合がある。少なくとも一部の事例では、そのような密な間隔の観測は、理想的には、最終的に予測を生成するために使用される特徴に割り当てられる重みまたはパラメータに正確に表されるべきである強い関係を表し得る。外れたサブ範囲は、比較的少数の観測を含み得るが、多くの事例において、目標変数に対するそのような外れ値の関係の捕捉もまた、高い質の予測を生成するために重要であり得る。少なくとも一部のそのようなシナリオにおいて、分位ビニング変換は、少なくとも一部の入力変数のために使用されても良い。そのような変換において、所与の組の訓練観測記録に対して、生入力変数または未処理入力変数の値は各々、ビンの各々が、母集団が他のものと少なくともおおよそ等しいように、選択された数の分位ビンのうちの１つにマッピングされても良い。次いで、一組のバイナリ指標変数（「０」または「１」のいずれかに設定することができる変数）が生成されても良く、各そのようなバイナリ指標変数が、生入力変数から導出されるそれぞれの「ビニング済み特徴」を表す。所与の観測記録に対して、指標変数のうちの１つ（生変数の値がマッピングされる特定のビンに対応するもの）は、「１」に設定され、残りの指標変数は、「０」に設定される。異なるビンは、母集団がおおよそ等しいため、これは、より多くのビンが未処理の変数の値の密に追加されたサブ範囲に対して生成され、より少ないビンがまばらに追加されたサブ範囲に対して生成されることを意味する。したがって、分位ビニングを使用する結果として、生入力変数と目標変数との間の非線形関係を捕捉する確率が上昇し得る。分位ビニング変換の例が図５６に示され、以下にさらに詳細に記載される。
【０２０８】
分位ビニングを用いる１つの困難は、最終的に訓練または生成されるモデルから最も正確かつ最も一般的な予測をもたらすビン計数（すなわち、所与の入力変数の生の値がマッピングされるべきであるビンの数）を事前に選択することが簡単ではない場合があることである。所与の入力変数に対して、モデルジェネレータが１０のビン計数、または１０００のビン計数の選択肢を有するシナリオ例を、考えられたい。１０のビン計数では、観測記録のうちのおおよそ１０パーセントが、１０個のビンの各々にマッピングされる一方で、１０００のビン計数では、観測記録のうちのわずかおおよそ０．１％が、各ビンにマッピングされる。どのビン計数が優れた選択であるかを判定するための一手法において、モデルの２つのバージョンが、別個に完全に訓練され、次いで評価される必要がある場合がある。モデルの第１のバージョンＭ１は、１０個のビン変換から得られた特徴（及び何らかものもがモデルジェネレータによって識別された場合、他の特徴）を用いて訓練されても良く、第２のバージョンＭ２は、１０００個のビン変換から得られた特徴（及び他の特徴）を使用して訓練されても良い。試験データに対するＭ１の予測は、どっちの手法がより良いかを判定するために、同じ試験データに対するＭ２の予測と比較されても良い。異なるビン計数がモデルのそれぞれのバージョンを訓練するために使用されるそのような手法は、いくつかの理由で最善ではない場合がある。まず、ビニング済み特徴のそれぞれのグループを用いた複数のモデルの訓練は、単一の入力変数に関してさえも高価で有り得る。よくあるように、いくつかの異なるビニング可能な変数が同じモデルに対して考慮に入れられる必要がある場合、試す可能性のある組み合わせの数は、極めて大きくなり得る。次に、一部の事例では、（１つの入力変数でさえも）任意の単一のビン計数設定で微妙な非線形関係を捕捉することは可能でない場合があり、例えば、同じ変数のいくつかの異なるビン計数を使用して得られる特徴は、非線形関係の性質によっては、一部の予測に有用であり得る。したがって、一部のシナリオにおいて、少なくとも一部の変数に関して、任意の単一のビン計数は、複数のビン計数を使用して生成されるもの程、正確な予測を必ずしも生成しない場合がある。
【０２０９】
一部の実施形態において、機械学習サービスは、それぞれのビン計数を用いたいくつかの異なる特徴変換がモデルの単一の訓練段階または訓練セッションの間に所与の入力変数に適用されても良い同時ビニング法を実行しても良い。そのような手法を使用して、最初の重み（またはより複雑なパラメータ）が、複数のビン計数から導出された全てのビニング済み特徴に割り当てられても良い。多数のビニング済み特徴が、パラメータベクトルに記憶された対応するパラメータまたは重みを用いて生成されても良い。ビニング済み特徴に対応するパラメータのうちの少なくともいくつかは、例えば、追加の観測記録の調査、一部の観測記録の再調査、及び／または連続的学習反復の間の訓練段階予測の結果に基づいて、後に削除されても良い。一部の実施形態において、最初の重みまたはパラメータは、Ｌ１またはＬ２規則化等の選択された最適化技法を使用して調節されても良く、絶対重み値が閾値未満に含まれる特徴は、パラメータベクトルから削除されても良い。一部の実施形態において、（例えば、図５１〜図５５の説明と組み合わせた）上述の効率的枝刈り法もまた、または代わりに、ビニング済み特徴のパラメータのために消費されるリソースを低減するために、適用されても良い。一部の実施形態において、同時ビニングと、続いてパラメータ枝刈りを使用して、モデルが上述の種類の非線形関係に関して正確な訓練後段階予測を立てることを可能にするパラメータベクトルが、例えば、最初からモデルを反復的に訓練する費用を負担することなく、非常に効率的に得られ得る。
【０２１０】
図５６は、少なくとも一部の実施形態に従った、分位ビニング変換を使用して、生入力変数と機械学習モデルの予測目標変数との間の非線形の関係を捕捉する例を例示する。示されるように、機械学習サービスでモデルを生成するために使用されるデータソースから得られた観測記録の中に含まれる訓練データ変数５６９０は、ＮＩＶ１及びＮＩＶ２等のいくつかの数値入力変数（ＮＩＶ）を含んでも良い。分布グラフＤＧ１及びＤＧ２はそれぞれ、一組の観測記録のＮＩＶ１及びＮＩＶ２の値の統計的分布を例示する。ＮＩＶ１の値は、ＮＩＶ１最小からＮＩＶ１最大の範囲内にあり、観測の最高密度は、ｎ２〜ｎ３のサブ範囲内にある。ＮＩＶ２の値は、ＮＩＶ２最小からＮＩＶ２最大の範囲内にあり、ピーク密度は、ｐ１〜ｐ２にある。
【０２１１】
描写される実施例において、ＮＩＶ１の値は、ＮＩＶ１−Ｂｉｎ１〜ＮＩＶ１−Ｂｉｎ４とラベル付けされた４個のビンにマッピングされている。ビンの名前は、図５６の対応するビニング済み特徴の特徴識別子に対応する。つまり、４のビン計数を用いた分位ビニング変換が、単一の変数ＮＩＶ１から導出された４つのビニング済み特徴５６１０Ａを生成するために使用されており、１つの指標変数がビンの各々に対応する。観測記録ＯＲ１のＮＩＶ１の値は、ビン、ＮＩＶ１−Ｂｉｎ３内に含まれ、したがって、ＯＲ１に関して、ＮＩＶ１−Ｂｉｎ３の指標変数は、１に設定され、残りのＮＩＶ１関連指標変数ＮＩＶ１−Ｂｉｎ１、ＮＩＶ１−Ｂｉｎ２、及びＮＩＶ１−Ｂｉｎ４は、ゼロに設定されている。観測記録ＯＲ２の場合、ＮＩＶ１の値は、Ｎ１Ｖ１−Ｂｉｎ２内に含まれ、対応する指標変数は、１に設定され、残りはゼロに設定されている。ＮＩＶ２の値は、３のビン計数を用いた分位ビニング変換を介して、３個のビン、ＮＩＶ２−Ｂｉｎ１〜ＮＩＶ２−Ｂｉｎ３にマッピングされている。ＯＲ１及びＯＲ２の両方において、ＮＩＶ１の値は、ＮＩＶ２−Ｂｉｎ２内に含まれる。したがって、ＯＲ１及びＯＲ２の両方に関して、指標変数ＮＩＶ２−Ｂｉｎ２は、１に設定され、残りのＮＩＶ２関連指標変数は、０に設定されている。描写される実施形態において、所与の変数のビニング済み特徴またはバイナリ指標変数の数は、ビン計数に対応する。図５６に例示される変換例は、本明細書で、単一変数非同時ビニング変換とも称され得る。この変換は、たった１つのビン計数が、変数の各々をビニングするために使用されるため、たった１つの変数の値が所与のビニング済み特徴を導出するために使用される単一変数、及び非同時と呼ばれることがある。
【０２１２】
図５６に描写される実施形態において、分位ビニング変換によって生成されるビニング済み特徴に加えて、他の特徴変換が、訓練データの他の生入力変数に対して行われても良い。（ＮＩＶ１−Ｂｉｎ１及びＮＩＶ１−Ｂｉｎ２等の）ビニング済み特徴と、（ＮＦ１等の）未ビニング特徴との組み合わせのためのパラメータを含むパラメータベクトル５６２５が、訓練データのために生成されても良い。一部の実装例において、パラメータは、各特徴に対するそれぞれの実数等の重みを含んでも良い。一部の実施形態において、パラメータベクトルは、例えば、上述の枝刈り法の種類が反復的に使用されるに従い、拡大及び縮小しても良い。少なくとも一部の実装例において、ビン境界もまた、より多くの観測記録が調べられるか、または事前に調べられた観測記録が再分析されるに従い、変化しても良い。ある時点で、モデルの訓練段階は、完了した（または、少なくともある非訓練データセットについての予測のために使用されるのに、十分に完了した）と見なされても良く、パラメータベクトル５６２５の最新のバージョンは、試験データセットまたは本番データセット５６５０についての予測５６７２を生成するために、モデルの実行５６４０の間に、使用されても良い。
【０２１３】
図５６に例示されるシナリオ例において、単一のビン計数（４）が、ビニングＮＩＶ１値に対して使用され、単一のビン計数（３）が、ビニングＮＩＶ２に対して使用されている。先に論じられたように、そのような単一のビン計数が使用される場合、生成されたビニング済み特徴は、必ずしも最高の質の予測をもたらさない場合がある。これは、例えば、訓練／学習処理の開始時に所与の生入力変数に対して選択された特定のビン計数が、生入力変数値と目標変数との間の非線形関係を表すことができないことがあり、かつこの関係が異なるビン計数を使用して表されていることがあるため、あり得る。少なくとも一部の事例では、ビン計数は、あらゆる定量化できる理由なしに、いくらか恣意的に、選択されても良い。各々のビニング可能な入力変数に対していくつかの異なるビン計数を使用してモデルを完全に訓練し、次いで、各々のそのような変数に対する最良のビン計数を選択するために、結果を比較することは、高価かつ時間のかかる処理であり得る。したがって、一部の実施形態において、機械学習サービスは、訓練セットの少なくとも１つの生入力変数に対していくつかの異なるビン計数を使用して分位ビニングを同時に実行しても良い。
【０２１４】
図５７は、少なくとも一部の実施形態に従った、機械学習サービスでモデルの訓練段階の間に生成され得る同時ビニング計画の例を例示する。描写される実施形態において、一組の訓練データ変数５７９０は、同時分位ビニングの候補として選択された数値入力変数ＮＩＶ１、ＮＩＶ２、及びＮＩＶ３を含む。各変数に対して、それぞれの同時ビニング計画（ＣＢＰ）が、生成され、モデルの訓練段階の間に実行されても良い。例えば、ＣＢＰ１に従って、３回の分位ビニング変換ＱＢＴ１−１、ＱＢＴ１−２、及びＱＢＴ１−３が、１０、１００、及び１０００のそれぞれのビン計数を用いて、訓練段階内にＮＩＶ１の値に適用されても良い。合計１１１０個のビニング済み特徴５７３０Ａ、ＱＢＴ１−１から（ＮＩＶ１−１−１〜ＮＩＶ１−１−１０とラベル付けされた）１０個の特徴、ＱＢＴ１−２から１００個の特徴（ＮＩＶ１−２−１〜ＮＩＶ１−２−１００）、及びＱＢＴ１−３から１０００個の特徴（ＮＩＶ１−３−１〜ＮＩＶ１−３−１０００）が、ＣＢＰ１を実行した結果として生成されても良い。最初の重み（またはモデルの予測へのそれぞれの特徴の相対的貢献度を表すために使用される他の種類のパラメータ）が、ビニング済み特徴５７３０Ａの各々に割り当てられても良い。同様に、同時ビニング計画ＣＢＰ２に従って、４回の分位ビニング変換が、それぞれ２０、４０、８０、及び１６０のビン計数を用いて、同じ訓練段階内で同時にＮＩＶ２に適用され、３００個のビニング済み特徴５７３０Ｂを生じても良い。同時ビニング計画ＣＢＰ３に従って、３回の分位ビニング変換が、それぞれ５、２５、及び６２５のビン計数を用いて、ＮＩＶ３に適用され、６５５個のビニング済み特徴５７３０Ｃを生じても良い。それぞれの最初の重み／パラメータは、全てのビニング済み特徴に割り当てられても良い。
【０２１５】
異なる実施形態において、機械学習サービスのモデルジェネレータまたは別の構成要素が、様々な要因のうちのいずれかに基づいて、所与の変数の同時ビニングのために使用される異なるビン計数（例えば、ＮＩＶ１の場合、１０、１００、１０００、またはＮＩＶ２の場合、２０、４０、８０、１６０）を選択しても良い。一部の実施形態において、例えば、利用可能な観測記録の小さいサンプルが得られても良く、そのサンプルにおける（ＮＩＶ１、ＮＩＶ２、またはＮＩＶ３等の）数値入力変数の値の分布が、判定されても良い。次いで、この分布が、異なるビン計数を選択するために使用されても良い。数値変数の値の範囲及び粒度は、ビン計数の選択にも影響を与える場合があり、例えば、特定の数値変数が１〜１０００の整数値のみをとる場合、その変数に対するビンの最大数は、１０００に制限されても良い。他の実施形態において、機械学習サービスの知識ベース（例えば、図１に示されるＫＢ１２２）が、モデルが生成される特定の問題領域のベスト同時ビニング関連プラクティスを判定するために、参照されても良い。一実施形態において、Ｎビン計数の規定のセット（例えば、Ｎ＝３で、１０、１００、１０００）が、候補として選択された全ての変数に対して使用されても良い。
【０２１６】
少なくとも一部の実施形態において、所与の組のＣＢＰ（例えば、図５７に示される例におけるＣＢＰ１、ＣＢＰ２、及びＣＢＰ３）の全ての分位ビニング変換が、モデルの単一の訓練段階または訓練セッションの間に実行されても良い一方で、変換に関わる計算は、ハードウェアレベルで同時にまたは並列で行われる必要はないことが留意される。例えば、一実装例において、所与の組の観測記録に対して、ＱＢＴ１等の所与の分位ビニング変換の指標変数の値は、一般的にモデルジェネレータの少なくとも１つの実行のスレッドを使用して生成されても良い。したがって、ＣＢＰ１、ＣＢＰ２、及びＣＢＰ３の１０回の変換（ＱＢＴ１−１、ＱＢＴ１−２、…、ＱＢＴ３−３）を実行するために、１０個の実行のスレッドが、必要であっても良い。しかしながら、これは、１０のプロセッサまたはコアが必ずしも使用されることを意味せず、代わりに、例えば、単一の４コアＭＬＳサーバが、全ての１０回のビニング変換のために使用されても良く、必要な計算の異なるサブセットは、モデルの訓練段階の間に、並列でまたは連続的に、任意の所与の時点で実行される。したがって、描写される実施形態において、一組の分位ビニング変換を説明するための「同時」という用語の使用は、訓練段階の文脈内で同時計算を指し、ハードウェアレベルの同時並行性を必要としない。もちろん、一部の事例では、利用可能なコアまたはＣＰＵの数は、訓練段階の間に並列で異なるＣＢＰのために必要な全ての計算を行うのに十分であり得る。
【０２１７】
多くの場合、ビニング変換の候補変数の数は、かなり大きくなる場合があり、結果として、同時ビニング計画の実行の結果として生成されたビニング済み特徴の数もまた、非常に大きくなる場合がある。先に論じられたように、パラメータベクトル内に表される特徴の数が増加するに従い、モデルが生成または訓練されるＭＬＳサーバで必要なメモリもまた、増加する。描写される実施形態において、消費されるメモリの量を制限するために、１つまたは複数の重み調節最適化５７１０が行われても良い。そのような最適化には、例えば、モデルジェネレータは、予測正確さへの様々な特徴の相対的貢献度に関して、さらに学習することができるため、ビニング済み特徴（及び／または一部の未ビニング特徴）のうちの少なくともいくつかの重みが、連続的学習反復を通して低減される規則化法が含まれ得る。少なくとも１つの実施形態において、規則化の結果として、一部の特徴と関連付けられた重みは、少なくともそのような特徴に対応するパラメータがパラメータベクトルから削除または枝刈りされ得る程小さくなっても良い。少なくとも一部の実施形態において、規則化は、過剰適合を低減するのにも役に立つことがあり、つまり、パラメータベクトルサイズの低減は、規則化を使用する唯一の（またはさらには主な）理由ではない場合があることが留意される。一部の実施形態において、作動条件に応答して、特徴に割り当てられた異なる重みの分位境界が、（例えば、図５５に示されるものと類似した技法をして）推定されても良く、重みの絶対値の範囲の下からＸ％内に含まれる選択された組の重みが、モデルのパラメータベクトルから削除されても良い。一部の実施形態において、規則化及び分位境界ベースの枝刈りの両方が、訓練の間にパラメータベクトルからパラメータを削除するために使用されても良い。他の実施形態において、規則化及び分位境界ベースの枝刈り以外の最適化が、使用されても良い。
【０２１８】
図５７に描写される実施形態において、ＣＢＰ１〜ＣＢＰ３に従って得られた異なるビニング済み特徴に割り当てられた最初の重みは、選択された最適化戦略（単数または複数）に従って調節されても良い。所与のビニング済み特徴の調節された重みが、除外閾値未満に含まれる場合、その特徴のエントリは、パラメータベクトルから削除されても良く、（さらなる学習反復が完了したとき、後に再導入されない限り）訓練後段階予測のために使用されなくても良い。例示される例において、同時ビニング変換が適用された入力変数の各々に対応して、所与のビニング済み特徴の調節された重みが除外閾値を超えているため、サブセットだけが訓練後段階予測のために使用される。例えば、１１１０個のＮＩＶ１関連のビニング済み特徴の中から、ＮＩＶ１−１−３及びＮＩＶ１−２−５だけが使用される。３００個のＮＩＶ２関連ビニング済み特徴の中から、ＮＩＶ２−２−１〜ＮＩＶ２−２−４０が使用され、６５５個のＮＩＶ３関連ビニング済み特徴の中から、ＮＩＶ３−３−１〜ＮＩＶ３−３−１０及びＮＩＶ３−３−５０〜ＮＩＶ３−３−５３が訓練後予測のために使用される。残りのビニング済み特徴のパラメータは、パラメータベクトルから削除されても良い。同時ビニング計画ＣＢＰ１〜ＣＢＰ３の実行の結果として生成されたビニング済み特徴だけが、図５７に示されているが、未ビニング特徴のパラメータもまた、訓練段階の間にパラメータベクトルに追加され、パラメータベクトルから削除されても良い。
【０２１９】
図５７に例示される例において、単一の入力変数（ＮＩＶ１）の異なる分位ビニング変換に対応する２個のビニング済み特徴（）（ＮＩＶ１−１−３及びＮＩＶ１−２−５）が、訓練後段階予測のために保存されている。これは、２つの異なるビン計数（ＮＩＶ１−１−３に対して１０、及びＮＩＶ１−２−５に対して１００）が、各々、ＮＩＶ１と値が予測される目標変数との間の非線形関係の異なる態様を補足しても良いことを示し得る。図５７に例示されているものと類似した同時ビニング法の使用の結果として、訓練済みモデルの予測の正確さは、単一のビン計数が、分位ビニングが行われる各変数に対して使用された場合よりも、多くの場合、高くなり得、必要な総訓練時間は、多くの場合、少なくなり得る。
【０２２０】
図５７において、たとえそれぞれのビン計数を用いた複数のビニング変換が使用されたとしても、各ビニング変換自体が、単一の変数に適用されても良い。一部の実施形態において、２つ以上の入力変数の値が、所与の観測記録を単一のビンにマッピングするために、一緒に使用されても良い。そのようなビンは、本明細書で多変数ビンと称され得、対応する特徴変換は、本明細書で多変数分位ビニング変換と称され得る。一緒にビニングされる入力変数の各グループに対して、ビン計数の異なる組み合わせが、モデルの訓練段階の間に同時に多変数ビニング済み特徴を生成するために、入力変数の各々に割り当てられても良い。図５８は、少なくとも一部の実施形態に従った、機械学習サービスに実装され得る同時多変数分位ビニング変換の例を例示する。描写される実施形態において、複数の訓練データ変数５８９０から、３つの数値入力変数ＮＩＶ１、ＮＩＶ２、及びＮＩＶ３が、同時多変数ビニングのために一緒に分類される候補として識別されている。それぞれの決定木５８１０Ａ及び５８１０Ｂが、それぞれのビン計数の組み合わせを用いた３つの変数の組み合わせのビニング判定のために生成されても良い。
【０２２１】
決定木５８１０Ａは、それぞれ変数（ＮＩＶ１、ＮＩＶ２、ＮＩＶ３）に対するビン計数の組み合わせ（ｃ１、ｃ２、ｃ３）を表す。観測記録を考慮すると、決定木は、３つの変数の値に基づいて移動しても良く、どのノードが次に横断されるべきかを判定するために変数のうちの特定の１つが確認される判定ノードを含む。木の葉ノードは、全ての分類された変数の組み合わせから導出されたビンに対応しても良い。例えば、木５８１０ＡのレベルＬ１は、ｃ１判定ノードを含んでも良く、各々がＮＩＶ１の値の１つの分位サブセットを表す。レベルＬ１の各ノードに対して、ＮＩＶ２の値に対するｃ２判定ノードが、レベルＬ２で生成されても良く、各々が、ＮＩＶ１ベースのビニングとＮＩＶ２ベースのビニングとの組み合わせを表す。同様に、レベルＬ２の各ノードに対して、ｃ３葉ノードが、生成されても良く、各々が、多変数ビン及び対応するビニング済み特徴を表す。したがって、木５８１０の場合、合計（ｃ１*ｃ２*ｃ３）個のビンが、対応するバイナリ指標変数を用いて、生成されても良い。図５８において、木５８１０Ａの葉ノードが、Ｂｉｎ１２３−１−１〜Ｂｉｎ１２３−１−ｍとラベル付けされ、ここで、ｍは、ｃ１、ｃ２、及びｃ３の積である。（示されるビン命名の慣習「Ｂｉｎ＜文字列１＞−＜文字列２＞−＜文字列３＞」において、文字列１は、ビニングのために一緒に分類される異なる入力変数を表し、文字列２は、特定の決定木の識別子であり、文字列３は、葉ノードのコレクションの中のビンの位置の指標である。したがって、Ｂｉｎ１２３−ｋ−ｑは、ビニング変数ＮＩＶ１、ＮＩＶ２、及びＮＩＶ３のために使用されるｋ番目の木のｑ番目の葉ノードを表す。）任意の所与の観測記録は、その観測記録内のＮＩＶ１、ＮＩＶ２、及びＮＩＶ３の値に基づいて、葉ノードのうちの特定の１つにマッピングされても良い。その葉ノードに対するバイナリ指標変数が、観測記録に対して１に設定されても良い一方で、他の指標変数は全て、ゼロに設定されても良い。
【０２２２】
一部の実施形態において、まさに単一変数ビニングが異なるビン計数を使用して同時に行われても良いように、多変数ビニングもまた、所与の変数セットに対するビン計数の異なる組み合わせで同時に行われても良い。例えば、ビン計数（ｃ４、ｃ５、ｃ６）の異なる組み合わせを使用して、第２の決定木５８１０Ｂが、（ＮＩＶ１、ＮＩＶ２、ＮＩＶ３）の組み合わせに対して同時に生成されても良い。重ねて、葉ノードのビン／特徴の数は、ビン計数の積と等しく、したがって、図５８で、木５８１０Ｂの葉ノードは、Ｂｉｎ１２３−２−１〜Ｂｉｎ１２３−２−ｎとラベル付され、ここでは、ｎは（ｃ４*ｃ５*ｃ６）である。様々な実施形態において、それぞれの多変数同時ビニング変換に対する任意の所望の数の決定木が、使用されても良い。少なくとも一部の訓練データセットに対して、図５８に示されるように、分類された分位ビニングに対する複数の変数の使用は、単一変数ビニングを使用して可能であり得るよりも多岐にわたる非線形関係が捕捉されることを可能にし得る。様々な実施形態において、パラメータベクトルサイズを制限するための同様の種類の手法が、単一変数ビニングを参照して先に論じられたように、多変数同時分位ビニングを用いて、使用されても良い。例えば、少なくとも一部の実施形態において、ビニング済み特徴に割り当てられた重みの分位境界推定を伴う規則化及び／または技法が、採用されても良い。
【０２２３】
少なくとも一部の実施形態において、多変数同時ビニング変換及び単一変数同時ビニング変換が、モデルの所与の訓練段階内で使用されても良い。図５７に例示される種類の単一変数同時ビニングは、より一般的な多変数ビニング法の１つの異形と見なされても良く、単純な決定木は、葉ノード（加えて、ビニング判定手順の開始を表すルートノード）のみを含む。一般的に言って、任意の所与の訓練データセットの入力変数中から、変数の複数のグループが同時ビニングのために選択されても良い。グループのうちの一部が、たった１つの変数を含んでも良い一方で、他のグループは、複数の変数を含んでも良い。
【０２２４】
図５９は、少なくとも一部の実施形態に従った、機械学習サービスで同時ビニング動作を表すために使用され得るレシピの例を例示する。先に記載されたように、例えば、図１１〜図１７を参照して、機械学習サービスは、多岐にわたる特徴変換動作がユーザフレンドリな構文で指示されても良いレシピ言語をサポートしても良く、そのようなレシピは、必要に応じて、異なるデータセットに対して再使用されても良い。図５９に描写される実施形態において、図５７に例示される単一変数同時ビニング及び図５８に例示される多変数同時ビニング等の、同時分位ビニング変換に対応するレシピが、生成され、ＭＬＳレポジトリ内に記憶されても良い。
【０２２５】
レシピ５９０２Ａの出力セクションは、図５８の同時ビニング変換に対応し、入力変数及びビン計数の名前は、各変換に対して指示される。したがって、１０、１００、及び１０００のビン計数を用いた同時単一変数分位ビニング変換は、ＮＩＶ１に対して行われ、２０、４０、８０、及び１６０のビン計数を用いてＮＩＶ２に対して、ならびに５、２５、及び６２５のビン計数を用いてＮＩＶ３に対して行われる。
【０２２６】
レシピ５９０２Ｂの出力セクションは、変数の指定されたグループに対して行われる同時多変数分位ビニング変換を指示する（トークン「ＭＶ＿ｑｕａｎｔｉｌｅ＿ｂｉｎ」内の「ＭＶ」は、「複数の変数」を表す）。第１のそのような変換は、ＮＩＶ１及びＮＩＶ２に一緒に適用され、（「１０Ｘ１０」によって示されるように）ＮＩＶ１値は、１０個のビンにマッピングされ、ＮＩＶ２値もまた、１０個のビンにマッピングされ、それによりその組み合わせに対する１００個のビンを作成する。第２の多変数ビニング変換は、ＮＩＶ１に対して１００のビン計数、及びＮＩＶ２に対して１００のビン計数を用いて、ＮＩＶ１及びＮＩＶ２に対して同時に行われ、全体で１００００個のビンが生じる。第３の多変数ビニング変換は、ＮＩＶ１に対して１００及びＮＩＶ３に対して２０のそれぞれのビン計数を用いて、ＮＩＶ１及びＮＩＶ３に対して一緒に行われる。一部の実施形態において、単一変数分位ビニング変換もまた、たった１つの変数を有するグループを指示するＭＶ＿ｑｕａｎｔｉｌｅ＿ｂｉｎトークンを使用して指示されても良い。少なくとも一部の実装例において、レシピ５９０２Ａに示される「ｑｕａｎｔｉｌｅ＿ｂｉｎ」トークンは、単一変数ビニング変換及び多変数ビニング変換の両方に対して使用されても良く、このトークンと関連付けられたパラメータは、単一変数ビニングまたは多変数ビニングが行われるかどうかを判定するために、使用されても良い。
【０２２７】
一部の実施形態において、５９０２Ａまたは５９０２Ｂに類似したレシピは、モデルジェネレータによって生成され、同様の種類の機械学習問題への可能性のある再使用のためにＭＬＳ人工物レポジトリの中に記憶されても良い。一部の実施形態において、機械学習サービスのクライアントは、同時分位ビニングを明確に要求しても良く、そのような変換の属性または特性（例えば、同時にビニングされる１つまたは複数の変数のグループ、各グループに対する同時ビニング変換の数、ビン計数等）を指定するレシピを提供しても良い。
【０２２８】
少なくとも一部の実施形態において、モデルを生成または訓練する処理は、例えば、ＡＰＩまたはウェブベースのコンソールを介したクライアントからのプログラム的要求に応答して、ＭＬＳで開始されても良い。図６０は、クライアントが、機械学習サービスのプログラム的インターフェースを利用して、同時分位ビニングの使用に関するクライアントの好みを示し得るシステムの例を例示する。示されるように、システム６０００において、クライアント１６４は、プログラム的インターフェース６０６２を介して、モデル作成要求または訓練要求６０１０を提出しても良い。クライアント要求は、要求内で指示された１つまたは複数の目標変数６０２２の値を予測するためのモデルを訓練するために観測記録が使用される、データソース６０２０を指示しても良い。要求は、同時分位ビニングの使用がクライアントにとって許容できる場合、「真」に設定されても良い「同時ビニング」パラメータ６０２４を含んでも良い。そのような実施形態において、同時分位ビニングを使用したくないクライアントは、そのようなパラメータを「偽」に設定しても良い。少なくとも１つの実施形態において、同時ビニングの規定の設定は、たとえクライアントが好みを指示しないとしても、好適な候補として識別された選択された入力変数に対してＭＬＳが同時分位ビニングを実行するように、「真」でも良い。一実施形態において、同時ビニングパラメータの値の設定の代わりに、または同時ビニングパラメータの値の設定に加えて、クライアントは、クライアントのモデル作成要求６０１０の中に同時ビニング変換を含むレシピを指示するか、または含んでも良い。
【０２２９】
クライアント要求６０１０は、機械学習サービスの要求／応答ハンドラ６０４２によって受信されても良く、対応する内部要求は、モデルジェネレータ６０８０に送信されても良い。モデルジェネレータは、本明細書で、モデルトレーナー、特徴処理マネージャ、または特徴変換マネージャとも称され得る。モデルジェネレータ６０８０は、同時分位ビニングが行われる観測記録の１つまたは複数の候補変数を識別しても良い。一部の実施形態において、モデルジェネレータ６０８０は、例えば、複数の変数が多変数分位ビニングのために分類されるべきかどうか、どのように複数の変数が多変数分位ビニングのために分類されるべきか、使用されるべきビン計数等の、同時ビニングのために使用される属性を判定するために、ＭＬＳベストプラクティス知識ベース１２２を参照しても良い。先に同じ問題領域のため、または類似した種類の機械学習問題のために識別されたベストプラクティスは、同時ビニング属性の選択を導くのに役立つことがある。一部の実施形態において、モデルジェネレータ６０８０は、作成がクライアントによって要求されたものに類似したモデルに対してうまく使用された同時分位ビニング変換を含む、（例えば、知識ベース中で、またはＭＬＳ人工物レポジトリ１２０の中で）先に生成されたレシピを識別することができても良い。そのような既存のレシピが、要求６０１０に応答して適用される同時ビニング変換を選択するために使用されても良い。少なくとも１つの実施形態において、一組の観測記録のｋ次元木（ｋ−ｄ木）表現が、生成されても良く、例えば、ｋ次元は、選択された一組の変数を表す。そのような実施形態において、選択された一組の変数のうちの１つまたは複数に適用される同時ビニング変換の属性は、そのようなｋ−ｄ木の調査に少なくとも部分的に基づいても良い。
【０２３０】
図６０に描写される実施形態において、同時分位ビニングの使用を含む１つまたは複数の訓練ジョブ６０６８が、生成され、スケジュールされても良い。データソース６０２０の未処理観測記録の中に含まれる生データの種類に応じて、訓練ジョブ６０６８は、生入力変数をビニングのために使用することができる数値に変換する前処理タスク６０７０を含んでも良い。そのような前処理変換には、例えば、１つまたは複数の選択されたカテゴリー変数の実数へのマッピング、及び／または領域固有変換（例えば、生音声データ、グラフィックスデータ、もしくは動画データをビニングに好適な実数にマッピングする変換）が含まれても良い。一部の事例では、反復学習手順を使用して、（例えば、さらなる学習反復が完了するに従い、さらなるビニング済み特徴及び未ビニング特徴に対するパラメータを追加することによる）モデルのパラメータベクトルの拡張と、（例えば、先に記載された枝刈り法を使用した）パラメータベクトルの収縮と、の交互段階を用いて、モデルを訓練しても良い。同時ビニングのために選択された属性、及び訓練データのために選択された同時ビニング変換の数に応じて、パラメータベクトル拡張６０７２は、必要とされるメモリの容量の急速な拡大をもたらし得、したがって、枝刈りするための積極的手法がパラメータベクトル収縮６０７２の間に必要になり得る。枝刈りのために使用される（規則化等の）最適化技法（複数可）の属性は、例えば、モデル予測によってより有意ではないと識別された特徴の重みがより迅速に低減されるように、その都度調節されても良い。先に記載された分位境界推定法が採用される一部の実施形態において、任意の特定の反復の間に削除または枝刈りされるパラメータの断片は、より積極的なパラメータベクトルサイズ低減を実行するために増加されても良く、枝刈りのための作動条件は、枝刈りがより頻繁に行われるように変更されても良く、以下同様である。多くのシナリオにおいて、パラメータは、パラメータベクトルから削除されても良いが、少なくとも一部の実施形態において、時折、パラメータが訓練段階の間にパラメータベクトルから削除されない場合があっても良いことが留意される。したがって、本明細書に記載される種類の同時分位ビニング変換の使用は、パラメータの枝刈りを必要としない。
【０２３１】
選択された同時ビニング変換が適用され、モデルの訓練段階が完了した後で、モデルの表現が人工物レポジトリ１２０に記憶されても良く、訓練済みモデルの識別子６０８２は、プログラム的インターフェース６０６２を介してクライアントに提供されても良い。一部の事例では、行われる同時分位ビニング変換の（レシピ等の）指標もまた、クライアント１６４に提供されても良い。クライアントは、最終的にモデル実行要求６０５４を提出しても良く、モデルの訓練後段階本番実行６０５８が、モデル実行マネージャ６０３２によってスケジュールされても良い。
【０２３２】
図６１は、少なくとも一部の実施形態に従った、同時分位ビニング変換が実装された機械学習サービスで行われ得る動作の態様を例示する流れ図である。要素６１０１に示されるように、未処理観測記録がモデルを生成するために得られるデータソースの指標は、例えば、プログラム的インターフェースを介して提出されたクライアント要求を介して、プロバイダネットワークの機械学習サービスで受信されても良い。少なくとも一部の実施形態において、機械学習サービスは、予測が観測記録の変数の生の値から導出された特徴に割り当てられた実数値の重み（及び／またはより複雑なパラメータの線形結合）に基づく線形モデルが生成されることを判定しても良い。
【０２３３】
モデルジェネレータ等の機械学習サービスの構成要素は、１つまたは複数の未処理の変数を同時分位ビニング変換の候補と識別しても良い（要素６１０４）。候補は、例えば、観測記録のサンプル内の変数の生の値の分布の分析、同時ビニングを行うための規定の戦略等、異なる実施形態におけるいくつかの異なる要因のうちのいずれかに基づいて、識別されても良い。少なくとも一部の事例では、候補の１つまたは複数のグループが、多変数同時ビニング変換のために識別されても良い。一部の事例では、観測記録の１つまたは複数の変数の生値は、前処理行程で実数にマッピングされても良い。例えば、音声、動画、またはグラフィックスコンテンツを含む変数は、領域固有マッピングアルゴリズムを使用して実数にマッピングされても良いか、または一部の種類のカテゴリー変数またはテキストトークンは、実数にマッピングされても良い。
【０２３４】
描写される実施形態において、同時ビニング変換が行われる個々の変数または変数のグループに対応して、同時ビニング計画が、生成されても良い（要素６１０７）。そのような計画の属性または特性は、例えば、単一の訓練段階の間に実行される異なる分位ビニング変換の数、及び各そのような変換のために選択されたビン計数を含んでも良い。多変数ビニング変換に関して、変数値が確認される（例えば、変数が図５８に例示される木に類似した、ビニングのために使用される決定木の連続的レベルで調べられる）シーケンスが、計画属性に含まれても良い。一部の実施形態において、モデルジェネレータは、同時ビニング計画の生成を促進するために、例えば、モデルが生成されるに従い、過去に同じ問題領域（または類似した問題領域）に対してうまく使用されたレシピを探索することにより、ベストプラクティスの知識ベースを利用しても良い。
【０２３５】
一部の事例では、同時ビニングに加えて、様々な他の種類の特徴変換が、訓練モデルのために識別されても良い。描写される実施形態において、少なくとも部分的に同時ビニング計画の実行の結果として得られた特徴に対する最初の重み（要素６１１０）は、パラメータベクトルの中に記憶されても良い。続いて、重みは、例えば、Ｌ１規則化またはＬ２規則化または他の最適化技法を使用して、調節されても良い（要素６１１３）。一部の実施形態において、少なくとも一部のパラメータベクトルエントリは、調節された重みに基づいて削除されても良い（要素６１１６）。例えば、重みが除外閾値未満に含まれるエントリは、削除されても良い。一部の実施形態において、図５２及び図５４の文脈で論じられたものと類似した効率的分位境界推定法は、特徴重みの絶対値に適用されても良く、重みが重みの下からＸ％内に含まれるパラメータベクトルエントリは、削除されても良い。一部の実施形態において、パラメータベクトルサイズが、より多くの同時分位ビニング変換が識別されるに従い拡大し、パラメータのうちのいくつかが枝刈りされるに従い、縮小しても良い反復手法が、使用されても良い。訓練段階の完了後、訓練済みモデルを使用して本番データ及び／または試験データについての予測を生成しても良い（要素６１１９）。つまり、保存された特徴（例えば、枝刈りされていない複数のビニング済み特徴及び／または複数の未ビニング特徴）に割り当てられたパラメータまたは重みを使用して、予測を得ても良い。
【０２３６】
異なる実施形態において、同時分位ビニングは、様々な種類の一般化線形モデルを使用して対処することができる問題を含む、多岐にわたる教師付き学習問題に対して使用されても良い。様々な実施形態において、上述のものと類似した同時分位ビニング変換は、例えば、教師付き学習に対する使用に加えてか、または教師付き学習に対する使用の代わりに、教師無し学習に対しても使用されても良い。一実施形態において、例えば、ラベル付けされていないデータセットの変数のうちの少なくとも一部は、クラスタ化法の一部として同時にビニングされても良い。
【０２３７】
調査評価結果のための対話型グラフィカルインターフェース
異なる実施形態において、先に論じられたように、例えば、分類モデル、回帰モデル等を含む多岐にわたるモデルが、機械学習サービスを使用して本番予測のために、訓練、評価、次いで、展開されても良い。ＭＬＳの一部の非熟練ユーザにとって、特に、結果がテキスト形式で、例えば、数字の１つまたは複数の表として単純に提示された場合、モデル実行結果の解釈は、必ずしも簡単ではない場合がある。具体的には、モデル出力のテキストバージョンを使用すると、一部のユーザにとって、（正確さ、偽陽性率、偽陰性率等の）異なる質関連メトリック間の関係、及び（分類モデルの場合、クラス間のカットオフ値または境界等の）様々な解釈関連設定の変更が、モデルを使用して下された最終的な事業決定にどのように影響を与え得るか、を理解することは比較的困難であり得る。少なくとも一部の実施形態において、一方ではＭＬＳリソースのバックエンド計算及び推測能力と、モデル結果を解釈し、可能性のある相反する質目標間の最善の可能性のあるトレードオフを行う、ＭＬＳのユーザの能力と、の間に存在し得る隙間を埋めることを促進するために、ＭＬＳは、対話型グラフィカルインターフェースへのサポートを提供しても良い。例えばウェブサイトまたはウェブページのコレクション（例えば、ウェブベースのＭＬＳコンソールのページ）を介して、またはスタンドアロングラフィカルユーザインターフェース（ＧＵＩ）ツールを介して実装されても良いそのような対話型グラフィカルインターフェースは、ＭＬＳのユーザが（様々な訓練後段階評価実行、または評価後本番実行等の）様々なモデル実行の結果の視覚化されたものを、閲覧または調査することを可能にし得る。様々な実施形態において、インターフェースは、ユーザが１つまたは複数の解釈関連設定を動的に変更し、様々な品質メトリック及び品質メトリックの相互関係について学び、様々な目標間で優先順位を付けることを可能にしても良い。
【０２３８】
少なくとも一部の実施形態において、インターフェースは、１つまたは複数の予測関連設定の値を変更するため、及びそのような変更の結果をリアルタイムで観測するための、ＭＬＳクライアントによって使用され得るいくつかの制御要素（例えば、スライダ、ノブ等）を含んでも良い。一部の実装例において、基礎となる変数または設定への滑らかな変更を模倣するスライダ等の連続変動制御要素が、使用されても良く、他の実装例において、小さい一組の値のうちの１つが選択されることを可能にするノブ等の不連続変動制御要素が、使用されても良い。例えば、二項分類モデルに関して、クライアントがカットオフ値（１つのクラスまたは他のものの中に観測記録を入れるために使用される出力変数の境界値）を変更し、そのような変更が、所与の評価実行の偽陽性、偽陰性等の数にどのように影響を与えるかを、動的に観測することを可能にしても良い。一部の実施形態において、インターフェースは、クライアントがある特定の種類の予測関連の選択肢の影響を「逆行分析」することを可能にしても良く、例えば、クライアントは、スライダ制御装置を使用して、所望の変更予測の質結果メトリック（例えば、二項分類モデルの特定の評価実行の偽陽性率）を指示し、リアルタイムで、結果メトリックの所望の値を得るために使用することができるカットオフ値を見ても良い。クライアントはまた、異なる予測の質メトリックと閾値との間の関係の視覚的な証拠も提示されても良く、例えば、クライアントが所与の評価実行の感度レベルを変更するに従い、精度または特異性等の他のメトリックへのその変更の影響が示されても良い。様々な変更の「ｗｈａｔ−ｉｆ」調査を可能にするそのようなインターフェースを使用して、ユーザの特定の事業目標（例えば、偽陽性を低く保つ、または正確さを高く保つ）を達成するように、ＭＬＳのユーザが、分類カットオフ、モデルの予測がモデルの後続の実行において制限されるべき変数値の範囲等の設定を選択することがより容易になり得る。所与の対話セッションの間、ユーザは、評価実行の保存された結果のうちのいずれかに提供を与えることなく、いくつかの異なる設定またはメトリックを変更させ、結果として生じる傾向を観測しても良い。一部の実施形態において、ユーザは、対話型インターフェースを介して、モデルの後続の実行のために使用される１つまたは複数の予測関連設定のそれぞれの目標値を保存するための要求を提出しても良い。
【０２３９】
様々な実施形態において、様々な可能性のある設定変更の効果の動的表示は、ＭＬＳのバックエンド構成要素（例えば、モデル実行結果が得られ、記憶され、かつ変更の影響が迅速に定量化される様々なＭＬＳサーバ）と、実行結果が表示され、クライアントとインターフェースの様々な制御要素との対話が最初に捕捉される、フロントエンドまたはクライアント側のデバイス（例えば、ラップトップ、デスクトップ、スマートフォン等に実装されるウェブブラウザまたはＧＵＩ）との間の効率的通信によって、可能にされても良い。一部の実施形態において、クライアントがインターフェースを介して設定を変更するに従い、変更の指標が、ＭＬＳのバックエンドサーバに迅速に送信されても良い。バックエンドサーバは、表示されるデータセットへの変更の結果を迅速に計算し、表示を更新するのに必要なデータをまたフロントエンドデバイスに送信しても良い。一部の実装例において、スライダ等の連続変動制御装置がある値から別の値に遷移するためにクライアントによって使用されるとき、フロントエンドデバイスとバックエンドサーバとの間の複数のそのような対話は、表示への連続的変更をシミュレーションするために、すぐさま起こっても良い（例えば、最新情報が１秒あたり数回計算され、表示されても良い）。少なくとも一部の実施形態において、クライアント指示の変更の影響のうちの少なくとも一部を計算するために必要な論理は、対話型インターフェース自体内、またはクライアント側のデバイスがグラフィカル表示のために使用される他のサブ構成要素に組み込まれても良い。
【０２４０】
図６２は、少なくとも一部の実施形態に従った、機械学習サービスが、クライアントが様々な予測の質メトリック目標間のトレードオフを調査し、モデル実行結果を解釈するために使用することができる設定を変更することを可能にする、対話型グラフィカルインターフェースを実装したシステム環境例を例示する。システム６２００において、モデルに対して使用される１つまたは複数の訓練データセット６２０２は、例えば、ＭＬＳのクライアントによって提出された訓練要求またはモデル生成要求において識別されても良い。モデルジェネレータ６２５２は、（例えば、先に記載された種類の特徴変換を生入力データに適用した結果を含む）様々な入力変数の値に基づいて、観測記録に対する１つまたは複数の出力変数の値を予測するために、訓練データセット６２０２を使用して、モデル６２０４を訓練しても良い。
【０２４１】
描写される実施形態において、モデル６２０４が十分な程度まで訓練された後、１つまたは複数の評価実行が、例えば、訓練の間に調べられなかった観測に関してモデルの予測がどれくらい良好かを判定するために、出力変数（複数可）の値が既知である（モデルを訓練するために使用されなかった）観測記録を使用して行われても良い。評価データセット６２１２は、システム６２００にそのような観測記録を含んでも良い。訓練されたモデル６２０４は、モデル実行部６２５４Ａによって入力として評価データセット６２１２を提供されても良い（例えば、図１に示されるサーバプール１８５のＭＬＳサーバのうちの１つでの処理実行）。少なくとも一部の実施形態において、（図４に示されるジョブに類似した）それぞれのジョブは、モデルを訓練するため、及びモデルを評価するために、スケジュールされても良い。
【０２４２】
描写される実施形態において、評価の結果のうちの少なくとも一部は、自身に代わって評価が行われるクライアントまたはユーザへの表示のために、パッケージにされても良い。例えば、一組の評価実行結果データ６２２２は、対話型グラフィカルインターフェース６２６０（例えば、クライアントコンピューティングデバイスにインストールされたウェブブラウザ、またはカスタムＧＵＩツール）のためにフォーマットされ、送信されても良い。結果データセット６２２２は、例えば、評価実行の１つまたは複数の出力変数の統計的分布６２３２、予測解釈閾値（ＰＩＴ）６２３４の１つまたは複数の今のところ選択されている値もしくはＭＬＳ提案の値（例えば、二項分類のためのカットオフ）、及び／または評価実行に関する１つまたは複数の品質メトリック６２３６（例えば、正確さ、偽陽性率等）の値のうちのいくつかの組み合わせを含んでも良い。一部の実施形態において、例えば、使用されるグラフィカルインターフェースの種類に応じて、結果データがどのように表示されるか（例えば、ウェブページレイアウト詳細）に関する命令またはガイドラインもまた、バックエンドＭＬＳサーバから、データのグラフィカル表示が生成されるデバイスに送信されても良い。対話型グラフィカルインターフェース６２６０は、所与の対話セッションの間の評価の結果を見て、分類カットオフ等の様々な予測設定を用いて実験し、そのような設定に変更を加えることと関連したトレードオフを観測することを可能にする様々な制御装置を含んでも良い。対話型グラフィカル表示の構成要素の例、及び異なる実施形態において使用されても良い様々な制御装置は、図６３〜図６９に示される。
【０２４３】
評価結果データが表示されるクライアントは、制御装置のうちの１つまたは複数を使用して、１つまたは複数の設定の所望のまたは目標値を指示しても良い。目標値の選択は、例えば、クライアントが１つの変更を加え、その変更の影響を観測し、その変更を取り消し、次いで別の変更を加え、その影響を見て、以下同様を行なっても良い、所与のセッションの間のいくつかのクライアント対話反復６２４１を伴っても良い。最終的に、少なくとも一部の事例では、クライアントは、予測解釈閾値（ＰＩＴ）６２４２の目標値等の特定の設定を選択しても良い。少なくとも一部のシナリオでは、選択された目標値は、ＭＬＳによって最初に提案されても良いＰＩＴ値６２３４と異なっても良いが、一部の事例では、クライアントは、提案されたＰＩＴ値を変更しないと決定しても良い。少なくとも１つの実装例において、クライアント選択のＰＩＴ値６２４２は、ＭＬＳのレポジトリ、例えば、図１の人工物レポジトリ１２０に記憶されても良い。保存されたＰＩＴ値６２４２は、訓練済みモデル６２０４の１つまたは複数の後続の実行、例えば、評価後データセットまたは本番データセット６２１４に対してモデル実行部６２５４Ａを使用して行われても良い実行の結果を生成するために、使用されても良い。少なくとも一部の実施形態において、同じモデル実行部６２５４Ａ（例えば、同じバックエンドＭＬＳサーバ）は、訓練済みモデルの評価実行及び評価後実行の両方のために使用されても良いことが留意される。
【０２４４】
図６３は、少なくとも一部の実施形態に従った、対話型グラフィカルインターフェースを介して提供され得る二項分類モデルの評価実行の結果の表示例を例示する。描写される実施形態において、結果は、機械学習サービスとの対話のためのブラウザベースのコンソールの一部を形成するウェブページ６３００内に表示されても良い。他の実施形態において、対話型制御装置と類似した表示は、ウェブブラウザの使用を必要としないスタンドアロンＧＵＩ（例えば、ラップトップ、デスクトップ、タブレット、またはスマートフォン等の顧客のコンピューティングデバイスで実行するシンクライアントプログラムまたはシッククライアントプログラム）を使用して、提供されても良い。
【０２４５】
ウェブページ６３００のメッセージ領域６３０２は、表示されているデータが、モデルへの入力として特定のデータセット「ＥＤＳ１」が使用されたモデル（「Ｍ−１２３１」）の特定の評価実行に対応していることを示している。描写される実施例において、Ｍ−１２３１は、二項分類モデル、すなわち、目標が、評価データセットＥＤＳ１の観測記録を、単純に「０」及び「１」とラベル付けされたクラス等の２つのクラスのうちの１つに分類することであるモデルである。メッセージ領域はまた、グラフＧ１及びスライダ制御装置Ｓ１の使用に関する説明的テキストも含む。
【０２４６】
グラフＧ１は、「スコア」とラベル付された出力変数の分布を例示し、つまり、Ｘ軸がスコアの値を表す一方で、Ｙ軸は、評価データセットＥＤＳ１の観測記録の数を示す。観測記録の各々は、スコア値及び「カットオフ」と呼ばれるクラス境界に基づいて、２つのクラス「０」及び「１」のうちの１つの中に入れられる。描写されるシナリオにおいて、例えば、スコア値が０〜１の範囲内の実数であり、カットオフ値が０．５に設定された場合、０．４９のスコアを有するＥＤＳの観測記録が、「０」クラスの中に入れられる一方で、０．５１のスコアを有する観測記録は、「１」クラスに入れられる。二項分類のカットオフ値は、予測解釈閾値（ＰＩＴ）の一例を表し、様々な種類の機械学習問題において、他の予測解釈閾値が、使用されても良い。例えば、一部の種類の回帰問題において、許容できる平均二乗エラー範囲（例えば、Ｘ〜Ｙの平均二乗エラー値）内の予測を表す出力変数のサブ範囲の境界は、予測解釈閾値として機能しても良い。ｎ方分類に関して、Ｎクラスのうちのどれに、特定の観測記録が入れられるか（または観測記録が未分類と見なされるべきかどうか）を判定するために使用される１つまたは複数の出力変数の境界値は、予測解釈閾値を表しても良い。
【０２４７】
例示される例において、ＥＤＳ内の観測記録の各々は、観測記録に関する「グラウンドトルース」を示すラベル「０」または「１」を含んでも良い。これらのラベルは、グラフＧ１を描画するための観測記録を分けるのに使用され、例えば、ラベルが「０」である記録が、曲線「「０」とラベル付けされた記録」を使用して示される一方で、残りの記録は、曲線「「１」とラベル付けされた記録」を使用して示される。２つのグループの各々内で、（ページ６３００の要素６３５０に示されるように）カットオフの０．５の値を仮定すると、いくつかの観測記録が正しいクラスの中に入れられる一方で、他の観測記録は、間違ったクラスに入れられる。所与の観測記録のグラウンドトルース値が「０」であり、スコアがカットオフ未満である場合、「真陰性」と呼ばれる正しい分類結果が生じ、つまり、そのラベルの正しい値は「０」であり、カットオフを使用して選択されたクラスは、正しい値と一致する。グラウンドトルース値が「１」であり、スコアがカットオフを超える場合、「真陽性」と呼ばれる正しい分類が生じる。グラウンドトルース値が「０」であり、スコアがカットオフを超える場合、「偽陽性」と呼ばれる間違った分類が生じる。最後に、グラウンドトルース値が「１」であり、スコアがカットオフ未満である場合、観測記録は、「０」クラスの中に入れられ、「偽陰性」と呼ばれる間違った分類が生じる。二項分類問題における所与の観測記録に対して可能な判定の４つの種類（真陽性、真陰性、偽陽性及び偽陰性）は、本明細書で、それぞれの「予測解釈判定」とも称され得る。他の種類の予測解釈判定は、他の種類の機械学習モデルであるとき、行われても良い。
【０２４８】
グラフＧ１において、曲線ＡＢＣＥＡによって境界をつけられた領域は、真陰性を表し、曲線ＣＦＧＤによって境界をつけられた領域は、真陽性を表す。「０」及び「１」ラベルを表す曲線間の交差軸の領域は、間違った分類判定を表す。偽陽性が、交差軸領域ＨＣＤによって現在のカットオフ値６３２０の右側に表される一方で、偽陰性は、交差軸領域ＣＨＥによって現在のカットオフ値６３２０の左側に表される。４つの種類の判定、真陰性６３３１、真陽性６３３４、偽陰性６３３２、及び偽陽性６３３３の相対数はまた、グラフＧ１の下のバーＢ１にも示される。少なくとも一部の実施形態において、４つの種類の予測解釈判定に対応する評価データセットにおける観測記録のパーセンテージ及び／または実際のカウントが、ウェブページ６３００に示されても良い。例えば、図６３において、ＥＤＳ１の観測記録のうちの４５０２または４５％が真陰性に相当し、ＥＤＳ１の観測記録のうちの６９８または７％が偽陰性であり、ＥＤＳ１の観測記録のうちの１１０３または１１％が偽陽性であり、ＥＤＳ１の残りの３６９８記録、または３７％が真陽性である。
【０２４９】
描写される実施形態において、Ｇ１等のグラフ及びＢ１等のバーを使用した評価実行の結果の表示に加えて、ウェブページ６３００はまた、表形式の少なくともいくつかのメトリックも示しても良い。例えば、ウェブページの領域６３５１は、ＥＤＳ１の観測記録の総数、カットオフ値、「１」クラスに入れられた記録の数／パーセンテージ（偽陽性と真陽性との合計）及び「０」クラスに入れられた記録の数／パーセンテージ（真陰性と偽陰性との合計）、分類判定が正しく下された記録の数／パーセンテージ（真陰性と真陽性との合計）、ならびに間違った判定が下された記録の数／パーセンテージ（偽陽性と偽陰性との合計）を示しても良い。一部の実施形態において、他のメトリックが、表示されても良い。
【０２５０】
ウェブページ６３００において、いくつかのグラフィック要素及び／またはテキスト要素が、ユーザ対話に応答して動的に再描画または更新されても良い。したがって、例えば、適切な許可を与えたユーザは、マウス（または、タッチスクリーンインターフェースの場合、スタイラスまたは指）を使用して、スライダ制御装置Ｓ１を操作しても良い。Ｓ１は、カットオフ値を減少させるために（矢印６３１０によって示されるように）左に、またはカットオフ値を上昇させるために、（矢印６３１１によって示されるように）右に動かされても良い。カットオフ値が変更されるに従い、（図６４ａ及び図６４ｂに示され、以下にさらに詳細に論じられるように）４つの判定グループのうちのいくつかまたは全て内に含まれる観測記録の数が変化しても良く、そのような変化は、ウェブページ６３００上にリアルタイムで更新されても良い。さらに、領域６３５１内に示されるメトリックの値もまた、カットオフ値が変更されるに従い、動的に更新されても良い。そのような動的更新は、ユーザにとって関心のある、メトリックへのカットオフ値の変更の影響の容易に理解できる表示をユーザに提供し得る。一部の実施形態において、ユーザは、値が動的に表示及び更新される一組のメトリック、例えば、値が、リンク６３５４のクリックの結果として表示される規定のメトリックまたは「詳細な（ａｄｖａｎｃｅｄ）」メトリックのいずれかによって示されるメトリックを変更することができても良い。一部の実装例において、色分け、異なる太さの線、異なるフォント等の他の視覚的な合図を使用して、グラフＧ１、バーＢ１、領域６３５１等の様々な部分を区別しても良い。
【０２５１】
少なくとも一部の実施形態において、機械学習サービスは、今のところ所与のモデルと関連するカットオフ値（または他の予測解釈閾値）をレポジトリに保存しても良い。一実施形態において、カットオフの最初の提案された値は、ＭＬＳ自体によって選択されても良く、この値（例えば、図６３に示されるシナリオ例において０．５）は、既定値として記憶されても良い。権限を与えられたユーザは、ウェブページ６３００等のインターフェースを使用して、カットオフの変更の影響を調査し、次いでカットオフの新しい値が、モデルの１つまたは複数の後続の実行（例えば、追加の評価実行、または評価後本番実行のいずれか）に対して使用されるべきであることを判定しても良い。ＭＬＳは、ウェブページ６３００のボタン制御装置セット６３５２の「新しいカットオフを保存する」ボタンを使用して、将来の実行のためにカットオフの新しい値を保存するように、命令されても良い。以下にさらに詳細に論じられるように、一部の実施形態において、ユーザは、例えば、「クラスラベルを編集する」ボタン制御装置を使用して、（「０」及び「１」等の）クラスラベルをより意味のある文字列に変更することができても良い。カットオフは、「カットオフをリセットする」ボタン制御装置を使用してカットオフの規定値にリセットされても良い。少なくとも一部の実施形態において、表示されている表示結果に満足していないユーザは、ウェブページ６３００を介して、例えば、ボタン制御装置セット６３５２に示されるボタン制御装置、「モデルを再評価する」または「モデルを再訓練する」を使用して、モデルを再評価するか、またはモデルを再訓練するための要求を提出しても良い。要求のうちの一部は、追加のパラメータを判定するために、ＭＬＳバックエンドのクライアントとのさらなる対話が必要であっても良い（例えば、新しい評価データセットが再評価のために指定されても良い）。描写される実施形態において、異なるウェブページが、追加のパラメータの指標を有効にするために、ボタン６３５２のうちの１つのクライアントのクリックに応答して表示されても良い。様々な実施形態において、図６３に示されるもの以外の他の種類の制御装置が、様々なモデルの種類のための類似した種類の機能を達成するために、実装されても良い。一部の実施形態において、連続変動制御装置要素が、クライアントがカットオフ値等の設定を円滑に変更することを可能にするために実装されても良い一方で、他の実施形態において、ユーザがいくつかの不連続ｐｒｅ−ｄ値の間から選択することを可能にする不連続変動制御要素が、使用されても良い。
【０２５２】
図６４ａ及び６４ｂは、少なくとも一部の実施形態に従った、対話型グラフィカルインターフェースの特定の制御を介してクライアントによって示された予測解釈閾値の変更の、一組のモデルの品質メトリックへの影響を総じて例示する。図６４ａは、カットオフがＣ１の値に設定された、二項分類モデルの評価実行の結果を例示する。このカットオフ値を用いて、グラフＧ２及びバーＢ２に示されるように、真陰性判定が評価データセット例の４６００個の観測記録に対して下されている一方で（合計の４６％）、真陽性判定は、３４００個の観測記録に対して下されている。７００個の判定が偽陰性であり、１３００個が偽陽性である。
【０２５３】
用途に応じて、クライアントは、異なる優先度または異なる重要性レベルを、モデルに関する様々な品質メトリックに割り当てても良い。例えば、偽陽性分類の負の事業結果が、偽陰性の負の事業結果よりもはるかに高い場合、クライアントは、モデルの解釈閾値（複数可）が、一般に、より少ない偽陽性判定が起こる可能性が高いような方向に変更されるべきであることを判定しても良い。二項分類モデルが、オンライン事業の特定の顧客が（例えば、他の人のクレジットカードを使用することによる）不正取引を試みたかどうかを判定するために使用されるシナリオを考えられたい。観測記録が「１」に分類されている場合、対応する顧客は、自身の取引が不正取引であると疑われていると接触及び通知されても良い。これは、偽陽性判定が下された場合、クライアントは、不正行動の冤罪を被り得ることを意味する。そのようなシナリオにおいて、ｅビジネス業者は、トレードオフが偽陰性と偽陽性との間で行われる場合、ｅビジネス業者は偽陽性よりも多くの偽陰性を好むと決定しても良い。反対のトレードオフが、偽陰性の現実世界の結果がはるかにより高いシナリオにおいて、例えば、可能性のある腫瘍に対する治療が、観測が偽陰性に間違って分類された患者に対して拒否され得る腫瘍検出用途において、好ましい場合がある。
【０２５４】
図６４ａのシナリオ例で対処される特定の機械学習問題に関して、クライアントは、偽陽性の率が高すぎると判定し、したがって、矢印６４３４によって示されるように、スライダＳ１を使用して、カットオフ値をＣ１からＣ２に上昇させることを決定した。上昇の影響は、図６４ｂに例示される。スライダが右に向かって動かされるに従い、変更されたカットオフによって影響されるグラフＧ２のいくつかのサブ領域の視覚的特性（例えば、シェーディング、色等）が、リアルタイムで変更されても良い。例えば、偽陽性の数が、意図されるとおり減少し、（図６４ａの）１３００から（図６４ｂの）５００に減少する。真陰性の数が、４６００のままで変更されない一方で、偽陰性の数は、実質的に７００から１８００に上昇する。真陽性の数も、３４００から３１００にいくらか減少する。様々な実施形態において、カットオフの変更の効果の動的視覚化は、様々なメトリックのテキスト表現のみが提供された場合に可能であったであろうよりも、情報に基づいた判定をＭＬＳクライアントが下す手助けをし得る。さらに、テキスト表現のみの提供は、テキストのみのシナリオにおいて、閾値の特定の値周辺での様々なメトリックの変更率を理解することがはるかにより困難であり得るため、カットオフまたは他の同様の予測解釈閾値の特定の目標を決定することをより困難にし得る。例えば、カットオフ値への小さな変更は、他の変更よりも、スコア値の一部のサブ範囲内の偽陽性率または偽陰性率にはるかに大きい影響を与え得、そのような高次効果は、図６４ａ及び６４ｂに示されるもの等の動的に更新されるグラフなしでは、理解するのが困難であり得る。
【０２５５】
様々な実施形態において、図６３に示されるように、いくつかの異なる予測の質メトリックは、（領域６３５１に見られるような）表形式で、またはグラフィカル要素を使用してのいずれかで示されても良い。図６５は、少なくとも一部の実施形態に従った、それぞれの制御装置が対話型グラフィカルインターフェースに含まれ得る機械学習モデルの評価実行に関する詳細なメトリックの例を例示する。図６３に表示されるコンテンツの多くは、図６３のウェブページ６３００のコンテンツと同一である。図６３と図６５との間の主な違いは、ユーザがウェブページ６３００のリンク６３５４をクリックした結果として、今では（領域６３５１に示されるものを超える）追加のメトリックが表示されていることである。描写される実施例において、予測の質メトリック感度（スライダ６５５４Ａ）、特異性（スライダ６５５４Ｂ）、精度（スライダ６５５４Ｃ）、及びＦ１スコア（スライダ６５５４Ｄ）のそれぞれの水平のスライダ制御装置６５５４が、示される。少なくとも一部の実施形態において、クライアントは、メトリックの規定のグループまたはコアグループを表示する領域６３５１の一部として、または詳細なメトリック領域内のいずれかで、クライアントがどのメトリックを見る、及び／または変更することを望むかを決定することができても良い。様々な実施形態において、表示及び／または操作に利用可能なメトリックは、モデルの種類に応じて異なっても良く、数ある中で、正確さメトリック、再現度メトリック、感度メトリック、真陽性率、特異性メトリック、真陰性率、精度メトリック、偽陽性率、偽陰性率、Ｆ１スコア、適用範囲メトリック、絶対パーセントエラーメトリック、二乗エラーメトリック、またはＡＵＣ（曲線下面積）メトリックを含んでも良い。一部の実施形態において、クライアントは、インターフェースを使用して、コアメトリックグループと詳細なメトリックグループとの間のメトリックを動かし、及び／または１つまたは両方のグループの中に含められる追加のメトリックを定義することができても良い。
【０２５６】
図６５に例示される実施形態において、スライダ６５５４Ａ〜６５５４Ｄ及びスライダＳ１の組み合わせは、異なるメトリック間の関係を視覚的に調査するために、クライアントによって、使用されても良い。例えば、スライダＳ１を使用してカットオフを変更することは、スライダ６５５４Ａ〜６５５４Ｄの位置への動的更新（ならびにバーＢ１へ、及び領域６３５１への更新）をもたらし得、どのようにカットオフ値が感度、特異性、精度、及びＦ１スコアに影響するかを視覚的に示す。スライダ６５５４Ａ〜６５５４Ｄのいずれか１つの位置を変更することは、Ｓ１、バーＢ１、及び残りのスライダ６５５４への対応するリアルタイム変更をもたらし得る。一部の実施形態において、クライアントは、例えば、異なるメトリックに対して使用されるべき特定のタイプの制御装置（スライダ、ノブ等）を選択することによって、対話型インターフェース内に表示される様々な領域のレイアウトを変更することが可能であり得、これらのメトリックは、グラフィカル制御装置を使用して直接変更可能であるものとし、かつこれらのメトリックは、テキスト形式で示されるものとする。
【０２５７】
図６６は、少なくとも一部の実施形態に従った、分類ラベルを変更し、かつ出力変数値に基づいて選択された観測記録の詳細を見るために使用され得る対話型グラフィカルインターフェースの要素の例を例示する。描写される実施形態において、ＭＬＳ（または自身に代わってモデルが訓練及び評価されるクライアント）は、観測記録が入れられるべきクラスに対して、規定名「０」及び「１」を最初に選択した可能性がある。後に、クライアントは、よりユーザフレンドリな名称が、そのクラスに対して使用されるべきであると決定しても良い。したがって、描写される実施形態において、「クラスラベルを編集する」ボタンがクリックされ、より小さいポップアップウィンドウ６６０５が表示されても良い。ウィンドウ６６０５、ユーザは、「買わない」（ラベル「０」に置き換える）及び「買う」（ラベル「１」に置き換える）等のラベルに対して、新しい名称を入力しても良く、モデルが、買い物客が購入する（「１」クラス）、または購入しない（「０」クラス）可能性についての予測に基づいて、買い物客を分類していることを示す。
【０２５８】
いくつかの他の制御装置は、様々な実施形態において、ＭＬＳの対話型グラフィカルインターフェースのユーザに提供されても良い。一部の実施形態において、例えば、クライアントは、モデルによって特定のスコアが計算されたことに関する観測記録の詳細を調べることを望み得る。図６６に例示される実施形態において、ユーザは、グラフＧ１内の様々な点で（例えば、おおよそ０．２３のスコアに対応する、点６６０４で）、マウスクリックしても良く、インターフェースは、クリックされた点によって示されるものに近いスコア値を伴う観測記録のリスト６６０３を表示することによって応答しても良い。指先またはスタイラス等の他のタイプのインターフェースが、他の実装例において、使用されても良い。クライアントが点６６０４でクリックするとき、描写される実施例において、対応するリンクを伴う３つの観測記録ＯＲ２３１１４２、ＯＲ４４９８、及びＯＲ３１２４のリスト６６０３が示されても良い。クライアントが、リストの観測記録の識別子のうちの１つでクリックする場合、及びクリックするとき、その観測記録の様々な変数の値は、描写される実施例におけるＯＲコンテンツパネル６６４２等の別のウィンドウまたはパネル内に表示されても良い。観測記録ＯＲ４４９８の入力変数ＩＶ１、ＩＶ２、…、ＩＶｎの値は、図６６に例示される実施例において、リスト６６０３の対応するリンク上でのクリックの結果として、示されても良い。
【０２５９】
図６３〜図６６において、二項分類モデルの評価に関する表示ビュー及び対話を例示した。少なくとも一部の実施形態において、ＭＬＳクライアントが、他のタイプのモデルに対する評価結果を調査し、かつそれと対話することを可能にする類似の表示が、サポートされても良い。図６７は、少なくとも一部の実施形態に従った、対話型グラフィカルインターフェースを介して提供され得る多重分類モデルの評価実行の結果の概観例を例示する。示されるように、ウェブページ６７００は、表示されているデータが、特定のデータセット「ＥＤＳ３」がモデルへの入力として使用された、モデル（「Ｍ−１６１５」）の特定の評価実行に対応するということを示す、メッセージ領域６７０２を含む。４方分類に対する改良された混同行列６７７０が、評価実行に対して示される。「クラス１」〜「クラス４」の４つのクラスに対して、実際のまたは真の母集団（及び対応する実際のパーセンテージ）が、６７７２とラベル付けされた列に示されている。これらの４つのクラスは、本明細書において、「非規定クラス」と総称され得る。
【０２６０】
モデル「Ｍ−１６１５」は、描写される実施形態において、少なくとも２つの要因に基づいて、観測記録を、５つのクラス（４つの非規定クラス「クラス１」〜「クラス４」ならびに「なし」とラベル付けされた規定クラス）にカテゴリー化する。すなわち、（ａ）任意の所与の観測記録が、４つの非規定クラスのうちのいずれかに属するという、予測された確率、及び（ｂ）記録を、規定クラスの代わりに、非規定クラスに入れることに対する、最小の予測された確率閾値（ＭＰＰＴ）。評価データセットＥＤＳ３の各観測記録に対して、非規定クラスの各々に属するその記録のそれぞれの確率が、計算されても良い。４つの予測された確率のうちのいずれか１つが、ＭＰＰＴを超過した場合、記録は、対応するカテゴリーに入れられても良い。例えば、ＭＰＰＴが２５％に設定され、かつモデルが、所与の記録ＯＲ１が４つの非規定クラスに属するという確率が、６７％（「クラス１」）、３５％（「クラス２」）、２％（「クラス３」）、及び６％（「クラス４」）であるということを予測するシナリオを考えられたい。この場合、６７％は、ＭＰＰＴ値２５％を超過することから、ＯＲ１は、「クラス１」に入れられるであろう。ＭＰＰＴが、例えば、スライダ６７５０を使用して、７０％に変更された場合、６７％は、７０％未満であることから、ＯＲ１は、代わりに「なし」クラスに入れられ、かつユーザは、変更が、行列６７７０において、動的に更新されていることを見ることができるであろう。少なくとも一部の実施形態において、規定のＭＰＰＴ値または提案されたＭＰＰＴ値は、ＭＬＳによって（１／（非規定クラスの数））に設定されても良い（例えば、４つの非規定クラスに対して、モデルは、ＭＰＰＴとして１／４または２５％を提案するであろう）。このため、ＭＰＰＴは、多重分類モデルに対する予測解釈閾値（ＰＩＴ）の例と見なされ得る。
【０２６１】
５つのカテゴリーの各々に入れられた、各クラスの観測のパーセンテージは、４×５の予測されたパーセンテージ行列６７７５に示される。描写される実施例において、列６７７２に示されるように、合計１００００個の観測のうち、２６００個の観測記録は、実際には「クラス１」であるが、モデルは、領域６７８０に示されるように、合計３１７６個の観測記録が「クラス１」に属すると予測した。実際には「クラス１」に属した２６００個の観測のうち、ＭＰＰＴの現在の値でもって、９５％は、「クラス１」に属するとして正確に予測され、１％は「クラス２」に、１％は「クラス３」に、３％は「クラス４」に、及び０％は「なし」に属するとして、不正確に予測された。図６７に示される行列要素に加えて、他のメトリック（予測の全体的な正確さ等）が、図６３に例示されるものと類似の技法を使用して示されても良く、例えば、様々な実施形態において、多重分類に関する一組のコアメトリック、または高度なメトリックを表示するためのリンクが提供されても良い。一部の実施形態において、ユーザは、異なるクラスに対するそれぞれのＭＰＰＴを指定することが可能であっても良く、それらの変更の効果を動的に表示させることが可能であっても良い。少なくとも１つの実施形態において、行列要素は、例えば、パーセンテージが１００％に近くなるにつれて、色コード化されても良く、対応する要素の色または背景は、暗緑色に近付けて設定されても良く、かつパーセンテージが０％に近くなるにつれて、対応する要素の色または背景は、明赤色に近付けて設定されても良い。
【０２６２】
一部の実施形態において、ＭＬＳは、ユーザが、どのように回帰モデルに対する予測エラーが定義されるべきかを正確に定義もしくは選択すること、及び／または選択されたエラー公差閾値に対する予測エラーの分布を調査することを可能にするように、対話型グラフィカル表示を提供しても良い。図６８は、少なくとも一部の実施形態に従った、対話型グラフィカルインターフェースを介して提供され得る回帰モデルの評価実行の結果の概観例を例示する。示されるように、ウェブページ６８００は、表示されているデータが、特定のデータセット「ＥＤＳ７」がモデルへの入力として使用された、モデル（「Ｍ−００８７」）の特定の評価実行に対応するということを示す、メッセージ領域６８０２を含む。ページ６８００の右側において、クライアントには、最も関心の高いエラー定義を選択するためのいくつかの異なるオプションが提供され、領域６８１２内のスライダＳ１は、グラフ６８００においてエラー分布を表示するために使用されるべきエラー公差閾値を示すために提供される。出力変数の予測された値と真の値との間の差異の絶対値が、現在、エラー定義として選択されている（領域６８０４において、選択されたラジオボタン制御によって示されるように）。スライダＳ１は、現在、６０以下の値を伴うエラー（領域６８０４の現在のエラー定を考慮した、６００の最大の可能なエラーのうち）が許容可能であるということを示すように位置付けられている。グラフ６８２０において、許容できる予測（すなわち、スライダＳ１によって現在示されている公差限界内の予測）、及び真の値の異なる範囲に対する公差外予測の分布が示される。スライダＳ１が左または右に移動するにつれて、許容できる予測６８６８と公差外予測６８６７との間の境界は、変化し得る。クライアントがエラーの異なる定義を使用することを望む場合、いくつかの選択肢が利用可能である。例えば、領域６８０４内のボタンの代わりに、領域６８０６内のラジオボタンを選択することによって、クライアントは、エラーを、真の値と予測された値との間の（非絶対）算術的差異として定義し得、予測されたエラーの方向は、クライアントにとって重要であるということを示す。領域６８０８内のラジオボタンを使用して、エラーの方向及び真の値に対するその値の両方を、エラー定義に含めても良い。一部のユーザは、エラーの彼ら自身の定義を示すことを望み得、これは、領域６８１０内のラジオボタンを選択すること、及び提供されたリンク上でクリックすることによって、行われても良い。クライアントがエラーの定義を変更するとき、少なくとも一部の実施形態において、領域６８１２のエラー公差スライダスケール内の最大エラーもまた、適宜変更されても良い。図６８に示される対話型制御装置の種類を使用して、ＭＬＳクライアントは、それらの特定の回帰問題に対する最も適切なエラーの定義を選択すること、及び（それらのエラー公差レベルに基づいて）エラーの最も大きい及び最も小さい量が予測された出力値の範囲を判定することもまた、可能であり得る。一部の実施形態において、回帰モデルに対する他のタイプの対話型視覚化もまた、または代わりに、表示されても良い。
【０２６３】
図６９は、少なくとも一部の実施形態に従った、クライアントが調査評価結果に基づいて予測解釈設定を変更することを可能にする、対話型グラフィカルインターフェースを実装した機械学習サービスで行われ得る動作の態様を例示する流れ図である。要素６９０１に示されるように、特定のモデルＭ１は、例えば、クライアントからプログラム的インターフェースを介して受信された要求に応答して、機械学習サービスにおいて、訓練されても良い。モデルは、所与の組の観測記録の各観測記録に対するＯＶ１等の１つまたは複数の出力変数の値を計算しても良い。要素６９０４に示されるように、評価実行ＥＲ１を行なって、所与の評価データセットの各記録に対するそれぞれのＯＶ１値を得ても良い。
【０２６４】
対話型グラフィカルディスプレイを介した表示のために、評価実行ＥＲ１の結果の少なくとも選択されたサブセットを表すデータセットＤＳ１が生成されても良い（要素６９０７）。ＤＳ１が得られる対話型ディスプレイは、分類カットオフ及び／もしくは様々な他のタイプの予測解釈閾値等の１つまたは複数の予測関係の設定を変更するために使用することができる、連続変動スライダ要素ならびに／または不連続変動要素等の様々な制御要素を含んでも良い。ＯＶ１もしくは他の出力または入力変数の統計的分布、（二項分類モデル評価の場合）真陽性、偽陽性、真陰性、及び偽陰性の数及び／またはパーセンテージ等の１つまたは複数の予測の質メトリック、ならびに予測解釈閾値の少なくとも１つの提案されたまたは規定値等の、ＥＲ１に対応するいくつかの異なるデータ要素のうちのいずれも、表示のためにデータセットＤＳ１に含まれても良い。データセットＤＳ１は、描写される実施形態において、グラフィカルインターフェースが表示されるべきデバイス（例えば、インストールされたウェブブラウザまたはスタンドアロンＧＵＩツールを伴う、クライアントによって所有されるコンピューティングデバイス）に送信されても良い（要素６９１０）。
【０２６５】
ユーザによる、グラフィカルインターフェースの１つまたは複数の対話型制御装置の操作に基づいて、二項分類（要素６９１３）に対するカットオフ値等の特定の予測解釈閾値（ＰＩＴ１）に対する目標値が、判定されても良い。制御装置の操作（例えば、マウス、スタイラス、または指先を使用して行われ得る）は、グラフィックスが表示されているコンピューティングデバイスにおいて検出されても良く、かつ、一部の実施形態において、例えば、先で説明されるものに類似する１つまたは複数のＡＰＩの呼び出しを使用して、ＭＬＳの１つまたは複数の他の構成要素（バックエンドサーバ等）に通信し戻されても良い。他の実施形態において、制御装置の操作の指標は、バックエンドＭＬＳサーバに送信される必要はなく、代わりに、ディスプレイを更新するために必要とされる計算のうちの一部または全てが、グラフィカルインターフェースが表示されるデバイス上で行われても良い。制御装置の操作に起因する、ＤＳ１の１つまたは複数の他の要素への変更が計算されても良く（要素６９１６）、かつユーザが制御要素を移動させる際に、ディスプレイへの対応する変更がリアルタイムで開始されても良い。一実装例において、スライダ等のグラフィカル制御要素の位置への変更は、それらが行われる際に、追跡されても良く、かつ様々なメトリックの対応する更新された値は、グラフィカル制御要素の操作への瞬時またはほぼ瞬時の応答の印象をユーザに与えるように、可能な限り素早く、表示デバイスに送信されても良い。ユーザが、ＰＩＴ１の特定の目標値が、例えば、モデルのその後の実行中の使用のために、記憶されるべきであるということを示す場合、及び示すとき、目標値は、描写される実施形態において、ＭＬＳレポジトリに記憶され得る（要素６９１９）。一部の実施形態において、異なるＰＩＴ１値は、モデル、ユーザ、評価データセット、及び／またはユースケースの異なる組み合わせに対して記憶されても良く、例えば、選択されたＰＩＴ値を含むレポジトリ記録は、タプル（モデルＩＤ、評価データセットＩＤ、ユーザ／クライアントＩＤ、ユースケースＩＤ）の一部の組み合わせを使用してインデックス化されても良い。
【０２６６】
１つまたは複数の事後評価モデル実行の結果は、保存されたＰＩＴ１値を使用して、生成されても良く、かつ関心のあるクライアントに提供されても良い（要素６９２２）。一部の実施形態において、保存されたＰＩＴ１値は、他の評価のために使用されても良く、ならびにまたは代わりに事後評価実行のために使用される。一実施形態において、モデルを訓練するための最初の要求（またはモデルを再訓練／再評価するための要求）もまた、対話型グラフィカルインターフェースの要素を介して受信されても良い。一部の実施形態において、グラフィカルインターフェースはまた、所与の評価実行中に検出される変則または異常な結果のリスト等の、クライアントの代わりに行われるモデル評価及び／または他のアクティビティに関する警告または情報メッセージを表示しても良い。ＭＬＳは、例えば、一実施形態において、評価データセットの入力変数の統計的分布が、訓練データセットにおける同じ変数の統計的分布とどれほど異なるかを確認し、かつ分布が実質的に異なると見出された場合、警告を表示しても良い。少なくとも一部の実施形態において、いくつかの異なる評価実行の結果は、インターフェースの単一表示で表示されても良い（例えば、異なる評価実行に対する結果が異なる「深さ」において示される３次元表示を模倣することによって、または異なる評価実行からの平均結果を計算することによって）。
【０２６７】
少なくとも一部の実施形態において、図６３〜６８に例示されるウェブページの種類の代わりに、またはそれに加えて、コマンドラインツールまたはアプリケーションプログラミングインターフェース（ＡＰＩ）等の他のタイプの対話型インターフェースが、類似の目標を達成するために使用されても良い。したがって、例えば、ＭＬＳクライアントは、分類及び／または回帰モデルを含む、様々なタイプのモデルの評価実行の予測結果の分布の指標を受信するために、コマンドラインツールまたはＡＰＩ呼び出しを介して、１つまたは複数の要求を提出しても良い。クライアントは、予測解釈閾値への変更を示すように、インターフェースと対話しても良く（例えば、新しいコマンドを提出する、または異なるＡＰＩを呼び出す）、かつ様々なメトリックへの対応する変更が、適宜表示されても良い（例えば、テキスト形式において）。同様に、クライアントは、特定の解釈閾値がその後のモデルの実行における使用のために保存されるべきであることを示す、ＡＰＩまたはコマンドラインを使用しても良い。一部の実施形態において、図６３〜６８に例示されるグラフィカル表示のうちの少なくとも一部の近似は、テキストシンボルを使用して提供されても良く、例えば、比較的粗雑なバージョンのグラフが、ＡＳＣＩＩ文字の組み合わせを使用して表示されても良い。音声及び／またはジェスチャベースのＭＬＳインターフェースが、一部の実施形態において、使用されても良い。
【０２６８】
重複観測記録の検出
いくつかのタイプの機械学習問題に関して、先に論じられたように、観測記録のコレクションは、モデル開発及び使用のそれぞれの段階に対するいくつかのタイプのデータセットに分割されても良い。例えば、一部の観測は、モデルを生成するために使用される訓練データセットに含まれても良く、かつ他は、モデルの予測の質を判定するために使用されるべき１つまたは複数の試験または評価データセットに含まれても良い。（重複検出に関する以下の考察に関しては、「試験データセット」及び「評価データセット」という用語は、本明細書において同義に用いられても良く、同様に、モデルの予測の質または正確さを判定する処理は、モデルの「評価」または「試験」のいずれかとして称され得る。）モデルを訓練した後に、試験データセットを使用することの第一目標のうちの１つは、訓練済みモデルが、訓練データを越えていかにうまく一般化することができるか、つまり、訓練済みモデルが、訓練データセットに含まれなかった「新しい」観測に対する出力変数値をいかに正確に予測することができるかということを判定することである。試験データセットが、訓練データセット内にもあった、多くの観測を期せずして含む場合、試験データセットを使用して行われた予測の正確さは、モデルの優れた一般化能力によるものではなく、大部分は訓練及び試験データセット間の観測記録の重複に起因して、高いと考えられ得る。
【０２６９】
本明細書に記載される種類の大規模の機械学習サービス（ＭＬＳ）において、これらのデータセットの各々は、数百万の観測記録を潜在的に含み得、かつそれは、時折、少なくとも一部の観測記録が、例えば、訓練及び試験データセット間でデータを分割する際のエラーにより、または訓練及び試験段階に対する類似もしくは重複するデータファイルの不用意な使用により、訓練データセットから対応する試験データセットに「漏洩」し得る場合であり得る。そのようなデータ漏洩の確率は、ＭＬＳの訓練データセットならびに分散及び並列アーキテクチャのサイズを考慮すると、場合によっては、モデルの訓練及び評価段階が、時間で分離される（例えば、時間、日、もしくは週で）、及び／または異なる組のＭＬＳサーバ上で行われるときに、さらに大きくなり得る。ＭＬＳ顧客が、訓練及び評価に対して、重複するまたは同一の組のデータを不用意に使用することによって、かなりの量の時間及び／または金銭を無駄にするシナリオを回避するために、少なくとも一部の実施形態において、ＭＬＳは、データセットにわたって重複する（または少なくともその可能性が高い）観測記録の効率的な検出に対するサポートを提供し得る。そのようなサポートの不在下では、顧客は、試験または評価実行の終了時まで待機し、実行の結果を調べ、次いで、試験データが訓練データ観測記録を含んだかどうかに関して、主観的判断を下す（例えば、結果が、予想外に正確であると思われる場合）ことができるのみであり得る。以下に記載されるような重複検出能力を使用して、ＭＬＳ顧客は、ＤＳ１が、第２のデータセットＤＳ２（モデルに対する訓練データセット等）内にもあった記録を含む高い確率を有するかどうかを、所与のデータセットＤＳ１（モデルに対する試験データセット等）の処理中に、比較的早期に通知され得、かつそれにより、リソースの無駄遣いを回避し得る。少なくとも１つの実装例において、そのような重複検出は、明確なクライアント要求を必要とすることなく、少なくとも一部のデータセットに対して、規定の設定により行われても良い。
【０２７０】
図７０は、少なくとも一部の実施形態に従った、機械学習データセットの空間効率の良い表現を利用して、１つのデータセットが機械学習サービスに別のデータセットの重複観測記録を含む可能性が高いかどうかを判定し得る重複検出器例を例示する。特定の機械学習モデル７０２０を訓練するために使用されるべき訓練データセット７００２は、描写される実施形態において、例えば、先に記載されるような「ｃｒｅａｔｅＭｏｄｅｌ」インターフェース等のＭＬＳのプログラム的インターフェースのクライアントの呼び出しの結果として、ＭＬＳにおいて識別されても良い。後に、自身に代わってモデルが訓練されたクライアントは、試験データセット７００４を使用して評価されるモデル７０２０の質を有することを望み得るか、またはＭＬＳ自体が、評価に使用されるべき試験データセット７００４を識別し得る。データセット７００２及び７００４の各々は、訓練データセット７００２のＯＲ  Ｔｒ−０、Ｔｒ−１、及びＴｒ−２、ならびに試験データセット７００４のＯＲ  Ｔｅ−０及びＴｅ−１等の複数の観測記録（ＯＲ）を含んでも良い。いずれのデータセットのＯＲの個々のものは、ＩＶ１、ＩＶ２など等の複数の入力変数（ＩＶ）、ならびに１つまたは複数の出力変数ＯＶに対するそれぞれの値を含んでも良い。少なくとも一部の実施形態において、いずれのデータセットのＯＲの全てが、全てのＩＶに対する値を必ずしも含むわけではない場合があり、例えば、一部の入力変数の値は、一部の観測記録において欠損している場合がある。少なくとも一部の事例では、試験データセット７００４は、モデル７０２０が訓練データセット７００２を使用して訓練される時間に、必ずしも識別されているわけではない場合がある。
【０２７１】
描写される実施形態において、Ｂｌｏｏｍフィルタ等の、重複検出のために使用されても良い訓練データセットの少なくとも１つの空間効率の良い代替の表現７０３０が構築されても良い。一部の実施形態において、スキップリストまたは商フィルタ（ｑｕｏｔｉｅｎｔ  ｆｉｌｔｅｒ）等の他のタイプの代替の表現が構築されても良い。所与の空間効率の良い表現７０３０を構築するために、一部の実施形態において、ＯＲを別の重複として示すときに、観測記録の全ての変数が考慮されるべきかどうか、または変数の一部のサブセットが考慮されるべきかどうかを示す定義等の、重複の対応する定義７０３５が使用されても良い。所与のデータセットに対して適切であり得る異なる重複定義７０３５の例は、図７２に提供され、かつ以下でさらに詳細に述べられる。一部の実施形態において、代替の表現が、モデルの訓練と並行して、生成及び記憶されても良く、そのため、例えば、訓練データセット７００２を通る単一パスのみが、（ａ）モデルの訓練、ならびに（ｂ）代替の表現７０３０の作成及び記憶の両方に必要とされ得る。代替の表現は、一部の実装例において、訓練データセット自体によって占有されるよりも、はるかに少ない（例えば、少ない桁数）記憶装置またはメモリを必要とし得る。
【０２７２】
描写される実施形態において、ＭＬＳの確率的重複検出器７０３６は、代替の表現７０３０を使用して、試験データセット７００４の所与のＯＲ  Ｔｅ−ｋに関する以下の判定のうちの１つを行なっても良い。すなわち、（ａ）Ｔｅ−ｋが、訓練データセットのＯＲのうちのいずれかの重複ではない、または（ｂ）Ｔｅ−ｋが、訓練データセットのＯＲの重複であることの非ゼロの確率を有する、のいずれか。つまり、確率的重複検出器７０３６が、重複の存在に関する１００％の確信を提供することは可能ではない場合がある一方で、検出器は、所与の試験データセットＯＲが重複ではないという１００％の確信を持って、判定することが可能であり得る。一部の実施形態において、確率的重複検出器７０３６は、重複としての所与のＯＲのラベル付けと関連付けられた信頼性レベルまたは確実性レベルを推定または計算することが可能であり得る。
【０２７３】
重複検出器７０３６は、試験データセット７００４の複数のＯＲを調べ、かつ調べられたＯＲに対する１つまたは複数の重複メトリック７０４０を得ても良い。可能なまたは可能性の高い重複として識別されたＯＲの数または割合によっては、重複メトリックは、一部の実施形態において、実際にそれ自体が確率的であり得る。例えば、それは、「試験セット観測記録のＸ％は、Ｙ％以上が重複であるという、それぞれの確率を有する」という記述の論理的同等物を表し得る。少なくとも１つの実施形態において、クライアントには、観測記録のうちの１つまたは複数が重複であるかどうかに関する、信頼性レベルの指標が提供されても良い。当然のことながら、調べられた試験セットＯＲのいずれも、重複であることの非ゼロの確率を有すると見出されない場合、メトリック７０４０は、調べられた試験データが重複を含まないということを、１００％の確信を持って示しても良い。重複メトリックを得るとき、一部の実施形態において、重複検出器７０３６はまた、使用されている特定の代替の表現と関連付けられた、偽陽性重複検出の予想される率を考慮に入れても良い。例えば、代替の表現７０３０として使用されているＢｌｏｏｍフィルタが、８％の偽陽性の予想された率を有し、かつ検出された重複の割合もまた、８％（以下）である場合、重複メトリックは、識別された可能な重複の数が、許容できる範囲内であることを単純に示し得る。少なくとも一部の実施形態において、代替の表現の生成に使用される様々なパラメータ（例えば、Ｂｌｏｏｍフィルタに使用されるビットの数、ならびに／またはＢｌｏｏｍフィルタを生成するために使用されるハッシュ関数の数及びタイプ）は、訓練データセットのサイズ、代替の表現の重複予測の所望の偽陽性率など等の要因に基づいて選択されても良い。
【０２７４】
少なくとも一部の実施形態において、重複メトリック７０４０が閾値基準を満たす場合、例えば、ｋ％超の試験データが、重複であることの非ゼロの確率を有する場合、１つまたは複数の重複応答７０４５が、ＭＬＳによって実装されても良い。いくつかの異なる応答措置のうちのいずれも、異なる実施形態において、行われても良く、例えば、クライアントに、重複の可能性を示す警報メッセージが送信されても良く、可能性の高い重複は、試験データセット７００４から除去または削除されても良く、試験データの使用を伴う機械学習ジョブは、一時停止、取り消し、または中止等されても良い。少なくとも一部の実施形態において、ＭＬＳによって行われる応答措置は、重複メトリック７０４０に依存し得る。例えば、試験データセットの大部分が、重複を含まないと見出される場合、（小さい）割合の潜在的な重複を示す警報メッセージが、クライアントに送信されても良く、一方で、試験データセットの大部分が、潜在的に重複であると見出される場合、モデル７０２０の評価は、クライアントが問題を対処するまで、一時停止または停止されても良い。一部の実施形態において、重複分析は、試験データセット７００４を使用したモデル７０２０の評価と並行して実施されても良く、そのため、試験データセットを通る単一パスのみが必要とされ得る。一実施形態において、クライアントは、応答措置を必要とする閾値基準が満たされているかどうかを判定するために、（例えば、ＭＬＳのプログラム的インターフェースを介して）ＭＬＳによって使用されるべき１つまたは複数のパラメータ（または他の形態のガイダンス）を示しても良い。例えば、クライアントは、試験データセットのランダムに選択された観測記録が重複であるという確率が、Ｐ１を超過する場合、特定の応答措置が取られるべきであることを示しても良い。次いで、ＭＬＳは、そのような高レベルガイダンスを、試験データセットに対して使用されるべき特定の数的閾値に翻訳しても良い（例えば、利用可能なＹ個の試験データセット記録のうちの少なくともＸ個が重複として識別されている場合にのみ、応答措置が取られるものとする）。そのようなシナリオにおいて、クライアントは、試験データセット記録の総数、または応答を作動させる重複の実際の数等の低レベルの詳細を必ずしも認識する必要はない。一部の実施形態において、クライアントは、１つまたは複数の重複メトリック閾値に対して実装されるべき応答、及び／または閾値自体の低レベルの詳細をプログラム的に指定しても良い。
【０２７５】
少なくとも１つの実施形態において、重複検出器７０３６は、応答７０４５の生成を開始する前に、全試験データセット７００４の処理を待機しなくても良く、例えば、百万個のＯＲを有する試験データセットから調べられる最初の１００個の観測記録のうちの８０個超が、重複であることの非ゼロの確率を有する場合、残りのＯＲを調べるために待機することなく、応答が生成されても良い。以下に記載されるように、一部の実施形態において、図７２に例示される技術は、所与のデータセット内（例えば、訓練データセット自体内、試験データセット自体内、または訓練データセット及び試験データセットに分けられるべき事前分割されたデータセット内）で、または任意の所望の対のデータセットにわたって、可能な重複を識別するために使用されても良い。したがって、そのような実施形態において、技術の使用は、試験データセットが訓練データ観測記録の重複を含み得るかどうかを確認することのみに限定されなくても良い。一実施形態において、少なくとも一部のデータセットに関して、重複検出のために使用される代替の表現は、データセットの元の表現よりも少ない記憶装置（または少ないメモリ）を必ずしも利用する必要はないということが留意される。
【０２７６】
図７１ａ及び７１ｂは、少なくとも一部の実施形態に従った、機械学習サービスでの重複観測記録の確率的検出のためのＢｌｏｏｍフィルタの使用の例を総じて例示する。１６ビット（Ｂｉｔ０〜Ｂｉｔ１５）を含むＢｌｏｏｍフィルタ７１０４は、描写されるシナリオにおいて、ＯＲ７１１０Ａ及び７１１０Ｂを含む訓練データセットから構築されて示される。Ｂｌｏｏｍフィルタを構築するために、所与のＯＲ７１１０は、描写される実施形態において、一組のハッシュ関数Ｈ０、Ｈ１、及びＨ２の各々への入力として提供されても良い。次いで、各ハッシュ関数の出力は、例えば、モジュロ関数を使用して、フィルタ７１０４の１６ビットのうちの１つにマッピングされても良く、そのビットは、１に設定されても良い。例えば、ＯＲ７１１０Ａに関して、Ｂｌｏｏｍフィルタのｂｉｔ２は、ハッシュ関数Ｈ０を使用して１に設定され、ｂｉｔ６は、ハッシュ関数Ｈ１を使用して１に設定され、ｂｉｔ９は、ハッシュ関数Ｈ２を使用して１に設定される。ＯＲ７１１０Ｂに関して、ｂｉｔ４、ｂｉｔ９（既に１に設定された）、及びｂｉｔ１３は、１に設定される。ＯＲ７１１０Ａ及び７１１０Ｂの両方がマッピングされるｂｉｔ９の場合のように、Ｂｌｏｏｍフィルタ内の所与の位置における１の存在は、異なるＯＲに対して生成されたハッシュ値に（またはさらには異なるハッシュ関数を使用して同じＯＲに対して生成されたハッシュ値）に起因し得る。そのため、フィルタの任意の所与の組のビット位置における１の存在は、フィルタを構築するために使用されるデータセットにおける、対応するＯＲの存在を一意的にまたは必ずしも示唆しなくても良い。Ｂｌｏｏｍフィルタ７１０４のサイズは、フィルタを構築するために使用されるデータセットよりもはるかに小さくても良く、例えば、５１２ビットのフィルタが、データのいくつかのメガバイトの代替の表現として、使用されても良い。
【０２７７】
図７１ｂに示されるように、同じハッシュ関数は、訓練データセットに関して可能な重複を検出するために、試験データセットＯＲ７１５０（例えば、７１５０Ａ及び７１５０Ｂ）に適用されても良い。特定の試験データセットＯＲ７１５０が少なくとも１つのゼロを含む一組のビットにマップする場合、重複検出器は、確信を持って、ＯＲが重複ではないと判定し得る。したがって、ＯＲ７１５０Ａは、ｂｉｔ３、ｂｉｔ６、及びｂｉｔ１０（それぞれハッシュ関数Ｈ０、Ｈ１、及びＨ２を使用して）にマップされ、これらのうちの２つ（ｂｉｔ３及びｂｉｔ１０）は、フィルタが全訓練データセットを使用して完全に投入された後、Ｂｌｏｏｍフィルタ７１０４にゼロを期せずして含む。したがって、重複検出分析の結果７１９０において、ＯＲ７１５０は、重複ではないとして示される。対照的に、ＯＲ７１５０Ｂは、ｂｉｔ４、ｂｉｔ９、及びｂｉｔ１３にマップされ、これらの全てが、完全に投入されたＢｌｏｏｍフィルタに１を期せずして含む。したがって、結果７１９０において、ＯＲ７１５０は、ＦＰ１の一部の基礎となる偽陽性率を伴って、可能性のある重複として示され得る。偽陽性率ＦＰ１は、Ｂｌｏｏｍフィルタのサイズ（使用されるビットの数、この場合は１６）、使用されるハッシュ関数の数及び／もしくはタイプ、ならびに／またはフィルタを構築するために使用される観測記録の数の関数であっても良い。一部の実施形態において、フィルタサイズ、ならびに使用されるハッシュ関数の数及びタイプは、Ｂｌｏｏｍフィルタ生成処理の調整可能なパラメータ７１４４を介して選択されても良い。異なるパラメータ値が、例えば、訓練データセットの観測記録の推定または予想される数、観測記録の推定または予想されるサイズ等に基づいて、選択されても良い。他の類似のパラメータは、商フィルタまたはスキップリスト等のデータセットの他のタイプの代替の表現から予想される偽陽性率を統制し得る。例示されるＢｌｏｏｍフィルタ７１０４のサイズ（１６ビット）は、好ましいまたは必要とされるサイズを表すことは意図されず、異なる実施形態において、任意の所望の数のビットが、使用されも良く、かつ任意の好ましいタイプの任意の所望の数のハッシュ関数が採用されても良いことが留意される。例えば、一部の実装例は、ＭｕｒｍｕｒＨａｓｈ関数を使用しても良く、一方で、他は、Ｊｅｎｋｉｎｓハッシュ関数、Ｆｏｗｌｅｒ−Ｎｏｌｌ−Ｖｏハッシュ関数、ＣｉｔｙＨａｓｈ関数、またはそのようなハッシュ関数の任意の所望の組み合わせを使用しても良い。
【０２７８】
一部の実施形態において、フィルタのサイズ、ならびに／または使用されるハッシュ関数の数及びタイプ等のパラメータは、訓練データセットの推定されたまたは実際のサイズ、所望の偽陽性率、異なるハッシュ関数の計算必要条件、異なるハッシュ関数のランダム化能力など等の要因に基づいて、ＭＬＳにおいて選択されても良い。異なるＯＲが異なる量の空間を占有し得る少なくとも１つの実施形態において、ＭＬＳは、最初の数個の記録を調べること、及び訓練データセットファイルのファイルサイズを最初の数個の記録の平均サイズによって除算することによって、訓練データセットの観測記録の数を推定しても良い。この手法は、ＯＲの正確な数を判定するための１つのパス、及び次いで、フィルタを構築するための別のパスを必要とする代わりに、例えば、モデルが訓練されている間にも、ＭＬＳが、訓練データセットを通る単一パスにおいて、Ｂｌｏｏｍフィルタ７１０４を生成することを可能にし得る。
【０２７９】
重複に関する異なるレベルの不確実性は、少なくとも一部の実施形態において、重複検出のための異なる数学的技術を使用して達成可能であり得る。例えば、一実施形態において、暗号強度ハッシュ関数は、試験データセットＯＲの各々の署名を生成するために使用されても良く、試験データにおける同じハッシュ関数を使用して生成された署名は、非常に高い正確度で、重複を検出するために使用されても良い。当然のことながら、暗号ハッシュ関数を使用することは、Ｂｌｏｏｍフィルタを生成するために使用されても良いより脆弱なハッシュ関数と比較して、計算的に高価であり得、暗号ハッシュを使用して達成される空間効率は、Ｂｌｏｏｍフィルタを使用して達成可能なものほど優れていない場合がある。一般に、ＭＬＳは、重複検出技術と関連付けられたリソース使用または費用で、重複検出の正確さを妥協することが可能であり得、例えば、正確さが増加するにつれて、技術のリソースニーズも典型的に増加し得る。少なくとも一部の実施形態において、及び／または一部のデータセットサイズに関して、確率的技術よりもむしろ決定論的重複検出技術が選択されても良く、例えば、可能な重複に関して試験されている試験データＯＲは、空間効率の良い表現を使用する代わりに、訓練データセットの元のＯＲと比較されても良いことが留意される。
【０２８０】
図７１ａ及び図７１ｂに例示されるＢｌｏｏｍフィルタ等のデータセットの代替の表現を生成する前に、一部の実施形態において、ＭＬＳは、適用されるべき重複の定義、すなわち、Ｏ１を、異なるＯＲ  Ｏ２の可能性のあるまたは実際の重複と宣言するときに、正確にＯＲ  Ｏ１の何の特性が考慮されるべきかということを判定しても良い。図７２は、少なくとも一部の実施形態に従った、機械学習サービスの重複検出器で使用され得る代替的重複定義の例を例示する。描写される実施形態において、３つの例示的な重複定義ＤＤ１、ＤＤ２、及びＤＤ３が、示されている。ＤＤ１によると、訓練データセット７２１０の任意のＯＲに含まれる全ての入力変数及び出力変数は、所与のＯＲが別の重複であるかどうかを決定するときに考慮されるべきである。ＤＤ２によると、出力変数ではないが、全ての入力変数が考慮されるべきである。ＤＤ３によると、入力変数の厳密なサブセットのみ（例えば、例示されるシナリオにおいてはＩＶ１及びＩＶ３）が、重複と見なされるＯＲに匹敵する必要がある。重複のこれら及び他の定義は、一部の実施形態において、例えば、それらの機械学習問題の意味論及び／または異なる変数の相対的重要性のそれらの理解に基づいて、ＭＬＳクライアントによって選択されても良い。例えば、訓練データセット７２１０に含まれる入力変数ＩＶ−ｋの１つが、まばらに投入され、そのため、ＯＲの大部分が、変数ＩＶ−ｋに対する値さえも含まないシナリオを考えられたい。そのようなシナリオにおいて、クライアントは、重複を判定するために使用されるべき一組の変数から、ＩＶ−ｋを除外することを望む場合がある。別のシナリオにおいて、モデルの予測は、完全に入力変数に基づくため、クライアントは、重複を考慮するとき、出力変数を含むことを望まない場合がある。
【０２８１】
描写される実施形態において、訓練セットの異なる代替の表現は、選択された重複定義に基づいて作成されても良い。観測記録が入力変数ＩＶ１、ＩＶ２、ＩＶ３、及びＩＶ４、ならびに出力変数ＯＶを含む訓練データセット７２１０に関して、全ての５つの変数は、定義ＤＤ１が使用される場合、使用されても良い（例えば、一組のハッシュ関数への組み合わされた入力として）。ＤＤ２が使用される場合、ＩＶ１、ＩＶ２、ＩＶ３、及びＩＶ４は、代替の表現を生成するために使用されても良く、かつＯＶが除外されても良い。ＤＤ３が使用される場合、ＩＶ１及びＩＶ３のみが、代替の表現のために使用されても良い。一部の実施形態において、ＭＬＳは、複数の重複定義を同時に使用することを決定しても良く、例えば、訓練データセット７２１０のそれぞれの代替の表現は、使用される各定義に従って作成されても良く、かつ定義の各々に対応する重複メトリックが得られても良い。
【０２８２】
重複分析結果７２６０Ａ、７２６０Ｂ、及び／または７２６０Ｃは、使用される定義及び代替の表現に基づいて生成されても良い。試験データセット７２２０のＯＲ７２５１は、全ての５つの変数においてＯＲ７２０１に期せずして一致する。したがって、全ての３つの結果７２６０Ａ、７２６０Ｂ、及び７２６０Ｃは、ＯＲ７２５０Ａを、いくらかの非ゼロの確率を伴う可能性のある重複として識別し得る。ＯＲ７２５２は、全ての入力変数においてにＯＲ７２０１に一致するが、出力変数においては一致しない。結果として、ＯＲ７２５０Ｂは、ＤＤ１が使用される場合ではなく、ＤＤ２またはＤＤ３が使用される場合、可能性のある重複として分類され得る。最後に、訓練セットのＯＲ７２０２とＩＶ１及びＩＶ３の同じ値を有するが、全ての他の変数において異なる、ＯＲ７２５３は、ＤＤ３が使用される場合にのみ、可能な重複として分類され得、他の定義のいずれかが使用される場合、非重複と宣言され得る。
【０２８３】
先に論じられたように、ＭＬＳは、一部の実施形態において、機械学習ジョブが並行してスケジュールされ得る、いくつかの異なるサーバを含んでも良い。図７３は、少なくとも一部の実施形態に従った、機械学習サービスでの大きなデータセットのための重複検出の並列化手法の例を例示する。描写される実施形態において、訓練データセット７３０２は、４つの区分Ｐ０、Ｐ１、Ｐ２、及びＰ３に分けられても良く、それぞれのＢｌｏｏｍフィルタ作成（ＢＦＣ）ジョブは、各区分に対応して、生成及びスケジュールされても良い。ＢＦＣジョブＪ０〜Ｊ３は、それぞれ区分Ｐ０〜Ｐ３に対してスケジュールされても良い。ジョブＪ０〜Ｊ３はまた、モデルの訓練等の他のタスクに対しても使用されても良く、様々な実施形態において、Ｂｌｏｏｍフィルタまたは他の代替の表現を作成することに必ずしも限定される必要はない。少なくとも一部の実施形態において、Ｂｌｏｏｍフィルタまたは他の代替の表現の作成は、特徴処理変換の一例と見なされても良く、先で記載されるものに類似するレシピ言語を使用して、表現の生成を要求しても良い。ＢＦＣジョブの各々は、描写されるシナリオ例において、ＢＦ０、ＢＦ１、ＢＦ２、またはＢＦ３等の区分レベルＢｌｏｏｍフィルタを生成しても良い。次いで、区分レベルフィルタは、完全なＢｌｏｏｍフィルタＢＦ−ａｌｌを生成するために、例えば、単純なＢｏｏｌｅａｎ「ｏｒ」演算を使用して、論理的に組み合わされるまたは集計されても良い。
【０２８４】
次いで、ＢＦ−ａｌｌは、描写される実施形態において、例えば、訓練データセット７３１０のそれぞれの区分Ｐ０−ｔｅｓｔ、Ｐ１−ｔｅｓｔ、及びＰ２−ｔｅｓｔに対して、３つの重複確認ジョブＪ４、Ｊ５、及びＪ６をスケジュールすることによって、並列化重複検出のために使用されても良い。一部の実施形態において、異なるＭＬＳサーバ（Ｓ０〜Ｓ７等）は、ジョブＪ０〜Ｊ６のうちの少なくとも一部のために使用されても良い。４つのジョブがＢｌｏｏｍフィルタ生成に対してスケジュールされ、３つのジョブが重複確認に対してスケジュールされる、図７３に示される実施例にあるように、一部の事例では、Ｂｌｏｏｍフィルタ生成動作の並列度（例えば、スケジュールされる異なるジョブの数、及び／または使用される異なるサーバの数）は、重複確認段階の並列度とは異なっても良い。類似の並列化手法が、例えば、Ｂｌｏｏｍフィルタを必ずしも採用しない技術のための他のタイプの重複検出アルゴリズムと共に使用されても良い。
【０２８５】
これまでに述べられる重複検出シナリオ例のほとんどにおいて、Ｂｌｏｏｍフィルタ等の代替の表現が最初に投入される第１のデータセット（訓練セット等）、及び重複に関して調べられる第２のデータセット（試験データセット等）という、２つのデータセットが考慮されている。一部の実施形態において、所与のデータセット内の重複に関して確認するために、類似の手法が、使用されても良い。図７４は、少なくとも一部の実施形態に従った、所与の機械学習データセット内の確率的重複検出の例を例示する。示されるように、データセット７４１０（例えば、訓練データセット、試験データセット、または訓練データセット及び試験データセットが導出される組み合わされたデータセットであっても良い）の処理または分析の特定のパス中、データセットの空間効率の良い表現７４３０が、徐々に投入されても良い。データセット７４１０のＫ個の記録が処理された後、例えば、矢印７４２０によって示される順序において、構築中の代替の表現７４３０は、Ｋ個の処理された記録７４２２に対応するエントリを含んでも良い。
【０２８６】
データセットの（Ｋ＋１）番目の観測記録に遭遇するとき、確率的重複検出器７０３５は、代替の表現７４３０を使用して、その記録が、同じデータセット７４１０の既に処理された観測記録の重複を表すかどうかを判定しても良い。新たに遭遇したＯＲは、先に記載される技術の種類を使用して、可能な重複として、または確認された非重複として、分類され得る。一部の実施形態において、重複検出器は、重複であることの非ゼロの確率を有するとして分類されるＯＲを追跡記録しても良く、自身に代わってデータセット７２１０が処理されているクライアントに提供されるデータセット内重複検出結果７４４４に、そのリストを含めても良い。他の実施形態において、重複検出器は、可能性のある（ｐｒｏｂａｂｌｙ）重複の数に関して、クライアントに単純に通知する等の他の措置を取っても良く、または重複検出器は、データセット７２１０からの可能性のある重複の削除を開始しても良い。
【０２８７】
図７５は、少なくとも一部の実施形態に従った、観測記録の重複検出を実装した機械学習サービスで行われ得る動作の態様を例示する流れ図である。要素７５０１に示されるように、ＭＬＳは、重複の一部の選択された定義に従って、第１のまたは目標セットの観測記録（例えば、試験データセット）が、第２のまたはソースセットの観測記録（例えば、対応する訓練データセット）に対する重複に関して確認されるべきであると判定し得る。一部の実施形態において、規定の重複定義は、ＭＬＳが、可能な重複を識別するときに、ソースセットの観測記録の全ての入力及び出力変数の値を考慮することを必要としても良い。一部の実施形態において、他の重複定義が使用されても良く、ここでは、１つまたは複数の出力変数及び／または１つまたは複数の入力変数は、重複を判定するときに除外される。一部の実施形態において、ＭＬＳのクライアントは、彼らが指定されたデータセットにおいて重複検出を行いたいかどうか、または、例えば、ＭＬＳによって実装されたプログラム的インターフェースを使用して、重複の特定の定義を示しても良い。
【０２８８】
ＭＬＳはまた、描写される実施形態において、様々なレベルの重複が識別される場合、取られるべきそれぞれの応答措置を判定しても良い（要素７５０４）。そのような措置の例には、潜在的な重複記録（すなわち、重複であることの確率が非ゼロである目標データセットのそれらの観測記録）の数もしくは割合を単純に示す、クライアントへの警報または警告メッセージを送信すること、疑わしい重複のリストを提供すること、または重複としての記録の指定と関連付けられた確実性もしくは信頼性レベルの推定値を提供することが含まれても良い。一実装例において、重複であることが疑われる個々の観測記録と関連付けられたそれぞれの信頼性レベルが、提供されても良い。一部の実施形態において、応答措置は、目標データセットから可能性のある重複を削除すること、及び／または関連付けられたモデルの予測エラーにおける、重複を削除することの影響の統計的推定値を提供することを含んでも良い。少なくとも１つの実施形態において、データセット内での潜在的なまたは可能性の高い重複の識別に応答して、ＭＬＳは、データセットの使用を伴うか、またはさもなければ、データセットと関連付けられる、機械学習ジョブを、一時停止、中止、または取り消しても良い。一部の実施形態において、異なる応答が、それぞれの重複レベルに対して選択されても良く、例えば、重複の割合が５％〜１０％ではないと推定される場合には、警報が、生成されても良く、一方で、それらが総じて目標データセットの２％未満である場合、重複は、単純に破棄されても良い。ＭＬＳクライアントは、一部の実施形態において、異なる程度の可能な重複に対して彼らが取りたい措置のタイプを指定しても良い。
【０２８９】
要素７５０７に示されるように、１つまたは複数のＭＬＳ構成要素は、例えば、モデルの訓練等のソースセットの走査を伴う他の動作と並列で、確率的重複検出のために使用することができるソースセットの代替の表現を生成しても良い（要素７５０７）。Ｂｌｏｏｍフィルタ、商フィルタ、スキップリスト、ソース記録の暗号署名のリスト、または何らかの他の空間効率の良い構造が、様々な実施形態において、代替の表現として、使用されても良い。代替の表現を生成するために、少なくとも１つの実施形態において、ＭＬＳは、最初に、ソースデータセットの観測記録のうちの少なくとも一部を再フォーマットしても良く、例えば、Ｂｌｏｏｍフィルタを生成するために使用されるハッシュ関数に、観測記録を供給する前に、一組の変数セパレータを、整合性に関して確認しても良く、トレーリング及びリーディングブランクを、テキスト変数から削除しても良く、数値変数を画一的にフォーマットしても良い。
【０２９０】
代替の表現は、一部の実施形態において、例えば、ソースデータセットを通る同じパス中に訓練されたモデルと関連付けられた付加人工物として、任意選択的にＭＬＳ人工物レポジトリ（図１に示されるレポジトリ１２０等）に記憶されても良い（要素７５１０）。所与のモデルが、それが訓練された後、数時間、数週間、または数カ月間使用されても良い、一部の実施形態において、代替の表現は、レポジトリに、選択された期間、記憶されても良い。少なくとも１つの実施形態において、ＭＬＳは、いつ代替の表現が重複検出のために最後に使用されたかを追跡記録しても良く、かつそれは、いくらかの閾値時間間隔の間、使用されていない場合、破棄されても良い。
【０２９１】
代替の表現を使用して、ＭＬＳの重複検出器は、目標データセットが完全に重複を含まないかどうか、または目標データセットの記録のうちの少なくともいくつかが、重複であることの非ゼロの確率を有するかどうかを判定しても良い（要素７５１３）。例えば、疑わしい重複及び関連する非ゼロの確率の数または割合を示す、重複メトリックが、生成されても良い。重複メトリックは、代替の表現と関連付けられたベースライン偽陽性重複予測率を考慮に入れても良い。例えば、Ｂｌｏｏｍフィルタに関して、偽陽性率は、Ｂｌｏｏｍフィルタのサイズ（ビットの数）、使用されるハッシュ関数の数及び／もしくはタイプ、ならびに／またはフィルタに投入するために使用される観測記録の数に依存しても良い。一実施形態において、重複メトリックは、例えば、Ｎｕｍ＿Ｐｒｏｂａｂｌｅ＿Ｄｕｐｌｉｃａｔｅｓ＿Ｆｏｕｎｄ（可能な重複として識別される観測記録の数）と、Ｎｕｍ＿Ｅｘｐｅｃｔｅｄ＿Ｆａｌｓｅ＿Ｐｏｓｉｔｉｖｅｓ（重複として偽って分類されることが予想される観測記録の数）との間の相違に少なくとも部分的に基づいても良い。少なくとも一部の実施形態において、代替の表現の生成、潜在的な重複に関する試験データセットの確認のいずれか、またはこれらのタスクの両方は、図７３に例示されるように、複数のＭＬＳジョブを使用して、並列または分散様式で行われても良い。重複メトリックが閾値を超過する場合、描写される実施形態において、対応する応答措置（例えば、要素７５０４に対応する動作において識別される措置のうちの１つまたは複数）が行われても良い（要素７５１６）。
【０２９２】
様々な実施形態において、図９ａ、９ｂ、１０ａ、１０ｂ、１７、２５、３２、３９、４８、５４、５５、６１、６９、及び７５の流れ図に例示されるもの以外の動作を使用して、上述の機械学習サービスの技術のうちの少なくとも一部を実装しても良いことが留意される。示される動作のうちの一部は、一部の実施形態において、実装されなくても良いか、異なる順序で、または連続的よりもむしろ並列して実装されても良い。例えば、図９ｂに関して、クライアントのリソース割り当てが枯渇しているかどうかに関する確認は、戦略が判定される前に行われる代わりに、一部の実施形態において、作業負荷戦略を判定した後に行われても良い。
【０２９３】
ユースケース
機械学習ツール及び方法論における広範囲の専門知識レベルを有する、ユーザに適合されているネットワークにアクセス可能な拡張可能な機械学習サービスを提供する、上述の技術は、多岐にわたる用途に対して有益であり得る。ほぼ全ての事業組織または政府機関は、今日、その業務の様々な側面において、データを収集することが可能であり、かつ収集されたデータの異なる構成要素と組織の目標との間の意味のある統計的及び／または因果関係の発見が、そのようなサービスによって容易になり得る。ＭＬＳのユーザは、データクレンジング、入力フィルタリング、モデルに供給することができる形式へのクレンジングされたデータの変換、重複観測の検出、またはモデル実行等の機械学習ワークフローの様々なタスクに対して必要とされる特定のリソースの設定の詳細を問題にする必要がない場合がある。異なるデータクレンジング手法、変換タイプ、変換及びモデルに対するパラメータ設定の経験の長年にわたって開発されたベストプラクティスは、例えば、ユーザが指定する必要さえない規定の設定の形態で、ＭＬＳのプログラム的インターフェース（学習しやすい及び使用しやすいＡＰＩ等）に組み込まれても良い。ＭＬＳのユーザは、様々な機械学習タスクまたは動作に対する要求を提出しても良く、これらのうちの一部は、スケジューリングを手動で管理すること、またはタスク（これらのうちの一部は、タスクの性質、もしくは関与するデータセットのサイズによっては数時間もしくは数日かかり得る）の進捗を監視することを必要とせずに、他のタスクの完了に依存しても良い。ユーザは、一部の実施形態において、モデル評価及び他の実行の対話型グラフィカル表示が提供されても良く、ユーザが、分類カットオフ等の解釈関連の設定に関して、情報に基づいた決定を下すことを可能にする。試験または評価データセットと、対応する訓練データとの間の潜在的な重複の検出は、一部の実施形態において、規定の設定により行われても良く、ＭＬＳのクライアントが、モデルの一般化能力への洞察を提供する可能性が低いデータに基づいた評価におけるリソースの無駄遣いを回避することを可能にする。
【０２９４】
多数のタイプのエンティティ（モデル、データソース、またはレシピ等）に対応する機械学習オブジェクトの論理的に集中化されたレポジトリは、複数のユーザまたは協力者が、様々なデータセットにおいて、特徴処理レシピを共有及び再使用することを可能にし得る。熟練ユーザまたはモデル開発者は、第三者またはカスタムライブラリ及び関数を登録することにより、ＭＬＳのコア機能性に追加しても良い。ＭＬＳは、改良された機密保護が必要とされるある特定のタイプの動作の分離実行をサポートしても良い。ＭＬＳは、詐欺検出、金融資産価格予測、保険分析、気象予測、地球物理学的分析、画像／動画処理、音声処理、自然言語処理、医学及び生物情報学など等の管理された及び管理されていない学習の両方を網羅する様々な問題領域に対して、使用されても良く、かつそれらに対して最適化された技術を組み込んでも良い。深さ優先決定木の枝刈り、特徴重みを効率的に枝刈りすることによる線形モデルのサイズの制限、または同時分位ビニングの実施等の特定の最適化技法は、ＭＬＳクライアントが、技術の使用さえも認識せずに、一部の事例では規定の設定により実装されても良い。訓練時間リソース使用と予測時間リソース使用との間の最適化等の他の種類の最適化に関して、クライアントは、相互に許容できる特徴処理提案を決定するように、機械学習サービスと対話しても良い。
【０２９５】
例示のコンピュータシステム
少なくとも一部の実施形態において、機械学習サービスの構成要素（ＡＰＩ要求ハンドラ、入力記録ハンドラ、レシピバリデータ、及びレシピ実行時間マネージャ、特徴処理マネージャ、計画ジェネレータ、ジョブスケジューラ、人工物レポジトリなど等の制御プレーン構成要素、ならびにモデル生成／訓練、決定木最適化の実装、モデル枝刈り及び／もしくはカテゴリーベースのサンプリング、評価結果のグラフィック生成及び／または表示などのために使用されるＭＬＳサーバ等のデータプレーン構成要素）のうちの１つまたは複数を実装するサーバは、１つまたは複数のコンピュータアクセス可能な媒体を含むか、またはそれらにアクセスするように構成される、汎用コンピュータシステムを含んでも良い。図７６は、そのような汎用コンピューティングデバイス９０００を例示する。例示される実施形態において、コンピューティングデバイス９０００は、入力／出力（Ｉ／Ｏ）インターフェース９０３０を介して、システムメモリ９０２０（非揮発性及び揮発性メモリモジュールの両方を備えても良い）に連結される、１つまたは複数のプロセッサ９０１０を含む。コンピューティングデバイス９０００は、Ｉ／Ｏインターフェース９０３０に連結されるネットワークインターフェース９０４０をさらに含む。
【０２９６】
様々な実施形態において、コンピューティングデバイス９０００は、１つのプロセッサ９０１０を含むユニプロセッサシステム、またはいくつかのプロセッサ９０１０（例えば、２つ、４つ、８つ、または別の好適な数）を含むマルチプロセッサシステムであっても良い。プロセッサ９０１０は、命令を実行することが可能な任意の好適なプロセッサであっても良い。例えば、様々な実施形態において、プロセッサ９０１０は、ｘ８６、ＰｏｗｅｒＰＣ、ＳＰＡＲＣ、もしくはＭＩＰＳ  ＩＳＡ、または任意の他の好適なＩＳＡ等の様々な命令セットアーキテクチャ（ＩＳＡ）のうちのいずれかを実装する、汎用または埋め込みプロセッサであっても良い。マルチプロセッサシステムにおいて、プロセッサ９０１０の各々は、同じＩＳＡを一般的に実装し得るが、必ずしもそうでなくても良い。一部の実装例において、グラフィックス処理ユニット（ＧＰＵ）は、従来のプロセッサの代わりに、またはそれに加えて使用されても良い。
【０２９７】
システムメモリ９０２０は、プロセッサ（複数可）９０１０によってアクセス可能な命令及びデータを記憶するように構成されても良い。少なくとも一部の実施形態において、システムメモリ９０２０は、揮発性及び非揮発性部分の両方を備えても良く、他の実施形態においては、揮発性メモリのみが、使用されても良い。様々な実施形態において、システムメモリ９０２０の揮発性部分は、静的ランダムアクセスメモリ（ＳＲＡＭ）、同時性動的ＲＡＭ、または任意の他のタイプのメモリ等の任意の好適なメモリ技術を使用して実装されても良い。システムメモリの非揮発性部分（例えば、１つまたは複数のＮＶＤＩＭＭを備え得る）に関して、一部の実施形態において、ＮＡＮＤ−フラッシュデバイスを含むフラッシュベースのメモリデバイスが、使用されても良い。少なくとも一部の実施形態において、システムメモリの非揮発性部分は、スーパーキャパシタまたは他の電力貯蔵装置（例えば、バッテリ）等の電源を含んでも良い。様々な実施形態において、メモリスタベースの抵抗ランダムアクセスメモリ（ＲｅＲＡＭ）、３次元ＮＡＮＤ技術、強誘電ＲＡＭ、磁気抵抗ＲＡＭ（ＭＲＡＭ）、または様々なタイプの相変化メモリ（ＰＣＭ）のうちのいずれかが、少なくともシステムメモリの非揮発性部分に対して、使用されても良い。例示される実施形態において、上述のそれらの方法、技術、及びデータ等の１つまたは複数の所望の機能を実装するプログラム命令及びデータは、コード９０２５及びデータ９０２６として、システムメモリ９０２０内に記憶される。
【０２９８】
一実施形態において、Ｉ／Ｏインターフェース９０３０は、ネットワークインターフェース９０４０、または様々なタイプの永続的及び／もしくは揮発性記憶装置等の他の周辺インターフェースを含む、プロセッサ９０１０、システムメモリ９０２０、及びデバイス内の任意の周辺デバイス間のＩ／Ｏトラフィックを調整するように構成されても良い。一部の実施形態において、Ｉ／Ｏインターフェース９０３０は、１つの構成要素（例えば、システムメモリ９０２０）からのデータ信号を、別の構成要素（例えば、プロセッサ９０１０）による使用に好適な形式に変換するように、任意の必要なプロトコル、タイミング、または他のデータ変換を行なっても良い。一部の実施形態において、Ｉ／Ｏインターフェース９０３０は、例えば、ペリフェラル・コンポーネント・インターコネクト（ＰＣＩ）バス規格、またはユニバーサルシリアルバス（ＵＳＢ）規格の異形等の様々なタイプの周辺バスを通じて取設されるデバイスに対するサポートを含んでも良い。一部の実施形態において、Ｉ／Ｏインターフェース９０３０の機能は、例えば、ノースブリッジ及びサウスブリッジ等の２つ以上の別個の構成要素に分割されても良い。また、一部の実施形態において、システムメモリ９０２０へのインターフェース等のＩ／Ｏインターフェース９０３０の機能性のうちのいくつかまたは全ては、プロセッサ９０１０の中へ直接組み込まれても良い。
【０２９９】
ネットワークインターフェース９０４０は、データが、コンピューティングデバイス９０００と、例えば、図１〜図７５に例示されるような他のコンピュータシステムまたはデバイス等の、ネットワーク（１つもしくは複数）９０５０に取設される他のデバイス９０６０との間で交換されることを可能にするように構成されても良い。様々な実施形態において、ネットワークインターフェース９０４０は、例えば、イーサネット（登録商標）ネットワークのタイプ等の任意の好適な有線または無線一般データネットワークを介した通信をサポートしても良い。さらに、ネットワークインターフェース９０４０は、アナログ音声ネットワークもしくはデジタルファイバ通信ネットワーク等の電気通信／テレフォニネットワークを介した、ファイバチャネルＳＡＮ等のストレージエリアネットワークを介した、または任意の他の好適なタイプのネットワーク及び／もしくはプロトコルを介した通信をサポートしても良い。
【０３００】
一部の実施形態において、システムメモリ９０２０は、対応する方法及び装置の実施形態を実装するための図１〜図７５に関して上述されるようなプログラム命令及びデータを記憶するように構成される、コンピュータアクセス可能な媒体の一実施形態であっても良い。しかしながら、他の実施形態において、プログラム命令及び／またはデータは、異なるタイプのコンピュータアクセス可能な媒体において、受信、送信、または記憶されても良い。一般的に述べると、コンピュータアクセス可能な媒体は、Ｉ／Ｏインターフェース９０３０を介してコンピューティングデバイス９０００に連結される、磁気もしくは光媒体、例えば、ディスクもしくはＤＶＤ／ＣＤ等の非一時的記憶媒体またはメモリ媒体を含んでも良い。非一時的コンピュータアクセス可能な記憶媒体はまた、システムメモリ９０２０または別のタイプのメモリとして、コンピューティングデバイス９０００の一部の実施形態に含まれても良い、ＲＡＭ（例えば、ＳＤＲＡＭ、ＤＤＲ  ＳＤＲＡＭ、ＲＤＲＡＭ、ＳＲＡＭ等）、ＲＯＭなど等の任意の揮発性または非揮発性媒体を含んでも良い。さらに、コンピュータアクセス可能な媒体は、送信媒体を含んでも良いか、あるいは、ネットワーク及び／もしくは無線リンク等の通信媒体を介して伝送される電気、電磁気、もしくはデジタル信号等が、例えば、ネットワークインターフェース９０４０を介して実装されても良い。図７６に例解されるもの等の複数のコンピューティングデバイスのうちの一部分または全ては、様々な実施形態において、記載される機能性を実装するために使用されても良く、例えば、様々な異なるデバイス及びサーバ上で実行するソフトウェア構成要素が、機能性を提供するために協働しても良い。一部の実施形態において、記載される機能性の一部分は、汎用コンピュータシステムを使用して実装されることに加えて、またはその代わりに、記憶装置、ネットワークデバイス、または特殊目的コンピュータシステムを使用して実装されても良い。「コンピューティングデバイス」という用語は、本明細書で使用される場合、少なくとも全てのこれらのタイプのデバイスを指し、これらのタイプのデバイスに限定されない。
【０３０１】
本開示の実施形態は、以下の条項の見地から、説明することができる。
１．システムであって、
プロバイダネットワークのネットワークにアクセス可能な機械学習サービスに実装された一組のプログラム的インターフェースの特定のプログラム的インターフェースを介して、エンティティタイプのインスタンスと関連付けられた特定の動作を行うためのクライアントからの第１の要求を受信することであって、前記エンティティタイプは、（ａ）機械学習モデルのために使用されるデータソース、（ｂ）特定のデータソースから計算される一組の統計、（ｃ）指定されたデータセットにおいて行われる一組の特徴処理変換動作、（ｄ）選択されたアルゴリズムを採用する機械学習モデル、（ｅ）機械学習モデルと関連付けられたエイリアス、または（ｆ）特定の機械学習モデルの結果、のうちの１つまたは複数を含む、前記受信することと、
前記機械学習サービスのジョブ待ち行列内に前記第１の要求に対応するジョブオブジェクトを挿入することと、
前記第１の要求の実行が承認されたという指標を前記クライアントに提供することと、
前記第１の要求に対して識別された第１の作業負荷分配戦略に従って、前記特定の動作を行うために使用される第１の組のプロバイダネットワークリソースを判定することと、
前記第１の要求において示される前記特定の動作の完了の前に、前記特定の動作の結果に応じた第２の動作を行うために前記クライアントから第２の要求を受信することと、
前記ジョブ待ち行列内の前記第２の要求に対応する第２のジョブオブジェクトを挿入することであって、前記第２のジョブオブジェクトは、前記特定の動作の結果に応じた前記第２の動作の依存性の指標を含む、前記挿入することと、
前記第２の動作の実行を開始する前に、前記第２の要求の実行が承認されたという第２の指標を前記クライアントに提供することと、
前記特定の動作が正常に完了したという判定に応答して、第２の組のプロバイダネットワークリソース上に前記第２の動作をスケジュールすることと、を行うように構成された、１つまたは複数のコンピューティングデバイスを備える、前記システム。
【０３０２】
２．前記特定の動作は、（ａ）インスタンスの作成、（ｂ）インスタンスの１つまたは複数の属性のそれぞれの値を得るための読み出し動作、（ｃ）インスタンスの属性の変更、（ｄ）インスタンスの削除、（ｅ）検索動作、（ｆ）実行動作のうちの１つまたは複数を含む、条項１に記載のシステム。
【０３０３】
３．前記特定の動作は、特定の機械学習モデルを実行するための前記機械学習サービスのユーザの指定されたグループによって使用可能なエイリアスの割り当てを含み、前記エイリアスは、前記特定の機械学習モデルへのポインタを含み、ユーザの指定されたグループの少なくとも一部のユーザは、前記ポインタを変更することを許可されない、条項１または２に記載のシステム。
【０３０４】
４．前記一組のプログラム的インターフェースは、表象状態転送アプリケーションプログラミングインターフェースを含む、条項１〜３のいずれかに記載のシステム。
【０３０５】
５．前記特定の動作は、特定のデータソースの作成を含み、前記１つまたは複数のコンピューティングデバイスは、
前記特定のデータソースのデータ記録の１つまたは複数の変数における特定の組の統計を、前記特定の組の統計に対する前記クライアントからの要求を受信することなく、生成することと、
前記クライアントに、前記特定の組の統計の指標を提供することと、を行うようにさらに構成される、条項１〜４のいずれかに記載のシステム。
【０３０６】
６．方法であって、
１つまたは複数のコンピューティングデバイスによって、
機械学習サービスに実装された一組のプログラム的インターフェースの特定のプログラム的インターフェースを介して、エンティティタイプのインスタンスと関連付けられた特定の動作を行うためのクライアントからの第１の要求を受信することであって、前記エンティティタイプは、（ａ）機械学習モデルを生成するために使用されるデータソース、（ｂ）指定されたデータセットにおいて行われる一組の特徴処理変換動作、（ｃ）選択されたアルゴリズムを採用する機械学習モデル、または（ｄ）機械学習モデルと関連付けられたエイリアスのうちの１つまたは複数を含む、前記受信することと、
前記機械学習サービスのジョブ待ち行列内に前記第１の要求に対応するジョブを挿入することと、
前記第１の要求によって示される前記特定の動作の完了の前に、前記特定の動作の結果に応じた第２の動作を行うための前記クライアントからの第２の要求を受信することと、
前記ジョブ待ち行列内の前記第２の要求に対応する第２のジョブオブジェクトを挿入することであって、前記第２のジョブオブジェクトは、前記特定の動作の結果に応じた前記第２の動作の依存性の指標を含む、前記挿入することと、
前記特定の動作が正常に完了したという判定に応答して、前記第２の動作をスケジュールすることと、を行うことを含む、前記方法。
【０３０７】
７．前記特定の動作は、（ａ）インスタンスの作成、（ｂ）インスタンスの１つまたは複数の属性のそれぞれの値を得るための読み出し動作、（ｃ）インスタンスの属性の変更、（ｄ）インスタンスの削除、（ｅ）検索動作、（ｆ）実行動作のうちの１つまたは複数を含む、条項６に記載の方法。
【０３０８】
８．前記特定の動作は、特定の機械学習モデルを実行するための前記機械学習サービスのユーザの指定されたグループによって使用可能なエイリアスの割り当てを含み、前記エイリアスは、前記特定の機械学習モデルへのポインタを含み、ユーザの指定されたグループの少なくとも一部のユーザは、前記ポインタを変更することを許可されない、条項６または７に記載の方法。
【０３０９】
９．前記特定の動作は、前記特定のデータソースの作成を含み、前記１つまたは複数のコンピューティングデバイスによって、
前記特定のデータソースのデータ記録の１つまたは複数の変数の特定の組の統計を、前記特定の組の統計のために前記クライアントから要求を受信することなしに、生成し、
前記クライアントに、前記特定の組の統計の指標を提供することと、を行うことをさらに含む、条項６〜８のいずれかに記載の方法。
【０３１０】
１０．前記１つまたは複数のコンピューティングデバイスによって、
前記特定の組の統計を生成するために使用される前記特定のデータソースの前記データ記録のサブセットを選択することを行うことをさらに含む、条項９に記載の方法。
【０３１１】
１１．前記１つまたは複数のコンピューティングデバイスによって，
前記第１の要求に対する作業負荷分配戦略を識別することであって、前記識別することは、（ａ）前記特定の動作のデータセットを処理するパスの数を判定すること、（ｂ）前記特定の動作のデータセットを処理するための並列化レベルを判定すること、（ｃ）前記特定の動作を終了するために使用される収束基準を判定すること、（ｄ）前記特定の動作の間に生成された中間データに対する目標耐久性レベルを判定すること、または（ｅ）前記特定の動作を実装するためのリソース容量限界を判定すること、のうちの１つまたは複数を含む、前記識別することと、を行うことをさらに含む、条項６〜９のいずれかに記載の方法。
【０３１２】
１２．前記１つまたは複数のコンピューティングデバイスによって、
特定の組のプロバイダネットワークリソースを選択して、前記第１の作業負荷戦略を実装することを行うことをさらに含む、条項１１に記載の方法。
【０３１３】
１３．前記１つまたは複数のコンピューティングデバイスによって、
前記特定の動作を行うことが前記プロバイダネットワークの外部のエンティティによって開発されたモジュールの実行を含むという判定に応答して、前記特定の動作のために使用される少なくとも１つのリソースを選択する特定のセキュリティコンテナを識別することを行うことをさらに含む、条項６〜９または１１のいずれかに記載の方法。
【０３１４】
１４．前記１つまたは複数のコンピューティングデバイスによって、
前記クライアントに、前記プロバイダネットワーク外のプラットフォームでの実行のための特定の機械学習モデルの実行可能なバージョンを提供することを行うことをさらに含む、条項６〜９、１１、または１３のいずれかに記載の方法。
【０３１５】
１５．前記１つまたは複数のコンピューティングデバイスによって、
前記特定の動作をスケジュールする前に、前記クライアントのリソース割り当てが枯渇していないことを検証することを行うことをさらに含む、条項６〜９、１１、または１３〜１４のいずれかに記載の方法。
【０３１６】
１６．１つまたは複数のプロセッサ上で実行されたとき、
プロバイダネットワークのネットワークにアクセス可能な機械学習サービスに実装された一組のプログラム的インターフェースの特定のプログラム的インターフェースを介して、エンティティタイプのインスタンスと関連付けられた特定の動作を行うためのクライアントからの第１の要求を受信することであって、前記エンティティタイプは、（ａ）機械学習モデルを生成するために使用されるデータソース、（ｂ）特定のデータソースから計算される一組の統計、（ｃ）選択されたアルゴリズムを採用する機械学習モデル、または（ｄ）機械学習モデルと関連付けられたエイリアス、のうちの１つまたは複数を含む、前記受信することと、
前記機械学習サービスのジョブ待ち行列内に前記第１の要求に対応するジョブを挿入することと、
前記第１の要求において示される前記特定の動作の完了の前に、前記特定の動作の結果に応じた第２の動作を行うために前記クライアントから第２の要求を受信することと、
前記ジョブ待ち行列内の前記第２の要求に対応する第２のジョブオブジェクトを挿入することであって、前記第２のジョブオブジェクトは、前記特定の動作の結果に応じた前記第２の動作の依存性の指標を含む、前記挿入することと、を行う、プログラム命令を記憶する、非一時的コンピュータアクセス可能記憶媒体。
【０３１７】
１７．前記特定の動作は、特定の機械学習モデルを実行するための前記機械学習サービスのユーザの指定されたグループによって使用可能なエイリアスの割り当てを含み、前記エイリアスは、前記特定の機械学習モデルへのポインタを含み、前記ユーザの指定されたグループの少なくとも一部のユーザは、前記ポインタを変更することを許可されない、条項１６に記載の非一時的コンピュータアクセス可能記憶媒体。
【０３１８】
１８．前記特定の動作は、特定のデータソースの作成を含み、前記命令は、前記１つまたは複数のプロセッサで実行されたとき、
前記特定のデータソースのデータ記録の１つまたは複数の変数における特定の組の統計を、前記特定の組の統計に対する前記クライアントからの要求を受信することなく、生成することと、
前記クライアントに、前記特定の組の統計の指標を提供することと、を行うようにさらに構成される、条項１６または１７に記載の非一時的コンピュータアクセス可能記憶媒体。
【０３１９】
１９．１つまたは複数の変数は、複数の変数を含み、前記命令は、前記１つまたは複数のプロセッサで実行されたとき、
前記複数の変数の相関分析に少なくとも部分的に基づいて、機械学習モデルへの入力として第２の組の変数に優先して使用される第１の組の候補変数を識別し、
前記クライアントに前記第１の組の変数の指標を提供する、条項１８に記載の非一時的コンピュータアクセス可能記憶媒体。
【０３２０】
２０．前記特定の動作は、オンラインモードの特定の機械学習モデルのインスタンス化を含み、前記命令は、前記１つまたは複数のプロセッサ上で実行されたとき、
前記クライアントによって示される予想される作業負荷レベルに少なくとも部分的に基づいて、オンラインモードの前記特定の機械学習モデルのために使用される一組のプロバイダネットワークリソースを選択する、条項１６〜１８のいずれかに記載の非一時的コンピュータアクセス可能記憶媒体。
【０３２１】
２１．前記命令は、前記１つまたは複数のプロセッサで実行されたとき、
前記サービスの前記クライアントから、特定のデータソースの１つまたは複数のデータ記録を解読して、前記特定の動作を行うために使用される証明書を受信する、条項１６〜１８、または２０のいずれかに記載の非一時的コンピュータアクセス可能記憶媒体。
【０３２２】
２２．前記命令は、前記１つまたは複数のプロセッサで実行されたとき、
前記一組のプログラム的インターフェースの冪等プログラム的インターフェースを介して、第３の動作を行うための前記クライアントからの第３の要求を受信し、
（ａ）前記第３の要求内で示されたインスタンス識別子、（ｂ）前記クライアントの識別子、または（ｃ）前記第３の要求の入力パラメータの表現のうちの１つまたは複数に基づいて、前記第３の要求が先に提出された要求の重複かどうかを判定し、
前記第３の要求が先に提出された要求の重複であるという判定に応答して、前記ジョブ待ち行列内の前記第３の要求に対応する追加のジョブオブジェクトを挿入することなく、前記クライアントに、前記第３の要求の成功の指標を提供する、条項１６〜１８、または２０〜２１のいずれかに記載の非一時的コンピュータアクセス可能記憶媒体。
【０３２３】
本開示の実施形態は、以下の条項の見地からも、説明することができる。
１．システムであって、
プロバイダネットワークのネットワークにアクセス可能な機械学習サービスで、（ａ）変数の１つまたは複数のグループを指示するグループ定義セクションであって、前記１つまたは複数のグループの個々は、少なくとも１つの共通変換動作が適用される複数の変数を含む、前記グループ定義セクション、（ｂ）１つまたは複数の中間変数を定義する割り当てセクション、（ｃ）レポジトリに記憶されている１つまたは複数の機械学習人工物へのそれぞれの参照を指示する依存性セクション、または（ｄ）前記グループ定義セクション、前記割り当てセクション、もしくは前記依存性セクションで指示された少なくとも１つのエンティティに適用される１つまたは複数の変換動作を指示する出力セクション、のうちの１つまたは複数を含むレシピのテキスト表現を受信することと、
（ａ）前記機械学習サービスによって定義されている一組の構文規則、及び（ｂ）前記機械学習サービスによってサポートされている変換動作の種類の一組のライブラリ関数定義に従って前記レシピの前記テキスト表現を検証することと、
前記レシピの実行可能な表現を生成することと、
実行可能な表現を前記レポジトリに記憶することと、
前記レシピが特定のデータセットに適用されることを判定することと、
前記特定のデータセットが前記レシピの実行時間承認基準を満たしていることを検証することと、
１つまたは複数の選択されたプロバイダネットワークリソースを使用して、前記１つまたは複数の変換動作の特定の変換動作を特定のデータセットに適用することと、を行うように構成された、１つまたは複数のコンピューティングデバイスを備える、前記システム。
【０３２４】
２．前記１つまたは複数のコンピューティングデバイスは、
前記レシピを異なるデータセットに適用するための要求を受信することと、
前記異なるデータセットが前記レシピの実行時間承認基準を満たしていることを検証することと、
前記特定の変換動作を前記異なるデータセットに適用することと、を行うようにさらに構成される、条項１に記載のシステム。
【０３２５】
３．前記１つまたは複数のコンピューティングデバイスは、
プログラム的インターフェースを介してクライアントに、複数の機械学習問題領域の個々に適用可能なそれぞれの組の１つまたは複数のレシピの指標を提供するようにさらに構成される、条項１または２に記載のシステム。
【０３２６】
４．前記テキスト表現は、前記特定の変換動作の結果を使用して実行される特定の機械学習モデルの指標を含む、条項１〜３のいずれかに記載のシステム。
【０３２７】
５．前記１つまたは複数のコンピューティングデバイスは、
自動パラメータ調整が前記レシピに対して行われるという指標に応答して、前記１つまたは複数の変換動作の異なる変換動作に適用可能な複数のパラメータ値オプションを判定することと、
前記機械学習サービスによって、前記複数のパラメータ値オプションの個々を使用して、前記異なる変換動作のそれぞれの結果を生成することと、
前記それぞれの結果の分析に基づいて前記機械学習サービスによって、パラメータ承認基準を満たす前記複数のパラメータ値オプションの少なくとも１つの候補パラメータ値の指標を提供することと、を行うようにさらに構成される、条項１〜４のいずれかに記載のシステム。
【０３２８】
６．方法であって、
１つまたは複数のコンピューティングデバイスによって、
ネットワークにアクセス可能な機械学習サービスで、（ａ）変数の１つまたは複数のグループを指示するグループ定義セクションであって、１つまたは複数のグループの個々が少なくとも１つの共通変換動作が適用される複数のデータセット変数を含む、前記グループ定義セクション、及び（ｂ）（ｉ）前記グループ定義セクションまたは（ｉｉ）入力データセットのうちの１つまたは複数で指示された少なくとも１つのエンティティに適用される１つまたは複数の変換動作を指示する出力セクション、のうちの１つまたは複数を含む、レシピの第１の表現を受信することと、
前記機械学習サービスによってサポートされている変換動作の種類の少なくとも一組のライブラリ関数定義に従って、前記レシピの前記第１の表現を検証することと、
前記レシピの実行可能な表現を生成することと、
前記レシピが特定のデータセットに適用されることを判定することと、
前記特定のデータセットが実行時間承認基準を満たしていることを検証することと、
１つまたは複数の選択されたプロバイダネットワークリソースを使用して、前記１つまたは複数の変換動作の特定の変換動作を前記特定のデータセットに適用することと、を行うことを含む、前記方法。
【０３２９】
７．前記第１の表現は、テキスト表現または二進表現である、条項６に記載の方法。
【０３３０】
８．前記第１の表現は、前記機械学習サービスから得られたツールを使用して前記機械学習サービスのクライアントによって生成される、条項６または７に記載の方法。
【０３３１】
９．前記特定のデータセットの入力データ記録の少なくとも１つの変数のデータ型は、（ａ）テキスト、（ｂ）数値データ型、（ｃ）Ｂｏｏｌｅａｎ、（ｄ）２値データ型、（ｄ）カテゴリーデータ型、（ｅ）画像処理データ型、（ｆ）音声処理データ型、（ｇ）生物情報学データ型、または（ｈ）構造化データ型のうちの１つまたは複数を含む、条項６〜８のいずれかに記載の方法。
【０３３２】
１０．前記データ型は、特定の構造化データ型を含み、前記１つまたは複数のコンピューティングデバイスによって、
前記特定の構造化データ型に少なくとも部分的に基づいて、前記特定の変換動作のために使用される特定のライブラリ関数を選択することを行うことをさらに含む、条項９に記載の方法。
【０３３３】
１１．前記第１の表現は、（ａ）入力データセット変数、または（ｂ）前記グループ定義セクションで定義されるエンティティのうちの１つまたは複数の点から中間変数を定義する割り当てセクションを含み、前記中間変数は、前記出力セクションで参照される、条項６〜９のいずれかに記載の方法。
【０３３４】
１２．前記第１の表現は、前記機械学習サービスのレポジトリに記憶されている特定の人工物への参照を指示する依存性セクションを含み、前記特定の変換動作は、前記特定の人工物の出力を入力として実行する、条項６〜９または１１のいずれかに記載の方法。
【０３３５】
１３．前記特定の人工物は、（ａ）機械学習モデル、（ｂ）異なるレシピ、（ｃ）統計セット、または（ｄ）機械学習モデルへの参照を含むエイリアス、のうちの１つまたは複数を含む、条項１２に記載の方法。
【０３３６】
１４．前記特定の変換動作は、ユーザ定義関数を利用し、前記１つまたは複数のコンピューティングデバイスによって、
前記第１の表現の前記受信の前にクライアントから前記機械学習サービスで、前記ユーザ定義関数を実行するモジュールの指標を受信することを行うことをさらに含み、前記モジュールは、テキスト形式またはバイナリ形式である、条項６〜９または１１〜１２のいずれかに記載の方法。
【０３３７】
１５．前記１つまたは複数のコンピューティングデバイスによって、
前記機械学習サービスによって定義された一組の構文規則に従って、前記第１の表現を検証することを行うことをさらに含む、条項６〜９、１１〜１２または１４のいずれかに記載の方法。
【０３３８】
１６．前記１つまたは複数のコンピューティングデバイスによって、
前記レシピを異なるデータセットに適用するための要求を受信することと、
前記異なるデータセットが前記レシピの実行時間承認基準を満たしていることを検証することと、
前記特定の変換動作を前記異なるデータセットに適用することと、を行うことをさらに含む、条項６〜９、１１〜１２、または１４〜１５、のいずれかに記載の方法。
【０３３９】
１７．前記１つまたは複数のコンピューティングデバイスによって、
プログラム的インターフェースを介してクライアントに、複数の機械学習問題領域の個々に適用可能なそれぞれの組の１つまたは複数のレシピの指標を提供することを行うことをさらに含む、条項６〜９、１１〜１２、または１４〜１６のいずれかに記載の方法。
【０３４０】
１８．前記第１の表現は、前記特定の変換動作の結果を使用して実行される特定の機械学習モデルの指標を含む、条項６〜９、１１〜１２、または１４〜１７のいずれかに記載の方法。
【０３４１】
１９．前記１つまたは複数のコンピューティングデバイスによって、
前記機械学習サービスによって、自動パラメータ調整が前記レシピに対して行われるという指標に応答して、前記１つまたは複数の変換動作の異なる変換動作に適用可能な複数のパラメータ値オプションを判定することと、
前記機械学習サービスによって、前記複数のパラメータ値オプションの個々を使用して、前記異なる変換動作のそれぞれの結果を生成することと、を行うことをさらに含む、条項６〜９、１１〜１２、または１４〜１８のいずれかに記載の方法。
【０３４２】
２０．前記１つまたは複数のコンピューティングデバイスによって、
前記機械学習サービスによって、前記特定のパラメータ値に対応する特定の結果セットに少なくとも部分的に基づいて、前記複数のパラメータ値オプションの特定のパラメータ値を、許容できる値として選択することを行うことをさらに含む、条項１９に記載の方法。
【０３４３】
２１．前記１つまたは複数のコンピューティングデバイスによって、
前記機械学習サービスによってクライアントに、前記それぞれの結果の分析に基づいて、少なくとも前記複数のパラメータ値オプションのサブセットを候補値として示すことと、
前記機械学習サービスで前記クライアントから、前記異なる変換動作のために使用されるサブセットの特定のパラメータ値の指標を受信することと、を行うことをさらに含む、条項１９または２０に記載の方法。
【０３４４】
２２．前記複数のパラメータ値オプションは、（ａ）言語処理データセットから導入されるｎ−ｇｒａｍのそれぞれの長さ、（ｂ）特定の変数のそれぞれの分位ビン境界、（ｃ）画像処理パラメータ値、（ｄ）データセットが分類されるいくつかのクラスタ、（ｅ）クラスタ境界閾値の値、または（ｆ）テキスト文書のベクトル表現の次元値、のうちの１つまたは複数を含む、条項１９〜２１のいずれかに記載の方法。
【０３４５】
２３．１つまたは複数のプロセッサ上で実行されたとき、
機械学習サービスで、（ａ）変数の１つまたは複数のグループを指示するグループ定義セクションであって、１つまたは複数のグループの個々が少なくとも１つの共通変換動作が適用される複数のデータセット変数を含む、前記グループ定義セクション、または（ｂ）（ｉ）前記グループ定義セクションまたは（ｉｉ）レシピの入力データセット、のうちの１つまたは複数で指示された少なくとも１つのエンティティに適用される１つまたは複数の変換動作を指示する出力セクション、のうちの１つまたは複数を含む、レシピの第１の表現を判定することと、
前記機械学習サービスによってサポートされている変換動作の種類の少なくとも一組のライブラリ関数定義に従って、前記レシピの第１の表現を検証することと、
前記レシピの実行可能な表現を生成することと、
前記レシピが特定のデータセットに提供されるという判定に応答して、１つまたは複数の選択されたプロバイダネットワークリソースを使用して、前記特定のデータセットへの前記１つまたは複数の変換動作の特定の変換動作を実行する、非一時的コンピュータアクセス可能記憶媒体。
【０３４６】
２４．前記第１の表現は、（ａ）入力データセット変数、または（ｂ）前記グループ定義セクションで定義されるエンティティ、のうちの１つまたは複数の点から中間変数を定義する割り当てセクションを含み、前記中間変数は、出力セクションで参照される、条項２３に記載の非一時的コンピュータアクセス可能記憶媒体。
【０３４７】
２５．前記第１の表現は、前記機械学習サービスのレポジトリに記憶されている特定の人工物への参照を指示する依存性セクションを含み、前記特定の変換動作は、前記特定の人工物の出力を入力として実行する、条項２３または２４に記載の非一時的コンピュータアクセス可能記憶媒体。
【０３４８】
２６．前記特定の人工物は、（ａ）機械学習モデル、（ｂ）異なるレシピ、（ｃ）エイリアス、または（ｄ）一組の統計、のうちの１つまたは複数を含む、条項２３〜２５のいずれかに記載の非一時的コンピュータアクセス可能記憶媒体。
【０３４９】
２７．前記一組のライブラリ関数定義は、（ａ）分位ビン関数、（ｂ）カルテシアン積関数、（ｃ）ｂｉ−ｇｒａｍ関数、（ｄ）ｎ−ｇｒａｍ関数、（ｅ）直交スパースｂｉｇｒａｍ関数、（ｆ）カレンダ関数、（ｇ）画像処理関数、（ｈ）音声処理関数、（ｉ）生物情報学処理関数、または（ｊ）自然言語処理関数、のうちの１つまたは複数を含む、条項２３〜２６のいずれかに記載の非一時的コンピュータアクセス可能記憶媒体。
【０３５０】
本開示の実施形態は、以下の条項の見地からも、説明することができる。
１．システムであって、
プロバイダネットワークの機械学習サービスのプログラム的インターフェースを介して、１つまたは複数のファイルソースから特定のデータセットの観測記録を抽出するための要求を受信することであって、前記特定のデータセットのサイズは、前記機械学習サービスの第１のサーバの、前記特定のデータセットに対して利用可能な第１のメモリ部分のサイズを超える、前記受信することと、
前記特定のデータセットをサイズが前記第１のメモリ部分を超えない特定の連続的チャンクを含む、複数の連続的チャンクにマッピングすることと、
前記要求の中で指示されたフィルタリング記述子に少なくとも部分的に基づいて、前記複数の連続的チャンクに対してチャンクレベルフィルタリング動作のシーケンスを行うためのフィルタリング計画を生成することであって、前記フィルタリング動作のシーケンスの個々の動作の種類は、（ａ）サンプリング、（ｂ）入れ換え、（ｃ）分割、または（ｄ）並列計算のための区分のうちの１つまたは複数を含み、前記フィルタリング計画は、第１のチャンクレベルフィルタリング動作、続いて第２のチャンクレベルフィルタリング動作を含む、前記生成することと、
前記第１のチャンクレベルフィルタリング動作を実行するために、少なくとも前記複数の連続的チャンクのサブセットが記憶される１つまたは複数の永続的記憶装置に向けられる少なくとも一組の読み出しを実行することであって、前記一組の読み出しの後で、前記第１のメモリ部分が、少なくとも前記特定の連続的チャンクを含む、前記実行することと、
前記１つまたは複数の永続的記憶装置から再読み出しをせず、かつ前記特定の連続的チャンクをコピーせずに、前記第１のチャンクレベルフィルタリング動作のインメモリ結果セットに対して前記第２のチャンクレベルフィルタリング動作を実行することと、
前記チャンクレベルフィルタリング動作のシーケンスの出力から複数の観測記録を抽出することと、を行うように構成された、１つまたは複数のコンピューティングデバイスを備える、前記システム。
【０３５１】
２．前記１つまたは複数のコンピューティングデバイスは、
前記特定の連続的チャンク内で識別された一組の観測記録に対してチャンク内フィルタリング動作を実行するようにさらに構成される、条項１に記載のシステム。
【０３５２】
３．前記１つまたは複数のコンピューティングデバイスは、
前記要求内で指示された１つまたは複数の復元パラメータに従って、前記特定の連続的チャンクのコンテンツを復元するようにさらに構成される、条項１または２に記載のシステム。
【０３５３】
４．前記１つまたは複数のコンピューティングデバイスは、
前記要求内で指示された１つまたは複数の解読パラメータに従って、前記特定の連続的チャンクのコンテンツを解読するようにさらに構成される、条項１〜３のいずれかに記載のシステム。
【０３５４】
５．前記１つまたは複数のコンピューティングデバイスは、
（ａ）特徴処理レシピ、または（ｂ）機械学習モデルのうちの１つまたは複数の実行のための入力として、前記シーケンスから得られた複数の観測記録を提供するようにさらに構成される、条項１〜４のいずれかに記載のシステム。
【０３５５】
６．方法であって、
１つまたは複数のコンピューティングデバイスで、
機械学習サービスで、１つまたは複数のデータソースから特定のデータセットの観測記録を抽出するための要求を受信することと、
前記特定のデータセットを特定のチャンクを含む複数のチャンクにマッピングすることと、
前記複数のチャンクに対してチャンクレベルフィルタリング動作のシーケンスを行うためのフィルタリング計画を生成することであって、フィルタリング動作の前記シーケンスの個々の動作の種類は、（ａ）サンプリング、（ｂ）入れ換え、（ｃ）分割、または（ｄ）並列計算のための区分のうちの１つまたは複数を含み、前記フィルタリング計画は、第１のチャンクレベルフィルタリング動作、続いて第２のチャンクレベルフィルタリング動作を含む、前記生成することと、
前記第１のチャンクレベルフィルタリング動作を実行するために、少なくとも前記複数のチャンクのサブセットが記憶される１つまたは複数の永続的記憶装置に向けられる一組のデータ転送を開始することであって、前記一組のデータ転送の後で、前記第１のメモリ部分が、少なくとも前記特定のチャンクを含む、前記開始することと、
前記第１のチャンクレベルフィルタリング動作のインメモリ結果セットに対して前記第２のチャンクレベルフィルタリング動作を実行することと、
チャンクレベルフィルタリング動作の前記シーケンスの出力から複数の観測記録を抽出することと、を行うことを含む、前記方法。
【０３５６】
７．前記１つまたは複数のデータソースは、特定の記憶オブジェクトを含む１つまたは複数の記憶オブジェクトを含み、前記複数のチャンク内への、前記特定のデータセットの前記マッピングは、チャンクサイズパラメータに少なくとも部分的に基づいて、前記特定の記憶オブジェクト内の候補オフセットを前記特定のチャンクの候補終了境界として判定することを含み、前記１つまたは複数のコンピューティングデバイスによって、
前記特定のチャンクの終了境界として、前記特定の記憶オブジェクト内の特定の観測記録の終了境界を表す特定の区切り記号を選択することをさらに含み、前記特定の区切り記号は、前記候補オフセットとは異なるオフセットに配置される、条項６に記載の方法。
【０３５７】
８．前記終了境界としての前記特定の区切り記号の前記選択は、
前記特定の記憶オブジェクトの連続読み出しにおいてオフセットを増加させるために、前記特定のチャンクの終了境界として前記候補オフセットより高いオフセットを有する第１の区切り記号を識別することを含む、条項７に記載の方法。
【０３５８】
９．前記１つまたは複数のデータソースは、（ａ）シングルホストファイルシステム、（ｂ）分散ファイルシステム、（ｃ）ネットワークにアクセス可能なストレージサービスからウェブサービスインターフェースを介してアクセス可能な記憶オブジェクト、（ｄ）ブロックレベルデバイスインターフェースを提示する記憶容量、または（ｅ）データベース、のうちの１つまたは複数を含む、条項６または７に記載の方法。
【０３５９】
１０．前記要求は、前記機械学習サービスのアプリケーションプログラミングインターフェースに従ってフォーマットされる、条項６〜７または９いずれかに記載の方法。
【０３６０】
１１．前記１つまたは複数のコンピューティングデバイスによって、
前記要求内で指示された１つまたは複数の復元パラメータに従って前記特定のチャンクのコンテンツを復元することを行うことをさらに含む、条項６〜７または９〜１０のいずれかに記載の方法。
【０３６１】
１２．前記１つまたは複数のコンピューティングデバイスによって、
前記要求内で指示された１つまたは複数の解読パラメータに従って前記特定のチャンクのコンテンツを解読することを行うことをさらに含む、条項６〜７または９〜１１のいずれかに記載の方法。
【０３６２】
１３．前記複数の観測記録は、第１の記録長さの第１の観測記録、及び異なる記録長さの第２の観測記録を含む、条項６〜７または９〜１２のいずれかに記載の方法。
【０３６３】
１４．前記１つまたは複数のコンピューティングデバイスによって、
前記特定のチャンク内で識別された一組の観測記録に対してチャンク内フィルタリング動作を実行することを行うことをさらに含む、条項６〜７または９〜１３のいずれかに記載の方法。
【０３６４】
１５．前記１つまたは複数のコンピューティングデバイスによって、
前記機械学習サービスにスケジュールされるジョブのコレクション内に前記第１のチャンクレベルフィルタリング動作を表す第１のジョブオブジェクトを挿入することと、
前記第１のチャンクレベルフィルタリング動作の完了の前に、前記コレクション内に前記第２のチャンクレベルフィルタリング動作を表す第２のジョブオブジェクトを挿入することと、を行うことをさらに含む、条項６〜７または９〜１４のいずれかに記載の方法。
【０３６５】
１６．前記１つまたは複数のコンピューティングデバイスによって、
（ａ）特徴処理レシピまたは（ｂ）機械学習モデルのうちの１つまたは複数の実行のための入力として、前記シーケンスの出力から抽出された前記複数の観測記録を提供することを行うことをさらに含む、条項６〜７または９〜１５のいずれかに記載の方法。
【０３６６】
１７．１つまたは複数のプロセッサ上で実行されたとき、
機械学習サービスの１つまたは複数のデータソースから特定のデータセットの観測記録を抽出するための要求の受信に応答して、前記特定のデータセットの複数のチャンクに対する第１のチャンクレベル動作を含む１つまたは複数のチャンクレベル動作を行うための計画を生成することであって、前記第１のチャンクレベル動作の動作の種類は、（ａ）サンプリング、（ｂ）入れ換え、（ｃ）分割、または（ｄ）並列計算のための区分、のうちの１つまたは複数を含む、前記生成することと、
前記第１のチャンクレベル動作を実行するために、少なくとも前記複数のチャンクのサブセットが記憶される１つまたは複数の永続的記憶装置に向けられる一組のデータ転送を開始することであって、前記一組のデータ転送の後で、前記機械学習サービスの特定のサーバの第１のメモリ部分が、少なくとも前記複数のチャンクの特定のチャンクを含む、前記開始することと、
前記第１のチャンクレベル動作の結果セットに対して第２の動作を実行することと、を行い、前記第２の動作は、（ａ）別のフィルタリング動作、（ｂ）特徴処理動作、または（ｃ）集約動作、のうちの１つまたは複数を含む、プログラム命令を記憶する、非一時的コンピュータアクセス可能記憶媒体。
【０３６７】
１８．前記特定のデータセットは、（ａ）シングルホストファイルシステム、（ｂ）分散ファイルシステム、（ｃ）ネットワークにアクセス可能なストレージサービスからウェブサービスインターフェースを介してアクセス可能な記憶オブジェクト、（ｄ）ブロックレベルデバイスインターフェースを提示する記憶容量、または（ｅ）データベース、のうちの１つまたは複数のコンテンツを含む、条項１７に記載の非一時的コンピュータアクセス可能記憶媒体。
【０３６８】
１９．前記第２の動作は、チャンク内フィルタリング動作を含む、条項１７または１８に記載の非一時的コンピュータアクセス可能記憶媒体。
【０３６９】
２０．前記第２の動作は、前記特定のチャンク内で識別された第１の観測記録、及び前記複数のチャンクの異なるチャンク内で識別された第２の観測記録を含む複数の観測記録に対して行われるチャンク間フィルタリング動作を含む、条項１７〜１９のいずれかに記載の非一時的コンピュータアクセス可能記憶媒体。
【０３７０】
２１．前記第２の動作は、前記特定のチャンクを異なる永続的記憶装置にコピーすることなく、かつ１つまたは複数の永続的記憶装置からの前記特定のチャンクのコンテンツを再読み出しすることなく行われる、インメモリ動作である、条項１７〜２０のいずれかに記載の非一時的コンピュータアクセス可能記憶媒体。
【０３７１】
２２．前記第１のチャンクレベル動作の動作の種類は、並列計算のための区分であり、前記第１のチャンクレベル動作は、第１の訓練動作及び第２の訓練動作を含む複数のモデル訓練動作を含み、前記第１の訓練動作の実行持続時間は、少なくとも部分的に前記第２の訓練動作の実行持続時間と重複する、条項１７〜２１のいずれかに記載の非一時的コンピュータアクセス可能記憶媒体。
【０３７２】
本開示の実施形態は、以下の条項の見地からも、説明することができる。
１．システムであって、
機械学習モデルの１回以上の訓練／評価反復のために使用される整合性メタデータを生成することであって、前記整合性メタデータは、少なくとも擬似乱数ソースの特定の初期化パラメータ値を含む、前記生成することと、
前記機械学習モデルの特定のデータセットのアドレス空間を、第１の複数の観測記録を含む第１のチャンク、及び第２の複数の観測記録を含む第２のチャンクを含む複数のチャンクに細分することと、
１つまたは複数の永続的記憶装置から、前記第１のチャンクの観測記録を第１のサーバのメモリ内へ、及び前記第２のチャンクの観測記録を第２のサーバのメモリ内へ取得することと、
第１の組の擬似乱数を使用して、前記複数のチャンクから第１の訓練セットを選択することであって、前記第１の訓練セットは、前記第１のチャンクの少なくとも一部分を含み、前記第１の訓練セットの観測記録は、１回以上の訓練／評価反復の第１の訓練／評価反復の間に前記機械学習モデルを訓練するために使用され、前記第１の組の擬似乱数は、整合性メタデータを使用して得られる、前記選択することと、
第２の組の擬似乱数を使用して、前記複数のチャンクから第１の試験セットを選択することであって、前記第１の試験セットは、前記第２のチャンクの少なくとも一部分を含み、前記第１の試験セットの観測記録は、前記第１の訓練／評価反復の間に前記機械学習モデルを評価するために使用され、前記第２の組の擬似乱数は、前記整合性メタデータを使用して得られる、前記選択することと、を行うように構成された、１つまたは複数のコンピューティングデバイスを備える、前記システム。
【０３７３】
２．前記１つまたは複数のコンピューティングデバイスは、
機械学習サービスにスケジュールされるジョブのコレクション内に、前記第１の訓練セットの前記選択に対応する第１のジョブを、及びそのコレクション内に、前記第１の試験セットの選択に対応する第２のジョブを挿入することと、
前記第１のジョブに対して前記第２のジョブの非同期的実行をスケジュールすることと、を行うようにさらに構成される、条項１に記載のシステム。
【０３７４】
３．前記１つまたは複数のコンピューティングデバイスは、
機械学習サービスのクライアントから、前記１回以上の訓練／評価反復に対する要求を受信するように構成され、前記要求は、前記整合性メタデータの少なくとも一部分を指示する、条項１または２に記載のシステム。
【０３７５】
４．前記整合性メタデータは、前記特定のデータセットの１つまたは複数の観測記録が記憶されるデータオブジェクトの識別子に少なくとも部分的に基づく、条項１〜３のいずれかに記載のシステム。
【０３７６】
５．前記１つまたは複数のコンピューティングデバイスは、
前記第１の訓練セットの前記観測記録を前記機械学習モデルへの入力として提示する前に、前記第１のチャンクの観測記録を再順序付けするようにさらに構成される、条項１〜４のいずれかに記載のシステム。
【０３７７】
６．方法であって、
機械学習モデルの１回以上の訓練／評価反復のために使用される整合性メタデータを判定することであって、前記整合性メタデータは、少なくとも擬似乱数ソースの特定のパラメータ値を含む、前記判定することと、
前記機械学習モデルの特定のデータセットのアドレス空間を、第１の複数の観測記録を含む第１のチャンク、及び第２の複数の観測記録を含む第２のチャンクを含む複数のチャンクに細分することと、
前記整合性メタデータを使用して、前記複数のチャンクから第１の訓練セットを選択することであって、前記第１の訓練セットは、前記第１のチャンクの少なくとも一部分を含み、前記第１の訓練セットの観測記録は、前記１回以上の訓練／評価反復の第１の訓練／評価反復の間に前記機械学習モデルを訓練するために使用される、前記選択することと、
前記整合性メタデータを使用して、前記複数のチャンクから第１の試験セットを選択することであって、前記第１の試験セットは、前記第２のチャンクの少なくとも一部分を含み、前記第１の試験セットの観測記録は、前記第１の訓練／評価反復の間に前記機械学習モデルを評価するために使用される、前記選択することと、を行うように構成された１つまたは複数のコンピューティングデバイスを含む、前記方法。
【０３７８】
７．前記１つまたは複数のコンピューティングデバイスによって、
前記第１の訓練／評価反復の間の前記機械学習モデルの訓練の前に、永続的記憶装置から第１のサーバのメモリ内に、少なくとも前記第１のチャンクを取得することと、
前記１回以上の訓練／評価反復の異なる訓練／評価反復のために、前記第１のチャンクを前記第１のサーバのメモリから異なる位置にコピーせずに、（ａ）異なる訓練セット、及び（ｂ）異なる試験セットを選択することと、を行うことをさらに含む、条項６に記載の方法。
【０３７９】
８．前記１つまたは複数のコンピューティングデバイスによって、
機械学習サービスのクライアントから、前記１回以上の訓練／評価反復に対する要求を受信することを行うことをさらに含み、前記要求は、前記整合性メタデータの少なくとも一部分を指示する、条項６または７に記載の方法。
【０３８０】
９．前記要求は、プロバイダネットワークの機械学習サービスによって実装されている特定のプログラム的インターフェースに従ってフォーマットされる、条項８に記載の方法。
【０３８１】
１０．前記整合性メタデータは、前記特定のデータセットの１つまたは複数の観測記録が記憶されるデータオブジェクトの識別子に少なくとも部分的に基づく、条項６〜８のいずれかに記載の方法。
【０３８２】
１１．前記第１の訓練セットは、前記複数のチャンクの第３のチャンクの少なくとも１つの観測記録を含み、前記第１の試験セットは、前記第３のチャンクの少なくとも１つの観測記録を含む、条項６〜８または１０のいずれかに記載の方法。
【０３８３】
１２．前記１つまたは複数のコンピューティングデバイスによって、
前記第１の訓練セットの前記観測記録を前記機械学習モデルへの入力として提示する前に、前記第１のチャンクの観測記録を入れ換えることをさらに含む、条項６〜８または１０〜１１のいずれかに記載の方法。
【０３８４】
１３．前記１つまたは複数のコンピューティングデバイスによって、
（ａ）特定のサーバの利用可能なメモリのサイズ、または（ｂ）クライアント要求、のうちの１つまたは複数に少なくとも部分的に基づいて、前記アドレス空間が細分されるいくつかのチャンクを判定することを行うことをさらに含む、条項６〜８または１０〜１２のいずれかに記載の方法。
【０３８５】
１４．前記特定のデータセットは、複数のデータオブジェクト内に記憶され、
前記アドレス空間を細分する前に、前記複数のデータオブジェクトが組み合わせられる順序を判定することをさらに含む、条項６〜８または１０〜１３のいずれかに記載の方法。
【０３８６】
１５．前記１回以上の訓練／評価反復は、前記機械学習モデルの交差検証反復である、条項６〜８または１０〜１４のいずれかに記載の方法。
【０３８７】
１６．１つまたは複数のプロセッサ上で実行されたとき、
機械学習モデルの１回以上の訓練／評価反復のために使用される整合性メタデータを判定することであって、前記整合性メタデータは、少なくとも擬似乱数ソースの特定のパラメータ値を含む、前記判定することと、
前記整合性メタデータを使用して、特定のデータセットの複数のチャンクから第１の訓練セットを選択することであって、前記複数のチャンクの個々は、１つまたは複数の観測記録を含み、前記第１の訓練セットは、前記複数のチャンクの第１のチャンクの少なくとも一部分を含み、前記第１の訓練セットの観測記録は、前記１回以上の訓練／評価反復の第１の訓練／評価反復の間に前記機械学習モデルを訓練するために使用される、前記選択することと、
前記整合性メタデータを使用して、前記複数のチャンクから第１の試験セットを選択することであって、前記第１の試験セットは、前記複数のチャンクの第２のチャンクの少なくとも一部分を含み、前記第１の試験セットの観測記録は、前記第１の訓練／評価反復の間に前記機械学習モデルを評価するために使用される、前記選択することと、を行う、プログラム命令を記憶する、非一時的コンピュータアクセス可能記憶媒体。
【０３８８】
１７．前記命令は、前記１つまたは複数のプロセッサで実行されたとき、
前記第１の訓練／評価反復の間の前記機械学習モデルの訓練の前に、永続的記憶装置から第１のサーバのメモリ内への、少なくとも前記第１のチャンクの取得を開始することと、
前記１回以上の訓練／評価反復の異なる訓練／評価反復のために、前記第１のチャンクを前記第１のサーバの前記メモリから異なる位置にコピーせずに、（ａ）異なる訓練セット、及び（ｂ）異なる試験セットを選択することと、を行う、条項１６に記載の非一時的コンピュータアクセス可能記憶媒体。
【０３８９】
１８．前記命令は、前記１つまたは複数のプロセッサで実行されたとき、
機械学習サービスのクライアントから、前記１回以上の訓練／評価反復に対する要求を受信するように構成され、前記要求は、前記整合性メタデータの少なくとも一部分を指示する、条項１６または１７に記載の非一時的コンピュータアクセス可能記憶媒体。
【０３９０】
１９．前記整合性メタデータは、前記特定のデータセットの１つまたは複数の観測記録が記憶されるデータオブジェクトの識別子に少なくとも部分的に基づく、条項１６〜１８のいずれかに記載の非一時的コンピュータアクセス可能記憶媒体。
【０３９１】
２０．前記命令は、前記１つまたは複数のプロセッサで実行されたとき、
前記第１の訓練セットの前記観測記録を前記機械学習モデルへの入力として提示する前に、前記第１のチャンクの観測記録を入れ換える、条項１６〜１９のいずれかに記載の非一時的コンピュータアクセス可能記憶媒体。
【０３９２】
本開示の実施形態は、以下の条項の見地からも、説明することができる。
１．システムであって、
機械学習モデルの訓練段階の後で、少なくとも前記機械学習モデルの実行のメモリフットプリントの目標を含む、データセットを使用して訓練される決定木ベースの機械学習モデルの１つまたは複数の実行時間最適化目標を識別することと、
前記訓練段階の木構築パスの間に深さ優先順で１つまたは複数の永続的記憶装置に、前記データセットの少なくとも一部分を使用して特定の決定木に対して生成された複数のノードのそれぞれの表現を記憶することと、
前記木構築パスの間に前記特定の決定木の１つまたは複数のノードに関して、予測有用性メトリック（ＰＵＭ）のそれぞれの値を判定することであって、前記１つまたは複数のノードの前記特定のノードと関連付けられた特定のＰＵＭ値は、前記機械学習モデルを使用して生成された予測に対する前記特定のノードの予想された貢献度の測定値である、前記判定することと、
前記訓練段階の木の枝刈りパスの間に、前記特定の決定木の変更されたバージョンを生成することであって、前記変更されたバージョンを生成するために、少なくとも前記特定のノードが前記特定の決定木から削除され、前記特定のノードは、前記１つまたは複数の実行時間最適化目標に少なくとも部分的に基づいて、かつ前記特定のＰＵＭ値に少なくとも部分的に基づいて、削除のために選択される、前記生成することと、
前記特定の決定木の前記変更されたバージョンの表現を記憶することと、
前記訓練段階の後で、特定の予測を得るために少なくとも前記特定の決定木の前記変更されたバージョンを使用して、前記機械学習モデルを実行することと、を行うように構成された１つまたは複数のコンピューティングデバイスを含む、前記システム。
【０３９３】
２．前記ＰＵＭは、（ａ）Ｇｉｎｉ不純度の指標、（ｂ）情報利得メトリック、または（ｃ）エントロピーメトリック、のうちの１つまたは複数を含む、条項１に記載のシステム。
【０３９４】
３．前記１つまたは複数の実行時間最適化目標は、（ａ）予測時間目標、（ｂ）プロセッサ使用率目標、または（ｃ）予算目標、のうちの１つまたは複数を含む、条項１または２に記載のシステム。
【０３９５】
４．前記１つまたは複数のコンピューティングデバイスは、
前記１つまたは複数のノード間の前記ＰＵＭの値の分布の表現を生成し、
前記分布に少なくとも部分的に基づいて、削除のための前記特定のノードを選択するようにさらに構成される、条項１〜３のいずれかに記載のシステム。
【０３９６】
５．前記機械学習モデルは、（ａ）ランダムフォレストモデル、（ｂ）分類及び回帰木（ＣＡＲＴ）モデル、または（ｃ）ａｄａｐｔｉｖｅ  ｂｏｏｓｔｉｎｇモデル、のうちの１つまたは複数を含む、条項１〜４のいずれかに記載のシステム。
【０３９７】
６．方法であって、
１つまたは複数のコンピューティングデバイスによって、
機械学習モデルの訓練段階の木構築パスの間に深さ優先順で１つまたは複数の永続的記憶装置に、特定の決定木に対して生成された複数のノードのそれぞれの表現を記憶することと、
前記特定の決定木の１つまたは複数のノードに関して、予測有用性メトリック（ＰＵＭ）のそれぞれの値を判定することであって、前記１つまたは複数のノードの特定のノードと関連付けられた特定のＰＵＭ値は、前記機械学習モデルを使用して生成された予測に対する前記特定のノードの予想された貢献度の測定値である、前記判定することと、
前記訓練段階の木の枝刈りパスの間に、前記特定の決定木の変更されたバージョンを生成することであって、前記生成は、前記特定の決定木からの少なくとも前記特定のノードの削除を含み、前記特定のノードは、前記特定のＰＵＭ値に少なくとも部分的に基づいて削除のために選択される、前記生成することと、
少なくとも特定の予測を得るために前記特定の決定木の前記変更されたバージョンを使用して、前記機械学習モデルを実行することと、を行うことを含む、前記方法。
【０３９８】
７．前記特定のノードは、（ａ）メモリフットプリント目標、（ｂ）予測時間目標、（ｃ）プロセッサ使用率目標、または（ｄ）予算目標、のうちの１つまたは複数を含む、前記モデルの実行の１つまたは複数の実行時間最適化目標に少なくとも部分的に基づいて削除のために選択される、条項６に記載の方法。
【０３９９】
８．前記ＰＵＭは、（ａ）Ｇｉｎｉ不純度の指標、（ｂ）情報利得メトリック、または（ｃ）エントロピーメトリック、のうちの１つまたは複数を含む、条項６または７に記載の方法。
【０４００】
９．前記１つまたは複数のコンピューティングデバイスによって、
前記１つまたは複数のノード間の前記ＰＵＭの値の分布を判定することと、
前記分布に少なくとも部分的に基づいて、削除のための前記特定のノードを選択することと、を行うことをさらに含む、条項６〜８のいずれかに記載の方法。
【０４０１】
１０．前記１つまたは複数のコンピューティングデバイスによって、
前記木の枝刈りパスの間に、前記特定の決定木のトップダウン走査において、前記特定の決定木の複数のノードの前記ＰＵＭの値を累積することと、
前記累積の結果に少なくとも部分的に基づいて、削除のための前記特定のノードを選択することと、を行うことをさらに含む、条項６〜９のいずれかに記載の方法。
【０４０２】
１１．前記１つまたは複数のコンピューティングデバイスによって、
前記木の枝刈りパスの間に、前記特定の決定木のボトムアップ走査において、前記特定の決定木の複数のノードの前記ＰＵＭの値を調査することと、
前記調査の結果に少なくとも部分的に基づいて、削除のための前記特定のノードを選択することと、を行うことをさらに含む、条項６〜１０のいずれかに記載の方法。
【０４０３】
１２．前記機械学習モデルは、（ａ）ランダムフォレストモデル、（ｂ）分類及び回帰木（ＣＡＲＴ）モデル、または（ｃ）ａｄａｐｔｉｖｅ  ｂｏｏｓｔｉｎｇモデル、のうちの１つまたは複数を含む、条項６〜１１のいずれかに記載の方法。
【０４０４】
１３．前記機械学習モデルは、前記特定の決定木を含む複数の決定木を利用するように構成され、前記特定の決定木は、機械学習サービスの実行の複数のスレッドの実行の特定のスレッドで生成され、前記１つまたは複数のコンピューティングデバイスによって、
実行の前記複数のスレッドの実行の異なるスレッドで、前記複数の決定木の第２の決定木を生成することを行うことをさらに含む、条項６〜１２のいずれかに記載の方法。
【０４０５】
１４．前記機械学習モデルは、前記特定の決定木を含む複数の決定木を利用するように構成され、前記特定の決定木の前記変更されたバージョンは、機械学習サービスの実行の複数のスレッドの実行の特定のスレッドで生成され、前記１つまたは複数のコンピューティングデバイスによって、
実行の前記複数のスレッドの実行の異なるスレッドで、前記複数の決定木の第２の決定木の変更されたバージョンを生成することを行うことをさらに含む、条項６〜１３のいずれかに記載の方法。
【０４０６】
１５．前記機械学習モデルは、前記特定の決定木を含む複数の決定木を利用するように構成され、前記特定の予測は、機械学習サービスの実行の複数のスレッドの実行の特定のスレッドで得られ、
実行の前記複数のスレッドの実行の異なるスレッドで、前記複数の決定木の第２の決定木の変更されたバージョンを使用して第２の予測を得ることをさらに含む、条項６〜１４のいずれかに記載の方法。
【０４０７】
１６．１つまたは複数のプロセッサ上で実行されたとき、
機械学習モデルの訓練段階の１つまたは複数の木構築期間の第１の木構築期間の間に、深さ優先順で１つまたは複数の永続的記憶装置に、特定の決定木に対して生成された複数のノードのそれぞれの表現を記憶することと、
前記特定の決定木の１つまたは複数のノードに関して、予測有用性メトリック（ＰＵＭ）のそれぞれの値を判定することであって、前記１つまたは複数のノードの特定のノードと関連付けられた特定のＰＵＭ値は、前記機械学習モデルを使用して生成された予測に対する前記特定のノードの予想された貢献度の測定値である、前記判定することと、
前記訓練段階の１つまたは複数の木の枝刈り期間の第１の木の枝刈り期間の間に、前記特定のＰＵＭ値に少なくとも部分的に基づいて、前記特定の決定木からの削除のための前記特定のノードを選択することと、
前記特定の決定木の変更されたバージョンを記憶することと、を行い、前記変更されたバージョンは、前記特定のノードを除外する、プログラム命令を記憶する、非一時的コンピュータアクセス可能記憶媒体。
【０４０８】
１７．前記特定のノードは、（ａ）メモリフットプリント目標、（ｂ）予測時間目標、（ｃ）プロセッサ使用率目標、または（ｄ）予算目標、のうちの１つまたは複数を含む、機械学習モデルの実行の１つまたは複数の実行時間最適化目標に少なくとも部分的に基づいて削除のために選択される、条項１６に記載の非一時的コンピュータアクセス可能記憶媒体。
【０４０９】
１８．前記特定のノードは、自身に代わって前記機械学習モデルが作成されるクライアントによって指定された１つまたは複数の目標に少なくとも部分的に基づいて、削除のために選択される、条項１６または１７に記載の非一時的コンピュータアクセス可能記憶媒体。
【０４１０】
１９．前記命令は、前記１つまたは複数のプロセッサで実行されたとき、
前記１つまたは複数のノード間の前記ＰＵＭの値の分布の表現を記憶し、
前記分布に少なくとも部分的に基づいて、削除のための前記特定のノードを選択するようにさらに構成される、条項１６〜１８のいずれかに記載の非一時的コンピュータアクセス可能記憶媒体。
【０４１１】
２０．前記特定の決定木の前記複数のノードは、プロバイダネットワークに実装された機械学習サービスのプログラム的インターフェースの呼び出しに応答して生成される、条項１６〜１９のいずれかに記載の非一時的コンピュータアクセス可能記憶媒体。
【０４１２】
２１．前記１つまたは複数の木構築期間は、前記第１の木の枝刈り期間の後に行われる第２の木構築期間を含み、前記１つまたは複数の木の枝刈り期間は、前記第２の木構築期間の後に行われる第２の木の枝刈り期間を含み、前記命令は、前記１つまたは複数のプロセッサで実行されたとき、
前記第２の木構築期間の間に、前記特定の決定木の第２のノードを記憶し、
前記第２の木の枝刈り期間の間に、前記第２のノードと関連付けられたＰＵＭ値に少なくとも部分的に基づいて、前記第２のノードを前記特定の決定木から削除するかどうかを判定する、条項１６〜２０のいずれかに記載の非一時的コンピュータアクセス可能記憶媒体。
【０４１３】
本開示の実施形態は、以下の条項の見地からも、説明することができる。
１．システムであって、
プロバイダネットワークの機械学習サービスのクライアントとの１つまたは複数のプログラム的対話を介して、（ａ）指定された訓練データセットを使用して予測される１つまたは複数の目標変数、（ｂ）特定の予測の質メトリックを含む１つまたは複数の予測の質メトリック、及び（ｃ）特定の予測実行時間目標を含む１つまたは複数の予測実行時間目標を判定することと、
前記指定されたデータセットの１つまたは複数の入力変数から第１の組の処理済み変数を導出するための一組の候補特徴処理変換を識別することであって、少なくとも前記第１の組の処理済み変数のサブセットは、前記１つまたは複数の目標変数を予測するための機械学習モデルを訓練するのに使用可能であり、前記一組の候補特徴処理変換は、特定の特徴処理変換を含む、前記識別することと、
（ａ）前記特定の予測の質メトリックへの前記特定の候補特徴処理変換を実行する影響を示す質推定値、及び（ｂ）前記特定の予測実行時間目標と関連付けられた特定の実行時間性能メトリックへの前記特定の候補特徴処理変換を実行する影響を示す費用見積もりを判定することと、
前記質推定値に少なくとも部分的に基づいて、かつ前記費用見積もりに少なくとも部分的に基づいて、承認のために前記クライアントに提供される特徴処理提案を生成することであって、前記特徴処理提案は、前記特定の特徴処理変換を実行するための提案を含む、前記生成することと、
前記クライアントからの承認の指標に応答して、前記特定の特徴処理変換から得られた特定の処理済み変数を使用して訓練された機械学習モデルを実行することと、を行うように構成された１つまたは複数のコンピューティングデバイスを含む、前記システム。
【０４１４】
２．前記質推定値を判定するために、前記１つまたは複数のコンピューティングデバイスは、前記特定の処理済み変数の第１の組の値が入力として前記機械学習モデルに提供される第１の評価実行と、前記特定の処理済み変数の異なる組の値が入力として前記機械学習モデルに提供される第２の評価実行と、を含む、前記機械学習モデルの複数の評価実行を実行する、条項１に記載のシステム。
【０４１５】
３．前記費用見積もりを判定するために、前記１つまたは複数のコンピューティングデバイスは、前記機械学習モデルの第１の異形及び前記機械学習モデルの第２の異形のそれぞれの評価実行を実行し、前記第１の異形は、前記特定の処理済み変数を含む第１の訓練セットを使用して訓練され、前記第２の異形は、前記特定の処理済み変数を除外した第２の訓練セットを使用して訓練される、条項１または２に記載のシステム。
【０４１６】
４．前記特定の予測の質メトリックは、（ａ）ＡＵＣ（曲線下面積）メトリック、（ｂ）正確さメトリック、（ｃ）再現度メトリック、（ｄ）感度メトリック、（ｅ）真陽性率、（ｆ）特異性メトリック、（ｇ）真陰性率、（ｈ）精度メトリック、（ｉ）偽陽性率、（ｊ）偽陰性率、（ｋ）Ｆ１スコア、（ｌ）適用範囲メトリック、（ｍ）絶対パーセントエラーメトリック、または（ｎ）二乗エラーメトリック、のうちの１つまたは複数を含む、条項１〜３のいずれかに記載のシステム。
【０４１７】
５．前記特定の特徴処理変換は、（ａ）分位ビン関数、（ｂ）カルテシアン積関数、（ｃ）ｂｉ−ｇｒａｍ関数、（ｄ）ｎ−ｇｒａｍ関数、（ｅ）直交スパースｂｉｇｒａｍ関数、（ｆ）カレンダ関数、（ｇ）画像処理関数、（ｈ）音声処理関数、（ｉ）生物情報学処理関数、または（ｊ）自然言語処理関数、のうちの１つまたは複数の使用を含む、条項１〜４のいずれかに記載のシステム。
【０４１８】
６．方法であって、
１つまたは複数のコンピューティングデバイスによって、
機械学習サービスで、１つまたは複数の目標変数を予測するための機械学習モデルを訓練するのに使用可能な一組の候補入力変数を識別することであって、前記一組の候補入力変数は、訓練データセットの１つまたは複数の入力変数に適用可能な特定の特徴処理変換によって生成された少なくとも特定の処理済み変数を含む、前記識別することと、
（ａ）特定の予測の質メトリックへの前記特定の特徴処理変換を実行する影響を示す質推定値、及び（ｂ）特定の予測目標と関連付けられた性能メトリックへの前記特定の特徴処理変換を実行する影響を示す費用見積もりを判定することと、
前記質推定値に少なくとも部分的に基づいて、かつ前記費用見積もりに少なくとも部分的に基づいて、前記特定の特徴処理変換を含む特徴処理計画を実行することと、を行うことを含む、前記方法。
【０４１９】
７．前記１つまたは複数のコンピューティングデバイスによって、
複数の候補特徴処理変換に対応するそれぞれの質推定値及びそれぞれの費用見積もりの分析に少なくとも部分的に基づいて、前記特定の特徴処理変換を推奨する特定の特徴処理提案を含む１つまたは複数の特徴処理提案を生成することと、
前記１つまたは複数の特徴処理提案の指標を前記クライアントに提供することと、を行うことをさらに含む、条項６に記載の方法。
【０４２０】
８．前記特徴処理計画の前記実行は、前記クライアントからの前記特定の特徴処理提案の承認の指標を得ることに応答する、条項６または７に記載の方法。
【０４２１】
９．前記１つまたは複数のコンピューティングデバイスによって、
前記機械学習サービスの１つまたは複数のプログラム的インターフェースを介して、（ａ）前記１つまたは複数の目標変数、（ｂ）前記特定の予測の質メトリックを含む１つまたは複数の予測の質メトリック、（ｃ）前記特定の予測目標を含む１つまたは複数の予測目標、または（ｄ）必須特徴処理変換を識別する特定の制約を含む１つまたは複数の制約、のうちの１つまたは複数のそれぞれの指標を含む、モデル作成要求を受信することを行うことをさらに含む、条項６または７に記載の方法。
【０４２２】
１０．前記１つまたは複数のコンピューティングデバイスによって、
１つまたは複数の特徴処理提案が、前記モデル作成要求に少なくとも部分的に基づいて、前記機械学習サービスのクライアントにとって許容できないという判定に応答して、
必要条件再考要求を前記クライアントに送信することと、
（ａ）前記特定の予測の質メトリック、または（ｂ）前記特定の予測目標、のうちの１つまたは複数に割り当てられた相対的優先度の指標を前記クライアントから受信することと、を行うことをさらに含む、条項６〜７または９のいずれかに記載の方法。
【０４２３】
１１．前記特定の予測の質メトリックは、（ａ）ＡＵＣ（曲線下面積）メトリック、（ｂ）正確さメトリック、（ｃ）再現度メトリック、（ｄ）感度メトリック、（ｅ）真陽性率、（ｆ）特異性メトリック、（ｇ）真陰性率、（ｈ）精度メトリック、（ｉ）偽陽性率、（ｊ）偽陰性率、（ｋ）Ｆ１スコア、（ｌ）適用範囲メトリック、（ｍ）絶対パーセントエラーメトリック、または（ｎ）二乗エラーメトリック、のうちの１つまたは複数を含む、条項６〜７または９〜１０のいずれかに記載の方法。
【０４２４】
１２．前記特定の特徴処理変換は、（ａ）分位ビン関数、（ｂ）カルテシアン積関数、（ｃ）ｂｉ−ｇｒａｍ関数、（ｄ）ｎ−ｇｒａｍ関数、（ｅ）直交スパースｂｉｇｒａｍ関数、（ｆ）カレンダ関数、（ｇ）画像処理関数、（ｈ）音声処理関数、（ｉ）生物情報学処理関数、または（ｊ）自然言語処理関数、のうちの１つまたは複数の使用を含む、条項６〜７または９〜１１のいずれかに記載の方法。
【０４２５】
１３．前記特定の予測目標は、（ａ）モデル実行時間目標、（ｂ）メモリ使用率目標、（ｃ）プロセッサ使用率目標、（ｄ）記憶装置使用率目標、（ｅ）ネットワーク使用率目標、または（ｆ）予算、のうちの１つまたは複数を含む、条項６〜７または９〜１２のいずれかに記載の方法。
【０４２６】
１４．前記１つまたは複数のコンピューティングデバイスによって、
前記機械学習サービスのクライアントが前記特定の予測目標が機械学習モデルの特定の実行によって満たされる程度を判定することを可能にするプログラム的インターフェースを提供すること、を行うことをさらに含む、条項６〜７または９〜１３のいずれかに記載の方法。
【０４２７】
１５．前記質推定値の前記判定は、前記特定の処理済み変数の第１の組の値が入力として前記機械学習モデルに提供される第１の評価実行と、前記特定の処理済み変数の異なる組の値が入力として前記機械学習モデルに提供される第２の評価実行と、を含む、前記機械学習モデルの複数の評価実行の実行を含む、条項６〜７または９〜１４のいずれかに記載の方法。
【０４２８】
１６．前記費用見積もりの前記判定は、前記機械学習モデルの第１の異形及び前記機械学習モデルの第２の異形のそれぞれの評価実行の実行を含み、前記第１の異形は、前記特定の処理済み変数を含む第１の組の入力変数を使用して訓練され、前記第２の異形は、前記特定の処理済み変数を除外した第２の組の入力変数を使用して訓練される、条項６〜７または９〜１５のいずれかに記載の方法。
【０４２９】
１７．前記１つまたは複数のコンピューティングデバイスによって、
前記クライアントから、前記訓練データセットの入力変数に対して前記クライアントによって要求された１つまたは複数の特徴処理変換を指示するレシピの指標を受信することであって、前記特定の特徴処理変換は、前記レシピに含まれない、前記受信することと、
前記クライアントに、前記レシピに対する提案された変更を提供することと、を行うことをさらに含み、前記提案された変更は、前記特定の特徴処理変換の指標を含む、条項６〜７または９〜１６のいずれかに記載の方法。
【０４３０】
１８．１つまたは複数のプロセッサ上で実行されたとき、
機械学習サービスで、１つまたは複数の目標変数を予測するための機械学習モデルを訓練するのに使用可能な一組の候補入力変数を識別することであって、一組の候補入力変数は、訓練データセットの１つまたは複数の入力変数に適用可能な特定の特徴処理変換から生じた少なくとも特定の処理済み変数を含む、前記識別することと、
特定の予測目標と関連付けられた性能メトリックへの前記特定の特徴処理変換を実行する影響を示す費用見積もりを判定することと、
前記費用見積もりに少なくとも部分的に基づいて、前記特定の特徴処理変換を除外した特徴処理提案を実行することと、を行うプログラム命令を記憶する、非一時的コンピュータアクセス可能記憶媒体。
【０４３１】
１９．前記命令は、前記１つまたは複数のプロセッサで実行されたとき、
特定の予測の質メトリックへの前記特定の特徴処理変換の実行の影響を示す質推定値を判定し、
前記特徴処理提案は、前記質推定値に少なくとも部分的に基づいて実行される、条項１８に記載の非一時的コンピュータアクセス可能記憶媒体。
【０４３２】
２０．前記機械学習モデルは、（ａ）分類モデル、（ｂ）回帰モデル、（ｃ）自然言語処理（ＮＬＰ）モデル、または（ｄ）クラスタ化モデル、のうちの１つまたは複数を含む、条項１８または１９に記載の非一時的コンピュータアクセス可能記憶媒体。
【０４３３】
２１．前記特定の特徴処理変換は、（ａ）分位ビン関数、（ｂ）カルテシアン積関数、（ｃ）ｂｉ−ｇｒａｍ関数、（ｄ）ｎ−ｇｒａｍ関数、（ｅ）直交スパースｂｉｇｒａｍ関数、（ｆ）カレンダ関数、（ｇ）画像処理関数、（ｈ）音声処理関数、（ｉ）生物情報学処理関数、または（ｊ）自然言語処理関数、のうちの１つまたは複数の使用を含む、条項１８〜２０のいずれかに記載の非一時的コンピュータアクセス可能記憶媒体。
【０４３４】
本開示の実施形態は、以下の条項の見地からも、説明することができる。
１．システムであって、
プロバイダネットワークの機械学習サービスで、線形予測モデルを生成するために使用されるデータソースの指標を受信することであって、予測を生成するために、前記線形予測モデルは、前記データソースの観測記録から導出された複数の特徴の個々に割り当てられたそれぞれの重みを利用し、前記それぞれの重みは、前記線形予測モデルのパラメータベクトルに記憶される、前記受信することと、
前記データソースの特定の組の観測記録の調査に少なくとも部分的に基づいて、前記線形予測モデルの訓練段階の複数の学習反復の特定の学習反復の間に、前記パラメータベクトルに追加される１つまたは複数の特徴のそれぞれの重みを判定することと、
作動条件が前記訓練段階の間に満たされたという判定に応答して、
重みの分位分析に少なくとも部分的に基づいて、重みが前記パラメータベクトル内に含まれる一組の特徴から１つまたは複数の枝刈り被害者を識別することであって、前記分位分析は、ソート動作なしに識別することと、
少なくとも前記パラメータベクトルから前記１つまたは複数の枝刈り被害者の特定の枝刈り被害者に対応する特定の重みを削除することと、
前記線形予測モデルの訓練後段階予測実行の間に、重みが前記特定の枝刈り被害者の前記特定の重みが前記パラメータベクトルから削除された後に判定される少なくとも１個の特徴を使用して、予測を生成することと、を行うように構成された１つまたは複数のコンピューティングデバイスを含む、前記システム。
【０４３５】
２．前記作動条件は、前記パラメータベクトルの母集団に少なくとも部分的に基づく、条項１に記載のシステム。
【０４３６】
３．前記作動条件は、クライアントによって指示された目標に少なくとも部分的に基づく、条項１または２に記載のシステム。
【０４３７】
４．前記１つまたは複数のコンピューティングデバイスは、
前記特定の学習反復の後に行われる前記複数の学習反復の後続の学習反復の間に、
前記特定の枝刈り被害者の重みが前記パラメータベクトルに再追加されることを判定し、
前記特定の枝刈り被害者に対応する前記重みを、前記パラメータベクトルに追加するようにさらに構成される、条項１〜３のいずれかに記載のシステム。
【０４３８】
５．重みが前記特定の学習反復の間に前記パラメータベクトルに追加される前記１つまたは複数の特徴の第１の特徴は、（ａ）分位ビン関数、（ｂ）カルテシアン積関数、（ｃ）ｂｉ−ｇｒａｍ関数、（ｄ）ｎ−ｇｒａｍ関数、（ｅ）直交スパースｂｉｇｒａｍ関数、（ｆ）カレンダ関数、（ｇ）画像処理関数、（ｈ）音声処理関数、（ｉ）生物情報学処理関数、（ｊ）自然言語処理関数、または（ｋ）動画処理関数、のうちの１つまたは複数の使用を含む変換を介して、前記データソースの前記観測記録の１つまたは複数の変数から導出される、条項１〜４のいずれかに記載のシステム。
【０４３９】
６．方法であって、
１つまたは複数のコンピューティングデバイスによって、
機械学習モデルを訓練するために使用されるデータソースの指標を受信することであって、予測を生成するために、前記機械学習モデルは、前記データソースの観測記録から導出された複数の特徴の個々に割り当てられたそれぞれのパラメータを利用し、前記それぞれのパラメータは、前記機械学習モデルのパラメータベクトルに記憶される、前記受信することと、
前記機械学習モデルの訓練段階の複数の学習反復の特定の学習反復の間に、それぞれのパラメータが前記パラメータベクトルに追加される１つまたは複数の特徴を識別することと、
作動条件が前記訓練段階で満たされたという判定に応答して、１つまたは複数の枝刈り被害者特徴のそれぞれのパラメータを前記パラメータベクトルから削除することであって、前記１つまたは複数の枝刈り被害者特徴は、前記機械学習モデルを使用して立てられた予測への前記パラメータベクトルの中にパラメータが含まれる特徴の相対的貢献度の分析に少なくとも部分的に基づいて選択される、前記削除することと、
前記機械学習モデルの訓練後段階予測実行の間に、前記１つまたは複数の枝刈り被害者特徴が選択された後にパラメータが判定される少なくとも１個の特徴を使用して、特定の予測を生成することと、を行うことを含む、前記方法。
【０４４０】
７．前記相対的貢献度の分析は、前記パラメータベクトルの中に含まれる重みの分位分析を含む、条項６に記載の方法。
【０４４１】
８．前記相対的貢献度の分析は、（ａ）ソート動作を含まず、かつ（ｂ）パラメータベクトルの中に含まれるパラメータの値のコピーを含まない、条項６または７に記載の方法。
【０４４２】
９．前記作動条件が満たされたという前記判定は、前記パラメータベクトルの母集団が閾値を超えたことを判定することを含む、条項６〜８のいずれかに記載の方法。
【０４４３】
１０．前記作動条件は、前記機械学習サービスのサーバのリソース容量制約に少なくとも部分的に基づく、条項６〜９のいずれかに記載の方法。
【０４４４】
１１．前記作動条件は、クライアントによって指示された目標に少なくとも部分的に基づく、条項６〜１０のいずれかに記載の方法。
【０４４５】
１２．前記１つまたは複数のコンピューティングデバイスによって、
前記特定の学習反復の後に行われる前記複数の学習反復の後続の学習反復の間に、
枝刈り被害者特徴として事前に選択された特定の特徴のパラメータが、前記パラメータベクトルに再追加されることを判定することと、
前記特定の特徴のパラメータを前記パラメータベクトルに追加することと、を行うことをさらに含む、条項６〜１１のいずれかに記載の方法。
【０４４６】
１３．それぞれのパラメータが前記特定の学習反復の間に前記パラメータベクトルに追加される１つまたは複数の特徴の第１の特徴は、（ａ）分位ビン関数、（ｂ）カルテシアン積関数、（ｃ）ｂｉ−ｇｒａｍ関数、（ｄ）ｎ−ｇｒａｍ関数、（ｅ）直交スパースｂｉｇｒａｍ関数、（ｆ）カレンダ関数、（ｇ）画像処理関数、（ｈ）音声処理関数、（ｉ）生物情報学処理関数、（ｊ）自然言語処理関数、または（ｋ）動画処理関数、のうちの１つまたは複数の使用を含む変換を介して、前記データソースの前記観測記録の１つまたは複数の変数から判定される、条項６〜１２のいずれかに記載の方法。
【０４４７】
１４．前記１つまたは複数のコンピューティングデバイスによって、
前記特定の学習反復の間に、前記パラメータベクトルの中に含まれる１つまたは複数の事前に生成されたパラメータを更新するための確率的勾配降下法を実行することを行うことをさらに含む、条項６〜１３のいずれかに記載の方法。
【０４４８】
１５．前記機械学習モデルは、一般化線形モデルを含む、条項６〜１４のいずれかに記載の方法。
【０４４９】
１６．前記１つまたは複数のコンピューティングデバイスによって、
プロバイダネットワークに実装された機械学習サービスのプログラム的インターフェースを介して、前記データソースを指示するクライアント要求を受信することであって、前記機械学習サービスは、１つまたは複数のデータセンタの複数の訓練サーバを含む、前記受信することと、
前記機械学習サービスのジョブスケジューラによって前記複数の訓練サーバの特定の訓練サーバに、前記クライアント要求の前記受信に対して非同期的に複数の学習反復を含むジョブを割り当てることと、を行うことをさらに含む、条項６〜１５のいずれかに記載の方法。
【０４５０】
１７．機械学習サービスのモデルジェネレータを実装している１つまたは複数のプロセッサで実行されるとき、前記モデルジェネレータが、
モデルを生成するために使用されるデータソースを判定することであって、予測を生成するために、前記モデルは、前記データソースの観測記録から導出された複数の特徴の個々に割り当てられたそれぞれのパラメータを利用し、前記それぞれのパラメータは、前記モデルのパラメータベクトルに記憶される、前記判定することと、
前記モデルの訓練段階の複数の学習反復の特定の学習反復の間に、パラメータが前記パラメータベクトルに追加される１つまたは複数の特徴を識別することと、
作動条件が満たされたという判定に応答して、１つまたは複数の枝刈り被害者特徴に割り当てられたそれぞれのパラメータを前記パラメータベクトルから削除することであって、前記１つまたは複数の枝刈り被害者特徴は、前記モデルを使用して立てられた予測への前記パラメータベクトルの中にパラメータが含まれる特徴の相対的貢献度の分析に少なくとも部分的に基づいて選択される、前記削除することと、
枝刈り被害者特徴に割り当てられた少なくとも１つのパラメータの前記パラメータベクトルからの削除の後に、少なくとも１つのパラメータを前記パラメータベクトルに追加することと、を行うように構成される、プログラム命令を記憶する、非一時的コンピュータアクセス可能記憶媒体。
【０４５１】
１８．前記相対的貢献度の分析は、事前（ａ  ｐｒｉｏｒｉ）パラメータ値から前記パラメータベクトルの中に含められた特定のパラメータ値の偏差の判定を含む、条項１７に記載の非一時的コンピュータアクセス可能記憶媒体。
【０４５２】
１９．前記特定のパラメータ値は、確率分布を含み、前記偏差の判定は、カルバック・ライブラー（ＫＬ）情報量の推定を含む、条項１７または１８に記載の非一時的コンピュータアクセス可能記憶媒体。
【０４５３】
２０．前記作動条件が満たされたかどうかを判定するために、前記モデルジェネレータは、前記パラメータベクトルの母集団が閾値を超えたかどうかを判定するように構成される、条項１７〜１９のいずれかに記載の非一時的コンピュータアクセス可能記憶媒体。
【０４５４】
２１．前記データソースは、機械学習サービスのネットワークエンドポイントに送信される観測記録のストリームのソースを含む、条項１７〜２０のいずれかに記載の非一時的コンピュータアクセス可能記憶媒体。
【０４５５】
本開示の実施形態は、以下の条項の見地からも、説明することができる。
１．システムであって、
プロバイダネットワークの機械学習サービスで、モデルを生成するために使用される観測記録を含むデータソースの指標を受信することと、
分位ビニング変換の候補として前記観測記録の１つまたは複数の変数を識別することと、
１つまたは複数の変数の少なくとも特定の変数の特定の同時ビニング計画を判定することであって、前記特定の同時ビニング計画に従って、複数の分位ビニング変換がモデルの訓練段階の間に前記特定の変数に適用され、前記複数の分位ビニング変換は、第１のビン計数を用いた第１の分位ビニング変換、及び異なるビン計数を用いた第２の分位ビニング変換を含む、前記判定することと、
前記訓練段階の間に、前記第１の分位ビニング変換を使用して得られた第１のビニング済み特徴、及び前記第２の分位ビニング変換を使用して得られた第２のビニング済み特徴を含む、前記特定の同時ビニング計画の実行の結果として得られた複数のビニング済み特徴に対応するそれぞれの最初の重み値を含むパラメータベクトルを生成することと、
前記訓練段階の間に、選択された最適化戦略に従って前記複数のビニング済み特徴の特定のビニング済み特徴に対応する少なくとも１つの重み値を減少させることと、
前記モデルの訓練後段階予測実行の間に、前記第１のビニング済み特徴または前記第２のビニング済み特徴のうちの少なくとも１つを使用して特定の予測を得ることと、を行うように構成された１つまたは複数のコンピューティングデバイスを含む、前記システム。
【０４５６】
２．候補として識別された前記１つまたは複数の変数は、複数の変数を含み、前記１つまたは複数のコンピューティングデバイスは、
第１の変数及び第２の変数を含む、複数の変数のグループの第２の同時ビニング計画に従って、
第１の多変数分位ビニング変換を少なくとも前記第１の変数及び前記第２の変数に適用することであって、前記第１の多変数分位ビニング変換に従って、特定の観測記録が、前記第１の変数及び前記第２の変数に対して選択されたビン計数の第１の組み合わせに少なくとも部分的に基づいて第１のビンの中に入れられる、前記適用することと、
第２の多変数分位ビニング変換を少なくとも前記第１の変数及び前記第２の変数に適用することであって、前記第２の多変数分位ビニング変換に従って、前記特定の観測記録が、前記第１の変数及び前記第２の変数に対して選択されたビン計数の異なる組み合わせに少なくとも部分的に基づいて第２のビンの中に入れられる、前記適用することと、を行うようにさらに構成される、条項１に記載のシステム。
【０４５７】
３．前記選択された最適化戦略は、規則化を含む、条項１または２に記載のシステム。
【０４５８】
４．前記１つまたは複数のコンピューティングデバイスは、
前記モデルの複数の特徴に割り当てられた重みの分位境界の推定値に少なくとも部分的に基づいて、前記パラメータベクトルから削除するための特定のビニング済み特徴を選択するようにさらに構成され、前記推定値は、前記重みをソートせずに得られる、条項１〜３のいずれかに記載のシステム。
【０４５９】
５．前記１つまたは複数のコンピューティングデバイスは、
前記機械学習サービスの人工物レポジトリに、前記機械学習サービスで実行される特徴変換のためのレシピ言語に従ってフォーマットされた特定のレシピを記憶するようにさらに構成され、前記特定のレシピは、前記第１の分位ビニング変換の指標及び前記第２の分位ビニング変換の指標を含む、条項１〜４のいずれかに記載のシステム。
【０４６０】
６．方法であって、
１つまたは複数のコンピューティングデバイスによって、
機械学習モデルを生成するために使用される観測記録の１つまたは複数の変数のそれぞれの同時ビニング計画を実行することであって、特定の同時ビニング計画に従って、複数の分位ビニング変換が少なくとも前記１つまたは複数の変数の特定の変数に適用され、前記複数の分位ビニング変換は、第１のビン計数を用いた第１の分位ビニング変換、及び異なるビン計数を用いた第２の分位ビニング変換を含む、前記実行することと、
前記第１の分位ビニング変換を使用して得られた第１のビニング済み特徴、及び前記第２の分位ビニング変換を使用して得られた第２のビニング済み特徴を含む、複数のビニング済み特徴と関連するそれぞれのパラメータ値を判定することと、
前記機械学習モデルの訓練後段階予測実行の間に、前記第１のビニング済み特徴または前記第２のビニング済み特徴のうちの少なくとも１つに対応するパラメータ値を使用して、特定の予測を生成することと、を行うことを含む、前記方法。
【０４６１】
７．前記１つまたは複数のコンピューティングデバイスによって、
第１の変数及び第２の変数を含む、前記観測記録の変数のグループに対して生成された第２の同時ビニング計画に従って、
第１の多変数分位ビニング変換を少なくとも前記第１の変数及び前記第２の変数に適用することであって、前記第１の多変数分位ビニング変換に従って、特定の観測記録が、前記第１の変数及び前記第２の変数に対して選択されたビン計数の第１の組み合わせに少なくとも部分的に基づいて第１のビンの中に入れられる、前記適用することと、
第２の多変数分位ビニング変換を少なくとも前記第１の変数及び前記第２の変数に適用することであって、前記第２の多変数分位ビニング変換に従って、前記特定の観測記録が、前記第１の変数及び前記第２の変数に対して選択されたビン計数の異なる組み合わせに少なくとも部分的に基づいて第２のビンの中に入れられる、前記適用することと、を行うことをさらに含む、条項６に記載の方法。
【０４６２】
８．前記１つまたは複数のコンピューティングデバイスによって、
前記観測記録の変数の選択されたグループのそれぞれの値に少なくとも部分的に基づいて、少なくとも前記観測記録のサブセットのｋ次元木（ｋ−ｄ木）表現を生成することと、
前記ｋ次元木の分析に少なくとも部分的に基づいて、前記１つまたは複数の変数の少なくとも１つの変数に提供される同時分位ビニング変換の１つまたは複数の属性を判定することと、を行うことをさらに含む、条項６または７に記載の方法。
【０４６３】
９．前記１つまたは複数のコンピューティングデバイスによって、
前記それぞれのパラメータ値の前記判定の後、かつ前記訓練後段階予測実行の前に、前記機械学習モデルのために生成されたパラメータベクトルから少なくとも１つのビニング済み特徴に対応するパラメータを削除することを行うことをさらに含む、条項６〜８のいずれかに記載の方法。
【０４６４】
１０．前記パラメータベクトルは、前記機械学習モデルのために識別された複数の特徴の１つまたは複数の個々の特徴に対応するそれぞれの重みを含み、前記１つまたは複数のコンピューティングデバイスによって、
特定のビニング済み特徴に割り当てられる特定の重みの値を調節するための規則化を利用することと、
前記特定の重みの調節された値が閾値未満であるという判定に少なくとも部分的に基づいて、重みが前記パラメータベクトルから削除される枝刈り標的として前記特定のビニング済み特徴を選択することと、を行うことをさらに含む、条項９に記載の方法。
【０４６５】
１１．前記１つまたは複数のコンピューティングデバイスによって、
前記パラメータベクトルの中に含まれる重みの分位境界の推定値の判定に少なくとも部分的に基づいて、重みが前記パラメータベクトルから削除される枝刈り標的として、特定のビニング済み特徴を選択することを行うことをさらに含み、前記推定値の前記判定は、前記重みをソートせずに行われる、条項９に記載の方法。
【０４６６】
１２．前記１つまたは複数のコンピューティングデバイスによって、
前記機械学習モデルの問題領域に少なくとも部分的に基づいて、（ａ）第１のビン計数、または（ｂ）異なるビン計数、のうちの少なくとも１つを判定することを行うことをさらに含む、条項６〜９のいずれかに記載の方法。
【０４６７】
１３．前記それぞれの同時ビニング計画の前記実行は、プロバイダネットワークに実装されている機械学習サービスのプログラム的インターフェースを介したモデル生成要求の受信に応答して行われる、条項６〜９または１２のいずれかに記載の方法。
【０４６８】
１４．前記１つまたは複数のコンピューティングデバイスによって、
プロバイダネットワークに実装されている機械学習サービスの人工物レポジトリに、前記機械学習サービスで実行されるレシピ言語に従ってフォーマットされた特定のレシピを記憶することを行うことを含み、前記特定のレシピは、前記第１の分位ビニング変換の指標及び前記第２の分位ビニング変換の指標を含む、条項６〜９または１２〜１３のいずれかに記載の方法。
【０４６９】
１５．前記機械学習モデルは、教師付き学習モデル、または教師無し学習モデルのうちの１つまたは複数を含む、条項６〜９または１２〜１４のいずれかに記載の方法。
【０４７０】
１６．機械学習サービスのモデルジェネレータを実装している１つまたは複数のプロセッサで実行されるとき、前記モデルジェネレータが、
分位ビニング変換の候補としての機械学習モデルを生成するために使用される観測記録の１つまたは複数の変数を識別することと、
前記１つまたは複数の変数のそれぞれの同時ビニング計画を判定することであって、少なくとも特定の変数の特定の同時ビニング計画に従って、複数の分位ビニング変換が前記特定の変数に適用され、前記複数の分位ビニング変換は、第１のビン計数を用いた第１の分位ビニング変換、及び異なるビン計数を用いた第２の分位ビニング変換を含む、前記判定することと、
前記機械学習モデルのパラメータベクトル内に、前記第１の分位ビニング変換から得られた第１のビニング済み特徴に対する第１のパラメータ、及び前記第１の分位ビニング特徴から得られた第２のビニング済み特徴に対する第２のパラメータを含む、複数のビニング済み特徴に対するそれぞれのパラメータを含めることと、を行うように構成され、前記第１のビニング済み特徴及び前記第２のビニング済み特徴の少なくとも１つのビニング済み特徴は、前記機械学習モデルの訓練後段階実行において予測を生成するために使用される、プログラム命令を記憶する、非一時的コンピュータアクセス可能記憶媒体。
【０４７１】
１７．前記モデルジェネレータは、
第１の変数及び第２の変数を含む、前記観測記録の変数のグループの第２の同時ビニング計画に従って、
第１の多変数分位ビニング変換を少なくとも前記第１の変数及び前記第２の変数に適用することであって、前記第１の多変数分位ビニング変換に従って、特定の観測記録が、前記第１の変数及び前記第２の変数に対して選択されたビン計数の第１の組み合わせに少なくとも部分的に基づいて第１のビンの中に入れられる、前記適用することと、
第２の多変数分位ビニング変換を少なくとも前記第１の変数及び前記第２の変数に適用することであって、前記第２の多変数分位ビニング変換に従って、前記特定の観測記録が、前記第１の変数及び前記第２の変数に対して選択されたビン計数の異なる組み合わせに少なくとも部分的に基づいて第２のビンの中に入れられる、前記適用することと、を行うようにさらに構成される、条項１６に記載の非一時的コンピュータアクセス可能記憶媒体。
【０４７２】
１８．前記モデルジェネレータは、
前記第１のビニング済み特徴に割り当てられた特定の重みの値を調節し、
前記特定の重みの調節された値が閾値未満であるという判定に少なくとも部分的に基づいて、前記パラメータベクトルから削除するための前記第１のビニング済み特徴を選択するようにさらに構成される、条項１６または１７に記載の非一時的コンピュータアクセス可能記憶媒体。
【０４７３】
１９．前記モデルジェネレータは、
前記機械学習モデルのために識別された複数の特徴に割り当てられた重みの分位境界の推定値に少なくとも部分的に基づいて、前記パラメータベクトルから削除するための前記第１のビニング済み特徴を選択するようにさらに構成され、前記推定値は、前記重みをソートせずに得られる、条項１６〜１８のいずれかに記載の非一時的コンピュータアクセス可能記憶媒体。
【０４７４】
２０．前記機械学習モデルは、一般化線形モデルを含む、条項１６〜１９のいずれかに記載の非一時的コンピュータアクセス可能記憶媒体。
【０４７５】
本開示の実施形態は、以下の条項の見地からも、説明することができる。
１．システムであって、
プロバイダネットワークの機械学習サービスで、それぞれの観測記録に対応する１つまたは複数の出力変数の値を生成するように機械学習モデルを訓練することであって、前記１つまたは複数の出力変数は、特定の出力変数を含む、前記訓練することと、
それぞれの評価データセットを使用して行われた前記機械学習モデルの１つまたは複数の評価実行に対応して、対話型グラフィカルインターフェースを介して表示される第１の組のデータを生成することであって、前記第１の組のデータは、少なくとも（ａ）前記特定の出力変数の統計的分布、及び（ｂ）前記機械学習モデルの第１の予測の質メトリックを含み、前記対話型グラフィカルインターフェースは、前記機械学習モデルと関連した第１の予測解釈閾値を変更するように制御する第１のグラフィカルを含む、前記生成することと、
前記第１のグラフィカル制御の特定のクライアントの使用の検出に少なくとも部分的に基づいて、前記第１の予測解釈閾値の目標値を判定することと、
前記対話型グラフィカルインターフェースを介して、前記目標値の選択から生じた前記第１の予測の質メトリックへの変更の表示を開始することと、
前記対話型グラフィカルインターフェースを介してクライアントによって送信された要求に応答して、前記目標値を前記機械学習サービスの永続的レポジトリに保存することと、
前記機械学習モデルの後続の実行の１つまたは複数の結果を生成するために保存された前記目標値を利用することと、を行うように構成された１つまたは複数のコンピューティングデバイスを含む、前記システム。
【０４７６】
２．前記機械学習モデルは、観測記録を第１のカテゴリーと第２のカテゴリーとに分類するために使用される二項分類モデルであり、前記第１の予測解釈閾値は、前記第１のカテゴリーと前記第２のカテゴリーとの間のカットオフ境界を指示する、条項１に記載のシステム。
【０４７７】
３．前記第１の予測の質メトリックは、正確さメトリック、再現度メトリック、感度メトリック、真陽性率、特異性メトリック、真陰性率、精度メトリック、偽陽性率、偽陰性率、Ｆ１スコア、適用範囲メトリック、絶対パーセントエラーメトリック、二乗エラーメトリック、またはＡＵＣ（曲線下面積）メトリック、のうちの１つまたは複数を含む、条項１または２に記載のシステム。
【０４７８】
４．前記第１のグラフィカル制御装置は、前記特定のクライアントが前記第１の予測解釈閾値の第１の値と前記第１の予測解釈閾値の第２の値との間の遷移を指示することを可能にする連続変動制御要素を含み、前記１つまたは複数のコンピューティングデバイスは、
前記特定のクライアントが前記第１の値から前記第２の値への遷移を指示したときに、リアルタイムで、前記第１の予測の質メトリックへの対応する変更を指示する前記対話型グラフィカルインターフェースの一部分の更新を開始するようにさらに構成される、条項１〜３のいずれかに記載のシステム。
【０４７９】
５．前記対話型グラフィカルインターフェースは、前記第１の予測の質メトリック及び第２の予測の質メトリックを含む複数の予測の質メトリックの目標値を指示するためのそれぞれの追加の制御装置を含み、前記１つまたは複数のコンピューティングデバイスは、
第１の追加の制御装置を使用して指示された前記第１の予測の質メトリックの目標値の変更に応答して、前記第２の予測の質メトリックへの前記第１の予測の質メトリックの前記目標値の前記変更の影響を示す、前記第２の予測の質メトリックに対応する第２の追加の制御装置の表示の更新を開始するようにさらに構成される、条項１〜４のいずれかに記載のシステム。
【０４８０】
６．方法であって、
１つまたは複数のコンピューティングデバイスによって、
それぞれの観測記録に対応する１つまたは複数の出力変数のそれぞれの値を生成するように機械学習モデルを訓練することであって、前記１つまたは複数の出力変数は、特定の出力変数を含む、前記訓練することと、
前記機械学習モデルの１つまたは複数の評価実行に対応して、対話型グラフィカルインターフェースを介して表示される第１の組のデータを生成することであって、前記第１の組のデータは、少なくとも前記機械学習モデルの第１の予測の質メトリックを含み、前記対話型グラフィカルインターフェースは、前記機械学習モデルと関連した第１の予測解釈閾値を変更するように制御する第１のグラフィカルを含む、前記生成することと、
前記第１のグラフィカル制御装置との特定のクライアントの対話の検出に少なくとも部分的に基づいて、前記第１の予測解釈閾値の目標値を判定することと、
前記対話型グラフィカルインターフェースを介して、前記目標値の選択から生じた前記第１の予測の質メトリックへの変更の表示を開始することと、
前記目標値を使用して、前記機械学習モデルの後続の実行の１つまたは複数の結果を得ることと、を行うことを含む、前記方法。
【０４８１】
７．前記機械学習モデルは、観測記録を第１のカテゴリーと第２のカテゴリーとに分類するために使用される二項分類モデルであり、前記第１の予測解釈閾値は、前記第１のカテゴリーと前記第２のカテゴリーとの間のカットオフ境界を指示する、条項６に記載の方法。
【０４８２】
８．前記第１の予測の質メトリックは、正確さメトリック、再現度メトリック、感度メトリック、真陽性率、特異性メトリック、真陰性率、精度メトリック、偽陽性率、偽陰性率、Ｆ１スコア、適用範囲メトリック、絶対パーセントエラーメトリック、二乗エラーメトリック、またはＡＵＣ（曲線下面積）メトリック、のうちの１つまたは複数を含む、条項６または７に記載の方法。
【０４８３】
９．前記第１のグラフィカル制御装置は、前記特定のクライアントが前記第１の予測解釈閾値の第１の値と前記第１の予測解釈閾値の第２の値との間の遷移を指示することを可能にする連続変動制御要素を含み、前記１つまたは複数のコンピューティングデバイスによって、
前記特定のクライアントが第１の値から第２の値への遷移を指示したときに、リアルタイムで、前記第１の予測の質メトリックへの対応する変更を指示する前記対話型グラフィカルインターフェースの一部分の更新を開始すること、を行うことをさらに含む、条項６〜８のいずれかに記載の方法。
【０４８４】
１０．前記対話型グラフィカルインターフェースは、前記第１の予測の質メトリック及び第２の予測の質メトリックを含む複数の予測の質メトリックの目標値を指示するためのそれぞれの追加の制御装置を含み、前記１つまたは複数のコンピューティングデバイスによって、
第１の追加の制御装置を使用して指示された前記第１の予測の質メトリックの目標値の変更に応答して、前記第２の予測の質メトリックへの前記第１の予測の質メトリックの前記目標値の前記変更の影響を示す、前記第２の予測の質メトリックに対応する第２の追加の制御装置の表示の更新を開始することを行うことをさらに含む、条項６〜９のいずれかに記載の方法。
【０４８５】
１１．前記１つまたは複数のコンピューティングデバイスによって、
第１の追加の制御装置を使用して指示される前記第１の予測の質メトリックの前記目標値の前記変更に応答して、前記第１の予測解釈閾値の変更の表示を開始することを行うことをさらに含む、条項１０に記載の方法。
【０４８６】
１２．前記機械学習モデルは、（ａ）ｎ方分類モデルまたは（ｂ）回帰モデル、のうちの１つである、条項６〜１０のいずれかに記載の方法。
【０４８７】
１３．前記対話型グラフィカルインターフェースは、前記特定の出力変数の値の統計的分布を表示する領域を含み、前記１つまたは複数のコンピューティングデバイスによって、
前記領域と特定のクライアントとの対話に応答して、前記特定の出力変数が前記第１の値を有する観測記録の１つまたは複数の入力変数の値の表示を開始することを行うことをさらに含み、前記特定のクライアントの対話は、前記特定の出力変数の第１の値を指示する、条項６〜１０または１２のいずれかに記載の方法。
【０４８８】
１４．前記１つまたは複数のコンピューティングデバイスによって、
前記対話型グラフィカルインターフェースを介して表示するために、前記機械学習モデルの実行の間に検出された変則を示す警告メッセージを生成することを行うことをさらに含む、条項６〜１０または１２〜１３のいずれかに記載の方法。
【０４８９】
１５．前記１つまたは複数のコンピューティングデバイスによって、
前記第１の予測の質メトリックの表示の後で、前記特定のクライアントによる前記対話型グラフィカルインターフェースの異なる制御装置の使用に応答して、（ａ）前記機械学習モデルの再評価、または（ｂ）前記機械学習モデルの再訓練のうちの１つまたは複数を行うための要求を受信することを行うことをさらに含む、条項６〜１０または１２〜１４のいずれかに記載の方法。
【０４９０】
１６．前記１つまたは複数のコンピューティングデバイスによって、
プロバイダネットワークに実装されている機械学習サービスのレポジトリに、前記目標値を示す記録を保存することを行うことをさらに含む、条項６〜１０または１２〜１５のいずれかに記載の方法。
【０４９１】
１７．１つまたは複数のプロセッサ上で実行されたとき、
機械学習モデルの評価実行に対応して、対話型グラフィカルインターフェースを介して表示される第１の組のデータを生成することであって、前記第１の組のデータは、少なくとも前記機械学習モデルの第１の予測の質メトリックを含み、前記対話型グラフィカルインターフェースは、前記機械学習モデルと関連した第１の解釈閾値を変更するように制御する第１のグラフィカル制御装置を含む、前記生成することと、
前記第１のグラフィカル制御装置との特定のクライアントの対話の検出に基づいて、前記第１の解釈閾値の目標値を判定することと、
前記対話型グラフィカルインターフェースを介して、前記目標値の選択から生じた前記第１の予測の質メトリックへの変更の表示を開始することと、を行う、プログラム命令を記憶する、非一時的コンピュータアクセス可能記憶媒体。
【０４９２】
１８．前記機械学習モデルは、観測記録を第１のカテゴリーと第２のカテゴリーとに分類するために使用される二項分類モデルであり、前記第１の解釈閾値は、前記第１のカテゴリーと前記第２のカテゴリーとの間のカットオフ境界を指示する、条項１７に記載の非一時的コンピュータアクセス可能記憶媒体。
【０４９３】
１９．前記第１の予測の質メトリックは、正確さメトリック、再現度メトリック、感度メトリック、真陽性率、特異性メトリック、真陰性率、精度メトリック、偽陽性率、偽陰性率、Ｆ１スコア、適用範囲メトリック、絶対パーセントエラーメトリック、二乗エラーメトリック、またはＡＵＣ（曲線下面積）メトリック、のうちの１つまたは複数を含む、条項１７または１８に記載の非一時的コンピュータアクセス可能記憶媒体。
【０４９４】
２０．前記第１のグラフィカル制御装置は、前記特定のクライアントが前記第１の解釈閾値の第１の値と前記第１の解釈閾値の第２の値との間の遷移を指示することを可能にする連続変動制御要素を含み、前記命令は、１つまたは複数のプロセッサで実行されたとき、
前記特定のユーザが前記第１の値から前記第２の値への遷移を指示したときに、リアルタイムで、前記第１の予測の質メトリックへの対応する変更を指示する前記対話型グラフィカルインターフェースの一部分の更新を開始する、条項１７〜１９のいずれかに記載の非一時的コンピュータアクセス可能記憶媒体。
【０４９５】
２１．１つまたは複数のプロセッサ上で実行されたとき、
機械学習モデルの評価実行に対応して、顧客との特定の対話セッションの間、対話型インターフェースを介して第１の組のデータを表示することであって、前記第１の組のデータは、少なくとも前記評価実行と関連した第１の予測の質メトリックを含む、前記表示することと、
前記対話型インターフェースと顧客との特定の対話の検出に基づいて、前記特定の対話セッションの間に機械学習サービスのサーバに第１の解釈閾値の目標を送信することと、
前記サーバから、前記目標値の選択から生じた前記第１の予測の質メトリックへの変更の指標を受信することと、
前記対話型インターフェースを介して、前記特定の対話セッションの間の前記第１の予測の質メトリックへの前記変更を指示することと、を行う、プログラム命令を記憶する、非一時的コンピュータアクセス可能記憶媒体。
【０４９６】
２２．前記対話型インターフェースは、グラフィカルインターフェースを含み、前記特定の対話は、前記グラフィカルインターフェースの中に含まれる第１のグラフィカル制御装置の操作を含む、条項２１に記載の非一時的コンピュータアクセス可能記憶媒体。
【０４９７】
２３．前記対話型インターフェースは、コマンドラインインターフェースを含む、条項２１に記載の非一時的コンピュータアクセス可能記憶媒体。
【０４９８】
２４．前記対話型インターフェースは、ＡＰＩ（アプリケーションプログラミングインターフェース）を含む、条項２２に記載の非一時的コンピュータアクセス可能記憶媒体。
【０４９９】
本開示の実施形態は、以下の条項の見地からも、説明することができる。
１．システムであって、
プロバイダネットワークの機械学習サービスで、機械学習モデルと関連した第１の組の観測記録の１つまたは複数の空間効率の良い表現を生成することであって、前記空間効率の良い表現の個々は、前記第１の組の観測記録よりも少ない記憶域を利用し、少なくとも前記第１の組の観測記録のサブセットは、１つまたは複数の変数の第１のグループのそれぞれの値を含む、前記生成することと、
第２の組の観測記録が確率的重複検出法に従って前記第１の組の観測記録の重複の存在に関して調べられる指標を受信することであって、少なくとも前記第２の組の観測記録のサブセットは、１つまたは複数の変数の第１のグループのそれぞれの値を含む、前記受信することと、
前記１つまたは複数の空間効率の良い表現のうちの少なくとも１つの空間効率の良い表現を使用して、前記第２の組の１つまたは複数の観測記録が、前記少なくとも１つまたは複数の変数の前記第１のグループに対して前記第１の組の１つまたは複数の観測記録の重複である非ゼロ確率を示す、前記第２の組の少なくとも一部分に対応する重複メトリックを得ることと、
前記重複メトリックが閾値基準を満たしているという判定に応答して、クライアントへの潜在的重複観測記録の検出の通知を含む、１つまたは複数の応答性動作を実行することと、を行うように構成された、１つまたは複数のコンピューティングデバイスを含む、前記システム。
【０５００】
２．前記１つまたは複数の空間効率の良い表現のうちの特定の空間効率の良い表現は、（ａ）Ｂｌｏｏｍフィルタ、（ｂ）指数フィルタ、または（ｃ）スキップリスト、のうちの１つまたは複数を含む、条項１に記載のシステム。
【０５０１】
３．前記第１の組の１つまたは複数の観測記録は、前記機械学習モデルの訓練データセットを含み、前記第２の組の１つまたは複数の観測記録は、前記機械学習モデルの試験データセットを含む、条項１または２に記載のシステム。
【０５０２】
４．前記１つまたは複数の空間効率の良い表現のうちの特定の空間効率の良い表現は、Ｂｌｏｏｍフィルタを含み、前記１つまたは複数のコンピューティングデバイスは、
前記Ｂｌｏｏｍフィルタを生成する前に、（ａ）前記第１の組の中に含まれる観測記録のおおよその回数、及び（ｂ）前記第１の組の個々の観測記録のおおよそのサイズを推定し、
前記おおよその回数または前記おおよそのサイズに少なくとも部分的に基づいて、（ａ）前記Ｂｌｏｏｍフィルタの中に含まれるいくつかのビット、（ｂ）前記Ｂｌｏｏｍフィルタを生成するために使用されるいくつかのハッシュ関数、または（ｃ）前記Ｂｌｏｏｍフィルタを生成するために使用される特定の種類のハッシュ関数のうちの１つまたは複数を含む、前記Ｂｌｏｏｍフィルタを生成するために使用される１つまたは複数のパラメータを判定するようにさらに構成される、条項１〜３のいずれかに記載のシステム。
【０５０３】
５．前記１つまたは複数の応答性動作は、（ａ）前記クライアントへの、重複である非ゼロ確率を有すると識別された前記第２の組の特定の観測記録の指標の送信、（ｂ）前記第２の組を使用して特定の機械学習タスクを行う前に、前記第２の組からの、重複である非ゼロ確率を有すると識別された特定の観測記録の削除、（ｃ）前記クライアントへの、前記第２の組からの重複である非ゼロ確率を有すると識別された１つまたは複数の観測記録の削除と関連した潜在的予測エラーの指標の送信、または（ｄ）前記第２の組と関連した機械学習ジョブの取り消しのうちの１つまたは複数を含む、条項１〜４のいずれかに記載のシステム。
【０５０４】
６．方法であって、
１つまたは複数のコンピューティングデバイスによって、
機械学習サービスで、第１の組の観測記録の１つまたは複数の代替表現を生成することであって、少なくとも１つの代替表現は、前記第１の組の観測記録とは異なる量のスペースを占める、前記生成することと、
前記１つまたは複数の代替表現のうちの少なくとも１つの代替表現を使用して、それぞれの値が第１の組の少なくともいくつかの観測記録の中に含まれる１つまたは複数の変数に対して、前記第２の組の１つまたは複数の観測記録が前記第１の組のそれぞれの観測記録の重複である非ゼロ確率を示す、前記第２の組の観測記録の少なくとも一部分に対応する重複メトリックを得ることと、
前記重複メトリックが閾値基準を満たしているという判定に応答して、１つまたは複数の応答性動作を実行することと、を行うことを含む、前記方法。
【０５０５】
７．前記１つまたは複数の代替表現のうちの特定の代替表現は、（ａ）Ｂｌｏｏｍフィルタ、（ｂ）指数フィルタ、または（ｃ）スキップリスト、のうちの１つまたは複数を含む、条項６に記載の方法。
【０５０６】
８．前記第１の組の１つまたは複数の観測記録は、特定の機械学習モデルの訓練データセットを含み、前記第２の組の１つまたは複数の観測記録は、前記特定の機械学習モデルの試験データセットを含む、条項６または７に記載の方法。
【０５０７】
９．前記１つまたは複数の代替表現のうちの特定の代替表現は、Ｂｌｏｏｍフィルタを含み、前記１つまたは複数のコンピューティングデバイスによって、
前記Ｂｌｏｏｍフィルタを生成する前に、（ａ）前記第１の組の中に含まれる観測記録のおおよその回数、及び（ｂ）前記第１の組の個々の観測記録のおおよそのサイズを推定し、
前記おおよその回数または前記おおよそのサイズに少なくとも部分的に基づいて、（ａ）前記Ｂｌｏｏｍフィルタの中に含まれるいくつかのビット、（ｂ）前記Ｂｌｏｏｍフィルタを生成するために使用されるいくつかのハッシュ関数、または（ｃ）前記Ｂｌｏｏｍフィルタを生成するために使用される特定の種類のハッシュ関数のうちの１つまたは複数を含む、前記Ｂｌｏｏｍフィルタを生成するために使用される１つまたは複数のパラメータを判定することを行うことをさらに含む、条項６〜８のいずれかに記載の方法。
【０５０８】
１０．前記１つまたは複数の応答動作は、（ａ）潜在的重複観測記録の検出をクライアントに通知すること、（ｂ）重複である非ゼロ確率を有すると識別された前記第２の組の特定の観測記録の指標を提供すること、（ｃ）前記第２の組を使用して特定の機械学習タスクを行う前に、前記第２の組から、重複である非ゼロ確率を有すると識別された特定の観測記録を削除すること、（ｄ）クライアントに、前記第２のデータセットからの重複である非ゼロ確率を有すると識別された１つまたは複数の観測記録の削除と関連した潜在的予測エラーの指標を提供すること、または（ｅ）前記第２の組と関連した機械学習ジョブを中止すること、のうちの１つまたは複数を含む、条項６〜９のいずれかに記載の方法。
【０５０９】
１１．前記１つまたは複数の応答性動作の特定の応答性動作は、前記第２の組の特定の観測記録が重複である確信レベルの指標の提供を含む、条項６〜１０のいずれかに記載の方法。
【０５１０】
１２．前記１つまたは複数の変数のグループは、値が機械学習モデルによって予測される出力変数を除外する、条項６〜１１のいずれかに記載の方法。
【０５１１】
１３．重複メトリックが閾値基準を満たしているという前記判定は、（ａ）重複である非ゼロ確率を有すると認識された前記第２の組の観測記録の数が、第１の閾値を超えているという判定、または（ｂ）重複である非ゼロ確率を有すると識別された前記第２の組の観測記録の断片が、第２の閾値を超えているという判定、のうちの１つまたは複数を含む、条項６〜１２のいずれかに記載の方法。
【０５１２】
１４．前記第１の組の観測記録の前記１つまたは複数の代替表現の前記生成は、
前記第１の組の観測記録を複数の区分に細分することと、
前記機械学習サービスのそれぞれのサーバで、前記複数の区分の個々に対応するそれぞれのＢｌｏｏｍフィルタを生成することと、
前記それぞれのサーバで生成されたＢｌｏｏｍフィルタを統合Ｂｌｏｏｍフィルタへと組み合わせることと、を含む、条項６〜１３のいずれかに記載の方法。
【０５１３】
１５．前記１つまたは複数のコンピューティングデバイスによって、
プログラム的インターフェースを介して、（ａ）前記閾値基準が満たされているかを判定するために前記機械学習サービスによって使用されるパラメータ、または（ｂ）前記１つまたは複数の応答性動作のうちの１つまたは複数の前記クライアントからの指標を受信することを行うことをさらに含む、条項６〜１４のいずれかに記載の方法。
【０５１４】
１６．前記第１の組の観測記録及び前記第２の組の観測記録は、（ａ）特定の機械学習モデルの訓練データセット、（ｂ）特定の機械学習モデルの試験データセット、または（ｃ）特定の機械学習モデルの訓練データセット及び前記特定の機械学習モデルの試験データセットが得られるソースデータセットのうちの１つのそれぞれのサブセットである、条項６〜１５のいずれかに記載の方法。
【０５１５】
１７．１つまたは複数のプロセッサ上で実行されたとき、
機械学習サービスで、第１の組の観測記録の１つまたは複数の観測記録のコンテンツの少なくとも一部分が第２の組の観測記録内で重複しているかどうかを検出するための分析が行われることを判定し、
それぞれの値が前記第１の組の少なくともいくつかの観測記録の中に含まれる１つまたは複数の変数に対して、前記第２の組の１つまたは複数の観測記録が前記第１の組のそれぞれの観測記録の重複である非ゼロ確率を示す、前記第２の組の観測記録の少なくとも一部分に対応する重複メトリックを得、
前記重複メトリックが閾値基準を満たしているという判定に応答して、１つまたは複数の応答性動作を実行する、プログラム命令を記憶する、非一時的コンピュータアクセス可能記憶媒体。
【０５１６】
１８．前記代替のメトリックを得るために、前記命令は、前記１つまたは複数のプロセッサで実行されたとき、前記第１の組の観測記録の代替表現を生成し、前記代替表現は、（ａ）Ｂｌｏｏｍフィルタ、（ｂ）指数フィルタ、または（ｃ）スキップリスト、のうちの１つまたは複数を含む、条項１７に記載の非一時的コンピュータアクセス可能記憶媒体。
【０５１７】
１９．前記第１の組の１つまたは複数の観測記録は、特定の機械学習モデルの訓練データセットを含み、前記第２の組の１つまたは複数の観測記録は、前記特定の機械学習モデルの試験データセットを含む、条項１７または１８に記載の非一時的コンピュータアクセス可能記憶媒体。
【０５１８】
２０．前記１つまたは複数の応答性動作の特定の応答性動作は、前記第２の組の特定の観測記録が重複である確信レベルの指標の提供を含む、条項１７〜１９のいずれかに記載の非一時的コンピュータアクセス可能記憶媒体。
【０５１９】
結論
様々な実施形態は、命令の受信、送信、もしくは記憶、及び／またはコンピュータアクセス可能媒体に関する前述の説明に従って実行されたデータをさらに含んでも良い。概して、コンピュータアクセス可能媒体は、磁気メディアまたは光学式メディア、例えば、ディスクまたはＤＶＤ／ＣＤ−ＲＯＭ、ＲＡＭ（例えばＳＤＲＡＭ、ＤＤＲ、ＲＤＲＡＭ、ＳＲＡＭ等）、ＲＯＭ等の揮発性メディアもしくは非揮発性メディア等の記憶メディアまたはメメモリメディアと、ネットワーク及び／または無線リンク等の通信媒体を介して伝えられる電気信号、電磁信号、またはデジタル信号等の送信メディアまたは送信信号と、を含んでも良い。
【０５２０】
本明細書で図に例示され、説明される様々な方法は、本方法の例となる実施形態を表す。本方法は、ソフトウェア、ハードウェア、またはこれらの組み合わせで実行されても良い。方法の順序は、変更されても良く、様々な要素が、追加、再順位付け、組み合わせ、除外、変更等されても良い。
【０５２１】
様々な修正及び変更は、本開示の利益を得る当業者にとって明らかであるとおり加えられても良い。全てのそのような修正及び変更を包含し、したがって、上記の説明は、制限的な意味よりもむしろ、例示的と見なされることが意図される。
【図１】
0006445055.tif 000002
【図２】
0006445055.tif 000003
【図３】
0006445055.tif 000004
【図４】
0006445055.tif 000005
【図５】
0006445055.tif 000006
【図６】
0006445055.tif 000007
【図７】
0006445055.tif 000008
【図８】
0006445055.tif 000009
【図９ａ】
0006445055.tif 000010
【図９ｂ】
0006445055.tif 000011
【図１０ａ】
0006445055.tif 000012
【図１０ｂ】
0006445055.tif 000013
【図１１】
0006445055.tif 000014
【図１２】
0006445055.tif 000015
【図１３】
0006445055.tif 000016
【図１４】
0006445055.tif 000017
【図１５】
0006445055.tif 000018
【図１６】
0006445055.tif 000019
【図１７】
0006445055.tif 000020
【図１８】
0006445055.tif 000021
【図１９】
0006445055.tif 000022
【図２０ａ】
0006445055.tif 000023
【図２０ｂ】
0006445055.tif 000024
【図２１】
0006445055.tif 000025
【図２２】
0006445055.tif 000026
【図２３】
0006445055.tif 000027
【図２４】
0006445055.tif 000028
【図２５】
0006445055.tif 000029
【図２６】
0006445055.tif 000030
【図２７】
0006445055.tif 000031
【図２８】
0006445055.tif 000032
【図２９】
0006445055.tif 000033
【図３０】
0006445055.tif 000034
【図３１】
0006445055.tif 000035
【図３２】
0006445055.tif 000036
【図３３】
0006445055.tif 000037
【図３４】
0006445055.tif 000038
【図３５】
0006445055.tif 000039
【図３６】
0006445055.tif 000040
【図３７】
0006445055.tif 000041
【図３８】
0006445055.tif 000042
【図３９】
0006445055.tif 000043
【図４０】
0006445055.tif 000044
【図４１】
0006445055.tif 000045
【図４２】
0006445055.tif 000046
【図４３】
0006445055.tif 000047
【図４４】
0006445055.tif 000048
【図４５】
0006445055.tif 000049
【図４６】
0006445055.tif 000050
【図４７】
0006445055.tif 000051
【図４８】
0006445055.tif 000052
【図４９】
0006445055.tif 000053
【図５０】
0006445055.tif 000054
【図５１】
0006445055.tif 000055
【図５２】
0006445055.tif 000056
【図５３】
0006445055.tif 000057
【図５４】
0006445055.tif 000058
【図５５】
0006445055.tif 000059
【図５６】
0006445055.tif 000060
【図５７】
0006445055.tif 000061
【図５８】
0006445055.tif 000062
【図５９】
0006445055.tif 000063
【図６０】
0006445055.tif 000064
【図６１】
0006445055.tif 000065
【図６２】
0006445055.tif 000066
【図６３】
0006445055.tif 000067
【図６４ａ】
0006445055.tif 000068
【図６４ｂ】
0006445055.tif 000069
【図６５】
0006445055.tif 000070
【図６６】
0006445055.tif 000071
【図６７】
0006445055.tif 000072
【図６８】
0006445055.tif 000073
【図６９】
0006445055.tif 000074
【図７０】
0006445055.tif 000075
【図７１ａ−７１ｂ】
0006445055.tif 000076
【図７２】
0006445055.tif 000077
【図７３】
0006445055.tif 000078
【図７４】
0006445055.tif 000079
【図７５】
0006445055.tif 000080
【図７６】
0006445055.tif 000081