JP5519832B1 - 推薦システム、推薦サーバ、推薦方法および推薦プログラム - Google Patents

推薦システム、推薦サーバ、推薦方法および推薦プログラム Download PDF

Info

Publication number
JP5519832B1
JP5519832B1 JP2013106812A JP2013106812A JP5519832B1 JP 5519832 B1 JP5519832 B1 JP 5519832B1 JP 2013106812 A JP2013106812 A JP 2013106812A JP 2013106812 A JP2013106812 A JP 2013106812A JP 5519832 B1 JP5519832 B1 JP 5519832B1
Authority
JP
Japan
Prior art keywords
data
transition
recommendation
server
transition matrix
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2013106812A
Other languages
English (en)
Other versions
JP2014228984A (ja
Inventor
彰 中山
恭太 堤田
浩之 戸田
丈二 中山
佳林 前橋
真 鬼塚
靖宏 藤原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2013106812A priority Critical patent/JP5519832B1/ja
Application granted granted Critical
Publication of JP5519832B1 publication Critical patent/JP5519832B1/ja
Publication of JP2014228984A publication Critical patent/JP2014228984A/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】効率的に推薦アイテムを算出する。
【解決手段】
推薦システム6は、履歴データ4、複数の遷移行列構築サーバ1および複数の推薦サーバ2を備える。履歴データ4は、ユーザIDと、このユーザの利用したアイテムのアイテムIDと、この利用における評価値とを対応づける。遷移行列構築サーバ1は、履歴データ4から、遷移行列データの一部である遷移部分行列データ121を算出するとともに、遷移部分行列データ121を記憶する遷移部分行列算出手段111を備える。推薦サーバ2は、複数の遷移行列構築サーバ1から遷移部分行列データ121をランダムな順序で取得し、各遷移行列構築サーバ1から取得した遷移部分行列データから遷移行列データ222を生成する遷移行列取得手段212と、遷移行列データ222の各要素の関連に基づいて、ユーザの推薦データ223を生成する推薦アイテム算出手段213を備える。
【選択図】 図1

Description

本発明は、サービスのユーザに対して、当該サービスにおけるアイテムを推薦する推薦システム、推薦サーバ、推薦方法および推薦プログラムに関する。
一般的に、サービスのユーザに対して、サービスにおけるアイテムを推薦する方法として、グラフマイニングの手法が用いられている(例えば、特許文献1および非特許文献1参照。)。
例えば、特許文献1は、複数のサービスドメインを対象として、アイテムの推薦を可能とする方法を開示する。特許文献1に記載の方法は、複数のドメインのアイテムに付与されたメタデータをグラフ上で関連づけた後、グラフマイニングの手法を適用する。このような特許文献1に記載の方法は、ユーザのアイテム履歴が存在しない場合や少ない場合など、推薦精度が低下しやすい状況において、高精度な推薦を実現することができる。
また非特許文献1に記載の方法は、ユーザとアイテムからなるグラフを構築する際に、複数のサービスドメインを考慮してグラフを構築し、グラフマイニングの手法を適用する。非特許文献1に記載の方法は、複数のドメインに共通するユーザの利用履歴を用いることで、高精度な推薦を実現する。
このように、特許文献1および非特許文献1において、Random Walk with Restarts (以下、RWRと称す)が、グラフマイニングの計算手法として用いられている。RWRは、Personalized PageRankとも呼ばれる場合がある。RWRは、ノード間の関連度の計算手法として注目を集めている計算手法の一つである。RWRは、今までグラフ理論でよく用いられてきたノード間の最短距離などと異なり、グラフの構造的な特徴に基づいて関連度が計算できる。
このRWRでは、問い合わせ分布に基づいた各ノードの存在確率に基づいて、非推薦ユーザを表す起点ノードからランダムウォークを開始し、隣接するノードにエッジの重みに比例した確率でランダムに移動する。ここで問い合わせ分布は、被推薦ユーザを表す起点ノードのみが「1」である1×Nの列ベクトルqである。さらにRWRでは、ノードに到達するたびに一定の確率(αで規定される)で起点ノードに戻る。
具体的には、式(1)の様に示される。
Figure 0005519832
ここでpは、起点ノードaから各ノードへの到達確率(関連度)を表す1×Nの列ベクトルである。Aは、N×Nの遷移行列である。qは、問い合わせ分布であって、被推薦ユーザを表す起点ノードのみが「1」である1×Nの列ベクトルである。αは、0<α<1を満たす定数である。
式(1)の計算は、pを再帰的に更新することで実現される。例えば、t回更新した後のベクトルpからアイテムを表すノードについて関連度の高いものが、推薦アイテムとして出力される。ここでのtは、例えば「30」などであって、十分に大きな値であれば、この数値に限定されるものではない。
特開2012−150561号公報
堤田恭太、中辻真、内山俊郎、戸田浩之、内山匡、「アクセスログを用いたクロスドメイン環境における情報推薦」、第154回DBS・第107回IFAT合同研究発表会、2012年8月
しかしながら、特許文献1および非特許文献1に記載の技術では、グラフ全体を用いて関連度を繰り返し計算するので、関連度の算出に要する計算量が多いという問題がある。実用的には、グラフの遷移行列A(隣接行列A)が大きいという問題もある。Webページなどのサービスを対象とする場合、ユーザ数、アイテム数とも膨大であるため、遷移行列が数億オーダーの次数の正方行列となる場合も考えられる。この場合、推薦アイテムを算出するためのファイルの読み込みに時間がかかり、p、qの要素数も多いという課題もある。
従って本発明の目的は、効率的に推薦アイテムを算出する推薦システム、推薦サーバ、推薦方法および推薦プログラムを提供することである。
上記課題を解決するために、本発明の第1の特徴は、サービスを利用するユーザに対して、当該サービスにおけるアイテムを推薦する推薦システムに関する。本発明の第1の特徴に係る推薦システムは、ユーザIDと、このユーザの利用したアイテムのアイテムIDと、この利用における評価値とを対応づけた履歴データから、遷移行列データを生成する複数の遷移行列構築サーバと、遷移行列データから、推薦データを並行して生成する複数の推薦サーバとを備える。遷移行列構築サーバは、履歴データから、遷移行列データの一部である遷移部分行列データを算出するとともに、遷移部分行列データを記憶する遷移部分行列算出手段を備える。推薦サーバは、複数の遷移行列構築サーバから遷移部分行列データをランダムな順序で取得し、各遷移行列構築サーバから取得した遷移部分行列データから遷移行列データを生成する遷移行列取得手段と、遷移行列データの各要素の関連に基づいて、ユーザの推薦データを生成する推薦アイテム算出手段を備える。
推薦サーバにおいて、遷移部分行列算出手段は、遷移部分行列データを複数のファイルに分割して記憶し、分割されたファイルの識別子を、推薦サーバに通知する通知手段をさらに備えても良い。推薦サーバは、複数の遷移行列構築サーバから、各遷移行列構築サーバが保持するファイルの識別子が通知されると、通知元の遷移行列構築サーバの識別子と当該遷移行列構築サーバが保持するファイルの識別子とを対応づけたレコードを含む行列格納データを記憶する分散ファイル制御手段をさらに備え、遷移行列取得手段は、行列格納データの各レコードをランダムに並び替え、並び替えた順序で、遷移部分行列データを取得し、各遷移行列構築サーバから取得した遷移部分行列データから遷移行列データを生成する。
また複数の推薦サーバのうち稼働中の推薦サーバに、処理対象のユーザIDとともに処理リクエストを送信する制御サーバをさらに備えても良い。
本発明の第2の特徴は、サービスを利用するユーザに対して、当該サービスにおけるアイテムを推薦する推薦サーバに関する。本発明の第2の特徴に係る推薦サーバは、ユーザIDと、このユーザの利用したアイテムのアイテムIDと、この利用における評価値とを対応づけた履歴データ履歴データから生成された遷移行列の部分行列である遷移部分行列データを記憶する複数の遷移行列構築サーバから、遷移部分行列データをランダムな順序で取得し、各遷移行列構築サーバから取得した遷移部分行列データから遷移行列データを生成する遷移行列取得手段と、遷移行列データの各要素の関連に基づいて、ユーザの推薦データを生成する推薦アイテム算出手段を備える。
ここで、複数の遷移行列構築サーバから、各遷移行列構築サーバが保持するファイルの識別子が通知されると、通知元の遷移行列構築サーバの識別子と当該遷移行列構築サーバが保持するファイルの識別子とを対応づけたレコードを含む行列格納データを記憶する分散ファイル制御手段をさらに備え、遷移行列取得手段は、行列格納データの各レコードをランダムに並び替え、並び替えた順序で、遷移部分行列データを取得し、各遷移行列構築サーバから取得した遷移部分行列データから遷移行列データを生成しても良い。
本発明の第3の特徴は、サービスを利用するユーザに対して、当該サービスにおけるアイテムを推薦する推薦サーバに用いられる推薦方法に関する。本発明の第3の特徴に係る推薦方法は、推薦サーバが、ユーザIDと、このユーザの利用したアイテムのアイテムIDと、この利用における評価値とを対応づけた履歴データ履歴データから生成された遷移行列の部分行列である遷移部分行列データを記憶する複数の遷移行列構築サーバから、遷移部分行列データをランダムな順序で取得するステップと、推薦サーバが、各遷移行列構築サーバから取得した遷移部分行列データから遷移行列データを生成するステップと、推薦サーバが、遷移行列データの各要素の関連に基づいて、ユーザの推薦データを生成するステップを備える。
ここで、推薦サーバが、複数の遷移行列構築サーバから、各遷移行列構築サーバが保持するファイルの識別子が通知されると、通知元の遷移行列構築サーバの識別子と当該遷移行列構築サーバが保持するファイルの識別子とを対応づけたレコードを含む行列格納データを記憶するステップをさらに備えても良い。この場合、記遷移部分行列データをランダムな順序で取得するステップは、行列格納データの各レコードをランダムに並び替え、並び替えた順序で、遷移部分行列データを取得する。
本発明の第4の特徴は、コンピュータに本発明の第4の特徴に記載のステップを実行させるための推薦プログラムに関する。
本発明によれば、効率的に推薦アイテムを算出する推薦システム、推薦サーバ、推薦方法および推薦プログラムを提供することができる。
本発明の実施の形態に係る推薦システムの概要を説明する図である。 本発明の実施の形態に係る履歴データのデータ構造とデータの一例を説明する図である。 本発明の実施の形態に係る遷移行列構築サーバのハードウェア構成と機能ブロックを説明する図である。 本発明の実施の形態に係る遷移行列構築サーバの遷移部分行列算出処理を説明するフローチャートである。 本発明の実施の形態に係る推薦システムの遷移行列の一例を説明する図である。 本発明の実施の形態に係る遷移行列構築サーバが算出する遷移部分行列データのデータ構造とデータの一例を説明する図である。 本発明の実施の形態に係る推薦サーバのハードウェア構成と機能ブロックを説明する図である。 本発明の実施の形態に係る推薦システムにおいて、各遷移行列構築サーバが格納する部分行列を説明する図である。 本発明の実施の形態に係る推薦サーバが記憶する行列格納データを説明する図である。 本発明の実施の形態に係る制御サーバのハードウェア構成と機能ブロックを説明する図である。 本発明の実施の形態に係る制御サーバの処理を説明するフローチャートである。
次に、図面を参照して、本発明の実施の形態を説明する。以下の図面の記載において、同一または類似の部分には同一または類似の符号を付している。
(推薦システム)
図1に示すように、本発明の実施の形態に係る推薦システム6は、サービスのユーザに対して、当該サービスにおけるアイテムを推薦する。推薦システム6は、履歴データ4を記憶する記憶装置、複数の遷移行列構築サーバ1、複数の推薦サーバ2、制御サーバ3およびユーザ推薦データ5を記憶する記憶装置を備える。これらは、LANなどの通信ネットワーク(図示せず)を介して、相互に通信可能に接続される。図1に示す例において、遷移行列構築サーバ1および推薦サーバ2は、それぞれ3つずつ設ける場合を説明するが、各サーバの数はこれに限られない。
遷移行列構築サーバ1、推薦サーバ2および制御サーバ3は、中央処理制御装置110、210および310、記憶装置120、220および320および通信制御装置130、230および330などを備える一般的なコンピュータである。一般的なコンピュータが、所定の機能を実現させるためのプログラムを実行することにより、各コンピュータは、後述する図3、図7および図10に示す各機能が実装される。
履歴データ4は、サービスにおいてユーザが利用したアイテムの履歴のデータである。履歴データ4は、例えば、図2に示すように、ユーザIDと、このユーザの利用したアイテムのアイテムIDと、この利用における評価値とを対応づけたデータである。評価値は、ユーザがアイテムの利用における重み値である。
履歴データ4は、遷移行列構築サーバ1がアクセス可能な記憶装置に記憶される。具体的には履歴データ4は、サービスを提供するサーバなどの記憶装置に記憶されても良いし、サービスに関連するデータを扱うデータベースサーバなどに記憶されても良い。また履歴データ4は、図2に示すように一つのテーブルで実現される場合に限定されない。例えば履歴データ4は、適当な大きさに分割されて、複数のテーブルまたはファイルから構成されても良い。またこれらの複数のテーブルまたはファイルが、それぞれ異なるサーバ上に記憶されても良い。
遷移行列構築サーバ1は、履歴データ4から、遷移行列データを生成する。各遷移行列構築サーバ1は、履歴データ4から、遷移行列の遷移部分行列データ121を分担して生成して記憶する。推薦システム6に属する複数の遷移行列構築サーバ1がそれぞれ算出した遷移部分行列データがマージされることにより、推薦システム6が一つの遷移行列データを出力することを可能とする。
推薦サーバ2は、遷移行列データから、推薦データを生成する。複数の推薦サーバ2はそれぞれ、複数の遷移行列構築サーバ1から遷移部分行列データ121を取得して、各推薦サーバ2の記憶装置220内に、遷移行列データ222を生成する。推薦サーバ2は、生成した遷移行列データ222を用いて、所定のユーザに推薦するアイテムに関する推薦データ223を出力する。
制御サーバ3は、推薦システム6の処理を制御する。制御サーバ3は、推薦サーバ2の稼働状況を取得し、稼働中の推薦サーバ2に、所定のユーザIDを入力して、このユーザIDに関連する推薦データ223を出力させる。また、推薦サーバ2において処理が滞った場合、その推薦サーバ2で実行されていた処理を、他の推薦サーバ2に処理させたりする。
ユーザ推薦データ5は、各推薦サーバ2から出力された推薦データ223をマージしたデータである。推薦データ223がアクセス可能な記憶装置に記憶される。具体的にはユーザ推薦データ5は、サービスを提供するサーバや制御サーバ3などの記憶装置に記憶されても良いし、サービスに関連するデータを扱うデータベースサーバなどに記憶されても良い。ユーザ推薦データ5に格納されたデータは、サービス提供時などにおいて、適宜ユーザに提示される。
(遷移行列構築サーバ)
図3に示すように、遷移行列構築サーバ1の中央処理制御装置110は、遷移部分行列算出手段111および通知手段112を備えるとともに、記憶装置120は、遷移部分行列データ121を記憶する。
遷移部分行列算出手段111は、履歴データ4から、遷移行列データの一部である遷移部分行列データ121を算出するとともに、遷移部分行列データ121を記憶装置120に記憶する。ここで遷移部分行列算出手段111は、遷移部分行列データ121を複数のファイルに分割して、記憶装置120に記憶することが好ましい。各ファイルは、推薦サーバ2が遷移部分行列データ121を取得する単位である。遷移部分行列算出手段111が算出するべき部分行列の範囲は、予め制御サーバ3などの処理により定められ、遷移部分行列算出手段111は既知である。
図4を参照して、遷移部分行列算出手段111による遷移部分行列算出処理を説明する。
まずステップS101において遷移部分行列算出手段111は、履歴データ4からユーザID、アイテムIDおよび評価値を取得する。さらに、ユーザIDおよびアイテムIDのに任意の組み合わせについて、評価値を用いて、行列A’を構築する。ここで、評価値のないユーザIDおよびアイテムIDの組み合わせについては、評価値“0”を固定値として、用いる。また、ユーザIDに対するアイテムIDの評価値と、そのアイテムIDに対するそのユーザIDの評価値には、同じ値が設定される。
さらにステップS102において遷移部分行列算出手段111は、ステップS101で算出した行列A’について、正規化処理をした行列Aの部分行列を得る。具体的には、遷移部分行列算出手段111は、列の値の和が1になるように、式(2)を用いて正規化処理を行う。
Figure 0005519832
ここで、jおよびkは、j行k列の行列Aの要素を表す添え字である。ここで遷移部分行列算出手段111は、この遷移行列構築サーバ1が算出するべき部分行列の範囲について、式(1)に基づいて遷移部分行列データ121を算出する。
ステップS103において遷移部分行列算出手段111は、ステップS102で算出された遷移部分行列データ121を、複数のファイルに分割して、記憶装置120に記憶する。
図5を参照して、各遷移行列構築サーバ1の遷移部分行列算出手段111が算出した遷移行列データを説明する。遷移行列データは、ユーザIDおよびアイテムIDを行および列の要素として持つ。遷移行列データは、ユーザIDに対するアイテムIDの要素、およびアイテムIDに対するユーザIDの要素に、それぞれの評価値から正規化された値が設定される。図5に示す遷移行列データのデータサイズは、ユーザIDおよびアイテムIDの数に依存するので、サービスの規模によっては、巨大となってしまう。
そこで本発明の実施の形態に係る遷移行列構築サーバ1は、遷移行列データの部分行列を算出し、図6に示すような遷移部分行列データ121として出力する。図6に示す遷移部分行列データ121は、図5に示す遷移行列データのうち、所定のユーザIDおよびアイテムIDに関する、正規化された評価値が対応づけられたデータである。さらに遷移部分行列算出手段111は、ステップS102で算出された遷移部分行列データ121を64MByteなどの所定のサイズで分割して、複数のファイルに分割する。
ここで、遷移部分行列算出手段111による遷移部分行列算出処理において、図4とは異なる方法として、MapReduceプログラミングフレームワークに添った処理も可能である。MapReduceプログラミングフレームワークに添った処理は、履歴データ4が分散されたディスク上のファイルで実現されている場合に好適である。この場合遷移部分行列算出手段111は、以下の(1)ないし(4)の手順で処理する。
(1)遷移部分行列算出手段111は、Mapperで分散されたディスク上のそれぞれのファイルの情報を整理する。具体的には、遷移部分行列算出手段111は、KeyをユーザIDとし、このKeyに対応するValueとして、このユーザIDのアイテムIDおよび評価値を対応づける。
(2)遷移部分行列算出手段111は、Reduceメソッドにおいて、MapperでエミットされたデータをKeyで集約し、Valueとして、このユーザIDのアイテムIDおよび評価値のイテレータを対応づける。
(3)遷移部分行列算出手段111は、Reduceメソッドにおいて、ユーザIDごとの評価値の和が、“1.0”となるように、正規化する。ここで遷移部分行列算出手段111は、KeyをユーザIDおよびアイテムIDとし、Valueとして、ユーザIDごとの評価値の和が、“1.0”となるように正規化された評価値を設定する。
(4)遷移部分行列算出手段111は、Reduceメソッドにおいて、上記(3)と同様に、アイテムIDに対応する評価値の和が、“1.0”となるように、正規化する。ここで遷移部分行列算出手段111は、アイテムIDとユーザIDとを入れ替えて、KeyをアイテムIDおよびユーザIDとし、Valueとして、アイテムIDごとの評価値の和が、“1.0”となるように正規化された評価値を設定し、遷移部分行列データ121として出力する。
遷移部分行列算出手段111が算出する遷移部分行列データ121は、図5に示すように、ユーザIDおよびアイテムIDが昇順となるように出力される。なおユーザID<アイテムIDとなるように、ID体系が設定されている。このように出力することにより、Compressed Column Storage形式や、Compressed Row Storage形式など、推薦サーバ2が、非零要素を効率的に格納できる形式に容易に、変換することが可能となる。
遷移行列構築サーバ1の通知手段112は、遷移部分行列データ121を分割したファイルの識別子を、推薦サーバに通知する。ファイルの識別子は、推薦サーバ2が遷移部分行列データ121を取得するためのアクセス先であって、ファイル名であっても良いし、ファイルが格納されたアドレスであっても良い。
(推薦サーバ)
図7に示すように、推薦サーバ2の中央処理制御装置210は、分散ファイル制御手段211、遷移行列取得手段212、推薦アイテム算出手段213および推薦データ出力手段214を備える。記憶装置220は、行列格納データ221、遷移行列データ222および推薦データ223を記憶する。
本発明の実施の形態において複数の遷移行列構築サーバ1は、それぞれ遷移部分行列データ121を分割したファイルで格納する。これにより、遷移行列データの各要素は、図8に示すように、各遷移行列構築サーバ1の識別子およびそのサーバ内のファイル識別子に対応して、分散して保持される。
そこで分散ファイル制御手段211は、複数の遷移行列構築サーバ1から、各遷移行列構築サーバ1が保持する、遷移部分行列データ121を分割したファイルの識別子が通知されると、行列格納データ221を生成して、記憶装置220に記憶する。行列格納データ221は、図9(a)に示すように、通知元の遷移行列構築サーバ1の識別子と、このサーバが通知したファイルの識別子との組み合わせのリストである。
遷移行列取得手段212は、複数の遷移行列構築サーバ1から遷移部分行列データ121をランダムな順序で取得する。遷移行列取得手段212は、各遷移行列構築サーバ1から取得した遷移部分行列データから遷移行列データ222を生成して、記憶装置220に記憶する。ここで遷移行列取得手段212は、行列格納データ221の各レコードをランダムに並び替える。遷移行列取得手段212は、並び替えた順序で、各遷移行列構築サーバ1から遷移部分行列データの各ファイルを取得し、各遷移行列構築サーバ1から取得した遷移部分行列データから遷移行列データ222を生成する。
遷移行列取得手段212は、自身の推薦サーバ2が記憶する行列格納データ221を読み出し、分散されている遷移部分行列データ121の各ファイルについて、格納される遷移行列構築サーバ1の識別子およびファイルの識別子を取得する。次に、遷移行列取得手段212は、取得した格納される遷移行列構築サーバ1の識別子およびファイルの識別子の組み合わせを、ランダムに並び替える。その結果、図9(b)に示すように、読み込み順が決定される。ここでこの処理は、各推薦サーバ2で実行されるので、他の推薦サーバ2においては、図9(c)に示すように、図9(b)に示した読み込み順と異なる順序が決定される。
遷移行列取得手段212は、ランダムに並び替えられた順序で、各遷移行列構築サーバ1から各ファイルを取得して、メインメモリやハードディスクなどの記憶装置220に展開する。さらに遷移行列取得手段212は、展開した各データをマージして、遷移行列データ222を生成する。
このように遷移行列取得手段212は、後述する推薦アイテム算出手段213が、推薦アイテムを算出する際に参照する遷移行列データ222を、推薦アイテム算出手段213が読み出し可能なメインメモリ上に展開する。このとき、複数の推薦サーバ2が並行して同じ処理を実行すると、各サーバマシンが、同一のファイルを先頭から読み込むことになり、特定の遷移行列構築サーバ1に各推薦サーバ2からのアクセスが集中し、負荷が高くなってしまうおそれがある。そこで本発明の実施の形態に係る推薦システム6において、各推薦サーバ2が読み込むファイルの順序をランダマイズすることで、特定の遷移行列構築サーバ1にアクセスが集中することなく、推薦システム6全体として円滑な処理を実現する。
推薦アイテム算出手段213は、遷移行列データ222の各要素の関連に基づいて、ユーザの推薦データを生成する。遷移行列取得手段212が、各遷移行列構築サーバ1の分散行列の各ファイルから遷移行列データ222を生成した後、推薦アイテム算出手段213は、生成された遷移行列データ222に基づいて、被推薦ユーザIDについて各アイテムIDとの関連度を算出する。推薦アイテム算出手段213は、関連度の高いアイテムIDを、推薦データ223として出力する。推薦アイテム算出手段213は、特許文献1や非特許文献1に記載された方法で、遷移行列データ222から推薦データ223を生成する。
ここで処理対象となる被推薦ユーザIDは、制御サーバ3により入力される。推薦アイテム算出手段213は、入力された被推薦ユーザIDに対する処理が終了すると、制御サーバ3にその旨を通知する。
推薦アイテム算出手段213は、関連度の算出において、Random Walk with Restart(RWR)を用いる。このRWRでは、問い合わせ分布に基づいた各ノードの存在確率に基づいて、非推薦ユーザを表す起点ノードからランダムウォークを開始し、隣接するノードにエッジの重みに比例した確率でランダムに移動する。ここで問い合わせ分布は、被推薦ユーザを表す起点ノードのみが「1」である1×Nの列ベクトルqである。さらにRWRでは、ノードに到達するたびに一定の確率(αで規定される)で起点ノードに戻る。
具体的には、式(3)の様に示される。
Figure 0005519832
ここでpは、アイテムの関連度を示すベクトルであって、起点ノードaから各ノードへの到達確率(関連度)を表す1×Nの列ベクトルである。Aは、遷移行列取得手段212によって生成された遷移行列データ222に対応するN×Nの遷移行列である。qは、被推薦ユーザを表す起点ノードのみが「1」である1×Nの列ベクトルである。αは、0<α<1を満たす定数である。
推薦アイテム算出手段213は、式(3)の計算に基づいて、pを再帰的に更新する。例えば、t回更新した後のベクトルpからアイテムを表すノードについて関連度の高いものが、推薦アイテムとして出力される。ここでのtは、例えば「30」などであって、十分に大きな値であれば、この数値に限定されるものではない。
推薦データ出力手段214は、推薦データ223をユーザ推薦データ5に出力する。この結果、ユーザ推薦データ5に、各推薦サーバ2が算出した推薦データ223がマージされる。
(制御サーバ)
図10に示すように、制御サーバ3の中央処理制御装置310は、被推薦ユーザID取得手段311、推薦サーバ状態取得手段312、計算依頼手段313および計算状況監視手段314を備える。記憶装置320は、被推薦ユーザIDデータ321、サーバ稼働状態データ322および計算状況データ323を記憶する。
被推薦ユーザID取得手段311は、推薦サーバ2に処理させる被推薦ユーザIDを決定して、問い合わせ分布の集合となる被推薦ユーザIDデータ321を生成する。被推薦ユーザIDデータ321は、被推薦ユーザIDのリストである。被推薦ユーザID取得手段311は例えば、所定のクエリに基づいて、履歴データ4から複数の被推薦ユーザのIDを抽出して、被推薦ユーザIDデータ321に記憶する。
推薦サーバ状態取得手段312は、推薦システム6に属する推薦サーバ2の稼働状態を保持し、サーバ稼働状態データ322に保持する。サーバ稼働状態データ322は、推薦サーバ2の識別子と、その推薦サーバ2が稼働中であるか否かを示す稼働状態とを対応づけたデータである。推薦サーバ状態取得手段312は、推薦サーバ2の稼働状態に応じて、逐次サーバ稼働状態データ322を更新する。
計算依頼手段313は、複数の推薦サーバ2のうち稼働中の推薦サーバ2に、処理対象の被推薦ユーザIDとともに処理リクエストを送信する。計算依頼手段313は、サーバ稼働状態データ322を読み出して、稼働中の推薦サーバ2の識別子を取得するとともに、被推薦ユーザIDデータ321の問い合わせ分布の集合から、未処理の被推薦ユーザIDを取得する。
計算依頼手段313は、取得した推薦サーバ2に、取得した被推薦ユーザIDを入力して、その推薦サーバ2に、被推薦ユーザIDに関する推薦データ223を生成させる。このとき計算依頼手段313は、被推薦ユーザID、依頼先の推薦サーバ2の識別子および依頼時刻を対応づけて、計算状況データ323に記憶する。その後、推薦サーバ2から処理が終了した旨が通知されると、計算依頼手段313は、計算状況データ323から、通知元の推薦サーバ2に関するレコードを削除するとともに、通知元の推薦サーバ2の処理対象の被推薦ユーザIDを、被推薦ユーザIDデータ321から削除する。
さらに計算依頼手段313は、被推薦ユーザIDデータ321から未処理の被推薦ユーザIDを取得して、通知元の推薦サーバ2に入力し、推薦データ223を算出させる。このように計算依頼手段313は、被推薦ユーザIDデータ321に含まれる全ての被推薦ユーザIDについて処理されるまで、推薦サーバ2に処理させる。
図11を参照して、本発明の実施の形態に係る計算依頼手段313の計算依頼処理を説明する。
まずステップS201において、計算依頼手段313は、記憶装置320から、被推薦ユーザIDデータ321を読み出し、被推薦ユーザIDデータ321の各被推薦ユーザIDについて、ステップS202ないしステップS206の処理を繰り返す。
ステップS202において計算依頼手段313は、サーバ稼働状態データ322を参照して、稼働中の推薦サーバの識別子を取得する。ステップS203において、ステップS202で取得した稼働中の推薦サーバに、被推薦ユーザIDを送信して、処理を依頼する。このとき計算依頼手段313は、被推薦ユーザID、依頼先の推薦サーバ2の識別子および依頼時刻を対応づけたレコードを、計算状況データ323に挿入する。
その後ステップS105において計算依頼手段313は、ステップS203で処理依頼した推薦サーバ2から処理が終了した旨の通知を待機する。通知を受信すると、ステップS106において計算依頼手段313は、計算状況データ323から、通知元の推薦サーバ2に関する情報を削除する。
ここで、複数の推薦サーバ2が並列して処理する場合、計算依頼手段313は、各推薦サーバ2に、逐次処理依頼をするとともに、処理が終了した推薦サーバ2に対して、未処理の被推薦ユーザIDを入力する処理を繰り返す。
計算状況監視手段314は、計算状況データ323を参照して、各推薦サーバ2が円滑に処理しているか否かを監視する。計算状況監視手段314は、計算状況データ323に格納された各レコードについて、現在時刻と、計算状況データ323の依頼時刻とを比較して、所定の閾値以上の時間が経過しているか否かを判定する。
閾値を越えたレコードがある場合、このレコードに関する推薦サーバ2に不具合が生じていると考えられるので、サーバ稼働状態データ322に、この推薦サーバ2の稼働状態を、稼働していないことを示すデータに更新する。さらに、計算状況監視手段314は、稼働していない推薦サーバ2の処理対象の被推薦ユーザIDを、被推薦ユーザIDデータ321に挿入し、他の推薦サーバ2に処理させる。
このように本発明の実施の形態に係る推薦システム6は、RWRに用いる遷移行列データを、遷移部分行列データ121として、複数の遷移行列構築サーバ1に分散して処理する。また複数の推薦サーバ2はそれぞれ、ランダムに決めた順序で、各遷移行列構築サーバ1にアクセスして、各メモリに遷移行列データ222を複写する。これにより、特定の遷移行列構築サーバ1に負荷が偏ることなく、複数の推薦サーバ2が並列して処理することができる。
さらに制御サーバ3が、各推薦サーバ2の処理状況を監視する。これにより、推薦サーバ2において障害などにより処理が完結しなかった場合でも、制御サーバ3は、他の推薦サーバ2に処理させることができる。
このように、本発明の実施の形態に係る推薦システム6は、ユーザIDやアイテムIDが多く処理対象が膨大であっても、処理を分散化することで、効率的に推薦アイテムを算出することができる。
(その他の実施の形態)
上記のように、本発明の実施の形態によって記載したが、この開示の一部をなす論述および図面はこの発明を限定するものであると理解すべきではない。この開示から当業者には様々な代替実施の形態、実施例および運用技術が明らかとなる。
本発明の実施の形態において、複数の遷移行列構築サーバがそれぞれ、部分行列を算出して保持する場合を説明したが、これに限られない。例えば一つのサーバが算出した遷移行列を、複数のサーバの記憶装置に記憶するなど、遷移行列が、複数のサーバに分散して格納されていれば良い。
また、各サーバは、物理サーバであっても良いし、仮想サーバであっても良い。
さらに、制御サーバ3の各機能を、いずれかの推薦サーバや遷移行列構築サーバが実現しても良い。このほか、推薦システムの様々な実現方法が考えられる。
本発明はここでは記載していない様々な実施の形態等を含むことは勿論である。従って、本発明の技術的範囲は上記の説明から妥当な特許請求の範囲に係る発明特定事項によってのみ定められるものである。
1 遷移行列構築サーバ
2 推薦サーバ
3 制御サーバ
4 履歴データ
5 ユーザ推薦データ
6 推薦システム
110、210、310 中央処理制御装置
111 遷移部分行列算出手段
112 通知手段
121 遷移部分行列データ
120、220、320 記憶装置
130、230、330 通信制御装置
211 分散ファイル制御手段
212 遷移行列取得手段
213 推薦アイテム算出手段
214 推薦データ出力手段
221 行列格納データ
222 遷移行列データ
223 推薦データ
311 被推薦ユーザID取得手段
312 推薦サーバ状態取得手段
313 計算依頼手段
314 計算状況監視手段
321 被推薦ユーザIDデータ
322 サーバ稼働状態データ
323 計算状況データ

Claims (8)

  1. サービスを利用するユーザに対して、当該サービスにおけるアイテムを推薦する推薦システムであって、
    前記推薦システムは、
    ユーザIDと、このユーザの利用したアイテムのアイテムIDと、この利用における評価値とを対応づけた履歴データから、遷移行列データを生成する複数の遷移行列構築サーバと、
    前記遷移行列データから、推薦データを並行して生成する複数の推薦サーバとを備え、
    前記遷移行列構築サーバは、
    前記履歴データから、遷移行列データの一部である遷移部分行列データを算出するとともに、前記遷移部分行列データを記憶する遷移部分行列算出手段を備え、
    前記推薦サーバは、
    前記複数の遷移行列構築サーバから前記遷移部分行列データをランダムな順序で取得し、各遷移行列構築サーバから取得した遷移部分行列データから遷移行列データを生成する遷移行列取得手段と、
    前記遷移行列データの各要素の関連に基づいて、前記ユーザの推薦データを生成する推薦アイテム算出手段を備える
    ことを特徴とする推薦システム。
  2. 前記推薦サーバにおいて、
    前記遷移部分行列算出手段は、前記遷移部分行列データを複数のファイルに分割して記憶し、
    分割された前記ファイルの識別子を、前記推薦サーバに通知する通知手段をさらに備え、
    前記推薦サーバは、
    複数の前記遷移行列構築サーバから、各遷移行列構築サーバが保持する前記ファイルの識別子が通知されると、通知元の遷移行列構築サーバの識別子と当該遷移行列構築サーバが保持する前記ファイルの識別子とを対応づけたレコードを含む行列格納データを記憶する分散ファイル制御手段をさらに備え、
    前記遷移行列取得手段は、前記行列格納データの各レコードをランダムに並び替え、並び替えた順序で、前記遷移部分行列データを取得し、各遷移行列構築サーバから取得した遷移部分行列データから遷移行列データを生成する
    ことを特徴とする請求項1に記載の推薦システム。
  3. 前記複数の推薦サーバのうち稼働中の推薦サーバに、処理対象のユーザIDとともに処理リクエストを送信する制御サーバ
    をさらに備えることを特徴とする請求項1または2に記載の推薦システム。
  4. サービスを利用するユーザに対して、当該サービスにおけるアイテムを推薦する推薦サーバであって、
    ユーザIDと、このユーザの利用したアイテムのアイテムIDと、この利用における評価値とを対応づけた履歴データ履歴データから生成された遷移行列の部分行列である遷移部分行列データを記憶する複数の遷移行列構築サーバから、前記遷移部分行列データをランダムな順序で取得し、各遷移行列構築サーバから取得した遷移部分行列データから遷移行列データを生成する遷移行列取得手段と、
    前記遷移行列データの各要素の関連に基づいて、前記ユーザの推薦データを生成する推薦アイテム算出手段
    を備えることを特徴とする推薦サーバ。
  5. 複数の前記遷移行列構築サーバから、各遷移行列構築サーバが保持する前記ファイルの識別子が通知されると、通知元の遷移行列構築サーバの識別子と当該遷移行列構築サーバが保持する前記ファイルの識別子とを対応づけたレコードを含む行列格納データを記憶する分散ファイル制御手段をさらに備え、
    前記遷移行列取得手段は、前記行列格納データの各レコードをランダムに並び替え、並び替えた順序で、前記遷移部分行列データを取得し、各遷移行列構築サーバから取得した遷移部分行列データから遷移行列データを生成する
    ことを特徴とする請求項4に記載の推薦サーバ。
  6. サービスを利用するユーザに対して、当該サービスにおけるアイテムを推薦する推薦サーバに用いられる推薦方法であって、
    推薦サーバが、ユーザIDと、このユーザの利用したアイテムのアイテムIDと、この利用における評価値とを対応づけた履歴データ履歴データから生成された遷移行列の部分行列である遷移部分行列データを記憶する複数の遷移行列構築サーバから、前記遷移部分行列データをランダムな順序で取得するステップと、
    前記推薦サーバが、各遷移行列構築サーバから取得した遷移部分行列データから遷移行列データを生成するステップと、
    前記推薦サーバが、前記遷移行列データの各要素の関連に基づいて、前記ユーザの推薦データを生成するステップ
    を備えることを特徴とする推薦方法。
  7. 前記推薦サーバが、複数の前記遷移行列構築サーバから、各遷移行列構築サーバが保持する前記ファイルの識別子が通知されると、通知元の遷移行列構築サーバの識別子と当該遷移行列構築サーバが保持する前記ファイルの識別子とを対応づけたレコードを含む行列格納データを記憶するステップをさらに備え、
    前記遷移部分行列データをランダムな順序で取得するステップは、前記行列格納データの各レコードをランダムに並び替え、並び替えた順序で、前記遷移部分行列データを取得する
    ことを特徴とする請求項6に記載の推薦方法。
  8. コンピュータに、請求項6または請求項7のいずれか1項に記載のステップを実行させるための推薦プログラム。
JP2013106812A 2013-05-21 2013-05-21 推薦システム、推薦サーバ、推薦方法および推薦プログラム Active JP5519832B1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013106812A JP5519832B1 (ja) 2013-05-21 2013-05-21 推薦システム、推薦サーバ、推薦方法および推薦プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013106812A JP5519832B1 (ja) 2013-05-21 2013-05-21 推薦システム、推薦サーバ、推薦方法および推薦プログラム

Publications (2)

Publication Number Publication Date
JP5519832B1 true JP5519832B1 (ja) 2014-06-11
JP2014228984A JP2014228984A (ja) 2014-12-08

Family

ID=51031318

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013106812A Active JP5519832B1 (ja) 2013-05-21 2013-05-21 推薦システム、推薦サーバ、推薦方法および推薦プログラム

Country Status (1)

Country Link
JP (1) JP5519832B1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113139574A (zh) * 2021-03-15 2021-07-20 上海仙塔智能科技有限公司 识别车联网关键用户的方法、电子设备及可读存储介质

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018070376A1 (ja) 2016-10-11 2018-04-19 日本電気株式会社 領域確保装置、領域確保方法、及び、領域確保プログラムが記録された記録媒体

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010061178A (ja) * 2008-08-05 2010-03-18 Ricoh Co Ltd 情報処理装置、情報検索システム、情報処理方法およびプログラム

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010061178A (ja) * 2008-08-05 2010-03-18 Ricoh Co Ltd 情報処理装置、情報検索システム、情報処理方法およびプログラム

Non-Patent Citations (8)

* Cited by examiner, † Cited by third party
Title
CSNG201100549012; 白幡 晃一、外3名: 'GPGPUを用いた高速大規模グラフ処理に向けて' 情報処理学会研究報告 2011(平成23)年度(2) [CD-ROM] , 20110829, p.1-8, 一般社団法人情報処理学会 *
CSNG201100666002; 藤原 靖宏、外3名: 'Random walk with restartに対する高速な検索手法' 情報処理学会論文誌 論文誌トランザクション 2011(平成23)年度(1) [CD-ROM] 第4巻,第2号, 20111107, p.25-34, 一般社団法人情報処理学会 *
CSNG201100877017; 竹野 創平、外3名: 'Wikipediaの編集履歴を用いた大規模2部グラフのデータストリーム処理' 情報処理学会研究報告 2011(平成23)年度(4) [CD-ROM] , 20120104, p.1-9, 一般社団法人情報処理学会 *
CSNG201300719001; 松井 淳、外4名: '多段グラフマイニングによる新規アイテム推薦' 映像情報メディア学会技術報告 第37巻,第20号, 20130509, p.1-4, (一社)映像情報メディア学会 *
JPN6014005034; 松井 淳、外4名: '多段グラフマイニングによる新規アイテム推薦' 映像情報メディア学会技術報告 第37巻,第20号, 20130509, p.1-4, (一社)映像情報メディア学会 *
JPN6014005036; 竹野 創平、外3名: 'Wikipediaの編集履歴を用いた大規模2部グラフのデータストリーム処理' 情報処理学会研究報告 2011(平成23)年度(4) [CD-ROM] , 20120104, p.1-9, 一般社団法人情報処理学会 *
JPN6014005038; 藤原 靖宏、外3名: 'Random walk with restartに対する高速な検索手法' 情報処理学会論文誌 論文誌トランザクション 2011(平成23)年度(1) [CD-ROM] 第4巻,第2号, 20111107, p.25-34, 一般社団法人情報処理学会 *
JPN6014005040; 白幡 晃一、外3名: 'GPGPUを用いた高速大規模グラフ処理に向けて' 情報処理学会研究報告 2011(平成23)年度(2) [CD-ROM] , 20110829, p.1-8, 一般社団法人情報処理学会 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113139574A (zh) * 2021-03-15 2021-07-20 上海仙塔智能科技有限公司 识别车联网关键用户的方法、电子设备及可读存储介质
CN113139574B (zh) * 2021-03-15 2024-04-26 上海仙塔智能科技有限公司 识别车联网关键用户的方法、电子设备及可读存储介质

Also Published As

Publication number Publication date
JP2014228984A (ja) 2014-12-08

Similar Documents

Publication Publication Date Title
US11288282B2 (en) Distributed database systems and methods with pluggable storage engines
US20210304071A1 (en) Systems and methods for generating machine learning applications
JP6281225B2 (ja) 情報処理装置
US20160323385A1 (en) Distributed Data Storage Method, Apparatus, and System
JP2017076417A5 (ja)
EP3371717A1 (en) Virtual edge of a graph database
US10009732B1 (en) Mobile media communications system
US20140012887A1 (en) Information processing devices, distributed file system, client device, information processing method and computer program
JP6038987B2 (ja) テンソル因子分解処理装置、テンソル因子分解処理方法及びテンソル因子分解処理プログラム
JP5662299B2 (ja) 情報推薦装置及び方法及び装置及びプログラム
US9420422B1 (en) Mobile media communications system
CN103605848A (zh) 路径分析方法和装置
US20140289268A1 (en) Systems and methods of rationing data assembly resources
US9959268B2 (en) Semantic modeling of geographic information in business intelligence
JP6077984B2 (ja) アイテム推薦装置、アイテム推薦方法、およびアイテム推薦プログラム
US10033737B2 (en) System and method for cross-cloud identity matching
JP5519832B1 (ja) 推薦システム、推薦サーバ、推薦方法および推薦プログラム
CN105843809B (zh) 数据处理方法和装置
Steinbauer et al. Dynamograph: a distributed system for large-scale, temporal graph processing, its implementation and first observations
Xia et al. Optimizing an index with spatiotemporal patterns to support GEOSS Clearinghouse
WO2014180411A1 (zh) 分布式索引的生成方法及装置
US10083121B2 (en) Storage system and storage method
US9998862B1 (en) Mobile media communications system
Tang et al. mDHT: a multi-level-indexed DHT algorithm to extra-large-scale data retrieval on HDFS/Hadoop architecture
JP2017016208A (ja) 仮想データベースシステム管理装置、管理方法及び管理プログラム

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140311

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140401

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140403

R150 Certificate of patent or registration of utility model

Ref document number: 5519832

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150