特許第5963320号(P5963320)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ インターナショナル・ビジネス・マシーンズ・コーポレーションの特許一覧

特許5963320情報処理装置、情報処理方法、及び、プログラム
<>
  • 特許5963320-情報処理装置、情報処理方法、及び、プログラム 図000010
  • 特許5963320-情報処理装置、情報処理方法、及び、プログラム 図000011
  • 特許5963320-情報処理装置、情報処理方法、及び、プログラム 図000012
  • 特許5963320-情報処理装置、情報処理方法、及び、プログラム 図000013
  • 特許5963320-情報処理装置、情報処理方法、及び、プログラム 図000014
  • 特許5963320-情報処理装置、情報処理方法、及び、プログラム 図000015
  • 特許5963320-情報処理装置、情報処理方法、及び、プログラム 図000016
  • 特許5963320-情報処理装置、情報処理方法、及び、プログラム 図000017
  • 特許5963320-情報処理装置、情報処理方法、及び、プログラム 図000018
  • 特許5963320-情報処理装置、情報処理方法、及び、プログラム 図000019
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5963320
(24)【登録日】2016年7月8日
(45)【発行日】2016年8月3日
(54)【発明の名称】情報処理装置、情報処理方法、及び、プログラム
(51)【国際特許分類】
   G06N 7/00 20060101AFI20160721BHJP
   G06Q 30/02 20120101ALI20160721BHJP
【FI】
   G06N7/00 150
   G06Q30/02
