以下に、本願に係る学習装置、学習方法、学習プログラム、評価装置、評価方法、および評価プログラムを実施するための形態(以下、「実施形態」と呼ぶ)について図面を参照しつつ詳細に説明する。なお、この実施形態により本願に係る学習装置、学習方法、学習プログラム、評価装置、評価方法、および評価プログラムが限定されるものではない。また、各実施形態は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。また、以下の各実施形態において同一の部位には同一の符号を付し、重複する説明は省略される。
〔1.情報提供装置について〕
まず、図1を用いて、学習装置および評価装置の一例である情報提供装置10が実行する処理の一例について説明する。図1は、実施形態に係る情報提供装置が実行する処理の一例を示す図である。図1では、情報提供装置10を有する情報提供システム1の一例について記載した。
〔1-1.情報提供システムの構成〕
図1に示すように、情報提供システム1は、情報提供装置10、モデル生成サーバ2、および端末装置3を有する。なお、情報提供システム1は、複数のモデル生成サーバ2や複数の端末装置3を有していてもよい。また、情報提供装置10と、モデル生成サーバ2とは、同一のサーバ装置やクラウドシステム等により実現されてもよい。ここで、情報提供装置10、モデル生成サーバ2、および端末装置3は、ネットワークN(例えば、図36参照)を介して有線または無線により通信可能に接続される。
情報提供装置10は、モデルの生成における指標(すなわち、モデルのレシピ)である生成指標を生成する指標生成処理と、生成指標に従ってモデルを生成するモデル生成処理とを実行し、生成した生成指標およびモデルを提供する情報処理装置であり、例えば、サーバ装置やクラウドシステム等により実現される。
さらに、情報提供装置10は、ある対象における複数の素性の組(以下、「素性組」と記載する。)を1つの素性とみなして、素性組と対応する値(すなわち、対象における複数の素性の組を示す値)を生成し、生成した値を用いたモデルの学習を行う学習処理、および、学習処理の結果に基づいて、素性組を評価する評価処理を実行する。
モデル生成サーバ2は、学習データが有する特徴を学習させたモデルを生成する生成装置であり、例えば、サーバ装置やクラウドシステム等により実現される。例えば、モデル生成サーバ2は、モデルの生成指標として、生成するモデルの種別や行動、どのように学習データの特徴を学習させるかといったコンフィグファイルを受付けると、受付けたコンフィグファイルに従って、モデルの自動生成を行う。なお、モデル生成サーバ2は、任意のモデル学習手法を用いて、モデルの学習を行ってもよい。また、例えば、モデル生成サーバ2は、AutoMLといった各種既存のサービスであってもよい。
端末装置3は、利用者Uによって利用される端末装置であり、例えば、PC(Personal Computer)やサーバ装置等により実現される。例えば、端末装置3は、情報提供装置10とのやり取りを介して、モデルの生成指標を生成させ、生成させた生成指標に従ってモデル生成サーバ2が生成したモデルを取得する。
〔1-2.情報提供装置10が実行する指標生成処理とモデル生成処理との概要〕
以下、学習処理および評価処理の説明に先駆けて、情報提供装置10が実行する指標生成処理とモデル生成処理とについて説明する。なお、このような指標生成処理やモデル生成処理は、学習装置および評価装置として動作する情報提供装置10においては、必須の処理ではない。
まず、情報提供装置10は、端末装置3からモデルに特徴を学習させる学習データの指摘を受付ける。例えば、情報提供装置10は、学習に用いる各種の学習データを所定の記憶装置に記憶させており、利用者Uが学習データに指定する学習データの指摘を受付ける。なお、情報提供装置10は、例えば、端末装置3や各種外部のサーバから、学習に用いる学習データを取得してもよい。
なお、学習データとは、任意のデータが採用可能である。例えば、情報提供装置10は、各利用者の位置の履歴や各利用者が閲覧したウェブコンテンツの履歴、各利用者による購買履歴や検索クエリの履歴等、利用者に関する各種の情報を学習データとしてもよい。また、情報提供装置10は、利用者のデモグラフィック属性やサイコグラフィック属性等を学習データとしてもよい。また、情報提供装置10は、配信対象となる各種ウェブコンテンツの種別や内容、作成者等のメタデータ等を学習データとしてもよい。
このような場合、情報提供装置10は、学習に用いる学習データの統計的な情報に基づいて、生成指標の候補を生成する。例えば、情報提供装置10は、学習データに含まれる値の特徴等に基づいて、どのようなモデルに対し、どのような学習手法により学習を行えばよいかを示す生成指標の候補を生成する。換言すると、情報提供装置10は、学習データの特徴を精度よく学習可能なモデルやモデルに精度よく特徴を学習させるための学習手法を生成指標として生成する。すなわち、情報提供装置10は、学習手法の最適化を行う。
続いて、情報提供装置10は、生成指標の候補を端末装置3に対して提供する。このような場合、利用者Uは、生成指標の候補を嗜好や経験則等に応じて修正する。そして、情報提供装置10各生成指標の候補と学習データとをモデル生成サーバ2に提供する。
一方、モデル生成サーバ2は、生成指標ごとに、モデルの生成を行う。例えば、モデル生成サーバ2は、生成指標が示す構造を有するモデルに対し、生成指標が示す学習手法により学習データが有する特徴を学習させる。そして、モデル生成サーバ2は、生成したモデルを情報提供装置10に提供する。
ここで、モデル生成サーバ2によって生成された各モデルは、それぞれ生成指標の違いに由来する精度の違いが生じると考えられる。そこで、情報提供装置10は、各モデルの精度に基づいて、遺伝的アルゴリズムにより新たな生成指標を生成し、新たに生成した生成指標を用いたモデルの生成を繰り返し実行する。
例えば、情報提供装置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に提供する。このような処理の結果、情報提供装置10は、利用者から学習データを選択するだけで、適切なモデルの生成指標を生成するとともに、生成した生成指標に従うモデルを提供することができる。
なお、上述した例では、情報提供装置10は、遺伝的アルゴリズムを用いて生成指標の段階的な最適化を実現したが、実施形態は、これに限定されるものではない。後述する説明で明らかとなるように、モデルの精度は、モデルの種別や構造といったモデルそのものの特徴のみならず、どのような学習データをどのようにモデルに入力するのか、どのようなハイパーパラメータを用いてモデルの学習を行うのかというように、モデルを生成する際(すなわち、学習データの特徴を学習させる際)の指標に応じて大きく変化する。
そこで、情報提供装置10は、学習データに応じて、最適と推定される生成指標を生成するのであれば、遺伝的アルゴリズムを用いた最適化を行わずともよい。例えば、情報提供装置10は、学習データが、経験則に応じて生成された各種の条件を満たすか否かに応じて生成した生成指標を利用者に提示するとともに、提示した生成指標に従ったモデルの生成を行ってもよい。また、情報提供装置10は、提示した生成指標の修正を受付けると、受付けた修正後の生成指標に従ってモデルの生成を行い、生成したモデルの精度等を利用者に対して提示し、再度生成指標の修正を受付けてもよい。すなわち、情報提供装置10は、利用者Uに最適な生成指標を試行錯誤させてもよい。
〔1-3.生成指標の生成について〕
ここで、どのような学習データに対して、どのような生成指標を生成するかについては、各種任意の技術が採用可能である。以下の説明では、情報提供装置10が生成する生成指標の一例について、概要を説明するが、実施形態は、これに限定されるものではない。
〔1-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は、例えば、モデルの作成に伴ってデータサイエンティスト等が学習データの認識を行う手間を削減するとともに、学習データの認識に伴うプライバシーの毀損を防ぐことができる。
〔1-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におけるモデルの生成を制御するためのコンフィグファイルを生成する。
〔1-3-3.生成指標を決定する順序について〕
ここで、情報提供装置10は、上述した各種の指標の最適化を同時並行的に行ってもよく、適宜順序だてて実行してもよい。また、情報提供装置10は、各指標を最適化する順序を変更可能としてもよい。すなわち、情報提供装置10は、モデルに学習させる学習データの特徴、生成するモデルの態様、および学習データが有する特徴をモデルに学習させる際の学習態様を決定する順番の指定を利用者から受け付け、受け付けた順序で、各指標を決定してもよい。
例えば、情報提供装置10は、生成指標の生成を開始した場合、入力する学習データの特徴や、どのような態様で学習データを入力するかといった入力素性の最適化を行い、続いて、どの特徴の組み合わせの特徴を学習させるかという入力クロス素性の最適化を行う。続いて、情報提供装置10は、モデルの選択を行うとともに、モデル構造の最適化を行う。その後、情報提供装置10は、ハイパーパラメータの最適化を行い、生成指標の生成を終了する。
ここで、情報提供装置10は、入力素性最適化において、入力する学習データの特徴や入力態様といった各種入力素性の選択や修正、遺伝的アルゴリズムを用いた新たな入力素性の選択を行うことで、入力素性を繰り返し最適化してもよい。同様に、情報提供装置10は、入力クロス素性最適化において、入力クロス素性を繰り返し最適化してもよく、モデル選択およびモデル構造の最適化を繰り返し実行してもよい。また、情報提供装置10は、ハイパーパラメタ―の最適化を繰り返し実行してもよい。また、情報提供装置10は、入力素性最適化、入力クロス素性最適化、モデル選択、モデル構造最適化、およびハイパーパラメータの最適化という一連の処理を繰り返し実行し、各指標の最適化を行ってもよい。
また、情報提供装置10は、例えば、ハイパーパラメータの最適化を行ってから、モデル選択やモデル構造最適化を行ってもよく、モデル選択やモデル構造最適化の後に、入力素性の最適化や入力クロス素性の最適化を行ってもよい。また、情報提供装置10は、例えば、入力素性最適化を繰り返し実行し、その後入力クロス素性最適化を繰り返し行う。その後、情報提供装置10は、入力素性最適化と入力クロス素性最適化を繰り返し実行してもよい。このように、どの指標をどの順番で最適化するか、最適化においてどの最適化処理を繰り返し実行するかについては、任意の設定が採用可能となる。
〔1-4.情報提供装置10が実行する学習処理と評価処理との概要〕
続いて、情報提供装置10が実行する学習処理と評価処理との概要について説明する。上述したように、DNN等のモデルは、入力するデータの種別や形式によりその精度が変化することが知られている。
ここでモデルのサイズを大きくしたり、入力するデータ種別の数を増大させた場合、モデルの精度が向上することが知られている。しかしながら、このような精度の向上は、モデルの種別やモデルに実行させる処理によって異なることが知られている。例えば、SVM等といった従来型のモデルにおいては、モデルのサイズやデータ種別を増大させたとしても、精度の向上が見込めなくなる(サチュレーションが生じる)ことが知られている。また、DNN等といった複数の隠れ層(中間層)を有するモデルにおいても、画像分類や発話分類、言語翻訳といったタスクについては、モデルのサイズやデータ種別の数を増大させた場合に精度が向上するが、レコメンデーションやCTR(Click Through Rate)等といった予測を行うタスクについては、モデルのサイズやデータ種別の数を増大させたとしても、サチレーションが生じやすいことが知られている。
このような課題に鑑み、出願人は、学習データのうち複数の素性を組み合わせた素性を新たに設定することで、モデルの精度を向上させることができることを発見した。例えば、利用者の様々な属性を素性として示す学習データが存在するものとする。このような学習データには、利用者の「性別」を素性として示すデータと、利用者の「居住地」を素性として示すデータとが含まれていると考えられる。
ここで、利用者の「性別」を素性として示すデータと、利用者の「居住地」を素性として示すデータとを個別のデータとしてモデルに特徴を学習させた場合、モデルは、各素性を個別の素性として、データの特徴を学習すると考えられる。例えば、モデルは、利用者の「性別」と利用者の「居住地」とをそれぞれ個別に用いて、ヒルベルト空間上のいずれかの位置にデータを投影すると考えられる。しかしながら、このように素性を個別に用いた場合、利用者を適切に分類するモデルを得ることができない場合がある。換言すると、素性を個別に用いた場合、ヒルベルト空間上において、データを適切に分類する超平面(例えば、リニアに分類可能な超平面)を設定できない恐れがある。
例えば、「性別」を示すデータが、利用者を「男性」および「女性」の2クラスに分類するデータであり、「居住地」を示すデータが、利用者を「東京在住」および「東京以外に在住」の2クラスに分類するデータであるとする。このような各素性のデータを個別に用いた場合、モデルは、「男性」の利用者のデータと「女性」の利用者のデータとを、ヒルベルト空間上において異なる領域に投影し、かつ、「東京在住」の利用者のデータと「東京以外に在住」の利用者のデータとを、ヒルベルト空間上において異なる領域に投影すると考えられる。
しかしながら、「男性で東京在住」、「男性で東京以外に在住」、「女性で東京在住」、「女性で東京以外に在住」という素性の組み合わせの観点からモデルを評価した場合、精度が高いとは言えない場合がある。例えば、ヒルベルト空間の次元数が多い場合、各素性を個別に用いたモデルは、「男性で東京在住」の利用者のデータと「女性で東京に在住」の利用者のデータとを、ヒルベルト空間上において遠い位置に投影するものの、「男性で東京在住」の利用者のデータと「男性で東京以外に在住」の利用者のデータとを、ヒルベルト空間上において近い位置に投影してしまう恐れがある。
このため、モデルの予測対象が、「男性で東京在住」、「男性で東京以外に在住」、「女性で東京在住」、「女性で東京以外に在住」というように、「性別」と「居住地」との組合せと関連性が高いものである場合、「性別」と「居住地」とをそれぞれ個別に用いて学習を行ったモデルは、適切に利用者のデータを分類することができなくなる。また、このような分類の問題は、モデルがデータを投影するヒルベルト空間上における次元数が増大する度に、顕著に表れる可能性がある。
一方で、モデルの予測対象が、「性別」と「居住地」との組合せと関連性が高いものである場合、学習データとして、「性別」と「居住地」との組合せを示す値を生成し、生成した値を用いてモデルの学習を行うことで、モデルの精度を向上させることができると考えられる。換言すると、このような素性の組の値を学習したモデルは、分類対象である利用者の「性別」と「居住地」との組合せの違いを、適切にヒルベルト空間上の距離へと反映させることができるので、分類対象を適切に分類することができると考えられる。
そこで、情報提供装置10は、利用者等、各種対象のデータのうち、いずれかの素性の組み合わせを新たな素性と見做し、新たな素性のデータを用いて、所定の対象の特徴をモデルに学習させる。換言すると、情報提供装置10は、学習データから入力クロス素性(Feature Crosses)を示す値を生成し、生成した値を用いて、モデルの学習を行う。
例えば、情報提供装置10は、利用者の素性「性別」を2クラスで示す学習データと、利用者の素性「居住地」を2クラスで示す学習データとが存在する場合、「性別」と「居住地」との組を素性とする4クラスの学習データを生成する。すなわち、情報提供装置10は、複数の素性の値の組み合わせを示す学習データ(素性の積を示す学習データ)を生成する。そして、情報提供装置10は、生成した学習データを用いて、モデルの学習を行う。
このような処理の結果、情報提供装置10は、素性の組み合わせに応じて、分類対象を分類することができるので、実際の分類結果が素性の組み合わせと関連性が高い場合であっても、分類対象を適切に分類することができるモデルの学習を実現することができる。
〔1-4-1.情報提供装置10が実行する処理の一例〕
以下、情報提供装置10が実行する学習処理および評価処理の一例について説明する。なお、以下の説明では、情報提供装置10は、上述した指標生成処理やモデル生成処理により生成されたモデルに対し、以下の学習処理や評価処理を行うものとする。
まず、情報提供装置10は、利用者Uから制約条件の提供を受付ける(ステップS1)。ここで、制約条件とは、どのような素性の組(以下、「素性組」と総称する場合がある。)を学習データに用いるかを示す情報である。情報提供装置10は、このような制約条件に基づいて、素性組の生成を行う(ステップS2)。
例えば、情報提供装置10は、制約条件として、素性組に含める素性の候補、素性組に含める素性の数若しくは数の範囲、生成する素性組の数、素性組の値の種別等の指定を受付ける。このような場合、情報提供装置10は、制約条件に従って、素性組の生成を行う。なお、このような制約条件が指定されていない場合、情報提供装置10は、ランダムに素性組の生成を行ってもよい。
例えば、情報提供装置10は、素性組に含まれる素性の候補として「素性#1」および「素性#2」および「素性#3」が指定されている場合、これらの候補の組み合わせとなる素性組を生成する。例えば、情報提供装置10は、「素性#1」と「素性#2」を組み合わせた素性組、「素性#1」と「素性#3」を組み合わせた素性組、「素性#2」と「素性#3」を組み合わせた素性組、および、「素性#1」、「素性#2」および「素性#3」を組み合わせた素性組を生成する。
また、情報提供装置10は、素性組に含める素性として、「素性#1」または「素性#2」が指定されている場合、少なくとも「素性#1」または「素性#2」を含む素性組を生成する。なお、情報提供装置10は、「素性#1」および「素性#2」の両方が候補として指定されている場合、「素性#1」および「素性#2」の両方を含む素性組を生成してもよい。より具体的な例を挙げると、情報提供装置10は、「素性#1」を含む素性組を生成する場合、「素性#1」以外の素性をランダムに選択し、選択した素性と「素性#1」とを含む素性組を生成する。
また、例えば、情報提供装置10は、素性組に含める素性の数として「2」が指定されている場合、2つの素性を組み合わせた素性組を生成する。また、情報提供装置10は、は、素性組に含める素性の数の範囲として、「2から3」が指定されている場合は、2つの素性を組み合わせた素性組と、3つの素性を組み合わせた素性組とをそれぞれ生成する。ここで、情報提供装置10は、2つの素性を組み合わせた素性組と、3つの素性を組み合わせた素性組とを同数だけ生成してもよく、異なる数だけ生成してもよい。
また、例えば、情報提供装置10は、指定された数だけ、素性組を生成する。例えば、情報提供装置10は、素性組に含める素性の数として「3」が設定され、素性組の数として「100」が指定されている場合、3つの素性をランダムに組み合わせた素性組を「100」個生成することとなる。なお、情報提供装置10は、3つの素性の全組み合わせ数が「100」に満たない場合は、これら全ての素性組を生成対象としてもよい。
そして、情報提供装置10は、生成した素性組を1つの素性と見做し、素性組に対応する値を学習データから生成する(ステップS3)。より具体的には、情報提供装置10は、制約条件において指定された種別の値を素性組に対応する値として生成する。例えば、情報提供装置10は、素性組の値の種別として「整数値」が設定されている場合、分類対象を2クラスに分類する第1素性と分類対象を2クラスに分類する第2素性とを組み合わせた素性組に対応する値として、分類対象を4クラスに分類するための整数値を設定する。
より具体的な例を挙げて素性組に対応する値の生成について説明する。例えば、学習データには、素性「性別」を示すデータと素性「居住地」を示すデータとが存在するものとする。また、素性「性別」を示すデータは、分類対象である利用者の性別を示すデータであり、例えば、男性を示す値「0」または女性を示す値「1」で構成されているものとする。また、素性「居住地」を示すデータは、例えば、東京在住を示す値「0」または東京以外に在住を示す値「1」で構成されているものとする。このような場合、情報提供装置10は、素性「性別」と素性「居住地」とを組み合わせた素性組の値として、「男性で東京在住」を示す値「0」、「男性で東京以外に在住」を示す値「1」、「女性で東京在住」を示す値「2」、および「女性で東京以外に在住」を示す値「3」を分類対象ごとに生成する。このような処理の結果、情報提供装置10は、分類対象ごとに素性の組み合わせを示す値を生成することができる。
以下、図2を用いて、情報提供装置10が生成する素性組および素性組に対応する値について説明する。図2は、実施形態に係る情報提供装置が生成する素性組の値の一例を示す図である。例えば、図2に示す例では、学習データとして、分類対象である利用者の素性「所在地」を示す10クラスのデータ、素性「性別」を示す3クラスのデータ、素性「年代」を示す6クラスのデータ、素性「利用端末」を示す5クラスのデータが存在するものとする。また、図2に示す例では、素性組として、2つ若しくは3つの素性を組み合わせた素性を生成するものとする。
このような場合、情報提供装置10は、図2に示すように、素性「所在地」と素性「性別」とを組み合わせた第1素性組、素性「所在地」と素性「年代」とを組み合わせた第2素性組、素性「所在地」と素性「利用端末」とを組み合わせた第3素性組、素性「性別」と素性「年代」とを組み合わせた第4素性組、素性「性別」と素性「利用端末」とを組み合わせた第5素性組、素性「年代」と素性「利用端末」とを組み合わせた第6素性組、素性「所在地」と素性「性別」と素性「年代」とを組み合わせた第7素性組、素性「所在地」と素性「性別」と素性「利用端末」とを組み合わせた第8素性組、素性「所在地」と素性「年代」と素性「利用端末」を組み合わせた第9素性組、および素性「年代」と素性「性別」と素性「利用端末」を組み合わせた第10素性組をそれぞれ生成する。
ここで、第1素性組に含まれる素性「所在地」は、利用者を10クラスに分類するデータ(すなわち、値の種別が10種類であるデータ)であり、素性「性別」は、利用者を3クラスに分類するデータである。このため、情報提供装置10は、第1素性組と対応する値として、利用者を素性「所在地」と素性「性別」との組合せである30クラスに分類する値を生成する。例えば、情報提供装置10は、ある利用者の素性「所在地」を示す値と、その利用者の素性「性別」を示す値との組合せを示す値を、その利用者の第1素性組に対応する値として生成する。
同様に、情報提供装置10は、第2素性組の値として、利用者を60クラスに分類する値を生成し、第3素性組の値として、利用者を50クラスに分類する値を生成し、第4素性組の値として、利用者を18クラスに分類する値を生成する。また、情報提供装置10は、第5素性組の値として、利用者を15クラスに分類する値を生成し、第6素性組の値として、利用者を30クラスに分類する値を生成し、第7素性組の値として、利用者を180クラスに分類する値を生成する。また、情報提供装置10は、第8素性組の値として、利用者を150クラスに分類する値を生成し、第9素性組の値として、利用者を300クラスに分類する値を生成し、第10素性組の値として、利用者を90クラスに分類する値を生成する。
なお、情報提供装置10は、各分類対象ごとに、上述した処理を行うことで、各素性組の値を新たに生成する。このような処理の結果、情報提供装置10は、既存の素性の値から、分類対象の特徴であって、素性の組み合わせの特徴を示す値を生成することができる。
図1に戻り、説明を続ける。情報提供装置10は、生成した各素性組の値を学習データとしてモデル生成サーバ2に提供する(ステップS4)。例えば、情報提供装置10は、全学習データを評価用データと学習用データとに分類し、学習用データについて生成した各素性組の値をモデル生成サーバ2に提供する。このような場合、モデル生成サーバ2は、各素性組の値を用いて、複数のモデルを生成する(ステップS5)。より具体的には、モデル生成サーバ2は、生成済みのモデルに各素性組の値を入力するためのノードを追加し、各素性組の値を用いた再学習を行うことで、複数のモデルを生成する。
以下、モデル生成サーバ2が生成するモデルの一例について説明する。例えば、モデル生成サーバ2は、N個の素性組が生成されている場合、各素性組の値をそれぞれ個別に用いなかったN個のモデルを生成する。また、モデル生成サーバ2は、全ての素性組を用いて学習が行われたモデルを基準モデルとして生成する。
より具体的な例を挙げると、モデル生成サーバ2は、第1素性組~第N素性組までのN個の素性組が生成されている場合、第1素性組~第N素性組の全ての素性組を用いて学習を行ったモデルを基準モデルとして生成する。また、モデル生成サーバ2は、第2素性組~第N素性組を用いて学習した第1モデル、第1素性組および第3素性組~第N素性組を用いて学習した第2モデル、第1素性組、第2素性組、および第4素性組~第N素性組を用いて学習した第3モデルというように、第n素性組以外の素性組を用いて学習を行った第nモデル(ここで、1≦n≦N)を生成する。
なお、このようなモデルの生成処理については、情報提供装置10による制御の元、実行されることとなる。そして、モデル生成サーバ2は、生成されたモデルを情報提供装置10へと提供する(ステップS6)。
続いて、情報提供装置10は、各素性組を用いた場合におけるモデルの精度の改善量に基づいて、各素性組を評価する(ステップS7)。すなわち、情報提供装置10は、複数種別の素性に対応する複数の値から生成された素性組に対応する値であって、それぞれ異なる素性の組に対応する値の特徴をモデルに学習させた際の精度の改善量を取得し、改善量に基づいて、素性の組を評価する。例えば、情報提供装置10は、評価用データを用いて、各モデルの精度を算出する。そして、情報提供装置10は、精度の改善量が高い程、より高い評価値を算出する。
以下、情報提供装置10が各素性組を評価する処理の一例を説明する。例えば、情報提供装置10は、第1素性組を評価する場合、学習用データにおいて第1素性組を用いずに学習が行われた第1モデルの平均損失の値と、基準モデルの平均損失の値とを評価用データを用いて算出する。そして、情報提供装置10は、第1モデルの平均損失の値から基準モデルの平均損失の値を減算した値を、第1素性組に対応する改善量として算出し、算出した改善量の値に所定の係数(例えば、「1000」)を乗算した値を、評価値として算出する。すなわち、情報提供装置10は、第1素性組の値を用いた場合の改善量に基づいて、第1素性組の精度に対する重要性(Importance)を示す値を評価値として算出する。
そして、情報提供装置10は、各素性組の評価値に基づいて、新たな素性組を生成し、生成した素性組の値を用いてモデルの学習を行う処理を繰り返す(ステップS8)。例えば、情報提供装置10は、120個の素性組について評価値を算出した場合、評価値が高い方から順に20個の素性組を選択する。そして、情報提供装置10は、選択した20個の素性組とは異なる80個の素性組を新たに生成し、選択した20個の素性組と新たな80個の素性組とを合わせた計100個の素性組について、ステップS3~ステップS7の処理を再度実行する。
このような処理の結果、情報提供装置10は、100個の素性組についての評価値を得ることができる。このような場合、情報提供装置10は、100個の素性組のうち、評価値が高い方から順に20個の素性組を選択するとともに、60個の新たな素性組を生成する。そして、情報提供装置10は、選択した20個の素性組と新たな60個の素性組とを合わせた計80個の素性組について、ステップS3~ステップS7の処理を再度実行する。すなわち、情報提供装置10は、評価が所定の条件を満たす素性組を残しつつ、評価対象となる素性組の数を徐々に減少させながら、素性組の評価を継続的に実行する。
また、情報提供装置10は、所定の回数だけ素性組の評価を行った場合は、評価値が高い方から順に所定の数(例えば、10個)の素性組を選択し、選択した素性組を用いて、最終的なモデルの生成を行う。すなわち、情報提供装置10は、評価値が高い素性組を用いてモデルの学習を行うとともに、評価値が低い素性組を学習対象から除外する。そして、情報提供装置10は、生成したモデルを利用者Uに提供する(ステップS9)。
このように、情報提供装置10は、複数の素性をそのまま用いるだけではなく、各素性を組み合わせた素性組を1つの素性と見做し、素性組に対応する値を用いて、モデルの学習を行う。このような処理の結果、情報提供装置10は、素性の組が有する特徴をモデルに学習させることができるので、素性の組が分類精度に対して大きく寄与する場合に、より精度よく分類対象を分類可能なモデルを生成することができる。。例えば、後述するように、素性組と対応する値を用いてモデルの学習を行った場合、素性組と対応する値を用いずに学習を行ったモデルよりも精度を大幅に向上させることが実験結果により判明している。このため、情報提供装置10は、精度をより向上させたモデルを利用者に提供することができる。換言すると、情報提供装置10は、モデルの大きさや学習データを拡大した場合にも、モデルの精度のサチレーションを防ぐことができる。
ここで、上述した手法により素性組の評価を行った場合、評価値が負の値となる素性組が存在することが実験結果により明らかとなっている。このような素性組を用いてモデルの学習を行った場合、モデルの精度が低下してしまう。そこで、情報提供装置10は、生成した素性組を全て用いるのではなく、評価値が所定の閾値を超える素性組を用いて、モデルの学習を行う。このような処理の結果、情報提供装置10は、モデルのサイズの増大を軽減しつつ、モデルの精度を向上させることができる。
〔1-5.学習処理および評価処理のバリエーションについて〕
上述した例では、情報提供装置10は、素性組の値を用いたモデルの学習、および、モデルの精度に基づいた素性組の評価の一例について説明した。しかしながら、実施形態は、これに限定されるものではない。以下、情報提供装置10が実行する学習処理および評価処理のバリエーションについて説明する。
〔1-5-1.評価値について〕
上述した例では、各素性組の評価値として、素性組の重要性の値を算出した。しかしながら、実施形態は、これに限定されるものではない。例えば、情報提供装置10は、素性組を用いた場合のモデルの精度の改善量に基づいた評価値を算出してもよい。
例えば、情報提供装置10は、各素性組をそれぞれ個別に用いて既存モデルの再学習を行ったモデルを生成させる。より具体的な例を挙げると、情報提供装置10は、第1素性組のみを追加で用いて再学習を行った既存モデルを第1モデルとして取得する。そして、情報提供装置10は、第1モデルの精度と既存モデルの精度との差に基づいて、第1素性組を用いた場合の改善量を算出し、算出した改善量に基づく評価値を算出してもよい。例えば、情報提供装置10は、第1モデルの平均損失から既存モデルの平均損失の値を減算した値に基づいて、第1素性組の評価値を算出してもよい。
また、情報提供装置10は、平均損失の値の差をそのまま評価値としてもよい。また、情報提供装置10は、第1素性組を用いたモデルの正解率と既存モデルの正解率との差や、第1素性組を用いずに他の素性組を用いたモデルの正解率と基準モデルの正解率との差に基づいて、第1素性組の評価値を算出してもよい。また、情報提供装置10は、各モデルの真陽性率、偽陰性率、偽陽性率、および/または真陰性率に基づいて、評価値を算出してもよい。また、情報提供装置10は、第1素性組を用いたモデルの平均損失と既存モデルの平均損失との差、および、第1素性組を用いずに他の素性組を用いたモデルの平均損失と基準モデルの平均損失との差の両方を用いて、第1素性組の評価値を算出してもよい。
また、情報提供装置10は、各モデルのAUC(Area under an Receiver Operating Characteristic Curve)の値に基づいて、評価値を算出してもよい。また、これらの指標値以外にも、情報提供装置10は、評価対象となる素性組を用いたモデルとその素性組を用いたなかったモデルとについて、各モデルの精度を評価することができる任意の指標値を算出し、算出した指標値に基づいて、素性組の評価を行ってもよい。また、情報提供装置10は、各種の値の組み合わせに基づいて、素性組の評価を行ってもよく、これら値を所定の関数に入力することで得られる値から、素性組の評価を行ってもよい。すなわち、情報提供装置10は、各素性組と対応するモデルの精度の改善量に基づいて、各素性組を評価するのであれば、任意の手法を用いて、各素性組の評価を行ってよい。
〔1-5-2.素性組について〕
上述した例では、情報提供装置10は、素性組に含まれる各素性を示す値の組み合わせから、その素性組の値を生成した。ここで、情報提供装置10は、素性組の値として、任意の種別の値を生成してよい。例えば、情報提供装置10は、整数値の値を生成してもよく、例えば、浮動小数点の値を生成してもよい。また、情報提供装置10は、素性組に含まれる各素性の値を単純に結合した値を素性組の値としてもよい。なお、このような素性組の値の種別は、制約条件により指定されたものであってもよい。
なお、情報提供装置10は、素性組に含まれる各素性の値の組み合わせを示す値を、素性組の値とするのであれば、任意の手法により、素性組の値を生成してよい。例えば、第1素性が利用者の顔写真であり、第1素性の値が顔写真の画像データであるものとする。また、例えば、第2素性が利用者の声であり、第1素性の値が、声の音声データであるものとする。このような場合、情報提供装置10は、第1素性と第2素性とを含む素性組の値として、画像データと音声データとを入力としたハッシュ値等を採用してもよい。
また、情報提供装置10は、第1素性の情報の類似性に基づいて、第1素性の値をベクトル化するとともに、第2素性の情報の類似性に基づいて、第2素性の値をベクトル化する。そして、情報提供装置10は、第1素性の値と対応するベクトルと、第2素性の値と対応するベクトルとの和や結合等、各ベクトルに基づくベクトルを素性組の値としてもよい。また、情報提供装置10は、顔画像と音声データとの組合せの類似性を学習したモデルを用いて、顔画像と音声データとの組合せから、素性組の値となるベクトルを生成してもよい。
また、情報提供装置10は、例えば、第1素性および第2素性のいずれも画像である場合は、これらの画像を合成した単一の画像を素性組と対応する値としてもよく、各素性のいずれもが音声データである場合、これらの音声データを合成した単一の音声データを素性組としてもよい。すなわち、素性組の「値」とは、単純な数値に限定されるものではなく、各種のデータを構成する数値を含む概念である。
〔1-5-3.学習に用いる素性組について〕
上述した例では、情報提供装置10は、他の素性組よりも評価値が高い素性組を用いて、モデルの学習を行っていた。しかしながら、実施形態は、これに限定されるものではない。例えば、情報提供装置10は、評価値の値が正となる素性組を全て用いて、モデルの学習を行ってもよく、評価値の値が所定の閾値を超える全ての素性組を用いて、モデルの学習を行ってもよい。また、情報提供装置10は、評価値の値が正となる素性組のうち、評価値の値が高い方から順に所定の数の素性組を用いて、モデルの学習をおこなってもよい。また、情報提供装置10は、評価値の値が正となる素性組が存在しない場合は、再度所定の数の素性組をランダムに、若しくは、制約条件に従って生成してもよい。
また、情報提供装置10は、評価値が所定の条件を満たす素性組に基づいて、新たな素性組の生成を行ってもよい。例えば、情報提供装置10は、各素性組のうち、評価値が高い方から順に所定の数の素性組を選択する。続いて、情報提供装置10は、選択した素性組に含まれる素性を特定する。そして、情報提供装置10は、特定した素性を含む新たな素性組の生成を行い、生成された各素性組の評価を行ってもよい。また、情報提供装置10は、評価値が低い素性組に含まれる素性を含まない素性組を新たに生成してもよい。
また、情報提供装置10は、各素性ごとに、選択された素性組に含まれる数をカウントし、カウントされた数が多い方から順に所定の数の素性を選択する。そして、情報提供装置10は、選択した素性を含む新たな素性組の生成を行ってもよい。また、情報提供装置10は、各素性組のうち、評価値が低い方から順に所定の数の素性組を選択し、各素性ごとに、選択した素性組に含まれる数をカウントする。そして、情報提供装置10は、カウントした数が多い方から順に所定の数の素性を特定し、特定した素性を含まない素性組を新たに生成してもよい。
すなわち、情報提供装置10は、各素性組に含まれる素性を遺伝的アルゴリズムにおける遺伝子と見做し、各種の交叉を考慮した素性組を新たに生成することで、モデルの精度をより効率的に向上させる素性組の生成を行ってもよい。また、情報提供装置10は、このような素性組の生成において、突然変異や各種の交叉といった遺伝的アルゴリズムの手法を任意の態様で適用してもよい。
〔1-5-4.モデルについて〕
ここで、情報提供装置10がモデル生成サーバ2に対して生成させるモデルの具体例について説明する。例えば、情報提供装置10は、N個の素性組が生成された場合、既存のモデルに対し、N個の素性組と対応する値を入力するためのノードを追加したモデルを生成させる。続いて、情報提供装置10は、全ての素性組の値を入力した状態でモデルの学習を行わせることで、基準モデルの生成を行うとともに、各素性組の値をそれぞれ入力しなかった場合のモデルをそれぞれ生成させる。
ここで、情報提供装置10は、各素性組の値をそれぞれ入力しなかった場合のモデルを生成する場合、各素性組の値をモデル自体に入力しないようにすることで、モデルの生成を行ってもよい。しかしながら、情報提供装置10は、モデルの生成処理を効率化するため、以下の処理を実行する。まず、情報提供装置10は、モデルとして、各素性組の値をエンベディングするエンベディング層を中間層よりも入力層側に備えるモデルを生成させる。そして、情報提供装置10は、全ての素性組の値を入力層から入力するとともに、エンベディング層に含まれるノードのうち、いずれかの素性組の値をエンベディングするノードへと情報を伝達する経路の重み係数を「0」に設定することで、各素性組の値を用いなかったモデルの生成を行わせる。このような処理実行することで、情報提供装置10は、各素性組を用いなかったモデルの生成を効率よく行うことができる。
なお、情報提供装置10は、線形モデルとディープモデルとを組み合わせた所謂ワイドディープモデルの生成を行ってもよい。このようなワイドディープモデルを生成する場合、情報提供装置10は、制約条件として、素性組の利用態様の指定を受付けてもよい。例えば、情報提供装置10は、素性組の値を、線形モデル部分に入力して学習を行うか、ディープモデル部分に入力して学習を行うかの指定を受付けてもよい。また、情報提供装置10は、制約条件として、素性組の値を、線形モデル部分およびディープモデル部分の両方に入力して学習を行う旨の指定を受付けてもよい。
また、このような指定がなされなかった場合、情報提供装置10は、素性組の値を入力する部分をランダムに選択してもよい。また、情報提供装置10は、素性組の値を線形モデル部分に入力した場合と、ディープモデル部分に入力した場合とのそれぞれについて、評価値を算出し、算出結果に基づいた処理を行ってもよい。すなわち、情報提供装置10は、素性組と、その素性組の値を入力する部分との組合せ(以下「素性入力組」と記載する。)ごとに、評価を行ってもよく、このような評価の結果に応じて、学習に用いる素性入力組の指定や、新たな素性入力組の生成を行ってもよい。
〔1-5-6.評価処理について〕
上述した例では、情報提供装置10は、素性組の評価結果に基づいて、学習対象とする素性組を選択するとともに、新たな素性組を生成し、選択した素性組と新たな素性組の評価結果に基づいて、再度新たな素性組の選択を行う処理を繰り返し実行することで、精度向上に寄与する素性組を選択した。しかしながら、実施形態は、これに限定されるものではない。
例えば、情報提供装置10は、1回目の評価結果に基づいて選択された素性組を単に学習対象として、モデルの生成および提供を行ってもよい。また、情報提供装置10は、各素性組に対する評価内容を利用者に提示するだけであってもよい。すなわち、情報提供装置10は、学習装置ではなく、評価装置として動作してもよく、学習装置および評価装置の両方として動作してもよい。
例えば、情報提供装置10は、各素性組に対する評価値の値を算出するとともに、算出した値が高い方から順に、各素性組に含まれる素性を示すリストを生成する。そして、情報提供装置10は、生成したリストを利用者に提供してもよい。また、例えば、情報提供装置10は、評価値が高い方から順に所定の数の素性組と、評価値が低い方から順に所定の数の評価値とを示すリストを生成して利用者に提供してもよい。また、情報提供装置10は、評価値が正の値となる素性組を精度を向上させる素性組として示すとともに、評価値が負の値となる素性組を精度を低下させる素性組として示す(若しくはこれらの一方を示す)リストを生成してもよい。
このようなリストが提供された場合、利用者は、どのような素性の組み合わせが目的に対して有用であるか、若しくは、どのような素性の組み合わせが目的に対して有用ではないかを検討、推定することができる。このような推定の結果、利用者は、例えば、新たな制約条件(すなわち、評価結果に応じて作成された新たな制約条件)を作成し、作成した制約条件に応じた素性組を用いて、モデルの学習の試行結果や、素性組に対する評価を新たに得ることができる。このような対話型の処理を繰り返し実行することで、情報提供装置10は、目的に応じたモデルの理解を促進するとともに、モデルの精度を向上させることができる。
〔1-5-7.適用対象について〕
上述した例では、情報提供装置10は、分類対象として、各利用者の各種情報に基づいて、各利用者の分類を行うモデルの生成を行った。ここで、実施形態は、任意の学習データについて、上述した学習処理および評価処理を実行して良い。
例えば、情報提供装置10は、利用者の情報に基づいてCTRの予測を行うモデルを生成し、生成したモデルを用いて、素性組の最適化を行ってもよい。また、情報提供装置10は、利用者の情報から利用者が購入する取引対象の予測を行うモデルを生成し、生成したモデルを用いて、素性組の最適化を行ってもよい。
また、情報提供装置10は、利用者の情報ではなく、例えば、各種情報処理装置のログデータや文章、気象、その他任意の種別のデータから、分類、予測、翻訳処理等といった任意のモデルの精度を向上させるため、素性組の最適化を行ってもよい。
〔2.情報提供装置の構成〕
次に、図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には、学習データが登録される。例えば、図4は、実施形態に係る学習データベースに登録される情報の一例を示す図である。図4に示す例では、学習データデータベース31には、学習データID(Identifier)、および学習データが対応付けて登録されている。ここで、学習データIDは、学習データとなる複数のデータ群を識別する識別子である。また、学習データとは、学習に用いられるデータである。
例えば、図4に示す例では、学習データデータベース31には、「学習データ#1」に対し、「ラベル#1-1」と「データ#1-1」との組、および、「ラベル#1-2」と「データ#1-2」との組が対応付けて登録されている。このような情報は、「学習データ#1」が示す学習データとして、「ラベル#1-1」が付与された「データ#1-1」、および、「ラベル#1-2」が付与された「データ#1-2」が登録されている旨を示す。なお、各ラベルには、同一の特徴を示す複数のデータが登録されていてもよい。また、図4に示す例では、「学習データ#1」、「ラベル#1-1」、「データ#1-1」といった概念的な値を記載したが、実際には、学習データを識別するための文字列や数値、ラベルとなる文字列、データとなる各種整数、浮動小数点、もしくは文字列等が登録されることとなる。
図3に戻り、生成条件データベース38には、学習データに関する各種の条件と、学習データが条件を場合に生成指標若しくはその候補として決定される各種の指標とを対応付けた生成条件が登録されている。例えば、図5は、実施形態に係る生成条件データベースに登録される情報の一例を示す図である。図5に示す例では、生成条件データベース32には、条件ID、条件内容、および指標候補が対応付けて登録されている。
ここで、条件IDとは、生成条件を識別する識別子である。また、条件内容とは、学習データが満たすか否かの判定対象となる条件であり、例えば、学習データの内容に関する条件である内容条件と、学習データの傾向に関する傾向条件等、各種の条件により構成される。また、指標候補とは、対応付けられた条件内容に含まれる各条件が満たされた場合に、生成指標に含まれる各種の指標である。
例えば、生成条件データベース38には、条件ID「条件ID#1」、内容条件「整数」、傾向条件「密度<閾値」、指標候補「生成指標#1」とが対応付けて登録されている。このような情報は、条件ID「条件ID#1」として、学習データが内容条件「整数」であり、かつ、傾向条件「密度<閾値」を満たす場合に、指標候補「生成指標#1」が生成指標として決定される旨を示す。
なお、図5に示す例では、「生成指標#1」といった概念的な値を記載したが、実際には、各種生成指標として採用される情報が登録される。例えば、生成条件データベース38には、AutoMLにおけるコンフィグファイルに記載される各種の関数が指標候補として登録される。なお、生成条件データベース38には、例えば、1つの条件に対して複数の生成指標が登録されていてもよい。
なお、上述したように、どのような条件が満たされた場合にどのような生成指標を生成するかについては、任意の設定が可能である。例えば、生成条件データベース38には、過去に生成したモデルであって、精度が所定の閾値を超えるモデルについての各種生成指標と、そのモデルの学習に用いた学習データの特徴や傾向とに基づいて生成された生成条件が登録されてればよい。
図3に戻り、説明を続ける。制御部40は、例えば、CPU(Central Processing Unit)やMPU(Micro Processing Unit)等によって、情報提供装置10内部の記憶装置に記憶されている各種プログラムがRAMを作業領域として実行されることにより実現される。また、制御部40は、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実現される。図36に示すように、制御部40は、モデル生成部41、受付部42、学習データ生成部43、学習部44、取得部45、評価部46、および提供部47を有する。
〔2-1.指標生成処理とモデル生成処理を実現するための構成〕
モデル生成部41は、学習処理および評価処理の説明に先駆けて、指標生成処理とモデル生成処理とを実行する。例えば、モデル生成部41は、端末装置3から、学習データとして用いる各種のデータと、各種データに付与されるラベルを受付けると、受付けたデータとラベルとを学習データとして学習データデータベース31に登録する。なお、モデル生成部41は、あらかじめ学習データデータベース31に登録されたデータのうち、モデルの学習に用いる学習データの学習データIDやラベルの指摘を受付けてもよい。
また、モデル生成部41は、学習データが有する統計的な特徴等、学習データの特徴に基いて、生成指標を生成する。例えば、モデル生成部41は、学習データが生成条件データベース32に登録された生成条件を満たすか否かに応じて、生成指標を生成する。例えば、モデル生成部41は、学習データが整数であるか、浮動小数点であるか、若しくは文字列であるかに基いて、生成指標を生成してもよい。より具体的な例を挙げると、モデル生成部41は、学習データが整数である場合、学習データの連続性に基いて、生成指標を生成してもよい。
また、モデル生成部41は、例えば、学習データの密度を算出し、算出した密度が所定の第1閾値を超える場合、学習データの最大値が所定の第2閾値を上回るか否かに基いて生成指標を生成してもよい。すなわち、モデル生成部41は、最大値が第2閾値を上回るか否かに応じて異なる生成指標を生成してもよい。また、モデル生成部41は、学習データの密度が所定の第1閾値を下回る場合、学習データに含まれるユニークな値の数が所定の第3閾値を上回るか否かに基いて生成指標を生成してもよい。
なお、モデル生成部41は、学習データの密度や最大値等が各種閾値を超えるか否かといった条件分岐に応じて異なる生成指標を生成してもよく、例えば、学習データの密度や最大値等そのものの値に応じた生成指標を生成してもよい。例えば、モデル生成部41は、学習データの数、密度、最大値等といった統計的な値に基づいて、モデルのノード数や中間層の数等といった各種生成指標となるパラメータの値を算出してもよい。すなわち、モデル生成部41は、学習データが有する特徴に基づいて異なる生成指標を生成するのであれば、任意の条件に基づいて、生成指標の生成を行ってよい。
また、モデル生成部41は、学習データが文字列である場合、学習データに含まれる文字列の種別の数に基いて、生成指標を生成する。すなわち、モデル生成部41は、ユニークな文字列の種別の数に応じて異なる生成指標を生成する。また、モデル生成部41は、学習データが浮動小数点である場合、モデルの生成指標として、学習データをモデルに入力する入力データへの変換指標を生成する。例えば、モデル生成部41は、浮動小数点をバケタイズするか否か、どの範囲の値をどのバケットに分類するか等を学習データの統計的な情報に基づいて決定する。より具体的な例を挙げると、モデル生成部41は、浮動小数点である学習データに含まれる値の範囲や、学習データに付されたラベルの内容といった特徴に応じて、バケタイズするか否か、どの範囲の値をどのバケットに分類するか等を決定してもよい。また、モデル生成部41は、学習データの特徴に基づいて、各バケットに対応する値の範囲を一定にするか否かや、各バケットに分類する学習データの数を一定(若しくは、所定の分布)にするか否かを決定してもよい。
また、モデル生成部41は、モデルの生成指標として、学習データが有する特徴のうちモデルに学習させる特徴を示す生成指標を生成する。例えば、モデル生成部41は、学習データの特徴に基づいて、モデルに学習させるデータのラベルを決定する。また、モデル生成部41は、モデルの生成指標として、学習データの種別のうちモデルに対して相関を学習させる複数の種別を示す生成指標を生成する。
なお、このような学習対象となる特徴(ラベル)や特徴の関係性の決定は、例えば、モデルが出力するデータのラベル等、どのようなモデルを利用者が所望するかといった目的に応じた決定が行われてもよい。また、どの特徴を採用するか、どの特徴の組み合わせの特徴を学習させるかについては、例えば、上述した遺伝的アルゴリズムにおいて、各特徴や特徴の組み合わせを採用するか否かを示すビットを遺伝子と見做し、新生代の生成指標を生成することで、モデルの精度がより向上する特徴や特徴の組み合わせを発見することで、決定されてもよい。
また、モデル生成部41は、モデルの生成指標として、モデルに入力される学習データの次元数を示す生成指標を生成する。また、モデル生成部41は、モデルの生成指標として、学習データの特徴を学習させるモデルの種別を示す生成指標を生成する。また、モデル生成部41は、モデルの生成指標として、モデルが有する中間層の数若しくは各層に含まれるノードの数を示す生成指標を生成する。また、モデル生成部41は、モデルの生成指標として、モデルが有するノード間の接続態様を示す生成指標を生成する。また、モデル生成部41は、モデルの生成指標として、モデルの大きさを示す生成指標を生成する。例えば、モデル生成部41は、ユニークな学習データの数や採用される特徴あるいはその組み合わせの数、学習データとなる数値や文字列のビット数等に応じて、モデルに入力される学習データの次元数を示す生成指標を生成してもよく、例えば、モデルの各種構造を決定してもよい。
また、モデル生成部41は、モデルの生成指標として、学習データが有する特徴をモデルに学習させる際の学習態様を示す生成指標を生成する。例えば、モデル生成部41は、学習データの特徴や上述した各種の生成指標に基づいて、ハイパーパラメータの内容を決定してもよい。このように、モデル生成部41は、モデルに学習させる学習データの特徴、生成するモデルの態様、および学習データが有する特徴をモデルに学習させる際の学習態様を示す生成指標を生成する。なお、モデル生成部41は、上述した全ての生成指標を決定、生成する必要はなく、任意の種別の生成指標のみを決定、生成すればよい。
また、モデル生成部41は、生成された指標を利用者に提示する。例えば、モデル生成部41は、生成指標として生成されたAutoMLのコンフィグファイルを端末装置3に送信する。そして、モデル生成部41は、利用者に対して提示した生成指標の修正を受付ける。また、モデル生成部41は、モデルに学習させる学習データの特徴、生成するモデルの態様、および学習データが有する特徴をモデルに学習させる際の学習態様を決定する順番の指定を利用者から受け付ける。このような場合、モデル生成部41は、利用者から指定された順番で、モデルに学習させる学習データの特徴、生成するモデルの態様、および学習データが有する特徴をモデルに学習させる際の学習態様を決定する。すなわち、モデル生成部41は、利用者から指定された順番で、各種の生成指標を再度生成しなおす。
また、モデル生成部41は、生成指標に従って、学習データが有する特徴を学習させたモデルを生成する。例えば、モデル生成部41は、学習データをトレーニング用データと評価用データとに分割するとともに、トレーニング用データと生成指標とをモデル生成サーバ2に送信する。そして、モデル生成部41は、モデル生成サーバ2が生成指標に従ってトレーニング用データから生成したモデルを取得する。このような場合、モデル生成部41は、評価用データを用いて、取得したモデルの精度を算出する。
なお、モデル生成部41は、それぞれ異なる複数の生成指標を生成する。このような場合、モデル生成部41は、生成指標ごとに異なるモデルを生成させ、各モデルの精度を算出する。なお、モデル生成部41は、各モデルごとに異なるトレーニング用データおよび評価用データを生成してもよく、同一のトレーニング用データおよび評価用データを採用してもよい。
このように、複数のモデルが生成された場合、モデル生成部41は、生成されたモデルの精度に基いて、モデルの生成指標を新たに生成する。例えば、モデル生成部41は、各学習データを利用するか否か、どの生成指標を採用したか否かを遺伝子見做した遺伝的アルゴリズムを用いて、複数の生成指標から新たな生成指標を生成する。そして、モデル生成部41は、新たな生成指標に基づいて、新たなモデルの生成を行う。このような試行錯誤を所定の回数、若しくは、モデルの精度が所定の閾値を超えるまで繰り返し実行することで、情報提供装置10は、モデルの精度を向上させる生成指標の生成を実現できる。
なお、モデル生成部41は、生成指標を決定する順序についても、遺伝的アルゴリズムの対象として最適化を行ってもよい。また、モデル生成部41は、生成指標が生成される度に生成指標を利用者に提示してもよく、例えば、精度が所定の閾値を超えたモデルと対応する生成指標のみを利用者に提示してもよい。
そして、モデル生成部41は、生成したモデルを利用者に提供する。例えば、モデル生成部41は、生成されたモデルの精度が所定の閾値を超えた場合は、そのモデルとともに、モデルと対応する生成指標を端末装置3へと送信する。この結果、利用者は、モデルの評価や試用を行うとともに、生成指標の修正を行うことができる。
なお、図3に示す例では、指標生成処理とモデル生成処理とをモデル生成部41が実行するように記載したが、実施形態は、これに限定されるものではない。例えば、モデル生成部41は、情報提供装置10に上述した各処理を実行させるためのプログラムにより実現されるものであるが、単一の機能構成として動作するものであってもよく、例えば、学習データを取得するための取得機能、生成指標を生成する指標生成機能、生成指標を利用者に提示する提示機能、生成指標の修正を受付ける受付機能、生成指標に基づいてモデルを生成するモデル生成機能、および生成したモデルを提供する提供機能のそれぞれが独立した機能構成により実現されるものであってもよい。
〔2-2.学習処理および評価処理を実現するための構成〕
続いて、学習処理および評価処理を実現するための構成について説明する。受付部42は、所定の操作者から、素性組を生成する際の制約条件を受付ける。例えば、受付部42は、端末装置3から、各素性組に含める素性の指定や、各素性組に含める素性の数、もしくは数の範囲の指定、生成する素性組の数の指定、素性組に含める素性の候補の指定を受付ける。なお、受付部42は、素性組の値の種別やその範囲、素性組の値を、線形モデル部分に入力するか、ディープモデル部分に入力するかの指定を受付けてもよい。また、これら以外にも、受付部42は、素性組そのものに関する条件や素性組の値に関する条件、素性組の値をどのように用いて学習を行うかの条件を示す制約条件を受付けてよい。
学習データ生成部43は、所定の対象の素性を示す値であって、それぞれ異なる種別の複数の素性を示す複数の値から、その複数の種別の素性の素性組に対応する値を生成する。例えば、学習データ生成部43は、所定の対象の素性をランダムに組み合わせた組を生成し、生成した組ごとに対応する値を生成してもよい。また、学習データ生成部43は、複数の素性の値から、その複数の素性の積を示す値を生成してもよい。例えば、学習データ生成部43は、第1種別の素性の値と第2種別の素性の値とから、第1種別の素性と第2種別の素性との組に対応する値を生成する。
ここで、学習データ生成部43は、制約条件に従って、所定の対象の素性を素性組み合わせた組を生成し、生成した組ごとに対応する値を生成する。例えば、学習データ生成部43は、制約条件で指定された素性を少なくとも含む組を生成し、生成した組ごとに対応する値を生成してもよい。また、学習データ生成部43は、指定された数の素性を含む組を生成し、生成した組ごとに対応する値を生成してもよい。また、学習データ生成部43は、指定された数の組を生成し、生成した組ごとに対応する値を生成してもよい。また、学習データ生成部43は、指定された素性の候補を組み合わせた組を生成し、生成した組ごとに対応する値を生成してもよい。
以下、学習データ生成部43が生成する学習データの一例について説明する。まず、学習データ生成部43は、学習データデータベース31に登録された各データを、学習用データと評価用データに分類する。なお、この処理は、モデル生成部41による分類結果を援用してもよい。続いて、学習データ生成部43は、学習用データに含まれる各データのラベルを参照する。そして、学習データ生成部43は、各ラベルを素性として、素性組の生成を行う。
例えば、学習データ生成部43は、学習用データに含まれるデータのラベルが「ラベル#1-1」、「ラベル#1-2」、および「ラベル#1-3」である場合、これらのラベルを2つ以上ランダムに組み合わせた組を素性組として採用してもよい。また、学習データ生成部43は、制約条件において指定された内容に応じた素性組を生成してもよい。例えば、学習データ生成部43は、「ラベル#1-1」が指定されている場合、少なくとも、「ラベル#1-1」を含む素性組を生成してもよい。
学習部44は、学習データ生成部43が生成した値を用いて、所定の対象の特徴をモデルに学習させる。例えば、学習部44は、モデル生成部41により生成された、ディープニューラルネットワークの構造を有するモデルに対し、学習データ生成部43が生成した学習データの特徴を学習させる。
例えば、学習部44は、モデルの入力層に対し、各素性組の値を入力するためのノードを追加したモデルを生成する。そして、学習部44は、生成したモデルと、学習データ生成部43が生成した学習データとをモデル生成サーバ2に送信し、学習データの特徴をモデルに学習させる。
例えば、学習部44は、全ての素性組のデータを同時に入力することで学習が行われたモデルを基準モデルとして生成させる。また、学習部44は、いずれか1つの素性組のデータを入力せず、他の素性組のデータを同時に入力することで学習が行われた複数のモデルをそれぞれ生成させる。なお、学習部44は、例えば、入力しない素性組と対応するエンベディング層のノードへの接続係数を強制的に零とすることで、複数のモデルを生成させてもよい。
以下、学習部44が実行する処理の一例について説明する。例えば、学習データ生成部43は、N個の素性組を生成した場合、学習データと対応する分類対象ごとに、素性組と対応するN個の値を生成する。このような場合、学習部44は、ある分類対象について生成されたN個の素性組の値を入力した際に、分類対象を適切に分類するようにモデルの学習を行わせることで、基準モデルの生成を行う。また、学習部44は、ある分類対象について生成されたN個の素性組の値を入力するとともに、所定の素性組と対応するエンベディング層へのノードへの接続係数を強制的に零とすることで、いずれかの素性組を用いなかった複数のモデルを生成させる。このような処理を、分類対象ごとに繰り返し実行することで、学習部44は、各モデルの学習を行う。
なお、学習部44は、制約条件に応じたモデルの学習を行ってもよい。例えば、学習部44は、制約条件にしたがって、素性組と対応する値を、ワイドディープモデルのうち線形モデル部分に入力するように学習を行ってもよく、ディープモデル部分に入力するように学習を行ってもよく、その両方に入力して学習を行ってもよい。
取得部45は、複数種別の素性に対応する複数の値から生成されたその複数種別の素性の組に対応する値であって、それぞれ異なる素性の組に対応する値の特徴をモデルに学習させた際の精度の改善量を取得する。例えば、取得部45は、学習部44により生成された複数のモデルを取得する。そして、取得部45は、いずれかの素性組を用いなかったモデルの平均損失と、基準モデルの平均損失の値とを算出し、算出した値の差分を改善量として取得する。
評価部46は、学習部による学習結果に基づいて、生成部が生成した値に対応する素性の組を評価する。例えば、評価部46は、取得部45が取得した改善量に基づいて、素性の組を評価する。例えば、評価部46は、取得部45が算出した値の差分に対し、所定の係数を乗算した値を評価値として算出する。より具体的には、評価部46は、ある素性組と対応する値を用いなかったモデルの平均損失と、基準モデルの平均損失の値とから算出された改善量に基づいて、その素性組の評価値を算出する。
なお、上述した評価部46による評価結果は、学習データ生成部43や学習部44により再帰的に利用される。例えば、学習部44は、評価結果が所定の条件を満たす素性の組の値を用いて、モデルを学習してもよい。より具体的な例を挙げると、学習部44は、評価値が正となる素性組や、評価値が高い方から順に所定の数の素性組等、評価結果が所定の閾値を超える素性組を選択し、選択した素性組の値のみを用いて、モデルを再学習してもよい。また、学習部44は、評価値が負となる場合や、評価値が低い方から順に所定の数の素性組等、評価結果が所定の閾値を下回る素性組を、モデルを学習する際に値を用いる素性の組から除外して、モデルの再学習を行ってもよい。また、評価部46は、このように再学習がなされたモデルを用いて、再度素性組の評価を行ってもよい。そして、学習部44は、このような再評価の結果に応じて、学習対象とする素性組を選択してもよい。
また、学習データ生成部43は、評価結果が所定の条件を満たす素性組とは異なる新たな素性組と対応する値を生成してもよい。このような場合、学習部44は、評価結果が所定の条件を満たす素性組と新たな素性組とを用いて、モデルの再学習を行う。そして、評価部46は、再学習の結果に基づいて、各素性組の評価を行ってもよい。また、学習データ生成部43、学習部44、および評価部46は、学習対象となる素性組の数が徐々に少なくなるように、素性組の生成、学習、および素性組の評価を繰り返し実行することで、より有用な素性組を抽出してもよい。
また、学習データ生成部43は、評価結果が所定の条件を満たす素性の組に基づいて、新たな素性の組を生成し、生成した素性の組と対応する値を生成してもよい。例えば、学習データ生成部43は、評価結果が所定の閾値を超える素性の組に含まれる素性を含む新たな素性の組を生成してもよい。また、学習データ生成部43は、評価結果が所定の閾値を下回る素性の組に含まれる素性を含まない新たな素性の組を生成してもよい。このような処理を実行することで、学習データ生成部43は、遺伝的アルゴリズムを援用しつつ、より有用な素性組を抽出する処理を実行することできる。
提供部47は、評価部46による評価結果を利用者に提供する。例えば、提供部47は、各素性組を評価値の値に応じて並べたリストを利用者に対して提供してもよい。また、提供部47は、評価値の値が正となる素性組(すなわち、モデルの学習に有用な素性組)のリストや、評価値の値が負となる素性組(すなわち、モデルの学習に有用ではない素性組)のリストを提供してもよい。
なお、学習部44は、例えば、上述した再帰的な処理を所定の回数行った場合や、素性組の評価値の変動が所定の範囲内に収まる場合、評価値が所定の条件を満たす素性組の変動が所定の範囲内に収まる場合等、有用な素性組の抽出が行われたと推定される場合は、これらの素性組の値を用いてモデルの学習を行う。このような場合、提供部47は、生成されたモデルを利用者に対して提供することで、精度良く目的を達成するモデルを提供することができる。
〔3.情報提供装置10の処理フロー〕
次に、図6を用いて、情報提供装置10が実行する処理の手順について説明する。図6は、実施形態に係る学習処理および評価処理の流れの一例を示すフローチャートである。
例えば、情報提供装置10は、制約条件を受付ける(ステップS101)。このような場合、情報提供装置10は、制約条件に従って素性組を生成し(ステップS102)、生成した素性組の値を生成する(ステップS103)。そして、情報提供装置10は、生成した各素性組の値を用いて、モデルの学習を行う(ステップS104)。
続いて、情報提供装置10は、各モデルの精度に基づいて、各素性組を評価する(ステップS105)。ここで、情報提供装置10は、所定の条件を満たすまで学習を試行したか否かを判定する(ステップS106)。例えば、情報提供装置10は、再帰的な処理を所定の回数行ったか否か、素性組の評価値の変動が所定の範囲内に収まるか否か、評価値が所定の条件を満たす素性組の変動が所定の範囲内に収まるか否か、評価値が所定の閾値を超える素性組の数が所定の閾値を超えたか否か等を判定する。
そして、情報提供装置10は、所定の条件を満たすまで学習を試行していない場合は(ステップS106:No)、評価結果に基づいて、新たな素性組を生成し(ステップS107)、ステップS103から処理を再開する。一方、情報提供装置10は、所定の条件を満たすまで学習を試行した場合は(ステップS106:Yes)、素性組の情報やモデルを提供し(ステップS108)、処理を終了する。
〔4.実験結果の一例について〕
続いて、図7~図11を用いて、上述した学習処理および評価処理を実行した場合における効果の一例について説明する。
例えば、図7は、素性組を用いた場合と素性組を用いなかった場合とにおける精度の比較例を示す図である。なお、図7に示す例では、縦軸を性能値(AUCの値からROCの値を減算した値)とし、横軸を平均損失として、利用者の情報からCTRの予測を行うモデルについて、素性組を用いて学習を行ったモデル(DNNResNetClassfier with Feature Crosses)と、素性組を用いずに学習を行ったモデル(DNNResNetClassfier)との性能をプロットした。
図7に示すように、素性組を用いて学習を行ったモデルにおいては、用いなかったモデルと比較して、平均損失と性能値とがともに改善することが実験により解った。また、図7中に点線で囲んだ領域Aに含まれるモデルは、領域Bに含まれるモデルと比較して、高々5万回の学習を行っただけで、大幅に性能が改善された。
次に、図8を用いて、素性組を用いた場合におけるモデルサイズ(入力する情報の種別の数)と平均損失との関係性の実験結果について説明する。図8は、素性組を用いた場合におけるモデルサイズと平均損失との関係性の実験結果を示す図である。なお、図8に示す例では、縦軸を平均損失の値とし、横軸をモデルサイズとして、素性組を用いて学習を行ったモデルの平均損失の値をプロットした。また、図8に示す例では、各モデルサイズにおいて最も低い平均損失の値を丸印でプロットし、他の値を三角印でプロットした。また、図8に示すモデルは、5万回の学習を行ったものとなる。
図8中の点線は、各モデルサイズにおいて最も低い平均損失の値の近似直線である。図8に示すように、平均損失の近似曲線は、モデルサイズを大きくすればするほど、平均損失の値が小さくなることを示している。この結果、素性組を用いて学習を行ったモデルは、モデルサイズを大きくすれば大きくするほど、より平均損失の値が小さくなり、精度が向上することが分かった。
次に、図9を用いて、素性組を用いたモデルと、用いなかったモデルとの学習を継続した場合の精度の遷移について説明する。図9は、素性組を用いた場合と素性組を用いなかった場合とにおける精度の遷移例を示す図である。図9に示す例では、DNNResNetClassifierをモデルとして用いた。また、図9に示す例では、横軸を所定回数の学習を行った回数(epoch)、縦軸を平均損失の値として、素性組を用いずに学習を行った4つのモデルの平均損失の値を太線で示すとともに、素性組を用いて学習を行った6つのモデルの平均損失の値を細線で示した。
図9に示すように、素性組を用いて学習を行った各モデルの精度は、素性組を用いなかったモデルと比較して高いことがわかった。また、学習を進めた場合、素性組を用いなかったモデルにおいては、途中で精度の変化量が減少し、サチレーションが発生するが、素性組を用いなかったモデルにおいては、学習を進めたとしても、精度の変化量があまり減少せず、サチレーションを回避していることが分かった。
次に、図10を用いて、有用な素性組のみを用いて学習を行ったモデルの精度の遷移について説明する。図10は、有用な素性組のみを用いて学習を行った場合における精度の遷移例を示す図である。図10に示す例では、DNNResNetClassifierをモデルとして用いた。また、図10に示す例では、横軸を所定回数の学習を行った回数(epoch)、縦軸を平均損失の値として、素性組を用いずに学習を行った4つのモデルの平均損失の値を太線で示し、素性組を用いて学習を行った6つのモデルの平均損失の値を細線で示すとともに、有用な素性組のみを用いて学習を行った2つのモデルの平均損失の値を中太線で示した。
有用な素性組のみを用いて学習を行った2つのモデルにおいては、学習が進むにつれて、より有用な素性組が抽出され、その素性組の特徴が学習されることとなる。このため、図10に示すように、有用な素性組を用いて学習を行った2つのモデルの精度は、学習を進めるにつれて、単に素性組を用いて学習を行ったモデルよりも、さらに精度が向上することが分かった。
次に、図11を用いて、有用な素性組を用いて学習を行ったモデルにおけるCTR予測の精度について説明する。図11は、有用な素性組を用いて学習を行ったモデルにおけるCTR予測の精度の一例を示す図である。図11に示す例では、平均損失の値を縦軸とし、モデルサイズを横軸として、単に素性組を用いて学習を行ったモデルBと、有用な素性組のみを用いて学習を行ったモデルCとの平均損失の値をプロットした。図11に示すように、モデルCは、モデルBと比較して72%程モデルサイズが小さいにも関わらず、平均損失の値が低く、より精度が高いモデルであることが分かった。
次に、図12を用いて、素性組の評価を行い、評価値が高い素性組を自動的に抽出して学習を行ったモデルにおける精度について説明する。図12は、素性組の評価結果に応じて学習を行ったモデルにおける精度の一例について説明する図である。なお、図12に示す例では、平均損失の値を横軸とし、モデルの性能(AUC-ROC)を縦軸として、素性組を用いなかったモデル(Without Feature Crosses)、ランダムに生成された素性組を用いたモデル(With Feature Crosses)、および評価値が高い素性組を用いて学習が行われたモデル(With Only Effective Feature Crosses)の性能をプロットした。また、図12に示す例では、素性組を用いなかったモデルの性能を三角印でプロットし、ランダムに生成された素性組を用いたモデルの性能を丸印でプロットし、評価値が高い素性組を用いて学習が行われたモデルの性能を菱形印でプロットした。
図12に示すように、素性組を用いなかったモデルよりも、素性組を用いたモデルは、総じて平均損失の値が低く、性能も高いことが分かった。また、素性組の評価を行い、評価値が高い素性組のみを用いて学習を行ったモデルは、素性組をランダムに用いたモデルよりも、大幅に(非連続的に)性能が向上していることが分かった。
上述したように、各種の実験結果により、素性組を用いて学習を行ったモデルにおいては、素性組を用いなかったモデルと比較してより精度が向上することが分かった。また、素性組を用いて学習を行ったモデルにおいては、学習を進めたとしても、サチレーションが発生しづらく、より精度が向上することが分かった。また、素性組のうち有用な素性組のみを採用することで、モデルの精度をより向上させるとともに、モデルサイズを削減することができることが分かった。
〔5.変形例〕
上記では、情報提供装置10の一例について説明した。しかしながら、実施形態は、これに限定されるものではない。以下、情報提供装置10や情報提供装置10が実行する各種処理の変形例について説明する。
〔5-1.モデルの生成について〕
上述した例では、情報提供装置10は、指標生成処理とモデル生成処理とを実行することで、モデルの生成を行った。しかしながら、実施形態は、これに限定されるものではない。例えば、情報提供装置10は、指標生成処理とモデル生成処理とを実行する他の情報処理装置から、生成されたモデルを取得し、取得したモデルに対して、上述した学習処理や評価処理を実行することで、素性組を反映させたモデルの生成や、素性組の評価、有用な素性組の抽出を行ってもよい。
また、情報提供装置10は、例えば、利用者から既存のモデルの提供を受付けてもよい。このような場合、情報提供装置10は、受付けたモデルに対して、上述した学習処理や評価処理を実行することで、素性組を反映させたモデルの生成や、素性組の評価、有用な素性組の抽出を行ってもよい。
〔5-2.学習処理と評価処理とを含む指標生成処理について〕
上述した例では、情報提供装置10は、指標生成処理およびモデル生成処理の結果として生成されたモデルを用いて、評価処理や学習処理を実行していた。しかしながら、実施形態は、これに限定されるものではない。例えば、情報提供装置10は、指標生成処理において、入力クロス素性、すなわち、採用する素性組の最適化を行う。このような指標生成処理の入力クロス素性最適化において、上述した学習処理や評価処理の実行を行ってもよい。換言すると、情報提供装置10は、指標生成処理において、素性組の生成、素性組の値の生成、素性組の値の学習、学習結果に基づいた評価、評価に基づく有用な素性組の抽出等を行ってもよい。
〔5-3.装置構成〕
上記実施形態では、情報提供システム1に、情報提供装置10、および、モデルを生成するモデル生成サーバ2を有する例について説明したが、実施形態は、これに限定されるものではない。例えば、情報提供装置10は、モデル生成サーバ2が有する機能を有していてもよい。すなわち、情報提供装置10は、自装置内でモデルの学習を行ってもよい。また、情報提供装置10が発揮する機能は、端末装置3に内包されていてもよい。このような場合、端末装置3は、生成指標を自動的に生成するとともに、モデル生成サーバ2を用いたモデルの生成を自動的に行う処理、および、生成されたモデルを用いて、素性組に関する各種の処理を実行することとなる。
〔5-4.その他〕
また、上記実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られない。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
また、上記してきた各実施形態は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
〔5-5.プログラム〕
また、上述してきた実施形態に係る情報提供装置10は、例えば図13に示すような構成のコンピュータ1000によって実現される。図13は、ハードウェア構成の一例を示す図である。コンピュータ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の機能を実現する。
〔6.効果〕
上述したように、情報提供装置10は、所定の対象の素性を示す値であって、それぞれ異なる種別の複数の素性を示す複数の値から、その複数の種別の素性の組に対応する値を生成する。そして、情報提供装置10は、生成した値を用いて、所定の対象の特徴をモデルに学習させる。このような処理の結果、情報提供装置10は、各素性を個別に用いるモデルよりも、精度が高いモデルの生成を実現するとともに、学習を進めた場合におけるサチレーションを低減させることができる。
また、情報提供装置10は、複数の素性の値から、その複数の素性の積を示す値を生成する。また、情報提供装置10は、第1種別の素性の値と第2種別の素性の値とから、第1種別の素性と第2種別の素性との組に対応する値を生成する。このような処理の結果、情報提供装置10は、素性の組の特徴を適切にモデルに学習させることができる。
また、情報提供装置10は、ディープニューラルネットワークの構造を有するモデルの学習を行う。このため、情報提供装置10は、モデルの精度を向上させることができる。
また、情報提供装置10は、所定の対象の素性をランダムに組み合わせた組を生成し、生成した組ごとに対応する値を生成する。このため、情報提供装置10は、様々な観点で、分類目的と関連性を有すると推定される素性組を見つけ出すことができる。
また、情報提供装置10は、所定の操作者から、組を生成する際の制約条件を受付けると、制約条件に従って、所定の対象の素性を組み合わせた組を生成し、生成した組ごとに対応する値を生成する。このような処理の結果、情報提供装置10は、例えば、分類目的と関連性がある可能性が高いと操作者が推定する内容の素性組を生成することができる。
また、情報提供装置10は、制約条件として、各組に含める素性の指定を受付け、指定された素性を少なくとも含む組を生成し、生成した組ごとに対応する値を生成する。また、情報提供装置10は、制約条件として、各組に含める素性の数の指定を受付け、指定された数の素性を含む組を生成し、生成した組ごとに対応する値を生成する。また、情報提供装置10は、制約条件として、生成する組の数の指定を受付け、指定された数の組を生成し、生成した組ごとに対応する値を生成する。また、情報提供装置10は、制約条件として、素性の候補の指定を受付け、指定された素性の候補を組み合わせた組を生成し、生成した組ごとに対応する値を生成する。また、情報提供装置10は、制約条件として、素性の組の値をモデルに入力する際の入力態様の指定を受付け、素性の組の値を指定された入力態様でモデルに入力させながら、モデルの学習を行う。
上述した各種の処理の結果、情報提供装置10は、操作者が所望する態様で、様々な素性組を様々な態様で用いた学習処理の試行を実現することができる。
また、情報提供装置10は、学習結果に基づいて、素性の組を評価し、評価結果が所定の条件を満たす素性の組の値を用いて、モデルを学習する。例えば、情報提供装置10は、評価結果が所定の閾値を超える素性の組と対応する値を用いて、モデルを学習する。また、例えば、情報提供装置10は、評価結果が所定の閾値を下回る素性の組を、モデルを学習する際に値を用いる素性の組から除外する。このような処理の結果、情報提供装置10は、より有用な素性組を用いて、モデルの学習を行うことができる。また、情報提供装置10は、モデルの精度をさらに向上させることができる。
また、情報提供装置10は、ある素性組の値を用いて学習が行われたモデルの、その素性組の値を用いずに学習が行われたモデルに対する改善量に基づいて、その素性組を評価する。このため、情報提供装置10は、より有用な素性組を適切に抽出することができる。
また、情報提供装置10は、それぞれ異なる素性を組み合わせた複数の組と対応する値を生成し、全ての組と対応する値を用いて学習が行われたモデルを基準モデルとして学習するとともに、各組と対応する値を用いずに学習が行われた複数のモデルとを学習し、所定の組と対応する値を用いずに学習が行われたモデルの平均損失の値と、基準モデルの平均損失の値との差に基づいて、その所定の組を評価する。このため、情報提供装置10は、適切に、素性組が有用か否かを評価することができる。
また、情報提供装置10は、評価結果が所定の条件を満たす素性の組とは異なる新たな素性の組と対応する値を生成し、評価結果が所定の条件を満たす素性の組と、その素性の組とは異なる新たな素性の組とに対応する各値を用いて、モデルを学習し、学習結果に基づいて、各素性の組を評価する。このような処理の結果、情報提供装置10は、有用な素性組を自動的に見つけ出すことができる。
また、情報提供装置10は、評価結果が所定の条件を満たす素性の組に基づいて、新たな素性の組を生成し、生成した素性の組と対応する値を生成する。例えば、情報提供装置10は、評価結果が所定の閾値を超える素性の組に含まれる素性を含む新たな素性の組を生成する。また、例えば、情報提供装置10は、評価結果が所定の閾値を下回る素性の組に含まれる素性を含まない新たな素性の組を生成する。このような処理の結果、情報提供装置10は、有用な素性組を自動的かつ効率的に生成することができる。
また、情報提供装置10は、複数種別の素性に対応する複数の値から生成されたその複数種別の素性の組に対応する値であって、それぞれ異なる素性の組に対応する値の特徴をモデルに学習させた際の精度の改善量を取得する。そして、情報提供装置10は、改善量に基づいて、素性の組を評価する。このような処理の結果、情報提供装置10は、モデルの精度に対して有用な素性組や有用ではない素性組を利用者に提示することができる。
以上、本願の実施形態のいくつかを図面に基づいて詳細に説明したが、これらは例示であり、発明の開示の欄に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
また、上記してきた「部(section、module、unit)」は、「手段」や「回路」などに読み替えることができる。例えば、配信部は、配信手段や配信回路に読み替えることができる。