以下に、本願に係る情報処理方法、情報処理装置および情報処理プログラムを実施するための形態(以下、「実施形態」と呼ぶ)について図面を参照しつつ詳細に説明する。なお、この実施形態により本願に係る情報処理方法、情報処理装置および情報処理プログラムが限定されるものではない。また、各実施形態は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。また、以下の各実施形態において同一の部位には同一の符号を付し、重複する説明は省略される。
[実施形態]
以下の実施形態では、最初にシステム構成等の前提について説明した後、少なくとも1つのモジュールを含むブロックを少なくとも1つ有するモデルの生成時の学習において、遺伝的アルゴリズムに基づく処理を行って、モデルを生成する処理を説明する。なお、モデルの構成要素となるブロック及びモジュールについての詳細は後述するが、例えば、ブロックは、モデルの一部(「部分モデル」ともいう)を構成するものである。また、モジュールは、例えばブロックで実現される機能を実現するための機能単位の要素である。本実施形態では、上述したモデルの生成、実験結果等を示す前に、まずモデルを生成する情報処理システム1の構成等について説明する。
〔1.情報処理システムの構成〕
まず、図1を用いて、情報処理装置の一例である情報処理装置10を有する情報処理システムの構成について説明する。図1は、実施形態に係る情報処理システムの一例を示す図である。図1に示すように、情報処理システム1は、情報処理装置10、モデル生成サーバ2、および端末装置3を有する。なお、情報処理システム1は、複数のモデル生成サーバ2や複数の端末装置3を有していてもよい。また、情報処理装置10と、モデル生成サーバ2とは、同一のサーバ装置やクラウドシステム等により実現されてもよい。ここで、情報処理装置10、モデル生成サーバ2、および端末装置3は、ネットワークN(例えば、図3参照)を介して有線または無線により通信可能に接続される。
情報処理装置10は、モデルの生成における指標(すなわち、モデルのレシピ)である生成指標を生成する指標生成処理と、生成指標に従ってモデルを生成するモデル生成処理とを実行し、生成した生成指標およびモデルを提供する情報処理装置であり、例えば、サーバ装置やクラウドシステム等により実現される。
モデル生成サーバ2は、学習データが有する特徴を学習させたモデルを生成する情報処理装置であり、例えば、サーバ装置やクラウドシステム等により実現される。例えば、モデル生成サーバ2は、モデルの生成指標として、生成するモデルの種別や行動、どのように学習データの特徴を学習させるかといったコンフィグファイルを受付けると、受付けたコンフィグファイルに従って、モデルの自動生成を行う。なお、モデル生成サーバ2は、任意のモデル学習手法を用いて、モデルの学習を行ってもよい。また、例えば、モデル生成サーバ2は、AutoML(Automated Machine Learning)といった各種既存のサービスであってもよい。
端末装置3は、利用者Uによって利用される端末装置であり、例えば、PC(Personal Computer)やサーバ装置等により実現される。例えば、端末装置3は、情報処理装置10とのやり取りを介して、モデルの生成指標を生成させ、生成させた生成指標に従ってモデル生成サーバ2が生成したモデルを取得する。
〔2.情報処理装置10が実行する処理の概要〕
まず、情報処理装置10が実行する処理の概要について説明する。まず、情報処理装置10は、端末装置3からモデルに特徴を学習させる学習データの指摘を受付ける(ステップS1)。例えば、情報処理装置10は、学習に用いる各種の学習データを所定の記憶装置に記憶させており、利用者Uが学習データに指定する学習データの指摘を受付ける。なお、情報処理装置10は、例えば、端末装置3や各種外部のサーバから、学習に用いる学習データを取得してもよい。
ここで、学習データとは、任意のデータが採用可能である。例えば、情報処理装置10は、各利用者の位置の履歴や各利用者が閲覧したウェブコンテンツの履歴、各利用者による購買履歴や検索クエリの履歴等、利用者に関する各種の情報を学習データとしてもよい。また、情報処理装置10は、利用者のデモグラフィック属性やサイコグラフィック属性等を学習データとしてもよい。また、情報処理装置10は、配信対象となる各種ウェブコンテンツの種別や内容、作成者等のメタデータ等を学習データとしてもよい。
このような場合、情報処理装置10は、学習に用いる学習データの統計的な情報に基づいて、生成指標の候補を生成する(ステップS2)。例えば、情報処理装置10は、学習データに含まれる値の特徴等に基づいて、どのようなモデルに対し、どのような学習手法により学習を行えばよいかを示す生成指標の候補を生成する。換言すると、情報処理装置10は、学習データの特徴を精度よく学習可能なモデルやモデルに精度よく特徴を学習させるための学習手法を生成指標として生成する。すなわち、情報処理装置10は、学習手法の最適化を行う。なお、どのような学習データが選択された場合に、どのような内容の生成指標を生成するかについては、後述する。
続いて、情報処理装置10は、生成指標の候補を端末装置3に対して提供する(ステップS3)。このような場合、利用者Uは、生成指標の候補を嗜好や経験則等に応じて修正する(ステップS4)。そして、情報処理装置10は、各生成指標の候補と学習データとをモデル生成サーバ2に提供する(ステップS5)。
一方、モデル生成サーバ2は、生成指標ごとに、モデルの生成を行う(ステップS6)。例えば、モデル生成サーバ2は、生成指標が示す構造を有するモデルに対し、生成指標が示す学習手法により学習データが有する特徴を学習させる。そして、モデル生成サーバ2は、生成したモデルを情報処理装置10に提供する(ステップS7)。
ここで、モデル生成サーバ2によって生成された各モデルは、それぞれ生成指標の違いに由来する精度の違いが生じると考えられる。そこで、情報処理装置10は、各モデルの精度に基づいて、遺伝的アルゴリズムにより新たな生成指標を生成し(ステップS8)、新たに生成した生成指標を用いたモデルの生成を繰り返し実行する(ステップS9)。
例えば、情報処理装置10は、学習データを評価用データと学習用データとに分割し、学習用データが有する特徴を学習させたモデルであって、それぞれ異なる生成指標に従って生成された複数のモデルを取得する。例えば、情報処理装置10は、10個の生成指標を生成し、生成した10個の生成指標と、学習用データとを用いて、10個のモデルを生成する。このような場合、情報処理装置10は、評価用データを用いて、10個のモデルそれぞれの精度を測定する。
続いて、情報処理装置10は、10個のモデルのうち、精度が高い方から順に所定の数のモデル(例えば、5個)を選択する。そして、情報処理装置10は、選択した5個のモデルを生成した際に採用された生成指標から、新たな生成指標を生成する。例えば、情報処理装置10は、各生成指標を遺伝的アルゴリズムの個体と見做し、各生成指標が示すモデルの種別、モデルの構造、各種の学習手法(すなわち、生成指標が示す各種の指標)を遺伝的アルゴリズムにおける遺伝子と見做す。そして、情報処理装置10は、遺伝子の交叉を行う個体の選択および遺伝子の交叉を行うことで、次世代の生成指標を10個新たに生成する。なお、情報処理装置10は、遺伝子の交叉を行う際に、突然変異を考慮してもよい。また、情報処理装置10は、二点交叉、多点交叉、一様交叉、交叉対象となる遺伝子のランダムな選択を行ってもよい。また、情報処理装置10は、例えば、モデルの精度が高い個体の遺伝子程、次世代の個体に引き継がれるように、交叉を行う際の交叉率を調整してもよい。
また、情報処理装置10は、次世代の生成指標を用いて、再度新たな10個のモデルを生成する。そして、情報処理装置10は、新たな10個のモデルの精度に基づいて、上述した遺伝的アルゴリズムによる新たな生成指標の生成を行う。このような処理を繰り返し実行することで、情報処理装置10は、生成指標を学習データの特徴に応じた生成指標、すなわち、最適化された生成指標へと近づけることができる。
また、情報処理装置10は、所定の回数新たな生成指標を生成した場合や、モデルの精度の最大値、平均値、若しくは最低値が所定の閾値を超えた場合等、所定の条件が満たされた場合は、最も精度が高いモデルを提供対象として選択する。そして、情報処理装置10は、選択したモデルと共に、対応する生成指標を端末装置3に提供する(ステップS10)。このような処理の結果、情報処理装置10は、利用者から学習データを選択するだけで、適切なモデルの生成指標を生成するとともに、生成した生成指標に従うモデルを提供することができる。
なお、上述した例では、情報処理装置10は、遺伝的アルゴリズムを用いて生成指標の段階的な最適化を実現したが、実施形態は、これに限定されるものではない。後述する説明で明らかとなるように、モデルの精度は、モデルの種別や構造といったモデルそのものの特徴のみならず、どのような学習データをどのようにモデルに入力するのか、どのようなハイパーパラメータを用いてモデルの学習を行うのかというように、モデルを生成する際(すなわち、学習データの特徴を学習させる際)の指標に応じて大きく変化する。
そこで、情報処理装置10は、学習データに応じて、最適と推定される生成指標を生成するのであれば、遺伝的アルゴリズムを用いた最適化を行わずともよい。例えば、情報処理装置10は、学習データが、経験則に応じて生成された各種の条件を満たすか否かに応じて生成した生成指標を利用者に提示するとともに、提示した生成指標に従ったモデルの生成を行ってもよい。また、情報処理装置10は、提示した生成指標の修正を受付けると、受付けた修正後の生成指標に従ってモデルの生成を行い、生成したモデルの精度等を利用者に対して提示し、再度生成指標の修正を受付けてもよい。すなわち、情報処理装置10は、利用者Uに最適な生成指標を試行錯誤させてもよい。
〔3.生成指標の生成について〕
以下、どのような学習データに対して、どのような生成指標を生成するかの一例について説明する。なお、以下の例は、あくまで一例であり、学習データが有する特徴に応じて生成指標を生成するのであれば、任意の処理が採用可能である。
〔3-1.生成指標について〕
まず、生成指標が示す情報の一例について説明する。例えば、学習データが有する特徴をモデルに学習させる場合、学習データをモデルに入力する際の態様、モデルの態様、およびモデルの学習態様(すなわち、ハイパーパラメータが示す特徴)が最終的に得られるモデルの精度に寄与すると考えられる。そこで、情報処理装置10は、学習データの特徴に応じて、各態様を最適化した生成指標を生成することで、モデルの精度を向上させる。
例えば、学習データには、様々なラベルが付与されたデータ、すなわち、様々な特徴を示すデータが存在すると考えられる。しかしながら、データを分類する際に有用ではない特徴を示すデータを学習データとした場合、最終的に得られるモデルの精度は、悪化する恐れがある。そこで、情報処理装置10は、学習データをモデルに入力する際の態様として、入力する学習データが有する特徴を決定する。例えば、情報処理装置10は、学習データのうち、どのラベルが付与されたデータ(すなわち、どの特徴を示すデータ)を入力するかを決定する。換言すると、情報処理装置10は、入力する特徴の組み合わせを最適化する。
また、学習データには、数値のみのデータや文字列が含まれるデータ等、各種形式のカラムが含まれていると考えられる。このような学習データをモデルに入力する際に、そのまま入力した場合と、他の形式のデータに変換した場合とで、モデルの精度が変化するとも考えられる。例えば、複数種別の学習データ(それぞれ異なる特徴を示す学習データ)であって、文字列の学習データと数値の学習データとを入力する際に、文字列と数値とをそのまま入力した場合と、文字列を数値に変換して数値のみを入力した場合と、数値を文字列と見做して入力した場合とでは、それぞれモデルの精度が変化すると考えられる。そこで、情報処理装置10は、モデルに入力する学習データの形式を決定する。例えば、情報処理装置10は、モデルに入力する学習データを数値とするか、文字列とするかを決定する。換言すると、情報処理装置10は、入力する特徴のカラムタイプを最適化する。
また、それぞれ異なる特徴を示す学習データが存在する場合、どの特徴の組み合わせを同時に入力するかによって、モデルの精度が変化すると考えられる。すなわち、それぞれ異なる特徴を示す学習データが存在する場合、どの特徴の組み合わせの特徴(すなわち、複数の特徴の組み合わせの関係性)を学習させるかにより、モデルの精度が変化すると考えられる。例えば、第1特徴(例えば、性別)を示す学習データと、第2特徴(例えば、住所)を示す学習データと、第3特徴(例えば、購買履歴)を示す学習データとが存在する場合、第1特徴を示す学習データと第2特徴を示す学習データとを同時に入力した場合と、第1特徴を示す学習データと第3特徴を示す学習データとを同時に入力した場合とでは、モデルの精度が変化すると考えられる。そこで、情報処理装置10は、モデルに関係性を学習させる特徴の組み合わせ(クロスフューチャー)を最適化する。
ここで、各種のモデルは、入力データを所定の超平面により分割された所定次元の空間内に投影し、投影した位置が分割された空間のうちいずれの空間に属するかに応じて、入力データの分類を行うこととなる。このため、入力データを投影する空間の次元数が最適な次元数よりも低い場合は、入力データの分類能力が劣化する結果、モデルの精度が悪化する。また、入力データを投影する空間の次元数が最適な次元数よりも高い場合は、超平面との内積値が変化する結果、学習時に用いたデータとは異なるデータを適切に分類することができなくなる恐れがある。そこで、情報処理装置10は、モデルに入力する入力データの次元数を最適化する。例えば、情報処理装置10は、モデルが有する入力層のノードの数を制御することで、入力データの次元数を最適化する。換言すると、情報処理装置10は、入力データの埋め込みを行う空間の次元数を最適化する。
また、モデルには、SVMに加え、複数の中間層(隠れ層)を有するニューラルネットワーク等が存在する。また、このようなニューラルネットワークには、入力層から出力層まで一方方向に情報が伝達されるフィードフォワード型のDNN、中間層で情報の畳み込みを行う畳み込みニューラルネットワーク(CNN:Convolutional Neural Networks)、有向閉路を有する回帰型ニューラルネットワーク(RNN:Recurrent Neural Network)、ボルツマンマシン等、各種のニューラルネットワークが知られている。また、このような各種ニューラルネットワークには、LSTM(Long short-term memory)やその他各種のニューラルネットワークが含まれている。
このように、学習データの各種特徴を学習するモデルの種別が異なる場合、モデルの精度は変化すると考えられる。そこで、情報処理装置10は、学習データの特徴を精度良く学習すると推定されるモデルの種別を選択する。例えば、情報処理装置10は、学習データのラベルとしてどのようなラベルが付与されているかに応じて、モデルの種別を選択する。より具体的な例を挙げると、情報処理装置10は、ラベルとして「履歴」に関連する用語が付されたデータが存在する場合は、履歴の特徴をより良く学習することができると考えられるRNNを選択し、ラベルとして「画像」に関連する用語が付されたデータが存在する場合は、画像の特徴をより良く学習することができると考えられるCNNを選択する。これら以外にも、情報処理装置10は、ラベルがあらかじめ指定された用語若しくは用語と類似する用語であるか否かを判定し、同一若しくは類似すると判定された用語と予め対応付けられた種別のモデルを選択すればよい。
また、モデルの中間層の数や1つの中間層に含まれるノードの数が変化した場合、モデルの学習精度が変化すると考えられる。例えば、モデルの中間層の数が多い場合(モデルが深い場合)、より抽象的な特徴に応じた分類を実現することができると考えられる一方で、バックプロパゲーションにおける局所誤差が入力層まで伝播しづらくなる結果、学習が適切に行えなくなる恐れがある。また、中間層に含まれるノードの数が少ない場合は、より高度が抽象化を行うことができるものの、ノードの数が少なすぎる場合は、分類に必要な情報が欠損する可能性が高い。そこで、情報処理装置10は、中間層の数や中間層に含まれるノードの数の最適化を行う。すなわち、情報処理装置10は、モデルのアーキテクチャの最適化を行う。
また、アテンションの有無やモデルに含まれるノードに自己回帰がある場合とない場合、どのノード間を接続するのかに応じて、ノードの精度が変化すると考えられる。そこで、情報処理装置10は、自己回帰を有するか否か、どのノード間を接続するのかといったネットワークの最適化を行う。
また、モデルの学習を行う場合、モデルの最適化手法(学習時に用いるアルゴリズム)やドロップアウト率、ノードの活性化関数やユニット数等がハイパーパラメータとして設定される。このようなハイパーパラメータが変化した場合にも、モデルの精度が変化すると考えられる。そこで、情報処理装置10は、モデルを学習する際の学習態様、すなわち、ハイパーパラメータの最適化を行う。
また、モデルのサイズ(入力層、中間層、出力層の数やノード数)が変化した場合も、モデルの精度が変化する。そこで、情報処理装置10は、モデルのサイズの最適化についても行う。
このように、情報処理装置10は、上述した各種モデルを生成する際の指標について最適化を行う。例えば、情報処理装置10は、各指標に対応する条件を予め保持しておく。なお、このような条件は、例えば、過去の学習モデルから生成された各種モデルの精度等の経験則により設定される。そして、情報処理装置10は、学習データが各条件を満たすか否かを判定し、学習データが満たす若しくは満たさない条件に予め対応付けられた指標を生成指標(若しくはその候補)として採用する。この結果、情報処理装置10は、学習データが有する特徴を精度良く学習可能な生成指標を生成することができる。
なお、上述したように、学習データから自動的に生成指標を生成し、生成指標に従ってモデルを作成する処理を自動的に行った場合、利用者は、学習データの内部を参照し、どのような分布のデータが存在するかといった判断を行わずともよい。この結果、情報処理装置10は、例えば、モデルの作成に伴ってデータサイエンティスト等が学習データの認識を行う手間を削減するとともに、学習データの認識に伴うプライバシーの毀損を防ぐことができる。
〔3-2.データ種別に応じた生成指標〕
以下、生成指標を生成するための条件の一例について説明する。まず、学習データとしてどのようなデータが採用されているかに応じた条件の一例について説明する。
例えば、学習に用いられる学習データには、整数、浮動小数点、若しくは文字列等がデータとして含まれている。このため、入力されるデータの形式に対して適切なモデルを選択した場合は、モデルの学習精度がより高くなると推定される。そこで、情報処理装置10は、学習データが整数であるか、浮動小数点であるか、若しくは文字列であるかに基いて、生成指標を生成する。
例えば、学習データが整数である場合、情報処理装置10は、学習データの連続性に基いて、生成指標を生成する。例えば、情報処理装置10は、学習データの密度が所定の第1閾値を超える場合、当該学習データが連続性を有するデータであると見做し、学習データの最大値が所定の第2閾値を上回るか否かに基いて生成指標を生成する。また、情報処理装置10は、学習データの密度が所定の第1閾値を下回る場合、当該学習データがスパースな学習データであると見做し、学習データに含まれるユニークな値の数が所定の第3閾値を上回るか否かに基いて生成指標を生成する。
より具体的な例を説明する。なお、以下の例においては、生成指標として、AutoMLによりモデルを自動的に生成するモデル生成サーバ2に対して送信するコンフィグファイルのうち、特徴関数(feature function)を選択する処理の一例について説明する。例えば、情報処理装置10は、学習データが整数である場合、その密度が所定の第1閾値を超えるか否かを判定する。例えば、情報処理装置10は、学習データに含まれる値のうちユニークな値の数を、学習データの最大値に1を加算した値で除算した値を密度として算出する。
続いて、情報処理装置10は、密度が所定の第1閾値を超える場合は、学習データが連続性を有する学習データであると判定し、学習データの最大値に1を加算した値が第2閾値を上回るか否かを判定する。そして、情報処理装置10は、学習データの最大値に1を加算した値が第2閾値を上回る場合は、特徴関数として「Categorical_colum_with_identity & embedding_column」を選択する。一方、情報処理装置10は、学習データの最大値に1を加算した値が第2閾値を下回る場合は、特徴関数として「Categorical_column_with_identity」を選択する。
一方、情報処理装置10は、密度が所定の第1閾値を下回る場合は、学習データがスパースであると判定し、学習データに含まれるユニークな値の数が所定の第3閾値を超えるか否かを判定する。そして、情報処理装置10は、学習データに含まれるユニークな値の数が所定の第3閾値を超える場合は、特徴関数として「Categorical_column_with_hash_bucket & embedding_column」を選択し、学習データに含まれるユニークな値の数が所定の第3閾値を下回る場合は、特徴関数として「Categorical_column_with_hash_bucket」を選択する。
また、情報処理装置10は、学習データが文字列である場合、学習データに含まれる文字列の種別の数に基いて、生成指標を生成する。例えば、情報処理装置10は、学習データに含まれるユニークな文字列の数(ユニークなデータの数)を計数し、計数した数が所定の第4閾値を下回る場合は、特徴関数として「categorical_column_with_vocabulary_list」若しくは/および「categorical_column_with_vocabulary_file」を選択する。また、情報処理装置10は、計数した数が所定の第4閾値よりも大きい第5閾値を下回る場合は、特徴関数として「categorical_column_with_vocabulary_file & embedding_column」を選択する。また、情報処理装置10は、計数した数が所定の第4閾値よりも大きい第5閾値を上回る場合は、特徴関数として「categorical_column_with_hash_bucket & embedding_column」を選択する。
また、情報処理装置10は、学習データが浮動小数点である場合、モデルの生成指標として、学習データをモデルに入力する入力データへの変換指標を生成する。例えば、情報処理装置10は、特徴関数として「bucketized_column」もしくは「numeric_colum」を選択する。すなわち、情報処理装置10は、学習データをバケタイズ(グルーピング)し、バケットの番号を入力とするか、数値をそのまま入力するかを選択する。なお、情報処理装置10は、例えば、各バケットに対して対応付けられる数値の範囲が同程度となるように、学習データのバケタイズを行ってもよく、例えば、各バケットに分類される学習データの数が同程度となるように、各バケットに対して数値の範囲を対応付けてもよい。また、情報処理装置10は、バケットの数やバケットに対して対応付けられる数値の範囲を生成指標として選択してもよい。
また、情報処理装置10は、複数の特徴を示す学習データを取得し、モデルの生成指標として、学習データが有する特徴のうちモデルに学習させる特徴を示す生成指標を生成する。例えば、情報処理装置10は、どのラベルの学習データをモデルに入力するかを決定し、決定したラベルを示す生成指標を生成する。また、情報処理装置10は、モデルの生成指標として、学習データの種別のうちモデルに対して相関を学習させる複数の種別を示す生成指標を生成する。例えば、情報処理装置10は、モデルに対して同時に入力するラベルの組み合わせを決定し、決定した組み合わせを示す生成指標を生成する。
また、情報処理装置10は、モデルの生成指標として、モデルに入力される学習データの次元数を示す生成指標を生成する。例えば、情報処理装置10は、学習データに含まれるユニークなデータの数やモデルに入力するラベルの数、モデルに入力するラベルの数の組み合わせ、バケットの数等に応じて、モデルの入力層におけるノードの数を決定してもよい。
また、情報処理装置10は、モデルの生成指標として、学習データの特徴を学習させるモデルの種別を示す生成指標を生成する。例えば、情報処理装置10は、過去に学習対象とした学習データの密度やスパース具合、ラベルの内容、ラベルの数、ラベルの組み合わせの数等に応じて、生成するモデルの種別を決定し、決定した種別を示す生成指標を生成する。例えば、情報処理装置10は、AutoMLにおけるモデルのクラスとして「BaselineClassifier」、「LinearClassifier」、「DNNClassifier」、「DNNLinearCombinedClassifier」、「BoostedTreesClassifier」、「AdaNetClassifier」、「RNNClassifier」、「DNNResNetClassifier」、「AutoIntClassifier」等を示す生成指標を生成する。
なお、情報処理装置10は、これら各クラスのモデルの各種独立変数を示す生成指標を生成してもよい。例えば、情報処理装置10は、モデルの生成指標として、モデルが有する中間層の数若しくは各層に含まれるノードの数を示す生成指標を生成してもよい。また、情報処理装置10は、モデルの生成指標として、モデルが有するノード間の接続態様を示す生成指標やモデルの大きさを示す生成指標を生成してもよい。これらの独立変数は、学習データが有する各種の統計的な特徴が所定の条件を満たすか否かに応じて、適宜選択されることとなる。
また、情報処理装置10は、モデルの生成指標として、学習データが有する特徴をモデルに学習させる際の学習態様、すなわち、ハイパーパラメータを示す生成指標を生成してもよい。例えば、情報処理装置10は、AutoMLにおける学習態様の設定において、「stop_if_no_decrease_hook」、「stop_if_no_increase_hook」、「stop_if_higher_hook」、もしくは「stop_if_lower_hook」を示す生成指標を生成してもよい。
すなわち、情報処理装置10は、学習に用いる学習データのラベルやデータそのものの特徴に基づいて、モデルに学習させる学習データの特徴、生成するモデルの態様、および学習データが有する特徴をモデルに学習させる際の学習態様を示す生成指標を生成する。より具体的には、情報処理装置10は、AutoMLにおけるモデルの生成を制御するためのコンフィグファイルを生成する。
〔3-3.生成指標を決定する順序について〕
ここで、情報処理装置10は、上述した各種の指標の最適化を同時並行的に行ってもよく、適宜順序だてて実行してもよい。また、情報処理装置10は、各指標を最適化する順序を変更可能としてもよい。すなわち、情報処理装置10は、モデルに学習させる学習データの特徴、生成するモデルの態様、および学習データが有する特徴をモデルに学習させる際の学習態様を決定する順番の指定を利用者から受け付け、受け付けた順序で、各指標を決定してもよい。
例えば、情報処理装置10は、生成指標の生成を開始した場合、入力する学習データの特徴や、どのような態様で学習データを入力するかといった入力素性の最適化を行い、続いて、どの特徴の組み合わせの特徴を学習させるかという入力クロス素性の最適化を行う。続いて、情報処理装置10は、モデルの選択を行うとともに、モデル構造の最適化を行う。その後、情報処理装置10は、ハイパーパラメータの最適化を行い、生成指標の生成を終了する。
ここで、情報処理装置10は、入力素性最適化において、入力する学習データの特徴や入力態様といった各種入力素性の選択や修正、遺伝的アルゴリズムを用いた新たな入力素性の選択を行うことで、入力素性を繰り返し最適化してもよい。同様に、情報処理装置10は、入力クロス素性最適化において、入力クロス素性を繰り返し最適化してもよく、モデル選択およびモデル構造の最適化を繰り返し実行してもよい。また、情報処理装置10は、ハイパーパラメータの最適化を繰り返し実行してもよい。また、情報処理装置10は、入力素性最適化、入力クロス素性最適化、モデル選択、モデル構造最適化、およびハイパーパラメータの最適化という一連の処理を繰り返し実行し、各指標の最適化を行ってもよい。
また、情報処理装置10は、例えば、ハイパーパラメータの最適化を行ってから、モデル選択やモデル構造最適化を行ってもよく、モデル選択やモデル構造最適化の後に、入力素性の最適化や入力クロス素性の最適化を行ってもよい。また、情報処理装置10は、例えば、入力素性最適化を繰り返し実行し、その後入力クロス素性最適化を繰り返し行う。その後、情報処理装置10は、入力素性最適化と入力クロス素性最適化を繰り返し実行してもよい。このように、どの指標をどの順番で最適化するか、最適化においてどの最適化処理を繰り返し実行するかについては、任意の設定が採用可能となる。
〔3-4.情報処理装置が実現するモデル生成の流れについて〕
続いて、図2を用いて、情報処理装置10を用いたモデル生成の流れの一例について説明する。図2は、実施形態における情報処理装置を用いたモデル生成の流れの一例を説明する図である。例えば、情報処理装置10は、学習データと各学習データのラベルとを受付ける。なお、情報処理装置10は、学習データの指定と共に、ラベルを受付けてもよい。
このような場合、情報処理装置10は、データの分析を行い、分析結果に応じたデータ分割を行う。例えば、情報処理装置10は、学習データを、モデルの学習に用いるトレーニング用データと、モデルの評価(すなわち、精度の測定)に用いる評価用データとに分割する。なお、情報処理装置10は、各種テスト用のデータをさらに分割してもよい。なお、このような学習データをトレーニング用データと評価用データとに分割する処理は、各種任意の公知技術が採用可能である。
また、情報処理装置10は、学習データを用いて、上述した各種の生成指標を生成する。例えば、情報処理装置10は、AutoMLにおいて生成されるモデルやモデルの学習を定義するコンフィグファイルを生成する。このようなコンフィグファイルにおいては、AutoMLで用いられる各種の関数がそのまま生成指標を示す情報として格納されることとなる。そして、情報処理装置10は、トレーニング用データと生成指標とをモデル生成サーバ2に提供することで、モデルの生成を行う。
ここで、情報処理装置10は、利用者によるモデルの評価と、モデルの自動生成とを繰り返し行うことで、生成指標の最適化、ひいてはモデルの最適化を実現してもよい。例えば、情報処理装置10は、入力する特徴の最適化(入力素性や入力クロス素性の最適化)、ハイパーパラメータの最適化、および生成するモデルの最適化を行い、最適化された生成指標に従って自動でのモデル生成を行う。そして、情報処理装置10は、生成したモデルを利用者に提供する。
一方、利用者は、自動生成されたモデルのトレーニングや評価、テストを行い、モデルの分析や提供を行う。そして、利用者は、生成された生成指標を修正することで、再度新たなモデルを自動生成させ、評価やテスト等を行う。このような処理を繰り返し実行することで、複雑な処理を実行することなく、試行錯誤しながらモデルの精度を向上させる処理を実現することができる。
〔4.情報処理装置の構成〕
次に、図3を用いて、実施形態に係る情報処理装置10の機能構成の一例について説明する。図3は、実施形態に係る情報処理装置の構成例を示す図である。図3に示すように、情報処理装置10は、通信部20と、記憶部30と、制御部40とを有する。
通信部20は、例えば、NIC(Network Interface Card)等によって実現される。そして、通信部11は、ネットワークNと有線または無線で接続され、モデル生成サーバ2や端末装置3との間で情報の送受信を行う。
記憶部30は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。また、記憶部30は、学習データデータベース31およびモデル生成用データベース32を有する。
学習データデータベース31は、学習に用いるデータに関する各種情報を記憶する。学習データデータベース31には、モデルの学習に用いる学習データのデータセットが格納される。図4は、実施形態に係る学習データベースに登録される情報の一例を示す図である。図4の例では、学習データデータベース31は、「データセットID」、「データID」、「データ」といった項目が含まれる。
「データセットID」は、データセットを識別するための識別情報を示す。「データID」は、各データを識別するための識別情報を示す。また、「データ」は、データIDにより識別されるデータを示す。例えば、図4の例では、各学習データを識別するデータIDに対して、対応するデータ(学習データ)が対応付けられて登録されている。
図4の例では、データセットID「DS1」により識別されるデータセット(データセットDS1)には、データID「DID1」、「DID2」、「DID3」等により識別される複数のデータ「DT1」、「DT2」、「DT3」等が含まれることを示す。なお、図4では、データを「DT1」、「DT2」、「DT3」等といった抽象的な文字列で示すが、データとしては、例えば各種整数、浮動小数点、もしくは文字列等の任意の形式の情報が登録されることとなる。
なお、図示は省略するが、学習データデータベース31は、各データに対応するラベル(正解情報)を各データに対応付けて記憶してもよい。また、例えば、複数のデータを含むデータ群に1つのラベルを対応付けて記憶してもよい。この場合、複数のデータを含むデータ群がモデルに入力されるデータ(入力データ)に対応する。例えば、ラベルとしては、数値や文字列等の任意の形式の情報が用いられる。
なお、学習データデータベース31は、上記に限らず、目的に応じて種々の情報を記憶してもよい。例えば、学習データデータベース31は、各データが学習処理に用いるデータ(トレーニング用データ)であるか、評価に用いるデータ(評価用データ)であるか等を特定可能に記憶してもよい。例えば、学習データデータベース31は、各データがトレーニング用データ及び評価用データのいずれであるかを特定する情報(フラグ等)を、各データに対応付けて格納してもよい。
モデル生成用データベース32は、学習データ以外でモデルの生成に用いられ各種の情報が記憶される。モデル生成用データベース32には、生成するモデルに関する各種の情報が格納される。例えば、モデル生成用データベース32には、遺伝的アルゴリズムに基づきモデルを生成するために用いる情報が格納される。例えば、モデル生成用データベース32には、遺伝的アルゴリズムに基づいて、その後の処理に継承する種別の組み合わせの数を指定する情報が格納される。
例えば、モデル生成用データベース32には、生成するモデルに関する各種のパラメータ等の設定値が格納される。モデル生成用データベース32には、モデルのサイズの上限値(「サイズ上限値」ともいう)が格納される。モデル生成用データベース32には、生成するモデルに含まれるブロック(部分モデル)の数、及び各ブロックに関する情報等、モデルの構造を示す情報が記憶される。モデル生成用データベース32には、ブロックの構成要素として用いられるモジュールに関する情報が記憶される。
モデル生成用データベース32には、各モジュールがどのような処理を行うものであるかを示す情報、各モジュールを構成する要素に関する情報等が記憶される。モデル生成用データベース32には、各モジュールを構成する処理に関する各種情報が記憶される。モデル生成用データベース32には、ノーマライゼーション、ドロップアウト等の各モジュールを構成する処理の情報が記憶される。例えば、モデル生成用データベース32には、図10に示すモジュールMO1~MO7のような、ブロックの構成要素として用いられる各種のモジュールに関する情報が記憶される。
例えば、モデル生成用データベース32には、各ブロックに関する情報が記憶される。モデル生成用データベース32には、各ブロックがどのようなモジュールにより構成されるかを示す情報が記憶される。例えば、モデル生成用データベース32には、各ブロックが有するモジュールの数を示す情報が記憶される。モデル生成用データベース32には、各ブロックに含まれるモジュールを示す情報が記憶される。
モデル生成用データベース32には、各ブロックが入力として用いるデータの種別を示す情報が記憶される。例えば、モデル生成用データベース32には、各ブロックが入力として用いるデータの種別の組み合わせを示す情報が記憶される。モデル生成用データベース32には、図11に示すように、各ブロックが入力として用いるデータの種別の組み合わせ及び各種別のデータを用いる形式を示す情報が記憶される。
なお、モデル生成用データベース32は、上記に限らず、モデルの生成に用いる情報であれば種々のモデル情報を記憶してもよい。
図3に戻り、説明を続ける。制御部40は、例えば、CPU(Central Processing Unit)やMPU(Micro Processing Unit)等によって、情報処理装置10内部の記憶装置に記憶されている各種プログラム(例えばモデルを生成する処理を実行する生成プログラム、情報処理プログラム等、)がRAMを作業領域として実行されることにより実現される。情報処理プログラムは、コンピュータを、少なくとも1つのブロックを有するモデルとして動作させるために用いられる。例えば、情報処理プログラムは、学習データを用いて学習が行われたモデルとしてコンピュータ(例えば情報処理装置10)を動作させる。また、制御部40は、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実現される。図3に示すように、制御部40は、取得部41、決定部42、受付部43、生成部44、処理部45、および提供部46を有する。
取得部41は、記憶部30から情報を取得する。取得部41は、モデルの学習に用いる学習データのデータセットを取得する。取得部41は、モデルの学習に用いる学習データを取得する。例えば、取得部41は、端末装置3から、学習データとして用いる各種のデータと、各種データに付与されるラベルを受付けると、受付けたデータとラベルとを学習データとして学習データデータベース31に登録する。なお、取得部41は、あらかじめ学習データデータベース31に登録されたデータのうち、モデルの学習に用いる学習データの学習データIDやラベルの指定を受付けてもよい。
取得部41は、第1入力層からの出力が入力される第1ブロック、及び第1入力層とは異なる第2入力層からの出力が入力される第2ブロックを含む複数のブロックを有するモデルの学習に用いられ、複数の種別の情報が含まれる学習データを取得する。取得部41は、学習データに含まれる情報が該当する属性である複数の種別の情報が含まれる学習データを取得する。取得部41は、学習データが属するカテゴリを含む複数の種別の情報が含まれる学習データを取得する。取得部41は、取引対象に関する種別を含む複数の種別の情報が含まれる学習データを取得する。取得部41は、取引対象の提供者に関する種別を含む複数の種別の情報が含まれる学習データを取得する。
取得部41は、各々が少なくとも1つのモジュールを含む複数のブロックを有するモデルの学習に用いられる学習データを取得する。取得部41は、入力層からの出力が入力されるブロックを少なくとも1つ有するモデルの学習に用いられ、複数の種別の情報が含まれる学習データを取得する。取得部41は、入力層からの出力が入力されるブロックを少なくとも1つ有するモデルへの入力として用いられる複数の種別の情報が含まれる入力データを取得する。
決定部42は、学習処理に関する各種情報を決定する。決定部42は、学習態様を決定する。決定部42は、生成部44による学習処理における初期値等を決定する。決定部42は、各パラメータの初期値を決定する。決定部42は、各パラメータの初期設定の値を示す設定ファイルを参照し、各パラメータの初期値を決定する。決定部42は、モデルに含ませるブロックの最大数を決定する。決定部42は、ブロックに含ませるモジュールの最大数を決定する。決定部42は、ドロップアウト率を決定する。決定部42は、各ブロックのドロップアウト率を決定する。決定部42は、モデルのサイズを決定する。決定部42は、各ブロックに含まれるモジュールの数を決定する。
受付部43は、利用者に対して提示した生成指標の修正を受付ける。また、受付部43は、モデルに学習させる学習データの特徴、生成するモデルの態様、および学習データが有する特徴をモデルに学習させる際の学習態様を決定する順番の指定を利用者から受け付ける。
生成部44は、決定部42による決定に応じて各種情報を生成する。また、生成部44は、受付部43により受け付けられた指示に応じて各種情報を生成する。例えば、生成部44は、モデルの生成指標を生成してもよい。
生成部44は、学習データを用いた学習において複数のブロックの各々へ入力されるデータに含まれる種別を選択し、複数の種別のうち、選択された種別の組み合わせが第1組み合わせである第1データを第1入力層から第1ブロックへの入力とし、選択された種別の組み合わせが第2組み合わせである第2データを第2入力層から第2ブロックへの入力としてモデルを生成する。生成部44は、学習データを用いた学習において複数のブロックの各々へ入力されるデータに含まれる種別を選択することにより、複数の種別のうち、第1入力層から第1ブロックへ入力される第1データに含まれる種別の組み合わせが第1組み合わせであり、第2入力層から第2ブロックへ入力される第2データに含まれる種別の組み合わせが第2組み合わせであるモデルを生成する。生成部44は、第1入力層から第1ブロックへ入力される第1データに含まれる種別の第1組み合わせと、第2入力層から第2ブロックへ入力される第2データに含まれる種別の第2組み合わせとが異なるモデルを生成する。
生成部44は、複数のブロックの各々へ入力されるデータに含まれる種別の組み合わせを最適化するための処理により、第1組み合わせの第1データが第1ブロックへ入力され、第2組み合わせの第2データが第2ブロックへ入力されるモデルを生成する。生成部44は、遺伝的アルゴリズムに基づく処理により、第1組み合わせの第1データが第1ブロックへ入力され、第2組み合わせの第2データが第2ブロックへ入力されるモデルを生成する。
生成部44は、第1ブロックに含まれるモジュールの数が第1数であり、第2ブロックに含まれるモジュールの数が第2数であるモデルを生成する。生成部44は、第1数のモジュールが含まれる第1ブロックと、第1数とは異なる第2数のモジュールが含まれる第2ブロックを有するモデルを生成する。
生成部44は、学習データを用いた学習により、一のモジュールへの入力が他のモジュールへの入力として接続されたモデルを生成する。生成部44は、少なくとも1つのモジュールを含む第1ブロック、及び少なくとも1つのモジュールを含む第2ブロックを含む複数のブロックを有するモデルを生成する。生成部44は、第1ブロックに含まれる一のモジュールへの入力が、第2ブロックに含まれる他のモジュールへの入力として接続されたモデルを生成する。
生成部44は、第1ブロックにおける第1階層の一のモジュールへの入力が、第2ブロックにおける第2階層の他のモジュールへの入力として接続されたモデルを生成する。生成部44は、一のモジュールへの入力が、第1階層よりも大きい第2階層の他のモジュールへの入力として接続されたモデルを生成する。生成部44は、第1入力層からの出力が入力される第1ブロック、及び第1入力層とは異なる第2入力層からの出力が入力される第2ブロックを含む複数のブロックを有するモデルを生成する。
生成部44は、複数のモジュールを含む第1ブロックを含む複数のブロックを有するモデルを生成する。生成部44は、第1ブロックに含まれる一のモジュールへの入力が、第1ブロックに含まれる他のモジュールへの入力として接続されたモデルを生成する。生成部44は、第1ブロックにおける第1階層の一のモジュールへの入力が、第1ブロックにおける第2階層の他のモジュールへの入力として接続されたモデルを生成する。生成部44は、一のモジュールへの入力が、第1階層よりも大きい第2階層の他のモジュールへの入力として接続されたモデルを生成する。
生成部44は、学習データを用いた学習において、遺伝的アルゴリズムに基づく処理により、ブロックへ入力されるデータに含まれる種別を選択し、複数の種別のうち、選択された種別の組み合わせに対応するデータを入力層からブロックへの入力としてモデルを生成する。生成部44は、学習データを用いた学習において、遺伝的アルゴリズムに基づく処理により、ブロックへ入力されるデータに含まれる種別を選択することにより、複数の種別のうち、入力層からブロックへ入力されるデータに含まれる種別の組み合わせが決定されたモデルを生成する。生成部44は、モデルを用いた推論時には、一部がブロックへの入力として用いられる種別の組み合わせを決定する。これにより、情報処理装置10は、推論に用いるデータの種別を任意に選択することができるため、柔軟な入力データの利用が可能なモデルを生成することができる。
生成部44は、種別の組み合わせのうち、モデルを用いた推論時にマスキングする種別を決定する。生成部44は、遺伝的アルゴリズムに基づく組み合わせ最適化により、入力層からブロックへ入力されるデータに含まれる種別の組み合わせが決定されたモデルを生成する生成する。生成部44は、遺伝的アルゴリズムに基づく探索により、入力層からブロックへ入力されるデータに含まれる種別の組み合わせが決定されたモデルを生成する生成する。
生成部44は、遺伝的アルゴリズムに基づいてモデルを生成してもよい。例えば、生成部44は、各々が種別の組み合わせが異なる複数の組み合わせ候補を対象として、複数のモデルを生成する。生成部44は、生成した複数のモデルのうち、精度が高い所定数(例えば2個等)のモデルに対応する組み合わせ候補(「継承候補」ともいう)を用いて、さらにモデルを生成してもよい。例えば、生成部44は、継承候補の各々から一部の種別の組み合わせを継承し、継承候補の種別の組み合わせがコピーされた種別の候補を用いて、モデルを生成してもよい。生成部44は、上述した継承候補の種別の組み合わせを継承してモデルを生成する処理を繰り返すことにより、最終的に用いるモデルを生成してもよい。
生成部44は、モデルの生成に用いるデータを外部のモデル生成サーバ2に送信することにより、モデル生成サーバ2にモデルの学習を要求し、モデル生成サーバ2からモデル生成サーバ2が学習したモデルを受信することにより、モデルを生成する。
例えば、生成部44は、学習データデータベース31に登録されたデータを用いて、モデルを生成する。生成部44は、トレーニング用データとして用いられる各データとラベルとに基づいて、モデルを生成する。生成部44は、トレーニング用データを入力した場合にモデルが出力する出力結果と、ラベルとが一致するように学習を行うことにより、モデルを生成する。例えば、生成部44は、トレーニング用データとして用いられる各データとラベルとをモデル生成サーバ2に送信することにより、モデル生成サーバ2にモデルを学習させることにより、モデルを生成する。
例えば、生成部44は、学習データデータベース31に登録されたデータを用いて、モデルの精度を測定する。生成部44は、評価用データとして用いられる各データとラベルとに基づいて、モデルの精度を測定する。生成部44は、評価用データを入力した場合にモデルが出力する出力結果と、ラベルとを比較した結果を収集することにより、モデルの精度を測定する。
処理部45は、各種処理を行う。処理部45は、推論処理を行う推論部として機能する。処理部45は、記憶部30に記憶されたモデル(例えばモデルM1)を用いて、推論処理を行う。処理部45は、取得部41により取得されたモデルを用いて推論を行う。処理部45は、生成部44により生成されたモデルを用いて推論を行う。処理部45は、モデル生成サーバ2を利用して学習されたモデルを用いて推論を行う。処理部45は、モデルにデータを入力することにより、当該データに対応する推論結果を生成する推論処理を行う。
処理部45は、生成部44により生成されたモデルを用いた推論処理を実行する。処理部45は、決定された種別の組み合わせに対応する入力データがモデルのブロックへ入力されることにより、モデルが出力した出力データに基づいて、推論処理を実行する。処理部45は、決定された種別の組み合わせのうち、一部のみに対応するデータがモデルのブロックへの入力として用いられることにより、モデルが出力した出力データに基づいて、推論処理を実行する。
処理部45は、決定された種別の組み合わせのうち、一部のマスキング対象となる種別であるマスキング種別がマスキングされたデータがモデルのブロックへの入力として用いられることにより、モデルが出力した出力データに基づいて、推論処理を実行する。処理部45は、所定の基準に基づいて決定されるマスキング種別がマスキングされたデータがモデルのブロックへの入力として用いられることにより、モデルが出力した出力データに基づいて、推論処理を実行する。
処理部45は、推論処理の目的に応じて決定されるマスキング種別がマスキングされたデータがモデルのブロックへの入力として用いられることにより、モデルが出力した出力データに基づいて、推論処理を実行する。処理部45は、推論処理の対象となるユーザに応じて決定されるマスキング種別がマスキングされたデータがモデルのブロックへの入力として用いられることにより、モデルが出力した出力データに基づいて、推論処理を実行する。処理部45は、種別の組み合わせのうち、一部のマスキング対象となる種別であるマスキング種別がマスキングされたデータがモデルのブロックへの入力として用いられることにより、モデルが出力した出力データに基づいて、推論処理を実行する。
処理部45は、モデルを有する外部装置(推論用サーバ)を利用して推論処理を実行してもよい。例えば、処理部45は、モデルを有する推論用サーバに入力データを送信し、外部装置が受信した入力データとモデルとを用いて生成した情報(推論用情報)を受信し、受信した推論用情報を用いて、推論処理を行ってもよい。
提供部46は、生成されたモデルを利用者に提供する。提供部46は、利用者の端末装置3を推論処理に用いられるモデル(例えばモデルM1)として動作させる情報処理プログラムを利用者の端末装置3に送信する。例えば、提供部46は、生成部44により生成されたモデルの精度が所定の閾値を超えた場合は、そのモデルとともに、モデルと対応する生成指標を端末装置3へと送信する。この結果、利用者は、モデルの評価や試用を行うとともに、生成指標の修正を行うことができる。
提供部46は、生成部44により生成された指標を利用者に提示する。例えば、提供部46は、生成指標として生成されたAutoMLのコンフィグファイルを端末装置3に送信する。また、提供部46は、生成指標が生成される度に生成指標を利用者に提示してもよく、例えば、精度が所定の閾値を超えたモデルと対応する生成指標のみを利用者に提示してもよい。
〔5.情報処理システムの処理フロー〕
次に、図5~図8を用いて、情報処理装置10が実行する処理の手順について説明する。図5~図8は、実施形態に係る情報処理の流れの一例を示すフローチャートである。また、以下では、情報処理システム1が処理を行う場合を一例として説明するが、以下に示す処理は、情報処理システム1に含まれる情報処理装置10、モデル生成サーバ2、端末装置3等、情報処理システム1に含まれるいずれの装置が行ってもよい。
〔5-1.生成処理フロー例〕
まず、図5~図7を用いてモデルの生成処理に関する情報処理の流れを説明する。情報処理システム1におけるブロックごとに入力されるデータに含まれる種別が異なるモデルを生成する処理の流れの概要について、図5を用いて説明する。
図5では、情報処理システム1は、第1入力層からの出力が入力される第1ブロック、及び第1入力層とは異なる第2入力層からの出力が入力される第2ブロックを含む複数のブロックを有するモデルの学習に用いられ、複数の種別の情報が含まれる学習データを取得する(ステップS101)。
そして、情報処理システム1は、学習データを用いた学習において複数のブロックの各々へ入力されるデータに含まれる種別を選択し、複数の種別のうち、選択された種別の組み合わせが第1組み合わせである第1データを第1入力層から第1ブロックへの入力とし、選択された種別の組み合わせが第2組み合わせである第2データを第2入力層から第2ブロックへの入力としてモデルを生成する(ステップS102)。例えば、情報処理システム1は、学習データを用いた学習において複数のブロックの各々へ入力されるデータに含まれる種別を選択することにより、複数の種別のうち、第1入力層から第1ブロックへ入力される第1データに含まれる種別の組み合わせが第1組み合わせであり、第2入力層から第2ブロックへ入力される第2データに含まれる種別の組み合わせが第2組み合わせであるモデルを生成する。
次に、情報処理システム1において、一のモジュールへの入力を他のモジュールへの入力としても用いるモデルを生成する処理の流れの概要について図6を用いて説明する。
図6では、情報処理システム1は、各々が少なくとも1つのモジュールを含む複数のブロックを有するモデルの学習に用いられる学習データを取得する(ステップS201)。
そして、情報処理システム1は、学習データを用いた学習により、一のモジュールへの入力が他のモジュールへの入力として接続されたモデルを生成する(ステップS202)。例えば、情報処理システム1は、第1ブロックの一のモジュールへの入力が、第2ブロックの他のモジュールへの入力として接続されたモデルを生成する。
次に、情報処理システム1において、遺伝的アルゴリズムに基づく処理によりモデルを生成する処理の流れの概要について図7を用いて説明する。
図7では、情報処理システム1は、入力層からの出力が入力されるブロックを少なくとも1つ有するモデルの学習に用いられ、複数の種別の情報が含まれる学習データを取得する(ステップS301)。
そして、情報処理システム1は、学習データを用いた学習において、遺伝的アルゴリズムに基づく処理により、ブロックへ入力されるデータに含まれる種別を選択し、複数の種別のうち、選択された種別の組み合わせに対応するデータを入力層からブロックへの入力としてモデルを生成する(ステップS302)。例えば、情報処理システム1は、学習データを用いた学習において、遺伝的アルゴリズムに基づく処理により、ブロックへ入力されるデータに含まれる種別を選択することにより、複数の種別のうち、入力層からブロックへ入力されるデータに含まれる種別の組み合わせが決定されたモデルを生成する。
〔5-2.推論処理フロー例〕
次に、図8を用いてモデルを用いた推論処理に関する情報処理の流れを説明する。情報処理システム1において、モデルを用いて推論を行う処理の流れの概要について図8を用いて説明する。例えば、情報処理システム1では、モデルへの入力のうち一部をマスキングして推論処理を実行する。
図8では、情報処理システム1は、入力層からの出力が入力されるブロックを少なくとも1つ有するモデルへの入力として用いられる複数の種別の情報が含まれる入力データを取得する(ステップS401)。
そして、情報処理システム1は、種別の組み合わせのうち、一部のマスキング対象となる種別であるマスキング種別がマスキングされたデータがモデルのブロックへの入力として用いられることにより、モデルが出力した出力データに基づいて、推論処理を実行する(ステップS402)。例えば、情報処理システム1は、モデルへの入力データのうち、一部の種別に対応するデータをマスキングして、モデルへ入力することにより、モデルが出力した出力データに基づいて、推論処理を実行する。
〔6.情報処理システムの処理例〕
ここで、上述した図5~図8の処理を情報処理システム1が行う一例を説明する。情報処理装置10は、学習データを取得する。情報処理装置10は、モデルの生成に用いるパラメータ等の情報を取得する。例えば、情報処理装置10は、生成するモデルについての各種の上限値を示す情報を取得する。例えば、情報処理装置10は、生成するモデルのサイズ上限値を示す情報を取得する。また、情報処理装置10は、遺伝的アルゴリズムにおける各種の設定値を取得する。例えば、情報処理装置10は、遺伝的アルゴリズムにおける継承候補の数を示す情報を取得する。
情報処理装置10は、学習データ、モデルの構造を示す情報、サイズ上限値等の各種の上限値、遺伝的アルゴリズムでの設定値等を示す情報を基にモデルを生成する。情報処理装置10は、各入力層からの出力が入力される複数のブロックを有するモデルを生成する。情報処理装置10は、各々が少なくとも1つのモジュールを含む複数のブロックを有するモデルを生成する。情報処理装置10は、遺伝的アルゴリズムに基づく処理により、ブロックへ入力されるデータに含まれる種別を選択することにより、複数の種別のうち、入力層からブロックへ入力されるデータに含まれる種別の組み合わせが決定されたモデルを生成する。
例えば、情報処理装置10は、一の入力層(第1入力層)からの出力が入力される一のブロック(第1ブロック)、及び第1入力層とは異なる他の入力層(第2入力層)からの出力が入力される他のブロック(第2ブロック)を含む複数のブロックを有するモデルを生成する。具体的には、情報処理装置10は、データに含まれる複数の種別のうち、一の組み合わせ(第1組み合わせ)のデータ(第1データ)が1入力層から第1ブロックへ入力され、他の組み合わせ(第2組み合わせ)のデータ(第2データ)が第2入力層から第2ブロックへ入力されるモデルを生成する。
例えば、情報処理装置10は、一のモジュールへの入力が他のモジュールへの入力として接続されたモデルを生成する。具体的には、情報処理装置10は、第1ブロックに含まれる一のモジュールへの入力が、第2ブロックに含まれる他のモジュールへの入力として接続されたモデルを生成する。
情報処理装置10は、モデルを学習するモデル生成サーバ2へモデルの生成に用いる情報を送信する。例えば、情報処理装置10は、学習データ、モデルの構造を示す情報、サイズ上限値等の各種の上限値、遺伝的アルゴリズムでの設定値等を示す情報をモデル生成サーバ2へ送信する。
情報処理装置10から情報を受信したモデル生成サーバ2は、学習処理によりモデルを生成する。そして、モデル生成サーバ2は、生成したモデルを情報処理装置10へ送信する。このように、本願でいう「モデルを生成する」ことには、自装置でモデルを学習する場合に限らず、他の装置にモデルの生成に必要な情報を提供することで、他の装置にモデルの生成し指示し、他の装置が学習したモデルを受信することを含む概念である。情報処理システム1においては、情報処理装置10は、モデルを学習するモデル生成サーバ2へモデルの生成に用いる情報を送信し、モデル生成サーバ2が生成したモデルを取得することにより、モデルを生成する。このように、情報処理装置10は、他の装置へモデルの生成に用いる情報を送信することによりモデルの生成を要求し、要求を受けた他の装置にモデルを生成させることにより、モデルを生成する。
〔7.モデル〕
ここから、モデルについて説明する。以下では、情報処理システム1において生成されるモデルの構造及び学習態様等、モデルに関する各点について説明する。
〔7-1.モデルの構造例〕
まず、生成するモデルの構造の一例について、図9を用いて説明する。情報処理システム1は、図9に示すようなモデルM1を生成する。図9は、実施形態に係るモデルの構造の一例を示す図である。図9では、情報処理システム1は、ブロックBL1、BL2、BL3、BL4等の複数のブロック等の各種の構成を有するモデルM1を生成する。ブロックBL1、BL2、BL3、BL4等を特に区別せずに説明する場合、「ブロックBL」や単に「ブロック」と記載する場合がある。なお、図9では、モデルM1が4つのブロックBLを有する場合を一例として示すが、モデルM1は、5つ以上のブロックBLを有してもよいし、3つ以下のブロックBLを有してもよい。
図9において「Input Layer」と表記された入力層EL10、EL20、EL30、EL40等は、入力データが入力される層を示す。入力層EL10は、その出力がブロックBL1へ入力される入力層である。また、入力層EL20は、その出力がブロックBL2へ入力される入力層である。入力層EL30は、その出力がブロックBL3へ入力される入力層である。入力層EL40は、その出力がブロックBL4へ入力される入力層である。
入力層EL10、EL20、EL30、EL40等の各々には、図9において「Input」と表記された情報(入力データ)が入力される。なお、図9では、入力層EL10、EL20、EL30、EL40等の各入力層には、各々のブロックに対応する異なる種別の組み合わせのデータが入力されるが、この点については後述する。
入力層EL10の後にはブロックBL1が配置され、入力層EL20の後にはブロックBL2が配置され、入力層EL30の後にはブロックBL3が配置され、入力層EL40の後にはブロックBL4が配置される。図9に示すように、1つの入力層に1つのブロックBLが接続される。このように、モデルM1は、ブロックの数に対応する数の入力層を有する。例えば、モデルM1は、ブロックBL1、BL2、BL3、BL4の数に対応する4つの入力層EL10、EL20、EL30、EL40を有する。
ブロックBL1は、図9において4つのモジュール層(モジュール)を含む。ブロックBL1は、「Logic Module #1」と表記されたモジュール層EL11、「Logic Module #2」と表記されたモジュール層EL12、「Logic Module #3」と表記されたモジュール層EL13及び「Logic Module #4」と表記されたモジュール層EL14を含む。ブロックBL1では、モジュール層EL11の後にモジュール層EL12が配置され、モジュール層EL12の後にモジュール層EL13が配置され、モジュール層EL13の後にモジュール層EL14が配置される。すなわち、入力層EL10の出力がモジュール層EL11に入力され、モジュール層EL11の出力がモジュール層EL12に入力され、モジュール層EL12の出力がモジュール層EL13に入力され、モジュール層EL13の出力がモジュール層EL14に入力される。
ここで、図9のモデルM1では、モジュール層EL11とモジュール層EL13とが接続される。モデルM1では、モジュール層EL11への入力がモジュール層EL13への入力としても用いられる。例えば、ブロックBL1に含まれる一のモジュールであるモジュール層EL11への入力が、ブロックBL1に含まれる他のモジュールであるモジュール層EL13への入力として接続される。図9のモデルM1では、モジュール層EL13への入力は、モジュール層EL12からの出力に加えて、モジュール層EL11への入力が用いられる。この場合、モジュール層EL13には、入力層EL10からの出力と、モジュール層EL12からの出力とが入力される。このように、図9では、ブロックBL1の1階層目のモジュールであるモジュール層EL11への入力が、1階層目よりも大きい3階層目のモジュール層EL13への入力として接続されたモデルM1が生成される。これにより、モデルM1のブロックBL1では、モジュール層EL11の処理の影響を受けていないデータをモジュール層EL11よりも後段(後の階層)のモジュール層EL13の入力として用いることができる。
なお、モジュール層EL11、EL12、EL13、EL14等には、図10に示すような任意のモジュールが採用可能である。図10は、実施形態に係るモジュール例を示す図である。
図10には、ブロックBLに含まれるモジュールの例示を示す。図10で「Sparse: -1」と表記されたモジュールMO1は、「Dropout」と表記されたドロップアウト処理、及び「Batch Norm」と表記されたバッチノーマライゼーション処理等の機能を有する第1タイプのモジュールである。また、図10で「Self Attention: -2」と表記されたモジュールMO2は、「Self Attention」と表記されたセルフアテンション処理、及びバッチノーマライゼーション処理等の機能を有する第2タイプのモジュールである。また、図10で「ResNet: -3」と表記されたモジュールMO3は、「Hidden Layer」と表記された隠れ層、及びバッチノーマライゼーション処理等の機能を有する第3タイプのモジュールである。同様に、モジュールMO4~MO7は、各々対応する機能を第4~第7タイプのモジュールである。
なお、図10に示すモジュールMO1~MO7は一例に過ぎず、ブロックBLには任意のモジュールが含まれてもよい。図9では、例えば、ブロックBL1のモジュール層EL11はモジュールMO1であってもよい。また、ブロックBL1のモジュール層EL12はモジュールMO3であってもよい。また、ブロックBL1のモジュール層EL13はモジュールMO4であってもよい。また、ブロックBL1のモジュール層EL14はモジュールMO7であってもよい。このように、情報処理システム1は、上記のモジュールMO1~MO7等の任意のモジュールを適宜組み合わせたモデルM1を生成することができる。
また、ブロックBL1の後には、図9において「Logits Layer」と表記されたロジット層EL15を含む。ロジット層EL15は、ブロックBL1からの出力が入力される層であり、ブロックBL1からの出力を基に合成層EL50へ出力する情報(値)を生成する。図9では、ロジット層EL15には、ブロックBL1のモジュール層EL14の出力が入力される。例えば、ロジット層EL15は、ブロックBL1に対応する出力層として機能する。
ブロックBL2は、図9において2つのモジュール層(モジュール)を含む。ブロックBL2は、「Logic Module #1」と表記されたモジュール層EL21及び「Logic Module #2」と表記されたモジュール層EL22を含む。ブロックBL2では、モジュール層EL21の後にモジュール層EL22が配置される。すなわち、入力層EL20の出力がモジュール層EL21に入力され、モジュール層EL21の出力がモジュール層EL22に入力される。
ここで、図9のモデルM1では、モジュール層EL11とモジュール層EL22とが接続される。すなわち、図9のモデルM1では、ブロックBL1のモジュール層EL11への入力がブロックBL2のモジュール層EL22への入力としても用いられる。このように、図9のモデルM1では、一のブロックであるブロックBL1でのデータ(情報)が他のブロックであるブロックBL2のデータ(情報)としても用いられる。
例えば、ブロックBL1に含まれる一のモジュールであるモジュール層EL11への入力が、ブロックBL1以外のブロックBL2に含まれる他のモジュールであるモジュール層EL22への入力として接続される。図9のモデルM1では、モジュール層EL22への入力は、モジュール層EL21からの出力に加えて、モジュール層EL11への入力が用いられる。この場合、モジュール層EL22には、入力層EL10からの出力と、モジュール層EL21からの出力とが入力される。このように、図9では、ブロックBL1の1階層目のモジュールであるモジュール層EL11への入力が、1階層目よりも大きい2階層目のモジュール層EL22への入力として接続されたモデルM1が生成される。これにより、モデルM1では、一のブロックのモジュールへ入力されるデータを他のブロックのモジュールへの入力として用いることができる。
なお、上記は一例に過ぎず、モデルM1は、第1ブロックに含まれる一のモジュールへの入力が、第2ブロックに含まれる他のモジュールへの入力として接続されれば任意の構成が採用可能である。例えば、図9では、モジュール層EL11への入力をモジュール層EL22への入力として用いる場合を示したが、モジュール層EL11からの出力をモジュール層EL22への入力として用いてもよい。この場合、ブロックBL1に含まれる一のモジュールであるモジュール層EL12への入力が、ブロックBL1以外のブロックBL2に含まれる他のモジュールであるモジュール層EL22への入力として接続される。ブロックBL1の2階層目のモジュールであるモジュール層EL12への入力が、2階層目のモジュール層EL22への入力として接続されたモデルM1が生成される。
モジュール層EL21、EL22等には、図10に示すような任意のモジュールが採用可能である。図9では、例えば、ブロックBL2のモジュール層EL21はモジュールMO5であってもよい。また、ブロックBL2のモジュール層EL22はモジュールMO2であってもよい。
また、ブロックBL2の後には、図9において「Logits Layer」と表記されたロジット層EL25を含む。ロジット層EL25は、ブロックBL2からの出力が入力される層であり、ブロックBL2からの出力を基に合成層EL50へ出力する情報(値)を生成する。図9では、ロジット層EL25には、ブロックBL2のモジュール層EL22の出力が入力される。例えば、ロジット層EL25は、ブロックBL2に対応する出力層として機能する。
ブロックBL3は、図9において3つのモジュール層(モジュール)を含む。ブロックBL3は、「Logic Module #1」と表記されたモジュール層EL31、「Logic Module #2」と表記されたモジュール層EL32及び「Logic Module #3」と表記されたモジュール層EL33を含む。ブロックBL3では、モジュール層EL31の後にモジュール層EL32が配置され、モジュール層EL32の後にモジュール層EL33が配置される。すなわち、入力層EL30の出力がモジュール層EL31に入力され、モジュール層EL31の出力がモジュール層EL32に入力され、モジュール層EL32の出力がモジュール層EL33に入力される。
ここで、図9のモデルM1では、モジュール層EL32とモジュール層EL33とが接続される。モデルM1では、モジュール層EL32への入力がモジュール層EL33への入力としても用いられる。例えば、ブロックBL3に含まれる一のモジュールであるモジュール層EL32への入力が、ブロックBL3に含まれる他のモジュールであるモジュール層EL33への入力として接続される。図9のモデルM1では、モジュール層EL33への入力は、モジュール層EL32からの出力に加えて、モジュール層EL32への入力が用いられる。この場合、モジュール層EL33には、モジュール層EL31からの出力と、モジュール層EL32からの出力とが入力される。このように、図9では、ブロックBL3の2階層目のモジュールであるモジュール層EL32への入力が、2階層目よりも大きい3階層目のモジュール層EL33への入力として接続されたモデルM1が生成される。これにより、モデルM1のブロックBL3では、モジュール層EL32の処理の影響を受けていないデータをモジュール層EL32よりも後段(後の階層)のモジュール層EL33の入力として用いることができる。
また、図9のモデルM1では、モジュール層EL21とモジュール層EL33とが接続される。すなわち、図9のモデルM1では、ブロックBL2のモジュール層EL21への入力がブロックBL3のモジュール層EL33への入力としても用いられる。このように、図9のモデルM1では、一のブロックであるブロックBL2でのデータ(情報)が他のブロックであるブロックBL3のデータ(情報)としても用いられる。
例えば、ブロックBL2に含まれる一のモジュールであるモジュール層EL21への入力が、ブロックBL2以外のブロックBL3に含まれる他のモジュールであるモジュール層EL33への入力として接続される。図9のモデルM1では、モジュール層EL33への入力は、モジュール層EL32からの出力に加えて、モジュール層EL21への入力が用いられる。この場合、モジュール層EL33には、入力層EL20からの出力と、モジュール層EL32からの出力とが入力される。このように、図9では、ブロックBL2の1階層目のモジュールであるモジュール層EL21への入力が、1階層目よりも大きい3階層目のモジュール層EL33への入力として接続されたモデルM1が生成される。これにより、モデルM1では、一のブロックのモジュールへ入力されるデータを他のブロックのモジュールへの入力として用いることができる。
例えば、図9では、モジュール層EL21への入力をモジュール層EL33への入力として用いる場合を示したが、モジュール層EL21からの出力をモジュール層EL33への入力として用いてもよい。この場合、ブロックBL2に含まれる一のモジュールであるモジュール層EL22への入力が、ブロックBL2以外のブロックBL3に含まれる他のモジュールであるモジュール層EL33への入力として接続される。ブロックBL2の2階層目のモジュールであるモジュール層EL22への入力が、2階層目よりも大きい3階層目のモジュール層EL33への入力として接続されたモデルM1が生成される。
モジュール層EL31、EL32、EL33等には、図10に示すような任意のモジュールが採用可能である。図9では、例えば、ブロックBL3のモジュール層EL31はモジュールMO5であってもよい。また、ブロックBL3のモジュール層EL32はモジュールMO2であってもよい。また、ブロックBL3のモジュール層EL33はモジュールMO2であってもよい。
また、ブロックBL3の後には、図9において「Logits Layer」と表記されたロジット層EL35を含む。ロジット層EL35は、ブロックBL3からの出力が入力される層であり、ブロックBL3からの出力を基に合成層EL50へ出力する情報(値)を生成する。図9では、ロジット層EL35には、ブロックBL3のモジュール層EL33の出力が入力される。例えば、ロジット層EL35は、ブロックBL3に対応する出力層として機能する。
ブロックBL4は、図9において1つのモジュール層(モジュール)を含む。ブロックBL4は、「Logic Module #1」と表記されたモジュール層EL41を含む。すなわち、入力層EL40の出力がモジュール層EL41に入力される。
モジュール層EL41には、図10に示すような任意のモジュールが採用可能である。図9では、例えば、ブロックBL4のモジュール層EL41はモジュールMO6であってもよい。
また、ブロックBL4の後には、図9において「Logits Layer」と表記されたロジット層EL45を含む。ロジット層EL45は、ブロックBL4からの出力が入力される層であり、ブロックBL4からの出力を基に合成層EL50へ出力する情報(値)を生成する。図9では、ロジット層EL45には、ブロックBL4のモジュール層EL41の出力が入力される。例えば、ロジット層EL45は、ブロックBL4に対応する出力層として機能する。
ロジット層EL15、EL25、EL35、EL45の出力は、合成層EL50へ入力される。合成層EL50は、モデルM1の出力層であってもよい。合成層EL50は、各ブロックBLにおける処理結果を集約する処理を行う層である。合成層EL50は、各ブロックBLにおける処理結果を基に合成処理を行う。例えば、合成層EL50は、ソフトマックス等の任意の処理を行う層であってもよい。例えば、合成層EL50では、各ロジット層EL15、EL25、EL35、EL45が直接全結合で接続されてもよい。
合成層EL50は、ロジット層EL15、EL25、EL35、EL45等のロジット層の出力を基に出力する情報を生成する。合成層EL50は、ロジット層EL15、EL25、EL35、EL45等のロジット層の出力の平均を出力情報として算出する。例えば、合成層EL50は、ロジット層EL15、EL25、EL35、EL45等のロジット層の出力において対応する各出力との各々の平均を算出することにより、ロジット層EL15、EL25、EL35、EL45等のロジット層の出力を合成した情報(合成出力)を生成する。合成層EL50は、生成した合成出力を対象として、ソフトマックスの処理を行う。合成層EL50は、出力の総和が100%(1)になるように各出力の値を変換してもよい。また、合成層EL50は、ロジット層EL15、EL25、EL35、EL45等のロジット層の出力の合計を出力情報として算出してもよい。
なお、上記構成は一例に過ぎず、モデルは任意の構成が採用可能である。モデルM1では、ブロックBLのモジュールについて、任意の接続が採用可能である。例えば、モデルM1では、ブロックBL1のモジュールの入力が、ブロックBL4の入力として用いられてもよい。例えば、モデルM1は、入力層からの出力をエンベディングする構成要素が設けられてもよい。例えば、ブロックBL1には、入力層EL10からの出力をベクトル化するエンベディング層が設けられてもよい。また、ブロックBL2には、入力層EL20からの出力をベクトル化するエンベディング層が設けられてもよい。また、ブロックBL3には、入力層EL30からの出力をベクトル化するエンベディング層が設けられてもよい。また、ブロックBL4には、入力層EL40からの出力をベクトル化するエンベディング層が設けられてもよい。
また、ブロックBL内の各モジュール層にはエンベディングされたデータが入力されてもよい。例えば、ブロックBL1のモジュール層EL12には、モジュール層EL11からの出力に加えて、入力層EL10からの出力をエンベディングしたデータが入力されてもよい。また、ブロックBL1のモジュール層EL13には、モジュール層EL12からの出力に加えて、入力層EL10からの出力をエンベディングしたデータが入力されてもよい。この場合、モジュール層EL11、EL12、EL13は、例えばResNetであるモジュールMO3であってもよい。
また、モデルM1では、複数のブロックBLのロジット層を共通化してもよい。例えば、モデルM1では、ロジット層EL15、EL25、EL35、EL45等に代えて1つのロジット層(共通ロジット層)を配置し、共通ロジット層の前段に各ブロックBLからの出力が入力されるモジュール(共通モジュール層)が配置されてもよい。この場合、モデルM1では、ブロックBL1、BL2、BL3、BL4の各々の出力が入力される共通モジュール層がブロックBL1、BL2、BL3、BL4の後段に配置され、共通モジュール層からの出力が入力される共通モジュール層が共通モジュール層の後段に配置される。このように、モデルM1はブロックBL外にブロックBL全体で共有される共通モジュール層が設けられてもよい。
上述のように、情報処理システム1は、複数のブロックBLが並列に接続され、各ブロックBLのモジュール間が接続されたモデルM1を学習する。これにより、情報処理システム1は、ブロックBLごとの機能を実現しつつ、ブロックBL間での情報の伝達も可能にするモデルM1を生成することができる。
〔7-2.入力の組み合わせ〕
ここで、ブロック毎に任意の組み合わせの特徴(Feature)の情報を入力することが可能である。例えば、モデルのブロックごとに任意の組み合わせの種別のデータを入力することが可能である。例えば、ここでいう種別は、データに含まれる情報が該当する属性であってもよい。例えば、種別には、データに含まれる文字列が該当する属性に関する種別が含まれてもよい。例えば、種別にはデータが属するカテゴリが含まれてもよい。例えば、データが取引対象(商品等)の取引履歴(販売履歴等)である場合、種別には、取引対象に関する種別が含まれてもよい。例えば、データが取引対象(商品等)の取引履歴(販売履歴等)である場合、種別には、取引対象の提供者に関する種別が含まれてもよい。例えば、データが書籍の販売履歴である場合、種別には、その書籍の著者に対応する種別が含まれてもよい。
例えば、モデルM1のブロックBL1、BL2、BL3、BL4等には、データに含まれる複数の種別から選択された任意の組み合わせの種別のデータが入力されてもよい。情報処理システム1は、複数のブロックBLの各々へ入力されるデータに含まれる種別の組み合わせを最適化するための処理により、ブロックBL1、BL2、BL3、BL4の各々へ入力される種別の組み合わせを決定してもよい。情報処理システム1は、遺伝的アルゴリズムに基づく処理により、ブロックBL1、BL2、BL3、BL4の各々へ入力される種別の組み合わせを決定してもよい。
例えば、情報処理システム1は、図11に示すように、各ブロックBLに対応する種別の組み合わせを決定する。図11は、実施形態に係る入力の組み合わせの一例を示す図である。図11中の各行は、データに含まれる各情報の種別を示す。すなわち、図11中の各行は、データに含まれるFeatureを示す。なお、図11では、各種別を種別#1、種別#2等のように抽象的に表現するが、各種別はそのデータの種別(属性)を示す具体的なである。例えば、種別#1~#4は、データに含まれる情報が該当する任意の属性であってもよい。例えば、種別#1は、取引対象の名称であってもよい。また、図11では、種別#1~#4を図示するが、データに含まれる種別は5つ以上であってもよいし、3つ以下であってもよい。例えば、データに含まれる種別が6つである場合、種別には、種別#5、#6が含まれてもよい。
図11中の各行はブロックBL1、BL2、BL3、BL4の各々に対応する。例えば、図11中のブロック「BL1」を表示された行は、モデルM1のブロックBL1の入力として用いられるデータの種別の組み合わせを示す。すなわち、図11中のブロック「BL1」を表示された行は、モデルM1のブロックBL1の入力として用いられるFeatureを示す。
図11中で「-」が配置された種別は、その種別の情報が対応するブロックの入力として用いられないことを示す。図11中で数字(「形式識別情報」)が配置された種別は、その種別の情報が対応するブロックの入力として用いられることを示す。また、その数字(形式識別情報)は、その種別がそのブロックで用いられる形式を示す。例えば、その種別の情報が整数(インテジャー)である場合、形式識別情報「0」は、その情報がワンホットベクトルとして用いられることを示し、形式識別情報「1」は、その情報がエンベディング(ベクトル化)されて用いられることを示してもよい。また、例えば、形式識別情報は、パケタイズの方法を示すものであってもよい。
図11では、モデルM1のブロックBL1は、種別#1に対応する情報と、種別#2に対応する情報が入力として用いられることを示す。また、ブロックBL1では、種別#1に対応する情報は、形式識別情報「0」に対応する形式で用いられることを示す。ブロックBL1では、種別#2に対応する情報は、形式識別情報「1」に対応する形式で用いられることを示す。ブロックBL1では、種別#3及び種別#4に対応する情報は、用いられないことを示す。
〔7-3.モデルの生成例〕
ここから、モデルの生成の一例について図12~図14を用いて説明する。図12及び図13は、実施形態に係るパラメータの一例を示す図である。図14は、実施形態に係るモデルの生成処理の一例を示す図である。例えば、情報処理システム1は、図14に示すように、Featureの組み合わせを最適化しながら、ブロックを1つずつ増加することで精度を向上させてもよい。なお、上述した内容と同様の点については適宜説明を省略する。
この場合、情報処理システム1は、任意の設定を基に、モデルを生成してもよい。例えば、情報処理システム1は、モデルに関する一部の構成要素を固定し、それ以外の構成要素を学習により変更することにより、モデルを更新してもよい。例えば、情報処理システム1は、最適化済みのブロックのFeatureの設定と構造を固定して最適化を行ってもよい。例えば、情報処理システム1は、最適化済みのブロックの種別の組み合わせ、及び、そのブロックの構造を固定し、新たに追加するブロック(新規ブロック)の種別の組み合わせ、その新規ブロックの構造及び、最適化済みのブロックのモジュールと新規ブロックのモジュールとの間の接続についての最適化を行ってもよい。
例えば、情報処理システム1は、図12や図13に示す設定に基づいて、Featureの組み合わせやモデルの構造を固定してもよい。例えば、情報処理システム1は、図12や図13に示すような設定が記載された設定ファイルを参照し、ブロックの種別の組み合わせやブロックの構造を固定してもよい。図12は、最適化済みのFeatureの組み合わせを固定する場合の設定例を示す。具体的には、図12は、最適化済みの2つのブロックの種別の組み合わせを固定する場合の設定例を示す。また、図13は、最適化済みのHiddenブロック構造を固定する場合の設定例を示す。具体的には、図13は、最適化済みの2つのブロックの隠れ層を固定する場合の設定例を示す。なお、図12及び図13に示す設定は、一例に過ぎず、情報処理システム1は、任意の設定に基づいて、モデルの一部の構成要素を固定して学習を行うことにより、モデルを更新してもよい。
例えば、情報処理システム1は、ブロックについては構造のみを固定し、パラメータを再学習することにより、モデルを生成してもよい。例えば、情報処理システム1は、新たに追加するブロック以外のブロック、すなわち既にモデルに追加した最適化済みブロックについては構造のみを固定し、最適化済みブロックについてはパラメータのみを再学習することにより、モデルを生成してもよい。
図14中の「ブロック数=1」に対応する部分では、情報処理システム1は、ブロック数が1つであり、ブロックBL1のみが含まれる状態で学習されたモデルを示す。情報処理システム1は、モジュール層EL11~EL14を含むブロックBL1を有するモデルを学習する。図14では、情報処理システム1は、ブロックBL1への入力の種別の組み合わせを、データIDT1に対応する種別の組み合わせに決定する。
そして、情報処理システム1は、ブロック数が1つの状態で学習されたモデルに、新規モデルを追加する(ステップS11)。図14中の「ブロック数=2」に対応する部分では、情報処理システム1は、ブロック数が2つであり、ブロックBL1及びブロックBL2が含まれる状態で学習されたモデルを示す。情報処理システム1は、モジュール層EL21、EL22を含むブロックBL2及びブロックBL1を有するモデルを学習する。例えば、情報処理システム1は、ブロックBL1については構造のみを固定し、パラメータを再学習することにより、モデルを生成してもよい。例えば、情報処理システム1は、ブロックBL1については構造及び種別の組み合わせを固定し、ブロックBL2(のモジュール層)との間の接続等のパラメータを再学習することにより、モデルを生成してもよい。図14では、情報処理システム1は、ブロックBL1への入力の種別の組み合わせを、データIDT2に対応する種別の組み合わせに決定する。
上記のように、情報処理システム1は、モデル構造を決定するために、1つのブロックで最適化を実行する。そして、情報処理システム1は、精度が最も高いモデル(「ベストモデル」ともいう)と同じ構造のブロック(新規ブロック)を、そのブロック(最適化済みブロック)に並列して1つ追加し、再学習を行う。この場合、情報処理システム1は、最適化済みブロック(学習済みブロック)については、構造を固定して学習を行ってもよいし、構造を固定せずに学習を行ってもよい。また、情報処理システム1は、学習済みブロックについては、種別の組み合わせを固定して学習を行ってもよいし、種別の組み合わせを固定せずに学習を行ってもよい。また、情報処理システム1は、学習済みブロックについては、隠れ層(Hidden Layer)を固定して学習を行ってもよいし、隠れ層を固定せずに学習を行ってもよい。
例えば、情報処理システム1は、上述した処理により新規ブロックの追加を行って、モデルを学習する処理を繰り返してもよい。そして、情報処理装置10は、生成したモデルがサイズ上限値を超えた場合に、生成処理を終了することにより、モデルM1を生成してもよい。このように、情報処理システム1は、各ブロックBLの種別の組み合わせを最適化しながら。ブロックBLを増やして行くことで、モデルの精度を向上させることができる。
情報処理システム1は、任意の探索手法を適宜用いてモデルを生成してもよい。情報処理システム1は、遺伝的アルゴリズムに基づいてモデルを生成してもよい。例えば、情報処理システム1は、各々が種別の組み合わせが異なる複数の組み合わせ候補を対象として、複数のモデルを生成する。情報処理システム1は、生成した複数のモデルのうち、精度が高い所定数(例えば2個等)のモデルに対応する組み合わせ候補(継承候補)を用いて、さらにモデルを生成してもよい。例えば、情報処理システム1は、継承候補の各々から一部の種別の組み合わせを継承し、継承候補の種別の組み合わせがコピーされた種別の候補を用いて、モデルを生成してもよい。情報処理システム1は、上述した継承候補の種別の組み合わせを継承してモデルを生成する処理を繰り返すことにより、最終的に用いるモデルを生成してもよい。
上述した処理により、情報処理システム1は、遺伝的アルゴリズムに基づく組み合わせ最適化により、各ブロックに対応する種別の組み合わせが決定されたモデルを生成する。情報処理システム1は、遺伝的アルゴリズムに基づく探索により、各ブロックに対応する種別の組み合わせが決定されたモデルを生成する。
なお、上述した処理は一例に過ぎず、情報処理システム1は、任意の学習手法を適宜用いて、モデルM1を生成してもよい。例えば、情報処理システム1は、遺伝的アルゴリズムに基づく任意の手法により、モデルM1を生成してもよい。例えば、情報処理システム1は、モデルM1の構造を決定した後、そのモデルM1の各ブロックに入力するデータの種別の組み合わせを決定することにより、モデルM1を生成してもよい。例えば、情報処理システム1は、モデルM1の構造を図9に示すような構造に決定した後、モデルM1に含まれる複数のブロックBLの各々に入力するデータの種別の組み合わせを決定してもよい。例えば、予め設定された設定ファイル等を参照し、図9に示すようなブロックBL1~BL4のモジュール層の構成及び接続関係を決定してもよい。
例えば、情報処理システム1は、図9に示すようなブロックBL1~BL4のモジュール層の構成及び接続関係を決定した後、ブロックBL1~BL4の各々で用いられるデータの種別の組み合わせを決定してもよい。例えば、情報処理システム1は、ブロックBL1について、複数の種別の組み合わせごとにモデルM1の精度を測定し、モデルM1の精度が高い方から順に所定数の種別の組み合わせの各々から一部の種別の利用を継承した種別の組み合わせを用いて学習を繰り返してもよい。そして、情報処理システム1は、種別の組み合わせを継承してモデルM1の精度を測定する処理を所定の回数繰り返すことにより、最終的なブロックBL1の種別の組み合わせを決定してもよい。
上述のように、情報処理システム1は、モデルにおける並列に接続する横方向のブロック、及び各ブロックで用いるデータの種別(属性)の最適化の処理を実行する。例えば、情報処理システム1は、モデルのブロック数を決定する。情報処理システム1は、ブロック内レイヤ数をそれぞれ決定する。情報処理システム1は、遺伝的アルゴリズムに基づいて、種別(属性)の組み合わせの最適化の処理を実行する。例えば、情報処理システム1は、推論(インファレンス)における所定条件を満たす種別(属性)をマスキングする。また、情報処理システム1は、モデルのモジュール間を接続する。例えば、情報処理システム1は、ブロックの入力を、ブロックモジュール間に入力として接続する。情報処理システム1は、ブロックのモジュールへの入力を、他のブロックのモジュールへの入力として接続する。
また、情報処理システム1は、遺伝的アルゴリズムに基づいてデータの種別(特徴情報)を学習により選択し、利用時にマスキングする種別を決定する。例えば、情報処理システム1は、マスキングする種別を考慮して探索を行ってもよい。例えば、情報処理システム1は、利用態様に応じたマスキング種別を複数のパターンで決定してもよい。例えば、情報処理システム1は、ユーザごとにマスキング種別を決定する。例えば、情報処理システム1は、ユーザ属性ごとにマスキング種別を決定する。例えば、情報処理システム1は、目的ごとにマスキング種別を決定する。このように、情報処理システム1は、モデルを固定し、マスキング種別をのみを変更することで、種別ごとの最適化を図ってもよい。また、例えば、情報処理システム1は、推論時に利用しない種別(属性)を探索し、推論時に利用しないマスキング種別をブロックごとに決定し、ブロックごとに決定したマスキング種別を示すマスキングテーブル(非発現テーブル)を生成してもよい。例えば、情報処理システム1は、直近一時間のデータを用いて、推論時に利用しない種別を決定(最適化)するように発現テーブルを再学習することで、直前ファインチューニングを容易化してもよい。
〔7-4.モデルを用いた推論例〕
また、情報処理装置10は、生成したモデルM1を用いて推論処理を実行してもよい。例えば、情報処理装置10は、推論処理の対象に対応する入力データをモデルM1に入力し、モデルM1が出力した出力情報を基に、推論処理を実行してもよい。この場合、情報処理装置10は、モデルM1を用いた推論時には、モデルM1のブロックBLに対応する種別の組み合わせのうち、一部の種別をマスキングしてもよい。
例えば、情報処理装置10は、モデルM1のブロックBL1に対応する種別の組み合わせのうち一部の種別をマスキングして、推論処理を実行してもよい。例えば、情報処理装置10は、図11に示すモデルM1のブロックBL1の入力として用いられる種別のうち、種別#2をマスキングすると決定してもよい。
例えば、情報処理装置10は、所定の基準に基づいてマスキングする種別(「マスキング種別」ともいう)を決定してもよい。この場合、情報処理装置10は、所定の基準に基づいてされるマスキング種別がマスキングされたデータがモデルM1のブロックBLへの入力として用いられることにより、モデルM1が出力した出力情報(出力データ)に基づいて、推論処理を実行してもよい。
例えば、情報処理装置10は、図11に示すモデルM1の各ブロックBLの入力として用いられる種別のうち、いずれの種別をマスキングするかを指定するマスキングリストを用いて、各ブロックBLについてマスキングする種別を決定してもよい。例えば、情報処理装置10は、マスキングリストに、ブロックBL4の種別#4をマスキングすることを指定する情報が含まれる場合、モデルM1のブロックBL4の入力として用いられる種別のうち、種別#4をマスキングすると決定してもよい。
なお、情報処理装置10は、任意の基準を基にマスキング種別を決定してもよい。情報処理装置10は、推論処理の目的に応じてマスキング種別を決定してもよい。例えば、情報処理装置10は、推論処理の対象となるユーザに応じてマスキング種別を決定する。例えば、情報処理装置10は、ユーザの属性ごとにいずれの種別をマスキングするかを指定するマスキングリストを用いて、モデルM1の各ブロックBLについてマスキングする種別を決定してもよい。例えば、情報処理装置10は、年齢と年代のユーザ属性の組み合わせごとにマスキング種別が指定されるマスキングリストを用いて、モデルM1の各ブロックBLについてマスキングする種別を決定してもよい。
例えば、情報処理装置10は、マスキングリストに、20代男性については、ブロックBL3の種別#1をマスキングすることを指定する情報が含まれ、入力データが20代男性に対応するデータである場合、モデルM1のブロックBL3の入力として用いられる種別のうち、種別#3をマスキングすると決定してもよい。この場合、情報処理装置10は、ブロックBL3の入力として用いられる種別のうち、種別#3がマスキングされたデータがモデルM1のブロックBL3への入力として用いられることにより、モデルM1が出力した出力情報(出力データ)に基づいて、推論処理を実行してもよい。
なお、上述した処理は一例に過ぎず、情報処理装置10は、様々な基準に基づいてマスキング種別を決定してもよい。例えば、情報処理装置10は、モデルM1の学習時にマスキング種別を決定してもよい。この場合、情報処理装置10は、モデルM1の学習時に決定されたマスキング種別を示すマスキングリストを用いて、マスキング種別を決定してもよい。例えば、情報処理装置10は、モデルM1のブロックBLごとに種別の組み合わせのうち、一部の種別をマスキング種別の候補としてモデルM1の精度を測定する。情報処理装置10は、マスキング種別の候補を変更しながら所定の回数、モデルM1の精度を測定し、最も精度が良かった時にマスキング種別の候補となっていた種別をマスキング種別に決定してもよい。
〔8.知見及び実験結果について〕
ここから、上述した処理により生成したモデルを基に得た知見及び実験結果を示す。
〔8-1.知見〕
まず、図15を用いて、知見について説明する。図15は、知見に関するグラフを示す図である。具体的には、図15のグラフRS1の横軸がブロックの数、縦軸が精度を示す。知見は、実験(測定)により、ブロックの数と精度との関係について得られた知見を示す。例えば、知見では、ブロックの数を増やしながらモデル(以下「対象モデル」ともいう)を生成し、その対象モデルの精度を測定した場合の結果を示す。なお、対象モデルの生成では、上述したように書くブロックで用いるデータの種別の組み合わせの最適化の処理も行われる。
図15では、モデルの精度の基準となる指標が「オフライン指標#1」である場合を示す。図15中の「オフライン指標#1」は、モデルの精度の基準となる指標を示す。オフライン指標#1は、そのモデルが出力したスコアの高い方から順に候補を抽出し、その抽出した候補の中に正解が含まれる割合を示す。例えば、オフライン指標#1は、ユーザの行動データをモデルに入力し、対象書籍のうち、そのモデルが出力したスコアの高い方から順に5件を抽出し、その5件の中にそのユーザが実際に(例えば対応するページ等のコンテンツを)閲覧した書籍が含まれる割合を示す。すなわち、オフライン指標#1は、その値が大きい程、そのモデルの性能(推論の精度)が高いことを示す。
図15に示す実験結果は、対象モデルに含まれるブロックの数を1、2、3と増価させた場合のオフライン指標#1の値の変化を示す。なお、図15中の各プロット近傍に示す数字は対応するブロックの数での対象モデルのサイズ(モデルサイズ)を示す。具体的には、ブロックの数が「1」である場合の対象モデルのサイズは52Mであることを示し、ブロックの数が「2」である場合の対象モデルのサイズは61Mであることを示し、ブロックの数が「3」である場合の対象モデルのサイズは68Mであることを示す。
図15のグラフRS1に示すように、ブロックの数と精度との間には相関性があることを示す。具体的には、図15のグラフRS1に示すように、ブロックの数が増えるほど、精度が向上することが示された。このように、種別の組み合わせを最適化しながら、ブロックの数を増やして行くことで、精度が向上することが示された。
〔8-2.実験結果〕
実験結果の一例について図16及び図17を用いて説明する。図16及び図17は、実験結果の一覧を示す図である。例えば、図16は、実サービスデータを用いた多クラス分類タスクにおける評価結果を示す。また、図17は、実サービスデータを用いた二値分類タスクにおける評価結果を示す。
〔8-2-1.多クラス分類〕
図16では、サービスA、B、C、Dの4つのサービスの各々のデータセット#1~#4を用いた場合の実験結果を示す。なお、サービスA、B、C、Dといった抽象的な名称で示すが、サービスA、B、C、Dは、例えば情報提供サービス、書籍販売サービス、旅行サービス等の具体的なサービスである。例えば、サービスAは、いわゆるQ&Aサービス(情報提供サービス)であり、サービスBは、Web版の書籍販売サービスであり、サービスCは、アプリ版の書籍販売サービスであり、サービスDは、旅行サービスである。例えば、サービスAに対応する実験結果は、回答者にマッチした質問の抽出に関する結果であり、サービスB~Dの各々に対応する実験結果は、各々対応するサービスでのレコメンデーションに関する結果である。なお、上述した内容と同様の点については適宜説明を省略する。
図16では、モデルの精度の基準となる指標が「オフライン指標#1」である場合を示す。また、図16中の一覧のうち、「従来例#1」は、第1の従来例を示す。また、図16中の一覧のうち、「本手法」は、上述した処理により生成されたモデルの精度を示す。
図16に示す実験結果の各欄に示す値は、各手法について対応するデータセットを用いた場合の精度を示す。例えば、「従来例#1」と「データセット#1(サービスA)」とに対応する欄に表記された「0.35335」は、サービスAのデータセット#1を対象とした場合の従来例#1の精度が0.35335であることを示す。また、「従来例#1」と「データセット#2(サービスB)」とに対応する欄に表記された「0.13294」は、サービスBのデータセット#2を対象とした場合の従来例#1の精度が0.13294であることを示す。
また、「本手法」と「データセット#1(サービスA)」とに対応する欄に表記された「0.48592」は、サービスAのデータセット#1を対象とした場合の本手法の精度が0.48592であることを示す。また、「本手法」と「データセット#2(サービスB)」とに対応する欄に表記された「0.16565」は、サービスBのデータセット#2を対象とした場合の本手法の精度が0.16565であることを示す。
また、「Performance Improvement Rate」に対応する欄に示す数値は、「本手法」を採用した場合の「従来例#1」からの精度の向上率を示す。例えば、「Performance Improvement Rate」と「データセット#1(サービスA)」とに対応する欄に表記された「+37.6%」は、サービスAのデータセット#1を対象とした場合について、本手法は、従来例#1よりも精度が37.6%向上したことを示す。また、「Performance Improvement Rate」と「データセット#2(サービスB)」とに対応する欄に表記された「+24.6%」は、サービスAのデータセット#2を対象とした場合について、本手法は、従来例#1よりも精度が24.6%向上したことを示す。
同様に、サービスCのデータセット#3を対象とした場合について、本手法は、従来例#1よりも精度が23.0%向上したことを示す。また、サービスDのデータセット#4を対象とした場合について、本手法は、従来例#1よりも精度が24.3%向上したことを示す。図16に示すように、本手法は、多クラス分類タスクにおいて、従来例#1から精度の改善(上昇)が見られた。
〔8-2-2.二値分類〕
図17では、サービスE、Fの2つのサービスの各々のデータセット#5、#6を用いた場合の実験結果を示す。なお、サービスE、Fといった抽象的な名称で示すが、サービスE、Fは、例えば情報提供サービス、書籍版売サービス、旅行サービス等の具体的なサービスである。例えば、サービスEは、ショッピングサービスであり、サービスFは、ポータルサイトでの情報提供サービスである。例えば、サービスEに対応する実験結果は、広告のCTR(クリック率)の予測に関する結果であり、サービスFに対応する実験結果は、ポータルサイトの所定の表示欄に表示する記事の選択に関する結果である。なお、上述した内容と同様の点については適宜説明を省略する。
図17では、モデルの精度の基準となる指標が「AUC」である場合を示す。このよに、図17ではAUC(Area Under the Curve)を基にモデルの精度を評価した場合を示す。すなわち、図17ではAUCの値が大きい程、そのモデルの性能(推論の精度)が高いことを示す。また、図17中の一覧のうち、「従来例#1」は、第1の従来例を示す。また、図17中の一覧のうち、「本手法」は、上述した処理により生成されたモデルの精度を示す。
図17に示す実験結果の各欄に示す値は、各手法について対応するデータセットを用いた場合の精度を示す。例えば、「従来例#1」と「データセット#5(サービスE)」とに対応する欄に表記された「0.7812」は、サービスEのデータセット#5を対象とした場合の従来例#1の精度が0.7812であることを示す。また、「従来例#1」と「データセット#6(サービスF)」とに対応する欄に表記された「0.8484」は、サービスFのデータセット#6を対象とした場合の従来例#1の精度が0.8484であることを示す。
また、「本手法」と「データセット#5(サービスE)」とに対応する欄に表記された「0.7846」は、サービスEのデータセット#5を対象とした場合の本手法の精度が0.7846であることを示す。また、「本手法」と「データセット#6(サービスF)」とに対応する欄に表記された「0.8545」は、サービスFのデータセット#6を対象とした場合の本手法の精度が0.8545であることを示す。
また、「Performance Improvement Rate」に対応する欄に示す数値は、「本手法」を採用した場合の「従来例#1」からの精度の向上率を示す。例えば、「Performance Improvement Rate」と「データセット#5(サービスE)」とに対応する欄に表記された「+0.44%」は、サービスEのデータセット#5を対象とした場合について、本手法は、従来例#1よりも精度が0.44%向上したことを示す。また、「Performance Improvement Rate」と「データセット#6(サービスF)」とに対応する欄に表記された「+0.72%」は、サービスFのデータセット#6を対象とした場合について、本手法は、従来例#1よりも精度が0.72%向上したことを示す。
図17に示すように、本手法は、二値分類タスクにおいて、従来例#1から精度の改善(上昇)が見られた。例えば、二値分類タスクにおいては、多クラス分類タスクと比べてSparse Classifier Model等、スパースな分類モデル(「スパースモデル」ともいう)等で大幅な精度向上を得ることが難しい。
ここで、DNNといったニューラルネットワーク等のモデルにおける汎化誤差は、モデルの表現力に関する誤差(「第1誤差」ともいう)である近似誤差と、モデルのサイズ(大きさ)に関する誤差(「第2誤差」ともいう)である複雑性誤差と、モデルの学習に関する誤差(「第3誤差」ともいう)である最適化誤差とに分解され得る。一般的に、二値分類タスクは、多クラス分類タスクと比べて、複雑性誤差が小さい。したがって、二値分類タスクにおいては、第2誤差(複雑性誤差)を低減するだけでは、多クラス分類タスクで得られるような精度向上を得ることが難しい場合がある。
そのため、二値分類タスクにおいては、第1誤差(近似誤差)及び第3誤差(最適化誤差)を低減することにより、大きな精度向上を得ることが期待される。また、モデルの表現力に関する第1誤差(近似誤差)については、モデルに対応する特徴空間の次元数を小さくすることで低減させることができる。したがって、二値分類タスクであっても、モデルに対応する特徴空間の次元数を小さくすることで精度向上を得ることが期待される。
「本手法」では、上述したモデルの構成により、第1誤差(近似誤差)及び第3誤差(最適化誤差)を低減することができ、精度向上を得ることができる。例えば、「本手法」では、複数のブロックを有するモデルの構成とすることにより、モデルに対応する特徴空間の次元数を小さくすることができ、第1誤差(近似誤差)を低減させることができる。
図16及び図17に示すように、本手法は、多クラス分類及び二値分類のいずれであるかに関わらず、従来例#1から精度の改善(上昇)が見られた。すなわち、図16及び図17に示すように、本手法は、従来例#1から精度の改善(上昇)が見られた。
〔9.変形例〕
上記では、情報処理の一例について説明した。しかしながら、実施形態は、これに限定されるものではない。以下、提供処理の変形例について説明する。
〔9-1.装置構成〕
上記実施形態では、情報処理システム1に、生成指標の生成を行う情報処理装置10、および、生成指標に従ってモデルを生成するモデル生成サーバ2を有する例について説明したが、実施形態は、これに限定されるものではない。例えば、情報処理装置10は、モデル生成サーバ2が有する機能を有していてもよい。また、情報処理装置10が発揮する機能は、端末装置3に内包されていてもよい。このような場合、端末装置3は、生成指標を自動的に生成するとともに、モデル生成サーバ2を用いたモデルの生成を自動的に行うこととなる。
〔9-2.その他〕
また、上記実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られない。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
また、上記してきた各実施形態は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
〔9-3.プログラム〕
また、上述してきた実施形態に係る情報処理装置10は、例えば図18に示すような構成のコンピュータ1000によって実現される。図18は、ハードウェア構成の一例を示す図である。コンピュータ1000は、出力装置1010、入力装置1020と接続され、演算装置1030、一次記憶装置1040、二次記憶装置1050、出力IF(Interface)1060、入力IF1070、ネットワークIF1080がバス1090により接続された形態を有する。
演算装置1030は、一次記憶装置1040や二次記憶装置1050に格納されたプログラムや入力装置1020から読み出したプログラム等に基づいて動作し、各種の処理を実行する。一次記憶装置1040は、RAM等、演算装置1030が各種の演算に用いるデータを一次的に記憶するメモリ装置である。また、二次記憶装置1050は、演算装置1030が各種の演算に用いるデータや、各種のデータベースが登録される記憶装置であり、ROM(Read Only Memory)、HDD、フラッシュメモリ等により実現される。
出力IF1060は、モニタやプリンタといった各種の情報を出力する出力装置1010に対し、出力対象となる情報を送信するためのインタフェースであり、例えば、USB(Universal Serial Bus)やDVI(Digital Visual Interface)、HDMI(登録商標)(High Definition Multimedia Interface)といった規格のコネクタにより実現される。また、入力IF1070は、マウス、キーボード、およびスキャナ等といった各種の入力装置1020から情報を受信するためのインタフェースであり、例えば、USB等により実現される。
なお、入力装置1020は、例えば、CD(Compact Disc)、DVD(Digital Versatile Disc)、PD(Phase change rewritable Disk)等の光学記録媒体、MO(Magneto-Optical disk)等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等から情報を読み出す装置であってもよい。また、入力装置1020は、USBメモリ等の外付け記憶媒体であってもよい。
ネットワークIF1080は、ネットワークNを介して他の機器からデータを受信して演算装置1030へ送り、また、ネットワークNを介して演算装置1030が生成したデータを他の機器へ送信する。
演算装置1030は、出力IF1060や入力IF1070を介して、出力装置1010や入力装置1020の制御を行う。例えば、演算装置1030は、入力装置1020や二次記憶装置1050からプログラムを一次記憶装置1040上にロードし、ロードしたプログラムを実行する。
例えば、コンピュータ1000が情報処理装置10として機能する場合、コンピュータ1000の演算装置1030は、一次記憶装置1040上にロードされたプログラムを実行することにより、制御部40の機能を実現する。
〔10.効果〕
上述したように、情報処理装置10は、入力層からの出力が入力されるブロック(例えば実施形態ではブロックBL1、BL2等)を少なくとも1つ有するモデル(例えば実施形態ではモデルM1)の学習に用いられ、複数の種別の情報が含まれる学習データを取得する取得部(実施形態では取得部41)と、学習データを用いた学習において、遺伝的アルゴリズムに基づく処理により、ブロックへ入力されるデータに含まれる種別を選択し、複数の種別のうち、選択された種別の組み合わせに対応するデータを入力層からブロックへの入力としてモデルを生成する生成部(実施形態では生成部44)とを有する。これにより、情報処理装置10は、柔軟な入力データの利用が可能なモデルを生成することができる。
また、生成部は、モデルを用いた推論時には、一部がブロックへの入力として用いられる種別の組み合わせを決定する。これにより、情報処理装置10は、推論に用いるデータの種別を任意に選択することができるため、柔軟な入力データの利用が可能なモデルを生成することができる。
また、生成部は、種別の組み合わせのうち、モデルを用いた推論時にマスキングする種別を決定する。これにより、情報処理装置10は、推論に用いるデータの種別を任意に選択することができるため、柔軟な入力データの利用が可能なモデルを生成することができる。
また、生成部は、遺伝的アルゴリズムに基づく組み合わせ最適化により、入力層からブロックへ入力されるデータに含まれる種別の組み合わせが決定されたモデルを生成する生成する。これにより、情報処理装置10は、入力とするデータの種別を任意に選択することができるため、柔軟な入力データの利用が可能なモデルを生成することができる。
また、生成部は、遺伝的アルゴリズムに基づく探索により、入力層からブロックへ入力されるデータに含まれる種別の組み合わせが決定されたモデルを生成する生成する。これにより、情報処理装置10は、推論に用いるデータの種別を任意に選択することができるため、柔軟な入力データの利用が可能なモデルを生成することができる。
また、情報処理装置10は、生成部により生成されたモデルを用いた推論処理を実行する処理部(実施形態では処理部45)を有する。これにより、情報処理装置10は、生成したモデルを用いた推論を実行することができる。
また、処理部は、決定された種別の組み合わせに対応する入力データがモデルのブロックへ入力されることにより、モデルが出力した出力データに基づいて、推論処理を実行する。これにより、情報処理装置10は、推論に用いるデータの種別を任意に選択することができるため、生成したモデルを用いた推論を適切に実行することができる。
また、処理部は、決定された種別の組み合わせのうち、一部のみに対応するデータがモデルのブロックへの入力として用いられることにより、モデルが出力した出力データに基づいて、推論処理を実行する。これにより、情報処理装置10は、推論に用いるデータの種別を任意に選択することができるため、生成したモデルを用いた推論を適切に実行することができる。
また、処理部は、決定された種別の組み合わせのうち、一部のマスキング対象となる種別であるマスキング種別がマスキングされたデータがモデルのブロックへの入力として用いられることにより、モデルが出力した出力データに基づいて、推論処理を実行する。これにより、情報処理装置10は、推論に用いるデータの種別を任意に選択することができるため、生成したモデルを用いた推論を適切に実行することができる。
また、処理部は、所定の基準に基づいて決定されるマスキング種別がマスキングされたデータがモデルのブロックへの入力として用いられることにより、モデルが出力した出力データに基づいて、推論処理を実行する。これにより、情報処理装置10は、推論に用いるデータの種別を任意に選択することができるため、生成したモデルを用いた推論を適切に実行することができる。
また、処理部は、推論処理の目的に応じて決定されるマスキング種別がマスキングされたデータがモデルのブロックへの入力として用いられることにより、モデルが出力した出力データに基づいて、推論処理を実行する。これにより、情報処理装置10は、推論に用いるデータの種別を任意に選択することができるため、生成したモデルを用いた推論を適切に実行することができる。
また、処理部は、推論処理の対象となるユーザに応じて決定されるマスキング種別がマスキングされたデータがモデルのブロックへの入力として用いられることにより、モデルが出力した出力データに基づいて、推論処理を実行する。これにより、情報処理装置10は、推論に用いるデータの種別を任意に選択することができるため、生成したモデルを用いた推論を適切に実行することができる。
また、取得部は、入力層からの出力が入力されるブロックを少なくとも1つ有するモデルへの入力として用いられる複数の種別の情報が含まれる入力データを取得する。処理部は、種別の組み合わせのうち、一部のマスキング対象となる種別であるマスキング種別がマスキングされたデータがモデルのブロックへの入力として用いられることにより、モデルが出力した出力データに基づいて、推論処理を実行する。これにより、情報処理装置10は、推論に用いるデータの種別を任意に選択することができるため、生成したモデルを用いた推論を適切に実行することができる。
以上、本願の実施形態のいくつかを図面に基づいて詳細に説明したが、これらは例示であり、発明の開示の欄に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
また、上記してきた「部(section、module、unit)」は、「手段」や「回路」などに読み替えることができる。例えば、取得部は、取得手段や取得回路に読み替えることができる。