以下、添付図面を参照しながら本発明の実施形態を詳細に説明する。図面の説明において、同一又は同等の要素には同一符号を用い、重複する説明を省略する。
[第1実施形態]
図1は、本発明の第1実施形態に係る商品推薦システムの機能構成を示す図である。
図1に示されるように、商品推薦システム1は、商品推薦装置10(情報処理装置)と、通信端末30とを備えている。なお、図1中においては通信端末30を1つのみ記載しているが、実際には、通信端末30は複数存在している。
通信端末30は、ユーザによって操作される端末であり、例えばユーザに携帯されて用いられるスマートフォン等の携帯電話機である。通信端末30は、商品推薦装置10と通信可能に構成されており、商品推薦装置10から商品の推薦リストである買い物リストを受信すると共に、商品を購買した際にはユーザ操作に応じて購買履歴を商品推薦装置10に送信する。また、通信端末30は、商品推薦装置10から購買理由に関する質問を受信し、ユーザ操作に応じて購買理由に関する回答を商品推薦装置10に送信する。
商品推薦装置10は、通信端末30を介して、該通信端末30のユーザに商品を推薦する装置である。商品推薦装置10は、通信端末30と通信を行う送受信部11と、通信端末30から取得した情報が格納される情報格納部12(記憶部)と、通信端末30のユーザに対する質問を生成する質問生成部13と、各商品の購入確率を算出する算出モデルを生成するモデル生成部14と、算出モデルを適用することにより各商品の購入確率を算出し、ユーザに推薦する商品を決定するモデル適用部15と、を備えている。
図2は、図1の商品推薦システム1に含まれる商品推薦装置10のハードウェア構成を示す図である。商品推薦装置10は、物理的には、図2に示すように、1又は複数のCPU101、主記憶装置であるRAM102及びROM103、入力デバイスであるキーボード及びマウス等の入力装置104、ディスプレイ等の出力装置105、ネットワークカード等のデータ送受信デバイスである通信モジュール106、半導体メモリ等の補助記憶装置107等を含むコンピュータとして構成されている。
上述した商品推薦装置10の各機能は、図2に示すCPU101、RAM102等のハードウェア上に1又は複数の所定のコンピュータソフトウェアを読み込ませることにより、CPU101の制御のもとで入力装置104、出力装置105、通信モジュール106を動作させるとともに、RAM102や補助記憶装置107におけるデータの読み出し及び書き込みを行うことで実現される。
次に、商品推薦システム1において実行される処理について、図3を参照しながら説明する。図3は、本発明の第1実施形態に係る商品推薦システム1において実行される処理の一例を示すシーケンス図である。なお、図3の説明においては、処理の全体概要のみを説明する。各機能の詳細な説明については後述する。
図3に示されるように、まず、ユーザ操作に応じて、通信端末30から購買履歴が入力され、該購買履歴が商品推薦装置10に送信される(ステップS1)。ユーザによって購買履歴が入力されるタイミングは、ユーザによる商品の購買タイミング以降であればいつでもよい。
つづいて、商品推薦装置10の送受信部11により、上記購買履歴が受信され、該購買履歴が情報格納部12に格納される(ステップS2)。そして、情報格納部12に購買履歴が格納されたことが、質問生成部13により検知される。質問生成部13は、当該検知を例えば1分周期で行う。該検知後において、質問生成部13は、情報格納部12から購買履歴(購買履歴情報)を取得すると共に(ステップS3)、購買理由(コンテキスト情報)を取得する(ステップS4)。更に、質問生成部13は、前回推薦した買い物リスト(ユーザに対する商品の推薦リスト)を情報格納部12から取得する。
そして、質問生成部13は、情報格納部12から取得した購買履歴、購買理由、及び買い物リストに基づいて、どの商品のコンテキストを収集するかを決定し、コンテキストを収集するための質問データを生成する(ステップS6)。質問生成部13は、当該質問データを情報格納部12に格納する(ステップS7)。
つづいて、送受信部11は、情報格納部12に格納された質問データを取得し(ステップS8)、該質問データを通信端末30に送信する(ステップS9)。通信端末30では、該質問データが表示され、ユーザが質問に対して購買理由の回答を行う。ユーザ操作に応じた回答データは、通信端末30から商品推薦装置10に送信される(ステップS10)。商品推薦装置10の送受信部11は、該回答データを受信して情報格納部12に格納する(ステップS11)。
そして、予めタイマで設定されたタイミングにおいて、モデル生成部14は、情報格納部12から購買履歴を取得すると共に(ステップS12)、購買理由(コンテキスト情報)を取得する(ステップS13)。モデル生成部14は、取得した購買履歴及びコンテキスト情報に基づいて、算出モデルを更新する(ステップS14)。モデル生成部14は、更新した算出モデルを情報格納部12に格納する(ステップS15)。算出モデルは、例えばベイジアンネットワークモデルであるがこれに限定されない。
そして、予めタイマで設定されたタイミングにおいて、モデル適用部15は、情報格納部12から購買履歴を取得して、商品推薦の対象曜日における各ユーザの最多購買時間帯を算出する(ステップS16)。また、モデル適用部15は、情報格納部12から算出モデルデータを取得する(ステップS17)。モデル適用部15は、算出モデルに対して、商品を推薦する対象ユーザの性別、年代、対象曜日、対象時間を入力し、その出力結果から買い物リストを生成する(ステップS18)。そして、モデル適用部15は、生成した買い物リストを情報格納部12に格納する(ステップS19)。
つづいて、送受信部11は、情報格納部12から買い物リストを取得すると共に(ステップS20)、コンテキスト収集用の質問を取得し(ステップS21)、これらの情報を通信端末30に送信する(ステップS22)。通信端末30では、買い物リストが表示される。コンテキスト収集用の質問は、例えば買い物リストに含まれる商品に関するコンテキストを収集するための質問であり、通信端末30において、例えば購買情報がユーザに入力された際に表示される情報である。
次に、図4〜図9も参照しながら、商品推薦装置10の各機能の詳細について説明する。
情報格納部12は、通信端末30から取得された、購買商品及び該商品を購買したユーザの属性が関連付けられた購買履歴と、購買商品及び該商品を購買したユーザの購買時の状況を示す情報であるコンテキストが関連付けられたコンテキスト情報とを記憶している。
図5(a)は、情報格納部12に格納されている購買履歴の一例を示す表である。図5(a)に示す購買履歴では、購買商品毎に付与される購買ID(「id」)と、購買したユーザを一意に特定するユーザID(「user_id」)と、購買日時(「datetime」)と、購買商品(「beer」「yougurt」「coffee」)とが関連付けられている。例えば、購買IDが「0」である購買商品については、ユーザIDが「0」、購買日時が「2016/02/02 16:00」、購買商品が「cofee」、であることが示されている。なお、図示しないユーザデータにおいて、各ユーザの属性がユーザIDと関連付けられて管理されている。このため、ユーザIDと購買商品が関連付けられているとは、ユーザの属性と購買商品とが関連付けられていることと同義である。
コンテキストは、上述したように、商品を購買したユーザの購買時の状況を示す情報であり、例えば、購買に係る移動手段を示す情報(「徒歩で来店」「車で来店」等)、購買に係る同伴者を示す情報(「友人と来店」「家族と来店」)、購買時の体調を示す情報(「疲れている」)などである。このようなコンテキストは、例えば「なぜ当該商品を購入したか」との質問に対するユーザからの回答(購買理由)として取得される。すなわち、ヨーグルトを購入したユーザに対して、「なぜヨーグルトを購入したのか」との質問があった場合に、「疲れていたから」との購買理由が回答される場合、当該「疲れていたから」との購買理由が、コンテキストとされる。
質問生成部13は、購買履歴に含まれる商品のうち、コンテキスト情報の総数が所定の閾値よりも少ない商品に関して、コンテキスト情報を取得するためのユーザへの質問を生成する機能である。
具体的には、質問生成部13は、情報格納部12に格納された、当該ユーザの直近の購買履歴と、当該ユーザに対する直近の買い物リストと、全ユーザの過去のコンテキスト情報(全ユーザが過去に回答したコンテキスト情報)とを取得する。質問生成部13は、取得した購買履歴に含まれる購買商品のうち、取得した買い物リストに存在しない商品を抽出し、該抽出した商品をリスト化する。以下、当該商品のリストをリストAと記載する場合がある。
図5(c)は、買い物リストの一例を示す表である。買い物リストとは、ユーザに商品を推薦する商品推薦リストである。図5(c)に示されるように、買い物リストでは、買い物リスト毎に付与される買い物リストID(「id」)と、買い物リストに係るユーザを一意に特定するユーザID(「user_id」)と、買い物リストを送信した日時(「datetime」)と、買い物リストに含まれる商品群とが関連付けられている。
質問生成部13は、上述したリストAの中から、質問対象の商品を選択する。質問生成部13は、まず、質問対象となる商品数の上限値(閾値)を情報格納部12から取得する。そして、質問生成部13は、リストAの各商品について、全ユーザの過去のコンテキスト情報の総数を集計して昇順にソートし、ソートした商品のうち、閾値分だけ、上位から商品を選択する。例えば閾値が3であれば、ソートした商品のうち上位3つの商品が選択される。
図5(b)は、コンテキスト情報の総数(回答数)を昇順にソートした状態の一例を示す表である。図5(b)に示す例において、例えば閾値が3であれば、「シャンプー」「みりん」「ヨーグルト」が、質問対象の商品として選択される。
更に、質問生成部13は、質問対象商品について、質問に対する回答候補を決定する。質問生成部13は、回答候補数の閾値を情報格納部12から取得する。質問生成部13は、購買履歴に基づき、質問対象の商品が購買された時間及び曜日を取得する。そして、質問生成部13は、各質問対象の商品について、取得した時間及び曜日で過去の回答(すなわちコンテキスト)をソートし、上位3つの回答を回答候補とする。図5(d)は、商品毎の各回答(コンテキスト)の内容の数を示す表である。例えば図5(d)に示す例において、「ヨーグルト」が質問対象の商品であり、閾値が3であるとすると、「疲れていたから」「友人といたから」「移動手段が徒歩だったから」が回答候補とされる。このように、コンテキストの候補である回答候補を決めることにより、大量の回答群の中から回答可能性の高い回答のみをユーザに提示できるため、ユーザにとっては回答選択時の視認性が向上する。
最後に、質問生成部13は、各商品の質問と回答候補とを情報格納部12に格納する。例えば、「ヨーグルト」が質問対象の商品である場合には、「なぜヨーグルトを購入したのですか?」という質問データと、「疲れていたから」「リフレッシュしたいから」「美味しそうだったから」という回答候補とが情報格納部12に格納される。質問生成部13において、質問とその回答候補が生成されることにより、質問を受けたユーザが回答し易くなり、ユーザビリティを向上させることができる。
図4は、質問生成部13の処理を示すフローチャートである。上述したように、質問生成部13により、まず、直近の購買履歴、直近の買い物リスト、及び過去のコンテキスト情報(購買理由)が情報格納部12から取得される(ステップS31)。つづいて、質問生成部13により、直近の買い物リストにはない商品リストであるリストAが抽出される(ステップS32)。つづいて、リストAの中からユーザに質問する対象の商品が選択される(ステップS33)。そして、質問生成部13では、対象に商品について回答候補が選択され(ステップS34)、情報格納部12に商品毎に回答候補が格納される(ステップS35)。
S33の処理は、より詳細には、質問対象商品数の閾値が情報格納部12から取得され(ステップS331)、商品毎に過去に取得された回答数が昇順ソートされ(ステップS332)、閾値の範囲内で昇順ソートされた上位の商品が抽出される(ステップS333)ことにより行われる。
S34の処理は、より詳細には、回答候補数の閾値が情報格納部12から取得され(ステップS341)、購買時の時間及び曜日が取得され(ステップS342)、質問対象商品について上記時間及び曜日の過去の回答が降順ソートされ(ステップS343)、閾値の範囲内で降順ソートされた上位の回答が回答候補とされる(ステップS344)ことにより行われる。
モデル生成部14は、情報格納部12に格納されている購買履歴及びコンテキスト情報に基づき、少なくともユーザの属性を入力として各商品の購買確率を算出する算出モデルを生成する機能である。モデル生成部14は、コンテキスト情報として、質問生成部13により生成された質問に基づき通信端末30から取得され情報格納部12に格納されているコンテキスト情報をも考慮する。
モデル生成部14は、情報格納部12から、過去全ての全ユーザの購買履歴及びコンテキスト情報を取得する。モデル生成部14は、取得した情報からベイジアンネットワークの算出モデルを生成し、生成した算出モデルを情報格納部12に格納する。ベイジアンネットワークの算出モデルでは、ある条件を入力すると、確立が返ってくる。例えば、「移動手段が徒歩で同伴者が友人の場合におけるビールを買う確率」が「0.034」のようにか確立が返却される。本算出モデルにおいては、少なくともユーザの属性を示す情報が入力とされる。
図7は、ベイジアンネットワークの算出モデルにおける入力データの一例を示す表である。図7に示す算出モデルでは、年代(「age」)と、性別(「sex」)と、職業(「job」)と、購買場所(「place」)と、曜日(「day」)と、交通手段(「trans」)と、購買商品(「item」)とが入力データの一例として示されている。以下、ベイジアンネットワークの算出モデルにおける入力データ群を、情報セットと記載する場合がある。
図6は、モデル生成部14の処理を示すフローチャートである。上述したように、モデル生成部14により、まず情報格納部12から過去全ての全ユーザの購買履歴及びコンテキスト情報が取得される(ステップS41)。そして、取得した情報からベイジアンネットワーク(BN)の算出モデルが再生成される(ステップS42)。
なお、モデル生成部14は、購買履歴として、購買日時が現在の日時から所定の範囲内である購買履歴のみに基づいて、算出モデルを生成してもよい。これにより、次(未来)の購買行動により影響すると考えられる購買履歴情報のみからモデルを生成することができる。このことで、モデルの商品推薦精度の向上に寄与することができる。
モデル適用部15は、少なくともユーザの属性を入力として算出モデルを適用することにより、各商品の購買確率を算出し、ユーザに推薦する商品を決定する機能である。
モデル適用部15は、商品を推薦するユーザの過去全ての購買履歴を情報格納部12から取得し、推薦する対象曜日において該ユーザが最も購買している時間帯を特定する。モデル適用部15は、最新の算出モデルを情報格納部12から取得する。
モデル適用部15は、取得した算出モデルに対して、ユーザの性別、ユーザの年代、曜日、特定した時間を入力して、買い物リストを生成し、該買い物リストを情報格納部12に格納する。例えば、算出モデルに対して、「男性」「40代」「火曜日」「12時」を入力し、その結果、「コーヒー」「菓子パン」「ヨーグルト」が出力され、これらの商品が買い物リストに追加される。
図9は、ベイジアンネットワークの算出モデルにおける出力結果の一例を示す表である。図9に示す出力結果では、出力結果ID(「id」)と、商品と、購買確率とが関連付けられている。図9に示す例では、例えば、購買確率の高い順から「コーヒー」「ヨーグルト」「菓子パン」が買い物リストに追加される。
図8は、モデル適用部15の処理を示すフローチャートである。上述したように、モデル適用部15により、まず最多購買時間帯が特定される(ステップS51)。そして、モデル適用部15により、例えばユーザの性別、ユーザの年代、特定した最多購買時間帯等が算出モデルに適用されて、買い物リストが生成される(ステップS52)。
S51の処理は、より詳細には、情報格納部12から質問回数(買い物リストの送信回数)の閾値が取得され(ステップS511)、購買履歴において対象曜日の購買時刻の頻度が降順にソートされ(ステップS512)、降順ソートされた時間帯から閾値分だけ、買い物リストを送信する時間帯が特定される(ステップS513)。この際、特定した時間から例えば1時間減算した時間が情報格納部12に格納される。
上述した商品推薦装置10では、ユーザの属性、購買商品、及びコンテキストが考慮されたモデルが生成され、少なくともユーザの属性が入力とされて当該モデルが適用されることにより、各商品の購買確率が算出される。コンテキストを考慮することによって、ユーザの購買時の状況に応じて、ユーザに購買され易い商品を推薦することができる。
また、この商品推薦装置10では、コンテキスト情報の総数が所定の閾値よりも少ない商品に関して、コンテキスト情報を取得するためのユーザへの質問が生成される。そして、該質問に応じて通信端末30から取得されたコンテキスト情報が考慮されてモデルが生成されている。モデルを生成する際のコンテキスト情報が不足していると考えられる商品のコンテキスト情報が補充されるので、モデルの商品推薦精度の向上に寄与する可能性が高いコンテキスト情報を適切に補充することができる。このことで、ユーザに対する商品の推薦精度をより一層向上させることができる。
[第2実施形態]
次に、図10及び図11も参照しながら、本発明の第2実施形態について説明する。第2実施形態では、上述した第1実施形態と異なる点を主に説明し、重複する説明を省略する。
第2実施形態では、質問生成部13が、コンテキスト情報の総数が所定の閾値よりも少ない商品のうち、過去の推薦時における正答率が低い商品をモデル精度の低い商品と判断し、該モデル精度の低い商品に関して、質問を生成する。
質問生成部13は、情報格納部12に格納された、送信済みの買い物リスト、及び、購買履歴を取得し、当該買い物リスト及び購買履歴から、各商品の正答率を算出し、正答率が低い商品について質問を生成する。正答率とは、買い物リストが送信されて以降、最初の買い物において購買される確率である。図11は、各商品の正答率の算出結果を示す表である。図11に示す例では、例えば「おむつ」の正答率が「0.003」であることを示している。図11に示した商品が全て、コンテキスト情報の総数が閾値よりも少ない商品であり、質問を生成する商品の閾値が3つであるとすると、「おむつ」「シャンプー」「みりん」に関して質問が生成される。
図10は、質問生成部13の処理を示すフローチャートである。上述したように、質問生成部13により、情報格納部12から質問対象商品数の閾値が取得され(ステップS61)、買い物リスト及び購買履歴に基づき各商品の正答率(すなわちモデル精度)が算出されて昇順でソートされ(ステップS62)、上述した閾値の範囲で昇順ソートされた上位の商品が抽出される(ステップS63)。
このような商品推薦装置10によれば、推薦時の正答率が低い商品(モデル精度の低い商品)について優先的に質問が生成されコンテキスト情報が補充されるので、より効率的に商品の推薦精度を向上させることができる。
[第3実施形態]
次に、図12及び図13も参照しながら、本発明の第3実施形態について説明する。第3実施形態では、上述した各実施形態と異なる点を主に説明し、重複する説明を省略する。
第3実施形態では、モデル生成部14が、購買履歴情報を含む情報セットを複数種類用意し、該複数種類の情報セットを合成することにより算出モデルを生成し、該算出モデルを生成する際には、異なる種類の情報セットの合成割合を任意に変化させる。情報セットとは、上述したとおり、ベイジアンネットワークの算出モデルを生成する際の入力データ群である。
モデル生成部14は、複数種類の情報セットとして、例えば、全ユーザの購買履歴を含む情報セットと、1ユーザのみの購買履歴を含む情報セットとを用意する。図13(a)は例えば全ユーザ数を4人(ユーザIDが「1」〜「4」の4ユーザ)とした場合の、全ユーザの購買履歴情報を含む情報セットを示している。当該全ユーザの購買履歴情報を含む情報セットには、ユーザIDが「1」〜「4」のユーザのみの購買履歴情報を含む情報セットも含まれている。
モデル生成部14は、例えば、あるユーザの情報セットのみを複製して、該複製した情報セットを全ユーザの情報セットと合成する。図13(b)では、ユーザIDが「4」のユーザの情報セットが複製されて、全ユーザの情報セットと合成されている。これにより、複製された情報セットに偏りを持たせた算出モデルを生成することができる。
モデル生成部14は、全ユーザの購買履歴に占める1ユーザの購買履歴の占有率(割合p)を特定し、該割合pに応じて、全ユーザの購買履歴を含む情報セットと1ユーザのみの購買履歴を含む情報セットとの合成割合を決定する。モデル生成部14は、例えば割合pが予め定められた閾値Th1を超えていない状況においては、上記1ユーザの情報セットの複製を行わない。モデル生成部14は、割合pが閾値Th1を超えると、割合pが予め定められた閾値Th2を超えるまで、上記1ユーザの情報セットの複製を行う。Th2を超えるまでの期間において徐々に上記1ユーザの情報セットが増えていくため、全ユーザの情報セットと合成して生成される算出モデルにおいては、徐々に上記1ユーザの情報セットの影響が大きくなり、算出モデルが徐々にパーソナライズされる。そして、割合pが予め定められたTh2を超えると、モデル生成部14は、上記1ユーザの情報セットのみから当該ユーザの算出モデルを生成する。
算出モデル生成の初期段階においては、ベイジアンネットワークの算出モデルを生成するための学習用データが少ないため、全ユーザの情報セットを利用して算出モデルを生成する必要がある。時間が経過すると、購買履歴が十分蓄積され、個人の情報セットのみからでも算出モデルの生成が可能となる。蓄積された個人のデータ量に閾値を設けてある閾値を超えた場合に、全ユーザの情報セットを考慮した算出モデルから個人の情報セットのみを考慮した算出モデルに切り替えることも可能であるものの、ある日を境に算出モデルが急に切り替わった場合には、切り替え前後の算出モデル間に乖離があった場合に、ユーザに違和感を感じさせる可能性がある。この点、上述したような情報セットを複製する方法においては、個人の情報セットの影響力が徐々に大きくなっていくため、ユーザに違和感を感じさせることなく、算出モデルのパーソナライズを実現することができる。
図12は、モデル生成部14の処理を示すフローチャートである。まず、モデル生成部14により、情報格納部12から閾値Th1,Th2が取得される(ステップS71)。そして、モデル生成部14により情報格納部12から全ユーザの購買履歴が取得され、全体トランザクション数が算出される(ステップS72)。そして、1ユーザの購買履歴から該ユーザのトランザクション数が算出されて(ステップS73)、全体トランザクション数に占める該ユーザのトランザクション数の割合pが算出される(ステップS74)。モデル生成部14は、割合pが閾値Th1を超えていない場合には、該ユーザの情報セットの複製を行わず全ユーザの情報セットのみから算出モデルを生成する(ステップS75,S78)。割合pが閾値Th1を超えている場合であって閾値Th2を超えていない場合には、モデル生成部14は、該ユーザの情報セットを複製し、該複製した情報セットと全ユーザの情報セットとを合成して、算出モデルを生成する(ステップS75,S76,S77,S78)。割合pが閾値Th1を超えている場合であって閾値Th2を超えている場合には、モデル生成部14は、該ユーザの情報セットのみから算出モデルを生成する(ステップS75,S76,S78)。
上述したように、複数種類の情報セットの合成割合を調整しながら算出モデルを生成することにより、合成割合に応じて、ユーザ個別の算出モデルの生成等が可能になり、様々な特徴の算出モデルを容易に生成することができる。
また、算出モデル生成においては、個人の購買履歴が少ない初期段階では全ユーザの購買履歴を主に考慮して算出モデルが生成されることが好ましく、個人の購買履歴がある程度蓄積された段階では1ユーザの購買履歴を主に考慮してパーソナライズされた算出モデルが生成されることが好ましい。この点、全ユーザの購買履歴に占める1ユーザの購買履歴の占有率を考慮して合成割合を変化させることにより、個人の購買履歴の増加に応じて、算出モデルを徐々にパーソナライズすることができる。
[第4実施形態]
次に、図14及び図15も参照しながら、本発明の第4実施形態について説明する。第4実施形態では、上述した各実施形態と異なる点を主に説明し、重複する説明を省略する。
第4実施形態では、モデル生成部14が、情報セットに含まれる購買履歴における購買日時に応じて、互いに異なる種類の情報セットの合成割合を決定する。モデル生成部14は、例えば、購買履歴における購買日時の範囲毎に、情報セットを用意する。すなわち、例えば図15(a)に示されるように、「購買日時が1月3週である購買履歴を含む情報セット」、「購買日時が1月4週である購買履歴を含む情報セット」のように、購買日時の範囲毎に情報セットが複数用意される。そして、モデル生成部14は、例えば、現在日時に近い購買行動の影響をより強く算出モデルに反映させるべく、現在日時に近い情報セットほど、多く複製する。
モデル生成部14は、現在日時と、各情報セットに含まれる購買履歴の購買日時との差分を取得し、該差分に応じて情報セットの複製数を決定する。具体的には、モデル生成部14は、下記(1)式又は(2)式によって、情報セットの複製数を決定する時系列重みを取得する。下記(1)式は線形で重みを付けるパターンであり、下記(2)式は非線形で重みを付けるパターンである。下記(1)式及び(2)式において、Nは時系列重み、Δtは現在日時から購買日時までの差分、αは0より大きい実数を示している。
NΔt=1/Δt×α・・・(1)
NΔt=(1/Δt)^α・・・(2)
モデル生成部14は、時系列重みに従い、情報セットを複製する。例えば、時系列重みNΔt=20=10の時、現在から20日前の情報セットを10個複製し、時系列重みNΔt=1=100の時、現在から1日前の情報セットを100個複製する。これにより、直近の購買履歴の影響を大きくした算出モデルを生成することができる。図15は、情報セットの複製イメージを示す図である。図15(a)に示されるように、購買日時が1月3週〜2月4週までの購買履歴を含む情報セットがそれぞれ用意されているとする。現在日時が3月1週であるとすると、図15(b)に示されるように、現在日時に近い情報セットほど、多く複製される。
図14は、モデル生成部14の処理を示すフローチャートである。まず、モデル生成部14により、情報格納部12から時系列重みが取得される(ステップS81)。そして、当該時系列重みに従い情報セットが複製され(ステップS82)、算出モデルが生成される(ステップS83)。
上述したように、購買履歴における購買日時に応じて、互いに異なる種類の情報セットの合成割合が決定されることで、例えば、現在の日時との乖離度合を考慮して複数種類の情報セットの合成割合を決定することができる。これにより、例えば、現在の日時に近い購買履歴を含む情報セットの影響力を大きくした算出モデルを生成することができる。一般的に、現在の日時に近い購買行動ほど、次(未来)の購買行動に類似すると考えられる。このため、上記構成を採用することにより、算出モデルの商品推薦精度の向上に寄与することができる。
[第5実施形態]
次に、図16及び図17も参照しながら、本発明の第5実施形態について説明する。第5実施形態では、上述した各実施形態と異なる点を主に説明し、重複する説明を省略する。
第5実施形態では、モデル生成部14が、互いに類似する複数の商品からなる商品群毎に、購買履歴及びコンテキスト情報に基づき、該商品群の購買確率を算出する商品群モデルを生成する。そして、モデル適用部15が、算出モデルを適用して算出した商品の購買確率と、商品群モデルを適用して算出した該商品を含む商品群の購買確率とに基づき、該商品の最終的な購買確率である最終購買確率を算出し、該最終購買確率に基づいて、ユーザに推薦する商品を決定する。
上述した商品群とは、具体的な商品を中分類とした場合の大分類と言い換えることができる。例えば、中分類がコーヒーや紅茶等の商品である場合には、大分類(商品群)は飲料である。すなわち、モデル生成部14は、中分類である商品毎の算出モデルに加えて、大分類である商品群毎の商品群モデルをも生成する。
更に、モデル生成部14は、具体的な商品を中分類とした場合の、小分類である商品詳細毎の詳細モデルを生成してもよい。例えば、中分類がコーヒーである場合には、小分類(商品詳細)は無糖等である。このように、モデル生成部14は、各分類(階層)毎にベイジアンネットワークのモデルを生成する。
モデル適用部15は、各モデルから算出された購買確率を掛け合わせることにより、当該商品の最終購買確率(結合確率)を算出する。例えば、大分類である商品群モデルと中分類である算出モデルとから最終購買確率を算出する例を説明する。図17(a)に示されるように、中分類である紅茶の購買確率が0.2、コーヒーの購買確率が0.8、スナック菓子の購買確率が0.6であったとする。飲料等は、例えば一度購買されるとその直後において連続して購買される可能性は低くなる。いま、紅茶が購買された直後において、算出モデルから算出される紅茶の購買確率は0.2で小さくなっているものの、コーヒーの購買確率は紅茶が購買されていることの影響を受けずに0.8となっており、購買される可能性が低いコーヒーが推薦商品とされるおそれがある。
これに対して、図17(b)に示されるように、大分類である飲料の購買確率を考慮すると、大分類である飲料の購買確率が0.2、菓子の購買確率が0.7のようになる。この場合、各商品に関して、大分類の購買確率と中分類の購買確率とが掛け合わされると、紅茶の最終購買確率は0.2×0.2=0.04、コーヒーの最終購買確率は0.2×0.8=0.16となり、いずれも低くなる。このように、大分類の購買確率を考慮することにより、類似する商品の購買状況を考慮して、購買される可能性が低い商品が推薦されることを抑制できる。
図16は、モデル適用部15の処理を示すフローチャートである。まず、モデル適用部15により、大分類のモデルである商品群モデルを用いて購買確率が算出され(ステップS91)、中分類のモデルである算出モデルを用いて購買確率が算出され(ステップS92)、小分類のモデルである詳細モデルを用いて購買確率が算出され(ステップS93)、各モデルを用いて算出された購買確率が掛け合わされて最終購買確率(結合確率)が算出され情報格納部12に格納される(ステップS94)。
[第6実施形態]
次に、図18及び図19も参照しながら、本発明の第6実施形態について説明する。第6実施形態では、上述した各実施形態と異なる点を主に説明し、重複する説明を省略する。
第6実施形態では、モデル適用部15が、ユーザの状況を示すユーザコンテキストについての質問(問合せ)を行い、該質問に対するユーザからの回答を取得し、該回答に示されたユーザコンテキストを入力として算出モデルを適用することにより、ユーザに推薦する商品を決定する。モデル適用部15は、購買履歴に基づき、購買頻度が高い時間帯である購買時間帯を導出する。当該購買頻度は、1ユーザの購買履歴のみにより導出されてもよいし、全ユーザの購買履歴から導出されてもよい。更に、モデル適用部15は、購買時間帯におけるユーザコンテキストとして、過去に回答された数が多いユーザコンテキストほど、優先的に、質問に対する回答として取得するための情報である質問対象と特定し、該質問対象を得るための質問を行う。
具体的には、モデル適用部15は、予め決められた対象日の質問回数の閾値を情報格納部12から取得する。モデル適用部15は、購買履歴に基づき、対象曜日おける購買時刻の頻度を降順にソートする。集計の時間幅は任意に変更可能であり、例えば1時間や30分である。モデル適用部15は、質問回数の閾値分だけ、降順ソートされた時間帯から購買時間帯を選択する。
モデル適用部15は、ユーザに対する質問内容を決定する。なお、ここでの質問とは、質問生成部13により生成される質問ではなく、図3のステップS21で説明した質問をいう。モデル適用部15は、上述した購買時間帯における各ユーザコンテキスト数(ユーザからの回答数)を集計し降順ソートし、回答数が多いユーザコンテキストから優先的に、質問に対する回答として取得するための情報として特定する。なお、ユーザコンテキストとは、質問生成部13により生成された質問に対する回答(購買理由)を示すコンテキストとは異なり、モデル適用部15による質問に対する回答である。
モデル適用部15は、特定したユーザコンテキストを得るためのか質問を情報格納部12に格納する。例えば、ユーザコンテキスト数を集計し降順ソートした結果が図19に示すようになった場合において、「同伴者が友人」とのユーザコンテキスト(回答)を得るための質問として、同伴者が誰かを尋ねる質問である、「今、誰と一緒にいますか?」という質問が情報格納部12に格納される。
図18は、モデル適用部15の処理を示すフローチャートである。まず、モデル適用部15によりユーザへの質問タイミングが決定される(ステップS101)。つづいて、モデル適用部15により、ユーザへの質問内容が決定される(ステップS102)。
S101の処理は、より詳細には、対象日の質問回数の閾値が情報格納部12から取得され(ステップS1011)、対象曜日の購買時刻(例えば1時間単位)の頻度が降順にソートされ(ステップS1012)、閾値の範囲で降順ソートされた時間帯から購買時間帯が選択され、当該購買時間帯から1時間を減算した時間帯が情報格納部12に格納される(ステップS1013)ことにより行われる。
S102の処理は、より詳細には、対象曜日の購買時間帯毎に各ユーザコンテキストの回答数が集計された降順ソートされ(ステップS1021)、回答数が多いユーザコンテキストに関する質問が情報格納部12に格納される(ステップS1022)ことにより行われる。
上述したように、本実施形態では、モデル適用部15が、ユーザの状況についての質問を行い、該質問に対するユーザからの回答を取得し、該回答に示されたユーザコンテキストを入力として算出モデルを適用することにより、ユーザに推薦する商品を決定している。モデル適用部15によって、ユーザの属性に加えて、ユーザからの回答に示されたユーザコンテキストが入力とされて算出モデルが適用されることにより、ユーザに対する商品の推薦精度をより一層向上させることができる。
また、本実施形態では、モデル適用部15が、購買履歴に基づき、購買頻度が高い時間帯である購買時間帯を導出し、購買時間帯におけるユーザコンテキストとして、過去の回答数が多いユーザコンテキストほど、優先的に、質問対象と特定し、質問対象を得るための質問を行う。算出モデルに入力されるユーザコンテキストは、購買される時間帯におけるユーザコンテキストであることが好ましい。この点、過去の購買頻度から購買時間帯が導出されると共に、当該時間帯におけるユーザコンテキストとして過去に回答され易いものに関する質問を行うことにより、購買時間帯におけるユーザコンテキストを効率的に取得することができる。すなわち、ユーザへの質問を極力減らしながら、商品の推薦精度の向上を図ることができる。
[第7実施形態]
次に、図20も参照しながら、本発明の第7実施形態について説明する。第7実施形態では、上述した各実施形態と異なる点を主に説明し、重複する説明を省略する。
第7実施形態では、モデル適用部15が、購買時間帯におけるユーザの状況(ユーザコンテキスト)として過去に回答されたユーザコンテキストのうち、購買される商品の種類が多いユーザコンテキストほど、優先的に、質問対象と特定する。これにより、ユーザへの質問を極力減らしながら、多種の購買商品に係るユーザコンテキストを効率的に取得することができる。
モデル適用部15は、例えば対象曜日の購買時間帯において、各ユーザコンテキストの購買確率を算出する。モデル適用部15は、ユーザからの回答と、購買履歴とに基づき、購買確率を算出する。当該購買確率が算出されることにより、購買時間帯におけるユーザコンテキストのうち、購買される商品の種類が多いと想定されるユーザコンテキストの選択が可能となる。
モデル適用部15は、あるユーザコンテキストにおいて各商品が購買されない確率を算出してもよい。例えば、「移動手段が徒歩」とのユーザコンテキストにおいて、ビールが購買される確率が0.1であり、ヨーグルトが購買される確率が0.2であったとする。この場合、「移動手段が徒歩」である場合に少なくとも一つの商品(ビール又はヨーグルト)が購買される確率は、1−(1−0.1)×(1−0.2)で表される。モデル適用部15は、当該計算を全てのユーザコンテキストについて行うことにより、各ユーザコンテキストについて各商品が購買されない確率を算出してもよい。
図20は、モデル適用部15の処理を示すフローチャートである。モデル適用部15により、対象曜日の購買時間帯の各ユーザコンテキストの購買確率が算出され(ステップS111)、該購買確率から選択されるユーザコンテキストの質問が選択され、該質問が情報格納部12に格納される(ステップS112)。S111の処理は、より詳細には、各ユーザコンテキストにおいて各商品が購買されない確率が算出されてもよい(ステップS1111)。
[第8実施形態]
次に、図21及び図22も参照しながら、本発明の第8実施形態について説明する。第8実施形態では、上述した各実施形態と異なる点を主に説明し、重複する説明を省略する。
第8実施形態では、モデル適用部15が、対象日時を入力として算出モデルを適用することにより、該対象日時におけるユーザコンテキストの推定確率を導出し、推定確率が高いユーザコンテキストほど、優先的に、算出モデルへの入力として特定し、該特定したユーザコンテキストを入力として算出モデルを適用することにより、対象日時におけるユーザに推薦する商品を決定する。これにより、ユーザコンテキストを取得できていない場合であっても、推定されたユーザコンテキストを確定条件として算出モデルへ適用することができ、ユーザへの質問を極力減らしながら、商品の推薦精度の向上を図ることができる。
算出モデルから商品を推薦する際に、推薦のための情報(入力情報)が不足する場合がある。この場合、第6実施形態等で説明したように、ユーザコンテキストを入力情報として算出モデルに適用することが考えられるが、当該ユーザコンテキストを十分な量収集するためには、ユーザへの質問を多く行う必要があり、煩雑となる。これに対して、過去にユーザに回答されたコンテキストに基づき、ユーザコンテキストを推定し、該推定したユーザコンテキストを算出モデルへの入力データとして追加する方法が考えられる。
具体的には、モデル適用部15は、対象日時の情報を算出モデルに適用することにより、該対象日時において過去に回答を得たコンテキストを考慮して、ユーザコンテキストの推定確率を導出する。モデル適用部15は、導出した推定確率を降順に並べ(図22参照)、ある閾値に従って推定確率の上位のユーザコンテキストを、算出モデルの入力として特定する。モデル適用部15は、特定したユーザコンテキストを算出モデルに入力して、買い物リストを生成する。
図21は、モデル適用部15の処理を示すフローチャートである。モデル適用部15により、算出モデルに適用する対象日時(曜日及び時刻)の情報が取得され(ステップS121)、算出モデルから得た対象日時におけるユーザコンテキストの推定確率が降順でソートされ(ステップS122)、ある閾値に従って上位のユーザコンテキストが確定コンテキストとされて、再度モデルに適用される(ステップS133)。
[第9実施形態]
次に、図23及び図24も参照しながら、本発明の第9実施形態について説明する。第9実施形態では、上述した各実施形態と異なる点を主に説明し、重複する説明を省略する。
第9実施形態では、購買履歴においては商品の購買日時及び購買場所が、購買商品及びユーザの属性に関連付けられている。そして、質問生成部13は、質問を生成する商品に関する、購買履歴における購買日時及び購買場所の少なくともいずれか一方に基づいて、質問に対する回答候補を生成する。いつどこで購買された商品かを考慮して回答候補を生成することによって、よりユーザの購買時の状況(すなわちコンテキスト)に合った回答候補を生成することができる。以上により、モデルの商品推薦精度の向上に寄与する可能性が高いコンテキスト情報を適切に補充することができる。なお、質問生成部13は、発汗や体温等を検知する生体センサの情報に基づき、回答候補を生成してもよい。回答候補を生成するとは、ユーザが選択し得る回答の候補を絞り込むと共に、必要に応じて回答の候補を並び替えることをいう。
また、質問生成部13は、質問を生成する商品に関する、ユーザからの過去の回答履歴を考慮して、質問に対する回答候補を生成する。これにより、質問を生成する商品に関して、ユーザに回答されやすい内容を回答候補とすることができ、よりユーザの購買時の状況(すなわちコンテキスト)に合った回答候補を生成することができる。以上により、モデルの商品推薦精度の向上に寄与する可能性が高いコンテキスト情報を適切に補充することができる。
具体的には、質問生成部13は、ある商品の購買履歴から、購買日時及び購買場所を取得し、生体センサからセンサ情報を取得し、コンテキスト情報から各コンテキストの回答数を取得する。質問生成部13は、上述した各情報の関係をモデル化する。ここでは、モデル化の一例としてロジスティック回帰を用いる例を説明する。ロジスティック回帰は下記の(3)式で示される。Xは入力、prは確率、α,βをそれぞれパラメータとしたとき、下記の(3)式から、与えられた学習データに基づきα,βを求める。
Logit(pri)=In(pri/1-pri)=α+β1X1,I+β2X2,I+β3X3,I+…・・・(3)
例えば、コンテキストが「車で来たから」の場合の時刻をX1、曜日をX2、発汗量をX3として、α,βを求め、モデル化する。前回モデルに基づき、質問を生成する対象日時の入力情報をモデルに適用し、回答確率を求める。例えば、図24に示されるように回答選択肢毎に回答確率が求まる。最後に、予め決められた回答候補の閾値に基づき、回答選択肢を絞り込み、回答候補を決定する。図24に示す例において回答候補の閾値が3である場合には、回答選択肢のうち「車で来たから」「友人といるから」「疲れているから」の3つが回答候補として選択され、並び順もこの順序でユーザに表示される。なお、上記例ではロジスティック回帰を用いたが、対象日時の回答数が多いものを降順に並べ、予め決められた回答数の閾値で回答候補を絞り込んでもよい。
図23は、質問生成部13の処理を示すフローチャートである。質問生成部13により、購買履歴における購買日時及び場所と、生体センサのセンサ情報と、コンテキストの回答数とが取得される(ステップS131)。そして、これらの情報の関係がモデル化され(ステップS132)、対象ユーザの購買時の日時、場所、センサ情報がモデルに入力されて導出されたコンテキストの回答確率が降順にソートされ(ステップS133)、予め決められた閾値に基づき、回答選択肢から回答候補が抽出される(ステップS134)。