(57)【特許請求の範囲】
【請求項１】
各状態にある対象数が施策に応じて遷移する遷移モデルにおける施策を最適化する情報処理装置であって、
複数時点および複数状態の少なくとも一方に亘る施策の合計コストを制約するコスト制約を含む複数のコスト制約を取得するコスト制約取得部と、
各時点および各状態における施策の配分を最適化対象の変数とし、各時点および各状態における施策の適用対象数と前記遷移モデルによる状態遷移に応じた各時点および各状態の推定対象数との間の誤差に応じた項を全期間の総報酬から減じた目的関数を、前記複数のコスト制約を満たしつつ最大化する処理部と、
前記目的関数を最大化する各時点および各状態における施策の配分を出力する出力部と、
を備える情報処理装置。
【請求項２】
前記処理部は、各時点および各状態における、施策の配分および前記誤差の範囲を最適化対象の変数として前記目的関数を最大化する請求項１に記載の情報処理装置。
【請求項３】
前記処理部は、前記誤差を重み付けした項を全期間の総報酬から減じた前記目的関数を最大化する請求項１または２に記載の情報処理装置。
【請求項４】
前記処理部は、一の時点の各状態における施策の適用対象数に対し、当該一の時点の前の時点の各状態における施策の配分に応じた状態遷移によって前記一の時点および各状態に遷移してくる対象者数を算出して推定対象数とする請求項１から３のいずれか一項に記載の情報処理装置。
【請求項５】
前記処理部は、各時点および各状態における施策の適用対象数の合計が予め定められた全対象数と等しくなる旨の制約条件を更に用いて、前記目的関数を最大化する請求項１から４のいずれか一項に記載の情報処理装置。
【請求項６】
前記コスト制約取得部は、施策毎の合計コストを制約するコスト制約を取得する請求項１から５のいずれか一項に記載の情報処理装置。
【請求項７】
複数の対象について施策に対する反応を記録した学習データを取得する学習データ取得部と、
前記学習データに基づいて、前記遷移モデルを生成するモデル生成部と、
を備える請求項１から６のいずれか一項に記載の情報処理装置。
【請求項８】
前記モデル生成部は、
前記学習データに含まれる前記複数の対象を各状態に分類する分類部と、
各状態の対象が施策に応じてどの状態に遷移したかに基づいて、状態遷移確率を算出する算出部と、
を備える請求項７に記載の情報処理装置。
【請求項９】
前記分類部は、
前記学習データに含まれる前記複数の対象のそれぞれに対する施策および反応に基づいて、当該対象の状態ベクトルを生成し、
前記状態ベクトルにより将来の報酬を回帰する際の予測精度が最大となる軸か、または前記状態ベクトルの分散が最大となる軸によって前記複数の対象を分類していくことにより、前記複数の対象を複数の状態に分類する
請求項８に記載の情報処理装置。
【請求項１０】
前記学習データに基づいて、対象の状態の遷移確率分布を算出する分布算出部と、
前記出力部が出力した各時点および各状態における施策の配分に応じて、前記遷移確率分布に基づく状態遷移をシミュレーションするシミュレーション部と、
を更に備える請求項７から９のいずれか一項に記載の情報処理装置。
【請求項１１】
コンピュータにより実行される、各状態にある対象数が施策に応じて遷移する遷移モデルにおける施策を最適化する情報処理方法であって、
複数時点および複数状態の少なくとも一方に亘る施策の合計コストを制約するコスト制約を含む複数のコスト制約を取得するコスト制約取得段階と、
各時点および各状態における施策の配分を最適化対象の変数とし、各時点および各状態における施策の適用対象数と前記遷移モデルによる状態遷移に応じた各時点および各状態の推定対象数との間の誤差に応じた項を全期間の総報酬から減じた目的関数を、前記複数のコスト制約を満たしつつ最大化する処理段階と、
前記目的関数を最大化する各時点および各状態における施策の配分を出力する出力段階と、
を備える情報処理方法。
【請求項１２】
コンピュータを各状態にある対象数が施策に応じて遷移する遷移モデルにおける施策を最適化する情報処理装置として機能させるプログラムであって、
実行されると当該コンピュータを、
複数時点および複数状態の少なくとも一方に亘る施策の合計コストを制約するコスト制約を含む複数のコスト制約を取得するコスト制約取得部と、
各時点および各状態における施策の配分を最適化対象の変数とし、各時点および各状態における施策の適用対象数と前記遷移モデルによる状態遷移に応じた各時点および各状態の推定対象数との間の誤差に応じた項を全期間の総報酬から減じた目的関数を、前記複数のコスト制約を満たしつつ最大化する処理部と、
前記目的関数を最大化する各時点および各状態における施策の配分を出力する出力部と、
して機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法、及び、プログラムに関する。
【背景技術】
【０００２】
過去の販売実績等の記録をマルコフ決定過程又は強化学習で定式化し、将来実行する施策を最適化する手法が知られている（非特許文献１−２及び特許文献１−２）。また、単一の時点、又は、期間全体のみの予算の制約を組み込んだ予算制約付きマルコフ決定過程（ＣＭＤＰ）による施策の最適化手法が知られている（特許文献３及び非特許文献３）。
［非特許文献１］A. Labbi and C. Berrospi. Optimizing marketing planning and budgeting using Markov decision processes: An airline case study. IBM Journal of Research and Development, 51(3):421-432, 2007
［非特許文献２］N. Abe, N. K. Verma, C. Apt´e, and R. Schroko. Cross channel optimized marketing by reinforcement learning. In Proceedings of the 10th ACM SIGKDD Conference on Knowledge Discovery and Data Mining (KDD 2004), pages 767-772, 2004
［非特許文献３］G. Tirenni, A. Labbi, C. Berrospi, A. Elisseeff, T. Bhose, K. Pauro, S. Poyhonen, "The 2005 ISMS Practice Prize Winner - Customer Equity and Lifetime Management (CELM) Finnair Case Study," Marketing Science, vol. 26, no. 4, pp. 553-565, 2007.
［特許文献１］特開２０１０−１９１９６３号公報
［特許文献２］特表２０１１−５１３８１７号公報
［特許文献３］特開２０１２−１９００６２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００３】
しかし、複数時点、複数期間、及び／又は、複数状態に亘る予算等のコスト制約を組み入れた上で、高速かつ高精度で施策を最適化する手法は知られていない。
【課題を解決するための手段】
【０００４】
本発明の第１の態様においては、各状態にある対象数が施策に応じて遷移する遷移モデルにおける施策を最適化する情報処理装置であって、複数時点および複数状態の少なくとも一方に亘る施策の合計コストを制約するコスト制約を含む複数のコスト制約を取得するコスト制約取得部と、各時点および各状態における施策の配分を最適化対象の変数とし、各時点および各状態における施策の適用対象数と遷移モデルによる状態遷移に応じた各時点および各状態の推定対象数との間の誤差に応じた項を全期間の総報酬から減じた目的関数を、複数のコスト制約を満たしつつ最大化する処理部と、目的関数を最大化する各時点および各状態における施策の配分を出力する出力部と、を備える情報処理装置を提供する。
【０００５】
なお、上記の発明の概要は、本発明の特徴の全てを列挙したものではない。また、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【図面の簡単な説明】
【０００６】
【図１】本実施形態の情報処理装置１０のブロック図を示す。
【図２】本実施形態の情報処理装置１０による処理フローを示す。
【図３】コスト制約取得部１３０が取得するコスト制約の一例を示す。
【図４】出力部１５０が出力する施策の配分の一例を示す。
【図５】本実施形態のＳ１３０の具体的な処理フローを示す。
【図６】分類部１２２が回帰木により状態ベクトルを分類する例を示す。
【図７】分類部１２２が二分木により状態ベクトルを分類する例を示す。
【図８】本実施形態の情報処理装置１０による処理フローを示す。
【図９】分布算出部１６０が算出する遷移確率分布の一例を示す。
【図１０】コンピュータ１９００のハードウェア構成の一例を示す。
【発明を実施するための形態】
【０００７】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【０００８】
図１は、本実施形態に係る情報処理装置１０のブロック図を示す。本実施形態の情報処理装置１０は、複数の状態が定義され、各状態にある対象数（例えば、各状態に分類される対象の数）が施策に応じて遷移する遷移モデルにおいて、複数時点及び／又は複数状態に亘るコスト制約を組み入れた上で施策を最適化する。情報処理装置１０は、学習データ取得部１１０、モデル生成部１２０、コスト制約取得部１３０、処理部１４０、出力部１５０、分布算出部１６０、及び、シミュレーション部１７０を備える。
【０００９】
学習データ取得部１１０は、複数の対象について施策に対する反応を記録した学習データを取得する。例えば、学習データ取得部１１０は、データベース等から複数の消費者等の対象に対する広告等の施策、及び、消費者等による購買等の反応の記録を学習データとして取得する。学習データ取得部１１０は、取得した学習データをモデル生成部１２０、及び、分布算出部１６０に供給する。
【００１０】
モデル生成部１２０は、学習データ取得部１１０が取得した学習データに基づいて、複数の状態が定義され、対象が状態間をある確率で遷移する遷移モデルを生成する。モデル生成部１２０は、分類部１２２、及び、算出部１２４を有する。
【００１１】
分類部１２２は、学習データに含まれる複数の対象を各状態に分類する。例えば、分類部１２２は、学習データに含まれる複数の対象に対する施策、及び、反応等の記録から、対象ごとに状態ベクトルの時系列を生成し、状態ベクトル空間上の位置に応じて複数の状態ベクトルを複数の状態に分類する。
【００１２】
算出部１２４は、分類部１２２が分類した複数の状態において、各状態の対象が施策に応じて各状態に遷移する確率を示す状態遷移確率、及び、各状態で施策を実行したときに得られる直近の期待利得を、回帰分析を用いて算出する。算出部１２４は、算出した状態遷移確率、及び、期待利得を処理部１４０に供給する。
【００１３】
コスト制約取得部１３０は、複数時点および複数状態の少なくとも一方に亘る施策の合計コストを制約するコスト制約を含む複数のコスト制約を取得する。例えば、コスト制約取得部１３０は、ユーザから、１又は２以上の時点を含む連続した期間において、指定した１又は２以上の状態の対象に指定した１又は２以上の施策を実行するために費やすことができる予算金額をコスト制約として取得する。コスト制約取得部１３０は、取得したコスト制約を処理部１４０に供給する。
【００１４】
処理部１４０は、全対象及び全期間の利得の合計を最大化する最適な施策を取得するために、各時点および各状態における複数の対象に対する施策の配分を最適化対象の変数とし、各時点および各状態における施策の適用対象数と遷移モデルによる状態遷移に応じた各時点および各状態の推定対象数との間の誤差に応じた項を全期間の総報酬から減じた目的関数を、複数のコスト制約を満たしつつ最大化する。処理部１４０は、目的関数を最大化する各時点および各状態における施策の配分を取得し、出力部１５０に供給する。
【００１５】
出力部１５０は、目的関数を最大化する各時点および各状態における施策の配分を出力する。出力部１５０は、施策の配分をシミュレーション部１７０に出力する。また、出力部１５０は、施策の配分を情報処理装置１０の表示装置に表示させ、及び／又は、記憶媒体等に出力してもよい。
【００１６】
分布算出部１６０は、学習データに基づいて、対象の状態の遷移確率分布を算出する。例えば、分類部１２２は、学習データに含まれる複数の対象の施策等の記録から、対象毎に状態ベクトルの時系列を生成し、ある状態ベクトルをとる対象が施策に応じてどの状態ベクトルに遷移したか、および各状態ベクトルが離散有限個定義された状態のどれに所属するかに基づき、遷移確率分布を算出する。分布算出部１６０は、算出した遷移確率分布をシミュレーション部１７０に供給する。
【００１７】
シミュレーション部１７０は、出力部１５０が出力した各時点、及び、各状態における施策の配分に応じて、分布算出部１６０が算出した遷移確率分布に基づく対象の状態遷移、及び、実際に得られる利得をシミュレーションする。
【００１８】
このように、本実施形態の情報処理装置１０は、学習データから算出した状態遷移確率、及び、期待利得に基づき、複数の期間／複数の状態に亘るコスト制約を満たす施策の配分を出力する。これにより、情報処理装置１０によれば、コストに関する制約が厳しい現実に近い環境において最適な施策の配分を提供することができる。
【００１９】
図２は、本実施形態の情報処理装置１０による処理フローを示す。本実施形態において、情報処理装置１０は、Ｓ１１０〜Ｓ１９０の処理を実行することにより、最適な施策の配分を出力する。
【００２０】
まず、Ｓ１１０において、学習データ取得部１１０は、複数の対象について施策に対する反応を記録した学習データを取得する。例えば、学習データ取得部１１０は、複数の顧客、消費者、購読者及び／又は法人等を対象として、ダイレクトメール、Ｅメール、及び／又はその他の広告等の対象に施策（何もしないことも施策に含んでよい）を実行して刺激を与えたときの、対象となる商品等の購買、購読、及び／又はその他の応答を含む対象の反応の時系列の記録を学習データとして取得する。学習データ取得部１１０は、取得した学習データをモデル生成部１２０に供給する。
【００２１】
次にＳ１３０において、モデル生成部１２０は、学習データに含まれる複数の対象を各状態に分類し、各状態及び各施策の状態遷移確率、並びに、期待利得を算出する。モデル生成部１２０は、状態遷移確率、及び、期待利得を処理部１４０に供給する。なお、Ｓ１３０の具体的な処理内容は後述する。
【００２２】
次にＳ１５０において、コスト制約取得部１３０は、複数時点、及び、複数状態の少なくとも一方に亘る施策の合計コストを制約するコスト制約を含む複数のコスト制約を取得する。コスト制約取得部１３０は、施策毎の合計コストを制約するコスト制約を取得してもよい。
【００２３】
例えば、コスト制約取得部１３０は、金銭的コストの制約（例えば、施策に費やすことができる予算の金額等）、施策の実行する回数コストの制約（例えば、施策を実行可能な回数等）、消費する資源等の資源コストの制約（例えば、施策の実行において使用可能な資源重量の合計等）、及び／又は、環境負荷等の社会的コストの制約（例えば、施策において排出可能なＣＯ２量等）など施策を実行することに発生するコストの制約を、コスト制約として取得してよい。コスト制約取得部１３０は、１以上のコスト制約を取得してよく、特に複数のコスト制約を取得してよい。
【００２４】
図３は、コスト制約取得部１３０が取得するコスト制約の一例を示す。コスト制約取得部１３０は、図示するように、全体又は一部の時点を含む期間、１又は２以上の状態、及び、１又は２以上の施策毎に定義されたコスト制約を取得してよい。
【００２５】
例えば、コスト制約取得部１３０は、時点１〜ｔ１までの期間において、状態ｓ１〜ｓ３にある対象に対して施策１を実行する予算として１０Ｍドル、施策２及び施策３を実行する予算として５０Ｍドルを取得し、同期間の状態ｓ４及び状態ｓ５にある対象に対して全施策の実行予算として３０Ｍドルを取得してよい。また、例えば、コスト制約取得部１３０は、時点ｔ１〜ｔ２までの期間において、全状態にある対象に対して全施策を実行する予算として２０Ｍドルを取得してよい。
【００２６】
図２に戻り、次にＳ１７０において、処理部１４０は、各時点および各状態における施策の配分、及び、誤差の範囲を最適化対象の変数として、目的関数を複数のコスト制約を満たしつつ最大化する各変数の値を算出する。
【００２７】
処理部１４０が最大化の対象とする目的関数の一例を数式（１）に示す。
【数１】
0005963320.tif 000002
ここで、γは予め定められた０＜γ≦１となる将来利得に対する割引率を示し、ｎｔ，ｓ，ａは時点ｔおよび状態ｓにおいて施策ａが配分される適用対象の数を示し、Ｎｔ，ｓは時点ｔにおける状態ｓにおける対象数を示し、ｒ＾ｔ，ｓ，ａは時点ｔ及び状態ｓにおける施策ａによる期待利得を示し、σｔ，ｓは時点ｔ及び状態ｓにおける施策の適用対象数と遷移モデルによる状態遷移に応じた時点ｔ及び状態ｓの推定対象数との間の誤差の範囲により与えられるスラック変数を示し、ηｔ，ｓはスラック変数σｔ，ｓに対して与えられる重み係数を示す。
【００２８】
数式（１）に示すように、適用対象数ｎｔ，ｓ，ａと期待利得ｒ＾ｔ，ｓ，ａとの積の全施策ａ∈Ａ及び全状態ｓ∈Ｓにおける総和に各時刻ｔに対応する割引率の累乗γｔを乗じた値の全時刻（ｔ＝１，...，Ｔ）における総和を全期間の総報酬に応じた項とし、重み係数ηｔ，ｓとスラック変数σｔ，ｓとの積の全状態及びｔ＝２以降の全時刻における総和を誤差に応じた項としたときに、目的関数は全期間の総報酬に応じた項から誤差に応じた項を減じることにより得られる。
【００２９】
なお、数式（１）におけるΣａ∈Ａｎ１，ｓ，ａ＝Ｎ１，ｓは、期間の開始時点（時点１）の状態ｓにおいて施策ａが配分される適用対象数ｎｔ，ｓ，ａの全施策ａ∈Ａにおける総和を、対象数Ｎｔ，ｓにより定義する。これにより、処理部１４０は、開始時点における各状態ｓの対象数（例えば、人口）を決定的に与える。
【００３０】
重み係数ηｔ，ｓは、予め定められた係数であってよく、これに代えて、処理部１４０は、重み係数ηｔ，ｓをηｔ，ｓ＝λγｔΣ（ａ∈Ａ）｜ｒ＾ｔ，ｓ，ａ｜から算出してもよい。ここで、λはグローバルリラクゼーションハイパパラメータであり、例えば、処理部１４０は、λを１、１０、１０−１、１０２、又は１０−２から選択してよく、不連続状態マルコフ決定過程、又は、エージェントベースシミュレーションの結果に基づき最適なλを設定してよい。
【００３１】
処理部１４０が最適化の対象とするスラック変数σｔ，ｓに対する制約を数式（２）及び（３）に示す。
【数２】
0005963320.tif 000003
【数３】
0005963320.tif 000004
ここで、ｐ＾ｓ｜ｓ'，ａは施策ａを実行したときに状態ｓ'から状態ｓに遷移する確率に対応する状態遷移確率を示す。
【００３２】
数式（２）及び（３）の不等式右辺の括弧内の式は、各時点および各状態における施策の適用対象数と遷移モデルによる状態遷移に応じた各時点および各状態の推定対象数との間の誤差を示す。
【００３３】
例えば、Σｎｔ＋１，ｓ，ａは一の時点ｔ＋１の各状態ｓにおける施策ａの適用対象数の全施策ａ∈Ａに対する総和である。処理部１４０は、時点ｔ＋１及び状態ｓのセグメントにΣｎｔ＋１，ｓ，ａの対象数を実際に割り当てる。
【００３４】
また、例えば、ΣΣｐ＾ｓ｜ｓ'，ａ'ｎｔ，ｓ'，ａ'は、処理部１４０が、一の時点ｔ＋１の前の時点ｔの各状態ｓ'（ｓ'∈Ｓ）における施策ａの適用対象数ｎｔ，ｓ'，ａ' の配分及び状態遷移確率ｐ＾ｓ｜ｓ'，ａに応じた状態遷移によって一の時点ｔ＋１および各状態ｓに遷移してくると推定して算出する推定対象者数の全状態ｓ'∈Ｓ及び全施策ａ'∈Ａに対する総和である。
【００３５】
つまり、数式（２）及び（３）の不等式右辺の括弧内の式は、時点ｔ＋１及び状態ｓに存在する実際の対象数と状態遷移確率等及び前の時点ｔの対象数により推定される推定対象数との間の誤差を表す。処理部１４０は、式（２）及び（３）の不等式の制約により、スラック変数σｔ，ｓの下限値に当該誤差の絶対値を与える。従って、誤差が大きく遷移モデルの信頼性が低いと推定される条件下でスラック変数σｔ，ｓは増大する。
【００３６】
なお、処理部１４０は、スラック変数σｔ，ｓの下限値に誤差の絶対値を与える代わりに、０と誤差とのうち大きい値である一方をスラック変数σｔ，ｓの下限値としてもよい。
【００３７】
数式（１）では、誤差に応じた項が増大すると目的関数が減少する関係にあり、誤差に応じた項はスラック変数σｔ，ｓに比例して増大する。これにより、処理部１４０は、遷移モデルの信頼性の低さを罰則値として目的関数に導入し、目的関数を最大化することで総報酬の大きさと信頼性の大きさとを両立する条件を算出する。
【００３８】
処理部１４０は、数式（４）に示すコスト制約を更に用いて、目的関数を最大化する。
【数４】
0005963320.tif 000005
ここで、ｃｔ，ｓ，ａは、時点ｔで状態ｓに施策ａを実行する場合のコストを示し、Ｃｉはｉ番目（ｉ＝１，...，Ｉ、Ｉは１以上の整数）のコスト制約に関する合計コストの指定値、上限値、又は、下限値を示す。コストは、時点ｔ、状態ｓ、及び／又は、施策ａごとに予め定められてよく、又は、コスト制約取得部１３０がユーザから取得してもよい。
【００３９】
処理部１４０は、数式（５）に示す対象数に関する制約条件を更に用いて、目的関数を最大化する。
【数５】
0005963320.tif 000006
ここで、Ｎは、予め定められた、又は、ユーザにより定義される全対象者数（例えば、全消費者人口）を示す。
【００４０】
数式（５）は、各時点ｔおよび各状態ｓにおける施策ａの適用対象数ｎｔ，ｓ，ａの合計が予め定められた全対象数Ｎと等しくなる旨の制約条件を示す。これにより、処理部１４０は、全ての時刻において、全状態における全施策の対象者の数が、全消費者人口に常に等しいことを制約条件に含める。
【００４１】
処理部１４０は、数式（１）〜（５）に示す制約を含む線形計画問題又は混合整数計画問題を解くことにより、各時点ｔ、各状態ｓ、及び、各施策ａに割り当てられる適用対象数ｎｔ，ｓ，ａを施策の配分として算出する。処理部１４０は、算出した施策の配分を出力部１５０に供給する。
【００４２】
次にＳ１９０において、出力部１５０が目的関数を最大化する各時点、及び、各状態における施策の配分を出力する。
【００４３】
図４は、出力部１５０が出力する施策の配分の一例を示す。図示するように、出力部１５０は、各時点ｔ及び各状態ｓごとの各施策ａの適用対象数ｎｔ，ｓ，ａを出力する。例えば、出力部１５０は、時刻ｔの状態ｓ１にある対象者に対して、施策１（例えばＥメール）を３０人に対して実施し、施策２（例えばダイレクトメール）を１４０人に対して実施し、施策３（例えば何もしないこと）を２０人に対して実施することを示す施策の配分を出力する。また、出力部１５０は、時刻ｔの状態ｓ２にある対象者に対して、施策１を１０人に対して実施し、施策２を３０人に対して実施し、施策３を０人に対して実施することを示す施策の配分を出力する。
【００４４】
このように本実施形態の情報処理装置１０は、学習データに基づいて、複数時点、複数期間及び／又は複数状態に亘るコスト制約を満たす施策の配分を出力する。これにより、情報処理装置１０は、例えば、一定期間に組織内の複数の部門のそれぞれに割り当てられる予算が、様々な要因により制限される場合でも、それぞれの部門の予算に適合した最適な施策の配分を出力することができる。
【００４５】
特に情報処理装置１０は、最大化の対象となる目的関数に対象数の誤差に関する項、すなわちスラック変数を含む項を導入することにより、複数時点、複数期間及び／又は複数状態に亘るコスト制約を線形計画問題等の高速で解くことが可能な問題として扱い、大きな総報酬を高い精度でもたらす施策の配分を出力することができる。これに対して、最大化の対象となる目的関数に対象数の誤差に関する項を含まない場合は、誤差の大きい、即ち、十分に正確でない遷移モデルにおいて総報酬を最大化する施策の配分を出力する可能性があるので、結果として総報酬が最大化されない施策の配分を出力する可能性が生じる。
【００４６】
また、情報処理装置１０は、線形計画問題等により最適化を実行するので、極めて高次元のモデル、すなわち、多種類の状態及び／又は施策を有するモデルの問題を解決することができる。更に、情報処理装置１０は、多目的最適化問題にも容易に拡張することができる。例えば、情報処理装置１０は、期待利得ｒｔ，ｓ，ａが単純なスカラーでなく、複数の値を有する場合（例えば、ネット店舗の売上と実店舗の売上を分けて考慮する場合）、これらの値の線形結合で表される多目的関数を目的関数とすることにより、容易に最適化を実行することができる。
【００４７】
図５は、本実施形態のＳ１３０の具体的な処理フローを示す。モデル生成部１２０は、Ｓ１３０の処理においてＳ１３２〜Ｓ１３６の処理を実行する。
【００４８】
まず、Ｓ１３２において、モデル生成部１２０の分類部１２２は、学習データに含まれる複数の対象のそれぞれに対する施策および反応に基づいて、当該対象の状態ベクトルを生成する。例えば、分類部１２２は、対象のそれぞれについて、予め定められた期間内において、対象に対して実行された施策及び／又は対象の反応の基づいた値を成分として有する状態ベクトルを生成する。
【００４９】
一例として、分類部１２２は、第１成分としてある一の消費者が直近過去１週間で購買をした回数を有し、第２成分として当該一の消費者が直近過去２週間で購買をした回数を有し、第３成分として当該一の消費者に対し直近過去１週間に送信されたダイレクトメールの数を有する状態ベクトルを生成してよい。
【００５０】
次にＳ１３４において、分類部１２２は、複数の対象を状態ベクトルに基づいて分類する。例えば、分類部１２２は、教師あり学習又は教師なし学習を適用して状態ベクトルに決定木を適合することにより、複数の対象を分類する。
【００５１】
教師あり学習の例として、分類部１２２は、状態ベクトルにより将来の報酬を回帰する際の予測精度が最大となる軸で複数の対象に係る状態ベクトルを分類する。例えば、分類部１２２は、一の対象の状態ベクトルを入力ベクトルｘとし、当該一の対象の状態ベクトルを観測した時刻以降の予め定められた期間における対象からの反応を示すベクトル（例えば、状態ベクトルの観測時点から１年間の間に計上される製品毎の売上金額を成分とするベクトル）を出力ベクトルｙとし、出力ベクトルｙを最も精度よく予測できる回帰木を適合する。分類部１２２は、回帰木の葉ノード毎に各状態を割り当てることにより、複数の対象に係る状態ベクトルを離散化して、複数の対象を複数の状態に分類する。
【００５２】
図６は、分類部１２２が回帰木により状態ベクトルを分類する例を示す。ここでは、分類部１２２が、２つの成分ｘ１及びｘ２を有する複数の状態ベクトルを分類する例を示す。図中のグラフの縦軸及び横軸は状態ベクトルの成分ｘ１及びｘ２の大きさを示し、グラフにプロットされる複数の点は複数の対象に対応する複数の状態ベクトルを示し、破線で囲まれる領域は回帰木の各葉ノードに含まれる条件となる状態ベクトルの範囲を示す。
【００５３】
図示するように、分類部１２２は、複数の状態ベクトルを回帰木の葉ノード毎に分類する。これにより、分類部１２２は、複数の状態ベクトルを複数の状態ｓ１〜ｓ３に分類する。
【００５４】
教師なし学習の例として、分類部１２２は、状態ベクトルの分散が最大となる軸においてしきい値を用いて状態ベクトル空間を二分割する二分木によって複数の対象に係る状態ベクトルを分類していくことにより、複数の対象に係る状態ベクトルを離散化して、複数の対象を複数の状態に分類する。
【００５５】
図７は、分類部１２２が二分木により状態ベクトルを分類する例を示す。図６と同様に、図中のグラフの縦軸及び横軸は状態ベクトルの成分ｘ１及びｘ２の大きさを示し、グラフにプロットされる複数の点は複数の対象に対応する状態ベクトルを示す。
【００５６】
分類部１２２は、複数の状態ベクトルを軸で分割して複数のグループに分けたときに、分割後の全グループの状態ベクトルの分散の合計が最大となるような軸を算出し、算出した軸で複数の状態ベクトルを二分割することで離散化する。図示するように、分類部１２２は、予め定められた回数分割を繰り返すことで、複数の対象に係る複数の状態ベクトルを複数の状態ｓ１〜ｓ４に分類する。
【００５７】
図５に戻り、次にＳ１３６において、算出部１２４は、状態遷移確率ｐ＾ｓ｜ｓ'，ａ、及び、期待利得ｒ＾ｔ，ｓ，ａを算出する。例えば、算出部１２４は、分類部１２２により分類された各状態の対象が施策に応じてどの状態に遷移したかに基づき回帰分析を実行して、状態遷移確率ｐ＾ｓ｜ｓ'，ａを算出する。一例として、算出部１２４は、Ｍｏｄｉｆｉｅｄ  Ｋｎｅｓｅｒ−Ｎｅｙ  Ｓｍｏｏｔｈｉｎｇを用いることにより、状態遷移確率ｐ＾ｓ｜ｓ'，ａを算出してよい。
【００５８】
また、例えば、算出部１２４は、分類部１２２により分類された各状態の対象が施策を実行した直後にどの程度の大きさの期待利得をもたらしたかに基づき、回帰分析を実行して期待利得ｒ＾ｔ，ｓ，ａを算出する。一例として、算出部１２４は、Ｌ１−正則化ポアソン回帰及び／又はＬ１−正則化対数正規回帰を用いて、精度よく期待利得ｒ＾ｔ，ｓ，ａを算出してよい。なお、算出部１２４は、期待利得として、施策を実行した際に期待される利益から施策の実行に必要なコストを減じたもの（例えば、売上−マーケティングコスト）を用いてよい。
【００５９】
図８は、本実施形態の情報処理装置１０による処理フローを示す。本実施形態において、情報処理装置１０は、Ｓ５１０〜Ｓ５５０の処理を実行することにより、出力した施策の配分を実行した結果をより正確にシミュレーションする。
【００６０】
まず、Ｓ５１０において、学習データ取得部１１０は、複数の対象について施策に対する反応を記録した学習データを取得する。例えば、学習データ取得部１１０は、Ｓ１１０において取得した学習データと同一の学習データを取得してく、これに代えて、Ｓ１１０において取得した学習データと同一の対象、又は、同一の対象を少なくとも一部含む対象について異なる期間の学習データを取得してよい。学習データ取得部１１０は、取得した学習データを分布算出部１６０に供給する。
【００６１】
次にＳ５３０において、分布算出部１６０は、学習データに基づいて、対象の状態の遷移確率分布を算出する。分布算出部１６０は、対象ｎについて時点ｔの状態ベクトルφｎ，ｔが施策ａの実行により遷移することにより時点ｔ＋１において取り得る状態ベクトルφｎ，ｔ＋１の確率分布を表す遷移確率分布Ｐ（ａ，φｎ，ｔ）を回帰分析により算出する。
【００６２】
例えば、分布算出部１６０は、施策ａごとに、状態ベクトルφｎ，ｔを入力とし、時刻ｔ＋１における反応の単位時間あたり発生確率を出力としたポアソン回帰モデルに滑走窓を適用して遷移確率分布Ｐを算出する。例えば、状態ベクトルφｎ，ｔの１つの成分が「過去１週間のダイレクトメール点数」である場合、施策ａであるダイレクトメールを実行した場合に当該成分は１増加し、滑走窓の期間である１週間を経過すると１減少する。
【００６３】
図９は、分布算出部１６０が算出する遷移確率分布の一例を示す。図中の点は時点ｔの状態ベクトルφｎ，ｔを示し、図中のハッチがかけられた楕円領域はハッチの濃さに応じて遷移確率の大きさを示す。図示するように、状態ベクトルφｎ，ｔを有する対象は施策ａが実行されることにより、遷移確率分布Ｐ（ａ，φｎ，ｔ）で示される確率で対応する位置の状態ベクトルφｎ，ｔ＋１を有する。分布算出部１６０は、算出した遷移確率分布をシミュレーション部１７０に供給する。
【００６４】
次にＳ５５０において、シミュレーション部１７０は、Ｓ１９０で出力部１５０が出力した各時点および各状態における施策の配分に応じて、分布算出部１６０が算出した遷移確率分布に基づく状態遷移、及び、実際の利得をシミュレーションする。
【００６５】
例えば、シミュレーション部１７０は、期間中の時点毎に、出力部１５０が出力した施策の配分を実行した場合に得られる利得を算出し、施策の配分を実行した結果に応じて遷移確率分布を更新する。これにより、シミュレーション部１７０は、出力部１５０が出力した最適な施策の配分を実行した際の結果を取得することができる。
【００６６】
このように本実施形態の情報処理装置１０は、複数時点及び／又は複数状態に亘るコスト制約を満たす施策の配分により、実際に得られる結果をシミュレーションすることにより、コスト制約に関するＷｈａｔ−Ｉｆ分析を可能にする。これにより、情報処理装置１０は、例えば、組織内の複数の部門の予算を決定するに当たり、適切な予算配分を分析することができる。
【００６７】
ここで、本実施形態の変形例について説明する。本変形例の情報処理装置１０における出力部１５０は、コスト制約を充足することが必須条件ではないが、コスト制約を可能な限り遵守することが望ましい場合の施策の配分を算出する。本変形例で、処理部１４０は、Ｓ１７０を実行するに当たり、数式（１）〜（５）に示す制約を用いることに代えて、数式（６）〜（８）に係る制約を使用してもよい。
【数６】
0005963320.tif 000007
【数７】
0005963320.tif 000008
【数８】
0005963320.tif 000009
ここで、σｉはコスト制約ごとに与えられるスラック変数を示し、重み係数ηｉはスラック変数σｉに対して与えられる重み係数を示す。
【００６８】
本変形例では、数式（２）及び（３）で施策の適用対象数と推定対象数との間の誤差によりスラック変数の制約を与える代わりに、数式（８）において合計コストＣｉにスラック変数σｉを加え、数式（７）により施策の適用対象数及び推定対象数が等しいものとしている。
【００６９】
数式（８）において、スラック変数σｔ，ｓが増大するとコスト制約に関する誤差が大きくなる。ここで、数式（６）では、誤差に応じた項が増大すると目的関数が減少する関係にあり、誤差に応じた項はスラック変数σｔ，ｓに比例して増大する。これにより、処理部１４０は、与えられたコスト制約に対する合致度の低さを罰則値として目的関数に導入し、目的関数を最大化することで総報酬の大きさとコスト制約に対する合致度の大きさとを両立する条件を算出する。
【００７０】
図１０は、情報処理装置１０として機能するコンピュータ１９００のハードウェア構成の一例を示す。本実施形態に係るコンピュータ１９００は、ホスト・コントローラ２０８２により相互に接続されるＣＰＵ２０００、ＲＡＭ２０２０、グラフィック・コントローラ２０７５、及び表示装置２０８０を有するＣＰＵ周辺部と、入出力コントローラ２０８４によりホスト・コントローラ２０８２に接続される通信インターフェイス２０３０、ハードディスクドライブ２０４０、及びＣＤ−ＲＯＭドライブ２０６０を有する入出力部と、入出力コントローラ２０８４に接続されるＲＯＭ２０１０、フレキシブルディスク・ドライブ２０５０、及び入出力チップ２０７０を有するレガシー入出力部を備える。
【００７１】
ホスト・コントローラ２０８２は、ＲＡＭ２０２０と、高い転送レートでＲＡＭ２０２０をアクセスするＣＰＵ２０００及びグラフィック・コントローラ２０７５とを接続する。ＣＰＵ２０００は、ＲＯＭ２０１０及びＲＡＭ２０２０に格納されたプログラムに基づいて動作し、各部の制御を行う。グラフィック・コントローラ２０７５は、ＣＰＵ２０００等がＲＡＭ２０２０内に設けたフレーム・バッファ上に生成する画像データを取得し、表示装置２０８０上に表示させる。これに代えて、グラフィック・コントローラ２０７５は、ＣＰＵ２０００等が生成する画像データを格納するフレーム・バッファを、内部に含んでもよい。
【００７２】
入出力コントローラ２０８４は、ホスト・コントローラ２０８２と、比較的高速な入出力装置である通信インターフェイス２０３０、ハードディスクドライブ２０４０、ＣＤ−ＲＯＭドライブ２０６０を接続する。通信インターフェイス２０３０は、有線又は無線によりネットワークを介して他の装置と通信する。また、通信インターフェイスは、通信を行うハードウェアとして機能する。ハードディスクドライブ２０４０は、コンピュータ１９００内のＣＰＵ２０００が使用するプログラム及びデータを格納する。ＣＤ−ＲＯＭドライブ２０６０は、ＣＤ−ＲＯＭ２０９５からプログラム又はデータを読み取り、ＲＡＭ２０２０を介してハードディスクドライブ２０４０に提供する。
【００７３】
また、入出力コントローラ２０８４には、ＲＯＭ２０１０と、フレキシブルディスク・ドライブ２０５０、及び入出力チップ２０７０の比較的低速な入出力装置とが接続される。ＲＯＭ２０１０は、コンピュータ１９００が起動時に実行するブート・プログラム、及び／又は、コンピュータ１９００のハードウェアに依存するプログラム等を格納する。フレキシブルディスク・ドライブ２０５０は、フレキシブルディスク２０９０からプログラム又はデータを読み取り、ＲＡＭ２０２０を介してハードディスクドライブ２０４０に提供する。入出力チップ２０７０は、フレキシブルディスク・ドライブ２０５０を入出力コントローラ２０８４へと接続するとともに、例えばパラレル・ポート、シリアル・ポート、キーボード・ポート、マウス・ポート等を介して各種の入出力装置を入出力コントローラ２０８４へと接続する。
【００７４】
ＲＡＭ２０２０を介してハードディスクドライブ２０４０に提供されるプログラムは、フレキシブルディスク２０９０、ＣＤ−ＲＯＭ２０９５、又はＩＣカード等の記録媒体に格納されて利用者によって提供される。プログラムは、記録媒体から読み出され、ＲＡＭ２０２０を介してコンピュータ１９００内のハードディスクドライブ２０４０にインストールされ、ＣＰＵ２０００において実行される。
【００７５】
コンピュータ１９００にインストールされ、コンピュータ１９００を情報処理装置１０として機能させるプログラムは、学習データ取得モジュール、モデル生成モジュール、分類モジュール、算出モジュール、コスト制約取得モジュール、処理モジュール、出力モジュール、分布算出モジュール、及び、シミュレーションモジュールを備える。これらのプログラム又はモジュールは、ＣＰＵ２０００等に働きかけて、コンピュータ１９００を、学習データ取得部１１０、モデル生成部１２０、分類部１２２、算出部１２４、コスト制約取得部１３０、処理部１４０、出力部１５０、分布算出部１６０、及び、シミュレーション部１７０としてそれぞれ機能させてよい。
【００７６】
これらのプログラムに記述された情報処理は、コンピュータ１９００に読込まれることにより、ソフトウェアと上述した各種のハードウェア資源とが協働した具体的手段である学習データ取得部１１０、モデル生成部１２０、分類部１２２、算出部１２４、コスト制約取得部１３０、処理部１４０、出力部１５０、分布算出部１６０、及び、シミュレーション部１７０として機能する。そして、これらの具体的手段によって、本実施形態におけるコンピュータ１９００の使用目的に応じた情報の演算又は加工を実現することにより、使用目的に応じた特有の情報処理装置１０が構築される。
【００７７】
一例として、コンピュータ１９００と外部の装置等との間で通信を行う場合には、ＣＰＵ２０００は、ＲＡＭ２０２０上にロードされた通信プログラムを実行し、通信プログラムに記述された処理内容に基づいて、通信インターフェイス２０３０に対して通信処理を指示する。通信インターフェイス２０３０は、ＣＰＵ２０００の制御を受けて、ＲＡＭ２０２０、ハードディスクドライブ２０４０、フレキシブルディスク２０９０、又はＣＤ−ＲＯＭ２０９５等の記憶装置上に設けた送信バッファ領域等に記憶された送信データを読み出してネットワークへと送信し、もしくは、ネットワークから受信した受信データを記憶装置上に設けた受信バッファ領域等へと書き込む。このように、通信インターフェイス２０３０は、ＤＭＡ（ダイレクト・メモリ・アクセス）方式により記憶装置との間で送受信データを転送してもよく、これに代えて、ＣＰＵ２０００が転送元の記憶装置又は通信インターフェイス２０３０からデータを読み出し、転送先の通信インターフェイス２０３０又は記憶装置へとデータを書き込むことにより送受信データを転送してもよい。
【００７８】
また、ＣＰＵ２０００は、ハードディスクドライブ２０４０、ＣＤ−ＲＯＭドライブ２０６０（ＣＤ−ＲＯＭ２０９５）、フレキシブルディスク・ドライブ２０５０（フレキシブルディスク２０９０）等の外部記憶装置に格納されたファイルまたはデータベース等の中から、全部または必要な部分をＤＭＡ転送等によりＲＡＭ２０２０へと読み込ませ、ＲＡＭ２０２０上のデータに対して各種の処理を行う。そして、ＣＰＵ２０００は、処理を終えたデータを、ＤＭＡ転送等により外部記憶装置へと書き戻す。このような処理において、ＲＡＭ２０２０は、外部記憶装置の内容を一時的に保持するものとみなせるから、本実施形態においてはＲＡＭ２０２０及び外部記憶装置等をメモリ、記憶部、または記憶装置等と総称する。
【００７９】
本実施形態における各種のプログラム、データ、テーブル、データベース等の各種の情報は、このような記憶装置上に格納されて、情報処理の対象となる。なお、ＣＰＵ２０００は、ＲＡＭ２０２０の一部をキャッシュメモリに保持し、キャッシュメモリ上で読み書きを行うこともできる。このような形態においても、キャッシュメモリはＲＡＭ２０２０の機能の一部を担うから、本実施形態においては、区別して示す場合を除き、キャッシュメモリもＲＡＭ２０２０、メモリ、及び／又は記憶装置に含まれるものとする。
【００８０】
また、ＣＰＵ２０００は、ＲＡＭ２０２０から読み出したデータに対して、プログラムの命令列により指定された、本実施形態中に記載した各種の演算、情報の加工、条件判断、情報の検索・置換等を含む各種の処理を行い、ＲＡＭ２０２０へと書き戻す。例えば、ＣＰＵ２０００は、条件判断を行う場合においては、本実施形態において示した各種の変数が、他の変数または定数と比較して、大きい、小さい、以上、以下、等しい等の条件を満たすか否かを判断し、条件が成立した場合（又は不成立であった場合）に、異なる命令列へと分岐し、またはサブルーチンを呼び出す。
【００８１】
また、ＣＰＵ２０００は、記憶装置内のファイルまたはデータベース等に格納された情報を検索することができる。例えば、第１属性の属性値に対し第２属性の属性値がそれぞれ対応付けられた複数のエントリが記憶装置に格納されている場合において、ＣＰＵ２０００は、記憶装置に格納されている複数のエントリの中から第１属性の属性値が指定された条件と一致するエントリを検索し、そのエントリに格納されている第２属性の属性値を読み出すことにより、所定の条件を満たす第１属性に対応付けられた第２属性の属性値を得ることができる。
【００８２】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【００８３】
特許請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。
【符号の説明】
【００８４】
１０  情報処理装置、１１０  学習データ取得部、１２０  モデル生成部、１２２  分類部、１２４  算出部、１３０  コスト制約取得部、１４０  処理部、１５０  出力部、１６０  分布算出部、１７０  シミュレーション部、１９００  コンピュータ、２０００  ＣＰＵ、２０１０  ＲＯＭ、２０２０  ＲＡＭ、２０３０  通信インターフェイス、２０４０  ハードディスクドライブ、２０５０  フレキシブルディスク・ドライブ、２０６０  ＣＤ−ＲＯＭドライブ、２０７０  入出力チップ、２０７５  グラフィック・コントローラ、２０８０  表示装置、２０８２  ホスト・コントローラ、２０８４  入出力コントローラ、２０９０  フレキシブルディスク、２０９５  ＣＤ−ＲＯＭ
【図１】
0005963320.tif 000010
【図２】
0005963320.tif 000011
【図３】
0005963320.tif 000012
【図４】
0005963320.tif 000013
【図５】
0005963320.tif 000014
【図６】
0005963320.tif 000015
【図７】
0005963320.tif 000016
【図８】
0005963320.tif 000017
【図９】
0005963320.tif 000018
【図１０】
0005963320.tif 000019