(57)【特許請求の範囲】
【請求項１】
利用者識別情報と、商品識別情報と、推薦度とを対応付けて記憶する商品推薦度記憶部から、一の利用者識別情報と対応付けられる複数の商品識別情報と、当該複数の商品識別情報の各々と対応付けられる推薦度とを取得する推薦度取得部と、
利用者識別情報と、商品識別情報と、利用日時とを対応付けて記憶する商品利用履歴記憶部から、前記複数の商品識別情報の各々と対応付けられる利用日時を取得する第１の利用履歴取得部と、
前記複数の商品識別情報を構成する２つの商品識別情報からなる各組について、第１の商品識別情報により識別される第１の商品が利用されてから、第２の商品識別情報により識別される第２の商品が利用されるまでの利用間隔を、前記取得された利用日時に基づいて特定する利用間隔特定部と、
前記取得された推薦度を、前記特定された利用間隔に基づいて補正する推薦度補正部と、
前記補正された推薦度に基づいて前記複数の商品識別情報のうちの少なくとも一部を前記一の利用者識別情報により識別される利用者に対して提示する推薦商品提示部と
を備える商品推薦装置。
【請求項２】
前記推薦度補正部は、前記第２の商品識別情報に対応する推薦度を、前記第１の商品が利用されてから前記第２の商品が利用されるまでの利用間隔に基づいて補正することを特徴とする請求項１に記載の商品推薦装置。
【請求項３】
前記利用間隔特定部は、前記第１の商品が利用されてから前記第２の商品が利用されるまでの利用間隔の度数の分布を特定し、
前記推薦度補正部は、前記第１の商品が最後に利用されてから現在までに経過した時間間隔に対応する利用間隔の度数に基づいて、前記第２の商品識別情報に対応する推薦度を補正する
ことを特徴とする請求項２に記載の商品推薦装置。
【請求項４】
前記第１の利用履歴取得部は、前記一の利用者識別情報を含む複数の利用者識別情報のうちのいずれかと、前記複数の商品識別情報の各々とに対応付けられる利用日時を前記商品利用履歴記憶部から取得することを特徴とする請求項１乃至３のいずれか１項に記載の商品推薦装置。
【請求項５】
前記一の利用者識別情報と、前記複数の商品識別情報の各々とに対応付けられる利用日時を前記商品利用履歴記憶部から取得する第２の利用履歴取得部をさらに備え、
前記利用間隔特定部は、前記複数の商品識別情報を構成する２つの商品識別情報からなる各組について、前記第１の商品が利用されてから前記第２の商品が利用されるまでの利用間隔を、前記第１の利用履歴取得部により取得された利用日時に基づいて特定するとともに、前記複数の商品識別情報を構成する２つの商品識別情報からなる各組について、前記第１の商品が利用されてから前記第２の商品が利用されるまでの利用間隔を、前記第２の利用履歴取得部により取得された利用日時に基づいて特定する
ことを特徴とする請求項４に記載の商品推薦装置。
【請求項６】
商品推薦装置により実行される商品推薦方法であって、
利用者識別情報と、商品識別情報と、推薦度とを対応付けて記憶する商品推薦度記憶部から、一の利用者識別情報と対応付けられる複数の商品識別情報と、当該複数の商品識別情報の各々と対応付けられる推薦度とを取得するステップと、
利用者識別情報と、商品識別情報と、利用日時とを対応付けて記憶する商品利用履歴記憶部から、前記複数の商品識別情報の各々と対応付けられる利用日時を取得するステップと、
前記複数の商品識別情報を構成する２つの商品識別情報からなる各組について、第１の商品識別情報により識別される第１の商品が利用されてから、第２の商品識別情報により識別される第２の商品が利用されるまでの利用間隔を、前記取得された利用日時に基づいて特定するステップと、
前記取得された推薦度を、前記特定された利用間隔に基づいて補正するステップと、
前記補正された推薦度に基づいて前記複数の商品識別情報のうちの少なくとも一部を前記一の利用者識別情報により識別される利用者に対して提示するステップと
を備える商品推薦方法。
【請求項７】
コンピュータに、
利用者識別情報と、商品識別情報と、推薦度とを対応付けて記憶する商品推薦度記憶部から、一の利用者識別情報と対応付けられる複数の商品識別情報と、当該複数の商品識別情報の各々と対応付けられる推薦度とを取得するステップと、
利用者識別情報と、商品識別情報と、利用日時とを対応付けて記憶する商品利用履歴記憶部から、前記複数の商品識別情報の各々と対応付けられる利用日時を取得するステップと、
前記複数の商品識別情報を構成する２つの商品識別情報からなる各組について、第１の商品識別情報により識別される第１の商品が利用されてから、第２の商品識別情報により識別される第２の商品が利用されるまでの利用間隔を、前記取得された利用日時に基づいて特定するステップと、
前記取得された推薦度を、前記特定された利用間隔に基づいて補正するステップと、
前記補正された推薦度に基づいて前記複数の商品識別情報のうちの少なくとも一部を前記一の利用者識別情報により識別される利用者に対して提示するステップと
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、商品を推薦する技術に関する。
【背景技術】
【０００２】
従来、商品推薦手法の１つとして協調フィルタリングが知られている。協調フィルタリングは、商品推薦対象の利用者が過去に購入した商品に基づき、それらの商品を購入した別の利用者が購入した商品を商品推薦対象の利用者に推薦する手法である。例えば、特許文献１には、顧客の購買履歴データから隣接行列を生成し、当該隣接行列を解析することにより購入に関する商品間の時系列的な順序関係を取得しておき、顧客が商品を購入する際に、当該商品と時系列的な順序関係のある商品を顧客に推薦することが記載されている。特許文献２には、顧客の購買履歴に基づいて商品間の購買の順序関係と購買の時間差の平均値とを求めておき、顧客がある商品を購入した場合には、当該商品と順序関係にある他の商品のダイレクトメールを、これらの商品の購買の時間差の平均値に基づいて定まる発送タイミングで発送することについて記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００２−２７９２７９号公報
【特許文献２】特開平９−３０５５７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
協調フィルタリングを用いた商品推薦手法の１つとして、ＲＷＲ（Random Walk with Restart）を用いた手法が知られている。ＲＷＲは、グラフ理論においてノード間の関連度を計算する方法であり、特に、グラフの構造的な特徴に基づいて関連度を計算できる点に特徴がある。ＲＷＲを用いた商品推薦手法は、協調フィルタリングの代表例である機械学習を用いた手法よりもデータのスパーシティに強いという特性を有し、同じ行列を用いた手法でも特異値分解を用いた手法よりも計算が軽いという利点がある。
【０００５】
しかし、ＲＷＲを用いた商品推薦方法は、顧客数や推薦対象の商品点数が多く、更新頻度の高い商品推薦システムには不向きであるという問題がある。これは、商品のランキング生成に利用する商品の購入履歴データが更新されるたびに、商品のグラフ構造を構築するための計算をやり直さなければならないからである。顧客数や推薦対象の商品点数が増加するにつれて商品のグラフは大きくなり、これに比例してランキングの更新に時間がかかる。
【０００６】
本発明は、このような事情に鑑みてなされたものであり、利用者に商品を推薦する際に要する計算量を低減することを目的とする。
【課題を解決するための手段】
【０００７】
上記の課題を解決するため、本発明は、利用者識別情報と、商品識別情報と、推薦度とを対応付けて記憶する商品推薦度記憶部から、一の利用者識別情報と対応付けられる複数の商品識別情報と、当該複数の商品識別情報の各々と対応付けられる推薦度とを取得する推薦度取得部と、利用者識別情報と、商品識別情報と、利用日時とを対応付けて記憶する商品利用履歴記憶部から、前記複数の商品識別情報の各々と対応付けられる利用日時を取得する第１の利用履歴取得部と、前記複数の商品識別情報を構成する２つの商品識別情報からなる各組について、第１の商品識別情報により識別される第１の商品が利用されてから、第２の商品識別情報により識別される第２の商品が利用されるまでの利用間隔を、前記取得された利用日時に基づいて特定する利用間隔特定部と、前記取得された推薦度を、前記特定された利用間隔に基づいて補正する推薦度補正部と、前記補正された推薦度に基づいて前記複数の商品識別情報のうちの少なくとも一部を前記一の利用者識別情報により識別される利用者に対して提示する推薦商品提示部とを備える商品推薦装置を提供する。
【０００８】
好ましい態様において、前記推薦度補正部は、前記第２の商品識別情報に対応する推薦度を、前記第１の商品が利用されてから前記第２の商品が利用されるまでの利用間隔に基づいて補正する。
【０００９】
さらに好ましい態様において、前記利用間隔特定部は、前記第１の商品が利用されてから前記第２の商品が利用されるまでの利用間隔の度数の分布を特定し、前記推薦度補正部は、前記第１の商品が最後に利用されてから現在までに経過した時間間隔に対応する利用間隔の度数に基づいて、前記第２の商品識別情報に対応する推薦度を補正する。
【００１０】
さらに好ましい態様において、前記第１の利用履歴取得部は、前記一の利用者識別情報を含む複数の利用者識別情報のうちのいずれかと、前記複数の商品識別情報の各々とに対応付けられる利用日時を前記商品利用履歴記憶部から取得する。
【００１１】
さらに好ましい態様において、前記一の利用者識別情報と、前記複数の商品識別情報の各々とに対応付けられる利用日時を前記商品利用履歴記憶部から取得する第２の利用履歴取得部をさらに備え、前記利用間隔特定部は、前記複数の商品識別情報を構成する２つの商品識別情報からなる各組について、前記第１の商品が利用されてから前記第２の商品が利用されるまでの利用間隔を、前記第１の利用履歴取得部により取得された利用日時に基づいて特定するとともに、前記複数の商品識別情報を構成する２つの商品識別情報からなる各組について、前記第１の商品が利用されてから前記第２の商品が利用されるまでの利用間隔を、前記第２の利用履歴取得部により取得された利用日時に基づいて特定する。
【００１２】
また、本発明は、商品推薦装置により実行される商品推薦方法であって、利用者識別情報と、商品識別情報と、推薦度とを対応付けて記憶する商品推薦度記憶部から、一の利用者識別情報と対応付けられる複数の商品識別情報と、当該複数の商品識別情報の各々と対応付けられる推薦度とを取得するステップと、利用者識別情報と、商品識別情報と、利用日時とを対応付けて記憶する商品利用履歴記憶部から、前記複数の商品識別情報の各々と対応付けられる利用日時を取得するステップと、前記複数の商品識別情報を構成する２つの商品識別情報からなる各組について、第１の商品識別情報により識別される第１の商品が利用されてから、第２の商品識別情報により識別される第２の商品が利用されるまでの利用間隔を、前記取得された利用日時に基づいて特定するステップと、前記取得された推薦度を、前記特定された利用間隔に基づいて補正するステップと、前記補正された推薦度に基づいて前記複数の商品識別情報のうちの少なくとも一部を前記一の利用者識別情報により識別される利用者に対して提示するステップとを備える商品推薦方法を提供する。
【００１３】
また、本発明は、コンピュータに、利用者識別情報と、商品識別情報と、推薦度とを対応付けて記憶する商品推薦度記憶部から、一の利用者識別情報と対応付けられる複数の商品識別情報と、当該複数の商品識別情報の各々と対応付けられる推薦度とを取得するステップと、利用者識別情報と、商品識別情報と、利用日時とを対応付けて記憶する商品利用履歴記憶部から、前記複数の商品識別情報の各々と対応付けられる利用日時を取得するステップと、前記複数の商品識別情報を構成する２つの商品識別情報からなる各組について、第１の商品識別情報により識別される第１の商品が利用されてから、第２の商品識別情報により識別される第２の商品が利用されるまでの利用間隔を、前記取得された利用日時に基づいて特定するステップと、前記取得された推薦度を、前記特定された利用間隔に基づいて補正するステップと、前記補正された推薦度に基づいて前記複数の商品識別情報のうちの少なくとも一部を前記一の利用者識別情報により識別される利用者に対して提示するステップとを実行させるためのプログラムを提供する。
【発明の効果】
【００１４】
本発明によれば、利用者に商品を推薦する際に要する計算量を低減することができる。
【図面の簡単な説明】
【００１５】
【図１】商品推薦システム１００の構成の一例を示す図である。
【図２】商品推薦装置１の構成の一例を示す図である。
【図３】購入データＤＢ１２の一例を示す図である。
【図４】グラフ構造の一例を示す図である。
【図５】ランキングＤＢ１４の一例を示す図である。
【図６】店舗推薦商品ＤＢ１５の一例を示す図である。
【図７】顧客個人の商品の購入間隔の度数の分布を示すヒストグラムの一例を示す図である。
【図８】顧客個人の商品の購入間隔の度数から算出される確率の値の一例を示す図である。
【図９】顧客個人の商品の購入間隔の度数から算出される確率の値のグラフの一例を示す図である。
【図１０】顧客全体の商品の購入間隔の度数の分布を示すヒストグラムの一例を示す図である。
【図１１】顧客全体の商品の購入間隔の度数から算出される確率の値の一例を示す図である。
【図１２】顧客全体の商品の購入間隔の度数から算出される確率の値のグラフの一例を示す図である。
【図１３】個人間隔スコアと全体間隔スコアの加算の一例を示す図である。
【図１４】購入間隔スコアの一例を示す図である。
【図１５】購入間隔スコアのグラフの一例を示す図である。
【図１６】ランキング生成処理の一例を示すフローチャートである。
【図１７】ランキング補正処理の一例を示すフローチャートである。
【図１８】購入間隔反映処理の一例を示すフローチャートである。
【図１９】個人間隔スコア算出処理の一例を示すフローチャートである。
【図２０】全体間隔スコア算出処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００１６】
１．実施形態
１−１．商品推薦システム１００の構成
図１は、本発明の一実施形態に係る商品推薦システム１００の構成の一例を示す図である。商品推薦システム１００は、図１に示されるように、商品推薦装置１と、ＰＯＳ（Point of Sale）端末２と、通信端末３とにより構成される。これらの装置は互いに通信回線４を介して接続される。通信回線４は、例えば、インターネットや、携帯電話網や、無線ＬＡＮ（Local Area Network）により構成される。図１には、ＰＯＳ端末２と通信端末３とが、説明の便宜上、１つずつしか示されていないが、商品推薦システム１００には、それぞれが複数含まれてもよい。
【００１７】
商品推薦装置１は、ＰＯＳ端末２からＰＯＳ購入情報を収集し、この情報に基づいて、通信端末３を所有する顧客に対して商品を推薦するサーバ装置である。
【００１８】
ＰＯＳ端末２は、スーパーマーケットやコンビニエンスストア等の店舗に設置される、ＰＯＳシステムに対応したレジスタ機である。ＰＯＳ端末２は、ＰＯＳ購入情報を商品推薦装置１に対して送信する。ＰＯＳ購入情報は、顧客ＩＤと、購入日時と、商品ＩＤとを含む。
【００１９】
通信端末３は、顧客により所有されるコンピュータ装置である。具体的には、スマートフォンや、携帯電話機や、タブレット端末等の携帯型の電子機器である。または、パーソナルコンピュータ等の据え置き型の電子機器である。通信端末３は、商品推薦装置１に対して推薦商品の情報を要求し、商品推薦装置１から受信した推薦商品の情報を画面に表示する。
【００２０】
１−２．商品推薦装置１の構成
図２は、商品推薦装置１の構成の一例を示す図である。商品推薦装置１は、図２に示されるように、大略、購入データ取得部１１と、購入データデータベース（以下、「データベース」を「ＤＢ」という。）１２と、ランキング生成部１３と、ランキングＤＢ１４と、店舗推薦商品ＤＢ１５と、ランキング補正部１６と、推薦商品提示部１７とにより構成される。これらの機能は、例えば、ＣＰＵ（Central Processing Unit）等の演算装置によりプログラムが実行されることにより実現される。
【００２１】
購入データ取得部１１は、ＰＯＳ端末２から送信されたＰＯＳ購入情報を購入データＤＢ１２に記憶する。具体的には、顧客ＩＤと、購入日時と、商品ＩＤとを対応付けて購入データＤＢ１２に記憶する。
【００２２】
購入データＤＢ１２は、ＰＯＳ端末２から送信されるＰＯＳ購入情報を記憶するデータベースである。購入データＤＢ１２は、本発明に係る「商品利用履歴記憶部」の一例である。図３は、購入データＤＢ１２の一例を示す図である。購入データＤＢ１２を構成する各レコードは、顧客ＩＤと、購入日時と、商品ＩＤの各フィールドにより構成される。顧客ＩＤは、通信端末３のユーザであって、ＰＯＳ端末２が設置される店舗を利用するユーザを識別する識別情報である。商品ＩＤは、商品を識別する識別情報であって、例えば、ＪＡＮ（Japanese Article Number）コードである。
【００２３】
ランキング生成部１３は、購入データＤＢ１２に記憶されるＰＯＳ購入情報に基づいて商品のランキング情報を生成し、生成したランキング情報をランキングＤＢ１４に記憶する。ランキング生成部１３は、各顧客につき、所定の周期（例えば１ヶ月周期）で、所定の期間内（例えば過去１年以内）のＰＯＳ購入情報に基づいて商品のランキング情報を生成する。ランキング生成部１３は、図２に示されるように、グラフ構築部１３１と、重み付与部１３２と、ランク値算出部１３３とにより構成される。
【００２４】
グラフ構築部１３１は、購入データＤＢ１２に記憶されるＰＯＳ購入情報に基づいて商品のグラフ構造を構築する。具体的には、ランキング情報の生成対象である顧客に対応する購入日時と商品ＩＤとを購入データＤＢ１２から取得し、これらの情報に基づいて商品のグラフ構造を構築する。この際、所定の期間内（例えば過去１年以内）の購入日時と、それに対応する商品ＩＤを取得する。構築されるグラフ構造は、商品を表すノードと、同日に購入された２商品を紐付ける双方向エッジとにより構成される。
【００２５】
図４は、グラフ構造の一例を示す図である。図４に示されるグラフ構造は、「ベーコン」と「ひき肉」、「ベーコン」と「人参」、「ベーコン」と「キャベツ」とがそれぞれ同日に購入されたことを示している。また、「人参」と「醤油」、「人参」と「アスパラガス」とがそれぞれ同日に購入されたことを示している。
【００２６】
重み付与部１３２は、グラフ構築部１３１により構築されたグラフ構造の各エッジに重みを付与する。重みとしては遷移確率の値を付与する。具体的には、エッジにより紐付けられる２つの商品を同日に購入した回数を、紐付けられる遷移先の商品を購入した回数の和で除した値を、当該エッジに対して重みとして付与する。
【００２７】
図４に示されるグラフ構造では、「ベーコン」と「ひき肉」間のエッジの重みとして、「ベーコン」と「ひき肉」を同日に購入した回数「１（回）」を、「ベーコン」と同日に「ひき肉」を購入した回数「１（回）」と「ベーコン」と同日に「人参」を購入した回数「１（回）」と「ベーコン」と同日に「キャベツ」を購入した回数「１（回）」の和「３（回）」で除した値「１／３」が付与されている。また、別の例として、「人参」と「醤油」間のエッジの重みとして、「人参」と「醤油」を同日に購入した回数「１（回）」を、「人参」と同日に「醤油」を購入した回数「１（回）」と「人参」と同日に「アスパラガス」を購入した回数「１（回）」の和「２（回）」で除した値「１／２」が付与されている。
【００２８】
ランク値算出部１３３は、重み付与部１３２によりエッジに重みを付与されたグラフ構造において各商品のランク値を算出する。この際、ＲＷＲを用いてランク値を算出する。ここで、ＲＷＲは、グラフ構造上の起点となるノードに隣接する各ノードの関連度（または類似度）を計算するアルゴリズムである。この関連度は、本実施形態におけるランク値に相当する。ＲＷＲでは、起点ノードａからランダムウォークを開始し、隣接するノードにエッジの重みに比例した確率でランダムに移動し、ノードに到達するたびに一定の確率で起点ノードａに戻る。この操作を再帰的に繰り返した結果として各ノードにおいて得られる定常状態確率を関連度とする。すなわち、グラフ構造上にあるノードｂのノードａから見た関連度は、ノードａからランダムウォークをして得られたノードｂの定常状態確率として計算される。このＲＷＲを用いた関連度の計算方法については、例えば、「M.Gori、外１名、“ItemRank: A Random-Walk Based Scoring Algorithm for Recommender Engines”、Proc. IJCAI ‘07、p.2766-2771」に記載されている。
【００２９】
図４に示されるグラフ構造では、起点ノードである「ベーコン」のランク値（図４では重要度）は、「1.0×0.9（＝0.9）」である。また、別の例として、再帰的に繰り返す回数を３回とした場合の「ひき肉」のランク値（図４では重要度）は、「1.0×0.9×(1/3)（＝0.3）」である。再帰的に繰り返す回数は３回に限られず、値が収束して得られた定常状態確率をランク値とする。
【００３０】
ランキング生成部１３は、ランク値算出部１３３により各商品のランク値が算出されると、上位の所定個数の商品（例えば、ランク値が上位２０位以内の商品）のランク値を商品ＩＤと対応付けてランキングＤＢ１４に記憶する。この際、ランク値と商品ＩＤとに対応付けて、顧客ＩＤと、当該商品の前回購入日時と、当該商品のランキングとをランキングＤＢ１４に記憶する。なお、上位の所定個数の商品の中に直近の購入商品が含まれていた場合には、その商品については除外して、下位の商品を繰り上げてもよい。これは、直近の購入商品についてはランク値が高く算出されるからである。
【００３１】
次に、ランキングＤＢ１４は、ランキング生成部１３により生成されたランキング情報を記憶するデータベースである。ランキングＤＢ１４は、本発明に係る「商品推薦度記憶部」の一例である。図５は、ランキングＤＢ１４の一例を示す図である。ランキングＤＢ１４を構成する各レコードは、顧客ＩＤと、商品ＩＤと、前回購入日時と、ランク値と、ランキングの各フィールドにより構成される。ここで、前回購入日時は、対応する商品ＩＤにより識別される商品が最近購入された日時（言い換えると、最後に購入された日時）である。ランク値は、商品の推薦度を示す値であり、ランク値算出部１３３により算出される。ランキングは、対応するランク値に基づいて決定される商品の順位である。対応するランク値が大きいほど、小さい値が付与される。ランキングＤＢ１４には、例えば、各顧客につきランキング２０位以内の商品の情報が記憶される。
【００３２】
店舗推薦商品ＤＢ１５は、ＰＯＳ端末２が設置される店舗において顧客に推薦したい商品の情報を記憶するデータベースである。具体的には、店舗推薦商品のランク値の補正に用いられる補正値を記憶するデータベースである。図６は、店舗推薦商品ＤＢ１５の一例を示す図である。店舗推薦商品ＤＢ１５を構成する各レコードは、商品ＩＤと、推薦開始日時と、推薦終了日時と、補正値の各フィールドにより構成される。ここで、推薦開始日時と推薦終了日時は、それぞれ、対応する商品ＩＤにより識別される商品のランク値に対して、対応する補正値を加算する期間の開始日時と終了日時である。補正値は、対応する商品ＩＤにより識別される商品のランク値に対して加算される値である。
【００３３】
店舗推薦商品ＤＢ１５に記憶される情報は、例えば、ＰＯＳ端末２が設置される店舗の経営者により、図示せぬ通信装置を使って通信回線４を介して更新される。店舗の経営者は、例えば、店舗の立地や季節や在庫に応じて推薦商品又は非推薦商品を決定する。推薦商品には補正値として正の値を設定し、非推薦商品には補正値として負の値を設定する。
【００３４】
ランキング補正部１６は、ランキングＤＢ１４に記憶されているランキング情報を補正する。具体的には、ランキング情報に含まれるランク値に、商品の購入間隔と、店舗の推薦とを反映させる補正を行う。ランキング補正部１６は、ランキング生成部１３によるランキング生成よりも高い頻度でランキング情報の補正を行う。例えば、ランキング生成が１ヶ月単位で行われるとすると、ランキング情報の補正は１日単位で行われる。または、通信端末３の利用者から推薦商品の情報提供が要求されるたびに実行されてもよい。このランキング補正部１６は、図２に示されるように、大略、ランキング取得部１６１と、購入間隔反映部１６２と、店舗推薦反映部１６３とにより構成される。
【００３５】
ランキング取得部１６１は、ランキング情報の補正の対象となる顧客ＩＤに対応するランキング情報をランキングＤＢ１４から取得する。ランキング取得部１６１は、本発明に係る「推薦度取得部」の一例である。顧客ＩＤは、推薦商品の情報提供の要求とともに通信端末３から取得されてもよいし、推薦商品の情報を定期的に提供する対象として商品推薦装置１に予め記憶されていてもよい。ランキング取得部１６１は、顧客ＩＤに対応するランキング情報すべてをランキングＤＢ１４から取得してもよいし、上位の所定個数のランキング情報（例えば、ランク値が上位２０位以内のランキング情報）のみを補正対象として取得するようにしてもよい。
【００３６】
購入間隔反映部１６２は、ランキング取得部１６１により取得されたランキング情報に含まれるランク値を、商品の購入間隔に基づいて補正する。具体的には、ランキング情報の補正の対象となる顧客個人の商品の購入間隔と、購入データＤＢ１２に登録されている顧客全体の商品の購入間隔とに基づいて、ランク値を補正する。購入間隔反映部１６２は、図２に示されるように、大略、個人間隔スコア算出部１６２１と、全体間隔スコア算出部１６２２と、間隔スコア算出部１６２３と、ランク値補正部１６２４とにより構成される。
【００３７】
個人間隔スコア算出部１６２１は、ランキング情報の補正の対象となる顧客個人の商品の購入間隔の度数の分布を特定し、各度数に基づいて確率の値を算出する。ここで、商品の購入間隔とは、種類の異なる２つの商品を購入する時間間隔のことである。例えば、商品Ａを購入後、後日商品Ｂを購入するまでの時間間隔のことである。なお、後述するように、商品の購入間隔は、同一の商品ＩＤにより識別される２つの商品を購入する時間間隔であってもよい。個人間隔スコア算出部１６２１は、ヒストグラム作成部１６２１１と、確率算出部１６２１２とにより構成される。
【００３８】
ヒストグラム作成部１６２１１は、ランキング情報の補正の対象となる顧客個人の商品の購入間隔の度数の分布を示すヒストグラムを作成する。ヒストグラム作成部１６２１１は、本発明に係る「第２の利用履歴取得部」と「利用間隔特定部」の一例である。ヒストグラム作成部１６２１１は、具体的にはまず、ランキング取得部１６１により取得されたランキング情報に含まれる顧客ＩＤと各商品ＩＤとに対応する購入日時を購入データＤＢ１２から取得する。この際、所定の期間内（例えば過去１年以内）の購入日時を取得する。また、ヒストグラム作成部１６２１１は、ランキング情報の補正の対象となる顧客ＩＤに対応する最近の購入日時と、この購入日時に対応する商品ＩＤとを購入データＤＢ１２から取得する。ここで、最近の購入日時は、直近の購入日時であってもよいし、本ヒストグラム作成処理の時点から所定の期間内に属する１以上の購入日時であってもよい。そして、ランキング取得部１６１により取得されたランキング情報に含まれる商品ＩＤと、最近の購入日時に対応する商品ＩＤの任意の組み合わせについて、第１の商品の購入後、第２の商品を購入するまでの購入間隔の度数の分布を示すヒストグラムを作成する。例えば、第１の商品が「2015/4/1」と「2015/4/8」に購入され、第２の商品が「2015/4/3」と「2015/4/14」に購入されている場合には、第１の商品が「2015/4/1」に購入された後、第２の商品が「2015/4/3」に購入されていることから、購入間隔「２日」の度数が「１」増加する。また、第１の商品が「2015/4/8」に購入された後、第２の商品が「2015/4/14」に購入されていることから、購入間隔「６日」の度数が「１」増加する。ランキング情報に、例えば２０件の商品ＩＤが含まれており、最近の購入日時に対応する商品ＩＤの数が１０件である場合には、ヒストグラム作成部１６２１１は、２００（＝20×10）のヒストグラムを顧客ＩＤごとに作成する。
【００３９】
図７は、ヒストグラム作成部１６２１１により作成されるヒストグラムの一例を示す図である。図７に示されるヒストグラムの横軸は、購入間隔（単位は週）を示し、縦軸は購入回数を示している。このヒストグラムは、商品Ａを購入後、商品Ｂを購入するまでの購入間隔の度数の分布を示している。このヒストグラムは、例えば、商品Ａの購入後、第２週目（８日目から１４日目の間）に商品Ｂを１回購入したことを示している。また、別の例として、商品Ａの購入後、第５週目（２９日目から３５日目の間）に商品Ｂを２回購入したことを示している。
【００４０】
確率算出部１６２１２は、ヒストグラム作成部１６２１１により作成されたヒストグラムの各度数に基づいて確率の値（個人間隔スコア）を算出する。具体的には、カーネル密度関数に各度数を入力して確率の値を算出する。カーネル密度関数ｐ（ｘ）は、例えば以下のように表される。
【００４１】
【数１】
0006509028.tif 000002
ここで、Ｎは、処理対象の購入間隔の数であり、ｘiは、各購入間隔の度数である。バンド幅ｄは、例えば以下のように表される。
【００４２】
【数２】
0006509028.tif 000003
ここで、σは、処理対象の購入間隔の度数についての標準偏差である。
【００４３】
図８は、確率算出部１６２１２により算出される確率の値の一例を示す図である。図９は、確率の値のグラフを示す図である。図９に示されるグラフの横軸は、購入間隔（単位は週）を示し、左側の縦軸は購入回数を示し、右側の縦軸は確率を示している。確率算出部１６２１２は、ヒストグラム作成部１６２１１により作成された各ヒストグラムの度数について確率の値を算出する。
【００４４】
次に、全体間隔スコア算出部１６２２は、購入データＤＢ１２に登録されている顧客全体の商品の購入間隔の分布を特定し、各度数に基づいて確率の値を算出する。ここで、商品の購入間隔とは、種類の異なる２つの商品を購入する時間間隔のことである。例えば、商品Ａを購入後、後日商品Ｂを購入するまでの時間間隔のことである。なお、後述するように、商品の購入間隔は、同一の商品ＩＤにより識別される２つの商品を購入する時間間隔であってもよい。全体間隔スコア算出部１６２２は、特定の顧客個人ではなく、顧客全体の商品の購入間隔の度数に基づいて確率計算を行う点において、個人間隔スコア算出部１６２１と異なっている。全体間隔スコア算出部１６２２は、ヒストグラム作成部１６２２１と、確率算出部１６２２２とにより構成される。
【００４５】
ヒストグラム作成部１６２２１は、購入データＤＢ１２に登録されている顧客全体の商品の購入間隔の度数の分布を示すヒストグラムを作成する。ヒストグラム作成部１６２２１は、本発明に係る「第１の利用履歴取得部」と「利用間隔特定部」の一例である。ヒストグラム作成部１６２２１は、具体的にはまず、ランキング取得部１６１により取得されたランキング情報に含まれる各商品ＩＤに対応する購入日時を購入データＤＢ１２から取得する。この際、所定の期間内（例えば過去１年以内）の購入日時を取得する。また、ヒストグラム作成部１６２２１は、すべての顧客ＩＤに対応する最近の購入日時と、この購入日時に対応する商品ＩＤとを購入データＤＢ１２から取得する。ここで、最近の購入日時は、直近の購入日時であってもよいし、本ヒストグラム作成処理の時点から所定の期間内に属する１以上の購入日時であってもよい。そして、ヒストグラム作成部１６２２１は、ランキング取得部１６１により取得されたランキング情報に含まれる商品ＩＤと、最近の購入日時に対応する商品ＩＤの任意の組み合わせについて、第１の商品の購入後、第２の商品を購入するまでの購入間隔の度数の分布を示すヒストグラムを作成する。例えば、第１の商品が「2015/4/1」と「2015/4/8」に購入され、第２の商品が「2015/4/3」と「2015/4/14」に購入されている場合には、第１の商品が「2015/4/1」に購入された後、第２の商品が「2015/4/3」に購入されていることから、購入間隔「２日」の度数が「１」増加する。また、第１の商品が「2015/4/8」に購入された後、第２の商品が「2015/4/14」に購入されていることから、購入間隔「６日」の度数が「１」増加する。ランキング情報に、例えば５０件の商品ＩＤが含まれており、最近の購入日時に対応する商品ＩＤの数が５０件である場合には、ヒストグラム作成部１６２２１は、２５００（＝50×50）のヒストグラムを作成する。なお、最近の購入日時に対応する商品ＩＤの数が膨大であり、作成されるヒストグラム数が多く計算が困難な場合には、使用する商品ＩＤを、よく購入される商品上位２割の商品ＩＤに限定するようにしてもよい。
【００４６】
図１０は、ヒストグラム作成部１６２２１により作成されるヒストグラムの一例を示す図である。図１０に示されるヒストグラムの横軸は、購入間隔（単位は週）を示し、縦軸は購入回数（より具体的には、顧客ごとの購入回数の累積値）を示している。このヒストグラムは、商品Ａを購入後、商品Ｂを購入するまでの購入間隔の度数の分布を示している。このヒストグラムは、例えば、商品Ａの購入後、第１週目（１日目から７日目の間）に商品Ｂを２９回購入したことを示している。また、別の例として、商品Ａの購入後、第２週目（８日目から１４日目の間）に商品Ｂを１４回購入したことを示している。
【００４７】
確率算出部１６２２２は、ヒストグラム作成部１６２１１により作成されたヒストグラムの各度数に基づいて確率の値（全体間隔スコア）を算出する。具体的には、上述のカーネル密度関数に各度数を入力して確率の値を算出する。
【００４８】
図１１は、確率算出部１６２２２により算出される確率の値の一例を示す図である。図１２は、確率の値のグラフを示す図である。図１２に示されるグラフの横軸は、購入間隔（単位は週）を示し、左側の縦軸は購入回数（より具体的には、顧客ごとの購入回数の累積値）を示し、右側の縦軸は確率を示している。確率算出部１６２２２は、ヒストグラム作成部１６２２１により作成された各ヒストグラムの度数について確率の値を算出する。
【００４９】
次に、間隔スコア算出部１６２３は、個人間隔スコア算出部１６２１によりヒストグラムの各度数に基づいて算出された確率の値と、全体間隔スコア算出部１６２２によりヒストグラムの各度数に基づいて算出された確率の値とを加算して、得られた値を「２」で除することにより、購入間隔スコアを算出する。この際、間隔スコア算出部１６２３は、購入間隔ごとに、２つの確率の値を加算する。また、間隔スコア算出部１６２３は、この加算及び除算処理を、対応する確率の値の組の間で行う。具体的には、同じ商品の組み合わせであって、その購入順序を同じくする組み合わせについて算出された確率の値の組の間で行う。例えば、商品Ａを購入後、商品Ｂを購入するまでの購入間隔の各度数に基づいて個人間隔スコア算出部１６２１により算出された確率の値の組と、商品Ａを購入後、商品Ｂを購入するまでの購入間隔の各度数に基づいて全体間隔スコア算出部１６２２により算出された確率の値の組の間で行う。
【００５０】
図１３は、間隔スコア算出部１６２３により実行される加算の一例を示す図である。図１３に示される加算の例において、上段の確率の値の組は、個人間隔スコア算出部１６２１により算出された確率の値の組である（図８参照）。すなわち、ランキング情報の補正の対象となる顧客個人の商品の購入間隔の度数に基づいて算出された確率の値の組である。この確率の値の組は、商品Ａを購入後、商品Ｂを購入するまでの購入間隔の度数に基づいて算出された確率の値の組である。中段の確率の値の組は、全体間隔スコア算出部１６２２により算出された確率の値の組である（図１１参照）。すなわち、顧客全体の商品の購入間隔の度数に基づいて算出された確率の値の組である。この確率の値の組もまた、商品Ａを購入後、商品Ｂを購入するまでの購入間隔の度数に基づいて算出された確率の値の組である。下段の確率の値の組は、各購入間隔ごとに、上段の確率の値と下段の確率の値とを加算することによって算出される値の組である。
【００５１】
図１３に示される加算の例は、例えば、第１週目の上段の確率の値「0.048172」と中段の確率の値「0.10846」とを加算することにより、値「0.156632」が算出されることを示している。また、別の例として、第２週目の上段の確率の値「0.096845」と中段の確率の値「0.115745」とを加算することにより、値「0.212589」が算出されることを示している。
【００５２】
図１４は、間隔スコア算出部１６２３により最終的に求められる購入間隔スコアの一例を示す図である。図１５は、購入間隔スコアのグラフを示す図である。図１５に示されるグラフの横軸は、購入間隔（単位は週）を示し、縦軸は確率を示している。図１４に示される各購入間隔スコアは、図１３の下段に示される確率の値を「２」で除することによって得られた値である。図１５に示されるグラフによれば、購入間隔スコアは、個人間隔スコア算出部１６２１により算出された確率の値と同様に、第５週目と第９週目においてピークをつけている。また、購入間隔スコアは、第１週目と第２週目において、全体間隔スコア算出部１６２２により算出された確率の値の影響を受けて、個人間隔スコア算出部１６２１により算出された確率の値よりもその値が大きくなっている。すなわち、購入間隔スコアは、顧客個人の商品の購入間隔と、顧客全体の商品の購入間隔の両方を反映するものとなっている。
【００５３】
ランク値補正部１６２４は、ランキング取得部１６１により取得されたランキング情報に含まれるランク値を、間隔スコア算出部１６２３により算出された購入間隔スコアに基づいて補正する。ランク値補正部１６２４は、本発明に係る「推薦度補正部」の一例である。ランク値補正部１６２４は、当該補正を、間隔スコア算出部１６２３により算出された購入間隔スコアの各セットに基づいて行う。
【００５４】
具体的には、まず、ランク値補正部１６２４は、購入間隔スコアを算出するために参照された商品の購入間隔における先行購入商品が最後に最近購入されてから当該補正処理の時点までの時間間隔を特定する。例えば、商品Ａを購入後、商品Ｂを購入するまでの購入間隔の度数に基づいて算出された購入間隔スコアに基づいてランク値の補正を行う場合には、商品Ａを最近購入した日時（言い換えると、最後に購入された日時）から当該補正処理の時点までの時間間隔を特定する。ここで、商品Ａを最近購入した日時は、例えば、ランキングＤＢ１４において商品Ａと対応付けられている前回購入日時を参照することで特定する。
【００５５】
次に、ランク値補正部１６２４は、特定した時間間隔に対応する購入間隔スコアを特定する。例えば、特定した時間間隔が「３日」であり、参照する購入間隔スコアが図１４に示される例の通りであれば、第１週目の購入間隔スコア「0.078316」を特定する。別の例として、特定した時間間隔が「９日」であれば、図１４に示される第２週目の購入間隔スコア「0.106295」を特定する。
【００５６】
最後に、ランク値補正部１６２４は、購入間隔スコアを算出するために参照された商品の購入間隔における後行購入商品のランク値に、特定した購入間隔スコアを乗じる。例えば、商品Ａを購入後、商品Ｂを購入するまでの購入間隔の度数に基づいて算出された購入間隔スコアに基づいてランク値の補正を行う場合には、商品Ｂのランク値に、特定した購入間隔スコアを乗じる。
【００５７】
次に、店舗推薦反映部１６３は、購入間隔反映部１６２より補正された各ランク値を、店舗の推薦に基づいて補正する。具体的には、店舗推薦商品ＤＢ１５に記憶される情報に基づいて各ランク値を補正する。例えば、図６に示される店舗推薦商品ＤＢ１５では、商品ＩＤ「11111111」について補正値「+0.1」が設定されていることから、当該補正処理の実行日時が推薦開始日「2015/5/1」と推薦終了日「2015/5/31」の範囲に含まれるのであれば、商品ＩＤ「11111111」に対応するランク値に「0.1」を加算する。
【００５８】
次に、推薦商品提示部１７は、ランキング補正部１６により補正されたランク値に基づいて各商品のランキングを決定し、商品ＩＤとともに、決定したランキングを通信端末３の利用者に提示する。この際、推薦商品提示部１７は、対応するランク値が大きいほど商品に対して小さい値のランキングを付与する。また、推薦商品提示部１７は、具体的には、商品ＩＤとランキングとを表示するための画面データを通信端末３に対して送信する。
【００５９】
なお、推薦商品提示部１７は、決定したランキングに基づき上位の所定個数の商品（例えば、ランキング上位５位以内の商品）についてのみ商品ＩＤとランキングとを通信端末３の利用者に対して提示するようにしてもよい。また、推薦商品提示部１７は、商品ＩＤに代えて又は加えて、商品名や、商品の画像や、商品の価格を提示するようにしてもよい。また、推薦商品提示部１７は、商品推薦装置１が表示装置を備える場合には、上記の画面データを通信端末３に対して送信せずに、当該表示装置において表示することにより、通信端末３の利用者に対して商品ＩＤとランキングとを提示するようにしてもよい。
【００６０】
１−３．動作
商品推薦装置１の動作について説明する。具体的には、ランキング生成処理とランキング補正処理について説明する。
【００６１】
１−３−１．ランキング生成処理
図１６は、ランキング生成処理の一例を示すフローチャートである。以下の説明は、１人の顧客についてのランキング情報を生成する場合を想定している。ランキング生成処理はランキング生成部１３により、例えば所定の周期（例えば１ヶ月周期）で実行される。
【００６２】
本処理のステップＳａ１においてグラフ構築部１３１は、購入データＤＢ１２に記憶されるＰＯＳ購入情報に基づいて商品のグラフ構造を構築する。具体的には、ランキング情報の生成対象である顧客に対応する購入日時と商品ＩＤとを購入データＤＢ１２から取得し、これらの情報に基づいて商品のグラフ構造を構築する。構築されるグラフ構造は、商品を表すノードと、同日に購入された２商品を紐付ける双方向エッジとにより構成される。
【００６３】
次に、重み付与部１３２は、ステップＳａ１において構築されたグラフ構造の各エッジに重みを付与する（ステップＳａ２）。具体的には、エッジにより紐付けられる２つの商品を同日に購入した回数を、遷移先の商品を購入した回数で除した値を、当該エッジに対して重みとして付与する。
【００６４】
次に、ランク値算出部１３３は、ステップＳａ２においてエッジに重みを付与されたグラフ構造において各商品のランク値を算出する（ステップＳａ３）。この際、上述のＲＷＲを用いてランク値を算出する。
【００６５】
次に、ランキング生成部１３は、ステップＳａ３において算出された各商品のランク値を商品ＩＤと対応付けてランキングＤＢ１４に記憶する（ステップＳａ４）。この際、上位の所定個数の商品（例えば、ランク値が上位２０位以内の商品）のランク値のみを商品ＩＤと対応付けてランキングＤＢ１４に記憶するようにしてもよい。ランク値と商品ＩＤとを記憶する際には、これらに対応付けて、顧客ＩＤと、当該商品の前回購入日時と、当該商品のランキングとをランキングＤＢ１４に記憶する。
以上が、ランキング生成処理についての説明である。
【００６６】
１−３−２．ランキング補正処理
図１７は、ランキング補正処理の一例を示すフローチャートである。ランキング補正処理はランキング補正部１６により、ランキング生成処理よりも高い頻度で実行される。ランキング補正処理は、例えば、通信端末３の利用者から推薦商品の情報提供が要求されることを契機として実行される。
【００６７】
本処理のステップＳｂ１においてランキング取得部１６１は、ランキング情報の補正の対象となる顧客ＩＤに対応するランキング情報をランキングＤＢ１４から取得する。顧客ＩＤは、例えば、推薦商品の情報提供の要求とともに通信端末３から取得される。ここで、ランキング取得部１６１は、上位の所定個数のランキング情報（例えば、ランク値が上位２０位以内のランキング情報）のみを補正対象としてランキングＤＢ１４から取得してもよい。
【００６８】
次に、購入間隔反映部１６２は、ステップＳｂ１において取得されたランキング情報に含まれるランク値を、商品の購入間隔に基づいて補正する（ステップＳｂ２）。具体的には、ランキング情報の補正の対象となる顧客個人の商品の購入間隔と、購入データＤＢ１２に登録されている顧客全体の商品の購入間隔とに基づいて、ランク値を補正する。
【００６９】
図１８は、ステップＳｂ２において実行される購入間隔反映処理の一例を示すフローチャートである。本処理のステップＳｃ１において個人間隔スコア算出部１６２１は、ランキング情報の補正の対象となる顧客個人の商品の購入間隔の度数の分布を特定し、各度数に基づいて確率の値を算出する。ここで、商品の購入間隔とは、種類の異なる２つの商品を購入する時間間隔のことである。なお、後述するように、商品の購入間隔は、同一の商品ＩＤにより識別される２つの商品を購入する時間間隔であってもよい。
【００７０】
図１９は、ステップＳｃ１において実行される個人間隔スコア算出処理の一例を示すフローチャートである。本処理のステップＳｄ１においてヒストグラム作成部１６２１１は、ランキング情報の補正の対象となる顧客個人の商品の購入間隔の度数の分布を示すヒストグラムを作成する。具体的には、まず、ステップＳｂ１において取得されたランキング情報に含まれる顧客ＩＤと各商品ＩＤとに対応する購入日時を購入データＤＢ１２から取得する。また、ランキング情報の補正の対象となる顧客ＩＤに対応する最近の購入日時と、この購入日時に対応する商品ＩＤとを購入データＤＢ１２から取得する。そして、上記のランキング情報に含まれる商品ＩＤと、最近の購入日時に対応する商品ＩＤの任意の組み合わせについて、第１の商品の購入後、第２の商品を購入するまでの購入間隔の度数の分布を示すヒストグラムを作成する。
【００７１】
次に、確率算出部１６２１２は、ステップＳｄ１において作成されたヒストグラムの各度数に基づいて確率の値を算出する（ステップＳｄ２）。具体的には、カーネル密度関数に各度数を入力して確率の値を算出する。確率算出部１６２１２は、ステップＳｄ１において作成された各ヒストグラムの度数について確率の値を算出する。
【００７２】
図１８のステップＳｃ２において、全体間隔スコア算出部１６２２は、購入データＤＢ１２に登録されている顧客全体の商品の購入間隔の分布を特定し、各度数に基づいて確率の値を算出する。ここで、商品の購入間隔とは、種類の異なる２つの商品を購入する時間間隔のことである。なお、後述するように、商品の購入間隔は、同一の商品ＩＤにより識別される２つの商品を購入する時間間隔であってもよい。
【００７３】
図２０は、ステップＳｃ２において実行される全体間隔スコア算出処理の一例を示すフローチャートである。本処理のステップＳｅ１においてヒストグラム作成部１６２２１は、購入データＤＢ１２に登録されている顧客全体の商品の購入間隔の度数の分布を示すヒストグラムを作成する。具体的には、まず、ステップＳｂ１において取得されたランキング情報に含まれる各商品ＩＤに対応する購入日時を購入データＤＢ１２から取得する。また、すべての顧客ＩＤに対応する最近の購入日時と、この購入日時に対応する商品ＩＤとを購入データＤＢ１２から取得する。そして、上記のランキング情報に含まれる商品ＩＤと、最近の購入日時に対応する商品ＩＤの任意の組み合わせについて、第１の商品の購入後、第２の商品を購入するまでの購入間隔の度数の分布を示すヒストグラムを作成する。
【００７４】
確率算出部１６２２２は、ステップＳｅ１において作成されたヒストグラムの各度数に基づいて確率の値を算出する（ステップＳｅ２）。具体的には、上述のカーネル密度関数に各度数を入力して確率の値を算出する。確率算出部１６２２２は、ステップＳｅ１において作成された各ヒストグラムの度数について確率の値を算出する。
【００７５】
図１８のステップＳｃ３において、間隔スコア算出部１６２３は、ステップＳｃ１において算出された確率の値と、ステップＳｃ２において算出された確率の値とを加算して、得られた値を「２」で除することにより、購入間隔スコアを算出する。この際、間隔スコア算出部１６２３は、購入間隔ごとに、２つの確率の値を加算する。また、間隔スコア算出部１６２３は、この加算及び除算処理を、対応する確率の値の組の間で行う。
【００７６】
次に、ランク値補正部１６２４は、ステップＳｂ１において取得されたランキング情報に含まれるランク値を、ステップＳｃ３において算出された購入間隔スコアに基づいて補正する（ステップＳｃ４）。ランク値補正部１６２４は、当該補正を、ステップＳｃ３において算出された購入間隔スコアの各セットに基づいて行う。
【００７７】
具体的には、ランク値補正部１６２４は、まず、購入間隔スコアを算出するために参照された商品の購入間隔における先行購入商品が最近購入されてから当該補正処理の時点までの時間間隔を特定する。次に、ランク値補正部１６２４は、特定した時間間隔に対応する購入間隔スコアを特定する。最後に、ランク値補正部１６２４は、購入間隔スコアを算出するために参照された商品の購入間隔における後行購入商品のランク値に、特定した購入間隔スコアを乗じる。
【００７８】
次に、図１７のステップＳｂ３において、店舗推薦反映部１６３は、ステップＳｂ２において補正された各ランク値を、店舗の推薦に基づいて補正する。具体的には、店舗推薦商品ＤＢ１５に記憶される情報に基づいて各ランク値を補正する。
【００７９】
次に、推薦商品提示部１７は、ステップＳｂ３において補正されたランク値に基づいて各商品のランキングを決定し、商品ＩＤとともに決定したランキングを通信端末３の利用者に提示する（ステップＳｂ４）。具体的には、商品ＩＤとランキングとを表示するための画面データを通信端末３に対して送信する。
以上が、ランキング補正処理についての説明である。
【００８０】
以上説明した本実施形態に係る商品推薦装置１によれば、顧客に推薦商品の情報が提供される際に、ＲＷＲを用いた再計算が必要となるランキング生成については実行されず、ランキング補正のみが実行されるため、顧客に商品を推薦する際に要する計算量の低減が図られる。このため本実施形態に係る商品推薦装置１は、顧客数や推薦対象の商品点数が多く、更新頻度の高い商品推薦システムにも対応することができる。
【００８１】
また、本実施形態に係る商品推薦装置１によれば、各顧客の商品の購入間隔に基づいてランキングが補正されるため、顧客が購入する可能性が高いタイミングに合わせて商品を推薦することができる。また、各顧客の商品の購入間隔だけでなく、顧客全体の商品の購入間隔に基づいてランキングが補正されるため、顧客個人の商品の購入間隔についてのデータが不足する場合でも、その不足を、顧客全体の商品の購入間隔のデータにより補うことができる。
【００８２】
また、本実施形態に係る商品推薦装置１によれば、店舗の推薦に基づいてランキングが補正されるため、店舗の立地や季節や在庫に応じて顧客に商品を推薦することができる。
【００８３】
２．変形例
上記の実施形態は、以下に示すように変形してもよい。また、以下の変形例は互いに組み合わせてもよい。
【００８４】
２−１．変形例１
上記の実施形態の説明では、商品の例として食品を挙げたが（例えば、図４参照）、これは商品の一例にすぎない。本明細書において商品とは、商業上の取引の目的となる財又はサービスのことである。ここで、財は、有体物、無体物（例えば、デジタルコンテンツ）のいかんを問わない。また、商業上の取引の中には、売買だけでなく、賃貸し（レンタル）も含まれる。すなわち、上記の実施形態において顧客に推薦される商品は、賃貸しの対象であってもよい。
【００８５】
２−２．変形例２
上記の実施形態に係るランキング生成処理では、ＲＷＲを用いた商品推薦手法が用いられているが、これはランキング生成方法の一例にすぎない。上記のランキング生成処理では、ＲＷＲを用いた商品推薦手法に代えて、他の従来の協調フィルタリング（例えば、「Sarwar、他3名、"Item-based Collaborative Filtering Recommendation Algorithms"、Proc. WWW '01、p.285-295」参照。）を用いてランキング情報を生成するようにしてもよい。
【００８６】
２−３．変形例３
上記の実施形態に係るランキング補正処理では、ヒストグラムの度数に基づいて確率の値を算出するにあたりカーネル密度関数が用いられているが、これは確率の値を算出するための手段の一例にすぎない。上記のランキング補正処理では、カーネル密度関数に代えて、指数分布や正規分布にヒストグラムの度数を当てはめることで間隔スコアを算出するようにしてもよい。
【００８７】
２−４．変形例４
上記の実施形態に係るランキング補正処理では、商品の購入間隔に基づいてランク値を補正するにあたり、種類の異なる２つの商品を購入する時間間隔を参照しているが、これに代えて、同種の商品を購入する時間間隔を参照するようにしてもよい。具体的には、商品Ａを購入してから次に商品Ａを購入するまでの時間間隔に基づいてランク値を補正するようにしてもよい。
【００８８】
この場合、上記の実施形態において、ヒストグラム作成部１６２１１とヒストグラム作成部１６２２１とは、ランキング取得部１６１により取得されたランキング情報に含まれる各商品ＩＤについて、当該商品を購入後、次に当該商品を購入するまでの購入間隔の度数の分布を示すヒストグラムを作成する。間隔スコア算出部１６２３は、同種の商品について、個人間隔スコア算出部１６２１により算出された確率の値と、全体間隔スコア算出部１６２２により算出された確率の値とを加算して、得られた値を「２」で除することにより、購入間隔スコアを算出する。ランク値補正部１６２４は、購入間隔スコアに対応する商品が最後に最近購入されてから当該補正処理の時点までの時間間隔を特定し、特定した時間間隔に対応する購入間隔スコアを特定し、上記商品のランク値に、特定した購入間隔スコアを乗じる。
【００８９】
この変形例によっても、顧客が購入する可能性が高いタイミングに合わせて商品を推薦することができる。
【００９０】
２−５．変形例５
上記の実施形態に係るランキング補正処理において、店舗推薦反映部１６３による店舗の推薦に基づくランク値の補正処理は省略されてもよい。また、上記の実施形態に係るランキング補正処理において、購入間隔反映部１６２は、顧客個人の商品の購入間隔と、顧客全体の商品の購入間隔のうちのいずれか一方のみに基づいてランク値を補正するようにしてもよい。すなわち、ランク値補正部１６２４は、個人間隔スコア算出部１６２１により算出された確率の値と、全体間隔スコア算出部１６２２により算出された確率の値のうちのいずれか一方のみに基づいて、ランク値を補正するようにしてもよい。
【００９１】
２−６．変形例６
上記の実施形態では、購入データ取得部１１と、購入データＤＢ１２と、ランキング生成部１３と、ランキングＤＢ１４と、店舗推薦商品ＤＢ１５とを商品推薦装置１が備えているが、これらの構成要素は、商品推薦装置１と通信回線４を介して接続される他の装置に備えられてもよい。
【００９２】
２−７．変形例７
上記の実施形態に係る商品推薦装置１において実行されるプログラムは、コンピュータ装置が読み取り可能な記録媒体を介して提供されてもよい。ここで、記録媒体とは、例えば、磁気テープや磁気ディスクなどの磁気記録媒体や、光ディスクなどの光記録媒体や、光磁気記録媒体や、半導体メモリ等である。また、当該プログラムは、インターネット等のネットワークを介して配信されてもよい。
【符号の説明】
【００９３】
１…商品推薦装置、２…ＰＯＳ端末、３…通信端末、４…通信回線、１１…購入データ取得部、１２…購入データＤＢ、１３…ランキング生成部、１４…ランキングＤＢ、１５…店舗推薦商品ＤＢ、１６…ランキング補正部、１７…推薦商品提示部、１００…商品推薦システム、１３１…グラフ構築部、１３２…重み付与部、１３３…ランク値算出部、１６１…ランキング取得部、１６２…購入間隔反映部、１６３…店舗推薦反映部、１６２１…個人間隔スコア算出部、１６２２…全体間隔スコア算出部、１６２３…間隔スコア算出部、１６２４…ランク値補正部、１６２１１…ヒストグラム作成部、１６２１２…確率算出部、１６２２１…ヒストグラム作成部、１６２２２…確率算出部
【図１】
0006509028.tif 000004
【図２】
0006509028.tif 000005
【図３】
0006509028.tif 000006
【図４】
0006509028.tif 000007
【図５】
0006509028.tif 000008
【図６】
0006509028.tif 000009
【図７】
0006509028.tif 000010
【図８】
0006509028.tif 000011
【図９】
0006509028.tif 000012
【図１０】
0006509028.tif 000013
【図１１】
0006509028.tif 000014
【図１２】
0006509028.tif 000015
【図１３】
0006509028.tif 000016
【図１４】
0006509028.tif 000017
【図１５】
0006509028.tif 000018
【図１６】
0006509028.tif 000019
【図１７】
0006509028.tif 000020
【図１８】
0006509028.tif 000021
【図１９】
0006509028.tif 000022
【図２０】
0006509028.tif 000023