説明

アイテム推薦システム、アイテム推薦方法、及びプログラム

【課題】ユーザのフィードバックをリアルタイムに反映した推薦を実現すること。
【解決手段】アイテムに対するユーザのフィードバックを受け付ける受付部と、受付部により現在又は過去に受け付けたフィードバックの情報をユーザとアイテムの組み合わせ毎に格納する履歴格納部と、受付部によりフィードバックを受け付けた際、履歴格納部により格納されたフィードバックの情報を用いて、同じユーザが共にフィードバックを与えている度合いを示す第1情報、及び、多くのユーザがフィードバックを与えている度合いを示す第2情報に基づくアイテム間の関連度を算出する関連度算出部と、関連度算出部により算出された関連度に基づき、受付部によりアイテムにフィードバックを与えたユーザに対して、当該アイテムに対する関連度が高いアイテムを即座に推薦する推薦部と、を備える、アイテム推薦システムが提供される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、アイテム推薦システム、アイテム推薦方法、及びプログラムに関する。
【背景技術】
【0002】
近年、ネットワークを利用したビジネスが急拡大している。例えば、ネットワーク上のオンラインストアで商品を購入するシステムは広く一般に利用されている。こうしたオンラインストアの多くには、ユーザに商品を推薦する仕組みが設けられている。例えば、ある商品の詳細情報をユーザが閲覧すると、その商品に関連する商品の情報が関連商品又は推薦商品としてユーザに提示される。このような仕組みは、例えば、下記の特許文献1に記載されている協調フィルタリング方法などを利用して実現される。協調フィルタリング方法とは、嗜好の似たユーザの情報(例えば、購入履歴)を利用する推薦方法である。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2003−167901号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
上記の協調フィルタリング方法を用いると、購入履歴のない新規ユーザに対しても、そのユーザと嗜好が似たユーザの情報を利用して商品を推薦することができる。一方、ユーザの購入履歴を利用して商品を推薦するコンテンツベースフィルタリング方法の場合、購入履歴のない新規ユーザには商品を推薦することができない。そのため、商品の購入履歴が少ないユーザなどに対して協調フィルタリング方法は有効である。
【0005】
但し、コンテンツベースフィルタリング方法は、各ユーザの購入履歴を解析して推薦する商品を決める方法であるため、各ユーザの嗜好が反映されやすいという利点がある。また、ユーザ数が少なく、嗜好が似たユーザが見つかりにくい状況においては、コンテンツベースフィルタリング方法の方が協調フィルタリング方法に比べて有効である。
【0006】
オンラインストアでは、上記のようなフィルタリング方法などを用いて商品の購入履歴や詳細情報の閲覧履歴などが解析され、ユーザに商品を推薦するための情報が準備される。但し、上記のフィルタリング方法などを用いた解析処理には十分に長い時間を要する。一方で、オンラインストアにおいては商品の推薦結果が売り上げに大きな影響を及ぼすため、よりユーザの嗜好に合った商品を即座に提示できる仕組みが求められる。
【0007】
しかしながら、現状のオンラインストアでは、所定期間(例えば、1日)、購入履歴や詳細情報の閲覧履歴を蓄積しておき、上記のフィルタリング方法などを用いた解析処理を所定期間おきに実行するといった仕組み(以下、バッチ処理)が用いられている。そのため、ユーザが商品を購入しても、その購入履歴は、購入時の推薦結果には反映されていない。例えば、ユーザAが商品Xを購入しても、バッチ処理が完了するまで、そのユーザAの購入履歴は、商品Xを購入したユーザBに対する推薦結果に反映されない。
【0008】
なお、ここではオンラインストアでユーザが商品を購入した購入履歴を推薦に利用する例示したが、ある商品に対してユーザが評価した評価結果や、ある商品の詳細情報をユーザが閲覧した閲覧履歴なども商品の推薦に利用される。また、以下の説明においては、商品やサービスなど(以下、アイテム)に対してユーザが行った行動(例えば、購入、評価、情報閲覧など)のことをフィードバックと呼ぶことにする。
【0009】
本発明は、上記問題に鑑みてなされたものであり、本発明の目的とするところは、ユーザのフィードバックを即座に反映した推薦を実現することが可能な、新規かつ改良されたアイテム推薦システム、アイテム推薦方法、及びプログラムを提供することにある。
【課題を解決するための手段】
【0010】
上記課題を解決するために、本発明のある観点によれば、アイテムに対するユーザのフィードバックを受け付けるフィードバック受付部と、前記フィードバック受付部により現在又は過去に受け付けたフィードバックの情報をユーザとアイテムの組み合わせ毎に格納するフィードバック履歴格納部と、前記フィードバック受付部によりフィードバックを受け付けた際、前記フィードバック履歴格納部により格納されたフィードバックの情報を用いて、同じユーザが共にフィードバックを与えている度合いを示す第1情報、及び、多くのユーザがフィードバックを与えている度合いを示す第2情報に基づくアイテム間の関連度を算出する関連度算出部と、前記関連度算出部により算出された関連度に基づき、前記フィードバック受付部によりアイテムにフィードバックを与えたユーザに対して、当該アイテムに対する関連度が高いアイテムを即座に推薦する推薦部と、を備える、アイテム推薦システムが提供される。
【0011】
また、上記のアイテム推薦システムは、前記関連度算出部により時刻tにおいて算出されたアイテム間の関連度J(t)と、時刻tの次の時刻tにおいて前記関連度算出部により算出されたアイテム間の関連度J(t)とを比較し、時刻tと時刻tとの間で最も関連度が変化したアイテムi、jの組み合わせを検出する変化検出部と、前記変化検出部により検出されたアイテムi、jに関する関連度の差分J(t)−J(t)から、時刻tの次の時刻tにおけるアイテム間の関連度J(t)を予測する関連度予測部と、をさらに備えていてもよい。この場合、前記推薦部は、所定のタイミングにおいて前記関連度算出部により算出された関連度に基づいてアイテムを推薦し、当該所定のタイミング以外のタイミングにおいて前記関連度予測部により予測された関連度に基づいてアイテムを推薦する。
【0012】
また、上記のアイテム推薦システムは、前記フィードバック履歴格納部により格納されたフィードバックの情報に基づいてユーザの嗜好を示す嗜好情報を生成する嗜好情報生成部をさらに備えていてもよい。この場合、前記嗜好情報生成部は、前記フィードバック受付部によりフィードバックを受け付ける直前に、前記フィードバック履歴格納部により格納されたフィードバックの情報に基づいて嗜好情報を生成し、前記推薦部は、前記フィードバック受付部によりフィードバックを受け付ける直前に生成された嗜好情報に基づき、前記関連度が高いアイテムの中から、前記フィードバック受付部によりアイテムにフィードバックを与えたユーザの嗜好が高いアイテムを推薦する。
【0013】
また、アイテム毎に予め優先度係数が設定されている場合、前記推薦部は、前記優先度係数が乗算された関連度に基づき、前記フィードバック受付部によりアイテムにフィードバックを与えたユーザに対して、当該アイテムに対する関連度が高いアイテムを推薦するように構成されていてもよい。
【0014】
また、前記フィードバック履歴格納部は、ネットワークを介して接続された記憶装置に前記フィードバックの履歴を格納するように構成されていてもよい。
【0015】
また、前記フィードバック受付部によりアイテムiに対するユーザuのフィードバックを受け付けた際に、前記フィードバック履歴格納部により格納されるフィードバックの情報がP(i,u)であり、フィードバックを受け付けた場合にP(i,u)=1、フィードバックを受け付けていない場合にP(i,u)=0が設定されるとすると、アイテムiとアイテムj(j≠i)との間の関連度J(i,j)は、後述する式(1)及び式(2)により表現されてもよい。
【0016】
また、上記課題を解決するために、本発明の別の観点によれば、アイテムに対するユーザのフィードバックを受け付けるフィードバック受付ステップと、前記フィードバック受付ステップで現在又は過去に受け付けたフィードバックの情報をユーザとアイテムの組み合わせ毎に格納するフィードバック履歴格納ステップと、前記フィードバック受付ステップでフィードバックを受け付けた際、前記フィードバック履歴格納ステップで格納されたフィードバックの情報を用いて、同じユーザが共にフィードバックを与えている度合いを示す第1情報、及び、多くのユーザがフィードバックを与えている度合いを示す第2情報に基づくアイテム間の関連度を算出する関連度算出ステップと、前記関連度算出ステップで算出された関連度に基づき、前記フィードバック受付ステップでアイテムにフィードバックを与えたユーザに対して、当該アイテムに対する関連度が高いアイテムを即座に推薦する推薦ステップと、を含む、アイテム推薦方法が提供される。
【0017】
また、上記課題を解決するために、本発明の別の観点によれば、アイテムに対するユーザのフィードバックを受け付けるフィードバック受付機能と、前記フィードバック受付機能により現在又は過去に受け付けたフィードバックの情報をユーザとアイテムの組み合わせ毎に格納するフィードバック履歴格納機能と、前記フィードバック受付機能によりフィードバックを受け付けた際、前記フィードバック履歴格納機能により格納されたフィードバックの情報を用いて、同じユーザが共にフィードバックを与えている度合いを示す第1情報、及び、多くのユーザがフィードバックを与えている度合いを示す第2情報に基づくアイテム間の関連度を算出する関連度算出機能と、前記関連度算出機能により算出された関連度に基づき、前記フィードバック受付機能によりアイテムにフィードバックを与えたユーザに対して、当該アイテムに対する関連度が高いアイテムを即座に推薦する推薦機能と、コンピュータに実現させるためのプログラムが提供される。
【0018】
また、上記課題を解決するために、本発明の別の観点によれば、上記のプログラムが記録された、コンピュータにより読み取り可能な記録媒体が提供される。
【発明の効果】
【0019】
以上説明したように本発明によれば、ユーザのフィードバックを即座に反映した推薦を実現することが可能になる。
【図面の簡単な説明】
【0020】
【図1】本発明の一実施形態に係る推薦システムの構成について説明するための説明図である。
【図2】同実施形態の推薦システムを構成するサーバ装置の構成、及び記憶装置の構成について説明するための説明図である。
【図3】同実施形態に係る推薦システムおいて利用される履歴テーブルの構成について説明するための説明図である。
【図4】同実施形態に係る推薦システムおいて利用される中間値テーブルの構成について説明するための説明図である。
【図5】同実施形態に係る推薦システムおいて利用される関連度テーブルの構成について説明するための説明図である。
【図6】同実施形態に係る推薦システムおいて利用される嗜好情報の構成について説明するための説明図である。
【図7】同実施形態に係る推薦システムにおいて利用される履歴マトリクス(P行列)の構成について説明するための説明図である。
【図8】同実施形態に係る推薦システムにおいて利用される中間値マトリクス(D行列)の構成について説明するための説明図である。
【図9】同実施形態に係る推薦システムにおいて利用される関連度マトリクス(J行列)の構成について説明するための説明図である。
【図10】同実施形態に係るアイテムの推薦方法について説明するための説明図である。
【図11】同実施形態に係るアイテムの推薦方法について具体的に説明するための説明図である。
【図12】同実施形態に係るアイテムの推薦方法について具体的に説明するための説明図である。
【図13】同実施形態に係る履歴マトリクス(P行列)の更新方法について説明するための説明図である。
【図14】同実施形態に係る中間値マトリクス(D行列)の更新方法について説明するための説明図である。
【図15】同実施形態に係る関連度マトリクス(J行列)の更新方法について説明するための説明図である。
【図16】同実施形態に係る嗜好情報を用いた推薦方法について説明するための説明図である。
【図17】同実施形態に係る推薦システムにおいて利用される購入数テーブルの構成について説明するための説明図である。
【図18】同実施形態に係る推薦システムにおいて利用される共起数テーブルの構成について説明するための説明図である。
【図19】同実施形態の第1変形例に係る関連度テーブル(J行列)の更新方法について説明するための説明図である。
【図20】同実施形態の第1変形例に係る関連度テーブル(J行列)の更新方法について説明するための説明図である。
【図21】同実施形態の第1変形例に係る関連度テーブル(J行列)の更新方法について説明するための説明図である。
【図22】同実施形態の第2変形例に係るバイアスパラメータを利用した関連度テーブル(J行列)の更新方法について説明するための説明図である。
【図23】同実施形態に係るサーバ装置及びユーザ端末の機能を実現することが可能なハードウェア構成について説明するための説明図である。
【発明を実施するための形態】
【0021】
以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【0022】
[説明の流れについて]
ここで、以下に記載する本発明の実施形態に関する説明の流れについて簡単に述べる。まず、図1を参照しながら、本実施形態に係る推薦システム10の構成について説明する。次いで、図2を参照しながら、同実施形態の推薦システム10を構成するサーバ装置11の構成、及び記憶装置12の構成について説明する。この中で、図3〜図6を参照しながら、同実施形態に係る推薦システム10おいて利用される履歴テーブル、中間値テーブル、関連度テーブル、嗜好情報の構成についても併せて説明する。
【0023】
次いで、図7〜図9を参照しながら、同実施形態に係る推薦システムにおいて利用される履歴マトリクス(P行列)、中間値マトリクス(D行列)、関連度マトリクス(J行列)の構成について説明する。また、図10を参照しながら、履歴マトリクス(P行列)、中間値マトリクス(D行列)、関連度マトリクス(J行列)を利用した同実施形態に係るアイテムの推薦方法について説明する。
【0024】
次いで、図11、図12を参照しながら、同実施形態に係るアイテムの推薦方法について、より具体的に説明する。この中で、図13〜図16を参照しながら、同実施形態に係る履歴マトリクス(P行列)、中間値マトリクス(D行列)、関連度マトリクス(J行列)の更新方法、嗜好情報を用いた推薦方法について具体的に説明する。また、図17、図18、図19を参照しながら、同実施形態に係る推薦システムにおいて利用される購入数テーブル、及び共起数テーブルの構成について説明する。
【0025】
次いで、図19〜図21を参照しながら、同実施形態の第1変形例に係る関連度テーブル(J行列)の更新方法について説明する。次いで、図22を参照しながら、同実施形態の第2変形例に係るバイアスパラメータを利用した関連度テーブル(J行列)の更新方法について説明する。次いで、図23を参照しながら、同実施形態に係るサーバ装置11及びユーザ端末13の機能を実現することが可能なハードウェア構成について説明する。最後に、同実施形態の技術的思想について纏め、その技術的思想から得られる作用効果について簡単に説明する。
【0026】
(説明項目)
1:実施形態
1−1:推薦システム10の構成
1−2:サーバ装置11及び記憶装置12の機能構成
1−3:P行列、D行列、J行列を用いた推薦方法
1−3−1:P行列、D行列、J行列の構成
1−3−2:大まかな処理の流れ
1−3−3:具体的な処理の流れ
1−3−4:嗜好情報を用いた推薦方法
1−3−5:効率化手法について
1−4:変形例
1−4−1:近似的なJ行列の更新方法(第1変形例)
1−4−2:バイアスパラメータに基づくJ行列の更新方法(第2変形例)
1−5:ハードウェア構成
2:まとめ
【0027】
<1:実施形態>
本発明の一実施形態について説明する。本実施形態は、ユーザからフィードバックを受けた際に、当該ユーザの嗜好だけでなく、ユーザ全体の傾向に対する影響も考慮して、当該ユーザの嗜好及びユーザ全体の傾向を反映した推薦を即座に実行する仕組みに関する。
【0028】
[1−1:推薦システム10の構成]
まず、図1を参照しながら、本実施形態に係る推薦システム10の構成について説明する。図1は、本実施形態に係る推薦システム10の構成について説明するための説明図である。なお、図1に示した推薦システム10のシステム構成は一例である。
【0029】
図1に示すように、推薦システム10は、サーバ装置11と、記憶装置12と、複数のユーザ端末13とにより構成される。また、サーバ装置11と複数のユーザ端末13はネットワーク14を介して接続されている。なお、図1には、ユーザ端末13としてパーソナルコンピュータ及び携帯電話の例が示されているが、ユーザ端末13の形態はこれに限定されず、情報端末、ゲーム機、映像機器、情報家電などであってもよい。
【0030】
サーバ装置11は、ユーザのフィードバックを受け付け、受け付けたフィードバックに応じてユーザにサービスを提供する手段である。例えば、サーバ装置11は、オンラインストアの機能を有し、ユーザに対して商品の販売サービスを提供する。また、サーバ装置11は、ネットワーク14を介してユーザ端末13に商品情報を提供したり、ユーザ端末13から受けたフィードバックに応じてオンライン決済サービスなどのサービスを提供したりする。さらに、サーバ装置11は、ユーザ端末13からフィードバックを受けた場合、そのフィードバックの情報(例えば、購入履歴や評価値)を記憶装置12に格納する。なお、記憶装置12は、サーバ装置11の筐体内に設けられていてもよい。
【0031】
記憶装置12に格納されたフィードバックの情報は、ユーザの嗜好を解析したり、アイテム間の関連性を解析したりするために利用される。例えば、サーバ装置11は、各ユーザによるアイテムの購入数や各ユーザが各アイテムに付した評価値に基づいて各ユーザの嗜好を解析し、購入数が多いアイテムや評価値が高いアイテムに対して高いスコアを割り当てた嗜好情報を生成する(例えば、図6を参照)。また、サーバ装置11は、各ユーザが各アイテムに与えたフィードバックの有無に基づいてアイテム間の関連性を解析し、アイテム間の関連度(例えば、図5を参照)を算出する。さらに、サーバ装置11は、この嗜好情報及びアイテム間の関連度に基づき、フィードバックを与えたユーザに対して、フィードバックが与えられたアイテムに関連するアイテムを推薦する。
【0032】
以上、推薦システム10の構成について説明した。上記の通り、推薦システム10におけるアイテムの推薦は、主に、サーバ装置11及び記憶装置12の機能により実現される。そこで、以下ではサーバ装置11及び記憶装置12の機能構成を中心に説明を進める。
【0033】
[1−2:サーバ装置11及び記憶装置12の機能構成]
まず、図2を参照しながら、本実施形態に係るサーバ装置11及び記憶装置12の機能構成について説明する。図2は、本実施形態に係るサーバ装置11及び記憶装置12の機能構成について説明するための説明図である。
【0034】
図2に示すように、サーバ装置11は、主に、フィードバック受付部111と、フィードバック情報更新部112と、中間値テーブル生成部113と、関連度算出部114と、アイテム推薦部115と、嗜好解析部116とにより構成される。また、記憶装置12は、主に、履歴テーブル格納部121と、中間値テーブル格納部122と、関連度テーブル格納部123とにより構成される。
【0035】
まず、ユーザ端末13を用いてユーザから与えられたフィードバックは、フィードバック受付部111に入力される。例えば、ユーザがアイテムの購入操作を実行した場合、アイテムの購入を示す情報がフィードバックとしてフィードバック受付部111に入力される。フィードバック受付部111に入力されたフィードバックの情報は、フィードバック情報更新部112に入力される。フィードバックの情報が入力されると、フィードバック情報更新部112は、入力されたフィードバックの情報を履歴テーブル格納部121に格納する。
【0036】
履歴テーブル格納部121には、例えば、図3に示すような履歴テーブルが格納されている。そして、履歴テーブルには、どのユーザが、どのアイテムに対してフィードバックを与えたかが分かるように、フィードバックを与えられたアイテムと、フィードバックを与えたユーザとの組み合わせを示す情報が格納されている。
【0037】
図3に例示した履歴テーブルにおいてUser IDは、フィードバックを与えたユーザの識別情報を表す。また、Item IDは、フィードバックが与えられたアイテムの識別情報を表す。従って、図3の例から、User ID=1のユーザがItem ID=1,2のアイテムに対してフィードバックを与えたことが分かる。同様に、図3の例から、User ID=2のユーザがItem ID=1のアイテムに、User ID=3のユーザがItem ID=2のアイテムにフィードバックを与えたことが分かる。
【0038】
フィードバック情報更新部112により履歴テーブル格納部121にフィードバックの情報が格納されると、中間値テーブル生成部113は、履歴テーブル格納部121に格納された履歴テーブルに基づいて中間値テーブル(図4を参照)を生成する。この中間値テーブルは、アイテム間の関連性に関する情報を示すものである。中間値テーブル生成部113により生成された中間値テーブルは、中間値テーブル格納部122に格納される。
【0039】
中間値テーブル格納部122に中間値テーブルが格納されると、関連度算出部114は、中間値テーブル格納部122に格納された中間値テーブルを用いてアイテム間の関連度を算出する。そして、関連度算出部114により算出されたアイテム間の関連度は、関連度テーブル(図5を参照)として関連度テーブル格納部123に格納される。
【0040】
関連度テーブル格納部123にアイテム間の関連度が格納されると、アイテム推薦部115は、関連度テーブル格納部123に格納された関連度テーブルに基づき、フィードバックが与えられたアイテムに対して関連度の高いアイテム群を選択する。次いで、アイテム推薦部115は、選択したアイテム群の中からユーザの嗜好に合う所定数のアイテムを選択して、フィードバックを与えたユーザに推薦する。このとき、アイテム推薦部115は、嗜好解析部116により生成された嗜好情報に基づいて、選択したアイテム群の中からユーザの嗜好に合う所定数のアイテムを選択する。
【0041】
例えば、嗜好解析部116は、フィードバックを与えたユーザが過去にフィードバックを多く与えたアイテムに対して高いスコアを割り当て、アイテム毎に割り当てたスコアを嗜好情報(図6を参照)として保持する。図6の例において、User ID=1のユーザは、Item ID=1のアイテムに対して高い嗜好を有する。なお、嗜好解析部116は、フィードバックを与えたユーザが過去に良いフィードバックを与えたアイテムに対して高いスコアを割り当てるように構成されていてもよい。
【0042】
以上、サーバ装置11及び記憶装置12の機能構成について説明した。但し、上記説明においては、履歴テーブル、中間値テーブル、関連度テーブルの構成、履歴テーブルの格納値から中間値テーブルの格納値を算出する方法、中間値テーブルの格納値から関連度テーブルの格納値を算出する方法については説明を省略した。そこで、以下ではフィードバック情報からアイテム間の関連度を算出するための具体的な方法、及び関連度に基づくアイテムの推薦方法について、より詳細に説明する。
【0043】
[1−3:P行列、D行列、J行列を用いた推薦方法]
上記の通り、本実施形態に係るサーバ装置11は、フィードバックを与えたユーザに対して推薦するアイテムを選択するために、履歴テーブル、中間値テーブル、関連度テーブルを利用する。但し、実際には図3〜図5に例示した履歴テーブル、中間値テーブル、関連度テーブルに代え、それぞれ図7〜図9に示すような履歴マトリクス(以下、P行列)、中間値マトリクス(以下、D行列)、関連度マトリクス(以下、J行列)を利用する。
【0044】
(1−3−1:P行列、D行列、J行列の構成)
ここで、P行列、D行列、J行列の構成について説明する。
【0045】
(P行列について)
上記のP行列は、図7に示すように、フィードバックを与えたユーザとフィードバックを受けたアイテムとの関係を示す行列である。ユーザuがアイテムiにフィードバックを与えた場合、ユーザu、アイテムiに対応するP行列の要素P(i,u)に1が入力される。例えば、図7の例では、ユーザ2(User 2)、アイテム1(Item 1)に対応する欄(P行列の要素P(1,2))に1が入力されているため、アイテム1にユーザ2がフィードバックを与えたことが分かる。
【0046】
なお、このP行列は、履歴テーブル格納部121に格納される。また、フィードバック受付部111によりフィードバックを受け付けると、フィードバック情報更新部112により履歴テーブル格納部121に格納されたP行列が更新される。
【0047】
(D行列について)
上記のD行列は、図8に示すように、アイテム間の関係を示す行列である。このD行列は、後述するJ行列を算出するために利用される行列であり、P行列に基づいて算出される。アイテムiとアイテムjに関するD行列の要素D(i,j)は、下記の式(1)により定義される。なお、このD行列は、中間値テーブル生成部113により生成され、中間値テーブル格納部122に格納される。また、D行列はi,jに対して対称であるため、J行列は、図8に示すようにi>jの要素だけを中間値テーブル格納部122に格納しておけばよい。
【0048】
【数1】

