(57)【特許請求の範囲】
【請求項１】
アイテム利用ログに基づいてユーザおよび複数のアイテムが分類されるクラスタへの前記ユーザの帰属度に基づく第１のスコアと、前記クラスタへの前記複数のアイテムのそれぞれの帰属度に基づく第２のスコアとに基づいて、前記ユーザに対して前記複数のアイテムから少なくとも１つのアイテムを選択する処理を実行するプロセッサを備え、
前記プロセッサは、前記クラスタに第１のアイテムが新たに分類される場合に、前記クラスタに分類される他のアイテムと前記第１のアイテムとの間の類似度と、前記他のアイテムの前記第２のスコアとに基づいて、前記第１のアイテムの前記第２のスコアを設定する処理をさらに実行する、情報処理装置。
る情報処理装置。
【請求項２】
前記プロセッサは、前記第２のスコアが高いものから順に選択された所定の数のアイテムの中から前記少なくとも１つのアイテムを選択する、請求項１に記載の情報処理装置。
【請求項３】
前記プロセッサは、前記第２のスコアが所定の閾値以上のアイテムの中から前記少なくとも１つのアイテムを選択する、請求項１に記載の情報処理装置。
【請求項４】
前記プロセッサは、前記第１のスコアが高いものから順に選択された所定の数の前記クラスタに分類されたアイテムの中から前記少なくとも１つのアイテムを選択する、請求項１〜３のいずれか１項に記載の情報処理装置。
【請求項５】
前記プロセッサは、前記ユーザが前記クラスタに分類される第２のアイテムを新たに利用した場合に、前記第２のアイテムの前記第２のスコアに応じた値を前記第１のスコアに加算する処理をさらに実行する、請求項１〜４のいずれか１項に記載の情報処理装置。
【請求項６】
前記プロセッサは、前記第２のアイテムの前記第２のスコアが高いものから順に選択された所定の数の前記クラスタにおける前記第２のアイテムの前記第２のスコアに応じた値を前記第１のスコアに加算する、請求項５に記載の情報処理装置。
【請求項７】
前記第２のスコアは、前記クラスタのそれぞれについて独立して設定される、請求項１〜６のいずれか１項に記載の情報処理装置。
【請求項８】
プロセッサが、アイテム利用ログに基づいてユーザおよび複数のアイテムが分類されるクラスタへの前記ユーザの帰属度に基づく第１のスコアと、前記クラスタへの前記複数のアイテムのそれぞれの帰属度に基づく第２のスコアとに基づいて、前記ユーザに対して前記複数のアイテムから少なくとも１つのアイテムを選択することと、
前記プロセッサが、前記クラスタに第１のアイテムが新たに分類される場合に、前記クラスタに分類される他のアイテムと前記第１のアイテムとの間の類似度と、前記他のアイテムの前記第２のスコアとに基づいて、前記第１のアイテムの前記第２のスコアを設定する処理をさらに実行することと、
を含む情報処理方法。
【請求項９】
アイテム利用ログに基づいてユーザおよび複数のアイテムが分類されるクラスタへの前記ユーザの帰属度に基づく第１のスコアと、前記クラスタへの前記複数のアイテムのそれぞれの帰属度に基づく第２のスコアとに基づいて、前記ユーザに対して前記複数のアイテムから少なくとも１つのアイテムを選択する機能と、
前記クラスタに第１のアイテムが新たに分類される場合に、前記クラスタに分類される他のアイテムと前記第１のアイテムとの間の類似度と、前記他のアイテムの前記第２のスコアとに基づいて、前記第１のアイテムの前記第２のスコアを設定する機能と、
をコンピュータに実現させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、情報処理装置、情報処理方法およびプログラムに関する。
【背景技術】
【０００２】
楽曲やテレビジョン番組、ビデオコンテンツなどのアイテムを、個人の嗜好を反映してユーザに推薦するなどのために選択する技術としては、例えば、ログの共起関係を利用した協調フィルタリングやコンテンツベースフィルタリング（ＣＢＦ：Content-Based  Filtering）が知られている。
【０００３】
ここで、協調フィルタリングは、例えば、多数のユーザのアイテム利用のログを嗜好のパターンとして蓄積し、ログに基づいて嗜好のパターンが類似すると推定される他のユーザが利用したアイテムを選択する技術である。かかる協調フィルタリングを利用した技術は、例えば特許文献１に記載されている。
【０００４】
また、ＣＢＦは、例えば、ユーザのコンテンツ利用のログを蓄積するとともに、コンテンツのメタデータなどを利用してコンテンツ間の類似関係を推定し、ユーザが過去に利用したコンテンツに類似するコンテンツを選択する技術である。かかるＣＢＦを利用した技術は、例えば特許文献２に記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００５−３３２２６５号公報
【特許文献２】特開２００７−０５８８４２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
近年、推薦の対象になるアイテムの数や、推薦を受けようとするユーザの数は、さらに増加している。ところが、上記のような手法を利用したアイテム選択では、アイテムの数やユーザの数が増加すると、ユーザに推薦情報を提供するためにサーバでログをマッチングするための計算コストが増大し、円滑な推薦情報の提供が困難であった。
【０００７】
そこで、本開示では、アイテム選択のための計算コストを抑制することが可能な、新規かつ改良された情報処理装置、情報処理方法およびプログラムを提案する。
【課題を解決するための手段】
【０００８】
本開示によれば、アイテム利用ログに基づいてユーザおよび複数のアイテムが分類されるクラスタへの上記ユーザの帰属度に基づく第１のスコアと、上記クラスタへの上記複数のアイテムのそれぞれの帰属度に基づく第２のスコアとに基づいて、上記ユーザに対して上記複数のアイテムから少なくとも１つのアイテムを選択する処理を実行するプロセッサを含む情報処理装置が提供される。
【０００９】
また、本開示によれば、プロセッサが、アイテム利用ログに基づいてユーザおよび複数のアイテムが分類されるクラスタへの上記ユーザの帰属度に基づく第１のスコアと、上記クラスタへの上記複数のアイテムのそれぞれの帰属度に基づく第２のスコアとに基づいて、上記ユーザに対して上記複数のアイテムから少なくとも１つのアイテムを選択することを含む情報処理方法が提供される。
【００１０】
また、本開示によれば、アイテム利用ログに基づいてユーザおよび複数のアイテムが分類されるクラスタへの上記ユーザの帰属度に基づく第１のスコアと、上記クラスタへの上記複数のアイテムのそれぞれの帰属度に基づく第２のスコアとに基づいて、上記ユーザに対して上記複数のアイテムから少なくとも１つのアイテムを選択する機能をコンピュータに実現させるためのプログラムが提供される。
【００１１】
上記の構成によれば、アイテムの選択が、クラスタへのアイテムの帰属度に基づくスコアに基づいて実行される。それゆえ、例えばアイテム選択のための計算に用いるクラスタやスコアの数を所定の数に抑えることによって、計算コストが抑制される。
【発明の効果】
【００１２】
以上説明したように本開示によれば、アイテム選択のための計算コストを抑制することができる。
【図面の簡単な説明】
【００１３】
【図１】本開示の第１の実施形態に係るアイテム利用ログの例を示す図である。
【図２】本開示の第１の実施形態に係るクラスタ生成の例を示す図である。
【図３】本開示の第１の実施形態に係るスコア設定の例を示す図である
【図４】スコア設定の別の例を示す図である。
【図５】本開示の第１の実施形態に係る装置の機能構成を示すブロック図である。
【図６】本開示の第１の実施形態におけるユーザへのアイテム推薦の第１の例を示す図である。
【図７】本開示の第１の実施形態におけるユーザへのアイテム推薦の第２の例を示す図である。
【図８】本開示の第１の実施形態におけるアイテム更新の例を示す図である。
【図９】本開示の第１の実施形態における差分学習の例を示す図である。
【図１０】本開示の第２の実施形態に係る装置の機能構成を示すブロック図である。
【図１１】情報処理装置のハードウェア構成を説明するためのブロック図である。
【発明を実施するための形態】
【００１４】
以下に添付図面を参照しながら、本開示の好適な実施の形態について詳細に説明する。なお、本明細書および図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【００１５】
なお、説明は以下の順序で行うものとする。
１．第１の実施形態
１−１．技術の概要
１−２．装置構成
１−３．処理の例
２．第２の実施形態
２−１．装置構成
３．補足
【００１６】
（１．第１の実施形態）
（１−１．技術の概要）
図１〜図４を参照して、本開示の第１の実施形態に係る技術の概要について説明する。
【００１７】
（アイテム利用ログの取得）
まず、図１を参照して、ユーザにアイテムを推薦するための情報の元になるアイテム利用ログの取得について説明する。図１は、本開示の第１の実施形態に係るアイテム利用ログの例を示す図である。
【００１８】
図１を参照すると、ユーザＵ１〜Ｕ３によってアイテムＩ１〜Ｉ３が利用された場合のアイテム利用ログの例が示されている。図示された例では、ユーザＵ１がアイテムＩ１およびアイテムＩ２を利用しており、ユーザＵ２がアイテムＩ１およびアイテムＩ３を利用しており、ユーザＵ３がアイテムＩ３を利用している。このように、アイテム利用ログは、ユーザＵとアイテムＩとの関係を示すグラフとして表現されうる。なお、図示されたユーザＵおよびアイテムＩの数は一例であり、実際にはさらに多くのユーザＵおよびアイテムＩが存在しうる。
【００１９】
ここで、本明細書において、アイテムは、例えば楽曲、テレビジョン番組、ビデオコンテンツ、電子書籍など、ネットワークを介して提供される各種の商品である。また、アイテムは、必ずしもネットワークを介して提供されなくてもよく、図１に示すようなアイテム利用ログが取得可能であれば、例えば実店舗で販売される商品であってもよい。また、アイテムの利用は、必ずしも対価を支払っての購入には限られず、例えば無料のテレビジョン番組の視聴や、試供品の利用などであってもよい。
【００２０】
このようなアイテム利用ログは、ユーザの数やアイテムの数が増加すると膨大な次元のデータになってしまう。そこで、本実施形態では、ユーザおよびアイテムが分類されるクラスタを生成して、データの次元を圧縮する。なお、クラスタの生成には、例えば特開２０１１−１７５３６２号公報に記載されたＰＬＳＡ（Probabilistic  Latent  Semantic  Analysis）やＬＤＡ（Latent  Dirichlet  Allocation）の手法など、公知のあらゆる技術を適用することが可能である。
【００２１】
（クラスタの生成）
次に、図２を参照して、アイテム利用ログに基づくクラスタの生成について説明する。図２は、本開示の第１の実施形態に係るクラスタ生成の例を示す図である。
【００２２】
図２を参照すると、図１に示したアイテム利用ログから、２つのクラスタＣ１，Ｃ２を生成する例が示されている。ユーザＵとクラスタＣとの間、およびアイテムＩとクラスタＣとの間の線に付された数字は、それぞれのクラスタＣへのユーザＵまたはアイテムＩの帰属度を示す。
【００２３】
ここで、クラスタについて設定される帰属度について説明する。クラスタＣへのユーザＵの帰属度Ｐｒ［Ｃ｜Ｕ］は、クラスタＣにユーザＵが帰属する確率を示す。つまり、帰属度Ｐｒ［Ｃ｜Ｕ］は、ユーザＵがいずれかのアイテムを利用する場合に、ユーザＵがクラスタＣに分類される確率を示す。図示された例で、ユーザＵ１はアイテムＩ１およびアイテムＩ２を利用するが、いずれの場合も、ユーザＵ１はクラスタＣ１に分類される。従って、クラスタＣ１へのユーザＵ１の帰属度Ｐｒ［Ｃ１｜Ｕ１］は、１．０である。かかる帰属度Ｐｒ［Ｃ｜Ｕ］は、ユーザＵごとのクラスタＣのスコアＵＰ（Ｃ）でもある。
【００２４】
一方、クラスタＣへのアイテムＩの帰属度Ｐｒ［Ｃ｜Ｉ］は、クラスタＣにアイテムＩが帰属する確率を示す。つまり、帰属度Ｐｒ［Ｃ｜Ｉ］は、アイテムＩがいずれかのユーザによって利用される場合に、アイテムＩがクラスタＣに分類される確率を示す。図示された例で、アイテムＩ１は、ユーザＵ１によって利用される場合はクラスタＣ１に分類され、ユーザＵ２によって利用される場合はクラスタＣ２に分類される。従って、クラスタＣ１，Ｃ２のそれぞれへのアイテムＩ１の帰属度Ｐｒ［Ｃ１｜Ｉ１］，Ｐｒ［Ｃ２｜Ｉ１］は、いずれも０．５である。かかる帰属度Ｐｒ［Ｃ｜Ｉ］は、アイテムＩごとのクラスタＣのスコアＣＰ（Ｃ）でもある。
【００２５】
このように、ユーザＵおよびアイテムＩが分類されるクラスタＣを生成することによって、ユーザＵとアイテムＩとの組み合わせを、有限の数のクラスタＣによって表現することが可能である。それゆえ、データの次元が圧縮され、ユーザにアイテムを推薦する場合のマッチングの計算コストをある程度削減することができる。
【００２６】
しかしながら、アイテムＩごとに設定されるスコアＣＰ（Ｃ）をマッチングのためのスコアとして用いようとすると、結局、アイテムＩの数の増加に伴ってマッチング時に参照するＣＰ（Ｃ）の数が増加する。それゆえ、計算コストを十分に削減することは難しい。そこで、本開示の第１の実施形態では、以下で説明するように、スコアＣＰ（Ｃ）をクラスタＣごとに設定する。
【００２７】
（スコアの設定）
次に、図３および図４を参照して、クラスタに関するスコアの設定について説明する。図３は、本開示の第１の実施形態に係るスコア設定の例を示す図である。図４は、スコア設定の別の例を示す図である。
【００２８】
図３を参照すると、図２の例と同様に生成された２つのクラスタＣ１，Ｃ２について、クラスタごとのスコアとしてクラスタＣＰが設定される例が示されている。クラスタＣＰは、図２の例でアイテムＩごとに設定されたスコアＣＰ（Ｃ）＝帰属度Ｐｒ［Ｃ｜Ｉ］を、クラスタＣごとに並べ替えたものである。
【００２９】
ここで、あるアイテムＩについてのスコアＣＰ（Ｃ）の合計は１である（アイテムＩはいずれかのクラスタＣに帰属するため）。一方、クラスタＣＰは、元々はアイテムＩごとに設定されるＣＰ（Ｃ）をクラスタＣごとに並べ替えたものであるため、あるクラスタＣについてのクラスタＣＰの合計は、必ずしも１にはならない。
【００３０】
一方、図４には、図３と比較するための別の例として、図２の例と同様に生成された２つのクラスタＣ１，Ｃ２について、アイテムＩへのクラスタＣの帰属度Ｐｒ［Ｉ｜Ｃ］を設定する例が示されている。アイテムとクラスタとの間の線に付された数字は、この帰属度Ｐｒ［Ｉ｜Ｃ］に対応する。クラスタＣはいずれかのアイテムＩに帰属するため、あるクラスタＣについての帰属度Ｐｒ［Ｉ｜Ｃ］の合計は１である。
【００３１】
本実施形態では、図４に示すような帰属度Ｐｒ［Ｉ｜Ｃ］ではなく、図３に示すようなクラスタＣＰを、クラスタごとに設定されるスコアとして用いる。このことの利点については、以下の説明でより詳しく述べる。
【００３２】
（概要のまとめ）
以上説明したように、本実施形態では、ユーザＵとアイテムＩとの関係をクラスタＣで表現する。この場合、クラスタＣの数を制限することで、アイテムの数が増えても有限のクラスタ数でユーザとアイテムとの関係を表現することが可能である。また、本実施形態では、ユーザごとにクラスタのスコアＵＰ（Ｃ）を設定する。これによって、例えば、ユーザによるアイテムの利用のアクションがあった場合、このアクションに応じてユーザごとのスコアＵＰ（Ｃ）を差分更新するだけでよく、すべてのクラスタＣに関する計算を再実行しなくてもよい。
【００３３】
さらに、本実施形態では、アイテムＩごとのスコアＣＰ（Ｃ）を、クラスタＣごとに並べ替えてクラスタＣＰとして用いる。これによって、例えば、クラスタＣごとに保持されるクラスタＣＰの数を、スコアが高いものから順に所定の数に制限したり、所定の閾値未満のスコアを切り捨てたりすることによって、所定の数以内に制限することが可能である。従って、ユーザＵとアイテムＩとの関係を有限のクラスタＣで表現できるだけでなく、クラスタＣに保持されるデータの量も、処理負荷やストレージコスト、通信コストなどを考慮して適宜設定することができる。
【００３４】
（１−２．装置構成）
図５を参照して、本開示の第１の実施形態に係る装置構成について説明する。図５は、本開示の第１の実施形態に係る装置の機能構成を示すブロック図である。
【００３５】
本実施形態に係るシステム１０は、サーバ１００およびクライアント２００を含む。サーバ１００は、ログ取得部１１０、クラスタ生成部１２０、スコア設定部１３０、クラスタ情報ＤＢ１４０、およびクラスタ情報更新部１５０を含む。クライアント２００は、クラスタ情報取得部２１０、クラスタ情報ＤＢ２２０、クラスタ情報更新部２３０、アイテムスコア算出部２４０、および推薦情報生成部２５０を含む。
【００３６】
サーバ１００およびクライアント２００は、いずでも、後述するようなハードウェア構成を有する情報処理装置として実現されうる。以下、サーバ１００およびクライアント２００のそれぞれの構成要素について説明する。
【００３７】
（サーバ）
ログ取得部１１０は、例えばＣＰＵ（Central  Processing  Unit）、ＲＡＭ（Random  Access  Memory）、ＲＯＭ（Read  Only  Memory）などによって実現され、アイテム利用ログを取得する。アイテム利用ログは、例えば図１に示したような、ユーザとアイテムとの関係を表すデータである。ログ取得部１１０は、例えばネットワーク上にあるアイテム提供サーバと通信してアイテム利用ログを取得してもよい。また、例えばサーバ１００がアイテム提供サーバでもあるような場合には、ログ取得部１１０は、内部的にアイテム利用ログを取得してもよい。
【００３８】
クラスタ生成部１２０は、例えばＣＰＵ、ＲＡＭ、ＲＯＭなどによって実現され、ログ取得部１１０によって取得されたアイテム利用ログに基づいてクラスタ情報を生成する。クラスタは、例えば図２に示したような、ユーザおよびアイテムが分類されるクラスタである。上述のように、クラスタ生成部１２０は、ユーザおよびアイテムのクラスタへの分類に、例えばＰＬＳＡやＬＤＡなどの公知の各種の手法を用いる。
【００３９】
スコア設定部１３０は、例えばＣＰＵ、ＲＡＭ、ＲＯＭなどによって実現され、クラスタ生成部１２０によって生成されたクラスタに関するスコアの情報を設定する。ここで設定されるスコアは、例えば図３に示したような、ユーザＵごとに設定されるクラスタＣのスコアＵＰ（Ｃ）、およびクラスタＣごとに設定されるアイテムＩのスコアであるクラスタＣＰである。これらのスコアは、いずれも、例えばユーザ、クラスタ、およびアイテムの間のそれぞれの帰属度に基づいて設定される。
【００４０】
クラスタ情報ＤＢ１４０は、例えばストレージ装置などによって実現され、クラスタ生成部１２０によって生成されたクラスタ情報を格納するデータベースである。ここで、クラスタ情報には、スコア設定部１３０によって設定されたスコアの情報が含まれる。クラスタ情報ＤＢ１４０に格納されたクラスタ情報は、例えばクライアント２００からのリクエストに応じて、ネットワーク上の通信を介してクライアント２００に転送される。なお、後述するように、クライアント２００に転送されるクラスタ情報は、一部のクラスタに関する情報に限定されてもよい。
【００４１】
クラスタ情報更新部１５０は、付加的に設けられる。クラスタ情報更新部１５０は、例えばＣＰＵ、ＲＡＭ、ＲＯＭなどによって実現され、クラスタ情報ＤＢ１４０に格納されたクラスタ情報を更新する。クラスタ情報の更新は、例えばユーザまたはアイテムが追加または削除された場合、およびユーザによって新たにアイテムが利用された場合などに実行されうる。なお、更新処理の詳細については後述する。
【００４２】
（クライアント）
クラスタ情報取得部２１０は、例えばＣＰＵ、ＲＡＭ、ＲＯＭなどによって実現され、サーバ１００からネットワーク上の通信を介して転送されたクラスタ情報を取得する。クラスタ情報取得部２１０によって取得されるクラスタ情報には、例えば図３に示したような、ユーザＵごとに設定されるクラスタＣのスコアＵＰ（Ｃ）、およびクラスタＣごとに設定されるアイテムＩのスコアであるクラスタＣＰなどのスコアの情報が含まれる。上記のように、クラスタ情報取得部２１０は、クラスタ情報の転送をサーバ１００にリクエストしてもよい。このとき、クラスタ情報取得部２１０は、リクエストするクラスタ情報を一部のクラスタに関する情報に限定してもよい。
【００４３】
クラスタ情報ＤＢ２２０は、例えばストレージ装置などによって実現され、クラスタ情報取得部２１０によって取得されたクラスタ情報を格納するデータベースである。クラスタ情報ＤＢ２２０に格納されるクラスタ情報は、例えば所定の時点で取得されたすべてのクラスタについてのクラスタ情報であってもよい。この場合、クラスタ情報は、クラスタ情報取得部２１０が新たなクラスタ情報を取得した場合に、その情報によって更新されてもよい。
【００４４】
ここで、クラスタ情報ＤＢ２２０に格納されるクラスタ情報は、必ずしもサーバ１００のクラスタ情報ＤＢ１４０に格納されるクラスタ情報と同期していなくてもよい。つまり、クライアント２００で保持されるクラスタ情報は、少なくとも一時的に、サーバ１００で保持されるクラスタ情報とは異なることが許容される。この場合、例えば、所定の周期で、サーバ１００とクライアント２００とのクラスタ情報を同期させる処理が実行されてもよい。
【００４５】
クラスタ情報更新部２３０は、付加的に設けられる。クラスタ情報更新部２３０は、例えばＣＰＵ、ＲＡＭ、ＲＯＭなどによって実現され、クラスタ情報ＤＢ２２０に格納されたクラスタ情報を更新する。クラスタ情報の更新は、例えばユーザによってアイテムが利用された場合などに実行されうる。クラスタ情報更新部２３０と、サーバ１００のクラスタ情報更新部１５０とは、同様のクラスタ情報の更新処理を実行可能であってもよい。また、また、更新処理が、例えば種類ごとにクラスタ情報更新部１５０とクラスタ情報更新部２３０とに振り分けられていてもよい。
【００４６】
アイテムスコア算出部２４０は、例えばＣＰＵ、ＲＡＭ、ＲＯＭなどによって実現され、クラスタ情報ＤＢ２２０に格納されたクラスタ情報を用いてアイテムスコアを算出する。より具体的には、アイテムスコア算出部２４０は、クラスタ情報に含まれる、ユーザＵごとに設定されるクラスタＣのスコアＵＰ（Ｃ）、およびクラスタＣごとに設定されるアイテムＩのスコアであるクラスタＣＰなどのスコアを用いて、アイテムスコアを算出する。アイテムスコアは、後述するように例えばユーザに推薦するアイテムを決定するために用いられる。
【００４７】
推薦情報生成部２５０は、例えばＣＰＵ、ＲＡＭ、ＲＯＭなどによって実現され、アイテムスコア算出部２４０によって算出されたアイテムスコアに基づいて、ユーザにアイテムを推薦する情報を生成する。生成された情報は、例えばクライアント２００のディスプレイなどの出力装置（図示せず）を介してユーザに提供される。
【００４８】
（１−３．処理の例）
図６〜図９を参照して、本開示の第１の実施形態に係る処理の例について説明する。
【００４９】
（ユーザへのアイテム推薦）
まず、図６および図７を参照して、本開示の第１の実施形態におけるユーザへのアイテム推薦の処理について説明する。図６は、本開示の第１の実施形態におけるユーザへのアイテム推薦の第１の例を示す図である。図７は、本開示の第１の実施形態におけるユーザへのアイテム推薦の第２の例を示す図である。
【００５０】
本実施形態では、クライアント２００のアイテムスコア算出部２４０が、クラスタに関するスコアのうち、クラスタＣＰと、推薦を受けるユーザについてのスコアＵＰ（Ｃ）とを用いてアイテムスコアＳ（Ｉ）を算出する。さらに、推薦情報生成部２５０が、例えばアイテムスコアＳ（Ｉ）の降順にアイテムＩをソートして表示する情報を生成して“推薦アイテム”としてユーザに提示することで、アイテムスコアがより高いアイテムがユーザに推薦される。
【００５１】
図６に示す第１の例では、アイテムスコア算出部２４０が、すべてのクラスタＣのクラスタ情報に基づいてアイテムスコアを算出する。アイテムスコア算出部２４０は、すべてのクラスタＣのクラスタＣＰ（＝帰属度Ｐｒ［Ｃ｜Ｉ］）と、推薦を受けるユーザＵ１のスコアＵＰ（Ｃ）とを用いて、例えば以下の式１によってアイテムスコアＳ（Ｉ）を算出する。
【００５２】
【数１】
0005880101.tif 000002
【００５３】
この第１の例では、数学的に正しい方法を用いることによってより正確なアイテム推薦が可能であるが、すべてのクラスタについて計算を実行するため、計算コストが比較的大きくなる。そこで、次に説明する第２の例のような手法が考えられる。
【００５４】
図７に示す第２の例では、アイテムスコア算出部２４０が、推薦を受けるユーザＵ１のスコアＵＰ（Ｃ）が高いものから順に所定の数のクラスタＣのクラスタ情報に基づいてアイテムスコアを算出する。アイテムスコア算出部２４０は、これらのクラスタ（図示された例ではクラスタＣ３，Ｃ１，Ｃ５の３つ）のアイテムＩについての帰属度Ｐｒ［Ｉ｜Ｃ］と、推薦を受けるユーザＵ１のスコアＵＰ（Ｃ）とを用いて、例えば以下の式２によってアイテムスコアＳ（Ｉ）を算出する。なお、帰属度Ｐｒ［Ｉ｜Ｃ］は、例えばクラスタＣでの合計が１になるようにクラスタＣＰを正規化することによって求められる。また、ＣＴＯＰは、スコアＵＰ（Ｃ）が高いものから順に所定の数が選択されたクラスタＣのグループを表す。
【００５５】
【数２】
0005880101.tif 000003
【００５６】
この第２の例では、ＵＰ（Ｃ）がより大きいクラスタＣのクラスタ情報を選択的に用いて、アイテムスコアＳ（Ｉ）を近似的に算出する。これによって、ある程度の妥当性を有するアイテム推薦を実現しつつ、計算コストをさらに削減することができる。
【００５７】
ここで、上述のように、クラスタＣＰやＵＰ（Ｃ）などのスコアを含むクラスタ情報は、サーバ１００で生成される。例えば、図２に示したように、アイテムＩごとにスコアＣＰ（Ｃ）が設定される場合、一般的に、アイテムＩの数は膨大であるため、アイテムスコアの算出に用いられるクラスタ情報も大量になる。それゆえ、クラスタ情報をクライアント２００に転送し、アイテムスコア算出の処理を分散化するといったことは困難である。
【００５８】
そこで、本実施形態では、クラスタＣごとのスコアとしてクラスタＣＰを設定する。上述のように、クラスタＣの数は、アイテムＩの数に関わらず所定の数に制限することが可能である。それゆえ、これによって、アイテムスコアの算出に用いられるクラスタ情報の量を抑制することができる。従って、上記の例のように、サーバ１００からクライアント２００にクラスタ情報を転送して、アイテムスコア算出の処理を分散化することも可能である。
【００５９】
さらに、上述のように、クラスタＣごとに保持されるクラスタＣＰの数は、所定の数に制限することが可能である。また、上記の第２の例のように、アイテムスコアの算出に関係するクラスタＣ自体を、スコアＵＰ（Ｃ）が所定の順位以上のものなどに限定することも可能である。これによって、アイテムスコアの算出処理のためにサーバ１００からクライアント２００に転送されるクラスタ情報の量をさらに削減することができる。なお、同様にして、アイテムスコアの計算処理を、クライアントではなく別サーバに分散させてもよい。
【００６０】
（アイテム更新）
次に、図８を参照して、本開示の第１の実施形態におけるアイテム更新の処理について説明する。図８は、本開示の第１の実施形態におけるアイテム更新の例を示す図である。
【００６１】
図８は、クラスタＣ１に帰属するアイテムＩＯＬＤ１，ＩＯＬＤ２が推薦可能アイテムから除外され、代わってアイテムＩＮＥＷ１，ＩＮＥＷ２，ＩＮＥＷ３が推薦可能アイテムに追加される場合の例を示す。アイテムＩＮＥＷ１，ＩＮＥＷ２，ＩＮＥＷ３は、これまでのアイテム利用ログには存在しないアイテムである。ただし、アイテムＩＮＥＷ１，ＩＮＥＷ２，ＩＮＥＷ３のそれぞれについて、アイテムＩＯＬＤ１，ＩＯＬＤ２との間の類似度は、コンテンツのメタデータを利用するなどして既知であるものとする。
【００６２】
この場合、サーバ１００のクラスタ情報更新部１５０は、例えば以下の式３によってクラスタＣ１でのアイテムＩＮＥＷ１，ＩＮＥＷ２，ＩＮＥＷ３のクラスタＣＰを算出し、アイテムＩＯＬＤ１，ＩＯＬＤ２のクラスタＣＰと置き換える。なお、Ｓｉｍ（ＩＯＬＤ，ＩＮＥＷ）は、アイテムＩＯＬＤとアイテムＩＮＥＷとの間の類似度である。
【００６３】
【数３】
0005880101.tif 000004
【００６４】
上記の式３を用いて、アイテムＩＮＥＷ１，ＩＮＥＷ２，ＩＮＥＷ３について具体的にクラスタＣＰを算出すると、以下のようになる。
クラスタＣＰ（ＩＮＥＷ１）＝０．５＊０．８＋１．０＊０．３＝０．７
クラスタＣＰ（ＩＮＥＷ２）＝０．５＊０．６＝０．３
クラスタＣＰ（ＩＮＥＷ３）＝０．５＊０．５＋１．０＊０．７＝０．９５
【００６５】
更新後のクラスタＣ１では、アイテムＩＮＥＷ１，ＩＮＥＷ２，ＩＮＥＷ３についての新たなクラスタＣＰが保持され、アイテムＩＯＬＤ１，ＩＯＬＤ２のクラスタＣＰは削除される。一方、推薦可能アイテムから除外されないアイテムＩ３のクラスタＣＰは、引き続き保持される。
【００６６】
ここで、上述のように、クラスタＣＰは、帰属度Ｐｒ［Ｉ｜Ｃ］とは異なり、クラスタＣでの合計が必ずしも１にはならない。従って、上記のようにアイテムを置き換える場合に、例えば元のアイテムとの間の類似度に基づいて設定された新たなアイテムのスコアを、そのままクラスタＣＰとして用いることが可能である。
【００６７】
なお、上記の更新処理は、クライアント２００のクラスタ情報更新部２３０によって実行されてもよい。
【００６８】
（差分学習）
次に、図９を参照して、本開示の第１の実施形態における差分学習の処理について説明する。図９は、本開示の第１の実施形態における差分学習の例を示す図である。
【００６９】
図９は、ユーザＵ１のクライアント２００で、アイテムＩ１が新たに利用された場合の例を示す。この場合、クライアント２００のクラスタ情報更新部２３０は、例えば以下の式４または式５によって、ユーザＵ１のスコアＵＰ（Ｃ）を更新する。なお、ηは所定の係数であり、ＵＰ０（Ｃ）は更新前のスコアＵＰ（Ｃ）である。
【００７０】
【数４】
0005880101.tif 000005
【００７１】
【数５】
0005880101.tif 000006
【００７２】
いずれの場合も、クラスタ情報更新部２３０は、クラスタＣとアイテムＩ１との間の帰属度を示すスコア（Ｐｒ［Ｃ｜Ｉ１］またはＰｒ［Ｉ１｜Ｃ］）に応じた値をスコアＵＰ（Ｃ）に加算することで、スコアＵＰ（Ｃ）を更新する。
【００７３】
上記の更新処理のために、例えば、クラスタ情報取得部２１０は、アイテムＩ１が分類されるクラスタＣの情報を、サーバ１００から取得する。逆にいうと、クラスタ情報取得部２１０は、アイテムＩ１が分類されないクラスタＣの情報については、必ずしも取得しなくてよい（そのようなクラスタＣでは、Ｐｒ［Ｃ｜Ｉ１］＝Ｐｒ［Ｉ１｜Ｃ］＝０であるため）。従って、クライアント２００での差分学習のためにサーバ１００から取得されるクラスタ情報の量を抑制することができる。
【００７４】
また、上記の更新処理では、クラスタＣの全体についての再計算をしなくてもよいため、計算コストを削減することができる。それゆえ、更新処理がクライアント２００の内部で完結する場合、すなわちクラスタ情報更新部２３０がクラスタ情報ＤＢ２２０に格納されているクラスタ情報を更新するような場合にも、本実施形態は有効である。
【００７５】
さらに、上記の式５を用いる場合、クラスタ情報更新部２３０は、ユーザＵ１の更新前のスコアＵＰ０（Ｃ）が高いものから順に所定の数のクラスタＣのクラスタ情報に基づいてスコアＵＰ（Ｃ）を更新してもよい。この場合、クラスタ情報更新部２３０は、例えば以下の式６によって、ユーザＵ１のスコアＵＰ（Ｃ）を更新する。なお、ＣＴＯＰは、スコアＵＰ０（Ｃ）が高いものから順に所定の数が選択されたクラスタＣのグループを表す。
【００７６】
【数６】
0005880101.tif 000007
【００７７】
これによって、ユーザによるアイテムの利用をある程度の精度でクラスタ情報に反映させつつ、差分学習のために取得されるクラスタ情報の量、および計算コストをさらに削減することができる。
【００７８】
なお、上記の処理によってユーザＵ１のスコアＵＰ（Ｃ）を更新した場合、ＵＰ（Ｃ）は、少なくとも一時的にサーバ１００とクライアント２００との間で異なる。また、ユーザＵ１についての更新後のスコアＵＰ（Ｃ）の合計は、必ずしも１にならない。そこで、例えば、所定の周期でサーバ１００とクライアント２００とのクラスタ情報を同期させる処理や、スコアＵＰ（Ｃ）の合計が１になるように正規化する処理が実行されてもよい。
【００７９】
（２．第２の実施形態）
続いて、本開示の第２の実施形態について説明する。本開示の第２の実施形態は、上記の第１の実施形態を、異なる装置構成で実現するものであり、装置構成以外の点については、第１の実施形態と同様である。従って、以下では本実施形態の装置構成について説明し、それ以外の点についての詳細な説明は省略する。
（２−１．装置構成）
図１０を参照して、本開示の第２の実施形態に係る装置構成について説明する。図１０は、本開示の第２の実施形態に係る装置の機能構成を示すブロック図である。
【００８０】
本実施形態では、アイテム利用ログの取得から推薦情報の生成までが、サーバ３００で実行される。サーバ３００は、ログ取得部１１０、クラスタ生成部１２０、スコア設定部１３０、クラスタ情報取得部３１０、クラスタ情報ＤＢ３２０、クラスタ情報更新部３３０、アイテムスコア算出部３４０、および推薦情報生成部３５０を含む。
【００８１】
サーバ３００は、後述するようなハードウェア構成を有する情報処理装置として実現されうる。以下、サーバ３００の構成要素について説明する。
【００８２】
ログ取得部１１０、クラスタ生成部１２０、スコア設定部１３０、クラスタ情報ＤＢ１４０、およびクラスタ情報更新部１５０は、上記の第１の実施形態に係るサーバ１００と同様の構成要素である。ただし、クラスタ生成部１２０によって生成されたクラスタ情報は、第１の実施形態とは異なり、クラスタ情報取得部３１０に内部的に転送される。
【００８３】
クラスタ情報取得部３１０、クラスタ情報ＤＢ３２０、クラスタ情報更新部３３０、アイテムスコア算出部３４０、および推薦情報生成部３５０は、第１の実施形態に係るクライアント２００に含まれるクラスタ情報取得部２１０、クラスタ情報ＤＢ２２０、クラスタ情報更新部２３０、アイテムスコア算出部２４０、および推薦情報生成部２５０と同様の構成要素であるが、クライアントではなくサーバ３００に含まれる点が異なる。クラスタ情報取得部３１０は、クラスタ生成部１２０が生成したクラスタ情報を内部的に取得し、クラスタ情報ＤＢ３２０に格納する。推薦情報生成部３５０が生成した情報は、例えばクライアント（図示せず）からのリクエストに応じて、ネットワーク上の通信を介してクライアントに転送される。
【００８４】
他にも、本開示の実施形態は、例えばクライアントとサーバとを含むシステムにおいて、クライアントとサーバとの間での機能の振り分けを変更したさまざまな実施形態を含む。つまり、上記の実施形態においてサーバで実行されるものとして説明された処理であっても、他の実施形態ではクライアントで実行されうる。また、上記の実施形態においてクライアントで実行されるものとして説明された処理であっても、他の実施形態ではサーバで実行されうる。
【００８５】
（３．補足）
（ハードウェア構成）
続いて、図１１を参照して、本開示の実施形態に係る情報処理装置９００のハードウェア構成について説明する。図１１は、情報処理装置のハードウェア構成を説明するためのブロック図である。
【００８６】
情報処理装置９００は、ＣＰＵ９０１、ＲＯＭ９０３、およびＲＡＭ９０５を含む。さらに、情報処理装置９００は、ホストバス９０７、ブリッジ９０９、外部バス９１１、インターフェース９１３、入力装置９１５、出力装置９１７、ストレージ装置９１９、ドライブ９２１、接続ポート９２３、および通信装置９２５を含んでもよい。
【００８７】
ＣＰＵ９０１は、演算処理装置および制御装置として機能し、ＲＯＭ９０３、ＲＡＭ９０５、ストレージ装置９１９、またはリムーバブル記録媒体９２７に記録された各種プログラムに従って、情報処理装置９００内の動作全般またはその一部を制御する。ＲＯＭ９０３は、ＣＰＵ９０１が使用するプログラムや演算パラメータなどを記憶する。ＲＡＭ９０５は、ＣＰＵ９０１の実行において使用するプログラムや、その実行において適宜変化するパラメータなどを一次記憶する。ＣＰＵ９０１、ＲＯＭ９０３、およびＲＡＭ９０５は、ＣＰＵバスなどの内部バスにより構成されるホストバス９０７により相互に接続されている。さらに、ホストバス９０７は、ブリッジ９０９を介して、ＰＣＩ（Peripheral  Component  Interconnect/Interface）バスなどの外部バス９１１に接続されている。
【００８８】
入力装置９１５は、例えば、マウス、キーボード、タッチパネル、ボタン、スイッチおよびレバーなど、ユーザによって操作される装置である。入力装置９１５は、例えば、赤外線やその他の電波を利用したリモートコントロール装置であってもよいし、情報処理装置９００の操作に対応した携帯電話などの外部接続機器９２９であってもよい。入力装置９１５は、ユーザが入力した情報に基づいて入力信号を生成してＣＰＵ９０１に出力する入力制御回路を含む。ユーザは、この入力装置９１５を操作することによって、情報処理装置９００に対して各種のデータを入力したり処理動作を指示したりする。
【００８９】
出力装置９１７は、取得した情報をユーザに対して視覚的または聴覚的に通知することが可能な装置で構成される。出力装置９１７は、例えば、ＬＣＤ（Liquid  Crystal  Display）、ＰＤＰ（Plasma  Display  Panel）、有機ＥＬ（Electro-Luminescence）ディスプレイなどの表示装置、スピーカおよびヘッドホンなどの音声出力装置、ならびにプリンタ装置などでありうる。出力装置９１７は、情報処理装置９００の処理により得られた結果を、テキストまたは画像などの映像として出力したり、音声または音響などの音声として出力したりする。
【００９０】
ストレージ装置９１９は、情報処理装置９００の記憶部の一例として構成されたデータ格納用の装置である。ストレージ装置９１９は、例えば、ＨＤＤ（Hard  Disk  Drive）などの磁気記憶部デバイス、半導体記憶デバイス、光記憶デバイス、または光磁気記憶デバイスなどにより構成される。このストレージ装置９１９は、ＣＰＵ９０１が実行するプログラムや各種データ、および外部から取得した各種のデータなどを格納する。
【００９１】
ドライブ９２１は、磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリなどのリムーバブル記録媒体９２７のためのリーダライタであり、情報処理装置９００に内蔵、あるいは外付けされる。ドライブ９２１は、装着されているリムーバブル記録媒体９２７に記録されている情報を読み出して、ＲＡＭ９０５に出力する。また、ドライブ９２１は、装着されているリムーバブル記録媒体９２７に記録を書き込む。
【００９２】
接続ポート９２３は、機器を情報処理装置９００に直接接続するためのポートである。接続ポート９２３は、例えば、ＵＳＢ（Universal  Serial  Bus）ポート、ＩＥＥＥ１３９４ポート、ＳＣＳＩ（Small  Computer  System  Interface）ポートなどでありうる。また、接続ポート９２３は、ＲＳ−２３２Ｃポート、光オーディオ端子、ＨＤＭＩ（High-Definition  Multimedia  Interface）ポートなどであってもよい。接続ポート９２３に外部接続機器９２９を接続することで、情報処理装置９００と外部接続機器９２９との間で各種のデータが交換されうる。
【００９３】
通信装置９２５は、例えば、通信ネットワーク９３１に接続するための通信デバイスなどで構成された通信インターフェースである。通信装置９２５は、例えば、有線または無線ＬＡＮ（Local  Area  Network）、Ｂｌｕｅｔｏｏｔｈ（登録商標）、またはＷＵＳＢ（Wireless  USB）用の通信カードなどでありうる。また、通信装置９２５は、光通信用のルータ、ＡＤＳＬ（Asymmetric  Digital  Subscriber  Line）用のルータ、または、各種通信用のモデムなどであってもよい。通信装置９２５は、例えば、インターネットや他の通信機器との間で、ＴＣＰ／ＩＰなどの所定のプロトコルを用いて信号などを送受信する。また、通信装置９２５に接続される通信ネットワーク９３１は、有線または無線によって接続されたネットワークであり、例えば、インターネット、家庭内ＬＡＮ、赤外線通信、ラジオ波通信または衛星通信などである。
【００９４】
以上、情報処理装置９００のハードウェア構成の一例を示した。上記の各構成要素は、汎用的な部材を用いて構成されていてもよいし、各構成要素の機能に特化したハードウェアにより構成されていてもよい。かかる構成は、実施する時々の技術レベルに応じて適宜変更されうる。
【００９５】
（まとめ）
以上で説明した本開示の実施形態の効果についてまとめる。なお、これらの効果は、本開示の実施形態の少なくとも一部で得られるものである。それゆえ、本開示の実施形態では、必ずしも以下のすべての効果が得られるわけではない。
【００９６】
本開示の実施形態では、ユーザおよびアイテムが分類されるクラスタを生成することで、アイテムの数が増加しても、所定の数のクラスタでＣＰやＵＰなどのスコアを表現することができる。
【００９７】
また、本開示の実施形態では、それぞれのクラスタについて設定されるスコア、例えばクラスタＣＰの数も、所定の数に抑えることができる。
【００９８】
また、本開示の実施形態では、クラスタ情報として、すべてのユーザに共通の所定の数のクラスタに関する情報を生成すればよい。そのため、サーバとクライアントの間、またはサーバが複数ある場合のサーバ間の通信コストや、サーバまたはクライアントにクラスタ情報が保持される場合のストレージコストを削減することができる。
【００９９】
また、本開示の実施形態では、ユーザへのアイテム推薦情報を生成する場合に、スコアＵＰ（Ｃ）がより大きいクラスタの情報を選択的に用いて近似的にアイテムスコアを算出することで、計算コストを削減することができる。
【０１００】
また、本開示の実施形態では、ユーザによるアイテムの新たな利用があった場合に、スコアＵＰ（Ｃ）を差分更新することによって、ユーザのアクションごとにクラスタ情報全体で再計算が実行されることを防ぐことができる。
【０１０１】
また、本開示の実施形態では、ユーザによるアイテム利用のログに存在しない新たなアイテムであっても、既にクラスタにあるアイテムとの間の類似度を用いてスコアを算出し、クラスタに追加することができる。
【０１０２】
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示の技術的範囲はかかる例に限定されない。本開示の技術分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
【０１０３】
なお、以下のような構成も本開示の技術的範囲に属する。
（１）ユーザのアイテム利用ログに基づいて前記ユーザおよび前記アイテムが分類されるクラスタの情報を取得するクラスタ情報取得部と、
前記クラスタの情報に含まれる、前記クラスタへの前記ユーザの帰属度を示す第１のスコア、および前記クラスタごとに設定され前記クラスタへの前記アイテムの帰属度を示す第２のスコアに基づいて、前記ユーザについての前記アイテムのスコアを算出するアイテムスコア算出部と、
前記アイテムのスコアに従って前記アイテムから少なくとも１つのアイテムを選択するアイテム選択部と
を備える情報処理装置。
（２）前記クラスタの情報には、高いものから順に選択された所定の数の前記第２のスコアが含まれる、前記（１）に記載の情報処理装置。
（３）前記クラスタの情報には、所定の閾値以上の前記第２のスコアが含まれる、前記（１）に記載の情報処理装置。
（４）前記クラスタに第１のアイテムが新たに分類される場合に、前記クラスタに分類される他のアイテムと前記第１のアイテムとの間の類似度と、前記他のアイテムの前記第２のスコアとに基づいて、前記第１のアイテムの前記第２のスコアを設定するクラスタ情報更新部をさらに備える、前記（１）〜（３）のいずれか１項に記載の情報処理装置。
（５）前記アイテムスコア算出部は、前記第１のスコアが高いものから順に選択された所定の数の前記クラスタの情報を用いて前記アイテムのスコアを算出する、前記（１）〜（４）のいずれか１項に記載の情報処理装置。
（６）前記ユーザが前記クラスタに分類される第２のアイテムを新たに利用した場合に、前記第２のアイテムの前記第２のスコアに応じた値を前記第１のスコアに加算するクラスタ情報更新部をさらに備える、前記（１）〜（５）のいずれか１項に記載の情報処理装置。
（７）
前記クラスタ情報更新部は、前記第２のアイテムの前記第２のスコアが高いものから順に選択された所定の数の前記クラスタの情報を用いて、前記第２のアイテムの前記第２のスコアに応じた値を前記第１のスコアに加算する、前記（６）に記載の情報処理装置。
（８）ユーザのアイテム利用ログに基づいて前記ユーザおよび前記アイテムが分類されるクラスタの情報を取得することと、
前記クラスタの情報に含まれる、前記クラスタへの前記ユーザの帰属度を示す第１のスコア、および前記クラスタごとに設定され前記クラスタへの前記アイテムの帰属度を示す第２のスコアに基づいて、前記ユーザについての前記アイテムのスコアを算出することと、
前記アイテムのスコアに従って前記アイテムから少なくとも１つのアイテムを選択することと
を含む情報処理方法。
（９）ユーザのアイテム利用ログに基づいて前記ユーザおよび前記アイテムが分類されるクラスタの情報を取得する機能と、
前記クラスタの情報に含まれる、前記クラスタへの前記ユーザの帰属度を示す第１のスコア、および前記クラスタごとに設定され前記クラスタへの前記アイテムの帰属度を示す第２のスコアに基づいて、前記ユーザについての前記アイテムのスコアを算出する機能と、
前記アイテムのスコアに従って前記アイテムから少なくとも１つのアイテムを選択する機能と
をコンピュータに実現させるためのプログラム。
【符号の説明】
【０１０４】
１０      システム
１００，３００    サーバ
１１０    ログ取得部
１２０    クラスタ生成部
１３０    スコア設定部
１４０    クラスタ情報ＤＢ
１５０    クラスタ情報更新部
２００    クライアント
２１０，３１０    クラスタ情報取得部
２２０    クラスタ情報ＤＢ
２３０    クラスタ情報更新部
２４０，３４０    アイテムスコア算出部
２５０，３５０    推薦情報生成部
【図１】
0005880101.tif 000008
【図２】
0005880101.tif 000009
【図３】
0005880101.tif 000010
【図４】
0005880101.tif 000011
【図５】
0005880101.tif 000012
【図６】
0005880101.tif 000013
【図７】
0005880101.tif 000014
【図８】
0005880101.tif 000015
【図９】
0005880101.tif 000016
【図１０】
0005880101.tif 000017
【図１１】
0005880101.tif 000018