(57)【特許請求の範囲】
【請求項１】
複数のサービスにおいて利用者に対して各サービスのアイテムを推薦する情報推薦装置であって、
複数サービスのそれぞれのユーザＩＤ、アイテムＩＤ、アイテムのメタデータＩＤ、サービスＩＤ、ユーザのアイテムへの評価値についての情報を格納したアイテム履歴データベースと、
入力された被推薦ユーザＩＤ及び前記アイテム履歴データベースの前記サービスＩＤ及び前記アイテムＩＤに基づいて、サービス提供元から取得した被推薦ユーザの各サービスの利用度合いに応じた重みを該各サービス利用度合いに付与し、被推薦ユーザ用のランキングベクトルとして出力する、アイテムランキング計算処理手段と、
前記アイテム履歴データベースの情報を隣接行列として表す、隣接行列構築処理手段と、
前記隣接行列と前記ランキングベクトルを用いて推薦すべきアイテムを計算する推薦アイテム予測処理手段と、
を有することを特徴とする情報推薦装置。
【請求項２】
前記アイテムランキング計算処理手段は、
前記アイテムランキングのベクトルを、前記アイテム履歴データベースにおける各サービス内のアイテムの出現頻度と被推薦ユーザの各サービスの利用頻度に基づく統計量から計算する手段を含む
請求項１に記載の情報推薦装置。
【請求項３】
前記推薦アイテム予測処理手段は、
前記アイテムランキング計算処理手段から出力される前記被推薦ユーザ用のランキングベクトルと、前記隣接行列構築処理手段から出力される前記隣接行列とを用いて推薦アイテムを決定する計算を行う手段を含む
請求項１に記載の情報推薦装置。
【請求項４】
複数のサービスにおいて利用者に対して各サービスのアイテムを推薦する情報推薦方法であって、
複数サービスのそれぞれのユーザＩＤ、アイテムＩＤ、アイテムのメタデータＩＤ、サービスＩＤ、ユーザのアイテムへの評価値についての情報を格納した前記アイテム履歴データベースを有する前記情報推薦装置において、
アイテムランキング計算処理手段が、入力された被推薦ユーザＩＤ及び前記アイテム履歴データベースの前記サービスＩＤ及び前記アイテムＩＤに基づいて、サービス提供元から取得した被推薦ユーザの各サービスの利用度合いに応じた重みを該各サービス利用度合いに付与し、被推薦ユーザ用のランキングベクトルとして出力するアイテムランキング計算処理ステップと、
隣接行列構築処理手段が、前記アイテム履歴データベースの情報を隣接行列として表す隣接行列構築処理ステップと、
推薦アイテム予測処理手段が、前記隣接行列と前記ランキングベクトルを用いて推薦すべきアイテムを計算する推薦アイテム予測処理ステップと、
を行うことを特徴とする情報推薦方法。
【請求項５】
前記アイテムランキング計算処理ステップにおいて、
前記アイテムランキングのベクトルを、前記アイテム履歴データベースにおける各サービス内のアイテムの出現頻度と被推薦ユーザの各サービスの利用頻度に基づく統計量から計算する
請求項４に記載の情報推薦方法。
【請求項６】
前記推薦アイテム予測処理ステップにおいて、
前記アイテムランキング計算処理ステップにより取得した前記被推薦ユーザ用のランキングベクトルと、前記隣接行列構築処理ステップにより取得した前記隣接行列とを用いて推薦アイテムを決定する計算を行う
請求項４に記載の情報推薦方法。
【請求項７】
コンピュータを、
請求項１乃至３のいずれか１項に記載の情報推薦装置の手段として機能させるための情報推薦プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報推薦装置及び方法及び装置及びプログラムに係り、特に、情報推薦において複数のサービスのコンテンツやアイテム（以下、アイテムと呼ぶ）を横断的に推薦可能にする情報推薦装置及び方法及び装置及びプログラムに関する。
【背景技術】
【０００２】
従来技術として、単一のサービスを対象として、ユーザ、アイテム、メタデータをノードとするグラフをRandom Walk with Restart (RWR)と呼ばれるグラフ理論のアプローチによって探索し、推薦を受けるユーザ（以下、「被推薦ユーザ」と記す）へ推薦するアイテム（以下、「推薦アイテム」と記す）を決定する方法がある（例えば、非特許文献1参照）。
【０００３】
また、非特許文献１の方法を複数のサービスを対象としてアイテムの推薦を可能にするために、用いられるグラフを表す隣接行列において、複数のサービスを統合するように隣接行列を構築し、さらにWeb上の情報を用いてサービス間のアイテムの関係を補完することで複数サービスにおける情報推薦を実現する方法がある（例えば、非特許文献２参照）。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】Konstas, I., Stathopoulos, V. and Jose, J. M.: On social networks and collaborative recommendation, in Proc. SIGIR '09, pp. 195-202 (2009).
【非特許文献２】堤田恭太, 中辻真, 内山俊郎, 藤村考.: ソーシャルメディア上のアイテム共起を用いたサービス横断推薦, 第3回データ工学と情報マネジメントに関するフォーラム, DEIM '11, 2011年3月.
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記の非特許文献２の方法を用いることで、複数のサービスを扱った情報推薦を行うことができるようになる。しかしながら、被推薦ユーザがあまり利用していないサービスと、被推薦ユーザが頻繁に利用するサービスとでは、利用履歴からのユーザの好みの傾向の把握のしやすさが異なることがあるため、非特許文献２の方法は複数サービスの中でもユーザがあまり頻繁に利用しないサービスにおいて推薦の精度が低くなる懸念があった。そうした場合には、被推薦ユーザが頻繁に利用するサービスではユーザの好みをより強く反映し、被推薦ユーザがあまり利用しないサービスではユーザの好みよりも他の多くのユーザが支持するアイテムをより提示しやすくすることで推薦精度の改善が期待できる。
【０００６】
本発明は、上記の点に鑑みなされたもので、各サービスのアイテムの人気順などのアイテムランキングを、ユーザの各サービスの利用度合いに応じて重み付けして用いることで推薦精度を改善する情報推薦装置及び方法及び装置及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記の課題を解決するため、本発明（請求項１）は、複数のサービスにおいて利用者に対して各サービスのアイテムを推薦する情報推薦装置であって、
複数サービスのそれぞれのユーザＩＤ、アイテムＩＤ、アイテムのメタデータＩＤ、サービスＩＤ、ユーザのアイテムへの評価値についての情報を格納したアイテム履歴データベースと、
入力された被推薦ユーザＩＤ及び前記アイテム履歴データベースの前記サービスＩＤ及び前記アイテムＩＤに基づいて、サービス提供元から取得した被推薦ユーザの各サービスの利用度合いに応じた重みを該各サービス利用度合いに付与し、被推薦ユーザ用のランキングベクトルとして出力する、アイテムランキング計算処理手段と、
前記アイテム履歴データベースの情報を隣接行列として表す、隣接行列構築処理手段と、
前記隣接行列と前記ランキングベクトルを用いて推薦すべきアイテムを計算する推薦アイテム予測処理手段と、を有する。
【０００８】
また、本発明（請求項２）は、前記アイテムランキング計算処理手段において、
前記アイテムランキングのベクトルを、前記アイテム履歴データベースにおける各サービス内のアイテムの出現頻度と被推薦ユーザの各サービスの利用頻度に基づく統計量から計算する手段を含む。
【０００９】
また、本発明（請求項３）は、前記推薦アイテム予測処理手段において、
前記アイテムランキング計算処理手段から出力される前記被推薦ユーザ用のランキングベクトルと、前記隣接行列構築処理手段から出力される前記隣接行列とを用いて推薦アイテムを決定する計算を行う手段を含む。
【発明の効果】
【００１０】
上記のように本発明によれば、情報推薦において、複数のサービスのアイテムを、被推薦ユーザの各サービスの利用度合いを考慮してより高精度に推薦する情報推薦装置が実現できる。
【図面の簡単な説明】
【００１１】
【図１】本発明の一実施の形態における情報推薦装置の構成図である。
【図２】本発明の一実施の形態における隣接行列提供部の隣接行列生成のフローチャートである。
【図３】本発明の一実施の形態におけるアイテム履歴データベースのテーブルの例である。
【図４】本発明の一実施の形態におけるアイテム履歴データベースの隣接行列による表現例である。
【図５】本発明の一実施の形態における情報推薦システムの処理のフローチャートである。
【発明を実施するための形態】
【００１２】
以下図面と共に、本発明の実施の形態を説明する。
【００１３】
図１は、本発明の一実施の形態における情報推薦装置の構成図である。同図に示す情報推薦システムは、ユーザＩＤ取得部１１０、アイテム履歴データベース１２０、隣接行列提供部１３０、推薦アイテム予測処理部１４０、アイテムランキング計算処理部１５０、提示部１６０から構成される。
【００１４】
また、図３は、本発明の一実施の形態におけるアイテム履歴データベース１２０のテーブルのイメージである。ユーザＩＤ、アイテムＩＤ、メタデータＩＤ、サービスＩＤ、アイテムへの評価値がそれぞれ参照できるようなデータベースとなっている。
【００１５】
次に、図２のフローチャートを用いて、図３の様にアイテム履歴データベース１２０から、隣接行列提供部１３０が出力する隣接行列を構築する手段について説明する。
【００１６】
ここでの隣接行列とは、アイテム履歴データベース１２０を参照して得られる各サービスのアイテムとユーザとメタデータの関係を、図４に示すような一つの行列として表現したものであり、その隣接行列をA、その行列と要素の関係をA＝(ai、j) と表すとき、次の手順で構築される。
【００１７】
ステップ２１０）  隣接行列提供部１３０は、アイテム履歴データベース１２０より、
全ユーザ集合U={u1,u2,…u|U|}，
全アイテム集合I={i1,i2,…i|I|}，
全メタデータ集合M={m1,m2,…m|M|}
を収集する。
【００１８】
ステップ２２０）  |U|+|I|+|M|の大きさの行列A=(aj,k)を用意する。jは、1≦j≦|U|のときはユーザを表し、jがアイテムを表すのは|U|+1≦j≦|U|+|I|のとき、また、jがメタデータを表すのは|U|+|I|+1≦j≦|U|+|I|+|M|のときであるとし、kも同様とする。例えば、aj,k=1 (|U|+1≦j≦|U|+|I|,|U|+|I|+1≦k≦|U|+|I|+|M|)は、行列中のアイテムjとメタデータkとを表す値が1であることを表す。
【００１９】
ステップ２３１〜２３５）  全てのアイテムと全てのメタデータについて、アイテム履歴データベース１２０上で、以下のように、関連付けられる組合せを表す行列の値aj,kに１を代入する（Ｓ２３３）。
【００２０】
【数１】
0005662299.tif 000002
関連付けのない場合は以下のように、０を代入する（Ｓ２３４）。
【００２１】
【数２】
0005662299.tif 000003
アイテム履歴データベース１２０上での関連付けは、図４の様なデータベース構造の場合、アイテムＩＤの列とメタデータＩＤの列を参照して同一エントリにそれぞれのＩＤが存在することを表す。
【００２２】
ステップ２３６〜２４２）  全てのアイテムと全てのユーザについて、アイテム履歴データベース１２０上で、関連付けられる組合せを表す行列の値aj,kに値を代入する。値は、そのサービスにおいてユーザがアイテムに評価値を与えるようなデータの場合は、あるユーザuのそのアイテムiの評価値を、ユーザuがアイテムへ付けた全ての評価値の最大値で除した値を以下のように代入する（Ｓ２４１）。
【００２３】
【数３】
0005662299.tif 000004
データベース１２０上に評価値が存在せず、例えば、POSデータのようなユーザがアイテムを購入したか否かが記録されたデータの場合は、以下のように対応する値に１を代入する（Ｓ２４０）。
【００２４】
【数４】
0005662299.tif 000005
関連付けのない場合は以下のように０を代入する（Ｓ２３９）。
【００２５】
【数５】
0005662299.tif 000006
ステップ２５０〜２７０）  行列Aを、行列の列の値の和が1になるように正規化処理を行う。具体的には、式（１）に示すように、列の値の和で値を除した値に更新し、全ての列について行ったものを、出力する隣接行列Aとする。
【００２６】
【数６】
0005662299.tif 000007
上記のようにして生成された隣接行列Aは当該隣接行列提供部１３０内のメモリ（図示せず）に格納しておくものとする。
【００２７】
次に、図５のフローチャートに沿って、被推薦ユーザに対して推薦アイテムを提示する処理について、図１の構成図を用いて説明する。
【００２８】
ステップ５１０）  まず、被推薦ユーザＩＤ取得処理として、被推薦ユーザＩＤ取得部１１０は、被推薦ユーザのＩＤを取得し、アイテムランキング計算処理部１５０に出力する。この処理は、例えば、ユーザが利用するサービスやシステムにログイン処理と同時に行う。
【００２９】
ステップ５２０）  アイテムランキング計算処理部１５０は、被推薦ユーザＩＤを取得すると、当該被推薦ユーザＩＤに基づいてアイテム履歴データベース１２０から、アイテムＩＤ、メタデータＩＤ、サービスＩＤ、評価値のデータを受け取る。ユーザＩＤ，サービスＩＤ，アイテムＩＤに基づいて、サービス提供元（プロバイダ）にアクセスし、各被推薦ユーザに対応するサービスのアイテム毎のアクセス情報（当該ユーザのサービスの利用度合い）を取得する。ユーザの各サービスの利用度合いに応じた重みを当該ユーザのサービス利用度合いに付与して、被推薦ユーザ用のアイテムランキングの列ベクトルruを作成し、メモリ（図示せず）に格納する。ruの要素r(u,i) をアイテムiのランキングベクトルの値とするとき、次式（２）で表される。
【００３０】
【数７】
0005662299.tif 000008
上記の式（２）において、sfreq( i )はアイテムiの関連付けられるサービスsのユーザの利用度合いを表し、例えばサービスsの利用者の利用頻度をxとした時の累積分布関数Fs(x)により、1−Fs(x) を用いることができる。この累積分布関数を用いる場合は、被推薦ユーザの中でサービスsを最も利用しているユーザ、つまり該サービスにおいてユーザの利用履歴が十分に得られる時に0に近い値となる。逆に、利用頻度の少ないユーザの場合は値が1に近い値となり、そのサービス中のアイテムの推薦結果がランキングによって補正されやすくなる。count( ) はアイテム履歴データベース１２０中での頻度を表し、その同一サービスのアイテムの集合Isの中での最大値を表すmaxi∈Is ( count( i ) ) で割ることで0から1の間の値に収める。
【００３１】
最後に、Random Walkモデルで計算するためにベクトルの和が1となるようにr(u,i)に式（３）の正規化処理を行って最終的な被推薦ユーザ用のアイテムランキングベクトルru を得る。
【００３２】
【数８】
0005662299.tif 000009
ステップ５３０）隣接行列提供部１３０は、アイテム履歴データベース１２０からユーザＩＤ、アイテムＩＤ、メタデータＩＤ、サービスＩＤ、評価値のデータを受け取って、前述の図２に示す手順により隣接行列Aを構築し、メモリ（図示せず）に格納する。
【００３３】
ステップ５４０）推薦アイテム予測処理部１４０は、アイテムランキング計算処理部１５０から被推薦ユーザＩＤと被推薦ユーザ用のアイテムランキングを取得し、隣接行列提供部１３０から隣接行列を取得し、これらを用いて推薦するアイテムを決定する。その計算には、取得した被推薦ユーザＩＤと各アイテムＩＤとの関連度を求め、その値の高いアイテムを推薦するアイテムとするRandom Walk with Restart (RWR)を、ランキングを考慮できるように改良して用いる。
【００３４】
具体的な計算式は、p(t) を計算のステップtにおけるアイテムの関連度の列ベクトル、α，βはそれぞれ0 <α< 1，0 <β< 1，0 <α+β< 1を満たす定数、Aは隣接行列、起点ノードに戻る確率α,qを被推薦ユーザを表す起点ノードのみが1である列ベクトル、ruをアイテムランキング計算処理部１５０によって出力される被推薦ユーザ用のランキングの列ベクトルとすると、式（４）のように表される。
【００３５】
【数９】
0005662299.tif 000010
式（４）の計算は隣接行列A上でt回繰り返してp(t) が更新され、p(t) の列ベクトルからアイテムを表すノードの関連度の高いものを推薦アイテムとして出力する。ここでのtは100回とする。なお、この実施回数は100回に限定されることなく、十分に大きな値であればよい。 
ステップ５５０）推薦アイテム提示処理として提示部１６０は、推薦アイテム予測処理部１４０の出力である推薦アイテムを提示し、推薦が完了する。
【００３６】
なお、上記のステップ５２０では、被推薦ユーザ毎のサービス利用度合いをサービス提供元から取得する例を示しているが、この例に限定されることなく、当該情報推薦装置内に予めユーザ毎のアクセス情報を格納したデータベースを具備しておき、当該データベースから取得するようにしてもよい。
【００３７】
上記の処理により、サービスの利用状況に応じてランキング結果の反映度合い（重み）を変えてアイテムを推薦することが可能となる。
【００３８】
なお、上記の図１の被推薦ユーザＩＤ取得部１１０、隣接行列提供部１３０、推薦アイテム予測処理部１４０、アイテム処理部１６０からなる情報推薦装置の動作をプログラムとして構築し、情報推薦装置として利用されるコンピュータにインストールして実行させる、または、ネットワークを介して流通させることが可能である。
【００３９】
本発明は、上記の実施の形態に限定されることなく、特許請求の範囲内において、種々変更・応用が可能である。
【符号の説明】
【００４０】
１１０  非推薦ユーザID取得部
１２０  アイテム履歴データベース
１３０  隣接行列提供部
１４０  推薦アイテム予測処理部
１５０  アイテムランキング計算処理部
１６０  アイテム提示部
【図１】
0005662299.tif 000011
【図２】
0005662299.tif 000012
【図３】
0005662299.tif 000013
【図４】
0005662299.tif 000014
【図５】
0005662299.tif 000015