【0049】
(J行列について)
上記のJ行列は、図9に示すように、アイテム間の関連度を示す行列である。このJ行列は、P行列及びD行列に基づいて算出される。アイテムiとアイテムjに関するJ行列の要素J(i,j)は、下記の式(2)により定義される。なお、このJ行列は、関連度算出部114により算出され、関連度テーブル格納部123に格納される。また、J行列はi,jに対して対称であるため、J行列は、図9に示すようにi>jの要素だけを関連度テーブル格納部123に格納しておけばよい。
【0050】
【数2】

【0051】
以上、P行列、D行列、J行列の構成について説明した。以下では、上記のP行列、D行列、J行列の更新方法、及びこれらを用いたアイテムの推薦方法について説明する。
【0052】
(1−3−2:大まかな処理の流れ)
まず、図10を参照しながら、P行列、D行列、J行列を用いたアイテムの推薦方法に係る処理の大まかな流れについて説明する。図10は、P行列、D行列、J行列を用いたアイテムの推薦方法に係る処理の大まかな流れについて説明するための説明図である。
【0053】
図10に示すように、まず、サーバ装置11は、フィードバックが有るか否かを判定する(S101)。フィードバック受付部111によりフィードバックを受け付けた場合、サーバ装置11は、処理をステップS102に進める。一方、フィードバック受付部111によりフィードバックを受け付けていない場合、サーバ装置11は、処理をステップS101に戻す。処理をステップS102に進めた場合、サーバ装置11は、フィードバック情報更新部112の機能により、フィードバック受付部111により受け付けたフィードバックの情報に基づいて履歴テーブル格納部121に格納されたP行列を更新する(S102)。
【0054】
次いで、履歴テーブル格納部121に格納されたP行列を更新したサーバ装置11は、中間値テーブル生成部113の機能により、更新後のP行列に基づいて中間値テーブル格納部122に格納されたD行列を更新する(S103)。次いで、中間値テーブル格納部122に格納されたD行列を更新したサーバ装置11は、関連度算出部114の機能により、更新後のD行列及びP行列に基づいて関連度テーブル格納部123に格納されたJ行列を更新する(S104)。次いで、サーバ装置11は、アイテム推薦部115の機能により、更新後のJ行列及び嗜好情報に基づいて、フィードバックを受け付けたアイテムに関連するアイテムを推薦する(S105)。
【0055】
以上、P行列、D行列、J行列を用いたアイテムの推薦方法に係る処理の大まかな流れについて説明した。
【0056】
(1−3−3:具体的な処理の流れ)
次に、図11、図12を参照しながら、P行列、D行列、J行列の具体的な更新処理について説明する。図11、図12は、P行列、D行列、J行列の具体的な更新処理について説明するための説明図である。ここでは一例として、ユーザuがアイテムiを購入した際に実行される具体的な処理の流れについて説明する。なお、購入以外のフィードバックについても同様である。
【0057】
まず、図11に示すように、サーバ装置11は、履歴テーブル格納部121に格納されたP行列を参照し、P行列の要素P(i,u)が0であるか否かを判定する(S111)。P行列の要素P(i,u)が0である場合、サーバ装置11は、処理をステップS112に進める。一方、P行列の要素P(i,u)が0でない場合、サーバ装置11は、処理をステップS113に進める。なお、P行列の要素P(i,u)が0である場合とは、アイテムiに対してユーザuが過去にフィードバックを与えていないことを示している。
【0058】
ステップS112に処理を進めた場合、サーバ装置11は、フィードバック情報更新部112の機能により、P行列の要素P(i,u)に1を設定して、履歴テーブル格納部121に格納されたP行列を更新する(S112)。例えば、ユーザ5がアイテム2を購入した場合、図13に示すように、P行列の要素P(2,5)が1に更新される。P行列を更新したサーバ装置11は、処理をステップS113に進める。
【0059】
ステップS113に処理を進めた場合、サーバ装置11は、パラメータkに関する処理ループ(k=1〜i−1)を開始する(S113)。まず、サーバ装置11は、履歴テーブル格納部121に格納された更新後のP行列を参照し、P行列の要素P(k,u)が1であるか否かを判定する(S114)。P行列の要素P(k,u)が1である場合、サーバ装置11は、処理をステップS115に進める。一方、P行列の要素P(k,u)が1でない場合、サーバ装置11は、処理をステップS116に進める。
【0060】
処理をステップS115に進めた場合、サーバ装置11は、中間値テーブル格納部122に格納されたD行列を参照し、D行列の要素D(i,k)を用いて関連度テーブル格納部123に格納されたJ行列を更新する(S115)。具体的には、サーバ装置11が、関連度算出部114の機能により、関連度テーブル格納部123に格納されたJ行列の要素J(i,k)に1/D(i,k)を加算して新たなJ行列の要素J(i,k)を算出する。そして、この新たなJ行列の要素J(i,k)が関連度テーブル格納部123に格納され、処理がステップS118に進められる。
【0061】
ステップS114において処理をステップS116に進めた場合、サーバ装置11は、中間値テーブル生成部113の機能により、中間値テーブル格納部122に格納されたD行列の要素D(i,k)に1を加算して新たなD行列の要素D(i,k)を算出する(S116)。そして、この新たなD行列の要素D(i,k)が中間値テーブル格納部122に格納され、処理がステップS117に進められる。
【0062】
次いで、サーバ装置11は、関連度算出部114の機能により、中間値テーブル格納部122に格納された更新後のD行列及び関連度テーブル格納部123に格納されたJ行列を用いて新たなJ行列の要素J(i,k)を算出する(S117)。このとき、サーバ装置11は、関連度算出部114の機能により、下記の式(3)に基づいて新たなJ行列の要素J(i,k)を算出する。そして、この新たなJ行列の要素J(i,k)が関連度テーブル格納部123に格納され、処理がステップS118に進められる。
【0063】
【数3】

