(58)【調査した分野】(Int.Cl.,DB名)
前記マス施策設定部は、2以上の状態における対象に対して一括して行う前記マス施策について、各状態に属すると予め決定された対象数と、当該2以上の状態に共通の前記到達率とに基づいて、当該2以上の状態のそれぞれにおける前記マス施策の適用対象数を設定する請求項1に記載の情報処理装置。
前記マス施策設定部は、前記マス施策について、各時点及び各状態における予め決定された対象数と、前記マス施策が対象に届く到達率とに基づいて、各時点及び各状態における前記マス施策の適用対象数を設定し、
前記処理部は、前記マス施策については各時点における前記到達率を最適化対象の変数とし、状態毎に行うダイレクト施策については各時点及び各状態における施策の配分を最適化対象の変数として、前記目的関数を前記コスト制約を満たしつつ最大化する
請求項1または2に記載の情報処理装置。
前記マス施策設定部は、前記目的関数を前記コスト制約を満たしつつ最大化して得られた結果に基づいて、前記マス施策における前記予め定められた対象数を設定して各状態における前記マス施策の適用対象数を設定し、
前記処理部は、前記マス施策については各時点における前記到達率を最適化対象の変数とし、状態毎に行うダイレクト施策については各時点及び各状態における施策の配分を最適化対象の変数として、前記目的関数を前記コスト制約を満たしつつ最大化する処理を再度実行する
請求項1から4のいずれか一項に記載の情報処理装置。
前記処理部は、一の時点の各状態における施策の適用対象数に対し、当該一の時点の各状態における施策の配分に応じた状態遷移によって各時点及び各状態に遷移してくる対象数を算出して推定対象数とする請求項6または7に記載の情報処理装置。
前記マス施策設定段階において、2以上の状態における対象に対して一括して行う前記マス施策について、各状態に属すると予め決定された対象数と、当該2以上の状態に共通の前記到達率とに基づいて、当該2以上の状態のそれぞれにおける前記マス施策の適用対象数を設定する請求項12に記載の情報処理方法。
前記マス施策設定段階において、前記マス施策について、各時点及び各状態における予め決定された対象数と、前記マス施策が対象に届く到達率とに基づいて、各時点及び各状態における前記マス施策の適用対象数を設定し、
前記処理段階において、前記マス施策については各時点における前記到達率を最適化対象の変数とし、状態毎に行うダイレクト施策については各時点及び各状態における施策の配分を最適化対象の変数として、前記目的関数を前記コスト制約を満たしつつ最大化する
請求項12または13に記載の情報処理方法。
前記マス施策設定段階において、前記目的関数を前記コスト制約を満たしつつ最大化して得られた結果に基づいて、前記マス施策における前記予め定められた対象数を設定して各状態における前記マス施策の適用対象数を設定し、
前記処理段階において、前記マス施策については各時点における前記到達率を最適化対象の変数とし、状態毎に行うダイレクト施策については各時点及び各状態における施策の配分を最適化対象の変数として、前記目的関数を前記コスト制約を満たしつつ最大化する処理を再度実行する
請求項12から15のいずれか一項に記載の情報処理方法。
【発明を実施するための形態】
【0007】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【0008】
図1は、本実施形態に係る情報処理装置10のブロック図を示す。本実施形態の情報処理装置10は、複数の状態が定義され、各状態にある対象数(例えば、各状態に分類される対象の数)が施策に応じて遷移する遷移モデルにおいて、複数時点及び/又は複数状態に亘るコスト制約を組み入れた上で、2以上の状態における対象に対して一括して行うマス施策、及び、状態毎に行うダイレクト施策を最適化する。情報処理装置10は、学習データ取得部110、モデル生成部120、コスト制約取得部130、処理部140、マス施策設定部142、及び、出力部150を備える。
【0009】
学習データ取得部110は、複数の対象について施策に対する反応を記録した学習データを取得する。例えば、学習データ取得部110は、複数の消費者等の対象に対してダイレクトメール等のダイレクト施策並びにテレビCM等のマス施策を含む施策、及び、消費者等による購買等の施策に対する反応を記録した学習データをデータベース等から取得する。学習データ取得部110は、取得した学習データをモデル生成部120に供給する。
【0010】
モデル生成部120は、学習データ取得部110が取得した学習データに基づいて、複数の状態が定義され、対象が状態間をある確率で遷移する遷移モデルを生成する。モデル生成部120は、分類部122、及び、算出部124を有する。
【0011】
分類部122は、学習データに含まれる複数の対象を各状態に分類する。例えば、分類部122は、学習データに含まれる複数の対象に対するダイレクト施策及びマス施策を含む施策、及び、反応に基づいて、対象の状態ベクトルの時系列を生成し、状態ベクトル空間上の位置に応じて複数の状態ベクトルを複数の状態に分類する。
【0012】
算出部124は、分類部122が分類した複数の状態において、各状態の対象が施策に応じて各状態に遷移する確率を示す状態遷移確率、及び、各状態で施策を実行したときに得られる直近の期待利得を、回帰分析を用いて算出する。算出部124は、算出した状態遷移確率、及び、期待利得を処理部140に供給する。
【0013】
コスト制約取得部130は、複数時点及び複数状態の少なくとも一方に亘るダイレクト施策、及び/又は、マス施策の合計コストを制約するコスト制約を含む複数のコスト制約を取得する。例えば、コスト制約取得部130は、ユーザから、1又は2以上の時点を含む連続した期間において、指定した1又は2以上の状態の対象に指定した1又は2以上のダイレクト施策、及び/又は、マス施策を実行するために費やすことができる予算金額をコスト制約として取得する。
【0014】
また、コスト制約取得部130は、マス施策の到達率とマス施策のコストとの関係を表すコスト関数を取得する。コスト制約取得部130は、マス施策が対象とする複数のマスセグメント(例えば、20代男性、及び、20代女性等の対象となる消費者等のセグメント)及びマス施策ごとにコスト関数を取得してよい。コスト制約取得部130は、取得したコスト制約、及び、コスト関数を処理部140に供給する。
【0015】
処理部140は、マス施策を除いたダイレクト施策のみで施策の配分の最適化を実行する。例えば、処理部140は、マス施策を除いてダイレクト施策についての施策の配分を最適化対象の変数として、全期間の総報酬に基づく目的関数を最大化するダイレクト施策の配分を算出する。ここで処理部140は、各時点及び各状態における施策の適用対象数と遷移モデルによる状態遷移に応じた各時点及び各状態の推定対象数との間の誤差に応じた項を全期間の総報酬から減じた目的関数を、複数のコスト制約を満たしつつ最大化する。処理部140は、算出した各時点及び各状態における施策の配分を、予め定められた対象数としてマス施策設定部142に供給する。
【0016】
また、処理部140は、マス施策及びダイレクト施策を含む施策の最適化を実行する。例えば、処理部140は、マス施策設定部142から受け取った各時点及び各状態におけるマス施策の適用対象数に基づき、マス施策について各時点におけるマスセグメントごとの到達率を最適化対象の変数とし、ダイレクト施策については各時点及び各状態における施策の配分を最適化対象の変数として、全期間の総報酬に基づく目的関数をコスト制約を満たしつつ最大化する。処理部140は、線形計画問題等を解くことにより、目的関数を最大化するためのマス施策の到達率、及び、ダイレクト施策の配分を取得し、出力部150に供給する。
【0017】
マス施策設定部142は、処理部140によるマス施策を含む施策の最適化のために、各状態におけるマス施策の適用対象数を設定する。例えば、マス施策設定部142は、処理部140が算出したマス施策を除いて各時点及び各状態に属すると予め定められた対象数を定数として受け取り、当該予め定められた対象数と、ユーザに設定されたマス施策が対象に届く到達率とに基づいて、各時点及び各状態におけるマス施策の適用対象数を設定する。マス施策設定部142は、設定した適用対象数を処理部140に供給する。
【0018】
出力部150は、目的関数を最大化するマスセグメントごとの各時点のマス施策の到達率、及び、各時点及び各状態におけるダイレクト施策の配分を出力する。出力部150は、出力結果を情報処理装置10の表示装置に表示させ、及び/又は、記憶媒体等に出力してもよい。
【0019】
このように、本実施形態の情報処理装置10は、マス施策設定部142が処理部140から受け取ったマス施策なしの各状態の対象数に基づいてマス施策の適用対象数を設定し、これを用いて処理部140が全期間の総報酬を最大化するマス施策を含む施策を算出する。
【0020】
特に、処理部140は、マス施策の適用対象数に関する制約に、事前にマス施策なしで最適化したダイレクト施策の配分を定数として含めるので、マス施策を含む施策の最適化問題を線形計画問題として解くことができる。これにより、情報処理装置10によれば、マス施策を含む施策を最適化した結果を提供することができる。
【0021】
図2は、本実施形態の情報処理装置10による処理フローを示す。本実施形態において、情報処理装置10は、S110〜S210の処理を実行することにより、最適な施策の配分を出力する。
【0022】
まず、S110において、学習データ取得部110は、複数の対象について施策に対する反応を記録した学習データを取得する。例えば、学習データ取得部110は、施策、及び、施策を実行して刺激を与えたときの、顧客、消費者、購読者及び/又は法人等の1又は複数の対象による商品等の購買、購読、及び/又はその他の応答を含む対象の反応の時系列の記録を学習データとして取得する。
【0023】
ここで、学習データ取得部110は、施策a(a∈A
D∪A
M)として、ダイレクトメール、及び、Eメール等の特定の対象に向けられるダイレクト施策a(a∈A
D)、及び、テレビCM、新聞、及び、ラジオ等の不特定多数に対して実行されるマス施策(a∈A
M)を取得する。学習データ取得部110は、取得した学習データをモデル生成部120に供給する。
【0024】
次にS130において、モデル生成部120は、学習データに含まれる複数の対象を各状態に分類し、各状態及び各施策ごとの状態遷移確率、並びに、期待利得を算出する。モデル生成部120は、状態遷移確率、及び、期待利得を処理部140に供給する。なお、S130の具体的な処理内容は後述する。
【0025】
次にS150において、コスト制約取得部130は、複数時点、及び、複数状態の少なくとも一方に亘るダイレクト施策の合計コストを制約するコスト制約を含む複数のコスト制約を取得する。コスト制約取得部130は、複数のダイレクト施策の合計コストを制約するコスト制約を取得してもよい。
【0026】
例えば、コスト制約取得部130は、金銭的コストの制約(例えば、施策に費やすことができる予算の金額等)、施策の実行する回数コストの制約(例えば、施策を実行可能な回数等)、消費する資源等の資源コストの制約(例えば、施策の実行において使用可能な資源重量の合計等)、及び/又は、環境負荷等の社会的コストの制約(例えば、施策において排出可能なCO
2量等)などダイレクト施策を実行することに発生するコストの制約を、コスト制約として取得してよい。コスト制約取得部130は、1以上のコスト制約を取得してよく、特に複数のコスト制約を取得してよい。
【0027】
図3は、コスト制約取得部130が取得するコスト制約の一例を示す。コスト制約取得部130は、図示するように、全体又は一部の時点を含む期間、1又は2以上の状態、及び、1又は2以上のダイレクト施策毎に定義されたコスト制約を取得してよい。
【0028】
例えば、コスト制約取得部130は、時点1〜t1までの期間において、状態s1〜s3にある対象に対してダイレクト施策1を実行する予算として10Mドル、ダイレクト施策2及びダイレクト施策3を実行する予算として50Mドルを取得し、同期間の状態s4及び状態s5にある対象に対して全ダイレクト施策の実行予算として30Mドルを取得してよい。また、例えば、コスト制約取得部130は、時点t1〜t2までの期間において、全状態にある対象に対して全ダイレクト施策を実行する予算として20Mドルを取得してよい。
【0029】
また、コスト制約取得部130は、マスセグメントごとにマス施策の到達率とマス施策のコストとの関係を含むマス施策コスト情報を取得する。例えば、コスト制約取得部130は、コスト情報として、マス施策の到達率とマス施策に要するコストの関係を表すコスト関数を取得してよい。
【0030】
一般的に、マス施策の到達率θが1(すなわち全対象にマス施策が到達する状態)に近づくにつれて、マス施策に要するコストは逓増的に増加する。例えば、単位時間当たりの確率xのポアソン過程に従い消費者等の対象がTV広告等のマス施策に確率的に接触すると仮定したとき、マス施策のコストc及び到達率θについて、
θ=1−exp(−x/100)=1−exp(−c/100u
a)
が成り立つ。なお、u
aはユーザから与えられる1TRP(Target Rating Point)当たりの単価を表す。ここから、実際のコスト関数f
a(θ)について、
f
a(θ)=−100u
alog(1−θ)
が成り立つ。
【0031】
ここで、コスト制約取得部130は、処理部140にマス施策に関する制約式を線形計画問題等で最適化させるために、マス施策の実際のコスト関数f
a(θ)を区分線形関数で近似したコスト関数を取得する。
【0032】
図4に、コスト制約取得部130が取得するコスト関数の一例を示す。グラフの横軸は、時刻tにおいてマスセグメントmに対してマス施策a(a∈A
M)を実行する際の到達率θ
t,m,a∈[0,1]を表し、縦軸は当該マス施策aに必要なコストc
t,m,aを表し、横軸上の点はf
a(θ)を近似するための区分線形関数のサンプル点θ
a,k(k=0,1,...,K
a)を表す。
【0033】
区分線形関数はK
a個の区間を有し、各区間の線分はb
a,k+w
a,kθ
t,m,aで表される。w
a,kはサンプル点θ
a,k―1とサンプル点θ
a,kとの間の区間の区分線形関数の傾きを表し、b
a,kは当該区間の区分線形関数のθ
t,m,a=0における切片を表す。図示するように、各区分における区分線形関数はサンプル点の前後において連続となるので、数式(1)が成立する。
【数1】
【0034】
区分線形関数は、下向きの凸関数となるので数式(2)が成立する。
【数2】
また、区分線形関数はサンプル点として原点θ
a,0=0を有し、原点θ
a,0において値が0となるので、b
a,1=0となる。
【0035】
コスト制約取得部130は、a∈A
M,k∈K
aユついてユーザから予め定義されたサンプル点θ
a,k、傾きw
a,k及び切片b
a,kの情報をコスト関数として取得する。
【0036】
次に、
図2に戻りS170において、処理部140は、マス施策を含まずダイレクト施策のみの施策で目的関数を最大化する。具体的には、処理部140は、各時点及び各状態におけるダイレクト施策の配分、及び、誤差の範囲を最適化対象の変数として、目的関数を複数のコスト制約を満たしつつ最大化する各変数の値を算出する。
【0037】
処理部140が最大化の対象とする目的関数の一例を数式(3)に示す。
【数3】
ここで、γは予め定められた0<γ≦1となる将来利得に対する割引率を示し、n
^t,s,aは時点t及び状態sにおいてダイレクト施策a(a∈A
D)が配分される適用対象数を示し、N
t,sは時点tにおける状態sにおける対象数を示し、r
^t,s,aは時点t及び状態sにおけるダイレクト施策a(a∈A
D)による期待利得を示し、σ
t,sは時点t及び状態sにおける施策の適用対象数と遷移モデルによる状態遷移に応じた時点t及び状態sの推定対象数との間の誤差の範囲により与えられるスラック変数を示し、η
t,sはスラック変数σ
t,sに対して与えられる重み係数を示す。
【0038】
数式(3)に示すように、適用対象数n
^t,s,aと期待利得r
^t,s,aとの積の全ダイレクト施策a(a∈A
D)及び全状態s∈Sにおける総和に各時刻tに対応する割引率の累乗γ
tを乗じた値の全時刻(t=1,...,T)における総和を全期間の総報酬に応じた項とし、重み係数η
t,sとスラック変数σ
t,sとの積の全状態及びt=2以降の全時刻における総和を誤差に応じた項としたときに、目的関数は全期間の総報酬に応じた項から誤差に応じた項を減じることにより得られる。
【0039】
なお、数式(3)におけるΣ
a∈ADn
^1,s,a=N
1,sは、期間の開始時点(時点1)の状態sにおいてダイレクト施策aが配分される適用対象数n
^t,s,aの全ダイレクト施策a(a∈A
D)における総和を、対象数N
t,sにより定義する。これにより、処理部140は、開始時点における各状態sの対象数(例えば、人口)を決定的に与える。
【0040】
重み係数η
t,sは、予め定められた係数であってよく、これに代えて、処理部140は、重み係数η
t,sをη
t,s=λγ
tΣ
(a∈AD)|r
^t,s,a|から算出してもよい。ここで、λはグローバルリラクゼーションハイパパラメータであり、例えば、処理部140は、λを1、10、10
−1、10
2、又は10
−2から選択してよく、不連続状態マルコフ決定過程、又は、エージェントベースシミュレーションの結果に基づき最適なλを設定してよい。
【0041】
処理部140が最適化の対象とするスラック変数σ
t,sに対する制約を数式(4)及び(5)に示す。
【数4】
【数5】
ここで、p
^s|s',aはダイレクト施策a(a∈A
D)を実行したときに状態s'から状態sに遷移する確率に対応する状態遷移確率を示す。
【0042】
数式(4)及び(5)の不等式右辺の括弧内の式は、各時点及び各状態におけるダイレクト施策の適用対象数と遷移モデルによる状態遷移に応じた各時点及び各状態の推定対象数との間の誤差を示す。
【0043】
例えば、Σn
^t+1,s,aは一の時点t+1の各状態sにおけるダイレクト施策aの適用対象数の全ダイレクト施策a(a∈A
D)に対する総和である。処理部140は、時点t+1及び状態sのセグメントにΣn
^t+1,s,aの対象数を実際に割り当てる。
【0044】
また、例えば、ΣΣp
^s|s',a'n
^t,s',a'は、処理部140が、一の時点t+1の前の時点tの各状態s'(s'∈S)におけるダイレクト施策aの適用対象数n
^t,s',a'の配分及び状態遷移確率p
^s|s',aに応じた状態遷移によって一の時点t+1及び各状態sに遷移してくると推定して算出する推定対象数の全状態s'∈S及び全ダイレクト施策a'に対する総和である。
【0045】
つまり、数式(4)及び(5)の不等式右辺の括弧内の式は、時点t+1及び状態sに存在する実際の対象数と状態遷移確率等及び前の時点tの対象数により推定される推定対象数との間の誤差を表す。処理部140は、式(4)及び(5)の不等式の制約により、スラック変数σ
t,sの下限値に当該誤差の絶対値を与える。従って、誤差が大きく遷移モデルの信頼性が低いと推定される条件下でスラック変数σ
t,sは増大する。
【0046】
なお、処理部140は、スラック変数σ
t,sの下限値に誤差の絶対値を与える代わりに、0と誤差とのうち大きい値である一方をスラック変数σ
t,sの下限値としてもよい。
【0047】
数式(3)では、誤差に応じた項が増大すると目的関数が減少する関係にあり、誤差に応じた項はスラック変数σ
t,sに比例して増大する。これにより、処理部140は、遷移モデルの信頼性の低さを罰則値として目的関数に導入し、目的関数を最大化することで総報酬の大きさと信頼性の大きさとを両立する条件を算出する。
【0048】
処理部140は、数式(6)に示すコスト制約を更に用いて、目的関数を最大化する。
【数6】
ここで、c
t,s,aは、時点tで状態sにダイレクト施策aを実行する場合のコストを示し、C
iはi番目(i=1,...,I、Iは1以上の整数)のコスト制約に関する合計コストの指定値、上限値、又は、下限値を示す。コストは、時点t、状態s、及び/又は、ダイレクト施策aごとに予め定められてよく、又は、コスト制約取得部130がユーザから取得してもよい。
【0049】
処理部140は、数式(7)に示す対象数に関する制約条件を更に用いて、目的関数を最大化する。
【数7】
ここで、Nは、予め定められた、又は、ユーザにより定義される全対象数(例えば、全消費者人口)を示す。
【0050】
数式(7)は、各時点t及び各状態sにおけるダイレクト施策aの適用対象数n
^t,s,aの合計が予め定められた全対象数Nと等しくなる旨の制約条件を示す。これにより、処理部140は、全ての時刻において、全状態における全ダイレクト施策の対象者の数が、全消費者人口に常に等しいことを制約条件に含める。
【0051】
処理部140は、数式(3)〜(7)に示す制約を含む線形計画問題又は混合整数計画問題を解くことにより、各時点t、各状態s、及び、各ダイレクト施策aに割り当てられる適用対象数n
^t,s,aをダイレクト施策の配分を算出する。
【0052】
次に、処理部140は、算出したダイレクト施策の配分n
^t,s,aのダイレクト施策a(a∈A
D)についての総和Σn
^t,s,aを算出することで、各時点t、各状態sについての対象数n
^t,sを取得する。処理部140は、取得した対象数n
^t,sを予め定められた対象数としてマス施策設定部142に供給する。
【0053】
S170において、最大化の対象となる目的関数に対象数の誤差に関する項、すなわちスラック変数を含む項を導入することにより、処理部140は、複数時点、複数期間及び/又は複数状態に亘るコスト制約を線形計画問題等の高速で解くことが可能な問題として扱い、大きな総報酬を高い精度でもたらす施策の配分を出力することができる。
【0054】
次に、S190において、処理部140は、マス施策及びダイレクト施策を含む施策の最適化して、目的関数を最大化する。例えば、処理部140は、マス施策a(a∈A
M)について各時点tにおけるマスセグメントmごとの到達率θ
t,m,aを最適化対象の変数とし、ダイレクト施策については各時点及び各状態における施策の配分を最適化対象の変数として、全期間の総報酬に基づく目的関数をコスト制約を満たしつつ最大化する。
【0055】
処理部140が最大化の対象とする目的関数の一例を数式(8)に示す。
【数8】
ここで、γ
1は予め定められた0<γ
1≦1となる将来利得に対する割引率を示し、γ
2は予め定められた0<γ
2≦1となる将来コストに対する割引率を示し、n
t,s,aは時点t及び状態sにおいてダイレクト施策a(a∈A
D)及びマス施策a(a∈A
M)が配分される適用対象の数を示し、N
t,sは時点tにおける状態sにおける対象数を示し、r
^t,s,aは時点t及び状態sにおけるダイレクト施策a(a∈A
D)及びマス施策a(a∈A
M)による期待利得を示し、δ
t,m,aは時点t、及び、マスセグメントm、及び、マス施策aのコスト関数により与えられるスラック変数を示す。
【0056】
数式(8)に示すように、適用対象数n
t,s,aと期待利得r
^t,s,aとの積の全施策a(a∈A
D∪A
M)及び全状態s∈Sにおける総和に各時刻tに対応する割引率の累乗γ
1tを乗じた値の全時刻(t=1,...,T)における総和を全期間の総報酬に応じた項とし、スラック変数δ
t,m,aの全マスセグメントm及び全マス施策a(a∈A
M)における総和に割引率γ
2を乗じた値の全時刻(t=1,...,T)における総和をマス施策のコストに応じた項としたときに、目的関数は全期間の総報酬に応じた項からマス施策のコストに応じた項を減じることにより得られる。
【0057】
なお、数式(8)におけるΣ
a∈AD∪AMn
1,s,a=N
1,sは、期間の開始時点(時点1)の状態sにおいて施策aが配分される適用対象数n
t,s,aの全施策a∈A
D∪A
Mにおける総和を、対象数N
t,sにより定義する。これにより、処理部140は、開始時点における各状態sの対象数(例えば、人口)を決定的に与える。
【0058】
処理部140が最適化の対象とするスラック変数δ
t,m,aに対する制約を数式(9)に示す。
【数9】
【0059】
ここで、数式(9)の不等式の右辺は、
図4で説明したマス施策のコスト関数を近似した区分線形関数を表す。I(logic)は、logicが成立しているときに1となり、logicが成立していないときに0となるインジケータ関数であり、(b
a,k+w
a,kθ
t,m,a)の項はコスト関数の各区間における線分を表す。従って、数式(9)の不等式右辺は、区分線形関数に近似されたコスト関数を表す。数式(9)より、到達率θ
t,m,aが増大することによりマス施策のコストが増大すると、スラック変数δ
t,m,aも増大する。
【0060】
数式(8)では、スラック変数を含む項が増大すると目的関数が減少する。これにより、処理部140は、マス施策のコストの大きさを罰則値として目的関数に導入し、目的関数を最大化することでマス施策のコストが大きくなり過ぎずに総報酬が大きくなる条件を算出する。
【0061】
処理部140は、数式(10)に示すダイレクト施策に関するコスト制約を更に用いて、目的関数を最大化する。
【数10】
ここで、c
t,s,aは、時点tで状態sにダイレクト施策a(a∈A
D)を実行する場合のコストを示し、C
iはi番目(i=1,...,I、Iは1以上の整数)のコスト制約に関する合計コストの指定値、上限値、又は、下限値を示す。コストは、時点t、状態s、及び/又は、ダイレクト施策aごとに予め定められてよく、又は、コスト制約取得部130がユーザから取得してもよい。処理部140は、マス施策についてのコスト制約も更に用いてよい。
【0062】
処理部140は、数式(11)に示す対象数に関する制約条件を更に用いて、目的関数を最大化する。
【数11】
ここで、Nは、予め定められた、又は、ユーザにより定義される全対象数(例えば、全消費者人口)を示す。
【0063】
数式(11)は、各時点t及び各状態sにおける全施策a∈A
D∪A
Mの適用対象数n
t,s,aの合計が予め定められた全対象数Nと等しくなる旨の制約条件を示す。これにより、処理部140は、全ての時刻において、全状態におけるダイレクト施策及びマス施策を含む全施策の対象者の数が、全消費者人口に常に等しいことを制約条件に含める。
【0064】
処理部140は、数式(12)に示す各マス施策の対象数に関する制約条件を更に用いて、目的関数を最大化する。
【数12】
【0065】
数式(12)は、時点t、状態s、及び、マス施策a(a∈A
M)に割り当てられたマス施策の適用対象数n
t,s,aの制約を示す。処理部140は、マス施策設定部142から数式(12)の括弧内の右辺の値を取得する。ここで、マス施策設定部142による当該値の算出方法について説明する。
【0066】
マス施策設定部142は、S170でマス施策を除いて目的関数を最大化して得られた結果に基づいて、マス施策における予め定められた対象数を設定して各状態におけるマス施策の適用対象数n
t,s,aを設定する。
【0067】
図5は、マス施策設定部142が設定するマス施策の適用対象数n
t,s,aの概要を示す。図中の四角形の領域は全対象(例えば、対象とする全消費者)を示す。図示するように、全対象は、複数の状態(状態s1、状態s2、状態s3…)に分割される。各状態はS170で処理部140が算出した予め定められた対象数n
^t,sの対象を有し、例えば、状態s1は対象数n
^t,s1の対象を有し、状態s2は対象数n
^t,s2の対象を有し、状態s3は対象数n
^t,s3の対象を有する。
【0068】
各状態は、複数のマスセグメントmに分割される。例えば、各状態sは、マスセグメントm1(例えば、20代男性)、マスセグメントm2(例えば、20代女性)、マスセグメントm3(例えば、30代男性)…に分割される。各状態sにおいてマスセグメントmに占める割合はマスセグメント割合φ
m|sで表される。
【0069】
例えば、状態s1においてマスセグメントm1はマスセグメント割合φ
1|s1を占め、状態s2においてマスセグメントm2はマスセグメント割合φ
1|s2を占め、状態s1においてマスセグメントm3はマスセグメント割合φ
1|s3を占める。マス施策設定部142は、マスセグメント割合φ
m|sをユーザから取得してよく、又は、過去のデータから別途算出してよい。
【0070】
更に、各マスセグメントmにおいて、時点t及びマス施策aごとの到達率θ
t,m,aで施策が対象に到達する。例えば、図示するように、マスセグメントm3において、時点tのマス施策a1(新聞広告)の到達率θ
t,3,1∈[0,1]の割合でマス施策a1が対象に到達し、時点tのマス施策a2(新聞広告)の到達率θ
t,3,2の割合でマス施策a2が対象に到達する。
【0071】
到達率θ
t,m,aは2以上の状態sにおいて共通の値としてよい。これは、マス施策が到達する割合は、対象の状態sに依存せず、対象の属するマスセグメントmに因るという前提に基づく。
【0072】
マス施策設定部142は、数式(12)の等式右辺に示すように、時点t及び状態s1のセグメントm1についてマス施策aの適用対象者をθ
t,m,aφ
m|s1n
^t,s1を算出した値に対して、全セグメントm∈Mの総和を算出して、時点t及び状態s1についてのマス施策aの適用対象者n
t,s,aを取得する。マス施策設定部142は、当該2以上の状態sのそれぞれにおけるマス施策aの適用対象者n
t,s,aを設定する。
【0073】
処理部140は、数式(8)〜(12)に示す制約を含む線形計画問題又は混合整数計画問題を解くことにより、各時点t、各状態s、及び、各ダイレクト施策a(a∈A
D)に割り当てられる適用対象数n
t,s,aをダイレクト施策の配分として取得し、各時点t、各マスセグメントm、及び、マス施策a(a∈A
M)の到達率θ
t,m,aをマス施策の実行目標として取得する。
【0074】
なお、数式(12)においてφ
m|s1及びn
^t,s1は定数であるので、処理部140は数式(12)を線形計画問題として処理することができる。処理部140は、算出した施策の配分等を出力部150に供給する。
【0075】
ここで、情報処理装置10は、S190の処理を予め定められた回数繰り返し実行してもよい。この場合、マス施策設定部142は、直前のS190で処理部140が目的関数をコスト制約を満たしつつ最大化して得られた結果に基づいて、マス施策における予め定められた対象数n
^t,s1を設定して各状態におけるマス施策の適用対象数を設定する。例えば、マス施策設定部142は、各時点及び各状態について、施策の配分n
t,s,aの全施策a∈A
D∪A
Mの総和を予め定められた対象数n
^t,s1としてよい。
【0076】
繰り返しにおいて、処理部140は、マス施策a(a∈A
M)については各時点における到達率θ
t,m,aを最適化対象の変数とし、状態毎に行うダイレクト施策(a∈A
D)については各時点および各状態における施策の配分n
t,s,aを最適化対象の変数として、目的関数をコスト制約を満たしつつ最大化する処理を再度実行する。繰り返し処理により、処理部140は、到達率θ
t,m,a及び施策の配分n
t,s,aの精度を向上させることができる。
【0077】
次にS210において、出力部150が目的関数を最大化するダイレクト施策の配分n
t,s,a及びマス施策の目標となる到達率θ
t,m,aを出力する。
【0078】
図6は、出力部150が出力する施策の配分及び達成率の一例を示す。図示するように、出力部150は、各時点t及び各状態sごとの各ダイレクト施策aの適用対象数n
t,s,aを出力する。
【0079】
例えば、出力部150は、時刻tの状態s1にある対象者に対して、ダイレクト施策1(例えばEメール)を30人に対して実施し、ダイレクト施策2(例えばダイレクトメール)を140人に対して実施し、ダイレクト施策3(例えば何もしないこと)を20人に対して実施することを示す施策の配分を出力する。また、出力部150は、時刻tの状態s2にある対象者に対して、ダイレクト施策1を10人に対して実施し、ダイレクト施策2を30人に対して実施し、ダイレクト施策3を110人に対して実施することを示す施策の配分を出力する。
【0080】
出力部150は、各時点t及び各マスセグメントmごとの各マス施策aの到達率θ
t,m,aを出力する。例えば、時点tでマス施策1(例えば、新聞広告)のマスセグメントm1(例えば、20代男性)に対する目標到達率5%を出力し、マスセグメントm2(例えば、20代女性)に対する目標到達率20%を出力する。また、例えば、マス施策2(例えば、テレビCM)のマスセグメントm1に対する目標到達率15%を出力し、マスセグメントm2に対する目標到達率30%を出力する。
【0081】
このように、情報処理装置10によると、まず処理部140がマス施策を除いて、全期間の総報酬を最大化する施策を実行したときの各時点及び各状態の対象数を算出し、マス施策設定部142が処理部140から受け取った対象数に基づいてマス施策の適用対象数を設定し、処理部140が、全期間の総報酬からマス施策のコストを減じた目的関数を最大化するマス施策及びダイレクト施策を算出する。これにより、情報処理装置10によれば、マス施策を含む施策を最適化した結果を高速に提供することができる。
【0082】
また、情報処理装置10は、線形計画問題等により最適化を実行するので、極めて高次元のモデル、すなわち、多種類の状態及び/又は施策を有するモデルの問題を解決することができる。更に、情報処理装置10は、多目的最適化問題にも容易に拡張することができる。例えば、情報処理装置10は、期待利得r
t,s,aが単純なスカラーでなく、複数の値を有する場合(例えば、ネット店舗の売上と実店舗の売上を分けて考慮する場合)、これらの値の線形結合で表される多目的関数を目的関数とすることにより、容易に最適化を実行することができる。
【0083】
なお、情報処理装置10は、S190の処理において、制約式にマス施策のコストについてのスラック変数δ
t,m,aを罰則項として導入する代わりに、S170と同様に推定対象者と適用対象者の誤差の範囲で定義されるスラック変数を導入してもよい。この場合、マス施策のコストはコスト制約に関する数式(10)で制約されてよい。
【0084】
図7は、本実施形態のS130の具体的な処理フローを示す。モデル生成部120は、S130の処理においてS132〜S136の処理を実行する。
【0085】
まず、S132において、モデル生成部120の分類部122は、学習データに含まれる複数の対象のそれぞれに対するダイレクト施策及びマス施策を含む施策及び反応に基づいて、当該対象の状態ベクトルを生成する。例えば、分類部122は、対象のそれぞれについて、予め定められた期間内において、対象に対して実行された施策及び/又は対象の反応の基づいた値を成分として有する状態ベクトルを生成する。
【0086】
一例として、分類部122は、第1成分としてある一の消費者が直近過去1週間で購買をした回数を有し、第2成分として当該一の消費者が直近過去2週間で購買をした回数を有し、第3成分として当該一の消費者に対し直近過去1週間に送信されたダイレクトメールの数を有し、第4成分として当該一の消費者が属するマスセグメントにおけるTVCMの回数と平均視聴率との積の値を有する状態ベクトルを生成してよい。
【0087】
次にS134において、分類部122は、複数の対象を状態ベクトルに基づいて分類する。例えば、分類部122は、教師あり学習又は教師なし学習を適用して状態ベクトルに決定木を適合することにより、複数の対象を分類する。
【0088】
教師あり学習の例として、分類部122は、一の対象の状態ベクトルを入力ベクトルxとし、当該一の対象の状態ベクトルを観測した時刻以降の予め定められた期間における対象からの反応を示すベクトル(例えば、状態ベクトルの観測時点から1年間の間に計上される製品毎の売上金額を成分とするベクトル)を出力ベクトルyとし、出力ベクトルyを最も精度よく予測できる回帰木を適合する。分類部122は、回帰木の葉ノード毎に各状態を割り当てることにより、複数の対象に係る状態ベクトルを離散化して、複数の対象を複数の状態に分類する。
【0089】
図8は、分類部122が回帰木により状態ベクトルを分類する例を示す。ここでは、分類部122が、2つの成分x1及びx2を有する複数の状態ベクトルを分類する例を示す。図中のグラフの縦軸及び横軸は状態ベクトルの成分x1及びx2の大きさを示し、グラフにプロットされる複数の点は複数の対象に対応する複数の状態ベクトルを示し、破線で囲まれる領域は回帰木の各葉ノードに含まれる条件となる状態ベクトルの範囲を示す。
【0090】
図示するように、分類部122は、複数の状態ベクトルを回帰木の葉ノード毎に分類する。これにより、分類部122は、複数の状態ベクトルを複数の状態s1〜s3に分類する。
【0091】
教師なし学習の例として、分類部122は、二分木により状態ベクトルの分散が最大となる軸によって複数の対象に係る状態ベクトルを分類していくことにより、複数の対象に係る状態ベクトルを離散化して、複数の対象を複数の状態に分類する。
【0092】
図9は、分類部122が二分木により状態ベクトルを分類する例を示す。
図8と同様に、図中のグラフの縦軸及び横軸は状態ベクトルの成分x1及びx2の大きさを示し、グラフにプロットされる複数の点は複数の対象に対応する状態ベクトルを示す。
【0093】
分類部122は、複数の状態ベクトルを軸で分割して複数のグループに分けたときに、分割後の全グループの状態ベクトルの分散の合計が最大となるような軸を算出し、算出した軸で複数の状態ベクトルを二分割することで離散化する。図示するように、分類部122は、予め定められた回数分割を繰り返すことで、複数の対象に係る複数の状態ベクトルを複数の状態s1〜s4に分類する。
【0094】
図7に戻り、次にS136において、算出部124は、状態遷移確率p
^s|s',a、及び、期待利得r
^t,s,aを算出する。例えば、算出部124は、分類部122により分類された各状態の対象が施策に応じてどの状態に遷移したかに基づき回帰分析を実行して、状態遷移確率p
^s|s',aを算出する。一例として、算出部124は、Modified Kneser−Ney Smoothingを用いることにより、状態遷移確率p
^s|s',aを算出してよい。
【0095】
また、例えば、算出部124は、分類部122により分類された各状態の対象が施策を実行した直後にどの程度の大きさの期待利得をもたらしたかに基づき、回帰分析を実行して期待利得r
^t,s,aを算出する。一例として、算出部124は、L1−正則化ポアソン回帰及び/又はL1−正則化対数正規回帰を用いて、精度よく期待利得r
^t,s,aを算出してよい。なお、算出部124は、期待利得として、施策を実行した際に期待される利益から施策の実行に必要なコストを減じたもの(例えば、売上−マーケティングコスト)を用いてよい。
【0096】
図10は、情報処理装置10として機能するコンピュータ1900のハードウェア構成の一例を示す。本実施形態に係るコンピュータ1900は、ホスト・コントローラ2082により相互に接続されるCPU2000、RAM2020、グラフィック・コントローラ2075、及び表示装置2080を有するCPU周辺部と、入出力コントローラ2084によりホスト・コントローラ2082に接続される通信インターフェイス2030、ハードディスクドライブ2040、及びCD−ROMドライブ2060を有する入出力部と、入出力コントローラ2084に接続されるROM2010、フレキシブルディスク・ドライブ2050、及び入出力チップ2070を有するレガシー入出力部を備える。
【0097】
ホスト・コントローラ2082は、RAM2020と、高い転送レートでRAM2020をアクセスするCPU2000及びグラフィック・コントローラ2075とを接続する。CPU2000は、ROM2010及びRAM2020に格納されたプログラムに基づいて動作し、各部の制御を行う。グラフィック・コントローラ2075は、CPU2000等がRAM2020内に設けたフレーム・バッファ上に生成する画像データを取得し、表示装置2080上に表示させる。これに代えて、グラフィック・コントローラ2075は、CPU2000等が生成する画像データを格納するフレーム・バッファを、内部に含んでもよい。
【0098】
入出力コントローラ2084は、ホスト・コントローラ2082と、比較的高速な入出力装置である通信インターフェイス2030、ハードディスクドライブ2040、CD−ROMドライブ2060を接続する。通信インターフェイス2030は、有線又は無線によりネットワークを介して他の装置と通信する。また、通信インターフェイスは、通信を行うハードウェアとして機能する。ハードディスクドライブ2040は、コンピュータ1900内のCPU2000が使用するプログラム及びデータを格納する。CD−ROMドライブ2060は、CD−ROM2095からプログラム又はデータを読み取り、RAM2020を介してハードディスクドライブ2040に提供する。
【0099】
また、入出力コントローラ2084には、ROM2010と、フレキシブルディスク・ドライブ2050、及び入出力チップ2070の比較的低速な入出力装置とが接続される。ROM2010は、コンピュータ1900が起動時に実行するブート・プログラム、及び/又は、コンピュータ1900のハードウェアに依存するプログラム等を格納する。フレキシブルディスク・ドライブ2050は、フレキシブルディスク2090からプログラム又はデータを読み取り、RAM2020を介してハードディスクドライブ2040に提供する。入出力チップ2070は、フレキシブルディスク・ドライブ2050を入出力コントローラ2084へと接続するとともに、例えばパラレル・ポート、シリアル・ポート、キーボード・ポート、マウス・ポート等を介して各種の入出力装置を入出力コントローラ2084へと接続する。
【0100】
RAM2020を介してハードディスクドライブ2040に提供されるプログラムは、フレキシブルディスク2090、CD−ROM2095、又はICカード等の記録媒体に格納されて利用者によって提供される。プログラムは、記録媒体から読み出され、RAM2020を介してコンピュータ1900内のハードディスクドライブ2040にインストールされ、CPU2000において実行される。
【0101】
コンピュータ1900にインストールされ、コンピュータ1900を情報処理装置10として機能させるプログラムは、学習データ取得モジュール、モデル生成モジュール、分類モジュール、算出モジュール、コスト制約取得モジュール、処理モジュール、マス施策設定モジュール、出力モジュールを備える。これらのプログラム又はモジュールは、CPU2000等に働きかけて、コンピュータ1900を、学習データ取得部110、モデル生成部120、分類部122、算出部124、コスト制約取得部130、処理部140、マス施策設定部142、及び、出力部150としてそれぞれ機能させてよい。
【0102】
これらのプログラムに記述された情報処理は、コンピュータ1900に読込まれることにより、ソフトウェアと上述した各種のハードウェア資源とが協働した具体的手段である学習データ取得部110、モデル生成部120、分類部122、算出部124、コスト制約取得部130、処理部140、マス施策設定部142、及び、出力部150として機能する。そして、これらの具体的手段によって、本実施形態におけるコンピュータ1900の使用目的に応じた情報の演算又は加工を実現することにより、使用目的に応じた特有の情報処理装置10が構築される。
【0103】
一例として、コンピュータ1900と外部の装置等との間で通信を行う場合には、CPU2000は、RAM2020上にロードされた通信プログラムを実行し、通信プログラムに記述された処理内容に基づいて、通信インターフェイス2030に対して通信処理を指示する。通信インターフェイス2030は、CPU2000の制御を受けて、RAM2020、ハードディスクドライブ2040、フレキシブルディスク2090、又はCD−ROM2095等の記憶装置上に設けた送信バッファ領域等に記憶された送信データを読み出してネットワークへと送信し、もしくは、ネットワークから受信した受信データを記憶装置上に設けた受信バッファ領域等へと書き込む。このように、通信インターフェイス2030は、DMA(ダイレクト・メモリ・アクセス)方式により記憶装置との間で送受信データを転送してもよく、これに代えて、CPU2000が転送元の記憶装置又は通信インターフェイス2030からデータを読み出し、転送先の通信インターフェイス2030又は記憶装置へとデータを書き込むことにより送受信データを転送してもよい。
【0104】
また、CPU2000は、ハードディスクドライブ2040、CD−ROMドライブ2060(CD−ROM2095)、フレキシブルディスク・ドライブ2050(フレキシブルディスク2090)等の外部記憶装置に格納されたファイルまたはデータベース等の中から、全部または必要な部分をDMA転送等によりRAM2020へと読み込ませ、RAM2020上のデータに対して各種の処理を行う。そして、CPU2000は、処理を終えたデータを、DMA転送等により外部記憶装置へと書き戻す。このような処理において、RAM2020は、外部記憶装置の内容を一時的に保持するものとみなせるから、本実施形態においてはRAM2020及び外部記憶装置等をメモリ、記憶部、または記憶装置等と総称する。
【0105】
本実施形態における各種のプログラム、データ、テーブル、データベース等の各種の情報は、このような記憶装置上に格納されて、情報処理の対象となる。なお、CPU2000は、RAM2020の一部をキャッシュメモリに保持し、キャッシュメモリ上で読み書きを行うこともできる。このような形態においても、キャッシュメモリはRAM2020の機能の一部を担うから、本実施形態においては、区別して示す場合を除き、キャッシュメモリもRAM2020、メモリ、及び/又は記憶装置に含まれるものとする。
【0106】
また、CPU2000は、RAM2020から読み出したデータに対して、プログラムの命令列により指定された、本実施形態中に記載した各種の演算、情報の加工、条件判断、情報の検索・置換等を含む各種の処理を行い、RAM2020へと書き戻す。例えば、CPU2000は、条件判断を行う場合においては、本実施形態において示した各種の変数が、他の変数または定数と比較して、大きい、小さい、以上、以下、等しい等の条件を満たすか否かを判断し、条件が成立した場合(又は不成立であった場合)に、異なる命令列へと分岐し、またはサブルーチンを呼び出す。
【0107】
また、CPU2000は、記憶装置内のファイルまたはデータベース等に格納された情報を検索することができる。例えば、第1属性の属性値に対し第2属性の属性値がそれぞれ対応付けられた複数のエントリが記憶装置に格納されている場合において、CPU2000は、記憶装置に格納されている複数のエントリの中から第1属性の属性値が指定された条件と一致するエントリを検索し、そのエントリに格納されている第2属性の属性値を読み出すことにより、所定の条件を満たす第1属性に対応付けられた第2属性の属性値を得ることができる。
【0108】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【0109】
特許請求の範囲、明細書、及び図面中において示した装置、システム、プログラム、及び方法における動作、手順、ステップ、及び段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、及び図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。