【請求項の数】12
【全頁数】17
(21)【出願番号】特願2014-67159(P2014-67159)
(22)【出願日】2014年3月27日
(65)【公開番号】特開2015-191374(P2015-191374A)
(43)【公開日】2015年11月2日
【審査請求日】2016年1月12日
【早期審査対象出願】
(73)【特許権者】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
(74)【代理人】
【識別番号】100108501
【弁理士】
【氏名又は名称】上野 剛史
(74)【代理人】
【識別番号】100112690
【弁理士】
【氏名又は名称】太佐 種一
(72)【発明者】
【氏名】高橋 力矢
(72)【発明者】
【氏名】吉住 貴幸
(72)【発明者】
【氏名】水田 秀行
【審査官】 多胡 滋
(56)【参考文献】
【文献】 特開2006−331390(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 5/00−99/00
G06Q 30/02
(57)【特許請求の範囲】
【請求項1】
各状態にある対象数が施策に応じて遷移する遷移モデルにおける施策を最適化する情報処理装置であって、
複数時点および複数状態の少なくとも一方に亘る施策の合計コストを制約するコスト制約を含む複数のコスト制約を取得するコスト制約取得部と、
各時点および各状態における施策の配分を最適化対象の変数とし、各時点および各状態における施策の適用対象数と前記遷移モデルによる状態遷移に応じた各時点および各状態の推定対象数との間の誤差に応じた項を全期間の総報酬から減じた目的関数を、前記複数のコスト制約を満たしつつ最大化する処理部と、
前記目的関数を最大化する各時点および各状態における施策の配分を出力する出力部と、
を備える情報処理装置。
【請求項2】
前記処理部は、各時点および各状態における、施策の配分および前記誤差の範囲を最適化対象の変数として前記目的関数を最大化する請求項1に記載の情報処理装置。
【請求項3】
前記処理部は、前記誤差を重み付けした項を全期間の総報酬から減じた前記目的関数を最大化する請求項1または2に記載の情報処理装置。
【請求項4】
前記処理部は、一の時点の各状態における施策の適用対象数に対し、当該一の時点の前の時点の各状態における施策の配分に応じた状態遷移によって前記一の時点および各状態に遷移してくる対象者数を算出して推定対象数とする請求項1から3のいずれか一項に記載の情報処理装置。
【請求項5】
前記処理部は、各時点および各状態における施策の適用対象数の合計が予め定められた全対象数と等しくなる旨の制約条件を更に用いて、前記目的関数を最大化する請求項1から4のいずれか一項に記載の情報処理装置。
【請求項6】
前記コスト制約取得部は、施策毎の合計コストを制約するコスト制約を取得する請求項1から5のいずれか一項に記載の情報処理装置。
【請求項7】
複数の対象について施策に対する反応を記録した学習データを取得する学習データ取得部と、
前記学習データに基づいて、前記遷移モデルを生成するモデル生成部と、
を備える請求項1から6のいずれか一項に記載の情報処理装置。
【請求項8】
前記モデル生成部は、
前記学習データに含まれる前記複数の対象を各状態に分類する分類部と、
各状態の対象が施策に応じてどの状態に遷移したかに基づいて、状態遷移確率を算出する算出部と、
を備える請求項7に記載の情報処理装置。
【請求項9】
前記分類部は、
前記学習データに含まれる前記複数の対象のそれぞれに対する施策および反応に基づいて、当該対象の状態ベクトルを生成し、
前記状態ベクトルにより将来の報酬を回帰する際の予測精度が最大となる軸か、または前記状態ベクトルの分散が最大となる軸によって前記複数の対象を分類していくことにより、前記複数の対象を複数の状態に分類する
請求項8に記載の情報処理装置。
【請求項10】
前記学習データに基づいて、対象の状態の遷移確率分布を算出する分布算出部と、
前記出力部が出力した各時点および各状態における施策の配分に応じて、前記遷移確率分布に基づく状態遷移をシミュレーションするシミュレーション部と、
を更に備える請求項7から9のいずれか一項に記載の情報処理装置。
【請求項11】
コンピュータにより実行される、各状態にある対象数が施策に応じて遷移する遷移モデルにおける施策を最適化する情報処理方法であって、
複数時点および複数状態の少なくとも一方に亘る施策の合計コストを制約するコスト制約を含む複数のコスト制約を取得するコスト制約取得段階と、
各時点および各状態における施策の配分を最適化対象の変数とし、各時点および各状態における施策の適用対象数と前記遷移モデルによる状態遷移に応じた各時点および各状態の推定対象数との間の誤差に応じた項を全期間の総報酬から減じた目的関数を、前記複数のコスト制約を満たしつつ最大化する処理段階と、
前記目的関数を最大化する各時点および各状態における施策の配分を出力する出力段階と、
を備える情報処理方法。
【請求項12】
コンピュータを各状態にある対象数が施策に応じて遷移する遷移モデルにおける施策を最適化する情報処理装置として機能させるプログラムであって、
実行されると当該コンピュータを、
複数時点および複数状態の少なくとも一方に亘る施策の合計コストを制約するコスト制約を含む複数のコスト制約を取得するコスト制約取得部と、
各時点および各状態における施策の配分を最適化対象の変数とし、各時点および各状態における施策の適用対象数と前記遷移モデルによる状態遷移に応じた各時点および各状態の推定対象数との間の誤差に応じた項を全期間の総報酬から減じた目的関数を、前記複数のコスト制約を満たしつつ最大化する処理部と、
前記目的関数を最大化する各時点および各状態における施策の配分を出力する出力部と、
して機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理方法、及び、プログラムに関する。
【背景技術】
【0002】
過去の販売実績等の記録をマルコフ決定過程又は強化学習で定式化し、将来実行する施策を最適化する手法が知られている(非特許文献1−2及び特許文献1−2)。また、単一の時点、又は、期間全体のみの予算の制約を組み込んだ予算制約付きマルコフ決定過程(CMDP)による施策の最適化手法が知られている(特許文献3及び非特許文献3)。
[非特許文献1]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
[非特許文献2]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
[非特許文献3]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.
[特許文献1]特開2010−191963号公報
[特許文献2]特表2011−513817号公報
[特許文献3]特開2012−190062号公報
【発明の概要】
【発明が解決しようとする課題】
【0003】
しかし、複数時点、複数期間、及び/又は、複数状態に亘る予算等のコスト制約を組み入れた上で、高速かつ高精度で施策を最適化する手法は知られていない。
【課題を解決するための手段】
【0004】
本発明の第1の態様においては、各状態にある対象数が施策に応じて遷移する遷移モデルにおける施策を最適化する情報処理装置であって、複数時点および複数状態の少なくとも一方に亘る施策の合計コストを制約するコスト制約を含む複数のコスト制約を取得するコスト制約取得部と、各時点および各状態における施策の配分を最適化対象の変数とし、各時点および各状態における施策の適用対象数と遷移モデルによる状態遷移に応じた各時点および各状態の推定対象数との間の誤差に応じた項を全期間の総報酬から減じた目的関数を、複数のコスト制約を満たしつつ最大化する処理部と、目的関数を最大化する各時点および各状態における施策の配分を出力する出力部と、を備える情報処理装置を提供する。
【0005】
なお、上記の発明の概要は、本発明の特徴の全てを列挙したものではない。また、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【図面の簡単な説明】
【0006】
図1】本実施形態の情報処理装置10のブロック図を示す。
図2】本実施形態の情報処理装置10による処理フローを示す。
図3】コスト制約取得部130が取得するコスト制約の一例を示す。
図4】出力部150が出力する施策の配分の一例を示す。
図5】本実施形態のS130の具体的な処理フローを示す。
図6】分類部122が回帰木により状態ベクトルを分類する例を示す。
図7】分類部122が二分木により状態ベクトルを分類する例を示す。
図8】本実施形態の情報処理装置10による処理フローを示す。
図9】分布算出部160が算出する遷移確率分布の一例を示す。
図10】コンピュータ1900のハードウェア構成の一例を示す。
【発明を実施するための形態】
【0007】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【0008】
図1は、本実施形態に係る情報処理装置10のブロック図を示す。本実施形態の情報処理装置10は、複数の状態が定義され、各状態にある対象数(例えば、各状態に分類される対象の数)が施策に応じて遷移する遷移モデルにおいて、複数時点及び/又は複数状態に亘るコスト制約を組み入れた上で施策を最適化する。情報処理装置10は、学習データ取得部110、モデル生成部120、コスト制約取得部130、処理部140、出力部150、分布算出部160、及び、シミュレーション部170を備える。
【0009】
学習データ取得部110は、複数の対象について施策に対する反応を記録した学習データを取得する。例えば、学習データ取得部110は、データベース等から複数の消費者等の対象に対する広告等の施策、及び、消費者等による購買等の反応の記録を学習データとして取得する。学習データ取得部110は、取得した学習データをモデル生成部120、及び、分布算出部160に供給する。
【0010】
モデル生成部120は、学習データ取得部110が取得した学習データに基づいて、複数の状態が定義され、対象が状態間をある確率で遷移する遷移モデルを生成する。モデル生成部120は、分類部122、及び、算出部124を有する。
【0011】
分類部122は、学習データに含まれる複数の対象を各状態に分類する。例えば、分類部122は、学習データに含まれる複数の対象に対する施策、及び、反応等の記録から、対象ごとに状態ベクトルの時系列を生成し、状態ベクトル空間上の位置に応じて複数の状態ベクトルを複数の状態に分類する。
【0012】
算出部124は、分類部122が分類した複数の状態において、各状態の対象が施策に応じて各状態に遷移する確率を示す状態遷移確率、及び、各状態で施策を実行したときに得られる直近の期待利得を、回帰分析を用いて算出する。算出部124は、算出した状態遷移確率、及び、期待利得を処理部140に供給する。
【0013】
コスト制約取得部130は、複数時点および複数状態の少なくとも一方に亘る施策の合計コストを制約するコスト制約を含む複数のコスト制約を取得する。例えば、コスト制約取得部130は、ユーザから、1又は2以上の時点を含む連続した期間において、指定した1又は2以上の状態の対象に指定した1又は2以上の施策を実行するために費やすことができる予算金額をコスト制約として取得する。コスト制約取得部130は、取得したコスト制約を処理部140に供給する。
【0014】
処理部140は、全対象及び全期間の利得の合計を最大化する最適な施策を取得するために、各時点および各状態における複数の対象に対する施策の配分を最適化対象の変数とし、各時点および各状態における施策の適用対象数と遷移モデルによる状態遷移に応じた各時点および各状態の推定対象数との間の誤差に応じた項を全期間の総報酬から減じた目的関数を、複数のコスト制約を満たしつつ最大化する。処理部140は、目的関数を最大化する各時点および各状態における施策の配分を取得し、出力部150に供給する。
【0015】
出力部150は、目的関数を最大化する各時点および各状態における施策の配分を出力する。出力部150は、施策の配分をシミュレーション部170に出力する。また、出力部150は、施策の配分を情報処理装置10の表示装置に表示させ、及び/又は、記憶媒体等に出力してもよい。
【0016】
分布算出部160は、学習データに基づいて、対象の状態の遷移確率分布を算出する。例えば、分類部122は、学習データに含まれる複数の対象の施策等の記録から、対象毎に状態ベクトルの時系列を生成し、ある状態ベクトルをとる対象が施策に応じてどの状態ベクトルに遷移したか、および各状態ベクトルが離散有限個定義された状態のどれに所属するかに基づき、遷移確率分布を算出する。分布算出部160は、算出した遷移確率分布をシミュレーション部170に供給する。
【0017】
シミュレーション部170は、出力部150が出力した各時点、及び、各状態における施策の配分に応じて、分布算出部160が算出した遷移確率分布に基づく対象の状態遷移、及び、実際に得られる利得をシミュレーションする。
【0018】
このように、本実施形態の情報処理装置10は、学習データから算出した状態遷移確率、及び、期待利得に基づき、複数の期間/複数の状態に亘るコスト制約を満たす施策の配分を出力する。これにより、情報処理装置10によれば、コストに関する制約が厳しい現実に近い環境において最適な施策の配分を提供することができる。
【0019】
図2は、本実施形態の情報処理装置10による処理フローを示す。本実施形態において、情報処理装置10は、S110〜S190の処理を実行することにより、最適な施策の配分を出力する。
【0020】
まず、S110において、学習データ取得部110は、複数の対象について施策に対する反応を記録した学習データを取得する。例えば、学習データ取得部110は、複数の顧客、消費者、購読者及び/又は法人等を対象として、ダイレクトメール、Eメール、及び/又はその他の広告等の対象に施策(何もしないことも施策に含んでよい)を実行して刺激を与えたときの、対象となる商品等の購買、購読、及び/又はその他の応答を含む対象の反応の時系列の記録を学習データとして取得する。学習データ取得部110は、取得した学習データをモデル生成部120に供給する。
【0021】
次にS130において、モデル生成部120は、学習データに含まれる複数の対象を各状態に分類し、各状態及び各施策の状態遷移確率、並びに、期待利得を算出する。モデル生成部120は、状態遷移確率、及び、期待利得を処理部140に供給する。なお、S130の具体的な処理内容は後述する。
【0022】
次にS150において、コスト制約取得部130は、複数時点、及び、複数状態の少なくとも一方に亘る施策の合計コストを制約するコスト制約を含む複数のコスト制約を取得する。コスト制約取得部130は、施策毎の合計コストを制約するコスト制約を取得してもよい。
【0023】
例えば、コスト制約取得部130は、金銭的コストの制約(例えば、施策に費やすことができる予算の金額等)、施策の実行する回数コストの制約(例えば、施策を実行可能な回数等)、消費する資源等の資源コストの制約(例えば、施策の実行において使用可能な資源重量の合計等)、及び/又は、環境負荷等の社会的コストの制約(例えば、施策において排出可能なCO量等)など施策を実行することに発生するコストの制約を、コスト制約として取得してよい。コスト制約取得部130は、1以上のコスト制約を取得してよく、特に複数のコスト制約を取得してよい。
【0024】
図3は、コスト制約取得部130が取得するコスト制約の一例を示す。コスト制約取得部130は、図示するように、全体又は一部の時点を含む期間、1又は2以上の状態、及び、1又は2以上の施策毎に定義されたコスト制約を取得してよい。
【0025】
例えば、コスト制約取得部130は、時点1〜t1までの期間において、状態s1〜s3にある対象に対して施策1を実行する予算として10Mドル、施策2及び施策3を実行する予算として50Mドルを取得し、同期間の状態s4及び状態s5にある対象に対して全施策の実行予算として30Mドルを取得してよい。また、例えば、コスト制約取得部130は、時点t1〜t2までの期間において、全状態にある対象に対して全施策を実行する予算として20Mドルを取得してよい。
【0026】
図2に戻り、次にS170において、処理部140は、各時点および各状態における施策の配分、及び、誤差の範囲を最適化対象の変数として、目的関数を複数のコスト制約を満たしつつ最大化する各変数の値を算出する。
【0027】
処理部140が最大化の対象とする目的関数の一例を数式(1)に示す。
【数1】
ここで、γは予め定められた0<γ≦1となる将来利得に対する割引率を示し、nt,s,aは時点tおよび状態sにおいて施策aが配分される適用対象の数を示し、Nt,sは時点tにおける状態sにおける対象数を示し、rt,s,aは時点t及び状態sにおける施策aによる期待利得を示し、σt,sは時点t及び状態sにおける施策の適用対象数と遷移モデルによる状態遷移に応じた時点t及び状態sの推定対象数との間の誤差の範囲により与えられるスラック変数を示し、ηt,sはスラック変数σt,sに対して与えられる重み係数を示す。
【0028】
数式(1)に示すように、適用対象数nt,s,aと期待利得rt,s,aとの積の全施策a∈A及び全状態s∈Sにおける総和に各時刻tに対応する割引率の累乗γを乗じた値の全時刻(t=1,...,T)における総和を全期間の総報酬に応じた項とし、重み係数ηt,sとスラック変数σt,sとの積の全状態及びt=2以降の全時刻における総和を誤差に応じた項としたときに、目的関数は全期間の総報酬に応じた項から誤差に応じた項を減じることにより得られる。
【0029】
なお、数式(1)におけるΣa∈A1,s,a=N1,sは、期間の開始時点(時点1)の状態sにおいて施策aが配分される適用対象数nt,s,aの全施策a∈Aにおける総和を、対象数Nt,sにより定義する。これにより、処理部140は、開始時点における各状態sの対象数(例えば、人口)を決定的に与える。
【0030】
重み係数ηt,sは、予め定められた係数であってよく、これに代えて、処理部140は、重み係数ηt,sをηt,s=λγΣ(a∈A)|rt,s,a|から算出してもよい。ここで、λはグローバルリラクゼーションハイパパラメータであり、例えば、処理部140は、λを1、10、10−1、10、又は10−2から選択してよく、不連続状態マルコフ決定過程、又は、エージェントベースシミュレーションの結果に基づき最適なλを設定してよい。
【0031】
処理部140が最適化の対象とするスラック変数σt,sに対する制約を数式(2)及び(3)に示す。
【数2】
【数3】
ここで、ps|s',aは施策aを実行したときに状態s'から状態sに遷移する確率に対応する状態遷移確率を示す。
【0032】
数式(2)及び(3)の不等式右辺の括弧内の式は、各時点および各状態における施策の適用対象数と遷移モデルによる状態遷移に応じた各時点および各状態の推定対象数との間の誤差を示す。
【0033】
例えば、Σnt+1,s,aは一の時点t+1の各状態sにおける施策aの適用対象数の全施策a∈Aに対する総和である。処理部140は、時点t+1及び状態sのセグメントにΣnt+1,s,aの対象数を実際に割り当てる。
【0034】
また、例えば、ΣΣps|s',a't,s',a'は、処理部140が、一の時点t+1の前の時点tの各状態s'(s'∈S)における施策aの適用対象数nt,s',a' の配分及び状態遷移確率ps|s',aに応じた状態遷移によって一の時点t+1および各状態sに遷移してくると推定して算出する推定対象者数の全状態s'∈S及び全施策a'∈Aに対する総和である。
【0035】
つまり、数式(2)及び(3)の不等式右辺の括弧内の式は、時点t+1及び状態sに存在する実際の対象数と状態遷移確率等及び前の時点tの対象数により推定される推定対象数との間の誤差を表す。処理部140は、式(2)及び(3)の不等式の制約により、スラック変数σt,sの下限値に当該誤差の絶対値を与える。従って、誤差が大きく遷移モデルの信頼性が低いと推定される条件下でスラック変数σt,sは増大する。
【0036】
なお、処理部140は、スラック変数σt,sの下限値に誤差の絶対値を与える代わりに、0と誤差とのうち大きい値である一方をスラック変数σt,sの下限値としてもよい。
【0037】
数式(1)では、誤差に応じた項が増大すると目的関数が減少する関係にあり、誤差に応じた項はスラック変数σt,sに比例して増大する。これにより、処理部140は、遷移モデルの信頼性の低さを罰則値として目的関数に導入し、目的関数を最大化することで総報酬の大きさと信頼性の大きさとを両立する条件を算出する。
【0038】
処理部140は、数式(4)に示すコスト制約を更に用いて、目的関数を最大化する。
【数4】
ここで、ct,s,aは、時点tで状態sに施策aを実行する場合のコストを示し、Cはi番目(i=1,...,I、Iは1以上の整数)のコスト制約に関する合計コストの指定値、上限値、又は、下限値を示す。コストは、時点t、状態s、及び/又は、施策aごとに予め定められてよく、又は、コスト制約取得部130がユーザから取得してもよい。
【0039】
処理部140は、数式(5)に示す対象数に関する制約条件を更に用いて、目的関数を最大化する。
【数5】
ここで、Nは、予め定められた、又は、ユーザにより定義される全対象者数(例えば、全消費者人口)を示す。
【0040】
数式(5)は、各時点tおよび各状態sにおける施策aの適用対象数nt,s,aの合計が予め定められた全対象数Nと等しくなる旨の制約条件を示す。これにより、処理部140は、全ての時刻において、全状態における全施策の対象者の数が、全消費者人口に常に等しいことを制約条件に含める。
【0041】
処理部140は、数式(1)〜(5)に示す制約を含む線形計画問題又は混合整数計画問題を解くことにより、各時点t、各状態s、及び、各施策aに割り当てられる適用対象数nt,s,aを施策の配分として算出する。処理部140は、算出した施策の配分を出力部150に供給する。
【0042】
次にS190において、出力部150が目的関数を最大化する各時点、及び、各状態における施策の配分を出力する。
【0043】
図4は、出力部150が出力する施策の配分の一例を示す。図示するように、出力部150は、各時点t及び各状態sごとの各施策aの適用対象数nt,s,aを出力する。例えば、出力部150は、時刻tの状態s1にある対象者に対して、施策1(例えばEメール)を30人に対して実施し、施策2(例えばダイレクトメール)を140人に対して実施し、施策3(例えば何もしないこと)を20人に対して実施することを示す施策の配分を出力する。また、出力部150は、時刻tの状態s2にある対象者に対して、施策1を10人に対して実施し、施策2を30人に対して実施し、施策3を0人に対して実施することを示す施策の配分を出力する。
【0044】
このように本実施形態の情報処理装置10は、学習データに基づいて、複数時点、複数期間及び/又は複数状態に亘るコスト制約を満たす施策の配分を出力する。これにより、情報処理装置10は、例えば、一定期間に組織内の複数の部門のそれぞれに割り当てられる予算が、様々な要因により制限される場合でも、それぞれの部門の予算に適合した最適な施策の配分を出力することができる。
【0045】
特に情報処理装置10は、最大化の対象となる目的関数に対象数の誤差に関する項、すなわちスラック変数を含む項を導入することにより、複数時点、複数期間及び/又は複数状態に亘るコスト制約を線形計画問題等の高速で解くことが可能な問題として扱い、大きな総報酬を高い精度でもたらす施策の配分を出力することができる。これに対して、最大化の対象となる目的関数に対象数の誤差に関する項を含まない場合は、誤差の大きい、即ち、十分に正確でない遷移モデルにおいて総報酬を最大化する施策の配分を出力する可能性があるので、結果として総報酬が最大化されない施策の配分を出力する可能性が生じる。
【0046】
また、情報処理装置10は、線形計画問題等により最適化を実行するので、極めて高次元のモデル、すなわち、多種類の状態及び/又は施策を有するモデルの問題を解決することができる。更に、情報処理装置10は、多目的最適化問題にも容易に拡張することができる。例えば、情報処理装置10は、期待利得rt,s,aが単純なスカラーでなく、複数の値を有する場合(例えば、ネット店舗の売上と実店舗の売上を分けて考慮する場合)、これらの値の線形結合で表される多目的関数を目的関数とすることにより、容易に最適化を実行することができる。
【0047】
図5は、本実施形態のS130の具体的な処理フローを示す。モデル生成部120は、S130の処理においてS132〜S136の処理を実行する。
【0048】
まず、S132において、モデル生成部120の分類部122は、学習データに含まれる複数の対象のそれぞれに対する施策および反応に基づいて、当該対象の状態ベクトルを生成する。例えば、分類部122は、対象のそれぞれについて、予め定められた期間内において、対象に対して実行された施策及び/又は対象の反応の基づいた値を成分として有する状態ベクトルを生成する。
【0049】
一例として、分類部122は、第1成分としてある一の消費者が直近過去1週間で購買をした回数を有し、第2成分として当該一の消費者が直近過去2週間で購買をした回数を有し、第3成分として当該一の消費者に対し直近過去1週間に送信されたダイレクトメールの数を有する状態ベクトルを生成してよい。
【0050】
次にS134において、分類部122は、複数の対象を状態ベクトルに基づいて分類する。例えば、分類部122は、教師あり学習又は教師なし学習を適用して状態ベクトルに決定木を適合することにより、複数の対象を分類する。
【0051】
教師あり学習の例として、分類部122は、状態ベクトルにより将来の報酬を回帰する際の予測精度が最大となる軸で複数の対象に係る状態ベクトルを分類する。例えば、分類部122は、一の対象の状態ベクトルを入力ベクトルxとし、当該一の対象の状態ベクトルを観測した時刻以降の予め定められた期間における対象からの反応を示すベクトル(例えば、状態ベクトルの観測時点から1年間の間に計上される製品毎の売上金額を成分とするベクトル)を出力ベクトルyとし、出力ベクトルyを最も精度よく予測できる回帰木を適合する。分類部122は、回帰木の葉ノード毎に各状態を割り当てることにより、複数の対象に係る状態ベクトルを離散化して、複数の対象を複数の状態に分類する。
【0052】
図6は、分類部122が回帰木により状態ベクトルを分類する例を示す。ここでは、分類部122が、2つの成分x1及びx2を有する複数の状態ベクトルを分類する例を示す。図中のグラフの縦軸及び横軸は状態ベクトルの成分x1及びx2の大きさを示し、グラフにプロットされる複数の点は複数の対象に対応する複数の状態ベクトルを示し、破線で囲まれる領域は回帰木の各葉ノードに含まれる条件となる状態ベクトルの範囲を示す。
【0053】
図示するように、分類部122は、複数の状態ベクトルを回帰木の葉ノード毎に分類する。これにより、分類部122は、複数の状態ベクトルを複数の状態s1〜s3に分類する。
【0054】
教師なし学習の例として、分類部122は、状態ベクトルの分散が最大となる軸においてしきい値を用いて状態ベクトル空間を二分割する二分木によって複数の対象に係る状態ベクトルを分類していくことにより、複数の対象に係る状態ベクトルを離散化して、複数の対象を複数の状態に分類する。
【0055】
図7は、分類部122が二分木により状態ベクトルを分類する例を示す。図6と同様に、図中のグラフの縦軸及び横軸は状態ベクトルの成分x1及びx2の大きさを示し、グラフにプロットされる複数の点は複数の対象に対応する状態ベクトルを示す。
【0056】
分類部122は、複数の状態ベクトルを軸で分割して複数のグループに分けたときに、分割後の全グループの状態ベクトルの分散の合計が最大となるような軸を算出し、算出した軸で複数の状態ベクトルを二分割することで離散化する。図示するように、分類部122は、予め定められた回数分割を繰り返すことで、複数の対象に係る複数の状態ベクトルを複数の状態s1〜s4に分類する。
【0057】
図5に戻り、次にS136において、算出部124は、状態遷移確率ps|s',a、及び、期待利得rt,s,aを算出する。例えば、算出部124は、分類部122により分類された各状態の対象が施策に応じてどの状態に遷移したかに基づき回帰分析を実行して、状態遷移確率ps|s',aを算出する。一例として、算出部124は、Modified Kneser−Ney Smoothingを用いることにより、状態遷移確率ps|s',aを算出してよい。
【0058】
また、例えば、算出部124は、分類部122により分類された各状態の対象が施策を実行した直後にどの程度の大きさの期待利得をもたらしたかに基づき、回帰分析を実行して期待利得rt,s,aを算出する。一例として、算出部124は、L1−正則化ポアソン回帰及び/又はL1−正則化対数正規回帰を用いて、精度よく期待利得rt,s,aを算出してよい。なお、算出部124は、期待利得として、施策を実行した際に期待される利益から施策の実行に必要なコストを減じたもの(例えば、売上−マーケティングコスト)を用いてよい。
【0059】
図8は、本実施形態の情報処理装置10による処理フローを示す。本実施形態において、情報処理装置10は、S510〜S550の処理を実行することにより、出力した施策の配分を実行した結果をより正確にシミュレーションする。
【0060】
まず、S510において、学習データ取得部110は、複数の対象について施策に対する反応を記録した学習データを取得する。例えば、学習データ取得部110は、S110において取得した学習データと同一の学習データを取得してく、これに代えて、S110において取得した学習データと同一の対象、又は、同一の対象を少なくとも一部含む対象について異なる期間の学習データを取得してよい。学習データ取得部110は、取得した学習データを分布算出部160に供給する。
【0061】
次にS530において、分布算出部160は、学習データに基づいて、対象の状態の遷移確率分布を算出する。分布算出部160は、対象nについて時点tの状態ベクトルφn,tが施策aの実行により遷移することにより時点t+1において取り得る状態ベクトルφn,t+1の確率分布を表す遷移確率分布P(a,φn,t)を回帰分析により算出する。
【0062】
例えば、分布算出部160は、施策aごとに、状態ベクトルφn,tを入力とし、時刻t+1における反応の単位時間あたり発生確率を出力としたポアソン回帰モデルに滑走窓を適用して遷移確率分布Pを算出する。例えば、状態ベクトルφn,tの1つの成分が「過去1週間のダイレクトメール点数」である場合、施策aであるダイレクトメールを実行した場合に当該成分は1増加し、滑走窓の期間である1週間を経過すると1減少する。
【0063】
図9は、分布算出部160が算出する遷移確率分布の一例を示す。図中の点は時点tの状態ベクトルφn,tを示し、図中のハッチがかけられた楕円領域はハッチの濃さに応じて遷移確率の大きさを示す。図示するように、状態ベクトルφn,tを有する対象は施策aが実行されることにより、遷移確率分布P(a,φn,t)で示される確率で対応する位置の状態ベクトルφn,t+1を有する。分布算出部160は、算出した遷移確率分布をシミュレーション部170に供給する。
【0064】
次にS550において、シミュレーション部170は、S190で出力部150が出力した各時点および各状態における施策の配分に応じて、分布算出部160が算出した遷移確率分布に基づく状態遷移、及び、実際の利得をシミュレーションする。
【0065】
例えば、シミュレーション部170は、期間中の時点毎に、出力部150が出力した施策の配分を実行した場合に得られる利得を算出し、施策の配分を実行した結果に応じて遷移確率分布を更新する。これにより、シミュレーション部170は、出力部150が出力した最適な施策の配分を実行した際の結果を取得することができる。
【0066】
このように本実施形態の情報処理装置10は、複数時点及び/又は複数状態に亘るコスト制約を満たす施策の配分により、実際に得られる結果をシミュレーションすることにより、コスト制約に関するWhat−If分析を可能にする。これにより、情報処理装置10は、例えば、組織内の複数の部門の予算を決定するに当たり、適切な予算配分を分析することができる。
【0067】
ここで、本実施形態の変形例について説明する。本変形例の情報処理装置10における出力部150は、コスト制約を充足することが必須条件ではないが、コスト制約を可能な限り遵守することが望ましい場合の施策の配分を算出する。本変形例で、処理部140は、S170を実行するに当たり、数式(1)〜(5)に示す制約を用いることに代えて、数式(6)〜(8)に係る制約を使用してもよい。
【数6】
【数7】
【数8】
ここで、σはコスト制約ごとに与えられるスラック変数を示し、重み係数ηはスラック変数σに対して与えられる重み係数を示す。
【0068】
本変形例では、数式(2)及び(3)で施策の適用対象数と推定対象数との間の誤差によりスラック変数の制約を与える代わりに、数式(8)において合計コストCにスラック変数σを加え、数式(7)により施策の適用対象数及び推定対象数が等しいものとしている。
【0069】
数式(8)において、スラック変数σt,sが増大するとコスト制約に関する誤差が大きくなる。ここで、数式(6)では、誤差に応じた項が増大すると目的関数が減少する関係にあり、誤差に応じた項はスラック変数σt,sに比例して増大する。これにより、処理部140は、与えられたコスト制約に対する合致度の低さを罰則値として目的関数に導入し、目的関数を最大化することで総報酬の大きさとコスト制約に対する合致度の大きさとを両立する条件を算出する。
【0070】
図10は、情報処理装置10として機能するコンピュータ1900のハードウェア構成の一例を示す。本実施形態に係るコンピュータ1900は、ホスト・コントローラ2082により相互に接続されるCPU2000、RAM2020、グラフィック・コントローラ2075、及び表示装置2080を有するCPU周辺部と、入出力コントローラ2084によりホスト・コントローラ2082に接続される通信インターフェイス2030、ハードディスクドライブ2040、及びCD−ROMドライブ2060を有する入出力部と、入出力コントローラ2084に接続されるROM2010、フレキシブルディスク・ドライブ2050、及び入出力チップ2070を有するレガシー入出力部を備える。
【0071】
ホスト・コントローラ2082は、RAM2020と、高い転送レートでRAM2020をアクセスするCPU2000及びグラフィック・コントローラ2075とを接続する。CPU2000は、ROM2010及びRAM2020に格納されたプログラムに基づいて動作し、各部の制御を行う。グラフィック・コントローラ2075は、CPU2000等がRAM2020内に設けたフレーム・バッファ上に生成する画像データを取得し、表示装置2080上に表示させる。これに代えて、グラフィック・コントローラ2075は、CPU2000等が生成する画像データを格納するフレーム・バッファを、内部に含んでもよい。
【0072】
入出力コントローラ2084は、ホスト・コントローラ2082と、比較的高速な入出力装置である通信インターフェイス2030、ハードディスクドライブ2040、CD−ROMドライブ2060を接続する。通信インターフェイス2030は、有線又は無線によりネットワークを介して他の装置と通信する。また、通信インターフェイスは、通信を行うハードウェアとして機能する。ハードディスクドライブ2040は、コンピュータ1900内のCPU2000が使用するプログラム及びデータを格納する。CD−ROMドライブ2060は、CD−ROM2095からプログラム又はデータを読み取り、RAM2020を介してハードディスクドライブ2040に提供する。
【0073】
また、入出力コントローラ2084には、ROM2010と、フレキシブルディスク・ドライブ2050、及び入出力チップ2070の比較的低速な入出力装置とが接続される。ROM2010は、コンピュータ1900が起動時に実行するブート・プログラム、及び/又は、コンピュータ1900のハードウェアに依存するプログラム等を格納する。フレキシブルディスク・ドライブ2050は、フレキシブルディスク2090からプログラム又はデータを読み取り、RAM2020を介してハードディスクドライブ2040に提供する。入出力チップ2070は、フレキシブルディスク・ドライブ2050を入出力コントローラ2084へと接続するとともに、例えばパラレル・ポート、シリアル・ポート、キーボード・ポート、マウス・ポート等を介して各種の入出力装置を入出力コントローラ2084へと接続する。
【0074】
RAM2020を介してハードディスクドライブ2040に提供されるプログラムは、フレキシブルディスク2090、CD−ROM2095、又はICカード等の記録媒体に格納されて利用者によって提供される。プログラムは、記録媒体から読み出され、RAM2020を介してコンピュータ1900内のハードディスクドライブ2040にインストールされ、CPU2000において実行される。
【0075】
コンピュータ1900にインストールされ、コンピュータ1900を情報処理装置10として機能させるプログラムは、学習データ取得モジュール、モデル生成モジュール、分類モジュール、算出モジュール、コスト制約取得モジュール、処理モジュール、出力モジュール、分布算出モジュール、及び、シミュレーションモジュールを備える。これらのプログラム又はモジュールは、CPU2000等に働きかけて、コンピュータ1900を、学習データ取得部110、モデル生成部120、分類部122、算出部124、コスト制約取得部130、処理部140、出力部150、分布算出部160、及び、シミュレーション部170としてそれぞれ機能させてよい。
【0076】
これらのプログラムに記述された情報処理は、コンピュータ1900に読込まれることにより、ソフトウェアと上述した各種のハードウェア資源とが協働した具体的手段である学習データ取得部110、モデル生成部120、分類部122、算出部124、コスト制約取得部130、処理部140、出力部150、分布算出部160、及び、シミュレーション部170として機能する。そして、これらの具体的手段によって、本実施形態におけるコンピュータ1900の使用目的に応じた情報の演算又は加工を実現することにより、使用目的に応じた特有の情報処理装置10が構築される。
【0077】
一例として、コンピュータ1900と外部の装置等との間で通信を行う場合には、CPU2000は、RAM2020上にロードされた通信プログラムを実行し、通信プログラムに記述された処理内容に基づいて、通信インターフェイス2030に対して通信処理を指示する。通信インターフェイス2030は、CPU2000の制御を受けて、RAM2020、ハードディスクドライブ2040、フレキシブルディスク2090、又はCD−ROM2095等の記憶装置上に設けた送信バッファ領域等に記憶された送信データを読み出してネットワークへと送信し、もしくは、ネットワークから受信した受信データを記憶装置上に設けた受信バッファ領域等へと書き込む。このように、通信インターフェイス2030は、DMA(ダイレクト・メモリ・アクセス)方式により記憶装置との間で送受信データを転送してもよく、これに代えて、CPU2000が転送元の記憶装置又は通信インターフェイス2030からデータを読み出し、転送先の通信インターフェイス2030又は記憶装置へとデータを書き込むことにより送受信データを転送してもよい。
【0078】
また、CPU2000は、ハードディスクドライブ2040、CD−ROMドライブ2060(CD−ROM2095)、フレキシブルディスク・ドライブ2050(フレキシブルディスク2090)等の外部記憶装置に格納されたファイルまたはデータベース等の中から、全部または必要な部分をDMA転送等によりRAM2020へと読み込ませ、RAM2020上のデータに対して各種の処理を行う。そして、CPU2000は、処理を終えたデータを、DMA転送等により外部記憶装置へと書き戻す。このような処理において、RAM2020は、外部記憶装置の内容を一時的に保持するものとみなせるから、本実施形態においてはRAM2020及び外部記憶装置等をメモリ、記憶部、または記憶装置等と総称する。
【0079】
本実施形態における各種のプログラム、データ、テーブル、データベース等の各種の情報は、このような記憶装置上に格納されて、情報処理の対象となる。なお、CPU2000は、RAM2020の一部をキャッシュメモリに保持し、キャッシュメモリ上で読み書きを行うこともできる。このような形態においても、キャッシュメモリはRAM2020の機能の一部を担うから、本実施形態においては、区別して示す場合を除き、キャッシュメモリもRAM2020、メモリ、及び/又は記憶装置に含まれるものとする。
【0080】
また、CPU2000は、RAM2020から読み出したデータに対して、プログラムの命令列により指定された、本実施形態中に記載した各種の演算、情報の加工、条件判断、情報の検索・置換等を含む各種の処理を行い、RAM2020へと書き戻す。例えば、CPU2000は、条件判断を行う場合においては、本実施形態において示した各種の変数が、他の変数または定数と比較して、大きい、小さい、以上、以下、等しい等の条件を満たすか否かを判断し、条件が成立した場合(又は不成立であった場合)に、異なる命令列へと分岐し、またはサブルーチンを呼び出す。
【0081】
また、CPU2000は、記憶装置内のファイルまたはデータベース等に格納された情報を検索することができる。例えば、第1属性の属性値に対し第2属性の属性値がそれぞれ対応付けられた複数のエントリが記憶装置に格納されている場合において、CPU2000は、記憶装置に格納されている複数のエントリの中から第1属性の属性値が指定された条件と一致するエントリを検索し、そのエントリに格納されている第2属性の属性値を読み出すことにより、所定の条件を満たす第1属性に対応付けられた第2属性の属性値を得ることができる。
【0082】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【0083】
特許請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。
【符号の説明】
【0084】
10 情報処理装置、110 学習データ取得部、120 モデル生成部、122 分類部、124 算出部、130 コスト制約取得部、140 処理部、150 出力部、160 分布算出部、170 シミュレーション部、1900 コンピュータ、2000 CPU、2010 ROM、2020 RAM、2030 通信インターフェイス、2040 ハードディスクドライブ、2050 フレキシブルディスク・ドライブ、2060 CD−ROMドライブ、2070 入出力チップ、2075 グラフィック・コントローラ、2080 表示装置、2082 ホスト・コントローラ、2084 入出力コントローラ、2090 フレキシブルディスク、2095 CD−ROM
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10