【0064】
処理がステップS118に進んだ場合、サーバ装置11は、パラメータkに関する処理ループを終了するか否か判定する(S118)。具体的には、ステップS118において、パラメータkがi−1であるか否かが判定される。k<i−1である場合、パラメータkに1が加算されて処理がステップS113に戻される。一方、k=i−1である場合、処理がステップS119(図12)に進められる。
【0065】
ここで、図14、図15を参照しながら、D行列の更新処理(S114、S116を参照)、J行列の更新処理(S114、S115、S117を参照)について、具体例を挙げながら説明を補足する。ここでは一例として、ユーザ5がアイテム2を購入した場合について考える(u=5,i=2)。なお、ユーザ5がアイテム2を購入した場合におけるP行列の更新方法については、図13を参照しながら既に説明した通りである。
【0066】
ユーザ5がアイテム2を購入した場合、図13に示すように、P行列の要素P(2,5)が1に更新される(ステップS112に対応)。
【0067】
P(2,5)が更新されると、ステップS113〜S118におけるパラメータk(k=1〜4)の処理ループが開始される。まず、ステップS114においてP(k,5)が1であるか否かが判定される。図14の例では、更新後のP行列においてP(1,5)≠1、P(2,5)=1、P(3,5)=1、P(4,5)≠1であるから、k=1、4の場合に処理がステップS115へ進み、k=2、3の場合に処理がステップS116へ進められる。
【0068】
処理がステップS115に進んだ場合にはD行列の更新処理が実行されない。つまり、k=2、3の場合にはD行列の更新処理が実行されない。一方、処理がステップS116に進んだ場合にはD行列の更新処理が実行される。具体的には、k=1、4の場合にステップS116におけるD行列の更新処理が実行される。従って、図14の例では、D行列のうち、D(1,2)、D(2,4)のみが更新の対象となり、それぞれ1が加算されて新たなD(1,2)、D(2,4)に更新される。
【0069】
次いで、J行列の更新処理が実行される。処理がステップS115に進んだ場合(k=2、3の場合)、図15に示すように、J(2,3)に1/D(2,3)が加算されて新たなJ(2,3)に更新される。一方、処理がステップS117に進んだ場合(k=1、4の場合)、図15に示すように、上記の式(3)に基づいて、それぞれ新たなJ(1,2)、J(2,4)に更新される。
【0070】
以上説明したように、パラメータk(k=1〜i−1)に関する処理ループ(S113〜S118)において、D行列、J行列が更新される。この処理ループ(S113〜S118)が終了すると、処理はステップS119(図12)に進行する。
【0071】
ステップS119(図12)に処理を進めた場合、サーバ装置11は、パラメータkに関する処理ループ(k=i+1〜n)を開始する(S119)。まず、サーバ装置11は、履歴テーブル格納部121に格納された更新後のP行列を参照し、P行列の要素P(k,u)が1であるか否かを判定する(S120)。P行列の要素P(k,u)が1である場合、サーバ装置11は、処理をステップS121に進める。一方、P行列の要素P(k,u)が1でない場合、サーバ装置11は、処理をステップS122に進める。
【0072】
処理をステップS121に進めた場合、サーバ装置11は、中間値テーブル格納部122に格納されたD行列を参照し、D行列の要素D(k,i)を用いて関連度テーブル格納部123に格納されたJ行列を更新する(S121)。具体的には、サーバ装置11が、関連度算出部114の機能により、関連度テーブル格納部123に格納されたJ行列の要素J(k,i)に1/D(k,i)を加算して新たなJ行列の要素J(k,i)を算出する。そして、この新たなJ行列の要素J(k,i)が関連度テーブル格納部123に格納され、処理がステップS124に進められる。
【0073】
ステップS120において処理をステップS122に進めた場合、サーバ装置11は、中間値テーブル生成部113の機能により、中間値テーブル格納部122に格納されたD行列の要素D(k,i)に1を加算して新たなD行列の要素D(k,i)を算出する(S122)。そして、この新たなD行列の要素D(k,i)が中間値テーブル格納部122に格納され、処理がステップS123に進められる。
【0074】
次いで、サーバ装置11は、関連度算出部114の機能により、中間値テーブル格納部122に格納された更新後のD行列及び関連度テーブル格納部123に格納されたJ行列を用いて新たなJ行列の要素J(k,i)を算出する(S123)。このとき、サーバ装置11は、関連度算出部114の機能により、下記の式(4)に基づいて新たなJ行列の要素J(k,i)を算出する。そして、この新たなJ行列の要素J(k,i)が関連度テーブル格納部123に格納され、処理がステップS124に進められる。
【0075】
【数4】

