(57)【要約】  数理最適化で観測されない入力データが存在する状況であっても、適切に最適化を行うことができる情報処理システムを提供する。学習部７１は、被説明変数および説明変数に基づいて、被説明変数と説明変数との間の関係を示し説明変数の関数で表される予測モデルを学習する。可視化部７２は、その予測モデルを可視化する。最適化部７３は、ユーザからの操作を受け付けたことに応じて、可視化部７２によって可視化された予測モデルを引数とする目的関数について、制約条件のもとで当該目的関数を最適化する目的変数を算出する。
2017094207.tif 000002
【特許請求の範囲】
【請求項１】
被説明変数および説明変数に基づいて、前記被説明変数と前記説明変数との間の関係を示し前記説明変数の関数で表される予測モデルを学習する学習部と、
前記予測モデルを可視化する可視化部と、
ユーザからの操作を受け付けたことに応じて、前記可視化部によって可視化された前記予測モデルを引数とする目的関数について、制約条件のもとで当該目的関数を最適化する目的変数を算出する最適化部とを備える
ことを特徴とする情報処理システム。
【請求項２】
学習部は、被説明変数毎に、複数種類の学習アルゴリズムを用いて複数種類の予測モデルを学習し、
可視化部は、被説明変数毎に、前記複数種類の予測モデルを可視化し、ユーザによる予測モデルの選択を受け付け、
最適化部は、前記ユーザによって被説明変数毎に選択された予測モデルを引数とする目的関数について、制約条件のもとで当該目的関数を最適化する目的変数を算出する
請求項１に記載の情報処理システム。
【請求項３】
可視化部は、過去の被説明変数の値および説明変数の値を含むテストデータを用いて、予測モデル毎に被説明変数の値を算出し、当該被説明変数の値と前記過去の被説明変数の値との差を可視化する
請求項１または請求項２に記載の情報処理システム。
【請求項４】
可視化部は、可視化した予測モデルに対するユーザの編集操作を受け付ける
請求項１から請求項３のうちのいずれか１項に記載の情報処理システム。
【請求項５】
学習部は、予測モデルの学習を指示する操作をユーザから受け付けたことに応じて、予測モデルを学習する
請求項１から請求項４のうちのいずれか１項に記載の情報処理システム。
【請求項６】
被説明変数および説明変数に基づいて、前記被説明変数と前記説明変数との間の関係を示し前記説明変数の関数で表される予測モデルを学習し、
前記予測モデルを可視化し、
ユーザからの操作を受け付けたことに応じて、可視化された前記予測モデルを引数とする目的関数について、制約条件のもとで当該目的関数を最適化する目的変数を算出する
ことを特徴とする情報処理方法。
【請求項７】
コンピュータに、
被説明変数および説明変数に基づいて、前記被説明変数と前記説明変数との間の関係を示し前記説明変数の関数で表される予測モデルを学習する学習処理、
前記予測モデルを可視化する可視化処理、および、
ユーザからの操作を受け付けたことに応じて、前記可視化処理で可視化された前記予測モデルを引数とする目的関数について、制約条件のもとで当該目的関数を最適化する目的変数を算出する最適化処理
を実行させるための情報処理用プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、学習された予測モデルに基づいて最適化を行う情報処理システム、情報処理方法および情報処理用プログラムに関する。
【背景技術】
【０００２】
過去の実績に基づいて予測モデルを生成する機械学習のアルゴリズムとして、例えば、回帰分析、ニューラルネットワーク、サポートベクターマシン等が知られている。また、特許文献１にも、過去の実績に基づいて予測モデルを生成する方法が記載されている。【０００３】
また、特許文献２には、予想売上および価格感応度に基づいて、見込まれる利益を最大化するように最適化された推奨価格を提示するシステムが記載されている。特許文献２には、このシステムにおいて、価格感応度モデルが、価格に伴って変動する関数を通して特定製品の価格感応度をモデリングすることや、価格変更の関数として売上の変化をモデリングすることが記載されている。さらに、特許文献２に記載のシステムは、所定の仮定のもとでの売上高を予測し、その予測と価格感応度の結論を使用して、製品の売上を予測し、所与の制約下で総利益を最大化する最適価格の集合を生成する。また、このシステムは、価格感応度モデルタイプおよび価格感応度変数値を表示する。【０００４】
特許文献３には、通信コンテンツの有効性を査定し、コンテンツ配信を最適化するためのシステムが記載されている。特許文献３に記載のシステムは、強化学習を用いている。特許文献３には、有効性評価尺度（または目的関数）を最大化すると予測されるコンテンツ配信スケジュールを生成することが記載されている。また、特許文献３には、履歴データに対して回帰分析を使用し、成果を最大化する、コンテンツの最良の「混成」を予測することが記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】米国特許第８９０９５８２号明細書
【特許文献２】特表２００４−５１９０２１号公報
【特許文献３】特開２０１５−５３０７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
一般的な数理最適化では、数理計画法への入力データが観測されることを前提としている。例えば、工業製品の生産ラインの最適化では、数理計画法への入力データは、各ラインである製品を作るために必要な材料の量、コスト、製造時間等である。これらの入力データは、いずれも、分析者が数理計画法を実行する時点において、分析者から見て観測可能なデータである。【０００７】
一方で、分析者が数理計画法を実行する時点において分析者から見て観測できないデータを用いないと、解決できない問題もある。例えば、小売店舗において、ある商品群の総売上高を最大化するために、その商品群に属する各商品の価格をそれぞれ最適化したいという問題がある。この問題を解決するために数理計画法を実行しようとすると、例えば、将来の商品の売上数の予測値が数理計画法への入力データとして必要になる。しかし、分析者が数理計画法を実行する時点で、将来の商品の売上数の予測値は、分析者から見て観測可能なデータではない。従って、一般的な数理最適化では、数理解決法を用いてこのような問題を解決することはできなかった。【０００８】
また、意思決定に予測を用いる場合、とり得る全ての戦略に対して効果を予測し、最もよい効果が得られる戦略を選ぶという方法が考えられる。しかし、この方法では、計算量が多くなってしまう。【０００９】
そこで、本発明は、数理最適化で観測されない入力データが存在する状況であっても、適切に最適化を行うことができる情報処理システム、情報処理方法および情報処理用プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明による情報処理システムは、被説明変数および説明変数に基づいて、被説明変数と説明変数との間の関係を示し説明変数の関数で表される予測モデルを学習する学習部と、予測モデルを可視化する可視化部と、ユーザからの操作を受け付けたことに応じて、可視化部によって可視化された予測モデルを引数とする目的関数について、制約条件のもとで当該目的関数を最適化する目的変数を算出する最適化部とを備えることを特徴とする。【００１１】
また、本発明による情報処理方法は、被説明変数および説明変数に基づいて、被説明変数と説明変数との間の関係を示し説明変数の関数で表される予測モデルを学習し、予測モデルを可視化し、ユーザからの操作を受け付けたことに応じて、可視化された予測モデルを引数とする目的関数について、制約条件のもとで当該目的関数を最適化する目的変数を算出することを特徴とする。【００１２】
また、本発明による情報処理用プログラムは、コンピュータに、被説明変数および説明変数に基づいて、被説明変数と説明変数との間の関係を示し説明変数の関数で表される予測モデルを学習する学習処理、予測モデルを可視化する可視化処理、および、ユーザからの操作を受け付けたことに応じて、可視化処理で可視化された予測モデルを引数とする目的関数について、制約条件のもとで当該目的関数を最適化する目的変数を算出する最適化処理を実行させることを特徴とする。
【発明の効果】
【００１３】
本発明によれば、数理最適化で観測されない入力データが存在する状況であっても、適切に最適化を行うことができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の情報処理システムの例を示すブロック図である。
【図２】表示制御部がディスプレイ装置上に表示する画面の例を示す説明図である。
【図３】予測モデル表示欄における予測モデルの他の表示例を示す説明図である。
【図４】散布図の表示欄を含む予測モデル表示欄の例を示す説明図である。
【図５】本発明の処理経過の例を示すフローチャートである。
【図６】本発明の処理経過の例を示すフローチャートである。
【図７】本発明の実施形態に係るコンピュータの構成例を示す概略ブロック図である。
【図８】本発明の情報処理システムの概要を示すブロック図である。
【発明を実施するための形態】
【００１５】
まず、本発明の概要を説明する。本発明の情報処理システムは、観測されないデータを予測する予測モデルを、過去のデータから学習し、その予測モデルに基づいて数理計画法の目的関数を自動的に生成し最適化を実行する。また、本発明の情報処理システムは、学習した予測モデルを可視化し（換言すれば、ディスプレイ装置上に表示し）、最適化を実行することを指示するユーザの操作に応じて、最適化を実行する。
【００１６】
以下、本発明の実施形態を図面を参照して説明する。なお、以下の説明では、複数の商品の売上数の予測に基づいて複数の商品の売上高の総和を最大にするように複数の商品の価格を最適化する場合を例示する。ただし、最適化の対象は、上記の例に限定されない。また、以下の説明では、機械学習による予測対象となる変数を「被説明変数」と記す。予測に用いられる変数を「説明変数」と記す。最適化の出力となる変数を「目的変数」と記す。なお、これらの変数は排他的な関係ではなく、例えば、説明変数の一部が目的変数となることがある。
【００１７】
図１は、本発明の情報処理システムの例を示すブロック図である。本発明の情報処理システム１は、訓練データ記憶部２と、学習部３と、表示制御部４と、ディスプレイ装置５と、記憶部６と、外的情報入力部７と、問題記憶部８と、目的関数生成部９と、最適化部１０とを備える。
【００１８】
表示制御部４は、学習部３によって学習された予測モデルを可視化する（換言すれば、予測モデルに関する情報をディスプレイ装置５上に表示する）。表示制御部４は、予測モデルに関する情報を表示するだけでなく、学習に用いられるパラメータをユーザが入力するためのユーザインタフェース、最適化における制約条件をユーザが入力するためのユーザインタフェース、最適化結果等もディスプレイ装置５上に表示する。
【００１９】
図２は、表示制御部４がディスプレイ装置５上に表示する画面の例を示す説明図である。表示制御部４によって表示される画面２１は、予測モデル表示欄２２と、学習に用いられるパラメータの入力欄２３（以下、第１入力欄２３と記す。）と、最適化結果表示欄２５と、最適化における制約条件の入力欄２６（以下、第２入力欄２６と記す）とを含む。さらに、画面２１は、学習の実行をユーザが指示するためのボタン２４（以下、第１指示ボタン２４と記す。）と、最適化の実行をユーザが指示するためのボタン２７（以下、第２指示ボタン２７と記す。）とを含む。
【００２０】
図２は、表示制御部４によって表示される画面の例示であり、画面の態様は、図２に示す例に限定されない。例えば、図２では、学習の実行や最適化の実行をユーザがボタンによって指示する場合を例にして示しているが、これらの指示が他の態様で行われる画面であってもよい。
【００２１】
予測モデル表示欄２２は、学習された予測モデルに関する情報を表示する欄である。予測モデルは、被説明変数と説明変数との間の関係を示していて、その説明変数の関数で表される。また、本実施形態では、後述するように、学習部３は、被説明変数毎に、複数種類の学習アルゴリズムを用いて、複数種類の予測モデルを学習する。ここでは、説明を簡単にするために、被説明変数の種類が、「商品１の売上数」、「商品２の売上数」、「商品３の売上数」の３種類であるものとする。また、学習部３は、３種類の学習アルゴリズム（ここでは、回帰分析、ニューラルネットワークおよびサポートベクターマシンとする。）を用いて、学習アルゴリズム毎に予測モデルを学習するものとする。従って、学習部３は、商品１の売上数（Ｓ１とする。）に関して、回帰分析による予測モデル、ニューラルネットワークによる予測モデル、およびサポートベクターマシンによる予測モデルをそれぞれ学習する。学習部３は、他の被説明変数に関しても、同様に３種類の予測モデルを学習する。なお、学習部３が被説明変数毎に学習する予測モデルは３種類でなくてもよい。
【００２２】
予測モデル表示欄２２は、被説明変数を選択するためのタブ２２ａを含む。個々のタブと、個々の被説明変数は一対一に対応している。図２では、被説明変数「商品１の売上数」に対応するタブがユーザによって選択され、表示制御部４が、「商品１の売上数」に関して学習された３種類の予測モデルを予測モデル表示欄２２に表示している場合を例示している。なお、図２に示すｆａは回帰分析による予測モデルであり、ｆｂはニューラルネットワークによる予測モデルであり、ｆｃはサポートベクターマシンによる予測モデルであるものとする。図２では、Ｓ１＝ｆａ（Ｐ１，Ｐ２，Ｐ３，ｘ１，ｘ６）等のように模式的に予測モデルを示しているが、表示制御部４は、予測モデルとして具体的な関数を予測モデル表示欄２２に表示する。他のタブがユーザによって選択された場合、表示制御部４は、そのタブに対応する被説明変数に関して学習された３種類の予測モデルに関する情報を表示する。
【００２３】
予測モデル表示欄２２は、被説明変数毎に（換言すれば、タブ毎に）、３種類の予測モデルの中からユーザが１つの予測モデルを選択するためのユーザインタフェースを含む。図２では、このユーザインタフェースがラジオボタン２２ｂである場合を例示している。ユーザは、被説明変数毎に、表示されている３種類の予測モデルの中から最も適切な１つの予測モデルを判断し、ラジオボタン２２ｂを操作してその１つの予測モデルを選択する。このとき、ユーザは、被説明変数毎に、独立して予測モデルを選択してよい。例えば、ユーザは、「商品１の売上数」に関してニューラルネットワークによる予測モデルを選択し、「商品２の売上数」に関して回帰分析による予測モデルを選択し、「商品３の売上数」に関してサポートベクターマシンによる予測モデルを選択してもよい。
【００２４】
第１入力欄２３は、学習に用いられるパラメータをユーザが入力するための欄である。図２に示す例では、ユーザによって、予測モデルで用いられる説明変数の数として“５”が入力された場合を例示している。学習部３は、このパラメータを用いて、予測モデルで用いられる説明変数の数が５となるように、各予測モデルを学習する。なお、ここでは、学習に用いられるパラメータの例として、予測モデルで用いられる説明変数の数を例示したが、学習に用いられるパラメータは、本例に限定されない。例えば、「過去のどの期間の訓練データに基づいて学習を行うか」が、第１入力欄２３で指定されてもよい。
【００２５】
最適化結果表示欄２５は、最適化された目的変数の値を表示する欄である。本例では、「商品１の価格」、「商品２の価格」および「商品３の価格」が目的変数であるものとする。表示制御部４は、それらの最適化された結果を最適化結果表示欄２５に表示する。
【００２６】
第２入力欄２６は、最適化における制約条件をユーザが入力するための欄である。制約条件の内容は任意であり、例えば、ビジネス上の制約等が制約条件として入力される。例えば、図２に示す例において、Ｐ３は「商品３の価格」に該当する変数であり、Ｐ２は「商品２の価格」に該当する変数である。従って、第２入力欄２６に例示した「Ｐ３＞Ｐ２」は、「商品３の価格」は「商品２の価格」よりも高いという制約条件を示している。最適化部１０は、この制約条件を満たすように各目的変数の値を最適化する。なお、制約条件は上記の例に限定されない。例えば、商品１の売上数をＳ１とし、ノルマをｑとしたときに、“Ｓ１≧ｑ”という制約条件が第２入力欄２６に入力されてもよい。また、最適化の際に用いられるパラメータが第２入力欄２６に入力されてもよい。
【００２７】
第１指示ボタン２４は、学習の実行をユーザが指示するためのボタンである。第１指示ボタン２４がクリックされると、学習部３は、予測モデルを学習する。
【００２８】
第２指示ボタン２７は、最適化の実行をユーザが指示するためのボタンである。第２指示ボタン２７がクリックされると、目的関数生成部９および最適化部１０が順次、処理を実行する。
【００２９】
前述のように、予測モデル表示欄２２において、ユーザは、被説明変数毎に、表示されている３種類の予測モデルの中から最も適切な１つの予測モデルを判断し、その予測モデルを選択する。ユーザが最も適切な予測モデルを的確に判断できることが好ましい。そこで、表示制御部４は、予測モデルとして具体的な関数を直接表示するのではなく。図３に例示するように予測モデルに関する情報を表示してもよい。ただし、ここでは、予測モデルは、Ｙ＝ａ１×Ｘ１＋ａ２×Ｘ２＋・・・ａｎ×Ｘｎ＋ｃという形式で表されるものとする。Ｙは被説明変数であり、Ｘ１，Ｘ２，・・・，Ｘｎは説明変数である。ａ１，ａ２，・・・，ａｎは、個々の説明変数に対応する係数である。ｃは定数項である。
【００３０】
図３に示す例では、Ｐ１，Ｐ２，Ｐ３，ｘ１〜ｘ６が説明変数である。図３において、水平に示されたバーは、説明変数に対応する係数を表している。具体的には、バーが中心線より右側にあるか左側にあるかによって、係数の正負を表し、バーの長さによって係数の絶対値を示している。バーが中心線より右側にある場合、係数が正であることを表し、バーが中心線より左側にある場合、係数が負であることを表すものとする。図３に示すｆａでは、説明変数Ｐ１の係数は正であり、その係数の絶対値は、ｆａにおける他の説明変数の係数の絶対値よりも大きいことが分かる。また、図３では、バーの近傍に説明変数を表す記号を示す場合を例示しているが、個々のバーがどの説明変数に対応しているかを他の態様で示してもよい。図３に例示する表示形式では、ユーザは、重要な説明変数が抜け落ちているか否か、また、重要な説明変数の係数の値が不適当な値になっているか否かを確認しやすくなり、最も適切な予測モデルを的確に判断しやすくなる。重要な説明変数の係数の値が不適当な値になっている場合とは、例えば、正であるべき係数が負になっていたり、負であるべき係数が正になっていたりする場合や、係数の絶対値が極端に大きくなっていたり、極端に小さくなっていたりする場合等である。
【００３１】
また、ユーザが最も適切な予測モデルを的確に判断しやすくするために、表示制御部４は、過去の被説明変数の値および説明変数の値を含むテストデータを用いて、予測モデル毎に被説明変数の値を算出し、その被説明変数の値と過去の被説明変数の値との差を可視化してもよい。また、表示制御部４は、散布図を用いて差を可視化してもよい。図４は、このような散布図の表示欄２２ｃを含む予測モデル表示欄２２の例を示す説明図である。散布図の表示欄２２ｃにおいて、テストデータから算出した被説明変数の値を予測値と記し、過去の被説明変数の値を実績値と記している。また、散布図の表示欄２２ｃにおいて、三角形のマーカは、表示されている１番目の予測モデルで算出された予測値と実績値との関係を示しているものとする。丸のマーカは、表示されている２番目の予測モデルで算出された予測値と実績値との関係を示しているものとする。四角形のマーカは、表示されている３番目の予測モデルで算出された予測値と実績値との関係を示しているものとする。マーカが散布図中に示している破線に近いほど、予測値と実績値との差が小さいことになる。従って、例えば、図４に例示する散布図が表示された場合、丸のマーカが破線に近いことから、ユーザは、表示されている２番目の予測モデルが最も適切であると判断できる。なお、タブの選択が切り替えられると、表示制御部４は、散布図を表示し直す。
【００３２】
また、表示制御部４は、図３に示す表示態様において、図４に例示する散布図の表示欄２２ｃを表示してもよい。
【００３３】
また、ユーザが最も適切な予測モデルを的確に判断しやすくするために、表示制御部４は、交差検証を行ってもよい。
【００３４】
訓練データ記憶部２は、学習部３が予測モデルの学習に用いる各種訓練データを記憶する。本実施形態では、訓練データ記憶部２は、最適化部１０が最適化結果として出力する変数（目的変数）について、過去に取得された実績データを記憶する。例えば、最適化部１０が複数の商品の価格を最適化しようとする場合、訓練データ記憶部２は、過去に取得された実績データとして、説明変数に対応する各商品の価格や、被説明変数に対応する各商品の売上数を記憶する。また、訓練データ記憶部２は、上記以外の外的情報（例えば、天気や暦情報等）も記憶する。これらの外的情報も説明変数となり得る。訓練データ記憶部２は、例えば、磁気ディスク装置により実現される。
【００３５】
なお、前述のテストデータは、例えば、訓練データとは別に、訓練データ記憶部２に記憶させておけばよい。
【００３６】
学習部３は、学習の実行を指示する操作が行われると（本例では、第１指示ボタン２４がクリックされると）、訓練データ記憶部２に記憶された各種訓練データに基づいて、機械学習により、設定された被説明変数毎に予測モデルを学習する。このとき、学習部３は、被説明変数毎に、複数種類の学習アルゴリズムを用いて、複数種類の予測モデルを学習する。また、学習部３は、第１入力欄２３に入力されたパラメータを用いて各予測モデルを学習する。例えば、前述のように、予測モデルで用いられる説明変数の数として“５”が指定された場合、学習部３は、予測モデルで用いられる説明変数の数が５となるように、各予測モデルを学習する。
【００３７】
本実施形態で学習される予測モデルは、最適化部１０が最適化結果として出力する変数（目的変数）を説明変数として含む関数で表される。すなわち、目的変数は、予測モデルの説明変数になっている。例えば、「商品１の価格」、「商品２の価格」および「商品３の価格」が目的変数Ｐ１，Ｐ２，Ｐ３であるとする。学習部３は、例えば、各予測モデルにおいて、Ｐ１，Ｐ２，Ｐ３を説明変数として用いる。学習部３は、さらに他の説明変数を、自動的に決定する。このとき、学習部３は、訓練データ記憶部２に記憶されている外的情報に含まれている種々の項目（例えば、天候等）の中から説明変数を決定すればよい。上記のように、パラメータとして、予測モデルで用いられる説明変数の数が定められている場合、学習部３は、その数に合わせて、予測モデルで用いる説明変数を決定する。Ｐ１，Ｐ２，Ｐ３以外の説明変数は、予測モデル同士で異なっていてもよい。
【００３８】
上記の複数種類の学習アルゴリズムは、特に限定されない。例えば、前述の例では、回帰分析、ニューラルネットワークおよびサポートベクターマシンを例示したが、学習部３は、予測モデルの学習方法の一つとして、特許文献１に記載の方法を採用してもよい。また、学習アルゴリズムの種類の数も限定されない。
【００３９】
ここで、最適化対象のインデックスの集合を｛ｍ｜ｍ＝１，・・・，Ｍ｝と記す。本実施形態の例では、最適化対象は各商品の価格であり、Ｍは商品数に対応する。また、各最適化対象ｍについて予測する内容をＳｍと記す。本実施形態の例では、Ｓｍは、商品ｍの売上数に対応する。また、各最適化対象ｍについて最適化する内容（すなわち、最適化の目的変数）をＰｍまたはＰ´ｍと記す。本実施形態の例では、Ｐｍは、商品ｍの価格に対応する。線形回帰（回帰分析の一種）を使用してＳｍ（例えば、売上数）とＰｍ（例えば、価格）との依存関係をモデル化すると、Ｓｍを予測する予測モデルは、例えば、以下に例示する式１で表される。
【００４０】
【数１】
2017094207.tif 000003
【００４１】
式１において、ｆｄは特徴生成関数であり、Ｐ´ｍに対する変換を表わす。また、Ｄは特徴生成関数の数を示し、Ｐ´ｍに対して行われる変換の数を示す。ｆｄの内容は任意であり、例えば、線形変換を行う関数であってもよく、対数や多項式のような非線形変換を行う関数であってもよい。上述するように、Ｐｍが商品ｍの価格であり、Ｓｍが商品ｍの売上数を示す場合、ｆｄは、例えば、価格に関する売上の反応を表わす。売上の反応とは、例えば、ある程度の値下げをすると売上の反応が良くなる、または、反応が悪くなる、値下げに応じて売上数が二乗になる、等が挙げられる。
【００４２】
また、式１において、ｇｄは、外的特徴（上述する例の場合、天候等）であり、Ｄ´は、外的特徴の数である。なお、外的特徴に関しては、事前に変換をしておいてもよい。また、式１におけるα、β、γは、それぞれ学習部３による機械学習の結果得られる回帰式の定数項および係数である。これまでの説明から明らかである通り、予測モデルは、被説明変数（Ｓｍ）および説明変数（Ｐｍや、各種外的特徴等）に基づいて学習され、被説明変数と説明変数との間の関係を示し、説明変数の関数で表されるものである。
【００４３】
記憶部６は、ユーザによって被説明変数毎に選択された各予測モデル、および第２入力欄２６に入力された最適化における制約条件や、最適化の際に用いられるパラメータを記憶する。表示制御部４は、最適化の実行を指示する操作が行われると（本例では、第２指示ボタン２７がクリックされると）、ユーザによって被説明変数毎に選択された各予測モデルと、第２入力欄２６に入力された制約条件やパラメータ（最適化の際に用いられるパラメータ）を記憶部６に記憶させる。また、記憶部６は、外的情報入力部７が入力した外的情報も記憶する。記憶部６は、例えば、磁気ディスク装置により実現される。
【００４４】
外的情報入力部７は、ユーザによって被説明変数毎に選択される予測モデル並びに最適化の制約条件およびパラメータ以外で、最適化に用いられる外的情報を入力する。例えば、上述の例において、ある日の価格を最適化しようとする場合、外的情報入力部７は、その日の天気（予測された天気）に関する情報を入力してもよい。また、例えば、その日の来店人数を予測できるような場合、外的情報入力部７は、その日の来店人数に関する情報を入力してもよい。この来店人数の例の様に、外部情報は、機械学習による予測モデルによって生成されたものでもよい。ここで入力される情報は、例えば、予測モデルの説明変数に適用される。
【００４５】
外的情報入力部７が入力する情報は、例えば、ユーザが事前に用意しておけばよい。
【００４６】
問題記憶部８は、最適化により解こうとする数理計画問題を記憶する。数理計画問題は、ユーザ等によって予め問題記憶部８に記憶される。なお、数理計画問題が、第２入力欄２６に入力され、第２指示ボタン２７がクリックされたときに、表示制御部４が、その数理計画問題を問題記憶部８に記憶させる構成であってもよい。ここでは、問題記憶部８が予め数理計画問題を記憶している場合を例にして説明する。問題記憶部８は、例えば、磁気ディスク装置により実現される。
【００４７】
なお、本実施形態では、数理計画問題の中で記述される目的関数の“形”は、予測モデルがパラメータになるように定義される。本実施形態の例では、問題記憶部８は、複数の商品の売上高の総和を最大化するための数理計画問題を記憶する。この場合、最適化部１０は、複数の商品の売上高の総和を最大化するように各商品の価格を最適化する。各商品の売上高は、商品の価格と予測モデルで予測される売上数の積で定義できる。従って、各商品の売上高の総和を表す目的関数の“形”は、以下に示す式２のように表される。
【００４８】
【数２】
2017094207.tif 000004
【００４９】
式２は、商品の価格と予測モデルで予測される売上数の積の合計を式として示したものであるが、売上数Ｓｍを表す予測モデルは代入されていない。そのため、式２を目的関数の“形”と称している。
【００５０】
本例の場合、問題記憶部８に、以下の式３に示す数理計画問題を予め記憶させておけばよい。
【００５１】
【数３】
2017094207.tif 000005
【００５２】
式３は、各商品の売上高の総和を最大化するという数理計画問題を表している。式３には、式２で示した目的関数の“形”が記述されている。
【００５３】
目的関数生成部９は、数理計画問題の目的関数を生成する。具体的には、目的関数生成部９は、予測モデルをパラメータとする数理計画問題の目的関数を生成する。目的関数生成部９は、問題記憶部８に記憶された数理計画問題に記述されている目的関数の“形”（上記の例では式２）に、ユーザによって被説明変数毎に選択された予測モデルを代入することにより目的関数を生成する。ここでは、説明を簡単にするために、式２におけるＭの値が３であるとする（すなわち、商品の数が３であるとする）。この場合、ユーザは、「商品１の売上数Ｓ１」、「商品２の売上数Ｓ２」、「商品３の売上数Ｓ３」という被説明変数毎に、その被説明変数を表す具体的な予測モデル（関数）を選択し、Ｓ１，Ｓ２，Ｓ３に対応する予測モデル（関数）が記憶部６に記憶されている。目的関数生成部９は、それらの各予測モデルを、式２に示す目的関数の“形”に代入することによって、目的変数を生成する。
【００５４】
最適化部１０は、記憶部６に記憶されている各種情報（第２入力欄２６を介して入力された最適化の制約条件およびパラメータ並びに外的情報入力部７が入力した外的情報）に基づいて、目的とする内容の最適化を行う。このとき、最適化部１０は、目的関数の値が最適になるように、目的変数の値を最適化する。目的変数等に制約条件が定められているため、最適化部１０は、制約条件を満たしつつ、目的関数の値が最適（例えば、最大、最小等）になるように、目的変数の値を最適化する。
【００５５】
本例では、問題記憶部８に記憶された数理計画問題が式３のように定められているので、最適化部１０は、制約条件を満たしつつ、目的関数の値が最大になるように目的変数の値を最適化する。最適化部１０は、式３で特定される数理計画問題を解くことで、目的変数に該当する個々の商品の価格Ｐ１，Ｐ２，・・・，ＰＭを最適化する。すなわち、最適化部１０は、各商品の売上高の総和を最大にするような、各商品の価格を導出する。
【００５６】
最適化部１０は、各目的変数の値を最適化すると、その各目的変数の値を記憶部６に記憶させる。すると、表示制御部４は、ディスプレイ装置５上に表示されている画面２１内の最適化結果表示欄２５に、各目的変数の最適値を表示する。
【００５７】
学習部３、表示制御部４、外的情報入力部７、目的関数生成部９および最適化部１０は、例えば、プログラム（情報処理用プログラム）に従って動作するコンピュータのＣＰＵによって実現される。この場合、ＣＰＵは、例えば、コンピュータのプログラム記憶装置（図１において図示略）等のプログラム記録媒体からプログラムを読み込み、そのプログラムに従って、学習部３、表示制御部４、外的情報入力部７、目的関数生成部９および最適化部１０として動作すればよい。
【００５８】
また、学習部３、表示制御部４、外的情報入力部７、目的関数生成部９および最適化部１０が、それぞれ専用のハードウェアで実現されていてもよい。学習部３、表示制御部４、外的情報入力部７、目的関数生成部９および最適化部１０は、それぞれ電気回路構成（circuitry ）により実現されていてもよい。ここで、電気回路構成（circuitry ）とは、単一のデバイス（single device ）、複数のデバイス（multiple devices）、チップセット（chipset ）またはクラウド（cloud ）を概念的に含む文言である。
【００５９】
また、本発明の情報処理システム１は、２つ以上の物理的に分離した装置が有線または無線で接続されている構成であってもよい。
【００６０】
次に、本発明の処理経過を説明する。図５および図６は、本発明の処理経過の例を示すフローチャートである。
【００６１】
最初に、表示制御部４は、画面２１をディスプレイ装置５上に表示する。ただし、初期状態では、予測モデル表示欄２２、最適化結果表示欄２５に予測モデルや最適化結果は表示されていない。また、第１入力欄２３および第２入力欄２６は、空欄となっている。
【００６２】
ユーザは、学習に用いられるパラメータを第１入力欄２３に入力する。このユーザの操作に応じて、表示制御部４は、第１入力欄２３を介して、学習に用いられるパラメータの入力を受け付ける（ステップＳ１１）。表示制御部４は、入力されたパラメータを第１入力欄２３内に表示する。
【００６３】
ユーザが第１指示ボタン２４をクリックしない場合（ステップＳ１２のＮｏ）、情報処理システム１は、第１指示ボタン２４がクリックされるまで待つ。この間、第１入力欄２３に入力されたパラメータがユーザによって修正されてもよい。
【００６４】
ユーザが第１指示ボタン２４をクリックした場合（ステップＳ１２のＹｅｓ）、学習部３は、第１入力欄２３に入力されたパラメータと、訓練データ記憶部２に記憶されている各種訓練データに基づいて、予め設定されている被説明変数毎に予測モデルを学習する（ステップＳ１３）。このとき、学習部３は、被説明変数毎に、複数種類の学習アルゴリズムを用いて、複数種類の予測モデルを学習する。
【００６５】
次に、表示制御部４は、被説明変数毎に学習された予測モデルに関する情報を表示する（ステップＳ１４）。被説明変数毎に複数種類の予測モデルが学習されているので、表示制御部４は、被説明変数毎に複数の予測モデルを表示する。
【００６６】
ステップＳ１４において、表示制御部４は、例えば、図２に例示するように、タブ２２ａおよびラジオボタン２２ｂを含む予測モデル表示欄２２に予測モデルに関する情報を表示すればよい。個々のタブと、個々の被説明変数は一対一に対応している。例えば、表示制御部４は、ユーザによって１つのタブが選択されると、そのタブに対応する被説明変数に関して学習された複数の予測モデルを予測モデル表示欄２２に表示する。タブの選択が切り替えられると、表示制御部４は、新たに選択されたタブに対応する被説明変数に関して学習された複数の予測モデルを予測モデル表示欄２２に表示すればよい。
【００６７】
なお、表示制御部４は、図３に例示する態様で予測モデルに関する情報を表示してもよい。また、表示制御部４は、前述の散布図を予測モデルとともに表示してもよい（図４参照）。
【００６８】
ユーザは、被説明変数毎に（換言すれば、タブ毎に）、表示されている複数の予測モデルの中から最も適切な１つの予測モデルを判断し、ラジオボタン２２ｂを操作してその１つの予測モデルを選択する。このユーザの操作に応じて、表示制御部４は、被説明変数毎に、１つの予測モデルの選択を受け付ける（ステップＳ１５）。なお、本実施形態では、予測モデルの中からユーザが１つの予測モデルを選択するためのユーザインタフェースがラジオボタンである場合を例示したが、このユーザインタフェースの形式はラジオボタン以外であってもよい。
【００６９】
続いて、ユーザは、第２入力欄２６に、最適化における制約条件を入力する。このユーザの操作に応じて、表示制御部４は、第２入力欄２６を介して、最適化における制約条件の入力を受け付ける（ステップＳ１６）。表示制御部４は、入力された制約条件を第２入力欄２６内に表示する。また、ステップＳ１６において、ユーザは、最適化の際に用いられるパラメータも第２入力欄２６に入力してもよい。この場合、表示制御部４は、このパラメータの入力も同様に受け付け、そのパラメータを第２入力欄２６内に表示すればよい。
【００７０】
また、外的情報入力部７は、外的情報を入力し、記憶部６に記憶させる（ステップＳ１７）。
【００７１】
ステップＳ１７の後、ユーザが第２指示ボタン２７をクリックしない場合（ステップＳ１８のＮｏ）、情報処理システム１は、第２指示ボタン２７がクリックされるまで待つ。この間、ユーザによって予測モデルが選択し直されたり、第２入力欄２６に入力された制約条件等がユーザによって修正されたりしてもよい。
【００７２】
ユーザが第２指示ボタン２７をクリックした場合（ステップＳ１８のＹｅｓ）、表示制御部４は、被説明変数毎に選択された予測モデル、および第２入力欄２６に入力された制約条件を記憶部６に記憶させる（ステップＳ１９）。最適化の際に用いられるパラメータも入力されている場合、表示制御部４は、そのパラメータも記憶部６に記憶させる。
【００７３】
次に、目的関数生成部９は、被説明変数毎に選択された予測モデルを記憶部６から読み込むとともに、問題記憶部８に記憶されている数理計画問題を読み込む。この数理計画問題は、例えば、式３に例示するように表され、数理計画問題には式２に例示する目的関数の“形”が記述されている。目的関数生成部９は、式２に例示する目的関数の“形”に、被説明変数毎に選択された具体的な予測モデルを代入することによって、目的関数を生成する（ステップＳ２０）。
【００７４】
最適化部１０は、制約条件や外的情報を記憶部６から読み込み、その制約条件を満たすようにする理計画問題を解くことで、各目的変数の値の最適値を導出する（ステップＳ２１）。例えば、式３に示すように、各商品の売上高の総和を最大化するという数理計画問題が定められている場合、最適化部１０は、制約条件のもとで、ステップＳ２０で生成された目的関数が最大になるような目的変数Ｐ１，Ｐ２，・・・，ＰＭの値を導出する。
【００７５】
最適化部１０は、導出した各目的変数の最適値を記憶部６に記憶させる。表示制御部４は、各目的変数の最適値を記憶部６から読み込み、最適化結果表示欄２５に表示する。この結果、ユーザは、各目的変数の最適値（例えば、売上高の総和を最大化する各商品の価格）を把握することができる。
【００７６】
上記の処理経過において、ユーザは、ステップＳ１４で表示された予測モデルの中に適切な予測モデルがないと判断した場合、学習に用いるパラメータを見直し、新たなパラメータを第１入力欄２３に入力してもよい。その場合、情報処理システム１は、再度、ステップＳ１１から処理を実行し直せばよい。すなわち、情報処理システム１は、ユーザが被説明変数毎に適切な予測モデルが得られたと判断するまで、予測モデルの学習を繰り返すことができる。
【００７７】
また、ユーザは、ステップＳ２１で表示された各目的変数の最適値が適切な値でないと判断した場合にも、学習に用いるパラメータを見直し、新たなパラメータを第１入力欄２３に入力してもよい。その場合、情報処理システム１は、再度、ステップＳ１１から処理を実行し直せばよい。あるいは、ユーザは、予測モデル表示欄２２で、被説明変数毎に予測モデルを１つ選択する操作をやり直してもよい。この場合、情報処理システム１は、再度、ステップＳ１５から処理を実行し直せばよい。あるいは、ユーザは、最適化における制約条件を見直し、新たな制約条件を第２入力欄２６に入力してもよい。この場合、情報処理システム１は、再度、ステップＳ１６から処理を実行し直せばよい。すなわち、情報処理システム１は、各目的変数の最適値として適切な値が得られたとユーザが判断するまで、学習あるいは最適化を繰り返すことができる。
【００７８】
本発明によれば、目的関数生成部９が、予め定められた目的関数の“形”に、予測モデルを代入することによって目的関数を生成する。そして、最適化部１０は、その目的関数の値が最適になるように、目的変数の値を最適化する。すなわち、最適化部１０は、予測モデルを引数とする目的関数について、目的関数の値が最適になるように、目的変数の値を最適化する。従って、本発明によれば、数理最適化で観測されない入力データが存在する状況であっても、適切に最適化を行うことができる。
【００７９】
また、本発明によれば、表示制御部４は、被説明変数毎に学習された予測モデルを予測モデル表示欄２２に表示する。従って、学習した予測モデルが適切であるか否かをユーザに確認させることができる。従って、ユーザは、例えば、経験的に知られている現象が予測モデルに反映されているか否かを確認できる。また、ユーザは、最適化後に、得られた最適解がなぜ最適になるのかについて検討することができる。
【００８０】
また、本実施形態では、学習部３が、被説明変数毎に複数種類の予測モデルを学習し、表示制御部４は、被説明変数毎に複数種類の予測モデルを予測モデル表示欄２２に表示する。従って、ユーザは、被説明変数毎に、複数の予測モデルの中から最も適切であると判断した予測モデルを選択することができる。この結果、目的変数の最適値の精度を向上させることができる。また、例えば、いずれかの被説明変数において、全ての予測モデルが適切でないと判断した場合であっても、上記のように、パラメータを見直して、学習部３に再度、予測モデルの学習を実行させることができる。
【００８１】
また、ユーザは、いずれかの目的変数の最適値が適切でないと判断した場合にも、上記のように、学習に用いるパラメータを見直したり、被説明変数毎に予測モデルを１つ選択する操作をやり直したり、あるいは、最適化における制約条件を見直したりすることで、情報処理システム１に再度、最適化を実行させることができる。
【００８２】
次に、本実施形態の変形例について説明する。
上記の実施形態では、学習部３が、被説明変数毎に、複数種類の学習アルゴリズムを用いて、複数種類の予測モデルを学習する。学習アルゴリズムが１つに限定され、学習部３が、被説明変数毎に１つの予測モデルを学習してもよい。この場合、表示制御部４は、予測モデル表示欄２２において、被説明変数毎に（タブ毎に）、１つの予測モデルに関する情報を表示すればよい。また、この場合、表示制御部４は、予測モデル表示欄２２内にラジオボタン２２ｂを表示しなくてよく、ステップＳ１５の処理も実行しなくてよい。また、第１指示ボタン２４がクリックされた場合、表示制御部４は、被説明変数毎に作成された予測モデルをそれぞれ記憶部６に記憶させればよい。
【００８３】
また、学習部３は、同じ学習アルゴリズムを用いて、複数の予測モデルを学習してもよい。例えば、学習部３は、２０１５年１１月の訓練データを用いて、ある学習アルゴリズムによって予測モデルを学習するとともに、２０１５年１２月の訓練データを用いて、同一の学習アルゴリズムによって別の予測モデルを学習してもよい。また、例えば、学習部３は、同じ学習アルゴリズムおよび同じ訓練データを用いて、学習区間における残差が小さくなることを優先して予測モデルを学習するとともに、汎化性能を重視して別の予測モデルを学習してもよい。
【００８４】
また、表示制御部４は、予測モデル表示欄２２において、表示した予測モデルに対するユーザの編集操作を受け付けてもよい。この場合、ユーザは、予測モデル表示欄２２に表示された予測モデルを編集することができる。従って、ユーザは、パラメータを見直して学習部３に再度、学習を実行させなくても、表示された予測モデルの説明変数の係数や定数項を調整することができる。編集操作が行われた予測モデルが選択され、第１指示ボタン２４がクリックされた場合、表示制御部４は、編集後の予測モデルを記憶部６に記憶させればよい。
【００８５】
また、上記の実施形態では、学習の実行や最適化の実行をユーザがボタンによって指示する場合を例示した。学習の実行や最適化の実行を指示するためのユーザインタフェースは、第１指示ボタン２４および第２指示ボタン２７以外の形式であってもよい。例えば、表示制御部４は、コマンドラインユーザインタフェースを画面２１とともに表示してもよい。この場合、情報処理システム１は、コマンドラインユーザインタフェースに、学習実行指示を示す所定の文字列が入力された場合に、ステップＳ１３以降の処理を実行し、最適化実行指示を示す所定の文字列が入力された場合に、ステップＳ１９移行の処理を実行すればよい。
【００８６】
なお、図２では、目的変数の数が３つ（「商品１の価格」、「商品２の価格」および「商品３の価格」）である場合を例示したが、値を最適化しようとする目的変数の数は特に限定されない。また、予測対象も、商品に限定されず、例えば、サービス等であってもよい。
【００８７】
複数の商品の売上数の予測に基づいて複数の商品の売上高の総和を最大にするように複数の商品の価格を最適化する場合の本発明の適用例について、商品がサンドイッチである場合を例にして説明する。ここでは、商品（サンドイッチ）の種類を符号Ａ，Ｂ，ＣおよびＤで区別するものとする。
【００８８】
例えば、ある小売店で、将来のある日のサンドイッチ群の売上高の総和を最大にする場合を考える。サンドイッチ群は、サンドイッチＡ，Ｂ，ＣおよびＤの４種類のサンドイッチを含むとする。この場合、本発明の情報処理システム１は、サンドイッチ群の売上高の総和、すなわち、サンドイッチＡ，Ｂ，ＣおよびＤの４種類のサンドイッチの売上高の総和が最大化されるように、サンドイッチＡ，Ｂ，ＣおよびＤの価格を最適化するという問題を解くことになる。
【００８９】
訓練データ記憶部２は、過去の各サンドイッチの売上数および過去の各サンドイッチの価格を記憶する。訓練データ記憶部２は、例えば、過去の天気や暦情報等の外的情報も記憶する。
【００９０】
学習部３は、訓練データ記憶部２に記憶された各種訓練データに基づいて、個々のサンドイッチの種類毎に、複数種類の学習アルゴリズムを用いて、複数種類の予測モデル（本例では、売上数の予測モデル）を学習する。
【００９１】
ここでは、サンドイッチＡの売上数の予測モデルを例にして、各サンドイッチの価格を示す説明変数を、売上数の予測モデルに含めることを説明する。サンドイッチの売上数は、サンドイッチＡ自体の価格の影響を受けると考えられる。また、サンドイッチＡの売上数は、サンドイッチＡと共に商品棚に陳列されるサンドイッチ、すなわちサンドイッチＢ，ＣおよびＤの価格の影響も受けると考えられる。その小売店に来店する顧客は、商品棚に同時に陳列されるサンドイッチＡ，Ｂ，ＣおよびＤのうちから、好ましいサンドイッチを選択的に購入すると考えられるからである。
【００９２】
この状況で、例えば、サンドイッチＢが大安売りされている日を想定する。普段はサンドイッチＡを好んで購入する顧客であっても、このような日にはサンドイッチＡではなくサンドイッチＢを選択して購入する可能性がある。顧客（人間）が一度に食することができるサンドイッチの量には限りがあるので、一般的な顧客がサンドイッチＡ，Ｂの両方を購入しようと考える可能性は低いからである。
【００９３】
この場合、結果的には、サンドイッチＢが安売りされていることにより、サンドイッチＡの売上数が減ることになる。このような関係は、カニバリゼーション（市場の共食い関係）と呼ばれる。
【００９４】
すなわち、カニバリゼーションとは、ある商品の価格を下げると、その商品の売上数が上がる一方で、他の競合商品（性質や特徴が互いに類似した複数の商品）の売上数が減少するような関係である。
【００９５】
従って、学習部３は、サンドイッチＡの売上数の予測モデルを複数種類学習する場合、いずれの予測モデルも、説明変数として、サンドイッチＡの価格ＰＡ、サンドイッチＢの価格ＰＢ、サンドイッチＣの価格ＰＣおよびサンドイッチＤの価格ＰＤを含む関数として学習する。ただし、その他の説明変数については、学習部３が、予測モデル毎に、外的情報に含まれている種々の項目（例えば、天候等）の中から適宜、自動的に選択する。
【００９６】
サンドイッチＢの売上数の予測モデルを複数種類学習する場合、サンドイッチＣの売上数の予測モデルを複数種類学習する場合、およびサンドイッチＤの売上数の予測モデルを複数種類学習する場合に関しても、同様である。
【００９７】
これまでの説明から明らかなように、予測モデルは、被説明変数（本例では、サンドイッチの売上数）および説明変数（本例では、着目しているサンドイッチの価格および競合するサンドイッチの価格等）に基づいて学習され、被説明変数と説明変数との間の関係を示し、説明変数の関数で表される。
【００９８】
図２に例示する画面を介して、情報処理システム１は、サンドイッチＡ，Ｂ，ＣおよびＤそれぞれについて、ユーザから、１つの予測モデルの選択を受け付ける。さらに、情報処理システム１は、図２に例示する画面を介して、最適化の制約条件の入力を受け付け、第２指示ボタン２７がクリックされる。すると、目的関数生成部９は、数理計画問題（本例では式３）の中で記述される目的関数の“形”（本例では式２）に、サンドイッチの種類毎に選択された予測モデルを代入することによって、最適化問題の目的関数を生成する。
【００９９】
そして、最適化部１０は、そのように生成された、予測モデルを引数とする目的関数について、制約条件のもとでその目的関数を最適化する目的変数の値（すなわちＰＡ，ＰＢ，ＰＣおよびＰＤの値）を算出する。
【０１００】
以上の説明では、複数の商品の売上高の総和を最大にするように複数の商品の価格を最適化する場合を示したが、複数の商品の売上数の総和、あるいは、利益を最大にするように、複数の商品の価格を最適化する場合にも本発明を適用できる。例えば、利益を最大にするように各商品の価格を最適化する場合、利益を表す目的関数の“形”が記述されているとともに、利益を最大化するということを示す数理計画問題を問題記憶部８に記憶させておけばよい。
【０１０１】
また、本発明の他の適用例として、第１の適用例から第５の適用例を以下に示す。
【０１０２】
第１の適用例として、商品の棚割りの最適化を説明する。この場合、学習部３は、商品毎に、着目している商品ｍの売上数Ｓｍの予測モデルを、複数種類生成する。このとき、学習部３は、個々の商品の棚の位置を示す各説明変数を含む予測モデルを複数種類生成する。その他の説明変数に関しては、学習部３が適宜、自動的に選択する。
【０１０３】
本例における数理計画問題は、例えば、式３で表される。
【０１０４】
ユーザから、商品毎に１つの予測モデルの選択を受け付け、さらに、最適化の制約条件の入力を受け付け、第２指示ボタン２７がクリックされると、目的関数生成部９は、目的関数を生成し、最適化部１０は、その目的関数を最大にするような目的変数の値（各商品の棚の位置）を求めればよい。
【０１０５】
第２の適用例として、ホテルの価格の最適化を説明する。この適用例の場合、売上高または利益を最大化することが目的であるため、目的関数は、売上高または利益を算出する関数で表される。目的変数として、例えば、ホテルの各部屋の利用プランの設定料金が挙げられる。前述の小売の例と比較すると、小売の例で示した「サンドイッチ」が、本適用では、例えば、「シングルルームの朝食付きプラン」に対応する。また、外部情報として、例えば、天候、季節、ホテルの周辺で行われるイベント等が挙げられる。
【０１０６】
第３の適用例として、ホテル価格と在庫の最適化を説明する。この適用例の場合も、売上高または利益を最大化することが目的であるため、目的関数は、売上高または利益を算出する関数で表される。目的変数には、価格および在庫を考慮した内容が選択される。例えば、第１の目的変数として、各プランで利用される部屋をどの時期にどのくらいの料金で販売するかを表す変数、第２の目的変数として、各プランで利用される部屋をどの時期に何部屋販売するかを表す変数、等が挙げられる。また、第２の適用例と同様、外部情報として、例えば、天候、季節、ホテルの周辺で行われるイベント等が挙げられる。
【０１０７】
第４の適用例として、航空券の価格と在庫の最適化を説明する。この適用例の場合も、売上高または利益を最大化することが目的であるため、目的関数は、売上高または利益を算出する関数で表される。目的変数も、第３の適用例と同様、価格および在庫を考慮した内容が選択される。各航空券が、目的地までのルートや座席の種類（クラス）を表すとする。この場合、例えば、第１の目的変数として、各航空券をどの時期にどのくらいの料金で販売するかを表す変数、第２の目的変数として、各航空券をどの時期に何枚販売するかを表す変数、等が挙げられる。また、外部情報として、例えば、季節や開催されるイベント等が挙げられる。
【０１０８】
第５の適用例として、各駐車場の駐車料金の最適化を説明する。この適用例の場合も、売上高または利益を最大化することが目的であるため、目的関数は、売上高または利益を算出する関数で表される。目的変数として、例えば、時間帯および場所別の駐車料金が挙げられる。また、外部情報として、例えば、周辺の駐車上の駐車料金、ロケーション情報（住宅地、オフィス街、駅からの距離等）が挙げられる。
【０１０９】
なお、本発明によるサービスは、ＳａａＳ（Software as a Service）形式で提供され得る。
【０１１０】
図７は、本発明の実施形態に係るコンピュータの構成例を示す概略ブロック図である。コンピュータ１０００は、ＣＰＵ１００１と、主記憶装置１００２と、補助記憶装置１００３と、インタフェース１００４と、ディスプレイ装置１００５と、入力デバイス１００６とを備える。
【０１１１】
本発明の情報処理システムは、コンピュータ１０００に実装される。本発明の情報処理システムの動作は、プログラム（情報処理用プログラム）の形式で補助記憶装置１００３に記憶されている。ＣＰＵ１００１は、プログラムを補助記憶装置１００３から読み出して主記憶装置１００２に展開し、そのプログラムに従って、上記の処理を実行する。
【０１１２】
補助記憶装置１００３は、一時的でない有形の媒体の一例である。一時的でない有形の媒体の他の例として、インタフェース１００４を介して接続される磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、半導体メモリ等が挙げられる。また、このプログラムが通信回線によってコンピュータ１０００に配信される場合、配信を受けたコンピュータ１０００がそのプログラムを主記憶装置１００２に展開し、上記の処理を実行してもよい。
【０１１３】
また、プログラムは、前述の処理の一部を実現するためのものであってもよい。さらに、プログラムは、補助記憶装置１００３に既に記憶されている他のプログラムとの組み合わせで前述の処理を実現する差分プログラムであってもよい。
【０１１４】
次に、本発明の概要について説明する。図８は、本発明の情報処理システムの概要を示すブロック図である。本発明の情報処理システムは、学習部７１と、可視化部７２と、最適化部７３とを備える。
【０１１５】
学習部７１（例えば、学習部３）は、被説明変数および説明変数に基づいて、被説明変数と説明変数との間の関係を示し説明変数の関数で表される予測モデルを学習する。
【０１１６】
可視化部７２（例えば、表示制御部４）は、その予測モデルを可視化する。
【０１１７】
最適化部７３（例えば、最適化部１０）は、ユーザからの操作を受け付けたことに応じて、可視化部７２によって可視化された予測モデルを引数とする目的関数について、制約条件のもとで当該目的関数を最適化する目的変数を算出する。
【０１１８】
そのような構成によって、数理最適化で観測されない入力データが存在する状況であっても、適切に最適化を行うことができる。
【０１１９】
また、学習部７１が、被説明変数毎に、複数種類の学習アルゴリズムを用いて複数種類の予測モデルを学習し、可視化部７２が、被説明変数毎に、その複数種類の予測モデルを可視化し、ユーザによる予測モデルの選択を受け付け、最適化部７３が、ユーザによって被説明変数毎に選択された予測モデルを引数とする目的関数について、制約条件のもとで当該目的関数を最適化する目的変数を算出してもよい。
【０１２０】
また、可視化部７２が、過去の被説明変数の値および説明変数の値を含むテストデータを用いて、予測モデル毎に被説明変数の値を算出し、当該被説明変数の値と過去の被説明変数の値との差を可視化してもよい。
【０１２１】
また、可視化部７２が、可視化した予測モデルに対するユーザの編集操作を受け付けてもよい。
【０１２２】
また、学習部７１が、予測モデルの学習を指示する操作をユーザから受け付けたことに応じて、予測モデルを学習してもよい。
【０１２３】
以上、実施形態を参照して本願発明を説明したが、本願発明は、上記の実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【０１２４】
この出願は、２０１５年１１月３０日に出願された米国仮出願62/260,764を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【産業上の利用の可能性】
【０１２５】
本発明は、学習された予測モデルに基づいて最適化を行う情報処理システムに好適に適用される。
【符号の説明】
【０１２６】
１  情報処理システム
２  訓練データ記憶部
３  学習部
４  表示制御部
５  ディスプレイ装置
６  記憶部
７  外的情報入力部
８  問題記憶部
９  目的関数生成部
１０  最適化部
【図１】
2017094207.tif 000006
【図２】
2017094207.tif 000007
【図３】
2017094207.tif 000008
【図４】
2017094207.tif 000009
【図５】
2017094207.tif 000010
【図６】
2017094207.tif 000011
【図７】
2017094207.tif 000012
【図８】
2017094207.tif 000013
【国際調査報告】
2017094207.tif 000014
2017094207.tif 000015
2017094207.tif 000016
2017094207.tif 000017