(57)【要約】      （修正有）【課題】人工知能モデルの精度を改善することができる生成装置、生成方法及び生成プログラムを提供する。【解決手段】情報提供装置１０は、モデルの学習に用いる学習データを取得する取得部４１と、学習データが有する統計的な特徴に基いて、モデルの生成指標を生成する指標生成部４２と、を有する。【選択図】図３６
2020149693.tif 000002
【特許請求の範囲】
【請求項１】
モデルの学習に用いる学習データを取得する取得部と、
前記学習データが有する特徴に基いて、前記モデルの生成指標を生成する指標生成部と
を有することを特徴とする生成装置。
【請求項２】
前記指標生成部は、前記学習データが有する統計的な特徴に基いて、前記生成指標を生成する
ことを特徴とする請求項１に記載の生成装置。
【請求項３】
前記指標生成部は、前記学習データが整数であるか、浮動小数点であるか、若しくは文字列であるかに基いて、前記生成指標を生成する
ことを特徴とする請求項１または２に記載の生成装置。
【請求項４】
前記指標生成部は、前記学習データが整数である場合、当該学習データの連続性に基いて、前記生成指標を生成する
ことを特徴とする請求項３に記載の生成装置。
【請求項５】
前記指標生成部は、前記学習データの密度が所定の第１閾値を超える場合、当該学習データの最大値が所定の第２閾値を上回るか否かに基いて前記生成指標を生成する
ことを特徴とする請求項４に記載の生成装置。
【請求項６】
前記指標生成部は、前記学習データの密度が所定の第１閾値を下回る場合、当該学習データに含まれるユニークな値の数が所定の第３閾値を上回るか否かに基いて前記生成指標を生成する
ことを特徴とする請求項４または５に記載の生成装置。
【請求項７】
前記指標生成部は、前記学習データが文字列である場合、学習データに含まれる文字列の種別の数に基いて、前記生成指標を生成する
ことを得著とする請求項３〜６のうちいずれか１つに記載の生成装置。
【請求項８】
前記指標生成部は、前記学習データが浮動小数点である場合、前記モデルの生成指標として、前記学習データを前記モデルに入力する入力データへの変換指標を生成する
ことを特徴とする請求項３〜７のうちいずれか１つに記載の生成装置。
【請求項９】
前記取得部は、複数の特徴を示す学習データを取得し、
前記指標生成部は、前記モデルの生成指標として、前記学習データが有する特徴のうち前記モデルに学習させる特徴を示す生成指標を生成する
ことを特徴とする請求項１〜８のうちいずれか１つに記載の生成装置。
【請求項１０】
前記取得部は、複数種別の特徴を示す学習データを取得し、
前記指標生成部は、前記モデルの生成指標として、前記学習データの種別のうち前記モデルに対して相関を学習させる複数の種別を示す生成指標を生成する
ことを特徴とする請求項１〜９のうちいずれか１つに記載の生成装置。
【請求項１１】
前記指標生成部は、前記モデルの生成指標として、前記モデルに入力される前記学習データの次元数を示す生成指標を生成する
ことを特徴とする請求項１〜１０のうちいずれか１つに記載の生成装置。
【請求項１２】
前記指標生成部は、前記モデルの生成指標として、前記学習データの特徴を学習させるモデルの種別を示す生成指標を生成する
ことを特徴とする請求項１〜１１のうちいずれか１つに記載の生成装置。
【請求項１３】
前記指標生成部は、前記モデルの生成指標として、前記モデルが有する中間層の数若しくは各層に含まれるノードの数を示す生成指標を生成する
ことを特徴とする請求項１〜１２のうちいずれか１つに記載の生成装置。
【請求項１４】
前記指標生成部は、前記モデルの生成指標として、前記モデルが有するノード間の接続態様を示す生成指標を生成する
ことを特徴とする請求項１〜１３のうちいずれか１つに記載の生成装置。
【請求項１５】
前記指標生成部は、前記モデルの生成指標として、前記学習データが有する特徴を前記モデルに学習させる際の学習態様を示す生成指標を生成する
ことを特徴とする請求項１〜１４のうちいずれか１つに記載の生成装置。
【請求項１６】
前記指標生成部は、前記モデルの生成指標として、前記モデルの大きさを示す生成指標を生成する
ことを特徴とする請求項１〜１５のうちいずれか１つに記載の生成装置。
【請求項１７】
前記指標生成部は、前記モデルに学習させる学習データの特徴、生成するモデルの態様、および前記学習データが有する特徴をモデルに学習させる際の学習態様を示す生成指標を生成する
ことを特徴とする請求項１〜１６のうちいずれか１つに記載の生成装置。
【請求項１８】
前記モデルに学習させる学習データの特徴、生成するモデルの態様、および前記学習データが有する特徴をモデルに学習させる際の学習態様を決定する順番の指定を利用者から受け付ける受付部
を有し、
前記指標生成部は、前記利用者から指定された順番で、前記モデルに学習させる学習データの特徴、生成するモデルの態様、および前記学習データが有する特徴をモデルに学習させる際の学習態様を決定する
ことを特徴とする請求項１〜１７のうちいずれか１つに記載の生成装置。
【請求項１９】
前記生成指標に従って、前記学習データが有する特徴を学習させたモデルを生成するモデル生成部
を有することを特徴とする請求項１〜１８のうちいずれか１つに記載の生成装置。
【請求項２０】
前記指標生成部は、前記モデル生成部が生成したモデルの精度に基いて、前記モデルの生成指標を新たに生成し、
前記モデル生成部は、前記指標生成部が新たに生成した生成指標に従って、前記モデルを新たに生成する
ことを特徴とする請求項１９に記載の生成装置。
【請求項２１】
前記指標生成部は、複数の生成指標を生成し、
前記モデル生成部は、各生成指標ごとに前記モデルを生成し、
前記指標生成部は、遺伝的アルゴリズムを用いて、前記複数の生成指標から新たな生成指標を生成する
ことを特徴とする請求項２０に記載の生成装置。
【請求項２２】
生成装置が実行する生成方法であって、
モデルの学習に用いる学習データを取得する取得工程と、
前記学習データが有する特徴に基いて、前記モデルの生成指標を生成する指標生成工程と
を含むことを特徴とする生成方法。
【請求項２３】
モデルの学習に用いる学習データを取得する取得手順と、
前記学習データが有する特徴に基いて、前記モデルの生成指標を生成する指標生成手順と
をコンピュータに実行させるための生成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、生成装置、生成方法および生成プログラムに関する。
【背景技術】
【０００２】
様々な従来技術の構想において、人工知能モデルは開発されてきた。具体的には、データが取得され、モデルが機械学習を使用して生成されてきた。人工知能モデルを生成する従来技術の手法においては、データの取得およびデータモデルのテストや評価の実施を含めて、かなりの手動による作業（例えば、人の介在）が必要とされてきた。
【０００３】
近年、ＳＶＭ（Support  vector  machine）やＤＮＮ（Deep  Neural  Network）等の各種モデルに対し、学習データが有する特徴を学習させることで、モデルに各種の予測や分類を行わせる技術が提案されている。このような学習手法の一例として、ハイパーパラメータの値等に応じて、学習データの学習態様を動的に変化させる技術が提案されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１９−１６４７９３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
従来技術の手法には様々な問題と欠点がある。例えば、これに限定するものではないが、モデル生成に関連した手動による作業は、個人データにアクセスできるように、開発者、プログラマ、分析者、試験者などの主体にアクセス権を提供することになる。購買、消費習慣などの機微なおよび／または個人的な情報に、テストや評価、モデル生成における訓練または他の態様の間中、アクセスすることができる。したがって、エンドユーザは、機微なおよび／または個人的な情報を潜在的にさらす結果として危険な状態にある可能性がある。さらに、販売業者や再販業者などの他の主体は、データ漏洩またはセキュリティ違反、あるいは企業機密情報へのアクセスの可能性により、危険な状態にある可能性もある。
【０００６】
さらに、従来技術の人工知能モデルが一旦生成されると、これらのモデルの規模を変更するには、コンピュータ処理能力や記憶容量など、きわめて大規模な容量を必要とする。この従来技術の難点の理由は、人工知能モデルに関連した入力およびパラメータは静的であり、効率的な方法で変更または最適化することができないことである。例えば、人工知能モデルの最適化には手動による介在を伴う。これにより時間およびリソースを追加する必要があるが、これら時間およびリソースは他の作業に使用することができるものである。さらに、従来技術の手動による最適化手法は、全体最適点に向けて最適化することができず、手動のオプティマイザを利用しづらい場合がある。
【０００７】
したがって、１つまたは複数の前述の従来技術の問題および／または欠点に取り組む必要性があるが、対処されないままになっている。
【０００８】
また、上述した技術では、モデルの精度を改善させる余地がある。例えば、上述した例では、ハイパーパラメータの値等に応じて、特徴の学習対象となる学習データを動的に変化させているに過ぎない。このため、ハイパーパラメータの値が適切ではない場合、モデルの精度を改善することができない場合がある。
【０００９】
ここで、モデルの精度は、学習データがどのような値のデータであるか、学習データがどのような特徴を有しているか、どの特徴を学習させるか等に応じて変化することが知られている。また、モデルの精度は、学習データをモデルに学習させる際の学習態様、すなわち、ハイパーパラメータが示す学習態様によっても変化する。このような多くの要素の中から、利用者の目的に応じたモデルを学習するために最適な要素を選択するのは、容易ではない。
【課題を解決するための手段】
【００１０】
本願に係る生成装置は、モデルの学習に用いる学習データを取得する取得部と、前記学習データが有する特徴に基いて、前記モデルの生成指標を生成する指標生成部とを有することを特徴とする。
【発明の効果】
【００１１】
実施形態の一態様によれば、モデルの精度を改善させることができる。
【図面の簡単な説明】
【００１２】
【図１】実装例の概略図である。
【図２】ＴｅｎｓｏｒＦｌｏｗ  Ｅｘｔｅｎｄｅｄの文脈における実装例の概略図である。
【図３】実装例による人工知能のフレームワークの工程の図である。
【図４】実装例のアーキテクチャ全体の図である。
【図５】素性関数選択アルゴリズムの実装例の図である。
【図６】実装例によるディープフレームワークアーキテクチャの図である。
【図７】実装例によるディープフレームワークに関連した作業の図である。
【図８】実装例によるモデルファイルの図である。
【図９】実装例によるＡＰＩの図である。
【図１０】様々なデータ密度判定にマッピングすることができるように異なるデータ型式をマッピングすること、および実装することができる関連素性関数を説明する実装例の図である。
【図１１】実装例に関連したユーザ体験例の図である。
【図１２】別のユーザ体験例の図である。
【図１３】ユーザ体験の別の実装例の図である。
【図１４】オペレーティングシステムに対する、実装例を実行するモデル間の比較をデータとして示す図である。
【図１５】年齢グループに対する、実装例を実行するモデル間の比較をデータとして示す図である。
【図１６】ユーザインタフェース例の図である。
【図１７】実装例の出力の図（１）である。
【図１８】実装例の出力の図（２）である。
【図１９】実装例の出力の図（３）である。
【図２０】実装例の出力の図（４）である。
【図２１】素性関数バンドルに関連した実装例の図である。
【図２２】実装例によって測定された過剰学習状態である状態の図である。
【図２３】実装例によって測定された過小学習状態にある状態の図である。
【図２４】複数の特定領域の結果と大域的最大の結果を表す解空間の図である。
【図２５】実装例によるチューナのフレームワークの図である。
【図２６】実装例によるアルゴリズムの図である。
【図２７】実装例の作業に関連した結果の図（１）である。
【図２８】実装例の作業に関連した結果の図（２）である。
【図２９】実装例の作業に関連した結果の図（３）である。
【図３０】一部の実装例での使用に適合するコンピュータデバイス例を備えたコンピューティング環境例の図である。
【図３１】一部の実装例に適合した環境例の図である。
【図３２】従来技術よるアプローチと実装例との間の相違のグラフィカル画像の図である。
【図３３】実施形態に係る情報提供システムの一例を示す図である。
【図３４】実施形態に係る情報提供装置が指標を最適化する順序を示す図である。
【図３５】実施形態における情報提供装置を用いたモデル生成の流れの一例を説明する図である。
【図３６】実施形態に係る情報提供装置の構成例を示す図である。
【図３７】実施形態に係る学習データベースに登録される情報の一例を示す図である。
【図３８】実施形態に係る生成条件データベースに登録される情報の一例を示す図である。
【図３９】実施形態に係る生成処理の流れの一例を示すフローチャートである。
【図４０】ハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【００１３】
実装例の態様は、人工知能モデルを生成し最適化し、同時に手動による介在を最小化することに関連した方法、システム、およびユーザ体験に関する。
【００１４】
実装例の態様によれば、コンピュータ実装方法が人工知能モデルを生成し最適化するのに提供される。この方法には、入力済みデータおよびラベルを受け取るステップ、データ検証を実行して構成ファイルを生成するステップ、データを分割して訓練用と評価用の分割済みデータを生成するステップ、分割済みデータの訓練と評価を実行して誤差レベルを測定するステップ、誤差レベルに基づいてアクションを実行するステップが含まれる。このアクションには、構成ファイルを修正するステップ、人工知能モデルを自動的にチューニングするステップ、訓練と評価とチューニングに基づいて人工知能モデルを生成するステップ、およびモデルを本番にサービングするステップ、のうちの少なくとも１つが含まれる。
【００１５】
他の態様によれば、訓練には、入力済みデータに関連した１つまたは複数の入力済み素性を自動的に最適化するステップ、生成済み人工知能モデルに関連したハイパーパラメータを自動的に最適化するステップ、最適化された１つまたは複数の入力済み素性および最適化されたハイパーパラメータに基づいてアップデートモデルを自動的に生成するステップ、が含まれる。
【００１６】
他の態様によれば、１つまたは複数の入力済み素性は、一般的なアルゴリズムによって最適化され、１つまたは複数の入力済み素性の組合せを最適化し、その最適化された入力済み素性のリストを生成する。
【００１７】
さらに１つの態様によれば、ハイパーパラメータを自動的に最適化するステップは、ハイパーパラメータに基づいて最適化するベイズのアルゴリズムとランダムアルゴリズムのうちの少なくとも一方を適用することを含む。
【００１８】
さらに１つの態様によれば、１つまたは複数の入力済み素性を自動的に最適化するステップは、第１の規定の反復回数が満たされるまで実行される第１の反復ループで実行され、ハイパーパラメータを自動的に最適化するステップおよびアップデートモデルを自動的に生成するステップは、第２の規定の反復回数が満たされるまで実行される第２の反復ループで実行される。
【００１９】
別の態様によれば、第１の反復ループおよび第２の反復ループは、第３の規定の反復回数が満たされるまで反復的に実行される。
【００２０】
別の態様によれば、訓練および評価の実行は、データのデータ型式、データの密度、およびデータの量に基づいて、１つまたは複数の素性関数を実行することを含む。
【００２１】
実装例は、記憶装置を有する非一時的コンピュータ可読媒体、および人工知能モデルを生成し最適化する命令を実行することができるプロセッサを備えることもできる。
【００２２】
以下の詳細な説明により、本出願の図表および実装例の詳細を提示する。図表間の重複要素の参照番号および説明は、説明を明快にするため省略する。説明を通して使用する言葉は例示として提示するものであり、それに限定するものではない。
【００２３】
実装例は、従来技術のアプローチでは必要とされてきた手動による人の介在を最小化すると同時に人工知能モデルを作成する方法およびシステムを対象とする。より詳細には、実装例は、データフレームワーク、ディープフレームワーク、およびチューナフレームワークを有する。データフレームワークには、データ検証、ディープフレームワークに必要となる構成ファイルの生成、および／または訓練と評価とテスト用データの編成が含まれる。ディープフレームワーク（例えば、ディープラーニングフレームワーク）により、別のコードを生成する必要なく、本番用ディープラーニングモデルを構築する。チューナフレームワークにより、データフレームワークについて１つまたは複数のハイパーパラメータおよびそれらの組合せ、および入力済み素性と素性類型とモデル形式の組合せ、を最適化する。例えば、これに限定されないが、本実装例は、Ｐｙｔｈｏｎ  ２．７またはＰｙｔｈｏｎ  ３．Ｘを使用し、ＴｅｎｓｏｒＦｌｏｗ  １．１２．０またはそれ以降を使用することによって実行することができ、他の実装が、当業者には理解されるように、発明の範囲から逸脱することなく、それの代わりに用いることができる。
【００２４】
図１は実装例の概要図１００である。概要図１００によれば、データ１０１およびラベル１０３は入力として提供される。例えば、これに限定されないが、データ１０１はＴＳＶ  ＴＦＲｅｃｏｒｄまたはＨＤＦＳフォーマットであってもよく、ラベル１０３は文字列として提供されてもよい。１０５には、データフレームワーク、ディープフレームワーク、およびチューナフレームワークが表示されている。出力１０７として、ＴｅｎｓｏｒＦｌｏｗがサービングするモデルなどのモデルが、本番に提供される。単一コマンドとして、本明細書の１０５で示す実装例が、例えば、ユーザによって実行することができる。
【００２５】
ＴｅｎｓｏｒＦｌｏｗ  Ｅｘｔｅｎｄｅｄの文脈において、本実装例は、以下のように、任意で統合することができる。より詳細には、図２の２００に示すとおりである。ＴｅｎｓｏｒＦｌｏｗ  Ｅｘｔｅｎｄｅｄは、ジョブ管理、監視、デバッグ、およびデータ／モデル／評価の可視化、ならびに２０３に示す共有構成フレームワーク、およびジョブ編成のために、統合フロントエンド２０１を提供する。本実装例は、その中にチューナフレームワーク２０５を統合することができる。さらに、データフレームワーク２０７はデータ解析、データ変換、およびデータ検証を提供し、ディープフレームワーク２０９はトレーナ、モデルの評価と検証、およびサービングを提供する。さらに、実装例は、２１１で示す不要データ収集およびデータアクセス制御の共有ユーティリティ、ならびに２１３で示すパイプライン記憶などの態様をＴｅｎｓｏｒＦｌｏｗと統合することができる。したがって、人工知能モデルは、構成ファイルと初期データだけで、本番向けに作成することができる。
【００２６】
本明細書で説明するように、実装例は自動最適化を備える。例えば、これに限定されないが、最適化は、入力済み素性の組合せ、入力済み素性のカラム形式、入力交差素性、および入力埋め込みサイズについて実行することができる。さらに、最適化は、モデル選択、モデルアーキテクチャ、モデルネットワーク／接続、モデルハイパーパラメータ、およびモデルサイズについて実行することもできる。
【００２７】
実装例によるパイプラインについては、人工知能フレームワークは、これはＴｅｎｓｏｒＦｌｏｗ  Ｅｘｔｅｎｄｅｄと統合することができるが、様々な工程を備える。図３は、実装例による人工知能フレームワーク３００の工程を示している。例えば、これに限定されないが、工程は、ジョブ／リソース管理３０１、監視３０３、可視化３０５、および実行３０７を含むことができ（例えば、Ｋｕｂｅｒｎｅｔｅｓ）、その後にデータフレームワーク３０９、ディープフレームワーク３１１、およびチューナフレームワーク３１３が続き、次に、ロールアウトとサービング、ロギング、訓練ハードウェア、および推論ハードウェアが続く。例えば、これに限定されないが、データフレームワーク３０９は、（データ取入れ工程の後に）データ解析、データ変換、データ検証、およびデータ分割を含むことができる。ディープフレームワーク３１１は、例えば、トレーナ、モデルの構築、モデル検証、スケールについての訓練、訓練ハードウェアとのインタフェース、ロールアウト、ロギングおよび干渉ハードウェアとのサービングインタフェースを含むことができる。
【００２８】
アーキテクチャ例によれば、タブ区切り値またはＴＳＶフォーマットのデータ構成ファイルおよび入力済みデータがデータフレームワークに提供される。データフレームワークはデータ検証を実行し、ディープフレームワーク向けに、スキーマ、素性、モデルおよび交差素性ファイル、ならびに検証レポートを含む構成ファイルを生成する。また、データフレームワークは、訓練用、評価用、および任意でテストおよび／または予測用にデータを分割する。
【００２９】
データフレームワークの出力はディープフレームワークに提供される。ディープフレームワークは、本番用モデルへの出力と同時にモデル解析レポートを出力し、訓練、評価とテスト、サービングモデルのエクスポート、モデル解析とサービングを実行する。
【００３０】
構成ファイルはチューナフレームワークにも提供され、チューナフレームワークは、オプティマイザ構成ファイルを使用して、入力済み素性およびハイパーパラメータの最適化、モデルの自動選択と自動機械学習を提供する。
【００３１】
前述のアーキテクチャの実行に関して、次のように作業が行われる。まず、入力済みデータが準備され、この入力済みデータはヘッダ無しのＴＳＶフォーマットまたはヘッダとスキーマ構成ファイル無しのＴＳＶフォーマットで提供される。次に、データ検証が実行され、ディープフレームワーク向け構成ファイルがエクスポートされる。さらに、データは、データフレームワークによって、訓練用、評価とテスト用に分割される。次いで、訓練をディープフレームワークによって実行することができるかどうかについて、確認が提供される。さらに、チューナフレームワークは、ハイパーパラメータの最適化、および入力済み素性、素性類型、およびモデル形式の組合せの最適化を実行することができる。続いて、モデルサービング（例えば、予測を提供すること、またはモデルの適用によって出力の蓋然性を使用すること）および推論を、ディープフレームワークによって実行することができる。
【００３２】
図４は、実装例のアーキテクチャ全体４００の図である。前述のように、データ４０１およびラベル４０３は入力として提供され、入力済みデータ構成ファイル４０５は任意で提供されてもよい。データフレームワーク４０７において、データ検証４０９およびデータ分割４１１が実行される。データ検証４０９の結果として、検証レポート４１３およびディープフレームワーク向け構成ファイル４１５が生成される。データ分割４１１において、データは、４１７で示すように、訓練用、評価用、および任意でテストと予測用に分割される。
【００３３】
ディープフレームワーク４１９へのデータフレームワークの出力は、構成ファイル４１５と分割ファイル４１７である。ディープフレームワーク４１９において、訓練と評価とテスト、サービングモデルのエクスポート、モデル解析とサービングが実行される。さらに、チューナフレームワーク４２１は、以下により詳細に説明するように、ディープフレームワーク４１９とインタフェースで接続する。チューナフレームワークは入力済み素性およびハイパーパラメータを自動的に最適化し、モデルの自動選択を提供する。任意で、オプティマイザ構成ファイル４２３を提供することができる。出力として、チューナフレームワーク４２１は、モデルの最適化のために最も好ましい構成ファイル４２４を提供し、同時にレポート４２５も提供する。ディープフレームワーク４１９は、その出力として、サービングモデル４２７を本番に提供し、同時に、モデル解析レポート４２９を提供する。
【００３４】
前述の実装例は、本明細書に記載の方法およびシステムを実行する命令を収納する非一時的コンピュータ可読媒体を通じて実行することができる。例えば、これに限定されないが、命令は、単一マシンの中の単一プロセッサ上で、単一マシンの中の複数プロセッサ上で、および／または複数マシンの中の複数プロセッサ上で実行することができる。例えば、１つのＣＰＵと１つのＧＰＵを有する単一サーバにおいては、実装例はそのＧＰＵ上で命令を実行することができ、複数ＧＰＵを有する単一サーバにおいては、処理はいくつかのＧＰＵまたはすべてのＧＰＵを使用して並列化形式で実行することができる。複数ＣＰＵ、複数サーバ環境においては、効率を最適化する方法で負荷分散技術が使用される。１つの実装例によれば、ヤフー株式会社によって開発された、ｋｕｋａｉシステムを採用してもよい。
【００３５】
データフレームワークについては、先に開示したように、データ検証、ディープフレームワーク向け構成ファイルの生成、ならびに訓練用および評価とテスト用データの分割が実行される。これらのスキーム関連した実装例は、以下でより詳細に説明する。
【００３６】
例えば、これに限定されないが、Ｄｅｅｐ  Ｆｒａｍｅｗｏｒｋ  １．７．１またはそれ以降が、実装例にしたがって、データフレームワークとともに使用することができる。ただし、他のアプローチまたはスキームは、発明の範囲を逸脱することなく、実装例の中でそのためにサブミットすることができる。さらに、データフレームワークへの入力として、データファイルが提供される。本実装例においては、データフォーマットはＴＳＶをサポートすることができ、有利な仕様がデータファイルの第１行目に、またはＤｅｅｐ  Ｆｒａｍｅｗｏｒｋ  ｓｃｈｅｍａ．ｙａｍｌの中に提供される。さらに、データ構成ファイルはＤＡＴＡ．ｙａｍｌとして提供される。
【００３７】
フレームワークのデータ検証によれば、データ検証は以下に説明するように実行される。データ検証は、無視するカラムを指定する関数を有している。無視するカラムが指定されると、これらのカラムは構成ファイルにエクスポートされないことになる。任意で、カラムは重み付けすることができる。より詳細には、データの中のラベルクラスそれぞれの番号が一様ではない場合、重みカラムはモデルの性能を改善することができる。より詳細には、重みカラムは、サンプルの損失と掛け合わせることができる。意味的には、重みカラムは、重みを表す文字列型カラムまたは数値カラムであってもよく、この重みカラムを使用して、訓練中に重みを下げたり、サンプルを増加させたりする。カラムの値は、サンプルに関連した損失と掛け合わせることができる。値が文字列型の場合はそれをキーとして使用して、素性から重みテンソルを引き出す。カラムの値が数字の場合は、ＲＡＷテンソルを引き出し、続いてノーマライザを適用し、重みテンソルを適用する。さらに、読み込むレコード数の最大数を指定することができる。
【００３８】
さらに、密度比率のしきい値を指定することができ、以下で説明するように密な密度と疎な密度を区別し、この関数を実装する。同じく、密なデータにおける少量と大量を区別するための最大値のしきい値を指定することができ、同様に、疎なデータの少量と大量を区別するための一意の総数のしきい値を提供することができる。また、ユーザＩＤのカラム名を指定し、再集計とユーザとの関係性をレポートすることができる。
【００３９】
データ検証の一部分として、データの少量と大量を区別するための一意の総数のしきい値を提供し、同様に大きな値と非常に大きな値とを区別する総数のしきい値を提供することができる。任意で、バケットの数も指定してもよい。以下に説明するように、バケット化関数に関連した２タイプの区画による出力がある。第１の区画は、指定数によって最大値と最小値との区別を定義する。第２の区画は、おおよそ同一サイズのバケットに分類するように定義する。計算されるバケットの実際の数はリクエスト数よりも小さい場合も大きい場合もある。これらの区画は、以下に説明するように、モデルオプティマイザの素性関数の最適化に使用することができる。
【００４０】
さらに、データフレームワークは、データを訓練用データ、評価とテスト用データに分割する。例えば、これに限定されないが、各データファイルの比率は、合計値が１．０になるように、指定することができる。あるいは、その比率は、データサイズに基づいて、自動的に計算することができる。さらに、任意で、各データファイルへのレコードのデータエクスポートは、その値が「ｔｒｕｅ」に設定されることに基づいて、実行することができる。さらに、データセットは、ユーザＩＤのカラム名に基づいて、指定された比率で各ユーザＩＤに分割することができ、そのデータセットは、タイムスタンプのカラム名を指定することによって、タイムスタンプに基づいて、分類後に分割することができる。
【００４１】
実施例によれば、データフレームワークの作業は以下のように行われる。最初に、データ検証関数についての前述の実装例を参照し、データおよびディープフレームワーク構成ファイルを検証する作業が実行される。データ検証作業が実行されたのちに、レポートおよびヒストグラムファイルが生成され再検討することができる。例えば、これに限定されないが、検証レポートにより、データ誤差、またはデータの問題点に関する警告についての情報を提供することができる。さらに、レポートログを生成することができ、密度などの情報を提供する。
【００４２】
検証レポートおよびヒストグラムファイルを検査したのちに、ディープフレームワーク構成ファイルを検証することができる。さらに、データを分割する作業を実行することができ、続いて、訓練用データと評価用データとの比較を実行する。その比較の結果も検証することができる。
【００４３】
実装例によると、素性関数選択アルゴリズムは以下のように提供される。図５は素性関数選択アルゴリズム５００の実装例の図である。整数型のデータについては、５０１において、最大値＋１に対する一意の総数の比率に基づいて密度が判定される。５０３においてその密度がしきい値以上であると判定されると、５０５においてデータは密なものとして特徴づけられる。５０７においてその密度がしきい値未満であると判定されると、５０９においてデータは疎なものとして特徴づけられる。５０５において密なものとして特徴づけられるデータについては、最大値が少量定数以上であるかどうかで判定される。少量定数以上である場合は、５１１において密なデータは大量として特徴づけられ、５１３において、ＩＤを備えた分類カラムが実行され、同様に、埋め込みが実行される。これに対し、最大値が少量定数未満であると判定されると、５１５においてデータは密なものかつ少量なものとして特徴づけられ、５１７においてＩＤを備えた分類カラムを使用して実行される。
【００４４】
５０９において判定された疎なデータについて、データの一意の総数がしきい値と比較される。５０９において一意の総数がしきい値以上であると判定されると、５１９においてデータは大量かつ疎なものとして特徴づけられ、ハッシュバケットを備えた分類カラムが提供され、５２１において埋め込みカラムが実行される。これに対し、一意の総数がしきい値未満であると判定されると、５２３においてデータは少量かつ疎なものとして特徴づけられ、ハッシュバケットを備えた分類カラムが提供され、５２５において実行される。
【００４５】
５２７において判定された文字列型データについては、一意の総数は少量定数と比較される。５２９において一意の総数が少量定数未満であると判定されると、５３１において文字列データは少量であると判定され、語彙リストを備えた分類カラムが提供され、５３３において語彙ファイルを備えた分類カラムが実行される。５３５において一意の総数が大量定数未満である判定されると、５３７において文字列データは大量であると判定され、語彙ファイルを備えた分類カラムが提供され、５３９において埋め込みカラムが実行される。５４１において一意の総数が大量定数以上である場合は、５４３において文字列データは超大量であると判定され、ハッシュバケットを備えた分類カラムが提供され、５４５において埋め込みカラムが実行される。
【００４６】
５４７において判定された浮動小数点型データについては、データは、５４９において実行されたバケット化カラムまたは５５１において実行された数値カラムのいずれかとして特徴づけられる。
【００４７】
データフレームワーク向けデータの取得に関して、ユーザは、携帯電話などのユーザ機器に関連した情報から、ＩＤ、タイムスタンプ、位置などの情報を提供することができる。同様に、オペレーティングシステム情報は、システムにアクセス可能なユーザ機器に関連した、ＩＰアドレス、ＭＡＣアドレス、または他の利用可能な情報から取得することができる。性別、年齢、職業などの人口統計学的な情報は、ユーザプロファイルデータからユーザの承諾を得て取得することができる。さらに、ユーザＩＤおよび追加情報は暗号化され、開発者が、ユーザに関する１つまたは複数のタイプの情報に基づいて、ユーザを識別することはできないことに留意されたい。
【００４８】
データの分割に関して、機械学習方法のために、訓練用データおよび評価用データは別々に準備されなければならず、データは訓練し評価する必要がある。前述のように、データフレームワークにより、訓練用データおよび評価用データが提供される。実装例によれば、訓練用データと評価用データは重複してもよい。さらに、テストは反復的に実施することができ、最適なデータテスト性能を提供するために、反復ごとにデータをシャッフルしてもよい。
【００４９】
以下で説明するように、ディープフレームワークはデータ訓練のために提供し、このデータ訓練は、ユーザまたは開発者がコードを提供する必要なく、自動的に実行される。また本明細書で説明するように、メカニズムまたは方法が、データの文字列型、整数型、および浮動小数点型、少量または大量などのデータの特質、ならびに密度関連情報を検出するのに提供される。
【００５０】
したがって、データフレームワークの出力として、モデル、スキーマ、素性、交差素性、および訓練用と評価テスト用に分割されたデータ自体、ならびに、任意で予測が提供される。この情報に基づいて、ディープフレームワークは以下に説明するように実装される。
【００５１】
図６に示すように、ディープフレームワークアーキテクチャ６００は、インタフェース６１３を有するディープフレームワーク６１１を経由して、前述のように、構成ファイル（例えば、モデル、スキーマ、素性、および交差素性の各構成ファイル６０１〜６０７）およびデータ６０９を受け取ること含む。さらに、ディープフレームワーク６１１は、エスティメータ６１５、チューナフレームワーク６２１とインタフェースで接続されるコア６１９、以下でもう少し説明するが、本番モデル６２３およびレポート６２５を提供する。
【００５２】
より詳細には、図７に示すように、ディープフレームワークに関連する一連の作業７００が提供される。データフレームワークは７０１においてデータを準備し、７０３において構成ファイルを作成する。ディープフレームワークは、データフレームワークから受け取った構成ファイルに基づいた、訓練７０５および評価７０７を有する。訓練誤差率が高いと、データフレームワークへのフィードバックは、より大きなモデル、より長い訓練、および／または新しいモデルアーキテクチャを提供するか、または、７０９で示すように、チューナフレームワークによって自動チューニングを実行することになる。評価誤差率が高いと、データフレームワークへのフィードバックは、より多くのデータを組み入れた修正済み構成ファイルを提供することになり、正規化、および／または新しいモデルアーキテクチャ、あるいは７１１で示すようなチューナフレームワークによる自動チューニングの実行を提供することになる。ディープネットワークによる訓練および評価が完了すると、７１３においてテストフェーズが、７１５においてモデルエクスポートが、７１７においてサービングが実行される。
【００５３】
前述のように、入力済みデータファイルは、任意でＴＳＶフォーマット、ヘッダ無し、およびＴＦＲｅｃｏｒｄで提供される。任意で、実装例は、変換関数を使用することによって、変換するエクスポートレコード数を指定することによって、入力済みＴＳＶファイルがヘッダを含まない場合はスキーマファイルを指定することによって、ＴＳＶとＴＦＲｅｃｏｒｄを変換する方法を含むことができる。
【００５４】
構成ファイルは、カラムＩＤおよびカラム名を含む、スキーマファイルを有するものとして提供され、その配列は入力済みデータファイルと一致しており、カラム名はｓｅｎｓｉｔｉｖｅである。ディープフレームワークは、構成ファイルを、ＴｅｎｓｏｒＦｌｏｗ関数などの関数に変換することができる。より詳細には、カラム名をキーとして使用することによって、構成ファイルは関数に変形するが、パラメータ名および関数名は保持することができる。さらに、一部分を省略する、またはデフォルトに設定することができる。
【００５５】
関数は、生成されて数値参照が付与されると、モデルオプティマイザに関連する素性関数の自動最適化に使用することができ、必要なだけ値を指定することができる。このことは、素性関数アルゴリズムおよびデータフレームワークに関するバケットに関連して、前述されている。
【００５６】
１つまたは複数の基本素性関数を提供することができる。これら素性関数は、データフレームワークに関連して前述したように、素性関数アルゴリズムに基づいてその使用を選択することができる。例えば、ＩＤを備えた分類カラムおよびＩＤと埋め込みカラムを備えた分類カラムの関数は、入力がゼロからバケットの数までの範囲内の整数である場合に使用することができる。ハッシュバケットを備えた分類カラムおよびハッシュバケットと埋め込みカラムを備えた分類カラムの素性関数は、疎な素性であって、ハッシュの使用によってＩＤが設定される場合に使用することができる。語彙リストを備えた分類カラムおよび語彙リストと埋め込みカラムを備えた分類カラムの素性関数は、入力が文字列または整数フォーマットであって、各値を整数ＩＤにマッピングするメモリ内語彙が提供される場合に使用することができる。
【００５７】
語彙ファイルを備えた分類カラムおよび語彙ファイルと埋め込みカラムを備えた分類カラムの素性関数は、入力が文字列または整数フォーマットであって、各値を整数ＩＤにマッピングする語彙ファイルが提供される場合に使用することができる。数値カラムの素性関数が提供され、そのデータは値を持つ数値素性を示す。また、バケット化カラムの素性関数が離散化済み高密な入力を示すデータに提供される。さらに、前述の１つまたは複数の素性関数に関連して、連続した値を扱うために、連続した素性関数を提供することができる。
【００５８】
図８に示すように、モデルファイルについて、モデル８００は、ワイドモデル８０１、ディープモデル８０３、またはワイドモデルとディープモデルの組合せなどの線形であってもよい。モデル設定は、１つまたは複数の分類器クラスおよび１つまたは複数の回帰クラスを有することができる。個別化されたレコメンダシステムの文脈において、ユーザＩＤ、人口統計、オペレーティングシステム、および／またはユーザデバイスないしはユーザ機器などのユーザ情報８０５を提供することができる。同様に、商品ＩＤ、名称、タグ、カテゴリ、発行日、供給業者などの商品情報８０７を提供することができる。
【００５９】
素性関数の作業は前述のように実行することができる。疎な素性について、適宜８０９において作業が実行され、ワイドモデル８０１またはディープモデル８０３、あるいはそれらの組合せは、素性関数の作業の結果に基づいて実行することができる。８１１においては、高密な埋め込みについて、ディープモデル８０３の実装について前述したような素性関数の決定に基づいて、隠れ層８１３として示すように別の作業を実行することができる。さらに、出力部８１５が、サービングモデル向けなどに、提供される。
【００６０】
要約すると、ユーザ情報および商品情報がデータフレームワークに提供され、素性の疎密さについて判定が行われる。素性が十分に高密である場合は、素性関数モデルに関連して前述したように、高密埋め込みが実行され、ディープゼネラリゼーションが実行されて隠れ層を通じて出力を生成する。あるいは、高密な埋め込みがない場合は、ワイドメモライゼーションが実行されて出力を生成する。出力部は、任意のまたはすべての商品についての確率の結果を提供することができる。
【００６１】
ディープフレームワークをサポートするために、１つまたは複数のＡＰＩを提供することができる。図９は、実装例によるＡＰＩ９００を示す図である。例えば、これに限定されないが、ＡＰＩは９０１においてＲＥＳＴの中で提供することができ、ＴｅｎｓｏｒＦｌｏｗサービングコンテナなどのサービングサーバ９０７へのクライアント入力９０５を含み、サービングサーバ９０７はモデルレプリカを生成し、サービス化モデル９１１と同期する。さらにＡＰＩは、モデル構築を通じて訓練９１３を提供し、訓練９１３は実験、アイデア生成、および生成したアイデアに基づいた構成ファイルの修正を含む。さらに、９０３においてＰｙｔｈｏｎ  ＡＰＩ（例えば、ｇＲＰＣ）を提供することができ、これは要素９０７、９１１、および９１３に関連したＲＥＳＴ  ＡＰＩに類似している。また、Ｐｙｔｈｏｎ  ＡＰＩは、クライアントからの情報、前処理ロジック回路９１７と後処理ロジック回路９１９からなるミドルウェア、およびｇＲＰＣクライアント９２１とのＡＰＩインタフェース９１５を備えることができる。
【００６２】
図１０は、多様なデータ密度判定にマッピングすることが可能な様々なデータ型式を表したマッピング１０００、および実装することが可能な関連素性関数を示した実装例の図である。例えば、整数データ型式が１００１に示され、これには、ユーザＩＤ、商品ＩＤなどの識別子、年齢、年、月、日などの数値、および、デバイス、性別、ＯＳなどのカテゴリなどが含まれる。さらに、ブールデータ型式はクリックなどのフラグ型として１００３に示され、タグやクエリなどを含む文字列データは語彙型として１００５に示され、浮動小数点データが温度、重量、高さ、価格などの実数値型として１００７に示される。
【００６３】
１０１７においてデータが密で少量のデータを含むと判定されると、ＩＤを備えた分類カラムの素性関数が１０２７において適用される。１０１５においてデータが密で大量であると判定されると、ＩＤを備えた分類カラムの素性関数および埋め込みが１０２９において適用される。１０１３においてデータが疎で少量であると判定されると、ハッシュバケットを備えた分類カラム素性関数が１０３１において適用される。データが疎で大量であると判定されると、ハッシュバケットを備えた分類カラムの素性関数および埋め込みが１０３３において実行される。データが１００９においてバケット化済みであると判定されると、１０３５においてデータは素性関数としてバケット化済みカラムであると評価される。前述のデータ判定のいずれにも適合しない場合は、１０３７においてデータは数値カラムとして特徴づけられる。
【００６４】
さらに、文字列値のデータ型式については、１０１９においてデータが少量であると判定されると、１０３９において語彙リストを備えた分類カラムおよび語彙ファイルを備えた分類カラムの素性関数が適用される。１０２１においてデータが大量であると判定されると、１０４１において語彙ファイルを備えた分類カラムの素性関数および埋め込みが適用される。１０２３においてデータが超大量であると判定されると、１０４３においてハッシュバケットを備えた分類カラムの素性関数および埋め込みが適用される。
【００６５】
１００７において浮動小数点型であると判定されたデータ型式については、１０２５においてデータはバケット化済みであると判定され、１０４５においてバケット化済みカラムの素性関数が適用される。もしくは、数値カラム１０３７の素性関数が浮動小数点型のデータに適用される。
【００６６】
例えば、これに限定されないが、基準分類器を提供することができ、この基準分類器は、素性値を省略し、各ラベルの平均値を予測するのに提供される単純な基準を確立する。単一ラベル問題については、基準分類器がラベルと同様にクラスについての確率の分布を予測することができる。複数ラベル問題については、基準分類器が各クラスに対して正であるサンプルの割合を予測することができる。
【００６７】
さらに、線形分類器を提供することができ、線形モデルを訓練してインスタンスを複数の可能性のあるクラスのうちの１つに分類する。例えば、これに限定されないが、可能性のあるクラスの数が２の場合、これはバイナリ分類である。さらに、ＤＮＮ分類器を提供することができ、ＤＮＮモデルを訓練してインスタンスを複数の可能性のあるクラスのうちの１つに分類し、それによって、可能性のあるクラスの数が２の場合、これはバイナリ分類になる。また、線形分類器とＤＮＮ分類器の組合せを提供することができ、これにより、前述の線形分類器モデルとＤＮＮ分類器モデルを組み合わせる。さらに、分類器にＡｄａＮｅｔなどのモデルを提供する、または組み合わせることができる。回帰型ニューラルネットワークモデルを訓練してインスタンスを複数のクラスのうちの１つまたは他の分類器（例えば、残差ネットワークを備えたＤＮＮ、または自己注意型ニューラルネットワークを使用した自動素性インタラクションラーニング）に分類するＴｅｎｓｏｒＦｌｏｗ  ＲＮＮモデルが、当業者に理解されよう。
【００６８】
同様に、リグレッサを先述の分類器に提供することができ、素性値を省略して平均値を予測し、見積りを提供するなどが可能である。
【００６９】
モデルは１つまたは複数の関数を有することができる。例えば、これに限定されないが、１つまたは複数の関数は停止関数を有することができ、この停止関数は、メトリックが所定の最大ステップ内で低下しない、所定の最大ステップ内で増加しない、しきい値より高いまたは低いなど、一定の条件下で訓練を停止する。前述の事例に限定されず、当業者に理解されるように、他の関数を含むことができる。
【００７０】
前述のように、データセットおよび構成ファイルを使用して、訓練および評価を実行することができる。この訓練および評価は１つのＣＰＵまたはＧＰＵを有する単一マシン上で作動し、ＧＰＵは利用可能な場合に自動的に使用することができる。さらに、プロセスは複数のデバイスに対して並列化することができ、ＧＰＵまたはＣＰＵの規定の数を指定することができる。処理はバックグラウンドで実行することができ、コンソールログが表示され、任意で処理を停止することができる。
【００７１】
実装例によれば、テストモデルが作動し、予測モデルが作動し、モデルアナライザが続く。次いで、エクスポートがｃｅｒｖｉｃａｌモデルに対して実行され、モデルサーバが起動し、前述のように、ＲＥＳＴおよびＰｙｔｈｏｎ  ＡＰＩを備えたインタフェースの作動が続く。
【００７２】
任意で、ＴｅｎｓｏｒＢｏａｒｄを使用してディープフレームワークを可視化することができる。例えば、ＴｅｎｓｏｒＢｏａｒｄは、実行すると閲覧することができ、訓練データおよび評価データがグラフィカルに表示され、同様に、作業についてグラフが提供され、さらにデータが表示される。
【００７３】
例えば、図１１は、ＴｅｎｓｏｒＢｏａｒｄを採用の実装例に関連したユーザ体験例を示す図である。１１０１においては、ユーザが「ｓｃａｌａｒｓ」を選択する。１１０３においては、訓練データと評価データの比較がグラフ形式で表示されている。１１０５および１１０７においては、訓練データおよび評価データそれぞれのカーブが、損失を表現するように示されている。
【００７４】
図１２は、別のユーザ体験例を示す図である。より詳細には、１２００においては、トレース構造の画像が示され、その画像の中で、ユーザは１２０１で「ｇｒａｐｈｓ」を選択している。１２０３においては、構成要素間の関係性がグラフ表示されている。
【００７５】
図１３は、１３００で、ユーザ体験の別の実装例を提供する。より詳細には、１３０１においてユーザは「ｐｒｏｊｅｃｔｏｒ」を選択し、１３０３においてユーザはカーネルを選択している。その結果、１３０５においてデータ表示が示されている。
【００７６】
ディープフレームワークはモデルアナライザを有する。より詳細には、モデルアナライザはエクスポート、および入力済みデータに関連した各カラムについての正確なレポートを生成する。例えば、これに限定されないが、入力済みデータがユーザＩＤ、オペレーティングシステム、エージェントアドレスを含んでいる場合、これらのカラムそれぞれについて、正確なレポートが生成されることになる。より詳細には、ユーザが所定のモデルに対して高精度を有するか、または低精度を有するかについて、判定を行うことができる。同様に、モデルの精度を改善する必要があり得るデータの類、および不足しているデータについて、判定を行うことができる。
【００７７】
１つの実装例によれば、精度は、２つのモデルについて、ａｎｄｒｏｉｄおよびｉＯＳそれぞれについて判定される。モデルアナライザの出力は、ａｎｄｒｏｉｄおよびｉＯＳそれぞれについて、モデルそれぞれについて、０．０と１．０の間の精度スコアで提供される。見てのとおり、ａｎｄｒｏｉｄは両方のモデルでｉＯＳよりも精度が高かった。さらに、総データ数が、データ量を検証するために、ａｎｄｒｏｉｄおよびｉＯＳの両方について提供される。加えて、出力は、第２のモデルがａｎｄｒｏｉｄおよびｉＯＳオペレーティングシステムの両方について高精度を有することを実証した。
【００７８】
例えば、図１４に示すように、モデル間の比較１４００が、ａｎｄｒｏｉｄとｉＯＳオペレーティングシステムそれぞれについて提供される。１４０１に示すように、モデルＡおよびモデルＢの両方について、ａｎｄｒｏｉｄがｉＯＳとの比較においてより高い精度を示している。さらに、モデルＡとモデルＢの間において、モデルＢがモデルＡとの比較においてより優れた精度を示している。加えて、１４０３はオペレーティングシステムについてのデータ数を示している。
【００７９】
ユーザの年齢がモデルアナライザへの入力として提供され、各モデルについて年齢グループそれぞれの精度判定を行った。第２のモデルがほとんどの年齢グループで高い精度を提供することが理解されよう。さらに、データ数は年齢グループにも提供されている。
【００８０】
例えば、図１５に示すように、モデルＡとモデルＢそれぞれについて、年齢グループをまたがって比較１５００が提供される。１５０１に示すように、モデルＢは、モデルＡとの比較において、ほとんどの年齢グループでより高い精度を有している。さらに、１５０３は、年齢グループについてのデータ数を示している。
【００８１】
加えて、実装例は「ｗｈａｔ  ｉｆ」と呼ぶツールを提供し、このツールにより、コーディングすることなく、詳細にモデルを精査することを可能にする。このツールを実行すると、データとモデル情報、およびモデル型式を入力することができる。例えば、図１６は、そのようなユーザインタフェース例１６００を示す図である。この情報を入力すると、データを視覚的に表示するなど、出力を生成することができる。さらに、データポイントエディタを提供し、素性値を修正して更新済み推論を作動させたり、グランドトルース素性の基準を設定、公正メトリックを比較、あるいは性能を再検討したり、ページ、ユーザＩＤ、タイムスタンプなどの様々な入力済み素性について、数値素性の表示を可視化したりすることができる。例えば、そのような出力を図１７から２０に示す。
【００８２】
チューナフレームワークに関して以下に説明するように、自動チューニングに加えて、手動チューニングオプションを提供することができる。より詳細には、一部の人工知能モデルにおいては、チューナフレームワークの結果が、開発者のカスタマイズ要求に十分に合致しない場合がある。そのような状況、および任意でユーザの同意を必要とする状況においては、チューナフレームワークの出力の後でモデルをカスタマイズすることができる。プロセスを完全自動化するために、任意で、手動チューニングオプションを使用できなくしたり、提供しないようにしたりできる。これにより、潜在的に機微な情報への手動によるアクセスを予防することができる。さらに、実装例における本明細書に記載の自動チューニングのいくつかの態様を組み合わせたハイブリッド型アプローチ、および関連の手動チューニングアプローチを提供することができる。
【００８３】
前述のディープフレームワークの実装例は、サンプルデータセット上で実行することができる。さらに、複数クラス分類、バイナリ分類、および回帰を、１つまたは複数のサンプルデータセット上で実行することができる。図２１は、素性関数の取扱いに関連した実装例を示す図である。より詳細には、２１００に示すように、素性関数の実行、変換関数および分類の作業に関連した複数のシナリオを示す。２１０１においては、ハッシュバケットを備えた分類カラム、語彙リストを備えた分類カラム、語彙ファイルを備えた分類カラム、およびＩＤを備えた分類カラムの素性関数を実行して、出力を提供する。関数が出力上で実行され、データが疎であるとの判定に基づいて、線形分類器および線形リグレッサを実行することができる。これに対して、データが高密であるとの判定の場合は、２１０１に示すように、さらに分類関数を実行することができる。同様に、埋め込みが実行されると、２１０３にスキーマが示される。これに対して、素性関数が数値カラムの場合は、２１０５においてデータが高密であるかどうかの判定が行われ、そこに示すように、分類が実行される。バケット化カラムについては、２１０７において数値カラムが定義され、データが高密であるとの判定が行われ、様々な分類が実行される。
【００８４】
実装例によれば、評価用データの損失が訓練用データの損失を超過する、過剰適合シナリオを識別することができる。このような状態においては、図２２（例えば、評価用データと訓練用データとの間に損失の大きな差があるケース）に示すように、より多くのデータ、正則化を要求することによって構成ファイルを修正する、または新しいモデルアーキテクチャを提供するように、判定が行われる場合がある。
【００８５】
図２３に示すように、訓練用データと評価用データの損失が大きい状態では、過小適合の状態にある可能性がある。このような状態においては、より大きなモデルを提供する、より長時間訓練する、または新しいモデルアーキテクチャを採用するように、構成ファイルが修正される場合がある。
【００８６】
実装例によれば、ディープフレームワークは、素性関数の結果およびデータ型に基づいて、データに関連した統計情報をエクスポートして、データを巧みに作業し、最適な選択のための推奨を提供する。
【００８７】
本明細書で提供する、ディープフレームワークを使用した実装例により、範囲に関する密度を使用して素性の自動選択を可能にする。例えば、これに限定されないが、様々なデータ型について、データ密度が疎、密、高密であるかどうかを考慮に入れる。大きなサンプルサイズを有する疎なデータについては、埋め込みを実行することができる。さらに、密な、または非常に高密なデータについては、どれだけ多くのデータが存在するかを確認するように、判定が行われる場合があり、しきい値に合致しているかどうかに基づいて、埋め込みが実行される。このようなしきい値に合致していない、または低いしきい値が提供されている場合は、ＩＤを使用してデータを分類することができる。
【００８８】
データが十分に高密でない場合は、分類できない可能性がある。さらに、データが疎である場合は、ハッシュを実行してＩＤの表示を回避することができる。この埋め込みモデルを使用して、実装例は、しきい値に合致しているかどうかを判定する。このように、モデルの最適化を提供することができ、チューナフレームワークに関連して説明したように、例えば、ランダムに、またはベイズ最適化に基づくかのどちらかの手法で、モデルの選択を実行することができる。
【００８９】
前述のように、ハイパーパラメータ、入力済みデータの組合せ、およびモデル選択を自動的に最適化するために、チューナフレームワークが提供される。一部の環境では、モデルの最適値を手動で取得することができない。例えば、図２４の２４００に示すように、第１のハイパーパラメータ２４０３と第２のハイパーパラメータ２４０５とオブジェクト２４０７との間に挟まれた解空間２４０１において、手動による最適化により特定領域の結果２４０９を提供することができる。しかし、大域的最大の結果２４１１は、手動による最適化だけでは取得することはできない。さらに、手動による最適化により、オペレータはプライバシー保護のない形式でユーザおよび／または商品のデータを見ることを可能にする場合がある。
【００９０】
したがって、本実施例は、ランダム検索アルゴリズムおよびベイズ最適化アルゴリズムを提供し、ディープフレームワークおよびデータフレームワークの文脈の中で提供される。より詳細には、図２５に示すように、チューナフレームワーク２５００はディープフレームワーク構成ファイル２５０１、ならびにオプティマイザファイル２５０３、および例えば前述のＴＳＶフォーマットの入力済みデータ２５０５を含む。
【００９１】
より詳細には、モデルオプティマイザ２５０７は生成済み構成ファイル２５０９を受け取り、２５１１においてオプティマイザを使用して生成済み構成ファイルを備えたモデルの評価を実行し、２５１３においてその結果を解析し、２５１５において出力したレポートをディープフレームワーク構成２５１７に対してレポート形式２５１９で提供する。
【００９２】
前述のように、構成ファイルがデータフレームワークによって生成され、編集して、または編集せずに、チューナフレームワークに直接提供されてもよい。構成ファイルの中で、リグレッサモデルについてはａｖｅｒａｇｅ＿ｌｏｓｓ（ＭＩＮＩＭＩＺＥ）、分類器モデルについてはａｃｃｕｒａｃｙ（ＭＡＸＩＭＩＺＥ）のように、メトリックタグを指定する。さらに、ランダム検索またはベイズ最適化のいずれかのアルゴリズム、およびモデルパラメータの許容最大数を指定する必要がある。
【００９３】
実装例によれば、ランダム検索アルゴリズムは、図２６の２６００に示すように、以下のように実行することができる。第１の作業２６０１においては、入力済み素性が最適化され、この作業は、その試行の回数が入力済み素性の試行の回数未満である限り、反復して実行される。第２の作業２６０７においては、ハイパーパラメータ最適化２６０３およびモデル自動選択２６０５が実行される。これらの作業は、その試行の回数がモデルの試行の回数未満である限り、実行される。２６０９において、第１の作業および第２の作業がループで実行され、そのループの回数がランダム検索を実行するのに必要なループ回数未満である限り、実行される。
【００９４】
ランダム検索実行モデルが実行されると、その結果が「ｆａｌｓｅ」の場合、２６１１に示すように、第１の作業が実行され、その後に第２の作業が実行される。これに対し、結果が「ｔｒｕｅ」の場合は、この作業は取り消され、２６１３に示すように、第２の作業が実行され、その後に第１の作業が実行される。
【００９５】
第１の作業に関連して、これは入力済み素性の作業の設定であるが、入力済み素性の最適構成を自動的に抽出するために、実装例が以下のように実行される。試行回数が立証され、前述のように素性関数を生成するために素性カラム関数型を「ｔｒｕｅ」に設定することによって最適化が可能になると、ランダム検索を実行する関数が最良の結果に基づいて入力済み素性に「ｔｒｕｅ」を設定しているかどうかについて判定を行う。この場合は、一般的なアルゴリズムを使用して入力済み関数の組合せを最適化する。任意で、最適化の処理中に各作業において使用される入力済み素性のリストを提供することができ、同様に、次のハイパーパラメータ最適化プロセスに受け継がれる試行ごとの反復の数および結果の数を提供することができる。結果として、入力済み素性の自動最適化が実行される。
【００９６】
第２の作業に関して、ハイパーパラメータ最適化が提供される。例えば、一定のパラメータの値は、試行回数設定、および「ベイズ最適化」に設定されたアルゴリズムに基づいて、最適化することができる。さらに、試行および反復の回数も設定することができる。次いで、モデルオプティマイザ構成ファイルが検査され、必要に応じて編集される。チューナフレームワークの前回の結果が取り除かれ、続いて、構成ファイルおよびデータフレームワークによって提供されたデータを使用して、データセットを備えたチューナフレームワークが実行される。
【００９７】
チューナフレームワークは、ＣＰＵまたはＧＰＵを備えた単一マシンの単一デバイス上で、またはＣＰＵをまたがって自動的に使用されるＧＰＵを備えた単一マシン上の複数デバイス上で、実行することができる。チューナフレームワークの処理はバックグラウンドで実行される。
【００９８】
１つのマシン上の複数デバイスを使用して、いくつかのＣＰＵまたはＧＰＵの並列化を提供することができる。さらに、チューナフレームワークは、複数マシン上の複数デバイスで作動させることができる。任意で、チューナフレームワークは、一般的に、所定の１つのマシンまたは複数のマシン上でＣＰＵをまたがって自動的にＧＰＵを使用するように選択することができる。より詳細には、チューナフレームワークの実行にはサーバリストファイルを修正し、複数マシン上の複数デバイスを使用してチューナフレームワークを実行することになる。
【００９９】
本明細書で説明するように、チューナフレームワークは、人工知能モデルを自動的にチューニングし作成する。ライブラリとしてディープフレームワークを使用し、そのディープフレームワークの実行に基づいて、チューナフレームワークは、更新済みモデル、またはモデルへの推奨される変更を提供する。任意で、ユーザにレポートを提供することができ、そのレポートは、変更する必要のある、間違った、見逃した、あるいは不適当なデータの表示を含み、そのようなデータを変更する機会をユーザに提供する。このオプションを使用して、フィードバックする機会を提供し、モデルをさらに洗練させることができる。また、ディープフレームワークおよびチューナフレームワークに含まれるべきではないデータを除去することによって、性能をさらに改善することができる。
【０１００】
本明細書に記載の実装例は、入力オプティマイザおよびハイパーパラメータオプティマイザを有し、これらはチューナフレームワークに実装して最適モデルの判定を提供する。入力オプティマイザは、ユーザによって提供されたＲＡＷデータに応じて最適化を提供し、提供されたＲＡＷデータの最適な組み合わせを判定する。
【０１０１】
実装例によれば、チューナフレームワークのオプティマイザは入力最適化を提供する。対照的に、従来技術の手法は、入力最適化を提供しない。代わりに、従来技術の手法は、すべてのデータを含め、すべての情報をモデルに集約しようと試みるが、データを分割した後に入力最適化を提供しようとしない。その代わりに、従来技術の手法は、入力済みデータを最大化することを追求する。しかし、実装例においては、チューナフレームワークが素性の最適な組み合わせを判定して選択し、これによって、重要な情報およびパラメータを選択し、ノイズを除去する。例えば、本明細書に記載の遺伝的アルゴリズムを採用して入力を最適化することができる。さらに、本明細書でも説明するように、ランダムモデルおよびベイズモデルのうちの片方または両方がハイパーパラメータ最適化に採用されている。
【０１０２】
さらに、実装例は反復手法を提供する。本明細書で説明するように、反復手法は入力最適化に関連して提供され、また、他と関係なく、反復手法はハイパーパラメータ最適化にも関連して提供される。さらに、入力最適化およびハイパーパラメータ最適化は反復ループの中に含まれている。発明者は、入力最適化およびハイパーパラメータ最適化を反復ループに追加することによって、重要で望外な結果を提供することができる、と結論づけている。
【０１０３】
チューナフレームワークの実行が完了すると、処理結果の確認が行われる。より詳細には、リアルタイムに、または停止点に基づいて、規定の最上位の数値の結果を提供し、それによって、ランク付けされた結果を再検討することができる。それの代わりに、ＴｅｎｓｏｒＢｏａｒｄなどの表示ツールを使用してすべての結果を表示し、例えば、正確な損失または平均の損失を表示することができる。
【０１０４】
最終結果の確認を行うことができ、その結果のログを入力済み素性情報とともにエクスポートすることができる。最終結果を使用して、最良の結果を使用したモデルの訓練を行うことができ、それによって、構成ファイルを修正して訓練を再度作動させることができる。
【０１０５】
実施例によれば、図２７に示すように、モデルオプティマイザを、複数分類の問題型の「ｍａｐ  ｌｉｆｅ  ｍａｇａｚｉｎｅ」に関連したデータ上で作動させることができる。２７０１および２７０３を見ると分かるが、２つの異なる処理モデルを使用し、ｐｒｅｃｉｓｉｏｎおよびｒｅｃａｌｌそれぞれが最適化の前と後で増加している。さらに、素性およびモデルは、最適化の前後において、最適化されているように理解されよう。
【０１０６】
図２８に示すように、２８０１において代替のハードウェア構成を使用し、処理速度が実質的に増大している。これは、精度を計算するのに必要な時間数で示すことができる。この新しいバージョンは、図２９に示すように、並行分散処理の性能が処理時間の点で実質的に性能向上を備えていることを示すことができる。
【０１０７】
確度または可能性に基づいて、出力を提供することができる。製品またはサービスを購入するために検索するなど、オンライン検索に没頭しているユーザの実装例においては、商品がユーザによって購入される確率に基づいて、検索結果をランク付けまたは整列させることができる。前述の実装例は自動的にサービスを提供するため、オペレータは、ユーザに関連した情報を手動で再検討する必要はなくてよい。したがって、本実装例はプライバシー保護された手法を提供し、人工知能技術を使用して、例えば、オンライン検索におけるランク付け出力を提供することができる。
【０１０８】
例えば、１つの電子商取引モデルによれば、入力済みデータは、ユーザＩＤ、人口統計情報、オペレーティングシステム、検索に使用されるデバイスなどを含むユーザ情報である。さらに、入力済みデータは、商品ＩＤ、名称、型式、メタデータ、カテゴリ、発行日、供給業者、企業名などの商品情報も含み、前述のデータは、データフレームワーク、ディープネットワーク、およびチューナフレームワークへの入力として使用することができる。モデルの出力は、購入などのユーザおよび商品に関連したイベントの発生の確率である。前述のように、埋め込みを使用してデータをベクトル化し、データ間の類似性を評価する。
【０１０９】
さらに、前述の実装例は候補素性も提供する。例えば、これに限定されないが、統計および候補素性に加えて、エクスポート候補および関数の型式を自動形式で提供することができる。モデルについての最良の関数からの最良の結果を提供し、使用するパラメータおよび入力を生成する。実装例は、基本モデル、およびモデルサイズ、メトリック、平均損失などのログからの抽出情報を受け取る。結果として、ユーザは、データフレームワーク、ディープフレームワーク、およびチューナフレームワークによって提供された情報に基づいて、最適なモデルを理解することができる。
【０１１０】
モデルを使用して、例えば、ユーザが商品を購入する可能性を予測することができ、その可能性のランク付けに基づいて、検索を要求するユーザ向けに優先付けされた領域において商品リストまたは推奨を提供することができる。それの代わりに、所定の商品について、その商品の販売業者向けに、その商品を購入する可能性があり得るユーザについてランク付けを提供することができる。例えば、任意でカテゴリによって分類された、多種の製品を提示するウェブサイトについて、本実装例は、購入の可能性に基づいた商品の分類されたランク付けされたユーザ向け出力、あるいは、ユーザが商品を購入する可能性に基づいたユーザのランク付けされた販売業者向け出力を提供することができる。したがって、推奨は、検索を実行するユーザに対して自動的に個別化される。モデルはユーザの嗜好やユーザの特徴を自動的に学習し、その学習した情報を適用してユーザが１つまたは複数の商品を購入する可能性を計算する。
【０１１１】
したがって、実装例は、プライバシー保護に関連した利点について、少なくとも１つまたは複数の利益を提供する。例えば、これに限定されないが、データが提供され、そのデータをアクセス、再検討または解析に人の介在を一切必要とせずに、処理および出力されるように、実装例を実行することができる。さらに、実装例は、何人も処理を通じてデータにアクセスすることができないように、制限を提供することもできる。
【０１１２】
任意で、実装例との組合せにおいて、匿名化、疑似匿名化、ハッシュまたは他のプライバシー保護技術によって、セキュリティをさらにユーザデータに提供することができる。モデルへの外部アクセスが必要である限りにおいては、そのようなアクセスは前述のようにＡＰＩを通じてのみ可能である。そのような状況においては、ユーザ、または当該サービスの場合のみ最終結果にアクセスすることができ、データに関連したプライバシー関連情報にアクセスすることはできない。
【０１１３】
当業者には理解されるように、データは任意のデータであると考えられるが、ある実装例によれば、データはユーザ行動データを有することができる。例えば、これに限定されないが、ユーザ行動データはユーザの人口統計に関する情報を含む可能性があり、この情報はデータフレームワークに入力される他のデータと組み合わされている場合がある。
【０１１４】
より詳細には、人工知能モデル、特にディープフレームワークに関連して、訓練および推論を実行して予測を生成することができる。前述の実装例は、前述の訓練の結果に応じて、製品に関連したユーザ行動の予測を生成するのに使用される推論を対象にしている。
【０１１５】
図３０は、いくつかの実装例での使用に適したコンピュータデバイス３００５を備えたコンピューティング環境例３０００を示す図である。コンピューティング環境３０００の中のコンピューティングデバイス３００５は、１つまたは複数の処理部、コア、またはプロセッサ３０１０、メモリ３０１５（例えば、ＲＡＭ、ＲＯＭなど）、内部ストレージ３０２０（例えば、磁気、光学式、半導体ストレージ、および／または有機体）、および／またはＩ／Ｏインタフェース３０２５を有することができ、これらのいずれもが通信メカニズムまたはバス３０３０と結合して情報を伝達する、またはコンピューティングデバイス３００５の中に組み込むことができる。
【０１１６】
コンピューティングデバイス３００５は入力／インタフェース３０３５および出力デバイス／インタフェース３０４０と通信可能に結合することができる。入力／インタフェース３０３５および出力デバイス／インタフェース３０４０のいずれか片方または両方が有線インタフェースまたは無線インタフェースであることができ、取り外し可能であることができる。入力／インタフェース３０３５は、任意のデバイス、構成部品、センサ、あるいは物理または仮想のインタフェースを含んでもよく、これらは入力を提供するのに使用することができる（例えば、ボタン、タッチスクリーンインタフェース、キーボード、ポインタ／カーソル制御、マイク、カメラ、点字、人感センサ、光学読取機など）。
【０１１７】
出力デバイス／インタフェース３０４０は、ディスプレイ、テレビ、モニタ、プリンタ、スピーカ、点字などを含んでもよい。いくつかの実装例では、入力／インタフェース３０３５（例えば、ユーザインタフェース）および出力デバイス／インタフェース３０４０は、コンピューティングデバイス３００５に組み込む、または物理的に結合することができる。他の実施例では、他のコンピューティングデバイスが、コンピューティングデバイス３００５用の入力／インタフェース３０３５および出力デバイス／インタフェース３０４０として機能する、またはそれらの機能を提供することできる。
【０１１８】
コンピューティングデバイス３００５の実施例は、これに限定されないが、高度なモバイルデバイス（例えば、スマートフォン、車または他のマシンに搭載のデバイス、人または動物が携帯するデバイスなど）、モバイルデバイス（例えば、タブレット、ノートパソコン、ラップトップパソコン、パーソナルコンピュータ、携帯型テレビ、ラジオなど）、および移動性を考慮して設計されていないデバイス（例えば、デスクトップパソコン、サーバデバイス、他のコンピュータ、情報ｋｉｏｓｋ、１つまたは複数のプロセッサを内蔵または結合したテレビ、ラジオなど）を含んでもよい。
【０１１９】
コンピューティングデバイス３００５は、同一または異なる構成の１つまたは複数のコンピューティングデバイスを含み、任意の数のネットワーク化された構成部品、デバイス、およびシステムと通信するために、外部ストレージ３０４５およびネットワーク３０５０と（例えば、Ｉ／Ｏインタフェース３０２５を介して）通信可能に結合することができる。コンピューティングデバイス３００５または任意の接続されたコンピューティングデバイスは、サーバ、クライアント、シンサーバ、一般的なマシン、特定用途マシン、または別の標識のものとして機能するか、それらのサービスを提供するか、またはそれらと称されることができる。例えば、これに限定されないが、ネットワーク３０５０はブロックチェーンネットワークおよび／またはクラウドを含むことができる。
【０１２０】
Ｉ／Ｏインタフェース３０２５は、これに限定されないが、任意の通信、Ｉ／Ｏプロトコル、または通信標準（例えば、Ｅｔｈｅｒｎｅｔ、８０２．１１ｘｓ、ユニバーサルシステムバス（ＵＳＢ）、ＷｉＭＡＸ、モデム、携帯電話ネットワークプロトコルなど）を使用する有線および／または無線インタフェースを有し、コンピューティング環境３０００の中の、少なくともすべての接続された構成部品、デバイス、およびネットワークと情報を伝達することができる。ネットワーク３０５０は、任意のネットワークまたはネットワークの組合せ（例えば、インターネット、ローカルエリアネットワーク、ワイドエリアネットワーク、電話ネットワーク、携帯電話ネットワーク、衛星ネットワークなど）であることができる。
【０１２１】
コンピューティングデバイス３００５は、一時的媒体および非一時的媒体を含み、コンピュータ利用可能媒体およびコンピュータ可読媒体を使用する、および／または、それらを使用して通信することができる。一時的媒体は、伝送媒体（例えば、メタルケーブル、光ファイバ）、信号、搬送波などを含む。非一時的媒体は、磁気媒体（例えば、ディスクおよびテープ）、光学媒体（例えば、ＣＤ  ＲＯＭ、デジタルビデオディスク、ブルーレイディスク）、半導体媒体（例えば、ＲＡＭ、ＲＯＭ、フラッシュメモリ、半導体ストレージ）、および他の非一時的ストレージまたはメモリを含む。
【０１２２】
コンピューティングデバイス３００５を使用して、いくつかのコンピューティング環境例において、技術、方法、アプリケーション、プロセス、またはコンピュータ実行可能命令を実装することができる。コンピュータ実行可能命令を一時的媒体から受け取り、非一時的媒体に格納し、その非一時的媒体から検索することができる。実行可能命令は、任意のプログラミング言語、スクリプト言語、およびマシン語（例えば、Ｃ、Ｃ＋＋、Ｃ＃、Ｊａｖａ、Ｖｉｓｕａｌ  Ｂａｓｉｃ、Ｐｙｔｈｏｎ、Ｐｅｒｌ、ＪａｖａＳｃｒｉｐｔなど）のうちの１つまたは複数から作り出すことができる。
【０１２３】
プロセッサ（複数可）３０１０は、ネイティブまたは仮想環境において、任意のオペレーティングシステム（ＯＳ）（図示せず）の下で実行することができる。１つまたは複数のアプリケーションを配置することができ、ロジック部３０５５、アプリケーションプログラミングインタフェース（ＡＰＩ）部３０６０、入力部３０６５、出力部３０７０、データ処理部３０７５、ディープラーニングモデリング部３０８０、自動チューニング部３０８５、および様々な部分が、ＯＳを使用し、他のアプリケーション（図示せず）を使用して、相互に通信するための部分間通信メカニズム３０９５を含む。
【０１２４】
例えば、データ処理部３０７５、ディープラーニングモデリング部３０８０、および自動チューニング部３０８５は、前述の構造に関連して前に示した１つまたは複数のプロセスを実装することができる。記載した部分および部品は、デザイン、機能、構成、または実装において一様である必要はなく、記載のものに限定されない。
【０１２５】
いくつかの実装例においては、情報または実行命令をＡＰＩ部３０６０から受け取ると、１つまたは複数の他の部分（例えば、ロジック部３０５５、入力部３０６５、データ処理部３０７５、ディープラーニングモデリング部３０８０、および自動チューニング部３０８５）と通信することができる。
【０１２６】
例えば、データ処理部３０７５は、入力情報を受け取って処理し、データの解析、変換、および検証を実行し、データを分割することができる。データ処理部３０７５の出力は構成ファイル、およびテスト用、評価用、訓練用などに分割されたデータを提供することができる。そのデータはディープラーニングモデリング部３０８０に提供され、ディープラーニングモデリング部３０８０は訓練を実行して、モデルを構築し、そのモデルおよびスケール訓練の性能、続いて最終的な実際のモデルのサービングを検証する。さらに、自動チューニング部３０８５は、データ処理部３０７５およびディープラーニングモデリング部３０８０から取得した情報に基づき、入力およびハイパーパラメータの自動最適化を提供することができる。
【０１２７】
場合によっては、ロジック部３０５５は、前述のいくつかの実装例において、部分間の情報フローを制御し、ＡＰＩ部３０６０、入力部３０６５、データ処理部３０７５、ディープラーニングモデリング部３０８０、および自動チューニング部３０８５によって提供されるサービスを管理するように構成することができる。例えば、１つまたは複数のプロセスまたは実装のフローは、ロジック部３０５５単独またはＡＰＩ部３０６０と連携して制御することができる。
【０１２８】
図３１は、いくつかの実装例に適した環境例を示す図である。環境３１００は、デバイス３１０５〜３１４５を含み、それぞれは、例えば、ネットワーク３１６０（例えば、有線および／または無線接続）を介して少なくとも１つの他のデバイスと通信可能に接続される。いくつかのデバイスは、１つまたは複数のストレージデバイス３１３０および３１４５と通信可能に接続することができる。
【０１２９】
１つまたは複数のデバイス３１０５〜３１４５の例は、それぞれ図３０に記載のコンピューティングデバイス３００５であってもよい。デバイス３１０５〜３１４５は、これに限定されないが、モニタと関連ウェブカメラを有するコンピュータ３１０５（例えば、ラップトップコンピューティングデバイス）、モバイルデバイス３１１０（例えば、スマートフォンまたはタブレット）、テレビ３１１５、車両に関連したデバイス３１２０、サーバコンピュータ３１２５、コンピューティングデバイス３１３５〜３１４０、ストレージデバイス３１３０および３１４５を含んでもよい。
【０１３０】
いくつかの実装においては、デバイス３１０５〜３１２０は、ブロードキャストを遠隔で受け取ることができるユーザに関連したユーザデバイスであると考えることができ、そのユーザに設定およびインタフェースを提供することができる。デバイス３１２５〜３１４５は、サービス提供者に関連したデバイス（例えば、ドキュメントテンプレート、第三者アプリケーションなどと関連した情報を格納し処理するのに使用される）であってもよい。
【０１３１】
前述の実装例は、多様な利益および利点を様々な主体に提供することができる。
【０１３２】
実装例においては、エンドユーザは情報をサービスに提供することができる。一方、サービスは、推奨をユーザに提供することができる。従来技術においては、コンピュータプログラマ、データアナリストなどの手動の介在があることから、ユーザのプライバシー情報は、モデル最適化を実行するため、それらの主体の目にさらされる可能性がある。しかし、本明細書で説明するように、実装例は、そのような仲介者または主体の介在を必要としない自動化手法を提供する。したがって、ユーザの個人的、プライバシー情報は、他のユーザ、開発者などから制限することができる。したがって、プライバシー保護の利益が実装例にある。
【０１３３】
本実装例を採用する販売業者は、人工知能手法の利益を実現するために、顧客の機微なまたは個人の情報をプラットフォームに提供することを要しない可能性がある。その代わりに、本明細書に記載する自動化手法を使用して、サービスプロバイダなどの販売業者は、最適化されたモデル情報を取得すると同時に、ユーザのプライバシーを保護することを可能にすることができる。さらに、より少ないデータを必要とするとの判定が入力最適化で提供されると、エンドユーザのプライバシーはさらに保護される。
【０１３４】
同様に、プラットフォームまたは開発者も多様な利益および利点を実現することができる。例えば、これに限定されないが、モデルは追加の手動のコーディングまたは情報の入力を必要とせずに最適化することができる。プラットフォームまたは開発者に課せられた要求事項は、実装するオプションを選択することに限定することができる。開発者が、ユーザの許可を得て、手動によるモデルの再検討や修正を必要とし、パラメータを理解して入力済みデータを変更したい場合は、前述のｗｈａｔ  ｉｆツールにより、ユーザがそのような手法を講じることを可能にする。例えば、ユーザの許可を得て、開発者は入力済みデータを変更し、より容易に結果を取得することを可能にすることができるが、その入力済みデータは、推論および最適化に基づき、モデルに関連したチューナフレームワーク出力に基づいて変更される。
【０１３５】
加えて、モバイルデバイスの製造元、サーバの製造元、またはデータストレージおよび処理に関連した主体などのユーザ機器製造業者も、多様な利益および利点を実現することができる。前述のように、エンドユーザデータはプライバシーを保護する方法で扱われ、チューナフレームワークは最適化を提供し、この最適化は、デバイスによって提供される必要のある情報を削減するように、データ入力またはパラメータなどのデータを制限することができる。例えば、ある場合には、ＧＰＳに基づいたユーザ位置が非最適な入力またはパラメータであると判定されると、更新されたモデルは、そのようなエンドユーザデバイスからの情報を要求または収集しない場合がある。結果的に、取得され、感知され、収集され、エンドユーザデバイスの中に潜在的に格納されている情報は、モデルによる使用から保護することができる。さらに、データフレームワーク、ディープフレームワーク、およびチューナフレームワークの自動化により、プラットフォームにおける主体、開発者、アナリスト、販売業者または相当する者が、ユーザの潜在的に機微で個人的な情報にアクセスする必要はない。したがって、これら主体に関連したデバイスは、ユーザによってアクセスされることを必要とせず、プライバシー保護をさらに獲得することができる。
【０１３６】
１つの実装例においては、オンライン小売業者、製造業者、流通業者などのオンライン小売に関連した主体は、製品および／またはサービスを販売促進する方法を決定するために、実装例を使用することができる。そのような状況においては、実装例は、ツール、技術、システム、および本明細書に記載の手法を使用して、ユーザを動かして製品を購入させる可能性が最も高い広告についての推奨をオンライン小売業者に提供することができる。逆に、ユーザがオンラインウェブサイトにアクセスし、閲覧し、検索し、またはオンラインショッピングを行う場合に、実装例は、ユーザは必要とする可能性が最も高いものに基づいて、ユーザに推奨を提供することができる。さらに、実装例は、金融上の予測に関連するものなどのサービス、様々なサービスや製品の販売の促進、また、買うべきものの推奨、それを買ったかどうか、と関連付けることもできる。
【０１３７】
前述の実装例は、様々な利益および利点を有することができる。本明細書に示すように、正確性、および相対的作動特性は、実装例を使用することによって、従来技術の手法以上に、実質的に改善することができる。
【０１３８】
図３２に示すように、グラフィック表示３２００が提供され、金融モデルのバイナリ分類に関連して、従来技術の手法と実装例との相違を示す。より詳細には、３２０１において従来技術の手法が破線で示され、３２０３において実装例による手法が示されている。この実装例によれば、正確に同一データについて、従来技術との比較において実装例を使用して、精度について７．６２％増加し、相対的作動特性が２．７８％増加していることが理解されよう。
【０１３９】
さらに、不必要な入力済みデータ／パラメータを削減するために実装例を使用して、計算コストを劇的に低減することができる。処理速度を実質的に高める、最適化によってモデル上でデータを処理する時間を低減することができる、という点で、実装例の手法はさらに利益を提供することができる。したがって、精度を犠牲にすることなく、従来技術の手法と比較して、モデルがより少ない処理を必要とし、ハードウェアシステムについて利益がある。
【０１４０】
本実装例の別の利点または利益は、フレームワークにより規模の調整が容易であることがある。例えば、これに限定されないが、チューナフレームワークは、前述のように、データ、入力、パラメータなどの量を低減することができる最適化を提供する。この最適化の結果、従来技術の手法に比較して、計算、格納、通信、または他の必要なリソースの量について増加することなく、規模の追加を行うことができる。
【０１４１】
さらに、実装例によれば、前述のように、チューナフームワークは人工知能モデルの最適化を提供する。例えば、これに限定されないが、モデルは、個別の作業タイプついて最適化し、行動タイプ（例えば、商用）に応じてテンプレートとして提供することができる。例えば、これに限定されないが、食料雑貨購入のオンラインと、自動車購入のオンライン、新規住宅ローン周旋のオンラインとの相違はかなり大きく、したがって、事前の最適化に基づいて、様々なモデルをテンプレートとして提供することができる。対照的に、従来技術の手法は、そのようなモデルのテンプレートを提供しない。これは、モデルは作成するが、チューナフレームワークによって提供されるような、実装例の最適化は含まないからである。
【０１４２】
さらに別の利益および利点として、開発者は使い易さを体験することができる。例えば、これに限定されないが、これらの実装例に記載されたフレームワークのユーザは、自分の作業によって何らコードを作成する必要がなく、多くても、開発者はフィードバックを再検討し、オプションなどを選択する必要があるだけである。自動チューニングを提供するこの手法の結果として、プライバシーは、前述のように、保護される。
【０１４３】
新しい実装例を示し説明してきたが、これらの実装例を提供して本明細書に記載の主題を当領域に精通する人たちに伝達するものである。本明細書に記載の主題はここに記載の実装例に限定することなく様々な形式で実装することができることは理解されよう。本明細書に記載の主題は、具体的に定義または記載した事項を使用せずに、または記載されていない別の部品または事項を使用して実践することができる。付属の請求事項およびその相当物で定義するように、本明細書に記載の主題から逸脱しない限り、これらの実装例の中で変更を行うことができることが、当領域に精通する人たちに理解されよう。
【０１４４】
［実施形態の一例］
以下、上述した各種処理を実現する生成装置、生成方法および生成プログラムの一例について説明する。
【０１４５】
以下の実施形態に係る情報提供装置は、以下の生成処理を実行する。まず、情報提供装置は、モデルの学習に用いる学習データを取得する。そして、情報提供装置は、学習データが有する特徴に基いて、モデルの生成指標を生成する。例えば、情報提供装置は、学習データが有する統計的な特徴に基づいて、モデルを生成する際の指標、すなわち、生成するモデルのレシピとなる生成指標を生成する。
【０１４６】
以下に、本願に係る生成装置、生成方法、および生成プログラムを実施するための形態（以下、「実施形態」と記載する。）について図面を参照しつつ詳細に説明する。なお、この実施形態により本願に係る生成装置、生成方法、および生成プログラムが限定されるものではない。また、以下の各実施形態において同一の部位には同一の符号を付し、重複する説明は省略される。
【０１４７】
〔１．情報提供システムの構成〕
まず、図３３を用いて、生成装置の一例である情報提供装置１０を有する情報提供システムの構成について説明する。図３３は、実施形態に係る情報提供システムの一例を示す図である。図３３に示すように、情報提供システム１は、情報提供装置１０、モデル生成サーバ２、および端末装置３を有する。なお、配信システム１は、複数のモデル生成サーバ２や複数の端末装置３を有していてもよい。また、情報提供装置１０と、モデル生成サーバ２とは、同一のサーバ装置やクラウドシステム等により実現されてもよい。ここで、情報提供装置１０、モデル生成サーバ２、および端末装置３は、ネットワークＮ（例えば、図３６参照）を介して有線または無線により通信可能に接続される。
【０１４８】
情報提供装置１０は、モデルの生成における指標（すなわち、モデルのレシピ）である生成指標を生成する指標生成処理と、生成指標に従ってモデルを生成するモデル生成処理とを実行し、生成した生成指標およびモデルを提供する情報処理装置であり、例えば、サーバ装置やクラウドシステム等により実現される。
【０１４９】
モデル生成サーバ２は、学習データが有する特徴を学習させたモデルを生成する生成装置であり、例えば、サーバ装置やクラウドシステム等により実現される。例えば、モデル生成サーバ２は、モデルの生成指標として、生成するモデルの種別や行動、どのように学習データの特徴を学習させるかといったコンフィグファイルを受付けると、受付けたコンフィグファイルに従って、モデルの自動生成を行う。なお、モデル生成サーバ２は、任意のモデル学習手法を用いて、モデルの学習を行ってもよい。また、例えば、モデル生成サーバ２は、ＡｕｔｏＭＬといった各種既存のサービスであってもよい。
【０１５０】
端末装置３は、利用者Ｕによって利用される端末装置であり、例えば、ＰＣ（Personal  Computer）やサーバ装置等により実現される。例えば、端末装置３は、情報提供装置１０とのやり取りを介して、モデルの生成指標を生成させ、生成させた生成指標に従ってモデル生成サーバ２が生成したモデルを取得する。
【０１５１】
〔２．情報提供装置１０が実行する処理の概要〕
まず、情報提供装置１０が実行する処理の概要について説明する。まず、情報提供装置１０は、端末装置３からモデルに特徴を学習させる学習データの指摘を受付ける（ステップＳ１）。例えば、情報提供装置１０は、学習に用いる各種の学習データを所定の記憶装置に記憶させており、利用者Ｕが学習データに指定する学習データの指摘を受付ける。なお、情報提供装置１０は、例えば、端末装置３や各種外部のサーバから、学習に用いる学習データを取得してもよい。
【０１５２】
ここで、学習データとは、任意のデータが採用可能である。例えば、情報提供装置１０は、各利用者の位置の履歴や各利用者が閲覧したウェブコンテンツの履歴、各利用者による購買履歴や検索クエリの履歴等、利用者に関する各種の情報を学習データとしてもよい。また、情報提供装置１０は、利用者のデモグラフィック属性やサイコグラフィック属性等を学習データとしてもよい。また、情報提供装置１０は、配信対象となる各種ウェブコンテンツの種別や内容、作成者等のメタデータ等を学習データとしてもよい。
【０１５３】
このような場合、情報提供装置１０は、学習に用いる学習データの統計的な情報に基づいて、生成指標の候補を生成する（ステップＳ２）。例えば、情報提供装置１０は、学習データに含まれる値の特徴等に基づいて、どのようなモデルに対し、どのような学習手法により学習を行えばよいかを示す生成指標の候補を生成する。換言すると、情報提供装置１０は、学習データの特徴を精度よく学習可能なモデルやモデルに精度よく特徴を学習させるための学習手法を生成指標として生成する。すなわち、情報提供装置１０は、学習手法の最適化を行う。なお、どのような学習データが選択された場合に、どのような内容の生成指標を生成するかについては、後述する。
【０１５４】
続いて、情報提供装置１０は、生成指標の候補を端末装置３に対して提供する（ステップＳ３）。このような場合、利用者Ｕは、生成指標の候補を嗜好や経験則等に応じて修正する（ステップＳ４）。そして、情報提供装置１０各生成指標の候補と学習データとをモデル生成サーバ２に提供する（ステップＳ５）。
【０１５５】
一方、モデル生成サーバ２は、生成指標ごとに、モデルの生成を行う（ステップＳ６）。例えば、モデル生成サーバ２は、生成指標が示す構造を有するモデルに対し、生成指標が示す学習手法により学習データが有する特徴を学習させる。そして、モデル生成サーバ２は、生成したモデルを情報提供装置１０に提供する（ステップＳ７）。
【０１５６】
ここで、モデル生成サーバ２によって生成された各モデルは、それぞれ生成指標の違いに由来する精度の違いが生じると考えられる。そこで、情報提供装置１０は、各モデルの精度に基づいて、遺伝的アルゴリズムにより新たな生成指標を生成し（ステップＳ８）、新たに生成した生成指標を用いたモデルの生成を繰り返し実行する（ステップＳ９）。
【０１５７】
例えば、情報提供装置１０は、学習データを評価用データと学習用データとに分割し、学習用データが有する特徴を学習させたモデルであって、それぞれ異なる生成指標に従って生成された複数のモデルを取得する。例えば、情報提供装置１０は、１０個の生成指標を生成し、生成した１０個の生成指標と、学習用データとを用いて、１０個のモデルを生成する。このような場合、情報提供装置１０は、評価用データを用いて、１０個のモデルそれぞれの精度を測定する。
【０１５８】
続いて、情報提供装置１０は、１０個のモデルのうち、精度が高い方から順に所定の数のモデル（例えば、５個）のモデルを選択する。そして、情報提供装置１０は、選択した５個のモデルを生成した際に採用された生成指標から、新たな生成指標を生成する。例えば、情報提供装置１０は、各生成指標を遺伝的アルゴリズムの個体と見做し、各生成指標が示すモデルの種別、モデルの構造、各種の学習手法（すなわち、生成指標が示す各種の指標）を遺伝的アルゴリズムにおける遺伝子と見做す。そして、情報提供装置１０は、遺伝子の交叉を行う個体の選択および遺伝子の交叉を行うことで、次世代の生成指標を１０個新たに生成する。なお、情報提供装置１０は、遺伝子の交叉を行う際に、突然変異を考慮してもよい。また、情報提供装置１０は、二点交叉、多点交叉、一様交叉、交叉対象となる遺伝子のランダムな選択を行ってもよい。また、情報提供装置１０は、例えば、モデルの精度が高い個体の遺伝子程、次世代の個体に引き継がれるように、交叉を行う際の交叉率を調整してもよい。
【０１５９】
また、情報提供装置１０は、次世代の生成指標を用いて、再度新たな１０個のモデルを生成する。そして、情報提供装置１０は、新たな１０個のモデルの精度に基づいて、上述した遺伝的アルゴリズムによる新たな生成指標の生成を行う。このような処理を繰り返し実行することで、情報提供装置１０は、生成指標を学習データの特徴に応じた生成指標、すなわち、最適化された生成指標へと近づけることができる。
【０１６０】
また、情報提供装置１０は、所定の回数新たな生成指標を生成した場合や、モデルの精度の最大値、平均値、若しくは最低値が所定の閾値を超えた場合等、所定の条件が満たされた場合は、最も精度が高いモデルを提供対象として選択する。そして、情報提供装置１０は、選択したモデルと共に、対応する生成指標を端末装置３に提供する（ステップＳ１０）。このような処理の結果、情報提供装置１０は、利用者から学習データを選択するだけで、適切なモデルの生成指標を生成するとともに、生成した生成指標に従うモデルを提供することができる。
【０１６１】
なお、上述した例では、情報提供装置１０は、遺伝的アルゴリズムを用いて生成指標の段階的な最適化を実現したが、実施形態は、これに限定されるものではない。後述する説明で明らかとなるように、モデルの精度は、モデルの種別や構造といったモデルそのものの特徴のみならず、どのような学習データをどのようにモデルに入力するのか、どのようなハイパーパラメータを用いてモデルの学習を行うのかというように、モデルを生成する際（すなわち、学習データの特徴を学習させる際）の指標に応じて大きく変化する。
【０１６２】
そこで、情報提供装置１０は、学習データに応じて、最適と推定される生成指標を生成するのであれば、遺伝的アルゴリズムを用いた最適化を行わずともよい。例えば、情報提供装置１０は、学習データが、経験則に応じて生成された各種の条件を満たすか否かに応じて生成した生成指標を利用者に提示するとともに、提示した生成指標に従ったモデルの生成を行ってもよい。また、情報提供装置１０は、提示した生成指標の修正を受付けると、受付けた修正後の生成指標に従ってモデルの生成を行い、生成したモデルの精度等を利用者に対して提示し、再度生成指標の修正を受付けてもよい。すなわち、情報提供装置１０は、利用者Ｕに最適な生成指標を試行錯誤させてもよい。
【０１６３】
〔３．生成指標の生成について〕
以下、どのような学習データに対して、どのような生成指標を生成するかの一例について説明する。なお、以下の例は、あくまで一例であり、学習データが有する特徴に応じて生成指標を生成するのであれば、任意の処理が採用可能である。
【０１６４】
〔３−１．生成指標について〕
まず、生成指標が示す情報の一例について説明する。例えば、学習データが有する特徴をモデルに学習させる場合、学習データをモデルに入力する際の態様、モデルの態様、およびモデルの学習態様（すなわち、ハイパーパラメータが示す特徴）が最終的に得られるモデルの精度に寄与すると考えられる。そこで、情報提供装置１０は、学習データの特徴に応じて、各態様を最適化した生成指標を生成することで、モデルの精度を向上させる。
【０１６５】
例えば、学習データには、様々なラベルが付与されたデータ、すなわち、様々な特徴を示すデータが存在すると考えられる。しかしながら、データを分類する際に有用ではない特徴を示すデータを学習データとした場合、最終的に得られるモデルの精度は、悪化する恐れがある。そこで、情報提供装置１０は、学習データをモデルに入力する際の態様として、入力する学習データが有する特徴を決定する。例えば、情報提供装置１０は、学習データのうち、どのラベルが付与されたデータ（すなわち、どの特徴を示すデータ）を入力するかを決定する。換言すると、情報提供装置１０は、入力する特徴の組み合わせを最適化する。
【０１６６】
また、学習データには、数値のみのデータや文字列が含まれるデータ等、各種形式のカラムが含まれていると考えられる。このような学習データをモデルに入力する際に、そのまま入力した場合と、他の形式のデータに変換した場合とで、モデルの精度が変化するとも考えられる。例えば、複数種別の学習データ（それぞれ異なる特徴を示す学習データ）であって、文字列の学習データを数値の学習データとを入力する際に、文字列と数値とをそのまま入力した場合と、文字列を数値に変換して数値のみを入力した場合と、数値を文字列と見做して入力した場合とでは、それぞれモデルの精度が変化すると考えられる。そこで、情報提供装置１０は、モデルに入力する学習データの形式を決定する。例えば、情報提供装置１０は、モデルに入力する学習データを数値とするか、文字列とするかを決定する。換言すると、情報提供装置１０は、入力する特徴のカラムタイプを最適化する。
【０１６７】
また、それぞれ異なる特徴を示す学習データが存在する場合、どの特徴の組み合わせを同時に入力するかによって、モデルの精度が変化すると考えられる。すなわち、それぞれ異なる特徴を示す学習データが存在する場合、どの特徴の組み合わせの特徴（すなわち、複数の特徴の組み合わせの関係性）を学習させるかにより、モデルの精度が変化すると考えられる。例えば、第１特徴（例えば、性別）を示す学習データと、第２特徴（例えば、住所）を示す学習データと、第３特徴（例えば、購買履歴）を示す学習データとが存在する場合、第１特徴を示す学習データと第２特徴を示す学習データとを同時に入力した場合と、第１特徴を示す学習データと第３特徴を示す学習データとを同時に入力した場合とでは、モデルの精度が変化すると考えられる。そこで、情報提供装置１０は、モデルに関係性を学習させる特徴の組み合わせ（クロスフューチャー）を最適化する。
【０１６８】
ここで、各種のモデルは、入力データを所定の超平面により分割された所定次元の空間内に投影し、投影した位置が分割された空間のうちいずれの空間に属するかに応じて、入力データの分類を行うこととなる。このため、入力データを投影する空間の次元数が最適な次元数よりも低い場合は、入力データの分類能力が劣化する結果、モデルの精度が悪化する。また、入力データを投影する空間の次元数が最適な次元数よりも高い場合は、超平面との内積値が変化する結果、学習時に用いたデータとは異なるデータを適切に分類することができなくなる恐れがある。そこで、情報提供装置１０は、モデルに入力する入力データの次元数を最適化する。例えば、情報提供装置１０は、モデルが有する入力層のノードの数を制御することで、入力データの次元数を最適化する。換言すると、情報提供装置１０は、入力データの埋め込みを行う空間の次元数を最適化する。
【０１６９】
また、モデルには、ＳＶＭに加え、複数の中間層（隠れ層）を有するニューラルネットワーク等が存在する。また、このようなニューラルネットワークには、入力層から出力層まで一方方向に情報が伝達されるフィードフォワード型のＤＮＮ、中間層で情報の畳み込みを行う畳み込みニューラルネットワーク（ＣＮＮ：Convolutional  Neural  Networks）、有向閉路を有する回帰型ニューラルネットワーク（ＲＮＮ：Recurrent  Neural  Network）、ボルツマンマシン等、各種のニューラルネットワークが知られている。また、このような各種ニューラルネットワークには、ＬＳＴＭ（Long  short-term  memory）やその他各種のニューラルネットワークが含まれている。
【０１７０】
このように、学習データの各種特徴を学習するモデルの種別が異なる場合、モデルの精度は変化すると考えられる。そこで、情報提供装置１０は、学習データの特徴を精度良く学習すると推定されるモデルの種別を選択する。例えば、情報提供装置１０は、学習データのラベルとしてどのようなラベルが付与されているかに応じて、モデルの種別を選択する。より具体的な例を挙げると、情報提供装置１０は、ラベルとして「履歴」に関連する用語が付されたデータが存在する場合は、履歴の特徴をより良く学習することができると考えられるＲＮＮを選択し、ラベルとして「画像」に関連する用語が付されたデータが存在する場合は、画像の特徴をより良く学習することができると考えられるＣＮＮを選択する。これら以外にも、情報提供装置１０は、ラベルがあらかじめ指定された用語若しくは用語と類似する用語であるか否かを判定し、同一若しくは類似すると判定された用語と予め対応付けられた種別のモデルを選択すればよい。
【０１７１】
また、モデルの中間層の数や１つの中間層に含まれるノードの数が変化した場合、モデルの学習精度が変化すると考えられる。例えば、モデルの中間層の数が多い場合（モデルが深い場合）、より抽象的な特徴に応じた分類を実現することができると考えらえれる一方で、バックプロパゲーションにおける局所誤差が入力層まで伝播しづらくなる結果、学習が適切に行えなくなる恐れがある。また、中間層に含まれるノードの数が少ない場合は、より高度が抽象化を行うことができるものの、ノードの数が少なすぎる場合は、分類に必要な情報が欠損する可能性が高い。そこで、情報提供装置１０は、中間層の数や中間層に含まれるノードの数の最適化を行う。すなわち、情報提供装置１０は、モデルのアーキテクチャの最適化を行う。
【０１７２】
また、アテンションの有無やモデルに含まれるノードに自己回帰がある場合とない場合、どのノード間を接続するのかに応じて、ノードの精度が変化すると考えられる。そこで、情報提供装置１０は、自己回帰を有するか否か、どのノード間を接続するのかといったネットワークの最適化を行う。
【０１７３】
また、モデルの学習を行う場合、モデルの最適化手法（学習時に用いるアルゴリズム）やドロップアウト率、ノードの活性化関数やユニット数等がハイパーパラメータとして設定される。このようなハイパーパラメータが変化した場合にも、モデルの精度が変化すると考えられる。そこで、情報提供装置１０は、モデルを学習する際の学習態様、すなわち、ハイパーパラメータの最適化を行う。
【０１７４】
また、モデルのサイズ（入力層、中間層、出力層の数やノード数）が変化した場合も、モデルの精度が変化する。そこで、情報提供装置１０は、モデルのサイズの最適化についても行う。
【０１７５】
このように、情報提供装置１０は、上述した各種モデルを生成する際の指標について最適化を行う。例えば、情報提供装置１０は、各指標に対応する条件を予め保持しておく。なお、このような条件は、例えば、過去の学習モデルから生成された各種モデルの精度等の経験則により設定される。そして、情報提供装置１０は、学習データが各条件を満たすか否かを判定し、学習データが満たす若しくは満たさない条件に予め対応付けられた指標を生成指標（若しくはその候補）として採用する。この結果、情報提供装置１０は、学習データが有する特徴を精度良く学習可能な生成指標を生成することができる。
【０１７６】
なお、上述したように、学習データから自動的に生成指標を生成し、生成指標に従ってモデルを作成する処理を自動的に行った場合、利用者は、学習データの内部を参照し、どのような分布のデータが存在するかといった判断を行わずともよい。この結果、情報提供装置１０は、例えば、モデルの作成に伴ってデータサイエンティスト等が学習データの認識を行う手間を削減するとともに、学習データの認識に伴うプライバシーの毀損を防ぐことができる。
【０１７７】
〔３−２．データ種別に応じた生成指標〕
以下、生成指標を生成するための条件の一例について説明する。まず、学習データとしてどのようなデータが採用されているかに応じた条件の一例について説明する。
【０１７８】
例えば、学習に用いられる学習データには、整数、浮動小数点、若しくは文字列等がデータとして含まれている。このため、入力されるデータの形式に対して適切なモデルを選択した場合は、モデルの学習精度がより高くなると推定される。そこで、情報提供装置１０は、学習データが整数であるか、浮動小数点であるか、若しくは文字列であるかに基いて、生成指標を生成する。
【０１７９】
例えば、学習データが整数である場合、情報提供装置１０は、学習データの連続性に基いて、生成指標を生成する。例えば、情報提供装置１０は、学習データの密度が所定の第１閾値を超える場合、当該学習データが連続性を有するデータであると見做し、学習データの最大値が所定の第２閾値を上回るか否かに基いて生成指標を生成する。また、情報提供装置１０は、学習データの密度が所定の第１閾値を下回る場合、当該学習データがスパースな学習データであると見做し、学習データに含まれるユニークな値の数が所定の第３閾値を上回るか否かに基いて生成指標を生成する。
【０１８０】
より具体的な例を説明する。なお、以下の例においては、生成指標として、ＡｕｔｏＭＬによりモデルを自動的に生成するモデル生成サーバ２に対して送信するコンフィグファイルのうち、特徴関数（feature  function）を選択する処理の一例について説明する。例えば、情報提供装置１０は、学習データが整数である場合、その密度が所定の第１閾値を超えるか否かを判定する。例えば、情報提供装置１０は、学習データに含まれる値のうちユニークな値の数を、学習データの最大値に１を加算した値で除算した値を密度として算出する。
【０１８１】
続いて、情報提供装置１０は、密度が所定の第１閾値を超える場合は、学習データが連続性を有する学習データであると判定し、学習データの最大値に１を加算した値が第２閾値を上回るか否かを判定する。そして、情報提供装置１０は、学習データの最大値に１を加算した値が第２閾値を上回る場合は、特徴関数として「Categorical_colum_with_identity  &  embedding_column」を選択する。一方、情報提供装置１０は、学習データの最大値に１を加算した値が第２閾値を下回る場合は、特徴関数として「Categorical_column_with_identity」を選択する。
【０１８２】
一方、情報提供装置１０は、密度が所定の第１閾値を下回る場合は、学習データがスパースであると判定し、学習データに含まれるユニークな値の数が所定の第３閾値を超えるか否かを判定する。そして、情報提供装置１０は、学習データに含まれるユニークな値の数が所定の第３閾値を超える場合は、特徴関数として「Categorical_column_with_hash_bucket  &  embedding_column」を選択し、学習データに含まれるユニークな値の数が所定の第３閾値を下回る場合は、特徴関数として「Categorical_column_with_hash_bucket」を選択する。
【０１８３】
また、情報提供装置１０は、学習データが文字列である場合、学習データに含まれる文字列の種別の数に基いて、生成指標を生成する。例えば、情報提供装置１０は、学習データに含まれるユニークな文字列の数（ユニークなデータの数）を計数し、計数した数が所定の第４閾値を下回る場合は、特徴関数として「categorical_column_with_vocabulary_list」若しくは／および「categorical_column_with_vocabulary_file」を選択する。また、情報提供装置１０は、計数した数が所定の第４閾値よりも大きい第５閾値を下回る場合は、特徴関数として「categorical_column_with_vocabulary_file  &  embedding_column」を選択する。また、情報提供装置１０は、計数した数が所定の第４閾値よりも大きい第５閾値を上回る場合は、特徴関数として「categorical_column_with_hash_bucket  &  embedding_column」を選択する。
【０１８４】
また、情報提供装置１０は、学習データが浮動小数点である場合、モデルの生成指標として、学習データをモデルに入力する入力データへの変換指標を生成する。例えば、情報提供装置１０は、特徴関数として「bucketized_column」もしくは「numeric_colum」を選択する。すなわち、情報提供装置１０は、学習データをバケタイズ（グルーピング）し、バケットの番号を入力とするか、数値をそのまま入力するかを選択する。なお、情報提供装置１０は、例えば、各バケットに対して対応付けられる数値の範囲が同程度となるように、学習データのバケタイズを行ってもよく、例えば、各バケットに分類される学習データの数が同程度となるように、各バケットに対して数値の範囲を対応付けてもよい。また、情報提供装置１０は、バケットの数やバケットに対して対応付けられる数値の範囲を生成指標として選択してもよい。
【０１８５】
また、情報提供装置１０は、複数の特徴を示す学習データを取得し、モデルの生成指標として、学習データが有する特徴のうちモデルに学習させる特徴を示す生成指標を生成する。例えば、情報提供装置１０は、どのラベルの学習データをモデルに入力するかを決定し、決定したラベルを示す生成指標を生成する。また、情報提供装置１０は、モデルの生成指標として、学習データの種別のうちモデルに対して相関を学習させる複数の種別を示す生成指標を生成する。例えば、情報提供装置１０は、モデルに対して同時に入力するラベルの組み合わせを決定し、決定した組み合わせを示す生成指標を生成する。
【０１８６】
また、情報提供装置１０は、モデルの生成指標として、モデルに入力される学習データの次元数を示す生成指標を生成する。例えば、情報提供装置１０は、学習データに含まれるユニークなデータの数やモデルに入力するラベルの数、モデルに入力するラベルの数の組み合わせ、バケットの数等に応じて、モデルの入力層におけるノードの数を決定してもよい。
【０１８７】
また、情報提供装置１０は、モデルの生成指標として、学習データの特徴を学習させるモデルの種別を示す生成指標を生成する。例えば、情報提供装置１０は、過去に学習対象とした学習データの密度やスパース具合、ラベルの内容、ラベルの数、ラベルの組み合わせの数等に応じて、生成するモデルの種別を決定し、決定した種別を示す生成指標を生成する。例えば、情報提供装置１０は、ＡｕｔｏＭＬにおけるモデルのクラスとして「BaselineClassifier」、「LinearClassifier」、「DNNClassifier」、「DNNLinearCombinedClassifier」、「BoostedTreesClassifier」、「AdaNetClassifier」、「RNNClassifier」、「DNNResNetClassifier」、「AutoIntClassifier」等を示す生成指標を生成する。
【０１８８】
なお、情報提供装置１０は、これら各クラスのモデルの各種独立変数を示す生成指標を生成してもよい。例えば、情報提供装置１０は、モデルの生成指標として、モデルが有する中間層の数若しくは各層に含まれるノードの数を示す生成指標を生成してもよい。また、情報提供装置１０は、モデルの生成指標として、モデルが有するノード間の接続態様を示す生成指標やモデルの大きさを示す生成指標を生成してもよい。これらの独立変数は、学習データが有する各種の統計的な特徴が所定の条件を満たすか否かに応じて、適宜選択されることとなる。
【０１８９】
また、情報提供装置１０は、モデルの生成指標として、学習データが有する特徴をモデルに学習させる際の学習態様、すなわち、ハイパーパラメータを示す生成指標を生成してもよい。例えば、情報提供装置１０は、ＡｕｔｏＭＬにおける学習態様の設定において、「stop_if_no_decrease_hook」、「stop_if_no_increase_hook」、「stop_if_higher_hook」、もしくは「stop_if_lower_hook」を示す生成指標を生成してもよい。
【０１９０】
すなわち、情報提供装置１０は、学習に用いる学習データのラベルやデータそのものの特徴に基づいて、モデルに学習させる学習データの特徴、生成するモデルの態様、および学習データが有する特徴をモデルに学習させる際の学習態様を示す生成指標を生成する。より具体的には、情報提供装置１０は、ＡｕｔｏＭＬにおけるモデルの生成を制御するためのコンフィグファイルを生成する。
【０１９１】
〔３−３．生成指標を決定する順序について〕
ここで、情報提供装置１０は、上述した各種の指標の最適化を同時並行的に行ってもよく、適宜順序だてて実行してもよい。また、情報提供装置１０は、各指標を最適化する順序を変更可能としてもよい。すなわち、情報提供装置１０は、モデルに学習させる学習データの特徴、生成するモデルの態様、および学習データが有する特徴をモデルに学習させる際の学習態様を決定する順番の指定を利用者から受け付け、受け付けた順序で、各指標を決定してもよい。
【０１９２】
例えば、図３４は、実施形態に係る情報提供装置が指標を最適化する順序を示す図である。例えば、図３４に示す例では、情報提供装置１０は、生成指標の生成を開始した場合、入力する学習データの特徴や、どのような態様で学習データを入力するかといった入力素性の最適化を行い、続いて、どの特徴の組み合わせの特徴を学習させるかという入力クロス素性の最適化を行う。続いて、情報提供装置１０は、モデルの選択を行うとともに、モデル構造の最適化を行う。その後、情報提供装置１０は、ハイパーパラメータの最適化を行い、生成指標の生成を終了する。
【０１９３】
ここで、情報提供装置１０は、入力素性最適化において、入力する学習データの特徴や入力態様といった各種入力素性の選択や修正、遺伝的アルゴリズムを用いた新たな入力素性の選択を行うことで、入力素性を繰り返し最適化してもよい。同様に、情報提供装置１０は、入力クロス素性最適化において、入力クロス素性を繰り返し最適化してもよく、モデル選択およびモデル構造の最適化を繰り返し実行してもよい。また、情報提供装置１０は、ハイパーパラメタ―の最適化を繰り返し実行してもよい。また、情報提供装置１０は、入力素性最適化、入力クロス素性最適化、モデル選択、モデル構造最適化、およびハイパーパラメータの最適化という一連の処理を繰り返し実行し、各指標の最適化を行ってもよい。
【０１９４】
また、情報提供装置１０は、例えば、ハイパーパラメータの最適化を行ってから、モデル選択やモデル構造最適化を行ってもよく、モデル選択やモデル構造最適化の後に、入力素性の最適化や入力クロス素性の最適化を行ってもよい。また、情報提供装置１０は、例えば、入力素性最適化を繰り返し実行し、その後入力クロス素性最適化を繰り返し行う。その後、情報提供装置１０は、入力素性最適化と入力クロス素性最適化を繰り返し実行してもよい。このように、どの指標をどの順番で最適化するか、最適化においてどの最適化処理を繰り返し実行するかについては、任意の設定が採用可能となる。
【０１９５】
〔３−４．情報提供装置が実現するモデル生成の流れについて〕
続いて、図３５を用いて、情報提供装置１０を用いたモデル生成の流れの一例について説明する。図３５は、実施形態における情報提供装置を用いたモデル生成の流れの一例を説明する図である。例えば、情報提供装置１０は、学習データと各学習データのラベルとを受付ける。なお、情報提供装置１０は、学習データの指定と共に、ラベルを受付けてもよい。
【０１９６】
このような場合、情報提供装置１０は、データの分析を行い、分析結果に応じたデータ分割を行う。例えば、情報提供装置１０は、学習データを、モデルの学習に用いるトレーニング用データと、モデルの評価（すなわち、精度の測定）に用いる評価用データとに分割する。なお、情報提供装置１０は、各種テスト用のデータをさらに分割してもよい。なお、このような学習データをトレーニング用データと評価用データとに分割する処理は、各種任意の公知技術が採用可能である。
【０１９７】
また、情報提供装置１０は、学習データを用いて、上述した各種の生成指標を生成する。例えば、情報提供装置１０は、ＡｕｔｏＭＬにおいて生成されるモデルやモデルの学習を定義するコンフィグファイルを生成する。このようなコンフィグファイルにおいては、ＡｕｔｏＭＬで用いられる各種の関数がそのまま生成指標を示す情報として格納されることとなる。そして、情報提供装置１０は、トレーニング用データを生成指標とをモデル生成サーバ２に提供することで、モデルの生成を行う。
【０１９８】
ここで、情報提供装置１０は、利用者によるモデルの評価と、モデルの自動生成とを繰り返し行うことで、生成指標の最適化、ひいてはモデルの最適化を実現してもよい。例えば、情報提供装置１０は、入力する特徴の最適化（入力素性や入力クロス素性の最適化）、ハイパーパラメータの最適化、および生成するモデルの最適化を行い、最適化された生成指標に従って自動でのモデル生成を行う。そして、情報提供装置１０は、生成したモデルを利用者に提供する。
【０１９９】
一方、利用者は、自動生成されたモデルのトレーニングや評価、テストを行い、モデルの分析や提供を行う。そして、利用者は、生成された生成指標を修正することで、再度新たなモデルを自動生成させ、評価やテスト等を行う。このような処理を繰り返し実行することで、複雑な処理を実行することなく、試行錯誤しながらモデルの精度を向上させる処理を実現することができる。
【０２００】
〔４．情報提供装置の構成〕
次に、図３６を用いて、実施形態に係る情報提供装置１０の機能構成の一例について説明する。図３６は、実施形態に係る情報提供装置の構成例を示す図である。図３６に示すように、情報提供装置１０は、通信部２０と、記憶部３０と、制御部４０とを有する。
【０２０１】
通信部２０は、例えば、ＮＩＣ（Network  Interface  Card）等によって実現される。そして、通信部１１は、ネットワークＮと有線または無線で接続され、モデル生成サーバ２や端末装置３との間で情報の送受信を行う。
【０２０２】
記憶部３０は、例えば、ＲＡＭ（Random  Access  Memory)、フラッシュメモリ（Flash  Memory）等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。また、記憶部３０は、学習データデータベース３１および生成条件データベース３２を有する。
【０２０３】
学習データデータベース３１には、学習データが登録される。例えば、図３７は、実施形態に係る学習データベースに登録される情報の一例を示す図である。図３７に示す例では、学習データデータベース３１には、学習データＩＤ（Identifier）、および学習データが対応付けて登録されている。ここで、学習データＩＤは、学習データとなる複数のデータ群を識別する識別子である。また、学習データとは、学習に用いられるデータである。
【０２０４】
例えば、図３７に示す例では、学習データデータベース３１には、「学習データ＃１」に対し、「ラベル＃１−１」と「データ＃１−１」との組、および、「ラベル＃１−２」と「データ＃１−２」との組が対応付けて登録されている。このような情報は、「学習データ＃１」が示す学習データとして、「ラベル＃１−１」が付与された「データ＃１−１」、および、「ラベル＃１−２」が付与された「データ＃１−２」が登録されている旨を示す。なお、各ラベルには、同一の特徴を示す複数のデータが登録されていてもよい。また、図３７に示す例では、「学習データ＃１」、「ラベル＃１−１」、「データ＃１−１」といった概念的な値を記載したが、実際には、学習データを識別するための文字列や数値、ラベルとなる文字列、データとなる各種整数、浮動小数点、もしくは文字列等が登録されることとなる。
【０２０５】
図３６に戻り、生成条件データベース３８には、学習データに関する各種の条件と、学習データが条件を場合に生成指標若しくはその候補として決定される各種の指標とを対応付けた生成条件が登録されている。例えば、図３８は、実施形態に係る生成条件データベースに登録される情報の一例を示す図である。図３８に示す例では、生成条件データデータベース３２には、条件ＩＤ、条件内容、および指標候補が対応付けて登録されている。
【０２０６】
ここで、条件ＩＤとは、生成条件を識別する識別子である。また、条件内容とは、学習データが満たすか否かの判定対象となる条件であり、例えば、学習データの内容に関する条件である内容条件と、学習データの傾向に関する傾向条件等、各種の条件により構成される。また、指標候補とは、対応付けられた条件内容に含まれる各条件が満たされた場合に、生成指標に含まれる各種の指標である。
【０２０７】
例えば、生成条件データベース３８には、条件ＩＤ「条件ＩＤ＃１」、内容条件「整数」、傾向条件「密度＜閾値」、指標候補「生成指標＃１」とが対応付けて登録されている。このような情報は、条件ＩＤ「条件ＩＤ＃１」として、学習データが内容条件「整数」であり、かつ、傾向条件「密度＜閾値」を満たす場合に、指標候補「生成指標＃１」が生成指標として決定される旨を示す。
【０２０８】
なお、図３８に示す例では、「生成指標＃１」といった概念的な値を記載したが、実際には、各種生成指標として採用される情報が登録される。例えば、生成条件データベース３８には、ＡｕｔｏＭＬにおけるコンフィグファイルに記載される各種の関数が指標候補として登録される。なお、生成条件データベース３８には、例えば、１つの条件に対して複数の生成指標が登録されていてもよい。
【０２０９】
なお、上述したように、どのような条件が満たされた場合にどのような生成指標を生成するかについては、任意の設定が可能である。例えば、生成条件データベース３８には、過去に生成したモデルであって、精度が所定の閾値を超えるモデルについての各種生成指標と、そのモデルの学習に用いた学習データの特徴や傾向とに基づいて生成された生成条件が登録されてればよい。
【０２１０】
図３６に戻り、説明を続ける。制御部４０は、例えば、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）等によって、情報提供装置１０内部の記憶装置に記憶されている各種プログラムがＲＡＭを作業領域として実行されることにより実現される。また、制御部４０は、例えば、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）等の集積回路により実現される。図３６に示すように、制御部４０は、取得部４１、指標生成部４２、提示部４３、受付部４４、モデル生成部４５、および提供部４６を有する。
【０２１１】
取得部４１は、モデルの学習に用いる学習データを取得する。例えば、取得部４１は、端末装置３から、学習データとして用いる各種のデータと、各種データに付与されるラベルを受付けると、受付けたデータとラベルとを学習データとして学習データデータベース３に登録する。なお、取得部４１は、あらかじめ学習データデータベース３１に登録されたデータのうち、モデルの学習に用いる学習データの学習データＩＤやラベルの指摘を受付けてもよい。
【０２１２】
指標生成部４２は、学習データが有する特徴に基いて、モデルの生成指標を生成する。例えば、指標生成部４２は、学習データが有する統計的な特徴に基いて、生成指標を生成する。例えば、指標生成部４２は、取得部４１から学習データを取得する。そして、指標生成部４２は、取得した学習データが生成条件データベース３２に登録された生成条件を満たすか否かに応じて、生成指標を生成する。
【０２１３】
例えば、指標生成部４２は、学習データが整数であるか、浮動小数点であるか、若しくは文字列であるかに基いて、生成指標を生成してもよい。より具体的な例を挙げると、指標生成部４２は、学習データが整数である場合、学習データの連続性に基いて、生成指標を生成してもよい。例えば、指標生成部４２は、学習データの密度を算出し、算出した密度が所定の第１閾値を超える場合、学習データの最大値が所定の第２閾値を上回るか否かに基いて生成指標を生成してもよい。すなわち、指標生成部４２は、最大値が第２閾値を上回るか否かに応じて異なる生成指標を生成してもよい。また、指標生成部４２は、学習データの密度が所定の第１閾値を下回る場合、学習データに含まれるユニークな値の数が所定の第３閾値を上回るか否かに基いて生成指標を生成してもよい。
【０２１４】
なお、指標生成部４２は、学習データの密度や最大値等が各種閾値を超えるか否かといった条件分岐に応じて異なる生成指標を生成してもよく、例えば、学習データの密度や最大値等そのものの値に応じた生成指標を生成してもよい。例えば、指標生成部４２は、学習データの数、密度、最大値等といった統計的な値に基づいて、モデルのノード数や中間層の数等といった各種生成指標となるパラメータの値を算出してもよい。すなわち、指標生成部４２は、学習データが有する特徴に基づいて異なる生成指標を生成するのであれば、任意の条件に基づいて、生成指標の生成を行ってよい。
【０２１５】
また、指標生成部４２は、学習データが文字列である場合、学習データに含まれる文字列の種別の数に基いて、生成指標を生成する。すなわち、指標生成部４２は、ユニークな文字列の種別の数に応じて異なる生成指標を生成する。また、指標生成部４２は、学習データが浮動小数点である場合、モデルの生成指標として、学習データをモデルに入力する入力データへの変換指標を生成する。例えば、指標生成部４２は、浮動小数点をバケタイズするか否か、どの範囲の値をどのバケットに分類するか等を学習データの統計的な情報に基づいて決定する。より具体的な例を挙げると、指標生成部４２は、浮動小数点である学習データに含まれる値の範囲や、学習データに付されたラベルの内容といった特徴に応じて、バケタイズするか否か、どの範囲の値をどのバケットに分類するか等を決定してもよい。また、指標生成部４２は、学習データの特徴に基づいて、各バケットに対応する値の範囲を一定にするか否かや、各バケットに分類する学習データの数を一定（若しくは、所定の分布）にするか否かを決定してもよい。
【０２１６】
また、指標生成部４２は、モデルの生成指標として、学習データが有する特徴のうちモデルに学習させる特徴を示す生成指標を生成する。例えば、指標生成部４２は、学習データの特徴に基づいて、モデルに学習させるデータのラベルを決定する。また、指標生成部４２は、モデルの生成指標として、学習データの種別のうちモデルに対して相関を学習させる複数の種別を示す生成指標を生成する。
【０２１７】
なお、このような学習対象となる特徴（ラベル）や特徴の関係性の決定は、例えば、モデルが出力するデータのラベル等、どのようなモデルを利用者が所望するかといった目的に応じた決定が行われてもよい。また、どの特徴を採用するか、どの特徴の組み合わせの特徴を学習させるかについては、例えば、上述した遺伝的アルゴリズムにおいて、各特徴や特徴の組み合わせを採用するか否かを示すビットを遺伝子と見做し、新生代の生成指標を生成することで、モデルの精度がより向上する特徴や特徴の組み合わせを発見することで、決定されてもよい。
【０２１８】
また、指標生成部４２は、モデルの生成指標として、モデルに入力される学習データの次元数を示す生成指標を生成する。また、指標生成部４２は、モデルの生成指標として、学習データの特徴を学習させるモデルの種別を示す生成指標を生成する。また、指標生成部４２は、モデルの生成指標として、モデルが有する中間層の数若しくは各層に含まれるノードの数を示す生成指標を生成する。また、指標生成部４２は、モデルの生成指標として、モデルが有するノード間の接続態様を示す生成指標を生成する。また、指標生成部４２は、モデルの生成指標として、モデルの大きさを示す生成指標を生成する。例えば、指標生成部４２は、ユニークな学習データの数や採用される特徴あるいはその組み合わせの数、学習データとなる数値や文字列のビット数等に応じて、モデルに入力される学習データの次元数を示す生成指標を生成してもよく、例えば、モデルの各種構造を決定してもよい。
【０２１９】
また、指標生成部４２は、モデルの生成指標として、学習データが有する特徴をモデルに学習させる際の学習態様を示す生成指標を生成する。例えば、指標生成部４２は、学習データの特徴や上述した各種の生成指標に基づいて、ハイパーパラメータの内容を決定してもよい。このように、指標生成部４２は、モデルに学習させる学習データの特徴、生成するモデルの態様、および学習データが有する特徴をモデルに学習させる際の学習態様を示す生成指標を生成する。なお、指標生成部４２は、上述した全ての生成指標を決定、生成する必要はなく、任意の種別の生成指標のみを決定、生成すればよい。
【０２２０】
提示部４３は、指標生成部４２により生成された指標を利用者に提示する。例えば、提示部４３は、生成指標として生成されたＡｕｔｏＭＬのコンフィグファイルを端末装置３に送信する。
【０２２１】
受付部４４は、利用者に対して提示した生成指標の修正を受付ける。また、受付部４４は、モデルに学習させる学習データの特徴、生成するモデルの態様、および学習データが有する特徴をモデルに学習させる際の学習態様を決定する順番の指定を利用者から受け付ける。このような場合、指標生成部４２は、利用者から指定された順番で、モデルに学習させる学習データの特徴、生成するモデルの態様、および学習データが有する特徴をモデルに学習させる際の学習態様を決定する。すなわち、指標生成部４２は、利用者から指定された順番で、各種の生成指標を再度生成しなおす。
【０２２２】
モデル生成部４５は、生成指標に従って、学習データが有する特徴を学習させたモデルを生成する。例えば、モデル生成部４５は、学習データをトレーニング用データと評価用データとに分割するとともに、トレーニング用データと生成指標とをモデル生成サーバ２に送信する。そして、モデル生成部４５は、モデル生成サーバ２が生成指標に従ってトレーニング用データから生成したモデルを取得する。このような場合、モデル生成部４５は、評価用データを用いて、取得したモデルの精度を算出する。
【０２２３】
なお、指標生成部４２は、それぞれ異なる複数の生成指標を生成する。このような場合、指標生成部４２は、生成指標ごとに異なるモデルを生成させ、各モデルの精度を算出する。なお、指標生成部４２は、各モデルごとに異なるトレーニング用データおよび評価用データを生成してもよく、同一のトレーニング用データおよび評価用データを採用してもよい。
【０２２４】
このように、複数のモデルが生成された場合、指標生成部４２は、生成されたモデルの精度に基いて、モデルの生成指標を新たに生成する。例えば、指標生成部４２は、各学習データを利用するか否か、どの生成指標を採用したか否かを遺伝子見做した遺伝的アルゴリズムを用いて、複数の生成指標から新たな生成指標を生成する。そして、モデル生成部４５は、新たな生成指標に基づいて、新たなモデルの生成を行う。このような試行錯誤を所定の回数、若しくは、モデルの精度が所定の閾値を超えるまで繰り返し実行することで、情報提供装置１０は、モデルの精度を向上させる生成指標の生成を実現できる。
【０２２５】
なお、指標生成部４２は、生成指標を決定する順序についても、遺伝的アルゴリズムの対象として最適化を行ってもよい。また、提示部４３は、生成指標が生成される度に生成指標を利用者に提示してもよく、例えば、精度が所定の閾値を超えたモデルと対応する生成指標のみを利用者に提示してもよい。
【０２２６】
提供部４６は、生成されたモデルを利用者に提供する。例えば、提供部４６は、モデル生成部４５により生成されたモデルの精度が所定の閾値を超えた場合は、そのモデルとともに、モデルと対応する生成指標を端末装置３へと送信する。この結果、利用者は、モデルの評価や試用を行うとともに、生成指標の修正を行うことができる。
【０２２７】
〔５．情報提供装置１０の処理フロー〕
次に、図３９を用いて、情報提供装置１０が実行する処理の手順について説明する。図３９は、実施形態に係る生成処理の流れの一例を示すフローチャートである。
【０２２８】
例えば、情報提供装置１０は、学習データの指定を受付ける（ステップＳ１０１）。このような場合、情報提供装置１０は、指定された学習データの統計的な特徴を特定する（ステップＳ１０２）。そして、情報提供装置１０は、統計的な特徴に基づいて、モデルの生成指標の候補を作成する（ステップＳ１０３）。
【０２２９】
続いて、情報提供装置１０は、作成した生成指標の修正を受付けたか否かを判定し（ステップＳ１０４）、受付けた場合は（ステップＳ１０４：Ｙｅｓ）、指示に従って修正を行う（ステップＳ１０５）。一方、情報提供装置１０は、修正を受付けていない場合は、ステップＳ１０５の実行をスキップする。そして、情報提供装置１０は、生成指標に従ってモデルを生成し（ステップＳ１０６）、生成したモデルを提供して（ステップＳ１０７）、処理を終了する。
【０２３０】
〔６．変形例〕
上記では、生成処理の一例について説明した。しかしながら、実施形態は、これに限定されるものではない。以下、提供処理の変形例について説明する。
【０２３１】
〔６−１．装置構成〕
上記実施形態では、配信システム１に、生成指標の生成を行う情報提供装置１０、および、生成指標に従ってモデルを生成するモデル生成サーバ２を有する例について説明したが、実施形態は、これに限定されるものではない。例えば、情報提供装置１０は、モデル生成サーバ２が有する機能を有していてもよい。また、情報提供装置１０が発揮する機能は、端末装置３に内包されていてもよい。このような場合、端末装置３は、生成指標を自動的に生成するとともに、モデル生成サーバ２を用いたモデルの生成を自動的に行うこととなる。
【０２３２】
〔６−２．その他〕
また、上記実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られない。
【０２３３】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【０２３４】
また、上記してきた各実施形態は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【０２３５】
〔６−３．プログラム〕
また、上述してきた実施形態に係る情報提供装置１０は、例えば図４０に示すような構成のコンピュータ１０００によって実現される。図４０は、ハードウェア構成の一例を示す図である。コンピュータ１０００は、出力装置１０１０、入力装置１０２０と接続され、演算装置１０３０、一次記憶装置１０４０、二次記憶装置１０５０、出力ＩＦ（Interface）１０６０、入力ＩＦ１０７０、ネットワークＩＦ１０８０がバス１０９０により接続された形態を有する。
【０２３６】
演算装置１０３０は、一次記憶装置１０４０や二次記憶装置１０５０に格納されたプログラムや入力装置１０２０から読み出したプログラム等に基づいて動作し、各種の処理を実行する。一次記憶装置１０４０は、ＲＡＭ等、演算装置１０３０が各種の演算に用いるデータを一次的に記憶するメモリ装置である。また、二次記憶装置１０５０は、演算装置１０３０が各種の演算に用いるデータや、各種のデータベースが登録される記憶装置であり、ＲＯＭ(Read  Only  Memory)、ＨＤＤ、フラッシュメモリ等により実現される。
【０２３７】
出力ＩＦ１０６０は、モニタやプリンタといった各種の情報を出力する出力装置１０１０に対し、出力対象となる情報を送信するためのインタフェースであり、例えば、ＵＳＢ（Universal  Serial  Bus）やＤＶＩ（Digital  Visual  Interface）、ＨＤＭＩ（登録商標）（High  Definition  Multimedia  Interface）といった規格のコネクタにより実現される。また、入力ＩＦ１０７０は、マウス、キーボード、およびスキャナ等といった各種の入力装置１０２０から情報を受信するためのインタフェースであり、例えば、ＵＳＢ等により実現される。
【０２３８】
なお、入力装置１０２０は、例えば、ＣＤ（Compact  Disc）、ＤＶＤ（Digital  Versatile  Disc）、ＰＤ（Phase  change  rewritable  Disk）等の光学記録媒体、ＭＯ（Magneto-Optical  disk）等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等から情報を読み出す装置であってもよい。また、入力装置１０２０は、ＵＳＢメモリ等の外付け記憶媒体であってもよい。
【０２３９】
ネットワークＩＦ１０８０は、ネットワークＮを介して他の機器からデータを受信して演算装置１０３０へ送り、また、ネットワークＮを介して演算装置１０３０が生成したデータを他の機器へ送信する。
【０２４０】
演算装置１０３０は、出力ＩＦ１０６０や入力ＩＦ１０７０を介して、出力装置１０１０や入力装置１０２０の制御を行う。例えば、演算装置１０３０は、入力装置１０２０や二次記憶装置１０５０からプログラムを一次記憶装置１０４０上にロードし、ロードしたプログラムを実行する。
【０２４１】
例えば、コンピュータ１０００が情報提供装置１０として機能する場合、コンピュータ１０００の演算装置１０３０は、一次記憶装置１０４０上にロードされたプログラムを実行することにより、制御部４０の機能を実現する。
【０２４２】
〔７．効果〕
上述したように、情報提供装置１０は、モデルの学習に用いる学習データを取得し、学習データが有する特徴に基いて、モデルの生成指標を生成する。例えば、情報提供装置１０は、学習データが有する統計的な特徴に基いて、生成指標を生成する。このような処理の結果、情報提供装置１０は、利用者が複雑な設定を行うことなく、精度が見込まれるモデルを生成するための生成指標を提供することができる。
【０２４３】
例えば、情報提供装置１０は、学習データが整数であるか、浮動小数点であるか、若しくは文字列であるかに基いて、生成指標を生成する。また、情報提供装置１０は、学習データが整数である場合、学習データの連続性に基いて、生成指標を生成する。より具体的な例を挙げると、情報提供装置１０は、学習データの密度が所定の第１閾値を超える場合、学習データの最大値が所定の第２閾値を上回るか否かに基いて生成指標を生成する。また、情報提供装置１０は、学習データの密度が所定の第１閾値を下回る場合、学習データに含まれるユニークな値の数が所定の第３閾値を上回るか否かに基いて生成指標を生成する。
【０２４４】
また、情報提供装置１０は、学習データが文字列である場合、学習データに含まれる文字列の種別の数に基いて、生成指標を生成する。また、情報提供装置１０は、学習データが浮動小数点である場合、モデルの生成指標として、学習データをモデルに入力する入力データへの変換指標を生成する。また、情報提供装置１０は、複数の特徴を示す学習データを取得し、モデルの生成指標として、学習データが有する特徴のうちモデルに学習させる特徴を示す生成指標を生成する。
【０２４５】
また、情報提供装置１０は、複数種別の特徴を示す学習データを取得し、モデルの生成指標として、学習データの種別のうちモデルに対して相関を学習させる複数の種別を示す生成指標を生成する。また、情報提供装置１０は、モデルの生成指標として、モデルに入力される学習データの次元数を示す生成指標を生成する。また、情報提供装置１０は、モデルの生成指標として、学習データの特徴を学習させるモデルの種別を示す生成指標を生成する。
【０２４６】
また、情報提供装置１０は、モデルの生成指標として、モデルが有する中間層の数若しくは各層に含まれるノードの数を示す生成指標を生成する。また、情報提供装置１０は、モデルの生成指標として、モデルが有するノード間の接続態様を示す生成指標を生成する。また、情報提供装置１０は、モデルの生成指標として、学習データが有する特徴をモデルに学習させる際の学習態様を示す生成指標を生成する。また、情報提供装置１０は、モデルの生成指標として、モデルの大きさを示す生成指標を生成する。また、情報提供装置１０は、モデルに学習させる学習データの特徴、生成するモデルの態様、および学習データが有する特徴をモデルに学習させる際の学習態様を示す生成指標を生成する。
【０２４７】
このように、情報提供装置１０は、モデルを生成する際における各種の生成指標を自動的に生成する。この結果、情報提供装置１０は、生成指標を利用者が作成する手間を省き、モデルの生成をより容易にすることができる。また、情報提供装置１０は、学習データの内容を認識し、認識結果に応じたモデルを生成する手間を省くことができる結果、利用者の各種情報を学習データとする場合に、プライバシーの毀損を防ぐことができる。
【０２４８】
また、情報提供装置１０は、モデルに学習させる学習データの特徴、生成するモデルの態様、および学習データが有する特徴をモデルに学習させる際の学習態様を決定する順番の指定を利用者から受け付ける。そして、情報提供装置１０は、利用者から指定された順番で、モデルに学習させる学習データの特徴、生成するモデルの態様、および学習データが有する特徴をモデルに学習させる際の学習態様を決定する。このような処理の結果、情報提供装置１０は、モデルの精度をより向上させることができる。
【０２４９】
また、情報提供装置１０は、生成指標に従って、学習データが有する特徴を学習させたモデルを生成する。また、情報提供装置１０は、モデル生成部が生成したモデルの精度に基いて、モデルの生成指標を新たに生成し、指標生成部が新たに生成した生成指標に従って、モデルを新たに生成する。例えば、情報提供装置１０は、遺伝的アルゴリズムを用いて、複数の生成指標から新たな生成指標を生成する。このような処理の結果、情報提供装置１０は、より精度の高いモデルを生成するための生成指標を生成することができる。
【０２５０】
以上、本願の実施形態のいくつかを図面に基づいて詳細に説明したが、これらは例示であり、発明の開示の欄に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
【０２５１】
また、上記してきた「部（section、module、unit）」は、「手段」や「回路」などに読み替えることができる。例えば、配信部は、配信手段や配信回路に読み替えることができる。
【０２５２】
［付記］
上述した実施形態の説明に加え、さらに以下の付記を開示する。
（付記１）
人工知能モデルを生成し最適化するコンピュータ実装方法であって、前記方法が、
入力済みデータおよびラベルを受け取り、データ検証を実行して構成ファイルを生成し、前記データを分割して訓練および評価向けの分割済みデータを生成するステップと、
前記分割済みデータの訓練および評価を実行して誤差レベルを測定し、前記誤差レベルに基づいてアクションを実行するステップであって、前記アクションは、前記構成ファイルを修正することと、前記人工知能モデルを自動的にチューニングすることの、少なくとも片方を有する、ステップと、
前記訓練、前記評価、および前記チューニングに基づいて、前記人工知能モデルを生成するステップと、
前記モデルを本番にサービングするステップと、
を含む、コンピュータ実装方法。
（付記２）
前記チューニングが、
前記入力済みデータに関連した１つまたは複数の入力済み素性を自動的に最適化するステップと、
前記生成済み人工知能モデルに関連したハイパーパラメータを自動的に最適化するステップと、
最適化済みの１つまたは複数の入力済み素性および前記最適化済みのハイパーパラメータに基づいて、更新済みモデルを自動的に生成するステップと、
を含む、付記１に記載のコンピュータ実装方法。
（付記３）
前記１つまたは複数の入力済み素性が一般的なアルゴリズムによって最適化され、前記１つまたは複数の入力済み素性の組合せを最適化し、前記最適化済みの入力済み素性のリストを生成する、付記２に記載のコンピュータ実装方法。
（付記４）
前記自動的に前記ハイパーパラメータを最適化するステップが、ベイズアルゴリズムおよびランダムアルゴリズムの少なくとも片方を適用して前記ハイパーパラメータに基づき最適化することを有する、付記２に記載のコンピュータ実装方法。
（付記５）
前記自動的に前記１つまたは複数の入力済み素性を最適化するステップが、第１の規定の反復回数が満たされるまで実行される第１の反復ループで実行され、前記自動的に前記ハイパーパラメータを最適化するステップおよび前記自動的に前記更新済みモデルを生成するステップが、第２の規定の反復回数が満たされるまで第２の反復ループで実行される、付記２に記載のコンピュータ実装方法。
（付記６）
前記第１の反復ループおよび前記第２の反復ループが、第３の規定の反復回数が満たされるまで反復的に実行される、付記５に記載のコンピュータ実装方法。
（付記７）
前記訓練および前記評価を実行するステップが、前記データのデータ型式、前記データの密度、および前記データの量に基づいて、１つまたは複数の素性関数を実行することを有する、付記１に記載のコンピュータ実装方法。
（付記８）
人工知能モデルを生成し最適化するために、ストレージに格納されたマシン可読命令を実行するように構成された非一時的コンピュータ可読媒体であって、前記命令が、
入力済みデータおよびラベルを受け取り、データ検証を実行して構成ファイルを生成し、前記データを分割して訓練および評価向けの分割済みデータを生成するステップと、
前記分割済みデータの訓練および評価を実行して誤差レベルを測定し、前記誤差レベルに基づいてアクションを実行するステップであって、前記アクションが、前記構成ファイルを修正することと、前記人工知能モデルを自動的にチューニングすることの、少なくとも片方を有する、ステップと、
前記訓練、前記評価、および前記チューニングに基づいて、前記人工知能モデルを生成するステップと、
前記モデルを本番にサービングするステップと、
を含む、非一時的コンピュータ可読媒体。
（付記９）
前記チューニングが、
前記入力済みデータに関連した１つまたは複数の入力済み素性を自動的に最適化するステップと、
前記生成済み人工知能モデルに関連したハイパーパラメータを自動的に最適化するステップと、
最適化済みの１つまたは複数の入力済み素性および前記最適化済みのハイパーパラメータに基づいて更新済みモデルを自動的に生成するステップと、
を含む、付記８に記載の非一時的コンピュータ可読媒体。
（付記１０）
前記１つまたは複数の入力済み素性が一般的なアルゴリズムによって最適化され、前記１つまたは複数の入力済み素性の組合せを最適化し、前記最適化済みの入力済み素性のリストを生成する、付記９に記載の非一時的コンピュータ可読媒体。
（付記１１）
前記自動的に前記ハイパーパラメータを最適化するステップが、ベイズアルゴリズムおよびランダムアルゴリズムの少なくとも片方を適用して前記ハイパーパラメータに基づき最適化することを有する、付記９に記載の非一時的コンピュータ可読媒体。
（付記１２）
前記自動的に前記１つまたは複数の入力済み素性を最適化するステップが、第１の規定の反復回数が満たされるまで実行される第１の反復ループで実行され、前記自動的に前記ハイパーパラメータを最適化するステップおよび前記自動的に前記更新済みモデルを生成するステップが、第２の規定の反復回数が満たされるまで第２の反復ループで実行される、付記９に記載の非一時的コンピュータ可読媒体。
（付記１３）
前記第１の反復ループおよび前記第２の反復ループが、第３の規定の反復回数が満たされるまで反復的に実行される、付記１２に記載の非一時的コンピュータ可読媒体。
（付記１４）
前記訓練および前記評価を実行するステップが、前記データのデータ型式、前記データの密度、および前記データの量に基づいて、１つまたは複数の素性関数を実行することを有する、付記８に記載の非一時的コンピュータ可読媒体。
（付記１５）
人工知能モデルを生成し最適化するシステムであって、前記システムが、
入力済みデータおよびラベルを受け取り、データ検証を実行して構成ファイルを生成し、前記データを分割して訓練および評価向けに分割済みデータを生成するように構成されたデータフレームワークと、
前記分割済みデータの訓練および評価を実行して誤差レベルを測定し、前記誤差レベルに基づいてアクションを実行し、前記訓練、前記評価、および前記チューニングに基づいて前記人工知能モデルを生成し、前記モデルを本番にサービングするように構成されたディープフレームワークと、
前記アクションを実行するように構成されたチューナフレームワークであって、前記アクションが、前記構成ファイルを修正することと、前記人工知能モデルを自動的にチューニングすること、のうち少なくとも片方を含むチューナフレームワークと、
を含む、システム。
（付記１６）
前記チューナフレームワークが、前記入力済みデータに関連した１つまたは複数の入力済み素性を自動的に最適化し、前記生成済み人工知能モデルに関連したハイパーパラメータを自動的に最適化し、最適化済みの１つまたは複数の入力済み素性および前記最適化済みのハイパーパラメータに基づいて更新済みモデルを自動的に生成するように構成される、付記１５に記載のシステム。
（付記１７）
前記チューナフレームワークが、前記１つまたは複数の入力済み素性を一般的なアルゴリズムを適用することによって自動的に最適化し、前記１つまたは複数の入力済み素性の組合せを最適化し、前記最適化済みの入力済み素性のリストを生成する、付記１６に記載のシステム。
（付記１８）
前記チューナフレームワークが、ベイズアルゴリズムおよびランダムアルゴリズムの少なくとも片方を適用して前記ハイパーパラメータに基づき最適化することによって、前記ハイパーパラメータを自動的に最適化する、付記１６に記載のシステム。
（付記１９）
チューナフレームワークが、第１の反復ループで前記１つまたは複数の入力済み素性を、第１の規定の反復回数が満たされるまで自動的に最適化するステップを実行し、第２の反復ループで前記ハイパーパラメータを自動的に最適化するステップおよび前記更新済みモデルを自動的に生成するステップを、第２の規定の反復回数が満たされるまで実行する、付記１６に記載のシステム。
（付記２０）
チューナフレームワークが、前記第１の反復ループおよび前記第２の反復ループを、第３の規定の反復回数が満たされるまで反復的に実行する、付記１９に記載のシステム。
【符号の説明】
【０２５３】
２  モデル生成サーバ
３  端末装置
１０  情報提供装置
２０  通信部
３０  記憶部
４０  制御部
４１  取得部
４２  指標生成部
４３  提示部
４４  受付部
４５  モデル生成部
４６  提供部
【図１】
2020149693.tif 000003
【図２】
2020149693.tif 000004
【図３】
2020149693.tif 000005
【図４】
2020149693.tif 000006
【図５】
2020149693.tif 000007
【図６】
2020149693.tif 000008
【図７】
2020149693.tif 000009
【図８】
2020149693.tif 000010
【図９】
2020149693.tif 000011
【図１０】
2020149693.tif 000012
【図１１】
2020149693.tif 000013
【図１２】
2020149693.tif 000014
【図１３】
2020149693.tif 000015
【図１４】
2020149693.tif 000016
【図１５】
2020149693.tif 000017
【図１６】
2020149693.tif 000018
【図１７】
2020149693.tif 000019
【図１８】
2020149693.tif 000020
【図１９】
2020149693.tif 000021
【図２０】
2020149693.tif 000022
【図２１】
2020149693.tif 000023
【図２２】
2020149693.tif 000024
【図２３】
2020149693.tif 000025
【図２４】
2020149693.tif 000026
【図２５】
2020149693.tif 000027
【図２６】
2020149693.tif 000028
【図２７】
2020149693.tif 000029
【図２８】
2020149693.tif 000030
【図２９】
2020149693.tif 000031
【図３０】
2020149693.tif 000032
【図３１】
2020149693.tif 000033
【図３２】
2020149693.tif 000034
【図３３】
2020149693.tif 000035
【図３４】
2020149693.tif 000036
【図３５】
2020149693.tif 000037
【図３６】
2020149693.tif 000038
【図３７】
2020149693.tif 000039
【図３８】
2020149693.tif 000040
【図３９】
2020149693.tif 000041
【図４０】
2020149693.tif 000042