【0076】
処理がステップS124に進んだ場合、サーバ装置11は、パラメータkに関する処理ループを終了するか否か判定する(S124)。具体的には、ステップS124において、パラメータkがnであるか否かが判定される。k<nである場合、パラメータkに1が加算されて処理がステップS119に戻される。一方、k=nである場合、P行列、D行列、J行列の更新に係る一連の処理が終了する。なお、ステップS119〜S124の処理ループにおけるD行列、J行列の具体的な更新方法は、図14、図15を参照しながら説明したステップS113〜S118の処理ループにおけるD行列、J行列の具体的な更新方法と実質的に同じである。
【0077】
以上、P行列、D行列、J行列の更新方法について説明した。
【0078】
(1−3−4:嗜好情報を用いた推薦方法)
次に、図16を参照しながら、嗜好情報及びJ行列を用いたアイテムの推薦方法に係る処理の流れについて説明する。図16は、嗜好情報及びJ行列を用いたアイテムの推薦方法に係る処理の流れについて説明するための説明図である。
【0079】
図16に示すように、まず、サーバ装置11は、嗜好解析部116の機能により、フィードバックを学習し、その学習結果に基づいて嗜好情報を取得する(S131)。但し、サーバ装置11は、嗜好解析部116の機能により、ユーザにより手入力された嗜好情報を利用するように構成されていてもよい。
【0080】
例えば、フィードバック受付部111を介して嗜好解析部116に購入の履歴、評価値、詳細情報の閲覧履歴などのフィードバックが入力される。このようなフィードバックが入力されると、嗜好解析部116は、購入頻度の高いアイテム、評価値の高いアイテム、詳細情報の閲覧頻度が高いアイテムに高いスコアを割り当て、図6に示すような嗜好情報を生成する。図6に示すように、この嗜好情報は、各アイテムに対する各ユーザの嗜好を表すスコアにより表現される。従って、嗜好情報のうち、フィードバックを与えたユーザに対する各アイテムのスコアを比較し、スコアが高いアイテムを抽出することにより、そのユーザが嗜好するアイテムを検出することができる。
【0081】
ここで、嗜好情報の生成方法について説明を補足する。上記の通り、嗜好情報は、ユーザにより与えられたフィードバックに基づいて生成される。但し、フィードバックには、購入、評価、詳細情報の閲覧など、様々な種類がある。例えば、詳細情報を閲覧しただけのアイテムよりも、購入したアイテムの方がユーザの嗜好が高いと考えられる。また、当然のことながら低い評価値を与えられたアイテムよりも、高い評価値を与えられたアイテムの方がユーザの嗜好が高いと考えられる。そこで、嗜好情報を生成する際には、フィードバックの種類に応じた重みを考慮する必要がある。
【0082】
例えば、アイテムiに対するユーザuの嗜好度を示すスコアをUP(u,i)と表現し、k番目のフィードバックに対する重みをaと表現し、アイテムiに対するk番目のフィードバックが与えられた際に付されるスコア(フィードバックの種類に依存しないスコア)をxi,kとすると、スコアUP(u,i)は、下記の式(5)により表現される。但し、スコアxi,kは、kに依らない所定値に設定されていてもよいし、kに応じて変化するようなスコアに設定されていてもよい。例えば、フィードバックを受けたタイミングが早い順に大きなスコアxi,kが付されるように設定されていてもよい。また、重みaには、例えば、購入に大きな重み値(1.0)、評価に中くらいの重み値(0.6)、詳細情報の閲覧に低い重み値(0.3)などが設定される。
【0083】
【数5】

