(57)【特許請求の範囲】
【請求項１】
通信端末を介して該通信端末のユーザに商品を推薦する情報処理装置であって、
前記通信端末から取得された、購買商品及び該商品を購買した前記ユーザの属性が関連付けられた購買履歴情報と、購買商品及び該商品を購買した前記ユーザの購買時の状況を示す情報であるコンテキストが関連付けられたコンテキスト情報とを記憶する記憶部と、
前記購買履歴情報に含まれる商品に関して、前記コンテキスト情報の総数を集計し昇順にソートし、ソートした商品について所定の閾値分だけ上位から商品を選択し、選択した商品に関して、前記コンテキスト情報を取得するためのユーザへの質問を生成する質問生成部と、
前記質問生成部により生成された質問に基づき前記通信端末から取得された前記コンテキスト情報、前記記憶部に記憶されている前記購買履歴情報、及び前記記憶部に記憶されている前記コンテキスト情報に基づき、各商品の購買確率を算出する算出モデルを生成するモデル生成部と、
少なくとも前記ユーザの属性を前記算出モデルに入力することにより、各商品の購買確率を算出し、ユーザに推薦する商品を決定するモデル適用部と、を備える、情報処理装置。
【請求項２】
前記質問生成部は、前記選択した商品のうち、過去の推薦時における正答率が低い商品をモデル精度の低い商品と判断し、該モデル精度の低い商品に関して、前記質問を生成する、請求項１記載の情報処理装置。
【請求項３】
前記購買履歴情報においては、商品の購買日時及び購買場所が、前記購買商品及び前記ユーザの属性に関連付けられており、
前記質問生成部は、前記質問を生成する商品に関する、前記購買履歴情報における購買日時及び購買場所の少なくともいずれか一方に基づいて、前記質問に対する回答候補を生成する、請求項１又は２記載の情報処理装置。
【請求項４】
前記質問生成部は、前記質問を生成する商品に関する、ユーザからの過去の回答履歴を考慮して、前記質問に対する回答候補を生成する、請求項１〜３のいずれか一項記載の情報処理装置。
【請求項５】
前記モデル生成部は、
前記購買履歴情報を含む情報セットを複数種類用意し、該複数種類の情報セットを合成することにより、前記算出モデルを生成し、
前記算出モデルを生成する際には、互いに異なる種類の前記情報セットの合成割合を任意に変化させる、請求項１〜４のいずれか一項記載の情報処理装置。
【請求項６】
前記モデル生成部は、
前記複数種類の情報セットとして、全ユーザの前記購買履歴情報を含む情報セットと、１ユーザのみの前記購買履歴情報を含む情報セットとを用意し、
前記全ユーザの購買履歴情報に占める前記１ユーザの購買履歴情報の占有率を特定し、該占有率に応じて、前記全ユーザの購買履歴情報を含む情報セットと、前記１ユーザのみの購買履歴情報を含む情報セットとの合成割合を決定する、請求項５記載の情報処理装置。
【請求項７】
前記購買履歴情報においては、商品の購買日時が、前記購買商品及び前記ユーザの属性に関連付けられており、
前記モデル生成部は、
前記情報セットに含まれる前記購買履歴情報における前記購買日時に応じて、互いに異なる種類の前記情報セットの合成割合を決定する、請求項５又は６記載の情報処理装置。
【請求項８】
前記購買履歴情報においては、商品の購買日時が、前記購買商品及び前記ユーザの属性に関連付けられており、
前記モデル生成部は、前記購買日時が現在の日時から所定の範囲内である前記購買履歴情報のみに基づいて、前記モデルを生成する、請求項１〜７のいずれか一項記載の情報処理装置。
【請求項９】
前記モデル生成部は、
互いに類似する複数の商品からなる商品群毎に、前記購買履歴情報及び前記コンテキスト情報に基づき、該商品群の購買確率を算出する商品群モデルを生成し、
前記モデル適用部は、
前記算出モデルを適用して算出した商品の購買確率と、前記商品群モデルを適用して算出した該商品を含む商品群の購買確率とに基づき、該商品の最終的な購買確率である最終購買確率を算出し、該最終購買確率に基づいて、ユーザに推薦する商品を決定する、請求項１〜８のいずれか一項記載の情報処理装置。
【請求項１０】
前記購買履歴情報においては、商品の購買日時が、前記購買商品及び前記ユーザの属性に関連付けられており、
前記モデル適用部は、
ユーザの状況についての問合せを行い、該問合せに対する前記ユーザからの回答を取得し、該回答に示された前記ユーザの状況を前記算出モデルに入力することにより、ユーザに推薦する商品を決定するものであり、
前記購買履歴情報に基づき、購買頻度が高い時間帯である購買時間帯を導出し、
前記購買時間帯において過去に回答された数が多い前記ユーザの状況ほど、優先的に、前記問合せによって取得される取得対象と特定し、
前記取得対象を得るための問合せを行う、請求項１〜９のいずれか一項記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザに対して商品を推薦する情報処理装置に関する。
【背景技術】
【０００２】
従来、ＩＤ−ＰＯＳ（Identification-Point Of Sale）データ等の商品の購買履歴に基づき、ユーザに対して商品を推薦するシステムが知られている（例えば、特許文献１参照）。近年、スマートフォン等の通信端末が普及したことに伴い、上述したシステムでは、通信端末の加速度センサ、ＧＰＳ（Global Positioning System）センサ等から得られた情報に基づき、商品の推薦精度を高める取り組み、すなわちユーザに購買され易い商品を推薦する取り組みが進められている。例えば、このようなシステムでは、上述したセンサ等から得られる情報に基づき、ユーザのコンテキスト（ユーザの状況に係る情報）を推定し、該コンテキストに応じた商品を推薦することにより、商品の推薦精度を向上させている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−２５６１８３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、ユーザに商品が購買された場合において、具体的にどのコンテキストが当該商品の購買に寄与したのかを特定することは困難である。このため、単にユーザのコンテキストを考慮して商品を推薦するだけでは、商品の推薦精度を十分に向上させることができていない。
【０００５】
本発明は上記実情に鑑みてなされたものであり、ユーザに対する商品の推薦精度をより一層向上させることを目的とする。
【課題を解決するための手段】
【０００６】
本発明の一態様に係る情報処理装置は、通信端末を介して該通信端末のユーザに商品を推薦する情報処理装置であって、通信端末から取得された、購買商品及び該商品を購買したユーザの属性が関連付けられた購買履歴情報と、購買商品及び該商品を購買したユーザの購買時の状況を示す情報であるコンテキストが関連付けられたコンテキスト情報とを記憶する記憶部と、購買履歴情報に含まれる商品のうち、コンテキスト情報の総数が所定の閾値よりも少ない商品に関して、コンテキスト情報を取得するためのユーザへの質問を生成する質問生成部と、質問生成部により生成された質問に基づき通信端末から取得されたコンテキスト情報、記憶部に記憶されている購買履歴情報、及び記憶部に記憶されているコンテキスト情報に基づき、各商品の購買確率を算出する算出モデルを生成するモデル生成部と、少なくともユーザの属性を算出モデルに入力することにより、各商品の購買確率を算出し、ユーザに推薦する商品を決定するモデル適用部と、を備える。
【０００７】
この情報処理装置では、ユーザの属性、購買商品、及びコンテキストが考慮されたモ算出デルが生成され、少なくともユーザの属性が入力とされて当該算出モデルが適用されることにより、各商品の購買確率が算出される。コンテキストを考慮することによって、ユーザの購買時の状況に応じて、ユーザに購買され易い商品を推薦することができる。また、この情報処理装置では、コンテキスト情報の総数が所定の閾値よりも少ない商品に関して、コンテキスト情報を取得するためのユーザへの質問が生成される。そして、該質問に応じて通信端末から取得されたコンテキスト情報が考慮されて算出モデルが生成されている。算出モデルを生成する際のコンテキスト情報が不足していると考えられる商品のコンテキスト情報が補充されるので、算出モデルの商品推薦精度の向上に寄与する可能性が高いコンテキスト情報を適切に補充することができる。このことで、ユーザに対する商品の推薦精度をより一層向上させることができる。
【０００８】
上記情報処理装置において、質問生成部は、コンテキスト情報の総数が所定の閾値よりも少ない商品のうち、過去の推薦時における正答率が低い商品をモデル精度の低い商品と判断し、該モデル精度の低い商品に関して、質問を生成してもよい。推薦時の正答率が低い商品（モデル精度の低い商品）について優先的に質問を生成しコンテキスト情報を補充することによって、より効率的に商品の推薦精度を向上させることができる。
【０００９】
上記情報処理装置では、購買履歴情報において、商品の購買日時及び購買場所が、購買商品及びユーザの属性に関連付けられており、質問生成部は、質問を生成する商品に関する、購買履歴情報における購買日時及び購買場所の少なくともいずれか一方に基づいて、質問に対する回答候補を生成してもよい。
【００１０】
質問生成部において、質問とその回答候補が生成されることにより、質問を受けたユーザが回答し易くなり、ユーザビリティを向上させることができる。そして、いつどこで購買された商品かを考慮して回答候補を生成することによって、よりユーザの購買時の状況（すなわちコンテキスト）に合った回答候補を生成することができる。以上により、算出モデルの商品推薦精度の向上に寄与する可能性が高いコンテキスト情報を適切に補充することができる。
【００１１】
上記情報処理装置において、質問生成部は、質問を生成する商品に関する、ユーザからの過去の回答履歴を考慮して、質問に対する回答候補を生成してもよい。これにより、質問を生成する商品に関して、ユーザに回答されやすい内容を回答候補とすることができ、よりユーザの購買時の状況（すなわちコンテキスト）に合った回答候補を生成することができる。以上により、算出モデルの商品推薦精度の向上に寄与する可能性が高いコンテキスト情報を適切に補充することができる。
【００１２】
上記情報処理装置において、モデル生成部は、購買履歴情報を含む情報セットを複数種類用意し、該複数種類の情報セットを合成することにより、算出モデルを生成し、算出モデルを生成する際には、互いに異なる種類の情報セットの合成割合を任意に変化させてもよい。複数種類の情報セットの合成割合を調整しながら算出モデルを生成することにより、合成割合に応じて、ユーザ個別の算出モデルの生成や、直近の購買履歴情報の影響力を大きくした算出モデルの生成など、様々な特徴の算出モデルを容易に生成することができる。
【００１３】
上記情報処理装置において、モデル生成部は、複数種類の情報セットとして、全ユーザの購買履歴情報を含む情報セットと、１ユーザのみの購買履歴情報を含む情報セットとを用意し、全ユーザの購買履歴情報に占める１ユーザの購買履歴情報の占有率を特定し、該占有率に応じて、全ユーザの購買履歴情報を含む情報セットと、１ユーザのみの購買履歴情報を含む情報セットとの合成割合を決定してもよい。
【００１４】
算出モデル生成においては、個人の購買履歴情報が少ない初期段階では全ユーザの購買履歴情報を主に考慮して算出モデルが生成されることが好ましく、個人の購買履歴情報がある程度蓄積された段階では１ユーザの購買履歴情報を主に考慮してパーソナライズされた算出モデルが生成されることが好ましい。この点、全ユーザの購買履歴情報に占める１ユーザの購買履歴情報の占有率を考慮して合成割合を変化させることにより、個人の購買履歴情報の増加に応じて、算出モデルを徐々にパーソナライズすることができる。
【００１５】
上記情報処理装置では、購買履歴情報において、商品の購買日時が、購買商品及びユーザの属性に関連付けられており、モデル生成部は、情報セットに含まれる購買履歴情報における購買日時に応じて、互いに異なる種類の情報セットの合成割合を決定してもよい。これにより、例えば、現在の日時との乖離度合を考慮して複数種類の情報セットの合成割合を決定することができる。これにより、例えば、現在の日時に近い購買履歴情報を含む情報セットの影響力を大きくした算出モデルを生成することができる。一般的に、現在の日時に近い購買行動ほど、次（未来）の購買行動に類似すると考えられる。このため、上記構成を採用することにより、算出モデルの商品推薦精度の向上に寄与することができる。
【００１６】
上記情報処理装置では、購買履歴情報において、商品の購買日時が、購買商品及びユーザの属性に関連付けられており、モデル生成部は、購買日時が現在の日時から所定の範囲内である購買履歴情報のみに基づいて、モデルを生成してもよい。これにより、次（未来）の購買行動により影響すると考えられる購買履歴情報のみから算出モデルを生成することができる。このことで、算出モデルの商品推薦精度の向上に寄与することができる。
【００１７】
上記情報処理装置において、モデル生成部は、互いに類似する複数の商品からなる商品群毎に、購買履歴情報及びコンテキスト情報に基づき、該商品群の購買確率を算出する商品群モデルを生成し、モデル適用部は、算出モデルを適用して算出した商品の購買確率と、商品群モデルを適用して算出した該商品を含む商品群の購買確率とに基づき、該商品の最終的な購買確率である最終購買確率を算出し、該最終購買確率に基づいて、ユーザに推薦する商品を決定してもよい。
【００１８】
これにより、類似する商品の購買行動を考慮して、推薦する商品を決定することができる。例えば、コーヒーと紅茶とが類似する商品である場合に、一度コーヒーを購買すると、しばらく紅茶は購買されないと考えられる。単に商品毎の算出モデルから推薦する商品を決定する場合には、コーヒーを購買した直後に紅茶が推薦されることも考えられる。この点、類似する複数の商品からなる商品群毎の購買行動（購買履歴）が考慮されることにより、続いて購買されにくいと思われる商品群（例えば飲食品など）の各商品については、連続して推薦されにくくすること、等が可能となる。
【００１９】
上記情報処理装置では、購買履歴情報において、商品の購買日時が、購買商品及びユーザの属性に関連付けられており、モデル適用部は、ユーザの状況についての問合せを行い、該問合せに対するユーザからの回答を取得し、該回答に示されたユーザの状況を算出モデルに入力することにより、ユーザに推薦する商品を決定するものであり、購買履歴情報に基づき、購買頻度が高い時間帯である購買時間帯を導出し、購買時間帯において過去に回答された数が多いユーザの状況ほど、優先的に、問合せによって取得される取得対象と特定し、該取得対象を得るための問合せを行ってもよい。
【００２０】
モデル適用部によって、ユーザの属性に加えて、ユーザからの回答に示されたユーザの状況が入力とされて算出モデルが適用されることにより、ユーザに対する商品の推薦精度をより一層向上させることができる。算出モデルに入力されるユーザの状況は、購買される時間帯におけるユーザの状況であることが好ましい。この点、過去の購買頻度から購買時間帯が導出されると共に、当該時間帯におけるユーザの状況として過去に回答され易いものに関する問い合わせを行うことにより、購買時間帯におけるユーザの状況を効率的に取得することができる。すなわち、ユーザへの問合せを極力減らしながら、商品の推薦精度の向上を図ることができる。
【００２１】
上記情報処理装置において、モデル適用部は、購買時間帯において過去に回答されたユーザの状況のうち、購買される商品の種類が多いユーザの状況ほど、優先的に、取得対象と特定してもよい。これにより、ユーザへの問合せを極力減らしながら、多種の購買商品に係るユーザの状況を効率的に取得することができる。
【００２２】
上記情報処理装置において、モデル適用部は、対象日時を算出モデルに入力することにより、該対象日時におけるユーザの状況の推定確率を導出し、推定確率が高いユーザの状況ほど、優先的に、算出モデルへの入力として特定し、該特定したユーザの状況を算出モデルに入力することにより、対象日時におけるユーザに推薦する商品を決定してもよい。これにより、ユーザの状況を取得できていない場合であっても、推定されたユーザの状況を確定条件として算出モデルへ適用することができ、ユーザへの問合せを極力減らしながら、商品の推薦精度の向上を図ることができる。
【発明の効果】
【００２３】
本発明によれば、ユーザに対する商品の推薦精度をより一層向上させることができる。
【図面の簡単な説明】
【００２４】
【図１】本発明の第１実施形態に係る商品推薦システムの機能構成を示す図である。
【図２】図１の商品推薦システムに含まれる商品推薦装置のハードウェア構成を示す図である。
【図３】本発明の第１実施形態に係る商品推薦システムにおいて実行される処理の一例を示すシーケンス図である。
【図４】商品推薦装置の質問生成部の処理を示すフローチャートである。
【図５】商品推薦装置の処理に用いるデータを示す表であり、図５（ａ）は購買履歴、図５（ｂ）はコンテキスト回答データ、図５（ｃ）は買物リストデータ、図５（ｄ）はコンテキスト詳細データを示す表である。
【図６】商品推薦装置のモデル生成部の処理を示すフローチャートである。
【図７】ベイジアンネットワークへの入力データを示す表である。
【図８】商品推薦装置のモデル適用部の処理を示すフローチャートである。
【図９】ベイジアンネットワークからの出力結果を示す表である。
【図１０】本発明の第２実施形態に係る商品推薦装置の質問生成部の処理を示すフローチャートである。
【図１１】商品毎の購買確率算出結果を示す表である。
【図１２】本発明の第３実施形態に係る商品推薦装置のモデル生成部の処理を示すフローチャートである。
【図１３】算出モデルのパーソナライズを説明するための表である。
【図１４】本発明の第４実施形態に係る商品推薦装置のモデル生成部の処理を示すフローチャートである。
【図１５】データの複製を説明するための図である。
【図１６】本発明の第５実施形態に係る商品推薦装置のモデル適用部の処理を示すフローチャートである。
【図１７】購買確率の掛け合わせ処理を説明するための図である。
【図１８】本発明の第６実施形態に係る商品推薦装置のモデル適用部の処理を示すフローチャートである。
【図１９】コンテキストの回答数を示す表である。
【図２０】本発明の第７実施形態に係る商品推薦装置のモデル適用部の処理を示すフローチャートである。
【図２１】本発明の第８実施形態に係る商品推薦装置のモデル適用部の処理を示すフローチャートである。
【図２２】コンテキストの推定確率を示す表である。
【図２３】本発明の第９実施形態に係る商品推薦装置の質問生成部の処理を示すフローチャートである。
【図２４】回答確率を示す表である。
【発明を実施するための形態】
【００２５】
以下、添付図面を参照しながら本発明の実施形態を詳細に説明する。図面の説明において、同一又は同等の要素には同一符号を用い、重複する説明を省略する。
【００２６】
[第１実施形態]
図１は、本発明の第１実施形態に係る商品推薦システムの機能構成を示す図である。
【００２７】
図１に示されるように、商品推薦システム１は、商品推薦装置１０（情報処理装置）と、通信端末３０とを備えている。なお、図１中においては通信端末３０を１つのみ記載しているが、実際には、通信端末３０は複数存在している。
【００２８】
通信端末３０は、ユーザによって操作される端末であり、例えばユーザに携帯されて用いられるスマートフォン等の携帯電話機である。通信端末３０は、商品推薦装置１０と通信可能に構成されており、商品推薦装置１０から商品の推薦リストである買い物リストを受信すると共に、商品を購買した際にはユーザ操作に応じて購買履歴を商品推薦装置１０に送信する。また、通信端末３０は、商品推薦装置１０から購買理由に関する質問を受信し、ユーザ操作に応じて購買理由に関する回答を商品推薦装置１０に送信する。
【００２９】
商品推薦装置１０は、通信端末３０を介して、該通信端末３０のユーザに商品を推薦する装置である。商品推薦装置１０は、通信端末３０と通信を行う送受信部１１と、通信端末３０から取得した情報が格納される情報格納部１２（記憶部）と、通信端末３０のユーザに対する質問を生成する質問生成部１３と、各商品の購入確率を算出する算出モデルを生成するモデル生成部１４と、算出モデルを適用することにより各商品の購入確率を算出し、ユーザに推薦する商品を決定するモデル適用部１５と、を備えている。
【００３０】
図２は、図１の商品推薦システム１に含まれる商品推薦装置１０のハードウェア構成を示す図である。商品推薦装置１０は、物理的には、図２に示すように、１又は複数のＣＰＵ１０１、主記憶装置であるＲＡＭ１０２及びＲＯＭ１０３、入力デバイスであるキーボード及びマウス等の入力装置１０４、ディスプレイ等の出力装置１０５、ネットワークカード等のデータ送受信デバイスである通信モジュール１０６、半導体メモリ等の補助記憶装置１０７等を含むコンピュータとして構成されている。
【００３１】
上述した商品推薦装置１０の各機能は、図２に示すＣＰＵ１０１、ＲＡＭ１０２等のハードウェア上に１又は複数の所定のコンピュータソフトウェアを読み込ませることにより、ＣＰＵ１０１の制御のもとで入力装置１０４、出力装置１０５、通信モジュール１０６を動作させるとともに、ＲＡＭ１０２や補助記憶装置１０７におけるデータの読み出し及び書き込みを行うことで実現される。
【００３２】
次に、商品推薦システム１において実行される処理について、図３を参照しながら説明する。図３は、本発明の第１実施形態に係る商品推薦システム１において実行される処理の一例を示すシーケンス図である。なお、図３の説明においては、処理の全体概要のみを説明する。各機能の詳細な説明については後述する。
【００３３】
図３に示されるように、まず、ユーザ操作に応じて、通信端末３０から購買履歴が入力され、該購買履歴が商品推薦装置１０に送信される（ステップＳ１）。ユーザによって購買履歴が入力されるタイミングは、ユーザによる商品の購買タイミング以降であればいつでもよい。
【００３４】
つづいて、商品推薦装置１０の送受信部１１により、上記購買履歴が受信され、該購買履歴が情報格納部１２に格納される（ステップＳ２）。そして、情報格納部１２に購買履歴が格納されたことが、質問生成部１３により検知される。質問生成部１３は、当該検知を例えば１分周期で行う。該検知後において、質問生成部１３は、情報格納部１２から購買履歴（購買履歴情報）を取得すると共に（ステップＳ３）、購買理由（コンテキスト情報）を取得する（ステップＳ４）。更に、質問生成部１３は、前回推薦した買い物リスト（ユーザに対する商品の推薦リスト）を情報格納部１２から取得する。
【００３５】
そして、質問生成部１３は、情報格納部１２から取得した購買履歴、購買理由、及び買い物リストに基づいて、どの商品のコンテキストを収集するかを決定し、コンテキストを収集するための質問データを生成する（ステップＳ６）。質問生成部１３は、当該質問データを情報格納部１２に格納する（ステップＳ７）。
【００３６】
つづいて、送受信部１１は、情報格納部１２に格納された質問データを取得し（ステップＳ８）、該質問データを通信端末３０に送信する（ステップＳ９）。通信端末３０では、該質問データが表示され、ユーザが質問に対して購買理由の回答を行う。ユーザ操作に応じた回答データは、通信端末３０から商品推薦装置１０に送信される（ステップＳ１０）。商品推薦装置１０の送受信部１１は、該回答データを受信して情報格納部１２に格納する（ステップＳ１１）。
【００３７】
そして、予めタイマで設定されたタイミングにおいて、モデル生成部１４は、情報格納部１２から購買履歴を取得すると共に（ステップＳ１２）、購買理由（コンテキスト情報）を取得する（ステップＳ１３）。モデル生成部１４は、取得した購買履歴及びコンテキスト情報に基づいて、算出モデルを更新する（ステップＳ１４）。モデル生成部１４は、更新した算出モデルを情報格納部１２に格納する（ステップＳ１５）。算出モデルは、例えばベイジアンネットワークモデルであるがこれに限定されない。
【００３８】
そして、予めタイマで設定されたタイミングにおいて、モデル適用部１５は、情報格納部１２から購買履歴を取得して、商品推薦の対象曜日における各ユーザの最多購買時間帯を算出する（ステップＳ１６）。また、モデル適用部１５は、情報格納部１２から算出モデルデータを取得する（ステップＳ１７）。モデル適用部１５は、算出モデルに対して、商品を推薦する対象ユーザの性別、年代、対象曜日、対象時間を入力し、その出力結果から買い物リストを生成する（ステップＳ１８）。そして、モデル適用部１５は、生成した買い物リストを情報格納部１２に格納する（ステップＳ１９）。
【００３９】
つづいて、送受信部１１は、情報格納部１２から買い物リストを取得すると共に（ステップＳ２０）、コンテキスト収集用の質問を取得し（ステップＳ２１）、これらの情報を通信端末３０に送信する（ステップＳ２２）。通信端末３０では、買い物リストが表示される。コンテキスト収集用の質問は、例えば買い物リストに含まれる商品に関するコンテキストを収集するための質問であり、通信端末３０において、例えば購買情報がユーザに入力された際に表示される情報である。
【００４０】
次に、図４〜図９も参照しながら、商品推薦装置１０の各機能の詳細について説明する。
【００４１】
情報格納部１２は、通信端末３０から取得された、購買商品及び該商品を購買したユーザの属性が関連付けられた購買履歴と、購買商品及び該商品を購買したユーザの購買時の状況を示す情報であるコンテキストが関連付けられたコンテキスト情報とを記憶している。
【００４２】
図５（ａ）は、情報格納部１２に格納されている購買履歴の一例を示す表である。図５（ａ）に示す購買履歴では、購買商品毎に付与される購買ＩＤ（「id」）と、購買したユーザを一意に特定するユーザＩＤ（「user_id」）と、購買日時（「datetime」）と、購買商品（「beer」「yougurt」「coffee」）とが関連付けられている。例えば、購買ＩＤが「０」である購買商品については、ユーザＩＤが「０」、購買日時が「2016/02/02 16:00」、購買商品が「cofee」、であることが示されている。なお、図示しないユーザデータにおいて、各ユーザの属性がユーザＩＤと関連付けられて管理されている。このため、ユーザＩＤと購買商品が関連付けられているとは、ユーザの属性と購買商品とが関連付けられていることと同義である。
【００４３】
コンテキストは、上述したように、商品を購買したユーザの購買時の状況を示す情報であり、例えば、購買に係る移動手段を示す情報（「徒歩で来店」「車で来店」等）、購買に係る同伴者を示す情報（「友人と来店」「家族と来店」）、購買時の体調を示す情報（「疲れている」）などである。このようなコンテキストは、例えば「なぜ当該商品を購入したか」との質問に対するユーザからの回答(購買理由)として取得される。すなわち、ヨーグルトを購入したユーザに対して、「なぜヨーグルトを購入したのか」との質問があった場合に、「疲れていたから」との購買理由が回答される場合、当該「疲れていたから」との購買理由が、コンテキストとされる。
【００４４】
質問生成部１３は、購買履歴に含まれる商品のうち、コンテキスト情報の総数が所定の閾値よりも少ない商品に関して、コンテキスト情報を取得するためのユーザへの質問を生成する機能である。
【００４５】
具体的には、質問生成部１３は、情報格納部１２に格納された、当該ユーザの直近の購買履歴と、当該ユーザに対する直近の買い物リストと、全ユーザの過去のコンテキスト情報（全ユーザが過去に回答したコンテキスト情報）とを取得する。質問生成部１３は、取得した購買履歴に含まれる購買商品のうち、取得した買い物リストに存在しない商品を抽出し、該抽出した商品をリスト化する。以下、当該商品のリストをリストＡと記載する場合がある。
【００４６】
図５（ｃ）は、買い物リストの一例を示す表である。買い物リストとは、ユーザに商品を推薦する商品推薦リストである。図５（ｃ）に示されるように、買い物リストでは、買い物リスト毎に付与される買い物リストＩＤ（「id」）と、買い物リストに係るユーザを一意に特定するユーザＩＤ（「user_id」）と、買い物リストを送信した日時（「datetime」）と、買い物リストに含まれる商品群とが関連付けられている。
【００４７】
質問生成部１３は、上述したリストＡの中から、質問対象の商品を選択する。質問生成部１３は、まず、質問対象となる商品数の上限値（閾値）を情報格納部１２から取得する。そして、質問生成部１３は、リストＡの各商品について、全ユーザの過去のコンテキスト情報の総数を集計して昇順にソートし、ソートした商品のうち、閾値分だけ、上位から商品を選択する。例えば閾値が３であれば、ソートした商品のうち上位３つの商品が選択される。
【００４８】
図５（ｂ）は、コンテキスト情報の総数（回答数）を昇順にソートした状態の一例を示す表である。図５（ｂ）に示す例において、例えば閾値が３であれば、「シャンプー」「みりん」「ヨーグルト」が、質問対象の商品として選択される。
【００４９】
更に、質問生成部１３は、質問対象商品について、質問に対する回答候補を決定する。質問生成部１３は、回答候補数の閾値を情報格納部１２から取得する。質問生成部１３は、購買履歴に基づき、質問対象の商品が購買された時間及び曜日を取得する。そして、質問生成部１３は、各質問対象の商品について、取得した時間及び曜日で過去の回答（すなわちコンテキスト）をソートし、上位３つの回答を回答候補とする。図５（ｄ）は、商品毎の各回答（コンテキスト）の内容の数を示す表である。例えば図５（ｄ）に示す例において、「ヨーグルト」が質問対象の商品であり、閾値が３であるとすると、「疲れていたから」「友人といたから」「移動手段が徒歩だったから」が回答候補とされる。このように、コンテキストの候補である回答候補を決めることにより、大量の回答群の中から回答可能性の高い回答のみをユーザに提示できるため、ユーザにとっては回答選択時の視認性が向上する。
【００５０】
最後に、質問生成部１３は、各商品の質問と回答候補とを情報格納部１２に格納する。例えば、「ヨーグルト」が質問対象の商品である場合には、「なぜヨーグルトを購入したのですか？」という質問データと、「疲れていたから」「リフレッシュしたいから」「美味しそうだったから」という回答候補とが情報格納部１２に格納される。質問生成部１３において、質問とその回答候補が生成されることにより、質問を受けたユーザが回答し易くなり、ユーザビリティを向上させることができる。
【００５１】
図４は、質問生成部１３の処理を示すフローチャートである。上述したように、質問生成部１３により、まず、直近の購買履歴、直近の買い物リスト、及び過去のコンテキスト情報（購買理由）が情報格納部１２から取得される（ステップＳ３１）。つづいて、質問生成部１３により、直近の買い物リストにはない商品リストであるリストＡが抽出される（ステップＳ３２）。つづいて、リストＡの中からユーザに質問する対象の商品が選択される（ステップＳ３３）。そして、質問生成部１３では、対象に商品について回答候補が選択され（ステップＳ３４）、情報格納部１２に商品毎に回答候補が格納される（ステップＳ３５）。
【００５２】
Ｓ３３の処理は、より詳細には、質問対象商品数の閾値が情報格納部１２から取得され（ステップＳ３３１）、商品毎に過去に取得された回答数が昇順ソートされ（ステップＳ３３２）、閾値の範囲内で昇順ソートされた上位の商品が抽出される（ステップＳ３３３）ことにより行われる。
【００５３】
Ｓ３４の処理は、より詳細には、回答候補数の閾値が情報格納部１２から取得され（ステップＳ３４１）、購買時の時間及び曜日が取得され（ステップＳ３４２）、質問対象商品について上記時間及び曜日の過去の回答が降順ソートされ（ステップＳ３４３）、閾値の範囲内で降順ソートされた上位の回答が回答候補とされる（ステップＳ３４４）ことにより行われる。
【００５４】
モデル生成部１４は、情報格納部１２に格納されている購買履歴及びコンテキスト情報に基づき、少なくともユーザの属性を入力として各商品の購買確率を算出する算出モデルを生成する機能である。モデル生成部１４は、コンテキスト情報として、質問生成部１３により生成された質問に基づき通信端末３０から取得され情報格納部１２に格納されているコンテキスト情報をも考慮する。
【００５５】
モデル生成部１４は、情報格納部１２から、過去全ての全ユーザの購買履歴及びコンテキスト情報を取得する。モデル生成部１４は、取得した情報からベイジアンネットワークの算出モデルを生成し、生成した算出モデルを情報格納部１２に格納する。ベイジアンネットワークの算出モデルでは、ある条件を入力すると、確立が返ってくる。例えば、「移動手段が徒歩で同伴者が友人の場合におけるビールを買う確率」が「０．０３４」のようにか確立が返却される。本算出モデルにおいては、少なくともユーザの属性を示す情報が入力とされる。
【００５６】
図７は、ベイジアンネットワークの算出モデルにおける入力データの一例を示す表である。図７に示す算出モデルでは、年代（「age」）と、性別（「sex」）と、職業（「job」）と、購買場所（「place」）と、曜日（「day」）と、交通手段（「trans」）と、購買商品（「item」）とが入力データの一例として示されている。以下、ベイジアンネットワークの算出モデルにおける入力データ群を、情報セットと記載する場合がある。
【００５７】
図６は、モデル生成部１４の処理を示すフローチャートである。上述したように、モデル生成部１４により、まず情報格納部１２から過去全ての全ユーザの購買履歴及びコンテキスト情報が取得される（ステップＳ４１）。そして、取得した情報からベイジアンネットワーク（ＢＮ）の算出モデルが再生成される（ステップＳ４２）。
【００５８】
なお、モデル生成部１４は、購買履歴として、購買日時が現在の日時から所定の範囲内である購買履歴のみに基づいて、算出モデルを生成してもよい。これにより、次（未来）の購買行動により影響すると考えられる購買履歴情報のみからモデルを生成することができる。このことで、モデルの商品推薦精度の向上に寄与することができる。
【００５９】
モデル適用部１５は、少なくともユーザの属性を入力として算出モデルを適用することにより、各商品の購買確率を算出し、ユーザに推薦する商品を決定する機能である。
【００６０】
モデル適用部１５は、商品を推薦するユーザの過去全ての購買履歴を情報格納部１２から取得し、推薦する対象曜日において該ユーザが最も購買している時間帯を特定する。モデル適用部１５は、最新の算出モデルを情報格納部１２から取得する。
【００６１】
モデル適用部１５は、取得した算出モデルに対して、ユーザの性別、ユーザの年代、曜日、特定した時間を入力して、買い物リストを生成し、該買い物リストを情報格納部１２に格納する。例えば、算出モデルに対して、「男性」「４０代」「火曜日」「１２時」を入力し、その結果、「コーヒー」「菓子パン」「ヨーグルト」が出力され、これらの商品が買い物リストに追加される。
【００６２】
図９は、ベイジアンネットワークの算出モデルにおける出力結果の一例を示す表である。図９に示す出力結果では、出力結果ＩＤ（「id」）と、商品と、購買確率とが関連付けられている。図９に示す例では、例えば、購買確率の高い順から「コーヒー」「ヨーグルト」「菓子パン」が買い物リストに追加される。
【００６３】
図８は、モデル適用部１５の処理を示すフローチャートである。上述したように、モデル適用部１５により、まず最多購買時間帯が特定される（ステップＳ５１）。そして、モデル適用部１５により、例えばユーザの性別、ユーザの年代、特定した最多購買時間帯等が算出モデルに適用されて、買い物リストが生成される（ステップＳ５２）。
【００６４】
Ｓ５１の処理は、より詳細には、情報格納部１２から質問回数（買い物リストの送信回数）の閾値が取得され（ステップＳ５１１）、購買履歴において対象曜日の購買時刻の頻度が降順にソートされ（ステップＳ５１２）、降順ソートされた時間帯から閾値分だけ、買い物リストを送信する時間帯が特定される（ステップＳ５１３）。この際、特定した時間から例えば１時間減算した時間が情報格納部１２に格納される。
【００６５】
上述した商品推薦装置１０では、ユーザの属性、購買商品、及びコンテキストが考慮されたモデルが生成され、少なくともユーザの属性が入力とされて当該モデルが適用されることにより、各商品の購買確率が算出される。コンテキストを考慮することによって、ユーザの購買時の状況に応じて、ユーザに購買され易い商品を推薦することができる。
【００６６】
また、この商品推薦装置１０では、コンテキスト情報の総数が所定の閾値よりも少ない商品に関して、コンテキスト情報を取得するためのユーザへの質問が生成される。そして、該質問に応じて通信端末３０から取得されたコンテキスト情報が考慮されてモデルが生成されている。モデルを生成する際のコンテキスト情報が不足していると考えられる商品のコンテキスト情報が補充されるので、モデルの商品推薦精度の向上に寄与する可能性が高いコンテキスト情報を適切に補充することができる。このことで、ユーザに対する商品の推薦精度をより一層向上させることができる。
【００６７】
[第２実施形態]
次に、図１０及び図１１も参照しながら、本発明の第２実施形態について説明する。第２実施形態では、上述した第１実施形態と異なる点を主に説明し、重複する説明を省略する。
【００６８】
第２実施形態では、質問生成部１３が、コンテキスト情報の総数が所定の閾値よりも少ない商品のうち、過去の推薦時における正答率が低い商品をモデル精度の低い商品と判断し、該モデル精度の低い商品に関して、質問を生成する。
【００６９】
質問生成部１３は、情報格納部１２に格納された、送信済みの買い物リスト、及び、購買履歴を取得し、当該買い物リスト及び購買履歴から、各商品の正答率を算出し、正答率が低い商品について質問を生成する。正答率とは、買い物リストが送信されて以降、最初の買い物において購買される確率である。図１１は、各商品の正答率の算出結果を示す表である。図１１に示す例では、例えば「おむつ」の正答率が「０．００３」であることを示している。図１１に示した商品が全て、コンテキスト情報の総数が閾値よりも少ない商品であり、質問を生成する商品の閾値が３つであるとすると、「おむつ」「シャンプー」「みりん」に関して質問が生成される。
【００７０】
図１０は、質問生成部１３の処理を示すフローチャートである。上述したように、質問生成部１３により、情報格納部１２から質問対象商品数の閾値が取得され（ステップＳ６１）、買い物リスト及び購買履歴に基づき各商品の正答率（すなわちモデル精度）が算出されて昇順でソートされ（ステップＳ６２）、上述した閾値の範囲で昇順ソートされた上位の商品が抽出される（ステップＳ６３）。
【００７１】
このような商品推薦装置１０によれば、推薦時の正答率が低い商品（モデル精度の低い商品）について優先的に質問が生成されコンテキスト情報が補充されるので、より効率的に商品の推薦精度を向上させることができる。
【００７２】
[第３実施形態]
次に、図１２及び図１３も参照しながら、本発明の第３実施形態について説明する。第３実施形態では、上述した各実施形態と異なる点を主に説明し、重複する説明を省略する。
【００７３】
第３実施形態では、モデル生成部１４が、購買履歴情報を含む情報セットを複数種類用意し、該複数種類の情報セットを合成することにより算出モデルを生成し、該算出モデルを生成する際には、異なる種類の情報セットの合成割合を任意に変化させる。情報セットとは、上述したとおり、ベイジアンネットワークの算出モデルを生成する際の入力データ群である。
【００７４】
モデル生成部１４は、複数種類の情報セットとして、例えば、全ユーザの購買履歴を含む情報セットと、１ユーザのみの購買履歴を含む情報セットとを用意する。図１３（ａ）は例えば全ユーザ数を４人（ユーザＩＤが「１」〜「４」の４ユーザ）とした場合の、全ユーザの購買履歴情報を含む情報セットを示している。当該全ユーザの購買履歴情報を含む情報セットには、ユーザＩＤが「１」〜「４」のユーザのみの購買履歴情報を含む情報セットも含まれている。
【００７５】
モデル生成部１４は、例えば、あるユーザの情報セットのみを複製して、該複製した情報セットを全ユーザの情報セットと合成する。図１３（ｂ）では、ユーザＩＤが「４」のユーザの情報セットが複製されて、全ユーザの情報セットと合成されている。これにより、複製された情報セットに偏りを持たせた算出モデルを生成することができる。
【００７６】
モデル生成部１４は、全ユーザの購買履歴に占める１ユーザの購買履歴の占有率（割合ｐ）を特定し、該割合ｐに応じて、全ユーザの購買履歴を含む情報セットと１ユーザのみの購買履歴を含む情報セットとの合成割合を決定する。モデル生成部１４は、例えば割合ｐが予め定められた閾値Ｔｈ１を超えていない状況においては、上記１ユーザの情報セットの複製を行わない。モデル生成部１４は、割合ｐが閾値Ｔｈ１を超えると、割合ｐが予め定められた閾値Ｔｈ２を超えるまで、上記１ユーザの情報セットの複製を行う。Ｔｈ２を超えるまでの期間において徐々に上記１ユーザの情報セットが増えていくため、全ユーザの情報セットと合成して生成される算出モデルにおいては、徐々に上記１ユーザの情報セットの影響が大きくなり、算出モデルが徐々にパーソナライズされる。そして、割合ｐが予め定められたＴｈ２を超えると、モデル生成部１４は、上記１ユーザの情報セットのみから当該ユーザの算出モデルを生成する。
【００７７】
算出モデル生成の初期段階においては、ベイジアンネットワークの算出モデルを生成するための学習用データが少ないため、全ユーザの情報セットを利用して算出モデルを生成する必要がある。時間が経過すると、購買履歴が十分蓄積され、個人の情報セットのみからでも算出モデルの生成が可能となる。蓄積された個人のデータ量に閾値を設けてある閾値を超えた場合に、全ユーザの情報セットを考慮した算出モデルから個人の情報セットのみを考慮した算出モデルに切り替えることも可能であるものの、ある日を境に算出モデルが急に切り替わった場合には、切り替え前後の算出モデル間に乖離があった場合に、ユーザに違和感を感じさせる可能性がある。この点、上述したような情報セットを複製する方法においては、個人の情報セットの影響力が徐々に大きくなっていくため、ユーザに違和感を感じさせることなく、算出モデルのパーソナライズを実現することができる。
【００７８】
図１２は、モデル生成部１４の処理を示すフローチャートである。まず、モデル生成部１４により、情報格納部１２から閾値Ｔｈ１，Ｔｈ２が取得される（ステップＳ７１）。そして、モデル生成部１４により情報格納部１２から全ユーザの購買履歴が取得され、全体トランザクション数が算出される（ステップＳ７２）。そして、１ユーザの購買履歴から該ユーザのトランザクション数が算出されて（ステップＳ７３）、全体トランザクション数に占める該ユーザのトランザクション数の割合ｐが算出される（ステップＳ７４）。モデル生成部１４は、割合ｐが閾値Ｔｈ１を超えていない場合には、該ユーザの情報セットの複製を行わず全ユーザの情報セットのみから算出モデルを生成する（ステップＳ７５，Ｓ７８）。割合ｐが閾値Ｔｈ１を超えている場合であって閾値Ｔｈ２を超えていない場合には、モデル生成部１４は、該ユーザの情報セットを複製し、該複製した情報セットと全ユーザの情報セットとを合成して、算出モデルを生成する（ステップＳ７５，Ｓ７６，Ｓ７７，Ｓ７８）。割合ｐが閾値Ｔｈ１を超えている場合であって閾値Ｔｈ２を超えている場合には、モデル生成部１４は、該ユーザの情報セットのみから算出モデルを生成する（ステップＳ７５，Ｓ７６，Ｓ７８）。
【００７９】
上述したように、複数種類の情報セットの合成割合を調整しながら算出モデルを生成することにより、合成割合に応じて、ユーザ個別の算出モデルの生成等が可能になり、様々な特徴の算出モデルを容易に生成することができる。
【００８０】
また、算出モデル生成においては、個人の購買履歴が少ない初期段階では全ユーザの購買履歴を主に考慮して算出モデルが生成されることが好ましく、個人の購買履歴がある程度蓄積された段階では１ユーザの購買履歴を主に考慮してパーソナライズされた算出モデルが生成されることが好ましい。この点、全ユーザの購買履歴に占める１ユーザの購買履歴の占有率を考慮して合成割合を変化させることにより、個人の購買履歴の増加に応じて、算出モデルを徐々にパーソナライズすることができる。
【００８１】
[第４実施形態]
次に、図１４及び図１５も参照しながら、本発明の第４実施形態について説明する。第４実施形態では、上述した各実施形態と異なる点を主に説明し、重複する説明を省略する。
【００８２】
第４実施形態では、モデル生成部１４が、情報セットに含まれる購買履歴における購買日時に応じて、互いに異なる種類の情報セットの合成割合を決定する。モデル生成部１４は、例えば、購買履歴における購買日時の範囲毎に、情報セットを用意する。すなわち、例えば図１５（ａ）に示されるように、「購買日時が１月３週である購買履歴を含む情報セット」、「購買日時が１月４週である購買履歴を含む情報セット」のように、購買日時の範囲毎に情報セットが複数用意される。そして、モデル生成部１４は、例えば、現在日時に近い購買行動の影響をより強く算出モデルに反映させるべく、現在日時に近い情報セットほど、多く複製する。
【００８３】
モデル生成部１４は、現在日時と、各情報セットに含まれる購買履歴の購買日時との差分を取得し、該差分に応じて情報セットの複製数を決定する。具体的には、モデル生成部１４は、下記（１）式又は（２）式によって、情報セットの複製数を決定する時系列重みを取得する。下記（１）式は線形で重みを付けるパターンであり、下記（２）式は非線形で重みを付けるパターンである。下記（１）式及び（２）式において、Ｎは時系列重み、Δｔは現在日時から購買日時までの差分、αは０より大きい実数を示している。
ＮΔｔ＝１／Δｔ×α・・・（１）
ＮΔｔ＝（１／Δｔ）＾α・・・（２）
【００８４】
モデル生成部１４は、時系列重みに従い、情報セットを複製する。例えば、時系列重みＮΔｔ＝２０＝１０の時、現在から２０日前の情報セットを１０個複製し、時系列重みＮΔｔ＝１＝１００の時、現在から１日前の情報セットを１００個複製する。これにより、直近の購買履歴の影響を大きくした算出モデルを生成することができる。図１５は、情報セットの複製イメージを示す図である。図１５（ａ）に示されるように、購買日時が１月３週〜２月４週までの購買履歴を含む情報セットがそれぞれ用意されているとする。現在日時が３月１週であるとすると、図１５（ｂ）に示されるように、現在日時に近い情報セットほど、多く複製される。
【００８５】
図１４は、モデル生成部１４の処理を示すフローチャートである。まず、モデル生成部１４により、情報格納部１２から時系列重みが取得される（ステップＳ８１）。そして、当該時系列重みに従い情報セットが複製され（ステップＳ８２）、算出モデルが生成される（ステップＳ８３）。
【００８６】
上述したように、購買履歴における購買日時に応じて、互いに異なる種類の情報セットの合成割合が決定されることで、例えば、現在の日時との乖離度合を考慮して複数種類の情報セットの合成割合を決定することができる。これにより、例えば、現在の日時に近い購買履歴を含む情報セットの影響力を大きくした算出モデルを生成することができる。一般的に、現在の日時に近い購買行動ほど、次（未来）の購買行動に類似すると考えられる。このため、上記構成を採用することにより、算出モデルの商品推薦精度の向上に寄与することができる。
【００８７】
[第５実施形態]
次に、図１６及び図１７も参照しながら、本発明の第５実施形態について説明する。第５実施形態では、上述した各実施形態と異なる点を主に説明し、重複する説明を省略する。
【００８８】
第５実施形態では、モデル生成部１４が、互いに類似する複数の商品からなる商品群毎に、購買履歴及びコンテキスト情報に基づき、該商品群の購買確率を算出する商品群モデルを生成する。そして、モデル適用部１５が、算出モデルを適用して算出した商品の購買確率と、商品群モデルを適用して算出した該商品を含む商品群の購買確率とに基づき、該商品の最終的な購買確率である最終購買確率を算出し、該最終購買確率に基づいて、ユーザに推薦する商品を決定する。
【００８９】
上述した商品群とは、具体的な商品を中分類とした場合の大分類と言い換えることができる。例えば、中分類がコーヒーや紅茶等の商品である場合には、大分類（商品群）は飲料である。すなわち、モデル生成部１４は、中分類である商品毎の算出モデルに加えて、大分類である商品群毎の商品群モデルをも生成する。
【００９０】
更に、モデル生成部１４は、具体的な商品を中分類とした場合の、小分類である商品詳細毎の詳細モデルを生成してもよい。例えば、中分類がコーヒーである場合には、小分類（商品詳細）は無糖等である。このように、モデル生成部１４は、各分類（階層）毎にベイジアンネットワークのモデルを生成する。
【００９１】
モデル適用部１５は、各モデルから算出された購買確率を掛け合わせることにより、当該商品の最終購買確率（結合確率）を算出する。例えば、大分類である商品群モデルと中分類である算出モデルとから最終購買確率を算出する例を説明する。図１７（ａ）に示されるように、中分類である紅茶の購買確率が０．２、コーヒーの購買確率が０．８、スナック菓子の購買確率が０．６であったとする。飲料等は、例えば一度購買されるとその直後において連続して購買される可能性は低くなる。いま、紅茶が購買された直後において、算出モデルから算出される紅茶の購買確率は０．２で小さくなっているものの、コーヒーの購買確率は紅茶が購買されていることの影響を受けずに０．８となっており、購買される可能性が低いコーヒーが推薦商品とされるおそれがある。
【００９２】
これに対して、図１７（ｂ）に示されるように、大分類である飲料の購買確率を考慮すると、大分類である飲料の購買確率が０．２、菓子の購買確率が０．７のようになる。この場合、各商品に関して、大分類の購買確率と中分類の購買確率とが掛け合わされると、紅茶の最終購買確率は０．２×０．２＝０．０４、コーヒーの最終購買確率は０．２×０．８＝０．１６となり、いずれも低くなる。このように、大分類の購買確率を考慮することにより、類似する商品の購買状況を考慮して、購買される可能性が低い商品が推薦されることを抑制できる。
【００９３】
図１６は、モデル適用部１５の処理を示すフローチャートである。まず、モデル適用部１５により、大分類のモデルである商品群モデルを用いて購買確率が算出され（ステップＳ９１）、中分類のモデルである算出モデルを用いて購買確率が算出され（ステップＳ９２）、小分類のモデルである詳細モデルを用いて購買確率が算出され（ステップＳ９３）、各モデルを用いて算出された購買確率が掛け合わされて最終購買確率（結合確率）が算出され情報格納部１２に格納される（ステップＳ９４）。
【００９４】
[第６実施形態]
次に、図１８及び図１９も参照しながら、本発明の第６実施形態について説明する。第６実施形態では、上述した各実施形態と異なる点を主に説明し、重複する説明を省略する。
【００９５】
第６実施形態では、モデル適用部１５が、ユーザの状況を示すユーザコンテキストについての質問（問合せ）を行い、該質問に対するユーザからの回答を取得し、該回答に示されたユーザコンテキストを入力として算出モデルを適用することにより、ユーザに推薦する商品を決定する。モデル適用部１５は、購買履歴に基づき、購買頻度が高い時間帯である購買時間帯を導出する。当該購買頻度は、１ユーザの購買履歴のみにより導出されてもよいし、全ユーザの購買履歴から導出されてもよい。更に、モデル適用部１５は、購買時間帯におけるユーザコンテキストとして、過去に回答された数が多いユーザコンテキストほど、優先的に、質問に対する回答として取得するための情報である質問対象と特定し、該質問対象を得るための質問を行う。
【００９６】
具体的には、モデル適用部１５は、予め決められた対象日の質問回数の閾値を情報格納部１２から取得する。モデル適用部１５は、購買履歴に基づき、対象曜日おける購買時刻の頻度を降順にソートする。集計の時間幅は任意に変更可能であり、例えば１時間や３０分である。モデル適用部１５は、質問回数の閾値分だけ、降順ソートされた時間帯から購買時間帯を選択する。
【００９７】
モデル適用部１５は、ユーザに対する質問内容を決定する。なお、ここでの質問とは、質問生成部１３により生成される質問ではなく、図３のステップＳ２１で説明した質問をいう。モデル適用部１５は、上述した購買時間帯における各ユーザコンテキスト数（ユーザからの回答数）を集計し降順ソートし、回答数が多いユーザコンテキストから優先的に、質問に対する回答として取得するための情報として特定する。なお、ユーザコンテキストとは、質問生成部１３により生成された質問に対する回答（購買理由）を示すコンテキストとは異なり、モデル適用部１５による質問に対する回答である。
【００９８】
モデル適用部１５は、特定したユーザコンテキストを得るためのか質問を情報格納部１２に格納する。例えば、ユーザコンテキスト数を集計し降順ソートした結果が図１９に示すようになった場合において、「同伴者が友人」とのユーザコンテキスト（回答）を得るための質問として、同伴者が誰かを尋ねる質問である、「今、誰と一緒にいますか？」という質問が情報格納部１２に格納される。
【００９９】
図１８は、モデル適用部１５の処理を示すフローチャートである。まず、モデル適用部１５によりユーザへの質問タイミングが決定される（ステップＳ１０１）。つづいて、モデル適用部１５により、ユーザへの質問内容が決定される（ステップＳ１０２）。
【０１００】
Ｓ１０１の処理は、より詳細には、対象日の質問回数の閾値が情報格納部１２から取得され（ステップＳ１０１１）、対象曜日の購買時刻（例えば１時間単位）の頻度が降順にソートされ（ステップＳ１０１２）、閾値の範囲で降順ソートされた時間帯から購買時間帯が選択され、当該購買時間帯から１時間を減算した時間帯が情報格納部１２に格納される（ステップＳ１０１３）ことにより行われる。
【０１０１】
Ｓ１０２の処理は、より詳細には、対象曜日の購買時間帯毎に各ユーザコンテキストの回答数が集計された降順ソートされ（ステップＳ１０２１）、回答数が多いユーザコンテキストに関する質問が情報格納部１２に格納される（ステップＳ１０２２）ことにより行われる。
【０１０２】
上述したように、本実施形態では、モデル適用部１５が、ユーザの状況についての質問を行い、該質問に対するユーザからの回答を取得し、該回答に示されたユーザコンテキストを入力として算出モデルを適用することにより、ユーザに推薦する商品を決定している。モデル適用部１５によって、ユーザの属性に加えて、ユーザからの回答に示されたユーザコンテキストが入力とされて算出モデルが適用されることにより、ユーザに対する商品の推薦精度をより一層向上させることができる。
【０１０３】
また、本実施形態では、モデル適用部１５が、購買履歴に基づき、購買頻度が高い時間帯である購買時間帯を導出し、購買時間帯におけるユーザコンテキストとして、過去の回答数が多いユーザコンテキストほど、優先的に、質問対象と特定し、質問対象を得るための質問を行う。算出モデルに入力されるユーザコンテキストは、購買される時間帯におけるユーザコンテキストであることが好ましい。この点、過去の購買頻度から購買時間帯が導出されると共に、当該時間帯におけるユーザコンテキストとして過去に回答され易いものに関する質問を行うことにより、購買時間帯におけるユーザコンテキストを効率的に取得することができる。すなわち、ユーザへの質問を極力減らしながら、商品の推薦精度の向上を図ることができる。
【０１０４】
[第７実施形態]
次に、図２０も参照しながら、本発明の第７実施形態について説明する。第７実施形態では、上述した各実施形態と異なる点を主に説明し、重複する説明を省略する。
【０１０５】
第７実施形態では、モデル適用部１５が、購買時間帯におけるユーザの状況（ユーザコンテキスト）として過去に回答されたユーザコンテキストのうち、購買される商品の種類が多いユーザコンテキストほど、優先的に、質問対象と特定する。これにより、ユーザへの質問を極力減らしながら、多種の購買商品に係るユーザコンテキストを効率的に取得することができる。
【０１０６】
モデル適用部１５は、例えば対象曜日の購買時間帯において、各ユーザコンテキストの購買確率を算出する。モデル適用部１５は、ユーザからの回答と、購買履歴とに基づき、購買確率を算出する。当該購買確率が算出されることにより、購買時間帯におけるユーザコンテキストのうち、購買される商品の種類が多いと想定されるユーザコンテキストの選択が可能となる。
【０１０７】
モデル適用部１５は、あるユーザコンテキストにおいて各商品が購買されない確率を算出してもよい。例えば、「移動手段が徒歩」とのユーザコンテキストにおいて、ビールが購買される確率が０．１であり、ヨーグルトが購買される確率が０．２であったとする。この場合、「移動手段が徒歩」である場合に少なくとも一つの商品（ビール又はヨーグルト）が購買される確率は、１−（１−０．１）×（１−０．２）で表される。モデル適用部１５は、当該計算を全てのユーザコンテキストについて行うことにより、各ユーザコンテキストについて各商品が購買されない確率を算出してもよい。
【０１０８】
図２０は、モデル適用部１５の処理を示すフローチャートである。モデル適用部１５により、対象曜日の購買時間帯の各ユーザコンテキストの購買確率が算出され（ステップＳ１１１）、該購買確率から選択されるユーザコンテキストの質問が選択され、該質問が情報格納部１２に格納される（ステップＳ１１２）。Ｓ１１１の処理は、より詳細には、各ユーザコンテキストにおいて各商品が購買されない確率が算出されてもよい（ステップＳ１１１１）。
【０１０９】
[第８実施形態]
次に、図２１及び図２２も参照しながら、本発明の第８実施形態について説明する。第８実施形態では、上述した各実施形態と異なる点を主に説明し、重複する説明を省略する。
【０１１０】
第８実施形態では、モデル適用部１５が、対象日時を入力として算出モデルを適用することにより、該対象日時におけるユーザコンテキストの推定確率を導出し、推定確率が高いユーザコンテキストほど、優先的に、算出モデルへの入力として特定し、該特定したユーザコンテキストを入力として算出モデルを適用することにより、対象日時におけるユーザに推薦する商品を決定する。これにより、ユーザコンテキストを取得できていない場合であっても、推定されたユーザコンテキストを確定条件として算出モデルへ適用することができ、ユーザへの質問を極力減らしながら、商品の推薦精度の向上を図ることができる。
【０１１１】
算出モデルから商品を推薦する際に、推薦のための情報（入力情報）が不足する場合がある。この場合、第６実施形態等で説明したように、ユーザコンテキストを入力情報として算出モデルに適用することが考えられるが、当該ユーザコンテキストを十分な量収集するためには、ユーザへの質問を多く行う必要があり、煩雑となる。これに対して、過去にユーザに回答されたコンテキストに基づき、ユーザコンテキストを推定し、該推定したユーザコンテキストを算出モデルへの入力データとして追加する方法が考えられる。
【０１１２】
具体的には、モデル適用部１５は、対象日時の情報を算出モデルに適用することにより、該対象日時において過去に回答を得たコンテキストを考慮して、ユーザコンテキストの推定確率を導出する。モデル適用部１５は、導出した推定確率を降順に並べ（図２２参照）、ある閾値に従って推定確率の上位のユーザコンテキストを、算出モデルの入力として特定する。モデル適用部１５は、特定したユーザコンテキストを算出モデルに入力して、買い物リストを生成する。
【０１１３】
図２１は、モデル適用部１５の処理を示すフローチャートである。モデル適用部１５により、算出モデルに適用する対象日時（曜日及び時刻）の情報が取得され（ステップＳ１２１）、算出モデルから得た対象日時におけるユーザコンテキストの推定確率が降順でソートされ（ステップＳ１２２）、ある閾値に従って上位のユーザコンテキストが確定コンテキストとされて、再度モデルに適用される（ステップＳ１３３）。
【０１１４】
[第９実施形態]
次に、図２３及び図２４も参照しながら、本発明の第９実施形態について説明する。第９実施形態では、上述した各実施形態と異なる点を主に説明し、重複する説明を省略する。
【０１１５】
第９実施形態では、購買履歴においては商品の購買日時及び購買場所が、購買商品及びユーザの属性に関連付けられている。そして、質問生成部１３は、質問を生成する商品に関する、購買履歴における購買日時及び購買場所の少なくともいずれか一方に基づいて、質問に対する回答候補を生成する。いつどこで購買された商品かを考慮して回答候補を生成することによって、よりユーザの購買時の状況（すなわちコンテキスト）に合った回答候補を生成することができる。以上により、モデルの商品推薦精度の向上に寄与する可能性が高いコンテキスト情報を適切に補充することができる。なお、質問生成部１３は、発汗や体温等を検知する生体センサの情報に基づき、回答候補を生成してもよい。回答候補を生成するとは、ユーザが選択し得る回答の候補を絞り込むと共に、必要に応じて回答の候補を並び替えることをいう。
【０１１６】
また、質問生成部１３は、質問を生成する商品に関する、ユーザからの過去の回答履歴を考慮して、質問に対する回答候補を生成する。これにより、質問を生成する商品に関して、ユーザに回答されやすい内容を回答候補とすることができ、よりユーザの購買時の状況（すなわちコンテキスト）に合った回答候補を生成することができる。以上により、モデルの商品推薦精度の向上に寄与する可能性が高いコンテキスト情報を適切に補充することができる。
【０１１７】
具体的には、質問生成部１３は、ある商品の購買履歴から、購買日時及び購買場所を取得し、生体センサからセンサ情報を取得し、コンテキスト情報から各コンテキストの回答数を取得する。質問生成部１３は、上述した各情報の関係をモデル化する。ここでは、モデル化の一例としてロジスティック回帰を用いる例を説明する。ロジスティック回帰は下記の（３）式で示される。Xは入力、prは確率、α，βをそれぞれパラメータとしたとき、下記の（３）式から、与えられた学習データに基づきα，βを求める。
Logit(pri)=In(pri/1-pri)=α+β1X1,I+β2X2,I+β3X3,I+…・・・（３）
【０１１８】
例えば、コンテキストが「車で来たから」の場合の時刻をX1、曜日をX2、発汗量をX3として、α，βを求め、モデル化する。前回モデルに基づき、質問を生成する対象日時の入力情報をモデルに適用し、回答確率を求める。例えば、図２４に示されるように回答選択肢毎に回答確率が求まる。最後に、予め決められた回答候補の閾値に基づき、回答選択肢を絞り込み、回答候補を決定する。図２４に示す例において回答候補の閾値が３である場合には、回答選択肢のうち「車で来たから」「友人といるから」「疲れているから」の３つが回答候補として選択され、並び順もこの順序でユーザに表示される。なお、上記例ではロジスティック回帰を用いたが、対象日時の回答数が多いものを降順に並べ、予め決められた回答数の閾値で回答候補を絞り込んでもよい。
【０１１９】
図２３は、質問生成部１３の処理を示すフローチャートである。質問生成部１３により、購買履歴における購買日時及び場所と、生体センサのセンサ情報と、コンテキストの回答数とが取得される（ステップＳ１３１）。そして、これらの情報の関係がモデル化され（ステップＳ１３２）、対象ユーザの購買時の日時、場所、センサ情報がモデルに入力されて導出されたコンテキストの回答確率が降順にソートされ（ステップＳ１３３）、予め決められた閾値に基づき、回答選択肢から回答候補が抽出される（ステップＳ１３４）。
【符号の説明】
【０１２０】
１…商品推薦システム、１０…商品推薦装置、１１…送受信部、１２…情報格納部、１３…質問生成部、１４…モデル生成部、１５…モデル適用部、３０…通信端末。
【図１】
0006694319.tif 000002
【図２】
0006694319.tif 000003
【図３】
0006694319.tif 000004
【図４】
0006694319.tif 000005
【図５】
0006694319.tif 000006
【図６】
0006694319.tif 000007
【図７】
0006694319.tif 000008
【図８】
0006694319.tif 000009
【図９】
0006694319.tif 000010
【図１０】
0006694319.tif 000011
【図１１】
0006694319.tif 000012
【図１２】
0006694319.tif 000013
【図１３】
0006694319.tif 000014
【図１４】
0006694319.tif 000015
【図１５】
0006694319.tif 000016
【図１６】
0006694319.tif 000017
【図１７】
0006694319.tif 000018
【図１８】
0006694319.tif 000019
【図１９】
0006694319.tif 000020
【図２０】
0006694319.tif 000021
【図２１】
0006694319.tif 000022
【図２２】
0006694319.tif 000023
【図２３】
0006694319.tif 000024
【図２４】
0006694319.tif 000025