多数のユーザ、ならびに多岐にわたるアルゴリズム及び問題の大きさをサポートするように設計された個別化可能な使用が容易な機械学習サービス(MLS)のための方法及び装置の様々な実施形態が記載される。一実施形態において、ユーザがモデルの調整、または高度な統計もしくは人工知能技術の学習に多くの時間及び労力を費やす必要なしに、機械学習のベストプラクティスを比較的早く使用開始するように専門家ではないユーザを誘導するいくつかのMLSプログラム的インターフェース(例えば、アプリケーションプログラミングインターフェース(API))は、本サービスによって定義されても良い。インターフェースは、例えば、機械学習モデルを構築、訓練、及び使用するために使用される手順の様々な態様のための規定の設定またはパラメータに、非専門家が依存することを可能にしても良く、それらの規定は、類似の種類の機械学習問題に対処している他の実務者が積み重ねてきた経験から得られる。同時に、熟練ユーザは、入力記録取り扱い、特徴処理、モデルの構築、実行、及び評価等の様々な種類の機械学習タスクのために熟練ユーザが使用することを望むパラメータまたは設定を個別化しても良い。少なくとも一部の実施形態において、様々な種類の機械学習タスクを実装した定義済みライブラリの使用に加えて、または、その代わりに、MLSクライアントは、例えば、自身の個別化された関数を本サービスに登録することにより、本サービスの組み込み能力を拡張することができても良い。そのような個別化されたモジュールまたは関数を実装したクライアントのビジネスニーズまたは目標に応じて、一部の事例では、モジュールが、本サービスの他のユーザと共有されても良い一方で、他の事例では、個別化されたモジュールの使用は、個別化されたモジュールの実装者/所有者に制限されても良い。
一部の実施形態において、MLSユーザがデータセットに適用させることを望む様々な特徴処理行程をユーザが示すことを可能にする、比較的簡単なレシピ言語をサポートしても良い。そのようなレシピは、テキスト形式で指定され、次いで必要に応じて、異なるリソースセットの異なるデータセットで再使用することができる実行可能な形式にコンパイルされても良い。少なくとも一部の実施形態において、MLSは、極秘データのための高レベルの隔離及び機密保護を依然として確保すると同時に、テラバイト規模またはペタバイト規模のデータセット及びそれに対応する大きな計算必要条件に関連する機械学習問題が、比較的明白な様式で対処されることを可能にする、世界中に分布している数百、数千のコンピューティングデバイス及び記憶装置を有する多数のデータセンタを備えるプロバイダネットワークに実装されても良い。少なくとも一部の実施形態において、ウェブサービスインターフェース、データベースサービス、仮想コンピューティングサービス、並列コンピューティングサービス、高性能コンピューティングサービス、負荷分散サービス等を介してアクセス可能な恣意的に大きなデータオブジェクトをサポートしているストレージサービス等のプロバイダネットワークの既存のサービスが、様々な機械学習タスクのために使用されても良い。高可用性及びデータ耐久性必要条件を有するMLSクライアントに関して、機械学習データ(例えば、生入力データ、変換/操作された入力データ、中間結果、もしくは最終結果)及び/またはモデルは、以下に記載されるように異なる地理的位置または可用性コンテナにわたって複製されても良い。MLSクライアントのデータ機密保護への要求を満たすために、例えばクライアントの機械学習タスクがプロバイダネットワークのサービスの一部のために典型的に使用され得るマルチテナント手法の代わりに、隔離されたシングルテナント様式で実行される一部の実施形態において、ユーザ定義関数または第三者関数を実装した選択されたデータセット、モデル、またはコードは、プロバイダネットワークによって定義されたセキュリティコンテナに制限されても良い。「MLS制御プレーン」という用語は、本明細書において、MLSのクライアントの代わりに様々な種類の機械学習機能性を実装し、かつ、例えばリソースの適切なセットをクライアントの要求を満たすように設定することを確実にする、不具合を検出し回復する、請求書を発行する等の、外部MLSクライアントに必ずしも見えない管理タスクに関与するハードウェアエンティティ及び/またはソフトウェアエンティティのコレクションを指すのに使用され得る。「MLSデータプレーン」という用語は、クライアントによって要求された動作のために使用される入力データの処理、転送、及び記憶、ならびにクライアントによって要求された動作の結果として生成された出力データの処理、転送、及び記憶のために使用される経路及びリソースを指し得る。
一部の実施形態に従って、機械学習タスクに関連するいくつかの異なる種類のエンティティが、MLSプログラム的インターフェースを介して、生成、変更、読み出し、実行、及び/または問い合わせ/検索されても良い。一実施形態においてサポートされているエンティティタイプには、数ある中でも、データソース(例えば、機械学習のための入力記録を得ることができる位置もしくはオブジェクトの記述子)、入力データを分析することによって生成された統計のセット、レシピ(例えば、モデルを訓練するための入力データに適用される特徴処理変換の記述子)、処理計画(例えば、様々な機械学習タスクを実行するためのテンプレート)、(予測子とも称され得る)モデル、レシピ及び/もしくはモデルのために使用されるパラメータセット、予測もしくは評価等のモデル実行結果、ストリーミング配信もしくはリアルタイムデータで使用されるモデルのためのオンラインアクセスポイント、及び/またはエイリアス(例えば、以下に記載されるように、使用のために「発行された」モデルバージョンへのポインタ)が挙げられ得る。これらのエンティティタイプのインスタンスは、本明細書で機械学習人工物と称されることもあり、例えば、特定のレシピまたは特定のモデルが各々、人工物と見なされることもある。エンティティタイプの各々は、以下でさらに詳細に論じられる。
MLSプログラム的インターフェースは、ユーザが所与の機械学習ワークフローのいくつかの関連タスク、例えば、データソースからの記録の抽出、記録の統計の生成、特徴処理、モデル訓練、及び予測のためのタスク等のためのそれぞれの要求を提出することを可能にしても良い。プログラム的インターフェース(例えばAPI)の所与の呼び出しは、サポートされているタイプのエンティティの1つまたは複数のインスタンスの1つまたは複数の動作またはタスクのための要求に対応しても良い。いくつかのタスク(及びその対応するAPI)は、複数の異なるエンティティタイプを伴っても良く、例えば、データソースの作成を要求するAPIは、データソースエンティティインスタンス及び統計エンティティインスタンスの生成をもたらしても良い。所与のワークフローのタスクの一部は、他のタスクの結果に依存しても良い。データの量、及び/または行われる処理の性質によって、一部のタスクは、完了するのに数時間、またはさらには数日間かかり得る。少なくとも一部の実施形態において、非同期手法が、タスクをスケジューリングするためにとられても良く、ここでは、MLSクライアントは、先に提出されたタスクが完了するのを待たずに、先に提出されたタスクの出力に依存する追加のタスクを提出することができる。例えば、クライアントは、たとえT2の実行が少なくとも部分的にT1の結果に依存し、T3の実行が少なくとも部分的にT2の結果に依存するとしても、先に提出されたタスクT1が完了する前に、タスクT2及びT3のためのそれぞれの要求を提出しても良い。そのような実施形態において、MLSが、(いずれかの依存関係が存在する場合)その依存関係が満たされたときにのみ、所与のタスクが、実行に対してスケジュールされることを確実にすることを担当しても良い。
ジョブオブジェクトの待ち行列またはコレクションは、一部の実装例において、要求されたタスクの内部表現を記憶するために使用されても良い。本明細書で使用される場合、「タスク」という用語が、クライアントからの所与の要求に対応する一組の論理動作を指す一方で、「ジョブ」という用語は、MLS内のタスクの内部表現を指す。一部の実施形態において、所与のジョブオブジェクトは、特定のプログラム的インターフェースのクライアントの呼び出し、及び他のジョブへの依存性の結果として行われる動作を表しても良い。MLSは、対応する動作が開始される前に所与のジョブの依存関係が満たされていることを確実にすることに関与しても良い。MLSはまた、そのような実施形態において、各ジョブの処理計画の生成、その計画のための適切な組のリソース(例えば、CPU/コア、記憶装置、またはメモリ)の識別、計画の実行のスケジューリング、結果の収集、適切な提供先/記憶先への結果の提供/記憶、及び少なくとも一部の事例では、状態の最新情報または要求元クライアントへの応答の提供にも関与しても良い。MLSはまた、一部の実施形態において、1つのクライアントのジョブの実行が他のクライアントのジョブの実行に影響を与えないか、または干渉しないことを確実にすることにも関与しても良い。一部の実施形態において、タスク間の部分的依存性は、例えば、タスクのシーケンス(T1、T2、T3)でサポートされても良く、T2は、T1の部分的完了に依存しても良く、したがって、T2は、T1が完了する前にスケジュールされても良い。例えば、T1は、統計計算の2つの段階またはパスP1及びP2を含んでも良く、T2は、段階P2が完了するのを待たずに、段階P1が完了したらすぐに実行することができ得る。一部の事例では、T1(例えば、段階P1の間に計算された少なくともいくらかの統計)の部分的結果は、タスク全てが完了することを待つ代わりに、部分的結果が利用可能になったらすぐに要求元クライアントに提供されても良い。一部の実装例において、MLSの複数のクライアントからの要求に対応するジョブを含む単一の共有待ち行列が、使用されても良い一方で、他の実装例において、それぞれの待ち行列は、異なるクライアントのために使用されても良い。一部の実装例において、オブジェクトコレクションをモデル化するために使用され得るリストまたは他のデータ構造は、待ち行列の代わりか、または待ち行列に加えて、スケジュールされるジョブのコンテナとして使用されても良い。一部の実施形態において、クライアントからの単一のAPI要求は、MLSによるいくつかの異なるジョブオブジェクトの生成をもたらしても良い。少なくとも1つの実施形態において、全てのクライアントAPI要求がジョブを使用して実行され得るわけではなく、例えば、比較的短いか、または軽いタスクは、ジョブ作成及び非同期ジョブスケジューリングのオーバーヘッドを被ることなしに、対応する要求に関して同期的に行われても良い。
一部の実施形態において、MLSによって実行されたAPIは、クライアントが、サポートされている様々なエンティティタイプの少なくとも一部のインスタンスの作成、インスタンスの属性の問い合わせ、インスタンスの読み出し、更新/変更、検索、または削除するための要求を提出することを可能にしても良い。例えば、「DataSource」というエンティティタイプに関して、「createDataSource」、(データソースの属性の対を得るための)「describeDataSource」、「updateDataSource」、「searchForDataSource」、及び「deleteDataSource」に類似したそれぞれのAPIは、MLSによってサポートされても良い。APIの同様のセットが、レシピ、モデル等のためにサポートされても良い。一部のエンティティタイプは、様々な実施形態において、「executeModel」または「executeRecipe」等のエンティティを実行、すなわち走らせるためのAPIも有しても良い。APIは、大部分は、(例えば、所与のAPIを使用するための正しい方法が、非専門家にとって明らかであるように)学習及び自己文書化が容易であるように、より複雑なタスクの実施が困難になりすぎることなく、大部分の共通タスクの実施を簡単にすることに重点を置いて設計されることがある。少なくとも一部の実施形態において、APIの複数のバージョン(例えば、1つのバージョンは、(ネットワーキングスタックのアプリケーションレベルの)ワイヤプロトコルのため、別のバージョンはJava(商標)ライブラリまたはSDK(ソフトウェア開発キット)として、別のバージョンはPythonライブラリとして、以下同様)が、サポートされても良い。API要求は、様々な実装例において、HTTP(Hypertext Transfer Protocol)、HTTPS(高安全性HTTP)、Javascript、またはXML等を使用して、クライアントによって提出されても良い。
一部の実施形態において、一部の機械学習モデルは、例えば、モデル開発者またはデータ科学者のグループによってMLS APIを使用して作成及び訓練され、次いでユーザの別のコミュニティによる使用のために発行されても良い。モデルの作成者だけでなく、より幅広い対象ユーザによる使用のためのモデルの発行を容易にするために、より幅広い対象ユーザの未熟な構成員によるモデルへの不適切である可能性がある変更を防ぐ一方で、そのような実施形態において、「エイリアス」エンティティタイプがサポートされても良い。一実施形態において、エイリアスは、変更不能な名前(例えば、「SentimentAnalysisModel1」)、ならびにMLS人工物レポジトリ内に既に作成及び記憶されているモデルへのポインタ(例えば、「samModel−23adf−2013−12−13−08−06−01」、MLSによってモデルのために生成された内部識別子)を含んでも良い。異なるセットのエイリアスへの許可は、エイリアスが実行のために利用可能にされているユーザに与えられるよりもむしろ、モデル開発者に与えられても良い。例えば、一実装例において、ビジネスアナリストグループの構成員が、モデルのエイリアス名を使用してモデルを実行させることを許可されても良いが、ポインタを変更することを許可されなくても良い一方で、モデル開発者は、ポインタを変更し、及び/または基礎となるモデルを変更することを許可されても良い。ビジネスアナリストのために、エイリアスを介して公開された機械学習モデルが、様々な入力データセットの有益な予測を提供することが見込まれる、専門家によって既に検証された「ブラックボックス」ツールを表しても良い。ビジネスアナリストは、そのようなモデルの内部作業に、特に関心がない場合がある。モデル開発者は、様々なアルゴリズム、パラメータ、及び/または入力データセットを用いて実験し続けて、基礎となるモデルの改善されたバージョンを得ても良く、ビジネスアナリストによって得られた予測の質を改善するために、ポインタが改良されたバージョンを指すように変更することができても良い。少なくとも一部の実施形態において、エイリアスユーザを基礎となるモデルへの変更から隔離するために、MLSは、(a)エイリアスがうまく訓練されたモデルのみを指すことができ、(b)エイリアスポインタが変更されたとき、元のモデル及び新しいモデルの両方(すなわち、古いポインタ及び新しいポインタによって指されているそれぞれのモデル)が同じ種類の入力を使用し、同じ種類の予測(例えば、二項分類、多クラス分類、または回帰)を提供することを保証しても良い。一部の実装例において、所与のモデルは、エイリアスがモデルのために作成された場合、それ自体が変更不可と指定されても良く、例えば、そのような実装例において、ポインタ「samModel−23adf−2013−12−13−08−06−01」によって参照されたモデルは、エイリアスが作成された後にそのモデルの開発者によってさえも、もはや変更することができなくても良い。モデルの開発及びモデルの使用に関する役割及び能力のそのような明確な分離は、単に事業組織内のモデルを開発するのに十分に熟練した人たちよりも多くの対象ユーザが機械学習モデルから利益を享受することを可能にし得る。
いくつかの選択肢が、所与のジョブに対応する動作がMLSサーバにマッピングされる方式に関して利用可能であって良い。例えば、より高い性能を達成するために、多くの異なるサーバ間の所与のジョブのために必要な作業を区分することが可能であっても良い。一部の実施形態において、ジョブのための処理計画の開発の一部として、MLSは、ジョブのための作業負荷分配戦略を選択しても良い。様々な実施形態において、作業負荷分配のために決定されたパラメータは、ジョブの性質に基づいて異なっても良い。そのような要因には、例えば、(a)処理のパスの数の判定、(b)並列化レベルの判定(例えば、Map−Reduce技術を使用して実行されるジョブの場合、「マッパー」及び「レデューサ」の数)、(c)ジョブを終了するために使用される収束基準の判定、(d)ジョブの間に生成された中間データの目標耐久性レベルの判定、または(e)ジョブのリソース容量限界の判定(例えば、MLSサーバプール内で利用可能なサーバの数、もしくはクライアントの予算限度額に基づいてジョブに割り当てられ得るサーバの最大数)、が含まれ得る。作業負荷戦略が選択された後、使用されるリソースの実際のセットが、戦略に従って識別されても良く、ジョブの動作は、識別されたリソースにスケジュールされても良い。一部の実施形態において、計算サーバ及び/またはストレージサーバのプールは、MLSのために事前に構成されても良く、所与のジョブのためのリソースは、そのようなプールから選択されても良い。他の実施形態において、リソースは、自身に代わってジョブを実行させたクライアントに割り当てられたプールから選択されても良く、例えば、クライアントは、API要求を提出する前にプロバイダネットワークのコンピューティングサービスからリソースを取得しても良く、ジョブスケジューリングのために、取得したリソースの指標をMLSに提供しても良い。クライアント提供のコード(例えば、必ずしもMLSによって徹底的に試験されていない、及び/またはMLSのライブラリに含まれていないコード)が所与のジョブのために使用されている場合、一部の実施形態において、クライアントは、クライアント提供のコードを実行するあらゆる副作用が、他のクライアントに影響を与える可能性がある代わりに、クライアント自体のリソースに制限され得るように、ジョブのために使用されるリソースを取得する必要があっても良い。
システム環境例
図1は、少なくとも一部の実施形態に従った、機械学習サービス(MLS)の様々な構成要素が実装され得るシステム環境例を例示する。システム100内で、MLSは、様々な機械学習タスクまたは動作のための要求111を提出するために、クライアント164(例えば、MLSの顧客によって所有されているか、またはMLSの顧客に割り当てられたハードウェアもしくはソフトウェアエンティティ)によって使用され得る一組のプログラム的インターフェース161(例えば、API、コマンドラインツール、ウェブページ、もしくはスタンドアロンGUI)を実装しても良い。MLSの管理または制御プレーン部分は、クライアント要求111を承認し、矢印112によって示されるように対応するジョブオブジェクトをMLSジョブ待ち行列142内に挿入するMLS要求ハンドラ180を含んでも良い。一般に、MLSの制御プレーンは、(要求ハンドラ、作業負荷分配戦略セレクタ、1つまたは複数のジョブスケジューラ、メトリックスコレクタ、他のサービスとのインターフェースとして機能するモジュールを含む)複数の構成要素を含んでも良く、これはMLSマネージャとも総じて称され得る。MLSのデータプレーンは、例えば、少なくとも、プール(複数可)185のサーバのサブセット、入力データセットを記憶するために使用される記憶装置、中間結果または最終結果(これらの一部は、MLS人工物レポジトリの一部であり得る)、ならびにクライアント入力データ及び結果を転送するために使用されるネットワーク経路を含んでも良い。
先に言及したように、各ジョブオブジェクトは、プログラム的インターフェース161の呼び出しの結果として行われる1つまたは複数の動作を指示しても良く、一部の事例では、所与のジョブのスケジューリングは、少なくとも先に生成されたジョブの動作のサブセットの正常完了に依存しても良い。少なくとも一部の実装例において、ジョブ待ち行列142は、ジョブが待ち行列から削除されるためには所与のジョブの依存性必要条件が満たされなければならないというさらなる制約付きで、先入れ先出し(FIFO)待ち行列として管理されても良い。一部の実施形態では、いくつかの異なるクライアントの代わりに作成されたジョブが、単一の待ち行列内に入れられても良い一方で、他の実施形態では、複数の待ち行列が、維持されても良い(例えば、使用されるプロバイダネットワークの各データセンタ内に1つの待ち行列、または1人の顧客当たり1つの待ち行列)。描写される実施形態において、要求111の提出に関して非同期的に、依存性必要条件が満たされた次のジョブは、矢印113によって示されるように、ジョブ待ち行列142から削除されても良く、作業負荷分配戦略を含む処理計画は、ジョブのために識別されても良い。先に言及したようにMLS制御プレーンの構成要素でもあり得る作業負荷分配戦略層175は、ジョブのより低いレベルの動作が1つまたは複数の計算サーバ(例えば、プール185から選択されたサーバ)間で分配される方式、及び/またはジョブのために分析もしくは操作されたデータが、1つまたは複数の記憶装置もしくはサーバ間で分配される方式を判定しても良い。処理計画が生成され、ジョブのために利用されるリソースの適切なセットが識別された後、ジョブの動作が、リソースにスケジュールされても良い。一部の実施形態において、一部のジョブの結果は、矢印142によって示されるように、レポジトリ120内にMLS人工物として記憶されても良い。
少なくとも1つの実施形態において、一部の比較的単純な種類のクライアント要求111は、(矢印141によって示されるように)MLS要求ハンドラ180による、MLS人工物レポジトリ120内の対応する人工物の即時の生成、検索、記憶、または変更を生じても良い。したがって、ジョブ待ち行列142内へのジョブオブジェクトの挿入は、全ての種類のクライアント要求に対して必要でなくても良い。そのような実施形態において、例えば、既存のモデルのエイリアスの作成または削除は、新しいジョブの作成を必要としなくても良い。図1に示される実施形態において、クライアント164は、例えば、プログラム的インターフェース161を介して読み出し要求118を投入することによって、少なくともレポジトリ120内に記憶された人工物のサブセットを見ることができても良い。
クライアント要求111は、動作を行うために、MLSによって使用されても良い1つまたは複数のパラメータ、例えばデータソース定義150、特徴処理変換レシピ152、または特定の機械学習アルゴリズムのために使用されるパラメータ154を指示しても良い。一部の実施形態において、パラメータをそれぞれ表す人工物はまた、レポジトリ120内にも記憶されても良い。クライアント164からのAPI要求のシーケンスに対応しても良い一部の機械学習ワークフローは、矢印114によって示されるように、MLSの入力記録ハンドラ160による生データレポジトリ130(例えば、データソース定義150で指示されたレポジトリ)からの入力データ記録の抽出及びクレンジングを含んでも良い。ワークフローのこの第1の部分は、クライアント164からの特定のAPI呼び出しに応答して開始しても良く、プール185からの第1の組のリソースを使用して実行されても良い。入力記録ハンドラは、例えば、MLSのI/O(入力/出力)ライブラリに定義されている一組の関数に従って、データ記録の分割、データ記録のサンプリング等のタスクを行なっても良い。入力データは、例えば、文字列、数値データ型(例えば、実数または整数)、Boolean、2値データ型、カテゴリーデータ型、画像処理データ型、音声処理データ型、生物情報学データ型、Unstructured Information Managementアーキテクチャ(UIMA)に準拠しているデータ型等の構造化データ型等の様々なデータ型のうちのいずれかの変数を含むデータ記録を含んでも良い。少なくとも一部の実施形態において、MLSに到着する入力データは、暗号化または圧縮されても良く、入力データ記録が機械学習タスクのために使用され得る前に、MLS入力データ取り扱い機が、解読または解凍を行う必要があっても良い。暗号化が使用される一部の実施形態において、MLSクライアントは、MLSがデータ記録を解読することが可能になるように、解読メタデータ(例えば、キー、パスワード、または他の証明書)をMLSに提供する必要があっても良い。同様に、一部の実装例において、使用される圧縮技法の指標は、MLSが入力データ記録を適切に解凍することを可能にするために、クライアントによって提供されても良い。入力記録ハンドラによって生成された出力は、(矢印115によって示されるように)特徴プロセッサ162に供給されても良く、ここで、プール185からの別のセットのリソースを使用して、レシピ152に従って一組の変換動作が行われても良い162。様々な特徴処理手法のうちのいずれかが、問題領域に応じて使用されても良く、例えば、コンピュータビジョン問題のために典型的に使用されるレシピは、音声認識問題、自然言語処理等のために使用されるものとは異なっても良い。次いで、特徴処理変換の出力116が、プール185からのさらに別のセットのリソースを使用して、アルゴリズムパラメータ154に従って実行されても良い選択された機械学習アルゴリズム166のための入力として使用されても良い。例えば、ランダムフォレストアルゴリズム、ニューラルネットワークアルゴリズム、及び確率的勾配降下アルゴリズム等を含む多岐にわたる機械学習アルゴリズムは、MLSライブラリによってネイティブにサポートされても良い。少なくとも1つの実施形態において、MLSは、拡張可能に設計されても良く、例えば、クライアントは、入力記録取り扱い、特徴処理のために、またはMLSによってネイティブにサポートされているものよりも、追加の機械学習アルゴリズムを実装するために、(ユーザ定義関数とも定義され得る)クライアントのモジュールを提供または登録しても良い。一部の実施形態において、機械学習ワークフローの中間結果(例えば、入力記録ハンドラによって生成された要約された統計)の一部は、MLS人工物レポジトリ120に記憶されても良い。
図1に描写される実施形態において、MLSは、様々な機械学習タスクのベストプラクティスに関する情報を含む知識ベース122を管理しても良い。エントリは、例えば、サーバプール185から収集されたメトリック、クライアント164によって提供されたフィードバック等に基づいて、MLSの様々な制御プレーン構成要素によってベストプラクティスKB122内に追加されても良い。クライアント164は、矢印117によって示されるように、プログラム的インターフェース161を介してKBエントリを検索及び取得することができても良く、エントリに含まれる情報を使用して、クライアントの要求提出のためのパラメータ(例えば、使用される特定のレシピまたはアルゴリズム)を選択しても良い。少なくとも一部の実施形態において、新しいAPIは、様々な種類の機械学習実践に関して経時的に識別されたベストプラクティスに基づいて、MLSによって実装されても良い(またはAPIパラメータの規定値が選択されても良い)。
図2は、少なくとも一部の実施形態に従った、プロバイダネットワークの複数のネットワークにアクセス可能なサービスを使用して実装された機械学習サービスの例を例示する。インターネット及び/または他のネットワークを介して、分布しているセットのクライアントにアクセス可能な1つまたは複数のサービス(例えば、様々な種類のマルチテナント及び/またはシングルテナントのクラウドベースコンピューティングサービスもしくはストレージサービス)を提供するために、企業または公共部門の団体等のエンティティによって設定されたネットワークは、本明細書において、プロバイダネットワークと称され得る。所与のプロバイダネットワークには、プロバイダによって提供されるインフラ及びサービスを実装、構成、及び分配するために必要とされる、多数のデータセンタが提供する様々なリソースプール、例えば、物理的及び/または仮想化コンピュータサーバ、記憶装置、ネットワーク機器等のコレクションが含まれ得る。少なくとも一部のプロバイダネットワーク及び対応するネットワークにアクセス可能なサービスは、それぞれ「パブリッククラウド」及び「パブリッククラウドサービス」と称され得る。大きなプロバイダネットワーク内で、一部のデータセンタは、他のものとは異なる市、州、または国に配置されても良く、一部の実施形態において、MLS等の所与のサービスに割り当てられたリソースは、図3に関して以下にさらに詳細に記載されるように、所望のレベルの可用性、耐障害性、及び性能を達成するように、いくつかのそのような場所の間で分配されても良い。
図2に示される実施形態において、MLSは、プロバイダネットワーク202のストレージサービス202、コンピューティングサービス258、及びデータベースサービス255を利用する。描写される実施形態において、これらのサービスの少なくとも一部はまた、他の顧客(例えば、プロバイダネットワークで実行された他のサービス、及び/またはプロバイダネットワーク外の外部顧客)によって同時に使用されても良く、すなわち、本サービスは、MLS使用に制限されなくても良い。MLSゲートウェイ222は、クライアント164によって外部ネットワーク206(例えば、インターネットの部分)上で提出されたクライアント要求210を受信するように設定されても良い。MLSゲートウェイ222は、例えば、MLSにアクセスするために使用され得る一組の公共的にアクセス可能なIP(Internet Protocol)アドレスを用いて構成されても良い。一部の実施形態において、クライアント要求は、MLSによって実行された表象状態転送(REST)APIに従ってフォーマットされても良い。一実施形態において、MLS顧客は、クライアントコンピューティングデバイスにローカルインストールするためのSDK(ソフトウェア開発キット)204を提供されても良く、要求210は、SDKに準拠して書かれたプログラム内から提出されても良い。様々な実施形態において、クライアントは、クライアントに割り当てられたコンピューティングサービス262の計算サーバ262からMLS関数にもアクセスしても良いか、または代わりにMLS関数にアクセスしても良い。
ストレージサービス252は、例えば、任意のサイズの非構造化データオブジェクトを作成及び操作するために使用することができる、ウェブサービスインターフェースを実装しても良い。データベースサービス255は、リレーショナルデータベースまたは非リレーショナルデータベースのいずれかを実装しても良い。描写される実施形態において、ストレージサービス252、及び/またはデータベースサービス255は、MLSに対して様々な役割を担っても良い。一部の実施形態において、MLSは、クライアントの機械学習タスクのために、プロバイダネットワーク境界内のデータソースを定義するようにクライアント164に要求しても良い。そのようなシナリオにおいて、クライアントは、まず外部データソース229からのデータを、ストレージサービス252によって管理されている内部データソース230A、またはデータベースサービス255によって管理されている内部データソース230B等の、プロバイダネットワーク内の内部データソース内に転送しても良い。一部の事例では、MLSのクライアントは、他のアプリケーションのためにプロバイダネットワークサービスを既に使用している場合があり、ストレージサービス252またはデータベースサービス255に記憶されているこれらのアプリケーションの出力(例えば、ウェブサーバログまたはビデオファイル)うちの一部は、MLSワークフローのためのデータソースとして機能しても良い。
少なくとも一部のクライアント要求210に応答して、MLS要求ハンドラ180は、先に論じられたように、ジョブ待ち行列142内の対応するジョブオブジェクトを生成及び記憶しても良い。図2に描写される実施形態において、ジョブ待ち行列142は、それ自体がデータベースサービス255に記憶されたデータベースオブジェクト(例えば、表)によって表されても良い。ジョブスケジューラ272は、例えば、ジョブの依存性必要条件が満たされたことを確認した後に、待ち行列142からジョブを取得し、コンピューティングサービス258から1つまたは複数のサーバ262を識別して、ジョブの計算動作を実行しても良い。計算のための入力データは、サーバ262によって内部データソースまたは外部データソースから読み出されても良い。様々な実施形態において、MLS人工物レポジトリ220は、データベースサービス255内(及び/またはストレージサービス252内)に実装されても良い。一部の実施形態において、様々な機械学習タスクの中間結果または最終結果もまた、ストレージサービス252、及び/またはデータベースサービス255内に記憶されても良い。
一部の実施形態において、例えば、負荷分散サービス、並列コンピューティングサービス、自動スケーリングサービス、及び/または識別管理サービスを含む、プロバイダネットワークの他のサービスもまた、MLSによって使用されても良い。負荷分散サービスは、例えば、一組のサーバ262間で計算負荷を自動的に分散させるために使用されても良い。Map−reduceプログラミングモデルを実行する並列コンピューティングサービスが、いくつかの種類の機械学習タスクのために使用されても良い。自動スケーリングサービスは、特定の長期機械学習タスクに割り当てられたサーバを追加または削除するために使用されても良い。一部の実施形態において、クライアント要求の承認及び認証は、プロバイダネットワークの識別管理サービスの助けを借りて行われても良い。
一部の実施形態において、プロバイダネットワークは、複数の地理的地域内に編成されても良く、各地域は、「可用性ゾーン」とも称され得る1つまたは複数の可用性コンテナを含んでも良い。次いで、可用性コンテナは、所与の可用性コンテナ内のリソースが他の可用性コンテナ内の不具合から隔離されるような手段で、(例えば、電力関連装置、冷房装置、及び/または物理的機密保護構成要素等の独立したインフラ構成要素を用いて)設計された、1つまたは複数の異なる物理的施設またはデータセンタのうちのいくつかまたは全てを備えても良い。1つの可用性コンテナ内の不具合が、他のあらゆる可用性コンテナ内に不具合をもたらすことは予期されない場合があり、したがって、所与の物理的ホストまたはサーバの可用性プロファイルは、異なる可用性コンテナ内の他のホストまたはサーバの可用性プロファイルから独立していることが意図される。
一部の実施形態において、異なる可用性コンテナ間でのこれらの分配に加えて、プロバイダネットワークリソースもまた、異なるセキュリティコンテナ内へと区分されても良い。例えば、プロバイダネットワークの一般な様々な種類のサーバが、異なる顧客のアプリケーション間で共有されても良い一方で、一部のリソースは、単一の顧客による使用のために制限されても良い。機密保護ポリシーは、リソース(これらには、例えば、コンピューティングサービス、ストレージサービス、またはデータベースサービス等のいくつかの異なるプロバイダネットワークサービスによって管理されているリソースが含まれ得る)の指定されたグループが、指定された顧客または指定されたセットのクライアントによってのみ使用されることを確実にするように、定義されても良い。そのようなリソースのグループは、本明細書で、「セキュリティコンテナ」または「セキュリティグループ」と称され得る。
図3は、少なくとも一部の実施形態に従った、機械学習サービスのためのプロバイダネットワークの複数の可用性コンテナ及びセキュリティコンテナの使用の例を例示する。描写される実施形態において、プロバイダネットワーク302は、可用性コンテナ366A、366B、及び366Cを備え、これらの各々は、1つまたは複数のデータセンタのうちのいくつかまたは全てを備えても良い。各可用性コンテナ366は、それ自体のMLS制御プレーン構成要素344のセット、例えば、可用性コンテナ366A〜366Cそれぞれ内に制御プレーン構成要素344A〜344Cを有する。所与の可用性コンテナ内の制御プレーン構成要素は、例えば、MLS要求ハンドラのインスタンス、1つまたは複数のMLSジョブ待ち行列、ジョブスケジューラ、作業負荷分配構成要素等を含んでも良い。異なる可用性コンテナ内の制御プレーン構成要素は、例えば、2つ以上のデータセンタのリソースを利用するタスクを調整するように、必要に応じて互いに通信しても良い。各可用性コンテナ366は、マルチテナント様式で使用されるMLSサーバのそれぞれのプール322(例えば、322A〜322C)を有する。プール322のサーバは各々、潜在的に異なるMLSクライアントのために同時に様々なMLS動作を行うために使用されても良い。対照的に、より高いレベルの機密保護または隔離を必要とするMLSタスクを実行するためには、単一のクライアントの作業負荷のためにのみ指定された、シングルテナントサーバプール330A、330B、及び330C等のシングルテナントサーバプールが使用されても良い。プール330A及び330Bが、セキュリティコンテナ390Aに属する一方で、プール330Cは、セキュリティコンテナ390Bの一部である。セキュリティコンテナ390Aが、(例えば、顧客提供の機械学習モジュール、または顧客によって指定された第三者モジュールを実行するために)顧客C1のために独占的に使用されても良い一方で、セキュリティコンテナ390Bは、描写される実施例において異なる顧客C2のために独占的に使用されても良い。
一部の実施形態において、MLSによって使用されるリースの少なくとも一部は、所与の可用性コンテナのMLSリソースに影響を与える不具合にも関わらずMLSタスクが継続することができるように、可用性コンテナ境界を横断する二重化グループ内に配置されても良い。例えば、一実施形態において、可用性コンテナ366A内に少なくとも1つのサーバS1、及び可用性コンテナ366B内に少なくとも1つのサーバS2を備える二重化グループRG1は、S1のMLS関連作業負荷をS2に障害迂回すること(またはその逆も同様)ができるように設定されても良い。長期MLSタスク(例えば、テラバイトまたはペタバイト規模のデータセットを伴うタスク)に関して、所与のMLSジョブの状態は、障害迂回サーバが最初からもう一度やり直さなければならない代わりに、直近のチェックポイントから部分的に完了したタスクを再開することができるように、定期的に永続的記憶装置に(例えば、単一の可用性コンテナ不具合に耐えるようにも設計されたプロバイダネットワークのストレージサービスまたはデータベースサービスで)チェックポイント(check−point)されても良い。プロバイダネットワークのストレージサービス及び/またはデータベースサービスは、不具合の場合、データセットが必ずしもコピーされる必要がなくても良いように、例えば、消失訂正符号または他の複製法を使用して、非常に高いレベルのデータ耐久性を本質的に提供しても良い。一部の実施形態において、MLSのクライアントは、クライアントの入力データセット、中間データセット、人工物等の所望のデータ耐久性のレベル、及び所望の計算サーバ可用性のレベルを指定することができても良い。MLS制御プレーンは、クライアント必要条件に基づいて、複数の可用性コンテナ内のリソースが所与のタスクまたは所与のクライアントのために使用されるべきかどうかを判定しても良い。様々なMLSタスクのためにクライアントが支払わなければならない請求額は、タスクの耐久性及び可用性必要条件に少なくとも部分的に基づいても良い。一部の実施形態において、一部のクライアントは、MLS制御プレーンに、所与の可用性コンテナまたは所与のセキュリティコンテナ内のリソースのみを使用することを望むと指示しても良い。ある特定の種類のタスクについて、MLSがタスクをプロバイダネットワークの単一の地理的地域内(またはさらには単一のデータセンタ内)に制限し得るほどに、データセット及び/または結果を長距離送信する費用が、非常に高額になる場合があるか、または送信のために必要な時間が、非常に長くなる場合がある。
処理計画
少なくとも一部の実施形態において、先に言及されたように、MLS制御プレーンは、クライアント要求に応答して生成されたジョブオブジェクトの各々に対応する処理計画の生成に関与しても良い。次いで、各処理計画について、対応するセットのリソースは、例えば、計画のために選択された作業負荷分配戦略、利用可能なリソース等に基づいて計画を実行するように識別される必要があっても良い。図4は、少なくとも一部の実施形態に従った、機械学習サービスで生成され得る様々な種類の処理計画及び対応するリソースセットの例を例示する。
例示されるシナリオにおいて、MLSジョブ待ち行列142は、それぞれがクライアントによるそれぞれのAPIの呼び出しに対応する5個のジョブを含む。(待ち行列の頭に示される)ジョブJ1は、API1の呼び出しに応答して作成された。ジョブJ2〜J5は、API2〜API5の呼び出しにそれぞれ応答して作成された。ジョブJ1に対応して、入力データクレンジング計画422が生成されても良く、計画は、リソースセットRS1を使用して実行されても良い。入力データクレンジング計画は、指定されたデータソースのコンテンツを読み出し、検証するため、欠損値を埋めるため、エラーを含む入力記録を識別し、破棄する(またはさもなければエラーを含む入力記録に対応する)ため等の動作を含んでも良い。一部の事例では、入力データはまた、クレンジングの目的のために読み出され得る前に、解凍、解読、またはさもなければ操作される必要があっても良い。ジョブJ2に対応して、統計生成計画424が生成され、続いてリソースセットRS2上で実行されても良い。各データ属性(例えば、数値属性の平均、最小、最大、標準偏差、分位ビニング等)のために生成される統計の種類と、統計が生成される方式(例えば、データクレンジング計画422によって生成された全ての記録が統計のために使用されるか、またはサブサンプルが使用されるか)と、が、統計生成計画内で指示されても良い。描写される実施形態において、ジョブJ2の実行は、ジョブJ1の完了に依存しても良いが、ジョブJ2の生成をもたらすクライアント要求は、J1が完了するかなり前に提出されても良い。
ジョブJ3(及びAPI3)に対応するレシピベースの特徴処理計画426は、生成され、リソースセットRS3上で実行されても良い。レシピの構文及び管理に関するさらなる詳細は、以下に提供される。ジョブJ4は、モデル訓練計画428の生成をもたらしても良い(次いでこれは、例えば、異なるセットのパラメータを用いた複数回の訓練の反復を伴っても良い)。モデル訓練は、リソースセットRS4を使用して行われても良い。モデル実行計画430は、(API5のクライアントの呼び出しから生じた)ジョブJ5に対応しても良く、モデルは、最終的にはリソースセットRS5を使用して実行されても良い。一部の実施形態において、同じセットのリソース(または重複したセットのリソース)が、クライアントのジョブのうちのいくつかまたは全てを行うために使用されても良く、例えば、リソースセットRS1〜RS5は、必ずしも互いに異ならなくても良い。少なくとも1つの実施形態において、クライアントは、例えば、API呼び出しに含まれるパラメータを介して所望の処理計画の様々な要素または特性を指示しても良く、MLSは、そのようなクライアントの好みを考慮に入れても良い。例えば、特定の統計生成ジョブについて、クライアントは、クレンジングされた入力記録のうちの25%のランダムに選択されたサンプルが使用されても良いと、指示しても良く、MLSは、それに応じて、データのうちの25%のランダムサンプルを生成する行程を含む統計生成計画を生成しても良い。他の事例では、MLS制御プレーンは、特定のジョブがまさにどのように実行されるかを判定するより大きな自由を与えられても良く、ベストプラクティスのMLS制御プレーンの知識ベースを参照して、使用されるパラメータを選択しても良い。
ジョブスケジューリング
図5は、少なくとも一部の実施形態に従った、機械学習サービスでのジョブの非同期スケジューリングの例を例示する。描写される実施例において、クライアントは、4つのMLS API、API1〜API4を呼び出し、4つの対応するジョブオブジェクト、J1〜J4が作成され、ジョブ待ち行列142内に入れられる。タイムラインTL1、TL2、及びTL3は、APIを呼び出すクライアント、ジョブを作成し、そのジョブを待ち行列142内に挿入する要求ハンドラ、及び待ち行列からジョブを削除し、選択されたリソースにジョブをスケジュールするジョブスケジューラの観点からのイベントのシーケンスを示す。
描写される実施形態において、他のジョブへの依存性がない規範事例に加えて、2つの種類のジョブ間依存性がサポートされても良い。「完了依存性」と称される一事例において、1個のジョブJpの実行は、(例えば、別のジョブJqの最終出力がJpの入力として必要であるため)Jqが正常に完了するまで開始することができない。完全依存性は、ジョブオブジェクトに示されるパラメータ「dependsOnComplete」によって図5に示され、例えば、J2は、J1の実行完了に依存し、J4は、J2の正常完了に依存する。他の種類の依存性において、1個のジョブJpの実行は、別のジョブJqの何らかの指定された段階が完了したらすぐに開始されても良い。この後者の依存は、「部分的依存性」と称されても良く、「dependsOnPartial」パラメータによって図5に示される。例えば、J3は、J2の部分的完了に依存し、J4は、J3の部分的完了に依存する。一部の実施形態において、スケジューリングを単純化するために、そのような段階ベースの依存性は、N個の段階を有するジョブをN個のより小さいジョブに分割し、それにより部分的依存性を完全依存性に変換することにより、処理されても良いことが留意される。J1は、描写される実施例において、いずれの種類の依存性も有さない。
クライアントタイムラインTL1上に示されるように、API1〜API4は、期間t0〜t1内に呼び出されても良い。描写される実施形態において、たとえクライアントによって要求された動作の一部が、先に呼び出されたAPIに対応する動作の完了に依存するとしても、MLSは、先に呼び出されたAPIのジョブの処理よりもはるか前にクライアントが依存動作要求を提出することを可能にしても良い。少なくとも一部の実施形態において、API呼び出しにおけるクライアントによって指定されたパラメータは、ジョブ間依存性を指示しても良い。例えば、一実装例において、API1に応答して、クライアントは、J1のジョブ識別子を提供されても良く、そのジョブ識別子は、API2に対応する動作を行うためにはAPI1の結果が必要であることを指示するために、パラメータとしてAPI2内に含まれても良い。要求ハンドラのタイムラインTL2によって示されるように、各API呼び出しに対応するジョブは、APIが呼び出された直後に作成され、待ち行列に入れられても良い。このように、t1の後、短時間で全ての4個のジョブが生成され、ジョブ待ち行列142内に入れられる。
ジョブスケジューラタイムラインTL3に示されるように、ジョブJ1は、時間t2に実行をスケジュールされても良い。(t0直後の)待ち行列142内へのJ1の挿入とJ1のスケジューリングとの間の遅延は、描写される実施形態において、例えば、待ち行列142内のJ1の前に他のジョブが存在し得るためか、またはJ1の処理計画を生成し、J1のために使用されるリソースを識別するのにいくらか時間がかかるためか、または十分なリソースがt2まで利用可能でなかったためなどの、いくつかの理由のために起こり得る。J1の実行は、t3まで続く。描写される実施形態において、J1が完了したとき、(a)クライアントに通知し、(b)J2の実行がスケジュールされる。J2のdependsOnCompleteパラメータ値によって指示されるように、J2は、J1の完了に依存し、したがってJ2の実行は、たとえJ2の処理計画の準備が整い、J2のリソースセットがt3の前に利用可能であっても、t3まで開始することができない。
描写される実施例において、J3の「dependsOnPartial」パラメータ値によって指示されるように、J3は、J2の作業の指定された段階またはサブセットが完了したとき、開始することができる。例示される実施形態において、J3が依存するJ2の部分は、時間t4に完了し、したがってJ3の実行は、(J2の残りの部分の実行と並列で)t4に開始する。描写される実施例において、クライアントは、時間t4にJ2の部分的完了に関して通知されても良い(例えば、J2の完了した段階の結果がクライアントに提供されても良い)。
t5に、J4が依存するJ3の一部分が完了しても良く、クライアントは、その都度通知されても良い。しかしながら、J4はまた、J2がt6に完了するまでJ4が開始することができないように、J2の完了にも依存する。J3は、t8まで実行を継続する。J4は、t8よりも前にt7に完了する。描写されるシナリオ例において、クライアントは、それぞれのAPI呼び出し、API1〜API4に対応するジョブの各々の完了について通知される。一部の実施形態において、ジョブ間の部分的依存性は、サポートされなくても良く、代わりに、先に言及されたように、一部の事例ではそのような依存性は、多段階ジョブをより小さなジョブに分割することにより完全依存性に変換されても良い。少なくとも1つの実装例において、API呼び出しに対応するジョブが完了したとき(またはジョブの段階が完了したとき)に通知される代わりにか、またはそれに加えて、クライアントは、問い合わせをMLSに提出して、様々なAPI呼び出しに対応する動作の状態(または完了の程度)を判定することができても良い。例えば、MLSジョブ監視ウェブページは、クライアントが(例えば、各ジョブの「完了パーセント」指標を介して)クライントの要求の進捗、及び予想される完了時間等を見ることを可能にするように実装されても良い。一部の実施形態において、ポーリングメカニズムが、ジョブの進捗または完了を判定するためにクライアントによって使用されても良い。
MLS人工物
図6は、少なくとも一部の実施形態に従った、機械学習サービスを使用して生成及び記憶され得る人工物例を例示する。一般に、MLS人工物は、MLSプログラム的インターフェースの呼び出しの結果として、永続的方式で記憶されても良いオブジェクトのうちのいずれかを含んでも良い。一部の実装例において、MLSに渡される一部のAPIパラメータ(例えば、文字列バージョンのレシピ)は、人工物として記憶されても良い。描写される実施形態において、示されるように、MLS人工物601は、数ある中でも、データソース602、統計603、特徴処理レシピ606、モデル予測608、評価610、変更可能または開発中のモデル630、及び公開されたモデルまたはエイリアス640を含んでも良い。一部の実装例において、MLSは、示される人工物の種類のうちの少なくともいくつかの各インスタンスのそれぞれの固有の識別子を生成し、識別子をクライアントに提供しても良い。続いて、識別子は、(例えば、後続のAPI呼び出し内、状態問い合わせ内等の)人工物を参照するために、クライアントによって使用されても良い。
データソース人工物602を作成するためのクライアント要求は、例えば、データ記録を読み出すことができるアドレスまたは位置の指標、及びデータ記録の形式またはスキーマの何らかの指標を含んでも良い。例えば、HTTP GET要求を、データ記録、プロバイダネットワークストレージサービスの記憶オブジェクトのアドレス、またはデータベース表識別子を取得するように向けることができるソースURI(ユニバーサルリソース識別子)の指標が提供されても良い。一部の実装例において、形式(例えば、データ記録のフィールドまたは列のシーケンス及び種類)は、別個のカンマ区切り変数(csv)ファイルを介して指示されても良い。一部の実施形態において、MLSは、例えば、クライアントの識別子に基づいて、データソース人工物を作成するために必要なアドレス情報及び/または形式情報の少なくとも一部を推測することができても良く、クライアントのデータソースのルートディレクトリまたはルートURIを推測することが可能でも良く、最初のいくつかの記録の分析に基づいて、少なくともスキーマの列のデータ型を推測することが可能でも良い。一部の実施形態において、データソースを作成するためのクライアント要求はまた、例えば、MLSのI/Oライブラリを使用してデータ記録をサンプリングまたは分割することにより、生入力データを再配置するための要求も含んでも良い。一部の実装例において、データソースの作成を要求するとき、クライアントはまた、データ記録にアクセスするためにMLSによって使用され得る機密保護証明書を提供する必要があっても良い。
一部の実施形態において、図7に関して以下にさらに詳細に記載されるように、少なくともいくつかの統計603が、データソースのデータ記録のために自動的に生成されても良い。他の実施形態において、MLSはまた、または代わりに、例えば、指定されたデータソースのために生成される統計の種類をクライアントが指示するcreateStatistics(dataSourceID、statisticsDescriptor)要求の同等物を介して、クライアントが様々な種類の統計の生成を明確に要求することを可能にしても良い。生成される統計人工物の種類は、入力記録変数のデータ型に基づいて変化しても良く、例えば、数値変数の場合、平均、中央値、最小、最大、標準偏差、分位ビン、ヌルまたは「非該当」値の数等が生成されても良い。少なくとも一部の実施形態において、相関等の交差変数統計もまた、自動的またはオンデマンドのいずれかで生成されても良い。
一部の実施形態において、特徴処理変換命令を含むレシピ606は、クライアントによって提供されても良い(MLSレシピコレクションからアクセス可能な一組の利用可能なレシピから選択されても良い)。そのような実施形態において、以下にさらに詳細に記載されるように、クライアントが変数群、割り当て、モデル等の他の人工物への依存性、変換出力を定義することを可能にするレシピ言語は、MLSによってサポートされても良い。一部の実装例において、テキスト形式で提出されたレシピは、実行可能なバージョンにコンパイルされ、様々なデータセットに再使用されても良い。
描写される実施形態において、機械学習モデルまたは予測子を表す少なくとも2つのタイプの人工物が生成され、記憶されても良い。多くの場合、モデルの開発及び改良のプロセスは、様々なデータセット及び様々なパラメータを使用して、予測の正確さを改善しようとする場合があるため、長い時間かかる場合がある。一部のモデルは、例えば、数週間、または数カ月にわたり改善される場合がある。そのようなシナリオにおいて、他のユーザ(例えば、ビジネスアナリスト)がモデルの一バージョンを利用することを可能にする一方で、モデル開発者が他の改善されたバージョンの生成を継続する価値がある場合がある。したがって、一部の実施形態において、モデルを表す人工物は、変更可能なモデル630、及び公開されたモデルまたはエイリアス640の2つのカテゴリーのうちの1つに属しても良い。エイリアスは、エイリアス名または識別子、ならびにモデルへのポインタ(例えば、描写される実施形態では、モデル630Bを指すエイリアス640A、及びモデル630Dを指すエイリアス640B)を含んでも良い。本明細書で使用される場合、「モデルの公開」という表現は、エイリアス名または識別子を参照することによって特定のバージョンのモデルを一組のユーザによる実行を可能にすることを指す。一部の事例では、その組のユーザの少なくとも一部は、モデルまたはエイリアスを変更することが許可されなくても良い。一部の実施形態において、非熟練ユーザ678が、エイリアスへの読み出し許可及び実行許可を与えられても良い一方で、モデル開発者676はまた、モデル630(及び/またはエイリアス640のポインタ)を変更することが許可されても良い。一部の実施形態において、例えば、エイリアスの入力及び出力の形式(ならびにエイリアスによって参照される基礎となるモデル)は、一旦エイリアスが公開されたら変わらず、モデル開発者が、エイリアスによって指されている基礎となるモデルを徹底的に試験及び検証したという一組の保証がエイリアスユーザに提供されても良い。さらに、そのような実施形態において、いくつかの他の論理制約が、エイリアスに対して課されても良い。例えば、エイリアスがオンラインモード(モデルの使用モードは、図8に関して以下にさらに詳細に記載される)で使用されるモデルのために作成された場合、MLSは、指されているモデルがオンラインのままであることを保証しても良い(すなわち、モデルは、アンマウントすることができない)。一部の実装例において、現在本番モードにあるエイリアスと、内部使用モードまたは試験モードにあるものとの間で区別がつけられなくても良く、MLSは、本番モードのエイリアスのために削除またはアンマウントされないことを確実にしても良い。一部の実施形態において、オンラインモードのモデルにエイリアスを作成するとき、予測/評価の最低スループット率が、エイリアスについて判定されても良く、MLSは、モデルに割り当てられたリソースが最低スループット率を満たすことを確実にしても良い。モデル開発者676が、エイリアス640が作成されたより古いバージョンに対してより新しいバージョンのモデル630の正確さ及び/または性能特性を改善した後で、モデル開発者676は、エイリアスのポインタがこれから改善されたバージョンを指すように、エイリアスのポインタを切り替えても良い。したがって、非熟練ユーザは、自身がエイリアスを使用している手段に何も変更を加える必要がない一方で、改善から利益を享受しても良い。一部の実施形態において、エイリアスユーザは、問い合わせを提出して基礎となるモデルが最後にいつ変更されたかを知ることができても良いか、またはエイリアスユーザがエイリアスの実行を要求したとき、基礎となるモデルが最後の実行以来変更されたかを通知されても良い。
一部の実施形態において、予測608(従属変数の実際の値が既知であるシナリオにおいて、従属変数についてモデルによって予測された値)及びモデル評価610(モデルの予測を従属変数の既知の値と比較することができるときに計算された、モデルの正確さの測定値)等のモデル実行の結果もまた、MLSによって人工物として記憶されても良い。後続の説明において、「従属変数」、「出力変数」、及び「目標変数」という用語は同じ意味で使用される場合があり、「独立変数」及び「入力変数」もまた、同じ意味で使用される場合があることが留意される。少なくともいくつかの種類の機械学習技術において、従属変数値は、1つまたは複数の独立変数の値に依存することを前提とし得るが、これは、独立変数のうちのいずれかが、他の独立変数のうちのいずれかから必ず統計的に独立していることを暗示することを意味しない。一部の実施形態において、図6に例示される人工物の種類に加えて、他の人工物の種類もまたサポートされても良く、例えば、一部の実施形態において、(データの静的セットのバッチモード実行とは対照的に)ストリーミングデータのリアルタイムのモデル実行のために使用することができるネットワークエンドポイントを表すオブジェクトが、人工物として記憶されても良く、他の実施形態において、クライアントセッションログ(例えば、所与のセッションの間の、クライアントとMLSとの間の全ての対話の記録)が、人工物として記憶されても良い。
一部の実施形態において、MLSは、関連したジョブの反復的スケジューリングをサポートしても良い。例えば、クライアントは、モデル等の人工物を作成しても良く、同じモデルが、指定された時点に異なる入力データセットに関して、(例えば、訓練または予測反復の各々のためのリソースの同じ構成を使用して)再訓練され、及び/または再実行されることを望んでも良い。一部の事例では、時点は、(例えば、「毎日11:00、15:00、及び19:00にデータソースDS1の現在利用可能なデータセットにモデルM1を再実行させる」の同等物を要求するクライアントによって)明確に指定されても良い。他の事例では、クライアントは、(例えば、「次の組の1000000個の新しい記録がデータソースDS1から利用可能になったときはすぐに、モデルM1を再実行させる」の同等物を要求するクライアントによって)、反復がスケジュールされる条件を指示しても良い。それぞれのジョブは、各反復的訓練または実行反復のためにMLSジョブ待ち行列内に入れられても良い。一部の実施形態において、MLSは、そのようなスケジュールされた反復的動作を可能にする一組のプログラム的インターフェースを実装しても良い。そのようなインターフェースを使用して、クライアントは、反復の各々のために使用される一組のモデル/エイリアス/レシピ人工物(もしくは同じ下役人工物のそれぞれのバージョン)、及び/または使用されるリソース構成を指定しても良い。一部の実施形態において、そのようなプログラム的インターフェースは、「パイプラインAPI」と称され得る。一部の実施形態において、図6に示される人工物の種類に加えて、パイプライン人工物は、MLS人工物レポジトリに記憶されても良く、パイプライン人工物の各インスタンスは、そのようなAPIを介して要求された、名前を付けられた組の反復的動作を表す。一実施形態において、プロバイダネットワークに実装された別々に管理されているデータパイプラインサービスは、そのような反復動作をサポートするためにMLSと組み合わせて使用されても良い。
先に言及されたように、一部の実施形態において、MLSは、データソースが作成されるとき、統計を自動的に生成しても良い。図7は、少なくとも一部の実施形態に従った、データソースをインスタンス化するためのクライアント要求に応答した統計の自動生成の例を例示する。示されるとおり、クライアント764は、MLS API761を介してMLS制御プレーン780にデータソース作成要求712の実行を依頼する。作成要求は、データ記録を取得することができるアドレスまたは位置、及び任意選択的にデータ記録の列またはフィールドを示すスキーマまたは形式文書を指定しても良い。
要求712の受信に応答して、MLS制御プレーン780は、データソース人工物702を生成して、MLS人工物レポジトリに記憶しても良い。さらに、かつ一部の事例ではMLSのリソースの現在の可用性に応じて、MLSは、描写される実施形態において、たとえクライアント要求がそのような統計を明確に要求しなかったとしても、1つまたは複数の統計オブジェクト730の生成も開始しても良い。様々な実施形態において、いくつかの異なる種類の統計の任意の組み合わせが、2つのモードのうちの1つで自動的に生成されても良い。例えば、非常に大きなデータセットについて、サブサンプル(例えば、大きなデータセットのランダムに選択されたサブセット)に基づいた最初の組の統計763が、第1の段階で得られても良い一方で、全データセットから得られた全サンプル統計764の生成は、第2の段階に保留されても良い。統計生成に向けたそのような多段階手法は、例えば、完全なデータセットの統計分析を待たずに、クライアントが後続の機械学習ワークフロー行程の計画を開始することができるように、クライアントが第1の段階でかなり早くデータセット値の大まかまたはおおよその要約を得ることが可能であるように実装されても良い。
示されるように、様々な異なる統計が、いずれかの段階で得られても良い。数値変数について、基本的統計765には、平均値、中央値、最小値、最大値、標準偏差値が含まれても良い。数値変数はまた、ビニング(四分位または五分位等の一組の範囲に分類)もされても良く、そのようなビン767は、クライアントに表示されても良いヒストグラムの構築のために使用されても良い。変数の分布の性質に応じて、線形または対数ビン境界のいずれかが選択されても良い。一部の実施形態において、異なる変数間の相関768もまた、計算されても良い。少なくとも1つの実施形態において、MLSは、(相関値等の)自動的に生成された統計を利用して、他の予測よりも高い予測力を有し得る変数の候補グループ769を識別しても良い。例えば、モデルのある特定のクラスへの過度の一致を避けるため、互いに非常に強く相関する一組の変数の中の1つの変数だけが、モデルへの入力の候補として推奨されても良い。そのようなシナリオにおいて、クライアントは、他の変数の重要性を調査するために必要な時間及び労力を回避することができる。所与のデータ記録が数百またはさらには数千の変数を有し得る多くの問題領域において、より高い予測有効性を有することが予想される候補変数のそのような自動化された選択は、MLSのクライアントにとって非常に有益であり得る。
図8は、少なくとも一部の実施形態に従った、機械学習サービスでサポートされ得るいくつかのモデル使用モードを例示する。モデル使用モードは、バッチモード、オンラインモードまたはリアルタイムモード、及びローカルモードの3つのカテゴリーに大まかに分類されても良い。バッチモードにおいて、所与のモデルは、データ記録の静的セット上で実行されても良い。リアルタイムモードで、ネットワークエンドポイント(例えば、IPアドレス)が、指定されたモデルのための入力データ記録が提出される宛先として割り当てられても良く、モデル予測は、記録が受信されたらストリーミングデータ記録のグループ上に生成されても良い。ローカルモードにおいて、クライアントは、MLSで訓練及び検証された指定されたモデルの実行可能な表現を受信しても良く、クライアントは、クライアントが選択したコンピューティングデバイス上で(例えば、MLSが実装されているプロバイダネットワーク内よりもむしろクライアントネットワーク内に位置するデバイスで)モデルを実行しても良い。
描写される実施形態において、MLSのクライアント164は、プログラム的インターフェース861を介して、MLS制御プレーン180にモデル実行要求812を提出しても良い。モデル実行要求は、実行モード(バッチ、オンライン、またはローカル)、(一部の事例において、指定されたデータソースもしくはレシピを使用して生成されても良い)モデル実行のために使用される入力データ、所望される出力の種類(例えば、予測もしくは評価)、及び/または任意のパラメータ(例えば、所望のモデルの品質目標、オンライン予測のために使用される最小入力記録グループサイズ等)を指定しても良い。それに応答して、MLSは、モデル実行の計画を生成し、計画を実装するための適切なリソースを選択しても良い。少なくとも一部の実施形態において、ジョブオブジェクトは、先に記載されるように、実行要求812を受信したら生成され、(特徴処理のためのレシピの実行等の)他のジョブへの任意の依存性を示しても良く、ジョブが待ち行列内に入れられても良い。バッチモード865については、例えば、1つまたは複数のサーバが、モデルを実行させるために識別されても良い。オンラインモード867については、モデルは、データ記録がストリーミング配信され、予測868及び/または評価869を含む結果を取得することができる、マウント(例えば、ネットワークアドレスを用いて構成)されても良い。少なくとも1つの実施形態において、クライアントは、オンラインモードでインスタンス化されるモデルの予想される作業負荷レベルを任意選択的に指定しても良く、モデルのために展開される組のプロバイダネットワークリソースは、予想される作業負荷レベルに従って選択されても良い。例えば、クライアントは、モデルのパラメータを介して各々100万個の記録のデータセットに対して、1日当たり最大100個の予測要求が予想される実行/作成要求を指示しても良く、モデルのために選択されたサーバは、指定された要求率を処理するように選択されても良い。ローカルモードについて、MLSは、(バイトコードまたはモデルが実行するハードウェアアーキテクチャの種類等の、提供される実行可能なものの種類の詳細が、実行要求812内に指定されていても良い)モデルの実行可能なローカルバージョン843をパッケージにして、ローカルモデルをクライアントに送信しても良い。一部の実施形態において、例示される実行モードのサブセットのみが、サポートされても良い。一部の実装例において、実行モードと出力の種類との組み合わせの全てがサポートされるとは限らない場合があり、例えば、一実装例において、予測が、オンラインモードに関してサポートされても良い一方で、評価は、オンラインモードに関してサポートされなくても良い。
MLS動作を実行するための方法
図9a及び9bは、少なくとも一部の実施形態に従った、機械学習ジョブの非同期スケジューリングをサポートしている機械学習サービスで行われ得る動作の態様を例示する流れ図である。図9aの要素901に示されるように、MLSは、(API、コマンドラインツール、ウェブページ、またはカスタムGUI等の)プログラム的インターフェースを介してクライアントから要求を受信して、MLSの一組のサポートされたエンティティタイプに属するエンティティに特定の動作を行なっても良い。描写される実施形態において、エンティティタイプは、例えば、データソース、統計、特徴処理レシピ、モデル、エイリアス、予測、及び/または評価を含んでも良い。要求される動作には、例えば、属性の作成、読み出し(もしくは属性の記述)、変更/更新、動作の実行、検索、または削除が含まれても良い。一部の実施形態において、動作の種類が全てを、全てのエンティティタイプに適用しなくても良く、例えば、データソースを「実行」することが可能ではない場合がある。少なくとも一部の実装例において、要求は、クライアントによって暗号化またはカプセル化されても良く、MLSは、適切なキー及び/または証明書を使用して要求のコンテンツを抽出する必要があっても良い。
次に、要求は、MLSの様々な規則またはポリシーに従って検証されても良い(要素904)。例えば、機密保護ポリシーに従って、要求元クライアントに与えられた許可、役割、または能力を確認して、そのクライアントが、要求された動作を行わせるための権限が与えられているかを確実にしても良い。要求自体の構文、及び/または要求パラメータとして渡されたレシピ等のオブジェクトは、何らかの種類の要求に関して確認されても良い。一部の事例では、要求内で指示された1つまたは複数のデータ変数の種類もまた、確認される必要があっても良い。
要求が検証チェックを合格した場合、ジョブオブジェクトがその要求に対して作成されるべきかに関する判定が下されても良い。先に言及されたように、一部の事例では、必要な作業量は、(少なくとも、要求の前提条件または依存関係が既に満たされ、MLSが要求された作業を完了するのに十分なリソースが利用可能であるシナリオにおいて)、非同期実行のためにジョブオブジェクトを作成し、待ち行列内に挿入する代わりに、MLSが要求された動作を同時、または「インライン」で単純に行うことができ得るほど小さくても良い。(要素907で検出されたように)要求の分析が、ジョブが必要であると示す場合、MLSで行われるより低いレベルの動作の性質及び他のジョブへの任意の依存性を示すジョブオブジェクトが生成されても良く、このジョブオブジェクトは、待ち行列内に入れられても良い(要素913)。一部の実装例において、要求元クライアントは、(例えば、ジョブが後の実行のために待ち行列に入れられたことをクライアントに示すことにより)、要求が実行の承認をされたことを通知されても良い。一部の事例において、クライアントは、待ち行列に入れられたジョブの完了(またはさらには開始)を待たずに、別のプログラム的要求を提出しても良い。ジョブがまだ満たされていないいずれの依存性を有さず、かつ、(要素907でも判定される)即時実行またはインライン実行のための他の基準を満たしている場合、要求された動作は、ジョブオブジェクトを作成せずに実行されても良く(要素910)、その結果は、任意選択的に要求元クライアントに提供されても良い。要素901〜913に対応する動作は、MLSのプログラム的インターフェースを介して受信される各要求について行われても良い。特定のジョブJkが待ち行列内に入れられた後のある時点で、Jkは、実行される次のジョブとして(例えば、MLS制御プレーンのジョブスケジューラ構成要素によって)識別されても良い(図9bの要素951)。実行される次のジョブを識別するために、スケジューラは、例えば、待ち行列の頭(まだ実行されていない最初の挿入されているジョブ)から開始し、(指定されている場合)依存関係が満たされているジョブを検索しても良い。
一部の実施形態において、図9aの要素904に示されている検証の種類に加えて、MLSは、例えば、(a)特定の要求が無効であることが分かったとき、できるだけ早くクライアントに知らせることと、(b)成功する可能性が低い要求へのMLSのリソースの浪費を回避することと、の普遍的目標で、様々な他の段階で検証を行なっても良い。図9bの要素952に示されるように、1つまたは複数の種類の検証チェックが、要素951で識別されたジョブJkに行われても良い。例えば、一実施形態において、各クライアントは、(所与の顧客のジョブの全てのため、または顧客の任意の所与のジョブのために同時に使用することができるサーバの最大数等の)クライアントのジョブに適用することができるリソースの割り当てまたは制限を有しても良い。一部の実装例において、それぞれの割り当ては、例えば、CPU/コア、メモリ、ディスク、ネットワーク回線容量等のいくつかの異なるリソースの種類の各々について設定されても良い。そのようなシナリオにおいて、ジョブスケジューラは、自身に代わってジョブJkを実行させるクライアントの割り当て(単数または複数)が枯渇していないという検証に関与しても良い。割り当てが枯渇した場合、ジョブの実行は、(例えば、同じクライアントの代わりに行われていた他のジョブの完了の結果として)クライアントのリソースの少なくとも一部が開放されるまで保留されても良い。そのような制約制限は、任意の所与のクライアントの、共有MLSリソースを独占する能力を制限するのに有用であり得、また、不用意なエラーまたは悪意のあるコードの負の結果を最小化するのにも有用であり得る。割り当てチェックに加えて、他の種類の実行時間検証が、少なくとも一部のジョブについて必要である場合があり、例えば、データ型チェックは、特徴処理を伴うジョブのための入力データセット上で行われる必要があり得るか、またはMLSは、入力データセットサイズが許容できる範囲内にあることを検証する必要があり得る。このように、クライアント要求は、少なくとも一部の実施形態において、(図9aの要素904に示されるように、要求が受信されたときに)同期的に、及び(図9bの要素952に示されるように)非同期的に検証されても良い。作業負荷分配戦略及び処理計画は、例えば、使用される処理パスまたは段階の数、使用される並列度、Jkを完了するために使用される反復収束基準等、Jkのために識別されても良い(要素954)。一部の実施形態において、(存在する場合)クライアントの予算的制約、クライアントのデータ耐久性への要求、クライアントの性能目標、(マルチテナントモードでの代わりに隔離して、第三者コードまたはクライアント提供のコードを実行させる要求等の)機密保護への要求等のいくつかの追加の要因が、処理計画を生成するときに、考慮に入れられても良い。
選択された分配戦略及び処理計画に従って、一組のリソースがJkのために識別されても良い(要素957)。(計算サーバまたは計算クラスタ、記憶装置等を含んでも良い)リソースは、例えば、MLS管理の共有プールから、及び/または顧客割り当てもしくは顧客所有のプールから選択されても良い。次いで、JKの動作は、識別されたリソース上で行われても良く(要素960)、自身に代わってJkを作成させたクライアントは、任意選択的に、動作が完了したときに(または動作の完了を妨げる不具合の場合に)通知されても良い。
冪等プログラム的インターフェース
MLSクライアントによって要求された動作の種類のうちのいくつかは、リソース集約的であっても良い。例えば、(例えば、データストアを作成するためのクライアント要求に応答した)テラバイト規模のデータセットの取り込み、またはそのようなデータセットの統計の生成は、展開される組のリソース及び使用される並列の程度によって、数時間または数日間かかる場合がある。少なくとも一部の実施形態において、クライアント要求が処理される非同期方式を考えると、クライアントは時折、同じ要求の実行を複数回依頼してしまうことがある。一部の事例では、そのような複数の提出は、クライアントが、前の提出が承認されたか、またはされなかったかを意識していなかったため(例えば、クライアントが前の提出が承認されたという指標に気付かなかったためか、またはそのような指標が失われたため)に起こる場合がある。他の事例では、重複要求は、要求されたタスクの完了の予想される結果が長期間提供されていないため、クライアントが前の要求は失敗したに違いないと推測したために受信される場合がある。そのような重複提出に応答して、MLSが別の潜在的に大きなジョブを実際にスケジュールした場合、リソースが不必要に展開され得、一部の事例ではクライアントは、一回だけサービスを受けることを意図した要求に対して2回請求され得る。したがって、少なくとも1つの実施形態において、そのような問題のあるシナリオを回避するために、MLSによってサポートされているプログラム的インターフェースのうちの1つまたは複数は、同じクライアントによる重複要求の再提出が負の結果を招かないように、冪等性であるように設計されても良い。
図10aは、少なくとも一部の実施形態に従った、一組の冪等プログラム的インターフェースがサポートされている機械学習サービスで行われ得る動作の態様を例示する流れ図である。図10aにおいて、作成インターフェース(例えば、「createDataSource」または「createModel」と類似したAPI)が、冪等プログラム的インターフェースの例として使用されている。冪等性は、データソース及びモデル等の人工物の作成を伴うプログラム的インターフェースに特に有益であり得るが、様々な実施形態において、冪等インターフェースはまた、他の種類の動作(例えば、削除または実行)についてもサポートされても良い。要素1001に示されるように、新しいエンティティタイプET1のインスタンスを作成するための要求は、クライアントC1から特定のAPI等のプログラム的インターフェースを介して、MLSで受信されても良い。要求は、クライアントによって選択され、新しいインスタンスのために使用される識別子ID1を示しても良い。一部の実装例において、クライアントは、インスタンス識別子を指定する必要があっても良く、以下に記載されるように、識別子は、重複要求を検出するために使用されても良い。(クライアントが識別子を選択することを可能にすることは、クライアントがMLSによって割り当てられた名前よりも意味のある名前を、エンティティインスタンスに割り当てることができ得るという追加の利点を有し得る。)MLSは、プログラム的インターフェースのクライアントの呼び出しに含まれる入力パラメータの表現IPR1を生成しても良い(要素1004)。例えば、組の入力パラメータは、選択されたハッシュ関数に入力として供給されても良く、ハッシュ関数の出力は、IPR1として記憶されても良い。
図10aに描写される実施形態において、生成された人工物の少なくとも一部について、MLSレポジトリは、対応するインスタンス識別子、入力パラメータ表現、及びクライアント識別子(すなわち、人工物の作成を要求したクライアントの識別子)を記憶しても良い。MLSは、例えば、人工物レポジトリ内の探索を介して、エンティティタイプET1のインスタンスが、インスタンス識別子ID1及びクライアント識別子C1と一緒に、レポジトリ内に既に存在するかどうかを確認しても良い。(要素1007で検出されて)そのようなインスタンスが見つからない場合、識別子ID1、入力パラメータ表現IPR1、及びクライアント識別子C1を有するタイプET1の新しいインスタンスが、レポジトリ内に挿入されても良い(要素1007)。さらに、インスタンスの種類に応じて、ジョブオブジェクトは、例えば、データセットの読み出し/取り込み、一組の統計の生成、特徴処理の実施、モデルの実行等のクライアント要求に対応する追加の動作を行うために、ジョブ待ち行列に追加されても良い。描写される実施形態において、クライアントの要求への成功した応答(要素1016)が、生成されても良い。(一部の実装例において、成功応答は、暗黙的でも良く、例えば、エラーメッセージの非存在は、成功の暗黙的指標の代わりになっても良いことが留意される。)
要素1007に対応する動作において、同じインスタンス識別子ID1及びクライアント識別子C1を有する既存のインスタンスがレポジトリ内に見つかった場合、MLSは、既存のインスタンスの入力パラメータ表現もまた、IPR1と一致するかどうかを確認しても良い(要素1013)。入力パラメータ表現も一致した場合、MLSは、クライアントの要求が(害のない)重複であり、新しい作業が行われる必要はないと推測しても良い。したがって、MLSはまた、そのような重複要求が見つかった場合、クライアントに(明示的また暗黙的のいずれかで)成功も示して良い(要素1016)。したがって、クライアントが不用意に同じ要求を再提出した場合、新しいジョブオブジェクトの作成及び関連したリソース使用を回避し得る。一部の実装例において、クライアント要求が、記載される方法を使用して前の要求の寸分違わない重複であることが分かった場合、要求は、エラーとして指定されない一方で、実際に重複として識別されたという指標が、クライアントに提供されても良い。既存のインスタンスの入力パラメータ表現がクライアントの要求のものと一致しない場合、例えば、同じ識別子を有する同じエンティティタイプET1の既存のインスタンスが存在することを示すエラーメッセージが、クライアントに返されても良い(要素1019)。一部の実装例において、クライアントが識別子を提出する必要がある代わりに、クライアント要求の永続的ログの使用、または(要求、クライアント)の組み合わせを表す署名の使用等の重複検出の異なる手法が使用されても良い。
ベストプラクティス
多数の顧客によって様々なユースケースのために使用され得る機械学習サービス構築の利益のうちの1つは、例えば、どの技法が、データクレンジング、サンプリングまたはサブセット抽出、特徴処理、予測等に最もうまく機能するかに関するベストプラクティスを識別することが、時間と共に可能になり得ることである。図10bは、少なくとも一部の実施形態に従った、異なる問題領域に関するベストプラクティスについての情報を収集及び発信するために機械学習サービスで行われ得る動作の態様を例示する流れ図である。要素1051に示されるように、クライアント要求の結果としてMLSで生成される(レシピ及びモデル等の)人工物の少なくとも一部は、問題領域に基づいてグループに分類されても良く、例えば、一部の人工物は、財務分析のため、他の人工物は、コンピュータビジョン用途のため、他の人工物は、生物情報学のため等に使用されても良い。異なる実施形態において、そのような分類は、様々な要因に基づいて、例えば、使用されるアルゴリズムの種類、入力及び出力変数の名前、顧客提供の情報、顧客の識別等に基づいて行われても良い。
一部の実施形態において、MLS制御プレーンは、機械学習動作の様々な段階のために使用されるリソースから、性能メトリック及び他のメトリックを収集する一組の監視エージェントを含んでも良い(要素1054)。例えば、C1のCPU等級及びM1のメモリサイズを有するサーバを使用してランダムフォレストのN木を構築するためにかかる処理時間が、メトリックとして収集されても良いか、またはデータベースサービスでデータソースから調べられたデータ属性の数の関数として一組の統計を計算するのにかかる時間が、メトリックとして収集されても良い。MLSは、異なる問題領域のための様々な手法またはモデルの有効性もしくは質に関して、MLSクライアントから格付け/等級付けまたは他の種類のフィードバックも収集しても良い。一部の実施形態において、様々な分類子についての受信者動作特性(ROC)曲線の下の領域等の、モデル予測有効性の定量的測度もまた、収集されても良い。一実施形態において、質に関する情報の一部は、暗黙的クライアントフィードバックを介して得られる代わりに、例えば、モデルが試験データセットのために最終的に使用される前に訓練反復の間に変更された一組のパラメータを記録することによって、MLSによって暗黙に推測または観測されても良い。一部の実施形態において、クライアントは、MLSとのクライアントの対話が、ベストプラクティス知識ベース向上のために使用され得るか、または使用され得ないかを判定することができても良く、例えば、一部のクライアントは、クライントの個別化された技術が他の人々によって広く使用されるようになることを望まない場合があり、したがって、MLSを用いたそのような技術または他のユーザと関連付けられたメトリックの共有に加わらなくても良い。
収集されたメトリック及び/またはフィードバックに基づいて、機械学習ワークフローの様々な段階のためのそれぞれの組のベストプラクティスが、識別されても良い(要素1057)。ベストプラクティスの一部が、特定の問題領域に固有のものでも良い一方で、他の部分は、より一般的に適用可能でも良く、したがって問題領域を超えて使用されても良い。識別されたベストプラクティスの表現または要約は、MLSの知識ベースに記憶されても良い。(例えば、ブラウザまたは検索ツールを介した)知識ベースへのアクセスが、MLSユーザに提供されても良い(要素1060)。MLSはまた、例えば、ベストプラクティスを利用するようにユーザを誘導する可能性がより高い新しいAPIを導入することによって、ベストプラクティスに基づいて規定のパラメータを選択することによって、及びベストプラクティスと関連付けられた選択肢が選択される可能性がより高くなるように、ドロップダウンメニュー内のパラメータの選択肢が提示される順序を変更すること等によって、ベストプラクティスをユーザ公開されているプログラム的インターフェース内に組み込んでも良い。一部の実施形態において、MLSは、クライアントの機械学習目標を達成するためにクライアントの手助けをすることができる、様々なツール及び/またはテンプレートを提供しても良い。例えば、テンプレートと、レシピ、モデル等のための自動化構文エラー修正等の開発ガイダンスと、を提供する、ウェブベースのリッチテキストエディタまたはインストール可能な統合開発環境(IDE)が、MLSによって提供されても良い。少なくとも1つの実施形態において、MLSは、(例えば、同様の問題を解決する他のクライアントのために)過去に有益であることが証明された候補モデルまたは例をユーザに提供しても良い。一部の実装例において、MLSはまた、複数の対話セッションをまたいで、クライアントによって(または同じ顧客アカウントと関連付けられた一組のユーザによって)行われた動作の履歴も管理し、同じクライアントが前に生成した人工物を用いてかまたは使用して、クライアントが容易に実験することを可能にしても良い。
特徴処理レシピ
図11は、少なくとも一部の実施形態に従った、機械学習サービスでのデータ変換のためのレシピの使用と関連付けられた対話の例を例示する。描写される実施形態において、MLSによって定義されたレシピ言語は、モデル訓練及び予測のための使用のための記録を準備するために、指定された組のデータ記録に対して行われる変換を、ユーザが容易かつ簡潔に指定することを可能にする。レシピ言語は、以下にさらに詳細に記載されるように、1つまたは複数の変換が適用される変数の個別化されたグループをユーザが作成し、中間変数及び他の人工物への依存性等を定義することを可能にしても良い。使用の流れの一例において、生データ記録は、まず、(例えば、MLS I/Oライブラリの助けを借りて、図1に示されるもの等の入力記録ハンドラによって)データソースから抽出され、1つまたは複数のレシピに従って処理され、次いで訓練または予測のための入力として使用されても良い。別の使用の流れにおいて、レシピ自体が、訓練行程及び/または予測行程を組み込んでも良い(例えば、宛先モデルまたはモデルは、レシピ内で指定されても良い)。レシピは、既に訓練サブセットと試験サブセットとに分割されたデータ記録、または訓練サブセット及び試験サブセットに分割する前のデータセット全体のいずかに適用されても良い。少なくとも一部の実施形態において、所与のレシピは、潜在的に様々な異なる機械学習問題領域のためのいくつかの異なるデータセットに対して再使用されても良い。MLSのレシピ管理構成要素は、(1つのモデルの出力が別のモデルのための入力として使用され得るか、または反復予測を行うことができる)理解し易い複合モデルの生成、ならびにデータ変換のためのベストプラクティスの共有及び再使用を可能にしても良い。少なくとも1つの実施形態において、所与の入力データセットから開始する、行われる連続的変換のパイプラインは、単一のレシピ内で指示されても良い。一実施形態において、MLSは、1つまたは複数のレシピのためのパラメータ最適化を行なっても良く、例えば、MLSは、特定の機械学習アルゴリズムのために使用されるより有益な一組の入力変数を識別する試みにおいて、分位ビンのサイズまたは語根の数がn−gram内に含まれるような変換特性を自動的に変えても良い。
一部の実施形態において、変換レシピのテキストバージョン1101は、クライアントによる「createRecipe」MLS API呼び出し内のパラメータとして渡されても良い。示されるように、レシピバリデータ1104は、例えば、描写される実施形態において、レシピのテキストバージョン1101がMLSによって定義された文法1151に適合し、レシピが定義済みの順序で配置された1つまたは複数のセクションを含むことを確実にするために、語彙的正しさに関して、レシピのテキストバージョン1101を確認しても良い(レシピの予想される構造の例は、図12に例示され、以下に記載される)。少なくとも一部の実施形態において、MLSによって受信されたレシピのバージョンは、必ずしもテキストバージョンである必要はなく、代わりに、例えば、前処理されたかまたは部分的に組み合わされたバージョン(これは、一部の事例では、プレーンテキストよりもむしろバイナリ形式でも良い)が、クライアントによって提供されても良い。一実施形態において、MLSは、例えば、ウェブベースのレシピ編集ツールまたはダウンロード可能な統合開発環境(IDE)の形式の、レシピを準備するために使用することができるツールを提供しても良い。そのようなレシピ準備ツールは、例えば、構文及び/もしくはパラメータ選択ガイダンスの提供、自動構文エラー修正、ならびに/または(テキスト形式またはバイナリ形式のいずれかの)レシピがMLSサービスに送信される前に、クライアント側でレシピテキストに対して少なくともある程度の前処理の実施を行なっても良い。レシピは、変数のカルテシアン積、(テキストデータの場合)n−gram、(数値データ変数の場合)分位ビン等を形成するための関数等の、1つまたは複数のライブラリ1152で定義された、いくつかの異なる変換関数または方法を使用しても良い。少なくとも一部の実施形態において、レシピ検証のために使用されるライブラリは、サービスのコアまたはネイティブにサポートされている特徴処理能力を向上させるためにMLS内に組み込まれたカスタム特徴処理拡張を表す、第三者またはクライアント提供の関数またはライブラリを含んでも良い。レシピバリデータ1104は、テキストバージョン1101で呼び出された関数が(a)ライブラリ1152のサポートされている関数内にあり、かつ(b)適切な署名と一緒に使用されている(例えば、関数の入力パラメータがライブラリ内で指定されているパラメータの種類及びシーケンスと一致している)ことの検証にも関与しても良い。一部の実施形態において、MLS顧客は、例えば、カスタム「ユーザ定義関数」(UDF)もレシピ内に含むことができるように、追加の関数をライブラリの一部として登録しても良い。一部の実施形態において、UDFを利用することを望む顧客は、(例えば、ソースコード、実行可能なコード、またはモジュールのソースもしくは実行可能なバージョンがMLSによって得られ得る第三者エンティティへの参照の形態の)UDFを実装するために使用することができるモジュールの指標を提供する必要があっても良い。一部の実装例において、例えば、Java(商標)、Python等を含むいくつかの異なるプログラミング言語及び/または実行環境が、UDFのためにサポートされても良い。描写される実施形態において、レシピのテキストバージョンは、実行可能なバージョン1107に変換されても良い。レシピバリデータ1104は、レシピ言語のためのコンパイラに類似し、レシピのテキストバージョンは、ソースコードに類似し、実行可能なバージョンは、ソースコードから得られたコンパイルされたバイナリまたはバイトコードに類似していると見なされても良い。一部の実施形態において、実行可能なバージョンは、特徴処理計画とも称され得る。描写される実施形態において、レシピのテキストバージョン1101及び実行可能なバージョン1107の両方は、MLS人工物レポジトリ120内に記憶されても良い。
一部の実施形態において、MLSの実行時間レシピマネージャ1110は、例えば、入力データセットを指定する「executeRecipe」APIの同等物に応答して、レシピ実行のスケジューリングに関与しても良い。描写される実施形態において、それぞれの入力データセットIDS1及びIDS2を有する、同じレシピR1のための2つの実行要求1171A及び1171Bが示される。入力データセットは、データ記録の変数が様々なデータ型、例えば、テキスト、数値データ型(例えば、実数または整数)、Boolean、2値データ型、カテゴリーデータ型、画像処理データ型、音声処理データ型、生物情報学データ型、非構造化情報管理アーキテクチャ(UIMA)に準拠した特定のデータ型等の構造化データ型等のうちのいずれかのインスタンスを含んでも良いデータ記録を含んでも良い。各事例において、実行時間レシピマネージャ1110は、R1の実行可能なバージョンを取得(または生成)し、(例えば、リクエスタがレシピを実行することを許可されること、入力データが正しいかまたは予想される形式であるように見えること等を確実にするために)一組の実行時間検証を行い、最終的にそれぞれのリソースセット1175A及び1175BにR1の変換動作の実行をスケジュールしても良い。少なくとも一部の事例では、変換のために使用される特定のライブラリまたは関数は、入力記録のデータ型に基づいて判定されても良く、例えば、特定の構造化データ型のインスタンスは、そのデータ型のために定義された対応するライブラリの関数または方法を使用して処理される必要があっても良い。描写される実施形態において、それぞれの出力1185A及び1185Bは、IDS1及びIDS2に対してレシピR1を適用することにより生成されても良い。レシピR1の詳細に応じて、出力1185Aは、モデルのための入力として使用されるデータ、または(予測もしくは評価等の)モデルの結果のいずれかを表しても良い。少なくとも一部の実施形態において、レシピは、実行要求に対して非同期的に適用されても良く、例えば、先に記載されるように、ジョブオブジェクトは、実行要求に応答してジョブ待ち行列内に挿入されても良く、実行は、後でスケジュールされても良い。一部の事例において、レシピの実行は、例えば、入力記録の取り扱いに関連したジョブ(データセットの解読、解凍、訓練セット及び試験セットへの分割等)の完了にあたり等、他のジョブに依存しても良い。一部の実施形態において、テキストレシピの検証及び/またはコンパイルはまた、または代わりに非同期的にスケジュールされるジョブを使用して管理されても良い。
一部の実施形態において、テキスト形式のレシピを指定し、指定されたデータセットに対してレシピを実行するための要求も含むクライアント要求は、受信されても良く、つまり図11に示される静的分析行程及び実行行程は、必ずしも別個のクライアント要求を必要としなくても良い。少なくとも一部の実施形態において、クライアントは、例えば、MLSによってプログラム的に公開されているレシピコレクションから選択されたデータセットに対して実行される既存のレシピを単純に指示しても良く、レシピのテキストバージョンを生成する必要すらなくても良い。一実施形態において、MLSのレシピ管理構成要素は、一組の入力データ変数、及び/またはレシピ内に指示された変換の出力を調べ、他のグループよりも高い予測能力を有し得る変数または出力のグループを自動的に識別し、そのようなグループの指標をクライアントに提供しても良い。
図12は、少なくとも一部の実施形態に従った、レシピのセクション例を例示する。描写される実施形態において、レシピ1200のテキストは、グループ定義セクション1201、割り当てセクション1204、依存性セクション1207、及び出力/宛先セクション1210の4つの分離したセクションを含んでも良い。一部の実装例において、出力/宛先セクションのみが必須でも良く、他の実装例において、セクションの他の組み合わせもまた、またはセクションの他の組み合わせの代わりに必須でも良い。少なくとも1つの実施形態において、図12に示される4つのセクションタイプのうちの2つ以上がレシピ内に含まれる場合、セクションは、指定された順序で配置される必要があっても良い。少なくとも1つの実施形態において、宛先モデル(すなわち、レシピ変換の出力が提供される機械学習モデル)は、出力セクションとは分離したセクションで指示されても良い。
グループ定義セクション1201で、名前によって暗示されるように、クライアントは、例えば、同じ変換動作がグループの全てのメンバー変数に適用されるということを、レシピ内で指示することをより容易にするため、入力データ変数のグループを定義しても良い。少なくとも一部の実施形態において、レシピ言語は、(入力データセット内の全ての変数を含む)ALL_INPUT、ALL_TEXT(データセット内の全てのテキスト変数)、ALL_NUMERIC(データセット内の全ての整数及び実数値変数)、ALL_CATEGORICAL(データセット内の全てのカテゴリー変数)、ならびにALL_BOOLEAN(データセット内の全てのBoolean変数、例えば、(それぞれ一部の実装例において「1」及び「0」として表され得る)「真」または「偽」の値のみを有することができる変数)等の一組の基準グループを定義しても良い。一部の実施形態において、レシピ言語は、グループを定義するときに、ユーザが一部の変数の種類を変更または「投げる」ことを可能にしても良く、例えば、任意のテキストを含むように見えるが、年の月の名前、週の曜日、または国の州等の、不連続的な一組の値のみを有することが単に予想される変数は、一般的テキスト変数として取り扱われる代わりに、カテゴリー変数に変換されても良い。グループ定義セクション内で、方法/関数「group」及び「group_remove」(またはセット動作を表す他の類似した関数)は、新しいグループを定義するときに変数を組み合わせるか、または除外するために使用されても良い。少なくとも一部の実施形態において、所与のグループ定義は、別のグループ定義と称され得る。図12に示されるセクションコンテンツ1250の例において、LONGTEXT、SPECIAL_TEXT、及びBOOLCATの3つのグループが定義される。LONGTEXTは、「title」及び「subject」と呼ばれる変数を除く、入力データ内の全てのテキスト変数を含む。SPECIAL_TEXTは、テキスト変数「subject」及び「title」を含む。BOOLCATは、入力データ内の全てのBoolean及びカテゴリー変数を含む。少なくとも一部の実施形態において、示されるグループ定義の例は、たとえ、データセットが「subject」変数、「title」変数、いかなるBoolean変数、いかなるカテゴリー変数、またはさらにはいかなるテキスト変数を含まないとしても、任意のデータセットに適用することができることが留意される。そのような実施形態において、入力データセット内にテキスト変数が存在しない場合、例えば、LONGTEXT及びSPECIAL_TEXTの両方は、その特定の入力データセットに関して、メンバーのいない空のグループになるであろう。
レシピ1200の他のセクションで参照されても良い中間変数は、割り当てセクション1204で定義されても良い。割り当てセクションの例において、「binage」と呼ばれる変数は、「30」のビン計数を用いて入力データ内の「age」変数に適用される(描写される実施形態において、レシピ言語の定義済みライブラリ関数の中に含まれることが想定される)「quantile_bin」関数に関して定義される。「countrygender」と呼ばれる変数は、入力データセットの2つの他の変数「country」及び「gender」のカルテシアン積として定義され、「cartesian」関数は、定義済みライブラリの一部であることが想定される。依存性セクション1207において、ユーザは、レシピが依存する(例示される例において、MLS人工物識別子「pr−23872−28347−alksdjf」を有する、「clustermodel」として参照されるモデル等の)他の人工物を指示しても良い。例えば、一部の事例では、レシピの依存性セクションで参照されるモデルの出力は、レシピの入力として取り込まれても良いか、または参照されるモデルの出力の一部分は、レシピの出力に含まれても良い。描写される実施形態において、依存性セクションは、レシピベースのジョブをスケジュールするとき、例えば、MLSジョブスケジューラによって使用されても良い。異なる実施形態において、他のレシピ、エイリアス、統計セット等を含む様々な人工物のうちのいずれかへの依存性は、所与のレシピ内で指示されても良い。
出力セクション1210の例において、いくつかの変換は、入力データ変数、変数のグループ、レシピの前のセクションで定義された中間変数、または依存性セクションで識別された人工物の出力に提供される。変換されたデータは、「model1」と識別された異なるモデルに入力として提供される。用語頻度−逆文書頻度(tfidf)統計は、句読点が(「nopunct」関数を介して)削除された後に、LONGTEXTグループ内に含まれる関数に関して得られ、変数のテキストは、(「lowercase」関数によって)小文字に変換される。tfidf測定値は、コレクションまたはコーパスの文書内のワードの相対的重要性を反映することが意図されても良く、所与のワードに対するtfidf値は、典型的に、文書内のワードの発生数に比例し、コレクション全体内のワードの頻度によってオフセットされる。tfidf、nopunct、及びlowercase関数は全て、レシピ言語のライブラリ内で定義されることが想定される。同様に、出力セクションで指示された他の変換は、osb(直交スパースbigram)ライブラリ関数、数値をビニングまたはグループ化するためのquantile_binライブラリ関数、及びカルテシアン積関数を使用する。セクション1210で指示される出力の一部は、必ずしも変換自体を伴わなくても良く、例えば、入力データセット内のBOOLCATグループの変数は、単純に出力内に含まれても良く、「clustermodel」の「clusterNum」出力変数は、いずれの変更もなしに、レシピの出力内にも含まれても良い。
少なくとも一部の実施形態において、出力セクション内に列挙されるエントリは、列挙されていないこれらの入力データ変数を暗黙的に破棄するために使用されても良い。したがって、例示される例において、例えば、入力データセットが「taxable−income」数値変数を含む場合、「taxable−income」数値変数が直接的または間接的に出力セクション内で参照されないため、その数値変数は、単純に破棄されても良い。図12に示されるレシピ構文及びセクションずつの編成は、他の実施形態のものとは異なっても良い。異なる実施形態において、多岐にわたる関数及び変換タイプ(これらの少なくとも一部は、図12に示される特定の例とは異なっても良い)は、サポートされても良い。一部の実施形態において、例えば、日/時間に関連した関数「dayofweek」、「hourofday」「month」等は、レシピ言語でサポートされても良い。少なくとも1つの実施形態において、数学的関数、例えば「sqrt」(平方根)、「log」(対数)等が、サポートされても良い。一部の実施形態において、数値を(例えば、{−N1〜+N2}の範囲のマップ値を、{0〜1}の範囲に)正規化するための関数、または欠損値を埋めるための関数(例えば、「replace_missing_with_mean(ALL_NUMERIC)」)が、サポートされても良い。一実施形態において、単一の表現内での1つまたは複数の事前に定義されたグループ変数、中間変数、または依存性への複数の参照が、許可されても良く、例えば、レシピ断片「replace_missing(ALL_NUMERIC,mean(ALL_NUMERIC))」は、有効であると見なされても良い。少なくとも一部の実施形態において、「’income’+10*’capital_gains’」等の変数の組み合わせを伴う数学的表現もまた、レシピ内に許可されても良い。一部のレシピにおいて、コメントは、「//」等の区切り記号によって指示されても良い。
レシピ検証
図13は、少なくとも一部の実施形態に従った、許容できるレシピ構文を定義するために使用され得る文法例を例示する。示される文法は、ANTLR(ANother Tool for Language Recognition)の一バージョン等の構文解析ルーチン生成システムの必要条件に従ってフォーマットされても良い。示されるように、文法1320は、レシピ内で使用される表現の構文の規則を定義する。図13に示されるものと類似した文法を前提として、ANTLR等のツールは、レシピのテキストバージョンから抽象構文木を構築することができるよりも、構文解析系を生成しても良く、次いで、抽象構文木は、MLS制御プレーンによって処理計画に変換されても良い。文法1320を使用して生成された木の例は、図14に示される。
図13に示される文法「MLS−Recipe」の例において、表現「expr」は、「BAREID」、「QUOTEDID」、「NUMBER」、または「functioncall」のうちの1つであり得、後者の4つのエンティティの各々は、文法においてさらに深く定義される。BAREIDは、大文字または小文字で始まり、数値を含むことができる。QUOTEDIDは、シングルクォート内に任意のテキストを含むことができる。NUMBERは、指数の有無に関わらない実数値、及び整数を含む。functioncallは、関数名(BAREID)に続いて丸括弧内にゼロ以上のパラメータを含まなければならない。空白及びコメントは、文法1320に従って抽象構文木を生成するとき、「 −> skip」で終了するラインに示されるように、無視される。
図14は、少なくとも一部の実施形態に従った、レシピの一部分のための生成され得る抽象構文木の例を例示する。描写される実施形態において、テキスト「cartesian(binage,quantile_bin(‘hours−per−week’,10))」を含むレシピ断片1410の例は、文法1320(または何か他の類似した文法)に従って抽象構文木1420に翻訳されても良い。示されるように、「cartesian」及び「quantile_bin」は、各々が2つのパラメータを有する関数呼び出しとして認識される。例示されるレシピ断片の構文分析の間、レシピバリデータ1104は、「cartesian」及び「quantile_bin」に渡されたパラメータの数及び順序がこれらの関数の定義に適合し、かつ、変数「binage」及び「hours_per_week」が、レシピ内で定義されていることを確実にしても良い。これらの条件のうちのいずれかが満たされていない場合、「cartesian」断片が配置されているレシピ内のライン番号を示すエラーメッセージが、レシピを提出したクライアントに提供されても良い。仮に検証エラーがレシピ全体の中に見つからなかったとして、レシピの実行可能なバージョンが生成されても良く、その中で、部分1430は、断片1410を表しても良い。
領域固有レシピコレクション
少なくとも一部の実施形態において、MLSの一部のユーザは、少なくともMLSを使用し始めたときの期間の間、特徴処理の専門家ではない場合がある。したがって、MLSは、ユーザに、様々な問題領域において有益であることが既に見出されているレシピのコレクションへのアクセスを提供しても良い。図15は、少なくとも一部の実施形態に従った、機械学習サービスから利用可能な領域固有レシピの検索のために使用され得るプログラム的インターフェースの例を例示する。示されるように、高レベルガイダンスをMLSユーザに提供するメッセージ領域1504、及びレシピが利用可能ないくつかの問題領域を含む、ウェブページ1501が、レシピ検索のために実装されても良い。描写される実施例において、MLS顧客は、チェックボックスを使用して、問題領域の中でもとりわけ、詐欺検出1507、感情分析1509、画像分析1511、ゲノム分析1513、または音声認識1515から選択することができる。ユーザは、描写されるウェブページ内の検索語テキストブロック1517を使用して、他の問題領域と関連付けられたレシピを検索しても良い。
選択された問題領域(画像分析)に関して、顔認識についてレシピFR1及びFR2、脳腫瘍認識についてBTR1、海のゴミ認識についてODA1、ならびに天文学的事象検出についてAED1の5つのレシピ例へのリンクが、ウェブページ1501に示されている。所与のレシピに関する追加の詳細は、レシピの名前をクリックすることによりユーザによって得られても良く、例えば、一部の実施形態において、レシピが行うことについての説明が提供されても良く、他のユーザによって提出されたレシピの格付け/等級付けが提供されても良く、他のユーザによってレシピ上に提出されたコメント、以下同様である。ユーザが、(変更せずにか、またはレシピを変更した後のいずれかに)使用したいレシピを見つけた場合、ユーザは、例えば、その後のMLS API呼び出し内に含めるために、レシピのテキストバージョンをダウンロードすることができても良い。描写される実施形態において、メッセージ領域1504に示されるように、ユーザは、MLSによって公開されているコレクションに含めるために、自身のレシピも提出することができても良い。少なくとも一部の実装例において、MLSは、他のユーザアクセスを許可する前に、(例えば、レシピが様々な入力データセットに対して意味のある出力を生成していることを確認することにより)提出されたレシピに対して何らかの組の検証行程を行なっても良い。
レシピ変換のための自動パラメータ調整
数値データ属性の分位ビンの作成、ngramの生成、または分析される文書からのスパースもしくは低頻度単語の削除等の多くの種類の特徴処理変換動作に関して、ビンのサイズ/境界、ngramの長さ、スパースワードに対する削除基準等のパラメータが、一般的に選択される必要があっても良い。(一部の環境においてハイパーパラメータとも称され得る)そのようなパラメータの値は、レシピ出力を使用して立てられる予測に著しい影響を与え得る。一部の実施形態において、MLSユーザが手動で各パラメータ設定またはパラメータ設定の各組み合わせに対する要求を提出する必要がある代わりに、MLSは、自動パラメータ調査をサポートしても良い。図16は、少なくとも一部の実施形態に従った、クライアントの代わりにレシピ変換のためのパラメータ設定の範囲を自動的に調査し、そのような調査の結果に基づいて許容できるか、または推奨されるパラメータ設定を選択する機械学習サービスの例を例示する。
描写される実施形態において、MLSクライアント164は、パラメータ自動調整設定1606を含むレシピ実行要求1601の実行を依頼しても良い。例えば、クライアント164は、入力データ内の1つまたは複数の変数の分位ビニングのビンサイズ/境界は、サービスによって選択されるべきであること、またはn−gram内のワード数は、サービスによって選択されるべきであることを指示しても良い。一部の実施形態において、パラメータ調査及び/または自動調整は、所与のデータセットが分類されるべきであるクラスタの数、クラスタ境界閾値(例えば、どれくらい離れた2つの地理的位置が一組の「近くの」位置の一部と見なされ得るか)等の様々なクラスタ化関連パラメータに対して要求されても良い。一部の実施形態において、特徴処理の間に所与の画像がトリミング、回転、またスケーリングされるべき程度等の様々な種類の画像処理パラメータ設定は、自動調整のための候補であっても良い。自動パラメータ調査はまた、(例えば、Latent Dirichlet Allocation(LDA)技術に従って)テキスト文書のベクトル表現の選択次元値、または他の自然言語処理技術のためにも使用されても良い。一部の事例では、クライアントは、例えば、許容できるパラメータ値に達するように、パラメータ値空間の調査を終了するために使用される基準も指示しても良い。少なくとも一部の実施形態において、クライアントは、MLSに使用される承認基準を決定させる選択肢を与えられても良く、そのような選択肢は、非熟練ユーザにとって特に有用であり得る。一実装例において、クライアントは、パラメータ調査のためのリソースまたは実行時間の限度を指示しても良い。少なくとも1つの実装例において、少なくとも一部の出力変換のための自動調整設定の規定の設定は、「真」でも良く、例えば、クライアントは、MLSが変換に関してパラメータ空間を調査することを防ぐために、自動調整を行わないことを明確に指示する必要があっても良い。
自動調整が所与の変換動作に関して行われるという判定に応答して、MLS(例えば、レシピ実行時間マネージャ1640のパラメータエクスプローラー1642)は、(例えば、10、20、30、及び40の分位ビン計数が特定の数値変数に関して調査されるべきかどうか)変換に対するパラメータ調整範囲1654を選択しても良い。異なる実施形態において、パラメータ範囲は、類似した変換、リソース制約、入力データセットのサイズ等に関してMLSに知られているベストプラクティスを含む、様々な要因に基づいて選択されても良い。いくつかの変換動作の組み合わせのためのそれぞれのパラメータが調整されるシナリオにおいて(例えば、分位ビニングが2つ以上の変数のために自動調整される場合)、パラメータエクスプローラー1642は、試される組み合わせの数が閾値未満に保たれるように、各パラメータのそれぞれの組の値を選択しても良い。パラメータ値の範囲が判定されると、パラメータエクスプローラーは、各パラメータ値または組み合わせに対する変換の反復を実行し、少なくとも一部の実装例において、反復結果1656を一時記憶装置に記憶しても良い。異なるパラメータ値に対して生成された結果のセット、及び使用される最適化基準に基づいて、少なくとも1つのパラメータ値が、各パラメータに対し許容できるとして、識別されても良い。描写される実施形態において、自動調整される異なるパラメータの承認または推奨されるパラメータ値または値1668を示す結果通知1667が、クライアントに提供されても良い。一部のパラメータについて、特定のパラメータ値を単一の最良の値として識別するのは、例えば、いくつかの異なる値が、類似した結果を生じる場合があるため、必ずしも簡単ではない場合がある。一部の実施形態において、そのようなパラメータについて単一の最適な値を識別する代わりに、MLSは、代わりに、その組の全ての値が類似した質の結果を提供するような、所与のパラメータPに対する一組の候補値{V1、V2、V3、…、Vn}を識別しても良い。この組の候補値は、クライアントに提供され、使用される特定のパラメータ値をクライアントが選択することを可能にしても良く、クライアントは、選択されたパラメータ値に関してMLSに通知しても良い。一実施形態において、クライアントは、使用されるパラメータ値設定について必ずしも知らされずに、承認/最適化されたパラメータ値を使用して得られたレシピ変換の結果の指標のみを提供されても良い。
再使用可能なレシピを介して特徴処理をサポートする方法
図17は、少なくとも一部の実施形態に従った、データセット変換のための再使用可能なレシピをサポートしている機械学習サービスで行われ得る動作の代用を例示する流れ図である。要素1701に示されるように、入力データセットに対して行われる変換動作のためのレシピのテキストバージョンの指標は、プロバイダネットワークに実装されたネットワークにアクセス可能なMLSで受信されても良い。一実施形態において、レシピテキストは、MLSによって定義されたレシピ言語に従った4つのセクション:グループ定義セクション、割り当てセクション、依存性セクション、及び(単純に出力セクションとも称され得る)出力/宛先セクションのうちの1つまたは複数を含んでも良い。一部の実施形態において、(出力セクション等の)1つまたは複数のセクションは、必須でも良い。一般に、出力/宛先セクションは、レシピの他のセクションで定義されるエンティティに対して、または直接データセットの入力変数に対して行われる様々な特徴処理変換動作を指示しても良い。グループ定義セクションは、入力変数のカスタムグループ(または他のグループと組み合わせた入力データ変数、もしくは他のグループから派生したグループ)を定義するために使用されても良い。そのようなグループ定義は、出力セクションで、共通変換がいくつかの変数に適用されることを指定することを容易にし得る。一部の実施形態において、ALL_NUMERICまたはALL_CATEGORICAL等のいくつかの組み込みまたは定義済みグループが、レシピ作成者が新しいグループを定義するときに、変数除外及び使用される組み合わせを容易に指示することを可能にするために、「group_remove」及び「group」等の関数と共に、レシピ言語によってサポートされても良い。割り当てセクションは、レシピ内の他所で使用され得る1つまたは複数の中間変数を定義するために使用されても良い。依存性セクションは、レシピが別の機械学習人工物(例えば、モデル、もしくは別のレシピ)、またはMLSのレポジトリに記憶された複数の他の人工物に依存することを指示しても良い。一部の実施形態において、出力セクションは、依存性セクションで指示された人工物の指定された入力変数、定義されたグループ、中間変数または出力に適用される特定の変換だけでなく、変換結果が入力として提供される宛先モデルも指示しても良い。
機械学習サービスは、図12に例示される関数の種類等の、レシピの出力セクションで使用することができる様々な異なる変換動作を含むライブラリをネイティブにサポートしても良い。一部の実施形態において、各々が所与の問題領域または機械学習アルゴリズムのそれぞれのクラスに対応するいくつかの異なるライブラリが、MLSによってサポートされても良い。さらに、一実施形態において、MLS顧客は、MLSのコア特徴処理能力を拡張するために、MLSに(「ユーザ定義関数」またはUDFと呼ばれる)自身のカスタム関数、第三者関数、または複数のUDFまたは第三者関数を含むライブラリを登録することができても良い。一部の実施形態において、UDFは、クライアントによって(例えば、1つまたは複数のテキスト形式及び/または1つまたは複数のバイナリ形式を含む)様々な異なる形式でMLSに提供されても良い。そのような実施形態において、いくつかの異なるプログラミングまたはスクリプト言語が、UDFのためにサポートされても良い。一部の実施形態において、外部で生成された変換関数またはライブラリをMLSに登録するためのAPIがサポートされ、例えば、新規に登録された関数を他のクライアントがアクセス可能にするか、または提出したクライアントによる使用を制限させるかをクライアントが指示することを可能にしても良い。一実装例において、レシピは、それ自体の関数がレシピで使用される1つまたは複数のライブラリ(例えば、MLSのコアライブライまたは標準ライブラリ以外のライブラリ)が列挙されても良いインポートセクションを含んでも良い。一部の実装例において、MLSは、リソース使用制限を少なくとも一部のUDFに課しても良く、例えば、CPU時間、メモリ、ディスクスペース等の暴走消費を防ぐために、上限が、所与のUDFが実行することができる時間に設定されても良い。このように、潜在的にエラーが起こりやすいUDF(例えば、ある特定の条件下でそれ自体の論理が無限ループを含むUDF)の実行の負の結果が制限されても良い。少なくとも一部の実施形態において、レシピテキスト(またはレシピテキストが読み出され得るファイルもしくはURL)は、MLSクライアントによって呼び出される(「createRecipe」API等の)API内のパラメータとして渡されても良い。
レシピテキストは、文法、及び例えば、サポートされている変換方法または関数を定義する一組のライブラリの一組の構文規則に従って、MLSで検証されても良い(要素1704)。少なくとも一部の実施形態において、構文エラーまたは解決不可能なトークンがテキスト検証チェック中に識別された場合、修正される必要があるテキストの部分を示すエラーメッセージが、(例えば、ライン番号及び/またはエラーを含むトークンを示すことにより)レシピ提出者に提供されても良い。エラーが発見されないか、または見つかったエラーが修正され、レシピが再提出された後、レシピテキストの実行可能なバージョンが、生成されても良い(要素1707)。描写される実施形態において、レシピの1つまたは両方のバージョン(テキストバージョン及び実行可能なバージョン)は、MLSの人工物レポジトリに記憶されても良く、例えば、MLSによって生成された固有のレシピ識別子が、レシピ提出者に提供される。
MLSは、例えば、異なるAPI呼び出しに応答してか、またはレシピの最初の提出が実行要求の中に含まれているため、レシピが特定のデータセットに適用されることを判定しても良い(要素1710)。データセットは、データセットが実行時間承認基準を満たすこと、例えば、入力変数名及びデータ型がレシピ内で指示されているものと適合すること、及びデータセットが許容できるサイズのものであることを確認しても良い(要素1713)。一組のプロバイダネットワークリソース(例えば、MLSによって判定された適切な量の記憶装置容量及び/またはネットワーク容量で構成された1つまたは複数の計算サーバ)が、レシピ実行のために識別されても良い(要素1716)。次いで、レシピ内で指示された変換は、入力データセットに適用されても良い(要素1719)。一部の実施形態において、図16に関して上で記載されるように、MLSは、変換のうちの1つまたは複数のための許容できるパラメータ値を識別することを目指すパラメータ調査を行なっても良い。描写される実施形態において、レシピ変換が完了した(及び/または変換の結果がレシピ自体の中で指定されたモデル等の適切な宛先に提供された)後、レシピの実行が完了したという通知が、実行を要求したクライアントに提供されても良い(要素1722)。
I/O効率的入力データフィルタリングシーケンス
先に言及されたように、一部の機械学習入力データセットは、(例えば、テラバイトのように)機械学習サービスの任意の所与のサーバで利用可能であり得るメモリ容量よりもはるかに大きくあり得る。モデルを訓練し評価するために、いくつかのフィルタリングまたは入力記録並べ替え動作が、時折入力データセットに対して、順々に行われる必要がある場合がある。例えば、分類モデルを交差検証するために、同じ入力データセットが、複数回、訓練データセット及び試験データセットに分割される必要がある場合があり、そのような分割動作は、入力フィルタリングの一例と見なされても良い。他の入力フィルタリング動作の種類には、サンプリング(データセットのサブセットを得る)、入れ換え(入力データオブジェクトの順序の並べ替え)、あるいは並列化のための区分(例えば、map−reduceもしくは類似の並列計算パラダイムを使用して実行される計算のため、またはモデルの複数の並列訓練動作を行うためにデータセットをNサブセットに分ける)が含まれ得る。数テラバイトのスペースを消費するデータセットが、(連続的入れ換えまたは分割等の)各フィルタリング動作に対して、永続的記憶装置から読み出され、及び/または永続的記憶装置に書き込まれる場合、I/O動作単独だけのためにかかる時間は、特に、I/Oの大きな断片が循環ディスクベース記憶装置からの入力データセットの個々の観測記録のランダム読み出しを含む場合、禁止になっても良い。したがって、一部の実施形態において、大きなデータセットを複数のサーバのメモリ内に一旦読み出されるより小さな連続的チャンクへとマッピングし、次いで連続的フィルタリング動作間に、データセットを永続的記憶装置にコピーせずに、一連のチャンクレベルフィルタリング動作のシーケンスを決まった場所で行う技法が、機械学習サービスで実行されても良い。少なくとも1つのそのような実施形態において、I/Oライブラリは、機械学習サービスによって実装され、クライアントがデータソース非依存APIの単一の呼び出しを介して、指定されたデータセットに対して行われる様々な入力フィルタリング動作を指定すること可能にしても良い。そのようなライブラリは、入力データセットが表等の構造化データベースオブジェクト内よりもむしろ、ファイルシステムディレクトリ内のファイル内に記憶された、異なる長さの観測記録を含むシナリオにおいて特に有用であり得るが、以下に記載されるチャンキング及びインメモリフィルタリング技法は、一般に以下に記載されるように(データベースを含む)様々なデータソース型のうちのいずれかに対して行われても良い。I/Oライブラリは、クライアントが様々な種類のデータソース(例えば、シングルホストファイルシステム、分散ファイルシステム、プロバイダネットワークに実装されたもののストレージサービス、非リレーショナルデータベース、リレーショナルデータベース等)を指示することを可能にしても良く、同じ種類のフィルタリング動作が使用されるデータソースの種類に関わらずサポートされ得るという点で、データソース非依存と見なされても良い。一部の事例では、所与の入力データセットのそれぞれのサブセットが、異なる種類のデータソース内に記憶されても良い。
図18は、少なくとも一部の実施形態に従った、機械学習サービス(MLS)による大きな入力データセットに効率的インメモリフィルタリング動作を行うための手順例を例示する。示されるように、描写される実施形態において、機械学習サービスのクライアントが観測記録を抽出することを望むデータソース1802は、ファイルF1、F2、F3、及びF4等の複数のデータオブジェクトを含んでも良い。ファイルのサイズは異なっても良く、及び/または任意の所与のファイル内の観測記録の数は、他のファイル内の観測記録の数と異なっても良い。本明細書で使用される場合、「観測記録」という用語は、機械学習動作のための入力データを指すとき、「データ記録」という用語と同義に用いられる場合がある。ここから、クライアントによって提出されたデータ記録抽出要求は、例えば、ファイルF1、F2、F3、及びF4の位置(例えば、ディレクトリ名または一組のURL)を参照することにより、データソース1802を指示しても良い。描写される実施形態において、抽出要求に応答して、MLSは、データセット全体のサイズ(例えば、ファイルの合わせたサイズ)を確認または推定し、統合されたアドレス空間を形成するためにファイルが論理的に連結されるべき順序を判定しても良い。示される例において、データセット1804は、例えば、F1、F2、F3、及びF4の順序でファイルを論理的に連結することにより生成されても良い。一部の実施形態において、クライアントのデータ記録抽出要求は、(少なくとも最初に)マルチファイルデータセットのファイルが組み合わされる順序、及び/またはファイルのサイズを指定しても良い。他の実施形態において、MLSは、(例えば、ファイル名の語彙的順序付け、ファイルのサイズ等の様々な要因の任意の組み合わせに基づいて)連結順序を判定しても良い。ファイルが、図18及びいくつかのそれに続く図において観測記録が記憶されるデータオブジェクトの例として使用されるが、様々な実施形態において、入力フィルタリングの同様の技法が、使用されるデータオブジェクトの種類(例えば、ブロックレベルインターフェースを提供する容量、データベース記録等)に関わらず使用されても良いことが留意される。
次いで、データセット1804の連結されたアドレス空間は、チャンクマッピング1806に示されるように、複数の連続的チャンクに細分されても良い。異なる実施形態において、チャンクのサイズ(Cs)は、いくつかの要因のうちのいずれかに基づいて判定されても良い。例えば、一実施形態において、チャンクサイズは、クライアントのデータ記録抽出要求に対する応答の少なくとも一部分が生成されるMLSサーバ(例えば、図1のプール185のサーバ)のメモリ内に各チャンクが入ることができるように設定されても良い。いくつかのMLSサーバの各々でデータ記録のために利用可能なメモリ部分がSmである単純なシナリオを、考えられたい。そのようなシナリオにおいて、図18に示されるように、CsがSm以下であるようにチャンクサイズCsが選択されても良い。他の実施形態において、たとえ異なるサーバがデータ記録に利用可能なメモリの異なる容量を有したとしても、クライアント要求は、チャンクサイジングの好みを指示しても良いか、またはMLSは、使用される規定のチャンクサイズを定義しても良い。一部の実施形態において、1つの記録抽出要求に応答するために使用されるチャンクサイズは、別の記録抽出要求に対して使用されるものとは異なっても良く、他の実施形態において、同じチャンクサイズが、複数の要求、または全ての要求に対して使用されても良い。連結データセット1804の(例えば、ランダムに選択されたサブ部よりもむしろ)連続的チャンクへの細分化は、図19に関して、以下に例示されるように、ランダム読み出しを介して読み出される必要がある断片よりも効率的な連続読み出しを介して読み込むことができるデータセットの断片を、増加させ得る。一部の実施形態において、所与のチャンクマッピングの異なるチャンクは、異なるサイズを有しても良く、例えば、チャンクサイズは、所与のデータセットの全てのチャンクと必ずしも同じである必要はない。データセットのチャンクへの最初の細分化は、データセットに対する物理的I/O動作の前に行われても良い論理動作を表すことが留意される。
描写される実施形態において、最初の組の候補チャンク境界1808は、例えば、使用されるチャンクサイズに基づいて判定されても良い。示されるように、少なくとも一部の実施形態において、候補チャンク境界は、ファイル境界と一致する必要はない。少なくとも一部の実施形態において、図22を参照して以下にさらに詳細に記載されるように、候補チャンク境界は、チャンクが最終的に読み出されるとき、チャンク境界を観測記録境界と一致させるようにいくらか変更される必要があっても良い。一部の実施形態において、チャンクレベルフィルタリング計画1850は、例えば、クライアントの要求内に含まれる(検索記述子とも称され得る)フィルタリング記述子のコンテンツに基づいて、チャンクされたデータセット1810に対して生成されても良い。チャンクレベルフィルタリング計画は、例えば、map reduce等の並列計算のための入れ換え、分割、サンプリング、または区分等の複数のインメモリフィルタリング動作1870(例えば、1870A、1870B、及び1870N)が入力データのチャンクに対して行われるシーケンスを指示しても良い。一部の実施形態において、機械学習モデルは、例えば、入力データセットのそれぞれの(及び部分的に重複している可能性がある)サブセットが並列で所与のモデルを訓練するために使用され得るモデルの並列化訓練をサポートしても良い。そのようなシナリオにおいて、1つの訓練動作の持続時間は、別のものの持続時間と少なくとも部分的に重複しても良く、入力データセットは、チャンクレベルフィルタリング動作を使用して、並列訓練セッションのために区分されても良い。例えば、チャンクレベル入れ換えは、所与のチャンク内の観測記録の相対順序を必ずしも並べ替えない、チャンクの相対順序の並べ替えを伴っても良い。様々な種類のチャンクレベルフィルタリング動作の例が、以下に記載される。
少なくとも一部の実施形態において、クライアントは、フィルタリング動作の少なくとも一部が、個々のデータ記録の粒度よりもむしろデータセットのチャンクに対して行われることを必ずしも知らない場合がある。描写される実施形態において、チャンクのコンテンツ(例えば、C1、C2、C3、及びC4内にそれぞれ含まれる観測記録)のデータ転送1814は、そのシーケンスの最初のフィルタリング動作に従って、1つまたは複数のMLSサーバのメモリ内にデータセットを書き込むために行われても良い。そのシーケンスの最初のインメモリフィルタリング動作を実行するために、例えば、チャンクの最小の一部が記憶される1つまたは複数の永続的記憶装置に向けられた一組の読み出しが、実行されても良い。一部の実施形態において、復元及び/または解読も、例えば、フィルタリング動作1870のシーケンスの1つまたは複数の動作の前に必要であっても良い。例えば、データが圧縮された形態で永続的記憶装置内に記憶された場合、そのデータは、クライアントによって提供されたか、またはMLSによって判定された復元命令/メタデータに従って復元されても良い。同様に、ソースデータが暗号化されている場合、MLSは、(例えば、クライアントによって提供または指示されたキーまたは証明書を使用して)データを解読しても良い。
一組の読み出し(及び/または一組の関連した復元/解読動作)が完了した後、少なくともチャンクC1〜C4のサブセットが、MLSサーバメモリ内に存在しても良い。(そのシーケンスの最初のフィルタリング動作がサンプルの生成を伴う場合、例えば、全てのチャンクが読み込まれる必要すらなくても良い。)描写される実施形態において、計画1850の残りのフィルタリング動作は、例えば、チャンクのうちのいずれかのコンテンツを永続的記憶装置にコピーせずに、及び/またはチャンクのうちのいずれかのコンテンツをソースデータ位置から再び読み出さずに、MLSサーバメモリ内の適所で行われても良い。例えば、第1のフィルタリング動作のインメモリの結果は、第2のフィルタリング動作のための入力データセットとして機能しても良く、第2のフィルタリング動作のインメモリの結果は、第3のフィルタリング動作のための入力データセットとして機能しても良く、以下同様である。描写される実施形態において、フィルタリング動作のシーケンスの最終出力は、(すなわち、観測記録の様々な変数のコンテンツを判定する)記録構文解析1818のための入力として使用されても良い。次いで、構文解析の結果として生成された観測記録1880は、1つまたは複数の宛先、例えば、モデル(複数可)1884及び/または特徴処理レシピ(複数可)1882への入力として提供されても良い。したがって、描写される実施形態において、物理的読み出し動作の単一パスだけが、多数の異なるフィルタリング動作を実行する必要があっても良く、これは、データセットが各連続的フィルタリング動作のために永続的記憶装置にコピーされる(または再読み出しされる)シナリオと比較して、実質的入力処理の加速をもたらし得る。もちろん、複数のチャンクレベル及び/または観測記録レベル動作は、永続的記憶装置にアクセスせずにメモリ内で行われても良いが、例えば、その結果が別のジョブのために後で再使用され得るように、任意のそのような動作の結果は、必要な場合、永続的記憶装置に記憶されても良い。したがって、ディスクベースの記憶装置または他の永続的記憶装置に対する頻繁かつ潜在的に時間のかかるI/O動作の回避は、上述の技法によってより簡単にされるが、永続的記憶装置に対するI/Oは、依然として適用の必要条件に基づいて、必要に応じて、かつ必要なときに任意の段階で行われても良い。
上述のようにチャンクレベルで入れ換えまたはサンプリング等のフィルタリング動作を行うことによって、個々のデータ記録に向けられたランダムな物理的読み出し動作を回避することができる。(例えば、分類モデルを交差検証するために)入力データセットが入れ換えられ、入れ換えは1メガバイトのチャンクサイズを用いてチャンクレベルで行われるシナリオを考えると、データセットのデータ記録は、1キロバイトの平均サイズを有し、復元または解読のいずれも必要ではない。元のデータセットのサイズが1000メガバイトであった場合、ランダム入れ換えの任意の所与の反復において、1000個のチャンクが論理的に配置される順序は、変更されても良い。しかしながら、任意の所与のチャンク内のデータ記録の順序は、チャンクレベル入れ換え動作において変わらないであろう。結果として、特定のチャンク(例えば、1000個のチャンクの内チャンク654)内にある全てのデータ記録は、入れ換えの結果を使用してモデルを訓練するためのグループとして提供される。チャンク654内の記録が目的の(入力変数とも称され得る)独立変数V1に関してランダムに分散されていない場合、チャンクレベル入れ換えは、訓練目的のためのV1の値のランダム化に関して、最終的には、例えば、記録レベル入れ換えほどは良くない場合がある。したがって、少なくとも一部のシナリオにおいて、データ記録レベルではなくチャンクレベルでフィルタリングを行なった結果として、統計の質または予測正確さのいくらかの損失が存在する場合がある。しかしながら、一般に質/正確さの損失は、チャンクサイズを適切に選択することにより、適度な範囲内に保たれ得る。図19は、少なくとも一部の実施形態に従った、機械学習データセットへのフィルタリング動作シーケンスのために使用されるチャンクサイズを変化させることに関連したトレードオフを例示する。
2つのチャンクマッピング例に対応する読み出し動作が、図19に所与のデータセットDS1に対して示される。提示を単純化するために、データセットDS1は、DS1上で読み出し動作(ランダム読み出しまたは一組の連続読み出しのいずれか)を開始するために、ディスク読み出しヘッドが指定されたオフセットで位置付けられる必要があるように、単一のディスク上に記憶されると仮定する。チャンクマッピング1904Aにおいて、S1のチャンクサイズが使用され、DS1は、その結果、データセットアドレス空間内のオフセットO1、O2、O3、及びO4から開始する4つの連続的チャンクに細分される。(図19及びそれに続く図に示されるマッピング例において、チャンクの数は、説明される概念を例示するために自明に少なく保たれ、実際面では、データセットは、数百または数千のチャンクを含んでも良いことが留意される。)4個のチャンクを読み出すために、合計(少なくとも)4つの読み出しヘッド位置付け動作(RHP)が行われる。ディスク読み出しヘッドをオフセットO1に位置付けた後、例えば、O1〜O2の間にオフセットを有するDS1のコンテンツを含む第1のチャンクが、連続的に読み込まれても良い。この連続読み出し(SR1)または一組の連続読み出しは、ディスク読み出しヘッドが連続読み出しの間に再位置付けされる必要がなくても良く、(「シーキング」とも知られる)ディスク読み出しヘッド位置付けは、多くの場合、数メガバイトのデータを連続的に読み出すのにかかる時間と同じ桁数のものであり得る数ミリ秒かかる場合があるため、典型的にランダム読み出しと比較して早くあり得る。したがって、S1のチャンクサイズを用いて、4個のチャンクにマッピングされたデータセットDS1全体の読み出しは、4つの緩徐なRHP(RHP1〜RHP4)及び4つの速い連続読み出し(SR1〜SR4)を含む、読み出し動作混合1910Aを伴っても良い。
Sのチャンクサイズを使用する代わりに、マッピング1904Bにおいて見られるように2Sのチャンクサイズ(マッピング1904Aのために使用されるサイズの2倍)が使用された場合、たった2つのRHPが、読み出し動作混合1910Bに示されるように必要であり(オフセットO1に対して1つ及びオフセットO3に対して1つ)、データセットは、2つの連続読み出しシーケンスSR1及びSR2を介して読み込まれ得る。したがって、DS1を読み出すために必要な緩徐な動作の数は、使用されるチャンクサイズに反比例して減少する。トレードオフグラフ1990のX軸上で、チャンクサイズは、左から右に増加し、Y軸上に、チャンクサイズの変化から生じた様々なメトリックにおける変化が例示される。一般に、チャンクサイズの増加は、大きなデータセットをメモリ内に転送するための総読み出し時間(TRT)を減少させる傾向がある。たとえ異なるチャンクの読み出しを並列で行うことができたとしても、連続的に読み出されるデータの断片の増加は、一般に総読み出し時間を減少させる傾向がある。チャンクサイズの増加は、一般に、グラフ1990に示されるサーバ当たりのメモリ必要条件(MR)曲線によって示されるように、チャンクコンテンツを保持するためにMLSサーバにより多くのメモリを必要とし得る。最後に、先に論じられたように、少なくとも一部の種類の機械学習問題に関して、チャンクサイズの増加は、機械学習モデルの若干より低い質の統計(QS)または若干より低い予測正確さをもたらす場合がある。これは、所与のチャンク内の記録が、チャンクが互いに対してフィルタリングされるのと同じ手段で、全データセット内の記録に対して(または互いに対して)フィルタリングされない場合があるため、起こり得る。したがって、MLSがチャンクサイズを選択することができるシナリオにおいて、グラフ1990に示される総読み出し時間間のトレードオフ、メモリ必要条件、及び統計的質が考慮に入れられる必要があり得る。実際面では、チャンクの全データセットに対するサイズに応じて、より大きなチャンクの使用によってもたらされる統計の質の低下は、極めて小さくあり得る。少なくとも一部の実施形態において、チャンクとMLSサーバとの間に1:1の関係が存在する必要はなく、例えば、所与のMLSサーバは、データセットの複数のチャンクを記憶するように構成されても良い。一部の実施形態において、部分的チャンクまたはチャンクのサブセットもまた、MLSサーバに記憶されても良く、例えば、所与のサーバのメモリに記憶されているチャンクの数は、整数である必要はない。様々な実施形態において、チャンクレベルフィルタリング動作に加えて、以下にさらに詳細に記載されるように、統計の質の低下をさらに低減するのに役立ち得る、チャンク内及び/またはチャンク間フィルタリング動作が(例えば、観測記録レベルで)行われても良い。グラフ1990に示される曲線は、正確な数学的関係ではなく、広い定性的関係を例示することが意図されることが留意される。異なるメトリックがチャンクサイズに対して変化する速度は、グラフに示されるものとは異なる場合があり、実際の関係は、示される滑らかな曲線または線によって表すことが必ずしも可能ではない場合がある。
図20aは、少なくとも一部の実施形態に従った、入れ換え、続いて分割を含むチャンクレベルフィルタリング動作のシーケンス例を例示する。示されるように、チャンクされたデータセット2010は、10個のチャンクC1〜C10を含む。図20aの上部のチャンクC1の詳細図は、チャンクC1の構成観測記録OR1−1〜OR1−nを示し、連続的観測記録は、区切り記号2004によって区切られている。示されるように、データセットまたはチャンクの観測記録は、同じサイズのものである必要はない。計画1850のインメモリチャンクレベルフィルタリング動作のうちの1つでも良いチャンクレベル入れ換え動作2015において、チャンクが再順序付けされる。入れ換え後、チャンクの順序は、C5−C2−C7−C9−C10−C6−C8−C3−C1−C4でも良い。描写される実施例では、後続のチャンクレベル分割動作2020において、チャンク(例えば、C5−C2−C7−C9−C10−C6−C8)のうちの70%が、訓練セット2022内に入れられても良い一方で、チャンク(C3−C1−C4)のうちの30%は、試験セット2024に入れられても良い。描写される実施例において、入れ換えがチャンクレベルで行われているとき、所与のチャンク内の観測記録の内部順序付けは、変更されないままである。したがって、チャンクC1の観測記録は、入れ換え及び分割後、入れ換え及び分割フィルタリング動作が行われた前の順序と同じ相対順序(OR1−1、OR1−2、…、OR1−n)である。描写される実施形態において、少なくとも一部の種類のフィルタリング動作に関して、永続的記憶装置へのコピーを回避することに加えて、チャンクコンテンツは、1つのメモリ位置から別のメモリ位置に移動される必要すらない場合があることが留意される。例えば、入れ換えの間にチャンクをC1−C2−C3−C4−C5−C6−C7−C8−C9−C10からC5−C2−C7−C9−C10−C6−C8−C3−C1−C4に物理的に再順序付けする代わりに、チャンクへのポインタが、入れ換え後に最初のチャンクを指示するポインタがC1の代わりにC5を指す等のように、変更されても良い。
一部の実施形態において、先に言及されたように、観測記録レベルでのフィルタリングもまた、MLSによってサポートされても良い。例えば、クライアントの記録抽出要求は、チャンクレベルフィルタリング及び記録レベルフィルタリングの両方のための記述子を含んでも良い。図20bは、少なくとも一部の実施形態に従った、チャンクレベルフィルタリング及びチャンク内フィルタリングを含むインメモリフィルタリング動作のシーケンス例を例示する。描写される実施例において、同じ組のチャンクレベルフィルタリング動作は、図20aに例示されるもののように行われ、すなわち、チャンクレベル入れ換え2015が、データセット2004に対して行われ、続いて訓練セット2022及び試験セット2024への70−30分割2020が行われても良い。しかしながら、チャンクレベル分割後、チャンク内入れ換え2040もまた行われ、チャンクのうちのいくつかまたは全て内の観測記録の再配置をもたらす。チャンク内入れ換えの結果として、チャンクC1の観測記録は、例えば、入力としてチャンクレベル入れ換えの前の観測記録の元の順序とは異なるOR1−5、OR1−n、OR1−4、OR1−1、OR1−2、…の順序で、モデルまたは特徴処理レシピに(または後続のフィルタリング動作に)提供されても良い、図20aまたは図20bに示されていない他のチャンク(例えば、C2〜C10)の観測記録もまた、クライアントのフィルタリング記述子に従って同様の方式で入れ換えられても良い。少なくとも1つの実施形態において、チャンク間(cross−chunk)記録レベルフィルタリング動作もまた、サポートされても良い。例えば、少なくとも2個のチャンクCj及びCkが所与のMLSサーバS1のメモリに読み込まれるシナリオを考える。チャンク間入れ換えにおいて、Cjの少なくとも一部の観測記録は、S1のメモリ内のCkの観測記録の一部を用いて入れ換えまたは再順序付されても良い。そのような実施形態において、他の種類の記録レベルフィルタリング動作(例えば、サンプリング、分割、または区分)もまた、所与のサーバのメモリ内に一緒に配置されているチャンクをまたがって行われても良い。一実装例において、複数のサーバは、互いに協働して、チャンク間動作を行なっても良い。一部の用途に関して、単一のチャンクレベルフィルタリング動作のみが、結果の組のチャンクレベル動作が特徴処理のためのレシピに、または訓練のためのモデルに供給される前に行われても良く、つまり、複数のチャンクレベル動作のシーケンスは必要でなくても良い。少なくとも一部の実施形態において、(観測記録の集約/収集、または集約関数を観測記録の選択された変数の値に適用する等の)他の種類の動作もまた、1つまたは複数のチャンクレベル動作の後に行われても良い。
チャンクレベルまたは観測記録レベルのいずれかでフィルタリング動作を行うための能力は、いくつかの異なる代替手段が同じ入力フィルタリング目標を達成することを可能にし得る。図21は、少なくとも一部の実施形態に従った、データセットのインメモリサンプリングの代替手法の例を例示する。10個のチャンクC1〜C10を含むチャンクされたデータセット2110のサンプルのうちの60%が得られ、つまり、データセットの観測記録のおおよそ60%が保存される一方で、観測記録のうちのおおよそ40%は、サンプリング動作の出力から除外される。
「1」のラベルが付けられた矢印によって示される第1の手法において、チャンクの簡単なチャンクレベルサンプリング2112が実行され、例えば、所望のサンプルとしてチャンクC1、C2、C4、C6、C8、及びC10の選択をもたらしても良い。第2の手法において、チャンクレベルサンプリング及びチャンク内サンプリングの組み合わせが、使用されても良い。例えば、「2」のラベルが付けられた矢印によって示されるように、第1の行程において、チャンクレベルサンプリング2114を使用して、(チャンクC1、C2、C3、C5、C6、C7、C8、及びC9の保存をもたらす)チャンクのうちの80%が選択されても良い。次いで、チャンク内サンプリング行程2116において、保存されているチャンクの各々の観測記録のうちの75%が選択され、(80%のうちの75%は60%であるため)観測記録のうちのおおよそ60%の最終出力をもたらしても良い。「3」のラベルが付けられた矢印によって示される第3の代替手法において、各チャンクの観測記録のうちの60%が、単一のチャンク内サンプリング行程2118においてサンプリングされても良い。少なくとも一部の実施形態において、所与の入力フィルタリング目標を達成するための同様の代替手段及び組み合わせもまた、他の種類のフィルタリング動作のためにサポートされても良い。
少なくとも一部の実施形態において、候補チャンク境界は、個々の観測記録が分割されないことを確実にし、かつ観測記録がチャンクに割り当てられる方式における整合性を確実にするために、調節される必要があっても良い。図22は、少なくとも一部の実施形態に従った、観測記録境界の位置に基づいてチャンク境界を判定する例を例示する。データセット2202Aは、区切り記号2265等の記録区切り記号によって区切られた(サイズが異なっても良い)観測記録OR1〜OR7を含む。例えば、データソースが英数字ファイルまたはテキストファイルを含む一実装例において、新しいライン文字(「\n」)または他の特殊文字が、記録区切り記号として使用されても良い。選択されたチャンクサイズに基づいて、候補チャンク境界は、データセット2202A内の観測記録の本体内に期せずして含まれる。描写される実施例において、候補チャンク境界(CCB)2204Aは、観測記録OR2内に含まれ、CCB2204Bは、OR4内に含まれ、CCB2204Cは、OR6内に含まれる。描写される実施形態において、以下の手法を使用して、実際のチャンク境界(ACB)を識別しても良い。所与のチャンクの終了境界のためのCCBの直後にオフセットで開始し、(例えば、連続走査または読み出しで)増加オフセットの順序でデータセットを調べ、見つかった最初の観測記録区切り記号が、チャンクの終了ACBとして選択される。このように、データセット2202Aの例において、OR2とOR3との間の区切り記号の位置が、CCB2204Aに対応する実際のチャンク境界2214Aとして識別される。同様に、ACB2214Bは、OR4とOR5との間の区切り記号に対応し、ACB2214Cは、OR6とOR7との間の区切り記号に対応する。実際のチャンク境界の選択の結果として、チャンク表2252Aに示されるように、チャンクC1が、OR1及びOR2を含み、チャンクC2が、OR3及びOR4を含み、チャンクC3が、OR5及びOR6を含む一方で、チャンクC4は、OR7を含む。記載される技法を使用して、各観測記録が、1つ、かつたった1個のチャンクにマッピングされる。
一部の実施形態において、チャンク境界の判定に関する同じ規則は、たとえ、CCBが期せずしてOR区切り記号と一致したとしても、適用されても良い。例えば、データセット2202Bにおいて、CCB2204Kが、期せずしてOR2とOR3とを区切っている区切り記号と一致し、CCB2204Lが、OR4とOR5とを区切っている区切り記号と一致する一方で、CCB2204Mは、OR6及びOR7とを区切っている区切り記号と一致する。上で言及された規則を使用して、各事例において、次の区切り記号の検索は、CCBの直後にオフセットで開始し、次に見つかった区切り記号がACBとして選択される。結果として、ACB2214Kは、OR3とOR4との間の区切り記号に位置付けられ、ACB2214Lは、OR5とOR6との間の区切り記号に位置付けられ、ACB2214Mは、OR7とOR8との間の区切り記号に位置付けられる。チャンク表2252Bに示されるように、データセット2202BのチャンクC1は、最終的にOR1、OR2、及びOR3を含み、チャンクC2は、OR4及びOR5を含み、チャンクC3は、OR6及びOR7を含み、チャンクC4は、OR8を含む。
図23は、少なくとも一部の実施形態に従った、様々なデータソース型のうちのいずれかからのデータ記録の抽出のための要求に応答して機械学習サービスでスケジュールされ得るジョブの例を例示する。示されるように、クライアント164がデータソース非依存方式で観測記録抽出/検索要求2310の提出をすることを可能にする一組のプログラミングインターフェース2361が、機械学習サービスによって実装されても良い。ウェブサービスインターフェースをデータオブジェクトに提示しても良いオブジェクトストレージサービス2302、ブロックデバイスインターフェースを提示する容量を実装するブロックストレージサービス2304、(Hadoop Distributed File SystemまたはHDFS等の)様々な分散ファイルシステム2306のうちのいずれか、及び(Linux(登録商標)ベースのオペレーティングシステムによってサポートされても良いExt3の異形等の)シングルホストファイルシステム2308等のいくつかの異なる種類2310のデータソースが、MLSによってサポートされても良い。少なくとも一部の実施形態において、データベース(例えば、リレーショナルデータベースまたは非リレーショナルデータベース)もまた、サポートされているデータソースであり得る。サポートされている種類のデータソースのうちのいずれかを使用して実行されたデータオブジェクト(例えば、ファイル)は、2352A及び2352Bのラベルが付けられた矢印によって示されるように、検索要求において参照されても良い。一部の実装例において、単一のクライアント要求は、いくつかの異なる種類のデータソース、及び/または1つまたは複数のデータソース型のいくつかの異なるインスタンス内に位置されるファイル等の入力データオブジェクトを参照しても良い。例えば、所与の入力データセットの異なるサブセットが、2つの異なるシングルホストファイルシステム2308に配置されたファイルを含んでも良い一方で、別の入力データセットのそれぞれのサブセットは、オブジェクトストレージサービス及びブロックストレージサービスに配置されても良い。
MLS要求ハンドラ180は、(例えば、map−reduce計算等の並列計算のため、またはやがて互いに重複し、使用される訓練セット内で互いに重複しても良いモデル訓練動作/セッションのための)入れ換え、分割、サンプリング、区分等のある組み合わせ等の、1つまたは複数のデータソースに配置された指定されたデータセットに対して行われるフィルタリング動作のシーケンスを指示する記録抽出要求2310を受信しても良い。フィルタリング計画ジェネレータ2380は、指定されたデータセットのチャンクマッピング、ならびに、描写される実施形態において、(チャンクレベル、記録レベルのいずれか、またはこれら両方のレベルでの)フィルタリング動作の要求されたシーケンスを達成するための複数のジョブ、及び1つまたは複数のMLSジョブ待ち行列142内にジョブを挿入する挿入ジョブを生成しても良い。例えば、1つまたは複数のチャンク読み出しジョブ2311は、データソースから読み込みデータに生成されても良い。必要である場合、別個のジョブが、(ジョブ2312等の)チャンクを復元し、及び/またはデータ(ジョブ2313)を解読するために作成されても良い。描写される実施形態において、ジョブ2314が、チャンクレベルフィルタリング動作のために生成されても良い一方で、ジョブ2315は、観測記録レベルフィルタリング動作のために生成されても良い。描写される実施形態において、観測記録レベルでのフィルタリング動作は、チャンク内動作(例えば、所与のチャンク内の記録の入れ換え)及び/またはチャンク間動作(例えば、所与のMLSサーバのメモリ内に一緒に配置されていても良い2個以上の異なるチャンクの記録の入れ換え)を含んでも良い。少なくとも一部の実施形態において、それぞれのジョブは、各チャンクに対する各種類の動作のため作成されても良く、したがって、例えば、チャンクマッピングが100個のチャンクを生じる場合、100個のジョブが1個のチャンクそれぞれを読み込むために作成されても良く、100個のジョブが第1のチャンクレベルフィルタリング動作等のために作成されても良い。他の実施形態において、所与のジョブは、複数のチャンクを伴う動作のために作成されても良く、例えば、別個のジョブが、各チャンクのために必要でなくても良い。一部の実施形態において、以下にさらに詳細に記載されるように、データセットの訓練セット及び試験セットへの分割は、訓練セットに対して1つ、及び試験セットに対して1つの別個のジョブとして実行されても良い。先に論じられたように先に論じられたように、所与のジョブは、他のジョブへの依存性を指示しても良く、そのような依存性は、クライアントによって要求されたフィルタリングタスクが正しい順序で行われることを確実にするために使用されても良い。
図24は、少なくとも一部の実施形態に従った、機械学習サービスによって実装されたI/O(入力/出力)ライブラリのプログラム的インターフェースを使用してクライアントによって提出され得る、記録抽出要求の構成要素例を例示する。示されるように、観測記録(OR)抽出要求2401は、入力データセットが取得される位置(複数可)またはアドレス(複数可)を指定するソースデータセット指標2402を含んでも良い。ウェブサービスインターフェースを提示するオブジェクトストレージサービス内に記憶されているデータセットに関しては、例えば、1つまたは複数のURL(統一資源位置指定子)またはURI(統一資源識別子)が指定されても良く、ファイルに関しては、1つまたは複数のファイルサーバホスト名、1つまたは複数のディレクトリ名、及び/または1つまたは複数のファイル名のある組み合わせが、指標2402として提供されても良い。一実装例において、データセットが2つ以上のファイル等の複数のオブジェクトを含む場合、クライアントは、統合されたアドレス空間を形成するために、データセットのオブジェクトの論理的連結(例えば、「ディレクトリd1のファイルをファイル名によるアルファベット順で、次いでディレクトリd2のファイルをアルファベット順で組み合わせる」の論理的同等物)のための命令を含んでも良い。一部の実施形態において、観測記録の予想される形式2404またはスキーマが、OR抽出要求内に含まれても良く、例えば、ORの変数またはフィールドの名前、変数間区切り記号(例えば、カンマ、コロン、セミコロン、タブ、または他の文字)及びOR区切り記号、ならびに変数のデータ型等を指示しても良い。少なくとも1つの実装例において、MLSは、規定のデータ型(例えば、「文字列」または「文字」)をデータ型がクライアントによって指示されない変数に割り当てても良い。
一実施形態において、OR抽出要求2401は、例えば、データセットのために使用される圧縮アルゴリズム、圧縮されたデータが記憶されるユニットまたはブロックのサイズ(これは、チャンクレベルインメモリフィルタリング動作が行われるチャンクのサイズとは異なっても良い)、及びデータセットを正しく復元するために必要不可欠であり得る他の情報を指示する圧縮メタデータ2406を含んでも良い。一部の実施形態において、キー、証明書、及び/またはデータセットに対して使用される暗号化アルゴリズムの指標等の解読メタデータ2408は、要求2401内に含まれても良い。データセットへの読み出しアクセスを得ることを可能にするために使用される承認/認証メタデータ2410は、一部の実装例において、クライアントによって要求2401内に及びある特定の種類のデータソースのために提供されても良い。そのようなメタデータは、例えば、アカウント名もしくはユーザ名及び対応する組の証明書、または(図3に示されるセキュリティコンテナ390と類似した)セキュリティコンテナのための識別子及びパスワードを含んでも良い。
描写される実施形態において、OR抽出要求2401は、例えば、チャンクレベル及び/またはORレベルで行われるフィルタリング動作(入れ換え、分割、サンプル等)の種類、ならびにフィルタリング動作が実行される順序を指示する1つまたは複数のフィルタリング記述子2412を含んでも良い。一部の実装例において、1つまたは複数の記述子2452は、チャンクレベルフィルタリング動作のために含まれても良く、1つまたは複数の記述子2454は、記録レベル(例えば、チャンク内及び/またはチャンク間)フィルタリング動作のために含まれても良い。各々のそのような記述子は、対応するフィルタリング動作、例えば、分割動作に関しては分割比、サンプリング動作に関してはサンプリング比、データセットが並列計算または並列訓練セッションのために細分される区分の数、記録のスキーマが無効であることが見つかった場合に講じられる措置等のためのパラメータを指示しても良い。
少なくとも1つの実施形態において、OR抽出要求2401は、例えば、特定の許容できるチャンクサイズまたは許容できるチャンクサイズの範囲を指示するチャンキング好み2414を含んでも良い。フィルタリング動作シーケンスの出力が向けられる宛先(複数可)(例えば、特徴処理レシピまたはモデル)は、フィールド2416内で指示されても良い。一部の実施形態において、クライアントは、MLSによって使用されるサーバの種類を選択するため、または所望の目標を達成することが意図されるフィルタリングシーケンス計画を生成するために使用されても良い、「完了」時間等のフィルタリング動作に関する性能目標2418を指示しても良い。少なくとも一部の実施形態において、図25に示される構成要素の全てが記録抽出要求内に含まれなくても良く、例えば、圧縮及び/または解読関連フィールドは、圧縮及び/または暗号化された形態で記憶されるデータセットのためだけに含まれても良いことが留意される。
図25は、少なくとも一部の実施形態に従った、大きな入力データセットへのインメモリフィルタリング動作シーケンスのためのI/Oライブラリを実装する機械学習サービスで行われ得る動作の態様を例示する流れ図である。クライアントが、図24に例示されるものと類似した観測記録抽出要求を提出することを可能にするI/Oライブラリが、実装されても良い。I/Oライブラリは、入力データセットが記憶されるデータストアの種類に関して非依存でも良く、例えば、共通の一組のプログラム的インターフェースは、いくつかの異なるデータストアタイプの任意の組み合わせで記憶された記録抽出要求に対して提供されても良い。MLSサーバの利用可能なメモリ内に大きすぎて入らない場合があるソースデータセットを指示するそのようなOR抽出要求が、受信されても良い(要素2501)。OR抽出要求は、入力データセットに対して行われるフィルタリング動作のシーケンスを指示する1つまたは複数の記述子を含んでも良い。
入力データセットの連続的サブセットを1つまたは複数のMLSサーバのメモリ内に転送するために使用されるチャンクサイズは、例えば、MLSサーバのメモリ容量制約、要求元クライアントによって要求のパラメータを介して指示された好み、MLSの規定の設定、入力データセットの推定サイズまたは実際のサイズ等の様々な要因のうちのいずれかに基づいて判定されても良い(要素2504)。一部の実装例において、いくつかの異なるチャンクサイズが、選択されても良く、例えば、一部のMLSサーバは、他のサーバよりも大きいメモリ容量を有しても良く、そのためより大きなメモリを有するサーバに対するチャンクは、より大きくても良い。一部の実施形態において、入力データセットが複数の(ファイル等の)オブジェクトを含む場合、オブジェクトは、単一の統合されたアドレス空間を形成するために論理的に連結されても良い(要素2507)。オブジェクトが連結されるシーケンスは、例えば、要求内に提供される命令またはガイダンスに基づいて、オブジェクト名のアルファベット順に基づいて、ファイルサイズの順で、ランダムな順序で、またはMLSによって選択された何らかの他の順序で判定されても良い。
チャンクマッピングは、データセットに対して生成されても良く(要素2510)、これは選択されたチャンクサイズ(複数可)及び統合されたアドレス空間に基づいて、一組の候補チャンク境界を指示する。入力データセットのデータオブジェクトまたはオブジェクト内の候補チャンク境界の位置またはオフセットは、マッピング生成プロセスの一部として計算されても良い。OR抽出要求内のフィルタリング記述子(複数可)に対応するチャンクレベルフィルタリング動作のシーケンスのための計画が、作成されても良い(要素2513)。一部の実施形態において、計画は、チャンクレベルフィルタリング動作に加えてか、またはチャンクレベルフィルタリング動作の代わりに、記録レベルフィルタリング動作(例えば、チャンク内動作またはチャンク間動作)を含んでも良い、一部の実施形態において、チャンク間動作は、例えば、所与のMLSサーバのメモリ内に一緒に配置されるいくつかのチャンクの観測記録に対して行われても良い。他の実施形態において、チャンク間動作はまた、または代わりに異なるMLSサーバのメモリに読み込まれたチャンクに対して行われても良い。サポートされているフィルタリング動作の種類は、サンプリング、分割、入れ換え、及び/または区分を含んでも良い。計画の第1のフィルタリング動作に少なくとも部分的に基づいて、永続的記憶装置からMLSサーバメモリへの、少なくともデータセットのチャンクのサブセットのデータ転送が、行われても良い(要素2516)。一部の実施形態において、データがOR抽出要求内で指示されるソース位置に記憶される方式に応じて、データ転送プロセスは、読み出し動作に加えて、解読及び/または解凍を含んでも良い。一部の実施形態において、クライアントは、ソース位置からMLSサーバへチャンクを転送する前に、データを暗号化及び/または圧縮するようMLSに要求し、次いで暗号化/圧縮されたデータがMLSサーバに到着したら、逆動作(解読及び/または解凍)を行なっても良い。
描写される実施形態において、そのシーケンスの最初のフィルタリング動作がMLSサーバのメモリ内で行われた後、(存在する場合)残りのフィルタリング動作が、例えば、チャンクを永続的記憶装置にコピーせずにか、またはチャンクをチャンクの元のソース位置に対して再読み出しせずに適所で行われても良い(要素2519)。一実施形態において、それぞれのジョブは、生成され、フィルタリング動作のうちの1つまたは複数のためのMLSジョブ待ち行列内に入れられても良い。少なくとも一部の実施形態において、記録構文解析系は、行われたフィルタリング動作のシーケンスの出力から観測記録を得るために使用されても良い(要素2522)。ORは、(例えば、OR抽出要求を表すAPI呼び出しに応答して返された配列またはコレクションとして)要求元クライアントに、及び/またはモデルまたは特徴処理レシピ等の指定された宛先にプログラム的に提供されても良い(要素2525)。
入力データセットの整合的フィルタリング
図26は、少なくとも一部の実施形態に従った、機械学習モデルによって立てられた予測の質を改善するために使用され得る反復手順の例を例示する。以下に記載されるように、手順には、例えば、いくつかの交差検証反復の各々のための入力データセットの再分割または再入れ換えが含まれても良い。ラベル付けされた観測記録を含む入力データセット(すなわち、従属変数の値または「ラベル」が既知である観測記録)は、例えば、連続的に行うことができる物理的I/Oの断片を増加させるために上述の技法を使用して、一組の連続的チャンク2602にマッピングされても良い。インメモリチャンクレベル分割動作2604は、訓練セット2610及び試験セット2615を得るために行われても良い。1つのシナリオにおいて、例えば、チャンクの80%は、訓練セット2610内に含まれても良く、チャンクの残りのうちの20%は、試験セット2615内に含まれても良い。候補モデル2620は、訓練実行2618で訓練されても良い(例えば、線形回帰モデルに関しては、データセットの様々な独立変数/入力変数に割り当てられる候補係数が判定されても良い)。次いで、候補モデル2620を使用して、試験セットについての予測を立てても良く、(例えば、そのモデルがどれくらい正確に候補係数を使用して試験セットの記録の従属変数の予測を生成することができたかを示す)モデルの評価結果2625が、得られても良い。異なる実施形態において、正確さまたは質の様々な測定値2630が、使用されるモデルの種類に応じて得られても良く、例えば、二乗平均平方根誤差(RMSE)または標準偏差(RMSD)が、線形回帰モデルに関して計算されても良く、試験セットのサイズに対する真陽性と真陰性との合計の比が、二項分類問題に関して計算されても良く、以下同様である。
描写される実施形態において、正確さ/質測定値2630が満足できるものである場合、候補モデル2620は、承認済みモデル2640として指定されても良い。さもなければ、いくつかの技法のうちのいずれかが、モデルの予測の質または正確さを向上させる試みにおいて採用されても良い。モデル調整2672は、予測のために使用される一組の独立変数または入力変数の変更、(木ベースの分類モデルの最小バケットサイズまたは最大木深度等の)モデル実行パラメータの変更等、及び追加の訓練実行2618の実行を含んでも良い。モデル調整は、結果の正確さまたは質を向上させる試みにおいて、各反復における入力変数とパラメータとのある組み合わせを変えた同じ訓練セット及び試験セットを使用して反復して行われても良い。モデル改善に対する別の手法において、変更2674が、連続的訓練/評価反復のために訓練データセット及び試験データセットに加えられても良い。例えば、入力データセットは、(例えば、チャンクレベルで及び/または観測記録レベルで)入れ換えられても良く、新しい組の訓練/試験セットが、訓練の次の一巡のために得られても良い。別の手法において、データの質は、例えば、観測記録の変数値が無効または外れ値であるような観測記録を識別し、そのような観測記録をデータセットから削除することによって改善されても良い。モデル改善のための1つの共通手法は、図27を参照して以下に記載されるように、同じ基礎となるデータから抽出された指定された数の異なる訓練セット及び試験セットを使用した、候補モデルの交差検証を伴っても良い。一部の実施形態において、まさにモデル調整2672の複数回反復が行われても良いように、データセット変更2674もまた、例えば、所望のレベルの質/正確さのいずれかが得られるまで、モデル改善のために利用可能なリソースまたは時間が枯渇するまで、または試されている変更がもはやモデルの質または正確さにおいてほとんど改善をもたらさなくなるまで、反復的に行われても良い。
図27は、少なくとも一部の実施形態に従った、機械学習モデルの交差検証のために使用され得るデータセット分割の例を例示する。描写される実施形態において、ラベル付けされた観測記録2702を含むデータセットは、各々がデータのうちの80%を含むそれぞれの訓練セット2720(例えば、2720A〜2720E)、及びデータの残りのうちの20%を含む対応する試験セット2710(例えば、2710A〜2710E)を得るために、5つの異なる部分に分割される。訓練セット2720の各々が、モデルを訓練するために使用されても良く、次いで、対応する試験セット2710が、モデルを評価するために使用されても良い。例えば、交差検証反復2740Aにおいて、モデルは、訓練セット2720Aを使用して訓練され、次いで試験セット2710Aを使用して評価されても良い。同様に、交差検証反復2740Bにおいて、(図27の1部及び2部の2つの部分で示される)入力データのうちの80%を含む異なる訓練セット2720Bが使用されても良く、異なる試験セット2710Bが、モデルを評価するために使用されても良い。図27に例示される交差検証例は、(生成される異なる訓練/試験セット組の数及び訓練/評価反復の対応する数のために)「5分割交差検証」と称され得る。一部の実施形態において、MLSは、クライアントがk分割交差検証を要求することを可能にするAPIを実装しても良く、ここで、kは、同じ基礎となる入力データセットを使用して指定されたモデルを訓練するために生成される異なる訓練セット(及び対応する試験セット)の数を指示するAPIパラメータである。
ラベル付けされた観測記録は、図27に示される例において、8個のチャンクC1〜C8の間で分散される。先に言及されたように、チャンクサイズ及び境界は、MLSサーバのメモリサイズ限度、クライアントの好み等の様々な要因のうちのいずれかに基づいて判定されても良い。一部のシナリオにおいて、(図27に例示される80/20分割等の)所望の分割比は、所与のチャンクの観測記録が訓練セット及び対応する試験セットをまたがって分散される必要があることをもたらし得る。つまり、一部の事例では、部分的チャンクは、訓練セット及び試験セット内に含まれる必要があっても良い。例えば、チャンクC2の一部の観測記録が、試験セット2710A内に含まれても良い一方で、チャンクC2の他の観測記録は、訓練セット2720A内に含まれても良い。
少なくとも一部の実施形態において、訓練セットは、図27で入力データセットの連続的部分を含むように見え得るが、実際面では、訓練データセット及び試験データセットは、(例えば、チャンクレベル、観測記録レベルのいずれか、またはこれら両方のレベルで)ランダム選択を使用して得られても良いことが留意される。異なる交差検証反復2740A〜2740Eの訓練セット及び試験セット内に含まれる一組の観測記録を変更することにより、立てられた予測の質は、一般に、入力データセットの異なるサブセット内の入力変数値のローカライズされた不均一性の影響が低減され得るため、改善し得る。例えば、試験セット2710A内のデータ記録のサブセット内の独立数値変数の値が、通常、全データセット全体の変数の平均と比較して高い場合、モデル正確さ/質へのその変則の効果は、他の交差検証反復のための異なる試験データセットの使用によって、消失されることが予測される。
図28は、少なくとも一部の実施形態に従った、擬似乱数のシーケンスを使用して行われ得る交差検証のための入力データセットの整合的チャンクレベル分割の例を例示する。乱数ベースの分割アルゴリズム2804は、連続的訓練/評価反復(TEI)のために、データセットチャンクC1〜C10を訓練セット及び試験セットに分けるために使用される。各TEIは、例えば、図27に例示されるもの等の特定の交差検証反復を表しても良いが、そのような訓練及び評価反復もまた、交差検証を試みているかどうかに関わらず、独立して行われても良い。擬似乱数発生器(PRNG)2850もまた、擬似乱数のシーケンス2872を得るために使用されても良い。PRNG2850は、例えば、MLSライブラリまたはMLSの構成要素からアクセス可能なプログラミング言語ライブラリの有用性関数または方法として実装されても良い。描写される実施形態において、PRNG2850の状態は、所与のシードSを用いて状態を再設定した後に生成される擬似乱数のシーケンスが反復可能であるように、シード値S(例えば、実数または文字列)を使用して決定論的に初期化またはリセットされても良い(例えば、PRNGが同じシードを使用して複数回リセットされた場合、PRNの同じシーケンスが各々のそのような状態リセット後に提供される)。
描写される実施例において、提示を単純化するために、入力データセット(10)のチャンクの数及び分割比(80/20)は、整数のチャンクが訓練セット及び試験セット内に入れられるように選択されており、すなわち、所与のチャンクの観測記録は、訓練セット及び試験セットの両方の間で分散される必要はない。PRNGによって生成されたシーケンス2872の擬似乱数(PRN)は、訓練セット及び試験セットのメンバーを選択するために使用されても良い。例えば、84621356の値を有する(PRNGの状態の再設定後に生成された)第1のPRN2874を使用して、チャンクC7は、TEI2890Aのために使用される訓練セット2854A内に含むために選択されても良い。第2のPRN56383672を使用して、チャンクC2は、訓練セット2854Aのために選択されても良く、以下同様である。描写されるシナリオ例において、乱数ベースの分割アルゴリズム2804は、入力データセットの各チャンクを訓練セットまたは試験セットのいずれかの中に正しく指定するために、PRNシーケンスのある特定の統計特性に依存しても良い。統計特性は、極めて多数の異なる擬似乱数(または何らかの長さNの異なるサブシーケンス)が、(例えば、所与のPRNがシーケンス内で反復される前、または長さNのサブシーケンスが反復される前に)任意の所与のシーケンスで生成されることが予想される特性を含んでも良い。描写される実施形態において、PRNGの状態が、所与の訓練セット2854が生成された時間と対応する試験セット2856が生成された時間との間にリセットされなかった場合、生成されたPRN2872のシーケンスは、入力データの各チャンクが訓練セットまたは試験セットのいずれかにマッピングされ、いずれのチャンクも訓練セット及び試験セットの両方にマッピングされないことを確実にしても良い。ソースデータセットの各オブジェクト(例えば、チャンクまたは観測記録)が正確に1つの分割結果セット(例えば、訓練セットまたは対応する試験セット)内に入れられるそのような分割動作は、「整合的」または「有効」分割と称され得る。入力データセットの1つまたは複数のオブジェクトが、(a)分割結果セットのいずれの中にも入れられないか、または(b)分割結果セットのうちの2つ以上の中に入れられるかのうちのいずれかである分割動作は、「不整合的」または「無効」分割と称され得る。少なくとも一部の実施形態において、2つの分割マッピング(訓練セットへのマッピング及び試験セットへのマッピング)の各々のために使用されるPRNのシーケンス、したがってPRNソースの状態は、不整合的分割の生成確率に影響を与え得る。次いで、訓練及び評価のための不整合的分割の使用は、整合的分割が使用された場合よりも低い予測の質及び/または低い正確さをもたらし得る。
少なくとも一部の実施形態において、チャンク内入れ換えは、例えば、TEIが実行されたことに応答して、クライアント要求のコンテンツに基づいて、訓練セット及び/または試験セット内で実行されても良い。したがって、例えば、訓練セット2854Aの所与のチャンク(例えば、C7)内の観測記録は、訓練されるモデルへの入力として提供される前に、(記録を永続的記憶装置にコピーせずに)メモリ内で互いに対して再順位付けされても良い。同様に、試験セット2856Aの所与のチャンク(例えば、C3)の観測記録は、試験セットを使用してモデルが評価される前にメモリ内で入れ換えられても良い。
PRNシーケンス2872の使用の結果として、第1のTEI2890Aは、チャンク(C7、C2、C4、C5、C9、C1、C10、C8)の訓練セット2854A、及びチャンク(C3、C6)の試験セット2856Aを用いて実行されても良い。一部の実施形態において、同じPRNG2850もまた、次のTEI2890Bのための入力データセットを分割するために(例えば、再初期化または再設定なしで)使用されても良い。様々な実施形態において、一部のモデル及び/または用途に関して、たった1回のTEIが実行されても良いことが留意される。描写される実施例において、TEI2890Bの訓練セット2854Bは、チャンク(C8、C3、C5、C6、C10、C2、C1、C9)を含み、対応する試験セット2856Bは、チャンク(C4、C7)を含む。図28に例示される分割の両方は、先に提供された定義に従って、整合的/有効である。少なくとも一部の実施形態において、図28でデータの分割は、チャンクレベルで例示されているが、PRNGの状態と分割の整合性との間の同じ種類の関係が、観測記録レベルでの分割(または部分的チャンクを伴う分割)に適用されても良いことが留意される。つまり、PRNGを使用して観測記録レベルで整合的分割を行うために、PRNGの状態は、理想的には、訓練セットの判定と試験セットの判定との間に再初期化されるべきではない。一部の実施形態において部分的チャンクを伴う分割は、整数ではない数のチャンクが各分割結果セット内に入れられるチャンクレベル分割、続いてチャンクの記録が複数の分割結果セットをまたがって分散されるチャンクのためのチャンク内分割として実行されても良い。2方分割に加えて、データセットを分割するためのPRNベースの手法もまた、(N>2である)N方分割のために使用されても良い。
図29は、少なくとも一部の実施形態に従った、擬似乱数発生器の不適切な再設定の結果として起こり得る入力データセットの不整合的チャンクレベル分割の例を例示する。描写される実施例において、PRNG1850は、シードSを使用して初期化される。PRNシーケンス2972Aは、図28の試験セット2854A内に含まれたデータセット2844A(C7、C2、C4、C5、C9、C1、C10、C8)の同じ組のチャンクを含む訓練セット2954Aを生成するために、分割アルゴリズム2804によって使用される。訓練セット2954Aが生成された後、PRNGは、再初期化される。結果として、生成された擬似乱数のシーケンスは、反復され、例えば、リセットの後に生成された第1のPRNは、またしても84621356であり、第2のPRNは、またしても56383672であり、以下同様である。描写される実施例において、分割アルゴリズムは、PRNの反復の結果として試験セット2956A内に含めるためにチャンクC7及びC2を選択する。そのような分割は、C2及びC7が訓練セット及び試験セットの両方内にあるため(かつ、チャンクC3及びC6が訓練セットまたは試験セットのいずれにも入っていないため)無効または不整合的であると見なされても良い。
一部の実施形態において、PRNGは、訓練セットまたは試験セット内への所与のチャンクまたは記録の各配置のために、リアルタイムで呼び出されなくても良い。代わりに、擬似乱数または乱数のリストは、(例えば、PRNGを使用して)事前に生成されても良く、事前に生成されたリスト内の数は、分割配置のために1つずつ使用されても良い。少なくとも一部の実施形態において、そのようなシナリオでは、ポインタが訓練セットのために使用されたリスト内の最後の数に維持され、試験セット配置判定がその残りの数(すなわち、訓練セットのために使用されなかった数)を使用して下される限り、分割整合性は、達成され得る。
一実施形態では、整合的分割を成し遂げるための別の手法において、それぞれの機構(例えば、API)は、(a)PRNGの最新の状態を保存し、(b)PRNGを保存された状態にリセットするために、実装されても良い。API「save_state(PRNG)」が、TEIの訓練セットが生成された後にPRNGの内部状態をオブジェクト「state_AfterTraining」に保存するために呼び出され得、異なるAPI「set_state(PRNG, state_AfterTraining)」が、TEIの試験セットの選択を開始する直前にPRNG(または異なるPRNG)の状態を保存された状態にリセットするために呼び出され得るシナリオを考えられたい。そのような一組の状態保存動作及び復元動作を使用して、全てのPRNがPRNG状態を保存/再設定せずに得られた場合に得られるように、PRNの同じシーケンスが得られても良い。一部の実施形態において、図30に関して以下に記載されるように、試験セット選択のために使用される所与のTEIのPRNソースとは異なるPRNソースが、訓練セット選択のために使用されても良く、そのようなPRNソースの状態は、整合的分割を達成する手助けをするために、同期化されても良い。
少なくとも一部の実施形態において、所与の入力データセットからの試験セットの選択は、対応する訓練セットの選択に対して(及び一部の事例では、対応する訓練セットよりもかなり後に)非同期的に起こっても良い。例えば、別個のジョブは、訓練セットの選択及び対応する試験セットの選択のためにMLSジョブ待ち行列内に挿入されても良く、ジョブは、先に記載されたのと同様の方式で互いに独立してスケジュールされても良い。そのようなシナリオにおいて、一部の実施形態では、訓練/試験分割が2つの動作間の遅延にもかかわらず有効及び整合的であることを確実にするために、MLSは、訓練セットの選択に関する状態情報を管理しても良く、これは次いで試験セットを生成する手助けをするために使用することができる。図30は、少なくとも一部の実施形態に従った、スケジューリング関連の訓練ジョブと評価ジョブとの組のタイムラインの例を例示する。おおよそ4時間(特定の日の11:00から15:00まで)のジョブスケジューラのタイムラインの時間中に起こる4つのイベントが示される。
時間t1に、モデルM1に対する訓練/評価反復TEI1の訓練ジョブJ1が開始する。ジョブJ1は、MLSの一組のサーバSS1でスケジュールされ、例えば、チャンクレベル、観測記録レベルのいずれか、またはこれら両方のレベルでの、訓練セットの選択を含んでも良い。(PRNのシーケンスを返す関数または方法、または事前に生成されたPRNのリスト等の)擬似乱数ソースPRNS3002は、ジョブJ1のための訓練セットを生成するために使用されても良い。時間t2に、訓練ジョブJ2は、異なるモデルM2に対する訓練/評価反復TEI2のために、サーバセットSS2にスケジュールされても良い。ジョブJ2のための訓練セットは、異なるPRNS3002Bから得られた擬似乱数を使用して得られても良い。
時間t3に、TEI1の評価段階のための試験ジョブJ3が、ジョブJ1の2時間超遅れてスケジュールされる。描写される実施例において、J3のスケジューリングは、例えば、J1が完了するまで遅延されても良く、J1/J3のために使用されるデータセットのサイズは、訓練段階を完了するために2時間超かかる程大きくても良い。J3は、J1のために使用されたものとは異なる組のサーバSS3にスケジュールされても良い。少なくとも一部の実装例において、サーバセットSS1で利用可能であったものとは異なるPRNS9002Cが、サーバセットSS3で利用可能であっても良い。描写される実施形態において、訓練/試験分割の整合性を確実にするために、PRNS3002Cは、PRNS3002Aと同期化されても良い。したがって、例えば、シード値であるシード1がPRNS3002Aを初期化するために使用され、1000個の擬似乱数がジョブJ1の間にPRNS3002Aから得られた場合、同じシード値であるシード1が、論理的に同等なPRNS3002Cを初期化するために使用されても良く、1000個の擬似乱数が、試験セット選択のために使用される擬似乱数が取得される前に、PRNS3002Cから取得されても良い。一部の実施形態において、先に論じられた「save_state()」及び「set_state()」呼び出しの同等物が、PRNS3002CをPRNS3002Aと同期化させるために使用されても良い。一実施形態において、事前に生成されたPRNSのリストがPRNソースとして使用されている場合、MLSは、(a)同じリストがJ1及びJ3のために使用され、かつ(b)J3のために使用されるリストの最初のPRNが、J1のために使用された最後のPRNの位置の直後の位置にあることを確実にしても良い。様々な実施形態において、他の同期技法が、試験セット判定のために使用される擬似乱数のシーケンスがジョブJ1及びJ3に対して有効かつ整合的分割が達成されるようなものであることを確実にするために、使用されても良い。同様に、訓練ジョブJ2に対応する(t4にスケジュールされる)試験ジョブJ4に関して、PRNS3002Dは、PRNS3002Bと同期化されても良い。少なくとも描写される実施形態において、分割整合性を確実にするために、訓練セットを生成するために使用される擬似乱数の組と対応する試験セットとの間の論理関係またはある程度の協調を強制することが必要である場合がある(例えば、J3で使用される数は、J1で使用される数に対して調整される必要があっても良く、J4で使用される数は、J2で使用される数に対して調整される必要があっても良い)。
図31は、少なくとも一部の実施形態に従った、クライアント要求に応答して整合性メタデータが機械学習サービスで生成されるシステムの例を例示する。整合性メタデータは、図30に関して論じられた協調/同期の種類を達成するために、関連したジョブ(例えば、訓練ジョブ及び対応する評価ジョブ)をまたいで保存または共有されても良い。図31のシステム3100において、MLSのクライアント164は、MLS I/Oライブラリのデータソース非依存プログラム的インターフェース3161を介して、分割要求3110を提出しても良い。一部の実装例において、分割要求は、交差検証要求の一部、または指定された数の訓練/評価反復を行うための要求の一部でも良い。少なくとも1つの実施形態において、分割要求は、図24に示される観測記録抽出要求2401の種類の異形を表しても良い。少なくとも1つの実施形態において、分割要求は、例えば、要求された分割動作のための擬似乱数を得るために使用されても良い1つまたは複数のクライアント指定のシード値3120を含んでも良いが、そのようなシード値は、クライアントによって提供される必要がなくても良い。さらに、描写される実施形態において、分割要求3110は、入力データセット3122の指標(例えば、ファイル名、パス、または識別子)を含んでも良い。分割パラメータ3124は、1つまたは複数の訓練対試験の比率(例えば、図29に例示される80/20分割比)を指示しても良い。分割要求が訓練/評価反復または交差検証反復に対する要求の一部である一部の実施形態において、所望の反復回数3126が、クライアント要求内に含まれても良い。
描写される実施形態において、MLSの要求ハンドラ構成要素180は、要求3110を計画ジェネレータ3180に渡しても良い。計画ジェネレータは、一組の整合性メタデータ3152、例えば、要求された分割反復のためにMLSジョブ待ち行列内に挿入された関連したジョブ間で共有されても良いメタデータを判定しても良い。例えば、メタデータ3152は、クライアント提供のシード値3120を含んでも良い。一実施形態において、クライアント提供のシード値が、(例えば、クライアント要求に対して使用されるAPI3161がシードが提供されることを必要としないため、またはクライアントが有効シード値を提供しないために)利用可能でない場合、計画ジェネレータ3180は、一組の1つまたは複数のシード値を判定しても良い。そのようなMLS選択シード値は、例えば、入力データセットID3122(例えば、入力データセットのファイル名またはディレクトリ名に対応するハッシュ値が、シードとして使用されても良い)、クライアント識別子、要求3110が受信された時間、要求3110が受信されたIPアドレス等のある組み合わせに基づいても良い。一実装例において、MLSは、PRNGまたは事前に生成されたPRNのリスト等の、利用可能な擬似乱数のいくつかのソースを有しても良く、1つまたは複数のPRNソースの識別子は、整合性メタデータ3152内に含まれても良い。事前に生成されたPRNリストが使用される実施形態において、指定されたリスト内の最後に使用されたPRNへのポインタは、リストを使用する各エンティティ(例えば、MLSジョブ実行部)が複数のリストのPRNを使用した後にポインタを更新するように使用されても良い。上述の「save_state()」及び「set_state()」動作の同等物がPRNGに対してサポートされている一実施形態において、PRNGの状態記録は、メタデータ内に含まれても良い。状態記録は、例えば、PRNGを使用する次のエンティティが、整合的分割を行うために使用され得るPRNを得るために、それ自体の状態を設定することができるように、PRNGを使用した各エンティティ(例えば、MLSジョブ実行部)によって更新されても良い。
計画ジェネレータ3180は、分割結果セットを選択するためのそれぞれのジョブ3155を生成しても良い。例えば、所与の訓練/評価反復のために、1個のジョブは、訓練セットを選択するために作成されても良く、別のジョブは、試験セットを選択するために選択されても良い。一部の実装例において、計画ジェネレータ3180によって作成されたジョブオブジェクトは、そのジョブのために使用される整合性メタデータへの参照またはポインタを含んでも良い。別の実装例において、整合性メタデータ3152の少なくとも一部分は、ジョブオブジェクト内に含まれても良い。ジョブが実行されたとき、メタデータ3152を使用して、入力データセットが整合的に分割されたことを確実にしても良い。一部の実施形態において、訓練セット及び試験セット選択の両方を含む単一のジョブが、作成されても良い。
少なくとも一部の実施形態において、整合性または再現性に向けた同様の手法が、サンプリングまたは入れ換え等の他の種類の入力フィルタリング動作のためにとられても良いことが留意される。例えば、一実施形態において、クライアントは、入れ換え再現性(すなわち、同じ入力データ及び同じ要求パラメータを用いた第2の入れ換え要求が後に行われた場合、1つの入れ換え要求の結果を再び得ることができること)、またはサンプル再現性(すなわち、同じ観測記録またはチャンクが反復されたサンプル要求の結果としてデータセットから取得可能であること)を確実にすることを所望する場合がある。フィルタリング動作が擬似乱数の使用を伴う場合、図31に示される保存シード値及び/または他の種類の整合性メタデータは、入れ換え再現性及び/またはサンプル再現性もまたサポートすることができても良い。例えば、同じ入力データセットから始まり、最初の入れ換えのために使用されたのと同じシード値を用いてPRNGを再初期化する反復された入れ換えが、得られても良い。同様に、同じシードの再使用もまた、反復可能なサンプルをもたらし得る。様々な実施形態において、整合的分割は、上述の種類の整合性メタデータを使用して、チャンクレベルで、観測記録レベルで、またはチャンクと記録レベルとのある組み合わせで行われても良い。少なくとも1つの実施形態において、チャンクレベル分割が行われた後、訓練セットまたは試験セット内の個々のチャンクの記録は、モデルを訓練/評価するために使用する前に入れ換えられても良い。
図32は、少なくとも一部の実施形態に従った、機械学習モデルの訓練及び評価の反復のための要求に応答して、機械学習サービスで行われ得る動作の態様を例示する流れ図である。要素3201に示されるように、1つまたは複数のTEI(交差検証反復等の訓練/評価反復)を行うための要求は、MLS I/OライブラリAPI等のプログラム的インターフェースを介して受信されても良い。例えば、擬似乱数ソース(PRNS)の(値V1等の)1つまたは複数の初期化パラメータ値を含む一組の整合性メタデータは、反復(複数可)のために生成されても良い。メタデータは、PRNGの状態、例えば、または事前に生成された擬似乱数のリスト内の特定のオフセットへのポインタを初期化またはリセットするために使用されるシード値を含んでも良い。一部の実施形態において、クライアントは、TEI要求内にメタデータの少なくとも一部分を含んでも良い。シード値(複数可)に加えてか、またはシード値(複数可)の代わりに、整合性メタデータ、例えば、PRNSの識別子、PRNSの状態の表現、及び/または擬似乱数のリスト内へのポインタが、含まれても良い。
要求内で指示された入力データセットが複数のファイルまたは複数のデータオブジェクトに広がっている場合、ファイル/オブジェクトは、論理的に連結されて、入力データのための統合されたアドレス空間を形成しても良い。入力データセットのアドレス空間は、連続的チャンクに細分されても良く(要素3207)、例えば、チャンクサイズ/境界は、クライアント好み、MLSサーバのメモリ制約、及び/または他の要因に基づいて選択される。入力データセットの1つまたは複数のチャンクは、例えば、チャンクC1の少なくとも一部分がサーバS1のメモリに記憶され、チャンクC2の少なくとも一部分がサーバS2のメモリに記憶されるように、永続的記憶装置から1つまたは複数のMLSサーバのそれぞれのメモリに読み込まれても良い(要素3210)。
整合性メタデータを使用して、例えば、チャンクC1の少なくともいくつかの観測記録を含む入力データの第1の訓練セットTrn1が、選択されても良い(要素3213)。訓練セットは、チャンクレベル、観測記録レベル、またはチャンクレベルと観測記録レベルとのある組み合わせで選択されても良い。少なくとも一部の実施形態において、部分的チャンクは、訓練セットTrn1内に含まれても良い(つまり、所与のチャンクのいくつかの観測記録が訓練セット内に含まれても良い一方で、他の観測記録は、最終的に対応する試験セット内に含まれても良い)。一実施形態において、初期化パラメータ値V1を使用して、ソースの最初の状態に基づいてそのような数の決定論的シーケンスを提供したソースから第1の組の擬似乱数を得ても良く、次いで、第1の組の擬似乱数を使用して、標的の機械学習モデルM1を訓練するために使用される訓練セットTrn1を選択しても良い。
モデルが訓練された後に、そのモデルを評価するために、試験セットTst1が整合性メタデータを使用して(例えば、同じソースから、またはソースの状態がTrn1を選択するために使用されたソースの状態と同期化されているソースから得られた一組の擬似乱数を使用して)判定されても良い(要素3216)。一実装例において、例えば、整合性メタデータは、シードであるシード1と、Trn1を生成するためにPRNGから得られた擬似乱数のカウントN1と、を指示しても良い。元のPRNGがTst1を選択するための擬似乱数を提供するのに利用可能でない場合、(例えば、試験セットがTrn1を識別するために使用されたサーバとは異なるサーバで識別され、ローカルPRNGが各サーバで使用される必要がある場合)、同等のPRNGがシード1を用いて初期化されても良く、同等のPRNGから生成された第1のN1擬似乱数は、Tst1を選択するための((N1+1)番目から開始する)後続の擬似乱数を使用する前に破棄されても良い。別の実装例において、Trn1及びTst1(または任意の組の訓練セット及び試験セット)を選択するために使用されるアルゴリズムは、依然として先に記載された整合性基準を満たしながら、擬似乱数の同じシーケンスがTrn1及びTst1を選択するために使用され得るような方法で設計されても良い。そのような実装例において、同じシード値が、Tst1のためのPRNGを初期化するために使用されても良く、擬似乱数は、Tst1を選択するためにスキップされる必要がなくても良い。モデルM1は、試験セットTst1を使用して試験/評価されても良い(例えば、モデルの予測の正確さ/質が判定されても良い)。
描写される実施形態において、(要素3219で判定されるように)より多くのTEIが行われたままになっている限り、次の反復のための訓練セット及び試験セットは、チャンクコンテンツのうちのいずれも他の位置にコピーせずに定位置で識別されても良い(要素3222)。描写される実施形態において、Trn1及びTst1を生成するために使用された整合性メタデータは、後続のTEIのための訓練セット及び試験セットを選択するためにも使用されても良い。他の実施形態において、それぞれの組の整合性メタデータは、それぞれのTEIのために使用されても良い。訓練セットがチャンクレベルで最初に識別される少なくとも一部の実施形態において、訓練セットの個々のチャンク内の観測記録は、訓練モデルに対して観測記録を使用する前にメモリ内で入れ換えられても良い(すなわち、チャンク内入れ換えが永続的記憶装置へのあらゆる追加のI/Oなしに行われても良い)。同様に、一部の実施形態において、チャンク内入れ換えは、試験セットが評価のために使用される前に試験セットに対して行われても良い。訓練及び評価の全ての要求された反復が完了した後、要素3201に対応する動作において受信された要求の処理は、完了したと見なされても良く、反復の最終結果が、要求内で指示された宛先に提供されても良い(要素3225)。
決定木ベースのモデルの最適化
いくつかの機械学習方法、例えば分類及び回帰問題のために使用される技法は、決定木の使用を伴う場合がある。図33は、少なくとも一部の実施形態に従った、予測のために機械学習サービスで生成され得る決定木の例を例示する。OR3304A、OR3304B、及びOR3304C等の複数の観測記録(OR)を含む訓練セット3302は、従属変数DVの値を予測するために、モデルを訓練するために使用される。訓練セット3302内の各ORは、IV1、IV2、IV3、…、IVn等の複数の独立変数(IV)の値(例えば、OR3304Aにおいて、IV1の値はxであり、IV2の値はyであり、IV3の値はkであり、IV4の値はmであり、IVnの値はqである)、及び従属変数DV(これの値はOR3304Aの場合にはXである)の値を含む。独立変数は、本明細書で入力変数とも称され得、従属変数は、出力変数と称され得る。少なくとも一部の実施形態において、一般に、全てのOR3304が、独立変数の全ての値を有する必要はなく、例えば、いくつかの値は、観測記録が得られるソースから利用可能でなくても良い。描写される実施例において、「ラベル」または(モデルが予測する変数の値の変数であるため)「目標変数」とも称され得る従属変数が、2つの値、XまたはYのうちの1つを持つことを想定されたい。任意の所与の独立変数及び従属変数は、任意の数の異なる値を持っても良く、数値、カテゴリー、Boolean、文字等の任意の所望のデータ型のものでも良い。
サブセットの観測記録3304または訓練セットの全ての分析に基づいて、1つまたは複数の決定木3320が、観測記録のIVの少なくとも一部の値に基づいてDVの値の予測を立てるために、例えば、上述の機械学習サービスのモデルジェネレータ構成要素またはモデルマネージャ構成要素によって構築されても良い。決定木3320のルートノード3322等の各葉なしノードは、1つまたは複数の独立変数に対して評価される1つまたは複数の条件または述語を指示しても良く、述語の評価の結果は、DVの予測がORのために立てられる木の葉ノードに向かって次にとられるパスを判定しても良い。例えば、例示される決定木において、ルートノードは、独立変数IV2の値がkと比較されることを指示する。IV2が、予測が立てられる所与の観測記録に関してk未満である場合、中間ノード3323へのパスが、(「IV2<k」の評価に対する「yes」を表す)「y」のラベルが付けられた枝によって示されるようにとられるべきである。IV2が分析される観測記録においてk以上である場合、(「no」を表す)「n」のラベルが付けられたパスがとられる。同様の判定が、パスに沿って確認された述語の組み合わせに基づいてDVの値が予測される点に葉ノードが到達するまで、様々な葉なしノードで行われる。したがって、描写される木3320において、以下の条件が真であることが分かった場合、XのDV値は、葉ノード3324で予測されても良い。すなわち、(IV2<k)及び(IV1>=p)及び(IV6>=p)及び(IV7==q)及び(IV4!=z)。同様の走査は、決定木ベースのモデル3335によって試験データセット3330の全ての記録に対して行われ、DV値の一組の予測3340をもたらす。多くの訓練データセットについて、独立変数のうちの1つまたは複数が、必ずしも決定木の中に表されなくても良く、例えば、独立変数IVnが予測DVに対して有意でない場合、木3320の中に含まれているノードのいずれも、IVnを参照する条件を含まなくても良い。一般に、機械学習サービスのモデルジェネレータ構成要素は、独立変数のあるサブセットを使用してDV値を正確に予測する効率的手段を識別し、そのような効率的手段を1つまたは複数の決定木の形態にコード化することに関与しても良い。予測の質及び効率を助長することができるいくつかの要因が、以下に論じられる。
単純な二項分類の例が、提示を単純化するために図33に例示される。様々な実施形態において、決定木は、多重分類及び/または回帰のためにも使用されても良い。一部の実施形態において、決定木の所与のノードは、3つ以上の子ノード(すなわち、葉の方に向かう3つ以上の外向きパス)を有しても良く、つまり、図33に示される単純なバイナリテストよりも複雑な複数の結果条件が、各ノードで評価されても良い。以下にさらに詳細に記載されるように、各ノードは、木全体がノード記述子のコレクションとして表されても良いように、確認される述語/条件、その子ノードの数及び識別等を指示する対応する記述子によって表されても良い。生成される決定木3320のサイズ及び形状は、予測にとって有意であることが見出されている独立変数の数、木生成アルゴリズムが訓練セットの観測記録を分析する順序等の様々な要因に依存しても良い。(ランダムフォレストモデル及びadaptive boostingモデル等の)一部のモデルは、多くの異なる木、例えば、訓練データセットのそれぞれのサブセットを使用して得られるそれぞれの木の集合体またはコレクションを必要とするか、またはこれらに依存しても良い。
決定木ベースの予測を作成するための(例えば、使用されたリソースまたは必要とした時間に関する)費用は、2つのカテゴリー、訓練費用及び実行/予測費用に大まかに分類されても良い。実行/予測費用はまた、本明細書で実行時間費用とも呼ばれ得る。訓練費用が、木を構築し、訓練データセットを使用してモデルを訓練するために使用されるリソースを指す一方で、実行費用は、訓練段階のために使用されなかった新しいデータ(または試験データ)に対してモデルが予測を立てるときに使用されるリソースを指す。少なくとも一部の実施形態において、以下に記載されるように、トレードオフは、訓練費用と新しいデータに対して立てられた予測の質との間で起こり得る。訓練の間により多くのリソース及び/または時間を費やすことによって、より良い(例えば、より正確及び/またはより速い)予測が、少なくとも一部の種類の問題に関して可能になり得る。例えば、一部の従来の木構築手法でとは異なり、一部の実施形態において決定木は、深さ優先順で構築されても良く、ノードの記述子は、木構築手順が所与のサーバで利用可能なメインメモリの容量に限定される必要がある代わりに、作成されるに従い、すぐにディスクまたは他の何らかの形態の永続的記憶装置にストリーミング配信される。そのような深さ優先かつ永続的記憶装置ベースの木構築パスは、幅優先のメモリに制約される手法に対して、小さい母集団を有する観測記録クラスに対するより高い予測正確さ、より良いプロセッサキャッシュ使用率(例えば、MLSサーバで使用されているCPUまたはコアと関連付けられたレベル2またはレベル1ハードウェアキャッシュで)等のいくつかの利点をもたらし得る。(木のサイズは、木構築パスの間にメモリによって制約されないため)極めて大きな木が、そのような手法の結果として生成され得るが、木は、例えば、1つまたは複数の実行時間最適化目標に基づいて、ノードのサブセットを削除するために訓練段階の第2のパスの間に高度に枝刈りされても良い。「実行時間最適化目標」という用語は、本明細書で予測を立てるために訓練されたモデルの実行と関連付けられた、試験データセットまたは本番データセットの予測を生成するのにかかる時間の低減、そのような予測のために消費されるCPUまたは他のリソースの量の低減等の目標を指し得る。(一部の実施形態において、そのような実行時間または予測時間目標に加えてか、またはそれらの代わりに、MLSのクライアントはまた、または代わりに訓練モデルのために使用されたリソースまたは時間に関する訓練時間目標を有しても良い。)次いで、メモリ制約内に適合することができる枝刈りされた木は、非訓練データセットに対して高い質の予測を立てるために使用されても良い。異なる実施形態において、決定木が生成され、かつ枝刈りされても良い方式に関する詳細は、以下に提供される。
図34は、少なくとも一部の実施形態に従った、機械学習モデルのための訓練段階の木構築パスの間に、永続的記憶装置の深さ優先順に決定木ノードの表現を記憶する例を例示する。描写される実施例において、訓練データ3432は、1つまたは複数の決定木の木3433の構築の前に、(例えば、1つまたは複数のMLSサーバの)訓練セットメモリバッファ3340に読み込まれても良い。他の実施形態において、訓練セット全体がメモリに読み込まれる必要はなく、例えば、一実装例において、記録全体の代わりに観測記録へのポインタが、メモリに保存されても良い。木3433の各ノードが作成されるに従い、訓練セット(例えば、観測記録自体、または観測記録へのポインタ)は、そのノードの評価された述語に従ってメモリ内でソートまたは再配置されても良い。描写される実施形態において、例えば、木3433のノードN1が独立変数IV1の述語「IV1<=x」の評価を含む場合、訓練セット記録が、x以下のIV1値を有する全ての記録がメモリの1つの連続的部分P1の中にあるように再配置されても良く、次いでMLSの木ジェネレータ構成要素が、左のサブ木(ノードN2及びその子)を構築するためにその部分P1のコンテンツを分析しても良い。少なくとも一部の実施形態において、訓練セット記録の再配置は、メモリ内で(すなわち、ディスクまたは他の永続的記憶装置へのI/Oなしに)行われても良い。少なくとも一部の実施形態において、より低いレベルの木に達するに従い、訓練セットのより小さいサブセットが再配置される必要があっても良く、それによりハードウェアキャッシュ使用率レベルを改善する可能性がある。
描写される実施形態において、木3433は、深さ優先順で構築されても良い。一部の実施形態において、深さ優先走査/構築の先行順バージョンが図34に例示されるが、中間順または後行順深さ優先走査/構築が、採用されても良い。ノードのラベル「N<#>」は、ノードが生成されるシーケンスと、対応する記述子3430がメモリからモデルジェネレータまたはモデルマネージャが実行するMLSサーバでアクセス可能な様々なディスクベースのデバイス等の永続的記憶装置(複数可)に書き込まれる順序と、を指示する。したがって、矢印3435によって示されるように、ノードN1が、最初に作成され、最初に永続的記憶装置に書き込まれ、N2、N3…が続く。深さ優先シーケンスで作成された最初の葉ノードは、N6であり、N7、N8、N9、N10、及びN12が続く。記述子3430(例えば、ノードN1〜N12それぞれに対する3430A〜3430L)は、例えば、対応するノードで評価される述語または条件、子ノードの数及び/または識別等を指示しても良い。
描写される実施形態において、各ノードで評価される述語に加えて、それぞれの予測有用性メトリック(PUM)3434もまた、木3433のノードのうちのいくつかまたは全てに対して生成され、永続的記憶装置に記憶されても良く、例えば、PUM3434Aは、ノードN1に対して計算及び記憶され、PUM3434Bは、ノードN2に対して計算及び記憶され、以下同様である。概して、所与のノードのPUMは、全てのノードを使用して立てられ得る予測に対する、そのノードの相対的貢献度または有用性を示しても良い。異なる実施形態において、異なる測定値が、例えば、解決される機械学習問題の種類、木の構築のために使用される特定のアルゴリズム等に基づいて予測有用性メトリックとして使用されても良い。一実装例において、例えば、Gini不純度値が、PUMとしてまたはPUMの一部として使用されても良いか、または情報利得のエントロピーベースの測定値、または情報利得の他の何らかの測定値が、使用されても良い。一部の実装例において、いくつかの異なる測定値の組み合わせが、使用されても良い。少なくとも一部の実施形態において、予測有用性の何らかの測定値または述語の利点は、いずれにせよ木の構築の間に木に追加されるノードの少なくとも一部に関して計算される必要が合っても良く、ノードに割り当てられたPUMは、単純にそのような利点を表しても良い。一部の実装例において、木の1つまたは複数のノードのPUM値は、識別されなくても良く、つまり、PUM値をノードのサブセットのために利用可能にさせることは、木の枝刈りの目的に十分であり得る。
少なくとも一部の実装例において、ノードのPUMに基づいて決定木のノードの部分的(または全)順序を作成することが可能であっても良く、以下に記載されるように、そのような順序付けが、訓練段階の木の枝刈りパスで使用されても良い。一実施形態において、全ノードの順位付けされたリストの生成の代わりに、またはそれに加えて、木ノードに対するPUM値のヒストグラムまたは類似した分布指標が、作成されても良く、及び/または例えば、ノード記述子及びPUM値と一緒に、永続的記憶装置に書き込まれても良い。ヒストグラムは、例えば、木のノード及び対応するPUM値の網羅的なリストよりもかなり少ないメモリを要し得る。
図35は、少なくとも一部の実施形態に従った、決定木のノードのために生成され得る予測有用性分配情報の例を例示する。PUM値は、PUMヒストグラム3510のX軸上で左から右に増加し、各PUM値バケット内に含まれる決定木ノードの数は、ヒストグラムの対応する棒の高さによって示される。分布情報の生成の結果として、例えば、いくつのノードが低PUM値を有するかを示す比較的低値ノードを表すバケット3520Aが、識別されても良く、高値のノードの数を示すバケット3520Bが、識別されても良い。低値ノードは、枝刈りの間に木から削除するのに高値のノードよりも適した候補であると見なされても良い。一部の実装例において、ヒストグラム3510のバケットのうちの1つまたは複数に属するノードの少なくとも一部の識別子は、枝刈り段階で補助するために、永続的記憶装置に記憶されても良い。例えば、一実装例において、葉ノードから2レベル以内のノードの識別子は、1つまたは複数の低値バケットに対して記憶されても良く、そのようなリストは、枝刈り候補ノードを識別するために使用されても良い。
少なくとも一部の実施形態において、訓練段階の木構築パスの後に、1つまたは複数の実行時間最適化目標または基準の点から見て選択されたノードを削除することにより木表現のサイズが縮小される、枝刈りパスが続いても良い。一部の実施形態において、いくつかの木のノードが枝刈りされる前に木全体が必ずしも生成される必要がないように、木の枝刈りの期間が組み込まれた木構築のいくつかの別個の期間が実装されても良い(これは、生成されるノードの総数を低減するのに役立ち得る)。異なる実施形態において、いくつかの異なる目標が、枝刈りに関して考慮に入れられても良い。図36は、少なくとも一部の実施形態に従った、実行時間メモリフットプリント目標と累積予測有用性との組み合わせに少なくとも部分的に基づいた決定木の枝刈りの例を例示する。「実行時間メモリフットプリント」という用語は、本明細書で、例えば、モデルの訓練段階が完了した後に、所与のサーバまたはサーバの組み合わせでのモデルの実行のために必要なメインメモリの容量を示すために使用され得る。描写される実施形態において、2つの相反する実行時間目標(モデル実行の間に木を記憶するために必要なメモリの容量と、予測の正確さまたは質)間のトレードオフが、考慮に入れられても良い。少なくとも一部の実装例において、(より低い値が望ましい)メモリフットプリントまたは使用及び(より高い値が望ましい)正確さ/質の両方は、保存されたノード(すなわち、上述の深さ優先の永続的記憶装置にストリーミング配信する技法を使用して生成された最初の決定木から削除/枝刈りされないノード)の数と共に増加しても良い。実行時間メモリフットプリント目標は、保存され得るノードの最大数を示す「最大ノード」値3610へと翻訳されても良い。枝刈りされた木の質または正確さは、例えば、累積保存済み予測有用性3620の見地から表されても良く、これは、保存されたノードのPUM値を合計することによって、または保存されたノードのPUM値を入力としてとるいくつかの他の関数によって計算されても良い。
異なる実施形態において、ノードは、様々な手法を使用して削除に関して識別されても良い。例えば、貪欲枝刈り法3650において、枝刈りされていない木3604は、木の中の各分割で最高PUM値を有するノードに至るパスを選択するトップダウン様式で分析されても良い。貪欲トップダウン走査の間に遭遇したノードの累積PUM値及び遭遇したノードの総数が、追跡されても良い。遭遇したノードの総数が最大ノード値と等しいとき、これまで遭遇したノードは、保存されても良く、他のノードは、破棄または削除されても良い。少なくとも一部の実施形態において、木3604の変更または枝刈りされたバージョン3608は、例えば、必要な場合、異なる枝刈り手法を使用して再枝刈りを試みることができるように、枝刈りされていないバージョンとは別に(例えば、永続的記憶装置に)記憶されても良い。他の実施形態において、枝刈りされたバージョン3608だけが、保存されても良い。一部の実施形態において、貪欲トップダウン手法を使用する代わりに、葉ノードが最初に分析され、モデルの質/正確さへのノードの貢献度が閾値未満の場合、最大ノード制約3610が満たされるまでノードが削除される、矢印3660によって示されるボトムアップ手法が、使用されても良い。一部の実施形態において、(図35に例示されるものと類似したヒストグラム等の)PUM分布情報が、枝刈りされるノードを選択するとき参照されても良い。複数の実行時間目標(これらのうちのいくつかは、互いに相反する場合がある)が枝刈り手順を導く実施形態において、MLSは、互いに対して相反する目標に優先順位を付ける必要があっても良い。例えば、図36に示される最大ノード目標は、累積予測有用性の目標よりも優先度が高いと見なされても良い。少なくとも一部の実装例において、枝刈りの少なくともいくつかのノードが、例えば、実行時間目標及び質目標を順守しながら、厳密にトップダウンまたはボトムアップ手法を使用せずにランダム選択手順を使用して選択されても良い。
一部の実施形態において、他の種類の実行時間目標が、モデルの訓練段階の木の枝刈りパスの間、考慮に入れられても良い。図37は、少なくとも一部の実施形態に従った、予測時間変動目標に少なくとも部分的に基づいた決定木の枝刈りの例を例示する。一部の事例では、訓練データセットの独立変数の値の分布、及び独立変数と従属変数との間の関係によっては、枝刈りされていない決定木3704等の決定木は、極めて不平衡であり得る。つまり、ルートノードと葉ノードとの間の一部のパスは、他のパスよりもはるかに長い場合がある。例えば、木3704の葉ノードN8には、ルートノードN1から(N1及びN8を含む)8個のノードを横断する判定パス3704Aを介して辿り着いても良い一方で、葉ノードN17には、たった3個のノードを含む判定パス3704Bを介して辿り着いても良い。
描写される実施形態において、所与の観測記録の従属変数の予測を立てるためにかかる時間(及び消費されるCPUリソース)は、グラフ3786に示されるように、少なくとも判定パスの長さにおおよそ比例しても良い。一部の遅延に影響されやすい用途に関して、異なる観測記録または試験セットの予測を立てるのにかかる時間における変動は、モデルの質の重要な指標であると見なされても良く、より小さい変動は、一般的により大きな変動よりも望ましい。したがって、そのような実施形態において、予測時間3710における最大変動が、重要な実行時間最適化目標であっても良く、複数のノードが、可能性のある判定パスにおける最大変動を低減するために、木3704から削除されても良い。示されるように、例えば、ノードN6、N7、N8、N9、N10、及びN11は、変更/枝刈済み木3608における最大判定パス長さが8から5に縮小されるように、木3704から削除されても良い。少なくとも一部の実施形態において、予測時間における変動最小化の第一目標は、累積保存済み予測有用性を最大化する第二目標と組み合わせられても良い。例えば、判定パスの長さに等しく影響を与える枝刈りの選択が行われるとき、代替枝刈り標的ノードのPUM値が、比較され、より大きいPUM値を有するノードが、保存されても良い。
少なくとも一部の実施形態において、ビジネス目標もまた、決定木を枝刈りするとき、考慮に入れられても良い。例えば、サービスの潜在的顧客のグループが、セグメントS6に属すると分類される顧客が、顧客が他のセグメントに属するサービスに実質的により高い金額を使うことが予想されるような、セグメントS1、S2、…、Snに分類されるシナリオを考えられたい。そのようなシナリオにおいて、S6顧客の分類につながる判定パスに沿ったノードは、他のセグメントにつながる判定パスに沿ったノードに優先して、枝刈りの間に保存されても良い。様々な実施形態において、メモリフットプリント/制約、質/正確さ目標、絶対実行時間(予測時間)目標、予測時間変動目標、ビジネス/収益目標、及び/または他の目標の組み合わせが、異なる目標の用途特化優先順位付けと一緒に使用されても良い。少なくとも一部の実施形態において、MLSのプログラム的インターフェースは、例えば、クライアントにとっての所与のモデルまたは問題の異なる種類の目標の相対的重要性を等級付けすることにより、クライアントが上述の種類の1つまたは複数の実行時間最適化目標を指示することを可能にしても良い。一部の実施形態において、異なる問題領域に対して、決定木の枝刈りのためのベストプラクティスに関する情報(例えば、どの枝刈り方法が最も有用か)が、MLSによって(図1に示される)知識ベース122内に収集され、必要に応じて適用されても良い。
図38は、少なくとも一部の実施形態に従った、機械学習サービスで決定木の集合体を使用するモデルを訓練するために生成され得る複数のジョブの例を例示する。描写される実施形態において、それぞれの訓練サンプル3805A、3805B、及び3805Cは、(例えば、再配置を伴うランダムサンプリング等の様々なサンプリング方法のうちのいずれかを使用して)より大きな訓練セット3802から得られても良く、各々のそのようなサンプルを使用して、それぞれの決定木を上述の深さ優先手法を使用して作成しても良い。したがって、訓練サンプル3805Aを使用して、訓練段階3820の木作成パス3812の間に、永続的記憶装置に深さ優先順で枝刈りされていない決定木(UDT)3810Aを生成及び記憶しても良く、訓練サンプル3805Bは、UDT3810Bのために使用されても良く、UDT3810Cは、訓練サンプル3805Cを使用して生成されても良い。一部の実施形態において、それぞれのジョブJ1、J2、及びJ3は、UDT3810A、3810B、及び3810Cの構築のためにMLSジョブ待ち行列またはコレクション内に挿入されても良い。少なくとも一部の実施形態において、木作成パスのジョブは、例えば、MLSサーバプールのそれぞれのサーバを使用してか、または同じMLSサーバで実行(または処理)の複数のスレッドを使用して並列で行われても良い。
描写される実施形態において、各UDTは、訓練段階の枝刈りパス3814の対応する枝刈り済み決定木(PDT)3818を生成するための適切な実行時間最適化目標に従って枝刈りされても良い。ジョブJ4、J5、及びJ6は、UDT3810A〜3810Cそれぞれを枝刈りし、PDT3818A〜3818Cを生成するために実行されても良い。描写される実施形態において、最後に、ジョブJ7、J8、及びJ9それぞれが、ある指定された試験セット(または本番データセット)を使用して、3つのPDT3818A〜3818Cを使用してモデルを実行し、予測結果3850A〜3850Cをもたらすようにスケジュールされても良い。異なるPDTから得られた結果3850は、使用されている機械学習アルゴリズムの予測または試験段階の間に集計予測結果3860を生成するように、(例えば、各試験セットの観測記録の予測のための平均値または中央値を識別することによって)任意の所望の様式で組み合わせられても良い。予測段階は、例えば、データセットの従属変数の値が予測段階では既知ではない一方で、モデルを試験するために使用されるデータセットの従属変数の値は既知であり得るという点において、試験段階とは異なっても良い。一部の実施形態において、追加のジョブJ10は、結果の集約のためにスケジュールされても良い。ジョブJ1〜J10のうちのいずれかも、適切なジョブ依存関係が満たされている限りは他のジョブと並列で行われても良く、例えば、ジョブJ4は、J1の完了後に開始される必要があっても良く、J7は、J4の完了後に開始されても良いことが留意される。しかしながら、J7は、J7がJ2に依存しないためJ2の完了前であっても開始しても良く、したがって、少なくとも一部の実施形態において、予測/試験段階3830は、十分なリソース利用可能である場合、訓練段階と重複しても良いことに留意されたい。ランダムフォレスト等の一部の木集合体ベースのアルゴリズムに関して、数百のUDT及びPDTが、所与の訓練セットのために生成されても良く、並列化の使用は、連続手法と比較して実質的に訓練時間及び実行時間の両方を短縮し得る。一部の実施形態において、異なる実行時間最適化目標が異なるUDTの枝刈りに適用されても良い一方で、他の実施形態において、同じ組の実行時間最適化目標は、集合体の全ての木に適用されても良い。様々な実施形態において、依存関係を満たしている、例示される異なるタスクのうちのいずれかのためのジョブ(例えば、木生成、木の枝刈り、またはモデル実行)は、スレッドレベル(例えば、実行の異なるスレッドは、同じサーバ上のジョブのために使用されても良い)、処理レベル(例えば、それぞれの処理は、同じサーバまたは異なるサーバ上で同時に実行される複数のジョブに対して開始されても良い)、またはサーバレベル(例えば、一組の同時にスケジュール可能なジョブの各ジョブは、それぞれのMLSサーバで、異なるスレッド/処理で実行されても良い)で並列で実行されても良い。一部の実施形態において、スレッドレベルでの並列化、処理レベルでの並列化、及びサーバレベルでの並列化の組み合わせが、使用されても良く、例えば、並列で実行される4個のジョブのうち、2つが1つのMLSサーバでそれぞれのスレッド/処理で実行されても良い一方で、2つは、別のMLSサーバで実行されても良い。
図39は、少なくとも一部の実施形態に従った、深さ優先順で永続的記憶装置に記憶された決定木を生成及び枝刈りするために機械学習サービスで行われ得る動作の態様を例示する流れ図である。要素3901に示されるように、一組の実行時間最適化目標が、訓練データセットTDSを使用して訓練される予測木ベースのモデルM1のために識別され、機械学習サービスで実行されても良い。異なる実施形態において、例えばメモリ使用率またはフットプリント目標、CPU等の他のリソースの使用率目標、予測時間目標(例えば、モデルの予測実行の経過時間)、予測時間変動目標(例えば、異なる観測記録に対するモデル予測時間の間の差異を縮小する)、予測正確さ/質目標、予算目標(例えば、モデル実行のCPU使用率または他のリソースの使用率レベルに比例し得る、クライアントがモデル実行に使うことを望む総額)、上述の種類の収益/利益目標等を含む、様々な目標が、判定され、及び/または優先順位を付けられても良い。一部の実施形態において、訓練データセット及び/または最適化目標(もしくは異なる目標の相対的優先度)のうちのいくつかまたは全ての指標は、例えば、1つまたは複数のMLS APIを介して、プログラム的にMLSクライアントによって提供されても良い。例えば、一実施形態において、決定木ベースのモデルを作成するためのAPIは、データセット及び1つまたは複数の実行時間目標を指示するそれぞれの要求パラメータを用いて、クライアントによって呼び出されても良い。一部の実施形態において、目標の少なくとも一部は、正確な量で表される代わりに定性的であっても良く、例えば、一部のシナリオにおいて、累積予測有用性の正確な目標値を指示することが必ずしも可能ではない場合があるが、可能な程度において累積予測有用性を最大化する目標は、依然として、枝刈りを指導するために使用されても良い。
M1の訓練段階の木構築パスは、訓練データセットの全てのある選択されたサブセットを使用して開始されても良い。一部の実装例において、訓練データ(または少なくとも訓練データの観測記録へのポインタ)は、木の構築の前にメモリ内に書き込まれ、ノードが生成されるに従い木のノードで評価された述語に基づいてメモリ内に再配置されても良い。描写される実施形態において、木構築パスの間に、決定木のノードが、深さ優先順で生成されても良く(要素3904)、試験される述語等のノード情報、及び子ノードカウントまたは子ノードへのポインタは、深さ優先順で永続的記憶装置(例えば、回転ディスクベースの記憶装置)にストリーミング配信されても良い。描写される実施形態において、モデルによって立てられた予測に対するノードの貢献度または有用性を示す予測有用性メトリック(PUM)値は、ノードの少なくとも一部のために記憶されても良い。異なる実装例において、Gini不純度値、エントロピー測定値、情報利得測定値等のいくつかの種類の統計的測定値のうちのいずれかが、PUM値として使用されても良い。PUM値は、例えば、訓練段階の後続の木の枝刈りパスで、モデル予測の質に大幅に影響を与えずにノードを木から枝刈りまたは削除することができる順序を判定するために、使用されても良い。一部の実施形態において、木のノード間のPUMの分布のヒストグラムまたは類似した表現が、木構築パスの間に生成されても良い。他の実施形態において、分布情報は、木の別個の走査において収集されても良い。「木構築」及び「木作成」という用語は、本明細書で類義語として使用され得る。
描写される実施形態において、構築された木は、実行時間最適化目標及び/またはノードのPUM値の点から見て削除されるべきである複数のノードを識別するために、例えば、トップダウン貪欲手法またはボトムアップ手法のいずれかで分析されても良い(要素3907)。一部の実施形態において、木の枝刈り段階は、例えば、枝刈りされていない木が既に所望の最適化目標を達成している場合、行われる必要はない。少なくとも1つの実施形態において、これは、例えば、費用対効果分析が削除は価値がないと示すため、所与の木のノードのいずれも枝刈りされない事例であり得る。決定木の変更または枝刈りされたバージョンは、例えば、モデルの試験段階及び/または本番レベル予測実行の間の後の使用のために、枝刈りされていない木とは離れた位置に記憶されても良い(要素3910)。
一部の事例では、モデルが集合体ベースであるか否かに応じて、複数の木が、構築される必要があっても良い。(要素3913で判定されるように)より多くの木が必要である場合、訓練データセットの異なるサンプルが、生成されても良く、要素3904以降の構築及び枝刈り動作が、反復されても良い。並列化図39に明確に例示されていないが、一部の実施形態において、先に言及されたように、複数の木は、並列で構築及び/または枝刈りされても良い。描写される実施形態において、全ての木が構築及び枝刈りされた後、モデルは、1つまたは複数の組の予測を得るために、枝刈り済み木(複数可)を使用して実行されても良い(要素3916)。一部の実装例において、複数の枝刈り済み木に対応する予測実行は、並列で行われても良い。一部の実施形態において、最適化目標が予測実行(複数可)の間に達成されたかどうかを判定するために使用することができるメトリックが、得られても良い。全ての目標が要素3919で検出される適切な程度まで達成された場合、モデルの訓練及び実行段階は、完了したと見なされても良い(要素3928)。一部の実施形態において、(所望のレベルの正確さ等の)いくつかの目標が達成されなかった場合、かつ(要素3922で検出された)より多くのメモリ等の追加のリソースが利用可能である場合、訓練段階及び/または実行段階は、追加のリソースを使用して、再試行されても良い(要素3925)。一部の実施形態において、そのような再試行は、目標が達成されるか、または追加のリソースが利用可能でなくなるまで反復されても良い。異なる実施形態において、訓練時間対実行時間のトレードオフに基づく木の生成及び枝刈りに関して本明細書で記載される技法は、例えばCART(分類及び回帰木)モデル、ランダムフォレストモデル、ならびにadaptive boostingモデルを含む様々な種類の木ベースのモデルのために使用されても良い。一部の実施形態において、木生成及び木の枝刈りは、例えば、モデルの訓練段階の間に互いが点在する木生成のいくつかの異なる期間及び木の枝刈りのいくつかの異なる期間を用いて、反復して行われても良い。そのようなシナリオにおいて、複数のノードが、生成され、最初の木生成期間に深さ優先順で記憶されても良い。次いで、木生成を、休止しても良く、作成されたノードは、第1の木の枝刈り期間に(例えば、これらのPUM値及び最適化目標に基づいて)枝刈りに関して調べられても良く、一部のノードは、分析に基づいて削除されても良い。より多くのノードが、次の木生成期間に得られた木に対して生成され、続いて、次の木の枝刈り期間の間に0個以上のノードが削除され、以下同様でも良い。そのような反復生成及び枝刈りは、任意のノードが枝刈りされる前に木全体が生成される手法においてよりも早く、低有用性を有するノードを木から削除するのに役立ち得る。
少なくとも1つの実施形態において、機械学習サービスのいくつかの異なる構成要素が、決定木最適化に関連した動作を総じて行なっても良い。1つまたは複数のAPIを介して提出された、木ベースのモデル(例えば、単一の木に基づくモデル、もしくはモデル木の集合体を使用するモデルのいずれか)の訓練または作成に対するクライアント要求は、モデルジェネレータまたはモデルマネージャへの要求の性質及びクライアント要求(またはクライアント要求の内部表現)に対するパスを判定しても良い要求/応答ハンドラで受信されても良い。一部の実施形態において、訓練段階の各パスは、それぞれのMLS構成要素によって行われても良く、例えば、1つまたは複数の木ジェネレータ構成要素が、深さ優先順で木を作成し、ノード記述子を1つまたは複数のMLSサーバの永続的記憶装置にストリーミング配信しても良い一方で、1つまたは複数の木レデューサは、木の枝刈りに関与しても良い。少なくとも1つの実施形態において、MLSの1つまたは複数の訓練サーバが、木ベースのモデルを訓練するために使用されても良い一方で、1つまたは複数の予測サーバは、実際の予測のために使用されても良い。それぞれのジョブが異なるタスクに対して作成される実施形態において、ジョブマネージャは、未処理のジョブのコレクションまたは待ち行列の管理、及びリソースが利用可能になりジョブ依存関係が満たされたとき、ジョブのスケジューリングに関与しても良い。一部の実施形態において、応答(例えば、木ベースのモデルの識別子、または予測実行の結果)は、フロントエンド要求/応答ハンドラによってクライアントに提供されても良い。少なくとも一部の実施形態において、これらの構成要素のうちのいくつかまたは全ては、特殊化、調整、またはタスク最適化されたハードウェア及び/またはソフトウェアを備えても良い。
特徴処理トレードオフ
先に記載されたように、プロバイダネットワークに実装された機械学習サービスは、分位ビニング、1つまたは複数の変数の値のカルテシアン積の生成、n−gram生成等の多岐にわたる(FPTとも称され得る)特徴処理変換をサポートしても良い。多くの独立変数を有し、モデルを訓練するために使用される入力データセットに対して、極めて多数の特徴処理変換が、その後に、処理済み変数がクライアントにとって関心のある1つまたは複数の目標または従属変数の値を予測するために使用されても良いように、生入力データから導出または処理された変数を生成するのに、潜在的に実行可能である可能性がある。クライアントにとって、FPTの結果を使用して訓練されたモデルの予測の質に関する所与のFPTの有用性、またはFPTの実行に関連する費用のいずれも推定することは必ずしも簡単ではない場合がある。各FPT(または関連したFPTのグループ)は、モデルのライフサイクルの様々な段階の経過時間、リソース消費等の様々な単位のうちのいずれかで表すことが可能であり得るそれ自体の一組の費用を有しても良い。一部の実施形態において、FPTを行う価値があるかどうかを判定するとき、例えば、FPTの訓練セットへの適用、FPTの結果を含む入力データを使用したモデルの訓練、FPTの評価または試験データセットへの適用、及び予測/評価実行のためのモデルの実行の入力としてFPTの処理済み変数(複数可)を含むための追加または限界費用(例えば、メモリ、CPU、ネットワーク、もしくは記憶装置費用)が全て、考慮に入れられる必要があり得る。一部の実施形態において、MLSは、例えば、クライアントによって指示された目標の点から見ての自動費用対効果分析に基づいて考えられる組の特徴処理変換に関する提案を、クライアントに提供するように構成されても良い。モデルの本番実行の間により正確及び/またはより速い予測を見つけ出すために、例えば、訓練時間により多くの時間またはより多くのリソースを費やしてFPTを分析することは可能であり得る。一部の実施形態において、上述のように、少なくとも一部のそのような特徴処理提案技法は、レシピに対して行われても良い自動パラメータ調整と類似した目的を有しても良い。
図40は、少なくとも一部の実施形態に従った、候補特徴処理変換の費用及び利点の分析に基づいて、クライアントのための特徴処理提案を生成するように構成された機械学習サービスの例を例示する。示されるように、機械学習サービスの特徴処理(FP)マネージャ4080は、候補ジェネレータ4082及びオプティマイザ4084を含んでも良い。FPマネージャ4080は、値がモデルによって予測される、一組の生または未処理独立変数4006及び1つまたは複数の目標変数4007の値を含む訓練データセット4004の指標を受信しても良い。モデルは、1つまたは複数のFPTを使用して訓練データセットから導出された変数を使用して訓練可能であっても良い。さらに、描写される実施形態において、FPマネージャ4080はまた、1つまたは複数の予測の質メトリック4012、及び予測の1つまたは複数の実行時間目標4016も判定しても良い。様々な品質メトリック4012が、異なる実施形態において、かつ、二項分類問題の場合、ROC(受信者動作特性)AUC(曲線下面積)測定値、回帰問題の場合、平均平方根誤差メトリック、以下同様等の異なる種類のモデルに関して判定されても良い。一部の実施形態において、クライアントは、訓練モデルに対する(1つまたは複数の必要なまたは必須のFPT、及び/または1つまたは複数の禁止されたFPT等の)1つまたは複数の制約4014を指示しても良く、FPマネージャは、指定された制約を満たすように試みても良い。目標4016には、指定されたサイズのデータセットの予測の生成経過時間目標、そのような予測を立てるときに超えるべきではないメモリの容量目標、1つの予測当たりの最大請求費用に関する予算目標等が含まれても良い。一部の実施形態において、FPマネージャはまた、モデルを訓練するために費やされる最大時間、訓練モデルのための超えるべきではない予算、またはMLSが特徴処理提案をクライアントに提供するための時間限度もしくは予算限度等の、一組の訓練段階目標も提供されても良い。
描写される実施形態において、候補ジェネレータ4082は、最初の候補FPTセット4052の識別に関与しても良い。一部の実装例において、最初の候補FPTセットは、MLS内で少なくとも内部的に、FPT1〜FPT10を含む例示されるグラフ等の考えられる変換の非巡回グラフとして表されても良い。非巡回グラフ表現は、例えば、異なるFPTが行われるべき推奨されるシーケンス、及び/または異なるFPT間の依存性を指示しても良い。例えば、FPTセット4052の描写される表現は、FPT9がFPT7の結果に依存し、FPT7がFPT3の結果に依存する、以下同様を指示しても良い。予算限度または時間限度が特徴処理提案の生成に対して指示されない一部の実施形態において、候補ジェネレータ4082は、多数(例えば、数十または数百)の候補FPTを含んでも良い。時間限度またはリソース限度等の制約が、FP提案生成に関してFPマネージャに対して設けられる他の実施形態において、候補FPTの最初の組4052は、実行可能な候補変換の比較的小さいサブセットを含んでも良い。最初の組4052は、(例えば、制約4014で)必須として指定された任意のFPTを含み、禁止された任意のFPTを除外しても良い。
オプティマイザ4084は、4062A及び4062B等の1つまたは複数のFP提案の生成に関与しても良い。FP提案は、典型的に、例えば、オプティマイザによって行われた費用対効果分析に基づいて複数の候補FPTが削除または枝刈りされた、候補セット4052のバージョンでも良い。クライアントが制約4014を介して必須特徴処理変換を指示した場合、そのような変換は、FP提案内に保存されても良い。様々な実施形態において、以下に記載されるように、費用対効果分析は、複数のジョブ、例えば、候補FPTの最初の組の結果を用いたモデルの訓練及び評価を伴うジョブのスケジューリング、様々なFPTの予測の質への影響を推定するための変更された評価セットを用いたモデルの再評価、及び/または様々なFPTの予測実行時間メトリックへの影響を推定するための変更された組の処理済み変数を用いたモデルの再訓練を含んでも良い。図40に示されるシナリオにおいて、提案4062Aが、FPT5、FPT8、FPT9、及びFPT10を削除することによって最初のFPT候補セット4052から得られる一方で、提案4062Bは、FPT候補セット4052からFPT4、FPT7、FPT8、FPT9、及びFPT10を削除することによって生じる。異なる実施形態において、以下にさらに詳細に記載されるように、様々な技法が、ランダム削除、貪欲アルゴリズム等の、異なる提案において削除されるFPTの選択のために使用されても良い。候補セットからのFPTの枝刈り(例えば、削除)の利点のうちの1つは、クライアントの訓練及び試験データセットにいくつかの独立変数を含む手間を掛ける必要がなくても良いことである。例えば、FPT5が所与の独立変数4006に適用する候補セット4052における唯一の変換であり、かつFPマネージャが、クライアントの目標を達成するためにFPT5が必要ではないことを判定する場合、クライアントは、将来の訓練及び/または試験/評価データのために独立変数4006の値を収集する必要はない。MLSへの訓練データの収集、記録、及び提供は、機械学習問題に対する解決策を得るためのクライアントの全費用に有意に影響を与え得るため、そのような訓練データ縮小最適化は、特に有益であり得る。
少なくとも一部の実施形態において、1つまたは複数のFP提案4062が、例えば、クライアントが特定の提案または複数の提案を承認し得るカタログまたはメニューの形態で、プログラム的にMLSのクライアントに提供されても良い。一部の事例では、反復処理が、最終承認済みFP計画に到達するために、例えば、クライアントへの提案を提供するMLSを含む所与の反復を用いて、続いてクライアントからの提案変更要求によって使用されても良い。一部の実施形態において、クライアントが反復の間に生成された提案のうちのいずれも承認しない場合、FPマネージャは、事実上、目標または品質メトリックの少なくとも一部に優先順位を付ける/変更するか、または制約の一部を緩和するようにクライアントに要求する必要条件再考要求をクライアントに送信しても良い。クライアントは、目標及びメトリックのうちのいくつかまたは全てに対して相対的優先度を指示することにより、再考要求に応答しても良い。FP提案が最終的に承認された後、MLSは、モデルを訓練するための入力として承認されたFPTの結果を使用して、クライアントに代わって提案を実行し、次いで、指定された非訓練データについての予測/評価を得ても良い。特徴処理の費用対効果トレードオフに基づくそのような最適化は、例えば分類モデル、回帰モデル、クラスタ化モデル、自然言語処理モデル等を含む様々なモデルの種類に対して、及び異なる実施形態において、様々な問題領域に対して使用されても良い。
少なくとも一部の実施形態において、クライアントは、先に記載された種類のレシピ言語を使用して書かれたレシピが、クライアントのモデルを訓練するための処理済み変数を生成するために使用されることを指示しても良い。そのようなシナリオにおいて、MLSは、レシピ内で指示されたFPTを分析しても良く、レシピ内のFPTの一部(または全て)が、クライアントに提供されるFP提案を生成するとき、置換または削除されるべきかどうかを確認しても良い。つまり、そのような実施形態において、FPマネージャは、より良い代替手段が利用可能でありそうな場合、クライアント指定のFPレシピへの変更を提案または推奨するように構成されても良い。一部の実施形態において、1つまたは複数のプログラム的インターフェースを、クライアントが例えば、クライアントの訓練データ、目標変数、実行時間目標、予測の質メトリック等を指示するFP最適化に対する要求を提出することを可能にするために、クライアントに利用可能にしても良い。そのようなAPIを介した要求の受信に応答して、MLSは、様々な内部APIを利用して、要求された提案を提供しても良く、例えば、それぞれのジョブは、特徴処理、訓練、評価、再訓練、及び/または再評価を行うために、上述のチャンクされた手法を使用して訓練データを読み出すために、より低いレベルのAPIを使用してスケジュールされても良い。少なくとも1つの実施形態において、プログラム的インターフェース(例えば、ウェブベースのダッシュボード)を、クライアントが様々なモデルに関してクライアントの実行時間目標が達成された程度を見ることを可能にするために、クライアントに利用可能にしても良い。
図41は、少なくとも一部の実施形態に従った、測定された予測速度及び予測の質に基づいて、いくつかの代替手段から特徴処理セットを選択する例を例示する。描写されるグラフにおいて、(訓練後に予測が立てられることが見込まれる所与のデータセットサイズに対する)予測速度は、X軸に沿って左から右に増加する。各点4110(例えば、12個の点4110A〜4110Nのうちのいずれか)は、モデルの予測実行を表し対応する組のFPTは、訓練モデルのために使用される。自身に代わってモデルが訓練及び実行されているクライアントは、目標予測速度目標PSG及び目標予測質目標PQGを指示した。結果がFPマネージャによって得られた組のFPTの中で、FPTセット4110Gが、クライアントの基準の両方の基準を満たしているため、最良の代替手段として選択される。
少なくとも一部のシナリオにおいて、全てのクライアントの目標が、同時に達成可能ではない場合がある。例えば、クライアントは、MLSが必ずしも両方の目標を達成することができないような、予測時間がX秒未満であることを望み、また、予測の質が、何らかの測定値Q1を超えることも望む場合がある。一部のそのような事例において、クライアントは、MLSが他のものに優先して1つの目標の最適化を試みることができるように、目標に優先順位を付けるように要求されても良い。多くの実施形態において、少なくとも一部のクライアントは、質目標を指定する必要がなくても良く(またはたとえそのような目標を指定することができたとしても、質目標を指定しなくても良く)、代わりに、最適化のために目標にされるべきである適切な予測の質基準の選択を、MLSに委ねても良い。少なくとも1つの実施形態において、MLSは、さらには、所与のクライアントの代わりに、目標にされるべきである実行時間目標を選択し、及び/または実行時間目標に優先順位を付けても良い。一部の実施形態において、機械学習に関してより精通しているクライアントは、例えば、MLSと対話しているとき、任意のAPIパラメータの値を使用して、クライアントが望むだけいくらでも、FPトレードオフ管理に関する詳細なガイダンスを提供することを許可されても良い。したがって、MLSは、特徴処理の費用と効果との間のトレードオフの管理に関する様々なクライアントの専門知識レベルを処理することができても良い。
図42は、少なくとも一部の実施形態に従った、クライアントと機械学習サービスの特徴処理マネージャとの間の対話の例を例示する。示されるように、システム4200に実装された機械学習サービスのクライアント164は、プログラム的インターフェース4262を介してモデル作成要求4210を提出しても良い。モデル作成要求4210は、例えば、次の要素のある組み合わせを指示しても良い。すなわち、(予測される目標変数の指標を含む)1つまたは複数の訓練セット4220、1つまたは複数の試験または評価セット4222、クライアントにとって関心のある1つまたは複数のモデルの品質メトリック4224、(予測実行時間目標及び/もしくは訓練目標等の)目標4225、ならびに一部の事例では、MLSのレシピ言語仕様に従ってフォーマットされた1つまたは複数の任意の特徴処理レシピ4226。少なくとも1つの実施形態において、クライアントは、クライアントの代わりに行われる必要がある必須特徴処理変換等の1つまたは複数の制約4227、または行われてはならない禁止された変換も任意選択的に指示しても良い。一部の実施形態において、図42に示される全ての要素が、モデル作成要求4210内に含まれても良いとは限らず、例えば、特定のモデルの品質メトリックが指示されない場合、FPマネージャは、解決される機械学習問題の性質に基づいて、最適化のためにある特定のメトリックを選択しても良い。モデル作成要求4210は、MLSのフロントエンド要求/応答ハンドラ4280によって受信されても良く、要求の内部表現は、FPマネージャ4080に引き渡されても良い。モデル作成要求は、本明細書でモデル訓練要求とも称され得る。
FPマネージャ4080は、特徴処理変換の候補セットを生成し、次いでモデルのために識別された品質メトリック、目標、及び/または制約に基づいて提案を識別するために、その候補セットを枝刈りしても良い。描写される実施形態において、例えば1つまたは複数の特徴処理ジョブ4255、1つまたは複数のモデル評価ジョブ4258、及び/または1つまたは複数の訓練ジョブもしくは再訓練ジョブ4261を含むいくつかの異なるジョブが、この処理の間に生成され、スケジュールされても良い。モデル作成要求がレシピ4226を含む場合、FPマネージャは、考慮される一組の変換をレシピ内で指示されたものに必ずしも制限せずに、レシピ4226を特徴処理オプションのFPマネージャの調査の開始点と見なしても良い。一部の実施形態において、FPマネージャは、例えば、作成または訓練されるモデルによって対処される問題領域に基づいて候補変換を識別するために、ベストプラクティスのMLSの知識ベースを参照しても良い。先に言及されたように、FPT(特徴処理変換)の候補セットが識別されたら、変換のあるサブセットが、いくつかの最適化反復の各々の中の組から削除または枝刈りされても良く、モデルの異なる異形は、枝刈り済みFPTセットを使用して訓練及び/または評価されても良い。少なくとも一部の実施形態において、モデル異形4268は、MLS人工物レポジトリ内に記憶されても良い。クライアント要求が訓練時間目標、またはMLSがFP提案を提供する必要がある締め切りを含む場合、そのような目標/締め切りは、FPマネージャ4080によって使用される特定の枝刈り法に影響を与えることがあり、例えば、以下に例示されるもの等の貪欲枝刈り法が、厳密な訓練時間締め切りと一緒に使用されても良い。少なくとも一部の問題に関して、極めて多数のFPTを考慮に入れることが可能であり得るため、MLSは、例えば、訓練時間リソース消費を適度な範囲内に保つために、クライアントがそのような目標を指定しないシナリオでそれ自体の訓練時間目標を設定しても良い。一部の実施形態において、クライアントは、FP提案の生成に対して固定の料金を請求されても良く、この場合、FPマネージャによる異なるFPTオプションの実験/試験は、固定料金に対応するリソース使用限度によって制約されても良い。
描写される実施形態において、FPマネージャ4080は、代替変換セットのその分析を最終的に終了し、1つまたは複数のFP提案4272を(例えば、要求/応答ハンドラ4280によって生成されたAPI応答を介して)クライアント164に提供しても良い。クライアントがレシピ4226を提供したシナリオにおいて、FP提案は、MLSによって行われた分析に基づいて推奨されたクライアントのレシピ(複数可)への1つまたは複数の変更を指示しても良いか、または完全に異なるレシピが指示されても良い。一部の実施形態において、FP提案(複数可)が、MLSのレシピ言語に従ってフォーマットされても良い一方で、他の実施形態においては、提案された特徴処理変換の異なる表現が提供されても良い。クライアント164は、提案のうちの1つまたは複数の承認、または例えば、FP変更要求4278を介した提案(複数可)への変更の要求のいずれかを行なっても良い。少なくとも一部の実施形態において、クライアントが変更に関する提案を提出し、MLSが変更を試してみるために、追加の評価または再訓練動作を行う反復ネゴシエーションが、MLSとクライアントとの間で起こっても良い。一部の実施形態において、ネゴシエーションが終了する前に行われるそのような反復の回数もまた、請求に少なくとも部分的に基づいても良く、例えば、クライアントは、再試験の各反復のために消費された時間またはリソースの量に基づいて料金を請求されても良い。描写される実施形態において、最終的に、クライアントは、例えば、MLS APIを介して特定のFP提案を承認し、モデル実行要求4254を提出しても良い。次いで、本番レベルのモデル実行マネージャ4232が、承認されたFP提案に対応するモデルの本番実行(複数可)4258を実行しても良い。クライアントは、例えば、新しい訓練データに基づいて、追加の変更要求4278を提出し、及び/またはモデルの再訓練もしくは再作成を要求することにより、本番実行において達成された結果に基づいて追加の変更を要求しても良い。
様々な実施形態において、いくつかの異なる技法が、枝刈り候補FP変換(すなわち、候補セットからの変換の削除)のために使用されても良い。図43は、少なくとも一部の実施形態に従った、ランダム選択を使用した候補特徴処理変換の枝刈りの例を例示する。この手法において、最初の候補FPTセット4302の1つまたは複数のFPTが、ランダムな削除のために選択されても良く、そのような削除のモデルの品質メトリック及び目標への影響が、推定されても良い。FP変形4320Aが、候補FPTセット4302からのFPT11の削除から生じても良い一方で、例えば、FP変形4320Bは、FPT6、FPT7、及びFPT13の削除から生じても良い。
候補セットの異なるFPT間の論理関係または依存性によっては、枝刈り被害者(pruning victim)としてのFPTセットの1つの特定のノードの選択は、1つまたは複数の他のノードの削除ももたらし得る。例えば、FPT13及びFPT7がFPT6に依存する(例えば、FPT6の出力を使用する)場合、被害者としてのFPT6の選択はまた、FPT7及びFPT13の枝刈りをもたらし得る。被害者FPTを削除する費用及び効果の推定は、例えば、予測の質メトリックへの影響を判定するために、ダミーまたは被害者によって生成された特徴の統計的に選択された代替値を使用してモデルを再評価することによって、及び/または実行時間性能メトリックへの影響を判定するためにより、小さい一組の特徴を用いてモデルを再訓練することによって判定されても良い。描写される実施形態において、FPマネージャは、各FP変形4320の枝刈り結果を、例えば、人工物としてMLS人工物レポジトリ内に記憶しても良い。例えば、変形4320Bに対応する枝刈り結果4390は、予測の実行時間の費用に対する、削除されたFPT(FPT6、FPT7、及びFPT13)の予測の質貢献度4333の推定値、ならびに削除されたFPTの貢献度4334の推定値を含んでも良い。異なる変形に関するそのような推定値は、FPマネージャによってクライアントに提供される提案を生成するために使用されても良い。ランダム化枝刈り手法は、特に、異なる候補FPTが、これらの費用及び質貢献度において有意に異なることが見込まれない場合、またはFPマネージャが、(例えば、ベストプラクティスに基づいて)異なる候補が有意に異なる費用または質貢献度を有する可能性が高いかどうかを予測できない場合に、有用であり得る。
一部の実施形態において、例えば、複数のランダム化枝刈り反復の結果としてか、または類似のモデルでの経験に基づいてかのいずれかで、FPマネージャのオプティマイザが、モデルの品質に対して有意なプラスの貢献を提供することが見込まれる特定のFPTを識別することは可能であり得る。次いで、FPマネージャは、候補FPTグラフにおけるそのような非常に有益なFPTの位置に基づいて、提案、例えば、有益なFPT及びこれらの隣接物を含む提案をしても良い。図44は、少なくとも一部の実施形態に従った、候補特徴処理変換の推奨されるセットを識別するためのそのような貪欲法の例を例示する。
最初の候補FPTセット4402のグラフにおいて、FPマネージャは、モデルの品質に対して最も高い貢献度(または少なくとも質貢献度が評価されたノード中で最も高い貢献度)を有する特定のノードとして、(FPT14に対応する)識別済みノード4410を有する。その結果、ノード4410が、クライアントに提供される推奨されるFPTの提案の中に含まれるFPTのグラフを構築するための開始ノードとして、選択されている。提案を構築するための一手法において、開始FPTノードが識別された後で、(存在する場合)開始FPTノードの前提条件ノードもまた、提案の中に含まれても良い。描写される実施例において、例えば、FPT14によって指示された変換を行うために、FPT10、FPT3、FPT2、及びFPT1の結果が必要であっても良い。次いで、既に選択されたノードのノードFPT8、FPT9、FPT4、FPT11、FPT5、及びFPT12等の他の隣接したノードの貢献度及び費用が、所望の質及び/または費用目標が達成されるまで、再評価と再訓練との反復を使用して判定されても良い。(削除された他の候補FPTを有する)得られたFPTグラフが、クライアントに送信されるFP提案4432の中に含まれても良い。
異なる実施形態において、特定の実行時間目標の最適化に基づくFP提案生成の処理は、いくつかの段階を伴っても良い。一実施形態において、例えば、モデルはまず、最初に識別された一組の候補FPT全部を使用して生成/訓練されても良い。ある特定の候補処理済み変数(PV)の値の統計が、得られ、モデル予測の質に対するPV及びこれらの対応するFPTの特定の貢献度を判定するため、後に使用されても良い。図45は、少なくとも一部の実施形態に従った、モデルが、第1の組の候補処理済み変数を使用して訓練され、評価される特徴処理最適化技法の第1の段階の例を例示する。描写される実施形態において、示されるように、元の組の処理済み変数(PV)4560(すなわち、FPTの結果)は、未処理の訓練セット4502から得られても良い。未処理の訓練セット4502は、複数の独立変数IV1、IV2、…、及び独立変数または目標変数DVを含んでも良い。PV訓練セット4560は、(特徴処理変換FPT1から得られた)PV1、(FPT2を介して得られた)PV2、及び(FPT3を介して得られた)PV3等の複数のPVを含んでも良い。一般に、訓練セットが、1つまたは複数の未処理変数及び複数の処理済み変数を含んでも良い一方で、提示を単純化するために、わずか3つの処理済み変数が、訓練セット4560の例に示されることが留意される。描写される実施形態において、PV1統計、PV2統計、及びPV3統計等の(数値PVの場合、平均、中央値、最小値、及び最大値、または非数値PVの場合モード値等の)それぞれの組の統計は、PVのうちのいくつかまたは全てに対して、生成されても良い。少なくとも一部の実施形態において、FPTの生成の前に、未処理訓練データのカテゴリー変数は、数値またはBoolean値に変換またはマッピングされても良く、一部の事例では、数値は、正規化(例えば、−1〜1の範囲内の実数にマッピング)されても良い。
モデル4510は、ある訓練費用TCで元のPV訓練セット4560を使用して訓練されても良い。TCは、メモリサイズM1を有する機械上のCPUの秒数等の様々な単位、または対応する請求額で表されても良い。描写される実施形態において、モデルは、未処理の評価セット(またはいくつかのそのようなセット)4504から導出されたPVセット4562を使用して、評価されても良い。したがって、PV1、PV2、及びPV3に対する訓練セット値が、それぞれ変換FPT1、FPT2、FPT3を使用して得られたのと同様に、PV1、PV2、及びPV3に対する評価セット値は、同じ種類の変換を未処理の評価セット(複数可)4504に提供することにより、得られても良い。少なくとも一部の事例では、訓練済みモデルの評価費用(EC)は、(例えば、予測のために使用される様々な係数の識別が、試験/評価実行の間に係数を単純に適用するよりも計算集約的であり得るため)全ての候補FPTの結果を使用したモデルの訓練費用であるTCよりも低くても良い。候補FPTのうちのいずれも枝刈りせずに得られた元の評価結果4536は、(例えば、以下に記載されるように、異なるFPTのそれぞれの質貢献度を判定するため、後に使用されるように)永続的レポジトリに保存されても良い。同様に、全ての候補FPTの使用に対応する元の予測実行時間メトリック4537(例えば、経過時間、使用されるCPUの秒数、使用されるメモリ等)は、(例えば、後で異なるFPTのそれぞれの費用貢献度を決定するときに使用されるように)収集及び保存されても良い。
少なくとも一部の種類の機械学習問題に関して、一般に、モデルの予測の質は、より多くのFPTが訓練のために使用されるとき、より高くなり得る。次いで、以下に記載されるように、異なる枝刈り選択に対応するモデルの予測の質メトリックに対する差またはデルタが、特徴処理技法の後の段階で得られても良い。図46は、少なくとも一部の実施形態に従った、様々な処理済み変数の予測の質への影響を判定するために、変更された評価データセットを使用してモデルが再評価される特徴処理最適化技法の後続の段階の例を例示する。描写される実施例において、PV1、PV2、及びPV3に対して得られた統計が、モデルのそれぞれの実行のための評価データセットを変更するために使用される。示されるように、変更された評価セット4662Aにおいて、元のPV1値が(先に得られたPV1統計からの)PV1の平均値によって置換される一方で、PV2及びPV3の元の値は、保存される。変更された評価セット4662Bにおいて、元のPV2値は、PV2の最小値と最大値との間の範囲で元の候補訓練セットを使用して生成された統計から選択されたランダム値によって置換される。変更された評価セット4662Cにおいて、元のPV3値は、元の候補訓練セットから得られたPV3統計の中央PV3値によって置換される。
次いで、変更された評価セットの各々は、それぞれの組の予測を得るために、元のPV訓練セット4560を使用して訓練済みモデル4510への入力として提供される。変更された評価セット4662Aを使用して、(達成することができた結果がモデル4510の訓練セット内に含まれていないPV1を有したことを示すか、またはその結果に近似する)PV1で枝刈りされた評価結果4636Aが、得られても良い。PV1の枝刈りに対応する予測の質メトリックと、図45に示される枝刈りされていない評価セットに対応する予測の質メトリックとの間の差を計算することにより、(図46でFPT1−quality−deltaと称される)モデルの質に対するPV1の貢献度の測定値を得ることができる。同様に、PV1で枝刈りされた評価結果4636Bが、モデル予測結果の質に対するFPT2またはPV2の貢献度であるFPT2−quality−deltaを推定するために使用されても良く、PV3で枝刈りされた評価結果4636Cが、FPT3−quality−deltaを推定するために、使用されても良い。このように、モデルの予測の質に対するいくつかの異なるFPTの相対的貢献度を推定しても良く、そのような貢献度推定値が、クライアントに対するFP提案を生成するために使用されても良い。変更された評価セットを使用したFPT1−quality−delta、FPT2−quality−delta、及びFPT3−quality−delta等の質貢献度を見積もる(例えば、リソース消費または時間に関する)費用は、モデルTCを再訓練し、次いでモデルを再評価する費用よりも低くても良い評価費用ECと類似していても良い。
変更されたPV評価セットを生成するために使用される特定の統計または値は、異なる種類のPVによって、及び/または異なる種類のモデルもしくは問題領域によって異なっても良い。一部の実施形態において、平均値が、(図46のPV1の事例のように)規定の代替値として使用されても良い一方で、他の事例では、ランダム値が割り当てられても良いか、または中央値またはモード値が、同様の種類の問題のために達成された先の結果に基づいて使用されても良い。
先に論じられたように、図46に示される代替値ベースの技法は、異なるPV及びFPTの質貢献度が得られる最適化の第2の段階の一部でも良い。異なるPVまたはFPTに関連した実行時間費用を得るために、一部のモデルが、再訓練される必要があっても良い。図47は、少なくとも一部の実施形態に従った、予測実行時間費用への処理済み変数の使用の影響を判定するために、変更された一組の処理済み変数を使用してモデルが再訓練される特徴処理最適化技法の別の段階例を例示する。描写される実施例において、枝刈り済みPV訓練セット4760は、例えば、PV2の値を単純に除外することにより、最適化処理のより早い段階で生成されたPV訓練セット4560から得られても良い。同様に、枝刈り済みPV評価セットは、例えば、PV2値を除外することにより、元のPV評価セット4562から得られても良い。元のPV訓練セット及び/または元のPV評価セットが元の段階の後に破棄される実施形態において、枝刈り済みPV訓練セット4760及び/または枝刈り済みPV評価セット4762は、未処理の訓練及び評価セットから得られる必要があっても良い。
モデル4710は、枝刈り済みPV訓練セット4760を使用して訓練され、枝刈り済みPV評価セット4762を使用して評価されても良い。予測実行時間費用に対するFPT2の貢献度の測定値であるFPT2−cost−deltaは、(FPT2またはPV2の枝刈りに対応する)予測実行時間メトリック4736と、(全ての候補FPTを使用して訓練/評価されたモデルを使用して得られた)元の実行時間メトリック4537との間の差として計算されても良い。再訓練モデルの費用TC2が、全てのFPTが含まれた訓練モデルの(図45に示される)費用TCと類似していても良い一方で、モデルを再評価する費用EC2は、より低くても良い。訓練費用が評価費用よりもかなり高い一部の実施形態において、FPマネージャは、再訓練よりも多くの再評価を試みても良く、例えば、多くのFPTが、これらの質貢献度に関して分析されても良く、次いでより小さいサブセットが、これらの費用貢献度に関して分析されても良い。
図48は、少なくとも一部の実施形態に従った、質に対する実行時間費用トレードオフに基づいて特徴処理変換を推奨する、機械学習サービスで行われ得る動作の態様を例示する流れ図である。要素4801に示されるように、(特徴処理マネージャ等の)MLSの構成要素は、指定された訓練データセット、クライアントにとって関心のある1つまたは複数の予測の質メトリック、及び1つまたは複数の予測実行時間目標を用いて訓練済みモデルを使用して予測される、1つまたは複数の目標変数を判定しても良い。一実施形態において、クライアントは、1つまたは複数の必須特徴処理変換または1つまたは複数の禁止されている特徴処理変換等の制約を指示しても良い。少なくとも一部の実施形態において、これらのパラメータのうちのいくつかまたは全ては、例えば、API(アプリケーションプログラミングインターフェース)、ウェブベースのコンソール、スタンドアロンGUI(グラフィカルユーザインターフェース)、またはコマンドラインツール等のプログラム的インターフェースを介してMLSに提出されたクライアントの要求内で指示されても良い。一部の事例では、クライアントは、例えば、予測実行に対する実行時間目標に加えて、1つまたは複数の訓練時間目標を指示しても良い。AUC(曲線下面積)メトリック、正確さメトリック、再現度メトリック、感度メトリック、真陽性率、特異性メトリック、真陰性率、精度メトリック、偽陽性率、偽陰性率、F1スコア、適用範囲メトリック、絶対パーセントエラーメトリック、または二乗エラーメトリック等の様々な予測の質メトリックの任意の組み合わせが、異なる種類の機械学習問題に対してMLS構成要素によって識別されても良い。同様に、モデル実行時間目標、メモリ使用率目標、プロセッサ使用率目標、記憶装置使用率目標、ネットワーク使用率目標、または予算等の様々な実行時間目標の任意の組み合わせが、判定されても良い。一部の実施形態において、(訓練後予測に対する)訓練の対応する種類の目標が、判定されても良い。一部の実施形態において、目標は、(例えば、モデル実行時間は、X秒未満でなければならない等の)絶対項で、または分布または(例えば、モデル実行時間のうちの90%は、x秒未満でなければならない等の)パーセンタイル値の点から指定されても良い。異なる実施形態において、クライアントは、例えば分類モデル(例えば、二項分類モデルまたはn方分類モデル)、回帰モデル、自然言語処理(NLP)モデル、クラスタ化モデル等を含む多岐にわたるモデルの作成、訓練、または再訓練を要求しても良い。
MLSは、次いで、特徴が目標変数(複数可)の値を予測するために使用されても良いように、生訓練データから処理済み変数または特徴を得るために使用することができる、一組の候補特徴処理変換(FPT)を識別しても良い(要素4804)。少なくとも一部の事例では、未処理の独立変数のうちの1つまたは複数もまた、訓練のために使用される変数の候補セット内に含まれても良く、つまり、訓練セット内の全ての変数が、FPTの結果である必要はない。問題またはモデルの性質に応じて、分位ビニング、カルテシアン積生成、bi−gram生成、n−gram生成、直交スパースbigram生成、カレンダ関連の変換、画像処理関数、音声処理関数、生物情報学処理関数、または自然言語処理関数等の多岐にわたるFPT候補のうちのいずれかが、選択されても良い。一部の実施形態において、MLSが、一般に候補の広範なリストを見つけ出すよう試みても良い一方で、異なるFPT候補の数は、訓練時間または訓練リソースの明確または暗黙的目標等の1つまたは複数の制約に基づいて制限されても良い。一実施形態において、FPT候補の少なくとも一部は、互いに依存しても良く、例えば、あるFPTの出力が、別のFPTの入力として使用されても良く、一部の事例では、FPT候補の1つまたは複数の有向グラフが、そのような関係を表すために生成されても良い。
少なくとも識別されたFPT候補のサブセットに関して、モデルの予測の質に対するFPTの貢献度のそれぞれの推定値、及び/または実行時間目標に影響を与えるメトリックへのFPTの効果のそれぞれの推定値が、判定されても良い(要素4807)。例えば、一実施形態において、モデルは、まず、最高条件の予測の質測定値及び対応する実行時間メトリックを得るために、完全な組の候補FPTを使用して、訓練及び評価されても良い。次いで、質貢献度を得るために、モデルは、変更された評価データセット、例えば、所与の処理済み変数の値が、図46に例示されるものと同様の方式で、変更されていない訓練セット内のその処理済み変数の平均値(または一部の他の統計的に導出された代替値)によって置換された評価データセットを使用して、再評価されても良い。一部の実施形態において、実行時間目標への影響を得るために、モデルは、枝刈り済み訓練データ(すなわち、候補セットの1つまたは複数の処理済み変数が削除される訓練データ)を用いて、再訓練される必要があっても良い。少なくとも1つの実施形態において、それぞれのジョブは、再評価及び/または再訓練のために生成されても良い。
質貢献度及び費用の影響の推定値を使用して、MLSは、例えば、任意の明確または暗黙的な訓練時間制約もしくは目標に違反せずに、クライアントにプログラム的に提示される1つまたは複数の特徴処理提案を生成しても良い(要素4810)。クライアントが(要素4813で検出される)特定の提案FP1の承認を指示した場合、その提案は、クライアントに代わって後続の実行(例えば、モデルの訓練後本番実行)のために、実行されても良い(要素4816)。クライアントが(同様に要素4813で検出される)MLSによって出された任意の提案を承認しない場合、FPTの異なる組み合わせが、さらなる訓練/試験のために選択されても良く(要素4819)、以降の要素4807に対応する動作は、提案が承認されるか、または最適化反復をやめるための判定がMLSまたはクライアントによって下されるかのいずれかまで、新しい組み合わせに対して反復されても良い。一部の実施形態において、クライアントは、FPTの完全な(最適化されていない)候補セットを利用するオプションを与えられても良く、つまり、MLSは、枝刈り前に識別された全ての候補FPTを使用して訓練されたモデル異形を保存しても良い。
様々な実施形態において、MLSは、クライアントによって指示された目標間で優先順位を付ける必要があっても良く、例えば、速い予測実行時間が、低メモリ使用率目標と矛盾しても良い。一部のそのような事例において、MLSは、そのような優先順位付けをクライアントに示し、目標の選択された順序付けのクライアントの承認を得ても良い。少なくとも一部の実施形態において、クライアントは、使用されるFPTのレシピを指示または提案しても良く、MLSは、候補FPTセット内への考えられる包含に関して、レシピ内で指示されたFPTのうちの少なくともいくつかを分析しても良い。一実装例において、たとえクライアントがモデル作成要求内でレシピを指示しなかったとしても、MLSは、先に論じられたMLSレシピ言語にフォーマットされたレシピの形態のFP提案を提供しても良い。少なくとも一部の実施形態において、この提案(または提案に対応するレシピ)は、人工物としてMLS人工物レポジトリ内に記憶されても良い。
FP提案がクライアントによって承認された後、FP提案は、潜在的に、多くの異なる本番モードのデータセットに対するモデルの後続の実行のために使用されても良い(すなわち、FP提案を使用して生成された処理済み変数は、モデルを訓練し、かつモデルを使用して予測を立てるために使用される入力変数として使用されても良い)。所与のクライアントは、いくつかの異なるモデル作成要求をサービスに提出し、各モデルへのそれぞれのFP提案を承認し、次いで、しばらくの間、承認済みモデルを利用しても良い。一部の実装例において、クライアントは、モデルが承認された後に、様々なモデルに対するクライアントの予測実行時間目標に関する成功率を見ることを望むことがある。図49は、クライアントが少なくとも一部の実施形態に従った、様々な機械学習モデル実行の状態を見ることを可能にし得るプログラム的ダッシュボードインターフェースの例である。描写される実施例において、ダッシュボードが、メッセージ領域4904及びクライアントの承認済みモデルのあるサブセットまたは全てに関するそれぞれのエントリを含むウェブページ4901内に、組み込まれても良い。描写される実施例において、メッセージ領域4904内に示されるように、過去24時間の間にクライアントに代わって実行されていたモデルについての情報が、提供される。一部の実施形態において、クライアントは、例えば、リンク4908をクリックすることにより、ダッシュボードによって対象とされる期間を変更しても良い。
図49に示されるダッシュボード例が表示されるクライアントは、24時間の対象期間内に実行された、脳腫瘍検出モデルBTM1、海馬萎縮検出モデルHADM1、及び運動皮質損傷検出モデルMCDD1の3つのモデルを有する。ダッシュボードの領域4912内に示されるように、BTM1に関してクライアントによって選択された品質メトリックは、ROC AUCであり、実行時間性能目標は、予測がX秒未満後に完了することであり、過去24時間の予測実行のうちの95%が、目標を達成した。HADM1に関しては、領域4914内に示されるように、品質メトリックは、偽陽性率であり、実行時間性能目標は、Y以下のメモリフットプリントであり、達成された成功率は、97%である。領域4916内に示されるように、MCDD1に関して、予測の質メトリックもまた偽陽性率であり、実行時間性能目標は、Z未満の予測実行当たりの費用目標であり、達成された成功率は、92%である。異なる実施形態において、図49に提供される種類の情報のいくつかの変動は、クライアントにプログラム的に示されても良く、実際面で使用されるインターフェースの詳細は、ここで示されるものとは実質的に異なっても良い。
訓練線形モデルの最適化
訓練線形モデルの最適化の以下の考察の文脈において、「特徴識別子」という用語は、モデルを訓練するために使用されるデータセットの観測記録から導出された特性の固有の識別子を指し得ることが留意される。「特徴セット」という用語は、(a)特徴値が訓練モデルを訓練している間に観測可能であり、(b)特徴パラメータが既知であるか、または訓練データから推測される一組の特徴識別子を指し得る。「特徴」という用語は、特徴識別子によってインデックス化された観測記録の特性の値(例えば、単一の数値、カテゴリー値、もしくは二進値のいずれか、またはそのような値の配列)を指し得る。「特徴ベクトル」という用語は、例えば、(ハッシュマップ等の)キー/値構造または圧縮されたベクトルで記憶されても良い一組の対またはタプルの(特徴識別子、特徴値)、を指し得る。「特徴パラメータ」または「パラメータ」という用語は、特徴識別子によってインデックス化された特性に対応するパラメータの値を指し得る。一部の実施形態において、重みを表す実数が、使用されても良いパラメータの一例であるが、いくつかの種類の機械学習技術に関して、より複雑なパラメータ(例えば、複数の数値または確率分布を含むパラメータ)が、使用されても良い。「パラメータベクトル」という用語は、一組の対またはタプル(特徴識別子、パラメータ)を指し得、これもまた、ハッシュマップまたは圧縮されたベクトル等のキー/値構造で記憶されても良い。少なくとも一部の実施形態において、特徴ベクトルは、主にパラメータベクトルを更新するために使用され、次いで破棄される(学習反復の間に調べられる所与の観測記録のために作成される)一時的構造と見なされても良い。これとは対照的に、一部の実施形態において、パラメータベクトルは、モデルの訓練段階の持続時間、保存されても良いが、以下に記載されるように、パラメータベクトルは、訓練段階の間に拡大及び縮小しても良い。一部の実施形態において、キー/値構造は、パラメータベクトル及び/または特徴ベクトルのために使用されても良いが、様々な実施形態において、パラメータベクトル及び/または特徴ベクトルの他の種類の表現が、採用されても良い。
一般化線形モデルの様々な例等の線形予測モデルは、多くの種類の機械学習問題に取り組むための、数ある中でも最も人気がある(かつ、多くの場合、最も効果的な)手法である。図50は、少なくとも一部の実施形態に従った、線形予測モデルを生成し、線形予測モデルを使用するための手順例を例示する。示されるように、線形モデルを訓練するために使用される未処理データセットまたは生訓練データセット5002は、OR5004A、5004B、及び5004B等の複数の観測記録(OR)5004を含んでも良い。次いで、各OR5004は、IV1、IV2、IV3、…、IVn等の複数の入力変数(IV)の値、及び少なくとも1つの従属変数DVの値を含んでも良い。従属変数はまた、「出力」変数とも称され得る。少なくとも一部の実施形態において、全ての観測記録が、モデル訓練を開始する必要がある前に利用可能であり得るとは限らず、例えば、以下にさらに詳細に記載されるように、一部の事例では観測記録は、1つまたは複数のオンラインデータソースから利用可能になるに従い、機械学習サービスにストリーミング配信されても良い。そのようなシナリオにおいて、MLSは、反復的モデルの訓練に関与しても良く、例えば、各反復は、その点まで分析されたORに基づいてモデルの予測の質を向上させるための試みを表す。それぞれの組の観測記録の分析に基づくそのような訓練反復はまた、本明細書で「学習反復」とも称され得る。
少なくとも一部の実施形態において、MLSのモデルジェネレータ構成要素は、ある特定のデータ種類の制約を満たす(次いで、線形モデルを訓練するために使用することができる)特徴を生成するために入力変数が使用されることを必要としても良い。例えば、描写される実施形態において、モデルジェネレータは、訓練データのカテゴリーIVの生の値が数値に変換され、及び/または(例えば、数値を−1〜1の実数にマッピングすることにより)正規化されることを必要としても良い。そのような種類変換は、最初のデータ準備段階5010の間に行われ、一組の変更または準備された観測記録5015を生成しても良い。
次いで、描写される実施形態において、線形モデルは、例えば、複数の学習反復5020を使用して反復的に訓練されても良い。少なくとも一部の実装例において、最初に空のパラメータベクトル5025が、作成されても良い。パラメータベクトル5025を使用して、特徴または処理済み変数値のコレクションに割り当てられたパラメータ(例えば、それぞれの重みを表す実数)を記憶しても良く、ここで、特徴は、先に記載された種類の1つまたは複数の特徴処理変換(FPT)を使用して観測記録コンテンツから導出される。一部の実装例において、弾力性観測記録の従属変数値の予測を立てるとき、線形モデルは、重みがパラメータベクトル内に含まれる特徴の重み付けされた合計を計算しても良い。少なくとも一部の実施形態において、ハッシュマップ等のキー/値構造は、(モデルジェネレータによって割り当てられた)特徴識別子は、キーとして、パラメータは、各キーに対して記憶されたそれぞれの値として、パラメータベクトル5025のために使用されても良い。例えば、図50に示されるパラメータW1、W2、及びWmは、特徴識別子F1、F2、及びFmを有する特徴にそれぞれ割り当てられる。
各学習反復5020の間、1つまたは複数の準備されたOR5015は、(モデルトレーナーとも称され得る)モデルジェネレータによって調べられても良い。準備されたOR内の入力変数の調査、及び/またはモデルの現在の状態におけるモデルによる、準備されたORの従属変数についての予測の正確さに基づいて、それぞれのパラメータまたは重みが、新しい組の1つまたは複数の処理済み変数に関して識別されても良い。少なくとも一部の実装例において、事前に記憶されたパラメータまたは重みは、必要である場合、1つまたは複数の学習反復において、例えば、確率的勾配降下法または何らかの類似した最適化手法を使用して更新されても良い。観測記録がどんどん調べられるに従い、対の(特徴識別子、パラメータ)キー/値が、パラメータベクトル内にどんどん追加されても良い。図51を参照して以下に記載されるように、パラメータベクトルのこの拡大は、確認されないままにされた場合、最終的に、モデルジェネレータのために使用されているMLSサーバの利用可能なメモリが枯渇し、メモリ不足エラーがモデルの訓練段階を時期尚早に終了し得るシナリオにつながる場合がある。
一部の実施形態において、そのような望ましくないシナリオを避けるために、選択されたパラメータを枝刈りする(すなわち、選択された特徴に対するエントリをパラメータベクトルから削除する)ための技法が、採用されても良い。そのような技法に従って、ある特定の作動条件が満たされたとき(例えば、パラメータがパラメータベクトル内に記憶されている特徴の数が、閾値を超えたとき)、モデルの予測に最も貢献していない特徴の断片が、枝刈り被害者(すなわち、エントリがパラメータベクトルから削除または「枝刈りされる」特徴)として識別されても良い。一部の実施形態において、パラメータの分位境界値(例えば、モデルの予測に最も貢献しない特徴のうちの20%)を推定するための効率的なインメモリ技法が、パラメータのコピーまたは明確なソート動作を必要とせずに、使用されても良い。より一般的には、少なくとも一部の実施形態において、モデルの予測性能に対する所与の特徴の重要性または貢献度(例えば、モデルの予測の正確さまたは質)が、「事前(a−priori)パラメータ値」からの対応するパラメータ値の偏差によって判定されても良い。分位境界値を推定するための以下に記載される効率的インメモリ技法は、スカラ重み値がパラメータ値として使用され、事前パラメータ値がゼロであり、相対的貢献度が重みの絶対値(重みのゼロからのそれぞれの「距離」)に対応するシナリオに関連する、枝刈り被害者を選択するためにそのような偏差を使用する1つの特定の例を表し得る。パラメータが値のベクトルであり、事前値がゼロのベクトルであるモデルに対して、ゼロのベクトルからの特定のベクトルパラメータの距離の計算を伴う同様の手法が、使用されても良い。一部の種類のモデルに関して、パラメータは、スカラよりもむしろ確率分布を含んでも良い。パラメータが確率分布を含む一実施形態において、パラメータベクトルで表される異なる特徴の相対的貢献度は、事前値からのカルバック・ライブラー(KL)情報量を推定することによって得られても良く、そのような情報量推定値は、パラメータが枝刈りされるべきである特徴を識別するために、使用されても良い。
識別された枝刈り被害者に対するエントリ(例えば、パラメータ値)は、パラメータベクトル5025から削除されても良く、したがって消費されるメモリを低減する。しかしながら、追加の学習反復は、いくつかのパラメータの枝刈り後でさえ、行われても良い。したがって、パラメータベクトルサイズは、より多くの観測記録が考慮に入れられ、より多くのパラメータが追加され、より多くのパラメータが枝刈りされるに従い、反復的に拡大及び縮小しても良い。「パラメータの枝刈り」または「特徴の枝刈り」という用語は、本明細書で、パラメータベクトルから一対の(特徴識別子、パラメータ)を含む特定のエントリを削除することを指すのに、同義に用いられ得ることが留意される。少なくとも一部の実装例において、1つの学習反復において枝刈りされた特定の特徴に対するパラメータはさらに、例えば、(追加の観測記録に基づく)モデルジェネレータによる、特徴が枝刈りされたときよりもその特徴が予測のためにより有用であるという判定に応答して、後にパラメータベクトルに再追加されても良い。一部の事例では、再追加されたパラメータの値は、先に削除された値とは異なっても良い。
パラメータベクトルが何度も拡大及び縮小し得る複数の学習反復の後に、線形モデルは、最新のパラメータベクトルを使用して実行されても良い。一部の実施形態において、パラメータベクトル5025は、本番データセットまたは試験データセット5050についての予測5072のためのモデル実行5040の前に、「凍結」されても良い(例えば、特定の時点でのパラメータベクトルの変更不能な表現が、MLS人工物レポジトリに記憶されても良い)。他の実施形態において、モデルが本番実行または試験実行を作成するために使用された後ですら、追加の学習反復5020が、新しい観測記録を使用して行われても良い。パラメータベクトルが本番の使用または試験のために凍結されるシナリオにおいて、追加の学習反復が、パラメータベクトルの凍結されていないか、または変更可能なバージョンに対して継続されても良い。様々な実施形態において、図50で点線によって示される境界のいずれかの側上の動作は、互いに組み入れられても良く、例えば、パラメータベクトルが新しい観測データに基づいて変更される1つまたは複数の学習反復の後に、モデルの本番実行が続いても良く、本番実行の後に、さらなる学習反復が続いても良く、以下同様である。
図51は、少なくとも一部の実施形態に従った、モデルを訓練するために使用される機械学習サーバのメモリ容量が、パラメータベクトルサイズへの制約になり得るシナリオ例を例示する。様々な実施形態において、先に論じられたように、多岐にわたる特徴処理変換(FPT)が、機械学習サービスで入力変数に対してサポートされても良く、少なくとも一部のFPTは、シーケンスで連鎖され、すなわち、他のFPTを使用して生成された特徴に適用されても良い。サポートされている特徴処理変換関数には、例えば、数値変数の場合、分位ビン関数5154、様々な種類の変数の場合、カルテシアン積関数5150、テキストの場合、n−gram関数5152、カレンダ関数、画像処理関数等の領域固有変換関数5156、音声処理関数、動画処理関数、生物情報学処理関数、n−gram以外の自然言語処理関数等が含まれても良い。入力変数5101のデータ型に応じて、1つまたは複数のFPTが入力変数5101に適用されても良く、追加のFPTがその結果に適用されても良い。描写される実施形態において、例えば、n−gramのカルテシアン積、分位ビン、及び/または領域固有変換を含む新しい特徴が、作成されても良い。可能性のある特徴処理変換及び組み合わせの5133番は、非常に大きくなる場合があり、これは、サイズが制限されないパラメータベクトル5144をもたらし得る。一部の実装例において、識別された様々な特徴は、実数のベクトルにマッピングされても良く、ここでベクトルの寸法は、少なくとも原理上は恣意的に大きくなり得る。
少なくとも一部の実装例において、特定のモデルの学習反復の有意部分または全ては、サーバ5160等の単一のMLSサーバ上で(例えば、そのようなサーバの実行の1つまたは複数のスレッドを使用して)行われることが意図されても良い。一部のそのような実装例において、モデルのためのパラメータベクトルは、MLSサーバ5160のメインメモリ5170内に収まる必要があっても良い。インメモリパラメータベクトル表現5180が大きく拡大しすぎた場合、学習のために使用された処理またはスレッドは、メモリ不足エラーで時期尚早に出て行く場合があり、学習反復の少なくとも一部が、再実行される必要がある場合がある。メモリ必要条件グラフ5175に示されるように、MLSサーバメモリ必要条件は、調べられた入力変数及び/または観測記録の数と共に、非線形の様式で拡大しても良い。必要条件グラフ5175は、任意の所与の機械学習問題に関する観測の数と、可能性のあるパラメータベクトルサイズとの間の正確な関係を例示することを意図せず、代わりに、そのような関係の中で観測され得る一般的な傾向を伝えることを意図することが留意される。
一部の従来の機械学習システムにおいて、モデルの訓練は、パラメータがパラメータベクトル内に記憶されている特徴の数が選択された最大数に達したとき、単純に終了されても良い。そのような手法において、これは、さもなければ予測の質への有意な一因と後に識別され得る特徴が、パラメータベクトル内の表現の対象に決してなり得ないことを意味する。別の一般的な技法において、異なる特徴は、ハッシュ関数を使用して選言的に組み合わせられても良く(例えば、スペースを節約するために、さもなければ特定の特徴を表すハッシュ値のKビットのNビットだけが、使用されても良く、Nビットは、モジュロ関数を使用して選択される)、これは、予測の質の低減ももたらし得る。一部の機械学習システムにおいて、異なる特徴に割り当てられた重みまたはパラメータが、様々な学習反復において何らかの要因によって低減され得、結果として、いくつかの特徴が(これらの重みがゼロに近付くために)パラメータベクトルから徐々に削除され得る1つまたは複数の規則化法が、使用されても良い。しかしながら、それ自体によってパラメータベクトルサイズを制約するために使用されるとき、規則化は、モデル予測の比較的低い質をもたらし得る。規則化はまた、単純ではない場合がある(使用するための減少要因等の)1つまたは複数のハイパーパラメータの選択も必要としても良い。以下に記載されるパラメータ枝刈り法が実行される実施形態においてさえ、規則化は、(過剰適合を防ぐため、またはパラメータベクトルサイズ縮小に少なくとも貢献するため等の)様々な理由のために依然として使用されても良いことが留意される。
一部の実施形態において、線形モデルのために使用されるパラメータベクトルのサイズに制限を課す技法は、立てられた予測の質を犠牲にせずに、かつ訓練段階の間でどれくらい早く特徴が識別されたかに基づいて、一組の特徴を制限せずに、利用されても良い。この技法に従って、作動条件が満たされたとき、これまでに識別された特徴のサブセットに対応するパラメータが、(削除されたパラメータ値を既定値または事前値に効果的に置換する)パラメータベクトルから枝刈りされても良い。先に示されるように、そのような特徴は、本明細書で「枝刈り被害者(victim)特徴」またより単純に「枝刈り被害者」と称され得る。一部の実装例において、以下に記載されるように、モデルの予測に最も貢献しない特徴の選択された断片または分位を識別するための効率的推定法は、枝刈り被害者を識別するために、使用されても良い。少なくとも一部の実装例において、そのような技法は、パラメータを明確にソートするか、またはパラメータをコピーすることを必要としなくても良い。枝刈り被害者特徴に対応するパラメータが枝刈りされた後、追加の特徴のためのパラメータが、後続の学習反復の中で追加されても良い。一部の事例では、先に枝刈り被害者として選択された所与の特徴のためのパラメータは、その特徴が枝刈りされたときに予想されたものよりも、予測に有用であり得ると後の観測が示した場合、パラメータベクトル内に再導入されても良い。
図52は、少なくとも一部の実施形態に従った、それぞれのパラメータ値が訓練の間パラメータベクトルに記憶される特徴のサブセットが、枝刈り被害者(victim)として選択され得るような技法を例示する。4つの学習反復5210A、5210B、5210K、及び5210Lが示される。各学習反復において、1つまたは複数の観測記録を含むそれぞれの観測記録セット(ORS)5202(例えば、学習反復5210AにおけるORS5202A、学習反復5210BにおけるORS5202B、以下同様)は、任意の新しいパラメータがパラメータベクトルに追加されるべきかどうかを判定するために、モデルジェネレータによって調べられても良い。さらに、少なくとも一部の実施形態において、先に生成されたパラメータ値は、例えば、確率勾配技法を使用して更新または調節されても良い。学習反復5210の後、パラメータベクトルは、特徴識別子5212Aに対応するパラメータ5222Aを含む。次の学習反復5210Bの後、パラメータベクトルは、拡大し、今では、特徴識別子5212Bのためのパラメータ5222Bを含む(学習反復5210Aのパラメータセットのうちのいくつかまたは全ては、調節または変更されていても良い)。
追加の学習反復が行われるに従い、より多くのパラメータがパラメータベクトルに追加されても良い。最終的に、ある学習反復5210Kの間またはそれの後に、モデルジェネレータは、閾値パラメータベクトルサイズPVSを超え、枝刈り分析を行なっても良いことを判定しても良い。少なくとも一部の実施形態において、枝刈りのための作動条件が満たされたかどうかを検出するための動作は、全ての学習反復において、またはそれの後に行われなくても良く、そのため、そのような頻繁な枝刈りは不必要であり得ることが留意される。代わりに、そのような確認は、例えば、そのような確認が最後に完了して以来行われた学習反復の数に基づいてか、またはそのような確認が最後に行われてから経過した時間に基づいてか、または確認が最後に行われて以来調べられた観測記録の数に基づいて、定期的に行われても良い。少なくとも一部の実施形態において、PVSは、MLSサーバのメモリ容量に少なくとも部分的に基づいても良い(例えば、MLSサーバのメモリ容量のある断面に設定されても良い)か、または作動条件は、CPU使用率限度等の他の何らかのサーバリソース容量制約に基づいても良い。一実施形態において、自身に代わってモデルが訓練されるクライアントは、(例えば、Xギガバイト以下のメモリを有するサーバが訓練のために使用される)訓練及び/または訓練後実行の1つまたは複数の目標を指示しても良く、そのような目標は、PVSの値に影響を与えても良い。様々な実施形態において、PVSは、パラメータベクトルの中に含まれるパラメータの数に関して、または単純にパラメータベクトルによって消費されるメモリの量に関して表されても良い。
枝刈り分析において、モデルジェネレータは、パラメータが削除される特徴のある選択された数(またはある選択された断片)を識別しても良い。一実施形態において、例えば、最も有意ではない特徴のうちの10%は、例えば、パラメータベクトルの中に表された特徴に割り当てられた重みの絶対値に基づいて、識別されても良い。一部の実施形態において、先に言及されたように、(特徴値の重み付けされた合計を少なくとも部分的に使用して計算された)予測に対する特徴の相対的貢献度が、特徴の重みの絶対値に比例すると想定されても良い。したがって、最も重要ではない特徴のうちの10%を識別するタスクは、最小絶対値を有する重みのうちの10%を識別することと等しくあり得る。特徴のそのような断片の正確な識別は、パラメータベクトル全体の重みの絶対値のソートを必要とする場合があり、これは、大きなパラメータベクトルのためのそれ自体のリソース消費問題を引き起こすことがあり、例えば、メモリの実質的容量、CPUサイクル、及び/または永続的記憶装置が、そのようなソート動作のために必要であり得る。したがって、一部の実装例において、最適化は、重みをソートせずに、または重みをコピーせずに、選択された断片のおおよその境界重み(すなわち、特徴のうちのおおよそ10%がより小さい絶対重みを有し、特徴のうちの残りのおおよそ90%が、より大きい絶対重みを有するような重みWk)を見つけるために使用されても良い。そのような最適化技法の例は、図55の考察と併せて、以下に記載される。選択された分位(例えば、上記例において10%)の境界が推定された後、絶対値が境界未満である重みは、容易に識別され得、そのような重みのためのエントリは、パラメータベクトルから削除されても良い。重みは、本明細書で、記憶されても良いパラメータの種類の単純な例として論じられるが、同様の技法が、より複雑なパラメータ(例えば、たった1つの実数より多い実数を含むパラメータ構造)が使用されるときに、枝刈り候補を判定するために使用されても良いことが留意される。つまり、記載される枝刈り法は、(実数値での重み等の)単一の数量がパラメータとして使用される実施形態に制限されない。より複雑なパラメータは、例えば、対応する特徴の相対的貢献度をモデルによって立てられた予測に接近させる数値へと変換されても良い。先に言及されたように、様々な実施形態において、事前値からの特定のパラメータ値の偏差の異なる測定値は、モデルに対して使用されるパラメータの種類に応じて、パラメータの相対的貢献度を推定するために使用されても良い。
特徴のあるサブセットが枝刈り候補として識別され、特徴のパラメータが削除された後、図52で5255とラベル付けされた矢印によって示されるように、(特徴識別子5212K*に対する調節されたパラメータ5222K*を含む)枝刈りされたパラメータベクトルは、もはやPVS制約に違反しなくても良い。少なくとも一部の実施形態において、追加のパラメータが図52に示される学習反復5210L等の1つまたは複数の後続の学習反復に再び追加されても良いパラメータベクトルの十分に大きい断片が、枝刈りされても良い。したがって、パラメータベクトルサイズは、枝刈りを介して縮小された後に、再び拡大しても良い。追加の枝刈りは、パラメータベクトルサイズが再び最終的にPVSを超え、さらなるパラメータが追加の枝刈りが完了した後に追加される場合、必要である場合がある。例えば、先に枝刈り被害者として選択された特徴に対応するパラメータを含む任意の特徴に対応するパラメータは、所与の学習反復において、パラメータベクトルに追加されても良い。任意の学習反復の間にパラメータベクトル内の表現と見なされ得る一組の特徴を制限しないことによって、及び今のところモデルの予測に最も貢献していないと識別された各枝刈り段階のパラメータのみを削除することにより、図52に例示される技法が、訓練の間にメモリ使用を制限すると同時に非常に正確な予測を提供するパラメータベクトルに収束しても良い。さらに、パラメータベクトルサイズの縮小はまた、予測実行の間にモデルを読み込み、実行するのに掛かる時間も低減することができ、したがって、技法の利益が訓練段階の間及び訓練後段階予測実行においての両方で得られ得る。
パラメータベクトルメンバーシップが経時的に減少及び増加し得る上述の反復学習の手法は、観測記録が様々なデータソースからMLSにストリーミング配信されても良い実施形態において、特に有用であり得る。そのようなシナリオにおいて、訓練データセット全体が学習反復のうちのいずれかの前に収集される環境と比較して、パラメータが先に枝刈りされた特徴を再考し、かつ一般に、さらなる観測記録が到着するに従ってパラメータベクトルを変更し続けることができることは、さらにより有益であり得る。観測記録の特性(例えば、様々な入力変数の値の分布)は、経時的に変化しても良く、例えば、最良の予測を立てることができるパラメータベクトルもまた経時的に変化する可能性が高くなる。
図53は、少なくとも一部の実施形態に従った、線形モデルの訓練段階の反復を学習するために使用される観測記録が、機械学習サービスにストリーミング配信され得るシステムを例示する。示されるように、データレシーバエンドポイント5308(例えば、ネットワークアドレスまたは統一資源識別子)は、SDS5302A、SDS5302B、及びSDS5302C等の1つまたは複数のストリーミングデータソース(SDS)5302から観測記録を受信するために、MLSに設定されても良い。そのようなデータソースには、例えば、地理的に分散した用途のウェブサーバログ、センサベースのデータコレクタ等が含まれても良い。そのようなデータソースからの観測記録(OR)は、任意の順序で到着しても良く、例えば、最初にSDS5302AからOR1が、続いて、SDS5302CからOR2、SDS5302BからOR3及びOR4、以下同様で受信されても良い。
描写される実施形態において、モデルジェネレータで、記録は、記録が到着する順序で学習反復のために使用されても良い。例えば、OR1、OR2、及びOR3は、第1の組の学習反復5333Aの間に調べられ、特定のパラメータベクトルの生成をもたらしても良い。学習反復セット5333Aの後に、訓練されているモデルの予測へのパラメータ相対的貢献度に基づいていくつかの選択されたパラメータがパラメータベクトルから削除される、枝刈り反復5334が続いても良い。枝刈り反復5334の後に、OR4、OR5、及びOR6が調べられ、1つまたは複数の新しい特徴(及び/またはパラメータが事前に枝刈りされた特徴)に対するパラメータがパラメータベクトルに追加される別の学習反復セット5333Bが、続いても良い。経時的に、パラメータベクトルは、全てのストリーミングデータソース5302からのデータに対して正確な予測を提供するように、進化しても良い。一部の実施形態において、枝刈り反復5334は、観測記録が受信または調べられる速度に関わらず、一定間隔で、例えば、X秒毎に1回、スケジュールされても良い。そのようなスケジュールベースの枝刈りは、例えば、パラメータベクトルサイズが、既にその最大閾値に近いときに到着する観測記録の突然のバーストから生じるメモリ不足エラーを防ぐために、MLSが観測記録到着速度における広い変動に対応するのに役立ち得る。
図54は、少なくとも一部の実施形態に従った、作動条件の検出に応答して、訓練中のメモリ消費を低減するために1つまたは複数の特徴に対応するパラメータがパラメータベクトルから枝刈りされ得る、機械学習サービスで行われ得る動作の態様を例示する流れ図である。要素5401に示されるように、訓練データセットの未処理観測記録または生観測記録が線形予測モデルを開発するために使用されるデータソースの指標は、機械学習サービスで受信されても良い。少なくとも一部の実施形態において、データソースは、API、ウェブベースのコンソール、スタンドアロンGUI、またはコマンドラインツール等のMLSのプログラム的インターフェースを介して、クライアントによって指示されても良い。線形予測モデルは、例えば、先に記載された種類の1つまたは複数の特徴処理変換(FPT)を介して、訓練データから導出された特徴値の重み付けされた合計に少なくとも部分的に基づいて、予測を立てることが見込まれても良い。一部の実装例において、モデルを生成/訓練するためのジョブオブジェクトは、クライアントによるAPIの呼び出しに応答して作成され、図1の待ち行列142等のジョブ待ち行列の中に入れられても良い。ジョブは、MLSサーバプール(複数可)185の選択された訓練サーバ(または一組の訓練サーバ)に、例えば、非同期的にスケジュールされても良い。
訓練モデルの処理は、(例えば、待ち行列に入れられたジョブがスケジュールされたときに)開始されても良い。空のパラメータベクトルが、初期化されても良く(要素5404)、かつモデルの訓練段階の間に使用される1つまたは複数の設定が、判定されても良く、例えば、枝刈りを作動させるために使用される閾値条件が、識別され、そのような閾値条件が検出されたら毎回枝刈りされるパラメータの断片が、識別されても良く、以下同様である。異なる実装例において、閾値は、パラメータベクトルの中に含めることができるパラメータの最大数、モデルを訓練するために使用されるMLSサーバ(複数可)のメモリ容量、及び/またはクライアントによって指示された目標等の様々な要因に基づいても良い。閾値が導出されても良いクライアント提供の目標は、例えば、メモリ、CPU、ネットワーク回線容量、ディスクスペース等を含む、モデルの訓練の間及び/または訓練後実行の間に消費することができる様々な種類のリソースの最高限度を含んでも良い。一部の実施形態において、クライアントは、訓練及び/または予測実行の予算目標を指定しても良く、予算は、MLSの構成要素の対応するリソースの最高限度に翻訳されても良い。
次いで、描写される実施形態において、モデルジェネレータまたはトレーナーは、1つまたは複数の学習反復の実行を開始しても良い。一組の1つまたは複数の観測記録は、次の学習反復のために識別されても良い(要素5407)。観測記録の性質に応じて、いくつかの予備データ型変換及び/または正規化動作が行われる必要がある場合がある(要素5410)。例えば、一部のモデルジェネレータは、カテゴリー入力変数が数値変数またはBoolean変数に変換され、及び/または数値変数の値が−1〜1の範囲の実数にマッピングされる必要がある場合がある。重み等のパラメータがパラメータベクトルに追加される1つまたは複数の新しい特徴が、識別されても良い(要素5413)。一部の事例では、先に枝刈り被害者として選択された特徴の新しいエントリが、パラメータベクトルの中に再挿入されても良い。一部の事例では、そのような再追加されたエントリのパラメータ値が、事前に枝刈りされたエントリのパラメータ値とは異なっても良い一方で、他の事例では、元のエントリ及び再導入されたエントリのパラメータ値は、同じでも良い。一部の実装例において、ハッシュマップまたはハッシュ表等のキー/値構造が、例えば、特徴識別子をキーとして用いて、(特徴識別子、パラメータの)組のパラメータベクトルを記憶するために使用されても良い。一部の実施形態において、1つまたは複数の事前に生成されたパラメータ値はまた、例えば、確率的勾配降下法を使用して、この段階で更新もされても良い。
モデルジェネレータが、枝刈りの一巡を作動させるための(要素5404に対応する動作において識別された)閾値条件が満たされていると判定した場合(要素5416)、1つまたは複数の特徴が、枝刈り被害者と識別されても良い(要素5419)。描写される実施形態において、例えば最小絶対重みを有する長所によるモデルの予測に最も貢献しない特徴が、枝刈り被害者として選択されても良い。様々な実施形態において、異なる特徴の相対的貢献度が判定または推定される方式と、最低の貢献度を提供することが予想される特徴が識別される方式と、は、異なっても良い。各特徴に重みとしてそれぞれの実数が割り当てられる一部の実施形態において、重みのソートまたはコピーを必要とせず、かつパラメータベクトルにわたる単一のインメモリパス内の重み間の分位境界値を推定することができる効率的推定法が、使用されても良い。分位境界(例えば、パラメータベクトルの中に表された重みの絶対値の範囲の中の推定10パーセンタイル値または推定20パーセンタイル値を表す重み)が識別された後、より低い重みを有する特徴のエントリが、パラメータベクトルから削除されても良い。パラメータベクトルによって消費されるメモリは、枝刈り被害者に対応するエントリの削除によって低減されても良い(要素5422)。
(要素5425で検出される)学習反復が完了した場合、訓練済みモデルは、本番データ、試験データ、及び/または他の訓練後段階データセットに対して予測を生成するために使用されても良い(要素5428)。学習反復は、例えば、利用可能になると見込まれる全ての観測記録が調べられた場合、またはこれまで行われた学習反復に基づいてモデルによって立てられ得る予測の正確さが承認基準を満たした場合、完了したと見なされても良い。(同様に要素5425で検出される)追加の学習反復が行われる場合、要素5407以降に対応する動作が、反復されても良く、例えば、新しい一組の1つまたは複数の観測記録が識別されても良く、生データが必要に応じて変換されても良く新しい特徴に対するパラメータがパラメータベクトルに追加されても良く、以下同様である。一部の事例では、少なくとも数回の追加の学習反復が、既に調べられた観測記録に対して行われても良い。
先に言及されたように、枝刈り被害者は、モデル予測に対する相対的貢献度または個々の特徴の相対的重要性の分析に基づいて、パラメータベクトルの中に表される特徴から選択されても良い。図55は、少なくとも一部の実施形態に従った、特徴に割り当てられた重みの絶対値の分位境界推定値を判定するために使用され得る単一パス技法を例示する。それぞれの特徴F1、F2、…、Fmに対応する一組の重みW1、W2、…Wmが、例えば、重みをコピーせず、かつ、重みを明確にソートせずに、メモリの中で調べられても良い。描写される実施形態において、境界値が得られる分位は、「タウ」と称される。したがって、例えば、重みの絶対値の最低20%と重みの残りの80%との間の境界が識別される場合、タウは、0.2に設定されても良い。境界自体は、「ファイタウ」と称される。最初に、要素5502に示されるように、タウ及び(ファイタウを判定するために使用される学習率を表す)別のパラメータ「エータ」が、判定されても良く、ファイタウは、ゼロに設定されても良い。次いで、次の重みWjが調べられても良く、その絶対値abs(Wj)が得られ得る(要素5505)。要素5508で判定される、abs(Wj)がファイタウよりも大きい場合、ファイタウは、タウ及びエータの積である(タウ*エータ)を足すことにより、増加されても良い。abs(Wj)がファイタウ以下である場合、ファイタウは、(1−タウ)*エータを引くことにより、減少されても良い(要素5511)。(要素5517で検出される)さらなる重みがまだ調べられていない場合、要素5505以降に対応する動作が、反復されても良い。さもなければ、全ての重みが調べられた後に、分位境界ファイタウの推定が完了しても良い(要素5520)。次いで、図55に例示される手順の最後のファイタウの値は、枝刈り被害者を選択するために使用されても良く、例えば、絶対値がファイタウ未満である重みを有する特徴が、被害者として選択されても良い一方で、絶対値がファイタウ以上である重みを有する特徴は、保存されても良い。少なくとも一部の実装例において、学習率(エータ)は、分位境界推定手順の間に変更または調節されても良く、つまり、エータは、一定のままである必要はない。
同時ビニング
分位ビニングの以下の考察の文脈において、「特徴識別子」という用語は、モデルを訓練するために使用されるデータセットの観測記録から導出された特性の固有の識別子を指し得ることが留意される。「特徴セット」という用語は、(a)特徴値が訓練モデルを訓練している間に観測可能であり、(b)特徴パラメータが既知であるか、または訓練データから推測される一組の特徴識別子を指し得る。「特徴」という用語は、特徴識別子によってインデックス化された観測記録の特性の値(例えば、単一の数値、カテゴリー値、もしくは二進値のいずれか、またはそのような値の配列)を指し得る。「ビニング済み特徴」という用語は、例えば、一組の観測記録の1つまたは複数の入力変数に適用される分位ビニング変換から得られたバイナリ指標値の配列の特定のバイナリ指標値(例えば、「0」または「1」)を指し得る。「特徴ベクトル」という用語は、例えば、(ハッシュマップ等の)キー/値構造または圧縮されたベクトルで記憶されても良い一組の対またはタプルの(特徴識別子、特徴値)、を指し得る。「特徴パラメータ」または「パラメータ」という用語は、特徴識別子によってインデックス化された特性に対応するパラメータの値を指し得る。一部の実施形態において、重みを表す実数が、使用されても良いパラメータの一例であるが、いくつかの種類の機械学習技術に関して、より複雑なパラメータ(例えば、複数の数値を含むパラメータ)が、使用されても良い。「パラメータベクトル」という用語は、一組の対またはタプル(特徴識別子、特徴パラメータ)を指し得、これもまた、ハッシュマップまたは圧縮されたベクトル等のキー/値構造で記憶されても良い。一部の実施形態において、キー/値構造は、パラメータベクトル及び/または特徴ベクトルのために使用されても良いが、様々な実施形態において、パラメータベクトル及び/または特徴ベクトルの他の種類の表現が、採用されても良い。
一般化線形モデルが多くの種類の機械学習問題に対して最も人気がある一方で、少なくとも一部の事例では、データセットの入力変数と予測される目標変数または出力変数(複数可)との間の関係は、非線形ではない場合がある。例えば、所与の数値入力変数の観測された値の分布は、特定の(及び多くの場合小さい)サブ範囲が、多数の観測を含むような、かなりの程度まで不平衡である場合がある。少なくとも一部の事例では、そのような密な間隔の観測は、理想的には、最終的に予測を生成するために使用される特徴に割り当てられる重みまたはパラメータに正確に表されるべきである強い関係を表し得る。外れたサブ範囲は、比較的少数の観測を含み得るが、多くの事例において、目標変数に対するそのような外れ値の関係の捕捉もまた、高い質の予測を生成するために重要であり得る。少なくとも一部のそのようなシナリオにおいて、分位ビニング変換は、少なくとも一部の入力変数のために使用されても良い。そのような変換において、所与の組の訓練観測記録に対して、生入力変数または未処理入力変数の値は各々、ビンの各々が、母集団が他のものと少なくともおおよそ等しいように、選択された数の分位ビンのうちの1つにマッピングされても良い。次いで、一組のバイナリ指標変数(「0」または「1」のいずれかに設定することができる変数)が生成されても良く、各そのようなバイナリ指標変数が、生入力変数から導出されるそれぞれの「ビニング済み特徴」を表す。所与の観測記録に対して、指標変数のうちの1つ(生変数の値がマッピングされる特定のビンに対応するもの)は、「1」に設定され、残りの指標変数は、「0」に設定される。異なるビンは、母集団がおおよそ等しいため、これは、より多くのビンが未処理の変数の値の密に追加されたサブ範囲に対して生成され、より少ないビンがまばらに追加されたサブ範囲に対して生成されることを意味する。したがって、分位ビニングを使用する結果として、生入力変数と目標変数との間の非線形関係を捕捉する確率が上昇し得る。分位ビニング変換の例が図56に示され、以下にさらに詳細に記載される。
分位ビニングを用いる1つの困難は、最終的に訓練または生成されるモデルから最も正確かつ最も一般的な予測をもたらすビン計数(すなわち、所与の入力変数の生の値がマッピングされるべきであるビンの数)を事前に選択することが簡単ではない場合があることである。所与の入力変数に対して、モデルジェネレータが10のビン計数、または1000のビン計数の選択肢を有するシナリオ例を、考えられたい。10のビン計数では、観測記録のうちのおおよそ10パーセントが、10個のビンの各々にマッピングされる一方で、1000のビン計数では、観測記録のうちのわずかおおよそ0.1%が、各ビンにマッピングされる。どのビン計数が優れた選択であるかを判定するための一手法において、モデルの2つのバージョンが、別個に完全に訓練され、次いで評価される必要がある場合がある。モデルの第1のバージョンM1は、10個のビン変換から得られた特徴(及び何らかものもがモデルジェネレータによって識別された場合、他の特徴)を用いて訓練されても良く、第2のバージョンM2は、1000個のビン変換から得られた特徴(及び他の特徴)を使用して訓練されても良い。試験データに対するM1の予測は、どっちの手法がより良いかを判定するために、同じ試験データに対するM2の予測と比較されても良い。異なるビン計数がモデルのそれぞれのバージョンを訓練するために使用されるそのような手法は、いくつかの理由で最善ではない場合がある。まず、ビニング済み特徴のそれぞれのグループを用いた複数のモデルの訓練は、単一の入力変数に関してさえも高価で有り得る。よくあるように、いくつかの異なるビニング可能な変数が同じモデルに対して考慮に入れられる必要がある場合、試す可能性のある組み合わせの数は、極めて大きくなり得る。次に、一部の事例では、(1つの入力変数でさえも)任意の単一のビン計数設定で微妙な非線形関係を捕捉することは可能でない場合があり、例えば、同じ変数のいくつかの異なるビン計数を使用して得られる特徴は、非線形関係の性質によっては、一部の予測に有用であり得る。したがって、一部のシナリオにおいて、少なくとも一部の変数に関して、任意の単一のビン計数は、複数のビン計数を使用して生成されるもの程、正確な予測を必ずしも生成しない場合がある。
一部の実施形態において、機械学習サービスは、それぞれのビン計数を用いたいくつかの異なる特徴変換がモデルの単一の訓練段階または訓練セッションの間に所与の入力変数に適用されても良い同時ビニング法を実行しても良い。そのような手法を使用して、最初の重み(またはより複雑なパラメータ)が、複数のビン計数から導出された全てのビニング済み特徴に割り当てられても良い。多数のビニング済み特徴が、パラメータベクトルに記憶された対応するパラメータまたは重みを用いて生成されても良い。ビニング済み特徴に対応するパラメータのうちの少なくともいくつかは、例えば、追加の観測記録の調査、一部の観測記録の再調査、及び/または連続的学習反復の間の訓練段階予測の結果に基づいて、後に削除されても良い。一部の実施形態において、最初の重みまたはパラメータは、L1またはL2規則化等の選択された最適化技法を使用して調節されても良く、絶対重み値が閾値未満に含まれる特徴は、パラメータベクトルから削除されても良い。一部の実施形態において、(例えば、図51〜図55の説明と組み合わせた)上述の効率的枝刈り法もまた、または代わりに、ビニング済み特徴のパラメータのために消費されるリソースを低減するために、適用されても良い。一部の実施形態において、同時ビニングと、続いてパラメータ枝刈りを使用して、モデルが上述の種類の非線形関係に関して正確な訓練後段階予測を立てることを可能にするパラメータベクトルが、例えば、最初からモデルを反復的に訓練する費用を負担することなく、非常に効率的に得られ得る。
図56は、少なくとも一部の実施形態に従った、分位ビニング変換を使用して、生入力変数と機械学習モデルの予測目標変数との間の非線形の関係を捕捉する例を例示する。示されるように、機械学習サービスでモデルを生成するために使用されるデータソースから得られた観測記録の中に含まれる訓練データ変数5690は、NIV1及びNIV2等のいくつかの数値入力変数(NIV)を含んでも良い。分布グラフDG1及びDG2はそれぞれ、一組の観測記録のNIV1及びNIV2の値の統計的分布を例示する。NIV1の値は、NIV1最小からNIV1最大の範囲内にあり、観測の最高密度は、n2〜n3のサブ範囲内にある。NIV2の値は、NIV2最小からNIV2最大の範囲内にあり、ピーク密度は、p1〜p2にある。
描写される実施例において、NIV1の値は、NIV1−Bin1〜NIV1−Bin4とラベル付けされた4個のビンにマッピングされている。ビンの名前は、図56の対応するビニング済み特徴の特徴識別子に対応する。つまり、4のビン計数を用いた分位ビニング変換が、単一の変数NIV1から導出された4つのビニング済み特徴5610Aを生成するために使用されており、1つの指標変数がビンの各々に対応する。観測記録OR1のNIV1の値は、ビン、NIV1−Bin3内に含まれ、したがって、OR1に関して、NIV1−Bin3の指標変数は、1に設定され、残りのNIV1関連指標変数NIV1−Bin1、NIV1−Bin2、及びNIV1−Bin4は、ゼロに設定されている。観測記録OR2の場合、NIV1の値は、N1V1−Bin2内に含まれ、対応する指標変数は、1に設定され、残りはゼロに設定されている。NIV2の値は、3のビン計数を用いた分位ビニング変換を介して、3個のビン、NIV2−Bin1〜NIV2−Bin3にマッピングされている。OR1及びOR2の両方において、NIV1の値は、NIV2−Bin2内に含まれる。したがって、OR1及びOR2の両方に関して、指標変数NIV2−Bin2は、1に設定され、残りのNIV2関連指標変数は、0に設定されている。描写される実施形態において、所与の変数のビニング済み特徴またはバイナリ指標変数の数は、ビン計数に対応する。図56に例示される変換例は、本明細書で、単一変数非同時ビニング変換とも称され得る。この変換は、たった1つのビン計数が、変数の各々をビニングするために使用されるため、たった1つの変数の値が所与のビニング済み特徴を導出するために使用される単一変数、及び非同時と呼ばれることがある。
図56に描写される実施形態において、分位ビニング変換によって生成されるビニング済み特徴に加えて、他の特徴変換が、訓練データの他の生入力変数に対して行われても良い。(NIV1−Bin1及びNIV1−Bin2等の)ビニング済み特徴と、(NF1等の)未ビニング特徴との組み合わせのためのパラメータを含むパラメータベクトル5625が、訓練データのために生成されても良い。一部の実装例において、パラメータは、各特徴に対するそれぞれの実数等の重みを含んでも良い。一部の実施形態において、パラメータベクトルは、例えば、上述の枝刈り法の種類が反復的に使用されるに従い、拡大及び縮小しても良い。少なくとも一部の実装例において、ビン境界もまた、より多くの観測記録が調べられるか、または事前に調べられた観測記録が再分析されるに従い、変化しても良い。ある時点で、モデルの訓練段階は、完了した(または、少なくともある非訓練データセットについての予測のために使用されるのに、十分に完了した)と見なされても良く、パラメータベクトル5625の最新のバージョンは、試験データセットまたは本番データセット5650についての予測5672を生成するために、モデルの実行5640の間に、使用されても良い。
図56に例示されるシナリオ例において、単一のビン計数(4)が、ビニングNIV1値に対して使用され、単一のビン計数(3)が、ビニングNIV2に対して使用されている。先に論じられたように、そのような単一のビン計数が使用される場合、生成されたビニング済み特徴は、必ずしも最高の質の予測をもたらさない場合がある。これは、例えば、訓練/学習処理の開始時に所与の生入力変数に対して選択された特定のビン計数が、生入力変数値と目標変数との間の非線形関係を表すことができないことがあり、かつこの関係が異なるビン計数を使用して表されていることがあるため、あり得る。少なくとも一部の事例では、ビン計数は、あらゆる定量化できる理由なしに、いくらか恣意的に、選択されても良い。各々のビニング可能な入力変数に対していくつかの異なるビン計数を使用してモデルを完全に訓練し、次いで、各々のそのような変数に対する最良のビン計数を選択するために、結果を比較することは、高価かつ時間のかかる処理であり得る。したがって、一部の実施形態において、機械学習サービスは、訓練セットの少なくとも1つの生入力変数に対していくつかの異なるビン計数を使用して分位ビニングを同時に実行しても良い。
図57は、少なくとも一部の実施形態に従った、機械学習サービスでモデルの訓練段階の間に生成され得る同時ビニング計画の例を例示する。描写される実施形態において、一組の訓練データ変数5790は、同時分位ビニングの候補として選択された数値入力変数NIV1、NIV2、及びNIV3を含む。各変数に対して、それぞれの同時ビニング計画(CBP)が、生成され、モデルの訓練段階の間に実行されても良い。例えば、CBP1に従って、3回の分位ビニング変換QBT1−1、QBT1−2、及びQBT1−3が、10、100、及び1000のそれぞれのビン計数を用いて、訓練段階内にNIV1の値に適用されても良い。合計1110個のビニング済み特徴5730A、QBT1−1から(NIV1−1−1〜NIV1−1−10とラベル付けされた)10個の特徴、QBT1−2から100個の特徴(NIV1−2−1〜NIV1−2−100)、及びQBT1−3から1000個の特徴(NIV1−3−1〜NIV1−3−1000)が、CBP1を実行した結果として生成されても良い。最初の重み(またはモデルの予測へのそれぞれの特徴の相対的貢献度を表すために使用される他の種類のパラメータ)が、ビニング済み特徴5730Aの各々に割り当てられても良い。同様に、同時ビニング計画CBP2に従って、4回の分位ビニング変換が、それぞれ20、40、80、及び160のビン計数を用いて、同じ訓練段階内で同時にNIV2に適用され、300個のビニング済み特徴5730Bを生じても良い。同時ビニング計画CBP3に従って、3回の分位ビニング変換が、それぞれ5、25、及び625のビン計数を用いて、NIV3に適用され、655個のビニング済み特徴5730Cを生じても良い。それぞれの最初の重み/パラメータは、全てのビニング済み特徴に割り当てられても良い。
異なる実施形態において、機械学習サービスのモデルジェネレータまたは別の構成要素が、様々な要因のうちのいずれかに基づいて、所与の変数の同時ビニングのために使用される異なるビン計数(例えば、NIV1の場合、10、100、1000、またはNIV2の場合、20、40、80、160)を選択しても良い。一部の実施形態において、例えば、利用可能な観測記録の小さいサンプルが得られても良く、そのサンプルにおける(NIV1、NIV2、またはNIV3等の)数値入力変数の値の分布が、判定されても良い。次いで、この分布が、異なるビン計数を選択するために使用されても良い。数値変数の値の範囲及び粒度は、ビン計数の選択にも影響を与える場合があり、例えば、特定の数値変数が1〜1000の整数値のみをとる場合、その変数に対するビンの最大数は、1000に制限されても良い。他の実施形態において、機械学習サービスの知識ベース(例えば、図1に示されるKB122)が、モデルが生成される特定の問題領域のベスト同時ビニング関連プラクティスを判定するために、参照されても良い。一実施形態において、Nビン計数の規定のセット(例えば、N=3で、10、100、1000)が、候補として選択された全ての変数に対して使用されても良い。
少なくとも一部の実施形態において、所与の組のCBP(例えば、図57に示される例におけるCBP1、CBP2、及びCBP3)の全ての分位ビニング変換が、モデルの単一の訓練段階または訓練セッションの間に実行されても良い一方で、変換に関わる計算は、ハードウェアレベルで同時にまたは並列で行われる必要はないことが留意される。例えば、一実装例において、所与の組の観測記録に対して、QBT1等の所与の分位ビニング変換の指標変数の値は、一般的にモデルジェネレータの少なくとも1つの実行のスレッドを使用して生成されても良い。したがって、CBP1、CBP2、及びCBP3の10回の変換(QBT1−1、QBT1−2、…、QBT3−3)を実行するために、10個の実行のスレッドが、必要であっても良い。しかしながら、これは、10のプロセッサまたはコアが必ずしも使用されることを意味せず、代わりに、例えば、単一の4コアMLSサーバが、全ての10回のビニング変換のために使用されても良く、必要な計算の異なるサブセットは、モデルの訓練段階の間に、並列でまたは連続的に、任意の所与の時点で実行される。したがって、描写される実施形態において、一組の分位ビニング変換を説明するための「同時」という用語の使用は、訓練段階の文脈内で同時計算を指し、ハードウェアレベルの同時並行性を必要としない。もちろん、一部の事例では、利用可能なコアまたはCPUの数は、訓練段階の間に並列で異なるCBPのために必要な全ての計算を行うのに十分であり得る。
多くの場合、ビニング変換の候補変数の数は、かなり大きくなる場合があり、結果として、同時ビニング計画の実行の結果として生成されたビニング済み特徴の数もまた、非常に大きくなる場合がある。先に論じられたように、パラメータベクトル内に表される特徴の数が増加するに従い、モデルが生成または訓練されるMLSサーバで必要なメモリもまた、増加する。描写される実施形態において、消費されるメモリの量を制限するために、1つまたは複数の重み調節最適化5710が行われても良い。そのような最適化には、例えば、モデルジェネレータは、予測正確さへの様々な特徴の相対的貢献度に関して、さらに学習することができるため、ビニング済み特徴(及び/または一部の未ビニング特徴)のうちの少なくともいくつかの重みが、連続的学習反復を通して低減される規則化法が含まれ得る。少なくとも1つの実施形態において、規則化の結果として、一部の特徴と関連付けられた重みは、少なくともそのような特徴に対応するパラメータがパラメータベクトルから削除または枝刈りされ得る程小さくなっても良い。少なくとも一部の実施形態において、規則化は、過剰適合を低減するのにも役に立つことがあり、つまり、パラメータベクトルサイズの低減は、規則化を使用する唯一の(またはさらには主な)理由ではない場合があることが留意される。一部の実施形態において、作動条件に応答して、特徴に割り当てられた異なる重みの分位境界が、(例えば、図55に示されるものと類似した技法をして)推定されても良く、重みの絶対値の範囲の下からX%内に含まれる選択された組の重みが、モデルのパラメータベクトルから削除されても良い。一部の実施形態において、規則化及び分位境界ベースの枝刈りの両方が、訓練の間にパラメータベクトルからパラメータを削除するために使用されても良い。他の実施形態において、規則化及び分位境界ベースの枝刈り以外の最適化が、使用されても良い。
図57に描写される実施形態において、CBP1〜CBP3に従って得られた異なるビニング済み特徴に割り当てられた最初の重みは、選択された最適化戦略(単数または複数)に従って調節されても良い。所与のビニング済み特徴の調節された重みが、除外閾値未満に含まれる場合、その特徴のエントリは、パラメータベクトルから削除されても良く、(さらなる学習反復が完了したとき、後に再導入されない限り)訓練後段階予測のために使用されなくても良い。例示される例において、同時ビニング変換が適用された入力変数の各々に対応して、所与のビニング済み特徴の調節された重みが除外閾値を超えているため、サブセットだけが訓練後段階予測のために使用される。例えば、1110個のNIV1関連のビニング済み特徴の中から、NIV1−1−3及びNIV1−2−5だけが使用される。300個のNIV2関連ビニング済み特徴の中から、NIV2−2−1〜NIV2−2−40が使用され、655個のNIV3関連ビニング済み特徴の中から、NIV3−3−1〜NIV3−3−10及びNIV3−3−50〜NIV3−3−53が訓練後予測のために使用される。残りのビニング済み特徴のパラメータは、パラメータベクトルから削除されても良い。同時ビニング計画CBP1〜CBP3の実行の結果として生成されたビニング済み特徴だけが、図57に示されているが、未ビニング特徴のパラメータもまた、訓練段階の間にパラメータベクトルに追加され、パラメータベクトルから削除されても良い。
図57に例示される例において、単一の入力変数(NIV1)の異なる分位ビニング変換に対応する2個のビニング済み特徴()(NIV1−1−3及びNIV1−2−5)が、訓練後段階予測のために保存されている。これは、2つの異なるビン計数(NIV1−1−3に対して10、及びNIV1−2−5に対して100)が、各々、NIV1と値が予測される目標変数との間の非線形関係の異なる態様を補足しても良いことを示し得る。図57に例示されているものと類似した同時ビニング法の使用の結果として、訓練済みモデルの予測の正確さは、単一のビン計数が、分位ビニングが行われる各変数に対して使用された場合よりも、多くの場合、高くなり得、必要な総訓練時間は、多くの場合、少なくなり得る。
図57において、たとえそれぞれのビン計数を用いた複数のビニング変換が使用されたとしても、各ビニング変換自体が、単一の変数に適用されても良い。一部の実施形態において、2つ以上の入力変数の値が、所与の観測記録を単一のビンにマッピングするために、一緒に使用されても良い。そのようなビンは、本明細書で多変数ビンと称され得、対応する特徴変換は、本明細書で多変数分位ビニング変換と称され得る。一緒にビニングされる入力変数の各グループに対して、ビン計数の異なる組み合わせが、モデルの訓練段階の間に同時に多変数ビニング済み特徴を生成するために、入力変数の各々に割り当てられても良い。図58は、少なくとも一部の実施形態に従った、機械学習サービスに実装され得る同時多変数分位ビニング変換の例を例示する。描写される実施形態において、複数の訓練データ変数5890から、3つの数値入力変数NIV1、NIV2、及びNIV3が、同時多変数ビニングのために一緒に分類される候補として識別されている。それぞれの決定木5810A及び5810Bが、それぞれのビン計数の組み合わせを用いた3つの変数の組み合わせのビニング判定のために生成されても良い。
決定木5810Aは、それぞれ変数(NIV1、NIV2、NIV3)に対するビン計数の組み合わせ(c1、c2、c3)を表す。観測記録を考慮すると、決定木は、3つの変数の値に基づいて移動しても良く、どのノードが次に横断されるべきかを判定するために変数のうちの特定の1つが確認される判定ノードを含む。木の葉ノードは、全ての分類された変数の組み合わせから導出されたビンに対応しても良い。例えば、木5810AのレベルL1は、c1判定ノードを含んでも良く、各々がNIV1の値の1つの分位サブセットを表す。レベルL1の各ノードに対して、NIV2の値に対するc2判定ノードが、レベルL2で生成されても良く、各々が、NIV1ベースのビニングとNIV2ベースのビニングとの組み合わせを表す。同様に、レベルL2の各ノードに対して、c3葉ノードが、生成されても良く、各々が、多変数ビン及び対応するビニング済み特徴を表す。したがって、木5810の場合、合計(c1*c2*c3)個のビンが、対応するバイナリ指標変数を用いて、生成されても良い。図58において、木5810Aの葉ノードが、Bin123−1−1〜Bin123−1−mとラベル付けされ、ここで、mは、c1、c2、及びc3の積である。(示されるビン命名の慣習「Bin<文字列1>−<文字列2>−<文字列3>」において、文字列1は、ビニングのために一緒に分類される異なる入力変数を表し、文字列2は、特定の決定木の識別子であり、文字列3は、葉ノードのコレクションの中のビンの位置の指標である。したがって、Bin123−k−qは、ビニング変数NIV1、NIV2、及びNIV3のために使用されるk番目の木のq番目の葉ノードを表す。)任意の所与の観測記録は、その観測記録内のNIV1、NIV2、及びNIV3の値に基づいて、葉ノードのうちの特定の1つにマッピングされても良い。その葉ノードに対するバイナリ指標変数が、観測記録に対して1に設定されても良い一方で、他の指標変数は全て、ゼロに設定されても良い。
一部の実施形態において、まさに単一変数ビニングが異なるビン計数を使用して同時に行われても良いように、多変数ビニングもまた、所与の変数セットに対するビン計数の異なる組み合わせで同時に行われても良い。例えば、ビン計数(c4、c5、c6)の異なる組み合わせを使用して、第2の決定木5810Bが、(NIV1、NIV2、NIV3)の組み合わせに対して同時に生成されても良い。重ねて、葉ノードのビン/特徴の数は、ビン計数の積と等しく、したがって、図58で、木5810Bの葉ノードは、Bin123−2−1〜Bin123−2−nとラベル付され、ここでは、nは(c4*c5*c6)である。様々な実施形態において、それぞれの多変数同時ビニング変換に対する任意の所望の数の決定木が、使用されても良い。少なくとも一部の訓練データセットに対して、図58に示されるように、分類された分位ビニングに対する複数の変数の使用は、単一変数ビニングを使用して可能であり得るよりも多岐にわたる非線形関係が捕捉されることを可能にし得る。様々な実施形態において、パラメータベクトルサイズを制限するための同様の種類の手法が、単一変数ビニングを参照して先に論じられたように、多変数同時分位ビニングを用いて、使用されても良い。例えば、少なくとも一部の実施形態において、ビニング済み特徴に割り当てられた重みの分位境界推定を伴う規則化及び/または技法が、採用されても良い。
少なくとも一部の実施形態において、多変数同時ビニング変換及び単一変数同時ビニング変換が、モデルの所与の訓練段階内で使用されても良い。図57に例示される種類の単一変数同時ビニングは、より一般的な多変数ビニング法の1つの異形と見なされても良く、単純な決定木は、葉ノード(加えて、ビニング判定手順の開始を表すルートノード)のみを含む。一般的に言って、任意の所与の訓練データセットの入力変数中から、変数の複数のグループが同時ビニングのために選択されても良い。グループのうちの一部が、たった1つの変数を含んでも良い一方で、他のグループは、複数の変数を含んでも良い。
図59は、少なくとも一部の実施形態に従った、機械学習サービスで同時ビニング動作を表すために使用され得るレシピの例を例示する。先に記載されたように、例えば、図11〜図17を参照して、機械学習サービスは、多岐にわたる特徴変換動作がユーザフレンドリな構文で指示されても良いレシピ言語をサポートしても良く、そのようなレシピは、必要に応じて、異なるデータセットに対して再使用されても良い。図59に描写される実施形態において、図57に例示される単一変数同時ビニング及び図58に例示される多変数同時ビニング等の、同時分位ビニング変換に対応するレシピが、生成され、MLSレポジトリ内に記憶されても良い。
レシピ5902Aの出力セクションは、図58の同時ビニング変換に対応し、入力変数及びビン計数の名前は、各変換に対して指示される。したがって、10、100、及び1000のビン計数を用いた同時単一変数分位ビニング変換は、NIV1に対して行われ、20、40、80、及び160のビン計数を用いてNIV2に対して、ならびに5、25、及び625のビン計数を用いてNIV3に対して行われる。
レシピ5902Bの出力セクションは、変数の指定されたグループに対して行われる同時多変数分位ビニング変換を指示する(トークン「MV_quantile_bin」内の「MV」は、「複数の変数」を表す)。第1のそのような変換は、NIV1及びNIV2に一緒に適用され、(「10X10」によって示されるように)NIV1値は、10個のビンにマッピングされ、NIV2値もまた、10個のビンにマッピングされ、それによりその組み合わせに対する100個のビンを作成する。第2の多変数ビニング変換は、NIV1に対して100のビン計数、及びNIV2に対して100のビン計数を用いて、NIV1及びNIV2に対して同時に行われ、全体で10000個のビンが生じる。第3の多変数ビニング変換は、NIV1に対して100及びNIV3に対して20のそれぞれのビン計数を用いて、NIV1及びNIV3に対して一緒に行われる。一部の実施形態において、単一変数分位ビニング変換もまた、たった1つの変数を有するグループを指示するMV_quantile_binトークンを使用して指示されても良い。少なくとも一部の実装例において、レシピ5902Aに示される「quantile_bin」トークンは、単一変数ビニング変換及び多変数ビニング変換の両方に対して使用されても良く、このトークンと関連付けられたパラメータは、単一変数ビニングまたは多変数ビニングが行われるかどうかを判定するために、使用されても良い。
一部の実施形態において、5902Aまたは5902Bに類似したレシピは、モデルジェネレータによって生成され、同様の種類の機械学習問題への可能性のある再使用のためにMLS人工物レポジトリの中に記憶されても良い。一部の実施形態において、機械学習サービスのクライアントは、同時分位ビニングを明確に要求しても良く、そのような変換の属性または特性(例えば、同時にビニングされる1つまたは複数の変数のグループ、各グループに対する同時ビニング変換の数、ビン計数等)を指定するレシピを提供しても良い。
少なくとも一部の実施形態において、モデルを生成または訓練する処理は、例えば、APIまたはウェブベースのコンソールを介したクライアントからのプログラム的要求に応答して、MLSで開始されても良い。図60は、クライアントが、機械学習サービスのプログラム的インターフェースを利用して、同時分位ビニングの使用に関するクライアントの好みを示し得るシステムの例を例示する。示されるように、システム6000において、クライアント164は、プログラム的インターフェース6062を介して、モデル作成要求または訓練要求6010を提出しても良い。クライアント要求は、要求内で指示された1つまたは複数の目標変数6022の値を予測するためのモデルを訓練するために観測記録が使用される、データソース6020を指示しても良い。要求は、同時分位ビニングの使用がクライアントにとって許容できる場合、「真」に設定されても良い「同時ビニング」パラメータ6024を含んでも良い。そのような実施形態において、同時分位ビニングを使用したくないクライアントは、そのようなパラメータを「偽」に設定しても良い。少なくとも1つの実施形態において、同時ビニングの規定の設定は、たとえクライアントが好みを指示しないとしても、好適な候補として識別された選択された入力変数に対してMLSが同時分位ビニングを実行するように、「真」でも良い。一実施形態において、同時ビニングパラメータの値の設定の代わりに、または同時ビニングパラメータの値の設定に加えて、クライアントは、クライアントのモデル作成要求6010の中に同時ビニング変換を含むレシピを指示するか、または含んでも良い。
クライアント要求6010は、機械学習サービスの要求/応答ハンドラ6042によって受信されても良く、対応する内部要求は、モデルジェネレータ6080に送信されても良い。モデルジェネレータは、本明細書で、モデルトレーナー、特徴処理マネージャ、または特徴変換マネージャとも称され得る。モデルジェネレータ6080は、同時分位ビニングが行われる観測記録の1つまたは複数の候補変数を識別しても良い。一部の実施形態において、モデルジェネレータ6080は、例えば、複数の変数が多変数分位ビニングのために分類されるべきかどうか、どのように複数の変数が多変数分位ビニングのために分類されるべきか、使用されるべきビン計数等の、同時ビニングのために使用される属性を判定するために、MLSベストプラクティス知識ベース122を参照しても良い。先に同じ問題領域のため、または類似した種類の機械学習問題のために識別されたベストプラクティスは、同時ビニング属性の選択を導くのに役立つことがある。一部の実施形態において、モデルジェネレータ6080は、作成がクライアントによって要求されたものに類似したモデルに対してうまく使用された同時分位ビニング変換を含む、(例えば、知識ベース中で、またはMLS人工物レポジトリ120の中で)先に生成されたレシピを識別することができても良い。そのような既存のレシピが、要求6010に応答して適用される同時ビニング変換を選択するために使用されても良い。少なくとも1つの実施形態において、一組の観測記録のk次元木(k−d木)表現が、生成されても良く、例えば、k次元は、選択された一組の変数を表す。そのような実施形態において、選択された一組の変数のうちの1つまたは複数に適用される同時ビニング変換の属性は、そのようなk−d木の調査に少なくとも部分的に基づいても良い。
図60に描写される実施形態において、同時分位ビニングの使用を含む1つまたは複数の訓練ジョブ6068が、生成され、スケジュールされても良い。データソース6020の未処理観測記録の中に含まれる生データの種類に応じて、訓練ジョブ6068は、生入力変数をビニングのために使用することができる数値に変換する前処理タスク6070を含んでも良い。そのような前処理変換には、例えば、1つまたは複数の選択されたカテゴリー変数の実数へのマッピング、及び/または領域固有変換(例えば、生音声データ、グラフィックスデータ、もしくは動画データをビニングに好適な実数にマッピングする変換)が含まれても良い。一部の事例では、反復学習手順を使用して、(例えば、さらなる学習反復が完了するに従い、さらなるビニング済み特徴及び未ビニング特徴に対するパラメータを追加することによる)モデルのパラメータベクトルの拡張と、(例えば、先に記載された枝刈り法を使用した)パラメータベクトルの収縮と、の交互段階を用いて、モデルを訓練しても良い。同時ビニングのために選択された属性、及び訓練データのために選択された同時ビニング変換の数に応じて、パラメータベクトル拡張6072は、必要とされるメモリの容量の急速な拡大をもたらし得、したがって、枝刈りするための積極的手法がパラメータベクトル収縮6072の間に必要になり得る。枝刈りのために使用される(規則化等の)最適化技法(複数可)の属性は、例えば、モデル予測によってより有意ではないと識別された特徴の重みがより迅速に低減されるように、その都度調節されても良い。先に記載された分位境界推定法が採用される一部の実施形態において、任意の特定の反復の間に削除または枝刈りされるパラメータの断片は、より積極的なパラメータベクトルサイズ低減を実行するために増加されても良く、枝刈りのための作動条件は、枝刈りがより頻繁に行われるように変更されても良く、以下同様である。多くのシナリオにおいて、パラメータは、パラメータベクトルから削除されても良いが、少なくとも一部の実施形態において、時折、パラメータが訓練段階の間にパラメータベクトルから削除されない場合があっても良いことが留意される。したがって、本明細書に記載される種類の同時分位ビニング変換の使用は、パラメータの枝刈りを必要としない。
選択された同時ビニング変換が適用され、モデルの訓練段階が完了した後で、モデルの表現が人工物レポジトリ120に記憶されても良く、訓練済みモデルの識別子6082は、プログラム的インターフェース6062を介してクライアントに提供されても良い。一部の事例では、行われる同時分位ビニング変換の(レシピ等の)指標もまた、クライアント164に提供されても良い。クライアントは、最終的にモデル実行要求6054を提出しても良く、モデルの訓練後段階本番実行6058が、モデル実行マネージャ6032によってスケジュールされても良い。
図61は、少なくとも一部の実施形態に従った、同時分位ビニング変換が実装された機械学習サービスで行われ得る動作の態様を例示する流れ図である。要素6101に示されるように、未処理観測記録がモデルを生成するために得られるデータソースの指標は、例えば、プログラム的インターフェースを介して提出されたクライアント要求を介して、プロバイダネットワークの機械学習サービスで受信されても良い。少なくとも一部の実施形態において、機械学習サービスは、予測が観測記録の変数の生の値から導出された特徴に割り当てられた実数値の重み(及び/またはより複雑なパラメータの線形結合)に基づく線形モデルが生成されることを判定しても良い。
モデルジェネレータ等の機械学習サービスの構成要素は、1つまたは複数の未処理の変数を同時分位ビニング変換の候補と識別しても良い(要素6104)。候補は、例えば、観測記録のサンプル内の変数の生の値の分布の分析、同時ビニングを行うための規定の戦略等、異なる実施形態におけるいくつかの異なる要因のうちのいずれかに基づいて、識別されても良い。少なくとも一部の事例では、候補の1つまたは複数のグループが、多変数同時ビニング変換のために識別されても良い。一部の事例では、観測記録の1つまたは複数の変数の生値は、前処理行程で実数にマッピングされても良い。例えば、音声、動画、またはグラフィックスコンテンツを含む変数は、領域固有マッピングアルゴリズムを使用して実数にマッピングされても良いか、または一部の種類のカテゴリー変数またはテキストトークンは、実数にマッピングされても良い。
描写される実施形態において、同時ビニング変換が行われる個々の変数または変数のグループに対応して、同時ビニング計画が、生成されても良い(要素6107)。そのような計画の属性または特性は、例えば、単一の訓練段階の間に実行される異なる分位ビニング変換の数、及び各そのような変換のために選択されたビン計数を含んでも良い。多変数ビニング変換に関して、変数値が確認される(例えば、変数が図58に例示される木に類似した、ビニングのために使用される決定木の連続的レベルで調べられる)シーケンスが、計画属性に含まれても良い。一部の実施形態において、モデルジェネレータは、同時ビニング計画の生成を促進するために、例えば、モデルが生成されるに従い、過去に同じ問題領域(または類似した問題領域)に対してうまく使用されたレシピを探索することにより、ベストプラクティスの知識ベースを利用しても良い。
一部の事例では、同時ビニングに加えて、様々な他の種類の特徴変換が、訓練モデルのために識別されても良い。描写される実施形態において、少なくとも部分的に同時ビニング計画の実行の結果として得られた特徴に対する最初の重み(要素6110)は、パラメータベクトルの中に記憶されても良い。続いて、重みは、例えば、L1規則化またはL2規則化または他の最適化技法を使用して、調節されても良い(要素6113)。一部の実施形態において、少なくとも一部のパラメータベクトルエントリは、調節された重みに基づいて削除されても良い(要素6116)。例えば、重みが除外閾値未満に含まれるエントリは、削除されても良い。一部の実施形態において、図52及び図54の文脈で論じられたものと類似した効率的分位境界推定法は、特徴重みの絶対値に適用されても良く、重みが重みの下からX%内に含まれるパラメータベクトルエントリは、削除されても良い。一部の実施形態において、パラメータベクトルサイズが、より多くの同時分位ビニング変換が識別されるに従い拡大し、パラメータのうちのいくつかが枝刈りされるに従い、縮小しても良い反復手法が、使用されても良い。訓練段階の完了後、訓練済みモデルを使用して本番データ及び/または試験データについての予測を生成しても良い(要素6119)。つまり、保存された特徴(例えば、枝刈りされていない複数のビニング済み特徴及び/または複数の未ビニング特徴)に割り当てられたパラメータまたは重みを使用して、予測を得ても良い。
異なる実施形態において、同時分位ビニングは、様々な種類の一般化線形モデルを使用して対処することができる問題を含む、多岐にわたる教師付き学習問題に対して使用されても良い。様々な実施形態において、上述のものと類似した同時分位ビニング変換は、例えば、教師付き学習に対する使用に加えてか、または教師付き学習に対する使用の代わりに、教師無し学習に対しても使用されても良い。一実施形態において、例えば、ラベル付けされていないデータセットの変数のうちの少なくとも一部は、クラスタ化法の一部として同時にビニングされても良い。
調査評価結果のための対話型グラフィカルインターフェース
異なる実施形態において、先に論じられたように、例えば、分類モデル、回帰モデル等を含む多岐にわたるモデルが、機械学習サービスを使用して本番予測のために、訓練、評価、次いで、展開されても良い。MLSの一部の非熟練ユーザにとって、特に、結果がテキスト形式で、例えば、数字の1つまたは複数の表として単純に提示された場合、モデル実行結果の解釈は、必ずしも簡単ではない場合がある。具体的には、モデル出力のテキストバージョンを使用すると、一部のユーザにとって、(正確さ、偽陽性率、偽陰性率等の)異なる質関連メトリック間の関係、及び(分類モデルの場合、クラス間のカットオフ値または境界等の)様々な解釈関連設定の変更が、モデルを使用して下された最終的な事業決定にどのように影響を与え得るか、を理解することは比較的困難であり得る。少なくとも一部の実施形態において、一方ではMLSリソースのバックエンド計算及び推測能力と、モデル結果を解釈し、可能性のある相反する質目標間の最善の可能性のあるトレードオフを行う、MLSのユーザの能力と、の間に存在し得る隙間を埋めることを促進するために、MLSは、対話型グラフィカルインターフェースへのサポートを提供しても良い。例えばウェブサイトまたはウェブページのコレクション(例えば、ウェブベースのMLSコンソールのページ)を介して、またはスタンドアロングラフィカルユーザインターフェース(GUI)ツールを介して実装されても良いそのような対話型グラフィカルインターフェースは、MLSのユーザが(様々な訓練後段階評価実行、または評価後本番実行等の)様々なモデル実行の結果の視覚化されたものを、閲覧または調査することを可能にし得る。様々な実施形態において、インターフェースは、ユーザが1つまたは複数の解釈関連設定を動的に変更し、様々な品質メトリック及び品質メトリックの相互関係について学び、様々な目標間で優先順位を付けることを可能にしても良い。
少なくとも一部の実施形態において、インターフェースは、1つまたは複数の予測関連設定の値を変更するため、及びそのような変更の結果をリアルタイムで観測するための、MLSクライアントによって使用され得るいくつかの制御要素(例えば、スライダ、ノブ等)を含んでも良い。一部の実装例において、基礎となる変数または設定への滑らかな変更を模倣するスライダ等の連続変動制御要素が、使用されても良く、他の実装例において、小さい一組の値のうちの1つが選択されることを可能にするノブ等の不連続変動制御要素が、使用されても良い。例えば、二項分類モデルに関して、クライアントがカットオフ値(1つのクラスまたは他のものの中に観測記録を入れるために使用される出力変数の境界値)を変更し、そのような変更が、所与の評価実行の偽陽性、偽陰性等の数にどのように影響を与えるかを、動的に観測することを可能にしても良い。一部の実施形態において、インターフェースは、クライアントがある特定の種類の予測関連の選択肢の影響を「逆行分析」することを可能にしても良く、例えば、クライアントは、スライダ制御装置を使用して、所望の変更予測の質結果メトリック(例えば、二項分類モデルの特定の評価実行の偽陽性率)を指示し、リアルタイムで、結果メトリックの所望の値を得るために使用することができるカットオフ値を見ても良い。クライアントはまた、異なる予測の質メトリックと閾値との間の関係の視覚的な証拠も提示されても良く、例えば、クライアントが所与の評価実行の感度レベルを変更するに従い、精度または特異性等の他のメトリックへのその変更の影響が示されても良い。様々な変更の「what−if」調査を可能にするそのようなインターフェースを使用して、ユーザの特定の事業目標(例えば、偽陽性を低く保つ、または正確さを高く保つ)を達成するように、MLSのユーザが、分類カットオフ、モデルの予測がモデルの後続の実行において制限されるべき変数値の範囲等の設定を選択することがより容易になり得る。所与の対話セッションの間、ユーザは、評価実行の保存された結果のうちのいずれかに提供を与えることなく、いくつかの異なる設定またはメトリックを変更させ、結果として生じる傾向を観測しても良い。一部の実施形態において、ユーザは、対話型インターフェースを介して、モデルの後続の実行のために使用される1つまたは複数の予測関連設定のそれぞれの目標値を保存するための要求を提出しても良い。
様々な実施形態において、様々な可能性のある設定変更の効果の動的表示は、MLSのバックエンド構成要素(例えば、モデル実行結果が得られ、記憶され、かつ変更の影響が迅速に定量化される様々なMLSサーバ)と、実行結果が表示され、クライアントとインターフェースの様々な制御要素との対話が最初に捕捉される、フロントエンドまたはクライアント側のデバイス(例えば、ラップトップ、デスクトップ、スマートフォン等に実装されるウェブブラウザまたはGUI)との間の効率的通信によって、可能にされても良い。一部の実施形態において、クライアントがインターフェースを介して設定を変更するに従い、変更の指標が、MLSのバックエンドサーバに迅速に送信されても良い。バックエンドサーバは、表示されるデータセットへの変更の結果を迅速に計算し、表示を更新するのに必要なデータをまたフロントエンドデバイスに送信しても良い。一部の実装例において、スライダ等の連続変動制御装置がある値から別の値に遷移するためにクライアントによって使用されるとき、フロントエンドデバイスとバックエンドサーバとの間の複数のそのような対話は、表示への連続的変更をシミュレーションするために、すぐさま起こっても良い(例えば、最新情報が1秒あたり数回計算され、表示されても良い)。少なくとも一部の実施形態において、クライアント指示の変更の影響のうちの少なくとも一部を計算するために必要な論理は、対話型インターフェース自体内、またはクライアント側のデバイスがグラフィカル表示のために使用される他のサブ構成要素に組み込まれても良い。
図62は、少なくとも一部の実施形態に従った、機械学習サービスが、クライアントが様々な予測の質メトリック目標間のトレードオフを調査し、モデル実行結果を解釈するために使用することができる設定を変更することを可能にする、対話型グラフィカルインターフェースを実装したシステム環境例を例示する。システム6200において、モデルに対して使用される1つまたは複数の訓練データセット6202は、例えば、MLSのクライアントによって提出された訓練要求またはモデル生成要求において識別されても良い。モデルジェネレータ6252は、(例えば、先に記載された種類の特徴変換を生入力データに適用した結果を含む)様々な入力変数の値に基づいて、観測記録に対する1つまたは複数の出力変数の値を予測するために、訓練データセット6202を使用して、モデル6204を訓練しても良い。
描写される実施形態において、モデル6204が十分な程度まで訓練された後、1つまたは複数の評価実行が、例えば、訓練の間に調べられなかった観測に関してモデルの予測がどれくらい良好かを判定するために、出力変数(複数可)の値が既知である(モデルを訓練するために使用されなかった)観測記録を使用して行われても良い。評価データセット6212は、システム6200にそのような観測記録を含んでも良い。訓練されたモデル6204は、モデル実行部6254Aによって入力として評価データセット6212を提供されても良い(例えば、図1に示されるサーバプール185のMLSサーバのうちの1つでの処理実行)。少なくとも一部の実施形態において、(図4に示されるジョブに類似した)それぞれのジョブは、モデルを訓練するため、及びモデルを評価するために、スケジュールされても良い。
描写される実施形態において、評価の結果のうちの少なくとも一部は、自身に代わって評価が行われるクライアントまたはユーザへの表示のために、パッケージにされても良い。例えば、一組の評価実行結果データ6222は、対話型グラフィカルインターフェース6260(例えば、クライアントコンピューティングデバイスにインストールされたウェブブラウザ、またはカスタムGUIツール)のためにフォーマットされ、送信されても良い。結果データセット6222は、例えば、評価実行の1つまたは複数の出力変数の統計的分布6232、予測解釈閾値(PIT)6234の1つまたは複数の今のところ選択されている値もしくはMLS提案の値(例えば、二項分類のためのカットオフ)、及び/または評価実行に関する1つまたは複数の品質メトリック6236(例えば、正確さ、偽陽性率等)の値のうちのいくつかの組み合わせを含んでも良い。一部の実施形態において、例えば、使用されるグラフィカルインターフェースの種類に応じて、結果データがどのように表示されるか(例えば、ウェブページレイアウト詳細)に関する命令またはガイドラインもまた、バックエンドMLSサーバから、データのグラフィカル表示が生成されるデバイスに送信されても良い。対話型グラフィカルインターフェース6260は、所与の対話セッションの間の評価の結果を見て、分類カットオフ等の様々な予測設定を用いて実験し、そのような設定に変更を加えることと関連したトレードオフを観測することを可能にする様々な制御装置を含んでも良い。対話型グラフィカル表示の構成要素の例、及び異なる実施形態において使用されても良い様々な制御装置は、図63〜図69に示される。
評価結果データが表示されるクライアントは、制御装置のうちの1つまたは複数を使用して、1つまたは複数の設定の所望のまたは目標値を指示しても良い。目標値の選択は、例えば、クライアントが1つの変更を加え、その変更の影響を観測し、その変更を取り消し、次いで別の変更を加え、その影響を見て、以下同様を行なっても良い、所与のセッションの間のいくつかのクライアント対話反復6241を伴っても良い。最終的に、少なくとも一部の事例では、クライアントは、予測解釈閾値(PIT)6242の目標値等の特定の設定を選択しても良い。少なくとも一部のシナリオでは、選択された目標値は、MLSによって最初に提案されても良いPIT値6234と異なっても良いが、一部の事例では、クライアントは、提案されたPIT値を変更しないと決定しても良い。少なくとも1つの実装例において、クライアント選択のPIT値6242は、MLSのレポジトリ、例えば、図1の人工物レポジトリ120に記憶されても良い。保存されたPIT値6242は、訓練済みモデル6204の1つまたは複数の後続の実行、例えば、評価後データセットまたは本番データセット6214に対してモデル実行部6254Aを使用して行われても良い実行の結果を生成するために、使用されても良い。少なくとも一部の実施形態において、同じモデル実行部6254A(例えば、同じバックエンドMLSサーバ)は、訓練済みモデルの評価実行及び評価後実行の両方のために使用されても良いことが留意される。
図63は、少なくとも一部の実施形態に従った、対話型グラフィカルインターフェースを介して提供され得る二項分類モデルの評価実行の結果の表示例を例示する。描写される実施形態において、結果は、機械学習サービスとの対話のためのブラウザベースのコンソールの一部を形成するウェブページ6300内に表示されても良い。他の実施形態において、対話型制御装置と類似した表示は、ウェブブラウザの使用を必要としないスタンドアロンGUI(例えば、ラップトップ、デスクトップ、タブレット、またはスマートフォン等の顧客のコンピューティングデバイスで実行するシンクライアントプログラムまたはシッククライアントプログラム)を使用して、提供されても良い。
ウェブページ6300のメッセージ領域6302は、表示されているデータが、モデルへの入力として特定のデータセット「EDS1」が使用されたモデル(「M−1231」)の特定の評価実行に対応していることを示している。描写される実施例において、M−1231は、二項分類モデル、すなわち、目標が、評価データセットEDS1の観測記録を、単純に「0」及び「1」とラベル付けされたクラス等の2つのクラスのうちの1つに分類することであるモデルである。メッセージ領域はまた、グラフG1及びスライダ制御装置S1の使用に関する説明的テキストも含む。
グラフG1は、「スコア」とラベル付された出力変数の分布を例示し、つまり、X軸がスコアの値を表す一方で、Y軸は、評価データセットEDS1の観測記録の数を示す。観測記録の各々は、スコア値及び「カットオフ」と呼ばれるクラス境界に基づいて、2つのクラス「0」及び「1」のうちの1つの中に入れられる。描写されるシナリオにおいて、例えば、スコア値が0〜1の範囲内の実数であり、カットオフ値が0.5に設定された場合、0.49のスコアを有するEDSの観測記録が、「0」クラスの中に入れられる一方で、0.51のスコアを有する観測記録は、「1」クラスに入れられる。二項分類のカットオフ値は、予測解釈閾値(PIT)の一例を表し、様々な種類の機械学習問題において、他の予測解釈閾値が、使用されても良い。例えば、一部の種類の回帰問題において、許容できる平均二乗エラー範囲(例えば、X〜Yの平均二乗エラー値)内の予測を表す出力変数のサブ範囲の境界は、予測解釈閾値として機能しても良い。n方分類に関して、Nクラスのうちのどれに、特定の観測記録が入れられるか(または観測記録が未分類と見なされるべきかどうか)を判定するために使用される1つまたは複数の出力変数の境界値は、予測解釈閾値を表しても良い。
例示される例において、EDS内の観測記録の各々は、観測記録に関する「グラウンドトルース」を示すラベル「0」または「1」を含んでも良い。これらのラベルは、グラフG1を描画するための観測記録を分けるのに使用され、例えば、ラベルが「0」である記録が、曲線「「0」とラベル付けされた記録」を使用して示される一方で、残りの記録は、曲線「「1」とラベル付けされた記録」を使用して示される。2つのグループの各々内で、(ページ6300の要素6350に示されるように)カットオフの0.5の値を仮定すると、いくつかの観測記録が正しいクラスの中に入れられる一方で、他の観測記録は、間違ったクラスに入れられる。所与の観測記録のグラウンドトルース値が「0」であり、スコアがカットオフ未満である場合、「真陰性」と呼ばれる正しい分類結果が生じ、つまり、そのラベルの正しい値は「0」であり、カットオフを使用して選択されたクラスは、正しい値と一致する。グラウンドトルース値が「1」であり、スコアがカットオフを超える場合、「真陽性」と呼ばれる正しい分類が生じる。グラウンドトルース値が「0」であり、スコアがカットオフを超える場合、「偽陽性」と呼ばれる間違った分類が生じる。最後に、グラウンドトルース値が「1」であり、スコアがカットオフ未満である場合、観測記録は、「0」クラスの中に入れられ、「偽陰性」と呼ばれる間違った分類が生じる。二項分類問題における所与の観測記録に対して可能な判定の4つの種類(真陽性、真陰性、偽陽性及び偽陰性)は、本明細書で、それぞれの「予測解釈判定」とも称され得る。他の種類の予測解釈判定は、他の種類の機械学習モデルであるとき、行われても良い。
グラフG1において、曲線ABCEAによって境界をつけられた領域は、真陰性を表し、曲線CFGDによって境界をつけられた領域は、真陽性を表す。「0」及び「1」ラベルを表す曲線間の交差軸の領域は、間違った分類判定を表す。偽陽性が、交差軸領域HCDによって現在のカットオフ値6320の右側に表される一方で、偽陰性は、交差軸領域CHEによって現在のカットオフ値6320の左側に表される。4つの種類の判定、真陰性6331、真陽性6334、偽陰性6332、及び偽陽性6333の相対数はまた、グラフG1の下のバーB1にも示される。少なくとも一部の実施形態において、4つの種類の予測解釈判定に対応する評価データセットにおける観測記録のパーセンテージ及び/または実際のカウントが、ウェブページ6300に示されても良い。例えば、図63において、EDS1の観測記録のうちの4502または45%が真陰性に相当し、EDS1の観測記録のうちの698または7%が偽陰性であり、EDS1の観測記録のうちの1103または11%が偽陽性であり、EDS1の残りの3698記録、または37%が真陽性である。
描写される実施形態において、G1等のグラフ及びB1等のバーを使用した評価実行の結果の表示に加えて、ウェブページ6300はまた、表形式の少なくともいくつかのメトリックも示しても良い。例えば、ウェブページの領域6351は、EDS1の観測記録の総数、カットオフ値、「1」クラスに入れられた記録の数/パーセンテージ(偽陽性と真陽性との合計)及び「0」クラスに入れられた記録の数/パーセンテージ(真陰性と偽陰性との合計)、分類判定が正しく下された記録の数/パーセンテージ(真陰性と真陽性との合計)、ならびに間違った判定が下された記録の数/パーセンテージ(偽陽性と偽陰性との合計)を示しても良い。一部の実施形態において、他のメトリックが、表示されても良い。
ウェブページ6300において、いくつかのグラフィック要素及び/またはテキスト要素が、ユーザ対話に応答して動的に再描画または更新されても良い。したがって、例えば、適切な許可を与えたユーザは、マウス(または、タッチスクリーンインターフェースの場合、スタイラスまたは指)を使用して、スライダ制御装置S1を操作しても良い。S1は、カットオフ値を減少させるために(矢印6310によって示されるように)左に、またはカットオフ値を上昇させるために、(矢印6311によって示されるように)右に動かされても良い。カットオフ値が変更されるに従い、(図64a及び図64bに示され、以下にさらに詳細に論じられるように)4つの判定グループのうちのいくつかまたは全て内に含まれる観測記録の数が変化しても良く、そのような変化は、ウェブページ6300上にリアルタイムで更新されても良い。さらに、領域6351内に示されるメトリックの値もまた、カットオフ値が変更されるに従い、動的に更新されても良い。そのような動的更新は、ユーザにとって関心のある、メトリックへのカットオフ値の変更の影響の容易に理解できる表示をユーザに提供し得る。一部の実施形態において、ユーザは、値が動的に表示及び更新される一組のメトリック、例えば、値が、リンク6354のクリックの結果として表示される規定のメトリックまたは「詳細な(advanced)」メトリックのいずれかによって示されるメトリックを変更することができても良い。一部の実装例において、色分け、異なる太さの線、異なるフォント等の他の視覚的な合図を使用して、グラフG1、バーB1、領域6351等の様々な部分を区別しても良い。
少なくとも一部の実施形態において、機械学習サービスは、今のところ所与のモデルと関連するカットオフ値(または他の予測解釈閾値)をレポジトリに保存しても良い。一実施形態において、カットオフの最初の提案された値は、MLS自体によって選択されても良く、この値(例えば、図63に示されるシナリオ例において0.5)は、既定値として記憶されても良い。権限を与えられたユーザは、ウェブページ6300等のインターフェースを使用して、カットオフの変更の影響を調査し、次いでカットオフの新しい値が、モデルの1つまたは複数の後続の実行(例えば、追加の評価実行、または評価後本番実行のいずれか)に対して使用されるべきであることを判定しても良い。MLSは、ウェブページ6300のボタン制御装置セット6352の「新しいカットオフを保存する」ボタンを使用して、将来の実行のためにカットオフの新しい値を保存するように、命令されても良い。以下にさらに詳細に論じられるように、一部の実施形態において、ユーザは、例えば、「クラスラベルを編集する」ボタン制御装置を使用して、(「0」及び「1」等の)クラスラベルをより意味のある文字列に変更することができても良い。カットオフは、「カットオフをリセットする」ボタン制御装置を使用してカットオフの規定値にリセットされても良い。少なくとも一部の実施形態において、表示されている表示結果に満足していないユーザは、ウェブページ6300を介して、例えば、ボタン制御装置セット6352に示されるボタン制御装置、「モデルを再評価する」または「モデルを再訓練する」を使用して、モデルを再評価するか、またはモデルを再訓練するための要求を提出しても良い。要求のうちの一部は、追加のパラメータを判定するために、MLSバックエンドのクライアントとのさらなる対話が必要であっても良い(例えば、新しい評価データセットが再評価のために指定されても良い)。描写される実施形態において、異なるウェブページが、追加のパラメータの指標を有効にするために、ボタン6352のうちの1つのクライアントのクリックに応答して表示されても良い。様々な実施形態において、図63に示されるもの以外の他の種類の制御装置が、様々なモデルの種類のための類似した種類の機能を達成するために、実装されても良い。一部の実施形態において、連続変動制御装置要素が、クライアントがカットオフ値等の設定を円滑に変更することを可能にするために実装されても良い一方で、他の実施形態において、ユーザがいくつかの不連続pre−d値の間から選択することを可能にする不連続変動制御要素が、使用されても良い。
図64a及び64bは、少なくとも一部の実施形態に従った、対話型グラフィカルインターフェースの特定の制御を介してクライアントによって示された予測解釈閾値の変更の、一組のモデルの品質メトリックへの影響を総じて例示する。図64aは、カットオフがC1の値に設定された、二項分類モデルの評価実行の結果を例示する。このカットオフ値を用いて、グラフG2及びバーB2に示されるように、真陰性判定が評価データセット例の4600個の観測記録に対して下されている一方で(合計の46%)、真陽性判定は、3400個の観測記録に対して下されている。700個の判定が偽陰性であり、1300個が偽陽性である。
用途に応じて、クライアントは、異なる優先度または異なる重要性レベルを、モデルに関する様々な品質メトリックに割り当てても良い。例えば、偽陽性分類の負の事業結果が、偽陰性の負の事業結果よりもはるかに高い場合、クライアントは、モデルの解釈閾値(複数可)が、一般に、より少ない偽陽性判定が起こる可能性が高いような方向に変更されるべきであることを判定しても良い。二項分類モデルが、オンライン事業の特定の顧客が(例えば、他の人のクレジットカードを使用することによる)不正取引を試みたかどうかを判定するために使用されるシナリオを考えられたい。観測記録が「1」に分類されている場合、対応する顧客は、自身の取引が不正取引であると疑われていると接触及び通知されても良い。これは、偽陽性判定が下された場合、クライアントは、不正行動の冤罪を被り得ることを意味する。そのようなシナリオにおいて、eビジネス業者は、トレードオフが偽陰性と偽陽性との間で行われる場合、eビジネス業者は偽陽性よりも多くの偽陰性を好むと決定しても良い。反対のトレードオフが、偽陰性の現実世界の結果がはるかにより高いシナリオにおいて、例えば、可能性のある腫瘍に対する治療が、観測が偽陰性に間違って分類された患者に対して拒否され得る腫瘍検出用途において、好ましい場合がある。
図64aのシナリオ例で対処される特定の機械学習問題に関して、クライアントは、偽陽性の率が高すぎると判定し、したがって、矢印6434によって示されるように、スライダS1を使用して、カットオフ値をC1からC2に上昇させることを決定した。上昇の影響は、図64bに例示される。スライダが右に向かって動かされるに従い、変更されたカットオフによって影響されるグラフG2のいくつかのサブ領域の視覚的特性(例えば、シェーディング、色等)が、リアルタイムで変更されても良い。例えば、偽陽性の数が、意図されるとおり減少し、(図64aの)1300から(図64bの)500に減少する。真陰性の数が、4600のままで変更されない一方で、偽陰性の数は、実質的に700から1800に上昇する。真陽性の数も、3400から3100にいくらか減少する。様々な実施形態において、カットオフの変更の効果の動的視覚化は、様々なメトリックのテキスト表現のみが提供された場合に可能であったであろうよりも、情報に基づいた判定をMLSクライアントが下す手助けをし得る。さらに、テキスト表現のみの提供は、テキストのみのシナリオにおいて、閾値の特定の値周辺での様々なメトリックの変更率を理解することがはるかにより困難であり得るため、カットオフまたは他の同様の予測解釈閾値の特定の目標を決定することをより困難にし得る。例えば、カットオフ値への小さな変更は、他の変更よりも、スコア値の一部のサブ範囲内の偽陽性率または偽陰性率にはるかに大きい影響を与え得、そのような高次効果は、図64a及び64bに示されるもの等の動的に更新されるグラフなしでは、理解するのが困難であり得る。
様々な実施形態において、図63に示されるように、いくつかの異なる予測の質メトリックは、(領域6351に見られるような)表形式で、またはグラフィカル要素を使用してのいずれかで示されても良い。図65は、少なくとも一部の実施形態に従った、それぞれの制御装置が対話型グラフィカルインターフェースに含まれ得る機械学習モデルの評価実行に関する詳細なメトリックの例を例示する。図63に表示されるコンテンツの多くは、図63のウェブページ6300のコンテンツと同一である。図63と図65との間の主な違いは、ユーザがウェブページ6300のリンク6354をクリックした結果として、今では(領域6351に示されるものを超える)追加のメトリックが表示されていることである。描写される実施例において、予測の質メトリック感度(スライダ6554A)、特異性(スライダ6554B)、精度(スライダ6554C)、及びF1スコア(スライダ6554D)のそれぞれの水平のスライダ制御装置6554が、示される。少なくとも一部の実施形態において、クライアントは、メトリックの規定のグループまたはコアグループを表示する領域6351の一部として、または詳細なメトリック領域内のいずれかで、クライアントがどのメトリックを見る、及び/または変更することを望むかを決定することができても良い。様々な実施形態において、表示及び/または操作に利用可能なメトリックは、モデルの種類に応じて異なっても良く、数ある中で、正確さメトリック、再現度メトリック、感度メトリック、真陽性率、特異性メトリック、真陰性率、精度メトリック、偽陽性率、偽陰性率、F1スコア、適用範囲メトリック、絶対パーセントエラーメトリック、二乗エラーメトリック、またはAUC(曲線下面積)メトリックを含んでも良い。一部の実施形態において、クライアントは、インターフェースを使用して、コアメトリックグループと詳細なメトリックグループとの間のメトリックを動かし、及び/または1つまたは両方のグループの中に含められる追加のメトリックを定義することができても良い。
図65に例示される実施形態において、スライダ6554A〜6554D及びスライダS1の組み合わせは、異なるメトリック間の関係を視覚的に調査するために、クライアントによって、使用されても良い。例えば、スライダS1を使用してカットオフを変更することは、スライダ6554A〜6554Dの位置への動的更新(ならびにバーB1へ、及び領域6351への更新)をもたらし得、どのようにカットオフ値が感度、特異性、精度、及びF1スコアに影響するかを視覚的に示す。スライダ6554A〜6554Dのいずれか1つの位置を変更することは、S1、バーB1、及び残りのスライダ6554への対応するリアルタイム変更をもたらし得る。一部の実施形態において、クライアントは、例えば、異なるメトリックに対して使用されるべき特定のタイプの制御装置(スライダ、ノブ等)を選択することによって、対話型インターフェース内に表示される様々な領域のレイアウトを変更することが可能であり得、これらのメトリックは、グラフィカル制御装置を使用して直接変更可能であるものとし、かつこれらのメトリックは、テキスト形式で示されるものとする。
図66は、少なくとも一部の実施形態に従った、分類ラベルを変更し、かつ出力変数値に基づいて選択された観測記録の詳細を見るために使用され得る対話型グラフィカルインターフェースの要素の例を例示する。描写される実施形態において、MLS(または自身に代わってモデルが訓練及び評価されるクライアント)は、観測記録が入れられるべきクラスに対して、規定名「0」及び「1」を最初に選択した可能性がある。後に、クライアントは、よりユーザフレンドリな名称が、そのクラスに対して使用されるべきであると決定しても良い。したがって、描写される実施形態において、「クラスラベルを編集する」ボタンがクリックされ、より小さいポップアップウィンドウ6605が表示されても良い。ウィンドウ6605、ユーザは、「買わない」(ラベル「0」に置き換える)及び「買う」(ラベル「1」に置き換える)等のラベルに対して、新しい名称を入力しても良く、モデルが、買い物客が購入する(「1」クラス)、または購入しない(「0」クラス)可能性についての予測に基づいて、買い物客を分類していることを示す。
いくつかの他の制御装置は、様々な実施形態において、MLSの対話型グラフィカルインターフェースのユーザに提供されても良い。一部の実施形態において、例えば、クライアントは、モデルによって特定のスコアが計算されたことに関する観測記録の詳細を調べることを望み得る。図66に例示される実施形態において、ユーザは、グラフG1内の様々な点で(例えば、おおよそ0.23のスコアに対応する、点6604で)、マウスクリックしても良く、インターフェースは、クリックされた点によって示されるものに近いスコア値を伴う観測記録のリスト6603を表示することによって応答しても良い。指先またはスタイラス等の他のタイプのインターフェースが、他の実装例において、使用されても良い。クライアントが点6604でクリックするとき、描写される実施例において、対応するリンクを伴う3つの観測記録OR231142、OR4498、及びOR3124のリスト6603が示されても良い。クライアントが、リストの観測記録の識別子のうちの1つでクリックする場合、及びクリックするとき、その観測記録の様々な変数の値は、描写される実施例におけるORコンテンツパネル6642等の別のウィンドウまたはパネル内に表示されても良い。観測記録OR4498の入力変数IV1、IV2、…、IVnの値は、図66に例示される実施例において、リスト6603の対応するリンク上でのクリックの結果として、示されても良い。
図63〜図66において、二項分類モデルの評価に関する表示ビュー及び対話を例示した。少なくとも一部の実施形態において、MLSクライアントが、他のタイプのモデルに対する評価結果を調査し、かつそれと対話することを可能にする類似の表示が、サポートされても良い。図67は、少なくとも一部の実施形態に従った、対話型グラフィカルインターフェースを介して提供され得る多重分類モデルの評価実行の結果の概観例を例示する。示されるように、ウェブページ6700は、表示されているデータが、特定のデータセット「EDS3」がモデルへの入力として使用された、モデル(「M−1615」)の特定の評価実行に対応するということを示す、メッセージ領域6702を含む。4方分類に対する改良された混同行列6770が、評価実行に対して示される。「クラス1」〜「クラス4」の4つのクラスに対して、実際のまたは真の母集団(及び対応する実際のパーセンテージ)が、6772とラベル付けされた列に示されている。これらの4つのクラスは、本明細書において、「非規定クラス」と総称され得る。
モデル「M−1615」は、描写される実施形態において、少なくとも2つの要因に基づいて、観測記録を、5つのクラス(4つの非規定クラス「クラス1」〜「クラス4」ならびに「なし」とラベル付けされた規定クラス)にカテゴリー化する。すなわち、(a)任意の所与の観測記録が、4つの非規定クラスのうちのいずれかに属するという、予測された確率、及び(b)記録を、規定クラスの代わりに、非規定クラスに入れることに対する、最小の予測された確率閾値(MPPT)。評価データセットEDS3の各観測記録に対して、非規定クラスの各々に属するその記録のそれぞれの確率が、計算されても良い。4つの予測された確率のうちのいずれか1つが、MPPTを超過した場合、記録は、対応するカテゴリーに入れられても良い。例えば、MPPTが25%に設定され、かつモデルが、所与の記録OR1が4つの非規定クラスに属するという確率が、67%(「クラス1」)、35%(「クラス2」)、2%(「クラス3」)、及び6%(「クラス4」)であるということを予測するシナリオを考えられたい。この場合、67%は、MPPT値25%を超過することから、OR1は、「クラス1」に入れられるであろう。MPPTが、例えば、スライダ6750を使用して、70%に変更された場合、67%は、70%未満であることから、OR1は、代わりに「なし」クラスに入れられ、かつユーザは、変更が、行列6770において、動的に更新されていることを見ることができるであろう。少なくとも一部の実施形態において、規定のMPPT値または提案されたMPPT値は、MLSによって(1/(非規定クラスの数))に設定されても良い(例えば、4つの非規定クラスに対して、モデルは、MPPTとして1/4または25%を提案するであろう)。このため、MPPTは、多重分類モデルに対する予測解釈閾値(PIT)の例と見なされ得る。
5つのカテゴリーの各々に入れられた、各クラスの観測のパーセンテージは、4×5の予測されたパーセンテージ行列6775に示される。描写される実施例において、列6772に示されるように、合計10000個の観測のうち、2600個の観測記録は、実際には「クラス1」であるが、モデルは、領域6780に示されるように、合計3176個の観測記録が「クラス1」に属すると予測した。実際には「クラス1」に属した2600個の観測のうち、MPPTの現在の値でもって、95%は、「クラス1」に属するとして正確に予測され、1%は「クラス2」に、1%は「クラス3」に、3%は「クラス4」に、及び0%は「なし」に属するとして、不正確に予測された。図67に示される行列要素に加えて、他のメトリック(予測の全体的な正確さ等)が、図63に例示されるものと類似の技法を使用して示されても良く、例えば、様々な実施形態において、多重分類に関する一組のコアメトリック、または高度なメトリックを表示するためのリンクが提供されても良い。一部の実施形態において、ユーザは、異なるクラスに対するそれぞれのMPPTを指定することが可能であっても良く、それらの変更の効果を動的に表示させることが可能であっても良い。少なくとも1つの実施形態において、行列要素は、例えば、パーセンテージが100%に近くなるにつれて、色コード化されても良く、対応する要素の色または背景は、暗緑色に近付けて設定されても良く、かつパーセンテージが0%に近くなるにつれて、対応する要素の色または背景は、明赤色に近付けて設定されても良い。
一部の実施形態において、MLSは、ユーザが、どのように回帰モデルに対する予測エラーが定義されるべきかを正確に定義もしくは選択すること、及び/または選択されたエラー公差閾値に対する予測エラーの分布を調査することを可能にするように、対話型グラフィカル表示を提供しても良い。図68は、少なくとも一部の実施形態に従った、対話型グラフィカルインターフェースを介して提供され得る回帰モデルの評価実行の結果の概観例を例示する。示されるように、ウェブページ6800は、表示されているデータが、特定のデータセット「EDS7」がモデルへの入力として使用された、モデル(「M−0087」)の特定の評価実行に対応するということを示す、メッセージ領域6802を含む。ページ6800の右側において、クライアントには、最も関心の高いエラー定義を選択するためのいくつかの異なるオプションが提供され、領域6812内のスライダS1は、グラフ6800においてエラー分布を表示するために使用されるべきエラー公差閾値を示すために提供される。出力変数の予測された値と真の値との間の差異の絶対値が、現在、エラー定義として選択されている(領域6804において、選択されたラジオボタン制御によって示されるように)。スライダS1は、現在、60以下の値を伴うエラー(領域6804の現在のエラー定を考慮した、600の最大の可能なエラーのうち)が許容可能であるということを示すように位置付けられている。グラフ6820において、許容できる予測(すなわち、スライダS1によって現在示されている公差限界内の予測)、及び真の値の異なる範囲に対する公差外予測の分布が示される。スライダS1が左または右に移動するにつれて、許容できる予測6868と公差外予測6867との間の境界は、変化し得る。クライアントがエラーの異なる定義を使用することを望む場合、いくつかの選択肢が利用可能である。例えば、領域6804内のボタンの代わりに、領域6806内のラジオボタンを選択することによって、クライアントは、エラーを、真の値と予測された値との間の(非絶対)算術的差異として定義し得、予測されたエラーの方向は、クライアントにとって重要であるということを示す。領域6808内のラジオボタンを使用して、エラーの方向及び真の値に対するその値の両方を、エラー定義に含めても良い。一部のユーザは、エラーの彼ら自身の定義を示すことを望み得、これは、領域6810内のラジオボタンを選択すること、及び提供されたリンク上でクリックすることによって、行われても良い。クライアントがエラーの定義を変更するとき、少なくとも一部の実施形態において、領域6812のエラー公差スライダスケール内の最大エラーもまた、適宜変更されても良い。図68に示される対話型制御装置の種類を使用して、MLSクライアントは、それらの特定の回帰問題に対する最も適切なエラーの定義を選択すること、及び(それらのエラー公差レベルに基づいて)エラーの最も大きい及び最も小さい量が予測された出力値の範囲を判定することもまた、可能であり得る。一部の実施形態において、回帰モデルに対する他のタイプの対話型視覚化もまた、または代わりに、表示されても良い。
図69は、少なくとも一部の実施形態に従った、クライアントが調査評価結果に基づいて予測解釈設定を変更することを可能にする、対話型グラフィカルインターフェースを実装した機械学習サービスで行われ得る動作の態様を例示する流れ図である。要素6901に示されるように、特定のモデルM1は、例えば、クライアントからプログラム的インターフェースを介して受信された要求に応答して、機械学習サービスにおいて、訓練されても良い。モデルは、所与の組の観測記録の各観測記録に対するOV1等の1つまたは複数の出力変数の値を計算しても良い。要素6904に示されるように、評価実行ER1を行なって、所与の評価データセットの各記録に対するそれぞれのOV1値を得ても良い。
対話型グラフィカルディスプレイを介した表示のために、評価実行ER1の結果の少なくとも選択されたサブセットを表すデータセットDS1が生成されても良い(要素6907)。DS1が得られる対話型ディスプレイは、分類カットオフ及び/もしくは様々な他のタイプの予測解釈閾値等の1つまたは複数の予測関係の設定を変更するために使用することができる、連続変動スライダ要素ならびに/または不連続変動要素等の様々な制御要素を含んでも良い。OV1もしくは他の出力または入力変数の統計的分布、(二項分類モデル評価の場合)真陽性、偽陽性、真陰性、及び偽陰性の数及び/またはパーセンテージ等の1つまたは複数の予測の質メトリック、ならびに予測解釈閾値の少なくとも1つの提案されたまたは規定値等の、ER1に対応するいくつかの異なるデータ要素のうちのいずれも、表示のためにデータセットDS1に含まれても良い。データセットDS1は、描写される実施形態において、グラフィカルインターフェースが表示されるべきデバイス(例えば、インストールされたウェブブラウザまたはスタンドアロンGUIツールを伴う、クライアントによって所有されるコンピューティングデバイス)に送信されても良い(要素6910)。
ユーザによる、グラフィカルインターフェースの1つまたは複数の対話型制御装置の操作に基づいて、二項分類(要素6913)に対するカットオフ値等の特定の予測解釈閾値(PIT1)に対する目標値が、判定されても良い。制御装置の操作(例えば、マウス、スタイラス、または指先を使用して行われ得る)は、グラフィックスが表示されているコンピューティングデバイスにおいて検出されても良く、かつ、一部の実施形態において、例えば、先で説明されるものに類似する1つまたは複数のAPIの呼び出しを使用して、MLSの1つまたは複数の他の構成要素(バックエンドサーバ等)に通信し戻されても良い。他の実施形態において、制御装置の操作の指標は、バックエンドMLSサーバに送信される必要はなく、代わりに、ディスプレイを更新するために必要とされる計算のうちの一部または全てが、グラフィカルインターフェースが表示されるデバイス上で行われても良い。制御装置の操作に起因する、DS1の1つまたは複数の他の要素への変更が計算されても良く(要素6916)、かつユーザが制御要素を移動させる際に、ディスプレイへの対応する変更がリアルタイムで開始されても良い。一実装例において、スライダ等のグラフィカル制御要素の位置への変更は、それらが行われる際に、追跡されても良く、かつ様々なメトリックの対応する更新された値は、グラフィカル制御要素の操作への瞬時またはほぼ瞬時の応答の印象をユーザに与えるように、可能な限り素早く、表示デバイスに送信されても良い。ユーザが、PIT1の特定の目標値が、例えば、モデルのその後の実行中の使用のために、記憶されるべきであるということを示す場合、及び示すとき、目標値は、描写される実施形態において、MLSレポジトリに記憶され得る(要素6919)。一部の実施形態において、異なるPIT1値は、モデル、ユーザ、評価データセット、及び/またはユースケースの異なる組み合わせに対して記憶されても良く、例えば、選択されたPIT値を含むレポジトリ記録は、タプル(モデルID、評価データセットID、ユーザ/クライアントID、ユースケースID)の一部の組み合わせを使用してインデックス化されても良い。
1つまたは複数の事後評価モデル実行の結果は、保存されたPIT1値を使用して、生成されても良く、かつ関心のあるクライアントに提供されても良い(要素6922)。一部の実施形態において、保存されたPIT1値は、他の評価のために使用されても良く、ならびにまたは代わりに事後評価実行のために使用される。一実施形態において、モデルを訓練するための最初の要求(またはモデルを再訓練/再評価するための要求)もまた、対話型グラフィカルインターフェースの要素を介して受信されても良い。一部の実施形態において、グラフィカルインターフェースはまた、所与の評価実行中に検出される変則または異常な結果のリスト等の、クライアントの代わりに行われるモデル評価及び/または他のアクティビティに関する警告または情報メッセージを表示しても良い。MLSは、例えば、一実施形態において、評価データセットの入力変数の統計的分布が、訓練データセットにおける同じ変数の統計的分布とどれほど異なるかを確認し、かつ分布が実質的に異なると見出された場合、警告を表示しても良い。少なくとも一部の実施形態において、いくつかの異なる評価実行の結果は、インターフェースの単一表示で表示されても良い(例えば、異なる評価実行に対する結果が異なる「深さ」において示される3次元表示を模倣することによって、または異なる評価実行からの平均結果を計算することによって)。
少なくとも一部の実施形態において、図63〜68に例示されるウェブページの種類の代わりに、またはそれに加えて、コマンドラインツールまたはアプリケーションプログラミングインターフェース(API)等の他のタイプの対話型インターフェースが、類似の目標を達成するために使用されても良い。したがって、例えば、MLSクライアントは、分類及び/または回帰モデルを含む、様々なタイプのモデルの評価実行の予測結果の分布の指標を受信するために、コマンドラインツールまたはAPI呼び出しを介して、1つまたは複数の要求を提出しても良い。クライアントは、予測解釈閾値への変更を示すように、インターフェースと対話しても良く(例えば、新しいコマンドを提出する、または異なるAPIを呼び出す)、かつ様々なメトリックへの対応する変更が、適宜表示されても良い(例えば、テキスト形式において)。同様に、クライアントは、特定の解釈閾値がその後のモデルの実行における使用のために保存されるべきであることを示す、APIまたはコマンドラインを使用しても良い。一部の実施形態において、図63〜68に例示されるグラフィカル表示のうちの少なくとも一部の近似は、テキストシンボルを使用して提供されても良く、例えば、比較的粗雑なバージョンのグラフが、ASCII文字の組み合わせを使用して表示されても良い。音声及び/またはジェスチャベースのMLSインターフェースが、一部の実施形態において、使用されても良い。
重複観測記録の検出
いくつかのタイプの機械学習問題に関して、先に論じられたように、観測記録のコレクションは、モデル開発及び使用のそれぞれの段階に対するいくつかのタイプのデータセットに分割されても良い。例えば、一部の観測は、モデルを生成するために使用される訓練データセットに含まれても良く、かつ他は、モデルの予測の質を判定するために使用されるべき1つまたは複数の試験または評価データセットに含まれても良い。(重複検出に関する以下の考察に関しては、「試験データセット」及び「評価データセット」という用語は、本明細書において同義に用いられても良く、同様に、モデルの予測の質または正確さを判定する処理は、モデルの「評価」または「試験」のいずれかとして称され得る。)モデルを訓練した後に、試験データセットを使用することの第一目標のうちの1つは、訓練済みモデルが、訓練データを越えていかにうまく一般化することができるか、つまり、訓練済みモデルが、訓練データセットに含まれなかった「新しい」観測に対する出力変数値をいかに正確に予測することができるかということを判定することである。試験データセットが、訓練データセット内にもあった、多くの観測を期せずして含む場合、試験データセットを使用して行われた予測の正確さは、モデルの優れた一般化能力によるものではなく、大部分は訓練及び試験データセット間の観測記録の重複に起因して、高いと考えられ得る。
本明細書に記載される種類の大規模の機械学習サービス(MLS)において、これらのデータセットの各々は、数百万の観測記録を潜在的に含み得、かつそれは、時折、少なくとも一部の観測記録が、例えば、訓練及び試験データセット間でデータを分割する際のエラーにより、または訓練及び試験段階に対する類似もしくは重複するデータファイルの不用意な使用により、訓練データセットから対応する試験データセットに「漏洩」し得る場合であり得る。そのようなデータ漏洩の確率は、MLSの訓練データセットならびに分散及び並列アーキテクチャのサイズを考慮すると、場合によっては、モデルの訓練及び評価段階が、時間で分離される(例えば、時間、日、もしくは週で)、及び/または異なる組のMLSサーバ上で行われるときに、さらに大きくなり得る。MLS顧客が、訓練及び評価に対して、重複するまたは同一の組のデータを不用意に使用することによって、かなりの量の時間及び/または金銭を無駄にするシナリオを回避するために、少なくとも一部の実施形態において、MLSは、データセットにわたって重複する(または少なくともその可能性が高い)観測記録の効率的な検出に対するサポートを提供し得る。そのようなサポートの不在下では、顧客は、試験または評価実行の終了時まで待機し、実行の結果を調べ、次いで、試験データが訓練データ観測記録を含んだかどうかに関して、主観的判断を下す(例えば、結果が、予想外に正確であると思われる場合)ことができるのみであり得る。以下に記載されるような重複検出能力を使用して、MLS顧客は、DS1が、第2のデータセットDS2(モデルに対する訓練データセット等)内にもあった記録を含む高い確率を有するかどうかを、所与のデータセットDS1(モデルに対する試験データセット等)の処理中に、比較的早期に通知され得、かつそれにより、リソースの無駄遣いを回避し得る。少なくとも1つの実装例において、そのような重複検出は、明確なクライアント要求を必要とすることなく、少なくとも一部のデータセットに対して、規定の設定により行われても良い。
図70は、少なくとも一部の実施形態に従った、機械学習データセットの空間効率の良い表現を利用して、1つのデータセットが機械学習サービスに別のデータセットの重複観測記録を含む可能性が高いかどうかを判定し得る重複検出器例を例示する。特定の機械学習モデル7020を訓練するために使用されるべき訓練データセット7002は、描写される実施形態において、例えば、先に記載されるような「createModel」インターフェース等のMLSのプログラム的インターフェースのクライアントの呼び出しの結果として、MLSにおいて識別されても良い。後に、自身に代わってモデルが訓練されたクライアントは、試験データセット7004を使用して評価されるモデル7020の質を有することを望み得るか、またはMLS自体が、評価に使用されるべき試験データセット7004を識別し得る。データセット7002及び7004の各々は、訓練データセット7002のOR Tr−0、Tr−1、及びTr−2、ならびに試験データセット7004のOR Te−0及びTe−1等の複数の観測記録(OR)を含んでも良い。いずれのデータセットのORの個々のものは、IV1、IV2など等の複数の入力変数(IV)、ならびに1つまたは複数の出力変数OVに対するそれぞれの値を含んでも良い。少なくとも一部の実施形態において、いずれのデータセットのORの全てが、全てのIVに対する値を必ずしも含むわけではない場合があり、例えば、一部の入力変数の値は、一部の観測記録において欠損している場合がある。少なくとも一部の事例では、試験データセット7004は、モデル7020が訓練データセット7002を使用して訓練される時間に、必ずしも識別されているわけではない場合がある。
描写される実施形態において、Bloomフィルタ等の、重複検出のために使用されても良い訓練データセットの少なくとも1つの空間効率の良い代替の表現7030が構築されても良い。一部の実施形態において、スキップリストまたは商フィルタ(quotient filter)等の他のタイプの代替の表現が構築されても良い。所与の空間効率の良い表現7030を構築するために、一部の実施形態において、ORを別の重複として示すときに、観測記録の全ての変数が考慮されるべきかどうか、または変数の一部のサブセットが考慮されるべきかどうかを示す定義等の、重複の対応する定義7035が使用されても良い。所与のデータセットに対して適切であり得る異なる重複定義7035の例は、図72に提供され、かつ以下でさらに詳細に述べられる。一部の実施形態において、代替の表現が、モデルの訓練と並行して、生成及び記憶されても良く、そのため、例えば、訓練データセット7002を通る単一パスのみが、(a)モデルの訓練、ならびに(b)代替の表現7030の作成及び記憶の両方に必要とされ得る。代替の表現は、一部の実装例において、訓練データセット自体によって占有されるよりも、はるかに少ない(例えば、少ない桁数)記憶装置またはメモリを必要とし得る。
描写される実施形態において、MLSの確率的重複検出器7036は、代替の表現7030を使用して、試験データセット7004の所与のOR Te−kに関する以下の判定のうちの1つを行なっても良い。すなわち、(a)Te−kが、訓練データセットのORのうちのいずれかの重複ではない、または(b)Te−kが、訓練データセットのORの重複であることの非ゼロの確率を有する、のいずれか。つまり、確率的重複検出器7036が、重複の存在に関する100%の確信を提供することは可能ではない場合がある一方で、検出器は、所与の試験データセットORが重複ではないという100%の確信を持って、判定することが可能であり得る。一部の実施形態において、確率的重複検出器7036は、重複としての所与のORのラベル付けと関連付けられた信頼性レベルまたは確実性レベルを推定または計算することが可能であり得る。
重複検出器7036は、試験データセット7004の複数のORを調べ、かつ調べられたORに対する1つまたは複数の重複メトリック7040を得ても良い。可能なまたは可能性の高い重複として識別されたORの数または割合によっては、重複メトリックは、一部の実施形態において、実際にそれ自体が確率的であり得る。例えば、それは、「試験セット観測記録のX%は、Y%以上が重複であるという、それぞれの確率を有する」という記述の論理的同等物を表し得る。少なくとも1つの実施形態において、クライアントには、観測記録のうちの1つまたは複数が重複であるかどうかに関する、信頼性レベルの指標が提供されても良い。当然のことながら、調べられた試験セットORのいずれも、重複であることの非ゼロの確率を有すると見出されない場合、メトリック7040は、調べられた試験データが重複を含まないということを、100%の確信を持って示しても良い。重複メトリックを得るとき、一部の実施形態において、重複検出器7036はまた、使用されている特定の代替の表現と関連付けられた、偽陽性重複検出の予想される率を考慮に入れても良い。例えば、代替の表現7030として使用されているBloomフィルタが、8%の偽陽性の予想された率を有し、かつ検出された重複の割合もまた、8%(以下)である場合、重複メトリックは、識別された可能な重複の数が、許容できる範囲内であることを単純に示し得る。少なくとも一部の実施形態において、代替の表現の生成に使用される様々なパラメータ(例えば、Bloomフィルタに使用されるビットの数、ならびに/またはBloomフィルタを生成するために使用されるハッシュ関数の数及びタイプ)は、訓練データセットのサイズ、代替の表現の重複予測の所望の偽陽性率など等の要因に基づいて選択されても良い。
少なくとも一部の実施形態において、重複メトリック7040が閾値基準を満たす場合、例えば、k%超の試験データが、重複であることの非ゼロの確率を有する場合、1つまたは複数の重複応答7045が、MLSによって実装されても良い。いくつかの異なる応答措置のうちのいずれも、異なる実施形態において、行われても良く、例えば、クライアントに、重複の可能性を示す警報メッセージが送信されても良く、可能性の高い重複は、試験データセット7004から除去または削除されても良く、試験データの使用を伴う機械学習ジョブは、一時停止、取り消し、または中止等されても良い。少なくとも一部の実施形態において、MLSによって行われる応答措置は、重複メトリック7040に依存し得る。例えば、試験データセットの大部分が、重複を含まないと見出される場合、(小さい)割合の潜在的な重複を示す警報メッセージが、クライアントに送信されても良く、一方で、試験データセットの大部分が、潜在的に重複であると見出される場合、モデル7020の評価は、クライアントが問題を対処するまで、一時停止または停止されても良い。一部の実施形態において、重複分析は、試験データセット7004を使用したモデル7020の評価と並行して実施されても良く、そのため、試験データセットを通る単一パスのみが必要とされ得る。一実施形態において、クライアントは、応答措置を必要とする閾値基準が満たされているかどうかを判定するために、(例えば、MLSのプログラム的インターフェースを介して)MLSによって使用されるべき1つまたは複数のパラメータ(または他の形態のガイダンス)を示しても良い。例えば、クライアントは、試験データセットのランダムに選択された観測記録が重複であるという確率が、P1を超過する場合、特定の応答措置が取られるべきであることを示しても良い。次いで、MLSは、そのような高レベルガイダンスを、試験データセットに対して使用されるべき特定の数的閾値に翻訳しても良い(例えば、利用可能なY個の試験データセット記録のうちの少なくともX個が重複として識別されている場合にのみ、応答措置が取られるものとする)。そのようなシナリオにおいて、クライアントは、試験データセット記録の総数、または応答を作動させる重複の実際の数等の低レベルの詳細を必ずしも認識する必要はない。一部の実施形態において、クライアントは、1つまたは複数の重複メトリック閾値に対して実装されるべき応答、及び/または閾値自体の低レベルの詳細をプログラム的に指定しても良い。
少なくとも1つの実施形態において、重複検出器7036は、応答7045の生成を開始する前に、全試験データセット7004の処理を待機しなくても良く、例えば、百万個のORを有する試験データセットから調べられる最初の100個の観測記録のうちの80個超が、重複であることの非ゼロの確率を有する場合、残りのORを調べるために待機することなく、応答が生成されても良い。以下に記載されるように、一部の実施形態において、図72に例示される技術は、所与のデータセット内(例えば、訓練データセット自体内、試験データセット自体内、または訓練データセット及び試験データセットに分けられるべき事前分割されたデータセット内)で、または任意の所望の対のデータセットにわたって、可能な重複を識別するために使用されても良い。したがって、そのような実施形態において、技術の使用は、試験データセットが訓練データ観測記録の重複を含み得るかどうかを確認することのみに限定されなくても良い。一実施形態において、少なくとも一部のデータセットに関して、重複検出のために使用される代替の表現は、データセットの元の表現よりも少ない記憶装置(または少ないメモリ)を必ずしも利用する必要はないということが留意される。
図71a及び71bは、少なくとも一部の実施形態に従った、機械学習サービスでの重複観測記録の確率的検出のためのBloomフィルタの使用の例を総じて例示する。16ビット(Bit0〜Bit15)を含むBloomフィルタ7104は、描写されるシナリオにおいて、OR7110A及び7110Bを含む訓練データセットから構築されて示される。Bloomフィルタを構築するために、所与のOR7110は、描写される実施形態において、一組のハッシュ関数H0、H1、及びH2の各々への入力として提供されても良い。次いで、各ハッシュ関数の出力は、例えば、モジュロ関数を使用して、フィルタ7104の16ビットのうちの1つにマッピングされても良く、そのビットは、1に設定されても良い。例えば、OR7110Aに関して、Bloomフィルタのbit2は、ハッシュ関数H0を使用して1に設定され、bit6は、ハッシュ関数H1を使用して1に設定され、bit9は、ハッシュ関数H2を使用して1に設定される。OR7110Bに関して、bit4、bit9(既に1に設定された)、及びbit13は、1に設定される。OR7110A及び7110Bの両方がマッピングされるbit9の場合のように、Bloomフィルタ内の所与の位置における1の存在は、異なるORに対して生成されたハッシュ値に(またはさらには異なるハッシュ関数を使用して同じORに対して生成されたハッシュ値)に起因し得る。そのため、フィルタの任意の所与の組のビット位置における1の存在は、フィルタを構築するために使用されるデータセットにおける、対応するORの存在を一意的にまたは必ずしも示唆しなくても良い。Bloomフィルタ7104のサイズは、フィルタを構築するために使用されるデータセットよりもはるかに小さくても良く、例えば、512ビットのフィルタが、データのいくつかのメガバイトの代替の表現として、使用されても良い。
図71bに示されるように、同じハッシュ関数は、訓練データセットに関して可能な重複を検出するために、試験データセットOR7150(例えば、7150A及び7150B)に適用されても良い。特定の試験データセットOR7150が少なくとも1つのゼロを含む一組のビットにマップする場合、重複検出器は、確信を持って、ORが重複ではないと判定し得る。したがって、OR7150Aは、bit3、bit6、及びbit10(それぞれハッシュ関数H0、H1、及びH2を使用して)にマップされ、これらのうちの2つ(bit3及びbit10)は、フィルタが全訓練データセットを使用して完全に投入された後、Bloomフィルタ7104にゼロを期せずして含む。したがって、重複検出分析の結果7190において、OR7150は、重複ではないとして示される。対照的に、OR7150Bは、bit4、bit9、及びbit13にマップされ、これらの全てが、完全に投入されたBloomフィルタに1を期せずして含む。したがって、結果7190において、OR7150は、FP1の一部の基礎となる偽陽性率を伴って、可能性のある重複として示され得る。偽陽性率FP1は、Bloomフィルタのサイズ(使用されるビットの数、この場合は16)、使用されるハッシュ関数の数及び/もしくはタイプ、ならびに/またはフィルタを構築するために使用される観測記録の数の関数であっても良い。一部の実施形態において、フィルタサイズ、ならびに使用されるハッシュ関数の数及びタイプは、Bloomフィルタ生成処理の調整可能なパラメータ7144を介して選択されても良い。異なるパラメータ値が、例えば、訓練データセットの観測記録の推定または予想される数、観測記録の推定または予想されるサイズ等に基づいて、選択されても良い。他の類似のパラメータは、商フィルタまたはスキップリスト等のデータセットの他のタイプの代替の表現から予想される偽陽性率を統制し得る。例示されるBloomフィルタ7104のサイズ(16ビット)は、好ましいまたは必要とされるサイズを表すことは意図されず、異なる実施形態において、任意の所望の数のビットが、使用されも良く、かつ任意の好ましいタイプの任意の所望の数のハッシュ関数が採用されても良いことが留意される。例えば、一部の実装例は、MurmurHash関数を使用しても良く、一方で、他は、Jenkinsハッシュ関数、Fowler−Noll−Voハッシュ関数、CityHash関数、またはそのようなハッシュ関数の任意の所望の組み合わせを使用しても良い。
一部の実施形態において、フィルタのサイズ、ならびに/または使用されるハッシュ関数の数及びタイプ等のパラメータは、訓練データセットの推定されたまたは実際のサイズ、所望の偽陽性率、異なるハッシュ関数の計算必要条件、異なるハッシュ関数のランダム化能力など等の要因に基づいて、MLSにおいて選択されても良い。異なるORが異なる量の空間を占有し得る少なくとも1つの実施形態において、MLSは、最初の数個の記録を調べること、及び訓練データセットファイルのファイルサイズを最初の数個の記録の平均サイズによって除算することによって、訓練データセットの観測記録の数を推定しても良い。この手法は、ORの正確な数を判定するための1つのパス、及び次いで、フィルタを構築するための別のパスを必要とする代わりに、例えば、モデルが訓練されている間にも、MLSが、訓練データセットを通る単一パスにおいて、Bloomフィルタ7104を生成することを可能にし得る。
重複に関する異なるレベルの不確実性は、少なくとも一部の実施形態において、重複検出のための異なる数学的技術を使用して達成可能であり得る。例えば、一実施形態において、暗号強度ハッシュ関数は、試験データセットORの各々の署名を生成するために使用されても良く、試験データにおける同じハッシュ関数を使用して生成された署名は、非常に高い正確度で、重複を検出するために使用されても良い。当然のことながら、暗号ハッシュ関数を使用することは、Bloomフィルタを生成するために使用されても良いより脆弱なハッシュ関数と比較して、計算的に高価であり得、暗号ハッシュを使用して達成される空間効率は、Bloomフィルタを使用して達成可能なものほど優れていない場合がある。一般に、MLSは、重複検出技術と関連付けられたリソース使用または費用で、重複検出の正確さを妥協することが可能であり得、例えば、正確さが増加するにつれて、技術のリソースニーズも典型的に増加し得る。少なくとも一部の実施形態において、及び/または一部のデータセットサイズに関して、確率的技術よりもむしろ決定論的重複検出技術が選択されても良く、例えば、可能な重複に関して試験されている試験データORは、空間効率の良い表現を使用する代わりに、訓練データセットの元のORと比較されても良いことが留意される。
図71a及び図71bに例示されるBloomフィルタ等のデータセットの代替の表現を生成する前に、一部の実施形態において、MLSは、適用されるべき重複の定義、すなわち、O1を、異なるOR O2の可能性のあるまたは実際の重複と宣言するときに、正確にOR O1の何の特性が考慮されるべきかということを判定しても良い。図72は、少なくとも一部の実施形態に従った、機械学習サービスの重複検出器で使用され得る代替的重複定義の例を例示する。描写される実施形態において、3つの例示的な重複定義DD1、DD2、及びDD3が、示されている。DD1によると、訓練データセット7210の任意のORに含まれる全ての入力変数及び出力変数は、所与のORが別の重複であるかどうかを決定するときに考慮されるべきである。DD2によると、出力変数ではないが、全ての入力変数が考慮されるべきである。DD3によると、入力変数の厳密なサブセットのみ(例えば、例示されるシナリオにおいてはIV1及びIV3)が、重複と見なされるORに匹敵する必要がある。重複のこれら及び他の定義は、一部の実施形態において、例えば、それらの機械学習問題の意味論及び/または異なる変数の相対的重要性のそれらの理解に基づいて、MLSクライアントによって選択されても良い。例えば、訓練データセット7210に含まれる入力変数IV−kの1つが、まばらに投入され、そのため、ORの大部分が、変数IV−kに対する値さえも含まないシナリオを考えられたい。そのようなシナリオにおいて、クライアントは、重複を判定するために使用されるべき一組の変数から、IV−kを除外することを望む場合がある。別のシナリオにおいて、モデルの予測は、完全に入力変数に基づくため、クライアントは、重複を考慮するとき、出力変数を含むことを望まない場合がある。
描写される実施形態において、訓練セットの異なる代替の表現は、選択された重複定義に基づいて作成されても良い。観測記録が入力変数IV1、IV2、IV3、及びIV4、ならびに出力変数OVを含む訓練データセット7210に関して、全ての5つの変数は、定義DD1が使用される場合、使用されても良い(例えば、一組のハッシュ関数への組み合わされた入力として)。DD2が使用される場合、IV1、IV2、IV3、及びIV4は、代替の表現を生成するために使用されても良く、かつOVが除外されても良い。DD3が使用される場合、IV1及びIV3のみが、代替の表現のために使用されても良い。一部の実施形態において、MLSは、複数の重複定義を同時に使用することを決定しても良く、例えば、訓練データセット7210のそれぞれの代替の表現は、使用される各定義に従って作成されても良く、かつ定義の各々に対応する重複メトリックが得られても良い。
重複分析結果7260A、7260B、及び/または7260Cは、使用される定義及び代替の表現に基づいて生成されても良い。試験データセット7220のOR7251は、全ての5つの変数においてOR7201に期せずして一致する。したがって、全ての3つの結果7260A、7260B、及び7260Cは、OR7250Aを、いくらかの非ゼロの確率を伴う可能性のある重複として識別し得る。OR7252は、全ての入力変数においてにOR7201に一致するが、出力変数においては一致しない。結果として、OR7250Bは、DD1が使用される場合ではなく、DD2またはDD3が使用される場合、可能性のある重複として分類され得る。最後に、訓練セットのOR7202とIV1及びIV3の同じ値を有するが、全ての他の変数において異なる、OR7253は、DD3が使用される場合にのみ、可能な重複として分類され得、他の定義のいずれかが使用される場合、非重複と宣言され得る。
先に論じられたように、MLSは、一部の実施形態において、機械学習ジョブが並行してスケジュールされ得る、いくつかの異なるサーバを含んでも良い。図73は、少なくとも一部の実施形態に従った、機械学習サービスでの大きなデータセットのための重複検出の並列化手法の例を例示する。描写される実施形態において、訓練データセット7302は、4つの区分P0、P1、P2、及びP3に分けられても良く、それぞれのBloomフィルタ作成(BFC)ジョブは、各区分に対応して、生成及びスケジュールされても良い。BFCジョブJ0〜J3は、それぞれ区分P0〜P3に対してスケジュールされても良い。ジョブJ0〜J3はまた、モデルの訓練等の他のタスクに対しても使用されても良く、様々な実施形態において、Bloomフィルタまたは他の代替の表現を作成することに必ずしも限定される必要はない。少なくとも一部の実施形態において、Bloomフィルタまたは他の代替の表現の作成は、特徴処理変換の一例と見なされても良く、先で記載されるものに類似するレシピ言語を使用して、表現の生成を要求しても良い。BFCジョブの各々は、描写されるシナリオ例において、BF0、BF1、BF2、またはBF3等の区分レベルBloomフィルタを生成しても良い。次いで、区分レベルフィルタは、完全なBloomフィルタBF−allを生成するために、例えば、単純なBoolean「or」演算を使用して、論理的に組み合わされるまたは集計されても良い。
次いで、BF−allは、描写される実施形態において、例えば、訓練データセット7310のそれぞれの区分P0−test、P1−test、及びP2−testに対して、3つの重複確認ジョブJ4、J5、及びJ6をスケジュールすることによって、並列化重複検出のために使用されても良い。一部の実施形態において、異なるMLSサーバ(S0〜S7等)は、ジョブJ0〜J6のうちの少なくとも一部のために使用されても良い。4つのジョブがBloomフィルタ生成に対してスケジュールされ、3つのジョブが重複確認に対してスケジュールされる、図73に示される実施例にあるように、一部の事例では、Bloomフィルタ生成動作の並列度(例えば、スケジュールされる異なるジョブの数、及び/または使用される異なるサーバの数)は、重複確認段階の並列度とは異なっても良い。類似の並列化手法が、例えば、Bloomフィルタを必ずしも採用しない技術のための他のタイプの重複検出アルゴリズムと共に使用されても良い。
これまでに述べられる重複検出シナリオ例のほとんどにおいて、Bloomフィルタ等の代替の表現が最初に投入される第1のデータセット(訓練セット等)、及び重複に関して調べられる第2のデータセット(試験データセット等)という、2つのデータセットが考慮されている。一部の実施形態において、所与のデータセット内の重複に関して確認するために、類似の手法が、使用されても良い。図74は、少なくとも一部の実施形態に従った、所与の機械学習データセット内の確率的重複検出の例を例示する。示されるように、データセット7410(例えば、訓練データセット、試験データセット、または訓練データセット及び試験データセットが導出される組み合わされたデータセットであっても良い)の処理または分析の特定のパス中、データセットの空間効率の良い表現7430が、徐々に投入されても良い。データセット7410のK個の記録が処理された後、例えば、矢印7420によって示される順序において、構築中の代替の表現7430は、K個の処理された記録7422に対応するエントリを含んでも良い。
データセットの(K+1)番目の観測記録に遭遇するとき、確率的重複検出器7035は、代替の表現7430を使用して、その記録が、同じデータセット7410の既に処理された観測記録の重複を表すかどうかを判定しても良い。新たに遭遇したORは、先に記載される技術の種類を使用して、可能な重複として、または確認された非重複として、分類され得る。一部の実施形態において、重複検出器は、重複であることの非ゼロの確率を有するとして分類されるORを追跡記録しても良く、自身に代わってデータセット7210が処理されているクライアントに提供されるデータセット内重複検出結果7444に、そのリストを含めても良い。他の実施形態において、重複検出器は、可能性のある(probably)重複の数に関して、クライアントに単純に通知する等の他の措置を取っても良く、または重複検出器は、データセット7210からの可能性のある重複の削除を開始しても良い。
図75は、少なくとも一部の実施形態に従った、観測記録の重複検出を実装した機械学習サービスで行われ得る動作の態様を例示する流れ図である。要素7501に示されるように、MLSは、重複の一部の選択された定義に従って、第1のまたは目標セットの観測記録(例えば、試験データセット)が、第2のまたはソースセットの観測記録(例えば、対応する訓練データセット)に対する重複に関して確認されるべきであると判定し得る。一部の実施形態において、規定の重複定義は、MLSが、可能な重複を識別するときに、ソースセットの観測記録の全ての入力及び出力変数の値を考慮することを必要としても良い。一部の実施形態において、他の重複定義が使用されても良く、ここでは、1つまたは複数の出力変数及び/または1つまたは複数の入力変数は、重複を判定するときに除外される。一部の実施形態において、MLSのクライアントは、彼らが指定されたデータセットにおいて重複検出を行いたいかどうか、または、例えば、MLSによって実装されたプログラム的インターフェースを使用して、重複の特定の定義を示しても良い。
MLSはまた、描写される実施形態において、様々なレベルの重複が識別される場合、取られるべきそれぞれの応答措置を判定しても良い(要素7504)。そのような措置の例には、潜在的な重複記録(すなわち、重複であることの確率が非ゼロである目標データセットのそれらの観測記録)の数もしくは割合を単純に示す、クライアントへの警報または警告メッセージを送信すること、疑わしい重複のリストを提供すること、または重複としての記録の指定と関連付けられた確実性もしくは信頼性レベルの推定値を提供することが含まれても良い。一実装例において、重複であることが疑われる個々の観測記録と関連付けられたそれぞれの信頼性レベルが、提供されても良い。一部の実施形態において、応答措置は、目標データセットから可能性のある重複を削除すること、及び/または関連付けられたモデルの予測エラーにおける、重複を削除することの影響の統計的推定値を提供することを含んでも良い。少なくとも1つの実施形態において、データセット内での潜在的なまたは可能性の高い重複の識別に応答して、MLSは、データセットの使用を伴うか、またはさもなければ、データセットと関連付けられる、機械学習ジョブを、一時停止、中止、または取り消しても良い。一部の実施形態において、異なる応答が、それぞれの重複レベルに対して選択されても良く、例えば、重複の割合が5%〜10%ではないと推定される場合には、警報が、生成されても良く、一方で、それらが総じて目標データセットの2%未満である場合、重複は、単純に破棄されても良い。MLSクライアントは、一部の実施形態において、異なる程度の可能な重複に対して彼らが取りたい措置のタイプを指定しても良い。
要素7507に示されるように、1つまたは複数のMLS構成要素は、例えば、モデルの訓練等のソースセットの走査を伴う他の動作と並列で、確率的重複検出のために使用することができるソースセットの代替の表現を生成しても良い(要素7507)。Bloomフィルタ、商フィルタ、スキップリスト、ソース記録の暗号署名のリスト、または何らかの他の空間効率の良い構造が、様々な実施形態において、代替の表現として、使用されても良い。代替の表現を生成するために、少なくとも1つの実施形態において、MLSは、最初に、ソースデータセットの観測記録のうちの少なくとも一部を再フォーマットしても良く、例えば、Bloomフィルタを生成するために使用されるハッシュ関数に、観測記録を供給する前に、一組の変数セパレータを、整合性に関して確認しても良く、トレーリング及びリーディングブランクを、テキスト変数から削除しても良く、数値変数を画一的にフォーマットしても良い。
代替の表現は、一部の実施形態において、例えば、ソースデータセットを通る同じパス中に訓練されたモデルと関連付けられた付加人工物として、任意選択的にMLS人工物レポジトリ(図1に示されるレポジトリ120等)に記憶されても良い(要素7510)。所与のモデルが、それが訓練された後、数時間、数週間、または数カ月間使用されても良い、一部の実施形態において、代替の表現は、レポジトリに、選択された期間、記憶されても良い。少なくとも1つの実施形態において、MLSは、いつ代替の表現が重複検出のために最後に使用されたかを追跡記録しても良く、かつそれは、いくらかの閾値時間間隔の間、使用されていない場合、破棄されても良い。
代替の表現を使用して、MLSの重複検出器は、目標データセットが完全に重複を含まないかどうか、または目標データセットの記録のうちの少なくともいくつかが、重複であることの非ゼロの確率を有するかどうかを判定しても良い(要素7513)。例えば、疑わしい重複及び関連する非ゼロの確率の数または割合を示す、重複メトリックが、生成されても良い。重複メトリックは、代替の表現と関連付けられたベースライン偽陽性重複予測率を考慮に入れても良い。例えば、Bloomフィルタに関して、偽陽性率は、Bloomフィルタのサイズ(ビットの数)、使用されるハッシュ関数の数及び/もしくはタイプ、ならびに/またはフィルタに投入するために使用される観測記録の数に依存しても良い。一実施形態において、重複メトリックは、例えば、Num_Probable_Duplicates_Found(可能な重複として識別される観測記録の数)と、Num_Expected_False_Positives(重複として偽って分類されることが予想される観測記録の数)との間の相違に少なくとも部分的に基づいても良い。少なくとも一部の実施形態において、代替の表現の生成、潜在的な重複に関する試験データセットの確認のいずれか、またはこれらのタスクの両方は、図73に例示されるように、複数のMLSジョブを使用して、並列または分散様式で行われても良い。重複メトリックが閾値を超過する場合、描写される実施形態において、対応する応答措置(例えば、要素7504に対応する動作において識別される措置のうちの1つまたは複数)が行われても良い(要素7516)。
様々な実施形態において、図9a、9b、10a、10b、17、25、32、39、48、54、55、61、69、及び75の流れ図に例示されるもの以外の動作を使用して、上述の機械学習サービスの技術のうちの少なくとも一部を実装しても良いことが留意される。示される動作のうちの一部は、一部の実施形態において、実装されなくても良いか、異なる順序で、または連続的よりもむしろ並列して実装されても良い。例えば、図9bに関して、クライアントのリソース割り当てが枯渇しているかどうかに関する確認は、戦略が判定される前に行われる代わりに、一部の実施形態において、作業負荷戦略を判定した後に行われても良い。
ユースケース
機械学習ツール及び方法論における広範囲の専門知識レベルを有する、ユーザに適合されているネットワークにアクセス可能な拡張可能な機械学習サービスを提供する、上述の技術は、多岐にわたる用途に対して有益であり得る。ほぼ全ての事業組織または政府機関は、今日、その業務の様々な側面において、データを収集することが可能であり、かつ収集されたデータの異なる構成要素と組織の目標との間の意味のある統計的及び/または因果関係の発見が、そのようなサービスによって容易になり得る。MLSのユーザは、データクレンジング、入力フィルタリング、モデルに供給することができる形式へのクレンジングされたデータの変換、重複観測の検出、またはモデル実行等の機械学習ワークフローの様々なタスクに対して必要とされる特定のリソースの設定の詳細を問題にする必要がない場合がある。異なるデータクレンジング手法、変換タイプ、変換及びモデルに対するパラメータ設定の経験の長年にわたって開発されたベストプラクティスは、例えば、ユーザが指定する必要さえない規定の設定の形態で、MLSのプログラム的インターフェース(学習しやすい及び使用しやすいAPI等)に組み込まれても良い。MLSのユーザは、様々な機械学習タスクまたは動作に対する要求を提出しても良く、これらのうちの一部は、スケジューリングを手動で管理すること、またはタスク(これらのうちの一部は、タスクの性質、もしくは関与するデータセットのサイズによっては数時間もしくは数日かかり得る)の進捗を監視することを必要とせずに、他のタスクの完了に依存しても良い。ユーザは、一部の実施形態において、モデル評価及び他の実行の対話型グラフィカル表示が提供されても良く、ユーザが、分類カットオフ等の解釈関連の設定に関して、情報に基づいた決定を下すことを可能にする。試験または評価データセットと、対応する訓練データとの間の潜在的な重複の検出は、一部の実施形態において、規定の設定により行われても良く、MLSのクライアントが、モデルの一般化能力への洞察を提供する可能性が低いデータに基づいた評価におけるリソースの無駄遣いを回避することを可能にする。
多数のタイプのエンティティ(モデル、データソース、またはレシピ等)に対応する機械学習オブジェクトの論理的に集中化されたレポジトリは、複数のユーザまたは協力者が、様々なデータセットにおいて、特徴処理レシピを共有及び再使用することを可能にし得る。熟練ユーザまたはモデル開発者は、第三者またはカスタムライブラリ及び関数を登録することにより、MLSのコア機能性に追加しても良い。MLSは、改良された機密保護が必要とされるある特定のタイプの動作の分離実行をサポートしても良い。MLSは、詐欺検出、金融資産価格予測、保険分析、気象予測、地球物理学的分析、画像/動画処理、音声処理、自然言語処理、医学及び生物情報学など等の管理された及び管理されていない学習の両方を網羅する様々な問題領域に対して、使用されても良く、かつそれらに対して最適化された技術を組み込んでも良い。深さ優先決定木の枝刈り、特徴重みを効率的に枝刈りすることによる線形モデルのサイズの制限、または同時分位ビニングの実施等の特定の最適化技法は、MLSクライアントが、技術の使用さえも認識せずに、一部の事例では規定の設定により実装されても良い。訓練時間リソース使用と予測時間リソース使用との間の最適化等の他の種類の最適化に関して、クライアントは、相互に許容できる特徴処理提案を決定するように、機械学習サービスと対話しても良い。
例示のコンピュータシステム
少なくとも一部の実施形態において、機械学習サービスの構成要素(API要求ハンドラ、入力記録ハンドラ、レシピバリデータ、及びレシピ実行時間マネージャ、特徴処理マネージャ、計画ジェネレータ、ジョブスケジューラ、人工物レポジトリなど等の制御プレーン構成要素、ならびにモデル生成/訓練、決定木最適化の実装、モデル枝刈り及び/もしくはカテゴリーベースのサンプリング、評価結果のグラフィック生成及び/または表示などのために使用されるMLSサーバ等のデータプレーン構成要素)のうちの1つまたは複数を実装するサーバは、1つまたは複数のコンピュータアクセス可能な媒体を含むか、またはそれらにアクセスするように構成される、汎用コンピュータシステムを含んでも良い。図76は、そのような汎用コンピューティングデバイス9000を例示する。例示される実施形態において、コンピューティングデバイス9000は、入力/出力(I/O)インターフェース9030を介して、システムメモリ9020(非揮発性及び揮発性メモリモジュールの両方を備えても良い)に連結される、1つまたは複数のプロセッサ9010を含む。コンピューティングデバイス9000は、I/Oインターフェース9030に連結されるネットワークインターフェース9040をさらに含む。
様々な実施形態において、コンピューティングデバイス9000は、1つのプロセッサ9010を含むユニプロセッサシステム、またはいくつかのプロセッサ9010(例えば、2つ、4つ、8つ、または別の好適な数)を含むマルチプロセッサシステムであっても良い。プロセッサ9010は、命令を実行することが可能な任意の好適なプロセッサであっても良い。例えば、様々な実施形態において、プロセッサ9010は、x86、PowerPC、SPARC、もしくはMIPS ISA、または任意の他の好適なISA等の様々な命令セットアーキテクチャ(ISA)のうちのいずれかを実装する、汎用または埋め込みプロセッサであっても良い。マルチプロセッサシステムにおいて、プロセッサ9010の各々は、同じISAを一般的に実装し得るが、必ずしもそうでなくても良い。一部の実装例において、グラフィックス処理ユニット(GPU)は、従来のプロセッサの代わりに、またはそれに加えて使用されても良い。
システムメモリ9020は、プロセッサ(複数可)9010によってアクセス可能な命令及びデータを記憶するように構成されても良い。少なくとも一部の実施形態において、システムメモリ9020は、揮発性及び非揮発性部分の両方を備えても良く、他の実施形態においては、揮発性メモリのみが、使用されても良い。様々な実施形態において、システムメモリ9020の揮発性部分は、静的ランダムアクセスメモリ(SRAM)、同時性動的RAM、または任意の他のタイプのメモリ等の任意の好適なメモリ技術を使用して実装されても良い。システムメモリの非揮発性部分(例えば、1つまたは複数のNVDIMMを備え得る)に関して、一部の実施形態において、NAND−フラッシュデバイスを含むフラッシュベースのメモリデバイスが、使用されても良い。少なくとも一部の実施形態において、システムメモリの非揮発性部分は、スーパーキャパシタまたは他の電力貯蔵装置(例えば、バッテリ)等の電源を含んでも良い。様々な実施形態において、メモリスタベースの抵抗ランダムアクセスメモリ(ReRAM)、3次元NAND技術、強誘電RAM、磁気抵抗RAM(MRAM)、または様々なタイプの相変化メモリ(PCM)のうちのいずれかが、少なくともシステムメモリの非揮発性部分に対して、使用されても良い。例示される実施形態において、上述のそれらの方法、技術、及びデータ等の1つまたは複数の所望の機能を実装するプログラム命令及びデータは、コード9025及びデータ9026として、システムメモリ9020内に記憶される。
一実施形態において、I/Oインターフェース9030は、ネットワークインターフェース9040、または様々なタイプの永続的及び/もしくは揮発性記憶装置等の他の周辺インターフェースを含む、プロセッサ9010、システムメモリ9020、及びデバイス内の任意の周辺デバイス間のI/Oトラフィックを調整するように構成されても良い。一部の実施形態において、I/Oインターフェース9030は、1つの構成要素(例えば、システムメモリ9020)からのデータ信号を、別の構成要素(例えば、プロセッサ9010)による使用に好適な形式に変換するように、任意の必要なプロトコル、タイミング、または他のデータ変換を行なっても良い。一部の実施形態において、I/Oインターフェース9030は、例えば、ペリフェラル・コンポーネント・インターコネクト(PCI)バス規格、またはユニバーサルシリアルバス(USB)規格の異形等の様々なタイプの周辺バスを通じて取設されるデバイスに対するサポートを含んでも良い。一部の実施形態において、I/Oインターフェース9030の機能は、例えば、ノースブリッジ及びサウスブリッジ等の2つ以上の別個の構成要素に分割されても良い。また、一部の実施形態において、システムメモリ9020へのインターフェース等のI/Oインターフェース9030の機能性のうちのいくつかまたは全ては、プロセッサ9010の中へ直接組み込まれても良い。
ネットワークインターフェース9040は、データが、コンピューティングデバイス9000と、例えば、図1〜図75に例示されるような他のコンピュータシステムまたはデバイス等の、ネットワーク(1つもしくは複数)9050に取設される他のデバイス9060との間で交換されることを可能にするように構成されても良い。様々な実施形態において、ネットワークインターフェース9040は、例えば、イーサネット(登録商標)ネットワークのタイプ等の任意の好適な有線または無線一般データネットワークを介した通信をサポートしても良い。さらに、ネットワークインターフェース9040は、アナログ音声ネットワークもしくはデジタルファイバ通信ネットワーク等の電気通信/テレフォニネットワークを介した、ファイバチャネルSAN等のストレージエリアネットワークを介した、または任意の他の好適なタイプのネットワーク及び/もしくはプロトコルを介した通信をサポートしても良い。
一部の実施形態において、システムメモリ9020は、対応する方法及び装置の実施形態を実装するための図1〜図75に関して上述されるようなプログラム命令及びデータを記憶するように構成される、コンピュータアクセス可能な媒体の一実施形態であっても良い。しかしながら、他の実施形態において、プログラム命令及び/またはデータは、異なるタイプのコンピュータアクセス可能な媒体において、受信、送信、または記憶されても良い。一般的に述べると、コンピュータアクセス可能な媒体は、I/Oインターフェース9030を介してコンピューティングデバイス9000に連結される、磁気もしくは光媒体、例えば、ディスクもしくはDVD/CD等の非一時的記憶媒体またはメモリ媒体を含んでも良い。非一時的コンピュータアクセス可能な記憶媒体はまた、システムメモリ9020または別のタイプのメモリとして、コンピューティングデバイス9000の一部の実施形態に含まれても良い、RAM(例えば、SDRAM、DDR SDRAM、RDRAM、SRAM等)、ROMなど等の任意の揮発性または非揮発性媒体を含んでも良い。さらに、コンピュータアクセス可能な媒体は、送信媒体を含んでも良いか、あるいは、ネットワーク及び/もしくは無線リンク等の通信媒体を介して伝送される電気、電磁気、もしくはデジタル信号等が、例えば、ネットワークインターフェース9040を介して実装されても良い。図76に例解されるもの等の複数のコンピューティングデバイスのうちの一部分または全ては、様々な実施形態において、記載される機能性を実装するために使用されても良く、例えば、様々な異なるデバイス及びサーバ上で実行するソフトウェア構成要素が、機能性を提供するために協働しても良い。一部の実施形態において、記載される機能性の一部分は、汎用コンピュータシステムを使用して実装されることに加えて、またはその代わりに、記憶装置、ネットワークデバイス、または特殊目的コンピュータシステムを使用して実装されても良い。「コンピューティングデバイス」という用語は、本明細書で使用される場合、少なくとも全てのこれらのタイプのデバイスを指し、これらのタイプのデバイスに限定されない。
本開示の実施形態は、以下の条項の見地から、説明することができる。
1.システムであって、
プロバイダネットワークのネットワークにアクセス可能な機械学習サービスに実装された一組のプログラム的インターフェースの特定のプログラム的インターフェースを介して、エンティティタイプのインスタンスと関連付けられた特定の動作を行うためのクライアントからの第1の要求を受信することであって、前記エンティティタイプは、(a)機械学習モデルのために使用されるデータソース、(b)特定のデータソースから計算される一組の統計、(c)指定されたデータセットにおいて行われる一組の特徴処理変換動作、(d)選択されたアルゴリズムを採用する機械学習モデル、(e)機械学習モデルと関連付けられたエイリアス、または(f)特定の機械学習モデルの結果、のうちの1つまたは複数を含む、前記受信することと、
前記機械学習サービスのジョブ待ち行列内に前記第1の要求に対応するジョブオブジェクトを挿入することと、
前記第1の要求の実行が承認されたという指標を前記クライアントに提供することと、
前記第1の要求に対して識別された第1の作業負荷分配戦略に従って、前記特定の動作を行うために使用される第1の組のプロバイダネットワークリソースを判定することと、
前記第1の要求において示される前記特定の動作の完了の前に、前記特定の動作の結果に応じた第2の動作を行うために前記クライアントから第2の要求を受信することと、
前記ジョブ待ち行列内の前記第2の要求に対応する第2のジョブオブジェクトを挿入することであって、前記第2のジョブオブジェクトは、前記特定の動作の結果に応じた前記第2の動作の依存性の指標を含む、前記挿入することと、
前記第2の動作の実行を開始する前に、前記第2の要求の実行が承認されたという第2の指標を前記クライアントに提供することと、
前記特定の動作が正常に完了したという判定に応答して、第2の組のプロバイダネットワークリソース上に前記第2の動作をスケジュールすることと、を行うように構成された、1つまたは複数のコンピューティングデバイスを備える、前記システム。
2.前記特定の動作は、(a)インスタンスの作成、(b)インスタンスの1つまたは複数の属性のそれぞれの値を得るための読み出し動作、(c)インスタンスの属性の変更、(d)インスタンスの削除、(e)検索動作、(f)実行動作のうちの1つまたは複数を含む、条項1に記載のシステム。
3.前記特定の動作は、特定の機械学習モデルを実行するための前記機械学習サービスのユーザの指定されたグループによって使用可能なエイリアスの割り当てを含み、前記エイリアスは、前記特定の機械学習モデルへのポインタを含み、ユーザの指定されたグループの少なくとも一部のユーザは、前記ポインタを変更することを許可されない、条項1または2に記載のシステム。
4.前記一組のプログラム的インターフェースは、表象状態転送アプリケーションプログラミングインターフェースを含む、条項1〜3のいずれかに記載のシステム。
5.前記特定の動作は、特定のデータソースの作成を含み、前記1つまたは複数のコンピューティングデバイスは、
前記特定のデータソースのデータ記録の1つまたは複数の変数における特定の組の統計を、前記特定の組の統計に対する前記クライアントからの要求を受信することなく、生成することと、
前記クライアントに、前記特定の組の統計の指標を提供することと、を行うようにさらに構成される、条項1〜4のいずれかに記載のシステム。
6.方法であって、
1つまたは複数のコンピューティングデバイスによって、
機械学習サービスに実装された一組のプログラム的インターフェースの特定のプログラム的インターフェースを介して、エンティティタイプのインスタンスと関連付けられた特定の動作を行うためのクライアントからの第1の要求を受信することであって、前記エンティティタイプは、(a)機械学習モデルを生成するために使用されるデータソース、(b)指定されたデータセットにおいて行われる一組の特徴処理変換動作、(c)選択されたアルゴリズムを採用する機械学習モデル、または(d)機械学習モデルと関連付けられたエイリアスのうちの1つまたは複数を含む、前記受信することと、
前記機械学習サービスのジョブ待ち行列内に前記第1の要求に対応するジョブを挿入することと、
前記第1の要求によって示される前記特定の動作の完了の前に、前記特定の動作の結果に応じた第2の動作を行うための前記クライアントからの第2の要求を受信することと、
前記ジョブ待ち行列内の前記第2の要求に対応する第2のジョブオブジェクトを挿入することであって、前記第2のジョブオブジェクトは、前記特定の動作の結果に応じた前記第2の動作の依存性の指標を含む、前記挿入することと、
前記特定の動作が正常に完了したという判定に応答して、前記第2の動作をスケジュールすることと、を行うことを含む、前記方法。
7.前記特定の動作は、(a)インスタンスの作成、(b)インスタンスの1つまたは複数の属性のそれぞれの値を得るための読み出し動作、(c)インスタンスの属性の変更、(d)インスタンスの削除、(e)検索動作、(f)実行動作のうちの1つまたは複数を含む、条項6に記載の方法。
8.前記特定の動作は、特定の機械学習モデルを実行するための前記機械学習サービスのユーザの指定されたグループによって使用可能なエイリアスの割り当てを含み、前記エイリアスは、前記特定の機械学習モデルへのポインタを含み、ユーザの指定されたグループの少なくとも一部のユーザは、前記ポインタを変更することを許可されない、条項6または7に記載の方法。
9.前記特定の動作は、前記特定のデータソースの作成を含み、前記1つまたは複数のコンピューティングデバイスによって、
前記特定のデータソースのデータ記録の1つまたは複数の変数の特定の組の統計を、前記特定の組の統計のために前記クライアントから要求を受信することなしに、生成し、
前記クライアントに、前記特定の組の統計の指標を提供することと、を行うことをさらに含む、条項6〜8のいずれかに記載の方法。
10.前記1つまたは複数のコンピューティングデバイスによって、
前記特定の組の統計を生成するために使用される前記特定のデータソースの前記データ記録のサブセットを選択することを行うことをさらに含む、条項9に記載の方法。
11.前記1つまたは複数のコンピューティングデバイスによって,
前記第1の要求に対する作業負荷分配戦略を識別することであって、前記識別することは、(a)前記特定の動作のデータセットを処理するパスの数を判定すること、(b)前記特定の動作のデータセットを処理するための並列化レベルを判定すること、(c)前記特定の動作を終了するために使用される収束基準を判定すること、(d)前記特定の動作の間に生成された中間データに対する目標耐久性レベルを判定すること、または(e)前記特定の動作を実装するためのリソース容量限界を判定すること、のうちの1つまたは複数を含む、前記識別することと、を行うことをさらに含む、条項6〜9のいずれかに記載の方法。
12.前記1つまたは複数のコンピューティングデバイスによって、
特定の組のプロバイダネットワークリソースを選択して、前記第1の作業負荷戦略を実装することを行うことをさらに含む、条項11に記載の方法。
13.前記1つまたは複数のコンピューティングデバイスによって、
前記特定の動作を行うことが前記プロバイダネットワークの外部のエンティティによって開発されたモジュールの実行を含むという判定に応答して、前記特定の動作のために使用される少なくとも1つのリソースを選択する特定のセキュリティコンテナを識別することを行うことをさらに含む、条項6〜9または11のいずれかに記載の方法。
14.前記1つまたは複数のコンピューティングデバイスによって、
前記クライアントに、前記プロバイダネットワーク外のプラットフォームでの実行のための特定の機械学習モデルの実行可能なバージョンを提供することを行うことをさらに含む、条項6〜9、11、または13のいずれかに記載の方法。
15.前記1つまたは複数のコンピューティングデバイスによって、
前記特定の動作をスケジュールする前に、前記クライアントのリソース割り当てが枯渇していないことを検証することを行うことをさらに含む、条項6〜9、11、または13〜14のいずれかに記載の方法。
16.1つまたは複数のプロセッサ上で実行されたとき、
プロバイダネットワークのネットワークにアクセス可能な機械学習サービスに実装された一組のプログラム的インターフェースの特定のプログラム的インターフェースを介して、エンティティタイプのインスタンスと関連付けられた特定の動作を行うためのクライアントからの第1の要求を受信することであって、前記エンティティタイプは、(a)機械学習モデルを生成するために使用されるデータソース、(b)特定のデータソースから計算される一組の統計、(c)選択されたアルゴリズムを採用する機械学習モデル、または(d)機械学習モデルと関連付けられたエイリアス、のうちの1つまたは複数を含む、前記受信することと、
前記機械学習サービスのジョブ待ち行列内に前記第1の要求に対応するジョブを挿入することと、
前記第1の要求において示される前記特定の動作の完了の前に、前記特定の動作の結果に応じた第2の動作を行うために前記クライアントから第2の要求を受信することと、
前記ジョブ待ち行列内の前記第2の要求に対応する第2のジョブオブジェクトを挿入することであって、前記第2のジョブオブジェクトは、前記特定の動作の結果に応じた前記第2の動作の依存性の指標を含む、前記挿入することと、を行う、プログラム命令を記憶する、非一時的コンピュータアクセス可能記憶媒体。
17.前記特定の動作は、特定の機械学習モデルを実行するための前記機械学習サービスのユーザの指定されたグループによって使用可能なエイリアスの割り当てを含み、前記エイリアスは、前記特定の機械学習モデルへのポインタを含み、前記ユーザの指定されたグループの少なくとも一部のユーザは、前記ポインタを変更することを許可されない、条項16に記載の非一時的コンピュータアクセス可能記憶媒体。
18.前記特定の動作は、特定のデータソースの作成を含み、前記命令は、前記1つまたは複数のプロセッサで実行されたとき、
前記特定のデータソースのデータ記録の1つまたは複数の変数における特定の組の統計を、前記特定の組の統計に対する前記クライアントからの要求を受信することなく、生成することと、
前記クライアントに、前記特定の組の統計の指標を提供することと、を行うようにさらに構成される、条項16または17に記載の非一時的コンピュータアクセス可能記憶媒体。
19.1つまたは複数の変数は、複数の変数を含み、前記命令は、前記1つまたは複数のプロセッサで実行されたとき、
前記複数の変数の相関分析に少なくとも部分的に基づいて、機械学習モデルへの入力として第2の組の変数に優先して使用される第1の組の候補変数を識別し、
前記クライアントに前記第1の組の変数の指標を提供する、条項18に記載の非一時的コンピュータアクセス可能記憶媒体。
20.前記特定の動作は、オンラインモードの特定の機械学習モデルのインスタンス化を含み、前記命令は、前記1つまたは複数のプロセッサ上で実行されたとき、
前記クライアントによって示される予想される作業負荷レベルに少なくとも部分的に基づいて、オンラインモードの前記特定の機械学習モデルのために使用される一組のプロバイダネットワークリソースを選択する、条項16〜18のいずれかに記載の非一時的コンピュータアクセス可能記憶媒体。
21.前記命令は、前記1つまたは複数のプロセッサで実行されたとき、
前記サービスの前記クライアントから、特定のデータソースの1つまたは複数のデータ記録を解読して、前記特定の動作を行うために使用される証明書を受信する、条項16〜18、または20のいずれかに記載の非一時的コンピュータアクセス可能記憶媒体。
22.前記命令は、前記1つまたは複数のプロセッサで実行されたとき、
前記一組のプログラム的インターフェースの冪等プログラム的インターフェースを介して、第3の動作を行うための前記クライアントからの第3の要求を受信し、
(a)前記第3の要求内で示されたインスタンス識別子、(b)前記クライアントの識別子、または(c)前記第3の要求の入力パラメータの表現のうちの1つまたは複数に基づいて、前記第3の要求が先に提出された要求の重複かどうかを判定し、
前記第3の要求が先に提出された要求の重複であるという判定に応答して、前記ジョブ待ち行列内の前記第3の要求に対応する追加のジョブオブジェクトを挿入することなく、前記クライアントに、前記第3の要求の成功の指標を提供する、条項16〜18、または20〜21のいずれかに記載の非一時的コンピュータアクセス可能記憶媒体。
本開示の実施形態は、以下の条項の見地からも、説明することができる。
1.システムであって、
プロバイダネットワークのネットワークにアクセス可能な機械学習サービスで、(a)変数の1つまたは複数のグループを指示するグループ定義セクションであって、前記1つまたは複数のグループの個々は、少なくとも1つの共通変換動作が適用される複数の変数を含む、前記グループ定義セクション、(b)1つまたは複数の中間変数を定義する割り当てセクション、(c)レポジトリに記憶されている1つまたは複数の機械学習人工物へのそれぞれの参照を指示する依存性セクション、または(d)前記グループ定義セクション、前記割り当てセクション、もしくは前記依存性セクションで指示された少なくとも1つのエンティティに適用される1つまたは複数の変換動作を指示する出力セクション、のうちの1つまたは複数を含むレシピのテキスト表現を受信することと、
(a)前記機械学習サービスによって定義されている一組の構文規則、及び(b)前記機械学習サービスによってサポートされている変換動作の種類の一組のライブラリ関数定義に従って前記レシピの前記テキスト表現を検証することと、
前記レシピの実行可能な表現を生成することと、
実行可能な表現を前記レポジトリに記憶することと、
前記レシピが特定のデータセットに適用されることを判定することと、
前記特定のデータセットが前記レシピの実行時間承認基準を満たしていることを検証することと、
1つまたは複数の選択されたプロバイダネットワークリソースを使用して、前記1つまたは複数の変換動作の特定の変換動作を特定のデータセットに適用することと、を行うように構成された、1つまたは複数のコンピューティングデバイスを備える、前記システム。
2.前記1つまたは複数のコンピューティングデバイスは、
前記レシピを異なるデータセットに適用するための要求を受信することと、
前記異なるデータセットが前記レシピの実行時間承認基準を満たしていることを検証することと、
前記特定の変換動作を前記異なるデータセットに適用することと、を行うようにさらに構成される、条項1に記載のシステム。
3.前記1つまたは複数のコンピューティングデバイスは、
プログラム的インターフェースを介してクライアントに、複数の機械学習問題領域の個々に適用可能なそれぞれの組の1つまたは複数のレシピの指標を提供するようにさらに構成される、条項1または2に記載のシステム。
4.前記テキスト表現は、前記特定の変換動作の結果を使用して実行される特定の機械学習モデルの指標を含む、条項1〜3のいずれかに記載のシステム。
5.前記1つまたは複数のコンピューティングデバイスは、
自動パラメータ調整が前記レシピに対して行われるという指標に応答して、前記1つまたは複数の変換動作の異なる変換動作に適用可能な複数のパラメータ値オプションを判定することと、
前記機械学習サービスによって、前記複数のパラメータ値オプションの個々を使用して、前記異なる変換動作のそれぞれの結果を生成することと、
前記それぞれの結果の分析に基づいて前記機械学習サービスによって、パラメータ承認基準を満たす前記複数のパラメータ値オプションの少なくとも1つの候補パラメータ値の指標を提供することと、を行うようにさらに構成される、条項1〜4のいずれかに記載のシステム。
6.方法であって、
1つまたは複数のコンピューティングデバイスによって、
ネットワークにアクセス可能な機械学習サービスで、(a)変数の1つまたは複数のグループを指示するグループ定義セクションであって、1つまたは複数のグループの個々が少なくとも1つの共通変換動作が適用される複数のデータセット変数を含む、前記グループ定義セクション、及び(b)(i)前記グループ定義セクションまたは(ii)入力データセットのうちの1つまたは複数で指示された少なくとも1つのエンティティに適用される1つまたは複数の変換動作を指示する出力セクション、のうちの1つまたは複数を含む、レシピの第1の表現を受信することと、
前記機械学習サービスによってサポートされている変換動作の種類の少なくとも一組のライブラリ関数定義に従って、前記レシピの前記第1の表現を検証することと、
前記レシピの実行可能な表現を生成することと、
前記レシピが特定のデータセットに適用されることを判定することと、
前記特定のデータセットが実行時間承認基準を満たしていることを検証することと、
1つまたは複数の選択されたプロバイダネットワークリソースを使用して、前記1つまたは複数の変換動作の特定の変換動作を前記特定のデータセットに適用することと、を行うことを含む、前記方法。
7.前記第1の表現は、テキスト表現または二進表現である、条項6に記載の方法。
8.前記第1の表現は、前記機械学習サービスから得られたツールを使用して前記機械学習サービスのクライアントによって生成される、条項6または7に記載の方法。
9.前記特定のデータセットの入力データ記録の少なくとも1つの変数のデータ型は、(a)テキスト、(b)数値データ型、(c)Boolean、(d)2値データ型、(d)カテゴリーデータ型、(e)画像処理データ型、(f)音声処理データ型、(g)生物情報学データ型、または(h)構造化データ型のうちの1つまたは複数を含む、条項6〜8のいずれかに記載の方法。
10.前記データ型は、特定の構造化データ型を含み、前記1つまたは複数のコンピューティングデバイスによって、
前記特定の構造化データ型に少なくとも部分的に基づいて、前記特定の変換動作のために使用される特定のライブラリ関数を選択することを行うことをさらに含む、条項9に記載の方法。
11.前記第1の表現は、(a)入力データセット変数、または(b)前記グループ定義セクションで定義されるエンティティのうちの1つまたは複数の点から中間変数を定義する割り当てセクションを含み、前記中間変数は、前記出力セクションで参照される、条項6〜9のいずれかに記載の方法。
12.前記第1の表現は、前記機械学習サービスのレポジトリに記憶されている特定の人工物への参照を指示する依存性セクションを含み、前記特定の変換動作は、前記特定の人工物の出力を入力として実行する、条項6〜9または11のいずれかに記載の方法。
13.前記特定の人工物は、(a)機械学習モデル、(b)異なるレシピ、(c)統計セット、または(d)機械学習モデルへの参照を含むエイリアス、のうちの1つまたは複数を含む、条項12に記載の方法。
14.前記特定の変換動作は、ユーザ定義関数を利用し、前記1つまたは複数のコンピューティングデバイスによって、
前記第1の表現の前記受信の前にクライアントから前記機械学習サービスで、前記ユーザ定義関数を実行するモジュールの指標を受信することを行うことをさらに含み、前記モジュールは、テキスト形式またはバイナリ形式である、条項6〜9または11〜12のいずれかに記載の方法。
15.前記1つまたは複数のコンピューティングデバイスによって、
前記機械学習サービスによって定義された一組の構文規則に従って、前記第1の表現を検証することを行うことをさらに含む、条項6〜9、11〜12または14のいずれかに記載の方法。
16.前記1つまたは複数のコンピューティングデバイスによって、
前記レシピを異なるデータセットに適用するための要求を受信することと、
前記異なるデータセットが前記レシピの実行時間承認基準を満たしていることを検証することと、
前記特定の変換動作を前記異なるデータセットに適用することと、を行うことをさらに含む、条項6〜9、11〜12、または14〜15、のいずれかに記載の方法。
17.前記1つまたは複数のコンピューティングデバイスによって、
プログラム的インターフェースを介してクライアントに、複数の機械学習問題領域の個々に適用可能なそれぞれの組の1つまたは複数のレシピの指標を提供することを行うことをさらに含む、条項6〜9、11〜12、または14〜16のいずれかに記載の方法。
18.前記第1の表現は、前記特定の変換動作の結果を使用して実行される特定の機械学習モデルの指標を含む、条項6〜9、11〜12、または14〜17のいずれかに記載の方法。
19.前記1つまたは複数のコンピューティングデバイスによって、
前記機械学習サービスによって、自動パラメータ調整が前記レシピに対して行われるという指標に応答して、前記1つまたは複数の変換動作の異なる変換動作に適用可能な複数のパラメータ値オプションを判定することと、
前記機械学習サービスによって、前記複数のパラメータ値オプションの個々を使用して、前記異なる変換動作のそれぞれの結果を生成することと、を行うことをさらに含む、条項6〜9、11〜12、または14〜18のいずれかに記載の方法。
20.前記1つまたは複数のコンピューティングデバイスによって、
前記機械学習サービスによって、前記特定のパラメータ値に対応する特定の結果セットに少なくとも部分的に基づいて、前記複数のパラメータ値オプションの特定のパラメータ値を、許容できる値として選択することを行うことをさらに含む、条項19に記載の方法。
21.前記1つまたは複数のコンピューティングデバイスによって、
前記機械学習サービスによってクライアントに、前記それぞれの結果の分析に基づいて、少なくとも前記複数のパラメータ値オプションのサブセットを候補値として示すことと、
前記機械学習サービスで前記クライアントから、前記異なる変換動作のために使用されるサブセットの特定のパラメータ値の指標を受信することと、を行うことをさらに含む、条項19または20に記載の方法。
22.前記複数のパラメータ値オプションは、(a)言語処理データセットから導入されるn−gramのそれぞれの長さ、(b)特定の変数のそれぞれの分位ビン境界、(c)画像処理パラメータ値、(d)データセットが分類されるいくつかのクラスタ、(e)クラスタ境界閾値の値、または(f)テキスト文書のベクトル表現の次元値、のうちの1つまたは複数を含む、条項19〜21のいずれかに記載の方法。
23.1つまたは複数のプロセッサ上で実行されたとき、
機械学習サービスで、(a)変数の1つまたは複数のグループを指示するグループ定義セクションであって、1つまたは複数のグループの個々が少なくとも1つの共通変換動作が適用される複数のデータセット変数を含む、前記グループ定義セクション、または(b)(i)前記グループ定義セクションまたは(ii)レシピの入力データセット、のうちの1つまたは複数で指示された少なくとも1つのエンティティに適用される1つまたは複数の変換動作を指示する出力セクション、のうちの1つまたは複数を含む、レシピの第1の表現を判定することと、
前記機械学習サービスによってサポートされている変換動作の種類の少なくとも一組のライブラリ関数定義に従って、前記レシピの第1の表現を検証することと、
前記レシピの実行可能な表現を生成することと、
前記レシピが特定のデータセットに提供されるという判定に応答して、1つまたは複数の選択されたプロバイダネットワークリソースを使用して、前記特定のデータセットへの前記1つまたは複数の変換動作の特定の変換動作を実行する、非一時的コンピュータアクセス可能記憶媒体。
24.前記第1の表現は、(a)入力データセット変数、または(b)前記グループ定義セクションで定義されるエンティティ、のうちの1つまたは複数の点から中間変数を定義する割り当てセクションを含み、前記中間変数は、出力セクションで参照される、条項23に記載の非一時的コンピュータアクセス可能記憶媒体。
25.前記第1の表現は、前記機械学習サービスのレポジトリに記憶されている特定の人工物への参照を指示する依存性セクションを含み、前記特定の変換動作は、前記特定の人工物の出力を入力として実行する、条項23または24に記載の非一時的コンピュータアクセス可能記憶媒体。
26.前記特定の人工物は、(a)機械学習モデル、(b)異なるレシピ、(c)エイリアス、または(d)一組の統計、のうちの1つまたは複数を含む、条項23〜25のいずれかに記載の非一時的コンピュータアクセス可能記憶媒体。
27.前記一組のライブラリ関数定義は、(a)分位ビン関数、(b)カルテシアン積関数、(c)bi−gram関数、(d)n−gram関数、(e)直交スパースbigram関数、(f)カレンダ関数、(g)画像処理関数、(h)音声処理関数、(i)生物情報学処理関数、または(j)自然言語処理関数、のうちの1つまたは複数を含む、条項23〜26のいずれかに記載の非一時的コンピュータアクセス可能記憶媒体。
本開示の実施形態は、以下の条項の見地からも、説明することができる。
1.システムであって、
プロバイダネットワークの機械学習サービスのプログラム的インターフェースを介して、1つまたは複数のファイルソースから特定のデータセットの観測記録を抽出するための要求を受信することであって、前記特定のデータセットのサイズは、前記機械学習サービスの第1のサーバの、前記特定のデータセットに対して利用可能な第1のメモリ部分のサイズを超える、前記受信することと、
前記特定のデータセットをサイズが前記第1のメモリ部分を超えない特定の連続的チャンクを含む、複数の連続的チャンクにマッピングすることと、
前記要求の中で指示されたフィルタリング記述子に少なくとも部分的に基づいて、前記複数の連続的チャンクに対してチャンクレベルフィルタリング動作のシーケンスを行うためのフィルタリング計画を生成することであって、前記フィルタリング動作のシーケンスの個々の動作の種類は、(a)サンプリング、(b)入れ換え、(c)分割、または(d)並列計算のための区分のうちの1つまたは複数を含み、前記フィルタリング計画は、第1のチャンクレベルフィルタリング動作、続いて第2のチャンクレベルフィルタリング動作を含む、前記生成することと、
前記第1のチャンクレベルフィルタリング動作を実行するために、少なくとも前記複数の連続的チャンクのサブセットが記憶される1つまたは複数の永続的記憶装置に向けられる少なくとも一組の読み出しを実行することであって、前記一組の読み出しの後で、前記第1のメモリ部分が、少なくとも前記特定の連続的チャンクを含む、前記実行することと、
前記1つまたは複数の永続的記憶装置から再読み出しをせず、かつ前記特定の連続的チャンクをコピーせずに、前記第1のチャンクレベルフィルタリング動作のインメモリ結果セットに対して前記第2のチャンクレベルフィルタリング動作を実行することと、
前記チャンクレベルフィルタリング動作のシーケンスの出力から複数の観測記録を抽出することと、を行うように構成された、1つまたは複数のコンピューティングデバイスを備える、前記システム。
2.前記1つまたは複数のコンピューティングデバイスは、
前記特定の連続的チャンク内で識別された一組の観測記録に対してチャンク内フィルタリング動作を実行するようにさらに構成される、条項1に記載のシステム。
3.前記1つまたは複数のコンピューティングデバイスは、
前記要求内で指示された1つまたは複数の復元パラメータに従って、前記特定の連続的チャンクのコンテンツを復元するようにさらに構成される、条項1または2に記載のシステム。
4.前記1つまたは複数のコンピューティングデバイスは、
前記要求内で指示された1つまたは複数の解読パラメータに従って、前記特定の連続的チャンクのコンテンツを解読するようにさらに構成される、条項1〜3のいずれかに記載のシステム。
5.前記1つまたは複数のコンピューティングデバイスは、
(a)特徴処理レシピ、または(b)機械学習モデルのうちの1つまたは複数の実行のための入力として、前記シーケンスから得られた複数の観測記録を提供するようにさらに構成される、条項1〜4のいずれかに記載のシステム。
6.方法であって、
1つまたは複数のコンピューティングデバイスで、
機械学習サービスで、1つまたは複数のデータソースから特定のデータセットの観測記録を抽出するための要求を受信することと、
前記特定のデータセットを特定のチャンクを含む複数のチャンクにマッピングすることと、
前記複数のチャンクに対してチャンクレベルフィルタリング動作のシーケンスを行うためのフィルタリング計画を生成することであって、フィルタリング動作の前記シーケンスの個々の動作の種類は、(a)サンプリング、(b)入れ換え、(c)分割、または(d)並列計算のための区分のうちの1つまたは複数を含み、前記フィルタリング計画は、第1のチャンクレベルフィルタリング動作、続いて第2のチャンクレベルフィルタリング動作を含む、前記生成することと、
前記第1のチャンクレベルフィルタリング動作を実行するために、少なくとも前記複数のチャンクのサブセットが記憶される1つまたは複数の永続的記憶装置に向けられる一組のデータ転送を開始することであって、前記一組のデータ転送の後で、前記第1のメモリ部分が、少なくとも前記特定のチャンクを含む、前記開始することと、
前記第1のチャンクレベルフィルタリング動作のインメモリ結果セットに対して前記第2のチャンクレベルフィルタリング動作を実行することと、
チャンクレベルフィルタリング動作の前記シーケンスの出力から複数の観測記録を抽出することと、を行うことを含む、前記方法。
7.前記1つまたは複数のデータソースは、特定の記憶オブジェクトを含む1つまたは複数の記憶オブジェクトを含み、前記複数のチャンク内への、前記特定のデータセットの前記マッピングは、チャンクサイズパラメータに少なくとも部分的に基づいて、前記特定の記憶オブジェクト内の候補オフセットを前記特定のチャンクの候補終了境界として判定することを含み、前記1つまたは複数のコンピューティングデバイスによって、
前記特定のチャンクの終了境界として、前記特定の記憶オブジェクト内の特定の観測記録の終了境界を表す特定の区切り記号を選択することをさらに含み、前記特定の区切り記号は、前記候補オフセットとは異なるオフセットに配置される、条項6に記載の方法。
8.前記終了境界としての前記特定の区切り記号の前記選択は、
前記特定の記憶オブジェクトの連続読み出しにおいてオフセットを増加させるために、前記特定のチャンクの終了境界として前記候補オフセットより高いオフセットを有する第1の区切り記号を識別することを含む、条項7に記載の方法。
9.前記1つまたは複数のデータソースは、(a)シングルホストファイルシステム、(b)分散ファイルシステム、(c)ネットワークにアクセス可能なストレージサービスからウェブサービスインターフェースを介してアクセス可能な記憶オブジェクト、(d)ブロックレベルデバイスインターフェースを提示する記憶容量、または(e)データベース、のうちの1つまたは複数を含む、条項6または7に記載の方法。
10.前記要求は、前記機械学習サービスのアプリケーションプログラミングインターフェースに従ってフォーマットされる、条項6〜7または9いずれかに記載の方法。
11.前記1つまたは複数のコンピューティングデバイスによって、
前記要求内で指示された1つまたは複数の復元パラメータに従って前記特定のチャンクのコンテンツを復元することを行うことをさらに含む、条項6〜7または9〜10のいずれかに記載の方法。
12.前記1つまたは複数のコンピューティングデバイスによって、
前記要求内で指示された1つまたは複数の解読パラメータに従って前記特定のチャンクのコンテンツを解読することを行うことをさらに含む、条項6〜7または9〜11のいずれかに記載の方法。
13.前記複数の観測記録は、第1の記録長さの第1の観測記録、及び異なる記録長さの第2の観測記録を含む、条項6〜7または9〜12のいずれかに記載の方法。
14.前記1つまたは複数のコンピューティングデバイスによって、
前記特定のチャンク内で識別された一組の観測記録に対してチャンク内フィルタリング動作を実行することを行うことをさらに含む、条項6〜7または9〜13のいずれかに記載の方法。
15.前記1つまたは複数のコンピューティングデバイスによって、
前記機械学習サービスにスケジュールされるジョブのコレクション内に前記第1のチャンクレベルフィルタリング動作を表す第1のジョブオブジェクトを挿入することと、
前記第1のチャンクレベルフィルタリング動作の完了の前に、前記コレクション内に前記第2のチャンクレベルフィルタリング動作を表す第2のジョブオブジェクトを挿入することと、を行うことをさらに含む、条項6〜7または9〜14のいずれかに記載の方法。
16.前記1つまたは複数のコンピューティングデバイスによって、
(a)特徴処理レシピまたは(b)機械学習モデルのうちの1つまたは複数の実行のための入力として、前記シーケンスの出力から抽出された前記複数の観測記録を提供することを行うことをさらに含む、条項6〜7または9〜15のいずれかに記載の方法。
17.1つまたは複数のプロセッサ上で実行されたとき、
機械学習サービスの1つまたは複数のデータソースから特定のデータセットの観測記録を抽出するための要求の受信に応答して、前記特定のデータセットの複数のチャンクに対する第1のチャンクレベル動作を含む1つまたは複数のチャンクレベル動作を行うための計画を生成することであって、前記第1のチャンクレベル動作の動作の種類は、(a)サンプリング、(b)入れ換え、(c)分割、または(d)並列計算のための区分、のうちの1つまたは複数を含む、前記生成することと、
前記第1のチャンクレベル動作を実行するために、少なくとも前記複数のチャンクのサブセットが記憶される1つまたは複数の永続的記憶装置に向けられる一組のデータ転送を開始することであって、前記一組のデータ転送の後で、前記機械学習サービスの特定のサーバの第1のメモリ部分が、少なくとも前記複数のチャンクの特定のチャンクを含む、前記開始することと、
前記第1のチャンクレベル動作の結果セットに対して第2の動作を実行することと、を行い、前記第2の動作は、(a)別のフィルタリング動作、(b)特徴処理動作、または(c)集約動作、のうちの1つまたは複数を含む、プログラム命令を記憶する、非一時的コンピュータアクセス可能記憶媒体。
18.前記特定のデータセットは、(a)シングルホストファイルシステム、(b)分散ファイルシステム、(c)ネットワークにアクセス可能なストレージサービスからウェブサービスインターフェースを介してアクセス可能な記憶オブジェクト、(d)ブロックレベルデバイスインターフェースを提示する記憶容量、または(e)データベース、のうちの1つまたは複数のコンテンツを含む、条項17に記載の非一時的コンピュータアクセス可能記憶媒体。
19.前記第2の動作は、チャンク内フィルタリング動作を含む、条項17または18に記載の非一時的コンピュータアクセス可能記憶媒体。
20.前記第2の動作は、前記特定のチャンク内で識別された第1の観測記録、及び前記複数のチャンクの異なるチャンク内で識別された第2の観測記録を含む複数の観測記録に対して行われるチャンク間フィルタリング動作を含む、条項17〜19のいずれかに記載の非一時的コンピュータアクセス可能記憶媒体。
21.前記第2の動作は、前記特定のチャンクを異なる永続的記憶装置にコピーすることなく、かつ1つまたは複数の永続的記憶装置からの前記特定のチャンクのコンテンツを再読み出しすることなく行われる、インメモリ動作である、条項17〜20のいずれかに記載の非一時的コンピュータアクセス可能記憶媒体。
22.前記第1のチャンクレベル動作の動作の種類は、並列計算のための区分であり、前記第1のチャンクレベル動作は、第1の訓練動作及び第2の訓練動作を含む複数のモデル訓練動作を含み、前記第1の訓練動作の実行持続時間は、少なくとも部分的に前記第2の訓練動作の実行持続時間と重複する、条項17〜21のいずれかに記載の非一時的コンピュータアクセス可能記憶媒体。
本開示の実施形態は、以下の条項の見地からも、説明することができる。
1.システムであって、
機械学習モデルの1回以上の訓練/評価反復のために使用される整合性メタデータを生成することであって、前記整合性メタデータは、少なくとも擬似乱数ソースの特定の初期化パラメータ値を含む、前記生成することと、
前記機械学習モデルの特定のデータセットのアドレス空間を、第1の複数の観測記録を含む第1のチャンク、及び第2の複数の観測記録を含む第2のチャンクを含む複数のチャンクに細分することと、
1つまたは複数の永続的記憶装置から、前記第1のチャンクの観測記録を第1のサーバのメモリ内へ、及び前記第2のチャンクの観測記録を第2のサーバのメモリ内へ取得することと、
第1の組の擬似乱数を使用して、前記複数のチャンクから第1の訓練セットを選択することであって、前記第1の訓練セットは、前記第1のチャンクの少なくとも一部分を含み、前記第1の訓練セットの観測記録は、1回以上の訓練/評価反復の第1の訓練/評価反復の間に前記機械学習モデルを訓練するために使用され、前記第1の組の擬似乱数は、整合性メタデータを使用して得られる、前記選択することと、
第2の組の擬似乱数を使用して、前記複数のチャンクから第1の試験セットを選択することであって、前記第1の試験セットは、前記第2のチャンクの少なくとも一部分を含み、前記第1の試験セットの観測記録は、前記第1の訓練/評価反復の間に前記機械学習モデルを評価するために使用され、前記第2の組の擬似乱数は、前記整合性メタデータを使用して得られる、前記選択することと、を行うように構成された、1つまたは複数のコンピューティングデバイスを備える、前記システム。
2.前記1つまたは複数のコンピューティングデバイスは、
機械学習サービスにスケジュールされるジョブのコレクション内に、前記第1の訓練セットの前記選択に対応する第1のジョブを、及びそのコレクション内に、前記第1の試験セットの選択に対応する第2のジョブを挿入することと、
前記第1のジョブに対して前記第2のジョブの非同期的実行をスケジュールすることと、を行うようにさらに構成される、条項1に記載のシステム。
3.前記1つまたは複数のコンピューティングデバイスは、
機械学習サービスのクライアントから、前記1回以上の訓練/評価反復に対する要求を受信するように構成され、前記要求は、前記整合性メタデータの少なくとも一部分を指示する、条項1または2に記載のシステム。
4.前記整合性メタデータは、前記特定のデータセットの1つまたは複数の観測記録が記憶されるデータオブジェクトの識別子に少なくとも部分的に基づく、条項1〜3のいずれかに記載のシステム。
5.前記1つまたは複数のコンピューティングデバイスは、
前記第1の訓練セットの前記観測記録を前記機械学習モデルへの入力として提示する前に、前記第1のチャンクの観測記録を再順序付けするようにさらに構成される、条項1〜4のいずれかに記載のシステム。
6.方法であって、
機械学習モデルの1回以上の訓練/評価反復のために使用される整合性メタデータを判定することであって、前記整合性メタデータは、少なくとも擬似乱数ソースの特定のパラメータ値を含む、前記判定することと、
前記機械学習モデルの特定のデータセットのアドレス空間を、第1の複数の観測記録を含む第1のチャンク、及び第2の複数の観測記録を含む第2のチャンクを含む複数のチャンクに細分することと、
前記整合性メタデータを使用して、前記複数のチャンクから第1の訓練セットを選択することであって、前記第1の訓練セットは、前記第1のチャンクの少なくとも一部分を含み、前記第1の訓練セットの観測記録は、前記1回以上の訓練/評価反復の第1の訓練/評価反復の間に前記機械学習モデルを訓練するために使用される、前記選択することと、
前記整合性メタデータを使用して、前記複数のチャンクから第1の試験セットを選択することであって、前記第1の試験セットは、前記第2のチャンクの少なくとも一部分を含み、前記第1の試験セットの観測記録は、前記第1の訓練/評価反復の間に前記機械学習モデルを評価するために使用される、前記選択することと、を行うように構成された1つまたは複数のコンピューティングデバイスを含む、前記方法。
7.前記1つまたは複数のコンピューティングデバイスによって、
前記第1の訓練/評価反復の間の前記機械学習モデルの訓練の前に、永続的記憶装置から第1のサーバのメモリ内に、少なくとも前記第1のチャンクを取得することと、
前記1回以上の訓練/評価反復の異なる訓練/評価反復のために、前記第1のチャンクを前記第1のサーバのメモリから異なる位置にコピーせずに、(a)異なる訓練セット、及び(b)異なる試験セットを選択することと、を行うことをさらに含む、条項6に記載の方法。
8.前記1つまたは複数のコンピューティングデバイスによって、
機械学習サービスのクライアントから、前記1回以上の訓練/評価反復に対する要求を受信することを行うことをさらに含み、前記要求は、前記整合性メタデータの少なくとも一部分を指示する、条項6または7に記載の方法。
9.前記要求は、プロバイダネットワークの機械学習サービスによって実装されている特定のプログラム的インターフェースに従ってフォーマットされる、条項8に記載の方法。
10.前記整合性メタデータは、前記特定のデータセットの1つまたは複数の観測記録が記憶されるデータオブジェクトの識別子に少なくとも部分的に基づく、条項6〜8のいずれかに記載の方法。
11.前記第1の訓練セットは、前記複数のチャンクの第3のチャンクの少なくとも1つの観測記録を含み、前記第1の試験セットは、前記第3のチャンクの少なくとも1つの観測記録を含む、条項6〜8または10のいずれかに記載の方法。
12.前記1つまたは複数のコンピューティングデバイスによって、
前記第1の訓練セットの前記観測記録を前記機械学習モデルへの入力として提示する前に、前記第1のチャンクの観測記録を入れ換えることをさらに含む、条項6〜8または10〜11のいずれかに記載の方法。
13.前記1つまたは複数のコンピューティングデバイスによって、
(a)特定のサーバの利用可能なメモリのサイズ、または(b)クライアント要求、のうちの1つまたは複数に少なくとも部分的に基づいて、前記アドレス空間が細分されるいくつかのチャンクを判定することを行うことをさらに含む、条項6〜8または10〜12のいずれかに記載の方法。
14.前記特定のデータセットは、複数のデータオブジェクト内に記憶され、
前記アドレス空間を細分する前に、前記複数のデータオブジェクトが組み合わせられる順序を判定することをさらに含む、条項6〜8または10〜13のいずれかに記載の方法。
15.前記1回以上の訓練/評価反復は、前記機械学習モデルの交差検証反復である、条項6〜8または10〜14のいずれかに記載の方法。
16.1つまたは複数のプロセッサ上で実行されたとき、
機械学習モデルの1回以上の訓練/評価反復のために使用される整合性メタデータを判定することであって、前記整合性メタデータは、少なくとも擬似乱数ソースの特定のパラメータ値を含む、前記判定することと、
前記整合性メタデータを使用して、特定のデータセットの複数のチャンクから第1の訓練セットを選択することであって、前記複数のチャンクの個々は、1つまたは複数の観測記録を含み、前記第1の訓練セットは、前記複数のチャンクの第1のチャンクの少なくとも一部分を含み、前記第1の訓練セットの観測記録は、前記1回以上の訓練/評価反復の第1の訓練/評価反復の間に前記機械学習モデルを訓練するために使用される、前記選択することと、
前記整合性メタデータを使用して、前記複数のチャンクから第1の試験セットを選択することであって、前記第1の試験セットは、前記複数のチャンクの第2のチャンクの少なくとも一部分を含み、前記第1の試験セットの観測記録は、前記第1の訓練/評価反復の間に前記機械学習モデルを評価するために使用される、前記選択することと、を行う、プログラム命令を記憶する、非一時的コンピュータアクセス可能記憶媒体。
17.前記命令は、前記1つまたは複数のプロセッサで実行されたとき、
前記第1の訓練/評価反復の間の前記機械学習モデルの訓練の前に、永続的記憶装置から第1のサーバのメモリ内への、少なくとも前記第1のチャンクの取得を開始することと、
前記1回以上の訓練/評価反復の異なる訓練/評価反復のために、前記第1のチャンクを前記第1のサーバの前記メモリから異なる位置にコピーせずに、(a)異なる訓練セット、及び(b)異なる試験セットを選択することと、を行う、条項16に記載の非一時的コンピュータアクセス可能記憶媒体。
18.前記命令は、前記1つまたは複数のプロセッサで実行されたとき、
機械学習サービスのクライアントから、前記1回以上の訓練/評価反復に対する要求を受信するように構成され、前記要求は、前記整合性メタデータの少なくとも一部分を指示する、条項16または17に記載の非一時的コンピュータアクセス可能記憶媒体。
19.前記整合性メタデータは、前記特定のデータセットの1つまたは複数の観測記録が記憶されるデータオブジェクトの識別子に少なくとも部分的に基づく、条項16〜18のいずれかに記載の非一時的コンピュータアクセス可能記憶媒体。
20.前記命令は、前記1つまたは複数のプロセッサで実行されたとき、
前記第1の訓練セットの前記観測記録を前記機械学習モデルへの入力として提示する前に、前記第1のチャンクの観測記録を入れ換える、条項16〜19のいずれかに記載の非一時的コンピュータアクセス可能記憶媒体。
本開示の実施形態は、以下の条項の見地からも、説明することができる。
1.システムであって、
機械学習モデルの訓練段階の後で、少なくとも前記機械学習モデルの実行のメモリフットプリントの目標を含む、データセットを使用して訓練される決定木ベースの機械学習モデルの1つまたは複数の実行時間最適化目標を識別することと、
前記訓練段階の木構築パスの間に深さ優先順で1つまたは複数の永続的記憶装置に、前記データセットの少なくとも一部分を使用して特定の決定木に対して生成された複数のノードのそれぞれの表現を記憶することと、
前記木構築パスの間に前記特定の決定木の1つまたは複数のノードに関して、予測有用性メトリック(PUM)のそれぞれの値を判定することであって、前記1つまたは複数のノードの前記特定のノードと関連付けられた特定のPUM値は、前記機械学習モデルを使用して生成された予測に対する前記特定のノードの予想された貢献度の測定値である、前記判定することと、
前記訓練段階の木の枝刈りパスの間に、前記特定の決定木の変更されたバージョンを生成することであって、前記変更されたバージョンを生成するために、少なくとも前記特定のノードが前記特定の決定木から削除され、前記特定のノードは、前記1つまたは複数の実行時間最適化目標に少なくとも部分的に基づいて、かつ前記特定のPUM値に少なくとも部分的に基づいて、削除のために選択される、前記生成することと、
前記特定の決定木の前記変更されたバージョンの表現を記憶することと、
前記訓練段階の後で、特定の予測を得るために少なくとも前記特定の決定木の前記変更されたバージョンを使用して、前記機械学習モデルを実行することと、を行うように構成された1つまたは複数のコンピューティングデバイスを含む、前記システム。
2.前記PUMは、(a)Gini不純度の指標、(b)情報利得メトリック、または(c)エントロピーメトリック、のうちの1つまたは複数を含む、条項1に記載のシステム。
3.前記1つまたは複数の実行時間最適化目標は、(a)予測時間目標、(b)プロセッサ使用率目標、または(c)予算目標、のうちの1つまたは複数を含む、条項1または2に記載のシステム。
4.前記1つまたは複数のコンピューティングデバイスは、
前記1つまたは複数のノード間の前記PUMの値の分布の表現を生成し、
前記分布に少なくとも部分的に基づいて、削除のための前記特定のノードを選択するようにさらに構成される、条項1〜3のいずれかに記載のシステム。
5.前記機械学習モデルは、(a)ランダムフォレストモデル、(b)分類及び回帰木(CART)モデル、または(c)adaptive boostingモデル、のうちの1つまたは複数を含む、条項1〜4のいずれかに記載のシステム。
6.方法であって、
1つまたは複数のコンピューティングデバイスによって、
機械学習モデルの訓練段階の木構築パスの間に深さ優先順で1つまたは複数の永続的記憶装置に、特定の決定木に対して生成された複数のノードのそれぞれの表現を記憶することと、
前記特定の決定木の1つまたは複数のノードに関して、予測有用性メトリック(PUM)のそれぞれの値を判定することであって、前記1つまたは複数のノードの特定のノードと関連付けられた特定のPUM値は、前記機械学習モデルを使用して生成された予測に対する前記特定のノードの予想された貢献度の測定値である、前記判定することと、
前記訓練段階の木の枝刈りパスの間に、前記特定の決定木の変更されたバージョンを生成することであって、前記生成は、前記特定の決定木からの少なくとも前記特定のノードの削除を含み、前記特定のノードは、前記特定のPUM値に少なくとも部分的に基づいて削除のために選択される、前記生成することと、
少なくとも特定の予測を得るために前記特定の決定木の前記変更されたバージョンを使用して、前記機械学習モデルを実行することと、を行うことを含む、前記方法。
7.前記特定のノードは、(a)メモリフットプリント目標、(b)予測時間目標、(c)プロセッサ使用率目標、または(d)予算目標、のうちの1つまたは複数を含む、前記モデルの実行の1つまたは複数の実行時間最適化目標に少なくとも部分的に基づいて削除のために選択される、条項6に記載の方法。
8.前記PUMは、(a)Gini不純度の指標、(b)情報利得メトリック、または(c)エントロピーメトリック、のうちの1つまたは複数を含む、条項6または7に記載の方法。
9.前記1つまたは複数のコンピューティングデバイスによって、
前記1つまたは複数のノード間の前記PUMの値の分布を判定することと、
前記分布に少なくとも部分的に基づいて、削除のための前記特定のノードを選択することと、を行うことをさらに含む、条項6〜8のいずれかに記載の方法。
10.前記1つまたは複数のコンピューティングデバイスによって、
前記木の枝刈りパスの間に、前記特定の決定木のトップダウン走査において、前記特定の決定木の複数のノードの前記PUMの値を累積することと、
前記累積の結果に少なくとも部分的に基づいて、削除のための前記特定のノードを選択することと、を行うことをさらに含む、条項6〜9のいずれかに記載の方法。
11.前記1つまたは複数のコンピューティングデバイスによって、
前記木の枝刈りパスの間に、前記特定の決定木のボトムアップ走査において、前記特定の決定木の複数のノードの前記PUMの値を調査することと、
前記調査の結果に少なくとも部分的に基づいて、削除のための前記特定のノードを選択することと、を行うことをさらに含む、条項6〜10のいずれかに記載の方法。
12.前記機械学習モデルは、(a)ランダムフォレストモデル、(b)分類及び回帰木(CART)モデル、または(c)adaptive boostingモデル、のうちの1つまたは複数を含む、条項6〜11のいずれかに記載の方法。
13.前記機械学習モデルは、前記特定の決定木を含む複数の決定木を利用するように構成され、前記特定の決定木は、機械学習サービスの実行の複数のスレッドの実行の特定のスレッドで生成され、前記1つまたは複数のコンピューティングデバイスによって、
実行の前記複数のスレッドの実行の異なるスレッドで、前記複数の決定木の第2の決定木を生成することを行うことをさらに含む、条項6〜12のいずれかに記載の方法。
14.前記機械学習モデルは、前記特定の決定木を含む複数の決定木を利用するように構成され、前記特定の決定木の前記変更されたバージョンは、機械学習サービスの実行の複数のスレッドの実行の特定のスレッドで生成され、前記1つまたは複数のコンピューティングデバイスによって、
実行の前記複数のスレッドの実行の異なるスレッドで、前記複数の決定木の第2の決定木の変更されたバージョンを生成することを行うことをさらに含む、条項6〜13のいずれかに記載の方法。
15.前記機械学習モデルは、前記特定の決定木を含む複数の決定木を利用するように構成され、前記特定の予測は、機械学習サービスの実行の複数のスレッドの実行の特定のスレッドで得られ、
実行の前記複数のスレッドの実行の異なるスレッドで、前記複数の決定木の第2の決定木の変更されたバージョンを使用して第2の予測を得ることをさらに含む、条項6〜14のいずれかに記載の方法。
16.1つまたは複数のプロセッサ上で実行されたとき、
機械学習モデルの訓練段階の1つまたは複数の木構築期間の第1の木構築期間の間に、深さ優先順で1つまたは複数の永続的記憶装置に、特定の決定木に対して生成された複数のノードのそれぞれの表現を記憶することと、
前記特定の決定木の1つまたは複数のノードに関して、予測有用性メトリック(PUM)のそれぞれの値を判定することであって、前記1つまたは複数のノードの特定のノードと関連付けられた特定のPUM値は、前記機械学習モデルを使用して生成された予測に対する前記特定のノードの予想された貢献度の測定値である、前記判定することと、
前記訓練段階の1つまたは複数の木の枝刈り期間の第1の木の枝刈り期間の間に、前記特定のPUM値に少なくとも部分的に基づいて、前記特定の決定木からの削除のための前記特定のノードを選択することと、
前記特定の決定木の変更されたバージョンを記憶することと、を行い、前記変更されたバージョンは、前記特定のノードを除外する、プログラム命令を記憶する、非一時的コンピュータアクセス可能記憶媒体。
17.前記特定のノードは、(a)メモリフットプリント目標、(b)予測時間目標、(c)プロセッサ使用率目標、または(d)予算目標、のうちの1つまたは複数を含む、機械学習モデルの実行の1つまたは複数の実行時間最適化目標に少なくとも部分的に基づいて削除のために選択される、条項16に記載の非一時的コンピュータアクセス可能記憶媒体。
18.前記特定のノードは、自身に代わって前記機械学習モデルが作成されるクライアントによって指定された1つまたは複数の目標に少なくとも部分的に基づいて、削除のために選択される、条項16または17に記載の非一時的コンピュータアクセス可能記憶媒体。
19.前記命令は、前記1つまたは複数のプロセッサで実行されたとき、
前記1つまたは複数のノード間の前記PUMの値の分布の表現を記憶し、
前記分布に少なくとも部分的に基づいて、削除のための前記特定のノードを選択するようにさらに構成される、条項16〜18のいずれかに記載の非一時的コンピュータアクセス可能記憶媒体。
20.前記特定の決定木の前記複数のノードは、プロバイダネットワークに実装された機械学習サービスのプログラム的インターフェースの呼び出しに応答して生成される、条項16〜19のいずれかに記載の非一時的コンピュータアクセス可能記憶媒体。
21.前記1つまたは複数の木構築期間は、前記第1の木の枝刈り期間の後に行われる第2の木構築期間を含み、前記1つまたは複数の木の枝刈り期間は、前記第2の木構築期間の後に行われる第2の木の枝刈り期間を含み、前記命令は、前記1つまたは複数のプロセッサで実行されたとき、
前記第2の木構築期間の間に、前記特定の決定木の第2のノードを記憶し、
前記第2の木の枝刈り期間の間に、前記第2のノードと関連付けられたPUM値に少なくとも部分的に基づいて、前記第2のノードを前記特定の決定木から削除するかどうかを判定する、条項16〜20のいずれかに記載の非一時的コンピュータアクセス可能記憶媒体。
本開示の実施形態は、以下の条項の見地からも、説明することができる。
1.システムであって、
プロバイダネットワークの機械学習サービスのクライアントとの1つまたは複数のプログラム的対話を介して、(a)指定された訓練データセットを使用して予測される1つまたは複数の目標変数、(b)特定の予測の質メトリックを含む1つまたは複数の予測の質メトリック、及び(c)特定の予測実行時間目標を含む1つまたは複数の予測実行時間目標を判定することと、
前記指定されたデータセットの1つまたは複数の入力変数から第1の組の処理済み変数を導出するための一組の候補特徴処理変換を識別することであって、少なくとも前記第1の組の処理済み変数のサブセットは、前記1つまたは複数の目標変数を予測するための機械学習モデルを訓練するのに使用可能であり、前記一組の候補特徴処理変換は、特定の特徴処理変換を含む、前記識別することと、
(a)前記特定の予測の質メトリックへの前記特定の候補特徴処理変換を実行する影響を示す質推定値、及び(b)前記特定の予測実行時間目標と関連付けられた特定の実行時間性能メトリックへの前記特定の候補特徴処理変換を実行する影響を示す費用見積もりを判定することと、
前記質推定値に少なくとも部分的に基づいて、かつ前記費用見積もりに少なくとも部分的に基づいて、承認のために前記クライアントに提供される特徴処理提案を生成することであって、前記特徴処理提案は、前記特定の特徴処理変換を実行するための提案を含む、前記生成することと、
前記クライアントからの承認の指標に応答して、前記特定の特徴処理変換から得られた特定の処理済み変数を使用して訓練された機械学習モデルを実行することと、を行うように構成された1つまたは複数のコンピューティングデバイスを含む、前記システム。
2.前記質推定値を判定するために、前記1つまたは複数のコンピューティングデバイスは、前記特定の処理済み変数の第1の組の値が入力として前記機械学習モデルに提供される第1の評価実行と、前記特定の処理済み変数の異なる組の値が入力として前記機械学習モデルに提供される第2の評価実行と、を含む、前記機械学習モデルの複数の評価実行を実行する、条項1に記載のシステム。
3.前記費用見積もりを判定するために、前記1つまたは複数のコンピューティングデバイスは、前記機械学習モデルの第1の異形及び前記機械学習モデルの第2の異形のそれぞれの評価実行を実行し、前記第1の異形は、前記特定の処理済み変数を含む第1の訓練セットを使用して訓練され、前記第2の異形は、前記特定の処理済み変数を除外した第2の訓練セットを使用して訓練される、条項1または2に記載のシステム。
4.前記特定の予測の質メトリックは、(a)AUC(曲線下面積)メトリック、(b)正確さメトリック、(c)再現度メトリック、(d)感度メトリック、(e)真陽性率、(f)特異性メトリック、(g)真陰性率、(h)精度メトリック、(i)偽陽性率、(j)偽陰性率、(k)F1スコア、(l)適用範囲メトリック、(m)絶対パーセントエラーメトリック、または(n)二乗エラーメトリック、のうちの1つまたは複数を含む、条項1〜3のいずれかに記載のシステム。
5.前記特定の特徴処理変換は、(a)分位ビン関数、(b)カルテシアン積関数、(c)bi−gram関数、(d)n−gram関数、(e)直交スパースbigram関数、(f)カレンダ関数、(g)画像処理関数、(h)音声処理関数、(i)生物情報学処理関数、または(j)自然言語処理関数、のうちの1つまたは複数の使用を含む、条項1〜4のいずれかに記載のシステム。
6.方法であって、
1つまたは複数のコンピューティングデバイスによって、
機械学習サービスで、1つまたは複数の目標変数を予測するための機械学習モデルを訓練するのに使用可能な一組の候補入力変数を識別することであって、前記一組の候補入力変数は、訓練データセットの1つまたは複数の入力変数に適用可能な特定の特徴処理変換によって生成された少なくとも特定の処理済み変数を含む、前記識別することと、
(a)特定の予測の質メトリックへの前記特定の特徴処理変換を実行する影響を示す質推定値、及び(b)特定の予測目標と関連付けられた性能メトリックへの前記特定の特徴処理変換を実行する影響を示す費用見積もりを判定することと、
前記質推定値に少なくとも部分的に基づいて、かつ前記費用見積もりに少なくとも部分的に基づいて、前記特定の特徴処理変換を含む特徴処理計画を実行することと、を行うことを含む、前記方法。
7.前記1つまたは複数のコンピューティングデバイスによって、
複数の候補特徴処理変換に対応するそれぞれの質推定値及びそれぞれの費用見積もりの分析に少なくとも部分的に基づいて、前記特定の特徴処理変換を推奨する特定の特徴処理提案を含む1つまたは複数の特徴処理提案を生成することと、
前記1つまたは複数の特徴処理提案の指標を前記クライアントに提供することと、を行うことをさらに含む、条項6に記載の方法。
8.前記特徴処理計画の前記実行は、前記クライアントからの前記特定の特徴処理提案の承認の指標を得ることに応答する、条項6または7に記載の方法。
9.前記1つまたは複数のコンピューティングデバイスによって、
前記機械学習サービスの1つまたは複数のプログラム的インターフェースを介して、(a)前記1つまたは複数の目標変数、(b)前記特定の予測の質メトリックを含む1つまたは複数の予測の質メトリック、(c)前記特定の予測目標を含む1つまたは複数の予測目標、または(d)必須特徴処理変換を識別する特定の制約を含む1つまたは複数の制約、のうちの1つまたは複数のそれぞれの指標を含む、モデル作成要求を受信することを行うことをさらに含む、条項6または7に記載の方法。
10.前記1つまたは複数のコンピューティングデバイスによって、
1つまたは複数の特徴処理提案が、前記モデル作成要求に少なくとも部分的に基づいて、前記機械学習サービスのクライアントにとって許容できないという判定に応答して、
必要条件再考要求を前記クライアントに送信することと、
(a)前記特定の予測の質メトリック、または(b)前記特定の予測目標、のうちの1つまたは複数に割り当てられた相対的優先度の指標を前記クライアントから受信することと、を行うことをさらに含む、条項6〜7または9のいずれかに記載の方法。
11.前記特定の予測の質メトリックは、(a)AUC(曲線下面積)メトリック、(b)正確さメトリック、(c)再現度メトリック、(d)感度メトリック、(e)真陽性率、(f)特異性メトリック、(g)真陰性率、(h)精度メトリック、(i)偽陽性率、(j)偽陰性率、(k)F1スコア、(l)適用範囲メトリック、(m)絶対パーセントエラーメトリック、または(n)二乗エラーメトリック、のうちの1つまたは複数を含む、条項6〜7または9〜10のいずれかに記載の方法。
12.前記特定の特徴処理変換は、(a)分位ビン関数、(b)カルテシアン積関数、(c)bi−gram関数、(d)n−gram関数、(e)直交スパースbigram関数、(f)カレンダ関数、(g)画像処理関数、(h)音声処理関数、(i)生物情報学処理関数、または(j)自然言語処理関数、のうちの1つまたは複数の使用を含む、条項6〜7または9〜11のいずれかに記載の方法。
13.前記特定の予測目標は、(a)モデル実行時間目標、(b)メモリ使用率目標、(c)プロセッサ使用率目標、(d)記憶装置使用率目標、(e)ネットワーク使用率目標、または(f)予算、のうちの1つまたは複数を含む、条項6〜7または9〜12のいずれかに記載の方法。
14.前記1つまたは複数のコンピューティングデバイスによって、
前記機械学習サービスのクライアントが前記特定の予測目標が機械学習モデルの特定の実行によって満たされる程度を判定することを可能にするプログラム的インターフェースを提供すること、を行うことをさらに含む、条項6〜7または9〜13のいずれかに記載の方法。
15.前記質推定値の前記判定は、前記特定の処理済み変数の第1の組の値が入力として前記機械学習モデルに提供される第1の評価実行と、前記特定の処理済み変数の異なる組の値が入力として前記機械学習モデルに提供される第2の評価実行と、を含む、前記機械学習モデルの複数の評価実行の実行を含む、条項6〜7または9〜14のいずれかに記載の方法。
16.前記費用見積もりの前記判定は、前記機械学習モデルの第1の異形及び前記機械学習モデルの第2の異形のそれぞれの評価実行の実行を含み、前記第1の異形は、前記特定の処理済み変数を含む第1の組の入力変数を使用して訓練され、前記第2の異形は、前記特定の処理済み変数を除外した第2の組の入力変数を使用して訓練される、条項6〜7または9〜15のいずれかに記載の方法。
17.前記1つまたは複数のコンピューティングデバイスによって、
前記クライアントから、前記訓練データセットの入力変数に対して前記クライアントによって要求された1つまたは複数の特徴処理変換を指示するレシピの指標を受信することであって、前記特定の特徴処理変換は、前記レシピに含まれない、前記受信することと、
前記クライアントに、前記レシピに対する提案された変更を提供することと、を行うことをさらに含み、前記提案された変更は、前記特定の特徴処理変換の指標を含む、条項6〜7または9〜16のいずれかに記載の方法。
18.1つまたは複数のプロセッサ上で実行されたとき、
機械学習サービスで、1つまたは複数の目標変数を予測するための機械学習モデルを訓練するのに使用可能な一組の候補入力変数を識別することであって、一組の候補入力変数は、訓練データセットの1つまたは複数の入力変数に適用可能な特定の特徴処理変換から生じた少なくとも特定の処理済み変数を含む、前記識別することと、
特定の予測目標と関連付けられた性能メトリックへの前記特定の特徴処理変換を実行する影響を示す費用見積もりを判定することと、
前記費用見積もりに少なくとも部分的に基づいて、前記特定の特徴処理変換を除外した特徴処理提案を実行することと、を行うプログラム命令を記憶する、非一時的コンピュータアクセス可能記憶媒体。
19.前記命令は、前記1つまたは複数のプロセッサで実行されたとき、
特定の予測の質メトリックへの前記特定の特徴処理変換の実行の影響を示す質推定値を判定し、
前記特徴処理提案は、前記質推定値に少なくとも部分的に基づいて実行される、条項18に記載の非一時的コンピュータアクセス可能記憶媒体。
20.前記機械学習モデルは、(a)分類モデル、(b)回帰モデル、(c)自然言語処理(NLP)モデル、または(d)クラスタ化モデル、のうちの1つまたは複数を含む、条項18または19に記載の非一時的コンピュータアクセス可能記憶媒体。
21.前記特定の特徴処理変換は、(a)分位ビン関数、(b)カルテシアン積関数、(c)bi−gram関数、(d)n−gram関数、(e)直交スパースbigram関数、(f)カレンダ関数、(g)画像処理関数、(h)音声処理関数、(i)生物情報学処理関数、または(j)自然言語処理関数、のうちの1つまたは複数の使用を含む、条項18〜20のいずれかに記載の非一時的コンピュータアクセス可能記憶媒体。
本開示の実施形態は、以下の条項の見地からも、説明することができる。
1.システムであって、
プロバイダネットワークの機械学習サービスで、線形予測モデルを生成するために使用されるデータソースの指標を受信することであって、予測を生成するために、前記線形予測モデルは、前記データソースの観測記録から導出された複数の特徴の個々に割り当てられたそれぞれの重みを利用し、前記それぞれの重みは、前記線形予測モデルのパラメータベクトルに記憶される、前記受信することと、
前記データソースの特定の組の観測記録の調査に少なくとも部分的に基づいて、前記線形予測モデルの訓練段階の複数の学習反復の特定の学習反復の間に、前記パラメータベクトルに追加される1つまたは複数の特徴のそれぞれの重みを判定することと、
作動条件が前記訓練段階の間に満たされたという判定に応答して、
重みの分位分析に少なくとも部分的に基づいて、重みが前記パラメータベクトル内に含まれる一組の特徴から1つまたは複数の枝刈り被害者を識別することであって、前記分位分析は、ソート動作なしに識別することと、
少なくとも前記パラメータベクトルから前記1つまたは複数の枝刈り被害者の特定の枝刈り被害者に対応する特定の重みを削除することと、
前記線形予測モデルの訓練後段階予測実行の間に、重みが前記特定の枝刈り被害者の前記特定の重みが前記パラメータベクトルから削除された後に判定される少なくとも1個の特徴を使用して、予測を生成することと、を行うように構成された1つまたは複数のコンピューティングデバイスを含む、前記システム。
2.前記作動条件は、前記パラメータベクトルの母集団に少なくとも部分的に基づく、条項1に記載のシステム。
3.前記作動条件は、クライアントによって指示された目標に少なくとも部分的に基づく、条項1または2に記載のシステム。
4.前記1つまたは複数のコンピューティングデバイスは、
前記特定の学習反復の後に行われる前記複数の学習反復の後続の学習反復の間に、
前記特定の枝刈り被害者の重みが前記パラメータベクトルに再追加されることを判定し、
前記特定の枝刈り被害者に対応する前記重みを、前記パラメータベクトルに追加するようにさらに構成される、条項1〜3のいずれかに記載のシステム。
5.重みが前記特定の学習反復の間に前記パラメータベクトルに追加される前記1つまたは複数の特徴の第1の特徴は、(a)分位ビン関数、(b)カルテシアン積関数、(c)bi−gram関数、(d)n−gram関数、(e)直交スパースbigram関数、(f)カレンダ関数、(g)画像処理関数、(h)音声処理関数、(i)生物情報学処理関数、(j)自然言語処理関数、または(k)動画処理関数、のうちの1つまたは複数の使用を含む変換を介して、前記データソースの前記観測記録の1つまたは複数の変数から導出される、条項1〜4のいずれかに記載のシステム。
6.方法であって、
1つまたは複数のコンピューティングデバイスによって、
機械学習モデルを訓練するために使用されるデータソースの指標を受信することであって、予測を生成するために、前記機械学習モデルは、前記データソースの観測記録から導出された複数の特徴の個々に割り当てられたそれぞれのパラメータを利用し、前記それぞれのパラメータは、前記機械学習モデルのパラメータベクトルに記憶される、前記受信することと、
前記機械学習モデルの訓練段階の複数の学習反復の特定の学習反復の間に、それぞれのパラメータが前記パラメータベクトルに追加される1つまたは複数の特徴を識別することと、
作動条件が前記訓練段階で満たされたという判定に応答して、1つまたは複数の枝刈り被害者特徴のそれぞれのパラメータを前記パラメータベクトルから削除することであって、前記1つまたは複数の枝刈り被害者特徴は、前記機械学習モデルを使用して立てられた予測への前記パラメータベクトルの中にパラメータが含まれる特徴の相対的貢献度の分析に少なくとも部分的に基づいて選択される、前記削除することと、
前記機械学習モデルの訓練後段階予測実行の間に、前記1つまたは複数の枝刈り被害者特徴が選択された後にパラメータが判定される少なくとも1個の特徴を使用して、特定の予測を生成することと、を行うことを含む、前記方法。
7.前記相対的貢献度の分析は、前記パラメータベクトルの中に含まれる重みの分位分析を含む、条項6に記載の方法。
8.前記相対的貢献度の分析は、(a)ソート動作を含まず、かつ(b)パラメータベクトルの中に含まれるパラメータの値のコピーを含まない、条項6または7に記載の方法。
9.前記作動条件が満たされたという前記判定は、前記パラメータベクトルの母集団が閾値を超えたことを判定することを含む、条項6〜8のいずれかに記載の方法。
10.前記作動条件は、前記機械学習サービスのサーバのリソース容量制約に少なくとも部分的に基づく、条項6〜9のいずれかに記載の方法。
11.前記作動条件は、クライアントによって指示された目標に少なくとも部分的に基づく、条項6〜10のいずれかに記載の方法。
12.前記1つまたは複数のコンピューティングデバイスによって、
前記特定の学習反復の後に行われる前記複数の学習反復の後続の学習反復の間に、
枝刈り被害者特徴として事前に選択された特定の特徴のパラメータが、前記パラメータベクトルに再追加されることを判定することと、
前記特定の特徴のパラメータを前記パラメータベクトルに追加することと、を行うことをさらに含む、条項6〜11のいずれかに記載の方法。
13.それぞれのパラメータが前記特定の学習反復の間に前記パラメータベクトルに追加される1つまたは複数の特徴の第1の特徴は、(a)分位ビン関数、(b)カルテシアン積関数、(c)bi−gram関数、(d)n−gram関数、(e)直交スパースbigram関数、(f)カレンダ関数、(g)画像処理関数、(h)音声処理関数、(i)生物情報学処理関数、(j)自然言語処理関数、または(k)動画処理関数、のうちの1つまたは複数の使用を含む変換を介して、前記データソースの前記観測記録の1つまたは複数の変数から判定される、条項6〜12のいずれかに記載の方法。
14.前記1つまたは複数のコンピューティングデバイスによって、
前記特定の学習反復の間に、前記パラメータベクトルの中に含まれる1つまたは複数の事前に生成されたパラメータを更新するための確率的勾配降下法を実行することを行うことをさらに含む、条項6〜13のいずれかに記載の方法。
15.前記機械学習モデルは、一般化線形モデルを含む、条項6〜14のいずれかに記載の方法。
16.前記1つまたは複数のコンピューティングデバイスによって、
プロバイダネットワークに実装された機械学習サービスのプログラム的インターフェースを介して、前記データソースを指示するクライアント要求を受信することであって、前記機械学習サービスは、1つまたは複数のデータセンタの複数の訓練サーバを含む、前記受信することと、
前記機械学習サービスのジョブスケジューラによって前記複数の訓練サーバの特定の訓練サーバに、前記クライアント要求の前記受信に対して非同期的に複数の学習反復を含むジョブを割り当てることと、を行うことをさらに含む、条項6〜15のいずれかに記載の方法。
17.機械学習サービスのモデルジェネレータを実装している1つまたは複数のプロセッサで実行されるとき、前記モデルジェネレータが、
モデルを生成するために使用されるデータソースを判定することであって、予測を生成するために、前記モデルは、前記データソースの観測記録から導出された複数の特徴の個々に割り当てられたそれぞれのパラメータを利用し、前記それぞれのパラメータは、前記モデルのパラメータベクトルに記憶される、前記判定することと、
前記モデルの訓練段階の複数の学習反復の特定の学習反復の間に、パラメータが前記パラメータベクトルに追加される1つまたは複数の特徴を識別することと、
作動条件が満たされたという判定に応答して、1つまたは複数の枝刈り被害者特徴に割り当てられたそれぞれのパラメータを前記パラメータベクトルから削除することであって、前記1つまたは複数の枝刈り被害者特徴は、前記モデルを使用して立てられた予測への前記パラメータベクトルの中にパラメータが含まれる特徴の相対的貢献度の分析に少なくとも部分的に基づいて選択される、前記削除することと、
枝刈り被害者特徴に割り当てられた少なくとも1つのパラメータの前記パラメータベクトルからの削除の後に、少なくとも1つのパラメータを前記パラメータベクトルに追加することと、を行うように構成される、プログラム命令を記憶する、非一時的コンピュータアクセス可能記憶媒体。
18.前記相対的貢献度の分析は、事前(a priori)パラメータ値から前記パラメータベクトルの中に含められた特定のパラメータ値の偏差の判定を含む、条項17に記載の非一時的コンピュータアクセス可能記憶媒体。
19.前記特定のパラメータ値は、確率分布を含み、前記偏差の判定は、カルバック・ライブラー(KL)情報量の推定を含む、条項17または18に記載の非一時的コンピュータアクセス可能記憶媒体。
20.前記作動条件が満たされたかどうかを判定するために、前記モデルジェネレータは、前記パラメータベクトルの母集団が閾値を超えたかどうかを判定するように構成される、条項17〜19のいずれかに記載の非一時的コンピュータアクセス可能記憶媒体。
21.前記データソースは、機械学習サービスのネットワークエンドポイントに送信される観測記録のストリームのソースを含む、条項17〜20のいずれかに記載の非一時的コンピュータアクセス可能記憶媒体。
本開示の実施形態は、以下の条項の見地からも、説明することができる。
1.システムであって、
プロバイダネットワークの機械学習サービスで、モデルを生成するために使用される観測記録を含むデータソースの指標を受信することと、
分位ビニング変換の候補として前記観測記録の1つまたは複数の変数を識別することと、
1つまたは複数の変数の少なくとも特定の変数の特定の同時ビニング計画を判定することであって、前記特定の同時ビニング計画に従って、複数の分位ビニング変換がモデルの訓練段階の間に前記特定の変数に適用され、前記複数の分位ビニング変換は、第1のビン計数を用いた第1の分位ビニング変換、及び異なるビン計数を用いた第2の分位ビニング変換を含む、前記判定することと、
前記訓練段階の間に、前記第1の分位ビニング変換を使用して得られた第1のビニング済み特徴、及び前記第2の分位ビニング変換を使用して得られた第2のビニング済み特徴を含む、前記特定の同時ビニング計画の実行の結果として得られた複数のビニング済み特徴に対応するそれぞれの最初の重み値を含むパラメータベクトルを生成することと、
前記訓練段階の間に、選択された最適化戦略に従って前記複数のビニング済み特徴の特定のビニング済み特徴に対応する少なくとも1つの重み値を減少させることと、
前記モデルの訓練後段階予測実行の間に、前記第1のビニング済み特徴または前記第2のビニング済み特徴のうちの少なくとも1つを使用して特定の予測を得ることと、を行うように構成された1つまたは複数のコンピューティングデバイスを含む、前記システム。
2.候補として識別された前記1つまたは複数の変数は、複数の変数を含み、前記1つまたは複数のコンピューティングデバイスは、
第1の変数及び第2の変数を含む、複数の変数のグループの第2の同時ビニング計画に従って、
第1の多変数分位ビニング変換を少なくとも前記第1の変数及び前記第2の変数に適用することであって、前記第1の多変数分位ビニング変換に従って、特定の観測記録が、前記第1の変数及び前記第2の変数に対して選択されたビン計数の第1の組み合わせに少なくとも部分的に基づいて第1のビンの中に入れられる、前記適用することと、
第2の多変数分位ビニング変換を少なくとも前記第1の変数及び前記第2の変数に適用することであって、前記第2の多変数分位ビニング変換に従って、前記特定の観測記録が、前記第1の変数及び前記第2の変数に対して選択されたビン計数の異なる組み合わせに少なくとも部分的に基づいて第2のビンの中に入れられる、前記適用することと、を行うようにさらに構成される、条項1に記載のシステム。
3.前記選択された最適化戦略は、規則化を含む、条項1または2に記載のシステム。
4.前記1つまたは複数のコンピューティングデバイスは、
前記モデルの複数の特徴に割り当てられた重みの分位境界の推定値に少なくとも部分的に基づいて、前記パラメータベクトルから削除するための特定のビニング済み特徴を選択するようにさらに構成され、前記推定値は、前記重みをソートせずに得られる、条項1〜3のいずれかに記載のシステム。
5.前記1つまたは複数のコンピューティングデバイスは、
前記機械学習サービスの人工物レポジトリに、前記機械学習サービスで実行される特徴変換のためのレシピ言語に従ってフォーマットされた特定のレシピを記憶するようにさらに構成され、前記特定のレシピは、前記第1の分位ビニング変換の指標及び前記第2の分位ビニング変換の指標を含む、条項1〜4のいずれかに記載のシステム。
6.方法であって、
1つまたは複数のコンピューティングデバイスによって、
機械学習モデルを生成するために使用される観測記録の1つまたは複数の変数のそれぞれの同時ビニング計画を実行することであって、特定の同時ビニング計画に従って、複数の分位ビニング変換が少なくとも前記1つまたは複数の変数の特定の変数に適用され、前記複数の分位ビニング変換は、第1のビン計数を用いた第1の分位ビニング変換、及び異なるビン計数を用いた第2の分位ビニング変換を含む、前記実行することと、
前記第1の分位ビニング変換を使用して得られた第1のビニング済み特徴、及び前記第2の分位ビニング変換を使用して得られた第2のビニング済み特徴を含む、複数のビニング済み特徴と関連するそれぞれのパラメータ値を判定することと、
前記機械学習モデルの訓練後段階予測実行の間に、前記第1のビニング済み特徴または前記第2のビニング済み特徴のうちの少なくとも1つに対応するパラメータ値を使用して、特定の予測を生成することと、を行うことを含む、前記方法。
7.前記1つまたは複数のコンピューティングデバイスによって、
第1の変数及び第2の変数を含む、前記観測記録の変数のグループに対して生成された第2の同時ビニング計画に従って、
第1の多変数分位ビニング変換を少なくとも前記第1の変数及び前記第2の変数に適用することであって、前記第1の多変数分位ビニング変換に従って、特定の観測記録が、前記第1の変数及び前記第2の変数に対して選択されたビン計数の第1の組み合わせに少なくとも部分的に基づいて第1のビンの中に入れられる、前記適用することと、
第2の多変数分位ビニング変換を少なくとも前記第1の変数及び前記第2の変数に適用することであって、前記第2の多変数分位ビニング変換に従って、前記特定の観測記録が、前記第1の変数及び前記第2の変数に対して選択されたビン計数の異なる組み合わせに少なくとも部分的に基づいて第2のビンの中に入れられる、前記適用することと、を行うことをさらに含む、条項6に記載の方法。
8.前記1つまたは複数のコンピューティングデバイスによって、
前記観測記録の変数の選択されたグループのそれぞれの値に少なくとも部分的に基づいて、少なくとも前記観測記録のサブセットのk次元木(k−d木)表現を生成することと、
前記k次元木の分析に少なくとも部分的に基づいて、前記1つまたは複数の変数の少なくとも1つの変数に提供される同時分位ビニング変換の1つまたは複数の属性を判定することと、を行うことをさらに含む、条項6または7に記載の方法。
9.前記1つまたは複数のコンピューティングデバイスによって、
前記それぞれのパラメータ値の前記判定の後、かつ前記訓練後段階予測実行の前に、前記機械学習モデルのために生成されたパラメータベクトルから少なくとも1つのビニング済み特徴に対応するパラメータを削除することを行うことをさらに含む、条項6〜8のいずれかに記載の方法。
10.前記パラメータベクトルは、前記機械学習モデルのために識別された複数の特徴の1つまたは複数の個々の特徴に対応するそれぞれの重みを含み、前記1つまたは複数のコンピューティングデバイスによって、
特定のビニング済み特徴に割り当てられる特定の重みの値を調節するための規則化を利用することと、
前記特定の重みの調節された値が閾値未満であるという判定に少なくとも部分的に基づいて、重みが前記パラメータベクトルから削除される枝刈り標的として前記特定のビニング済み特徴を選択することと、を行うことをさらに含む、条項9に記載の方法。
11.前記1つまたは複数のコンピューティングデバイスによって、
前記パラメータベクトルの中に含まれる重みの分位境界の推定値の判定に少なくとも部分的に基づいて、重みが前記パラメータベクトルから削除される枝刈り標的として、特定のビニング済み特徴を選択することを行うことをさらに含み、前記推定値の前記判定は、前記重みをソートせずに行われる、条項9に記載の方法。
12.前記1つまたは複数のコンピューティングデバイスによって、
前記機械学習モデルの問題領域に少なくとも部分的に基づいて、(a)第1のビン計数、または(b)異なるビン計数、のうちの少なくとも1つを判定することを行うことをさらに含む、条項6〜9のいずれかに記載の方法。
13.前記それぞれの同時ビニング計画の前記実行は、プロバイダネットワークに実装されている機械学習サービスのプログラム的インターフェースを介したモデル生成要求の受信に応答して行われる、条項6〜9または12のいずれかに記載の方法。
14.前記1つまたは複数のコンピューティングデバイスによって、
プロバイダネットワークに実装されている機械学習サービスの人工物レポジトリに、前記機械学習サービスで実行されるレシピ言語に従ってフォーマットされた特定のレシピを記憶することを行うことを含み、前記特定のレシピは、前記第1の分位ビニング変換の指標及び前記第2の分位ビニング変換の指標を含む、条項6〜9または12〜13のいずれかに記載の方法。
15.前記機械学習モデルは、教師付き学習モデル、または教師無し学習モデルのうちの1つまたは複数を含む、条項6〜9または12〜14のいずれかに記載の方法。
16.機械学習サービスのモデルジェネレータを実装している1つまたは複数のプロセッサで実行されるとき、前記モデルジェネレータが、
分位ビニング変換の候補としての機械学習モデルを生成するために使用される観測記録の1つまたは複数の変数を識別することと、
前記1つまたは複数の変数のそれぞれの同時ビニング計画を判定することであって、少なくとも特定の変数の特定の同時ビニング計画に従って、複数の分位ビニング変換が前記特定の変数に適用され、前記複数の分位ビニング変換は、第1のビン計数を用いた第1の分位ビニング変換、及び異なるビン計数を用いた第2の分位ビニング変換を含む、前記判定することと、
前記機械学習モデルのパラメータベクトル内に、前記第1の分位ビニング変換から得られた第1のビニング済み特徴に対する第1のパラメータ、及び前記第1の分位ビニング特徴から得られた第2のビニング済み特徴に対する第2のパラメータを含む、複数のビニング済み特徴に対するそれぞれのパラメータを含めることと、を行うように構成され、前記第1のビニング済み特徴及び前記第2のビニング済み特徴の少なくとも1つのビニング済み特徴は、前記機械学習モデルの訓練後段階実行において予測を生成するために使用される、プログラム命令を記憶する、非一時的コンピュータアクセス可能記憶媒体。
17.前記モデルジェネレータは、
第1の変数及び第2の変数を含む、前記観測記録の変数のグループの第2の同時ビニング計画に従って、
第1の多変数分位ビニング変換を少なくとも前記第1の変数及び前記第2の変数に適用することであって、前記第1の多変数分位ビニング変換に従って、特定の観測記録が、前記第1の変数及び前記第2の変数に対して選択されたビン計数の第1の組み合わせに少なくとも部分的に基づいて第1のビンの中に入れられる、前記適用することと、
第2の多変数分位ビニング変換を少なくとも前記第1の変数及び前記第2の変数に適用することであって、前記第2の多変数分位ビニング変換に従って、前記特定の観測記録が、前記第1の変数及び前記第2の変数に対して選択されたビン計数の異なる組み合わせに少なくとも部分的に基づいて第2のビンの中に入れられる、前記適用することと、を行うようにさらに構成される、条項16に記載の非一時的コンピュータアクセス可能記憶媒体。
18.前記モデルジェネレータは、
前記第1のビニング済み特徴に割り当てられた特定の重みの値を調節し、
前記特定の重みの調節された値が閾値未満であるという判定に少なくとも部分的に基づいて、前記パラメータベクトルから削除するための前記第1のビニング済み特徴を選択するようにさらに構成される、条項16または17に記載の非一時的コンピュータアクセス可能記憶媒体。
19.前記モデルジェネレータは、
前記機械学習モデルのために識別された複数の特徴に割り当てられた重みの分位境界の推定値に少なくとも部分的に基づいて、前記パラメータベクトルから削除するための前記第1のビニング済み特徴を選択するようにさらに構成され、前記推定値は、前記重みをソートせずに得られる、条項16〜18のいずれかに記載の非一時的コンピュータアクセス可能記憶媒体。
20.前記機械学習モデルは、一般化線形モデルを含む、条項16〜19のいずれかに記載の非一時的コンピュータアクセス可能記憶媒体。
本開示の実施形態は、以下の条項の見地からも、説明することができる。
1.システムであって、
プロバイダネットワークの機械学習サービスで、それぞれの観測記録に対応する1つまたは複数の出力変数の値を生成するように機械学習モデルを訓練することであって、前記1つまたは複数の出力変数は、特定の出力変数を含む、前記訓練することと、
それぞれの評価データセットを使用して行われた前記機械学習モデルの1つまたは複数の評価実行に対応して、対話型グラフィカルインターフェースを介して表示される第1の組のデータを生成することであって、前記第1の組のデータは、少なくとも(a)前記特定の出力変数の統計的分布、及び(b)前記機械学習モデルの第1の予測の質メトリックを含み、前記対話型グラフィカルインターフェースは、前記機械学習モデルと関連した第1の予測解釈閾値を変更するように制御する第1のグラフィカルを含む、前記生成することと、
前記第1のグラフィカル制御の特定のクライアントの使用の検出に少なくとも部分的に基づいて、前記第1の予測解釈閾値の目標値を判定することと、
前記対話型グラフィカルインターフェースを介して、前記目標値の選択から生じた前記第1の予測の質メトリックへの変更の表示を開始することと、
前記対話型グラフィカルインターフェースを介してクライアントによって送信された要求に応答して、前記目標値を前記機械学習サービスの永続的レポジトリに保存することと、
前記機械学習モデルの後続の実行の1つまたは複数の結果を生成するために保存された前記目標値を利用することと、を行うように構成された1つまたは複数のコンピューティングデバイスを含む、前記システム。
2.前記機械学習モデルは、観測記録を第1のカテゴリーと第2のカテゴリーとに分類するために使用される二項分類モデルであり、前記第1の予測解釈閾値は、前記第1のカテゴリーと前記第2のカテゴリーとの間のカットオフ境界を指示する、条項1に記載のシステム。
3.前記第1の予測の質メトリックは、正確さメトリック、再現度メトリック、感度メトリック、真陽性率、特異性メトリック、真陰性率、精度メトリック、偽陽性率、偽陰性率、F1スコア、適用範囲メトリック、絶対パーセントエラーメトリック、二乗エラーメトリック、またはAUC(曲線下面積)メトリック、のうちの1つまたは複数を含む、条項1または2に記載のシステム。
4.前記第1のグラフィカル制御装置は、前記特定のクライアントが前記第1の予測解釈閾値の第1の値と前記第1の予測解釈閾値の第2の値との間の遷移を指示することを可能にする連続変動制御要素を含み、前記1つまたは複数のコンピューティングデバイスは、
前記特定のクライアントが前記第1の値から前記第2の値への遷移を指示したときに、リアルタイムで、前記第1の予測の質メトリックへの対応する変更を指示する前記対話型グラフィカルインターフェースの一部分の更新を開始するようにさらに構成される、条項1〜3のいずれかに記載のシステム。
5.前記対話型グラフィカルインターフェースは、前記第1の予測の質メトリック及び第2の予測の質メトリックを含む複数の予測の質メトリックの目標値を指示するためのそれぞれの追加の制御装置を含み、前記1つまたは複数のコンピューティングデバイスは、
第1の追加の制御装置を使用して指示された前記第1の予測の質メトリックの目標値の変更に応答して、前記第2の予測の質メトリックへの前記第1の予測の質メトリックの前記目標値の前記変更の影響を示す、前記第2の予測の質メトリックに対応する第2の追加の制御装置の表示の更新を開始するようにさらに構成される、条項1〜4のいずれかに記載のシステム。
6.方法であって、
1つまたは複数のコンピューティングデバイスによって、
それぞれの観測記録に対応する1つまたは複数の出力変数のそれぞれの値を生成するように機械学習モデルを訓練することであって、前記1つまたは複数の出力変数は、特定の出力変数を含む、前記訓練することと、
前記機械学習モデルの1つまたは複数の評価実行に対応して、対話型グラフィカルインターフェースを介して表示される第1の組のデータを生成することであって、前記第1の組のデータは、少なくとも前記機械学習モデルの第1の予測の質メトリックを含み、前記対話型グラフィカルインターフェースは、前記機械学習モデルと関連した第1の予測解釈閾値を変更するように制御する第1のグラフィカルを含む、前記生成することと、
前記第1のグラフィカル制御装置との特定のクライアントの対話の検出に少なくとも部分的に基づいて、前記第1の予測解釈閾値の目標値を判定することと、
前記対話型グラフィカルインターフェースを介して、前記目標値の選択から生じた前記第1の予測の質メトリックへの変更の表示を開始することと、
前記目標値を使用して、前記機械学習モデルの後続の実行の1つまたは複数の結果を得ることと、を行うことを含む、前記方法。
7.前記機械学習モデルは、観測記録を第1のカテゴリーと第2のカテゴリーとに分類するために使用される二項分類モデルであり、前記第1の予測解釈閾値は、前記第1のカテゴリーと前記第2のカテゴリーとの間のカットオフ境界を指示する、条項6に記載の方法。
8.前記第1の予測の質メトリックは、正確さメトリック、再現度メトリック、感度メトリック、真陽性率、特異性メトリック、真陰性率、精度メトリック、偽陽性率、偽陰性率、F1スコア、適用範囲メトリック、絶対パーセントエラーメトリック、二乗エラーメトリック、またはAUC(曲線下面積)メトリック、のうちの1つまたは複数を含む、条項6または7に記載の方法。
9.前記第1のグラフィカル制御装置は、前記特定のクライアントが前記第1の予測解釈閾値の第1の値と前記第1の予測解釈閾値の第2の値との間の遷移を指示することを可能にする連続変動制御要素を含み、前記1つまたは複数のコンピューティングデバイスによって、
前記特定のクライアントが第1の値から第2の値への遷移を指示したときに、リアルタイムで、前記第1の予測の質メトリックへの対応する変更を指示する前記対話型グラフィカルインターフェースの一部分の更新を開始すること、を行うことをさらに含む、条項6〜8のいずれかに記載の方法。
10.前記対話型グラフィカルインターフェースは、前記第1の予測の質メトリック及び第2の予測の質メトリックを含む複数の予測の質メトリックの目標値を指示するためのそれぞれの追加の制御装置を含み、前記1つまたは複数のコンピューティングデバイスによって、
第1の追加の制御装置を使用して指示された前記第1の予測の質メトリックの目標値の変更に応答して、前記第2の予測の質メトリックへの前記第1の予測の質メトリックの前記目標値の前記変更の影響を示す、前記第2の予測の質メトリックに対応する第2の追加の制御装置の表示の更新を開始することを行うことをさらに含む、条項6〜9のいずれかに記載の方法。
11.前記1つまたは複数のコンピューティングデバイスによって、
第1の追加の制御装置を使用して指示される前記第1の予測の質メトリックの前記目標値の前記変更に応答して、前記第1の予測解釈閾値の変更の表示を開始することを行うことをさらに含む、条項10に記載の方法。
12.前記機械学習モデルは、(a)n方分類モデルまたは(b)回帰モデル、のうちの1つである、条項6〜10のいずれかに記載の方法。
13.前記対話型グラフィカルインターフェースは、前記特定の出力変数の値の統計的分布を表示する領域を含み、前記1つまたは複数のコンピューティングデバイスによって、
前記領域と特定のクライアントとの対話に応答して、前記特定の出力変数が前記第1の値を有する観測記録の1つまたは複数の入力変数の値の表示を開始することを行うことをさらに含み、前記特定のクライアントの対話は、前記特定の出力変数の第1の値を指示する、条項6〜10または12のいずれかに記載の方法。
14.前記1つまたは複数のコンピューティングデバイスによって、
前記対話型グラフィカルインターフェースを介して表示するために、前記機械学習モデルの実行の間に検出された変則を示す警告メッセージを生成することを行うことをさらに含む、条項6〜10または12〜13のいずれかに記載の方法。
15.前記1つまたは複数のコンピューティングデバイスによって、
前記第1の予測の質メトリックの表示の後で、前記特定のクライアントによる前記対話型グラフィカルインターフェースの異なる制御装置の使用に応答して、(a)前記機械学習モデルの再評価、または(b)前記機械学習モデルの再訓練のうちの1つまたは複数を行うための要求を受信することを行うことをさらに含む、条項6〜10または12〜14のいずれかに記載の方法。
16.前記1つまたは複数のコンピューティングデバイスによって、
プロバイダネットワークに実装されている機械学習サービスのレポジトリに、前記目標値を示す記録を保存することを行うことをさらに含む、条項6〜10または12〜15のいずれかに記載の方法。
17.1つまたは複数のプロセッサ上で実行されたとき、
機械学習モデルの評価実行に対応して、対話型グラフィカルインターフェースを介して表示される第1の組のデータを生成することであって、前記第1の組のデータは、少なくとも前記機械学習モデルの第1の予測の質メトリックを含み、前記対話型グラフィカルインターフェースは、前記機械学習モデルと関連した第1の解釈閾値を変更するように制御する第1のグラフィカル制御装置を含む、前記生成することと、
前記第1のグラフィカル制御装置との特定のクライアントの対話の検出に基づいて、前記第1の解釈閾値の目標値を判定することと、
前記対話型グラフィカルインターフェースを介して、前記目標値の選択から生じた前記第1の予測の質メトリックへの変更の表示を開始することと、を行う、プログラム命令を記憶する、非一時的コンピュータアクセス可能記憶媒体。
18.前記機械学習モデルは、観測記録を第1のカテゴリーと第2のカテゴリーとに分類するために使用される二項分類モデルであり、前記第1の解釈閾値は、前記第1のカテゴリーと前記第2のカテゴリーとの間のカットオフ境界を指示する、条項17に記載の非一時的コンピュータアクセス可能記憶媒体。
19.前記第1の予測の質メトリックは、正確さメトリック、再現度メトリック、感度メトリック、真陽性率、特異性メトリック、真陰性率、精度メトリック、偽陽性率、偽陰性率、F1スコア、適用範囲メトリック、絶対パーセントエラーメトリック、二乗エラーメトリック、またはAUC(曲線下面積)メトリック、のうちの1つまたは複数を含む、条項17または18に記載の非一時的コンピュータアクセス可能記憶媒体。
20.前記第1のグラフィカル制御装置は、前記特定のクライアントが前記第1の解釈閾値の第1の値と前記第1の解釈閾値の第2の値との間の遷移を指示することを可能にする連続変動制御要素を含み、前記命令は、1つまたは複数のプロセッサで実行されたとき、
前記特定のユーザが前記第1の値から前記第2の値への遷移を指示したときに、リアルタイムで、前記第1の予測の質メトリックへの対応する変更を指示する前記対話型グラフィカルインターフェースの一部分の更新を開始する、条項17〜19のいずれかに記載の非一時的コンピュータアクセス可能記憶媒体。
21.1つまたは複数のプロセッサ上で実行されたとき、
機械学習モデルの評価実行に対応して、顧客との特定の対話セッションの間、対話型インターフェースを介して第1の組のデータを表示することであって、前記第1の組のデータは、少なくとも前記評価実行と関連した第1の予測の質メトリックを含む、前記表示することと、
前記対話型インターフェースと顧客との特定の対話の検出に基づいて、前記特定の対話セッションの間に機械学習サービスのサーバに第1の解釈閾値の目標を送信することと、
前記サーバから、前記目標値の選択から生じた前記第1の予測の質メトリックへの変更の指標を受信することと、
前記対話型インターフェースを介して、前記特定の対話セッションの間の前記第1の予測の質メトリックへの前記変更を指示することと、を行う、プログラム命令を記憶する、非一時的コンピュータアクセス可能記憶媒体。
22.前記対話型インターフェースは、グラフィカルインターフェースを含み、前記特定の対話は、前記グラフィカルインターフェースの中に含まれる第1のグラフィカル制御装置の操作を含む、条項21に記載の非一時的コンピュータアクセス可能記憶媒体。
23.前記対話型インターフェースは、コマンドラインインターフェースを含む、条項21に記載の非一時的コンピュータアクセス可能記憶媒体。
24.前記対話型インターフェースは、API(アプリケーションプログラミングインターフェース)を含む、条項22に記載の非一時的コンピュータアクセス可能記憶媒体。
本開示の実施形態は、以下の条項の見地からも、説明することができる。
1.システムであって、
プロバイダネットワークの機械学習サービスで、機械学習モデルと関連した第1の組の観測記録の1つまたは複数の空間効率の良い表現を生成することであって、前記空間効率の良い表現の個々は、前記第1の組の観測記録よりも少ない記憶域を利用し、少なくとも前記第1の組の観測記録のサブセットは、1つまたは複数の変数の第1のグループのそれぞれの値を含む、前記生成することと、
第2の組の観測記録が確率的重複検出法に従って前記第1の組の観測記録の重複の存在に関して調べられる指標を受信することであって、少なくとも前記第2の組の観測記録のサブセットは、1つまたは複数の変数の第1のグループのそれぞれの値を含む、前記受信することと、
前記1つまたは複数の空間効率の良い表現のうちの少なくとも1つの空間効率の良い表現を使用して、前記第2の組の1つまたは複数の観測記録が、前記少なくとも1つまたは複数の変数の前記第1のグループに対して前記第1の組の1つまたは複数の観測記録の重複である非ゼロ確率を示す、前記第2の組の少なくとも一部分に対応する重複メトリックを得ることと、
前記重複メトリックが閾値基準を満たしているという判定に応答して、クライアントへの潜在的重複観測記録の検出の通知を含む、1つまたは複数の応答性動作を実行することと、を行うように構成された、1つまたは複数のコンピューティングデバイスを含む、前記システム。
2.前記1つまたは複数の空間効率の良い表現のうちの特定の空間効率の良い表現は、(a)Bloomフィルタ、(b)指数フィルタ、または(c)スキップリスト、のうちの1つまたは複数を含む、条項1に記載のシステム。
3.前記第1の組の1つまたは複数の観測記録は、前記機械学習モデルの訓練データセットを含み、前記第2の組の1つまたは複数の観測記録は、前記機械学習モデルの試験データセットを含む、条項1または2に記載のシステム。
4.前記1つまたは複数の空間効率の良い表現のうちの特定の空間効率の良い表現は、Bloomフィルタを含み、前記1つまたは複数のコンピューティングデバイスは、
前記Bloomフィルタを生成する前に、(a)前記第1の組の中に含まれる観測記録のおおよその回数、及び(b)前記第1の組の個々の観測記録のおおよそのサイズを推定し、
前記おおよその回数または前記おおよそのサイズに少なくとも部分的に基づいて、(a)前記Bloomフィルタの中に含まれるいくつかのビット、(b)前記Bloomフィルタを生成するために使用されるいくつかのハッシュ関数、または(c)前記Bloomフィルタを生成するために使用される特定の種類のハッシュ関数のうちの1つまたは複数を含む、前記Bloomフィルタを生成するために使用される1つまたは複数のパラメータを判定するようにさらに構成される、条項1〜3のいずれかに記載のシステム。
5.前記1つまたは複数の応答性動作は、(a)前記クライアントへの、重複である非ゼロ確率を有すると識別された前記第2の組の特定の観測記録の指標の送信、(b)前記第2の組を使用して特定の機械学習タスクを行う前に、前記第2の組からの、重複である非ゼロ確率を有すると識別された特定の観測記録の削除、(c)前記クライアントへの、前記第2の組からの重複である非ゼロ確率を有すると識別された1つまたは複数の観測記録の削除と関連した潜在的予測エラーの指標の送信、または(d)前記第2の組と関連した機械学習ジョブの取り消しのうちの1つまたは複数を含む、条項1〜4のいずれかに記載のシステム。
6.方法であって、
1つまたは複数のコンピューティングデバイスによって、
機械学習サービスで、第1の組の観測記録の1つまたは複数の代替表現を生成することであって、少なくとも1つの代替表現は、前記第1の組の観測記録とは異なる量のスペースを占める、前記生成することと、
前記1つまたは複数の代替表現のうちの少なくとも1つの代替表現を使用して、それぞれの値が第1の組の少なくともいくつかの観測記録の中に含まれる1つまたは複数の変数に対して、前記第2の組の1つまたは複数の観測記録が前記第1の組のそれぞれの観測記録の重複である非ゼロ確率を示す、前記第2の組の観測記録の少なくとも一部分に対応する重複メトリックを得ることと、
前記重複メトリックが閾値基準を満たしているという判定に応答して、1つまたは複数の応答性動作を実行することと、を行うことを含む、前記方法。
7.前記1つまたは複数の代替表現のうちの特定の代替表現は、(a)Bloomフィルタ、(b)指数フィルタ、または(c)スキップリスト、のうちの1つまたは複数を含む、条項6に記載の方法。
8.前記第1の組の1つまたは複数の観測記録は、特定の機械学習モデルの訓練データセットを含み、前記第2の組の1つまたは複数の観測記録は、前記特定の機械学習モデルの試験データセットを含む、条項6または7に記載の方法。
9.前記1つまたは複数の代替表現のうちの特定の代替表現は、Bloomフィルタを含み、前記1つまたは複数のコンピューティングデバイスによって、
前記Bloomフィルタを生成する前に、(a)前記第1の組の中に含まれる観測記録のおおよその回数、及び(b)前記第1の組の個々の観測記録のおおよそのサイズを推定し、
前記おおよその回数または前記おおよそのサイズに少なくとも部分的に基づいて、(a)前記Bloomフィルタの中に含まれるいくつかのビット、(b)前記Bloomフィルタを生成するために使用されるいくつかのハッシュ関数、または(c)前記Bloomフィルタを生成するために使用される特定の種類のハッシュ関数のうちの1つまたは複数を含む、前記Bloomフィルタを生成するために使用される1つまたは複数のパラメータを判定することを行うことをさらに含む、条項6〜8のいずれかに記載の方法。
10.前記1つまたは複数の応答動作は、(a)潜在的重複観測記録の検出をクライアントに通知すること、(b)重複である非ゼロ確率を有すると識別された前記第2の組の特定の観測記録の指標を提供すること、(c)前記第2の組を使用して特定の機械学習タスクを行う前に、前記第2の組から、重複である非ゼロ確率を有すると識別された特定の観測記録を削除すること、(d)クライアントに、前記第2のデータセットからの重複である非ゼロ確率を有すると識別された1つまたは複数の観測記録の削除と関連した潜在的予測エラーの指標を提供すること、または(e)前記第2の組と関連した機械学習ジョブを中止すること、のうちの1つまたは複数を含む、条項6〜9のいずれかに記載の方法。
11.前記1つまたは複数の応答性動作の特定の応答性動作は、前記第2の組の特定の観測記録が重複である確信レベルの指標の提供を含む、条項6〜10のいずれかに記載の方法。
12.前記1つまたは複数の変数のグループは、値が機械学習モデルによって予測される出力変数を除外する、条項6〜11のいずれかに記載の方法。
13.重複メトリックが閾値基準を満たしているという前記判定は、(a)重複である非ゼロ確率を有すると認識された前記第2の組の観測記録の数が、第1の閾値を超えているという判定、または(b)重複である非ゼロ確率を有すると識別された前記第2の組の観測記録の断片が、第2の閾値を超えているという判定、のうちの1つまたは複数を含む、条項6〜12のいずれかに記載の方法。
14.前記第1の組の観測記録の前記1つまたは複数の代替表現の前記生成は、
前記第1の組の観測記録を複数の区分に細分することと、
前記機械学習サービスのそれぞれのサーバで、前記複数の区分の個々に対応するそれぞれのBloomフィルタを生成することと、
前記それぞれのサーバで生成されたBloomフィルタを統合Bloomフィルタへと組み合わせることと、を含む、条項6〜13のいずれかに記載の方法。
15.前記1つまたは複数のコンピューティングデバイスによって、
プログラム的インターフェースを介して、(a)前記閾値基準が満たされているかを判定するために前記機械学習サービスによって使用されるパラメータ、または(b)前記1つまたは複数の応答性動作のうちの1つまたは複数の前記クライアントからの指標を受信することを行うことをさらに含む、条項6〜14のいずれかに記載の方法。
16.前記第1の組の観測記録及び前記第2の組の観測記録は、(a)特定の機械学習モデルの訓練データセット、(b)特定の機械学習モデルの試験データセット、または(c)特定の機械学習モデルの訓練データセット及び前記特定の機械学習モデルの試験データセットが得られるソースデータセットのうちの1つのそれぞれのサブセットである、条項6〜15のいずれかに記載の方法。
17.1つまたは複数のプロセッサ上で実行されたとき、
機械学習サービスで、第1の組の観測記録の1つまたは複数の観測記録のコンテンツの少なくとも一部分が第2の組の観測記録内で重複しているかどうかを検出するための分析が行われることを判定し、
それぞれの値が前記第1の組の少なくともいくつかの観測記録の中に含まれる1つまたは複数の変数に対して、前記第2の組の1つまたは複数の観測記録が前記第1の組のそれぞれの観測記録の重複である非ゼロ確率を示す、前記第2の組の観測記録の少なくとも一部分に対応する重複メトリックを得、
前記重複メトリックが閾値基準を満たしているという判定に応答して、1つまたは複数の応答性動作を実行する、プログラム命令を記憶する、非一時的コンピュータアクセス可能記憶媒体。
18.前記代替のメトリックを得るために、前記命令は、前記1つまたは複数のプロセッサで実行されたとき、前記第1の組の観測記録の代替表現を生成し、前記代替表現は、(a)Bloomフィルタ、(b)指数フィルタ、または(c)スキップリスト、のうちの1つまたは複数を含む、条項17に記載の非一時的コンピュータアクセス可能記憶媒体。
19.前記第1の組の1つまたは複数の観測記録は、特定の機械学習モデルの訓練データセットを含み、前記第2の組の1つまたは複数の観測記録は、前記特定の機械学習モデルの試験データセットを含む、条項17または18に記載の非一時的コンピュータアクセス可能記憶媒体。
20.前記1つまたは複数の応答性動作の特定の応答性動作は、前記第2の組の特定の観測記録が重複である確信レベルの指標の提供を含む、条項17〜19のいずれかに記載の非一時的コンピュータアクセス可能記憶媒体。
結論
様々な実施形態は、命令の受信、送信、もしくは記憶、及び/またはコンピュータアクセス可能媒体に関する前述の説明に従って実行されたデータをさらに含んでも良い。概して、コンピュータアクセス可能媒体は、磁気メディアまたは光学式メディア、例えば、ディスクまたはDVD/CD−ROM、RAM(例えばSDRAM、DDR、RDRAM、SRAM等)、ROM等の揮発性メディアもしくは非揮発性メディア等の記憶メディアまたはメメモリメディアと、ネットワーク及び/または無線リンク等の通信媒体を介して伝えられる電気信号、電磁信号、またはデジタル信号等の送信メディアまたは送信信号と、を含んでも良い。
本明細書で図に例示され、説明される様々な方法は、本方法の例となる実施形態を表す。本方法は、ソフトウェア、ハードウェア、またはこれらの組み合わせで実行されても良い。方法の順序は、変更されても良く、様々な要素が、追加、再順位付け、組み合わせ、除外、変更等されても良い。
様々な修正及び変更は、本開示の利益を得る当業者にとって明らかであるとおり加えられても良い。全てのそのような修正及び変更を包含し、したがって、上記の説明は、制限的な意味よりもむしろ、例示的と見なされることが意図される。