【0084】
このようにして嗜好解析部116により嗜好情報を生成すると、サーバ装置11は、嗜好解析部116により生成した嗜好情報をアイテム推薦部115に入力する。また、サーバ装置11は、アイテム推薦部115の機能により、フィードバックを受け付けたアイテムに関連するアイテム群(以下、関連アイテム群)を抽出する(S132)。このとき、サーバ装置11は、アイテム推薦部115の機能により、関連度テーブル格納部123に格納されたJ行列を参照し、フィードバックを受け付けたアイテムとの間で高い相関値(J行列の値)を持つアイテム群を抽出する。
【0085】
関連アイテム群を抽出したサーバ装置11は、アイテム推薦部115の機能により、嗜好解析部116から入力された嗜好情報を用いてユーザの嗜好に合う(スコアの高い)所定数のアイテムを関連アイテム群の中から選択する。そして、サーバ装置11は、アイテム推薦部115の機能により、関連アイテム群の中から選択したアイテム(以下、関連アイテム)を含む推薦リストを生成する(S133)。次いで、サーバ装置11は、アイテム推薦部115の機能により、フィードバックを与えたユーザに対し、推薦リストに含まれる関連アイテムを推薦する(S134)。
【0086】
以上、嗜好情報を用いた推薦方法について説明した。
【0087】
(1−3−5:効率化手法について)
次に、図17、図18を参照しながら、J行列を算出する際の演算効率及びメモリの利用効率を高めるための工夫について説明する。図17、図18は、J行列を算出する際の演算効率及びメモリの利用効率を高めるための工夫について説明するための説明図である。上記の通り、J行列の演算は、上記の式(1)及び式(2)を演算することに相当する。上記の式(1)及び式(2)を参照すると、P行列の要素に関する2種類の和S、S(下記の式(6)及び式(7))が演算に含まれていることが分かる。
【0088】
【数6】

