(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-02-19
(45)【発行日】2024-02-28
(54)【発明の名称】最適化処理装置、最適化処理方法、及びプログラム
(51)【国際特許分類】
G06N 99/00 20190101AFI20240220BHJP
【FI】
G06N99/00 180
(21)【出願番号】P 2022529153
(86)(22)【出願日】2020-06-01
(86)【国際出願番号】 JP2020021630
(87)【国際公開番号】W WO2021245757
(87)【国際公開日】2021-12-09
【審査請求日】2022-11-30
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】110002044
【氏名又は名称】弁理士法人ブライタス
(72)【発明者】
【氏名】竹村 慧
【審査官】千葉 久博
(56)【参考文献】
【文献】特開2015-191375(JP,A)
【文献】米国特許出願公開第2009/0070212(US,A1)
【文献】国際公開第2020/012589(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 99/00
(57)【特許請求の範囲】
【請求項1】
ユーザ毎にアクションを割り当てるための最適化処理装置であって、
前記ユーザ毎の
利得情報及びユーザ情報を取得する、データ取得部と、
前記ユーザ毎に、前記
利得情報及び
前記ユーザ情報に基づいて、当該ユーザから得られる利得を予測する予測関数、及び前記予測関数による予測の結果の信頼度を求める信頼度関数を推定し、そして、推定した前記予測関数及び前記信頼度関数から、当該ユーザから得られる利得を表す利得関数を推定する、利得関数推定部と、
推定した前記利得関数に基づいて、前記ユーザ毎に、前記アクションを割り当てる、割当処理部と、を備え、
前記利得関数推定部は、前記ユーザ毎に、
推定された前記予測関数に当該ユーザの前記ユーザ情報を入力して予測値を算出し、算出した前記予測値を前記信頼度関数に入力して信頼度を算出し、算出した前記信頼度が閾値より大きい場合に、当該ユーザにおける前記利得関数を
固定値に補正する、
ことを特徴とする最適化処理装置。
【請求項2】
ユーザ毎にアクションを割り当てるための最適化処理方法であって、
前記ユーザ毎の
利得情報及びユーザ情報を取得し、
前記ユーザ毎に、前記
利得情報及び前記ユーザ情報に基づいて、当該ユーザから得られる利得を予測する予測関数、及び前記予測関数による予測の結果の信頼度を求める信頼度関数を推定し、そして、推定した前記予測関数及び前記信頼度関数から、当該ユーザから得られる利得を表す利得関数を推定し、
前記ユーザ毎に、
推定された前記予測関数に当該ユーザの前記ユーザ情報を入力して予測値を算出し、算出した前記予測値を前記信頼度関数に入力して信頼度を算出し、算出した前記信頼度が閾値より大きい場合に、当該ユーザにおける前記利得関数を
固定値に補正し、
推定した前記利得関数に基づいて、前記ユーザ毎に、前記アクションを割り当てる、
ことを特徴とする最適化処理方法。
【請求項3】
コンピュータによってユーザ毎にアクションを割り当てるためのプログラムであって、
前記コンピュータに、
前記ユーザ毎の
利得情報及びユーザ情報を取得させ、
前記ユーザ毎に、前記
利得情報及び前記ユーザ情報に基づいて、当該ユーザから得られる利得を予測する予測関数、及び前記予測関数による予測の結果の信頼度を求める信頼度関数を推定させ、そして、推定した前記予測関数及び前記信頼度関数から、当該ユーザから得られる利得を表す利得関数を推定させ、
前記ユーザ毎に、
推定された前記予測関数に当該ユーザの前記ユーザ情報を入力して予測値を算出させ、算出した前記予測値を前記信頼度関数に入力して信頼度を算出させ、算出した前記信頼度が閾値より大きい場合に、当該ユーザにおける前記利得関数を
固定値に補正させ、
推定した前記利得関数に基づいて、前記ユーザ毎に、前記アクションを割り当てさせる、
プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ユーザに割り当てるアクションを最適化するための、最適化処理装置、及び最適化処理方法に関し、更には、これらを実現するためのプログラムに関する。
【背景技術】
【0002】
非特許文献1は、多腕バンディット問題の一種であるコンテクスチュアル(文脈付き)・コンビナトリアル・バンディットに基づくアルゴリズムを用いて、最大の利得が得られるように最適化を行うための手法を開示している。非特許文献1に開示された手法は、映画の配信サイト等のオンラインアプリケーション上でユーザに推薦すべきコンテンツを決定する場合等に用いられる。また、非特許文献1は、この手法を利用して、ユーザに複数の映画を推薦する推薦システムを提案している。
【0003】
具体的には、非特許文献1に開示されたシステムは、複数のユーザに対して推薦すべき映画が幾つかある場合に、映画配給会社が受け取ることができる利益が最大化するように、各ユーザに推薦すべき映画を最適化する。
【0004】
この最適化を図るため、非特許文献1に開示されたシステムは、まず、ユーザ毎に、そのユーザの特徴ベクトルと、各映画の制約条件とに基づいて、そのユーザに映画を推薦したときに得られる利得を予測する予測関数と、予測関数による予測の結果の信頼度を求める信頼度関数とを推定する。続いて、非特許文献1に開示されたシステムは、ユーザ毎に、そのユーザの予測関数と信頼度関数とを合わせ、利得関数とする。利得関数は、そのユーザに映画を推薦したときに得られる利得を表した関数である。
【0005】
そして、非特許文献1に開示されたシステムは、ユーザ毎に推定された利得関数を用いて、利得、即ち、映画配給会社が受け取ることができる利益が最大化するように、ユーザに推薦すべき映画を決定する。
【先行技術文献】
【非特許文献】
【0006】
【文献】L. Qin, S. Chen, and X. Zhu,“Contextual Combinatorial Bandit and its Application on Diversified OnlineRecommendation”, in Proceedings of the 2014 SIAM International Conference onData Mining, pp. 461-469, 2014
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、上述した非特許文献1に開示されたシステムにおいて、利得関数を構成する信頼度関数は、楽観的に、即ち、不確かな選択肢については信頼度が高くなるように推定される。このため、上述した非特許文献1に開示されたシステムには、本当は利益を大きくする映画を推薦できない事態が生じる可能性がある。
【0008】
本発明の目的の一例は、上記問題を解消し、ユーザにアクションを割り当てる際の最適化の精度を向上し得る、最適化処理装置、最適化処理方法、及びプログラムを提供することにある。
【課題を解決するための手段】
【0009】
上記目的を達成するため、本発明の一側面における最適化処理装置は、ユーザ毎にアクションを割り当てるための最適化処理装置であって、
アクション毎の制約情報及び前記ユーザ毎のユーザ情報を取得する、データ取得部と、
前記ユーザ毎に、前記制約情報及び前記ユーザ情報に基づいて、当該ユーザから得られる利得を予測する予測関数、及び前記予測関数による予測の結果の信頼度を求める信頼度関数を推定し、そして、推定した前記予測関数及び前記信頼度関数から、当該ユーザから得られる利得を表す利得関数を推定する、利得関数推定部と、
推定した前記利得関数に基づいて、前記ユーザ毎に、前記アクションを割り当てる、割当処理部と、を備え、
前記利得関数推定部は、前記ユーザ毎に、設定条件を満たす場合に、当該ユーザにおける前記利得関数を補正する、
ことを特徴とする。
【0010】
また、上記目的を達成するため、本発明の一側面における最適化処理方法は、ユーザ毎にアクションを割り当てるための最適化処理方法であって、
アクション毎の制約情報及び前記ユーザ毎のユーザ情報を取得する、データ取得ステップと、
前記ユーザ毎に、前記制約情報及び前記ユーザ情報に基づいて、当該ユーザから得られる利得を予測する予測関数、及び前記予測関数による予測の結果の信頼度を求める信頼度関数を推定し、そして、推定した前記予測関数及び前記信頼度関数から、当該ユーザから得られる利得を表す利得関数を推定する、利得関数推定ステップと、
前記ユーザ毎に、設定条件を満たす場合に、当該ユーザにおける前記利得関数を補正する、補正ステップと、
推定した前記利得関数に基づいて、前記ユーザ毎に、前記アクションを割り当てる、割当処理ステップと、
を有する、ことを特徴とする。
【0011】
更に、上記目的を達成するため、本発明の一側面におけるプログラムは、コンピュータによってユーザ毎にアクションを割り当てるためのプログラムであって、
前記コンピュータに、
アクション毎の制約情報及び前記ユーザ毎のユーザ情報を取得する、データ取得ステップと、
前記ユーザ毎に、前記制約情報及び前記ユーザ情報に基づいて、当該ユーザから得られる利得を予測する予測関数、及び前記予測関数による予測の結果の信頼度を求める信頼度関数を推定し、そして、推定した前記予測関数及び前記信頼度関数から、当該ユーザから得られる利得を表す利得関数を推定する、利得関数推定ステップと、
前記ユーザ毎に、設定条件を満たす場合に、当該ユーザにおける前記利得関数を補正する、補正ステップと、
推定した前記利得関数に基づいて、前記ユーザ毎に、前記アクションを割り当てる、割当処理ステップと、
を実行させる、プログラム。
【発明の効果】
【0012】
以上のように、本発明によれば、ユーザにアクションを割り当てる際の最適化の精度を向上することができる。
【図面の簡単な説明】
【0013】
【
図1】
図1は、実施の形態における最適化処理装置の概略構成を示すブロック図である。
【
図2】
図2は、実施の形態における最適化処理装置の構成を具体的に示すブロック図である。
【
図3】
図3は、実施の形態における利得関数の補正処理を説明する図である。
【
図4】
図4は、実施の形態における最適化処理装置の動作を示すフロー図である。
【
図5】
図5は、
図4に示した利得関数の推定処理をより具体的に示すフロー図である。
【
図6】
図6は、実施の形態における最適化処理装置の適用例を示す図である。
【
図7】
図7は、実施の形態における最適化処理装置を実現するコンピュータの一例を示すブロック図である。
【発明を実施するための形態】
【0014】
(発明の前提)
本発明は、ユーザに割り当てるアクション、例えば、ユーザへの販売促進のためのプロモーション(広告の配信等)を最適化する。ここで、アクションの割り当てとは、例えば、どのユーザにプロモーションを提供し、どのユーザにプロモーションを提供しないかを決定することを意味する。また、ユーザは、より一般的に候補と呼ばれることもある。アクションの内容は特に限定されるものではないが、アクションとしては、例えば、ブラウザ上へのオンライン広告の配信、電子メールによる広告の送信、電子メールによる割引クーポンの送信付等が挙げられる。
【0015】
ところで、従来から、利得関数(又は報酬関数)を用いて意思決定を行う種々のアルゴリズムがある。しかしながら、現実の意思決定の場面では、アクション(例えばプロモーションの割り当て)に対する利得(例えば、購入額、購入確率、購入額の期待値等)を予測するための利得関数を、完全な状態で事前に得ることは困難である。
【0016】
例えば、プロモーションの対象となったユーザが商品を購入する確率を予測すること、及びプロモーションの対象とならなかったユーザが商品を購入する確率を予測することは、共に、何も情報がない段階では困難である。また、ある程度情報があったとしても、これらの確率には多くの場合誤差が含まれている。そのため、利得関数に基づいて決定されたアクションを実行してその結果を取得することが繰り返し行われ、それによって、利得関数の推定精度を高めることが行われている。また、利得を得る側においては、利得関数の推定精度を高めて、実際に得られる利得をできる限り大きくしたいというニーズが存在する。
【0017】
背景技術の欄において述べた多腕バンディット問題は、このような逐次的意思決定が求められる場面に適用され得るモデルの一つである。多腕バンディット問題とは、例えば、事前に当たりやすさを知ることができない複数のスロットマシンがある場合に、プレイヤーがいずれかのスロットマシンを選んで試行する(アームを引く)ことを繰り返して利得を最大化するにはどうすればよいかという問題である。
【0018】
多腕バンディット問題では、当たりやすいスロットマシンを探す「探索」と、当たりやすいスロットマシンを選んで試行することにより利得を確保する「活用」とのトレードオフを考慮して合計の利得を最も大きくするようなアルゴリズムの研究が進められている。また、多腕バンディット問題は、スロットマシン以外の用途にも適用可能であり、種々の意思決定への応用が検討されている。上述のプロモーションの割り当てについては、スロットマシンの選択を、プロモーションの対象であるユーザの選択に置き換えることで、多腕バンディット問題を適用することが可能である。
【0019】
ところで、スロットマシンの例では、アームを引かなかったスロットマシンは動作せず、利得が得られない。すなわち、プレイヤーは実際にアームを引いたスロットマシンの利得しか得ることができないということが問題設定の前提になっている。非特許文献1の例においても同様の前提が置かれている。しかしながら、多腕バンディット問題をスロットマシンとは異なる現実の問題に適用した場合には、問題の種類によっては選択した選択肢だけでなく、選択しなかった選択肢についても、利得が得られる場合もある。
【0020】
例えば、上述のプロモーションの例では、プロモーションを提供したユーザだけでなく提供しなかったユーザも商品を購入することがあり、その購入履歴等の情報が得られる。このような例では、選択しなかった選択肢による利得も考慮すべきである。
【0021】
以下に示す実施の形態における最適化処理装置は、多腕バンディット問題に適合したアルゴリズムを用いるものであるが、選択しなかった選択肢による利得も考慮する。また、実施の形態における最適化処理装置は信頼度関数が楽観的に推定されていることを考慮して、利得関数を推定する。このため、最適化の精度の向上が図られる。
【0022】
(実施の形態)
以下、実施の形態における、最適化処理装置、最適化処理方法、及びプログラムについて、
図1~
図6を参照しながら説明する。
【0023】
[装置構成]
最初に、実施の形態における最適化処理装置の概略構成について
図1を用いて説明する。
図1は、実施の形態における最適化処理装置の概略構成を示すブロック図である。
【0024】
図1に示す、最適化処理装置100は、ユーザ毎にアクションを割り当てるための装置である。
図1に示すように、最適化処理装置100は、データ取得部10と、利得関数推定部20と、割当処理部30とを備えている。
【0025】
データ取得部10は、アクション毎の制約情報及びユーザ毎のユーザ情報を取得する。利得関数推定部20は、ユーザ毎に、データ取得部10が取得した制約情報及びユーザ情報に基づいて、各ユーザから得られる利得を予測する予測関数、及び予測関数による予測の結果の信頼度を求める信頼度関数を推定する。
【0026】
更に、利得関数推定部20は、ユーザ毎に、推定した予測関数及び信頼度関数から、各ユーザから得られる利得を表す利得関数を推定する。また、利得関数推定部20は、ユーザ毎に、設定条件を満たす場合に、各ユーザにおける利得関数を補正する。割当処理部30は、利得関数推定部20が推定した利得関数に基づいて、ユーザ毎に、アクションを割り当てる。
【0027】
このように、実施の形態では、ユーザ毎に推定された利得関数に基づいて、各ユーザにアクションが割り当てられるが、一定条件下で、各ユーザに対応する利得関数が補正される。このため、実施の形態によれば、ユーザにアクションを割り当てる際の最適化の精度の向上が図られる。
【0028】
続いて、
図2及び
図3を用いて、実施の形態における最適化処理装置100の構成及び機能について具体的に説明する。
図2は、実施の形態における最適化処理装置の構成を具体的に示すブロック図である。
【0029】
以下においては、実施の形態における最適化処理装置100は、予め登録されている複数のユーザに、アクションとして、商品を販売するためのプロモーションをどのように割り当てるかを決定するために用いられる。このため、以下においては、「アクション」は「プロモーション」とも表記する。
【0030】
例えば、プロモーションがダイレクトメールであるとする。この場合、最適化処理装置100は、登録されているユーザのうちのどのユーザにダイレクトメールを送付するかを、最適化によって決定する。この例では、ユーザの数が多すぎる等の理由により、すべてのユーザにダイレクトメールを送付できない場合があり、ダイレクトメールの送付可能数がアクションの割り当ての制約条件となる。
【0031】
以下の説明においては、特記した場合を除き、プロモーションは1種類であるものとし、各ユーザに実行しうる施策はプロモーションを提供することと、プロモーションを提供しないことのいずれかであるものとする。なお、実施の形態では、プロモーションの種類は複数であってもよい。
【0032】
まず、
図2に示すように、実施の形態では、最適化処理装置100は、各ユーザの端末装置210に対してプロモーション(アクション)を実行するサーバ装置200に接続されている。具体的には、サーバ装置200は、最適化処理装置100による割り当ての結果に基づいて、ユーザの端末装置210に、商品のプロモーションとなる広告を配信する。また、サーバ装置200は、インターネット等のネットワーク220を介して、端末装置200に接続されている。
【0033】
また、
図2に示すように、実施の形態では、最適化処理装置100は、上述したデータ取得部10、利得関数推定部20、及び割当処理部30に加えて、データ格納部40と、データ出力部50とを備えている。
【0034】
データ取得部10は、実施の形態では、例えば、サーバ装置200から、ユーザ毎のユーザ情報と、アクション毎の制約情報とを取得し、取得したユーザ情報と制約情報とを、データ格納部40に格納する。ここで、ユーザ情報は、ユーザに関する情報であり、例えば、ユーザID(Identifier)、ユーザに割り当てられたプロモーションの履歴、ユーザが購入した商品の履歴、ユーザの年齢等といった情報を含む。
【0035】
また、制約情報は、プロモーションの提供時における制約に関する情報であり、例えば、プロモーションを提供することができるユーザの人数の上限、提供可能なプロモーションの種類等といった情報を含む。
【0036】
更に、実施の形態では、データ取得部10は、プロモーションの割り当て後に、ユーザ毎に、各ユーザから得られた利得(例えば、各ユーザが購入した商品の金額等)を特定する利得情報も取得する。データ取得部10は、取得した利得情報を、ユーザ毎に、対応するユーザ情報と関連付けて、データ格納部40に格納する。
【0037】
利得関数推定部20は、実施の形態では、まず、データ格納部40に格納されてるユーザ毎のユーザ情報及びそれに関連付けられた利得情報を訓練データとして、機械学習によって、各ユーザについて、予測関数を推定する。予測関数は、ユーザ情報を入力として、利得の予測値を出力する。
【0038】
更に、利得関数推定部20は、ユーザ毎に、推定された予測関数にユーザ情報を入力して予測値を算出し、更に、算出した予測値を、データ格納部40に格納されている利得情報で特定される利得で除算して信頼度を算出する。そして、利得関数推定部20は、算出した予測値と信頼度とを訓練データとして、機械学習を行って、各ユーザについて信頼度関数を推定する。信頼度関数は、予測値を入力として、予測値の信頼度を出力する。その後、利得関数推定部20は、下記の数1を用いて、利得関数を推定(構築)する。
【0039】
【0040】
具体的には、ユーザiのユーザ情報から得られるユーザの特徴をxt(i)、ユーザiから得られる利得をrt(i)とすると、例えば、予測関数は数2で表され、信頼度関数は数3で表され、利得関数は数4で表される。なお、数2において、θt(i)は機械学習で得られた関数である。同様に、数3において、Vt(i)は機械学習で得られた関数である。数3において、αtは任意の係数である。
【0041】
【0042】
【0043】
【0044】
上記数3における信頼度関数は、上述したように、予測関数にユーザ情報を入力して得られた予測値とユーザ毎の利得情報とを訓練データとした、機械学習によって推定されている。このため、上記数3における信頼度関数は、不確かな選択肢については信頼度を高く推定する楽観的な関数である。
【0045】
また、利得関数推定部20は、実施の形態では、
図3に示すように、ユーザ毎に、各ユーザのユーザ情報を、信頼度関数に代入して、信頼度を算出し、算出した信頼度が閾値より大きい場合に、該当するユーザにおける利得関数を固定値に補正する。
【0046】
図3は、実施の形態における利得関数の補正処理を説明する図である。
図3の例では、ユーザA~Dのうち、ユーザBにおいてのみ、信頼度の値が閾値を超えている。信頼度関数は、上述したように楽観的な関数であるので、ユーザBの利得関数をそのまま用いると、本来であれば高い利得が得られるユーザに、プロモーションが与えられない事態が生じてしまう。このため、利得関数推定部20は、ユーザBの利得関数を固定値に置き換える補正を実行する。
【0047】
割当処理部30は、実施の形態では、利得関数推定部20が推定した利得関数に基づいて、ユーザ毎に、プロモーションを割り当てる。具体的には、割当処理部30は、プロモーションの対象候補となるユーザ毎に、ユーザ情報を利得関数に適用して、利得を算出し、算出した利得に応じて、プロモーションの対象となるユーザを決定する。
【0048】
データ出力部50は、割当処理部30による割り当ての結果に基づき、どのユーザにどのプロモーションを割り当てたかを示す割当情報を作成し、作成した割当情報をサーバ装置200に送信する。
【0049】
これにより、サーバ装置200は、割当情報に応じて、例えば、ユーザの端末装置210にプロモーションとして広告を配信する。そして、サーバ装置200は、例えば、ECサイト等の管理サーバから、プロモーション後のユーザの購入履歴を取得し、取得した購入履歴に基づいて、ユーザによる利得を算出する。その後、サーバ装置200は、最適化処理装置100に対して利得情報を送信する。
【0050】
[装置動作]
次に、実施の形態における最適化処理装置の動作について、
図4を用いて説明する。
図4は、実施の形態における最適化処理装置の動作を示すフロー図である。以下の説明においては、適宜
図1~
図3を参照する。また、実施の形態では、最適化処理装置100を動作せることによって、最適化処理方法が実施される。よって、実施の形態における最適化処理方法の説明は、以下の最適化処理装置100の動作説明に代える。
【0051】
最初に、
図4に示すように、データ取得部10は、サーバ装置200から、ユーザ毎のユーザ情報と、プロモーション毎の制約情報とを取得する(ステップA1)。また、データ取得部10は、取得したユーザ情報と制約情報とを、データ格納部40に格納する。
【0052】
次に、利得関数推定部20は、ユーザ毎に、データ格納部40に格納されている制約情報及びユーザ情報に基づいて、予測関数及び信頼度関数を推定し、これらを用いて、更に、利得関数を推定する(ステップA2)。
【0053】
次に、割当処理部30は、ステップA2で推定された各ユーザの利得関数に基づいて、ユーザ毎に、プロモーションを割り当てる(ステップA3)。具体的には、割当処理部30は、ユーザ毎に、ユーザ情報を利得関数に適用して、利得を算出し、算出した利得に応じて、プロモーションの対象となるユーザを決定する。
【0054】
次に、データ出力部50は、ステップA3による割り当ての結果に基づき、どのユーザにどのプロモーションを割り当てたかを示す割当情報を作成し、作成した割当情報をサーバ装置200に送信する(ステップA4)。
【0055】
ステップA4が実行されると、これにより、サーバ装置200は、割当情報に応じてユーザの端末装置210にプロモーションとして広告を配信する。そして、サーバ装置200は、ECサイト等の管理サーバから、プロモーション後のユーザの購入履歴を取得し、取得した購入履歴に基づいてユーザによる利得を算出する。その後、サーバ装置200は、最適化処理装置100に対してユーザ毎の利得情報を送信する。
【0056】
次に、サーバ装置200から利得情報が送信されてくると、データ取得部10は、これを取得する(ステップA5)。また、。データ取得部10は、取得した利得情報を、ユーザ毎に、対応するユーザ情報と関連付けて、データ格納部40に格納する。
【0057】
その後、データ取得部10は、一連の処理について終了条件が満たされているかどうかを判定する(ステップA6)。終了条件としては、外部からの終了の指示があったこと、ステップA1~A5が所定回数実行されたこと等が挙げられる。
【0058】
終了条件が満たされていないと判定される場合(ステップA6:No)は、データ取得部10は、再度ステップA1を実行する。終了条件が満たされていない限り、ステップA1~A6は繰り返し実行される。一方、終了条件が満たされている場合(ステップA6:Yes)は、最適化処理装置100における処理は終了する。このように、終了条件が満たされない限り、ステップA1~A6は繰り返し実行される。
【0059】
ここで、
図4に示した利得関数の推定処理(ステップA2)について、
図5を用いてより具体的に説明する。
図5は、
図4に示した利得関数の推定処理をより具体的に示すフロー図である。
【0060】
図4に示すように、最初に、利得関数推定部20は、データ格納部40に格納されてるユーザ毎のユーザ情報及びそれに関連付けられた利得情報を訓練データとして取得する(ステップA21)。
【0061】
ステップA21で取得される利得情報は、以前に実行されたステップA5で取得された利得情報である。なお、未だステップA5が実行されていない場合は、予め用意された利得情報のサンプルデータが用いられても良い。
【0062】
次に、利得関数推定部20は、ステップA21で取得されたユーザ情報及び利得情報を訓練データとして機械学習を実行し、各ユーザについて予測関数を推定する(ステップA22)。
【0063】
次に、利得関数推定部20は、ステップA22で推定された予測関数にユーザ情報を入力して得られた予測値を算出し、更に、算出した予測値を、ステップA21で取得された利得情報で特定される利得で除算して信頼度を算出する。そして、利得関数推定部20は、算出した予測値と信頼度とを訓練データとして、機械学習を行って、各ユーザについて信頼度関数を推定する(ステップA23)。
【0064】
次に、利得関数推定部20は、ステップA22で推定した予測関数と、ステップA23で推定した信頼度関数とを、上記数1に入れて、利得関数を推定する(ステップA24)。
【0065】
次に、利得関数推定部20は、ステップA1でユーザ情報が取得されたユーザのうちの1人を選択する(ステップA25)。
【0066】
次に、利得関数推定部20は、ステップA25選択したユーザについて、ユーザ情報を、ステップA24で推定した信頼度関数に代入して、信頼度を算出する(ステップA26)。
【0067】
次に、利得関数推定部20は、ステップA26で算出した信頼度が閾値より大きいかどうかを判定する(ステップA27)。
【0068】
そして、ステップA27の判定の結果、信頼度が閾値より大きい場合(ステップA27:Yes)は、利得関数推定部20は、ステップA25で選択されたユーザにおける利得関数を固定値に変更する(ステップA28)。一方、ステップA27の判定の結果、信頼度が閾値より大きくない場合(ステップA27:No)は、ステップA29が実行される。
【0069】
ステップA28の実行後、又はステップA27においてNoとなった場合は、利得関数推定部20は、ステップA1でユーザ情報が取得されたユーザのうち、ステップA25で未だ選択されていないユーザが存在しているかどうかを判定する(ステップA29)。
【0070】
ステップA29の判定の結果、未だ選択されていないユーザが存在している場合は、利得関数推定部20は、再度ステップA25を実行する。一方、ステップA29の判定の結果、未だ選択されていないユーザが存在していない場合は、ステップA2が終了し、その後、ステップA3が実行される。
【0071】
[実施の形態における効果]
ここで、例えば、
図6に示すように、プロモーションの対象を、グループXとグループYとのいずれかに決定しなければならない場合を想定する。
図6は実施の形態における最適化処理装置の適用例を示す図である。
【0072】
図6の例において、いずれかのグループ中に、信頼度が閾値より高いユーザが存在しているとする。このとき、実施の形態では、ユーザ毎に推定された利得関数に基づいて、各ユーザにプロモーションが割り当てられるが、信頼度が高すぎるユーザの利得関数が補正される。このため、実施の形態によれば、ユーザにプロモーションを割り当てる際の最適化の精度の向上が図られる。
【0073】
[プログラム]
実施の形態におけるプログラムとしては、コンピュータに、
図4に示すステップA1~A6を実行させるプログラムが挙げられる。このプログラムをコンピュータにインストールし、実行することによって、実施の形態における最適化処理装置と最適化処理方法とを実現することができる。この場合、コンピュータのプロセッサは、データ取得部10、利得関数推定部20、割当処理部30、及びデータ出力部50として機能し、処理を行なう。
【0074】
また、実施の形態では、データ格納部40は、コンピュータに備えられたハードディスク等の記憶装置に、これらを構成するデータファイルを格納することによって実現されていても良いし、別のコンピュータの記憶装置によって実現されていても良い。コンピュータとしては、汎用のPCの他に、スマートフォン、タブレット型端末装置が挙げられる。
【0075】
また、実施の形態におけるプログラムは、複数のコンピュータによって構築されたコンピュータシステムによって実行されても良い。この場合は、例えば、各コンピュータが、それぞれ、データ取得部10、利得関数推定部20、割当処理部30、及びデータ出力部50のいずれかとして機能しても良い。
【0076】
[物理構成]
ここで、実施の形態におけるプログラムを実行することによって、最適化処理装置100を実現するコンピュータについて
図7を用いて説明する。
図7は、実施の形態における最適化処理装置を実現するコンピュータの一例を示すブロック図である。
【0077】
図7に示すように、コンピュータ110は、CPU(CentralProcessing Unit)111と、メインメモリ112と、記憶装置113と、入力インターフェイス114と、表示コントローラ115と、データリーダ/ライタ116と、通信インターフェイス117とを備える。これらの各部は、バス121を介して、互いにデータ通信可能に接続される。
【0078】
また、コンピュータ110は、CPU111に加えて、又はCPU111に代えて、GPU(Graphics Processing Unit)、又はFPGA(Field-ProgrammableGate Array)を備えていても良い。この態様では、GPU又はFPGAが、実施の形態におけるプログラムを実行することができる。
【0079】
CPU111は、記憶装置113に格納された、コード群で構成された実施の形態におけるプログラムをメインメモリ112に展開し、各コードを所定順序で実行することにより、各種の演算を実施する。メインメモリ112は、典型的には、DRAM(Dynamic Random Access Memory)等の揮発性の記憶装置である。
【0080】
また、実施の形態におけるプログラムは、コンピュータ読み取り可能な記録媒体120に格納された状態で提供される。なお、本実施の形態におけるプログラムは、通信インターフェイス117を介して接続されたインターネット上で流通するものであっても良い。
【0081】
また、記憶装置113の具体例としては、ハードディスクドライブの他、フラッシュメモリ等の半導体記憶装置が挙げられる。入力インターフェイス114は、CPU111と、キーボード及びマウスといった入力機器118との間のデータ伝送を仲介する。表示コントローラ115は、ディスプレイ装置119と接続され、ディスプレイ装置119での表示を制御する。
【0082】
データリーダ/ライタ116は、CPU111と記録媒体120との間のデータ伝送を仲介し、記録媒体120からのプログラムの読み出し、及びコンピュータ110における処理結果の記録媒体120への書き込みを実行する。通信インターフェイス117は、CPU111と、他のコンピュータとの間のデータ伝送を仲介する。
【0083】
また、記録媒体120の具体例としては、CF(Compact Flash(登録商標))及びSD(Secure Digital)等の汎用的な半導体記憶デバイス、フレキシブルディスク(Flexible Disk)等の磁気記録媒体、又はCD-ROM(Compact DiskRead Only Memory)などの光学記録媒体が挙げられる。
【0084】
なお、本実施の形態における最適化処理装置100は、プログラムがインストールされたコンピュータではなく、各部に対応したハードウェアを用いることによっても実現可能である。更に、最適化処理装置100は、一部がプログラムで実現され、残りの部分がハードウェアで実現されていてもよい。
【0085】
上述した実施の形態の一部又は全部は、以下に記載する(付記1)~(付記6)によって表現することができるが、以下の記載に限定されるものではない。
【0086】
(付記1)
ユーザ毎にアクションを割り当てるための最適化処理装置であって、
アクション毎の制約情報及び前記ユーザ毎のユーザ情報を取得する、データ取得部と、
前記ユーザ毎に、前記制約情報及び前記ユーザ情報に基づいて、当該ユーザから得られる利得を予測する予測関数、及び前記予測関数による予測の結果の信頼度を求める信頼度関数を推定し、そして、推定した前記予測関数及び前記信頼度関数から、当該ユーザから得られる利得を表す利得関数を推定する、利得関数推定部と、
推定した前記利得関数に基づいて、前記ユーザ毎に、前記アクションを割り当てる、割当処理部と、を備え、
前記利得関数推定部は、前記ユーザ毎に、設定条件を満たす場合に、当該ユーザにおける前記利得関数を補正する、
ことを特徴とする最適化処理装置。
【0087】
(付記2)
付記1に記載の最適化処理装置であって、
前記利得関数推定部は、前記ユーザ毎に、当該ユーザの前記ユーザ情報を、前記信頼度関数に代入して、信頼度を算出し、算出した前記信頼度が閾値より大きい場合に、当該ユーザにおける前記利得関数を固定値に補正する、
ことを特徴とする最適化処理装置。
【0088】
(付記3)
ユーザ毎にアクションを割り当てるための最適化処理方法であって、
アクション毎の制約情報及び前記ユーザ毎のユーザ情報を取得する、データ取得ステップと、
前記ユーザ毎に、前記制約情報及び前記ユーザ情報に基づいて、当該ユーザから得られる利得を予測する予測関数、及び前記予測関数による予測の結果の信頼度を求める信頼度関数を推定し、そして、推定した前記予測関数及び前記信頼度関数から、当該ユーザから得られる利得を表す利得関数を推定する、利得関数推定ステップと、
前記ユーザ毎に、設定条件を満たす場合に、当該ユーザにおける前記利得関数を補正する、補正ステップと、
推定した前記利得関数に基づいて、前記ユーザ毎に、前記アクションを割り当てる、割当処理ステップと、
を有する、ことを特徴とする最適化処理方法。
【0089】
(付記4)
付記3に記載の最適化処理方法であって、
前記補正ステップにおいて、前記ユーザ毎に、当該ユーザの前記ユーザ情報を、前記信頼度関数に代入して、信頼度を算出し、算出した前記信頼度が閾値より大きい場合に、当該ユーザにおける前記利得関数を固定値に補正する、
ことを特徴とする最適化処理方法。
【0090】
(付記5)
コンピュータによってユーザ毎にアクションを割り当てるためのプログラムであって、
前記コンピュータに、
アクション毎の制約情報及び前記ユーザ毎のユーザ情報を取得する、データ取得ステップと、
前記ユーザ毎に、前記制約情報及び前記ユーザ情報に基づいて、当該ユーザから得られる利得を予測する予測関数、及び前記予測関数による予測の結果の信頼度を求める信頼度関数を推定し、そして、推定した前記予測関数及び前記信頼度関数から、当該ユーザから得られる利得を表す利得関数を推定する、利得関数推定ステップと、
前記ユーザ毎に、設定条件を満たす場合に、当該ユーザにおける前記利得関数を補正する、補正ステップと、
推定した前記利得関数に基づいて、前記ユーザ毎に、前記アクションを割り当てる、割当処理ステップと、
を実行させる、プログラム。
【0091】
(付記6)
付記5に記載のプログラムであって、
前記補正ステップにおいて、前記ユーザ毎に、当該ユーザの前記ユーザ情報を、前記信頼度関数に代入して、信頼度を算出し、算出した前記信頼度が閾値より大きい場合に、当該ユーザにおける前記利得関数を固定値に補正する、
ことを特徴とするプログラム。
【0092】
以上、実施の形態を参照して本願発明を説明したが、本願発明は上記実施の形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【産業上の利用可能性】
【0093】
以上のように、本発明によれば、ユーザにアクションを割り当てる際の最適化の精度を向上することができる。本発明は、ユーザに販売促進のためにプロモーションを行うシステム等に有用である。
【符号の説明】
【0094】
10 データ取得部
20 利得関数推定部
30 割当処理部
40 データ格納部
50 データ出力部
100 最適化処理装置
200 サーバ装置
210 端末装置
220 ネットワーク
110 コンピュータ
111 CPU
112 メインメモリ
113 記憶装置
114 入力インターフェイス
115 表示コントローラ
116 データリーダ/ライタ
117 通信インターフェイス
118 入力機器
119 ディスプレイ装置
120 記録媒体
121 バス