以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
図1は、本実施形態に係るシステム100の構成を端末112、端末152、および端末192と共に示す。システム100は、ポイントサービス等の加入者または会員等である各対象者の属性データ(「属性情報」とも示す。)を属性データベース(属性DB)に登録して管理する。システム100は、属性DBにおける、属性データを取得していない属性を主に予測する属性予測モデルを生成して、属性値を予測する。そして、システム100は、予測した属性値を含む属性DBを、商品またはサービス(以下「商品等」と総称する。)のレコメンドおよび市場調査等に活用可能とする。
システム100は、属性予測装置110と、予測モデル生成装置150と、レコメンド処理装置190とを備える。システム100は、サーバ・コンピュータ等のコンピュータにより実現されてもよく、複数のコンピュータで実現されたシステムであってもよく、地域的に分散された複数のコンピュータで実現された分散システムであってもよい。システム100は、1事業者が提供するポイントシステム、複数の事業者にわたる共通の共通ポイントシステム、クレジットカード、電子マネー、およびその他の任意の会員サービスにおける各会員等の対象者の属性情報を管理する。
属性予測装置110は、対象者の属性情報を入力して登録し、登録された属性情報に基づいて主に未知の属性情報を予測する。本実施形態に係る属性予測装置110は、複数の対象者間の属性値を、属性情報が既知であるか未知であるかに関わらず比較可能とするために、属性情報が既知の対象者についてもその属性情報を予測する。属性予測装置110は、属性情報取得部115と、属性DB接続部120と、属性DB122と、次元縮約部125と、縮約DB接続部130と、縮約DB132と、属性予測部135と、属性値更新部140と、属性予測値更新部142とを有する。
属性情報取得部115は、対象者の属性情報を取得して、属性DB接続部120を介して属性DB122に格納する。対象者の属性情報のソースは、一例として、新規会員登録の際に対象者が必須または任意で記入または入力する情報、会員アンケートに対する対象者の回答、店舗等において対象者が商品等を購入したことに応じた決済情報、電子商取引サイトにおいて対象者が商品等を購入したことに応じた決済情報、対象者がアクセスしたWebサイトの情報、対象者がWebサイト上でクリックしたインターネット広告(Web広告)の情報、および、対象者が視聴したテレビ番組の情報等の少なくとも1つであってよく、対象者の同意を受けて提供される。属性情報取得部115は、定期的等の任意のタイミングで属性DB接続部120を介して属性DB122をアクセスし、少なくとも1つの属性に対する属性値が未知の対象者を検索して、Webサイト等を介して会員アンケートを行うこと等によって、能動的に未知の属性値を蒐集してもよい。
属性DB接続部120は、属性DB122に接続され、システム100内の各部から属性DB122に対するアクセスを処理する。属性DB122は、複数の対象者のそれぞれについて、複数の属性に対応する複数の属性値を含む属性情報を記憶する。属性DB122は、システム100の処理を行うコンピュータに接続されたハードディスクドライブ等の外部記憶装置の少なくとも一部の記憶領域によって実現されてもよく、例えばクラウドストレージサービス等によって提供されるシステム100の外部の記憶装置によって実現されてもよい。
次元縮約部125は、属性DB122に記憶された、複数の対象者のそれぞれの複数の属性値に基づいて、複数の属性の次元を縮約する。一例として次元縮約部125は、トピックモデルを用いて、属性DB122に含まれる各対象者の属性情報が、複数のトピックのそれぞれに該当する程度または確率を表す複数の値を算出する。そして、次元縮約部125は、算出した複数の値を、各対象者の属性情報に対して次元縮約用の複数の属性として追加する。これにより、次元縮約部125は、対象者の属性情報を構成する多数の属性を、より少ない数となるトピック毎の属性に縮約することができる。これに伴い、次元縮約部125は、次元縮約用に追加した複数の属性以外の属性の少なくとも一部または全部を、属性予測モデルの説明変数から除いてもよい。次元縮約部125は、属性DB122に対し上記の次元縮約処理を適用して、縮約DB132に変換する。
縮約DB接続部130は、縮約DB132に接続され、次元縮約部125から縮約DB132への書込アクセスおよび属性予測部135からの縮約DB132の読出アクセスを処理する。縮約DB132は、複数の対象者のそれぞれについて、次元縮約部125により縮約された属性を少なくとも一部に含む、複数の属性に対応する複数の属性値を属性情報として記憶する。縮約DB132も、属性DB122と同様に、システム100の処理を行うコンピュータに接続された外部記憶装置により実現されてもよく、システム100の外部のクラウドストレージサービス等により提供される記憶装置によって実現されてもよい。
属性予測部135は、属性DB122における予測対象の1または2以上の属性(「予測対象属性」と示す。)のそれぞれに対して選択された属性予測モデルを予測モデル生成装置150から受け取る。そして、属性予測部135は、受け取った属性予測モデルを用いて、複数の対象者のそれぞれについて予測対象属性の属性値を予測する。より具体的には、属性予測部135は、全対象者または少なくとも一部の対象者のそれぞれについて、予測対象属性毎に、選択された属性予測モデルを実行し、縮約DB132に格納された各対象者の属性情報に基づいて予測対象属性の予測値を算出する。属性予測部135は、算出した予測値を属性DB接続部120を介して属性DB122に格納する。
なお、本実施形態に係る属性DB122は、複数の属性のそれぞれに対応付けて、属性情報取得部115が取得した属性情報に基づく既知の属性値、および属性予測部135により予測された予測値の両方を広義の属性値として格納する。本実施形態においては、説明の便宜上、属性DB122は、既知の属性値と予測値とを、同じ表現形式を用いて格納するものとする。この場合、属性情報取得部115は、取得した属性情報の生データの表現形式を変換し、属性DB122は、表現形式が変換された属性値を、既知の属性値として格納する。例えば、属性情報取得部115は、属性情報の生データとして取得した絶対評価の属性値を相対評価の属性値に変換し、属性DB122は、相対評価に変換された属性値を格納してよい。このような例としては、属性DB122が、35歳等の絶対評価で表された対象者の年齢に代えて、年齢が既知である全対象者の中での相対値(例えば偏差値またはパーセンタイルランキング等)に変換された属性値を格納する場合が挙げられる。別の例としては、属性DB122が、対象者の性別について、男性である確率、または男性である可能性の偏差値等に変換された属性値を格納する場合が挙げられる。ここで、属性DB122が、属性の予測値も変換後の既知の属性値と同様に偏差値、パーセンタイルランキング、または確率等の表現形式で格納することで、既知の属性値と予測値との間で互換性を得ることができる。これにより、システム100は、属性予測モデルの生成においては既知の属性値を説明変数として使用し、属性予測モデルの使用時においては予測値を説明変数として使用することも可能となる。この結果、属性予測モデルの説明変数となる少なくとも一部の属性について既知の属性値が得られていない対象者についても、属性予測装置110は、その属性予測モデルを用いて予測対象属性の属性値を予測することが可能となる。
なお、属性DB122は、変換前の表現形式で既知の属性値を格納し、変換後の表現形式で予測値を格納する形態等、他の様々な形態で実現し得る。このような場合であっても、システム100は、既知の属性値に代えて予測値を参照する度に、予測値の表現形式から既知の属性値の表現形式へと変換することで、既知の属性値および予測値を同じ表現形式で格納する場合と同様の動作を実現することが可能となる。また、属性DB122は、表現形式を変換した既知の属性値に加え、属性情報取得部115が取得した属性情報の生データも別途格納してもよい。
属性値更新部140は、属性DB122に格納されているある属性の予測値の確からしさが閾値以上であることを条件として、予測値に基づいてその属性の属性値を更新する。これにより、予測値の確度が十分に高い場合には、未取得の属性値を予測値に基づいて設定することができる。
属性予測値更新部142は、属性DB122に格納されているある属性の属性値が既知である場合において、その属性の予測値が既知の属性値から基準以上乖離していることに応じて、その属性の予測値を既知の属性値に基づいて更新する。これにより、一部の対象者について予測値が既知の属性値から大きく外れている場合に、予測値をより正確な値に書き換えることができる。
また、属性予測装置110は、属性データ取得部144と属性追加部146とを有してもよい。属性データ取得部144は、複数の対象者の少なくとも一部について、属性データベースに追加すべき追加属性の既知の属性値を示す既知情報を取得する。例えば、属性データ取得部144は、システム100または属性予測装置110のユーザ等から、端末112を介して既知情報を受け取る。
属性追加部146は、属性DB122の複数の属性に、追加属性を追加する。属性追加部146は、既知情報に含まれる各対象者についての追加属性の既知の属性値を、属性データ取得部144が取得した既知情報において示された属性値に基づいて設定する。既知情報において既知の属性値が示されていない対象者については、属性追加部146は、既知の属性値を設定しない。
追加属性が属性DB122に追加されると、システム100は、追加属性を予測対象属性として処理してよい。すなわち、予測モデル生成装置150は、追加属性を予測対象属性として、予測対象属性の属性値を予測する1または複数の属性予測モデルを属性予測モデル生成部180により生成してよい。また、予測モデル生成装置150は、複数の属性予測モデルを生成した場合に、それぞれの予測誤差に基づいて、予測対象属性の属性値の予測に用いる属性予測モデルを属性予測モデル選択部185により選択してよい。
予測モデル生成装置150は、属性DB122において予測対象とする1または2以上の属性のそれぞれを予測する属性予測モデルを生成する。予測モデル生成装置150は、モデル更新指示部155と、サンプリング部160と、属性DB接続部165と、属性DB167と、次元縮約部170と、縮約DB接続部175と、縮約DB177と、属性予測モデル生成部180と、属性予測モデル選択部185とを有する。
モデル更新指示部155は、予め定められた期間が経過したことに応じて、属性予測装置110が使用する属性予測モデルの更新を指示する。モデル更新指示部155は、例えば、前回属性予測モデルを更新してから1日、1週間、または1ヶ月等といった期間が経過したことに応じて、サンプリング部160に対して処理の開始をトリガする等により、属性予測モデルの更新を指示する。これに代えて、モデル更新指示部155は、その期間の間に予測モデル生成装置150内で既に準備された属性予測モデルを、その期間が経過したことに応じて属性予測装置110へと送信することを属性予測モデル選択部185に指示してもよい。
サンプリング部160は、属性DB122が属性情報を格納する複数の対象者のうち一部の対象者をサンプリングして、サンプリングした対象者に対応付けて属性DB122に格納されている属性情報を、属性DB接続部165を介して属性DB167に格納またはコピーする。ここで、サンプリング部160は、属性DB122に登録されている対象者のうち、予測対象属性の属性値が既知である対象者の中から、属性予測モデルの生成に使用するサンプル数分の対象者を抽出してもよい。これに代えて、サンプリング部160は、属性DB122に登録されている対象者の中から、属性予測モデルの生成に使用するサンプル数分の対象者をランダムに抽出してもよい。
属性DB接続部165は、属性DB167に接続され、予測モデル生成装置150内の各部から属性DB167に対するアクセスを処理する。属性DB167は、属性DB122に登録された対象者のうちサンプリング部160によりサンプリングされた複数の対象者のそれぞれについて、複数の属性に対応する複数の属性値を含む属性情報を記憶する。属性DB167も、属性DB122と同様に、システム100の処理を行うコンピュータに接続された外部記憶装置により実現されてもよく、システム100の外部のクラウドストレージサービス等により提供される記憶装置によって実現されてもよい。
次元縮約部170は、属性DB167に記憶された、複数の対象者のそれぞれの複数の属性値に基づいて、複数の属性の次元を縮約する。次元縮約部170は、属性DB167に対して次元縮約部125と同様の次元縮約処理を適用して、縮約DB177に変換してもよい。
縮約DB接続部175は、縮約DB177に接続され、次元縮約部170から縮約DB177への書込アクセスおよび属性予測モデル生成部180からの縮約DB177の読出アクセスを処理する。縮約DB177は、サンプリング部160によりサンプリングされた複数の対象者のそれぞれについて、次元縮約部170により縮約された属性を少なくとも一部に含む複数の属性に対応する複数の属性値を有する属性情報を記憶する。縮約DB177も、属性DB122と同様に、システム100の処理を行うコンピュータに接続された外部記憶装置により実現されてもよく、システム100の外部のクラウドストレージサービス等により提供される記憶装置によって実現されてもよい。
属性予測モデル生成部180は、属性DB167を用いて、予測対象属性の属性値を、複数の属性のうち予測対象属性以外の少なくとも1つの属性の属性値に基づいてそれぞれ予測する複数の属性予測モデルを生成する。本実施形態に係る属性予測モデル生成部180は、属性DB167を参照することにより、属性DB122からサンプリングされた一部の対象者に対応付けられた属性値を用いて、複数の属性予測モデルを生成する。これにより、属性予測モデル生成部180は、複数の属性予測モデルのそれぞれを、属性DB122に格納された全対象者の属性情報を用いて生成した場合に必要となる計算量および計算時間を削減することができる。なお、十分な計算能力が確保できる場合には、属性予測モデル生成部180は、サンプリングを用いず属性DB122に格納された各対象者の属性情報を用いて複数の属性予測モデルを生成してもよい。
また、本実施形態において、属性予測モデル生成部180は、属性DB167から変換された縮約DB177を参照することにより、属性DB167を間接的に使用してよい。これにより、属性予測モデル生成部180は、次元縮約された複数の属性のうち少なくとも1つの属性の属性値から予測対象属性の属性値を予測することができる。ここで次元縮約部170が次元縮約用に追加した複数の属性以外の全ての属性または少なくとも一部の属性を属性予測モデルの説明変数から除くことで、属性予測モデル生成部180は、次元縮約の結果を効果的に利用して、多数の属性の中から予測対象属性の予測に影響を与えうる一部の属性のみを説明変数として属性予測モデルを生成することができる。この結果、属性予測モデル生成部180は、複数の属性予測モデルの生成に必要となる計算量および計算時間を削減することができる。
以上において、属性予測モデル生成部180は、複数の予測対象属性のそれぞれに対して、その予測対象属性を予測する属性予測モデルを複数生成することができる。ここで、属性予測モデル生成部180は、第1予測対象属性の属性値の予測に用いる第1属性予測モデル、および第2予測対象属性の属性値の予測に用いる第2属性予測モデルとして、異なる属性予測モデルを選択可能とする。これら複数の属性予測モデルのそれぞれは、学習によって更新されないハイパーパラメータおよび予測アルゴリズムの少なくとも1つが他の属性予測モデルと異なるものであってよい。属性予測モデル生成部180は、複数の属性予測モデルのそれぞれについて、その属性予測モデルにおける学習可能なパラメータを学習させて、複数の属性予測モデルのそれぞれが予測対象属性の属性値を予測する予測誤差を最小化する処理を行う。
属性予測モデル選択部185は、複数の予測対象属性のそれぞれに対して属性予測モデル生成部180が生成した複数の属性予測モデルのそれぞれの予測誤差に基づいて、その予測対象属性の属性値の予測に用いる属性予測モデルを選択する。例えば、属性予測モデル選択部185は、予測対象属性毎に、複数の属性予測モデルの中から予測誤差が最小の属性予測モデルを選択する。この際、属性予測モデル選択部185は、予測対象属性毎に、ハイパーパラメータおよび予測アルゴリズムの少なくとも1つが異なる属性予測モデルを選択しうる。属性予測モデル選択部185は、予測対象属性毎に選択された属性予測モデルを属性予測装置110内の属性予測部135へと提供する。一例として、属性予測モデル選択部185は、属性予測モデルに用いる予測アルゴリズムを指定する識別情報およびハイパーパラメータの値のセットを属性予測部135へと提供する。
レコメンド処理装置190は、複数の対象者のそれぞれにおける予測対象とした予測対象属性の属性値に基づいて、予測対象属性に対応付けられた商品等を対象者にレコメンドするか否かを選択する。ここで、レコメンド処理装置190は、複数の対象者のそれぞれについて、特定の商品等に対する嗜好性を示す予測対象属性の属性値が閾値以上の嗜好性を示す場合に、その対象者にその商品等をレコメンドすることを決定してもよい。また、レコメンド処理装置190は、1または複数の基本属性、生活属性、および志向性の少なくとも一部(例えば居住地、車を所有しているか否か、高級志向か倹約志向か)を示す予測対象属性の属性値に基づいて、商品等をレコメンドすることを決定してもよい。
そして、レコメンド処理装置190は、複数の対象者のうちレコメンドをすることを決定した対象者に対して、商品等をレコメンドする。一例として、レコメンド処理装置190は、その商品等の広告を含む電子メール、ダイレクトメール、およびインターネット広告等を対象者に提供してもよく、その商品等の広告を含むテレビCMをその対象者を含む視聴者向けに提供してもよく、その商品等の購入を優遇するクーポン、値引、およびポイント付与等のサービスを提供してもよい。
端末112は、直接的またはネットワークを介して間接的に属性予測装置110に接続され、属性予測装置110の属性DB122または縮約DB132に格納された複数の対象者の属性情報の統計処理、属性の追加・削除、属性値の設定、および少なくとも1つの属性の組が設定した抽出条件を満たす対象者の絞り込み等のデータベース処理、ならびに予測対象の各予測対象属性に対する属性予測モデルの評価等を行うためのユーザーインターフェイスを提供する。
端末152は、直接的またはネットワークを介して間接的に予測モデル生成装置150に接続され、属性予測モデル生成部180が生成可能な予測アルゴリズムの追加・変更・削除、属性予測モデル生成部180が各属性予測モデルに与えるハイパーパラメータの範囲指定および値指定、属性予測モデル生成部180が生成した複数の属性予測モデルのそれぞれの学習済パラメータおよび予測結果の確認、評価、および属性モデル間の比較、属性予測モデル選択部185に対する手動による属性予測モデルの選択指定または選択補助、属性DB122のサブセットである属性DB167に対する属性の追加・削除、属性値の設定、および少なくとも1つの属性の組が設定した抽出条件を満たす対象者の絞り込み等のデータベース処理、ならびに予測モデル生成装置150の属性DB167または縮約DB177に格納した複数の対象者の属性情報の統計処理等を行うためのユーザーインターフェイスを提供する。
端末192は、直接的またはネットワークを介して間接的に端末192に接続され、レコメンド処理装置190におけるレコメンド処理を管理するためのユーザーインターフェイスを提供する。一例として、端末192は、広告予算、および商品等の値引またはポイント付与予算に応じてレコメンドの対象者を絞り込むための条件の設定および調整、レコメンドの対象者の絞り込み結果の確認、レコメンド方法の設定、およびレコメンド実行の指示等を行うためのユーザーインターフェイスを提供する。
端末112、端末152、および端末192は、デスクトップ・コンピュータであってよく、タブレットおよびスマートフォン等の携帯端末であってもよい。
以上に示したシステム100によれば、属性DB122または属性DB122のサブセットである属性DB167に格納された複数の対象者の属性情報に基づいて、予測対象属性毎に、属性値を予測する複数の属性予測モデルを生成し、予測対象属性毎に好適な属性予測モデルを選択することができる。したがって、システム100によれば、予測対象属性毎の予測精度をより向上することが可能となる。
図2は、本実施形態に係る属性DB122および属性DB167に格納されるデータ構造の一例を示す。属性DB122および属性DB167は、複数の対象者のそれぞれについて、個人を識別する個人識別情報(個人ID)、および当該個人が有する複数の属性についての属性情報を記憶する。
「個人ID」は、システム100において個々の対象者個人を識別するための識別子であり、例えばシステム100が提供するサービスの会員番号またはログインID等である。これに代えて、属性DB122および属性DB167は、「個人ID」として、対象者の名前、電子メールアドレス、住所、電話番号、対象者所有の携帯端末の識別情報、またはこれらの少なくとも1つの組み合わせに基づいて生成された情報を用いてもよい。
「属性情報」は、対象者が有する各種の属性についての属性値である。本実施形態に係る属性DB122および属性DB167が格納する各属性は、汎用属性データ、購買ポテンシャルデータ、およびレコメンドポテンシャルデータに大別される。
「汎用属性データ」は、各対象者の特性を示す属性のセットであり、特に対象者自身の特性を汎用的に示すものである。「汎用属性データ」は、基本属性に分類される1または複数の属性、生活属性に分類される1または複数の属性、および志向性に分類される1または複数の属性のうちの少なくとも1つを含んでよい。
「基本属性」は、各対象者の基本情報であり、「基本属性」に分類される1または複数の属性として、例えば名前、生年月日、年令または年代、性別、住所、電話番号等の少なくとも1つを含む。「基本属性」は、主に対象者の新規登録時または登録内容変更時等に入力される属性であるが、少なくとも一部の属性は任意登録であってよく、予測対象となってもよい。
「生活属性」は、対象者の生活態様に関する情報であり、「生活属性」に分類される1または複数の属性として、例えば既婚/未婚、住居形態、世帯年収、個人年収、職種、自動車の所有有無、および住居の所有有無等の少なくとも1つを含みうる。「生活属性」に関する属性値は、新規登録時等に収集されてもよく、アンケート等の各種の方法によって収集されてもよく、予測対象となってもよい。
「志向性」は、対象者の志向、傾向及び/又は嗜好を示す情報であり、志向性に分類される1または複数の属性として、例えば衣類に対する品質志向/チャレンジ志向/堅実志向/ブランド志向等、食に対する高級志向/倹約志向/値引志向等、住に対するコンビニ志向/都会志向/地域重視志向等、その他健康志向、キャリア志向、およびグローバル志向等の少なくとも1つを含みうる。または、「志向性」は、対象者の嗜好に関する属性として、例えば、ドライブ、グルメ、旅行、およびスポーツ等の各種の趣味に対する嗜好の有無または嗜好度、各種の商品等に対する嗜好の有無または嗜好度、並びに各種のウェブサイト等に対する嗜好の有無または嗜好度等の少なくとも1つを含んでよい。「志向性」に関する属性は、各種の調査において調査の目的に応じて追加されうる。「志向性」に関する属性値は、新規登録時等に収集されてもよく、アンケート等の各種の方法によって収集されてもよく、予測対象となってもよい。
「購買ポテンシャルデータ」は、複数の商品等、あるいは複数の商品群またはサービス群のそれぞれに対する各対象者の購買可能性を示す属性のセットである。「購買ポテンシャルデータ」は、一例としてエンターテインメント、食品、および日用品といった商品等のジャンル、種別、または分類のそれぞれについて、そのジャンル等に対応する各商品または各サービスに対応付けられた属性を含んでよい。「購買ポテンシャルデータ」の各属性は、その属性に対応付けられた商品等に対する対象者の嗜好性を示す嗜好属性であってよい。
一例として、「購買ポテンシャルデータ」は、システム100が提供する会員サービスによる販売管理の対象とする多数の商品等のそれぞれに対する属性を含む。「購買ポテンシャルデータ」は、各商品等を識別する例えばJANコードの各コード値に対応して各属性を含んでもよく、この場合、JANコードが割り当てられた1つ1つの商品等に対し、1または2以上の属性が割り当てられる。システム100が提供する会員サービスが複数の事業者にわたる共通ポイントシステムを提供する場合には、「購買ポテンシャルデータ」は、数十万〜数百万、あるいはそれ以上の属性を含みうる。また、「購買ポテンシャルデータ」は、商品群またはサービス群に対応する属性を有していてもよい。例えば、「購買ポテンシャルデータ」は、例えば、ビール、酒類、及び/又は飲料といった商品群に対応する属性を有していてもよい。
「購買ポテンシャルデータ」は、各対象者について、購買実績(購買の有無、購買量、購買時期、購買場所等)、及び/又は、商品アンケートもしくは広告に対する対象者の反応等を数値化した嗜好度等を既知の属性値として格納してもよい。また、「購買ポテンシャルデータ」は、属性予測モデルを用いて予測した予測値も属性値の少なくとも一部として格納してもよい。
「レコメンドポテンシャルデータ」は、レコメンドに関する各対象者の特性を示す属性のセットである。「レコメンドポテンシャルデータ」は、一例としてメディア反応に関する1または複数の属性、インセンティブ反応に関する1または複数の属性、および、離反可能性に関する1または複数の属性のうちの少なくとも1つを含んでよい。
「メディア反応」は、一例としてダイレクトメール、電子メール、レシートに印刷する広告、インターネット広告、および、TV広告等のレコメンドに用いるメディア毎に、対象者に対するそのメディアを用いたレコメンドの有効性または評価値等を示す1または複数の属性を含む。例えば、ある対象者がダイレクトメールには反応しない場合には、レコメンド処理装置190は、ダイレクトメールの有効性または評価値等に関する属性の属性値を減少させ、またはより低い属性値を設定してもよい。また、ある対象者がインターネット広告を基準頻度以上の頻度でクリックする場合、またはインターネット広告を経由して商品を購入した場合等には、レコメンド処理装置190は、インターネット広告の有効性または評価値等に関する属性の属性値を増加させ、またはより高い属性値を設定してもよい。
「インセンティブ反応」は、一例として値引、クーポン付与、ポイント付与、ポイント増額、および、販売促進品の提供等といったインセンティブ毎に、対象者に対するそのインセンティブを用いたレコメンドの有効性または評価値等を示す1または複数の属性を含む。例えば、値引の提供をしてもある対象者が商品等の購入に至らなかった場合には、レコメンド処理装置190は、値引の有効性または評価値等に関する属性の属性値を減少させ、またはより低い属性値を設定してもよい。また、ある対象者がポイント付与を提供した商品等を購入した場合には、レコメンド処理装置190は、ポイント付与の有効性または評価値等に関する属性の属性値を増加させ、またはより高い属性値を設定してもよい。
「離反可能性」は、一例として各販売事業者、及び/又は、各商品メーカ若しくはサービス提供者毎に、その事業者等の商品等を利用しなくなる可能性を示す1または複数の属性を含む。例えば、ある対象者がある販売事業者から最後に商品等を購入してから基準期間以上経過した場合、属性予測装置110は、その対象者がその販売事業者から離反したとみなし、離反した旨を示す属性値を属性DB122に格納する。これに代えて、属性予測装置110は、その対象者がその販売業者を最後に利用してからの経過期間に応じて算出した離反評価値を属性値として属性DB122に格納してもよい。
図3は、本実施形態に係る予測モデル生成装置150の動作フローを示す。ステップS310において、モデル更新指示部155は、予め定められた期間が経過したことに応じて、属性予測装置110が使用する属性予測モデルの更新を指示する。これに代えて、またはこれに加えて、モデル更新指示部155は、システム100のユーザまたは管理者等の指示を受けて、属性予測モデルの更新を指示してもよい。
ここで予測モデル生成装置150は、属性DB122または属性DB167が有する全属性を予測対象としてもよく、対象者の名前等の一部の属性を除いた各属性を予測対象としてもよく、汎用属性データに含まれる基本属性を除いた各属性を予測対象としてもよく、購買ポテンシャルデータ及び/又はレコメンドポテンシャルデータを予測対象としてもよい。また、予測モデル生成装置150は、次元縮約部170が追加した次元縮約用の属性については、予測対象から除いてもよい。また、予測モデル生成装置150は、属性DB122または属性DB167が有する全属性のうち、システム100のユーザまたは管理者が指定した属性のみを予測対象としてもよい。
なお、予測モデル生成装置150は、予測対象属性によって異なりうるタイミングで属性予測モデルの更新を指示してもよい。例えば、予測モデル生成装置150は、汎用属性データに属する属性については、定期的に属性予測モデルの更新を指示し、購買ポテンシャルデータに属する属性については、一例としてその属性に対応する商品等の購買データを予め定められた数量分受け取る度に属性予測モデルの更新を指示し、レコメンドポテンシャルデータに属する属性については、一例として予め定められた回数レコメンドを行う度に属性予測モデルの更新を指示してもよい。また、予測モデル生成装置150は、購買ポテンシャルデータに属する属性を予測する属性予測モデルの更新頻度を、汎用属性データに属する属性を予測する属性予測モデルの更新頻度よりも低くしてもよい。購買ポテンシャルデータは、個々の商品等に対応する属性を含むことから通常は汎用属性データよりも属性数が多くなるので、予測モデル生成装置150は、購買ポテンシャルデータに属する属性を予測する属性予測モデルの更新頻度をより低くすることにより予測モデル生成装置150の計算量を大幅に低減させることが可能となる。
S320において、サンプリング部160は、属性DB122から一部の対象者をサンプリングして、サンプリングした対象者に対応付けて属性DB122に格納されている属性情報を、属性DB接続部165を介して属性DB167に格納する。
S330において、次元縮約部170は、一例として潜在的ディリクレ配分法(LDA:Latent Dirichlet Allocation)または確率的潜在意味解析法(Probabilistic Latent Semantic Analysis)等のトピックモデルを用いて、属性DB167の次元を縮約する。トピックモデルを用いる場合、次元縮約部170は、トピック数を例えば10、20、30、…、100等の複数種類のそれぞれとしてモデリングし、トピック数毎に生成した複数の属性を次元縮約用の属性として縮約DB177に格納してもよい。これにより、属性予測モデル生成部180は、使用するトピック数を属性予測モデルのハイパーパラメータとすることができ、属性予測モデル選択部185は、最適なトピック数の属性予測モデルを選択することができる。
ここで次元縮約部170は、属性DB122または属性DB167が有する全属性をトピック生成の評価対象としてもよく、これに代えて、属性DB122または属性DB167が有する属性の一部をトピック生成の評価対象としてもよい。例えば、次元縮約部170は、汎用属性データに含まれる属性はトピック生成の評価対象とし、購買ポテンシャルデータおよびレコメンドポテンシャルデータに含まれる属性はトピック生成には使用しなくてもよい。また例えば、次元縮約部170は、汎用属性データに含まれる基本属性、生活属性、および志向性のうち一部のみに含まれる属性のみをトピック生成の評価対象としてもよい。一例として、次元縮約部170は、基本属性および生活属性に含まれる属性のみをトピック生成の評価対象とし、志向性に含まれる属性はトピック生成に使用しなくてもよい。全属性をトピック生成の評価対象とした場合には、対象者間の小さな差異(例えば特定の商品を購入したかどうか)までも評価に含めて次元縮約後の属性値に反映できるが、次元縮約処理に要する計算量が増加する。一部の属性のみをトピック生成の評価対象とする場合には、システム100のユーザまたは管理者等が重視する一部の属性のみを用いることで、計算量を抑えることができる。
また、次元縮約部170は、トピックモデルに代えて、またはトピックモデルに加えて、他の手法により属性DB167の次元を縮約してもよい。例えば、次元縮約部170は、既知の属性値が格納されている対象者の割合が基準割合未満である属性については、属性予測モデルの説明変数から除いてもよい。
次に、予測モデル生成装置150は、予測対象属性毎にS340およびS380の間の処理(S350〜S370)を繰り返す。
S350において、属性予測モデル生成部180は、予測対象属性の属性値を予測する1または複数の属性予測モデルを生成する。まず、属性予測モデル生成部180は、属性DB167に格納された各対象者の属性情報のうち、属性予測モデルの生成に用いるモデリング用の複数の対象者の属性情報を抽出する。属性予測モデル生成部180は、モデリング用の対象者の属性情報として、予測対象属性の属性値が既知である属性情報、すなわち予測対象属性について実際に属性値が得られている属性情報を抽出する。ここで、属性予測モデル生成部180は、属性予測モデルの説明変数として使用する可能性がある各属性(すなわち説明変数の候補として属性予測モデルに属性値を入力する属性)のうち属性値が既知であるものの割合がより大きい属性情報をより優先して抽出するようにしてもよい。なお、属性予測モデル生成部180は、モデリング用の対象者の数が予め定められた基準数以下の場合には、ブーストサンプリング等の手法を用いてサンプル数を増やしてもよい。
次に、属性予測モデル生成部180は、抽出した対象者の属性情報を学習用属性情報として用いて、複数の属性予測モデルを生成する。属性予測モデル生成部180は、予測アルゴリズムおよび学習によって更新されないハイパーパラメータの少なくとも1つが互いに異なる複数の属性予測モデルを生成する。属性予測モデル生成部180は、例えばランダムフォレスト、勾配ブースティング、ロジスティック回帰、ニューラルネットワーク、およびサポートベクタマシン(SVM)等を含む各種の機械学習アルゴリズムの中から予測アルゴリズムを選択してもよい。また、属性予測モデル生成部180は、次元縮約部170における次元縮約のトピック数、ランダムフォレストにおける決定木の深さ、勾配ブースティングにおける木の深さ、ロジスティック回帰における正規化パラメータ、およびニューラルネットワークにおけるニューロン数および層数等のような予測アルゴリズムに設定可能な1または複数のハイパーパラメータのそれぞれを、ハイパーパラメータとして設定可能な複数の設定値の組の中から独立して選択することにより、選択した予測アルゴリズム毎に互いに異なる複数のハイパーパラメータの組を得てもよい。
属性予測モデル生成部180は、上記のようにして得られた予測アルゴリズムおよびハイパーパラメータの組の少なくとも一方が互いに異なる複数の属性予測モデルのそれぞれを、学習用属性情報を用いて学習により最適化する。すなわち、属性予測モデル生成部180は、各学習用属性情報について、その学習用属性情報のうち予測対象属性以外の属性値を属性予測モデルの入力とした場合に、その学習用属性情報における予測対象属性の既知の属性値により近い予測値を出力するように属性予測モデルの学習可能パラメータを更新していく。これにより、属性予測モデル生成部180は、各属性予測モデルのそれぞれについて、学習可能パラメータを学習させて最適化する。ここで、「最適化」とは、必ずしもその属性予測モデルの予測誤差を最小化すること(すなわち学習可能パラメータの全てを最適値とすること)を意味せず、その属性予測モデルの予測誤差をより低減する学習処理を属性予測モデル生成部180がやり終えた状態(すなわち現実的に実行可能な学習処理を完了した状態)を意味する。
ここで、属性予測モデル生成部180は、属性予測モデルの説明変数を、既知の属性値のみに制限してもよい。この場合、属性予測モデル生成部180は、学習用属性情報として使用できるサンプル数は制限されるが、現実の属性情報に基づきより精度の高い属性予測モデルを生成することができる可能性を高めることができる。これに代えて、属性予測モデル生成部180は、一部または全部の説明変数として属性の予測値を用いてもよい。すなわち、属性予測モデル生成部180は、第2予測対象属性の属性値を、第1の属性予測モデルにより予測された第1予測対象属性の予測値を用いて予測する第2の1または複数の属性予測モデルを生成してもよい。第2の複数の属性予測モデルの生成において、既に生成された第1属性予測モデルによって予測された第1予測対象属性の予測値を説明変数として使用可能とすることにより、属性予測モデル生成部180は、既知の属性値が一部欠けている学習用属性情報も利用することができ、より多くの学習用属性情報を用いて属性予測モデルの精度を高めうる。
なお、属性予測モデル生成部180は、予測誤差として、各属性情報から属性予測モデルによって予測された予測対象属性の予測値と期待値との差を、予測誤差の評価対象となる全属性情報について累積した値を用いてもよい。このような誤差の算出方法は、一例として予測値と期待値との差の2乗を合計するもの等を含め公知の様々な方法を適用することができる。これに代えて、属性予測モデル生成部180は、後述するAUC(Area Under the Curve)が増えるにつれて減少する値(一例として1−AUC値)を、予測誤差を示す指標として用いてもよい。
ここで「予測誤差」とは、「予測誤差」に応じて変化する指標も含まれる。すなわち例えば、予測精度を示す指標もまた、予測誤差を示す指標に該当し、予測精度がより高いことは、予測誤差がより低いことに相当し、予測精度がより低いことは、予測誤差がより高いことに相当する。したがって、属性予測モデル生成部180は、予測精度が高いほど大きくなるAUCを、予測誤差を示す指標(予測誤差が高いほど小さくなる指標)として用いてもよい。この場合、予測誤差が高いとは、予測誤差を示す指標値が小さいことを意味する。
S360において、属性予測モデル生成部180は、生成された学習済の複数の属性予測モデルをそれぞれ評価する。属性予測モデル生成部180は、予測誤差のみに基づいて属性予測モデルを評価してもよく、予測誤差のみでなく、例えば計算量がより小さいこと、及び/又は、参照する属性数がより少ないこと等の他の条件も評価パラメータとして含めてもよい。また、属性予測モデル生成部180は、予測アルゴリズムの最適化に用いる、予測誤差に関する項を含む目的関数の値を用いて、属性予測モデルを評価してもよい。ここで、属性予測モデル生成部180は、交叉検定を用いて複数の属性予測モデルのそれぞれの予測誤差を算出してもよい。この場合、属性予測モデル生成部180は、抽出したモデリング用の属性情報の一部を用いて複数の属性予測モデルを学習させ、モデリング用の属性情報のうち学習に使用していない属性情報を用いて複数の属性予測モデルのそれぞれの予測誤差を算出する。
S370において、属性予測モデル選択部185は、複数の属性予測モデルのそれぞれの予測誤差等の評価結果に基づいて、その予測対象属性の属性値の予測に用いる属性予測モデルを選択する。一例として属性予測モデル選択部185は、複数の属性予測モデルのうち、予測誤差が最小の属性予測モデルを選択する。これに代えて、属性予測モデル選択部185は、複数の属性予測モデルのうち、予測誤差以外の条件も評価パラメータとして含めた評価結果を用いて評価が最も高い属性予測モデルを選択してもよい。ここで、属性予測モデル選択部185は、上記のように他の属性予測モデルによる予測値を説明変数とする第2の1または複数の属性予測モデルのそれぞれの予測誤差等の評価結果に基づいて、第2予測対象属性の属性値の予測に用いる第2属性予測モデルを更に選択してもよい。
予測モデル生成装置150は、予測対象の各予測対象属性のそれぞれに対してS350〜S370の処理を行なうことにより、各予測対象属性に対して個別に最適化された属性予測モデルを選択することができる。これにより、予測モデル生成装置150は、各予測対象属性の予測精度をより高めることができる。
図4は、本実施形態に係る属性予測モデル生成部180が生成する属性予測モデルの評価結果の一例を示す。属性予測モデル生成部180は、各予測対象属性に対して生成された1または複数の属性予測モデルのそれぞれについて、属性識別情報(属性ID)、次元縮約パラメータ、予測アルゴリズム識別情報(予測アルゴリズムID)、ハイパーパラメータ、予測誤差、およびモデル評価を含む評価結果を生成する。
「属性ID」は、予測対象の予測対象属性の識別情報である。「次元縮約パラメータ」は、次元縮約部125および次元縮約部170が次元縮約に用いる、トピック数等のパラメータである。次元縮約パラメータが複数存在する場合、属性予測モデル生成部180は、パラメータ毎の設定値を記録する。次元縮約パラメータも、ハイパーパラメータの一種となりうる。
「予測アルゴリズムID」は、当該エントリにおいて選択された予測アルゴリズムを識別する識別情報である。「ハイパーパラメータ」は、選択された予測アルゴリズムにおけるハイパーパラメータ毎の設定値を示す。「予測誤差」は、当該エントリにおいて指定された次元縮約パラメータ、予測アルゴリズム、およびハイパーパラメータを用いて生成した属性予測モデルの予測誤差を示す。「モデル評価」は、当該エントリに対応して生成された属性予測モデルの評価結果を示す。ここで、属性予測モデル生成部180は、属性予測モデルを予測誤差のみに基づいて評価する場合には、「モデル評価」のカラムを別途設けなくてもよい。
図5は、本実施形態に係る属性予測モデル選択部185が生成する属性予測モデルの選択結果の一例を示す。属性予測モデル選択部185は、属性予測モデル生成部180による各属性予測モデルの評価結果を用いて、予測対象属性毎に、属性値の予測に用いる属性予測モデルを選択する。属性予測モデル選択部185は、予測対象の各予測対象属性について、属性ID、次元縮約パラメータ選択値、選択予測アルゴリズムID、ハイパーパラメータ選択値を含む選択結果を生成する。
「属性ID」は、当該エントリに対応する予測対象属性の識別情報である。「次元縮約パラメータ選択値」は、当該エントリに対応する予測対象属性の予測に用いる1または複数の次元縮約パラメータのそれぞれの設定値を含む。「次元縮約パラメータ値」は、図4中における選択された属性予測モデルの次元縮約パラメータに対応する。「選択予測アルゴリズムID」は、当該エントリに対応する予測対象属性の予測に用いる予測アルゴリズムを識別する識別情報である。「選択予測アルゴリズムID」は、図4中における選択された属性予測モデルの予測アルゴリズムIDに対応する。「ハイパーパラメータ選択値」は、当該エントリに対応する予測対象属性の予測に用いる予測アルゴリズムに与えるハイパーパラメータ毎の設定値である。「ハイパーパラメータ選択値」は、図4中における選択された属性予測モデルのハイパーパラメータに対応する。
属性予測モデル選択部185は、予測対象属性毎の属性予測モデルの選択結果を属性予測部135に供給することにより、予測対象属性毎に予測に用いる次元縮約パラメータ、予測アルゴリズム、およびハイパーパラメータを属性予測部135に対して設定することができる。なお、属性予測モデル選択部185は、選択された属性予測モデルの予測誤差及び/又は評価結果を属性予測部135に供給してもよい。
図6は、本実施形態に係る属性予測装置110における属性情報取得フローを示す。S610において、属性情報取得部115は、対象者の属性情報を取得する。S620において、属性情報取得部115は、取得した属性情報を、属性DB接続部120を介して属性DB122に書き込む。
属性DB122が書き込み対象の属性について既知の属性値と予測値とを別個に記憶する場合、属性情報取得部115は、取得した属性情報を、既知の属性値として属性DB122に書き込んでよい。また、属性DB122および属性DB167が書き込み対象の属性について予測値と同じ表現形式で既知の属性値を記憶する場合には、属性情報取得部115は、取得した属性情報の生データの表現形式を予測値と同じ表現形式に変換して属性DB122に格納する。
図7は、本実施形態に係る属性予測装置110における属性予測フローを示す。ステップS710において、次元縮約部125は、サンプリング部160と同様に、一例として潜在的ディリクレ配分法または確率的潜在意味解析法等のトピックモデルを用いて、属性DB122の次元を縮約する。ここで、次元縮約部125は、各予測対象属性について選択された属性予測モデルに対応する次元縮約パラメータ選択値を参照し、少なくとも1つの予測対象属性に対して指定された次元縮約パラメータ選択値に応じた次元縮約用の属性を縮約DB132に格納する。また、次元縮約部125は、属性DB122における複数の属性のうち、属性予測モデル選択部185により選択された少なくとも1つの属性予測モデルにおいて説明変数として使用する属性を、縮約DB132の属性としてコピーする。
属性予測装置110は、予測対象属性毎に、S730およびS790の間の処理(S730〜S780)を繰り返す(S720、S790)。
S730において、属性予測部135は、属性予測モデル選択部185によって予測対象属性用に選択された属性予測モデルを用いて、予測対象属性の属性値を予測する。属性予測部135は、各対象者について縮約DB132に格納された属性情報に含まれる、属性予測モデルの説明変数に対応する属性の属性値を縮約DB接続部130を介して取得し、これらの属性値を属性予測モデルに入力して予測対象属性の予測値を算出する。ここで、属性予測部135は、第1属性予測モデルによる第1予測対象属性の予測値を用いて予測対象である第2予測対象属性の予測値を予測する第2属性予測モデルについては、説明変数となる第1予測対象属性の属性値として、当該第1予測対象属性の予測値を第2属性予測モデルに入力し、第2属性予測モデルを用いて、複数の対象者のそれぞれについて第2予測対象属性を更に予測する。
また、第1予測対象属性について既知の属性値および予測値が同じ表現形式で表されている場合、または一方から他方に変換可能な場合においては、属性予測部135は、複数の対象者のそれぞれについて、第1予測対象属性の属性値が既知であることを条件として既知の属性値を用いて対象者の第2予測対象属性の予測値を予測し、第1予測対象属性の属性値が未知であることを条件として第1予測対象属性の属性値を用いて対象者の第2予測対象属性の予測値を予測してもよい。これにより、属性予測部135は、第1属性予測モデルによる予測対象となった第1予測対象属性が既知の対象者については既知の属性値を用いてより高い精度で第2予測対象属性を予測しつつ、第1予測対象属性が未知の対象者についても予測を行うことが可能となる。
S740において、属性予測部135は、予測対象属性の予測値を属性DB接続部120を介して属性DB122に格納する。ここで、属性予測部135は、予測対象属性の予測値が算出できた場合、予測対象属性の既知の属性値が属性DB122に格納されている場合であっても予測値を属性DB122に格納してもよい。
S750において、属性予測値更新部142は、属性DB122に登録された複数の対象者のうち1または複数の対象者について予測対象属性の属性値が既知である場合において、予測対象属性の予測値が既知の属性値から基準以上乖離しているか否かを判断する。この基準は、システム100の設計者、システム構築者、ユーザ、及び/又は管理者によって予め定められてもよく、属性予測値更新部142が、予測対象属性の既知の属性値の分散または標準偏差等を定数倍すること等により算出してもよい。
予測対象属性の予測値が既知の属性値から基準以上乖離していることに応じて(S750でYes)、属性予測値更新部142は、S760において、予測対象属性の予測値を既知の属性値に基づいて更新してもよい。すなわち、予測対象属性の既知の属性値および予測値が同じ表現形式をとる場合には、属性予測値更新部142は、予測対象属性の予測値を既知の属性値に書き換えてもよい。予測対象属性の既知の属性値および予測値が異なる表現形式をとる場合には、属性予測値更新部142は、既知の属性値の表現形式を変換して、予測対象属性の予測値を書き換えてもよい。ここで、乖離しているか否かの判断に用いる基準は、システム100の設計者、システム構築者、ユーザ、及び/又は管理者等によって予め設定されてよい。
これにより、属性予測値更新部142は、予測対象属性の属性値が既知の対象者については、当該予測対象属性を説明変数として使用する他の属性予測モデルが、大幅に誤った予測値を用いて他の予測対象属性を予測するのを防ぐことができる。例えば、属性予測値更新部142は、ある対象者について誤って「既婚」と予測された場合においても、その対象者が「未婚」であることが既知であれば、予測値を「未婚」に更新することができ、この属性を説明変数として用いて予測される他の属性の予測精度を高めることができる。
また、属性値更新部140は、予測対象属性の予測値の予測の確からしさが閾値以上であることを条件として(S770でYes)、予測対象属性の予測値に基づいて予測対象属性の属性値を更新してもよい(S780)。ここで、属性値更新部140は、予測対象属性の既知の属性値および予測値が同じ表現形式をとる場合には、属性予測値更新部142は、予測対象属性の既知の属性値を予測値に書き換えてもよい。予測対象属性の既知の属性値および予測値が異なる表現形式をとる場合には、属性値更新部140は、予測値の表現形式を変換して、予測対象属性の属性値を書き換えてもよい。ここで予測の確からしさの判断に用いる閾値は、システム100の設計者、システム構築者、ユーザ、及び/又は管理者等によって予め設定されてよい。
これにより、属性値更新部140は、予測対象属性の属性値が既知の対象者についても、属性値の入手時期が古い場合、および、対象者の状況が変化した場合等の事情に適応して、予測対象属性の予測値が十分に確からしくなったことに応じて、既知の属性値を予測値に基づいて置き換えることができる。この結果、一例としておむつを購入するようになった対象者を「子なし」属性としたまま維持すること、および、頻繁にガソリンを購入するようになった対象者を「車なし」属性としたまま維持すること等を防ぐことが可能となる。
ここで、属性値更新部140は、予測の確からしさとして、予測対象属性が既知の全対象者、学習用属性情報に含まれる全対象者、または、交叉検定用の学習用属性情報に含まれる全対象者の予測値に基づくAUC(Area Under the Curve)を用いてよい。一例として、属性値更新部140は、予測対象属性が既知である各対象者を予測値が高い順に横軸に並べ、横軸上の各対象者について、その対象者以上の予測値を有する全対象者のうち予測対象属性を満たす対象者の割合をプロットしたROC曲線(Receiver Operating Characteristic Curve)における、ROC曲線の下側の面積をAUCとして算出する。この際、属性値更新部140は、ROC曲線の横軸も1に正規化することにより、AUCの取り得る最大値を1に正規化してもよい。これに代えて、属性値更新部140は、予測の確からしさとして、(定数−予測誤差)のように予測誤差が減少するほど増加するパラメータの値を用いてもよい。
図8は、予測対象属性の依存関係の一例を示す。属性予測モデルA810は、属性aの属性値および属性bの属性値に基づいて、予測対象属性cの属性値を予測する。属性予測モデルB820は、属性cの属性値および属性dの属性値に基づいて、予測対象属性eの属性値を予測する。属性予測モデルC830は、属性eの属性値および属性fの属性値に基づいて、予測対象属性bの属性値を予測する。
この例において、属性予測モデルA810が属性bの属性値を入力して属性cの属性値を出力し、属性予測モデルB820が属性cの属性値を入力して属性eの属性値を出力し、属性予測モデルC830が属性eの属性値を入力して属性bの属性値を出力する。したがって、複数の属性予測モデルにおける説明変数および目的変数の連鎖の中に、属性b→属性c→属性e→属性bという2以上の予測対象属性の間の循環依存が存在する。
ここで、属性予測モデル生成部180、属性予測モデル選択部185、及び/又は属性予測部135は、例えば属性予測モデルB820が属性cの既知の属性値を説明変数とし、属性cの予測値は説明変数としないようにすれば、属性予測モデルA810が出力する属性cの予測値を属性予測モデルB820が入力しなくなるので予測対象属性間の循環依存を解消することができる。すなわち、属性予測モデル生成部180、属性予測モデル選択部185、及び/又は属性予測部135は、2以上の予測対象属性の間に属性予測モデルへの入出力関係の循環依存が存在する場合には、循環依存を構成する少なくとも1つの属性予測モデルにおいて循環依存に含まれる属性の属性値として既知の属性値を入力するように属性予測モデルを生成または選択すればよい。
ただし、既知の属性値を入力とする場合には、属性予測部135は、既知の属性値が存在しない対象者については予測対象属性の属性値を予測できなくなり、または予測精度が低下してしまう。そこで、属性予測部135は、2以上の予測対象属性の間の循環依存を許容する構成も取り得る。
この場合、属性予測部135は、2以上の予測対象属性の間に循環依存が存在することに応じて、2以上の予測対象属性のそれぞれの予測に用いる他の予測対象属性の予測の確からしさ、および2以上の予測対象属性のそれぞれに対する他の予測対象属性の寄与度の少なくとも1つに基づいて、2以上の予測対象属性の予測順序を決定するようにしてもよい。例えば、本図の例において予測の確からしさが高い順に属性c、属性b、属性eの順序であれば、属性予測部135は、最も予測の確からしさが高い属性cを入力とする属性予測モデルB820を最も優先して先に実行するように予測順序を決定してもよい。その後属性予測部135は、循環依存する属性の中で予測の確からしさが高い順に、その属性を入力とする属性予測モデルを実行していってよい。これに代えて、属性予測部135は、属性予測モデルB820を実行した場合には、属性予測モデルB820が出力した予測値を入力する属性予測モデルC830、属性予測モデルC830が出力した予測値を入力とする属性予測モデルA810というように属性予測モデルB820以降は予測対象属性間の依存方向に沿って属性予測モデルを実行してもよい。これにより、属性予測部135は、予測の確からしさが高くより本来の属性値に近いと想定される予測値を優先して使用して依存先の予測対象属性の予測値を予測していくことができ、予測値の精度をより早く高めることが可能となる。
また例えば、属性予測部135は、本図の例において予測対象属性eの予測における属性cの寄与度、予測対象属性cの予測における属性bの寄与度、予測対象属性bの予測における属性eの寄与度がこの順に低くなるのであれば、属性予測部135は、最も寄与度が低い属性eを入力とする属性予測モデルC830を最も優先して先に実行するように予測順序を決定してもよい。その後属性予測部135は、循環依存する属性の中で属性予測モデルによる次の予測対象属性の予測における寄与度が低い順に、その属性を入力とする属性予測モデルを実行していってよい。これに代えて、属性予測部135は、属性予測モデルC830を実行した場合には、属性予測モデルC830が出力した予測値を入力する属性予測モデルA810、属性予測モデルA810が出力した予測値を入力とする属性予測モデルB820というように属性予測モデルC830以降は予測対象属性間の依存方向に沿って属性予測モデルを実行してもよい。これにより、属性予測部135は、後段の属性予測モデルの予測に影響を与える寄与度が低く循環依存の影響を与えにくい予測値を優先して使用して依存先の予測対象属性の予測値を予測していくことができ、予測値の循環依存の影響をより早く減衰させることが可能となる。
属性予測部135は、2以上の予測対象属性のそれぞれの予測に用いる他の予測対象属性の予測の確からしさ、および2以上の予測対象属性のそれぞれに対する他の予測対象属性の寄与度の両方に基づいて、2以上の予測対象属性の予測順序を決定するようにしてもよく、他の条件も更に加味して予測順序を決定してもよい。ここで、属性予測部135は、循環依存に含まれる属性に関して、予測に用いる属性の予測の確からしさがより高く、または予測における属性の寄与度がより低い場合に、その属性を入力する属性予測モデルの実行をより優先する。一例として、属性予測部135は、予測に用いる属性の予測の確からしさ(または予測の不確からしさ)と予測における属性の寄与度との重み付け和によって優先度を決定してよい。
他の例として、属性予測部135は、2以上の予測対象属性のそれぞれについて、他の予測対象属性の予測の不確からしさおよび他の予測対象属性の寄与度の積和に基づいて、2以上の予測対象属性の予測値の予測順序を決定してもよい。すなわち例えば、属性予測部135は、複数の属性予測モデル(属性予測モデルA810、属性予測モデルB820、および属性予測モデルC830等)のそれぞれについて、循環依存に含まれる各入力属性の不確からしさおよび各入力属性の寄与度の積和をとり、積和値がより小さい属性予測モデルをより優先して実行する。
なお、属性予測部135は、予測の不確からしさとして、予測の確からしさが増加すると値が減少するパラメータの値を用いてよい。例えば属性予測部135は、(1−AUC)のように、最大1に正規化されたAUCに基づく予測の確からしさを1から減じた値を用いてもよい。
以上に示したように、循環依存に含まれる予測対象属性間の予測順序をより適切な順序とすることで、属性予測部135は、循環して算出される2以上の予測対象属性間の予測値の精度をより早く高め、及び/又は予測値の収束をより早めることができる。これにより、属性DB122および属性DB167が多くの属性を有することにより各属性予測モデルの実行周期が長くなる場合にも、予測値をより早く最適化することができる。
図9は、本実施形態に係るシステム100における属性追加フローを示す。S900において、属性データ取得部144は、複数の対象者の少なくとも一部について、属性データベースに追加すべき追加属性の既知の属性値を示す既知情報を取得する。例えば、端末112は、マーケティング担当者等のシステム100のエンドユーザ等が各対象者の任意の特性を簡単に予測できるようにするべく、簡単に属性DB122に属性を追加して各対象者のその属性の予測値を算出するユーザーインターフェイスを提供する。一例として、端末112は、当該ユーザーインターフェイスを提供するアプリケーションのアイコンに対して既知情報がドラッグ&ドロップされたことに応じて、この既知情報に応じた属性の追加、既知の属性値の設定、および属性予測モデルの生成・選択の少なくとも一部を実行するユーザーインターフェイスを提供してもよい。
属性データ取得部144が取得する既知情報は、複数の対象者の少なくとも一部のそれぞれについて、個人識別情報と、1または複数の追加属性の既知の属性値との組を含む情報であってよい。また、追加属性が、対象者が特定の特性を有するか否かを示す2値属性である場合(例えば「商品Aを買ったか否か」)、既知情報は、追加属性が真である各対象者の個人識別情報のリスト、および追加属性が偽である各対象者の個人識別情報のリストの少なくとも一方を含んでよい。
S910において、属性追加部146は、属性DB122の複数の属性に、追加属性を追加する。例えば、属性追加部146は、属性DB接続部120を介して属性DB122に追加属性のカラムを追加し、既知情報に含まれる各対象者の既知の属性値に基づいて、属性DB122における追加属性に格納する既知の属性値を設定する。この際、属性追加部146は、既知情報において示された既知の属性値を属性DB122における追加属性の既知の属性値として設定してもよく、既知情報において示された既知の属性値を属性DB122における表現形式に変換して追加属性の既知の属性値として設定してもよい。
S920において、システム100内の予測モデル生成装置150は、追加属性を予測対象属性として1または複数の属性予測モデルを生成する。ここで、モデル更新指示部155は、属性データ取得部144によって属性DB122に追加属性が追加されたことに応じて、予め定められた期間の経過を待つことなく、すみやかに追加属性の属性予測モデルの生成を指示してよい。追加属性を予測対象属性として1または複数の属性予測モデルを生成する処理は、図3の動作フローにおけるS320からS350の処理と同様であってよい。
S930において、システム100内の予測モデル生成装置150は、複数の属性予測モデルのそれぞれの予測誤差に基づいて、追加属性である予測対象属性の属性値の予測に用いる属性予測モデルを選択する。複数の属性予測モデルの中から追加属性の属性値の予測に用いる属性予測モデルを選択する処理は、図3のS360からS370の処理と同様であってよい。
以上に示した処理の後、システム100内の属性予測装置110は、図7に示した属性予測フローを実行して、各対象者または全対象者についての追加属性の属性値を予測してよい。これにより、システム100は、既知情報に含まれる一部の対象者についての既知の属性値を教師データとして追加属性の属性値を予測する属性予測モデルを学習し、他の対象者または全対象者について追加属性の予測値を算出することができる。
なお、本実施形態において、属性データ取得部144および属性追加部146は、属性予測装置110内に設けられ、マスターである属性DB122に対して追加属性を追加する。これに代えて、属性データ取得部144および属性追加部146は、予測モデル生成装置150内に設けられ、サブセットである属性DB167に対して追加属性を追加する形態を採ってもよい。
図10は、本実施形態に係るレコメンド処理装置190の構成を端末192と共に示す。レコメンド処理装置190は、環境情報取得部900と、グループ選択部910と、レコメンド決定部920と、レコメンド方法決定部930と、レコメンド実行部940と、レコメンド結果取得部950と、レコメンド結果格納部960と、レコメンドDB接続部970と、レコメンドDB980と、レコメンドモデル生成部990とを有する。
環境情報取得部900は、システム100に登録された複数の対象者のうちのあるレコメンド対象者が置かれた環境を示す環境情報を取得する。一例として環境情報取得部900は、レコメンド対象者がいる位置または場所を示す位置情報、レコメンド対象者がいる位置または場所における天気、天候、気温、及び/又は湿度等の天候情報、並びに、対象者の行動(買い物中、旅行中、通勤中、および仕事中等)を示す行動情報のうちの少なくとも1つを環境情報として取得する。
グループ選択部910は、環境情報取得部900により取得された、レコメンド対象者についての環境情報に基づいて、商品等の複数のグループの中からレコメンドするグループを選択する。一例として、グループ選択部910は、環境情報についての条件である環境条件と、その環境条件においてレコメンドする商品等のグループとの組を、1または複数記憶しておき、環境情報取得部900により取得された環境情報がある環境条件を満たす場合に、その環境条件に対応付けられた商品等のグループをレコメンド対象として選択する。例えば、グループ選択部910は、レコメンド対象者がある店舗から基準以内の距離に位置する場合には、その店舗で取り扱っている商品等のグループをレコメンド対象のグループとして選択してよい。また例えば、グループ選択部910は、複数のグループの中から、システム100が提供する会員サービスと提携する複数の店舗のうちレコメンド対象者の現在位置により近い店舗に対応付けられたグループをより優先して選択してもよい。また例えば、グループ選択部910は、レコメンド対象者がいる位置または場所の気温が基準以上に高い場合には、清涼飲料、氷菓子、及び/又はサービス加盟店のうち対象者から最寄りのカフェの商品等に関するグループを、レコメンド対象として選択してよい。なお、レコメンド処理装置190は、グループ選択部910を有さず任意の商品等の中からレコメンド対象の商品等をレコメンド対象として選択する構成を採ってもよい。
グループ選択部910は、レコメンド対象者についての複数の店舗のそれぞれの最終利用日時または最終利用からの経過期間に更に基づいて、商品等の複数のグループの中からレコメンドするグループを選択してもよい。例えば、レコメンド対象者がある店舗を最後に利用してから予め定められた基準期間以上が経過している場合、そのレコメンド対象者は、その店舗から離反しつつあるとみなすことができる。このような場合、グループ選択部910は、一例として当該店舗で取り扱っている商品等のグループを選択してレコメンド候補とすることで、顧客の離反を防ぐようなレコメンドを可能とする。
レコメンド決定部920は、レコメンド対象者について、属性DB122に格納された複数の属性値の少なくとも1つに基づいて、商品等をレコメンドするか否かを決定する。一例としてレコメンド決定部920は、属性DB122に格納されたレコメンド対象者の属性情報のうち、購買ポテンシャルデータに含まれる各商品等(あるいはレコメンド可能と指定された各商品等)に対応付けられた属性の属性値(既知の属性値または予測値)を参照し、基準値以上の嗜好性を示す属性値があればその属性に対応する商品等をレコメンド対象の商品等とする。これに代えて、レコメンド決定部920は、購買ポテンシャルデータに含まれる各商品等(あるいはレコメンド可能と指定された各商品等)に対応付けられた属性の属性値(既知の属性値または予測値)のうち、より高い嗜好性を示す属性値に対応するものをより優先して、レコメンド対象とする1または2以上の商品等を選択してもよい。
ここでグループ選択部910によって商品等のグループが選択されていることに応じて、レコメンド決定部920は、レコメンド対象者についての複数の属性値の少なくとも1つに基づいて、グループ選択部910が選択したグループに含まれる商品等の中から、レコメンド対象者にレコメンドする商品等を決定する。この場合、レコメンド決定部920は、商品等を選択する範囲を選択されたグループの範囲内に絞って、上記と同様にしてレコメンド対象の商品等を選択する。
レコメンド方法決定部930は、レコメンド対象者に商品等をレコメンドするレコメンド方法を決定する。レコメンド方法決定部930は、レコメンド対象者に対して商品等をレコメンドするレコメンド方法を、後述するレコメンドモデル生成部990が生成したレコメンドモデルを用いて決定してもよい。ここで、レコメンド方法決定部930は、レコメンド対象者に対するレコメンド方法として、電子メール、インターネット広告、ダイレクトメール、対象者に対して発行するレシートへの印刷、およびテレビ広告等のメディアのうちの少なくとも1つを用いることを決定してもよい。また、レコメンド方法決定部930は、レコメンド対象者に対するレコメンド方法として、商品等の値引、クーポンの付与、および、ポイント付与の少なくとも一方のインセンティブを提供することを決定してもよい。
レコメンド実行部940は、レコメンド対象者に対し、レコメンド対象の商品等を、レコメンド方法決定部930により決定されたレコメンド方法によってレコメンドする。レコメンド結果取得部950は、レコメンド対象者に対する、決定されたレコメンド方法によるレコメンド結果を取得する。
レコメンド結果格納部960は、決定されたレコメンド方法によるレコメンド結果を、属性DB122における複数の属性のうちの少なくとも一部の属性に対応付けて格納する。例えば、レコメンド結果格納部960は、レコメンド結果を、属性DB122に格納されたレコメンド対象者の属性情報中、購買ポテンシャルデータにおける、レコメンド対象の商品等に対応付けられた少なくとも1つの属性に対応付けて格納する。この場合、レコメンド結果格納部960は、レコメンド結果を、レコメンド対象の商品等に対する嗜好性を示す属性の属性値(既知の属性値)に反映することができる。ここで、システム100は、レコメンド対象となった商品等が購入された場合には、属性DB122における購買ポテンシャルデータ中の属性を、レコメンド結果格納部960から更新する代わりに、属性情報取得部115から更新する構成を採ってもよい。
また、レコメンド結果格納部960は、属性DB122に格納されたレコメンド対象者のレコメンドポテンシャルデータ中のメディア反応に含まれる、決定したレコメンド方法で用いたメディアに対応する少なくとも1つの属性に対応付けて格納してよい。これにより、レコメンド結果格納部960は、決定したレコメンド方法で用いたメディアに対応するレコメンド結果を、メディア反応に含まれる各メディアを用いたレコメンドの有効性を示す属性の属性値(既知の属性値)に反映することができる。
また、レコメンド結果格納部960は、属性DB122に格納されたレコメンド対象者のレコメンドポテンシャルデータ中のインセンティブ反応に含まれる、決定したレコメンド方法で用いたインセンティブに対応する少なくとも1つの属性に対応付けて格納してよい。これにより、レコメンド結果格納部960は、決定したレコメンド方法で用いたインセンティブに対応するレコメンド結果を、インセンティブ反応に含まれる各インセンティブを提供するレコメンドの有効性を示す属性の属性値(既知の属性値)に反映することができる。
また、レコメンド結果格納部960は、実行したレコメンドの内容およびレコメンド結果を含むレコメンド履歴をレコメンドDB接続部970を介してレコメンドDB980に格納する。
レコメンドDB接続部970は、レコメンドDB980に接続され、システム100内の各部からレコメンドDB980に対するアクセスを処理する。レコメンドDB980は、レコメンド処理装置190が実行したレコメンドの内容およびレコメンド結果の履歴を格納する。レコメンドDB980も、属性DB122と同様に、システム100の処理を行うコンピュータに接続された外部記憶装置により実現されてもよく、システム100の外部のクラウドストレージサービス等により提供される記憶装置によって実現されてもよい。
レコメンドモデル生成部990は、レコメンド方法によるレコメンド結果を少なくとも一部の属性の属性値として含む属性DB122を用いてレコメンド方法を選択するレコメンドモデルを生成する。本実施形態に係るレコメンドモデル生成部990は、属性DB122に加え、レコメンドDB980を用いてレコメンドモデルを生成する。ここで、レコメンドモデル生成部990は、属性DB122を用いるのに代えて、または属性DB122を用いるのに加えて、属性DB122を次元縮約した縮約DB132を用いてもよく、属性DB122をサンプリングした属性DB167を用いてもよく、属性DB122をサンプリングおよび次元縮約した縮約DB177を用いてもよい。また、レコメンドモデル生成部990は、レコメンドDB980を更に用いてレコメンドモデルを生成してもよい。
本実施形態に係るシステム100によれば、商品等をレコメンドしたレコメンド方法に応じたレコメンド結果を対象者の少なくとも1つの属性として属性DB122等に格納し、この属性を含む属性DB122等を用いて後のレコメンドにおけるレコメンド方法を選択するためのレコメンドモデルを生成・更新することができる。これにより、システム100は、レコメンドの回数を重ねていくことに応じて、対象者により適したレコメンド方法でレコメンドを行うことが可能となる。
図11は、本実施形態に係るレコメンドDB980に格納されるデータ構造の一例を示す。レコメンドDB980は、レコメンド処理装置190が行った各レコメンドに対応して、個人ID、環境情報、商品ID/サービスID、レコメンド方法、およびレコメンド結果を格納する。
「個人ID」は、レコメンド対象者を識別する。「環境情報」は、当該レコメンドに関して環境情報取得部900が取得した、レコメンド対象者についての環境情報である。「商品ID/サービスID」は、レコメンドした商品等の識別情報である。
「レコメンド方法」は、レコメンド方法決定部930により選択され、レコメンド実行部940により実行されたレコメンド方法であり、レコメンドに用いたメディアおよびレコメンドに付加したインセンティブを含む。「レコメンド結果」は、レコメンドに対するレコメンド対象者の行動を示すものであってよく、レコメンド対象商品等の購入に加え、例えばレコメンド対象商品等の広告を含む電子メール/ダイレクトメールへの反応(電子メールを開封した、電子メール内の広告リンクをクリックした、電子メール/ダイレクトメールに対して返信した、問合せをした等)、インターネット広告への反応(インターネット広告をクリックした等)、テレビCMへの反応(問合せをした、インタラクティブCMの場合にインタラクションを行った等)、並びにその他の反応(店舗に来店した等)の少なくとも1つを格納してよい。ここで、「レコメンド結果」は、複数種類の反応のそれぞれに対応するカラムを有していてもよい。
レコメンドDB980は、レコメンドをした日付若しくは日時等を格納してもよい。また、レコメンドDB980は、個人IDを格納するのに加えて、またはこれに代えて、属性DB122等に格納されたレコメンド対象者の属性情報の少なくとも一部のコピーを格納してもよい。一例として、レコメンドDB980は、レコメンド対象者の汎用属性データのコピーを格納してもよく、これに加えて、またはこれに代えて、購買ポテンシャルデータにおける、レコメンド対象商品等に対応付けて格納された少なくとも1つの属性の属性値を格納してもよい。この形態によれば、レコメンドDB980に格納するデータ量が増加するが、レコメンド処理装置190は、レコメンドを決定するため、及び/又はレコメンド方法を決定するために用いたレコメンド対象者の属性情報を記録しておくことができ、後に属性DB122が更新された場合であっても更新前の属性情報を用いてレコメンドモデルを生成することができる。
図12は、本実施形態に係るレコメンド処理装置190のレコメンド処理フローを示す。S1100において、環境情報取得部900は、システム100に登録された複数の対象者の中のある対象者(レコメンド対象者)について、環境情報を取得する。一例として、環境情報取得部900は、レコメンド対象者が携帯する、携帯電話またはスマートフォン等の携帯端末にインストールされて実行される会員サービス用のアプリケーションから、環境情報を受け取る。また、環境情報取得部900は、ある地域について天候情報等の環境情報を受信したことに応じて、その地域に位置する各対象者、及び/又は、その地域内に住所を有する各対象者を属性DB122等から検索して、これらの対象者をレコメンド対象者としてもよい。
S1110において、グループ選択部910は、レコメンド対象者についての環境情報に基づいて、l商品等の複数のグループの中からレコメンドするグループを選択する。S1120において、レコメンド決定部920は、レコメンド対象者について、属性DB122に格納された複数の属性値の少なくとも1つに基づいて、商品等をレコメンドするか否かを決定する。商品等をレコメンドしないと決定した場合、レコメンド決定部920は、S1130において、処理をS1100へと戻す。
商品等をレコメンドすることが決定された場合、レコメンド方法決定部930は、レコメンド対象者に商品等をレコメンドするレコメンド方法を決定する。ここで、レコメンド方法決定部930は、レコメンド対象者についての環境情報に更に基づいて、レコメンド方法を決定してよい。例えば、レコメンド方法決定部930は、レコメンド対象者についての環境情報および属性情報の少なくとも一部と、レコメンド対象商品等とをレコメンドモデルに入力して、レコメンドモデルを用いてレコメンド方法を決定してもよい。ここで、レコメンド方法決定部930は、常にレコメンドモデルを用いてレコメンドモデルを決定することによって学習結果の活用(Exploitation)を図るのみでなく、予め指定された割合でランダムにレコメンド方法を決定し、または次善またはそれ以下のレコメンド方法を選択する等により、他のレコメンド方法の探索(Exploration)を図ってもよい。
S1150において、レコメンド実行部940は、レコメンド対象者に対し、決定されたレコメンド方法によるレコメンドを実行する。レコメンド実行部940は、決定されたレコメンド方法に応じたメディアを用い、レコメンド用の電子メールをリマインド対象者の電子メールアドレス宛に送信する、レコメンド対象者が表示するWebページに含まれる広告用リンクに対してインターネット広告を提供する、各レコメンド対象者の宛先を含む宛先リストまたは宛名書きを出力する、レコメンド対象者による商品等購入に伴う購買トランザクションを受けたことに応じてレシートへの広告印刷を指示する、テレビ/CATV事業者のサーバ等に対してレコメンド対象商品等の広告配信を指示する等、レコメンド処理の少なくとも一部分を行ってもよい。
S1160において、レコメンド結果取得部950は、レコメンド対象者に対するレコメンド結果を取得する。レコメンド結果取得部950は、レコメンド対象者がレコメンド対象商品等を購入したこと、電子メールによるレコメンドに対する開封確認メッセージを受けたこと、電子メール中の広告リンク等がクリックされたこと、インターネット広告がクリックされたこと、ダイレクトメールを受けたレコメンド対象者からの問合せを受けたことが記録されたこと、レシートに印刷されたクーポン等が使用されたこと、及び/又は、テレビ広告等に対するインタラクションがあったことを取得する。
S1170において、レコメンド結果格納部960は、実行されたレコメンドの内容および取得されたレコメンド結果を、属性DB122に反映すると共に、レコメンドの履歴としてレコメンドDB980に格納する。
S1180において、レコメンドモデル生成部990は、属性DB122およびレコメンドDB980を用いて、レコメンド方法を選択するレコメンドモデルを生成する。ここで、レコメンドモデル生成部990は、レコメンド結果が取得される度にレコメンドモデルを生成または更新してもよく、これに代えて予め定められた回数レコメンド結果が取得される度、または定期的にレコメンドモデルを生成または更新してもよい。
レコメンドモデル生成部990は、例えばランダムフォレスト、勾配ブースティング、ロジスティック回帰、ニューラルネットワーク、およびサポートベクタマシン(SVM)等を含む各種の機械学習アルゴリズムの中から予め選択されたアルゴリズムを採用してよく、属性予測モデル生成部180および属性予測モデル選択部185と同様にしてアルゴリズムおよびハイパーパラメータをも最適化の対象としてもよい。
レコメンドモデル生成部990は、対象者の属性情報および環境情報を入力とし、レコメンド方法毎(メディア毎、インセンティブ毎)の成功率、成功可能性、または成功可能性の偏差値等を出力とするレコメンドモデルを、レコメンドDB980に格納されたレコメンド履歴を用いて学習させる。この学習において、レコメンドモデル生成部990は、レコメンドのコスト(広告コスト、インセンティブのコスト等)を反映させるように学習処理を行ってもよい。例えば、レコメンドモデル生成部990は、インセンティブを提供するレコメンドはインセンティブを提供するレコメンドと比較してコストが高いことから、インセンティブを提供するレコメンドについては成功率等をコストに応じた割合削減させる(一律の削減、商品等の価格に対するコストの割合分の削減等)ようにレコメンドモデルを学習させてもよい。ここで、レコメンドモデルは、属性情報および環境情報を入力とし、いずれか1つのレコメンド方法の成功率等を出力する推測モデルを全レコメンド方法分組み合わせて構成されてもよい。
レコメンドモデル生成部990は、一例としてレコメンドDB980に格納されたレコメンド履歴から学習用のレコメンド履歴を抽出し、抽出したレコメンド履歴に対応する対象者の属性情報および環境情報をレコメンドモデルに入力し、レコメンドモデルが出力する推測値(成功率等)とレコメンド結果との差分を算出し、差分がより小さくなるようにレコメンドモデルのパラメータを更新する処理を繰り返すことにより、レコメンドモデルを学習させる。レコメンドモデル生成部990は、新たに取得されたレコメンド結果を用いてレコメンドモデルを更新していくオンライン学習を行って、学習しながらレコメンド処理装置190によるレコメンドを実行可能としてもよい。レコメンドモデル生成部990は、生成・更新したレコメンドモデルをレコメンド方法決定部930に提供する。
以上に示したシステム100によれば、対象者に対してレコメンドを行った結果に基づいてレコメンドモデルを生成・更新し、同一または異なる対象者に対して商品等をレコメンドするレコメンド方法を、そのレコメンドモデルを用いて決定することができる。これにより、システム100は、レコメンドの精度を高めていくことができる。
以上に示した環境情報に応じたレコメンド処理フローに加え、レコメンド処理装置190は、システム100のユーザ及び/又は管理者等によって指定可能な一括レコメンド処理を行うこともできる。レコメンド処理装置190は、端末192を介してレコメンド対象者の絞込条件の指定を受け、絞込条件を満たすレコメンド対象者の人数等を端末192に表示する。ここで絞込条件は、例えば「年収が上位20%以上、男性、かつ、40〜50歳」といったように1または複数の属性の属性値の範囲によって指定されてもよい。また、絞込条件は、例えば「商品Aに対する嗜好性(または購買可能性)が高い方からX名」等のように1または複数の属性の属性値の上位または下位から指定人数分を抽出することの指定を含んでもよい。
システム100のユーザ等は、端末192を操作して絞込条件を設定・調整して、レコメンドに使用する絞込条件を決定する。また、システム100のユーザ等は、必要に応じてレコメンド方法を指定する。レコメンド処理装置190は、レコメンド実行指示を端末192を介して受け取り、絞込条件によって絞り込まれた各対象者に対して、図12のS1150〜S1180と同様にしてレコメンドの実行、レコメンド結果の取得、データベース(DB)へのレコメンド結果反映、及び、レコメンドモデルの更新を行う。
ここで、特定のレコメンド方法が指定されなかった場合、レコメンド処理装置190は、S1140の処理を行って、各対象者に適したレコメンド方法を決定してもよい。ここで、レコメンド方法決定部930は、複数の対象者の一部ずつに対して、互いに異なるレコメンド方法を決定してもよい。これにより、レコメンド処理装置190は、互いに異なる複数のレコメンド方法を実行して、これらのレコメンド結果をレコメンドモデルの学習に役立てることができる。
本実施形態に係るシステム100の変形例として、レコメンドモデル生成部990がレコメンドモデルを生成するのに代えて、予測モデル生成装置150をレコメンドモデル生成部としても機能させ、予測モデル生成装置150が属性予測モデルの一種としてレコメンドモデルを生成する構成を採ることもできる。この場合、一例として属性DB122は、レコメンドポテンシャルデータとして、複数種類の環境情報のそれぞれに対応して、各レコメンド方法に対して少なくとも1つの属性を格納する。レコメンド結果格納部960は、環境情報およびレコメンド方法に応じたレコメンド結果に応じて、属性DB122におけるこれらの属性における既知の属性値を更新する。予測モデル生成装置150は、属性予測モデルの1種として、対象者の属性情報に基づいて、レコメンドポテンシャルデータにおけるこれらの属性を予測するレコメンドモデルを生成する。レコメンド方法決定部930は、レコメンドモデルが予測したこれらの属性の予測値に基づいて、より成功率が高いことを示す予測値を含む属性に対応するレコメンド方法を優先的に選択することにより、最適なレコメンド方法を決定してよい。
図13は、本発明の複数の態様が全体的または部分的に具現化されてよいコンピュータ1900の例を示す。コンピュータ1900にインストールされたプログラムは、コンピュータ1900に、本発明の実施形態に係る装置に関連付けられる操作または当該装置の1または複数のセクションとして機能させることができ、または当該操作または当該1または複数のセクションを実行させることができ、および/またはコンピュータ1900に、本発明の実施形態に係るプロセスまたは当該プロセスの段階を実行させることができる。そのようなプログラムは、コンピュータ1900に、本明細書に記載のフローチャートおよびブロック図のブロックのうちのいくつかまたはすべてに関連付けられた特定の操作を実行させるべく、CPU2000によって実行されてよい。
本実施形態に係るコンピュータ1900は、ホスト・コントローラ2082により相互に接続されるCPU2000、RAM2020、グラフィック・コントローラ2075、及び表示装置2080を有するCPU周辺部と、入出力コントローラ2084によりホスト・コントローラ2082に接続される通信インターフェイス2030、ハードディスクドライブ2040、及びDVDドライブ2060を有する入出力部と、入出力コントローラ2084に接続されるROM2010、フラッシュメモリ・ドライブ2050、及び入出力チップ2070を有するレガシー入出力部を備える。
ホスト・コントローラ2082は、RAM2020と、高い転送レートでRAM2020をアクセスするCPU2000及びグラフィック・コントローラ2075とを接続する。CPU2000は、ROM2010及びRAM2020に格納されたプログラムに基づいて動作し、各部の制御を行う。グラフィック・コントローラ2075は、CPU2000等がRAM2020内に設けたフレーム・バッファ上に生成する画像データを取得し、表示装置2080上に表示させる。これに代えて、グラフィック・コントローラ2075は、CPU2000等が生成する画像データを格納するフレーム・バッファを、内部に含んでもよい。
入出力コントローラ2084は、ホスト・コントローラ2082と、比較的高速な入出力装置である通信インターフェイス2030、ハードディスクドライブ2040、DVDドライブ2060を接続する。通信インターフェイス2030は、有線又は無線によりネットワークを介して他の装置と通信する。また、通信インターフェイスは、通信を行うハードウェアとして機能する。ハードディスクドライブ2040は、コンピュータ1900内のCPU2000が使用するプログラム及びデータを格納する。DVDドライブ2060は、DVD2095からプログラム又はデータを読み取り、RAM2020を介してハードディスクドライブ2040に提供する。
また、入出力コントローラ2084には、ROM2010と、フラッシュメモリ・ドライブ2050、及び入出力チップ2070の比較的低速な入出力装置とが接続される。ROM2010は、コンピュータ1900が起動時に実行するブート・プログラム、及び/又は、コンピュータ1900のハードウェアに依存するプログラム等を格納する。フラッシュメモリ・ドライブ2050は、フラッシュメモリ2090からプログラム又はデータを読み取り、RAM2020を介してハードディスクドライブ2040に提供する。入出力チップ2070は、フラッシュメモリ・ドライブ2050を入出力コントローラ2084へと接続するとともに、例えばパラレル・ポート、シリアル・ポート、キーボード・ポート、マウス・ポート等を介して各種の入出力装置を入出力コントローラ2084へと接続する。
RAM2020を介してハードディスクドライブ2040に提供されるプログラムは、フラッシュメモリ2090、DVD2095、又はICカード等の記録媒体に格納されて利用者によって提供される。プログラムは、記録媒体から読み出され、RAM2020を介してコンピュータ1900内のハードディスクドライブ2040にインストールされ、CPU2000において実行される。これらのプログラム内に記述される情報処理は、コンピュータ1900に読み取られ、ソフトウェアと、上記様々なタイプのハードウェア資源との間の協働をもたらす。装置または方法が、コンピュータ1900の使用に従い情報の操作または処理を実現することによって構成されてよい。
一例として、コンピュータ1900と外部の装置等との間で通信を行う場合には、CPU2000は、RAM2020上にロードされた通信プログラムを実行し、通信プログラムに記述された処理内容に基づいて、通信インターフェイス2030に対して通信処理を指示する。通信インターフェイス2030は、CPU2000の制御を受けて、RAM2020、ハードディスクドライブ2040、フラッシュメモリ2090、又はDVD2095等の記憶装置上に設けた送信バッファ領域等に記憶された送信データを読み出してネットワークへと送信し、もしくは、ネットワークから受信した受信データを記憶装置上に設けた受信バッファ領域等へと書き込む。このように、通信インターフェイス2030は、DMA(ダイレクト・メモリ・アクセス)方式により記憶装置との間で送受信データを転送してもよく、これに代えて、CPU2000が転送元の記憶装置又は通信インターフェイス2030からデータを読み出し、転送先の通信インターフェイス2030又は記憶装置へとデータを書き込むことにより送受信データを転送してもよい。
また、CPU2000は、ハードディスクドライブ2040、DVDドライブ2060(DVD2095)、フラッシュメモリ・ドライブ2050(フラッシュメモリ2090)等の外部記憶装置に格納されたファイルまたはデータベース等の中から、全部または必要な部分をDMA転送等によりRAM2020へと読み込ませ、RAM2020上のデータに対して各種の処理を行う。そして、CPU2000は、処理を終えたデータを、DMA転送等により外部記憶装置へと書き戻す。このような処理において、RAM2020は、外部記憶装置の内容を一時的に保持するものとみなせるから、本実施形態においてはRAM2020及び外部記憶装置等をメモリ、記憶部、または記憶装置等と総称する。
本実施形態における各種のプログラム、データ、テーブル、データベース等の各種の情報は、このような記憶装置上に格納されて、情報処理の対象となる。なお、CPU2000は、RAM2020の一部をキャッシュメモリに保持し、キャッシュメモリ上で読み書きを行うこともできる。このような形態においても、キャッシュメモリはRAM2020の機能の一部を担うから、本実施形態においては、区別して示す場合を除き、キャッシュメモリもRAM2020、メモリ、及び/又は記憶装置に含まれるものとする。
また、CPU2000は、RAM2020から読み出したデータに対して、プログラムの命令列により指定された、本実施形態中に記載した各種の演算、情報の加工、条件判断、情報の検索・置換等を含む各種の処理を行い、RAM2020へと書き戻す。例えば、CPU2000は、条件判断を行う場合においては、本実施形態において示した各種の変数が、他の変数または定数と比較して、大きい、小さい、以上、以下、等しい等の条件を満たすか否かを判断し、条件が成立した場合(又は不成立であった場合)に、異なる命令列へと分岐し、またはサブルーチンを呼び出す。
また、CPU2000は、記憶装置内のファイルまたはデータベース等に格納された情報を検索することができる。例えば、第1属性の属性値に対し第2属性の属性値がそれぞれ対応付けられた複数のエントリが記憶装置に格納されている場合において、CPU2000は、記憶装置に格納されている複数のエントリの中から第1属性の属性値が指定された条件と一致するエントリを検索し、そのエントリに格納されている第2属性の属性値を読み出すことにより、所定の条件を満たす第1属性に対応付けられた第2属性の属性値を得ることができる。
また、実施形態の説明において複数の要素が列挙された場合には、列挙された要素以外の要素を用いてもよい。例えば、「Xは、A、B及びCを用いてYを実行する」と記載される場合、Xは、A、B及びCに加え、Dを用いてYを実行してもよい。
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
特許請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。