【0089】
上記のS(i)は、全てのユーザがアイテムiに対してフィードバックを与えた頻度を表している。一方、上記のS(i,j)は、同一のユーザがアイテムi、jに対して共にフォードバックを与えた頻度を表している。例えば、フィードバックの種類が購入の場合、図17に示すように、アイテム毎の購入数が上記の式(6)に相当する。また、図18に示すように、アイテムの組み合わせ毎の購入数(共起数)が上記の式(7)に相当する。従って、図17、図18に示すような購入数と共起数のテーブルを保持しておくことにより、上記の式(6)及び式(7)に示す和の演算を省略することができる。その結果、上記の式(1)及び式(2)で表現されるJ行列の演算が効率化される。
【0090】
以上、J行列を算出する際の演算を効率化する方法について説明した。
【0091】
[1−4:変形例]
次に、本実施形態の変形例について説明する。
【0092】
(1−4−1:近似的なJ行列の更新方法(第1変形例))
これまで説明してきたP行列、D行列、J行列を用いたアイテムの推薦方法を適用すれば、ユーザからフォードバックを受けた際に、そのフィードバックを反映した関連アイテムの推薦をリアルタイムに実行することができる。しかし、J行列の演算負荷を減らし、関連アイテムの推薦までに要する時間を極力減らしたいという要求もある。そこで、本件発明者は、J行列を近似的に更新することにより、関連アイテムの推薦に要する演算負荷を減らし、関連アイテムの推薦に要する時間を短縮する手法を考案した。
【0093】
以下、図19〜図21を参照しながら、近似的なJ行列の更新方法について説明する。図19〜図21は、近似的なJ行列の更新方法について説明するための説明図である。
【0094】
まず、図19を参照しながら、近似的なJ行列の更新方法に係る処理の流れについて説明する。図19に示すように、まず、サーバ装置11は、時刻(t+1)におけるフィードバック情報に基づいてJ行列を算出する(S141)。ステップS141におけるJ行列の算出方法は、先に説明した方法と同じである。次いで、サーバ装置11は、前の時刻tにおけるJ行列と、時刻(t+1)におけるJ行列とを比較して更新値δを算出する(S142)。
【0095】
上記の更新値δは、時刻(t+2)におけるJ行列を近似的に算出するためのパラメータである。ここで、更新値δの算出方法について説明を補足する。
【0096】
図20に示すように、サーバ装置11は、まず、時刻tから時刻(t+1)までに各アイテムがフィードバック(ここでは「購入」の場合を例に挙げる。)を受けた数(購入数)を参照する。図20の例では、アイテム4(Item 4)の購入数が最大であるため、サーバ装置11は、アイテム4を選択する。また、サーバ装置11は、選択したアイテム4の購入数n=64を保持する。
【0097】
次いで、サーバ装置11は、時刻tにおけるJ行列を参照する。このとき、サーバ装置11は、購入数が最大であったアイテム4に関連するJ行列の要素J(1,4)、J(2,4)、J(3,4)を参照する。さらに、サーバ装置11は、時刻(t+1)におけるJ行列を参照する。このとき、サーバ装置11は、購入数が最大であったアイテム4に関連するJ行列の要素J(1,4)、J(2,4)、J(3,4)を参照する。そして、サーバ装置11は、時刻tにおけるJ行列の要素J(1,4)、J(2,4)、J(3,4)と、時刻(t+1)におけるJ行列の要素J(1,4)、J(2,4)、J(3,4)とを比較する。
【0098】
そして、サーバ装置11は、J行列の要素J(1,4)、J(2,4)、J(3,4)の差分値ΔJ(1,4)=0.12、ΔJ(2,4)=0.16、ΔJ(3,4)=0.06の中から最大値ΔJ(2,4)=0.16を選択する。なお、この最大値をdと表現する。さらに、サーバ装置11は、この最大値d=ΔJ(2,4)を用いて、更新値δ=d/n=0.16/62=0.00258を算出する。ここでは具体例(フィードバックの種類が「購入」の場合)を挙げて説明したが、フィードバックの種類やJ行列の値が異なる場合においても同様の方法で更新値δが算出される。
【0099】
再び図19を参照する。ステップS142において更新値でδを算出すると、サーバ装置11は、次の時刻(t+2)におけるフィードバックが有るか否かを判定する(S143)。フィードバックが有る場合、サーバ装置11は、処理をステップS144に進める。一方、フィードバックが無い場合、サーバ装置11は、処理をステップS143に戻してフィードバックを待ち受ける。
【0100】
ステップS144に処理を進めた場合、サーバ装置11は、時刻(t+2)におけるフィードバックに基づいてP行列を更新する(S144)。次いで、サーバ装置11は、ステップS142において算出した更新値δを用いて時刻(t+2)におけるJ行列を算出する(S145)。但し、ここで算出されるJ行列は、ステップS144で更新されたP行列に基づいて上記の式(1)及び式(2)により算出されるものではないため、実質的には、時刻t、時刻(t+1)のJ行列から時刻(t+2)のJ行列を予測することに相当する。
【0101】
ここで、図21を参照しながら、更新値δを用いた時刻(t+2)におけるJ行列の算出方法について説明を補足する。なお、ここでは、過去にアイテム2、3にフィードバック(ここでは「購入」の場合を例に挙げる。)を与えているユーザが、時刻(t+2)にアイテム1に対してフィードバックを与えた場合について考える。
【0102】
図21に示すように、サーバ装置11は、まず、時刻(t+1)におけるJ行列を参照する。このとき、サーバ装置11は、時刻(t+2)において購入されたアイテム1、及び過去に購入されたアイテム2、3の組み合わせに関する要素(以下、注目要素)に注目する。次いで、サーバ装置11は、ステップS142において算出した更新値δを時刻(t+1)における注目要素の値に加算して時刻(t+2)におけるJ行列を算出する。
【0103】
このようにしてサーバ装置11は、更新値δを用いたJ行列の更新処理を実行する。但し、サーバ装置11は、所定のタイミングで、先に説明した方法により、上記の式(1)及び式(2)に基づくJ行列の算出を実行する。このように、更新値δを用いてJ行列を更新することにより高速な更新処理が実現される。また、所定のタイミングでP行列からJ行列の算出処理が実行されることで、近似による誤差の蓄積が抑制される。
【0104】
以上、近似的なJ行列の更新方法について説明した。
【0105】
(1−4−2:バイアスパラメータに基づくJ行列の更新方法(第2変形例))
次に、図22を参照しながら、バイアスパラメータに基づくJ行列の更新方法について説明する。図22は、バイアスパラメータに基づくJ行列の更新方法について説明するための説明図である。なお、ここで言うバイアスパラメータとは、J行列を更新する際に、J行列の要素に対してユーザの嗜好に応じた重み付けを行うためのパラメータである。
【0106】
図22に示すように、バイアスパラメータは、アイテムの種類に応じて予め決められている。図22の例では、アイテムがゲームの場合にはバイアスパラメータ1.2n−1、アイテムがビデオの場合にはバイアスパラメータ1.1n−1、アイテムがコミックの場合にはバイアスパラメータ1.4n−1に設定されている。但し、nは、購入された順番を表す。例えば、ユーザがアイテム2、3(ゲーム)を順に購入した場合、サーバ装置11は、アイテム2、3に関するバイアスパラメータを算出する。この場合、アイテム2のバイアスパラメータb1は1.2=1.0、アイテム3のバイアスパラメータb2は1.2=1.2となる。
【0107】
バイアスパラメータb1、b2を算出したサーバ装置11は、J行列を参照し、アイテム2、3に関連するJ行列の要素J(1,2)、J(1,3)、J(2,3)に注目する。そして、サーバ装置11は、J行列の要素J(1,2)にバイアスパラメータb1を乗算し、J行列の要素J(1,3)、J(2,3)にバイアスパラメータb2を乗算する。このように、バイアスパラメータによりJ行列を更新したサーバ装置11は、更新後のJ行列に基づいて推薦リストを生成し、生成した推薦リストに基づいてユーザに関連アイテムを推薦する。
【0108】
以上、バイアスパラメータに基づくJ行列の更新方法について説明した。
【0109】
[1−5:ハードウェア構成]
上記のサーバ装置11、ユーザ端末13が有する各構成要素の機能は、例えば、図23に示す情報処理装置のハードウェア構成を用いて実現することが可能である。つまり、当該各構成要素の機能は、コンピュータプログラムを用いて図23に示すハードウェアを制御することにより実現される。なお、このハードウェアの形態は任意であり、例えば、パーソナルコンピュータ、携帯電話、PHS、PDA等の携帯情報端末、ゲーム機、又は種々の情報家電がこれに含まれる。但し、上記のPHSは、Personal Handy−phone Systemの略である。また、上記のPDAは、Personal Digital Assistantの略である。
【0110】
図23に示すように、このハードウェアは、主に、CPU902と、ROM904と、RAM906と、ホストバス908と、ブリッジ910と、を有する。さらに、このハードウェアは、外部バス912と、インターフェース914と、入力部916と、出力部918と、記憶部920と、ドライブ922と、接続ポート924と、通信部926と、を有する。但し、上記のCPUは、Central Processing Unitの略である。また、上記のROMは、Read Only Memoryの略である。そして、上記のRAMは、Random Access Memoryの略である。
【0111】
CPU902は、例えば、演算処理装置又は制御装置として機能し、ROM904、RAM906、記憶部920、又はリムーバブル記録媒体928に記録された各種プログラムに基づいて各構成要素の動作全般又はその一部を制御する。ROM904は、CPU902に読み込まれるプログラムや演算に用いるデータ等を格納する手段である。RAM906には、例えば、CPU902に読み込まれるプログラムや、そのプログラムを実行する際に適宜変化する各種パラメータ等が一時的又は永続的に格納される。
【0112】
これらの構成要素は、例えば、高速なデータ伝送が可能なホストバス908を介して相互に接続される。一方、ホストバス908は、例えば、ブリッジ910を介して比較的データ伝送速度が低速な外部バス912に接続される。また、入力部916としては、例えば、マウス、キーボード、タッチパネル、ボタン、スイッチ、及びレバー等が用いられる。さらに、入力部916としては、赤外線やその他の電波を利用して制御信号を送信することが可能なリモートコントローラ(以下、リモコン)が用いられることもある。
【0113】
出力部918としては、例えば、CRT、LCD、PDP、又はELD等のディスプレイ装置、スピーカ、ヘッドホン等のオーディオ出力装置、プリンタ、携帯電話、又はファクシミリ等、取得した情報を利用者に対して視覚的又は聴覚的に通知することが可能な装置である。但し、上記のCRTは、Cathode Ray Tubeの略である。また、上記のLCDは、Liquid Crystal Displayの略である。そして、上記のPDPは、Plasma DisplayPanelの略である。さらに、上記のELDは、Electro−Luminescence Displayの略である。
【0114】
記憶部920は、各種のデータを格納するための装置である。記憶部920としては、例えば、ハードディスクドライブ(HDD)等の磁気記憶デバイス、半導体記憶デバイス、光記憶デバイス、又は光磁気記憶デバイス等が用いられる。但し、上記のHDDは、Hard Disk Driveの略である。
【0115】
ドライブ922は、例えば、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリ等のリムーバブル記録媒体928に記録された情報を読み出し、又はリムーバブル記録媒体928に情報を書き込む装置である。リムーバブル記録媒体928は、例えば、DVDメディア、Blu−rayメディア、HD DVDメディア、各種の半導体記憶メディア等である。もちろん、リムーバブル記録媒体928は、例えば、非接触型ICチップを搭載したICカード、又は電子機器等であってもよい。但し、上記のICは、Integrated Circuitの略である。
【0116】
接続ポート924は、例えば、USBポート、IEEE1394ポート、SCSI、RS−232Cポート、又は光オーディオ端子等のような外部接続機器930を接続するためのポートである。外部接続機器930は、例えば、プリンタ、携帯音楽プレーヤ、デジタルカメラ、デジタルビデオカメラ、又はICレコーダ等である。但し、上記のUSBは、Universal Serial Busの略である。また、上記のSCSIは、Small Computer System Interfaceの略である。
【0117】
通信部926は、ネットワーク932に接続するための通信デバイスであり、例えば、有線又は無線LAN、Bluetooth(登録商標)、又はWUSB用の通信カード、光通信用のルータ、ADSL用のルータ、又は各種通信用のモデム等である。また、通信部926に接続されるネットワーク932は、有線又は無線により接続されたネットワークにより構成され、例えば、インターネット、家庭内LAN、赤外線通信、可視光通信、放送、又は衛星通信等である。但し、上記のLANは、Local Area Networkの略である。また、上記のWUSBは、Wireless USBの略である。そして、上記のADSLは、Asymmetric Digital Subscriber Lineの略である。
【0118】
<2:まとめ>
最後に、本発明の実施形態に係る技術内容について簡単に纏める。ここで述べる技術内容は、例えば、PC、携帯電話、携帯ゲーム機、携帯情報端末、情報家電、カーナビゲーションシステム等、種々の情報処理装置に対して適用することができる。
【0119】
上記の情報処理装置の機能構成は次のように表現することができる。当該情報処理装置は、次のようなフィードバック受付部と、フィードバック履歴格納部と、関連度算出部と、推薦部とを有する。上記のフィードバック受付部は、アイテムに対するユーザのフィードバックを受け付ける手段である。フィードバックとしては、例えば、アイテムの購入、アイテムに関する情報の閲覧、アイテムに対する評価などがある。
【0120】
また、上記のフィードバック履歴格納部は、前記フィードバック受付部により現在又は過去に受け付けたフィードバックの情報をユーザとアイテムの組み合わせ毎に格納する手段である。フィードバックの情報としては、例えば、アイテムの購入履歴、アイテムに関する情報の閲覧履歴、アイテムに対する評価情報などがある。
【0121】
また、上記の関連度算出部は、前記フィードバック受付部によりフィードバックを受け付けた際、前記フィードバック履歴格納部により格納されたフィードバックの情報を用いて、同じユーザが共にフィードバックを与えている度合いを示す第1情報、及び、多くのユーザがフィードバックを与えている度合いを示す第2情報に基づくアイテム間の関連度を算出する手段である。例えば、フィードバックの情報がユーザの購入履歴を示すものである場合、上記の第1情報は、同じユーザによるアイテムの購入数を示す情報となる。また、上記の第2情報は、複数のユーザにより購入されているアイテムの数を示す情報となる。
【0122】
このように、上記の第1情報が考慮されることにより、アイテム間の関連度は、ユーザの嗜好を考慮したものとなる。また、上記の第2情報が考慮されることにより、アイテム間の関連度は、アイテムを介したユーザ間の関連性を考慮したものとなる。つまり、上記の関連度算出部により算出された関連度は、ユーザの嗜好及びユーザ間の関連性を考慮したアイテム間の関連度を示している。この関連度に基づき、上記の推薦部は、前記フィードバック受付部によりアイテムにフィードバックを与えたユーザに対して、当該アイテムに対する関連度が高いアイテムを即座に推薦する。
【0123】
その結果、ユーザの嗜好、及びアイテムを介したユーザ間の関連性を共に考慮して選出されたアイテムをユーザに推薦することが可能になる。また、ユーザがフィードバックを与えた後、そのフィードバックが推薦結果に対して即座に反映されるため、フィードバック時点におけるユーザの嗜好に適したアイテムがユーザに推薦されるようになる。
【0124】
(備考)
上記の推薦システム10は、アイテム推薦システムの一例である。また、上記のフィードバック情報更新部112、履歴テーブル格納部121は、フィードバック履歴格納部の一例である。また、上記の中間値テーブル生成部113、関連度算出部114は、関連度算出部の一例である。上記のアイテム推薦部115は、推薦部の一例である。上記の関連度算出部114は、変化検出部、関連度予測部の一例である。上記の嗜好解析部116は、嗜好情報生成部の一例である。
【0125】
以上、添付図面を参照しながら本発明の好適な実施形態について説明したが、本発明は係る例に限定されないことは言うまでもない。当業者であれば、特許請求の範囲に記載された範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
【0126】
例えば、上記説明においては、本実施形態の基本構成に加え、2通りの変形例を示した。これら基本構成と変形例とは適宜組み合わせることが可能であり、その組み合わせ方法については制限がない。また、上記説明においては、フィードバックの種類、バイアスパラメータの種類などについて具体例を示したが、本実施形態の技術的範囲はこれらの具体例に限定されない。
【符号の説明】
【0127】
10 推薦システム
11 サーバ装置
111 フィードバック受付部
112 フィードバック情報更新部
113 中間値テーブル生成部
114 関連度算出部
115 アイテム推薦部
116 嗜好解析部
12 記憶装置
121 履歴テーブル格納部
122 中間値テーブル格納部
123 関連度テーブル格納部
13 ユーザ端末
14 ネットワーク


