(57)【要約】【課題】RWRを用いたアイテム推薦における計算量を削減し、より高速に推薦結果を取得する。【解決手段】RWRを用いたアイテム推薦装置であって、アイテム履歴記憶手段１２０を用いて、ユーザとアイテムの利用履歴関係およびアイテムとメタデータの関係を表す遷移行列を生成する遷移行列生成手段１３０と、アイテム履歴記憶手段１２０から取得した被推薦ユーザの利用アイテム毎に当該利用アイテムの関連度ベクトルが関連度ベクトル格納手段１５０に格納されているか否かを判別し、格納されている場合は当該関連度ベクトルを取得し、格納されていない場合は当該利用アイテムのRWRによる関連度ベクトルを遷移行列を用いて算出し、関連度ベクトル格納手段１５０に格納する関連度ベクトル算出手段１４０と、関連度ベクトルの重み付き線形和を算出し、関連度が高いアイテムを推薦アイテムとして出力する関連度ベクトル結合手段１６０とを有する。【選択図】図１
2015108983.tif 000002
【特許請求の範囲】
【請求項１】
RWR（Random Walk with Restart）を用いたアイテム推薦装置であって、
各ユーザのアイテム履歴情報を格納したアイテム履歴記憶手段を用いて、ユーザとアイテムの利用履歴関係およびアイテムとメタデータの関係を表す遷移行列を生成する遷移行列生成手段と、
前記アイテム履歴記憶手段から被推薦ユーザの利用アイテムを取得し、利用アイテム毎に当該利用アイテムの関連度ベクトルが関連度ベクトル格納手段に格納されているか否かを判別し、格納されている場合は、当該格納された関連度ベクトルを取得するとともに、格納されていない場合は、当該利用アイテムのRWRによる関連度ベクトルを前記遷移行列を用いて算出し、前記関連度ベクトル格納手段に格納する関連度ベクトル算出手段と、
前記関連度ベクトルの重み付き線形和を算出し、関連度が高いアイテムを推薦アイテムとして出力する関連度ベクトル結合手段と、を有すること
を特徴とするアイテム推薦装置。
【請求項２】
RWR（Random Walk with Restart）を用いたアイテム推薦方法であって、
アイテム推薦装置は、
各ユーザのアイテム履歴情報を格納したアイテム履歴記憶部を用いて、ユーザとアイテムの利用履歴関係およびアイテムとメタデータの関係を表す遷移行列を生成する遷移行列生成ステップと、
前記アイテム履歴記憶部から被推薦ユーザの利用アイテムを取得し、利用アイテム毎に当該利用アイテムの関連度ベクトルが関連度ベクトル格納部に格納されているか否かを判別し、格納されている場合は、当該格納された関連度ベクトルを取得するとともに、格納されていない場合は、当該利用アイテムのRWRによる関連度ベクトルを前記遷移行列を用いて算出し、前記関連度ベクトル格納部に格納する関連度ベクトル算出ステップと、
前記関連度ベクトルの重み付き線形和を算出し、関連度が高いアイテムを推薦アイテムとして出力する関連度ベクトル結合ステップと、を行うこと
を特徴とするアイテム推薦方法。
【請求項３】
請求項１記載のアイテム推薦装置としてコンピュータを機能させるためのアイテム推薦プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アイテム推薦において、Random Walk with Restart（RWR）に基づいて推薦するアイテムを決定するアイテム推薦装置、アイテム推薦方法、およびアイテム推薦プログラムに関する。
【背景技術】
【０００２】
ユーザとアイテムからなるグラフを、複数のサービスなどのドメインを考慮して集計して構築し、RWRを適用する事により推薦するアイテムを決定する方法がある（特許文献１、非特許文献１参照）。また、RWRの計算を行うにあたり、LU分解を用いて逆行列を求め、RWRの計算を高速化する手法がある（非特許文献２参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開2012-150561号公報
【非特許文献】
【０００４】
【非特許文献１】堤田恭太、中辻真、内山俊郎、戸田浩之、内山匡：アクセスログを用いたクロスドメイン環境における情報推薦、第154回DBS・第107回IFAT合同研究発表会、2012年8月
【非特許文献２】Yasuhiro Fujiwara, Makoto Nakatsuji, Makoto Onizuka, Masaru Kitsuregawa, "Fast and Exact Top-k Search for Random Walk with Restart", InProceedings of the VLDB Endowment (PVLDB), Vol. 5, No. 5, 2012, ＜URL：http://vldb.org/pvldb/vol5/p442_yasuhirofujiwara_vldb2012.pdf＞
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１および非特許文献１の技術で用いられるRWRの計算は、推薦を受ける被推薦ユーザの数が膨大な場合や、被推薦ユーザの利用履歴や付与した評点の情報が更新されるたびに新たに計算し直さなければならないため、膨大な計算量が必要となってしまう問題がある。
【０００６】
また、非特許文献２は、RWRの計算を高速に行う方法であり、RWRの計算によって被推薦ユーザを起点とした場合の計算結果を高速に得られるが、被推薦ユーザの利用履歴が更新された場合には同量の計算をやり直さなければならない。
【０００７】
また、アイテム数が少量であってユーザ数が膨大な場合、例えば、アイテムをショッピングモールの店舗、ユーザを訪問客とする場合など、アイテム数は数十件程度であるのに対して、ユーザ数は数万件やそれ以上の値になる場合がある。こうした場合、一般的なアイテムベースの協調フィルタリング等と比較して計算時間がかかってしまうという問題が  ある。
【０００８】
本発明は、上記の事情に鑑みなされたもので、本発明の目的は、RWRを用いたアイテム推薦における計算量を削減し、より高速に推薦結果を取得可能なアイテム推薦装置、アイテム推薦方法、およびアイテム推薦プログラムを提供することにある。
【課題を解決するための手段】
【０００９】
上記の課題を解決するため、本発明は、RWR（Random Walk with Restart）を用いたアイテム推薦装置であって、各ユーザのアイテム履歴情報を格納したアイテム履歴記憶手段を用いて、ユーザとアイテムの利用履歴関係およびアイテムとメタデータの関係を表す遷移行列を生成する遷移行列生成手段と、前記アイテム履歴記憶手段から被推薦ユーザの利用アイテムを取得し、利用アイテム毎に当該利用アイテムの関連度ベクトルが関連度ベクトル格納手段に格納されているか否かを判別し、格納されている場合は、当該格納された関連度ベクトルを取得するとともに、格納されていない場合は、当該利用アイテムのRWRによる関連度ベクトルを前記遷移行列を用いて算出し、前記関連度ベクトル格納手段に格納する関連度ベクトル算出手段と、前記関連度ベクトルの重み付き線形和を算出し、関連度が高いアイテムを推薦アイテムとして出力する関連度ベクトル結合手段と、を有する。
【００１０】
本発明は、RWR（Random Walk with Restart）を用いたアイテム推薦方法であって、アイテム推薦装置は、各ユーザのアイテム履歴情報を格納したアイテム履歴記憶部を用いて、ユーザとアイテムの利用履歴関係およびアイテムとメタデータの関係を表す遷移行列を生成する遷移行列生成ステップと、前記アイテム履歴記憶部から被推薦ユーザの利用アイテムを取得し、利用アイテム毎に当該利用アイテムの関連度ベクトルが関連度ベクトル格納部に格納されているか否かを判別し、格納されている場合は、当該格納された関連度ベクトルを取得するとともに、格納されていない場合は、当該利用アイテムのRWRによる関連度ベクトルを前記遷移行列を用いて算出し、前記関連度ベクトル格納部に格納する関連度ベクトル算出ステップと、前記関連度ベクトルの重み付き線形和を算出し、関連度が高いアイテムを推薦アイテムとして出力する関連度ベクトル結合ステップと、を行う。
【００１１】
本発明は、上記アイテム推薦装置としてコンピュータを機能させるためのアイテム推薦プログラムである。
【発明の効果】
【００１２】
本発明によれば、RWRを用いたアイテム推薦における計算量を削減し、より高速に推薦結果を取得可能なアイテム推薦装置、アイテム推薦方法、およびアイテム推薦プログラムを提供することができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の一実施の形態におけるアイテム推薦装置の構成図である。
【図２】本発明の一実施の形態におけるアイテム履歴データベースのテーブルのイメージ図である。
【図３】本発明の一実施の形態におけるアイテム推薦装置の処理のフローチャートである。
【図４】本発明の一実施の形態における遷移行列構築処理のフローチャートである。
【図５】本発明の一実施の形態における遷移行列のイメージ図である。
【発明を実施するための形態】
【００１４】
以下、図面と共に、本発明の実施の形態を説明する。
【００１５】
図１は、本発明の一実施の形態におけるアイテム推薦装置の構成を示す。
【００１６】
図示するアイテム推薦装置は、RWR（Random Walk with Restart）を用いてアイテムを推薦する装置であって、被推薦ユーザＩＤ取得部１１０、アイテム履歴データベース１２０、遷移行列構築部１３０、関連度ベクトル計算部１４０、関連度ベクトル格納部１５０、関連度ベクトル結合部１６０およびアイテム提示部１７０を備える。
【００１７】
被推薦ユーザＩＤ取得部１１０は、所定の外部装置または外部システムから、推薦するアイテムを提示する被推薦ユーザＩＤを取得する。
【００１８】
アイテム履歴データベース１２０（アイテム履歴記憶手段）は、各ユーザが利用したアイテムのアイテム履歴情報を格納する。本実施形態のアイテム履歴データベース１２０には、ユーザＩＤと、アイテムＩＤと、メタデータＩＤと、アイテムへの評価値とを含むアイテム履歴情報が格納されているものとする。
【００１９】
遷移行列構築部１３０（遷移行列生成手段）は、アイテム履歴データベース１２０から取得したアイテム履歴情報を用いて、ユーザとアイテムの利用履歴関係およびアイテムとメタデータの関係を表す遷移行列を生成する。
【００２０】
関連度ベクトル計算部１４０（関連度ベクトル算出手段）は、アイテム履歴データベース１２０から取得した、被推薦ユーザの利用したアイテムのリスト（利用アイテムリスト）の各アイテムについて、該利用アイテムの関連度ベクトルが関連度ベクトル格納部１５０に格納済みか否かを判別する。格納済みの場合、関連度ベクトル計算部１４０は、該利用アイテムの関連度ベクトルをRWRの計算結果として取得する。一方、格納済みでない場合、関連度ベクトル計算部１４０は、該利用アイテムの関連度ベクトルのRWRの計算を行い、その計算結果である関連度ベクトルを該利用アイテムとともに関連度ベクトル格納部１５０に格納する。
【００２１】
関連度ベクトル格納部１５０（関連度ベクトル格納手段）には、各アイテムの関連度ベクトルが格納される。
【００２２】
関連度ベクトル結合部１６０（関連度ベクトル結合手段）は、関連度ベクトル計算部１４０から利用アイテムそれぞれに応じた関連度ベクトルを受け取って重み付き線形和を算出する結合処理を行う。そして、関連度ベクトル結合部１６０は、結合処理で得られた関連度が高いアイテムを、最終的な推薦アイテムとしてアイテム提示部１７０へ出力する。
【００２３】
アイテム提示部１７０は、関連度ベクトル結合部１６０が出力した推薦アイテムを、被推薦ユーザの端末１に提示する。
【００２４】
図２は、本実施形態におけるアイテム履歴データベース１２０のテーブルのイメージである。アイテム履歴データベース１２０は、各ユーザが、過去に利用した各アイテムの履歴情報が蓄積されたデータベースである。図示するアイテム履歴データベース１２０は、ユーザＩＤと、アイテムＩＤと、メタデータＩＤと、アイテムへの評価値とがそれぞれ対応付けて記憶されて、参照可能なデータベースとなっている。
【００２５】
アイテムは、コンピュータ上のコンテンツやプログラム、スーパー等での販売品など、様々なジャンルの品目を示すものである。メタデータは、対応するアイテムに関連する情報である。例えば、アイテムがアプリケーションプログラムの場合、その説明文に含まれる特徴的なキーワードであって、アイテムが商品の固有名詞の場合、それの該当するカテゴリ名（例えば、アイスクリーム等）などが考えられる。評価値は、各ユーザの対応するアイテムに対する評価を示す指標である。例えば、映画の評判サイト等の場合はユーザが付与した5段階評価、アクセスログ中のページの閲覧の有無の場合や、POSデータの購買の有無などの場合は0か1を用いる。なお、他の外部システムによって推定された値を評価値として利用することとしてもよい。
【００２６】
なお、アイテム履歴データベース１２０は、図２に示すように１つのテーブルで実現される場合に限定されず、複数のテーブルから構成されていてもよい。例えば、ユーザのアイテムの利用履歴について格納されたデータベースと、メタデータについて格納されたデータベースとを有し、個別に参照できるような形で実現されていてもよい。
【００２７】
また、アイテム履歴データベース１２０の各列のデータが存在しないサービスに適用される場合は、後述する図５に示す遷移行列が構築可能であって、図３の推薦アイテムを決定する処理が行える限り、行や列の一部は値がなくてもよい。例えば、メタデータが存在しないサービスに適用される場合は、メタデータＩＤの情報および遷移行列上の行や列はなくてもよい。また、評価値は存在しないが、メタデータＩＤの付与されているアイテムが存在してもよい。
【００２８】
なお、本実施形態のアイテム推薦装置は、例えば、ＣＰＵと、メモリと、ＨＤＤ等の外部記憶装置などを備えた汎用的なコンピュータシステムを用いることができる。このコンピュータシステムにおいて、ＣＰＵがメモリ上にロードされたアイテム推薦装置用のプログラムを実行することにより、アイテム推薦装置の各機能が実現される。また、アイテム推薦装置用のプログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ−ＲＯＭなどのコンピュータ読取り可能な記録媒体に記憶することも、ネットワークを介して配信することもできる。
【００２９】
次に、関連度ベクトル計算処理で用いるRandom Walk with Restarts (Personalized PageRankとも呼ばれる、以下RWR)による関連度の計算方法について述べる。RWRは、ノード間の関連度の計算手法として注目を集めているもののひとつである。RWRは、今までグラフ理論でよく用いられてきたノード間の最短距離などと異なり、グラフ全体の構造的な特徴に基づいて関連度が計算できる。
【００３０】
RWRでは、グラフ上の各ノードを遷移するwalkerを仮定し、最終的にwalkerがどのノードに存在しやすいかを表す存在確率を算出し、それを関連度スコアとして利用する。
【００３１】
初期状態として、関連度を測る基準とする被推薦ユーザやアイテムに対応するノードにwalkerが存在すると考える。そして、そのwalkerが、ノードとノードを結ぶエッジ重みに比例した確率でノード間を移動し、移動後一定の確率でエッジによらないランダムな移動を行うと考え、定常状態においてwalkerが各ノードに存在する確率(存在確率)を計算する。この計算の結果、得られた存在確率を、基準とするノードに対応する被推薦ユーザやアイテムとの関連度として利用する。
【００３２】
具体的な計算式は、被推薦ユーザを表す起点ノードaからの各ノードへの到達確率（関連度）を表す１×Nの列ベクトルra、N×Nの遷移行列A、被推薦ユーザを表す起点ノードのみが1である1×Nの列ベクトルqa、α は0 < α < 1を満たす定数とすると、式(1)のように表される。ここでの繰り返し計算の回数は30回とする。なお、この実施回数は30回に限定されることなく、十分に大きな値であればよい
【数１】
2015108983.tif 000003
【００３３】
次に、本実施形態のアイテム推薦装置の処理について説明する。
【００３４】
図３は、本実施形態におけるアイテム推薦装置の処理のフローチャートである。図３のフローチャートに沿って、被推薦ユーザに対して推薦アイテムを提示する処理について説明する。
【００３５】
ステップ３１０）  まず、被推薦ユーザＩＤ取得部１１０は、被推薦ユーザのＩＤを取得する。被推薦ユーザＩＤは、例えば、当該アイテム推薦装置に接続された外部の装置、システムなどのコンピュータから入力される。
【００３６】
ステップ３２０）  遷移行列構築部１３０は、アイテム履歴データベース１２０からユーザＩＤ、アイテムＩＤ、メタデータＩＤ、評価値を含むアイテム履歴情報を読み出し、後述する図４の処理で遷移行列を構築（生成）する。なお、ステップ３２０の遷移行列構築処理は、ステップ３１０とは非同期に、バッチ処理などであらかじめ行っておくものとする。あるいは、ステップ３１０の被推薦ユーザのＩＤを取得したタイミングで行うこととしてもよい。
【００３７】
ステップ３３０）  関連度ベクトル計算部１４０が、アイテム履歴データベース１２０から被推薦ユーザaの利用アイテムリストIaを、遷移行列構築部１３０から遷移行列Aをそれぞれ受け取る。
【００３８】
ステップ３４１〜３４５）被推薦ユーザaの全ての利用アイテムリストIaのアイテムをiとし、iについてRWRの計算結果として得られる関連度ベクトルをriとする。関連度ベクトル計算部１４０は、まず、各利用アイテムiについて、関連度ベクトル格納部１５０に問い合わせを行い、該利用アイテムiからの関連度ベクトルriが格納済みであるか否かを判別する（Ｓ３４２）。格納済みの場合（ステップ３４２：ＹＥＳ）、関連度ベクトル計算部１４０は、格納された該利用アイテムiの関連度ベクトルriを式（２）のRWRの計算結果として取得し、関連度ベクトル結合部１６０に出力する（Ｓ３４４）。格納済みでない場合（ステップ３４２：ＮＯ）、関連度ベクトル計算部１４０は、式（２）のRWRの計算を行ってその計算結果である関連度ベクトルを関連度ベクトル結合部１６０に出力するとともに、当該関連度ベクトルを利用アイテムとともに関連度ベクトル格納部１５０に格納する（Ｓ３４３）。
【数２】
2015108983.tif 000004
【００３９】
ステップ３５０）関連度ベクトル結合部１６０は、関連度ベクトル計算部１４０から出力された関連度ベクトルriの重み付き線形和を式（３）により算出する。wa,iは、riを加算するときの重みであり、式（４）により算出する。重みを用いない場合は１を用いる。そして、関連度ベクトル結合部１６０は、算出した線形和の関連度ベクトルraの要素（アイテム）の中で、値の大きい要素に対応する所定数のアイテムを、被推薦ユーザの推薦アイテムとして出力する。すなわち、値の大きい要素に対応するアイテムが、被推薦ユーザに対して関連度が高いアイテムであるとみなし、値が上位の所定数の要素に対応する所定数のアイテムを被推薦ユーザの推薦アイテムとして出力する。
【数３】
2015108983.tif 000005
【数４】
2015108983.tif 000006
【００４０】
ステップ３６０）アイテム提示部１７０は、関連度ベクトル結合部１６０が決定した推薦アイテムを、被推薦ユーザに提示する。具体的には、ネットワークを介して、被推薦ユーザの端末に推薦アイテムの情報を送信し、表示する。また、例えば、関連度ベクトル結合部１６０の計算部分など、一部の処理がバッチ処理的に行われる場合には、関連度ベクトル結合部１６０は、算出した推薦アイテムを一旦外部のデータベースに格納しておき、必要に応じて外部のデータベースにアクセスして推薦アイテムを取得し、アイテム提示部１７０へ出力することとしてもよい。
【００４１】
次に、図３のＳ３２０で構築される遷移行列について説明する。
【００４２】
図４は、遷移行列構築部１３０が遷移行列を構築する処理を示すフローチャートである。以下、フローチャートにそって遷移行列を構築する処理の一例を説明する。遷移行列は、ユーザとアイテムの利用履歴関係、およびアイテムとメタデータの関係を表す行列である。図５は、遷移行列Aの一例を示す図である。
【００４３】
ステップ４１０） まず、遷移行列構築部１３０は、アイテム履歴データベース１２０から、各行毎に、ユーザＩＤ、アイテムＩＤ、メタデータＩＤおよび評価値を取得し、ユーザＩＤとアイテムＩＤとメタデータＩＤとのすべての２つの組合せ（順列）について、評価値を関連付ける（「ユーザＩＤとアイテムＩＤと評価値」、「ユーザＩＤとメタデータＩＤと評価値」、「アイテムＩＤとユーザＩＤと評価値」、「アイテムＩＤとメタデータＩＤと評価値」、「メタデータＩＤとユーザＩＤと評価値」、「メタデータＩＤとアイテムＩＤと評価値」）。
【００４４】
例えば、ユーザＩＤがu1、アイテムＩＤがi1、メタデータIDがm1、評価値が5であるような行の場合には、「u1とi1の評価値が5」、「u1とm1の評価値が5」等のように評価値を関連付ける。評価値が設定されていない行の場合には、評価値に例えば1などの固定値を用いるものとする。
【００４５】
ステップ４２０）  ステップ４１０で得られたユーザ、アイテムおよびメタデータの任意の組合せとその評価値sj,kとを用いて、遷移行列Aの要素aj,kを計算する。遷移行列Aのj行k列番目の要素をaj,kとする。例えば、jがu1、kがi1のときは、評価値の5を該当するsj,kとし、式（５）の行列の正規化処理を行ってaj,kを求める。
【数５】
2015108983.tif 000007
【００４６】
ステップ４３０）  ステップ４２０で構築した遷移行列Aを、関連度ベクトル計算部１４０へ出力する。
【００４７】
以上説明した本実施形態では、被推薦ユーザＩＤを起点として行われるRWRによる推薦アイテムの決定を、被推薦ユーザの持つ利用アイテムリスト全てを起点として計算を行い、各利用アイテムに応じた関連度ベクトルを結合して被推薦ユーザに対する関連度を求めることで推薦アイテムを決定する。同一の遷移行列を用いて得られる各利用アイテムの関連度ベクトルの計算結果は変わらないため、本実施形態では、バッチ処理等で多数の被推薦ユーザに提示するアイテムを準備する際、重複する計算部分を共通化することにより（計算済みのアイテムの関連度ベクトルを関連度ベクトル格納部１５０に格納し、再利用することにより）、RWRを用いたアイテム推薦における全体の計算量を削減し、より高速に推薦結果を取得することができる。
【００４８】
なお、本発明は上記実施形態に限定されるものではなく、特許請求の範囲内において、種々変更・応用が可能である。
【００４９】
例えば、図１に示す本実施形態では、アイテム推薦装置はアイテム履歴データベース１２０を含む構成として説明したが、この実施形態に限定されることなく、アイテム履歴データベース１２０は、アイテム推薦装置の外部のデータベースであって、アイテム推薦装置は外部のデータベースであるアイテム履歴データベース１２０にアクセスし、データを取得することとしてもよい。
【００５０】
また、本実施形態では、関連度ベクトル計算部１４０は、被推薦ユーザの利用アイテムリストを取得するが、被推薦ユーザにメタデータが付与されている場合は、利用アイテムリストにメタデータのリストを加えて用いても良い。また、被推薦ユーザに対してアイテムを提示する手順について記述したが、qを表すものをアイテム（被推薦アイテム）、出力をアイテムとすると、被推薦アイテムと関連の強いアイテムを提示することができる。同様に、qをメタデータとし、推薦対象をアイテムとすると、メタデータと関連の強いアイテムの提示が可能となる。
【符号の説明】
【００５１】
１１０：被推薦ユーザＩＤ取得部
１２０：アイテム履歴データベース
１３０：遷移行列構築部
１４０：関連度ベクトル計算部
１５０：関連度ベクトル格納部
１６０：関連度結合部
１７０：アイテム提示部
【図１】
2015108983.tif 000008
【図２】
2015108983.tif 000009
【図３】
2015108983.tif 000010
【図４】
2015108983.tif 000011
【図５】
2015108983.tif 000012