(57)【要約】【課題】ユーザのフィードバックをリアルタイムに反映した推薦を実現すること。【解決手段】アイテムに対するユーザのフィードバックを受け付ける受付部と、受付部により現在又は過去に受け付けたフィードバックの情報をユーザとアイテムの組み合わせ毎に格納する履歴格納部と、受付部によりフィードバックを受け付けた際、履歴格納部により格納されたフィードバックの情報を用いて、同じユーザが共にフィードバックを与えている度合いを示す第１情報、及び、多くのユーザがフィードバックを与えている度合いを示す第２情報に基づくアイテム間の関連度を算出する関連度算出部と、関連度算出部により算出された関連度に基づき、受付部によりアイテムにフィードバックを与えたユーザに対して、当該アイテムに対する関連度が高いアイテムを即座に推薦する推薦部と、を備える、アイテム推薦システムが提供される。【選択図】図２
2012003359.tif 000002
【特許請求の範囲】
【請求項１】
アイテムに対するユーザのフィードバックを受け付けるフィードバック受付部と、
前記フィードバック受付部により現在又は過去に受け付けたフィードバックの情報をユーザとアイテムの組み合わせ毎に格納するフィードバック履歴格納部と、
前記フィードバック受付部によりフィードバックを受け付けた際、前記フィードバック履歴格納部により格納されたフィードバックの情報を用いて、同じユーザが共にフィードバックを与えている度合いを示す第１情報、及び、多くのユーザがフィードバックを与えている度合いを示す第２情報に基づくアイテム間の関連度を算出する関連度算出部と、
前記関連度算出部により算出された関連度に基づき、前記フィードバック受付部によりアイテムにフィードバックを与えたユーザに対して、当該アイテムに対する関連度が高いアイテムを即座に推薦する推薦部と、
を備える、
アイテム推薦システム。
【請求項２】
前記関連度算出部により時刻ｔ１において算出されたアイテム間の関連度Ｊ（ｔ１）と、時刻ｔ１の次の時刻ｔ２において前記関連度算出部により算出されたアイテム間の関連度Ｊ（ｔ２）とを比較し、時刻ｔ１と時刻ｔ２との間で最も関連度が変化したアイテムｉ、ｊの組み合わせを検出する変化検出部と、
前記変化検出部により検出されたアイテムｉ、ｊに関する関連度の差分Ｊ（ｔ２）−Ｊ（ｔ１）から、時刻ｔ２の次の時刻ｔ３におけるアイテム間の関連度Ｊ（ｔ３）を予測する関連度予測部と、
をさらに備え、
前記推薦部は、所定のタイミングにおいて前記関連度算出部により算出された関連度に基づいてアイテムを推薦し、当該所定のタイミング以外のタイミングにおいて前記関連度予測部により予測された関連度に基づいてアイテムを推薦する、
請求項１に記載のアイテム推薦システム。
【請求項３】
前記フィードバック履歴格納部により格納されたフィードバックの情報に基づいてユーザの嗜好を示す嗜好情報を生成する嗜好情報生成部をさらに備え、
前記嗜好情報生成部は、前記フィードバック受付部によりフィードバックを受け付ける直前に、前記フィードバック履歴格納部により格納されたフィードバックの情報に基づいて嗜好情報を生成し、
前記推薦部は、前記フィードバック受付部によりフィードバックを受け付ける直前に生成された嗜好情報に基づき、前記関連度が高いアイテムの中から、前記フィードバック受付部によりアイテムにフィードバックを与えたユーザの嗜好が高いアイテムを推薦する、
請求項２に記載のアイテム推薦システム。
【請求項４】
アイテム毎に予め優先度係数が設定されている場合、前記推薦部は、前記優先度係数が乗算された関連度に基づき、前記フィードバック受付部によりアイテムにフィードバックを与えたユーザに対して、当該アイテムに対する関連度が高いアイテムを推薦する、
請求項３に記載のアイテム推薦システム。
【請求項５】
前記フィードバック履歴格納部は、ネットワークを介して接続された記憶装置に前記フィードバックの履歴を格納する、
請求項４に記載のアイテム推薦システム。
【請求項６】
前記フィードバック受付部によりアイテムｉに対するユーザｕのフィードバックを受け付けた際に、前記フィードバック履歴格納部により格納されるフィードバックの情報がＰ（ｉ，ｕ）であり、フィードバックを受け付けた場合にＰ（ｉ，ｕ）＝１、フィードバックを受け付けていない場合にＰ（ｉ，ｕ）＝０が設定されるとすると、アイテムｉとアイテムｊ（ｊ≠ｉ）との間の関連度Ｊｉ，ｊは、下記の式（１）で表現される、
請求項１又は５に記載のアイテム推薦システム。
【数１】
2012003359.tif 000009
【請求項７】
アイテムに対するユーザのフィードバックを受け付けるフィードバック受付ステップと、
前記フィードバック受付ステップで現在又は過去に受け付けたフィードバックの情報をユーザとアイテムの組み合わせ毎に格納するフィードバック履歴格納ステップと、
前記フィードバック受付ステップでフィードバックを受け付けた際、前記フィードバック履歴格納ステップで格納されたフィードバックの情報を用いて、同じユーザが共にフィードバックを与えている度合いを示す第１情報、及び、多くのユーザがフィードバックを与えている度合いを示す第２情報に基づくアイテム間の関連度を算出する関連度算出ステップと、
前記関連度算出ステップで算出された関連度に基づき、前記フィードバック受付ステップでアイテムにフィードバックを与えたユーザに対して、当該アイテムに対する関連度が高いアイテムを即座に推薦する推薦ステップと、
を含む、
アイテム推薦方法。
【請求項８】
アイテムに対するユーザのフィードバックを受け付けるフィードバック受付機能と、
前記フィードバック受付機能により現在又は過去に受け付けたフィードバックの情報をユーザとアイテムの組み合わせ毎に格納するフィードバック履歴格納機能と、
前記フィードバック受付機能によりフィードバックを受け付けた際、前記フィードバック履歴格納機能により格納されたフィードバックの情報を用いて、同じユーザが共にフィードバックを与えている度合いを示す第１情報、及び、多くのユーザがフィードバックを与えている度合いを示す第２情報に基づくアイテム間の関連度を算出する関連度算出機能と、
前記関連度算出機能により算出された関連度に基づき、前記フィードバック受付機能によりアイテムにフィードバックを与えたユーザに対して、当該アイテムに対する関連度が高いアイテムを即座に推薦する推薦機能と、
をコンピュータに実現させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アイテム推薦システム、アイテム推薦方法、及びプログラムに関する。
【背景技術】
【０００２】
近年、ネットワークを利用したビジネスが急拡大している。例えば、ネットワーク上のオンラインストアで商品を購入するシステムは広く一般に利用されている。こうしたオンラインストアの多くには、ユーザに商品を推薦する仕組みが設けられている。例えば、ある商品の詳細情報をユーザが閲覧すると、その商品に関連する商品の情報が関連商品又は推薦商品としてユーザに提示される。このような仕組みは、例えば、下記の特許文献１に記載されている協調フィルタリング方法などを利用して実現される。協調フィルタリング方法とは、嗜好の似たユーザの情報（例えば、購入履歴）を利用する推薦方法である。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００３−１６７９０１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記の協調フィルタリング方法を用いると、購入履歴のない新規ユーザに対しても、そのユーザと嗜好が似たユーザの情報を利用して商品を推薦することができる。一方、ユーザの購入履歴を利用して商品を推薦するコンテンツベースフィルタリング方法の場合、購入履歴のない新規ユーザには商品を推薦することができない。そのため、商品の購入履歴が少ないユーザなどに対して協調フィルタリング方法は有効である。
【０００５】
但し、コンテンツベースフィルタリング方法は、各ユーザの購入履歴を解析して推薦する商品を決める方法であるため、各ユーザの嗜好が反映されやすいという利点がある。また、ユーザ数が少なく、嗜好が似たユーザが見つかりにくい状況においては、コンテンツベースフィルタリング方法の方が協調フィルタリング方法に比べて有効である。
【０００６】
オンラインストアでは、上記のようなフィルタリング方法などを用いて商品の購入履歴や詳細情報の閲覧履歴などが解析され、ユーザに商品を推薦するための情報が準備される。但し、上記のフィルタリング方法などを用いた解析処理には十分に長い時間を要する。一方で、オンラインストアにおいては商品の推薦結果が売り上げに大きな影響を及ぼすため、よりユーザの嗜好に合った商品を即座に提示できる仕組みが求められる。
【０００７】
しかしながら、現状のオンラインストアでは、所定期間（例えば、１日）、購入履歴や詳細情報の閲覧履歴を蓄積しておき、上記のフィルタリング方法などを用いた解析処理を所定期間おきに実行するといった仕組み（以下、バッチ処理）が用いられている。そのため、ユーザが商品を購入しても、その購入履歴は、購入時の推薦結果には反映されていない。例えば、ユーザＡが商品Ｘを購入しても、バッチ処理が完了するまで、そのユーザＡの購入履歴は、商品Ｘを購入したユーザＢに対する推薦結果に反映されない。
【０００８】
なお、ここではオンラインストアでユーザが商品を購入した購入履歴を推薦に利用する例示したが、ある商品に対してユーザが評価した評価結果や、ある商品の詳細情報をユーザが閲覧した閲覧履歴なども商品の推薦に利用される。また、以下の説明においては、商品やサービスなど（以下、アイテム）に対してユーザが行った行動（例えば、購入、評価、情報閲覧など）のことをフィードバックと呼ぶことにする。
【０００９】
本発明は、上記問題に鑑みてなされたものであり、本発明の目的とするところは、ユーザのフィードバックを即座に反映した推薦を実現することが可能な、新規かつ改良されたアイテム推薦システム、アイテム推薦方法、及びプログラムを提供することにある。
【課題を解決するための手段】
【００１０】
上記課題を解決するために、本発明のある観点によれば、アイテムに対するユーザのフィードバックを受け付けるフィードバック受付部と、前記フィードバック受付部により現在又は過去に受け付けたフィードバックの情報をユーザとアイテムの組み合わせ毎に格納するフィードバック履歴格納部と、前記フィードバック受付部によりフィードバックを受け付けた際、前記フィードバック履歴格納部により格納されたフィードバックの情報を用いて、同じユーザが共にフィードバックを与えている度合いを示す第１情報、及び、多くのユーザがフィードバックを与えている度合いを示す第２情報に基づくアイテム間の関連度を算出する関連度算出部と、前記関連度算出部により算出された関連度に基づき、前記フィードバック受付部によりアイテムにフィードバックを与えたユーザに対して、当該アイテムに対する関連度が高いアイテムを即座に推薦する推薦部と、を備える、アイテム推薦システムが提供される。
【００１１】
また、上記のアイテム推薦システムは、前記関連度算出部により時刻ｔ１において算出されたアイテム間の関連度Ｊ（ｔ１）と、時刻ｔ１の次の時刻ｔ２において前記関連度算出部により算出されたアイテム間の関連度Ｊ（ｔ２）とを比較し、時刻ｔ１と時刻ｔ２との間で最も関連度が変化したアイテムｉ、ｊの組み合わせを検出する変化検出部と、前記変化検出部により検出されたアイテムｉ、ｊに関する関連度の差分Ｊ（ｔ２）−Ｊ（ｔ１）から、時刻ｔ２の次の時刻ｔ３におけるアイテム間の関連度Ｊ（ｔ３）を予測する関連度予測部と、をさらに備えていてもよい。この場合、前記推薦部は、所定のタイミングにおいて前記関連度算出部により算出された関連度に基づいてアイテムを推薦し、当該所定のタイミング以外のタイミングにおいて前記関連度予測部により予測された関連度に基づいてアイテムを推薦する。
【００１２】
また、上記のアイテム推薦システムは、前記フィードバック履歴格納部により格納されたフィードバックの情報に基づいてユーザの嗜好を示す嗜好情報を生成する嗜好情報生成部をさらに備えていてもよい。この場合、前記嗜好情報生成部は、前記フィードバック受付部によりフィードバックを受け付ける直前に、前記フィードバック履歴格納部により格納されたフィードバックの情報に基づいて嗜好情報を生成し、前記推薦部は、前記フィードバック受付部によりフィードバックを受け付ける直前に生成された嗜好情報に基づき、前記関連度が高いアイテムの中から、前記フィードバック受付部によりアイテムにフィードバックを与えたユーザの嗜好が高いアイテムを推薦する。
【００１３】
また、アイテム毎に予め優先度係数が設定されている場合、前記推薦部は、前記優先度係数が乗算された関連度に基づき、前記フィードバック受付部によりアイテムにフィードバックを与えたユーザに対して、当該アイテムに対する関連度が高いアイテムを推薦するように構成されていてもよい。
【００１４】
また、前記フィードバック履歴格納部は、ネットワークを介して接続された記憶装置に前記フィードバックの履歴を格納するように構成されていてもよい。
【００１５】
また、前記フィードバック受付部によりアイテムｉに対するユーザｕのフィードバックを受け付けた際に、前記フィードバック履歴格納部により格納されるフィードバックの情報がＰ（ｉ，ｕ）であり、フィードバックを受け付けた場合にＰ（ｉ，ｕ）＝１、フィードバックを受け付けていない場合にＰ（ｉ，ｕ）＝０が設定されるとすると、アイテムｉとアイテムｊ（ｊ≠ｉ）との間の関連度Ｊ（ｉ，ｊ）は、後述する式（１）及び式（２）により表現されてもよい。
【００１６】
また、上記課題を解決するために、本発明の別の観点によれば、アイテムに対するユーザのフィードバックを受け付けるフィードバック受付ステップと、前記フィードバック受付ステップで現在又は過去に受け付けたフィードバックの情報をユーザとアイテムの組み合わせ毎に格納するフィードバック履歴格納ステップと、前記フィードバック受付ステップでフィードバックを受け付けた際、前記フィードバック履歴格納ステップで格納されたフィードバックの情報を用いて、同じユーザが共にフィードバックを与えている度合いを示す第１情報、及び、多くのユーザがフィードバックを与えている度合いを示す第２情報に基づくアイテム間の関連度を算出する関連度算出ステップと、前記関連度算出ステップで算出された関連度に基づき、前記フィードバック受付ステップでアイテムにフィードバックを与えたユーザに対して、当該アイテムに対する関連度が高いアイテムを即座に推薦する推薦ステップと、を含む、アイテム推薦方法が提供される。
【００１７】
また、上記課題を解決するために、本発明の別の観点によれば、アイテムに対するユーザのフィードバックを受け付けるフィードバック受付機能と、前記フィードバック受付機能により現在又は過去に受け付けたフィードバックの情報をユーザとアイテムの組み合わせ毎に格納するフィードバック履歴格納機能と、前記フィードバック受付機能によりフィードバックを受け付けた際、前記フィードバック履歴格納機能により格納されたフィードバックの情報を用いて、同じユーザが共にフィードバックを与えている度合いを示す第１情報、及び、多くのユーザがフィードバックを与えている度合いを示す第２情報に基づくアイテム間の関連度を算出する関連度算出機能と、前記関連度算出機能により算出された関連度に基づき、前記フィードバック受付機能によりアイテムにフィードバックを与えたユーザに対して、当該アイテムに対する関連度が高いアイテムを即座に推薦する推薦機能と、コンピュータに実現させるためのプログラムが提供される。
【００１８】
また、上記課題を解決するために、本発明の別の観点によれば、上記のプログラムが記録された、コンピュータにより読み取り可能な記録媒体が提供される。
【発明の効果】
【００１９】
以上説明したように本発明によれば、ユーザのフィードバックを即座に反映した推薦を実現することが可能になる。
【図面の簡単な説明】
【００２０】
【図１】本発明の一実施形態に係る推薦システムの構成について説明するための説明図である。
【図２】同実施形態の推薦システムを構成するサーバ装置の構成、及び記憶装置の構成について説明するための説明図である。
【図３】同実施形態に係る推薦システムおいて利用される履歴テーブルの構成について説明するための説明図である。
【図４】同実施形態に係る推薦システムおいて利用される中間値テーブルの構成について説明するための説明図である。
【図５】同実施形態に係る推薦システムおいて利用される関連度テーブルの構成について説明するための説明図である。
【図６】同実施形態に係る推薦システムおいて利用される嗜好情報の構成について説明するための説明図である。
【図７】同実施形態に係る推薦システムにおいて利用される履歴マトリクス（Ｐ行列）の構成について説明するための説明図である。
【図８】同実施形態に係る推薦システムにおいて利用される中間値マトリクス（Ｄ行列）の構成について説明するための説明図である。
【図９】同実施形態に係る推薦システムにおいて利用される関連度マトリクス（Ｊ行列）の構成について説明するための説明図である。
【図１０】同実施形態に係るアイテムの推薦方法について説明するための説明図である。
【図１１】同実施形態に係るアイテムの推薦方法について具体的に説明するための説明図である。
【図１２】同実施形態に係るアイテムの推薦方法について具体的に説明するための説明図である。
【図１３】同実施形態に係る履歴マトリクス（Ｐ行列）の更新方法について説明するための説明図である。
【図１４】同実施形態に係る中間値マトリクス（Ｄ行列）の更新方法について説明するための説明図である。
【図１５】同実施形態に係る関連度マトリクス（Ｊ行列）の更新方法について説明するための説明図である。
【図１６】同実施形態に係る嗜好情報を用いた推薦方法について説明するための説明図である。
【図１７】同実施形態に係る推薦システムにおいて利用される購入数テーブルの構成について説明するための説明図である。
【図１８】同実施形態に係る推薦システムにおいて利用される共起数テーブルの構成について説明するための説明図である。
【図１９】同実施形態の第１変形例に係る関連度テーブル（Ｊ行列）の更新方法について説明するための説明図である。
【図２０】同実施形態の第１変形例に係る関連度テーブル（Ｊ行列）の更新方法について説明するための説明図である。
【図２１】同実施形態の第１変形例に係る関連度テーブル（Ｊ行列）の更新方法について説明するための説明図である。
【図２２】同実施形態の第２変形例に係るバイアスパラメータを利用した関連度テーブル（Ｊ行列）の更新方法について説明するための説明図である。
【図２３】同実施形態に係るサーバ装置及びユーザ端末の機能を実現することが可能なハードウェア構成について説明するための説明図である。
【発明を実施するための形態】
【００２１】
以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【００２２】
［説明の流れについて］
ここで、以下に記載する本発明の実施形態に関する説明の流れについて簡単に述べる。まず、図１を参照しながら、本実施形態に係る推薦システム１０の構成について説明する。次いで、図２を参照しながら、同実施形態の推薦システム１０を構成するサーバ装置１１の構成、及び記憶装置１２の構成について説明する。この中で、図３〜図６を参照しながら、同実施形態に係る推薦システム１０おいて利用される履歴テーブル、中間値テーブル、関連度テーブル、嗜好情報の構成についても併せて説明する。
【００２３】
次いで、図７〜図９を参照しながら、同実施形態に係る推薦システムにおいて利用される履歴マトリクス（Ｐ行列）、中間値マトリクス（Ｄ行列）、関連度マトリクス（Ｊ行列）の構成について説明する。また、図１０を参照しながら、履歴マトリクス（Ｐ行列）、中間値マトリクス（Ｄ行列）、関連度マトリクス（Ｊ行列）を利用した同実施形態に係るアイテムの推薦方法について説明する。
【００２４】
次いで、図１１、図１２を参照しながら、同実施形態に係るアイテムの推薦方法について、より具体的に説明する。この中で、図１３〜図１６を参照しながら、同実施形態に係る履歴マトリクス（Ｐ行列）、中間値マトリクス（Ｄ行列）、関連度マトリクス（Ｊ行列）の更新方法、嗜好情報を用いた推薦方法について具体的に説明する。また、図１７、図１８、図１９を参照しながら、同実施形態に係る推薦システムにおいて利用される購入数テーブル、及び共起数テーブルの構成について説明する。
【００２５】
次いで、図１９〜図２１を参照しながら、同実施形態の第１変形例に係る関連度テーブル（Ｊ行列）の更新方法について説明する。次いで、図２２を参照しながら、同実施形態の第２変形例に係るバイアスパラメータを利用した関連度テーブル（Ｊ行列）の更新方法について説明する。次いで、図２３を参照しながら、同実施形態に係るサーバ装置１１及びユーザ端末１３の機能を実現することが可能なハードウェア構成について説明する。最後に、同実施形態の技術的思想について纏め、その技術的思想から得られる作用効果について簡単に説明する。
【００２６】
（説明項目）
１：実施形態
１−１：推薦システム１０の構成
１−２：サーバ装置１１及び記憶装置１２の機能構成
１−３：Ｐ行列、Ｄ行列、Ｊ行列を用いた推薦方法
１−３−１：Ｐ行列、Ｄ行列、Ｊ行列の構成
１−３−２：大まかな処理の流れ
１−３−３：具体的な処理の流れ
１−３−４：嗜好情報を用いた推薦方法
１−３−５：効率化手法について
１−４：変形例
１−４−１：近似的なＪ行列の更新方法（第１変形例）
１−４−２：バイアスパラメータに基づくＪ行列の更新方法（第２変形例）
１−５：ハードウェア構成
２：まとめ
【００２７】
＜１：実施形態＞
本発明の一実施形態について説明する。本実施形態は、ユーザからフィードバックを受けた際に、当該ユーザの嗜好だけでなく、ユーザ全体の傾向に対する影響も考慮して、当該ユーザの嗜好及びユーザ全体の傾向を反映した推薦を即座に実行する仕組みに関する。
【００２８】
［１−１：推薦システム１０の構成］
まず、図１を参照しながら、本実施形態に係る推薦システム１０の構成について説明する。図１は、本実施形態に係る推薦システム１０の構成について説明するための説明図である。なお、図１に示した推薦システム１０のシステム構成は一例である。
【００２９】
図１に示すように、推薦システム１０は、サーバ装置１１と、記憶装置１２と、複数のユーザ端末１３とにより構成される。また、サーバ装置１１と複数のユーザ端末１３はネットワーク１４を介して接続されている。なお、図１には、ユーザ端末１３としてパーソナルコンピュータ及び携帯電話の例が示されているが、ユーザ端末１３の形態はこれに限定されず、情報端末、ゲーム機、映像機器、情報家電などであってもよい。
【００３０】
サーバ装置１１は、ユーザのフィードバックを受け付け、受け付けたフィードバックに応じてユーザにサービスを提供する手段である。例えば、サーバ装置１１は、オンラインストアの機能を有し、ユーザに対して商品の販売サービスを提供する。また、サーバ装置１１は、ネットワーク１４を介してユーザ端末１３に商品情報を提供したり、ユーザ端末１３から受けたフィードバックに応じてオンライン決済サービスなどのサービスを提供したりする。さらに、サーバ装置１１は、ユーザ端末１３からフィードバックを受けた場合、そのフィードバックの情報（例えば、購入履歴や評価値）を記憶装置１２に格納する。なお、記憶装置１２は、サーバ装置１１の筐体内に設けられていてもよい。
【００３１】
記憶装置１２に格納されたフィードバックの情報は、ユーザの嗜好を解析したり、アイテム間の関連性を解析したりするために利用される。例えば、サーバ装置１１は、各ユーザによるアイテムの購入数や各ユーザが各アイテムに付した評価値に基づいて各ユーザの嗜好を解析し、購入数が多いアイテムや評価値が高いアイテムに対して高いスコアを割り当てた嗜好情報を生成する（例えば、図６を参照）。また、サーバ装置１１は、各ユーザが各アイテムに与えたフィードバックの有無に基づいてアイテム間の関連性を解析し、アイテム間の関連度（例えば、図５を参照）を算出する。さらに、サーバ装置１１は、この嗜好情報及びアイテム間の関連度に基づき、フィードバックを与えたユーザに対して、フィードバックが与えられたアイテムに関連するアイテムを推薦する。
【００３２】
以上、推薦システム１０の構成について説明した。上記の通り、推薦システム１０におけるアイテムの推薦は、主に、サーバ装置１１及び記憶装置１２の機能により実現される。そこで、以下ではサーバ装置１１及び記憶装置１２の機能構成を中心に説明を進める。
【００３３】
［１−２：サーバ装置１１及び記憶装置１２の機能構成］
まず、図２を参照しながら、本実施形態に係るサーバ装置１１及び記憶装置１２の機能構成について説明する。図２は、本実施形態に係るサーバ装置１１及び記憶装置１２の機能構成について説明するための説明図である。
【００３４】
図２に示すように、サーバ装置１１は、主に、フィードバック受付部１１１と、フィードバック情報更新部１１２と、中間値テーブル生成部１１３と、関連度算出部１１４と、アイテム推薦部１１５と、嗜好解析部１１６とにより構成される。また、記憶装置１２は、主に、履歴テーブル格納部１２１と、中間値テーブル格納部１２２と、関連度テーブル格納部１２３とにより構成される。
【００３５】
まず、ユーザ端末１３を用いてユーザから与えられたフィードバックは、フィードバック受付部１１１に入力される。例えば、ユーザがアイテムの購入操作を実行した場合、アイテムの購入を示す情報がフィードバックとしてフィードバック受付部１１１に入力される。フィードバック受付部１１１に入力されたフィードバックの情報は、フィードバック情報更新部１１２に入力される。フィードバックの情報が入力されると、フィードバック情報更新部１１２は、入力されたフィードバックの情報を履歴テーブル格納部１２１に格納する。
【００３６】
履歴テーブル格納部１２１には、例えば、図３に示すような履歴テーブルが格納されている。そして、履歴テーブルには、どのユーザが、どのアイテムに対してフィードバックを与えたかが分かるように、フィードバックを与えられたアイテムと、フィードバックを与えたユーザとの組み合わせを示す情報が格納されている。
【００３７】
図３に例示した履歴テーブルにおいてＵｓｅｒ  ＩＤは、フィードバックを与えたユーザの識別情報を表す。また、Ｉｔｅｍ  ＩＤは、フィードバックが与えられたアイテムの識別情報を表す。従って、図３の例から、Ｕｓｅｒ  ＩＤ＝１のユーザがＩｔｅｍ  ＩＤ＝１，２のアイテムに対してフィードバックを与えたことが分かる。同様に、図３の例から、Ｕｓｅｒ  ＩＤ＝２のユーザがＩｔｅｍ  ＩＤ＝１のアイテムに、Ｕｓｅｒ  ＩＤ＝３のユーザがＩｔｅｍ  ＩＤ＝２のアイテムにフィードバックを与えたことが分かる。
【００３８】
フィードバック情報更新部１１２により履歴テーブル格納部１２１にフィードバックの情報が格納されると、中間値テーブル生成部１１３は、履歴テーブル格納部１２１に格納された履歴テーブルに基づいて中間値テーブル（図４を参照）を生成する。この中間値テーブルは、アイテム間の関連性に関する情報を示すものである。中間値テーブル生成部１１３により生成された中間値テーブルは、中間値テーブル格納部１２２に格納される。
【００３９】
中間値テーブル格納部１２２に中間値テーブルが格納されると、関連度算出部１１４は、中間値テーブル格納部１２２に格納された中間値テーブルを用いてアイテム間の関連度を算出する。そして、関連度算出部１１４により算出されたアイテム間の関連度は、関連度テーブル（図５を参照）として関連度テーブル格納部１２３に格納される。
【００４０】
関連度テーブル格納部１２３にアイテム間の関連度が格納されると、アイテム推薦部１１５は、関連度テーブル格納部１２３に格納された関連度テーブルに基づき、フィードバックが与えられたアイテムに対して関連度の高いアイテム群を選択する。次いで、アイテム推薦部１１５は、選択したアイテム群の中からユーザの嗜好に合う所定数のアイテムを選択して、フィードバックを与えたユーザに推薦する。このとき、アイテム推薦部１１５は、嗜好解析部１１６により生成された嗜好情報に基づいて、選択したアイテム群の中からユーザの嗜好に合う所定数のアイテムを選択する。
【００４１】
例えば、嗜好解析部１１６は、フィードバックを与えたユーザが過去にフィードバックを多く与えたアイテムに対して高いスコアを割り当て、アイテム毎に割り当てたスコアを嗜好情報（図６を参照）として保持する。図６の例において、Ｕｓｅｒ  ＩＤ＝１のユーザは、Ｉｔｅｍ  ＩＤ＝１のアイテムに対して高い嗜好を有する。なお、嗜好解析部１１６は、フィードバックを与えたユーザが過去に良いフィードバックを与えたアイテムに対して高いスコアを割り当てるように構成されていてもよい。
【００４２】
以上、サーバ装置１１及び記憶装置１２の機能構成について説明した。但し、上記説明においては、履歴テーブル、中間値テーブル、関連度テーブルの構成、履歴テーブルの格納値から中間値テーブルの格納値を算出する方法、中間値テーブルの格納値から関連度テーブルの格納値を算出する方法については説明を省略した。そこで、以下ではフィードバック情報からアイテム間の関連度を算出するための具体的な方法、及び関連度に基づくアイテムの推薦方法について、より詳細に説明する。
【００４３】
［１−３：Ｐ行列、Ｄ行列、Ｊ行列を用いた推薦方法］
上記の通り、本実施形態に係るサーバ装置１１は、フィードバックを与えたユーザに対して推薦するアイテムを選択するために、履歴テーブル、中間値テーブル、関連度テーブルを利用する。但し、実際には図３〜図５に例示した履歴テーブル、中間値テーブル、関連度テーブルに代え、それぞれ図７〜図９に示すような履歴マトリクス（以下、Ｐ行列）、中間値マトリクス（以下、Ｄ行列）、関連度マトリクス（以下、Ｊ行列）を利用する。
【００４４】
（１−３−１：Ｐ行列、Ｄ行列、Ｊ行列の構成）
ここで、Ｐ行列、Ｄ行列、Ｊ行列の構成について説明する。
【００４５】
（Ｐ行列について）
上記のＰ行列は、図７に示すように、フィードバックを与えたユーザとフィードバックを受けたアイテムとの関係を示す行列である。ユーザｕがアイテムｉにフィードバックを与えた場合、ユーザｕ、アイテムｉに対応するＰ行列の要素Ｐ（ｉ，ｕ）に１が入力される。例えば、図７の例では、ユーザ２（Ｕｓｅｒ  ２）、アイテム１（Ｉｔｅｍ  １）に対応する欄（Ｐ行列の要素Ｐ（１，２））に１が入力されているため、アイテム１にユーザ２がフィードバックを与えたことが分かる。
【００４６】
なお、このＰ行列は、履歴テーブル格納部１２１に格納される。また、フィードバック受付部１１１によりフィードバックを受け付けると、フィードバック情報更新部１１２により履歴テーブル格納部１２１に格納されたＰ行列が更新される。
【００４７】
（Ｄ行列について）
上記のＤ行列は、図８に示すように、アイテム間の関係を示す行列である。このＤ行列は、後述するＪ行列を算出するために利用される行列であり、Ｐ行列に基づいて算出される。アイテムｉとアイテムｊに関するＤ行列の要素Ｄ（ｉ，ｊ）は、下記の式（１）により定義される。なお、このＤ行列は、中間値テーブル生成部１１３により生成され、中間値テーブル格納部１２２に格納される。また、Ｄ行列はｉ，ｊに対して対称であるため、Ｊ行列は、図８に示すようにｉ＞ｊの要素だけを中間値テーブル格納部１２２に格納しておけばよい。
【００４８】
【数１】
2012003359.tif 000003
【００４９】
（Ｊ行列について）
上記のＪ行列は、図９に示すように、アイテム間の関連度を示す行列である。このＪ行列は、Ｐ行列及びＤ行列に基づいて算出される。アイテムｉとアイテムｊに関するＪ行列の要素Ｊ（ｉ，ｊ）は、下記の式（２）により定義される。なお、このＪ行列は、関連度算出部１１４により算出され、関連度テーブル格納部１２３に格納される。また、Ｊ行列はｉ，ｊに対して対称であるため、Ｊ行列は、図９に示すようにｉ＞ｊの要素だけを関連度テーブル格納部１２３に格納しておけばよい。
【００５０】
【数２】
2012003359.tif 000004
【００５１】
以上、Ｐ行列、Ｄ行列、Ｊ行列の構成について説明した。以下では、上記のＰ行列、Ｄ行列、Ｊ行列の更新方法、及びこれらを用いたアイテムの推薦方法について説明する。
【００５２】
（１−３−２：大まかな処理の流れ）
まず、図１０を参照しながら、Ｐ行列、Ｄ行列、Ｊ行列を用いたアイテムの推薦方法に係る処理の大まかな流れについて説明する。図１０は、Ｐ行列、Ｄ行列、Ｊ行列を用いたアイテムの推薦方法に係る処理の大まかな流れについて説明するための説明図である。
【００５３】
図１０に示すように、まず、サーバ装置１１は、フィードバックが有るか否かを判定する（Ｓ１０１）。フィードバック受付部１１１によりフィードバックを受け付けた場合、サーバ装置１１は、処理をステップＳ１０２に進める。一方、フィードバック受付部１１１によりフィードバックを受け付けていない場合、サーバ装置１１は、処理をステップＳ１０１に戻す。処理をステップＳ１０２に進めた場合、サーバ装置１１は、フィードバック情報更新部１１２の機能により、フィードバック受付部１１１により受け付けたフィードバックの情報に基づいて履歴テーブル格納部１２１に格納されたＰ行列を更新する（Ｓ１０２）。
【００５４】
次いで、履歴テーブル格納部１２１に格納されたＰ行列を更新したサーバ装置１１は、中間値テーブル生成部１１３の機能により、更新後のＰ行列に基づいて中間値テーブル格納部１２２に格納されたＤ行列を更新する（Ｓ１０３）。次いで、中間値テーブル格納部１２２に格納されたＤ行列を更新したサーバ装置１１は、関連度算出部１１４の機能により、更新後のＤ行列及びＰ行列に基づいて関連度テーブル格納部１２３に格納されたＪ行列を更新する（Ｓ１０４）。次いで、サーバ装置１１は、アイテム推薦部１１５の機能により、更新後のＪ行列及び嗜好情報に基づいて、フィードバックを受け付けたアイテムに関連するアイテムを推薦する（Ｓ１０５）。
【００５５】
以上、Ｐ行列、Ｄ行列、Ｊ行列を用いたアイテムの推薦方法に係る処理の大まかな流れについて説明した。
【００５６】
（１−３−３：具体的な処理の流れ）
次に、図１１、図１２を参照しながら、Ｐ行列、Ｄ行列、Ｊ行列の具体的な更新処理について説明する。図１１、図１２は、Ｐ行列、Ｄ行列、Ｊ行列の具体的な更新処理について説明するための説明図である。ここでは一例として、ユーザｕがアイテムｉを購入した際に実行される具体的な処理の流れについて説明する。なお、購入以外のフィードバックについても同様である。
【００５７】
まず、図１１に示すように、サーバ装置１１は、履歴テーブル格納部１２１に格納されたＰ行列を参照し、Ｐ行列の要素Ｐ（ｉ，ｕ）が０であるか否かを判定する（Ｓ１１１）。Ｐ行列の要素Ｐ（ｉ，ｕ）が０である場合、サーバ装置１１は、処理をステップＳ１１２に進める。一方、Ｐ行列の要素Ｐ（ｉ，ｕ）が０でない場合、サーバ装置１１は、処理をステップＳ１１３に進める。なお、Ｐ行列の要素Ｐ（ｉ，ｕ）が０である場合とは、アイテムｉに対してユーザｕが過去にフィードバックを与えていないことを示している。
【００５８】
ステップＳ１１２に処理を進めた場合、サーバ装置１１は、フィードバック情報更新部１１２の機能により、Ｐ行列の要素Ｐ（ｉ，ｕ）に１を設定して、履歴テーブル格納部１２１に格納されたＰ行列を更新する（Ｓ１１２）。例えば、ユーザ５がアイテム２を購入した場合、図１３に示すように、Ｐ行列の要素Ｐ（２，５）が１に更新される。Ｐ行列を更新したサーバ装置１１は、処理をステップＳ１１３に進める。
【００５９】
ステップＳ１１３に処理を進めた場合、サーバ装置１１は、パラメータｋに関する処理ループ（ｋ＝１〜ｉ−１）を開始する（Ｓ１１３）。まず、サーバ装置１１は、履歴テーブル格納部１２１に格納された更新後のＰ行列を参照し、Ｐ行列の要素Ｐ（ｋ，ｕ）が１であるか否かを判定する（Ｓ１１４）。Ｐ行列の要素Ｐ（ｋ，ｕ）が１である場合、サーバ装置１１は、処理をステップＳ１１５に進める。一方、Ｐ行列の要素Ｐ（ｋ，ｕ）が１でない場合、サーバ装置１１は、処理をステップＳ１１６に進める。
【００６０】
処理をステップＳ１１５に進めた場合、サーバ装置１１は、中間値テーブル格納部１２２に格納されたＤ行列を参照し、Ｄ行列の要素Ｄ（ｉ，ｋ）を用いて関連度テーブル格納部１２３に格納されたＪ行列を更新する（Ｓ１１５）。具体的には、サーバ装置１１が、関連度算出部１１４の機能により、関連度テーブル格納部１２３に格納されたＪ行列の要素Ｊ（ｉ，ｋ）に１／Ｄ（ｉ，ｋ）を加算して新たなＪ行列の要素Ｊ（ｉ，ｋ）を算出する。そして、この新たなＪ行列の要素Ｊ（ｉ，ｋ）が関連度テーブル格納部１２３に格納され、処理がステップＳ１１８に進められる。
【００６１】
ステップＳ１１４において処理をステップＳ１１６に進めた場合、サーバ装置１１は、中間値テーブル生成部１１３の機能により、中間値テーブル格納部１２２に格納されたＤ行列の要素Ｄ（ｉ，ｋ）に１を加算して新たなＤ行列の要素Ｄ（ｉ，ｋ）を算出する（Ｓ１１６）。そして、この新たなＤ行列の要素Ｄ（ｉ，ｋ）が中間値テーブル格納部１２２に格納され、処理がステップＳ１１７に進められる。
【００６２】
次いで、サーバ装置１１は、関連度算出部１１４の機能により、中間値テーブル格納部１２２に格納された更新後のＤ行列及び関連度テーブル格納部１２３に格納されたＪ行列を用いて新たなＪ行列の要素Ｊ（ｉ，ｋ）を算出する（Ｓ１１７）。このとき、サーバ装置１１は、関連度算出部１１４の機能により、下記の式（３）に基づいて新たなＪ行列の要素Ｊ（ｉ，ｋ）を算出する。そして、この新たなＪ行列の要素Ｊ（ｉ，ｋ）が関連度テーブル格納部１２３に格納され、処理がステップＳ１１８に進められる。
【００６３】
【数３】
2012003359.tif 000005
【００６４】
処理がステップＳ１１８に進んだ場合、サーバ装置１１は、パラメータｋに関する処理ループを終了するか否か判定する（Ｓ１１８）。具体的には、ステップＳ１１８において、パラメータｋがｉ−１であるか否かが判定される。ｋ＜ｉ−１である場合、パラメータｋに１が加算されて処理がステップＳ１１３に戻される。一方、ｋ＝ｉ−１である場合、処理がステップＳ１１９（図１２）に進められる。
【００６５】
ここで、図１４、図１５を参照しながら、Ｄ行列の更新処理（Ｓ１１４、Ｓ１１６を参照）、Ｊ行列の更新処理（Ｓ１１４、Ｓ１１５、Ｓ１１７を参照）について、具体例を挙げながら説明を補足する。ここでは一例として、ユーザ５がアイテム２を購入した場合について考える（ｕ＝５，ｉ＝２）。なお、ユーザ５がアイテム２を購入した場合におけるＰ行列の更新方法については、図１３を参照しながら既に説明した通りである。
【００６６】
ユーザ５がアイテム２を購入した場合、図１３に示すように、Ｐ行列の要素Ｐ（２，５）が１に更新される（ステップＳ１１２に対応）。
【００６７】
Ｐ（２，５）が更新されると、ステップＳ１１３〜Ｓ１１８におけるパラメータｋ（ｋ＝１〜４）の処理ループが開始される。まず、ステップＳ１１４においてＰ（ｋ，５）が１であるか否かが判定される。図１４の例では、更新後のＰ行列においてＰ（１，５）≠１、Ｐ（２，５）＝１、Ｐ（３，５）＝１、Ｐ（４，５）≠１であるから、ｋ＝１、４の場合に処理がステップＳ１１５へ進み、ｋ＝２、３の場合に処理がステップＳ１１６へ進められる。
【００６８】
処理がステップＳ１１５に進んだ場合にはＤ行列の更新処理が実行されない。つまり、ｋ＝２、３の場合にはＤ行列の更新処理が実行されない。一方、処理がステップＳ１１６に進んだ場合にはＤ行列の更新処理が実行される。具体的には、ｋ＝１、４の場合にステップＳ１１６におけるＤ行列の更新処理が実行される。従って、図１４の例では、Ｄ行列のうち、Ｄ（１，２）、Ｄ（２，４）のみが更新の対象となり、それぞれ１が加算されて新たなＤ（１，２）、Ｄ（２，４）に更新される。
【００６９】
次いで、Ｊ行列の更新処理が実行される。処理がステップＳ１１５に進んだ場合（ｋ＝２、３の場合）、図１５に示すように、Ｊ（２，３）に１／Ｄ（２，３）が加算されて新たなＪ（２，３）に更新される。一方、処理がステップＳ１１７に進んだ場合（ｋ＝１、４の場合）、図１５に示すように、上記の式（３）に基づいて、それぞれ新たなＪ（１，２）、Ｊ（２，４）に更新される。
【００７０】
以上説明したように、パラメータｋ（ｋ＝１〜ｉ−１）に関する処理ループ（Ｓ１１３〜Ｓ１１８）において、Ｄ行列、Ｊ行列が更新される。この処理ループ（Ｓ１１３〜Ｓ１１８）が終了すると、処理はステップＳ１１９（図１２）に進行する。
【００７１】
ステップＳ１１９（図１２）に処理を進めた場合、サーバ装置１１は、パラメータｋに関する処理ループ（ｋ＝ｉ＋１〜ｎ）を開始する（Ｓ１１９）。まず、サーバ装置１１は、履歴テーブル格納部１２１に格納された更新後のＰ行列を参照し、Ｐ行列の要素Ｐ（ｋ，ｕ）が１であるか否かを判定する（Ｓ１２０）。Ｐ行列の要素Ｐ（ｋ，ｕ）が１である場合、サーバ装置１１は、処理をステップＳ１２１に進める。一方、Ｐ行列の要素Ｐ（ｋ，ｕ）が１でない場合、サーバ装置１１は、処理をステップＳ１２２に進める。
【００７２】
処理をステップＳ１２１に進めた場合、サーバ装置１１は、中間値テーブル格納部１２２に格納されたＤ行列を参照し、Ｄ行列の要素Ｄ（ｋ，ｉ）を用いて関連度テーブル格納部１２３に格納されたＪ行列を更新する（Ｓ１２１）。具体的には、サーバ装置１１が、関連度算出部１１４の機能により、関連度テーブル格納部１２３に格納されたＪ行列の要素Ｊ（ｋ，ｉ）に１／Ｄ（ｋ，ｉ）を加算して新たなＪ行列の要素Ｊ（ｋ，ｉ）を算出する。そして、この新たなＪ行列の要素Ｊ（ｋ，ｉ）が関連度テーブル格納部１２３に格納され、処理がステップＳ１２４に進められる。
【００７３】
ステップＳ１２０において処理をステップＳ１２２に進めた場合、サーバ装置１１は、中間値テーブル生成部１１３の機能により、中間値テーブル格納部１２２に格納されたＤ行列の要素Ｄ（ｋ，ｉ）に１を加算して新たなＤ行列の要素Ｄ（ｋ，ｉ）を算出する（Ｓ１２２）。そして、この新たなＤ行列の要素Ｄ（ｋ，ｉ）が中間値テーブル格納部１２２に格納され、処理がステップＳ１２３に進められる。
【００７４】
次いで、サーバ装置１１は、関連度算出部１１４の機能により、中間値テーブル格納部１２２に格納された更新後のＤ行列及び関連度テーブル格納部１２３に格納されたＪ行列を用いて新たなＪ行列の要素Ｊ（ｋ，ｉ）を算出する（Ｓ１２３）。このとき、サーバ装置１１は、関連度算出部１１４の機能により、下記の式（４）に基づいて新たなＪ行列の要素Ｊ（ｋ，ｉ）を算出する。そして、この新たなＪ行列の要素Ｊ（ｋ，ｉ）が関連度テーブル格納部１２３に格納され、処理がステップＳ１２４に進められる。
【００７５】
【数４】
2012003359.tif 000006
【００７６】
処理がステップＳ１２４に進んだ場合、サーバ装置１１は、パラメータｋに関する処理ループを終了するか否か判定する（Ｓ１２４）。具体的には、ステップＳ１２４において、パラメータｋがｎであるか否かが判定される。ｋ＜ｎである場合、パラメータｋに１が加算されて処理がステップＳ１１９に戻される。一方、ｋ＝ｎである場合、Ｐ行列、Ｄ行列、Ｊ行列の更新に係る一連の処理が終了する。なお、ステップＳ１１９〜Ｓ１２４の処理ループにおけるＤ行列、Ｊ行列の具体的な更新方法は、図１４、図１５を参照しながら説明したステップＳ１１３〜Ｓ１１８の処理ループにおけるＤ行列、Ｊ行列の具体的な更新方法と実質的に同じである。
【００７７】
以上、Ｐ行列、Ｄ行列、Ｊ行列の更新方法について説明した。
【００７８】
（１−３−４：嗜好情報を用いた推薦方法）
次に、図１６を参照しながら、嗜好情報及びＪ行列を用いたアイテムの推薦方法に係る処理の流れについて説明する。図１６は、嗜好情報及びＪ行列を用いたアイテムの推薦方法に係る処理の流れについて説明するための説明図である。
【００７９】
図１６に示すように、まず、サーバ装置１１は、嗜好解析部１１６の機能により、フィードバックを学習し、その学習結果に基づいて嗜好情報を取得する（Ｓ１３１）。但し、サーバ装置１１は、嗜好解析部１１６の機能により、ユーザにより手入力された嗜好情報を利用するように構成されていてもよい。
【００８０】
例えば、フィードバック受付部１１１を介して嗜好解析部１１６に購入の履歴、評価値、詳細情報の閲覧履歴などのフィードバックが入力される。このようなフィードバックが入力されると、嗜好解析部１１６は、購入頻度の高いアイテム、評価値の高いアイテム、詳細情報の閲覧頻度が高いアイテムに高いスコアを割り当て、図６に示すような嗜好情報を生成する。図６に示すように、この嗜好情報は、各アイテムに対する各ユーザの嗜好を表すスコアにより表現される。従って、嗜好情報のうち、フィードバックを与えたユーザに対する各アイテムのスコアを比較し、スコアが高いアイテムを抽出することにより、そのユーザが嗜好するアイテムを検出することができる。
【００８１】
ここで、嗜好情報の生成方法について説明を補足する。上記の通り、嗜好情報は、ユーザにより与えられたフィードバックに基づいて生成される。但し、フィードバックには、購入、評価、詳細情報の閲覧など、様々な種類がある。例えば、詳細情報を閲覧しただけのアイテムよりも、購入したアイテムの方がユーザの嗜好が高いと考えられる。また、当然のことながら低い評価値を与えられたアイテムよりも、高い評価値を与えられたアイテムの方がユーザの嗜好が高いと考えられる。そこで、嗜好情報を生成する際には、フィードバックの種類に応じた重みを考慮する必要がある。
【００８２】
例えば、アイテムｉに対するユーザｕの嗜好度を示すスコアをＵＰ（ｕ，ｉ）と表現し、ｋ番目のフィードバックに対する重みをａｋと表現し、アイテムｉに対するｋ番目のフィードバックが与えられた際に付されるスコア（フィードバックの種類に依存しないスコア）をｘｉ，ｋとすると、スコアＵＰ（ｕ，ｉ）は、下記の式（５）により表現される。但し、スコアｘｉ，ｋは、ｋに依らない所定値に設定されていてもよいし、ｋに応じて変化するようなスコアに設定されていてもよい。例えば、フィードバックを受けたタイミングが早い順に大きなスコアｘｉ，ｋが付されるように設定されていてもよい。また、重みａｋには、例えば、購入に大きな重み値（１．０）、評価に中くらいの重み値（０．６）、詳細情報の閲覧に低い重み値（０．３）などが設定される。
【００８３】
【数５】
2012003359.tif 000007
【００８４】
このようにして嗜好解析部１１６により嗜好情報を生成すると、サーバ装置１１は、嗜好解析部１１６により生成した嗜好情報をアイテム推薦部１１５に入力する。また、サーバ装置１１は、アイテム推薦部１１５の機能により、フィードバックを受け付けたアイテムに関連するアイテム群（以下、関連アイテム群）を抽出する（Ｓ１３２）。このとき、サーバ装置１１は、アイテム推薦部１１５の機能により、関連度テーブル格納部１２３に格納されたＪ行列を参照し、フィードバックを受け付けたアイテムとの間で高い相関値（Ｊ行列の値）を持つアイテム群を抽出する。
【００８５】
関連アイテム群を抽出したサーバ装置１１は、アイテム推薦部１１５の機能により、嗜好解析部１１６から入力された嗜好情報を用いてユーザの嗜好に合う（スコアの高い）所定数のアイテムを関連アイテム群の中から選択する。そして、サーバ装置１１は、アイテム推薦部１１５の機能により、関連アイテム群の中から選択したアイテム（以下、関連アイテム）を含む推薦リストを生成する（Ｓ１３３）。次いで、サーバ装置１１は、アイテム推薦部１１５の機能により、フィードバックを与えたユーザに対し、推薦リストに含まれる関連アイテムを推薦する（Ｓ１３４）。
【００８６】
以上、嗜好情報を用いた推薦方法について説明した。
【００８７】
（１−３−５：効率化手法について）
次に、図１７、図１８を参照しながら、Ｊ行列を算出する際の演算効率及びメモリの利用効率を高めるための工夫について説明する。図１７、図１８は、Ｊ行列を算出する際の演算効率及びメモリの利用効率を高めるための工夫について説明するための説明図である。上記の通り、Ｊ行列の演算は、上記の式（１）及び式（２）を演算することに相当する。上記の式（１）及び式（２）を参照すると、Ｐ行列の要素に関する２種類の和Ｓ１、Ｓ２（下記の式（６）及び式（７））が演算に含まれていることが分かる。
【００８８】
【数６】
2012003359.tif 000008
【００８９】
上記のＳ１（ｉ）は、全てのユーザがアイテムｉに対してフィードバックを与えた頻度を表している。一方、上記のＳ２（ｉ，ｊ）は、同一のユーザがアイテムｉ、ｊに対して共にフォードバックを与えた頻度を表している。例えば、フィードバックの種類が購入の場合、図１７に示すように、アイテム毎の購入数が上記の式（６）に相当する。また、図１８に示すように、アイテムの組み合わせ毎の購入数（共起数）が上記の式（７）に相当する。従って、図１７、図１８に示すような購入数と共起数のテーブルを保持しておくことにより、上記の式（６）及び式（７）に示す和の演算を省略することができる。その結果、上記の式（１）及び式（２）で表現されるＪ行列の演算が効率化される。
【００９０】
以上、Ｊ行列を算出する際の演算を効率化する方法について説明した。
【００９１】
［１−４：変形例］
次に、本実施形態の変形例について説明する。
【００９２】
（１−４−１：近似的なＪ行列の更新方法（第１変形例））
これまで説明してきたＰ行列、Ｄ行列、Ｊ行列を用いたアイテムの推薦方法を適用すれば、ユーザからフォードバックを受けた際に、そのフィードバックを反映した関連アイテムの推薦をリアルタイムに実行することができる。しかし、Ｊ行列の演算負荷を減らし、関連アイテムの推薦までに要する時間を極力減らしたいという要求もある。そこで、本件発明者は、Ｊ行列を近似的に更新することにより、関連アイテムの推薦に要する演算負荷を減らし、関連アイテムの推薦に要する時間を短縮する手法を考案した。
【００９３】
以下、図１９〜図２１を参照しながら、近似的なＪ行列の更新方法について説明する。図１９〜図２１は、近似的なＪ行列の更新方法について説明するための説明図である。
【００９４】
まず、図１９を参照しながら、近似的なＪ行列の更新方法に係る処理の流れについて説明する。図１９に示すように、まず、サーバ装置１１は、時刻（ｔ＋１）におけるフィードバック情報に基づいてＪ行列を算出する（Ｓ１４１）。ステップＳ１４１におけるＪ行列の算出方法は、先に説明した方法と同じである。次いで、サーバ装置１１は、前の時刻ｔにおけるＪ行列と、時刻（ｔ＋１）におけるＪ行列とを比較して更新値δを算出する（Ｓ１４２）。
【００９５】
上記の更新値δは、時刻（ｔ＋２）におけるＪ行列を近似的に算出するためのパラメータである。ここで、更新値δの算出方法について説明を補足する。
【００９６】
図２０に示すように、サーバ装置１１は、まず、時刻ｔから時刻（ｔ＋１）までに各アイテムがフィードバック（ここでは「購入」の場合を例に挙げる。）を受けた数（購入数）を参照する。図２０の例では、アイテム４（Ｉｔｅｍ  ４）の購入数が最大であるため、サーバ装置１１は、アイテム４を選択する。また、サーバ装置１１は、選択したアイテム４の購入数ｎ＝６４を保持する。
【００９７】
次いで、サーバ装置１１は、時刻ｔにおけるＪ行列を参照する。このとき、サーバ装置１１は、購入数が最大であったアイテム４に関連するＪ行列の要素Ｊ（１，４）、Ｊ（２，４）、Ｊ（３，４）を参照する。さらに、サーバ装置１１は、時刻（ｔ＋１）におけるＪ行列を参照する。このとき、サーバ装置１１は、購入数が最大であったアイテム４に関連するＪ行列の要素Ｊ（１，４）、Ｊ（２，４）、Ｊ（３，４）を参照する。そして、サーバ装置１１は、時刻ｔにおけるＪ行列の要素Ｊ（１，４）、Ｊ（２，４）、Ｊ（３，４）と、時刻（ｔ＋１）におけるＪ行列の要素Ｊ（１，４）、Ｊ（２，４）、Ｊ（３，４）とを比較する。
【００９８】
そして、サーバ装置１１は、Ｊ行列の要素Ｊ（１，４）、Ｊ（２，４）、Ｊ（３，４）の差分値ΔＪ（１，４）＝０．１２、ΔＪ（２，４）＝０．１６、ΔＪ（３，４）＝０．０６の中から最大値ΔＪ（２，４）＝０．１６を選択する。なお、この最大値をｄと表現する。さらに、サーバ装置１１は、この最大値ｄ＝ΔＪ（２，４）を用いて、更新値δ＝ｄ／ｎ＝０．１６／６２＝０．００２５８を算出する。ここでは具体例（フィードバックの種類が「購入」の場合）を挙げて説明したが、フィードバックの種類やＪ行列の値が異なる場合においても同様の方法で更新値δが算出される。
【００９９】
再び図１９を参照する。ステップＳ１４２において更新値でδを算出すると、サーバ装置１１は、次の時刻（ｔ＋２）におけるフィードバックが有るか否かを判定する（Ｓ１４３）。フィードバックが有る場合、サーバ装置１１は、処理をステップＳ１４４に進める。一方、フィードバックが無い場合、サーバ装置１１は、処理をステップＳ１４３に戻してフィードバックを待ち受ける。
【０１００】
ステップＳ１４４に処理を進めた場合、サーバ装置１１は、時刻（ｔ＋２）におけるフィードバックに基づいてＰ行列を更新する（Ｓ１４４）。次いで、サーバ装置１１は、ステップＳ１４２において算出した更新値δを用いて時刻（ｔ＋２）におけるＪ行列を算出する（Ｓ１４５）。但し、ここで算出されるＪ行列は、ステップＳ１４４で更新されたＰ行列に基づいて上記の式（１）及び式（２）により算出されるものではないため、実質的には、時刻ｔ、時刻（ｔ＋１）のＪ行列から時刻（ｔ＋２）のＪ行列を予測することに相当する。
【０１０１】
ここで、図２１を参照しながら、更新値δを用いた時刻（ｔ＋２）におけるＪ行列の算出方法について説明を補足する。なお、ここでは、過去にアイテム２、３にフィードバック（ここでは「購入」の場合を例に挙げる。）を与えているユーザが、時刻（ｔ＋２）にアイテム１に対してフィードバックを与えた場合について考える。
【０１０２】
図２１に示すように、サーバ装置１１は、まず、時刻（ｔ＋１）におけるＪ行列を参照する。このとき、サーバ装置１１は、時刻（ｔ＋２）において購入されたアイテム１、及び過去に購入されたアイテム２、３の組み合わせに関する要素（以下、注目要素）に注目する。次いで、サーバ装置１１は、ステップＳ１４２において算出した更新値δを時刻（ｔ＋１）における注目要素の値に加算して時刻（ｔ＋２）におけるＪ行列を算出する。
【０１０３】
このようにしてサーバ装置１１は、更新値δを用いたＪ行列の更新処理を実行する。但し、サーバ装置１１は、所定のタイミングで、先に説明した方法により、上記の式（１）及び式（２）に基づくＪ行列の算出を実行する。このように、更新値δを用いてＪ行列を更新することにより高速な更新処理が実現される。また、所定のタイミングでＰ行列からＪ行列の算出処理が実行されることで、近似による誤差の蓄積が抑制される。
【０１０４】
以上、近似的なＪ行列の更新方法について説明した。
【０１０５】
（１−４−２：バイアスパラメータに基づくＪ行列の更新方法（第２変形例））
次に、図２２を参照しながら、バイアスパラメータに基づくＪ行列の更新方法について説明する。図２２は、バイアスパラメータに基づくＪ行列の更新方法について説明するための説明図である。なお、ここで言うバイアスパラメータとは、Ｊ行列を更新する際に、Ｊ行列の要素に対してユーザの嗜好に応じた重み付けを行うためのパラメータである。
【０１０６】
図２２に示すように、バイアスパラメータは、アイテムの種類に応じて予め決められている。図２２の例では、アイテムがゲームの場合にはバイアスパラメータ１．２ｎ−１、アイテムがビデオの場合にはバイアスパラメータ１．１ｎ−１、アイテムがコミックの場合にはバイアスパラメータ１．４ｎ−１に設定されている。但し、ｎは、購入された順番を表す。例えば、ユーザがアイテム２、３（ゲーム）を順に購入した場合、サーバ装置１１は、アイテム２、３に関するバイアスパラメータを算出する。この場合、アイテム２のバイアスパラメータｂ１は１．２０＝１．０、アイテム３のバイアスパラメータｂ２は１．２１＝１．２となる。
【０１０７】
バイアスパラメータｂ１、ｂ２を算出したサーバ装置１１は、Ｊ行列を参照し、アイテム２、３に関連するＪ行列の要素Ｊ（１，２）、Ｊ（１，３）、Ｊ（２，３）に注目する。そして、サーバ装置１１は、Ｊ行列の要素Ｊ（１，２）にバイアスパラメータｂ１を乗算し、Ｊ行列の要素Ｊ（１，３）、Ｊ（２，３）にバイアスパラメータｂ２を乗算する。このように、バイアスパラメータによりＪ行列を更新したサーバ装置１１は、更新後のＪ行列に基づいて推薦リストを生成し、生成した推薦リストに基づいてユーザに関連アイテムを推薦する。
【０１０８】
以上、バイアスパラメータに基づくＪ行列の更新方法について説明した。
【０１０９】
［１−５：ハードウェア構成］
上記のサーバ装置１１、ユーザ端末１３が有する各構成要素の機能は、例えば、図２３に示す情報処理装置のハードウェア構成を用いて実現することが可能である。つまり、当該各構成要素の機能は、コンピュータプログラムを用いて図２３に示すハードウェアを制御することにより実現される。なお、このハードウェアの形態は任意であり、例えば、パーソナルコンピュータ、携帯電話、ＰＨＳ、ＰＤＡ等の携帯情報端末、ゲーム機、又は種々の情報家電がこれに含まれる。但し、上記のＰＨＳは、Ｐｅｒｓｏｎａｌ  Ｈａｎｄｙ−ｐｈｏｎｅ  Ｓｙｓｔｅｍの略である。また、上記のＰＤＡは、Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔの略である。
【０１１０】
図２３に示すように、このハードウェアは、主に、ＣＰＵ９０２と、ＲＯＭ９０４と、ＲＡＭ９０６と、ホストバス９０８と、ブリッジ９１０と、を有する。さらに、このハードウェアは、外部バス９１２と、インターフェース９１４と、入力部９１６と、出力部９１８と、記憶部９２０と、ドライブ９２２と、接続ポート９２４と、通信部９２６と、を有する。但し、上記のＣＰＵは、Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔの略である。また、上記のＲＯＭは、Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙの略である。そして、上記のＲＡＭは、Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙの略である。
【０１１１】
ＣＰＵ９０２は、例えば、演算処理装置又は制御装置として機能し、ＲＯＭ９０４、ＲＡＭ９０６、記憶部９２０、又はリムーバブル記録媒体９２８に記録された各種プログラムに基づいて各構成要素の動作全般又はその一部を制御する。ＲＯＭ９０４は、ＣＰＵ９０２に読み込まれるプログラムや演算に用いるデータ等を格納する手段である。ＲＡＭ９０６には、例えば、ＣＰＵ９０２に読み込まれるプログラムや、そのプログラムを実行する際に適宜変化する各種パラメータ等が一時的又は永続的に格納される。
【０１１２】
これらの構成要素は、例えば、高速なデータ伝送が可能なホストバス９０８を介して相互に接続される。一方、ホストバス９０８は、例えば、ブリッジ９１０を介して比較的データ伝送速度が低速な外部バス９１２に接続される。また、入力部９１６としては、例えば、マウス、キーボード、タッチパネル、ボタン、スイッチ、及びレバー等が用いられる。さらに、入力部９１６としては、赤外線やその他の電波を利用して制御信号を送信することが可能なリモートコントローラ（以下、リモコン）が用いられることもある。
【０１１３】
出力部９１８としては、例えば、ＣＲＴ、ＬＣＤ、ＰＤＰ、又はＥＬＤ等のディスプレイ装置、スピーカ、ヘッドホン等のオーディオ出力装置、プリンタ、携帯電話、又はファクシミリ等、取得した情報を利用者に対して視覚的又は聴覚的に通知することが可能な装置である。但し、上記のＣＲＴは、Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅの略である。また、上記のＬＣＤは、Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙの略である。そして、上記のＰＤＰは、Ｐｌａｓｍａ  ＤｉｓｐｌａｙＰａｎｅｌの略である。さらに、上記のＥＬＤは、Ｅｌｅｃｔｒｏ−Ｌｕｍｉｎｅｓｃｅｎｃｅ  Ｄｉｓｐｌａｙの略である。
【０１１４】
記憶部９２０は、各種のデータを格納するための装置である。記憶部９２０としては、例えば、ハードディスクドライブ（ＨＤＤ）等の磁気記憶デバイス、半導体記憶デバイス、光記憶デバイス、又は光磁気記憶デバイス等が用いられる。但し、上記のＨＤＤは、Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅの略である。
【０１１５】
ドライブ９２２は、例えば、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリ等のリムーバブル記録媒体９２８に記録された情報を読み出し、又はリムーバブル記録媒体９２８に情報を書き込む装置である。リムーバブル記録媒体９２８は、例えば、ＤＶＤメディア、Ｂｌｕ−ｒａｙメディア、ＨＤ  ＤＶＤメディア、各種の半導体記憶メディア等である。もちろん、リムーバブル記録媒体９２８は、例えば、非接触型ＩＣチップを搭載したＩＣカード、又は電子機器等であってもよい。但し、上記のＩＣは、Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔの略である。
【０１１６】
接続ポート９２４は、例えば、ＵＳＢポート、ＩＥＥＥ１３９４ポート、ＳＣＳＩ、ＲＳ−２３２Ｃポート、又は光オーディオ端子等のような外部接続機器９３０を接続するためのポートである。外部接続機器９３０は、例えば、プリンタ、携帯音楽プレーヤ、デジタルカメラ、デジタルビデオカメラ、又はＩＣレコーダ等である。但し、上記のＵＳＢは、Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓの略である。また、上記のＳＣＳＩは、Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅの略である。
【０１１７】
通信部９２６は、ネットワーク９３２に接続するための通信デバイスであり、例えば、有線又は無線ＬＡＮ、Ｂｌｕｅｔｏｏｔｈ（登録商標）、又はＷＵＳＢ用の通信カード、光通信用のルータ、ＡＤＳＬ用のルータ、又は各種通信用のモデム等である。また、通信部９２６に接続されるネットワーク９３２は、有線又は無線により接続されたネットワークにより構成され、例えば、インターネット、家庭内ＬＡＮ、赤外線通信、可視光通信、放送、又は衛星通信等である。但し、上記のＬＡＮは、Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋの略である。また、上記のＷＵＳＢは、Ｗｉｒｅｌｅｓｓ  ＵＳＢの略である。そして、上記のＡＤＳＬは、Ａｓｙｍｍｅｔｒｉｃ  Ｄｉｇｉｔａｌ  Ｓｕｂｓｃｒｉｂｅｒ  Ｌｉｎｅの略である。
【０１１８】
＜２：まとめ＞
最後に、本発明の実施形態に係る技術内容について簡単に纏める。ここで述べる技術内容は、例えば、ＰＣ、携帯電話、携帯ゲーム機、携帯情報端末、情報家電、カーナビゲーションシステム等、種々の情報処理装置に対して適用することができる。
【０１１９】
上記の情報処理装置の機能構成は次のように表現することができる。当該情報処理装置は、次のようなフィードバック受付部と、フィードバック履歴格納部と、関連度算出部と、推薦部とを有する。上記のフィードバック受付部は、アイテムに対するユーザのフィードバックを受け付ける手段である。フィードバックとしては、例えば、アイテムの購入、アイテムに関する情報の閲覧、アイテムに対する評価などがある。
【０１２０】
また、上記のフィードバック履歴格納部は、前記フィードバック受付部により現在又は過去に受け付けたフィードバックの情報をユーザとアイテムの組み合わせ毎に格納する手段である。フィードバックの情報としては、例えば、アイテムの購入履歴、アイテムに関する情報の閲覧履歴、アイテムに対する評価情報などがある。
【０１２１】
また、上記の関連度算出部は、前記フィードバック受付部によりフィードバックを受け付けた際、前記フィードバック履歴格納部により格納されたフィードバックの情報を用いて、同じユーザが共にフィードバックを与えている度合いを示す第１情報、及び、多くのユーザがフィードバックを与えている度合いを示す第２情報に基づくアイテム間の関連度を算出する手段である。例えば、フィードバックの情報がユーザの購入履歴を示すものである場合、上記の第１情報は、同じユーザによるアイテムの購入数を示す情報となる。また、上記の第２情報は、複数のユーザにより購入されているアイテムの数を示す情報となる。
【０１２２】
このように、上記の第１情報が考慮されることにより、アイテム間の関連度は、ユーザの嗜好を考慮したものとなる。また、上記の第２情報が考慮されることにより、アイテム間の関連度は、アイテムを介したユーザ間の関連性を考慮したものとなる。つまり、上記の関連度算出部により算出された関連度は、ユーザの嗜好及びユーザ間の関連性を考慮したアイテム間の関連度を示している。この関連度に基づき、上記の推薦部は、前記フィードバック受付部によりアイテムにフィードバックを与えたユーザに対して、当該アイテムに対する関連度が高いアイテムを即座に推薦する。
【０１２３】
その結果、ユーザの嗜好、及びアイテムを介したユーザ間の関連性を共に考慮して選出されたアイテムをユーザに推薦することが可能になる。また、ユーザがフィードバックを与えた後、そのフィードバックが推薦結果に対して即座に反映されるため、フィードバック時点におけるユーザの嗜好に適したアイテムがユーザに推薦されるようになる。
【０１２４】
（備考）
上記の推薦システム１０は、アイテム推薦システムの一例である。また、上記のフィードバック情報更新部１１２、履歴テーブル格納部１２１は、フィードバック履歴格納部の一例である。また、上記の中間値テーブル生成部１１３、関連度算出部１１４は、関連度算出部の一例である。上記のアイテム推薦部１１５は、推薦部の一例である。上記の関連度算出部１１４は、変化検出部、関連度予測部の一例である。上記の嗜好解析部１１６は、嗜好情報生成部の一例である。
【０１２５】
以上、添付図面を参照しながら本発明の好適な実施形態について説明したが、本発明は係る例に限定されないことは言うまでもない。当業者であれば、特許請求の範囲に記載された範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
【０１２６】
例えば、上記説明においては、本実施形態の基本構成に加え、２通りの変形例を示した。これら基本構成と変形例とは適宜組み合わせることが可能であり、その組み合わせ方法については制限がない。また、上記説明においては、フィードバックの種類、バイアスパラメータの種類などについて具体例を示したが、本実施形態の技術的範囲はこれらの具体例に限定されない。
【符号の説明】
【０１２７】
１０      推薦システム
１１      サーバ装置
１１１    フィードバック受付部
１１２    フィードバック情報更新部
１１３    中間値テーブル生成部
１１４    関連度算出部
１１５    アイテム推薦部
１１６    嗜好解析部
１２      記憶装置
１２１    履歴テーブル格納部
１２２    中間値テーブル格納部
１２３    関連度テーブル格納部
１３      ユーザ端末
１４      ネットワーク
【図１】
2012003359.tif 000010
【図２】
2012003359.tif 000011
【図３】
2012003359.tif 000012
【図４】
2012003359.tif 000013
【図５】
2012003359.tif 000014
【図６】
2012003359.tif 000015
【図７】
2012003359.tif 000016
【図８】
2012003359.tif 000017
【図９】
2012003359.tif 000018
【図１０】
2012003359.tif 000019
【図１１】
2012003359.tif 000020
【図１２】
2012003359.tif 000021
【図１３】
2012003359.tif 000022
【図１４】
2012003359.tif 000023
【図１５】
2012003359.tif 000024
【図１６】
2012003359.tif 000025
【図１７】
2012003359.tif 000026
【図１８】
2012003359.tif 000027
【図１９】
2012003359.tif 000028
【図２０】
2012003359.tif 000029
【図２１】
2012003359.tif 000030
【図２２】
2012003359.tif 000031
【図２３】
2012003359.tif 000032