【特許請求の範囲】
【請求項1】
アイテムに対するユーザのフィードバックを受け付けるフィードバック受付部と、
前記フィードバック受付部により現在又は過去に受け付けたフィードバックの情報をユーザとアイテムの組み合わせ毎に格納するフィードバック履歴格納部と、
前記フィードバック受付部によりフィードバックを受け付けた際、前記フィードバック履歴格納部により格納されたフィードバックの情報を用いて、同じユーザが共にフィードバックを与えている度合いを示す第1情報、及び、多くのユーザがフィードバックを与えている度合いを示す第2情報に基づくアイテム間の関連度を算出する関連度算出部と、
前記関連度算出部により算出された関連度に基づき、前記フィードバック受付部によりアイテムにフィードバックを与えたユーザに対して、当該アイテムに対する関連度が高いアイテムを即座に推薦する推薦部と、
を備える、
アイテム推薦システム。
【請求項2】
前記関連度算出部により時刻tにおいて算出されたアイテム間の関連度J(t)と、時刻tの次の時刻tにおいて前記関連度算出部により算出されたアイテム間の関連度J(t)とを比較し、時刻tと時刻tとの間で最も関連度が変化したアイテムi、jの組み合わせを検出する変化検出部と、
前記変化検出部により検出されたアイテムi、jに関する関連度の差分J(t)−J(t)から、時刻tの次の時刻tにおけるアイテム間の関連度J(t)を予測する関連度予測部と、
をさらに備え、
前記推薦部は、所定のタイミングにおいて前記関連度算出部により算出された関連度に基づいてアイテムを推薦し、当該所定のタイミング以外のタイミングにおいて前記関連度予測部により予測された関連度に基づいてアイテムを推薦する、
請求項1に記載のアイテム推薦システム。
【請求項3】
前記フィードバック履歴格納部により格納されたフィードバックの情報に基づいてユーザの嗜好を示す嗜好情報を生成する嗜好情報生成部をさらに備え、
前記嗜好情報生成部は、前記フィードバック受付部によりフィードバックを受け付ける直前に、前記フィードバック履歴格納部により格納されたフィードバックの情報に基づいて嗜好情報を生成し、
前記推薦部は、前記フィードバック受付部によりフィードバックを受け付ける直前に生成された嗜好情報に基づき、前記関連度が高いアイテムの中から、前記フィードバック受付部によりアイテムにフィードバックを与えたユーザの嗜好が高いアイテムを推薦する、
請求項2に記載のアイテム推薦システム。
【請求項4】
アイテム毎に予め優先度係数が設定されている場合、前記推薦部は、前記優先度係数が乗算された関連度に基づき、前記フィードバック受付部によりアイテムにフィードバックを与えたユーザに対して、当該アイテムに対する関連度が高いアイテムを推薦する、
請求項3に記載のアイテム推薦システム。
【請求項5】
前記フィードバック履歴格納部は、ネットワークを介して接続された記憶装置に前記フィードバックの履歴を格納する、
請求項4に記載のアイテム推薦システム。
【請求項6】
前記フィードバック受付部によりアイテムiに対するユーザuのフィードバックを受け付けた際に、前記フィードバック履歴格納部により格納されるフィードバックの情報がP(i,u)であり、フィードバックを受け付けた場合にP(i,u)=1、フィードバックを受け付けていない場合にP(i,u)=0が設定されるとすると、アイテムiとアイテムj(j≠i)との間の関連度Ji,jは、下記の式(1)で表現される、
請求項1又は5に記載のアイテム推薦システム。
【数1】

