(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-09-13
(54)【発明の名称】ハイブリッド機械学習
(51)【国際特許分類】
G06N 20/00 20190101AFI20230906BHJP
G06F 8/76 20180101ALI20230906BHJP
【FI】
G06N20/00
G06F8/76
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023513274
(86)(22)【出願日】2021-08-24
(85)【翻訳文提出日】2023-04-19
(86)【国際出願番号】 US2021047334
(87)【国際公開番号】W WO2022046759
(87)【国際公開日】2022-03-03
(32)【優先日】2020-08-25
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】519405569
【氏名又は名称】アルテリックス インコーポレイテッド
(74)【代理人】
【識別番号】110001243
【氏名又は名称】弁理士法人谷・阿部特許事務所
(72)【発明者】
【氏名】ディラン ブランチャード
(72)【発明者】
【氏名】タイラー ハイヌル
(72)【発明者】
【氏名】ロランド マンフレッド ホッホムート
【テーマコード(参考)】
5B376
【Fターム(参考)】
5B376BC43
5B376CA44
(57)【要約】
モデルは、ハイブリッド機械学習プロセスを通じてトレーニングされる。ハイブリッド機械学習プロセスでは、データセットに対して自動機械学習プロセスが実行され、予測を行うためのモデルが生成される。自動機械学習プロセスは、パイプラインを使用してモデルをトレーニングし、パイプラインのステップで決定を行う。自動機械学習プロセスを通じてモデルがトレーニングされた後、パイプラインの表現が生成され、ユーザインターフェースでユーザに表示される。ユーザインターフェースは、ユーザが自動機械学習プロセスで行われた少なくとも一部の決定を修正することを可能にする。1つまたは複数の修正がユーザインターフェースを通じてユーザから受信され、トレーニングされたモデルを改良するために使用される。改良されたモデルは、新しいデータに基づいて予測を行うために展開される。
【特許請求の範囲】
【請求項1】
データセットを受信するステップと、
前記受信したデータセットに対して自動機械学習プロセスを実行して、新しいデータに基づいて予測を行うためのモデルをトレーニングするステップであって、前記自動機械学習プロセスは、パイプラインに基づいて一連の決定を行うステップを含む、ステップと、
前記モデルがトレーニングされた後、前記パイプラインの表現を生成するステップと、
ユーザインターフェースにおいて表示するための前記パイプラインの前記表現を提供するステップであって、前記ユーザインターフェースは、ユーザが前記自動機械学習プロセスにおいて行われた前記決定の少なくとも一部を修正するステップを可能にする、ステップと、
前記ユーザインターフェースを介して前記ユーザから1つまたは複数の修正を受信するステップと、
前記ユーザからの前記1つまたは複数の修正に基づいて前記モデルを改良するステップであって、前記改良されたモデルは、新しいデータに基づいて前記予測を行うために使用される、ステップと、
を含むコンピュータ実装方法。
【請求項2】
各決定は、前記自動機械学習プロセス中に前記パイプライン内の一連のステップのステップにおいて行われ、前記パイプラインの前記表現を生成するステップは、
前記一連のステップの1つまたは複数のステップのそれぞれについての表現を生成するステップであって、ステップの前記表現は、前記ステップについての複数のオプションを含み、前記複数のオプションは、前記自動機械学習プロセス中に前記ステップにおいて行われた前記決定を含む、ステップを含む、請求項1に記載の方法。
【請求項3】
前記ステップの前記表現は、前記複数のオプションのそれぞれについてのランキングスコアをさらに含み、オプションの前記ランキングスコアは、前記オプションに対する推奨事項のレベルを示す、請求項2に記載の方法。
【請求項4】
前記パイプラインの前記表現を生成するステップは、
前記モデルをトレーニングするために前記自動機械学習プロセスにおいて使用される特徴、前記特徴についての複数のオプションのデータタイプ、および各オプションのデータタイプについてのランキングスコアを含むデータタイプリストを生成するステップであって、前記複数のオプションのデータタイプは、前記モデルをトレーニングするための前記自動機械学習プロセスにおける前記特徴のために選択された第1のデータタイプを含み、オプションのデータタイプの前記ランキングスコアは、前記データタイプが前記特徴の真のデータタイプである確率を示す、ステップを含む、請求項1に記載の方法。
【請求項5】
前記ユーザインターフェースを介して前記ユーザから1つまたは複数の修正を受信するステップは、
前記ユーザインターフェースを介して前記ユーザから、前記複数のオプションのデータタイプからの前記特徴についての第2のデータタイプの選択を受信するステップであって、前記第2のデータタイプは、前記第1のデータタイプとは異なるデータタイプである、ステップと、
前記第2のデータタイプに基づいて前記特徴の値を符号化するステップと、
を含む、請求項4に記載の方法。
【請求項6】
前記パイプラインの前記表現を生成するステップは、
特徴リストを生成するステップであって、前記特徴リストは、複数の特徴と、前記特徴が前記予測にとってどの程度重要であるかを示す各特徴の説明と、を含み、前記複数の特徴は、前記モデルをトレーニングするために前記自動機械学習プロセスにおいて使用される特徴を含む、ステップを含む、請求項1に記載の方法。
【請求項7】
前記パイプラインの前記表現を生成するステップは、
アルゴリズムリストを生成するステップであって、前記アルゴリズムリストは、複数のアルゴリズムと、前記モデルをトレーニングするために前記アルゴリズムを選択するまたは選択しない理由を示す各アルゴリズムの説明とを含み、前記複数のアルゴリズムは、前記モデルをトレーニングするために前記自動機械学習プロセスにおいて使用されるアルゴリズムを含む、ステップを含む、請求項1に記載の方法。
【請求項8】
データ分析システムにおいてデータブロックを処理するための実行可能なコンピュータプログラム命令を格納する非一時的コンピュータ可読メモリであって、前記コンピュータプログラム命令は
データセットを受信するステップと、
前記受信したデータセットに対して自動機械学習プロセスを実行して、新しいデータに基づいて予測を行うためのモデルをトレーニングするステップであって、前記自動機械学習プロセスは、パイプラインに基づいて一連の決定を行うステップを含む、ステップと、
前記モデルがトレーニングされた後、前記パイプラインの表現を生成するステップと、
ユーザインターフェースにおいて表示するための前記パイプラインの前記表現を提供するステップであって、前記ユーザインターフェースは、ユーザが前記自動機械学習プロセスにおいて行われた前記決定の少なくとも一部を修正するステップを可能にする、ステップと、
前記ユーザインターフェースを介して前記ユーザから1つまたは複数の修正を受信するステップと、
前記ユーザからの前記1つまたは複数の修正に基づいて前記モデルを改良するステップであって、前記改良されたモデルは、新しいデータに基づいて前記予測を行うために使用される、ステップと、
を含む動作を実行するステップを実行可能である、非一時的コンピュータ可読メモリ。
【請求項9】
各決定は、前記自動機械学習プロセス中に前記パイプライン内の一連のステップのステップにおいて行われ、前記パイプラインの前記表現を生成するステップは、
前記一連のステップの1つまたは複数のステップのそれぞれについての表現を生成するステップであって、ステップの前記表現は、前記ステップについての複数のオプションを含み、前記複数のオプションは、前記自動機械学習プロセス中に前記ステップにおいて行われた前記決定を含む、ステップを含む、請求項8に記載の非一時的コンピュータ可読メモリ。
【請求項10】
前記ステップの前記表現は、前記複数のオプションのそれぞれについてのランキングスコアをさらに含み、オプションの前記ランキングスコアは、前記オプションに対する推奨事項のレベルを示す、請求項9に記載の非一時的コンピュータ可読メモリ。
【請求項11】
前記パイプラインの前記表現を生成するステップは、
前記モデルをトレーニングするために前記自動機械学習プロセスにおいて使用される特徴、前記特徴についての複数のオプションのデータタイプ、および各オプションのデータタイプについてのランキングスコアを含むデータタイプリストを生成するステップであって、前記複数のオプションのデータタイプは、前記モデルをトレーニングするための前記自動機械学習プロセスにおける前記特徴のために選択された第1のデータタイプを含み、オプションのデータタイプの前記ランキングスコアは、前記データタイプが前記特徴の真のデータタイプである確率を示す、ステップを含む、請求項8に記載の非一時的コンピュータ可読メモリ。
【請求項12】
前記ユーザインターフェースを介して前記ユーザから1つまたは複数の修正を受信するステップは、
前記ユーザインターフェースを介して前記ユーザから、前記複数のオプションのデータタイプからの前記特徴についての第2のデータタイプの選択を受信するステップであって、前記第2のデータタイプは、前記第1のデータタイプとは異なるデータタイプである、ステップと、
前記第2のデータタイプに基づいて前記特徴の値を符号化するステップと、
を含む、請求項11に記載の非一時的コンピュータ可読メモリ。
【請求項13】
前記パイプラインの前記表現を生成するステップは、
特徴リストを生成するステップであって、前記特徴リストは、複数の特徴と、前記ユーザが前記予測にとってどの程度重要であるかを示す各特徴の説明と、を含み、前記複数の特徴は、前記モデルをトレーニングするために前記自動機械学習プロセスにおいて使用される特徴を含む、ステップを含む、請求項8に記載の非一時的コンピュータ可読メモリ。
【請求項14】
前記パイプラインの前記表現を生成するステップは、
アルゴリズムリストを生成するステップであって、前記アルゴリズムリストは、複数のアルゴリズムと、前記モデルをトレーニングするために前記アルゴリズムを選択するまたは選択しない理由を示す各アルゴリズムの説明とを含み、前記複数のアルゴリズムは、前記モデルをトレーニングするために前記自動機械学習プロセスにおいて使用されるアルゴリズムを含む、ステップ、を含む、請求項8に記載の非一時的コンピュータ可読メモリ。
【請求項15】
コンピュータプログラム命令を実行するためのコンピュータプロセッサと、
動作を実行する前記コンピュータプロセッサによって実行可能なコンピュータプログラム命令を格納する非一時的コンピュータ可読メモリと、を含むシステムであって、前記動作は、
データセットを受信するステップと、
前記受信したデータセットに対して自動機械学習プロセスを実行して、新しいデータに基づいて予測を行うためのモデルをトレーニングするステップであって、前記自動機械学習プロセスは、パイプラインに基づいて一連の決定を行うステップを含む、ステップと、
前記モデルがトレーニングされた後、前記パイプラインの表現を生成するステップと、
ユーザインターフェースにおいて表示するための前記パイプラインの前記表現を提供するステップであって、前記ユーザインターフェースは、ユーザが前記自動機械学習プロセスにおいて行われた前記決定の少なくとも一部を修正するステップを可能にする、ステップと、
前記ユーザインターフェースを介して前記ユーザから1つまたは複数の修正を受信するステップと、
前記ユーザからの前記1つまたは複数の修正に基づいて前記モデルを改良するステップであって、前記改良されたモデルは、新しいデータに基づいて前記予測を行うために使用される、ステップと、
を含むシステム。
【請求項16】
各決定は、前記自動機械学習プロセス中に前記パイプライン内の一連のステップのステップにおいて行われ、前記パイプラインの前記表現を生成するステップは、
前記一連のステップの1つまたは複数のステップのそれぞれについての表現を生成するステップであって、ステップの前記表現は、前記ステップについての複数のオプションを含み、前記複数のオプションは、前記自動機械学習プロセス中に前記ステップにおいて行われた前記決定を含む、ステップを含む、請求項15に記載のシステム。
【請求項17】
前記ステップの前記表現は、前記複数のオプションのそれぞれについてのランキングスコアをさらに含み、オプションの前記ランキングスコアは、前記オプションに対する推奨事項のレベルを示す、請求項16に記載のシステム。
【請求項18】
前記パイプラインの前記表現を生成するステップは、
前記モデルをトレーニングするために前記自動機械学習プロセスにおいて使用される特徴、前記特徴についての複数のオプションのデータタイプ、および各オプションのデータタイプについてのランキングスコアを含むデータタイプリストを生成するステップであって、前記複数のオプションのデータタイプは、前記モデルをトレーニングするための前記自動機械学習プロセスにおける前記特徴のために選択された第1のデータタイプを含み、オプションのデータタイプの前記ランキングスコアは、前記データタイプが前記特徴の真のデータタイプである確率を示す、ステップを含む、請求項15に記載のシステム。
【請求項19】
前記パイプラインの前記表現を生成するステップは、
特徴リストを生成するステップであって、前記特徴リストは、複数の特徴と、前記ユーザが前記予測にとってどの程度重要であるかを示す各特徴の説明と、を含み、前記複数の特徴は、前記モデルをトレーニングするために前記自動機械学習プロセスにおいて使用される特徴を含む、ステップを含む、請求項15に記載のシステム。
【請求項20】
前記パイプラインの前記表現を生成するステップは、
アルゴリズムリストを生成するステップであって、前記アルゴリズムリストは、複数のアルゴリズムと、前記モデルをトレーニングするために前記アルゴリズムを選択するまたは選択しない理由を示す各アルゴリズムの説明とを含み、前記複数のアルゴリズムは、前記モデルをトレーニングするために前記自動機械学習プロセスにおいて使用されるアルゴリズムを含む、ステップを含む、請求項15に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
記載される実施形態は、一般に、データストリームを処理することに関し、特に、ハイブリッド機械学習技術を使用して、データストリームに基づいて予測を行うためのモデルをトレーニングすることに関する。
【背景技術】
【0002】
[関連技術の説明]
自動機械学習ツールは、機械学習を現実世界の問題に適用するプロセスを自動化する。現在、自動機械学習ツールは、生のデータセットの受信から展開可能な機械学習モデルの作成までの完全なパイプラインをカバーする。これらのツールは、有利にも、単純なソリューションを生成し、それらのソリューションの迅速かつ効率的な作成を可能にする。しかし、自動機械学習ツールはしばしば、データセットに関するドメイン知識を組み込んでいないため、最適ではない(sub-optimal)ソリューションを生成する。これらのツールは、データセットを理解しているデータアナリストが機械学習プロセスを制御する、またはそうでなければ修正するための機能をほとんど提供しない。その結果、現在利用可能な自動機械学習ツールによって生成されたモデルは、データに基づいて予測を行うことができるほど良好ではない。
【0003】
[要約]
上記および他の問題は、方法、コンピュータ実装データ分析システム、およびデータ分析システムにおいてデータブロックを処理するためのコンピュータ可読メモリによって対処される。方法の一実施形態は、データセットを受信するステップを含む。方法はさらに、受信されたデータセットに対して自動機械学習プロセスを実行して、新しいデータに基づいて予測を行うためのモデルを生成するステップを含む。自動機械学習プロセスは、機械学習パイプラインに基づいて一連の決定を行うステップを含む。方法はさらに、トレーニングされたモデルが生成された後に、機械学習パイプラインの表現を生成するステップを含む。方法はさらに、ユーザインターフェースでの表示のために機械学習パイプラインの表現を提供するステップを含む。ユーザインターフェースは、ユーザが自動機械学習プロセスで行われた決定の少なくとも一部を修正するステップを可能にする。方法はさらに、ユーザインターフェースを介してユーザから1つまたは複数の修正を受信するステップを含む。方法はまた、ユーザからの1つまたは複数の修正に基づいてモデルを改良するステップを含む。改良されたモデルは、新しいデータに基づいて予測を行うために使用される。
【0004】
コンピュータ実装データ分析システムの一実施形態は、コンピュータプログラム命令を実行するためのコンピュータプロセッサを含む。このシステムはまた、動作を実行するためにコンピュータプロセッサによって実行可能なコンピュータプログラム命令を格納する非一時的コンピュータ可読メモリを含む。動作は、データセットの受信を含む。動作はさらに、受信されたデータセットに対して自動機械学習プロセスを実行して、新しいデータに基づいて予測を行うためのモデルを生成するステップを含む。自動機械学習プロセスは、機械学習パイプラインに基づいて一連の決定を行うステップを含む。動作はさらに、トレーニングされたモデルが生成された後、機械学習パイプラインの表現を生成するステップを含む。動作はさらに、ユーザインターフェースでの表示のために機械学習パイプラインの表現を提供するステップを含む。ユーザインターフェースは、ユーザが自動機械学習プロセスで行われた決定の少なくとも一部を修正するステップを可能にする。動作はさらに、ユーザインターフェースを介してユーザから1つまたは複数の修正を受信するステップを含む。動作はまた、ユーザからの1つまたは複数の修正に基づいてモデルを改良するステップを含む。改良されたモデルは、新しいデータに基づいて予測を行うために使用される。
【0005】
非一時的コンピュータ可読メモリの実施形態は、実行可能なコンピュータプログラム命令を格納する。命令は、動作を実行するために実行可能である。動作は、データセットの受信を含む。動作は、受信されたデータセットに対して自動機械学習プロセスを実行して、新しいデータに基づいて予測を行うためのモデルを生成するステップをさらに含む。自動機械学習プロセスは、機械学習パイプラインに基づいて一連の決定を行うステップを含む。動作はさらに、トレーニングされたモデルが生成された後、機械学習パイプラインの表現を生成するステップを含む。動作はさらに、ユーザインターフェースでの表示のために機械学習パイプラインの表現を提供するステップを含む。ユーザインターフェースは、ユーザが自動機械学習プロセスで行われた決定の少なくとも一部を修正するステップを可能にする。動作はさらに、ユーザインターフェースを介してユーザから1つまたは複数の修正を受信するステップを含む。動作はまた、ユーザからの1つまたは複数の修正に基づいてモデルを改良するステップを含む。改良されたモデルは、新しいデータに基づいて予測を行うために使用される。
【図面の簡単な説明】
【0006】
【
図1】
図1は、一実施形態による機械学習サーバを含む機械学習環境を示すブロック図である。
【
図2】
図2は、一実施形態による自動モデリングアプリケーションを示すブロック図である。
【
図3】
図3は、一実施形態による支援モデリングアプリケーションを示すブロック図である。
【
図4】
図4は、一実施形態によるハイブリッド機械学習のための例示的なユーザインターフェースである。
【
図5】
図5は、一実施形態によるハイブリッド機械学習プロセスを示すフローチャートである。
【
図6】
図6は、一実施形態による
図1の機械学習サーバとして使用するための典型的なコンピュータシステムの機能図を示す高レベルのブロック図である。
【0007】
図は、例示のみを目的として様々な実施形態を示す。当業者は、本明細書に記載される実施形態の原理から逸脱することなく、本明細書に示される構造および方法の代替的な実施形態が使用されることを、以下の議論から容易に認識し得る。様々な図面における同様の参照番号および名称は、同様の要素を示す。
【発明を実施するための形態】
【0008】
[詳細な説明]
図1は、一実施形態による機械学習サーバ110を含む機械学習環境100を示すブロック図である。環境100はさらに、ネットワーク140を介して機械学習サーバ110に接続された複数のデータソース120およびクライアントデバイス130を含む。図示された環境100は、複数のデータソース120およびクライアントデバイス130に結合された1つの機械学習サーバ110のみを含むが、実施形態は、複数の機械学習サーバ、単一のデータソース、および単一のクライアントデバイス、またはそれらの他のバリエーションを有することができる。
【0009】
機械学習サーバ110は、機械学習モデルを構築し、データに基づいて予測を行うためにモデルを展開するために利用されるコンピュータベースのシステムである。予測の例には、顧客が期間内に取引を行うかどうか、取引が不正であるかどうか、ユーザがコンピュータベースの相互作用を行うかどうかなどが含まれる。データは、ネットワーク140を介して、複数のデータソース120のうちの1つまたは複数、または複数のクライアントデバイス130のうちの1つまたは複数から、集められる、収集される、またはそうでなければアクセスされる。機械学習サーバ110は、多種多様なデータソース120またはクライアントデバイス130からのデータにアクセスする、準備する、混合する、および分析する際に使用されるスケーラブルなソフトウェアツールおよびハードウェアリソースを実装できる。
【0010】
いくつかの実施形態では、機械学習サーバ110は、ハイブリッド機械学習を実装するコンピュータシステムである。機械学習サーバ110は、自動モデリングアプリケーション150および支援モデリングアプリケーション160を含む。自動モデリングアプリケーション150は、モデルをトレーニングするために、データセットに対して自動機械学習プロセスを実行する。対照的に、支援モデリングアプリケーション160は、モデルをトレーニングするために、データセットおよびユーザ入力の両方を使用して支援機械学習プロセスを実行する。ユーザ入力は、支援モデリングアプリケーション160がモデルをトレーニングするためにデータセットをどのように処理するかを指定する。例えば、ユーザ入力は、データタイプ、データ補完方法、特徴、またはアルゴリズムを選択し、ハイパーパラメータを調整し、機械学習プロセスに他のガイダンスを提供し、またはそれらの何らかの組合せを提供し得る。
【0011】
2つのアプリケーションは、モデルをトレーニングするために別々にまたは一緒に実行され得る。2つのアプリケーションが一緒に実行される場合、それらは、ハイブリッド機械学習プロセスを介してモデルをトレーニングし、支援モデリングアプリケーション160を使用して、自動モデリングアプリケーション150によって生成されたモデルを制約、またはそうでなければ改良する。
【0012】
ハイブリッド機械学習プロセスが自動機械学習プロセスで開始する実施形態では、自動モデリングアプリケーション150は、機械学習パイプライン(「パイプライン」とも呼ばれる)に従って、自動機械学習プロセスを実行し、モデルを生成する。パイプラインは、自動機械学習プロセスのワークフローであり、モデルをトレーニングするための一連のステップを指定する。一例では、パイプラインのステップは、データ準備、特徴エンジニアリング、モデルトレーニング、モデル検証、およびモデル展開を含む。ステップは、サブステップを含み得る。例えば、データ準備のステップは、データタイプ設定、データエンコーディング、およびデータ補完を含み得、特徴エンジニアリングのステップは、特徴選択および特徴ランキングを含み得、モデルトレーニングのステップは、ハイパーパラメータチューニングおよびアルゴリズム選択を含み得る。いくつかの実施形態において、パイプラインは、本明細書に記載されるものとは異なる順序および/またはそれより多い、より少ない、または異なるステップのステップを含む。パイプラインを、ユーザによって、または自動モデリングアプリケーション150によって作成できる。
【0013】
自動モデリングアプリケーション150は、パイプラインのステップを実行する際に一連の決定を行う。自動モデリングアプリケーション150は、各ステップにおいて1つまたは複数の決定を行い得る。いくつかの実施形態において、自動モデリングアプリケーション150は、パイプラインのいくつかのステップを反復的に処理して、これらのステップにおいて行われる1つまたは複数の決定を最適化する。自動モデリングアプリケーション150は、順不同でパイプラインのステップに対処し得る。例えば、自動モデリングアプリケーション150は、特徴のデータタイプを設定する前に特徴を選択し得る。自動モデリングアプリケーション150は、ステップにおいて行われた初期の決定を最適化するために、後続のステップに対処した後にステップを再検討し得る。例えば、自動モデリングアプリケーション150は、最初に変数のデータタイプを選択し、次いで、変数から特徴を抽出し、次いで、戻って変数のデータタイプを変更し得る。
【0014】
トレーニングされたモデルが生成された後、ハイブリッド機械学習プロセスは、支援機械学習プロセスに移行する。支援モデリングアプリケーション160は、例えば、自動モデリングアプリケーション150によって行われた最適化および決定を自動機械学習プロセスから抽出することによって、自動モデリングアプリケーション150によって使用される機械学習パイプラインの表現を生成する。機械学習パイプラインの表現は、パイプラインの一部またはすべてのステップの表現を含みし得る。ステップの表現は、自動機械学習プロセス中に自動モデリングアプリケーション150によって行われた決定、ならびにそのステップの代替オプションを含む。決定および代替オプションは、本明細書ではまとめて「オプション」と呼ばれる。ステップの表現は、オプションに対する推奨事項のレベルを示す各オプションの推奨事項スコア、ユーザが修正を行うのに役立つことができるオプションの説明などの他の情報を含み得る。いくつかの実施形態では、推奨事項スコアは、自動機械学習プロセスにおける自動モデリングアプリケーション150によって決定され、支援モデリングアプリケーション160は、自動機械学習プロセスから推奨事項スコアを導出する。いくつかの実施形態では、支援モデリングアプリケーション160は、自動機械学習プロセスに基づいて推奨事項スコアを決定する。
【0015】
支援モデリングアプリケーション160は、例えば、GUIでユーザに表示するためのパイプラインの表現を提供する。ユーザは、パイプラインのステップをレビューし、および/または自動機械学習プロセスで行われた決定を修正し得る。支援モデリングアプリケーション160は、ユーザから修正を受信し、修正に基づいてトレーニングされたモデルを改良できる。改良されたトレーニングされたモデルは、次いで、新しいデータに基づいて予測を行うために展開される。
【0016】
いくつかの実施形態では、ハイブリッド機械学習プロセスは、支援機械学習プロセスから開始する。支援モデリングアプリケーション160は、ユーザ入力を受信し、ユーザ入力に基づいて一組のパイプラインを作成する。例えば、支援モデリングアプリケーション160は、ユーザインターフェースで推奨事項(例えば、データタイプ、トランスフォーマ、特徴、アルゴリズム、および/またはハイパーパラメータの推奨事項)を提示し、ユーザは、ユーザインターフェースを介して推奨事項に基づいてユーザ入力を提供し得る。支援モデリングアプリケーション160は、パイプラインのセットを自動モデリングアプリケーション150に送信し、自動モデリングアプリケーション150は、パイプラインのセットに基づいて自動機械学習プロセスを実行する。純粋な自動機械学習プロセスと比較して、ハイブリッド機械学習プロセスは、自動モデリングアプリケーション150がその検索/最適化をパイプラインのセットに限定できるので、より少ない時間および/または計算リソースを消費する。また、ユーザ入力を使用してパイプラインのセットを作成することにより、自動モデリングアプリケーション150が通常は有していないユーザのドメイン知識を利用する。
【0017】
データソース120は、機械学習サーバ110に電子データを提供する。データソース120は、ハードディスクドライブ(HDD)またはソリッドステートドライブ(SSD)などのストレージデバイス、複数のストレージデバイスへのアクセスを管理および提供するコンピュータ、ストレージエリアネットワーク(SAN)、データベース、またはクラウドストレージシステムとし得る。データソース120はまた、別のソースからデータを取得できるコンピュータシステムであり得る。データソース120は、機械学習サーバ110から離れていて、ネットワーク140を介してデータを提供し得る。さらに、いくつかまたはすべてのデータソース120は、ネットワーク140を介してデータを渡すことなく、データ分析システムに直接結合され、データを提供し得る。
【0018】
データソース120によって提供されるデータは、データレコード(例えば、行)に編成され得る。各データレコードは、1つまたは複数の値を含む。例えば、データソース120によって提供されるデータレコードは、一連のカンマ区切り値を含み得る。データは、データ分析システム110を使用する企業に関連する情報を記述する。例えば、データソース120からのデータは、ウェブサイト上および/またはアプリケーションでアクセス可能なコンテンツとのコンピュータベースの相互作用(例えば、クリックトラッキングデータ)を記述できる。別の例として、データソース120からのデータは、オンラインおよび/または店舗での顧客取引を記述できる。企業は、製造、販売、金融、銀行などの様々な業界の1つまたは複数に属すことができる。
【0019】
クライアントデバイス130は、ユーザ入力を受信するとともに、ネットワーク140を介してデータを送信および/または受信することが可能な1つまたは複数のコンピューティングデバイスである。一実施形態では、クライアントデバイス130は、デスクトップまたはラップトップコンピュータなどの従来のコンピュータシステムである。代替として、クライアントデバイス130は、携帯情報端末(PDA)、携帯電話、スマートフォン、または別の適切なデバイスなど、コンピュータ機能を有するデバイスであり得る。クライアントデバイス130は、ネットワーク140を介して1つまたは複数のデータソース120および機械学習サーバ110と通信するように構成される。一実施形態では、クライアントデバイス130は、クライアントデバイス130のユーザが機械学習サーバ110と相互作用することを可能にするアプリケーションを実行する。例えば、クライアントデバイス130は、例えば、機械学習サーバ110によってサポートされるGUIを実行することによって、ネットワーク140を介してクライアントデバイス130と機械学習サーバ110との間の相互作用を可能にするアプリケーションを実行する。クライアントデバイス130は、GUIを表示するディスプレイデバイスを含む、またはそうでなければ関連付けられる。クライアントデバイス130はまた、GUIへの入力を提供するなど、ユーザがGUIと相互作用することを可能にする入力デバイス、例えば、キーボード、マウスなど、と関連付けられる。別の実施形態では、クライアントデバイス130は、IOS(R)またはANDROID(TM)などのクライアントデバイス130のネイティブオペレーティングシステム上で実行されるアプリケーションプログラミングインターフェース(API)を介して、機械学習サーバ110と相互作用する。クライアントデバイス130は、1つまたは複数のデータソース120と相互作用して、データソース120にデータを送信する、またはデータソース120からデータを取得し得る。
【0020】
ネットワーク140は、機械学習サーバ110とデータソース120との間の通信経路を表す。一実施形態では、ネットワーク140はインターネットであり、標準的な通信技術および/またはプロトコルを使用する。したがって、ネットワーク140は、イーサネット、802.11、ワールドワイド・インターオペラビリティ・フォー・マイクロウェーブ・アクセス(WiMAX(登録商標))、3G、ロングタームエボリューション(LTE)、デジタル加入者線(DSL)、非同期転送モード(ATM)、インフィニバンド、PCIエクスプレスアドバンストスイッチングなどの技術を使用するリンクを含むことができる。同様に、ネットワーク140で使用されるネットワーキングプロトコルには、マルチプロトコルラベルスイッチング(MPLS)、伝送制御プロトコル/インターネットプロトコル(TCP/IP)、ユーザデータグラムプロトコル(UDP)、ハイパーテキストトランスポートプロトコル(HTTP)、シンプルメール転送プロトコル(SMTP)、ファイル転送プロトコル(FTP)などを含むことができる。
【0021】
ネットワーク140を介して交換されるデータを、ハイパーテキストマークアップランゲージ(HTML)、拡張可能マークアップランゲージ(XML)などを含む技術および/またはフォーマットを使用して表すことができる。さらに、リンクのすべてまたは一部を、セキュアソケットレイヤ(SSL)、トランスポートレイヤセキュリティ(TLS)、仮想プライベートネットワーク(VPN)、インターネットプロトコルセキュリティ(IPsec)などの従来の暗号化技術を使用して暗号化できる。別の実施形態では、エンティティは、上記のものの代わりに、またはそれに加えて、カスタムおよび/または専用のデータ通信技術を使用できる。
【0022】
図2は、一実施形態による自動モデリングアプリケーション200を示すブロック図である。自動モデリングアプリケーション200は、
図1の自動モデリングアプリケーション150の一実施形態である。自動モデリングアプリケーション200は、パイプラインを使用して、データセットに対して自動機械学習プロセスを実行し、モデルをトレーニングする。トレーニングされたモデルは、ユーザによって定義され得るターゲット変数を予測するために使用される。自動モデリングアプリケーション200は、データ準備モジュール210、特徴エンジニアリングモジュール220、モデルトレーニングモジュール230、モデル検証モジュール240、およびデータベース250を含む。当業者は、他の実施形態が、本明細書に記載されたものとは異なるおよび/または他のコンポーネントを有することができること、機能を異なる手段でコンポーネント間に分散できることを認識するであろう。自動モデリングアプリケーション200のコンポーネントは一緒に動作して、パイプラインのステップにおいて一連の決定を行うことによって、自動機械学習プロセスを実行する。
【0023】
データ準備モジュール210は、データセット内のデータを処理して、モデルをトレーニングするためのトレーニングデータセットを準備する。データ準備モジュール210は、データセット内に関連付けられた変数のデータタイプを決定する。データセットに関連付けられた変数を、データセット内の変数とすることが、またはデータセット内の1つまたは複数の変数から変換することができる。いくつかの実施形態では、データセットに関連付けられた変数は、予測変数、すなわち特徴である。いくつかの実施形態では、データ準備モジュール210は、変数が数値データタイプ、カテゴリデータタイプ、時系列データタイプ、ジップコード(zip code)データタイプ、またはテキストデータタイプであるかなど、オプションのデータタイプのプールから変数のデータタイプを選択する。いくつかの実施形態では、データ準備モジュール210は、ルールベースの分析を通じて、変数の1つまたは複数のデータタイプを決定する。この決定は、データ準備モジュール210によって維持されるルールに基づく。一例では、ルールは、変数のデータ値に基づいて変数のデータタイプを指定し、例えば、数値を含む変数は数値データタイプを有し、テキスト値を含む変数はテキストデータタイプを有する。データ準備モジュール210は、変数が数値であると決定した場合、ルールの下で、変数が整数または浮動(float)であるかをさらに決定し得る。整数である場合、データ準備モジュール210は、次いで、変数の固有の整数値の数を決定し得る。データ準備モジュール210が、変数の固有の整数値の数が閾値未満であると決定した場合、ルールは、変数のデータタイプがカテゴリであることを示す。ルールはまた、変数のデータタイプが数値である可能性があることを示唆し得る。別の例では、ルールは、変数の説明に基づいて変数のデータタイプを指定し、例えば、データセット内の「ユーザID」という名前の変数はIDデータタイプを有し、「生年月日」という名前の変数は時系列データタイプを有する。
【0024】
データ準備モジュール210は、変数のオプションのデータタイプごとにランキングスコアを決定し得る。データタイプのランキングスコアは、オプションのデータタイプが変数の真のデータタイプである確率を示す。いくつかの実施形態では、データ準備モジュール210によって維持されるルールは、変数に対する異なるデータタイプの確率を示し得る。上述の例では、データ準備モジュール210が変数の固有の整数値の数が閾値未満であると決定した場合、ルールは、カテゴリデータタイプが数値データタイプよりも高い確率を有することを示すことができる。データ準備モジュール210はまた、整数値がジップコードであるかどうかを決定し、ルールに基づいてジップコードの確率を決定し得る。別の例では、ルールは、データセット内の「ジップコード」という名前の変数に対して、カテゴリデータタイプおよび数値データタイプの確率が、時系列データタイプおよびテキストデータタイプの確率よりも高いことを示す。さらに別の例では、ルールは、テキスト値を含む変数に対して、カテゴリデータタイプおよびテキストデータタイプの確率が、時系列データタイプおよび数値データタイプの確率よりも高いことを示す。
【0025】
いくつかの実施形態では、データ準備モジュール210は、そのデータタイプを使用してトレーニングされたモデルのパフォーマンスを評価することによって、各オプションのデータタイプのランキングスコアを決定し得る。例えば、データ準備モジュール210は、オプションのデータタイプを使用してモデルをトレーニングし、モデルのパフォーマンスに基づいて、オプションのデータタイプのランキングスコアを決定する。データ準備モジュール210は、異なるデータタイプ(モデルの機械学習プロセスにおける他の決定は同じとすることができる)を使用してトレーニングされたモデルのパフォーマンスを比較し、その比較に基づいて、データタイプのランキングスコアを決定し得る。例えば、データ準備モジュール210は、データタイプを用いてトレーニングされたモデルが他のデータタイプを用いてトレーニングされたモデルよりも良好なパフォーマンスを示す場合、データタイプのランキングスコアが他のデータタイプよりも高いと決定する。ランキングスコア/確率を、特徴、アルゴリズム、ハイパーパラメータなどの検索のような、自動機械学習プロセスにおいて自動モデリングアプリケーション200によって行われるさらなる検索を制約するために使用できる。
【0026】
データ準備モジュール210は、ランキングスコアに基づいて、4つのデータタイプのうちの1つを変数のデータタイプとして選択する。例えば、データ準備モジュール210は、最も高い確率を有するデータタイプを選択する。
【0027】
データ準備モジュール210は、決定されたデータタイプに基づいて、データセット内のデータを符号化し得る。いくつかのデータタイプの値、例えば、カテゴリ値、はモデルトレーニングにより適した異なる表現に符号化される。いくつかの実施形態では、データ準備モジュール210は、カテゴリ変数、時系列変数、および/またはテキスト変数の値を符号化して、値をバイナリ値に変換する。データ準備モジュール210は、テキストを数値に変換する、ラベル符号化、ワンホット符号化、カスタムバイナリ符号化、逆方向差分符号化、多項式符号化などの様々な方法を使用して、日付を符号化し得る。
【0028】
データ準備モジュール210は、データセット内の欠損値を検出し、値を供給するためにデータ補完を実行する。いくつかの実施形態では、データ準備モジュール210は、欠損値を置き換えるためにデータセット内の現在の値に基づいて新しい値を決定する。例えば、欠損値を有する各列に対して、データ準備モジュール210は、列内の欠損値を、列内の現在の値の平均または中央値、列内の最も頻繁な値、またはデータセット内にない新しいサンプルからの値で置き換える。データ準備モジュール210は、k-最近傍(k-Nearest Neighbor : kNN)補完、ホットデック補完、コールドデック補完、回帰補完、確率的回帰補完、外挿および内挿、単一補完、多重補完、連鎖方程式による多変量補完(MICE)、ディープニューラルネットワークを使用する補完などの他の補完方法を使用し得る。データ準備モジュール210は、複数の補完方法を識別し、対応する変数のデータタイプに基づいて、識別された補完方法をランク付けし得る。一例では、数値変数の場合、データ準備モジュール210は、データセット内に外れ値が存在するか否かを決定し、存在する場合には、中央値の補完法を平均の補完方法よりも高くランク付けする。
【0029】
特徴エンジニアリングモジュール220は、データセットから特徴を抽出する。特徴エンジニアリングモジュール220は、データセット内の変数を特徴として抽出し、および/またはトランスフォーマを使用してデータセット内の変数を特徴に変換し得る。トランスフォーマが変数の値に適用されると、特徴の値を生成する。いくつかの実施形態では、特徴エンジニアリングモジュール220は、データセット内の変数、ターゲット変数、ターゲット変数に関連するビジネス問題などの1つまたは複数の要因に基づいて、モデルトレーニングモジュール230のトランスフォーマのプールからトランスフォーマを選択する。
【0030】
特徴エンジニアリングモジュール220は、特徴をランク付けし、各特徴のランキングスコアを決定する。特徴のランキングスコアは、特徴がターゲット変数を予測するためにどの程度重要であるか、言い換えれば、特徴が予測子(predictor)としてどの程度優れているかを示す。いくつかの実施形態では、特徴エンジニアリングモジュール220は、特徴およびデータセットに基づいてランダムフォレストを構築する。特徴エンジニアリングモジュール220は、ランダムフォレスト内の各決定木に基づいて特徴のランキングスコアを決定し、個々のランキングスコアの平均を特徴のランキングスコアとして取得する。特徴エンジニアリングモジュール220は各決定木の一部としてGINI不純物を使用し、特徴が予測モデル全体にどの程度寄与するかを測定し得る。ランダムフォレストを使用することによって決定された特徴のランキングスコアは、その特徴が他の特徴に対してどの程度重要であるかを示し、「相対ランキングスコア」と呼ばれる。一例では、ランキングモジュール330は、最高ランクの選択された特徴の相対ランキングスコアが1であると決定する。次に、ランキングモジュール330は、対応する選択された特徴の相対ランキングスコアとして、最高ランクの特徴のランキングスコアに対する残りの特徴のそれぞれのランキングスコアの比を決定する。
【0031】
特徴エンジニアリングモジュール220は、例えば、Goodman-Kruskal Tau(GKT)尺度に基づいて、各選択された特徴の絶対ランキングスコアを決定し得る。GKT尺度は、局所的または絶対的な関連の尺度であり、特徴がターゲットをどの程度予測するかを示す。特徴エンジニアリングモジュール220は、モデルをトレーニングするための特徴として、それらの相対ランキングスコアおよび/または絶対ランキングスコアに基づいて、特徴のグループのサブセットを選択し得る。
【0032】
モデルトレーニングモジュール230は、特徴エンジニアリングモジュール220によって決定された特徴およびそれらのランキングスコアに基づいてモデルをトレーニングする。いくつかの実施形態では、モデルトレーニングモジュール230は、候補アルゴリズムのプールからアルゴリズム(「推定器」とも呼ばれる)を選択する。候補アルゴリズムの例は、例えば、決定木、ロジスティック回帰、ランダムフォレスト、XGBoost、線形サポートベクトルマシン(線形SVM)、AdaBoost、ニューラルネットワーク、ナイーブベイズ、記憶ベース学習、ランダムフォレスト、バッギングツリー、ブースティングツリー、ブーストティング株などを含む。モデルトレーニングモジュール230は、選択されたアルゴリズムを使用することによってモデルをトレーニングする。いくつかの実施形態では、モデルトレーニングモジュール230は、利用可能な情報、例えば、モデルをトレーニングするための制限時間、計算リソースの制限(例えば、プロセッサの制限、メモリ使用量の制限など)、解決する予測問題、データセットの特性、選択した特徴、に基づいて、プール内の候補アルゴリズムの数を制約し得る。モデルトレーニングモジュール230は、各候補アルゴリズムをテストし、最良のものを選択し得る。モデルトレーニングモジュール230は、候補アルゴリズムのパフォーマンスを評価するために、パフォーマンス尺度(例えば、分類精度)に関連付けられたテストハーネスを定義できる。例えば、モデルトレーニングモジュール230は、候補アルゴリズムでトレーニングされたモデルを検証データセット(モデルをトレーニングするために使用されるデータセットとは異なるデータセット)に適用して、トレーニングされたモデルの精度を定量化する。精度測定に適用される一般的なメトリックには、精度=TP/(TP+FP)およびリコール=TP/(TP+FN)が含まれ、精度は、モデルが予測した合計(TP+FPまたは偽陽性)のうち、モデルが正確に予測した結果(TPまたは真陽性)の数であり、リコールは、実際に発生した総数(TP+FNまたは偽陰性)のうち、モデルが正確に予測した結果(TP)の数である。Fスコア(F-score=2*PR/(P+R))は、精度とリコールを単一の尺度に統一する。
【0033】
テストハーネスに対して候補アルゴリズムをテストした結果は、候補アルゴリズムがパフォーマンス測定に対して予測問題に対してどのように実行するかを推定する。モデルトレーニングモジュール230は、最良のパフォーマンスを有する候補アルゴリズムを選択する。いくつかの実施形態では、モデルトレーニングモジュール230は、選択された候補アルゴリズムをさらに最適化する。モデルトレーニングモジュール230は、候補アルゴリズムのテスト結果または他の情報に基づいて、候補アルゴリズムの長所および短所(pros and cons)を分析し得る。
【0034】
モデルトレーニングモジュール230はまた、選択されたアルゴリズムによって必要とされるハイパーパラメータを決定し得る。ハイパーパラメータは、値が機械学習プロセスを制御するために使用されるパラメータである。ハイパーパラメータはトレーニングプロセスにおいて使用され、トレーニングプロセスの速度または質に影響を与え得る。ハイパーパラメータの例には、学習率、ミニバッチサイズ、サポートベクトルマシンのCおよびシグマハイパーパラメータ、ニューラルネットワークのサイズ、およびニューラルネットワークのトポロジが含まれる。モデルトレーニングモジュール230は、グリッド検索、ランダム検索、またはその他の方法によってハイパーパラメータを決定できる。いくつかの実施形態では、モデルトレーニングモジュール230は、履歴トレーニングプロセスから、自動機械学習のために指定されたデフォルト値、または他の技術を使用して、1つまたは複数のハイパーパラメータを導出することによってハイパーパラメータを取得する。データベース240は、自動モデリングアプリケーション200によって受信され、使用され、生成されたデータのような、自動モデリングアプリケーション200に関連付けられたデータを格納する。例えば、データベース240は、データセット、パイプライン、パイプラインのステップで行われた決定、トレーニングデータセット、特徴、トランスフォーマ、アルゴリズム、ハイパーパラメータ、トレーニングされたモデルなどを格納する。
【0035】
図3は、一実施形態による支援モデリングアプリケーション300を示すブロック図である。支援モデリングアプリケーション300は、
図1の支援モデリングアプリケーション160の一実施形態である。支援モデリングアプリケーション300は、ユーザ入力に基づいて、自動モデリングアプリケーション200によってトレーニングされたモデルを改良する。支援モデリングアプリケーション300は、パイプライン表現モジュール310、ユーザインターフェースモジュール320、モデル改良モジュール330、およびデータベース340を含む。当業者は、他の実施形態が、本明細書に記載されたものとは異なるおよび/または他のコンポーネントを有することができ、機能を異なる手段でコンポーネント間に分配できることを認識するであろう。
【0036】
パイプライン表現モジュール310は、機械学習パイプラインの表現を生成する。いくつかの実施形態では、パイプライン表現モジュール310は、自動モデリングアプリケーション150などの自動モデリングアプリケーションから機械学習パイプラインを取得する。例えば、パイプライン表現モジュール310は、自動モデリングアプリケーションによって実行される自動機械学習プロセスから機械学習パイプラインを検索する(retrieves)。いくつかの実施形態では、パイプライン表現モジュール310は、自動機械学習プロセスで使用および生成されるデータなど、自動モデリングアプリケーション200のデータベース240に格納されたデータを検索する。パイプライン表現モジュール310は、データを分析し、そのデータをパイプラインのステップおよび各ステップのオプションにマッピングする。パイプライン表現モジュール310は、分析およびマッピングに基づいてパイプラインの表現を生成する。いくつかの実施形態では、パイプライン表現モジュール310は、複数のパイプラインについて自動モデリングアプリケーション200に照会する。例えば、パイプライン表現モジュール310は、自動モデリングアプリケーション200によって識別された所定の数のパイプラインについて照会する。この照会に応答して、自動モデリングアプリケーション200は、その検索において所定の数の最良のパイプラインをパイプライン表現モジュール310に送信する。パイプライン表現モジュール310は、パイプラインを使用してトレーニングされたモデルのパフォーマンス測定、モデル精度など、に基づいて、自動モデリングアプリケーション200から受信したパイプラインの1つを選択できる。次に、パイプライン表現モジュール310は、選択されたパイプラインおよびパイプラインのステップ/コンポーネントを変換して、パイプラインの表現を生成する。
【0037】
パイプライン表現モジュール310は、パイプラインの1つまたは複数のステップの表現を生成する。ステップの表現(「ステップ表現」とも呼ばれる)には、ステップのオプションが含まれる。オプションの1つは、自動機械学習プロセス中にステップで行われる決定である。表現はまた、各オプションのランキングスコアまたは推奨事項インディケータを含み得る。ランキングスコアまたは推奨事項インディケータは、オプションの推奨事項レベルを示す。一部のステップでは、表現は各オプションの説明を含む。説明には、例えば、オプションの機能の説明、オプションの評価(例えば、長所と短所)、オプションの評価、オプションを選択および/または選択しない理由の説明などが含まれる。ランキングスコアおよび/または説明は、例えば、
図2に関連して前述した技術を使用することによって、自動モデルアプリケーション200またはパイプライン表現モジュール310のいずれかによって決定できる。いくつかの実施形態では、オプションのランキングスコアおよび/または説明は、オプションを使用してトレーニングされたモデルのパフォーマンス尺度(例えば、予測精度)に基づいて決定される。例えば、オプションの推奨事項スコアは、そのオプションを使用してトレーニングされたモデルのパフォーマンスがより良好であると決定される場合に、より高くなる。
【0038】
一例では、パイプライン表現モジュール310は、データタイプ設定ステップの表現としてデータタイプリストを生成する。データタイプリストは、1つまたは複数の変数に、例えば、自動機械学習プロセスにおいて使用される特徴に、関連付けられる。それは、各特徴に対して複数のオプションのデータタイプを含む。データタイプリストはまた、各オプションのデータタイプに対するランキングスコアを含む。ランキングスコアは、オプションのデータタイプが特徴の真のデータタイプである確率を示す。
【0039】
別の実施形態では、パイプライン表現モジュール310は、データ補完ステップの表現としてデータ補完リストを生成する。データ補完リストは、自動機械学習プロセスにおいて補完された欠損値を有する1つまたは複数の特徴を含む。各特徴について、データ補完リストは、多数のオプションの補完方法を含み、これは、特徴の値を補完させるために自動機械学習プロセスにおいて使用される補完方法を含む。データ補完リストは、特徴の合計行の中で欠損値を有する行のパーセンテージを示す、各特徴についてのパーセンテージを含み得る。パイプライン表現モジュール310は、各オプションの補完方法に基づいて置換値を計算し、データ補完ステップの表現に置換値を含み得る。
【0040】
さらに別の例では、パイプライン表現モジュール310は、特徴エンジニアリングステップの表現として特徴リストを生成する。特徴リストは、自動機械学習プロセスにおいて使用される特徴の一部または全部を含み、自動機械学習プロセスで使用されなかった特徴も含み得る。特徴リストは、特徴が予測に対してどの程度重要であるかを示す各特徴のランキングスコア、各特徴の説明、特徴の評価、またはそれらの一部の組み合わせを含み得る。特徴リストはまた、特徴を抽出するために使用されるトランスフォーマを含み得る。
【0041】
さらに別の例では、パイプライン表現モジュール310は、アルゴリズム選択ステップの表現としてアルゴリズムリストを生成する。アルゴリズムリストは、モデルをトレーニングするために使用されるオプションのアルゴリズムを含む。オプションのアルゴリズムの1つは、自動機械学習プロセスにおいて選択および使用されるアルゴリズムであり、パイプライン表現モジュール310は、それをアルゴリズムリスト内の「推奨事項」アルゴリズムとしてラベル付けし得る。各オプションのアルゴリズムについて、アルゴリズムリストは、オプションのアルゴリズムの長所および短所を示す説明を含み得る。長所および短所を改良されるモデルに特有とすることができる。パイプライン表現モジュール310はまた、例えば、自動機械学習プロセスにおけるオプションのアルゴリズムのパフォーマンスのテスト結果に基づいて、各オプションのアルゴリズムのランキングスコアを決定し得る。一例では、パイプライン表現モジュール310は、オプションのアルゴリズムを使用してトレーニングされたモデルの測定された精度に基づいて、ランキングスコアを決定する。
【0042】
ユーザインターフェースモジュール320は、GUIをサポートし、GUIを介して提示するためのパイプラインの表現を提供する。GUIは、ユーザが、パイプラインの表現を閲覧し、パイプラインに基づく自動機械学習プロセスで行われた決定をレビューし、決定の少なくとも一部を修正することを可能にする。一例では、GUIは、ユーザが、自動機械学習プロセスで使用される変数のデータタイプを異なるデータタイプに変更することを可能にする。別の例では、GUIは、ユーザが、トランスフォーマの変更、自動機械学習プロセスで選択された特徴の削除、自動機械学習プロセスで選択されていない特徴の追加、または自動機械学習プロセスで決定された特徴のランキングの変更など、特徴を編集することを可能にする。例えば、ユーザは、自身のドメイン知識を使用して、ターゲット漏れを生じるが、自動モデリングアプリケーション200のドメイン知識の欠如のために、自動機械学習プロセスにおいて選択された特徴を削除できる。GUIはまた、ユーザがアルゴリズムおよび/またはハイパーパラメータを変更することを可能にし得る。
【0043】
いくつかの実施形態では、GUIは、ユーザが相互作用してパイプラインのステップを選択および修正できる複数の制御要素を含む。制御要素の例は、チェックボックス、ボタン、タブ、アイコン、ドロップダウンリスト、リストボックス、ラジオボタン、トグル、テキストフィールド、日付フィールドを含む。例えば、GUIは、各ステップのタブを含み、ユーザは、タブをクリックして、ステップの決定および代替オプションにアクセスできる。各ステップのオプションは、ユーザが一度に1つまたは複数のオプションを選択することを可能にするドロップダウンリストまたはチェックボックスで提示され得る。対応するステップの決定は、代替オプションと区別され得る。例えば、決定は、GUIにおいて「推奨事項」としてマークされ得る、または強調表示され得る。GUIは、ユーザが決定を維持する(例えば、何もしないことによって、または決定を表すアイコンをクリックすることによって)、または代替オプションを選択する(例えば、代替オプションを表すアイコンをクリックすることによって)かのいずれかを可能にする。
【0044】
いくつかの実施形態において、GUIは、ユーザがパイプラインのステップを順不同でナビゲートすることを可能にする。例えば、ユーザは、データタイプ設定ステップをユーザがレビューする前に、特徴選択ステップをレビューし得る。GUIは、ユーザがステップを再訪問し、および/またはステップに複数の修正を行うことを可能にし得る。
【0045】
GUIは、他のタイプのユーザ入力を可能にし得る。例えば、GUIは、ユーザがターゲット変数を修正し、データセットを編集し、モデルを改良するための自動化レベルを選択することを可能にする。
【0046】
モデル改良モジュール330は、GUIを介してユーザから受信した修正に基づいて、トレーニングされたモデルを改良する。いくつかの実施形態では、モデル改良モジュール330は、自動モデリングアプリケーション200に修正を送信し、自動モデリングアプリケーション200は、修正を用いて自動機械学習プロセスの一部または全部を調整する。自動モデリングアプリケーション200は、修正に基づいてパイプライン中の決定を更新し、更新された決定に基づいて新しいモデルをトレーニングし得る。例えば、自動モデリングアプリケーション200は、ユーザの修正を使用して、候補アルゴリズムまたはハイパーパラメータの検索を制約する。一例では、GUIは、モデルを改良するために使用される1つまたは複数のハイパーパラメータのユーザの指定を受信し、モデル改良モジュール330は、1つまたは複数のハイパーパラメータを自動モデリングアプリケーション200に送信し、自動モデリングアプリケーション200は、1つまたは複数のハイパーパラメータを使用して、新しいパイプラインおよびアルゴリズムを検索する。次に、自動モデリングアプリケーション200は、新しいパイプラインおよびアルゴリズムを使用して、モデルを再トレーニングする。
【0047】
いくつかの実施形態において、モデル改良モジュール330は、例えば、
図2に関連して上述された機械学習技術を使用することによって、ユーザの修正に基づいてモデルを再トレーニングする。モデル改良モジュール330は、パイプラインの一部または全部を実行して、トレーニングされたモデルを改良し得、自動機械学習プロセスと同様の決定を行う、または新しい決定を行うことを含む。例えば、数値からカテゴリへの特徴のデータタイプのユーザの修正を受信した後、モデル改良モジュール330は、特徴のカテゴリ値を数値特徴に変換するためのデータ符号化方法を選択することによって、新しい決定を行う。モデル改良モジュール330はまた、改良されたモデルを検証し、検証後の新しいデータに基づいて予測を行うために、改良されたモデルを展開し得る。
【0048】
データベース340は、支援モデリングアプリケーション300によって受信され、使用され、生成されたデータのような、支援モデリングアプリケーション300に関連付けられたデータを格納する。例えば、データベース240は、パイプラインの表現、自動モデリングアプリケーション200からのデータ、GUI用のデータ、ユーザ入力、モデルの改良に関連付けられたデータなどを格納する。
【0049】
図4は、一実施形態によるハイブリッド機械学習のための例示的なユーザインターフェース400である。ユーザインターフェース400は、上述のように、支援モデリングアプリケーション300によって生成されるGUIの実施形態である。ユーザインターフェース400は、パイプラインの表現を提示する。それは、パイプラインにおける4つのステップおよび4つのタブ410A乃至D(集合的に「タブ410」と呼ばれる)の表現を含む。ユーザインターフェース400は、ユーザが4つのタブ410のうちの1つをクリックして、対応するステップを選択し、ナビゲートすることを可能にする。
図4に示すように、ステップ1は、ユーザによって選択される。ステップ1は、データタイプの設定に関するものである。ステップ1のためのタブ410Aのユーザのクリックを受信することに応答して、ユーザインターフェースは、データタイプリスト420をユーザに提示する。データタイプリスト420は、特徴のリスト430、特徴のためのオプションのデータタイプ440、および詳細450を含む。ユーザインターフェースは、ユーザがタブをクリックすることによって特徴を選択することを可能にするように、各特徴のためのタブ435を有する。ユーザインターフェースはまた、三角形ボタン445および各特徴のオプションのデータタイプのためのドロップリスト447を有する。ドロップリスト447に提示されるデフォルトのデータタイプは、自動機械学習プロセスで使用されるデータタイプであり、「推奨事項」としてマークされる。ユーザが三角形ボタン445をクリックすることに応答して、ユーザインターフェースは、ドロップリスト内の他のオプションのデータタイプを提示する。
図3に示すように、ユーザは、ジップコード特徴を選択し、推奨事項データタイプは数値である。ユーザが三角形ボタン445をクリックした後、ユーザインターフェースは、3つの他のデータタイプをユーザに提示し、ユーザが3つのうちの1つを選択して推奨事項データタイプを置き換えることを可能にする。
図4において、ジップコード特徴のための推奨事項データタイプは、自動機械学習プロセスにおいて誤って識別されたが、ユーザは、誤りをレビューし訂正する機会を有する。ユーザは、ドロップリスト447においてジップコードを選択することによって、ジップコード特徴のデータタイプをジップコードに変更できる。
【0050】
ユーザインターフェースはまた、データタイプのさらなる詳細450を提示する。詳細は、確率を含み、その各々は、オプションのデータタイプに対応し、特徴のデータタイプが、対応するオプションのデータタイプである可能性がどの程度あるかを示す。
【0051】
図4には示されていないが、ユーザインターフェース400は、ユーザが異なるステップに切り替える、またはユーザインターフェースに対して異なる入力を行うと、異なる情報を提示する。例えば、タブ401Cのユーザのクリックを受信した後、ユーザインターフェースは、オプションの特徴および/またはトランスフォーマをユーザに提示する。別の例として、補完方法のユーザの選択を受信した後、ユーザインターフェースは、補完方法を使用して計算された置換値をユーザに提示し、置換値は、ユーザが異なる補完方法を選択すると変化する。また、ユーザインターフェース400は、他のパイプラインステップの表現を提示し得る。
【0052】
図5は、一実施形態によるハイブリッド機械学習モデルプロセス500を示すフローチャートである。いくつかの実施形態では、方法は機械学習サーバ110によって実行されるが、他の実施形態では、方法における動作の一部または全部が他のエンティティによって実行され得る。いくつかの実施形態では、フローチャートにおける動作は異なる順序で実行され、異なるおよび/または追加のステップを含む。
【0053】
機械学習サーバ110は、データセットを受信する(510)。いくつかの実施形態では、機械学習サーバ110は、企業に関連付けられたデータソース(例えば、データソース120)からデータセットを受信する。企業は、製造、販売、金融、および銀行などの様々な産業の1つまたは複数に属すことができる。いくつかの実施形態では、機械学習サーバ110は、クライアントデバイス130などのクライアントデバイスからデータセットを受信する。
【0054】
機械学習サーバ110は、受信したデータセットに対して自動機械学習プロセスを実行して、新しいデータに基づいて予測を行うためのモデルをトレーニングする(520)。自動機械学習プロセスは、パイプラインに基づいて一連の決定を行うことを含む。いくつかの実施形態では、パイプラインは、データタイプ設定、データ符号化、データ補完、特徴選択、特徴ランキング、アルゴリズム選択、ハイパーパラメータチューニング、モデルトレーニング、およびモデル検証などの一連のステップを含む。いくつかの他の実施形態では、パイプラインは、より少ない、より多い、または異なるステップを含む。一連の決定のそれぞれは、パイプラインのステップにおいて行われ得る。
【0055】
トレーニングされたモデルが生成された後、機械学習サーバ110は、パイプラインの表現を生成する(530)。機械学習サーバ110は、パイプラインのステップのいくつかまたはすべてを識別し、各識別されたステップの表現を生成し得る。ステップの表現は、自動機械学習プロセス中にステップにおいて行われた決定を含む、ステップのための複数のオプションを含む。ステップの表現はまた、オプションに対する推奨事項のレベル、または評価、説明などの各オプションの他の情報を示す、複数のオプションのそれぞれのためのランキングスコアを含み得る。
【0056】
いくつかの実施形態では、機械学習サーバ110は、モデルをトレーニングするために自動機械学習プロセスにおいて使用される特徴、特徴のための複数のオプションのデータタイプ、およびデータタイプが特徴の真のデータタイプである確率を示す、各オプションのデータタイプのためのランキングスコアを含む、データタイプリストを生成する。複数のオプションのデータタイプは、モデルをトレーニングするために自動機械学習プロセスで特徴に対して選択された第1のデータタイプを含む。機械学習サーバ110は、複数の特徴と、ユーザが予測に対してどの程度重要であるかを示す各特徴の説明とを含む特徴リストを生成し得る。複数の特徴は、モデルをトレーニングするための自動機械学習プロセスにおいて使用される特徴を含む。機械学習サーバ110は、複数のアルゴリズムと、モデルをトレーニングするためにアルゴリズムを選択するまたは選択しない理由を示す各アルゴリズムの説明とを含むアルゴリズムリストを生成し得る。アルゴリズムは、モデルをトレーニングするための自動機械学習プロセスにおいて使用されるアルゴリズムを含む。
【0057】
機械学習サーバ110は、ユーザインターフェースにおける表示のための機械学習パイプラインの表現を提供する(540)。ユーザインターフェースは、ユーザが、自動機械学習プロセスで行われた決定の少なくとも一部を修正することを可能にする。例えば、ユーザインターフェースは、ユーザが、特徴のための新しいデータタイプを選択し、特徴の欠損値を補完させるための新しいデータ補完方法を選択し、自動機械学習プロセスで行われた特徴選択を編集(例えば、ランキングの追加、削除、または変更)し、異なるアルゴリズムを選択し、ハイパーパラメータを調整することなどを可能にする。
【0058】
機械学習サーバ110は、ユーザインターフェースを介してユーザから1つまたは複数の修正を受信する(550)。機械学習サーバ110は、ユーザからの1つまたは複数の修正に基づいてモデルを改良する(560)。改良されたモデルは、新しいデータに基づいて予測を行うために使用される。例えば、機械学習サーバ110は、特徴に対する異なるデータタイプの選択を受信し、異なるデータタイプに基づいて特徴内の値を符号化し得る。
【0059】
図6は、一実施形態による、
図1の機械学習サーバ110として使用するための典型的なコンピュータシステム600の機能図を示す高レベルのブロック図である。
【0060】
図示のコンピュータシステムは、チップセット604に結合された少なくとも1つのプロセッサ602を含む。プロセッサ602は、同じダイ上に複数のプロセッサコアを含むことができる。チップセット604は、メモリコントローラハブ620および入出力(I/O)コントローラハブ622を含む。メモリ606およびグラフィックスアダプタ612は、メモリコントローラハブ620に結合され、ディスプレイ618は、グラフィックスアダプタ612に結合される。ストレージデバイス608、キーボード610、ポインティングデバイス614、およびネットワークアダプタ616は、I/Oコントローラハブ622に結合され得る。いくつかの他の実施形態では、コンピュータシステム600は、追加の、より少ない、または異なるコンポーネントを有し得、コンポーネントは、別々に結合され得る。例えば、コンピュータシステム600の実施形態は、ディスプレイおよび/またはキーボードを欠き得る。さらに、コンピュータシステム600は、いくつかの実施形態では、ラックマウントブレードサーバとして、またはクラウドサーバインスタンスとしてインスタンス化され得る。
【0061】
メモリ606は、プロセッサ602によって使用される命令およびデータを保持する。いくつかの実施形態では、メモリ606はランダムアクセスメモリである。ストレージデバイス608は非一時的コンピュータ可読記憶媒体である。ストレージデバイス608は、HDD、SSD、または他のタイプの非一時的コンピュータ可読記憶媒体とすることができる。機械学習サーバ110によって処理および分析されたデータは、メモリ606および/またはストレージデバイス608に格納できる。
【0062】
ポインティングデバイス614は、マウス、トラックボール、または他のタイプのポインティングデバイスであり、コンピュータシステム600にデータを入力するためにキーボード610と組み合わせて使用され得る。グラフィックスアダプタ612は、ディスプレイ618上に画像および他の情報を表示する。いくつかの実施形態では、ディスプレイ618は、ユーザ入力および選択を受信するためのタッチスクリーン機能を含む。ネットワークアダプタ616は、コンピュータシステム600をネットワーク160に接続する。
【0063】
コンピュータシステム600は、本明細書に記載される機能を提供するためのコンピュータモジュールを実行するように適合される。本明細書で使用されるように、用語「モジュール」は、特定の機能を提供するためのコンピュータプログラム命令および他のロジックを指す。モジュールを、ハードウェア、ファームウェア、および/またはソフトウェアで実装できる。モジュールは1つまたは複数のプロセスを含むこと、および/またはプロセスの一部のみによって提供されることができる。モジュールは、通常、ストレージデバイス608に格納され、メモリ606にロードされ、プロセッサ602によって実行される。
【0064】
コンポーネントの特定の命名、用語の大文字化、属性、データ構造、または任意の別のプログラミングまたは構造の側面は、必須でも重要でもなく、記載された実施形態を実装するメカニズムは、異なる名前、フォーマット、またはプロトコルを有し得る。さらに、システムは、記載されたように、ハードウェアおよびソフトウェアの組み合わせを介して、または完全にハードウェア要素で実装され得る。また、本明細書に記載された様々なシステムコンポーネント間の機能の特定の分割は、単なる例示であり、必須ではなく、単一のシステムコンポーネントによって実行される機能は、代わりに、複数のコンポーネントによって実行され得、複数のコンポーネントによって実行される機能は、代わりに、単一のコンポーネントによって実行され得る。
【0065】
上記の説明のいくつかの部分は、情報に対する動作のアルゴリズムおよび記号表現に関する特徴を提示する。これらのアルゴリズム的な説明および表現は、データ処理技術の当業者が、その作業の内容を他の当業者に最も効果的に伝えるために使用する手段である。これらの動作は、機能的または論理的に記載されているが、コンピュータプログラムによって実装されると理解される。さらに、一般性を失うことなく、これらの動作の配置をモジュールまたは機能名として参照することも、時には便利であることが証明されている。
【0066】
上記の議論から明らかなように特に言及されない限り、説明全体を通して、「処理」または「計算」または「計算する」または「決定する」または「表示する」などの用語を利用する議論は、コンピュータシステムメモリまたはレジスタまたは他のそのような情報ストレージ、トランスミッションまたはディスプレイデバイス内の物理的(電子的)量として表されるデータを操作および変換する、コンピュータシステムまたは同様の電子計算デバイスの動作およびプロセスを指すことが理解される。
【0067】
本明細書に記載される特定の実施形態は、アルゴリズムの形式で記載されるプロセスステップおよび命令を含む。実施形態のプロセスステップおよび命令は、ソフトウェア、ファームウェアまたはハードウェアで実施することができ、ソフトウェアで実施される場合、リアルタイムネットワークオペレーティングシステムによって使用される異なるプラットフォーム上に存在し、そこから動作されるようにダウンロードすることができることに留意されたい。
【0068】
最後に、本明細書で使用される言語は、主として、読みやすさおよび教育目的のために選択されており、本発明の主題を描写または限定するために選択され得ないことに留意されたい。したがって、実施形態の開示は例示を意図しており、限定を意図しない。
【国際調査報告】