IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ アクタピオ,インコーポレイテッドの特許一覧

特開2022-97381情報処理装置、情報処理方法および情報処理プログラム
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022097381
(43)【公開日】2022-06-30
(54)【発明の名称】情報処理装置、情報処理方法および情報処理プログラム
(51)【国際特許分類】
   G06N 20/00 20190101AFI20220623BHJP
【FI】
G06N20/00
【審査請求】未請求
【請求項の数】22
【出願形態】OL
(21)【出願番号】P 2021177514
(22)【出願日】2021-10-29
(31)【優先権主張番号】63/127,792
(32)【優先日】2020-12-18
(33)【優先権主張国・地域又は機関】US
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.TENSORFLOW
(71)【出願人】
【識別番号】520090055
【氏名又は名称】アクタピオ,インコーポレイテッド
(74)【代理人】
【識別番号】110002147
【氏名又は名称】特許業務法人酒井国際特許事務所
(72)【発明者】
【氏名】岡本 慎一郎
(57)【要約】      (修正有)
【課題】ハイパーパラメータではなく、モデル自体のパラメータを調整することにより、モデルの精度を改善する情報処理装置、情報処理方法及び情報処理プログラムを提供する。
【解決手段】情報処理装置は、モデルの学習に用いる学習データのデータセットを取得する取得部と、前記データセットを用いて、重みのばらつきが小さくなるようにモデルを生成する生成部と、を有する。生成部は、重みの標準偏差または分散が小さくなるようにモデルを生成する。生成部は、学習データが、モデルの重みのばらつきが小さくなるように変換された変換後学習データを用いて、モデルを生成する。
【選択図】図3
【特許請求の範囲】
【請求項1】
モデルの学習に用いる学習データのデータセットを取得する取得部と、
前記データセットを用いて、重みのばらつきが小さくなるようにモデルを生成する生成部と
を有することを特徴とする情報処理装置。
【請求項2】
前記生成部は、
前記重みの標準偏差または分散が小さくなるように前記モデルを生成する
ことを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記生成部は、
前記学習データが、前記モデルの前記重みのばらつきが小さくなるように変換された変換後学習データを用いて、前記モデルを生成する
ことを特徴とする請求項1または請求項2に記載の情報処理装置。
【請求項4】
前記生成部は、
前記学習データが正規化された前記変換後学習データを用いて、前記モデルを生成する
ことを特徴とする請求項3に記載の情報処理装置。
【請求項5】
前記生成部は、
前記学習データがベクトルに変換された前記変換後学習データを用いて、前記モデルを生成する
ことを特徴とする請求項3に記載の情報処理装置。
【請求項6】
前記生成部は、
前記学習データを前記変換後学習データに変換する
ことを特徴とする請求項3~5のうちいずれか1つに記載の情報処理装置。
【請求項7】
前記生成部は、
前記学習データが数値に関する項目に該当する場合、前記学習データを正規化して前記変換後学習データを生成する
ことを特徴とする請求項6に記載の情報処理装置。
【請求項8】
前記生成部は、
前記学習データの正規化を行う所定の変換関数を用いて、前記学習データが正規化された前記変換後学習データを生成する
ことを特徴とする請求項7に記載の情報処理装置。
【請求項9】
前記生成部は、
前記学習データがカテゴリに関する項目に該当する場合、前記学習データをベクトルに変換して前記変換後学習データを生成する
ことを特徴とする請求項6~8のうちいずれか1つに記載の情報処理装置。
【請求項10】
前記生成部は、
前記学習データのエンベディングを行うベクトル変換モデルを用いて、前記学習データがベクトルに変換された前記変換後学習データを生成する
ことを特徴とする請求項9に記載の情報処理装置。
【請求項11】
学習処理により前記ベクトル変換モデルを生成する学習部、
を有することを特徴とする請求項10に記載の情報処理装置。
【請求項12】
前記学習部は、
前記学習データが有する特徴を学習させた前記ベクトル変換モデルを生成する
ことを特徴とする請求項11に記載の情報処理装置。
【請求項13】
前記学習部は、
前記ベクトル変換モデルが出力するベクトルの分布のばらつきが小さくなるように前記ベクトル変換モデルを生成する
ことを特徴とする請求項12に記載の情報処理装置。
【請求項14】
前記生成部は、
前記データセットから所定の範囲を基に生成した部分データ群を用いて、前記モデルを生成する
ことを特徴とする請求項1~13のうちいずれか1つに記載の情報処理装置。
【請求項15】
前記生成部は、
各学習データが時間に対応付けられた前記データセットから所定の時間範囲を示すタイムウィンドウを基に生成された前記部分データ群を用いて、前記モデルを生成する
ことを特徴とする請求項14に記載の情報処理装置。
【請求項16】
前記生成部は、
一の学習データを複数の部分データが重複して含む前記部分データ群を用いて、前記モデルを生成する
ことを特徴とする請求項15に記載の情報処理装置。
【請求項17】
前記生成部は、
前記部分データ群の各々に対応するデータをモデルに入力するデータとして、前記モデルを生成する
ことを特徴とする請求項14~16のうちいずれか1つに記載の情報処理装置。
【請求項18】
前記生成部は、
バッチノーマライゼーションを用いて、前記モデルを生成する
ことを特徴とする請求項1~17のうちいずれか1つに記載の情報処理装置。
【請求項19】
前記生成部は、
前記モデルの層ごとに各層の入力を正規化する前記バッチノーマライゼーションを用いて、前記モデルを生成する
ことを特徴とする請求項18に記載の情報処理装置。
【請求項20】
前記生成部は、
前記モデルの生成に用いるデータを外部のモデル生成サーバに送信することにより、前記モデル生成サーバに前記モデルの学習を要求し、前記モデル生成サーバから前記モデル生成サーバが学習した前記モデルを受信することにより、前記モデルを生成する
ことを特徴とする請求項1~18のうちいずれか1つに記載の情報処理装置。
【請求項21】
情報処理装置が実行する情報処理方法であって、
モデルの学習に用いる学習データのデータセットを取得する取得工程と、
前記データセットを用いて、重みのばらつきが小さくなるようにモデルを生成する生成工程と
を含むことを特徴とする情報処理方法。
【請求項22】
モデルの学習に用いる学習データのデータセットを取得する取得手順と、
前記データセットを用いて、重みのばらつきが小さくなるようにモデルを生成する生成手順と
をコンピュータに実行させるための情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理方法および情報処理プログラムに関する。
【背景技術】
【0002】
近年、SVM(Support Vector Machine)やDNN(Deep Neural Network)等の各種モデルに対し、学習データが有する特徴を学習させることで、モデルに各種の予測や分類を行わせる技術が提案されている。このような学習手法の一例として、ハイパーパラメータの値等に応じて、学習データの学習態様を動的に変化させる技術が提案されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2019-164793号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
また、上述した技術では、モデルの精度を改善させる余地がある。例えば、上述した例では、ハイパーパラメータの値等に応じて、特徴の学習対象となる学習データを動的に変化させているに過ぎず、ハイパーパラメータの値が適切ではない場合、モデルの精度を改善することができない場合がある。そのため、ハイパーパラメータではなく、モデル自体のパラメータを調整することにより、モデルの精度を改善することが望まれている。
【課題を解決するための手段】
【0005】
本願に係る情報処理装置は、モデルの学習に用いる学習データのデータセットを取得する取得部と、前記データセットを用いて、重みのばらつきが小さくなるようにモデルを生成する生成部とを有することを特徴とする。
【発明の効果】
【0006】
実施形態の一態様によれば、モデルの精度を改善させることができる。
【図面の簡単な説明】
【0007】
図1】実施形態に係る情報処理システムの一例を示す図である。
図2】実施形態における情報処理装置を用いたモデル生成の流れの一例を説明する図である。
図3】実施形態に係る情報処理装置の構成例を示す図である。
図4】実施形態に係る学習データデータベースに登録される情報の一例を示す図である。
図5】実施形態に係るモデル生成用データベースに登録される情報の一例を示す図である。
図6】実施形態に係る情報処理の流れの一例を示すフローチャートである。
図7】実施形態に係る情報処理システムの処理手順を示すシーケンス図である。
図8】実施形態に係る第1処理の概念を示す図である。
図9】実施形態に係る第2処理の概念を示す図である。
図10】実施形態に係る第3処理の概念を示す図である。
図11】実験に用いたデータを示す図である。
図12】第1の実験結果の一覧を示す図である。
図13】第1の実験結果に関するグラフを示す図である。
図14】第1の実験結果に関するグラフを示す図である。
図15】第1の実験結果に関するグラフを示す図である。
図16】第2の実験結果の一覧を示す図である。
図17】第2の実験結果に関するグラフを示す図である。
図18】第2の実験結果に関するグラフを示す図である。
図19】第2の実験結果に関するグラフを示す図である。
図20】実験に用いたデータを示す図である。
図21】第3の実験結果の一覧を示す図である。
図22】第3の実験結果に関するグラフを示す図である。
図23】第3の実験結果に関するグラフを示す図である。
図24】第3の実験結果に関するグラフを示す図である。
図25】第4の実験結果の一覧を示す図である。
図26】第4の実験結果に関するグラフを示す図である。
図27】第4の実験結果に関するグラフを示す図である。
図28】第4の実験結果に関するグラフを示す図である。
図29】第5の実験結果の一覧を示す図である。
図30】第5の実験結果に関するグラフを示す図である。
図31】第5の実験結果に関するグラフを示す図である。
図32】第5の実験結果に関するグラフを示す図である。
図33】第6の実験結果の一覧を示す図である。
図34】第6の実験結果に関するグラフを示す図である。
図35】第6の実験結果に関するグラフを示す図である。
図36】ハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【0008】
以下に、本願に係る情報処理装置、情報処理方法および情報処理プログラムを実施するための形態(以下、「実施形態」と呼ぶ)について図面を参照しつつ詳細に説明する。なお、この実施形態により本願に係る情報処理装置、情報処理方法および情報処理プログラムが限定されるものではない。また、各実施形態は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。また、以下の各実施形態において同一の部位には同一の符号を付し、重複する説明は省略される。
【0009】
[実施形態]
以下の実施形態では、モデルのパラメータである重みのばらつきを小さくするための3つの処理(第1処理、第2処理、第3処理)を説明し、重みのばらつきを小さくすることによるモデルの精度の改善について実験結果を提示して説明する。実施形態ではばらつきを示す指標の一例として、標準偏差を例示するが、ばらつきを示す指標であれば分散等の他の指標であってもよい。なお詳細には後述するが、例えば、第1処理、第2処理、または第3処理の処理によりモデルの重みのばらつきを小さくすることで、モデルの出力(分類などの推論結果)がより自然なものとなると考えられる。このように、モデルの出力がより自然なものとなることで、モデルの精度の改善につながると考えられる。本実施形態では、上述した3つの処理及び実験結果を示す前に、まずモデルを生成する情報処理システム1の構成やモデルの学習について説明する。
【0010】
〔1.情報処理システムの構成〕
まず、図1を用いて、情報処理装置の一例である情報処理装置10を有する情報処理システムの構成について説明する。図1は、実施形態に係る情報処理システムの一例を示す図である。図1に示すように、情報処理システム1は、情報処理装置10、モデル生成サーバ2、および端末装置3を有する。なお、情報処理システム1は、複数のモデル生成サーバ2や複数の端末装置3を有していてもよい。また、情報処理装置10と、モデル生成サーバ2とは、同一のサーバ装置やクラウドシステム等により実現されてもよい。ここで、情報処理装置10、モデル生成サーバ2、および端末装置3は、ネットワークN(例えば、図3参照)を介して有線または無線により通信可能に接続される。
【0011】
情報処理装置10は、モデルの生成における指標(すなわち、モデルのレシピ)である生成指標を生成する指標生成処理と、生成指標に従ってモデルを生成するモデル生成処理とを実行し、生成した生成指標およびモデルを提供する情報処理装置であり、例えば、サーバ装置やクラウドシステム等により実現される。
【0012】
モデル生成サーバ2は、学習データが有する特徴を学習させたモデルを生成する情報処理装置であり、例えば、サーバ装置やクラウドシステム等により実現される。例えば、モデル生成サーバ2は、モデルの生成指標として、生成するモデルの種別や行動、どのように学習データの特徴を学習させるかといったコンフィグファイルを受付けると、受付けたコンフィグファイルに従って、モデルの自動生成を行う。なお、モデル生成サーバ2は、任意のモデル学習手法を用いて、モデルの学習を行ってもよい。また、例えば、モデル生成サーバ2は、AutoML(Automated Machine Learning)といった各種既存のサービスであってもよい。
【0013】
端末装置3は、利用者Uによって利用される端末装置であり、例えば、PC(Personal Computer)やサーバ装置等により実現される。例えば、端末装置3は、情報処理装置10とのやり取りを介して、モデルの生成指標を生成させ、生成させた生成指標に従ってモデル生成サーバ2が生成したモデルを取得する。
【0014】
〔2.情報処理装置10が実行する処理の概要〕
まず、情報処理装置10が実行する処理の概要について説明する。まず、情報処理装置10は、端末装置3からモデルに特徴を学習させる学習データの指摘を受付ける(ステップS1)。例えば、情報処理装置10は、学習に用いる各種の学習データを所定の記憶装置に記憶させており、利用者Uが学習データに指定する学習データの指摘を受付ける。なお、情報処理装置10は、例えば、端末装置3や各種外部のサーバから、学習に用いる学習データを取得してもよい。
【0015】
ここで、学習データとは、任意のデータが採用可能である。例えば、情報処理装置10は、各利用者の位置の履歴や各利用者が閲覧したウェブコンテンツの履歴、各利用者による購買履歴や検索クエリの履歴等、利用者に関する各種の情報を学習データとしてもよい。また、情報処理装置10は、利用者のデモグラフィック属性やサイコグラフィック属性等を学習データとしてもよい。また、情報処理装置10は、配信対象となる各種ウェブコンテンツの種別や内容、作成者等のメタデータ等を学習データとしてもよい。
【0016】
このような場合、情報処理装置10は、学習に用いる学習データの統計的な情報に基づいて、生成指標の候補を生成する(ステップS2)。例えば、情報処理装置10は、学習データに含まれる値の特徴等に基づいて、どのようなモデルに対し、どのような学習手法により学習を行えばよいかを示す生成指標の候補を生成する。換言すると、情報処理装置10は、学習データの特徴を精度よく学習可能なモデルやモデルに精度よく特徴を学習させるための学習手法を生成指標として生成する。すなわち、情報処理装置10は、学習手法の最適化を行う。なお、どのような学習データが選択された場合に、どのような内容の生成指標を生成するかについては、後述する。
【0017】
続いて、情報処理装置10は、生成指標の候補を端末装置3に対して提供する(ステップS3)。このような場合、利用者Uは、生成指標の候補を嗜好や経験則等に応じて修正する(ステップS4)。そして、情報処理装置10は、各生成指標の候補と学習データとをモデル生成サーバ2に提供する(ステップS5)。
【0018】
一方、モデル生成サーバ2は、生成指標ごとに、モデルの生成を行う(ステップS6)。例えば、モデル生成サーバ2は、生成指標が示す構造を有するモデルに対し、生成指標が示す学習手法により学習データが有する特徴を学習させる。そして、モデル生成サーバ2は、生成したモデルを情報処理装置10に提供する(ステップS7)。
【0019】
ここで、モデル生成サーバ2によって生成された各モデルは、それぞれ生成指標の違いに由来する精度の違いが生じると考えられる。そこで、情報処理装置10は、各モデルの精度に基づいて、遺伝的アルゴリズムにより新たな生成指標を生成し(ステップS8)、新たに生成した生成指標を用いたモデルの生成を繰り返し実行する(ステップS9)。
【0020】
例えば、情報処理装置10は、学習データを評価用データと学習用データとに分割し、学習用データが有する特徴を学習させたモデルであって、それぞれ異なる生成指標に従って生成された複数のモデルを取得する。例えば、情報処理装置10は、10個の生成指標を生成し、生成した10個の生成指標と、学習用データとを用いて、10個のモデルを生成する。このような場合、情報処理装置10は、評価用データを用いて、10個のモデルそれぞれの精度を測定する。
【0021】
続いて、情報処理装置10は、10個のモデルのうち、精度が高い方から順に所定の数のモデル(例えば、5個)を選択する。そして、情報処理装置10は、選択した5個のモデルを生成した際に採用された生成指標から、新たな生成指標を生成する。例えば、情報処理装置10は、各生成指標を遺伝的アルゴリズムの個体と見做し、各生成指標が示すモデルの種別、モデルの構造、各種の学習手法(すなわち、生成指標が示す各種の指標)を遺伝的アルゴリズムにおける遺伝子と見做す。そして、情報処理装置10は、遺伝子の交叉を行う個体の選択および遺伝子の交叉を行うことで、次世代の生成指標を10個新たに生成する。なお、情報処理装置10は、遺伝子の交叉を行う際に、突然変異を考慮してもよい。また、情報処理装置10は、二点交叉、多点交叉、一様交叉、交叉対象となる遺伝子のランダムな選択を行ってもよい。また、情報処理装置10は、例えば、モデルの精度が高い個体の遺伝子程、次世代の個体に引き継がれるように、交叉を行う際の交叉率を調整してもよい。
【0022】
また、情報処理装置10は、次世代の生成指標を用いて、再度新たな10個のモデルを生成する。そして、情報処理装置10は、新たな10個のモデルの精度に基づいて、上述した遺伝的アルゴリズムによる新たな生成指標の生成を行う。このような処理を繰り返し実行することで、情報処理装置10は、生成指標を学習データの特徴に応じた生成指標、すなわち、最適化された生成指標へと近づけることができる。
【0023】
また、情報処理装置10は、所定の回数新たな生成指標を生成した場合や、モデルの精度の最大値、平均値、若しくは最低値が所定の閾値を超えた場合等、所定の条件が満たされた場合は、最も精度が高いモデルを提供対象として選択する。そして、情報処理装置10は、選択したモデルと共に、対応する生成指標を端末装置3に提供する(ステップS10)。このような処理の結果、情報処理装置10は、利用者から学習データを選択するだけで、適切なモデルの生成指標を生成するとともに、生成した生成指標に従うモデルを提供することができる。
【0024】
なお、上述した例では、情報処理装置10は、遺伝的アルゴリズムを用いて生成指標の段階的な最適化を実現したが、実施形態は、これに限定されるものではない。後述する説明で明らかとなるように、モデルの精度は、モデルの種別や構造といったモデルそのものの特徴のみならず、どのような学習データをどのようにモデルに入力するのか、どのようなハイパーパラメータを用いてモデルの学習を行うのかというように、モデルを生成する際(すなわち、学習データの特徴を学習させる際)の指標に応じて大きく変化する。
【0025】
そこで、情報処理装置10は、学習データに応じて、最適と推定される生成指標を生成するのであれば、遺伝的アルゴリズムを用いた最適化を行わずともよい。例えば、情報処理装置10は、学習データが、経験則に応じて生成された各種の条件を満たすか否かに応じて生成した生成指標を利用者に提示するとともに、提示した生成指標に従ったモデルの生成を行ってもよい。また、情報処理装置10は、提示した生成指標の修正を受付けると、受付けた修正後の生成指標に従ってモデルの生成を行い、生成したモデルの精度等を利用者に対して提示し、再度生成指標の修正を受付けてもよい。すなわち、情報処理装置10は、利用者Uに最適な生成指標を試行錯誤させてもよい。
【0026】
〔3.生成指標の生成について〕
以下、どのような学習データに対して、どのような生成指標を生成するかの一例について説明する。なお、以下の例は、あくまで一例であり、学習データが有する特徴に応じて生成指標を生成するのであれば、任意の処理が採用可能である。
【0027】
〔3-1.生成指標について〕
まず、生成指標が示す情報の一例について説明する。例えば、学習データが有する特徴をモデルに学習させる場合、学習データをモデルに入力する際の態様、モデルの態様、およびモデルの学習態様(すなわち、ハイパーパラメータが示す特徴)が最終的に得られるモデルの精度に寄与すると考えられる。そこで、情報処理装置10は、学習データの特徴に応じて、各態様を最適化した生成指標を生成することで、モデルの精度を向上させる。
【0028】
例えば、学習データには、様々なラベルが付与されたデータ、すなわち、様々な特徴を示すデータが存在すると考えられる。しかしながら、データを分類する際に有用ではない特徴を示すデータを学習データとした場合、最終的に得られるモデルの精度は、悪化する恐れがある。そこで、情報処理装置10は、学習データをモデルに入力する際の態様として、入力する学習データが有する特徴を決定する。例えば、情報処理装置10は、学習データのうち、どのラベルが付与されたデータ(すなわち、どの特徴を示すデータ)を入力するかを決定する。換言すると、情報処理装置10は、入力する特徴の組み合わせを最適化する。
【0029】
また、学習データには、数値のみのデータや文字列が含まれるデータ等、各種形式のカラムが含まれていると考えられる。このような学習データをモデルに入力する際に、そのまま入力した場合と、他の形式のデータに変換した場合とで、モデルの精度が変化するとも考えられる。例えば、複数種別の学習データ(それぞれ異なる特徴を示す学習データ)であって、文字列の学習データと数値の学習データとを入力する際に、文字列と数値とをそのまま入力した場合と、文字列を数値に変換して数値のみを入力した場合と、数値を文字列と見做して入力した場合とでは、それぞれモデルの精度が変化すると考えられる。そこで、情報処理装置10は、モデルに入力する学習データの形式を決定する。例えば、情報処理装置10は、モデルに入力する学習データを数値とするか、文字列とするかを決定する。換言すると、情報処理装置10は、入力する特徴のカラムタイプを最適化する。
【0030】
また、それぞれ異なる特徴を示す学習データが存在する場合、どの特徴の組み合わせを同時に入力するかによって、モデルの精度が変化すると考えられる。すなわち、それぞれ異なる特徴を示す学習データが存在する場合、どの特徴の組み合わせの特徴(すなわち、複数の特徴の組み合わせの関係性)を学習させるかにより、モデルの精度が変化すると考えられる。例えば、第1特徴(例えば、性別)を示す学習データと、第2特徴(例えば、住所)を示す学習データと、第3特徴(例えば、購買履歴)を示す学習データとが存在する場合、第1特徴を示す学習データと第2特徴を示す学習データとを同時に入力した場合と、第1特徴を示す学習データと第3特徴を示す学習データとを同時に入力した場合とでは、モデルの精度が変化すると考えられる。そこで、情報処理装置10は、モデルに関係性を学習させる特徴の組み合わせ(クロスフィーチャー)を最適化する。
【0031】
ここで、各種のモデルは、入力データを所定の超平面により分割された所定次元の空間内に投影し、投影した位置が分割された空間のうちいずれの空間に属するかに応じて、入力データの分類を行うこととなる。このため、入力データを投影する空間の次元数が最適な次元数よりも低い場合は、入力データの分類能力が劣化する結果、モデルの精度が悪化する。また、入力データを投影する空間の次元数が最適な次元数よりも高い場合は、超平面との内積値が変化する結果、学習時に用いたデータとは異なるデータを適切に分類することができなくなる恐れがある。そこで、情報処理装置10は、モデルに入力する入力データの次元数を最適化する。例えば、情報処理装置10は、モデルが有する入力層のノードの数を制御することで、入力データの次元数を最適化する。換言すると、情報処理装置10は、入力データの埋め込みを行う空間の次元数を最適化する。
【0032】
また、モデルには、SVMに加え、複数の中間層(隠れ層)を有するニューラルネットワーク等が存在する。また、このようなニューラルネットワークには、入力層から出力層まで一方方向に情報が伝達されるフィードフォワード型のDNN、中間層で情報の畳み込みを行う畳み込みニューラルネットワーク(CNN:Convolutional Neural Network)、有向閉路を有する回帰型ニューラルネットワーク(RNN:Recurrent Neural Network)、ボルツマンマシン等、各種のニューラルネットワークが知られている。また、このような各種ニューラルネットワークには、LSTM(Long short-term memory)やその他各種のニューラルネットワークが含まれている。
【0033】
このように、学習データの各種特徴を学習するモデルの種別が異なる場合、モデルの精度は変化すると考えられる。そこで、情報処理装置10は、学習データの特徴を精度良く学習すると推定されるモデルの種別を選択する。例えば、情報処理装置10は、学習データのラベルとしてどのようなラベルが付与されているかに応じて、モデルの種別を選択する。より具体的な例を挙げると、情報処理装置10は、ラベルとして「履歴」に関連する用語が付されたデータが存在する場合は、履歴の特徴をより良く学習することができると考えられるRNNを選択し、ラベルとして「画像」に関連する用語が付されたデータが存在する場合は、画像の特徴をより良く学習することができると考えられるCNNを選択する。これら以外にも、情報処理装置10は、ラベルがあらかじめ指定された用語若しくは用語と類似する用語であるか否かを判定し、同一若しくは類似すると判定された用語と予め対応付けられた種別のモデルを選択すればよい。
【0034】
また、モデルの中間層の数や1つの中間層に含まれるノードの数が変化した場合、モデルの学習精度が変化すると考えられる。例えば、モデルの中間層の数が多い場合(モデルが深い場合)、より抽象的な特徴に応じた分類を実現することができると考えられる一方で、バックプロパゲーションにおける局所誤差が入力層まで伝播しづらくなる結果、学習が適切に行えなくなる恐れがある。また、中間層に含まれるノードの数が少ない場合は、より高度な抽象化を行うことができるものの、ノードの数が少なすぎる場合は、分類に必要な情報が欠損する可能性が高い。そこで、情報処理装置10は、中間層の数や中間層に含まれるノードの数の最適化を行う。すなわち、情報処理装置10は、モデルのアーキテクチャの最適化を行う。
【0035】
また、アテンションの有無やモデルに含まれるノードに自己回帰がある場合とない場合、どのノード間を接続するのかに応じて、ノードの精度が変化すると考えられる。そこで、情報処理装置10は、自己回帰を有するか否か、どのノード間を接続するのかといったネットワークの最適化を行う。
【0036】
また、モデルの学習を行う場合、モデルの最適化手法(学習時に用いるアルゴリズム)やドロップアウト率、ノードの活性化関数やユニット数等がハイパーパラメータとして設定される。このようなハイパーパラメータが変化した場合にも、モデルの精度が変化すると考えられる。そこで、情報処理装置10は、モデルを学習する際の学習態様、すなわち、ハイパーパラメータの最適化を行う。
【0037】
また、モデルのサイズ(入力層、中間層、出力層の数やノード数)が変化した場合も、モデルの精度が変化する。そこで、情報処理装置10は、モデルのサイズの最適化についても行う。
【0038】
このように、情報処理装置10は、上述した各種モデルを生成する際の指標について最適化を行う。例えば、情報処理装置10は、各指標に対応する条件を予め保持しておく。なお、このような条件は、例えば、過去の学習モデルから生成された各種モデルの精度等の経験則により設定される。そして、情報処理装置10は、学習データが各条件を満たすか否かを判定し、学習データが満たす若しくは満たさない条件に予め対応付けられた指標を生成指標(若しくはその候補)として採用する。この結果、情報処理装置10は、学習データが有する特徴を精度良く学習可能な生成指標を生成することができる。
【0039】
なお、上述したように、学習データから自動的に生成指標を生成し、生成指標に従ってモデルを作成する処理を自動的に行った場合、利用者は、学習データの内部を参照し、どのような分布のデータが存在するかといった判断を行わずともよい。この結果、情報処理装置10は、例えば、モデルの作成に伴ってデータサイエンティスト等が学習データの認識を行う手間を削減するとともに、学習データの認識に伴うプライバシーの毀損を防ぐことができる。
【0040】
〔3-2.データ種別に応じた生成指標〕
以下、生成指標を生成するための条件の一例について説明する。まず、学習データとしてどのようなデータが採用されているかに応じた条件の一例について説明する。
【0041】
例えば、学習に用いられる学習データには、整数、浮動小数点、若しくは文字列等がデータとして含まれている。このため、入力されるデータの形式に対して適切なモデルを選択した場合は、モデルの学習精度がより高くなると推定される。そこで、情報処理装置10は、学習データが整数であるか、浮動小数点であるか、若しくは文字列であるかに基いて、生成指標を生成する。
【0042】
例えば、学習データが整数である場合、情報処理装置10は、学習データの連続性に基いて、生成指標を生成する。例えば、情報処理装置10は、学習データの密度が所定の第1閾値を超える場合、当該学習データが連続性を有するデータであると見做し、学習データの最大値が所定の第2閾値を上回るか否かに基いて生成指標を生成する。また、情報処理装置10は、学習データの密度が所定の第1閾値を下回る場合、当該学習データがスパースな学習データであると見做し、学習データに含まれるユニークな値の数が所定の第3閾値を上回るか否かに基いて生成指標を生成する。
【0043】
より具体的な例を説明する。なお、以下の例においては、生成指標として、AutoMLによりモデルを自動的に生成するモデル生成サーバ2に対して送信するコンフィグファイルのうち、特徴関数(feature function)を選択する処理の一例について説明する。例えば、情報処理装置10は、学習データが整数である場合、その密度が所定の第1閾値を超えるか否かを判定する。例えば、情報処理装置10は、学習データに含まれる値のうちユニークな値の数を、学習データの最大値に1を加算した値で除算した値を密度として算出する。
【0044】
続いて、情報処理装置10は、密度が所定の第1閾値を超える場合は、学習データが連続性を有する学習データであると判定し、学習データの最大値に1を加算した値が第2閾値を上回るか否かを判定する。そして、情報処理装置10は、学習データの最大値に1を加算した値が第2閾値を上回る場合は、特徴関数として「Categorical_colum_with_identity & embedding_column」を選択する。一方、情報処理装置10は、学習データの最大値に1を加算した値が第2閾値を下回る場合は、特徴関数として「Categorical_column_with_identity」を選択する。
【0045】
一方、情報処理装置10は、密度が所定の第1閾値を下回る場合は、学習データがスパースであると判定し、学習データに含まれるユニークな値の数が所定の第3閾値を超えるか否かを判定する。そして、情報処理装置10は、学習データに含まれるユニークな値の数が所定の第3閾値を超える場合は、特徴関数として「Categorical_column_with_hash_bucket & embedding_column」を選択し、学習データに含まれるユニークな値の数が所定の第3閾値を下回る場合は、特徴関数として「Categorical_column_with_hash_bucket」を選択する。
【0046】
また、情報処理装置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」を選択する。
【0047】
また、情報処理装置10は、学習データが浮動小数点である場合、モデルの生成指標として、学習データをモデルに入力する入力データへの変換指標を生成する。例えば、情報処理装置10は、特徴関数として「bucketized_column」もしくは「numeric_column」を選択する。すなわち、情報処理装置10は、学習データをバケタイズ(グルーピング)し、バケットの番号を入力とするか、数値をそのまま入力するかを選択する。なお、情報処理装置10は、例えば、各バケットに対して対応付けられる数値の範囲が同程度となるように、学習データのバケタイズを行ってもよく、例えば、各バケットに分類される学習データの数が同程度となるように、各バケットに対して数値の範囲を対応付けてもよい。また、情報処理装置10は、バケットの数やバケットに対して対応付けられる数値の範囲を生成指標として選択してもよい。
【0048】
また、情報処理装置10は、複数の特徴を示す学習データを取得し、モデルの生成指標として、学習データが有する特徴のうちモデルに学習させる特徴を示す生成指標を生成する。例えば、情報処理装置10は、どのラベルの学習データをモデルに入力するかを決定し、決定したラベルを示す生成指標を生成する。また、情報処理装置10は、モデルの生成指標として、学習データの種別のうちモデルに対して相関を学習させる複数の種別を示す生成指標を生成する。例えば、情報処理装置10は、モデルに対して同時に入力するラベルの組み合わせを決定し、決定した組み合わせを示す生成指標を生成する。
【0049】
また、情報処理装置10は、モデルの生成指標として、モデルに入力される学習データの次元数を示す生成指標を生成する。例えば、情報処理装置10は、学習データに含まれるユニークなデータの数やモデルに入力するラベルの数、モデルに入力するラベルの数の組み合わせ、バケットの数等に応じて、モデルの入力層におけるノードの数を決定してもよい。
【0050】
また、情報処理装置10は、モデルの生成指標として、学習データの特徴を学習させるモデルの種別を示す生成指標を生成する。例えば、情報処理装置10は、過去に学習対象とした学習データの密度やスパース具合、ラベルの内容、ラベルの数、ラベルの組み合わせの数等に応じて、生成するモデルの種別を決定し、決定した種別を示す生成指標を生成する。例えば、情報処理装置10は、AutoMLにおけるモデルのクラスとして「BaselineClassifier」、「LinearClassifier」、「DNNClassifier」、「DNNLinearCombinedClassifier」、「BoostedTreesClassifier」、「AdaNetClassifier」、「RNNClassifier」、「DNNResNetClassifier」、「AutoIntClassifier」等を示す生成指標を生成する。
【0051】
なお、情報処理装置10は、これら各クラスのモデルの各種独立変数を示す生成指標を生成してもよい。例えば、情報処理装置10は、モデルの生成指標として、モデルが有する中間層の数若しくは各層に含まれるノードの数を示す生成指標を生成してもよい。また、情報処理装置10は、モデルの生成指標として、モデルが有するノード間の接続態様を示す生成指標やモデルの大きさを示す生成指標を生成してもよい。これらの独立変数は、学習データが有する各種の統計的な特徴が所定の条件を満たすか否かに応じて、適宜選択されることとなる。
【0052】
また、情報処理装置10は、モデルの生成指標として、学習データが有する特徴をモデルに学習させる際の学習態様、すなわち、ハイパーパラメータを示す生成指標を生成してもよい。例えば、情報処理装置10は、AutoMLにおける学習態様の設定において、「stop_if_no_decrease_hook」、「stop_if_no_increase_hook」、「stop_if_higher_hook」、もしくは「stop_if_lower_hook」を示す生成指標を生成してもよい。
【0053】
すなわち、情報処理装置10は、学習に用いる学習データのラベルやデータそのものの特徴に基づいて、モデルに学習させる学習データの特徴、生成するモデルの態様、および学習データが有する特徴をモデルに学習させる際の学習態様を示す生成指標を生成する。より具体的には、情報処理装置10は、AutoMLにおけるモデルの生成を制御するためのコンフィグファイルを生成する。
【0054】
〔3-3.生成指標を決定する順序について〕
ここで、情報処理装置10は、上述した各種の指標の最適化を同時並行的に行ってもよく、適宜順序だてて実行してもよい。また、情報処理装置10は、各指標を最適化する順序を変更可能としてもよい。すなわち、情報処理装置10は、モデルに学習させる学習データの特徴、生成するモデルの態様、および学習データが有する特徴をモデルに学習させる際の学習態様を決定する順番の指定を利用者から受け付け、受け付けた順序で、各指標を決定してもよい。
【0055】
例えば、情報処理装置10は、生成指標の生成を開始した場合、入力する学習データの特徴や、どのような態様で学習データを入力するかといった入力素性の最適化を行い、続いて、どの特徴の組み合わせの特徴を学習させるかという入力クロス素性の最適化を行う。続いて、情報処理装置10は、モデルの選択を行うとともに、モデル構造の最適化を行う。その後、情報処理装置10は、ハイパーパラメータの最適化を行い、生成指標の生成を終了する。
【0056】
ここで、情報処理装置10は、入力素性最適化において、入力する学習データの特徴や入力態様といった各種入力素性の選択や修正、遺伝的アルゴリズムを用いた新たな入力素性の選択を行うことで、入力素性を繰り返し最適化してもよい。同様に、情報処理装置10は、入力クロス素性最適化において、入力クロス素性を繰り返し最適化してもよく、モデル選択およびモデル構造の最適化を繰り返し実行してもよい。また、情報処理装置10は、ハイパーパラメータの最適化を繰り返し実行してもよい。また、情報処理装置10は、入力素性最適化、入力クロス素性最適化、モデル選択、モデル構造最適化、およびハイパーパラメータの最適化という一連の処理を繰り返し実行し、各指標の最適化を行ってもよい。
【0057】
また、情報処理装置10は、例えば、ハイパーパラメータの最適化を行ってから、モデル選択やモデル構造最適化を行ってもよく、モデル選択やモデル構造最適化の後に、入力素性の最適化や入力クロス素性の最適化を行ってもよい。また、情報処理装置10は、例えば、入力素性最適化を繰り返し実行し、その後入力クロス素性最適化を繰り返し行う。その後、情報処理装置10は、入力素性最適化と入力クロス素性最適化を繰り返し実行してもよい。このように、どの指標をどの順番で最適化するか、最適化においてどの最適化処理を繰り返し実行するかについては、任意の設定が採用可能となる。
【0058】
〔3-4.情報処理装置が実現するモデル生成の流れについて〕
続いて、図2を用いて、情報処理装置10を用いたモデル生成の流れの一例について説明する。図2は、実施形態における情報処理装置を用いたモデル生成の流れの一例を説明する図である。例えば、情報処理装置10は、学習データと各学習データのラベルとを受付ける。なお、情報処理装置10は、学習データの指定と共に、ラベルを受付けてもよい。
【0059】
このような場合、情報処理装置10は、データの分析を行い、データの調整を行う。ここでいうデータの調整とは、データを変換したり、データを生成したりすることをいう。また、情報処理装置10は、データ分割を行う。例えば、情報処理装置10は、学習データを、モデルの学習に用いるトレーニング用データと、モデルの評価(すなわち、精度の測定)に用いる評価用データとに分割する。なお、情報処理装置10は、各種テスト用のデータをさらに分割してもよい。なお、このような学習データをトレーニング用データと評価用データとに分割する処理は、各種任意の公知技術が採用可能である。
【0060】
また、情報処理装置10は、学習データを用いて、上述した各種の生成指標を生成する。例えば、情報処理装置10は、AutoMLにおいて生成されるモデルやモデルの学習を定義するコンフィグファイルを生成する。このようなコンフィグファイルにおいては、AutoMLで用いられる各種の関数がそのまま生成指標を示す情報として格納されることとなる。そして、情報処理装置10は、トレーニング用データと生成指標とをモデル生成サーバ2に提供することで、モデルの生成を行う。
【0061】
ここで、情報処理装置10は、利用者によるモデルの評価と、モデルの自動生成とを繰り返し行うことで、生成指標の最適化、ひいてはモデルの最適化を実現してもよい。例えば、情報処理装置10は、入力する特徴の最適化(入力素性や入力クロス素性の最適化)、ハイパーパラメータの最適化、および生成するモデルの最適化を行い、最適化された生成指標に従って自動でのモデル生成を行う。そして、情報処理装置10は、生成したモデルを利用者に提供する。
【0062】
一方、利用者は、自動生成されたモデルのトレーニングや評価、テストを行い、モデルの分析や提供を行う。そして、利用者は、生成された生成指標を修正することで、再度新たなモデルを自動生成させ、評価やテスト等を行う。このような処理を繰り返し実行することで、複雑な処理を実行することなく、試行錯誤しながらモデルの精度を向上させる処理を実現することができる。
【0063】
〔4.情報処理装置の構成〕
次に、図3を用いて、実施形態に係る情報処理装置10の機能構成の一例について説明する。図3は、実施形態に係る情報処理装置の構成例を示す図である。図3に示すように、情報処理装置10は、通信部20と、記憶部30と、制御部40とを有する。
【0064】
通信部20は、例えば、NIC(Network Interface Card)等によって実現される。そして、通信部20は、ネットワークNと有線または無線で接続され、モデル生成サーバ2や端末装置3との間で情報の送受信を行う。
【0065】
記憶部30は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。また、記憶部30は、学習データデータベース31およびモデル生成用データベース32を有する。
【0066】
学習データデータベース31は、学習に用いるデータに関する各種情報を記憶する。学習データデータベース31には、モデルの学習に用いる学習データのデータセットが格納される。図4は、実施形態に係る学習データデータベースに登録される情報の一例を示す図である。図4の例では、学習データデータベース31は、「データセットID」、「データID」、「データ」といった項目が含まれる。
【0067】
「データセットID」は、データセットを識別するための識別情報を示す。「データID」は、各データを識別するための識別情報を示す。また、「データ」は、データIDにより識別されるデータを示す。例えば、図4の例では、各学習データを識別するデータIDに対して、対応するデータ(学習データ)が対応付けられて登録されている。
【0068】
図4の例では、データセットID「DS1」により識別されるデータセット(データセットDS1)には、データID「DID1」、「DID2」、「DID3」等により識別される複数のデータ「DT1」、「DT2」、「DT3」等が含まれることを示す。なお、図4では、データを「DT1」、「DT2」、「DT3」等といった抽象的な文字列で示すが、データとしては、例えば各種整数、浮動小数点、もしくは文字列等の任意の形式の情報が登録されることとなる。
【0069】
なお、図示は省略するが、学習データデータベース31は、各データに対応するラベル(正解情報)を各データに対応付けて記憶してもよい。また、例えば、複数のデータを含むデータ群に1つのラベルを対応付けて記憶してもよい。この場合、複数のデータを含むデータ群がモデルに入力されるデータ(入力データ)に対応する。例えば、ラベルとしては、数値や文字列等の任意の形式の情報が用いられる。
【0070】
なお、学習データデータベース31は、上記に限らず、目的に応じて種々の情報を記憶してもよい。例えば、学習データデータベース31は、各データが学習処理に用いるデータ(トレーニング用データ)であるか、評価に用いるデータ(評価用データ)であるか等を特定可能に記憶してもよい。例えば、学習データデータベース31は、各データがトレーニング用データ及び評価用データのいずれであるかを特定する情報(フラグ等)を、各データに対応付けて格納してもよい。
【0071】
モデル生成用データベース32は、学習データ以外でモデルの生成に用いられ各種の情報が記憶される。モデル生成用データベース32には、モデルのパラメータである重みのばらつきを小さくするための3つの処理(第1処理、第2処理、第3処理)に関連する各種の情報が格納される。図5に示すモデル生成用データベース32は、「用途」、「対象」、「処理」、「使用情報」といった項目が含まれる。
【0072】
「用途」は、その情報が用いられる用途を示す。図5では、用途を「AP1」、「AP2」、「AP3」等といった抽象的な文字列で示すが、用途には各用途を識別するための識別情報(用途ID)や、各用途を具体的に示す文字列などが登録されることとなる。例えば、用途「AP1」は、第1処理に対応するデータ変換である。また、用途「AP2」は、第2処理に対応するデータ生成である。また、用途「AP3」は、第3処理に対応する学習態様である。このように、「用途」は、各情報がどのような処理のために用いられるかを示すものである。
【0073】
「対象」は、処理を適用する対象を示す。「処理」は、対応する対象に対して適用する処理内容を示す。「使用情報」は、対応する処理に用いる情報や対応する処理を適用するか否か等を示す。
【0074】
例えば、図5では、用途「AP1」であるデータ変換では、対象が「数値」である場合、数式INF11を用いて正規化の処理が行われることを示す。なお、図5では、数式INF11といった抽象的な文字列で示すが、数式INF11は、後述する式(1)または式(2)等の正規化を適用するための具体的な数式(関数)である。すなわち、学習データが数値に関する項目に該当する場合、数式INF11を適用して正規化されることを示す。
【0075】
また、図5では、用途「AP1」であるデータ変換では、対象が「カテゴリ」である場合、モデルINF12を用いてエンベディング(ベクトル化)の処理が行われることを示す。なお、図5では、モデルINF12といった抽象的な文字列で示すが、モデルINF12には、図8に示すベクトル変換モデルEM1に対応するネットワークに関する情報や関数等、そのモデルを構成する種々の情報が含まれる。すなわち、学習データがカテゴリに関する項目に該当する場合、モデルINF12を適用してエンベディング(ベクトル化)されることを示す。
【0076】
また、図5では、用途「AP2」であるデータ生成では、対象「データセット」から、タイムウィンドウINF21を用いて、部分データを生成する処理が行われることを示す。なお、図5では、タイムウィンドウINF21といった抽象的な文字列で示すが、タイムウィンドウINF21は、1週間、1日、3時間等の所定の時間範囲を示す情報である。
【0077】
また、図5では、用途「AP3」である学習態様では、対象「学習処理」において、バッチノーマライゼーションが適用(使用)されることを示す。なお、図5では、「有」といった文字列で示すが、適用(使用)しないことを示す「0」または適用(使用)することを示す「1」等の数値(フラグ)であってもよい。
【0078】
なお、モデル生成用データベース32は、上記に限らず、モデルの生成に用いる情報であれば種々のモデル情報を記憶してもよい。
【0079】
図3に戻り、説明を続ける。制御部40は、例えば、CPU(Central Processing Unit)やMPU(Micro Processing Unit)等によって、情報処理装置10内部の記憶装置に記憶されている各種プログラムがRAMを作業領域として実行されることにより実現される。また、制御部40は、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実現される。図3に示すように、制御部40は、取得部41、学習部42、決定部43、受付部44、生成部45、および提供部46を有する。
【0080】
取得部41は、記憶部30から情報を取得する。取得部41は、モデルの学習に用いる学習データのデータセットを取得する。取得部41は、モデルの学習に用いる学習データを取得する。例えば、取得部41は、端末装置3から、学習データとして用いる各種のデータと、各種データに付与されるラベルを受付けると、受付けたデータとラベルとを学習データとして学習データデータベース31に登録する。なお、取得部41は、あらかじめ学習データデータベース31に登録されたデータのうち、モデルの学習に用いる学習データの学習データIDやラベルの指摘を受付けてもよい。
【0081】
学習部42は、カテゴリに関する項目に該当する学習データをベクトルに変換するベクトル変換モデルを学習する。学習部42は、学習処理によりベクトル変換モデルを生成する。学習部42は、学習データが有する特徴を学習させたベクトル変換モデルを生成する。学習部42は、ベクトル変換モデルが出力するベクトルの分布のばらつきが小さくなるようにベクトル変換モデルを生成する。
【0082】
決定部43は、学習態様を決定する。決定部43は、モデル生成用データベース32に格納されたバッチノーマライゼーションの適用有無の情報を基に、学習態様を決定する。
【0083】
受付部44は、利用者に対して提示した生成指標の修正を受付ける。また、受付部44は、モデルに学習させる学習データの特徴、生成するモデルの態様、および学習データが有する特徴をモデルに学習させる際の学習態様を決定する順番の指定を利用者から受け付ける。
【0084】
生成部45は、決定部43による決定に応じて各種情報を生成する。また、生成部45は、受付部44により受け付けられた指示に応じて各種情報を生成する。例えば、生成部45は、モデルの生成指標を生成してもよい。
【0085】
生成部45は、データセットを用いて、重みのばらつきが小さくなるようにモデルを生成する。生成部45は、重みの標準偏差または分散が小さくなるようにモデルを生成する。
【0086】
生成部45は、学習データが、モデルの重みのばらつきが小さくなるように変換された変換後学習データを用いて、モデルを生成する。生成部45は、学習データが正規化された変換後学習データを用いて、モデルを生成する。生成部45は、学習データがベクトルに変換された変換後学習データを用いて、モデルを生成する。生成部45は、学習データを変換後学習データに変換する。
【0087】
生成部45は、学習データが数値に関する項目に該当する場合、学習データを正規化して変換後学習データを生成する。生成部45は、学習データの正規化を行う所定の変換関数を用いて、学習データが正規化された変換後学習データを生成する。生成部45は、学習データがカテゴリに関する項目に該当する場合、学習データをベクトルに変換して変換後学習データを生成する。生成部45は、学習データのエンベディングを行うベクトル変換モデルを用いて、学習データがベクトルに変換された変換後学習データを生成する。
【0088】
生成部45は、データセットから所定の範囲を基に生成した部分データ群を用いて、モデルを生成する。生成部45は、各学習データが時間に対応付けられたデータセットから所定の時間範囲を示すタイムウィンドウを基に生成された部分データ群を用いて、モデルを生成する。生成部45は、一の学習データを複数の部分データが重複して含む部分データ群を用いて、モデルを生成する。生成部45は、部分データ群の各々に対応するデータをモデルに入力するデータとして、モデルを生成する。
【0089】
生成部45は、バッチノーマライゼーションを用いて、モデルを生成する。生成部45は、モデルの層ごとに各層の入力を正規化するバッチノーマライゼーションを用いて、モデルを生成する。生成部45は、モデルの生成に用いるデータを外部のモデル生成サーバ2に送信することにより、モデル生成サーバ2にモデルの学習を要求し、モデル生成サーバ2からモデル生成サーバ2が学習したモデルを受信することにより、モデルを生成する。
【0090】
例えば、生成部45は、学習データデータベース31に登録されたデータを用いて、モデルを生成する。生成部45は、トレーニング用データとして用いられる各データとラベルとに基づいて、モデルを生成する。生成部45は、トレーニング用データを入力した場合にモデルが出力する出力結果と、ラベルとが一致するように学習を行うことにより、モデルを生成する。例えば、生成部45は、トレーニング用データとして用いられる各データとラベルとをモデル生成サーバ2に送信することにより、モデル生成サーバ2にモデルを学習させることにより、モデルを生成する。
【0091】
例えば、生成部45は、学習データデータベース31に登録されたデータを用いて、モデルの精度を測定する。生成部45は、評価用データとして用いられる各データとラベルとに基づいて、モデルの精度を測定する。生成部45は、評価用データを入力した場合にモデルが出力する出力結果と、ラベルとを比較した結果を収集することにより、モデルの精度を測定する。
【0092】
提供部46は、生成されたモデルを利用者に提供する。例えば、提供部46は、生成部45により生成されたモデルの精度が所定の閾値を超えた場合は、そのモデルとともに、モデルと対応する生成指標を端末装置3へと送信する。この結果、利用者は、モデルの評価や試用を行うとともに、生成指標の修正を行うことができる。
【0093】
提供部46は、生成部45により生成された指標を利用者に提示する。例えば、提供部46は、生成指標として生成されたAutoMLのコンフィグファイルを端末装置3に送信する。また、提供部46は、生成指標が生成される度に生成指標を利用者に提示してもよく、例えば、精度が所定の閾値を超えたモデルと対応する生成指標のみを利用者に提示してもよい。
【0094】
〔5.情報処理装置の処理フロー〕
次に、図6を用いて、情報処理装置10が実行する処理の手順について説明する。図6は、実施形態に係る情報処理の流れの一例を示すフローチャートである。
【0095】
例えば、情報処理装置10は、モデルの学習に用いる学習データを取得する(ステップS101)。そして、情報処理装置10は、学習データを用いて、重みのばらつきが小さくなるように学習されたモデルを生成する(ステップS102)。
【0096】
〔6.情報処理システムの処理フロー〕
次に、図7を用いて、情報処理システムに係る具体的な処理の一例について説明する。図7は、実施形態に係る情報処理システムの処理手順を示すシーケンス図である。
【0097】
図7に示すように、情報処理装置10は、学習データを取得する(ステップS201)。情報処理装置10は、前処理を行う(ステップS202)。例えば、情報処理装置10は、学習データを変換して、モデルに入力する変換後学習データを生成する。また、例えば、情報処理装置10は、学習処理において、バッチノーマライゼーションを適用するか否かを決定する。
【0098】
情報処理装置10は、モデルを学習するモデル生成サーバ2へモデルの生成に用いる情報を送信する(ステップS203)。例えば、情報処理装置10は、生成した変換後学習データや、バッチノーマライゼーションを適用するか否かを示す情報をモデル生成サーバ2へモデルの生成に用いる情報として送信する。
【0099】
情報処理装置10から情報を受信したモデル生成サーバ2は、学習処理によりモデルを生成する(ステップS204)。そして、モデル生成サーバ2は、生成したモデルを情報処理装置10へ送信する。このように、本願でいう「モデルを生成する」ことには、自装置でモデルを学習する場合に限らず、他の装置にモデルの生成に必要な情報を提供することで、他の装置にモデルの生成し指示し、他の装置が学習したモデルを受信することを含む概念である。情報処理システム1においては、情報処理装置10は、モデルを学習するモデル生成サーバ2へモデルの生成に用いる情報を送信し、モデル生成サーバ2が生成したモデルを取得することにより、モデルを生成する。このように、情報処理装置10は、他の装置へモデルの生成に用いる情報を送信することによりモデルの生成を要求し、要求を受けた他の装置モデルにモデルを生成させることにより、モデルを生成する。
【0100】
〔7.3つの処理について〕
ここから、モデルの重みのばらつきが小さくするための第1処理、第2処理、及び第3処理の3つの処理について説明する。なお、第1処理、第2処理、及び第3処理の3つの処理に関する情報は、上述した生成指標として用いられてもよい。すなわち、第1処理、第2処理、及び第3処理については、上述した生成指標を用いた処理として実行されてもよい。
【0101】
例えば、情報処理装置10は、第1処理で変換されたデータに関する情報を生成指標として用いてもよい。例えば、情報処理装置10は、第1処理で変換されたデータがどのようなデータであるかを示す情報を生成指標(「第1生成指標」ともいう)として、モデル生成サーバ2に第1処理で変換されたデータとともに送信してもよい。この場合、モデル生成サーバ2は、第1処理で変換されたデータと第1生成指標とを用いて、モデルの生成を行う。
【0102】
例えば、情報処理装置10は、第2処理で決定したタイムウィンドウを示す情報を生成指標として用いてもよい。例えば、情報処理装置10は、第2処理で決定したタイムウィンドウのサイズを生成指標(「第2生成指標」ともいう)として、モデル生成サーバ2に送信してもよい。この場合、モデル生成サーバ2は、第2生成指標が示すタイムウィンドウのサイズでデータを区切った部分データ群を用いて、モデルの生成を行う。
【0103】
例えば、情報処理装置10は、第3処理を実行するか否かを示す情報を生成指標として用いてもよい。例えば、情報処理装置10は、第3処理を実行するか否かを示すフラグの情報を生成指標(「第3生成指標」ともいう)として、モデル生成サーバ2に送信してもよい。この場合、モデル生成サーバ2は、第3生成指標がバッチノーマライゼーションの実行を示すフラグ(の値)である場合、バッチノーマライゼーションを実行して、モデルの生成を行う。また、モデル生成サーバ2は、第3生成指標がバッチノーマライゼーションの不実行を示すフラグ(の値)である場合、バッチノーマライゼーションを実行せずに、モデルの生成を行う。
【0104】
このように、第1処理、第2処理、及び第3処理の3つの処理については、上述した生成指標を用いたモデルの生成の一部として組み込まれてもよいし、上述した生成指標を用いたモデルの生成とは別に行われてもよい。
【0105】
〔7-1.第1処理〕
まず、第1処理について説明する。情報処理装置10は、モデルの重みのばらつきが小さくなるように学習データを変換する第1処理を行う。例えば、情報処理装置10は、学習データを変換して、変換後学習データを生成する第1処理を行う。
【0106】
情報処理装置10は、データの種別に応じて、異なる変換を行うことにより第1処理を実行する。例えば、情報処理装置10は、学習データが該当する項目が数値であるか、カテゴリであるかに応じて、異なる変換を行うことにより第1処理を実行する。
【0107】
〔7-1-1.数値の場合〕
情報処理装置10は、学習データが数値に関する項目に該当する場合、学習データを正規化する第1処理を行う。例えば、情報処理装置10は、学習データが数値に関する項目に該当する場合、以下に示す式(1)に示すような変換関数を用いて、学習データを正規化する第1処理を行う。
【0108】
【数1】
【0109】
ここで、上記式(1)中の左辺の「x´」は、変換後学習データ(変換後の数値)を示す。また、上記式(1)中の右辺の「x」は、変換前の学習データ(変換前の数値)を示す。上記式(1)中の右辺の「max(x)」は、対応する項目に該当する学習データのうち最大値を示す。上記式(1)中の右辺の「min(x)」は、対応する項目に該当する学習データのうち最小値を示す。
【0110】
情報処理装置10は、式(1)に示すような変換関数を用いて、数値に関する項目に該当する学習データを0以上1以下の値に正規化する。これにより、情報処理装置10は、数値に関する項目に該当する学習データのばらつきを抑制することができる。その結果として、情報処理装置10は、モデルの重みのばらつきが小さくすることができ、モデルの精度を改善することができる。
【0111】
また、情報処理装置10は、上記式(1)に限らず、学習データが数値に関する項目に該当する場合、以下に示す式(2)に示すような変換関数を用いて、学習データを正規化する第1処理を行ってもよい。
【0112】
【数2】
【0113】
上記式(1)と同様の点については説明を省略するが、上記式(2)中の右辺の「average(x)」は、対応する項目に該当する学習データの平均値を示す。なお、上記は一例に過ぎず、情報処理装置10は、上記式(1)、式(2)に限らず、種々の情報を適宜用いて、数値に関する項目に該当する学習データを変換してもよい。
【0114】
〔7-1-2.カテゴリの場合〕
情報処理装置10は、学習データがカテゴリに関する項目に該当する場合、学習データを正規化する第1処理を行う。例えば、情報処理装置10は、学習データがカテゴリに関する項目に該当する場合、ベクトル変換モデルを用いて、学習データをエンベディング(ベクトル化)する第1処理を行う。この場合、情報処理装置10は、図8に示すようなベクトル変換モデルEM1を用いて、学習データがベクトルに変換された変換後学習データを生成する。図8は、実施形態に係る第1処理の一例を示す図である。ベクトル変換モデルEM1は、入力層INと、中間層に対応するエンベディング層ELと、出力層とを含む。
【0115】
例えば、ベクトル変換モデルEM1は、入力層INにカテゴリに関する項目に該当する学習データが入力された場合、エンベディング層ELにより特徴が抽出され、ベクトル化された学習データ(変換後学習データ)が出力層から出力される。図8中の出力データOT中のエンベディングデータED1、ED2は、ベクトル変換モデルEM1により第1処理が適用された後の学習データ、すなわち変換後学習データを示す。エンベディングデータED1、ED2は、N次元のベクトルデータ(変換後学習データ)を3次元空間に写像したイメージ図である。
【0116】
情報処理装置10は、ベクトル変換モデルEM1を学習してもよい。この場合、情報処理装置10は、ベクトル変換モデルEM1の学習に用いるデータ(学習データ)が有する特徴を学習するように学習処理を実行する。例えば、情報処理装置10は、ベクトル変換モデルEM1が出力するベクトルの分布のばらつきが小さくなるように、ベクトル変換モデルEM1を学習する。例えば、情報処理装置10は、エンベディングデータED1に示すベクトルデータのばらつきが小さくなるように、ベクトル変換モデルEM1を学習する。また、例えば、情報処理装置10は、エンベディングデータED2に示すベクトルデータのばらつきが小さくなるように、ベクトル変換モデルEM1を学習する。情報処理装置10は、機械学習に関する種々の従来技術を適宜用いて、ベクトル変換モデルEM1が出力するベクトルの分布のばらつきが小さくなるように、ベクトル変換モデルEM1を学習する。
【0117】
これにより、情報処理装置10は、カテゴリに関する項目に該当する学習データのばらつきを抑制することができる。その結果として、情報処理装置10は、モデルの重みのばらつきを小さくすることができ、モデルの精度を改善することができる。なお、上記は一例に過ぎず、情報処理装置10は、種々の情報を適宜用いて、カテゴリに関する項目に該当する学習データを変換してもよい。
【0118】
〔7-2.第2処理〕
次に、第2処理について説明する。情報処理装置10は、モデルの重みのばらつきが小さくなるようにデータセットから所定の範囲を基に生成した部分データ群を生成する第2処理を行う。例えば、情報処理装置10は、所定の時間範囲を示すタイムウィンドウを基に生成された部分データ群を生成する第2処理を行う。
【0119】
このように、情報処理装置10は、時間ごとに区切ったデータを用いてモデルを学習させる。この点について、図9を用いて説明する。図9は、実施形態に係る第2処理の概念を示す図である。図9中の左側のグラフは時間ごとに区切ったデータを生成する基となるデータBD1を示す。例えば、データBD1での横軸は時間に対応し、縦軸は例えばユーザによる所定の行動の回数等の所定の事象の発生回数を示す。データBD1は、複数のデータの各々に対応する複数の線を合わせて示し、各線がモデルに入力される各データに対応する。このように、データBD1では、縦軸方向のばらつきが多いデータとなる。このような場合、モデルに入力されるデータもばらつきが多くなる。
【0120】
そこで、情報処理装置10は、データAD1を時間ごとに区切ってモデルに入力するデータに対応するデータを生成する。例えば、情報処理装置10は、データAD1の各データをタイムウィンドウ(例えば12時間や1日等)ごとに区切ったデータAD1を生成する。図9中の右側のグラフはタイムウィンドウで区切って生成されたデータデータAD1を示す。
【0121】
例えば、データAD1での横軸は時間に対応し、縦軸は例えばユーザによる所定の行動の回数等の所定の事象の発生回数を示す。データAD1は、タイムウィンドウで区切って生成した各データを重畳して示し、波形がモデルに入力される各データに対応する。このように、データAD1では、縦軸方向のばらつきが抑制されたデータとなる。このような場合、モデルに入力されるデータのばらつきが抑制される。なお、データAD1における各データには時間的な重複があってもよく、データAD1における各データには重複したデータが含まれてもよい。
【0122】
情報処理装置10は、任意の時間範囲を示すタイムウィンドウによりデータを区切ってもよい。情報処理装置10は、タイムウィンドウのサイズ、すなわち時間幅(時間範囲)の最適化を行ってもよい。例えば、情報処理装置10は、タイムウィンドウで区切って生成されるデータに含まれるレコード数が所定の範囲になるように、タイムウィンドウを設定してもよい。例えば、情報処理装置10は、タイムウィンドウで区切って生成される部分データ群(「区分データ」ともいう)に含まれるレコード数が10万から20万の範囲になるように、タイムウィンドウを設定してもよい。
【0123】
上記のように、情報処理装置10は、タイムウィンドウのサイズを決定する。情報処理装置10は、区分データに含まれるレコード数が所定の範囲になるように、タイムウィンドウのサイズを決定する。例えば、情報処理装置10は、過去のモデル生成において精度が高くなった区分データのレコード数の範囲(最適レコード数の範囲)の情報(レコード数情報)を用いて、タイムウィンドウのサイズを決定してもよい。情報処理装置10は、各区分データに含まれるデータのレコード数が、レコード数情報が示す最適レコード数の範囲内になるように、タイムウィンドウのサイズを決定してもよい。
【0124】
例えば、情報処理装置10は、データの内容に応じて、タイムウィンドウのサイズを決定してもよい。例えば、情報処理装置10は、データの種別に応じて、タイムウィンドウのサイズを決定してもよい。例えば、情報処理装置10は、データの種別ごとにタイムウィンドウのサイズが対応付けられた情報(サイズ情報)を用いて、タイムウィンドウのサイズを決定してもよい。例えば、情報処理装置10は、データの種別ごとに過去のモデル生成において精度が高くなったタイムウィンドウのサイズが対応付けられた情報(サイズ情報)を用いて、タイムウィンドウのサイズを決定してもよい。例えば、情報処理装置10は、サイズ情報において、データの種別「ユーザ行動ログ」にタイムウィンドウのサイズ「12時間」が対応付けられている場合、種別「ユーザ行動ログ」のデータを対象として、12時間のサイズで区切り(分割し)、区分データを生成すると決定してもよい。
【0125】
また、情報処理装置10は、タイムウィンドウのサイズの最適化の際に、同時にバッチサイズと学習率の最適化も行ってもよい。これにより、情報処理装置10は、さらにモデルの精度を向上させることができる。
【0126】
〔7-3.第3処理〕
次に、第3処理について説明する。情報処理装置10は、モデルの重みのばらつきが小さくなるようにバッチノーマライゼーションである第3処理を行う。例えば、情報処理装置10は、モデルの層ごとに各層の入力を正規化する第3処理を行う。この点について、図10を用いて説明する。図10は、実施形態に係る第3処理の概念を示す図である。図10の全体像BN1は、第3処理として行われるバッチノーマライゼーションの概要を示す。図10中のアルゴリズムAL1は、バッチノーマライゼーションに関するアルゴリズムを示す。図10中の関数FC1は、バッチノーマライゼーションを適用するための関数を示す。図10中の関数FC1は、以下の式(3)と同様である。
【0127】
【数3】
【0128】
式(3)は、パラメータ「scale」、「bias」を用いて、入力(すなわち、前の層の出力)の正規化を行う関数の一例を示す。式(3)中の矢印(←)の左側が、正規化後の値を示し、式(3)中の矢印(←)の右側が、正規化前の値にパラメータ「scale」を乗算し、パラメータ「bias」を加算することにより算出される。このように、図10の例では、パラメータ「scale」、「bias」により正規化される。具体的には、関数FC1により、正規化前の値にパラメータ「scale」の値が乗算され、その乗算結果にパラメータ「bias」の値が加算されることにより正規化される。
【0129】
図10の例では、パラメータ「scale」、「bias」の上限値及び下限値は、コードCD1により規定される。パラメータ「scale」の値は、コードCD1と、関数FC2により決定される。例えば、関数FC2は、「scale_min」を下限、「scale_max」を上限とする範囲の乱数を生成する関数である。
【0130】
また、パラメータ「bias」の値は、コードCD1と、関数FC3により決定される。例えば、関数FC3は、「shift_min」を下限、「shift_max」を上限とする範囲の乱数を生成する関数である。
【0131】
図10の例では、関数FC1を用いて第3処理が行われる。これにより、情報処理装置10は、モデルの層ごとに各層の入力のばらつきを抑制することができる。その結果として、情報処理装置10は、モデルの重みのばらつきが小さくすることができ、モデルの精度を改善することができる。
【0132】
例えば、モデル生成サーバ2がバッチノーマライゼーションの指定を受け付けるためのAPI(Application Programming Interface)が提供されている場合、情報処理装置10は、そのAPIを用いて、モデル生成サーバ2が第3処理の実行を指示してもよい。
【0133】
〔8.実験結果について〕
ここから、上述した処理を適用して生成したモデル等を用いた実験結果を示す。
【0134】
〔8-1.第1の実験結果〕
まず、図11図15を用いて、第1の実験結果について説明する。第1の実験結果は、ユーザの行動に応じて、お勧めの宿泊施設をレコメンドするモデル(以下「第1モデル」ともいう)を生成し、そのモデル(第1モデル)の精度を測定した場合の実験結果を示す。ここで、第1モデルは、ユーザの行動データが入力された場合、例えば数万件等の多数の対象となる宿泊施設(「対象宿泊施設」ともいう)毎のスコアを出力するモデルである。
【0135】
まず、図11を用いて実験に用いたデータを説明する。図11は、実験に用いたデータを示す図である。図11は、実験に用いたデータセットと時間との関係を示す。実験に用いたデータセットは、図11中に「TrialA」として示されるデータセットであり、データセットには各ユーザの行動データ(行動履歴)が含まれる。
【0136】
図11に示すように、データセットは、「3月23日14時01分」~「4月22日13時29分」までの時間範囲を有し、この中で最も古いデータ(3月23日14時01分での行動データ)から、最も新しいデータ(4月22日13時29分での行動データ)までが時系列順に並べられている。
【0137】
図11の例では、データセットのうち、「3月23日14時01分」~「4月18日1時21分」の間のデータがチューニングのためのデータ(トレーニング用データ)として割り当てられている。すなわち、「3月23日14時01分」~「4月18日1時21分」の間のデータをトレーニング用データとして、お勧めの宿泊施設をレコメンドするモデル(第1モデル)が生成されたことを示す。
【0138】
また、図11の例では、データセットのうち、「4月18日1時21分」~「4月21日16時32分」の間のデータが評価のためのデータ(評価用データ)として割り当てられている。すなわち、「4月18日1時21分」~「4月21日16時32分」の間のデータを評価用データとして、お勧めの宿泊施設をレコメンドするモデル(第1モデル)の評価が測定されたことを示す。
【0139】
また、図11の例では、データセットのうち、「4月21日16時32分」~「4月23日13時29分」の間のデータがテストのためのデータ(テスト用データ)として割り当てられている。すなわち、「4月21日16時32分」~「4月23日13時29分」の間のデータをテスト用データとして、お勧めの宿泊施設をレコメンドするモデル(第1モデル)のテストが行われたことを示す。
【0140】
図11に示すようなデータセットを用いた第1の実験結果を図12に示す。図12は、第1の実験結果の一覧を示す図である。図12中の「オフライン指標#1」は、モデルの精度の基準となる指標を示す。図12中の「Eval」は、評価用データを用いた場合の精度を示す。図12中の「Test」は、テスト用データを用いた場合の精度を示す。
【0141】
また、図12中の一覧のうち、「従来例」は、上述した第1処理、第2処理、及び第3処理のいずれも適用しなかった場合のモデルの精度を示す。また、図12中の一覧のうち、「本手法」は、上述した第1処理及び第2処理を適用した場合のモデルの精度を示す。
【0142】
図12に示す実験結果は、オフライン指標#1により、ユーザの行動データをモデルに入力し、対象宿泊施設のうち、そのモデルが出力したスコアの高い方から順に5件を抽出し、その5件の中にそのユーザが実際に(例えば対応するページ等のコンテンツを)閲覧した宿泊施設が含まれる割合を示す。
【0143】
図12に示すように、従来例については、評価用データを用いた場合の精度は「0.170402」となった。すなわち、評価用データを用いた従来例の実験では、ユーザの行動データを第1モデルに入力し、対象宿泊施設のうち、第1モデルが出力したスコアの高い方から順に抽出した5件の中にそのユーザが実際に閲覧した宿泊施設が17%の割合で含まれていたことを示す。
【0144】
一方で、本手法については、評価用データを用いた場合の精度は「0.188799」となった。すなわち、評価用データを用いた本手法の実験では、ユーザの行動データを第1モデルに入力し、対象宿泊施設のうち、第1モデルが出力したスコアの高い方から順に抽出した5件の中にそのユーザが実際に閲覧した宿泊施設が18.8%の割合で含まれていたことを示す。
【0145】
このように、評価用データを用いた場合の精度を比較した場合、本手法は、従来例から「15.7%」の精度の改善(上昇)が見られた。
【0146】
また、従来例については、テスト用データを用いた場合の精度は「0.163190」となった。一方で、本手法については、テスト用データを用いた場合の精度は「0.180348」となった。テスト用データを用いた場合の精度を比較した場合、本手法は、従来例から「10.5%」の精度の改善(上昇)が見られた。
【0147】
次に、実験結果に関連する点について説明する。まず、図13を用いてステップとロス(損失)との関係を示す。図13は、第1の実験結果に関するグラフを示す図である。図13のグラフRS11の横軸がステップ、縦軸がロスを示す。
【0148】
図13のグラフRS11中の線LN11~LN13は、各値とステップとの関係を示す。線LN11は、本手法での「Training Loss Value」(例えばトレーニング時のロス値)とステップとの関係を示す。また、線LN12は、本手法での「Training Loss Value with EMA (Exponential Moving Average)」(例えばトレーニング時のロス値の指数平滑移動平均)とステップとの関係を示す。また、線LN13は、本手法での「Eval Loss Value」(例えば評価時のロス値)とステップとの関係を示す。図13に示すように、本手法では、ロス値が略一定の値に収束している。
【0149】
次に、図14を用いてステップと精度との関係を示す。図14は、第1の実験結果に関するグラフを示す図である。図14のグラフRS12の横軸がステップ、縦軸が精度を示す。
【0150】
図14のグラフRS12中の線LN14、LN15は、各方法での精度とステップとの関係を示す。線LN14は、従来例での精度とステップとの関係を示す。線LN15は、本手法での精度とステップとの関係を示す。図14に示すように、本手法の方が、従来例よりも精度が改善されている。
【0151】
次に、図15を用いてステップと重みとの関係を示す。図15は、第1の実験結果に関するグラフを示す図である。図15のグラフRS13、RS14の横軸がステップ、縦軸がLogits(モデルの出力)を示す。また、図15中に示す「Window Size:179050」は、本実験結果を得た際のタイムウィンドウを示す。「179050」がタイムウィンドウのサイズを示し、例えばこの値が大きい程、タイムウィンドウのサイズが大きくなる。例えば「Window Size」は、学習(Training)の際にモデルのinput(入力)にデータをfeed(フィード)するために使用するbuffer(バッファ)のSize(Shuffle Buffer Size)を示す。具体的には、「Window Size」は、モデルのinputにデータレコード(batch size単位)をfeedする際に行うShuffle(シャッフル)において使用するbufferを示す。例えば、TensorFlowの場合、TensorFlowに関する文献「https://www.tensorflow.org/api_docs/python/tf/data/Dataset#shuffle」に開示されるようなモジュールが使用される。図15等に実験結果を示す実験においては、Shuffle BufferをWindow Bufferとして使用(流用)する。また、Window BufferのSizeは固定で、(Buffer に格納する)データレコードを時系列方向にバッチサイズ(batch size)分ずつ移動させながら、このBufferに格納し(データファイルからBufferにコピー)、Shuffleを行い、それをモデルのinputにfeedする。
【0152】
図15のグラフRS13は、従来例でのモデルの出力とステップとの関係を示す。グラフRS13中の波形は、モデルの出力のばらつきを、その標準偏差により示すものである。グラフRS13中の9個の波形は、上から順にmaximum(最大値)、μ+1.5σ、μ+σ、μ+0.5σ、μ、μ-0.5σ、μ-σ、μ-1.5σ、minimum(最小値)に対応する。図15の例では、中心μが一番濃く、外側に行くに連れて色が薄くなる態様により示す。
【0153】
図15のグラフRS14は、本手法でのモデルの出力とステップとの関係を示す。グラフRS14中の波形は、モデルの出力のばらつきを、その標準偏差により示すものである。グラフRS14中の9個の波形は、グラフRS13と同様に、上から順にmaximum(最大値)、μ+1.5σ、μ+σ、μ+0.5σ、μ、μ-0.5σ、μ-σ、μ-1.5σ、minimum(最小値)に対応する。
【0154】
図15に示すように、従来例に比べ、本手法では、Logits(モデルの出力)のばらつきが小さくなる。そして、Logits(モデルの出力)値が小さくなると、結果的に重みの値(Weight Value)も小さくなるため、本手法では、重みのばらつきも小さくなる。
【0155】
〔8-2.第2の実験結果〕
次に、図16図19を用いて、第2の実験結果について説明する。なお、第1の実験結果と同様の点については適宜説明を省略する。第2の実験結果は、ユーザの行動に応じて、お勧めの宿泊施設をレコメンドするモデル(以下「第2モデル」ともいう)を生成し、そのモデル(第2モデル)の精度を測定した場合の実験結果を示す。ここで、第2モデルは、ユーザの行動データが入力された場合、例えば数万件等の多数の対象となる宿泊施設(対象宿泊施設)毎のスコアを出力するモデルである。例えば、第2モデルは、第1モデルと同じモデルである。
【0156】
また、第2の実験結果は、モデルの精度の基準となる指標が「オフライン指標#2」である。図16に示す実験結果は、オフライン指標#2により、ユーザの行動データをモデルに入力し、そのモデルが出力したスコアの高い方から順に順位を付した場合に、ユーザが実際に閲覧した宿泊施設の最高順位の逆数の平均をとったものである。すなわち、オフライン指標#2は、モデルが出力したスコアの高い方から順に並んだ一覧において、最初に現れたユーザが実際に閲覧した宿泊施設の順位の逆数の平均をとったものである。例えば、最初に現れたユーザが実際に閲覧した宿泊施設の順位が「2」である場合、「0.5(=1/2)」となる。
【0157】
図16は、第2の実験結果の一覧を示す図である。例えば、図16は、図11に示すようなデータセットを用いた第2の実験結果を示す。
【0158】
図16に示すように、従来例については、評価用データを用いた場合の精度は「0.1380」となった。一方で、本手法については、評価用データを用いた場合の精度は「0.14470」となった。このように、評価用データを用いた場合の精度を比較した場合、本手法は、従来例から「4.9%」の精度の改善(上昇)が見られた。
【0159】
また、従来例については、テスト用データを用いた場合の精度は「0.12554」となった。一方で、本手法については、テスト用データを用いた場合の精度は「0.13012」となった。テスト用データを用いた場合の精度を比較した場合、本手法は、従来例から「3.6%」の精度の改善(上昇)が見られた。
【0160】
次に、実験結果に関連する点について説明する。まず、図17を用いてステップとロス(損失)との関係を示す。図17は、第2の実験結果に関するグラフを示す図である。図17のグラフRS21の横軸がステップ、縦軸がロスを示す。
【0161】
図17のグラフRS21中の線LN21、LN22は、各値とステップとの関係を示す。線LN21は、本手法での「Training Loss Value」(例えばトレーニング時のロス値)とステップとの関係を示す。また、線LN22は、本手法での「Eval Loss Value」(例えば評価時のロス値)とステップとの関係を示す。図17に示すように、本手法では、ロス値が略一定の値に収束している。
【0162】
次に、図18を用いてステップと精度との関係を示す。図18は、第2の実験結果に関するグラフを示す図である。図18のグラフRS22の横軸がステップ、縦軸が精度を示す。
【0163】
図18のグラフRS22中の線LN23、LN24は、各方法での精度とステップとの関係を示す。線LN23は、従来例での精度とステップとの関係を示す。線LN24は、本手法での精度とステップとの関係を示す。図18に示すように、本手法の方が、従来例よりも精度が改善されている。
【0164】
次に、図19を用いてステップと重みとの関係を示す。図19は、第2の実験結果に関するグラフを示す図である。図19のグラフRS23、RS24の横軸がステップ、縦軸がLogits(モデルの出力)を示す。また、図19中に示す「Window Size:158200」は、本実験結果を得た際のタイムウィンドウを示す。
【0165】
図19のグラフRS23は、従来例でのモデルの出力とステップとの関係を示す。グラフRS23中の波形は、モデルの出力のばらつきを、その標準偏差により示すものである。グラフRS23中の9個の波形は、図15中のグラフRS13と同様であるため、詳細な説明を省略する。また、図19のグラフRS24は、本手法でのモデルの出力とステップとの関係を示す。グラフRS24中の波形は、モデルの出力のばらつきを、その標準偏差により示すものである。グラフRS24中の9個の波形は、図15中のグラフRS14と同様であるため、詳細な説明を省略する。
【0166】
図19に示すように、従来例に比べ、本手法では、Logits(モデルの出力)のばらつきが小さくなる。そして、Logits(モデルの出力)値が小さくなると、結果的に重みの値(Weight Value)も小さくなるため、本手法では、重みのばらつきも小さくなる。
【0167】
〔8-3.第3の実験結果〕
まず、図20図24を用いて、第3の実験結果について説明する。なお、上述した第1の実験結果や第2の実験結果と同様の点については適宜説明を省略する。第3の実験結果は、ユーザの行動に応じて、お勧めの書籍をレコメンドするモデル(以下「第3モデル」ともいう)を生成し、そのモデル(第3モデル)の精度を測定した場合の実験結果を示す。ここで、第3モデルは、ユーザの行動データが入力された場合、例えば数万件等の多数の対象となる書籍(「対象書籍」ともいう)毎のスコアを出力するモデルである。
【0168】
まず、図20を用いて実験に用いたデータを説明する。図20は、実験に用いたデータを示す図である。図20は、実験に用いたデータセットと時間との関係を示す。実験に用いたデータセットは、図20中に「TrialC」として示されるデータセットであり、データセットには各ユーザの行動データ(行動履歴)が含まれる。
【0169】
図20に示すように、データセットは、「6月11日0時0分」~「6月19日0時0分」までの時間範囲を有し、この中で最も古いデータ(6月11日0時0分での行動データ)から、最も新しいデータ(6月19日0時0分での行動データ)までが時系列順に並べられている。
【0170】
図20の例では、データセットのうち、「6月11日0時0分」~「6月17日12時0分」の間のデータがチューニングのためのデータ(トレーニング用データ)として割り当てられている。すなわち、「6月11日0時0分」~「6月17日12時0分」の間のデータをトレーニング用データとして、お勧めの書籍をレコメンドするモデル(第3モデル)が生成されたことを示す。
【0171】
また、図20の例では、データセットのうち、「6月17日12時0分」~「6月19日0時0分」の間のデータが評価のためのデータ(評価用データ)として割り当てられている。すなわち、「6月17日12時0分」~「6月19日0時0分」の間のデータを評価用データとして、お勧めの書籍をレコメンドするモデル(第3モデル)の評価が測定されたことを示す。
【0172】
図20に示すようなデータセットを用いた第3の実験結果を図21に示す。図21は、第3の実験結果の一覧を示す図である。図21中の「オフライン指標#1」は、モデルの精度の基準となる指標を示す。
【0173】
図21に示す実験結果は、オフライン指標#1により、ユーザの行動データをモデルに入力し、対象書籍のうち、そのモデルが出力したスコアの高い方から順に5件を抽出し、その5件の中にそのユーザが実際に(例えば対応するページ等のコンテンツを)閲覧した書籍が含まれる割合を示す。
【0174】
図21に示すように、従来例については、評価用データを用いた場合の精度は「0.13294」となった。一方で、本手法については、評価用データを用いた場合の精度は「0.15349」となった。このように、評価用データを用いた場合の精度を比較した場合、本手法は、従来例から「15.5%」の精度の改善(上昇)が見られた。
【0175】
次に、実験結果に関連する点について説明する。まず、図22を用いてステップとロス(損失)との関係を示す。図22は、第3の実験結果に関するグラフを示す図である。図22のグラフRS31の横軸がステップ、縦軸がロスを示す。
【0176】
図22のグラフRS31中の線LN31、LN32は、各値とステップとの関係を示す。線LN31は、本手法での「Training Loss Value」(例えばトレーニング時のロス値)とステップとの関係を示す。また、線LN32は、本手法での「Eval Loss Value」(例えば評価時のロス値)とステップとの関係を示す。図22に示すように、本手法では、ロス値が略一定の値に収束している。
【0177】
次に、図23を用いてステップと精度との関係を示す。図23は、第3の実験結果に関するグラフを示す図である。図23のグラフRS32の横軸がステップ、縦軸が精度を示す。
【0178】
図23のグラフRS32中の線LN33は、各方法での精度とステップとの関係を示す。線LN33は、本手法での精度とステップとの関係を示す。図23に示すように、本手法は、「0.15349」まで精度が改善されている。
【0179】
次に、図24を用いてステップと重みとの関係を示す。図24は、第3の実験結果に関するグラフを示す図である。図24のグラフRS33、RS34の横軸がステップ、縦軸がLogits(モデルの出力)を示す。また、図24中に示す「Window Size:131200」は、本実験結果を得た際のタイムウィンドウを示す。
【0180】
図24のグラフRS33は、従来例でのモデルの出力とステップとの関係を示す。グラフRS33中の波形は、モデルの出力のばらつきを、その標準偏差により示すものである。グラフRS33中の9個の波形は、図15中のグラフRS13と同様であるため、詳細な説明を省略する。また、図24のグラフRS34は、本手法でのモデルの出力とステップとの関係を示す。グラフRS34中の波形は、モデルの出力のばらつきを、その標準偏差により示すものである。グラフRS34中の9個の波形は、図15中のグラフRS14と同様であるため、詳細な説明を省略する。
【0181】
図24に示すように、従来例に比べ、本手法では、Logits(モデルの出力)のばらつきが小さくなる。そして、Logits(モデルの出力)値が小さくなると、結果的に重みの値(Weight Value)も小さくなるため、本手法では、重みのばらつきも小さくなる。
【0182】
〔8-4.第4の実験結果〕
まず、図25図28を用いて、第4の実験結果について説明する。なお、上述した第1の実験結果、第2の実験結果、第3の実験結果と同様の点については適宜説明を省略する。第4の実験結果は、ユーザの行動に応じて、いわゆるナレッジコミュニティ等の知識検索サービスでのお勧めの情報(例えば質問が解決済みの情報)をレコメンドするモデル(以下「第4モデル」ともいう)を生成し、そのモデル(第4モデル)の精度を測定した場合の実験結果を示す。ここで、第4モデルは、ユーザの行動データが入力された場合、例えば数万件等の多数の対象となる情報(「対象情報」ともいう)毎のスコアを出力するモデルである。例えば、第4の実験結果は、図11に示すデータセット(TrialA)を用いて行われる。
【0183】
図25は、第4の実験結果の一覧を示す図である。図25中の「オフライン指標#1」は、モデルの精度の基準となる指標を示す。
【0184】
図25に示す実験結果は、オフライン指標#1により、ユーザの行動データをモデルに入力し、対象情報のうち、そのモデルが出力したスコアの高い方から順に5件を抽出し、その5件の中にそのユーザが実際に(例えば対応するページ等のコンテンツを)閲覧した情報が含まれる割合を示す。
【0185】
図25に示すように、従来例については、評価用データを用いた場合の精度は「0.353353」となった。一方で、本手法については、評価用データを用いた場合の精度は「0.425996」となった。このように、評価用データを用いた場合の精度を比較した場合、本手法は、従来例から「20.6%」の精度の改善(上昇)が見られた。
【0186】
また、従来例については、テスト用データを用いた場合の精度は「0.367177」となった。一方で、本手法については、テスト用データを用いた場合の精度は「0.438930」となった。テスト用データを用いた場合の精度を比較した場合、本手法は、従来例から「19.5%」の精度の改善(上昇)が見られた。
【0187】
次に、実験結果に関連する点について説明する。まず、図26を用いてステップとロス(損失)との関係を示す。図26は、第4の実験結果に関するグラフを示す図である。図26のグラフRS41の横軸がステップ、縦軸がロスを示す。
【0188】
図26のグラフRS41中の線LN41~LN44は、各値とステップとの関係を示す。線LN41は、従来例での「Training Loss Value」(例えばトレーニング時のロス値)とステップとの関係を示す。また、線LN42は、本手法での「Training Loss Value」(例えばトレーニング時のロス値)とステップとの関係を示す。また、線LN43は、従来例での「Eval Loss Value」(例えば評価時のロス値)とステップとの関係を示す。また、線LN44は、本手法での「Eval Loss Value」(例えば評価時のロス値)とステップとの関係を示す。図26に示すように、本手法の方が、従来例よりもロス値が小さく抑えられている。
【0189】
次に、図27を用いてステップと精度との関係を示す。図27は、第4の実験結果に関するグラフを示す図である。図27のグラフRS42の横軸がステップ、縦軸が精度を示す。
【0190】
図27のグラフRS42中の線LN45、LN46は、各方法での精度とステップとの関係を示す。線LN45は、従来例での精度とステップとの関係を示す。線LN46は、本手法での精度とステップとの関係を示す。図27に示すように、本手法の方が、従来例よりも精度が改善されている。
【0191】
次に、図28を用いてステップと重みとの関係を示す。図28は、第4の実験結果に関するグラフを示す図である。図28のグラフRS43、RS44の横軸がステップ、縦軸がLogits(モデルの出力)を示す。また、図28中に示す「Window Size:131200」は、本実験結果を得た際のタイムウィンドウを示す。
【0192】
図28のグラフRS43は、従来例でのモデルの出力とステップとの関係を示す。グラフRS43中の波形は、モデルの出力のばらつきを、その標準偏差により示すものである。グラフRS43中の9個の波形は、図15中のグラフRS13と同様であるため、詳細な説明を省略する。また、図28のグラフRS44は、本手法でのモデルの出力とステップとの関係を示す。グラフRS44中の波形は、モデルの出力のばらつきを、その標準偏差により示すものである。グラフRS44中の9個の波形は、図15中のグラフRS14と同様であるため、詳細な説明を省略する。
【0193】
図28に示すように、従来例に比べ、本手法では、Logits(モデルの出力)のばらつきが小さくなる。そして、Logits(モデルの出力)値が小さくなると、結果的に重みの値(Weight Value)も小さくなるため、本手法では、重みのばらつきも小さくなる。
【0194】
〔8-5.第5の実験結果〕
まず、図29図32を用いて、第5の実験結果について説明する。なお、上述した第1の実験結果、第2の実験結果、第3の実験結果、第4の実験結果と同様の点については適宜説明を省略する。第5の実験結果は、ユーザの行動に応じて、クーポンやセールなどの情報を提供するサービスでのお勧めの情報(例えばクーポン)をレコメンドするモデル(以下「第5モデル」ともいう)を生成し、そのモデル(第5モデル)の精度を測定した場合の実験結果を示す。ここで、第5モデルは、ユーザの行動データが入力された場合、例えば数万件等の多数の対象となる情報(「対象情報」ともいう)毎のスコアを出力するモデルである。例えば、第5の実験結果は、図11に示すデータセット(TrialA)を用いて行われる。
【0195】
図29は、第5の実験結果の一覧を示す図である。図29中の「オフライン指標#1」は、モデルの精度の基準となる指標を示す。
【0196】
図29に示す実験結果は、オフライン指標#1により、ユーザの行動データをモデルに入力し、対象情報のうち、そのモデルが出力したスコアの高い方から順に5件を抽出し、その5件の中にそのユーザが実際に(例えば対応するページ等のコンテンツを)閲覧した情報が含まれる割合を示す。
【0197】
図29に示すように、従来例については、評価用データを用いた場合の精度は「0.298」となった。一方で、本手法については、評価用データを用いた場合の精度は「0.324516」となった。このように、評価用データを用いた場合の精度を比較した場合、本手法は、従来例から「8.9%」の精度の改善(上昇)が見られた。
【0198】
また、本手法については、テスト用データを用いた場合の精度は「0.331010」となった。本手法では、テスト用データを用いた場合、評価用データを用いた場合よりも精度が上昇した。
【0199】
次に、実験結果に関連する点について説明する。まず、図30を用いてステップとロス(損失)との関係を示す。図30は、第5の実験結果に関するグラフを示す図である。図30のグラフRS51の横軸がステップ、縦軸がロスを示す。
【0200】
図30のグラフRS51中の線LN51、LN52は、各値とステップとの関係を示す。線LN51は、従来例での「Eval Loss Value」(例えば評価時のロス値)とステップとの関係を示す。また、線LN52は、本手法での「Eval Loss Value」(例えば評価時のロス値)とステップとの関係を示す。図30に示すように、本手法の方が、従来例よりもロス値が小さく抑えられている。
【0201】
次に、図31を用いてステップと精度との関係を示す。図31は、第5の実験結果に関するグラフを示す図である。図31のグラフRS52の横軸がステップ、縦軸が精度を示す。
【0202】
図31のグラフRS52中の線LN53、LN54は、各方法での精度とステップとの関係を示す。線LN53は、従来例での精度とステップとの関係を示す。線LN54は、本手法での精度とステップとの関係を示す。図31に示すように、本手法の方が、早いステップの段階で高い精度を達成すると共に、従来例よりも精度が改善されている。
【0203】
次に、図32を用いてステップと重みとの関係を示す。図32は、第5の実験結果に関するグラフを示す図である。図32のグラフRS53、RS54の横軸がステップ、縦軸がLogits(モデルの出力)を示す。また、図32中に示す「Window Size:131200」は、本実験結果を得た際のタイムウィンドウを示す。
【0204】
図32のグラフRS53は、従来例でのモデルの出力とステップとの関係を示す。グラフRS53中の波形は、モデルの出力のばらつきを、その標準偏差により示すものである。グラフRS53中の9個の波形は、図15中のグラフRS13と同様であるため、詳細な説明を省略する。また、図32のグラフRS54は、本手法でのモデルの出力とステップとの関係を示す。グラフRS54中の波形は、モデルの出力のばらつきを、その標準偏差により示すものである。グラフRS54中の9個の波形は、図15中のグラフRS14と同様であるため、詳細な説明を省略する。
【0205】
図32に示すように、従来例に比べ、本手法では、Logits(モデルの出力)のばらつきが小さくなる。そして、Logits(モデルの出力)値が小さくなると、結果的に重みの値(Weight Value)も小さくなるため、本手法では、重みのばらつきも小さくなる。
【0206】
〔8-6.第6の実験結果〕
まず、図33図35を用いて、第6の実験結果について説明する。なお、上述した第1の実験結果~第5の実験結果と同様の点については適宜説明を省略する。第6の実験結果は、例えばユーザの行動に応じて、初めて旅行サービスを利用するユーザを対象としてお勧めの宿泊施設をレコメンドするモデル(以下「第6モデル」ともいう)を生成し、そのモデル(第6モデル)の精度を測定した場合の実験結果を示す。ここで、第6モデルは、ユーザの行動データが入力された場合、例えば数万件等の多数の対象となる宿泊施設(「対象宿泊施設」ともいう)毎のスコアを出力するモデルである。例えば、第6の実験結果は、図11に示すデータセット(TrialA)を用いて行われる。
【0207】
図33は、第6の実験結果の一覧を示す図である。図33中の「オフライン指標#2」は、モデルの精度の基準となる指標を示す。
【0208】
図33に示す実験結果は、オフライン指標#2により、モデルが出力したスコアの高い方から順に並んだ一覧において、最初に現れたユーザが実際に閲覧した宿泊施設の順位の逆数の平均をとった値を示す。
【0209】
図33に示すように、従来例については、評価用データを用いた場合の精度は「0.12955」となった。一方で、本手法については、評価用データを用いた場合の精度は「0.13933」となった。このように、評価用データを用いた場合の精度を比較した場合、本手法は、従来例から「7.5%」の精度の改善(上昇)が見られた。
【0210】
また、従来例については、テスト用データを用いた場合の精度は「0.12656」となった。一方で、本手法については、テスト用データを用いた場合の精度は「0.13648」となった。テスト用データを用いた場合の精度を比較した場合、本手法は、従来例から「7.8%」の精度の改善(上昇)が見られた。
【0211】
次に、実験結果に関連する点について説明する。まず、図34を用いてステップとロス(損失)との関係を示す。図34は、第6の実験結果に関するグラフを示す図である。図34のグラフRS61の横軸がステップ、縦軸がロスを示す。
【0212】
図34のグラフRS61中の線LN61~LN64は、各値とステップとの関係を示す。線LN61は、従来例での「Training Loss Value」(例えばトレーニング時のロス値)とステップとの関係を示す。また、線LN62は、本手法での「Training Loss Value」(例えばトレーニング時のロス値)とステップとの関係を示す。また、線LN63は、従来例での「Eval Loss Value」(例えば評価時のロス値)とステップとの関係を示す。また、線LN64は、本手法での「Eval Loss Value」(例えば評価時のロス値)とステップとの関係を示す。図34に示すように、本手法の方が、従来例よりもロス値が小さく抑えられている。
【0213】
次に、図35を用いてステップと精度との関係を示す。図35は、第6の実験結果に関するグラフを示す図である。図35のグラフRS62の横軸がステップ、縦軸が精度を示す。
【0214】
図35のグラフRS62中の線LN65、LN66は、各方法での精度とステップとの関係を示す。線LN65は、従来例での精度とステップとの関係を示す。線LN66は、本手法での精度とステップとの関係を示す。図35に示すように、本手法の方が、従来例よりも精度が改善されている。
【0215】
〔8-7.その他の実験結果〕
なお、詳細な実験結果の提示は省略するが、バッチノーマライゼーションに関する第3処理を適用した場合、数%の精度の改善を図ることができた。
【0216】
〔9.変形例〕
上記では、情報処理の一例について説明した。しかしながら、実施形態は、これに限定されるものではない。以下、情報処理の変形例について説明する。
【0217】
〔9-1.装置構成〕
上記実施形態では、情報処理システム1に、生成指標の生成を行う情報処理装置10、および、生成指標に従ってモデルを生成するモデル生成サーバ2を有する例について説明したが、実施形態は、これに限定されるものではない。例えば、情報処理装置10は、モデル生成サーバ2が有する機能を有していてもよい。また、情報処理装置10が発揮する機能は、端末装置3に内包されていてもよい。このような場合、端末装置3は、生成指標を自動的に生成するとともに、モデル生成サーバ2を用いたモデルの生成を自動的に行うこととなる。
【0218】
〔9-2.その他〕
また、上記実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られない。
【0219】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【0220】
また、上記してきた各実施形態は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【0221】
〔9-3.プログラム〕
また、上述してきた実施形態に係る情報処理装置10は、例えば図36に示すような構成のコンピュータ1000によって実現される。図36は、ハードウェア構成の一例を示す図である。コンピュータ1000は、出力装置1010、入力装置1020と接続され、演算装置1030、一次記憶装置1040、二次記憶装置1050、出力IF(Interface)1060、入力IF1070、ネットワークIF1080がバス1090により接続された形態を有する。
【0222】
演算装置1030は、一次記憶装置1040や二次記憶装置1050に格納されたプログラムや入力装置1020から読み出したプログラム等に基づいて動作し、各種の処理を実行する。一次記憶装置1040は、RAM等、演算装置1030が各種の演算に用いるデータを一次的に記憶するメモリ装置である。また、二次記憶装置1050は、演算装置1030が各種の演算に用いるデータや、各種のデータベースが登録される記憶装置であり、ROM(Read Only Memory)、HDD、フラッシュメモリ等により実現される。
【0223】
出力IF1060は、モニタやプリンタといった各種の情報を出力する出力装置1010に対し、出力対象となる情報を送信するためのインタフェースであり、例えば、USB(Universal Serial Bus)やDVI(Digital Visual Interface)、HDMI(登録商標)(High Definition Multimedia Interface)といった規格のコネクタにより実現される。また、入力IF1070は、マウス、キーボード、およびスキャナ等といった各種の入力装置1020から情報を受信するためのインタフェースであり、例えば、USB等により実現される。
【0224】
なお、入力装置1020は、例えば、CD(Compact Disc)、DVD(Digital Versatile Disc)、PD(Phase change rewritable Disk)等の光学記録媒体、MO(Magneto-Optical disk)等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等から情報を読み出す装置であってもよい。また、入力装置1020は、USBメモリ等の外付け記憶媒体であってもよい。
【0225】
ネットワークIF1080は、ネットワークNを介して他の機器からデータを受信して演算装置1030へ送り、また、ネットワークNを介して演算装置1030が生成したデータを他の機器へ送信する。
【0226】
演算装置1030は、出力IF1060や入力IF1070を介して、出力装置1010や入力装置1020の制御を行う。例えば、演算装置1030は、入力装置1020や二次記憶装置1050からプログラムを一次記憶装置1040上にロードし、ロードしたプログラムを実行する。
【0227】
例えば、コンピュータ1000が情報処理装置10として機能する場合、コンピュータ1000の演算装置1030は、一次記憶装置1040上にロードされたプログラムを実行することにより、制御部40の機能を実現する。
【0228】
〔10.効果〕
上述したように、情報処理装置10は、モデルの学習に用いる学習データのデータセットを取得する取得部(実施形態では取得部41)と、データセットを用いて、重みのばらつきが小さくなるようにモデルを生成する生成部(実施形態では生成部45)とを有する。例えば、情報処理装置10は、データセットからモデルの重みが小さくなるように学習データ群を生成し、学習データ群を用いてモデルを生成することにより、重みのばらつきが抑制されたモデルを生成する。このように、重みのばらつきが小さくなるように生成されたモデルを用いた場合の実験結果では、モデルの精度が改善されることを示された。したがって、情報処理装置10は、モデルの精度を改善することができる。
【0229】
また、生成部は、重みの標準偏差または分散が小さくなるようにモデルを生成する。このように、重みの標準偏差または分散が小さくなるように生成されたモデルを用いた場合の実験結果では、モデルの精度が改善されることを示された。したがって、情報処理装置10は、モデルの精度を改善することができる。
【0230】
また、生成部は、学習データが、モデルの重みのばらつきが小さくなるように変換された変換後学習データを用いて、モデルを生成する。これにより、情報処理装置10は、モデルの重みのばらつきが小さくなるように変換された変換後学習データをモデルの入力として用いることで、モデルの精度を改善することができる。
【0231】
また、生成部は、学習データが正規化された変換後学習データを用いて、モデルを生成する。これにより、情報処理装置10は、学習データが正規化された変換後学習データをモデルの入力として用いることで、モデルの精度を改善することができる。
【0232】
また、生成部は、学習データがベクトルに変換された変換後学習データを用いて、モデルを生成する。これにより、情報処理装置10は、学習データがベクトルに変換された変換後学習データをモデルの入力として用いることで、モデルの精度を改善することができる。
【0233】
また、生成部は、学習データを変換後学習データに変換する。これにより、情報処理装置10は、学習データを変換後学習データに変換することにより変換後学習データを生成し、生成した変換後学習データをモデルの入力として用いることで、モデルの精度を改善することができる。
【0234】
また、生成部は、学習データが数値に関する項目に該当する場合、学習データを正規化して変換後学習データを生成する。このように、情報処理装置10は、学習データが数値に関する項目に該当する場合、学習データを正規化して変換後学習データを生成することにより、データの種別に応じて適切にデータを変換することができる。
【0235】
また、生成部は、学習データの正規化を行う所定の変換関数を用いて、学習データが正規化された変換後学習データを生成する。これにより、情報処理装置10は、学習データの正規化を行う所定の変換関数を用いることで、データを適切に正規化することができる。
【0236】
また、生成部は、学習データがカテゴリに関する項目に該当する場合、学習データをベクトルに変換して変換後学習データを生成する。これにより、情報処理装置10は、学習データがカテゴリに関する項目に該当する場合、学習データをベクトルに変換して変換後学習データを生成することで、データの種別に応じて適切にデータを変換することができる。
【0237】
また、生成部は、学習データのエンベディングを行うベクトル変換モデルを用いて、学習データがベクトルに変換された変換後学習データを生成する。これにより、情報処理装置10は、学習データのエンベディングを行うベクトル変換モデルを用いることで、データを適切にエンベディングすることができる。
【0238】
また、情報処理装置10は、学習処理によりベクトル変換モデルを生成する学習部(実施形態では学習部42)を有する。これにより、情報処理装置10は、学習処理によりベクトル変換モデルを生成することで、データを適切にエンベディングするためのモデルを生成することができる。
【0239】
また、学習部は、学習データが有する特徴を学習させたベクトル変換モデルを生成する。これにより、情報処理装置10は、学習データが有する特徴を学習させたベクトル変換モデルを生成することで、データを適切にエンベディングするためのモデルを生成することができる。
【0240】
また、学習部は、ベクトル変換モデルが出力するベクトルの分布のばらつきが小さくなるようにベクトル変換モデルを生成する。これにより、情報処理装置10は、ベクトル変換モデルを用いて、ばらつきが小さい変換後学習データを生成できるため、モデルの精度を改善することができる。
【0241】
また、生成部は、データセットから所定の範囲を基に生成した部分データ群を用いて、モデルを生成する。これにより、情報処理装置10は、データセットを所定の範囲で区切ってモデルの入力を調整できるため、モデルの重みのぱらつきを小さくでき、モデルの精度を改善することができる。
【0242】
また、生成部は、各学習データが時間に対応付けられたデータセットから所定の時間範囲を示すタイムウィンドウを基に生成された部分データ群を用いて、モデルを生成する。これにより、情報処理装置10は、各学習データが時間に対応付けられたデータセットをタイムウィンドウで区切ってモデルの入力を調整できるため、モデルの重みのぱらつきを小さくでき、モデルの精度を改善することができる。
【0243】
また、生成部は、一の学習データを複数の部分データが重複して含む部分データ群を用いて、モデルを生成する。これにより、情報処理装置10は、タイムウィンドウをずらす幅をタイムウィンドウよりも短く調整できるため、よりデータの特徴を学習させることができるため、モデルの精度を改善することができる。
【0244】
また、生成部は、部分データ群の各々に対応するデータをモデルに入力するデータとして、モデルを生成する。これにより、情報処理装置10は、範囲を調整した部分データ群の各々に対応するデータをモデルに入力するデータとして用いることで、モデルの重みのぱらつきを小さくでき、モデルの精度を改善することができる。
【0245】
また、生成部は、バッチノーマライゼーションを用いて、モデルを生成する。これにより、情報処理装置10は、モデルの層間の影響を抑制することで、モデルの重みのぱらつきを小さくすることができるため、モデルの精度を改善することができる。
【0246】
また、生成部は、モデルの層ごとに各層の入力を正規化するバッチノーマライゼーションを用いて、モデルを生成する。これにより、情報処理装置10は、モデルの層ごとに各層の入力を正規化することで、モデルの重みのぱらつきを小さくすることができるため、モデルの精度を改善することができる。
【0247】
また、生成部は、モデルの生成に用いるデータを外部のモデル生成サーバ(実施形態では「モデル生成サーバ2」)に送信することにより、モデル生成サーバにモデルの学習を要求し、モデル生成サーバからモデル生成サーバが学習したモデルを受信することにより、モデルを生成する。これにより、情報処理装置10は、モデル生成サーバにモデルを学習させ、そのモデルを受信することにより、適切にモデルを生成することができる。例えば、情報処理装置10は、モデルを生成するモデル生成サーバ2等の外部装置に変換後学習データ群を送信し、変換後学習データ群を用いて外部装置にモデルを学習させることにより、適切にモデルを生成することができる。
【0248】
以上、本願の実施形態のいくつかを図面に基づいて詳細に説明したが、これらは例示であり、発明の開示の欄に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
【0249】
また、上記してきた「部(section、module、unit)」は、「手段」や「回路」などに読み替えることができる。例えば、配信部は、配信手段や配信回路に読み替えることができる。
【符号の説明】
【0250】
1 情報処理システム
2 モデル生成サーバ
3 端末装置
10 情報処理装置
20 通信部
30 記憶部
40 制御部
41 取得部
42 学習部
43 決定部
44 受付部
45 生成部
46 提供部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24
図25
図26
図27
図28
図29
図30
図31
図32
図33
図34
図35
図36