(57)【要約】  アクションの制約情報と、前記アクションの対象である複数の候補の各々についての候補情報とを取得する条件取得部と、前記制約情報及び前記候補情報に基づいて、前記アクションに応じた報酬を算出するための報酬関数を前記複数の候補の各々について推定する報酬関数推定部と、前記複数の候補の各々の前記報酬関数に基づいて、前記アクションの内容を決定するアクション決定部と、を有する、情報処理システムが提供される。
2020012589.tif 000002
【特許請求の範囲】
【請求項１】
アクションの制約情報と、前記アクションの対象である複数の候補の各々についての候補情報とを取得する条件取得部と、
前記制約情報及び前記候補情報に基づいて、前記アクションに応じた報酬を算出するための報酬関数を前記複数の候補の各々について推定する報酬関数推定部と、
前記複数の候補の各々の前記報酬関数に基づいて、前記アクションの内容を決定するアクション決定部と、
を有する、情報処理システム。
【請求項２】
前記アクションは、前記複数の候補のうちの少なくとも一つを施策の対象として選択し、前記選択された候補以外の候補を前記施策の対象外とすることを含む、請求項１に記載の情報処理システム。
【請求項３】
前記報酬関数は、対応する候補が前記施策の対象である場合の報酬と、前記施策の対象でない場合の報酬とを算出可能である、請求項２に記載の情報処理システム。
【請求項４】
前記報酬関数は、前記アクションの結果に基づいて変化する関数を含む、請求項１乃至３のいずれか１項に記載の情報処理システム。
【請求項５】
前記報酬関数は、過去に前記アクションが行われた回数に応じて変化する関数を含む、請求項４に記載の情報処理システム。
【請求項６】
前記報酬関数は、対応する候補が前記アクションに含まれる施策の対象となった回数に応じて変化する関数を含む、請求項４又は５に記載の情報処理システム。
【請求項７】
前記報酬関数は、ＵＣＢ（Upper  Confidence  Bound）に基づく関数を含む、請求項５又は６に記載の情報処理システム。
【請求項８】
前記報酬関数は、乱数を含む、請求項４乃至７のいずれか１項に記載の情報処理システム。
【請求項９】
前記報酬関数は、トンプソンサンプリングに基づく乱数を含む、請求項４乃至８のいずれか１項に記載の情報処理システム。
【請求項１０】
前記候補情報は、前記アクションに含まれる施策の対象になったことがあるか否かを示す情報を含む、請求項４乃至９のいずれか１項に記載の情報処理システム。
【請求項１１】
前記候補情報は、前記アクションの結果を示す情報を含む、請求項４乃至１０のいずれか１項に記載の情報処理システム。
【請求項１２】
前記アクション決定部は、前記報酬関数に基づいて、前記複数の候補の各々の報酬の総和が最大になるように前記アクションの内容を決定する、請求項１乃至１１のいずれか１項に記載の情報処理システム。
【請求項１３】
前記アクションは、プロモーションの割り当てを含み、
前記候補は、前記プロモーションの提供を受けるユーザである、
請求項１乃至１２のいずれか１項に記載の情報処理システム。
【請求項１４】
アクションの制約情報と、前記アクションの対象である複数の候補の各々についての候補情報とを取得するステップと、
前記制約情報及び前記候補情報に基づいて、前記アクションに応じた報酬を算出するための報酬関数を前記複数の候補の各々について推定するステップと、
前記複数の候補の各々の前記報酬関数に基づいて、前記アクションの内容を決定するステップと、
を有する、情報処理方法。
【請求項１５】
コンピュータに、
アクションの制約情報と、前記アクションの対象である複数の候補の各々についての候補情報とを取得するステップと、
前記制約情報及び前記候補情報に基づいて、前記アクションに応じた報酬を算出するための報酬関数を前記複数の候補の各々について推定するステップと、
前記複数の候補の各々の前記報酬関数に基づいて、前記アクションの内容を決定するステップと、
を有する情報処理方法を実行させるためのプログラムを記憶した記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システム、情報処理方法及び記憶媒体に関する。
【背景技術】
【０００２】
非特許文献１には、映画の配信サイト等のオンラインアプリケーション上でユーザに推薦すべきコンテンツの決定等に用いることができる手法が開示されている。非特許文献１は、多腕バンディット問題の一種であるコンテクスチュアル（文脈付き）・コンビナトリアル・バンディットに基づくアルゴリズムを用いて、ユーザに複数の映画を推薦する推薦システムを提案している。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】L.  Qin,  S.  Chen,  and  X.  Zhu,  “Contextual  Combinatorial  Bandit  and  its  Application  on  Diversified  Online  Recommendation”,  in  Proceedings  of  the  2014  SIAM  International  Conference  on  Data  Mining,  pp.  461-469,  2014
【発明の概要】
【発明が解決しようとする課題】
【０００４】
非特許文献１に記載されている推薦システムでは、ユーザに対して推薦を行わなかった映画のフィードバックについては考慮されていない。このように、従来の意思決定手法では、対象とならなかった候補が考慮されないことがあり、問題の制約条件によっては適切な意思決定が実現できない場合があった。【０００５】
本発明は、上述の課題に鑑みて行われたものであって、より一般的な制約条件に対しても適切な意思決定を実現し得る情報処理システム、情報処理方法及び記憶媒体を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の１つの観点によれば、アクションの制約情報と、前記アクションの対象である複数の候補の各々についての候補情報とを取得する条件取得部と、前記制約情報及び前記候補情報に基づいて、前記アクションに応じた報酬を算出するための報酬関数を前記複数の候補の各々について推定する報酬関数推定部と、前記複数の候補の各々の前記報酬関数に基づいて、前記アクションの内容を決定するアクション決定部と、を有する、情報処理システムが提供される。【０００７】
本発明の他の１つの観点によれば、アクションの制約情報と、前記アクションの対象である複数の候補の各々についての候補情報とを取得するステップと、前記制約情報及び前記候補情報に基づいて、前記アクションに応じた報酬を算出するための報酬関数を前記複数の候補の各々について推定するステップと、前記複数の候補の各々の前記報酬関数に基づいて、前記アクションの内容を決定するステップと、を有する、情報処理方法が提供される。【０００８】
本発明の他の１つの観点によれば、コンピュータに、アクションの制約情報と、前記アクションの対象である複数の候補の各々についての候補情報とを取得するステップと、前記制約情報及び前記候補情報に基づいて、前記アクションに応じた報酬を算出するための報酬関数を前記複数の候補の各々について推定するステップと、前記複数の候補の各々の前記報酬関数に基づいて、前記アクションの内容を決定するステップと、を有する情報処理方法を実行させるためのプログラムを記憶した記憶媒体が提供される。
【発明の効果】
【０００９】
本発明によれば、より一般的な制約条件に対しても適切な意思決定を実現し得る情報処理システム、情報処理方法及び記憶媒体を提供することができる。
【図面の簡単な説明】
【００１０】
【図１】第１実施形態に係る情報処理システムのハードウェア構成例を示すブロック図である。
【図２】第１実施形態に係る情報処理システムの構成例を示す機能ブロック図である。
【図３】第１実施形態に係る情報処理システムの動作を示すフローチャートである。
【図４】第１実施形態に係る候補情報の例を示す表である。
【図５】第１実施形態の適用例１における報酬を示す表である。
【図６】第１実施形態の適用例２における購入確率を示す表である。
【図７】第１実施形態の適用例２における報酬の期待値を示す表である。
【図８】第１実施形態の適用例２における推定報酬と試行回数の関係を示すグラフである。
【図９】第２実施形態に係る情報処理システムの構成例を示す機能ブロック図である。
【発明を実施するための形態】
【００１１】
以下、図面を参照して、本発明の実施形態を説明する。なお、以下で説明する図面において、同一の機能又は対応する機能を有する要素には同一の符号を付し、その繰り返しの説明は省略することもある。
【００１２】
［第１実施形態］
本実施形態の具体的構成の説明に先立って、本実施形態の前提となる技術事項及び適用場面の例について説明する。本実施形態の情報処理システムは、プロモーション（広告の配信等の販売促進活動）等の施策の割り当て方等の意思決定のための情報処理を行うシステムである。ここで、プロモーションの割り当てとは、例えば、どのユーザにプロモーションを提供し、どのユーザにプロモーションを提供しないかを決定することを指す。また、プロモーションの割り当ては、より一般的にアクションと呼ばれることもある。またユーザは、より一般的に候補と呼ばれることもある。プロモーションの内容は特に限定されるものではないが、例えば、ブラウザ上に表示されるオンライン広告、電子メールによる広告、ダイレクトメール、割引チケットの送付等であり得る。
【００１３】
報酬関数を用いて意思決定を行う種々のアルゴリズムがある。しかしながら、現実の意思決定の場面では、アクション（例えばプロモーションの割り当て）に対する報酬（例えば、購入額、購入確率、購入額の期待値等）を予測するための報酬関数を完全な状態で事前に得ることが難しい場合がある。例えば、プロモーションの対象となったユーザ又はプロモーションの対象とならなかったユーザが商品の購入を行う確率は、何も情報がない段階では予想が困難である。また、ある程度情報があったとしても、この確率には誤差が含まれる場合が多い。そのため、報酬関数に基づいて決定されたアクションを実行してその結果を取得することを繰り返し行って報酬関数の推定精度を高めるとともに、その過程で実際に得られる報酬をできる限り大きくしたいというニーズが存在する。
【００１４】
多腕バンディット問題は、このような逐次的意思決定が求められる場面に適用され得るモデルの一つである。多腕バンディット問題とは、事前に当たりやすさを知ることができない複数のスロットマシンがある場合に、プレイヤーがいずれかのスロットマシンを選んで試行する（アームを引く）ことを繰り返して報酬を最大化するにはどうすればよいかという問題である。
【００１５】
多腕バンディット問題では、当たりやすいスロットマシンを探す「探索」と、当たりやすいスロットマシンを選んで試行することにより報酬を確保する「活用」とのトレードオフを考慮して合計の報酬を最も大きくするようなアルゴリズムの研究が進められている。また、多腕バンディット問題は、スロットマシン以外の用途にも適用可能であり、種々の意思決定への応用が検討されている。上述のプロモーションの割り当ての問題は、スロットマシンの選択をプロモーションの対象ユーザの選択に置き換えることで、多腕バンディット問題によるアプローチが可能である。
【００１６】
スロットマシンの例では、アームを引かなかったスロットマシンは動作せず、報酬が得られない。すなわち、プレイヤーは実際にアームを引いたスロットマシンの報酬の情報しか得ることができないということが問題設定の前提になっている。非特許文献１の例においても同様の前提が置かれている。しかしながら、多腕バンディット問題をスロットマシンとは異なる現実の問題に適用した場合には、問題の種類によっては選択した選択肢だけでなく、選択しなかった選択肢の報酬の情報が得られる場合もある。
【００１７】
例えば、上述のプロモーションの例では、プロモーションを提供したユーザだけでなく提供しなかったユーザも商品を購入することがあり、その購入履歴等の情報が得られる。このような例では、選択しなかった選択肢の報酬の情報も考慮すべきである。
【００１８】
本実施形態の情報処理システムは、多腕バンディット問題に適合したアルゴリズムを用いるものであるが、より一般的な制約条件に対しても適切な意思決定を実現し得るものである。以下では、本実施形態の情報処理システムの構成を具体的事例に即して説明する。
【００１９】
本実施形態の情報処理システムは、あらかじめ登録されている複数のユーザに商品を販売するためのプロモーションをどのように割り当てるかを決定するためのシステムであるものとする。例えば、プロモーションがダイレクトメールであるとすると、本情報処理システムは、登録されているユーザのうちのどのユーザにダイレクトメールを送付するかを決定するシステムであり得る。この例では、ユーザの数が多すぎる等の理由により、すべてのユーザにダイレクトメールを送付できない場合があり、ダイレクトメールの送付可能数がプロモーションの割り当ての制約条件となる。なお、本実施形態の情報処理システムと、決定された割り当てに基づいてプロモーションをユーザに提供するためのシステムとは、一体であってもよく、別々であってもよい。
【００２０】
また、本実施形態の情報処理システムは、プロモーションを提供したユーザとプロモーションを提供しなかったユーザとのいずれからも購買情報（商品を購入したか否か等）を取得可能であることを前提とする。なお、本実施形態の情報処理システムと、購買情報を取得するためのシステムとは、一体であってもよく、別々であってもよい。
【００２１】
以下の説明においては、特記した場合を除き、プロモーションは１種類であるものとし、各ユーザに実行しうる施策はプロモーションを提供することと、プロモーションを提供しないことのいずれかであるものとする。しかしながら、プロモーションの種類は複数であってもよい。
【００２２】
図１は、情報処理システム１００のハードウェア構成例を示すブロック図である。情報処理システム１００は、例えば、サーバ、デスクトップＰＣ（Personal Computer）ノートＰＣ、タブレットＰＣ等のコンピュータであり得る。
【００２３】
情報処理システム１００は、演算、制御及び記憶を行うコンピュータとして、ＣＰＵ（Central  Processing  Unit）１５１、ＲＡＭ（Random  Access  Memory）１５２、ＲＯＭ（Read  Only  Memory）１５３及びＨＤＤ（Hard  Disk  Drive）１５４を備える。また、情報処理システム１００は、通信Ｉ／Ｆ（インターフェース）１５５、表示装置１５６及び入力装置１５７を備える。ＣＰＵ１５１、ＲＡＭ１５２、ＲＯＭ１５３、ＨＤＤ１５４、通信Ｉ／Ｆ１５５、表示装置１５６及び入力装置１５７は、バス１５８を介して相互に接続される。なお、表示装置１５６及び入力装置１５７は、これらの装置を駆動するための不図示の駆動装置を介してバス１５８に接続されてもよい。
【００２４】
図１では、情報処理システム１００を構成する各部が一体の装置として図示されているが、これらの機能の一部は外付け装置により提供されるものであってもよい。例えば、表示装置１５６及び入力装置１５７は、ＣＰＵ１５１等を含むコンピュータの機能を構成する部分とは別の外付け装置であってもよい。
【００２５】
ＣＰＵ１５１は、ＲＯＭ１５３、ＨＤＤ１５４等に記憶されたプログラムに従って所定の動作を行うとともに、情報処理システム１００の各部を制御する機能をも有するプロセッサである。ＲＡＭ１５２は、揮発性記憶媒体から構成され、ＣＰＵ１５１の動作に必要な一時的なメモリ領域を提供する。ＲＯＭ１５３は、不揮発性記憶媒体から構成され、情報処理システム１００の動作に用いられるプログラム等の必要な情報を記憶する。ＨＤＤ１５４は、不揮発性記憶媒体から構成され、処理に必要なデータ、情報処理システム１００の動作用プログラム等の記憶を行う記憶装置である。
【００２６】
通信Ｉ／Ｆ１５５は、イーサネット（登録商標）、Ｗｉ−Ｆｉ（登録商標）、４Ｇ等の規格に基づく通信インターフェースであり、他の装置との通信を行うためのモジュールである。表示装置１５６は、液晶ディスプレイ、ＯＬＥＤ（Organic  Light  Emitting  Diode）ディスプレイ等であって、画像、文字、インターフェース等の表示に用いられる。入力装置１５７は、キーボード、ポインティングデバイス等であって、ユーザが情報処理システム１００を操作するために用いられる。ポインティングデバイスの例としては、マウス、トラックボール、タッチパネル、ペンタブレット等が挙げられる。表示装置１５６及び入力装置１５７は、タッチパネルとして一体に形成されていてもよい。
【００２７】
なお、図１に示されているハードウェア構成は例示であり、これら以外の装置が追加されていてもよく、一部の装置が設けられていなくてもよい。また、一部の装置が同様の機能を有する別の装置に置換されていてもよい。更に、本実施形態の一部の機能がネットワークを介して他の装置により提供されてもよく、本実施形態の機能が複数の装置に分散されて実現されるものであってもよい。例えば、ＨＤＤ１５４は、半導体メモリを用いたＳＳＤ（Solid  State  Drive）に置換されていてもよく、クラウドストレージに置換されていてもよい。
【００２８】
また、情報処理システム１００は、ＧＰＵ（Graphics  Processing  Unit）、ＡＳＩＣ（Application  Specific  Integrated  Circuit）、ＦＰＧＡ（Field  Programmable  Gate  Array）等を含んでいてもよい。情報処理システム１００における制御及び演算の機能は、ＣＰＵだけではなく、ＧＰＵ、ＡＳＩＣ、ＦＰＧＡ等により実現されるものであってもよい。
【００２９】
図２は、情報処理システム１００の機能ブロック図である。情報処理システム１００は、フィードバック取得部１０１、条件取得部１０２、報酬関数推定部１０３、アクション決定部１０４及び記憶部１０５を備える。ＣＰＵ１５１は、ＲＯＭ１５３、ＨＤＤ１５４等に記憶されたプログラムをＲＡＭ１５２にロードして実行することにより、報酬関数推定部１０３及びアクション決定部１０４の機能を実現する。ＣＰＵ１５１は、プログラムに基づいてＨＤＤ１５４、通信Ｉ／Ｆ１５５等を制御することによりフィードバック取得部１０１、条件取得部１０２及び記憶部１０５の機能を実現する。これらの各部で行われる処理については後述する。
【００３０】
図３は、本実施形態に係る情報処理システム１００により行われる処理を示すフローチャートである。図３を参照しつつ、情報処理システム１００により行われる処理を説明する。
【００３１】
本実施形態の情報処理システム１００は、逐次的意思決定のための情報処理を行うシステムである。情報処理システム１００は、ステップＳ１０１からステップＳ１０６までの処理を繰り返すことにより、ユーザに対して提供するプロモーションの内容の決定と、プロモーションの結果の取得を繰り返し実行する。
【００３２】
ステップＳ１０１において、条件取得部１０２は、プロモーションの対象となり得る候補であるユーザの各々についての候補情報を取得する。この候補情報は、例えば、ユーザの人数、ユーザの過去の購買情報、過去にプロモーションを提供したことがあるか否か、過去に商品を購入したことがあるか否か、ユーザの属性等の情報を含み得る。
【００３３】
図４は、候補情報の例を示す表である。図４には、ユーザＩＤ（Identifier）、プロモーション履歴、購入履歴、ユーザの年齢が示されている。プロモーション履歴は、過去にプロモーションを提供した回数を示している。購入履歴は、過去に商品を購入した回数を示している。年齢は、ユーザの属性の一例である。なお、プロモーション履歴及び購入履歴の回数が数値で候補情報に含まれていることはあくまでも一例であり、これは、プロモーション履歴及び購入履歴の有無の情報に置き換えられていてもよい。
【００３４】
プロモーション履歴及び購入履歴は、報酬関数に用いられ得る。年齢等のユーザの属性は、本実施形態の情報処理システム１００が文脈付きバンディットアルゴリズムにおける特徴量の情報として用いられ得る。
【００３５】
ステップＳ１０２において、条件取得部１０２は、プロモーションの制約情報を取得する。この制約情報は、プロモーションの提供方法の制約条件に関する情報であり、例えば、プロモーションを提供することができるユーザの人数の上限、プロモーションの種類が複数ある場合にはプロモーションの種類等であり得る。なお、ステップＳ１０１とステップＳ１０２の処理は逆の順序で行われてもよく、並行して行われてもよい。
【００３６】
条件取得部１０２による取得処理は、あらかじめ取得されている候補情報を記憶部１０５から読み出すものであり得る。また、条件取得部１０２による取得処理は、オペレータからの入力を受け付けるものであってもよく、ネットワークを介して候補情報を取得するものであってもよい。また、候補情報及び制約情報が情報処理システム１００の外部から取得された場合には、記憶部１０５は、候補情報及び制約情報を新規に記憶するか、あるいは既存の情報を更新する形で記憶する。
【００３７】
ステップＳ１０３において、報酬関数推定部１０３は、制約情報及び候補情報に基づいて、プロモーションに応じた報酬を算出するための報酬関数を複数のユーザの各々について推定する。報酬関数は、式（１）に示されるようにユーザごとに異なる値を算出できるように与えられる。報酬Ｒｉ、報酬関数ｒｉ等の添字ｉはユーザＩＤ等の値でありユーザを区別するものである。なお、式（１）の例ではユーザの数はｎ人であるものとしている。また、係数ｘはすべてのユーザに対するプロモーションの割り当て（アクション）の選択肢に対応する値を示すものであり、言い換えると、係数ｘはすべてのユーザに対する割り当ての情報を含む。例えば、係数ｘの値は、ユーザ１にプロモーションを提供し、その他のユーザにはプロモーションを提供しないという割り当て方の場合に１とする等の設定であり得る。このように、報酬関数推定部１０３は、種々のプロモーションの割り当てを行った際の報酬をユーザごとに算出することが可能である。なお、係数ｘは、スカラーであってもよく、ベクトルであってもよい。
【数１】
2020012589.tif 000003
【００３８】
ステップＳ１０４において、アクション決定部１０４は、式（１）に示すような複数のユーザの各々の報酬関数に基づいて、プロモーションの割り当てを決定する。具体的には、式（２）に示されるように、各ユーザに対応する報酬関数ｒｉを合算することにより報酬の合計値Ｒｓｕｍを算出し、報酬の合計値Ｒｓｕｍを最大化するようにｘを決定する。ここで決定され得るプロモーションの割り当てとは、例えば、ユーザ１にプロモーションを提供し、その他のユーザにはプロモーションを提供しないというようなものである。なお、報酬の合計値Ｒｓｕｍを最大化することは一例であり、報酬関数ｒｉを含む評価用の関数が所定の条件を満たすようにｘを決定してもよい。
【数２】
2020012589.tif 000004
【００３９】
ステップＳ１０４において決定されたプロモーションの割り当ては、情報処理システム１００の外部のプロモーションの提供システム等に出力され、実際のプロモーションの提供に利用される。
【００４０】
ステップＳ１０５において、フィードバック取得部１０１は、プロモーションの結果をステップＳ１０４において決定されたプロモーションの割り当てに対するフィードバックとして取得する。
【００４１】
ステップＳ１０６において、フィードバック取得部１０１は、取得したプロモーションの結果をそのプロモーションに用いた候補情報及びプロモーションの割り当てと関連付けて記憶部１０５に記憶させる。これにより、記憶部１０５に記憶されている候補情報は、今回のプロモーションを考慮したものに更新される。また、プロモーションの結果は、報酬関数における報酬の算出式に用いられてもよい。このようにして、フィードバックの結果を用いた学習が自動的に行われる。
【００４２】
ステップＳ１０７において、情報処理システム１００のＣＰＵ１５１は、本処理を継続するか否かを判定する。この判定は、所定のループ回数に達したか否かを判定するものであってもよく、情報処理システム１００のオペレータが処理の停止操作を行ったか否かを判定するものであってもよく、所定の停止条件が満たされたか否かを判定するものであってもよい。処理を継続すると判定された場合には処理はステップＳ１０１に移行する（ステップＳ１０７におけるＹＥＳ）。処理を継続しないと判定された場合には本処理は終了する（ステップＳ１０７におけるＮＯ）。
【００４３】
以上のように、本実施形態の情報処理システム１００は、複数の候補（プロモーションの対象となり得るユーザ）の各々についてアクションに応じた報酬の算出を行うことができるように報酬関数の推定が行われる。本例ではアクションはプロモーションの割り当てであるため、あるユーザに対して「プロモーションを提供する場合」だけでなく、「プロモーションを提供しない場合」の報酬を算出することができる。このように、本実施形態では、より一般的な制約条件で報酬の算出を行うことができるため、より一般的な制約条件に対しても適切な意思決定を実現し得る情報処理システム１００が実現される。
【００４４】
また、本例では、各ユーザに対応する報酬関数を合算して得た報酬の合計値を最大化するようにアクションを決定する。これにより、本例では、「プロモーションを提供するユーザ」と「プロモーションを提供しないユーザ」の両方の場合の報酬を合算してプロモーションの割り当てを決定するので、「プロモーションを提供しないユーザ」の報酬も考慮した意思決定が実現される。このように、本例では、より適切な意思決定を実現し得る情報処理システム１００が実現される。
【００４５】
本実施形態の情報処理システム１００を用いた具体的な問題への適用例を説明する。なお、以下の適用例は、本実施形態の構成と効果をよりわかりやすく説明するためのものであり、本実施形態の情報処理システム１００の適用範囲を限定解釈することを意図するものではない。
【００４６】
（適用例１）
適用例１では、本実施形態の効果をわかりやすく説明するため、単純化されたモデルへの本実施形態の適用例を説明する。まず適用例１の前提条件を説明する。プロモーションの対象となり得るユーザは、ユーザ１とユーザ２の２名のみであるものとする。また、プロモーションの種類は１種類のみであるものとする。更に、プロモーションの提供可能数はユーザ１とユーザ２のいずれか１名のみであることをプロモーションの制約条件とする。すなわち、取り得るアクション（アクションの制約情報）は、「ユーザ１にプロモーションを提供し、ユーザ２にプロモーションを提供しない」及び「ユーザ１にプロモーションを提供せず、ユーザ２にプロモーションを提供する」の２種類のうちのいずれかである。
【００４７】
ユーザ１及びユーザ２は、プロモーションを提供した場合、提供しなかった場合のそれぞれにおいて、商品の購入額が変化する。この商品の購入額が本適用例における報酬であるとする。図５は、ユーザ１及びユーザ２の報酬を示す表である。また図５の表は、アクションに応じた報酬を算出するための報酬関数であるともいえる。図５に示されるように、ユーザ１の報酬は、プロモーションを提供した場合に０．９であり、プロモーションを提供しなかった場合に０．７である。ユーザ２の報酬は、プロモーションを提供した場合に０．６であり、プロモーションを提供しなかった場合に０．２である。例えば、ユーザ１にプロモーションを提供し、ユーザ２にプロモーションを提供しなかった場合のユーザ１とユーザ２の総報酬は、０．９＋０．２＝１．１である。
【００４８】
本実施形態の情報処理システム１００は、図３の処理を実行することにより、アクションの決定（ユーザ１又はユーザ２へのプロモーションの提供）と結果の観測（ユーザ１及びユーザ２が商品を購入したか否かの購買情報の取得）を繰り返す。本適用例１の目的は、上述のアクションの決定と結果の観測を繰り返しながら、ユーザ１及びユーザ２から得られる総報酬を最大化することである。言うまでもないが、図５の表に記載されている報酬は、初期状態では未知である。そのため、情報処理システム１００は、図３の処理を繰り返す過程で、報酬関数の推定を行う。
【００４９】
上述の問題設定において、本実施形態の情報処理システム１００は、プロモーションを提供した場合の報酬とプロモーションを提供しなかった場合の報酬をいずれも考慮することができ、ユーザ１とユーザ２の総報酬を最大化するようにアクションを決定する。これにより、報酬関数の学習が進むと、情報処理システム１００は、ユーザ１にプロモーションを提供せず、ユーザ２にプロモーションを提供する。これにより、総報酬（アクション１回当たり）は、０．７＋０．６＝１．３となり、適用例１の前提条件における報酬を最大化するアクションが実現される。
【００５０】
他方、非特許文献１のような選択しなかった候補からの報酬が考慮されないアルゴリズムを適用例１の問題に適用した場合には、プロモーションの提供を行ったユーザの報酬が最大になるようにアクションが選択される。具体的には、ユーザ１とユーザ２を対比すると、プロモーションを提供した場合の報酬は、ユーザ１の方が大きいので、ユーザ１にプロモーションを提供し、ユーザ２にプロモーションを提供しないという選択がされ続ける。この場合の総報酬（アクション１回当たり）は、０．９＋０．２＝１．１となり、報酬を最大化するアクションが実現されない。
【００５１】
以上の適用例１から理解されるように、本実施形態の情報処理システム１００は、プロモーションを提供しなかったユーザの報酬を考慮してアクションの決定を行うことにより、より適切な意思決定を実現する。
【００５２】
なお、情報処理システム１００による適用例１の最適化事例は、プロモーションを提供しなかった場合とプロモーションを提供した場合の報酬の差が大きいユーザ２にプロモーションを提供することが最適であるということを教示している。これは、これまでにあまり商品を購入していない見込み顧客を発掘してプロモーションを提供することが効果的であるというマーケティング上の経験則に相当するものである。このように、情報処理システム１００は、アクションの結果のフィードバックを用いた学習により妥当な結論を得ることができている。
【００５３】
（適用例２）
適用例１の問題の一部を変更して、報酬が確率的に与えられる場合におけるより適切な報酬関数の設定方法を適用例２として説明する。
【００５４】
適用例２では、ユーザ１及びユーザ２は、プロモーションを提供した場合、提供しなかった場合のそれぞれにおいて、ある確率で商品を購入するものとする。図６は、ユーザ１及びユーザ２の商品の購入確率を示す表である。図６に示されるように、ユーザ１の商品の購入確率は、プロモーションを提供した場合に０．９であり、プロモーションを提供しなかった場合に０．７である。ユーザ２の商品の購入確率は、プロモーションを提供した場合に０．６であり、プロモーションを提供しなかった場合に０．２である。
【００５５】
また、ユーザが商品を購入した場合の報酬が１であり、ユーザが商品を購入しなかった場合の報酬が０であるものとする。したがって、ユーザ１にプロモーションを提供した場合のユーザ１の商品の購入による報酬の期待値は、１×０．９＋０×（１−０．９）＝０．９である。したがって、報酬の期待値は、図６に示されている購入確率の値と一致する。図５の他の値についても同様である。したがって、図６に示される表の数値は、報酬の期待値でもあり、報酬関数であるといえる。
【００５６】
このように報酬が確率的に与えられる場合であっても、報酬の期待値を最大化することにより適用例１と同じ結論が得られることが望ましい。しかしながら、報酬が確率的に与えられる場合には、報酬関数の推定が適切に行われない場合がある。そのような場合の例を以下に説明する。
【００５７】
１回目のアクションは、ユーザ１のみにプロモーションを提供するものであり、２回目のアクションではユーザ２のみにプロモーションを提供するものであったものとする。このとき、１回目のアクションの結果はユーザ１が商品を購入し、ユーザ２は商品を購入しないというものであったとすると、ユーザ１の報酬は１でユーザ２の報酬は０である。そして、２回目のアクションの結果はユーザ１もユーザ２も商品を購入しないというものであったとすると、ユーザ１とユーザ２の報酬はいずれも０である。これらの結果をそのまま解釈すると、ユーザ２よりもユーザ１にプロモーションを提供した方がよいという結論が導かれる。この結果をそのままフィードバックすると、これ以後のアクションでは、ユーザ１のみにプロモーションを提供し続けることが最適であると判断される。
【００５８】
この状況において、ユーザ１にプロモーションを提供し、ユーザ２にプロモーションを提供しないというアクションを繰り返して報酬関数の学習が進められると、図７のような報酬関数が得られる。図７は、ユーザ１及びユーザ２の学習後の報酬関数を示す表である。図７に示されているように、ユーザ１のプロモーションを提供した場合の報酬の期待値と、ユーザ２にプロモーションを提供しない場合の報酬の期待値は適切な値となっている。しかしながら、その他の報酬の期待値は０になっており適切な値ではない。これは、１回目と２回目のアクションの結果の後、ユーザ２のみにプロモーションを提供するアクションを行っていないので、報酬が０という結果で学習が完了してしまったためである。
【００５９】
学習の完了後も図７の表に基づいて、ユーザ１にプロモーションを提供し、ユーザ２にプロモーションを提供しないという選択がされ続ける。この場合の総報酬（アクション１回当たり）は、０．９＋０．２＝１．１となるため、報酬を最大化するアクションが実現されない場合がある。
【００６０】
この問題を解消するには、報酬関数に補正を加えることにより、楽観的に報酬関数を推定することが好適である。ここで、楽観的とは、不確かな選択肢の報酬を高く見積もることであり、より具体的には、プロモーションを提供した回数が少なく報酬関数が不確かなユーザについて、報酬関数に大きな補正値を加算することである。これにより、報酬関数が不確かなユーザにプロモーションが提供されやすくなり、上述のような不適切な学習がなされる可能性を低減することができる。
【００６１】
楽観的な報酬関数の推定方法の一例として、ＵＣＢ（Upper  Confidence  Bound）に基づく楽観的報酬関数の概要及びシミュレーションの結果を説明する。本手法では、あるユーザｕに対するあるアクションａ（あるプロモーションの割り当て）の楽観的推定報酬を以下の式（３）で設定する。
（楽観的推定報酬）＝（推定報酬）＋（推定の信頼度）      （３）
【００６２】
式３の推定報酬は以下の式（４）で表される。
【数３】
2020012589.tif 000005
【００６３】
式３の推定の信頼度は以下の式（５）で表される。
【数４】
2020012589.tif 000006
【００６４】
ここで、Ｒｔｏｔａｌは、ユーザｕに対するアクションａによる報酬の総和である。例えば、ユーザｕに対してアクションａにより報酬１が１０回発生していれば、Ｒｔｏｔａｌは、１０である。
【００６５】
ｔ１は、ユーザｕに対するアクションａが行われた回数である。λは、ユーザの数及び制約条件によって決定される値であり、本例では２とした。ｄは、ユーザのベクトルの次元である。ユーザのベクトルとは、ユーザ１を（１，０）、ユーザ２を（０，１）のように各ユーザを互いに線形独立なベクトルで表現したものである。したがって、本例ではユーザのベクトルの次元は２である。Ｎは制約条件により決定される値であり、本例では２である。
【００６６】
ｔは、試行回数（プロモーションの割り当てを行い、その結果を観測した回数）である。ｔは、ユーザｕに対するアクションａが行われた回数と行われなかった回数の和と言い換えることもできる。式５の「／」は分数を示しており、ｐ／ｑは、ｐをｑで除した値である。δは、アルゴリズムが成功する確率に関係するパラメータで、本例では０．００１とした。Ｓは、得られる報酬の大きさとユーザのベクトルの次元とによって決定される値であり、本例では２とした。
【００６７】
式５に示されるように、推定の信頼度は、ｔに対する増加関数であり、処理が繰り返されて試行回数が増大するにつれて緩やかに増加する。一方、推定の信頼度は、ｔ１に対する減少関数でもあり、ユーザｕに対してアクションａが行われると減少する。したがって、楽観的推定報酬は、ユーザｕに対してアクションａが行われない試行が続くと緩やかに増加し、ユーザｕに対してアクションａが行われると減少する。すなわち、推定の信頼度は、あまり試行が行われていないアクションａの報酬を大きく見積もる（楽観的に推定する）ことにより、そのようなアクションａが選ばれやすくなるように報酬を補正するパラメータである。
【００６８】
次に、楽観的推定報酬のシミュレーション結果を説明する。図８は、上述の手法により算出された推定報酬と試行回数の関係を示すグラフである。図８には、ユーザ１、ユーザ２の違い及びプロモーションの有無による４つの条件について、試行回数を重ねるにつれて推定報酬がどのように変化するかをシミュレーションした結果が示されている。図８に示されているように、試行回数が少ない間は、推定の信頼度の項により、報酬の期待値よりもはるかに大きな値となっている。しかしながら、試行回数が増加するにつれて、報酬の期待値に向かって徐々に収束することがわかる。
【００６９】
このように、ＵＣＢに基づく楽観的報酬関数を適用することにより、報酬が確率的に与えられる場合であっても、報酬関数の推定が適切に行われる。
【００７０】
（適用例３）
適用例２で述べた、報酬が確率的に与えられる場合における課題に対する別のアプローチを適用例３として説明する。適用例３では、トンプソンサンプリングを用いてアクションの決定（プロモーションの割り当ての決定）を行う。トンプソンサンプリングは、各アクションの期待値の事後確率分布（例えばベータ分布）に従う乱数を生成し、生成された乱数を評価指標として（例えば乱数の値が最大の）アクションを実行するという手法である。この手法によれば、あるアクションが最適であるという事後確率と当該アクションの実行確率が一致するようにアクションが選択される。この手法では、ある時点で最適とされているアクション以外のアクションも事後確率分布に応じた確率で時々実行されるので、適用例２で述べたような不適切な学習がなされる可能性を低減することができる。
【００７１】
ＵＣＢに比べてトンプソンサンプリングの方が最適なアクションを選択する可能性が高いことが経験的に知られている。したがって、適用例３の手法の方が、適用例２の手法よりも有効である可能性がある。
【００７２】
なお、更に別のアプローチとしては、ε−ｇｒｅｅｄｙと呼ばれるアルゴリズムを本実施形態の情報処理システム１００に用いてもよい。ε−ｇｒｅｅｄｙとは、乱数に基づいて、確率（１−ε）である時点で最適と見積もられているアクションを実行し、確率εでその他のアクションを実行するというものである。この手法を用いた場合も、適用例２で述べたような不適切な学習がなされる可能性を低減することができる。
【００７３】
上述の実施形態において説明した情報処理システムは以下の第２実施形態のようにも構成することができる。
【００７４】
［第２実施形態］
図９は、本実施形態に係る情報処理システム２００の構成例を示す機能ブロック図である。情報処理システム２００は、条件取得部２０２、報酬関数推定部２０３及びアクション決定部２０４を備える。条件取得部２０２は、アクションの制約情報と、アクションの対象である複数の候補の各々についての候補情報とを取得する。報酬関数推定部２０３は、制約情報及び候補情報に基づいて、アクションに応じた報酬を算出するための報酬関数を複数の候補の各々について推定する。アクション決定部２０４は、複数の候補の各々の報酬関数に基づいてアクションの内容を決定する。
【００７５】
本実施形態によれば、より一般的な制約条件に対しても適切な意思決定を実現し得る情報処理システム２００が提供される。
【００７６】
［変形実施形態］
以上、実施形態を参照して本発明を説明したが、本発明は上述の実施形態に限定されるものではない。本願発明の構成及び詳細には本発明の要旨を逸脱しない範囲で、当業者が理解し得る様々な変形をすることができる。
【００７７】
上述の実施形態における情報処理システムは、ユーザに提供するプロモーションの割り当てを適切に行うための意思決定に用いられている。しかしながら、既に述べたように、「ユーザ」は「候補」に、「プロモーションの割り当て」は「アクション」に、一般化可能である。すなわち、上述の実施形態における情報処理システムは、プロモーションの割り当て以外の用途にも適用可能である。
【００７８】
例えば、上述の実施形態における情報処理システムは、業務効率の向上のため、担当者への仕事の割り当てを行う用途に用いることができる。この場合には、「担当者」を「候補」に読み替え、「仕事の割り当て」を「アクション」に読み替えることで、上述の実施形態における情報処理システムが適用可能である。
【００７９】
また、上述の実施形態における情報処理システムは、計算コストの低減のため、コンピュータへの計算の割り当てを行う用途にも用いることができる。この場合には、「コンピュータ」を「候補」に読み替え、「計算の割り当て」を「アクション」に読み替えることで、上述の実施形態における情報処理システムが適用可能である。
【００８０】
また、上述の実施形態における情報処理システムは、輸送コストの低減のため、車両の通過ルートの割り当てを最適化する用途にも用いることができる。この場合には、「車両」を「候補」に読み替え、「通過ルートの割り当て」を「アクション」に読み替えることで、上述の実施形態における情報処理システムが適用可能である。
【００８１】
上述の各実施形態の機能を実現するように該実施形態の構成を動作させるプログラムを記憶媒体に記憶させ、該記憶媒体に記憶されたプログラムをコードとして読み出し、コンピュータにおいて実行する処理方法も各実施形態の範疇に含まれる。すなわち、コンピュータ読取可能な記憶媒体も各実施形態の範囲に含まれる。また、上述のコンピュータプログラムが記憶された記憶媒体はもちろん、そのコンピュータプログラム自体も各実施形態に含まれる。また、上述の実施形態に含まれる１又は２以上の構成要素は、各構成要素の機能を実現するように構成されたＡＳＩＣ、ＦＰＧＡ等の回路であってもよい。
【００８２】
該記憶媒体としては、例えばフロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ（Compact  Disc-Read  Only  Memory）、磁気テープ、不揮発性メモリカード、ＲＯＭを用いることができる。また該記憶媒体に記憶されたプログラム単体で処理を実行しているものに限らず、他のソフトウェア、拡張ボードの機能と共同して、ＯＳ（Operating  System）上で動作して処理を実行するものも各実施形態の範疇に含まれる。
【００８３】
上述の各実施形態の機能により実現されるサービスは、ＳａａＳ（Software  as  a  Service）の形態でユーザに対して提供することもできる。
【００８４】
上述の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【００８５】
（付記１）
アクションの制約情報と、前記アクションの対象である複数の候補の各々についての候補情報とを取得する条件取得部と、
前記制約情報及び前記候補情報に基づいて、前記アクションに応じた報酬を算出するための報酬関数を前記複数の候補の各々について推定する報酬関数推定部と、
前記複数の候補の各々の前記報酬関数に基づいて、前記アクションの内容を決定するアクション決定部と、
を有する、情報処理システム。
【００８６】
（付記２）
前記アクションは、前記複数の候補のうちの少なくとも一つを施策の対象として選択し、前記選択された候補以外の候補を前記施策の対象外とすることを含む、付記１に記載の情報処理システム。
【００８７】
（付記３）
前記報酬関数は、対応する候補が前記施策の対象である場合の報酬と、前記施策の対象でない場合の報酬とを算出可能である、付記２に記載の情報処理システム。
【００８８】
（付記４）
前記報酬関数は、前記アクションの結果に基づいて変化する関数を含む、付記１乃至３のいずれか１項に記載の情報処理システム。
【００８９】
（付記５）
前記報酬関数は、過去に前記アクションが行われた回数に応じて変化する関数を含む、付記４に記載の情報処理システム。
【００９０】
（付記６）
前記報酬関数は、対応する候補が前記アクションに含まれる施策の対象となった回数に応じて変化する関数を含む、付記４又は５に記載の情報処理システム。
【００９１】
（付記７）
前記報酬関数は、ＵＣＢ（Upper  Confidence  Bound）に基づく関数を含む、付記５又は６に記載の情報処理システム。
【００９２】
（付記８）
前記報酬関数は、乱数を含む、付記４乃至７のいずれか１項に記載の情報処理システム。
【００９３】
（付記９）
前記報酬関数は、トンプソンサンプリングに基づく乱数を含む、付記４乃至８のいずれか１項に記載の情報処理システム。
【００９４】
（付記１０）
前記候補情報は、前記アクションに含まれる施策の対象になったことがあるか否かを示す情報を含む、付記４乃至９のいずれか１項に記載の情報処理システム。
【００９５】
（付記１１）
前記候補情報は、前記アクションの結果を示す情報を含む、付記４乃至１０のいずれか１項に記載の情報処理システム。
【００９６】
（付記１２）
前記アクション決定部は、前記報酬関数に基づいて、前記複数の候補の各々の報酬の総和が最大になるように前記アクションの内容を決定する、付記１乃至１１のいずれか１項に記載の情報処理システム。
【００９７】
（付記１３）
前記アクションは、プロモーションの割り当てを含み、
前記候補は、前記プロモーションの提供を受けるユーザである、
付記１乃至１２のいずれか１項に記載の情報処理システム。
【００９８】
（付記１４）
アクションの制約情報と、前記アクションの対象である複数の候補の各々についての候補情報とを取得するステップと、
前記制約情報及び前記候補情報に基づいて、前記アクションに応じた報酬を算出するための報酬関数を前記複数の候補の各々について推定するステップと、
前記複数の候補の各々の前記報酬関数に基づいて、前記アクションの内容を決定するステップと、
を有する、情報処理方法。
【００９９】
（付記１５）
コンピュータに、
アクションの制約情報と、前記アクションの対象である複数の候補の各々についての候補情報とを取得するステップと、
前記制約情報及び前記候補情報に基づいて、前記アクションに応じた報酬を算出するための報酬関数を前記複数の候補の各々について推定するステップと、
前記複数の候補の各々の前記報酬関数に基づいて、前記アクションの内容を決定するステップと、
を有する情報処理方法を実行させるためのプログラムを記憶した記憶媒体。
【符号の説明】
【０１００】
１００、２００            情報処理システム
１０１                    フィードバック取得部
１０２、２０２            条件取得部
１０３、２０３            報酬関数推定部
１０４、２０４            アクション決定部
１０５                    記憶部
１５１                    ＣＰＵ
１５２                    ＲＡＭ
１５３                    ＲＯＭ
１５４                    ＨＤＤ
１５５                    通信Ｉ／Ｆ
１５６                    表示装置
１５７                    入力装置
１５８                    バス
【図１】
2020012589.tif 000007
【図２】
2020012589.tif 000008
【図３】
2020012589.tif 000009
【図４】
2020012589.tif 000010
【図５】
2020012589.tif 000011
【図６】
2020012589.tif 000012
【図７】
2020012589.tif 000013
【図８】
2020012589.tif 000014
【図９】
2020012589.tif 000015
【手続補正書】
【提出日】令和2年11月20日(2020.11.20)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
アクションの制約情報と、前記アクションの対象である複数の候補の各々についての候補情報とを取得する条件取得部と、
前記制約情報及び前記候補情報に基づいて、前記アクションに応じた報酬を算出するための報酬関数を前記複数の候補の各々について推定する報酬関数推定部と、
前記複数の候補の各々の前記報酬関数に基づいて、前記アクションの内容を決定するアクション決定部と、
を有する、情報処理システム。
【請求項２】
前記アクションは、前記複数の候補のうちの少なくとも一つを施策の対象として選択し、前記選択された候補以外の候補を前記施策の対象外とすることを含む、請求項１に記載の情報処理システム。
【請求項３】
前記報酬関数は、対応する候補が前記施策の対象である場合の報酬と、前記施策の対象でない場合の報酬とを算出可能である、請求項２に記載の情報処理システム。
【請求項４】
前記報酬関数は、前記アクションの結果に基づいて変化する関数を含む、請求項１乃至３のいずれか１項に記載の情報処理システム。
【請求項５】
前記報酬関数は、過去に前記アクションが行われた回数に応じて変化する関数を含む、請求項４に記載の情報処理システム。
【請求項６】
前記報酬関数は、対応する候補が前記アクションに含まれる施策の対象となった回数に応じて変化する関数を含む、請求項４又は５に記載の情報処理システム。
【請求項７】
前記報酬関数は、ＵＣＢ（Upper  Confidence  Bound）に基づく関数を含む、請求項５又は６に記載の情報処理システム。
【請求項８】
前記報酬関数は、トンプソンサンプリングに基づく乱数を含む、請求項４乃至７のいずれか１項に記載の情報処理システム。
【請求項９】
アクションの制約情報と、前記アクションの対象である複数の候補の各々についての候補情報とを取得するステップと、
前記制約情報及び前記候補情報に基づいて、前記アクションに応じた報酬を算出するための報酬関数を前記複数の候補の各々について推定するステップと、
前記複数の候補の各々の前記報酬関数に基づいて、前記アクションの内容を決定するステップと、
を有する、情報処理方法。
【請求項１０】
コンピュータに、
アクションの制約情報と、前記アクションの対象である複数の候補の各々についての候補情報とを取得するステップと、
前記制約情報及び前記候補情報に基づいて、前記アクションに応じた報酬を算出するための報酬関数を前記複数の候補の各々について推定するステップと、
前記複数の候補の各々の前記報酬関数に基づいて、前記アクションの内容を決定するステップと、
を有する情報処理方法を実行させるためのプログラム。
【国際調査報告】
2020012589.tif 000016
2020012589.tif 000017
2020012589.tif 000018
2020012589.tif 000019