【請求項7】
アイテムに対するユーザのフィードバックを受け付けるフィードバック受付ステップと、
前記フィードバック受付ステップで現在又は過去に受け付けたフィードバックの情報をユーザとアイテムの組み合わせ毎に格納するフィードバック履歴格納ステップと、
前記フィードバック受付ステップでフィードバックを受け付けた際、前記フィードバック履歴格納ステップで格納されたフィードバックの情報を用いて、同じユーザが共にフィードバックを与えている度合いを示す第1情報、及び、多くのユーザがフィードバックを与えている度合いを示す第2情報に基づくアイテム間の関連度を算出する関連度算出ステップと、
前記関連度算出ステップで算出された関連度に基づき、前記フィードバック受付ステップでアイテムにフィードバックを与えたユーザに対して、当該アイテムに対する関連度が高いアイテムを即座に推薦する推薦ステップと、
を含む、
アイテム推薦方法。
【請求項8】
アイテムに対するユーザのフィードバックを受け付けるフィードバック受付機能と、
前記フィードバック受付機能により現在又は過去に受け付けたフィードバックの情報をユーザとアイテムの組み合わせ毎に格納するフィードバック履歴格納機能と、
前記フィードバック受付機能によりフィードバックを受け付けた際、前記フィードバック履歴格納機能により格納されたフィードバックの情報を用いて、同じユーザが共にフィードバックを与えている度合いを示す第1情報、及び、多くのユーザがフィードバックを与えている度合いを示す第2情報に基づくアイテム間の関連度を算出する関連度算出機能と、
前記関連度算出機能により算出された関連度に基づき、前記フィードバック受付機能によりアイテムにフィードバックを与えたユーザに対して、当該アイテムに対する関連度が高いアイテムを即座に推薦する推薦機能と、
をコンピュータに実現させるためのプログラム。


【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate


【公開番号】特開2012−3359(P2012−3359A)
【公開日】平成24年1月5日(2012.1.5)
【国際特許分類】
【出願番号】特願2010−135655(P2010−135655)
【出願日】平成22年6月15日(2010.6.15)
【出願人】(000002185)ソニー株式会社 (34,172)
【Fターム(参考)】