SimRank は、シンプルで直感的なグラフ理論モデルに基づく一般的な類似度尺度です。SimRank は、オブジェクト間の関係を持つあらゆるドメインに適用でき、他のオブジェクトとの関係に基づいて、オブジェクトが発生する構造コンテキストの類似度を測定します。実質的に、SimRank は、「2 つのオブジェクトは、類似のオブジェクトによって参照されている場合に類似していると見なされる」という尺度です。SimRank は広く採用されていますが、さまざまな要因の影響を受ける不合理な類似度スコアを出力する可能性があり、証拠重み係数の導入、[1]、 SimRank によって無視される追加の用語の挿入[2]、または PageRank ベースの代替手段の使用など、いくつかの方法で解決できます。[3]
導入
多くのアプリケーションでは、オブジェクト間の「類似性」の尺度が必要です。 1 つの明らかな例は、従来のテキスト コーパスまたはWorld-Wide Webでの「類似ドキュメントの検索」クエリです。 より一般的には、類似性の尺度は、ユーザーの好みに基づいて「類似」ユーザーとアイテムがグループ化されるレコメンデーション システムでの協調フィルタリングなど、オブジェクトをクラスタ化するために使用できます。
オブジェクトのさまざまな側面を使用して類似性を判断できますが、通常はドメインとそのドメインの類似性の適切な定義によって異なります。ドキュメント コーパスでは、一致するテキストが使用される場合があり、協調フィルタリングでは、共通の好みによって類似のユーザーが識別される場合があります。SimRank は、多くの関心領域で見られるオブジェクト間の関係を活用する一般的なアプローチです。たとえば、Webでは、2 つのページ間にハイパーリンクがある場合、それらのページは関連しています。同様のアプローチは、科学論文とその引用、または相互参照情報を含むその他のドキュメント コーパスに適用できます。レコメンデーション システムの場合、アイテムに対するユーザーの好みは、ユーザーとアイテムの関係を構成します。このようなドメインは、ノードがオブジェクトを表し、エッジが関係を表すグラフとして自然にモデル化されます。
SimRankアルゴリズムの背後にある直感は、多くのドメインで類似のオブジェクトが類似のオブジェクトによって参照されるというものです。より正確には、オブジェクトと は、それぞれオブジェクトとから参照されている場合に類似しているとみなされ、と自体も類似しています。基本ケースは、オブジェクトがそれ自体 に最大限に類似していることです。[4]
SimRank は、構造的コンテキストの類似性のみを決定する一般的なアルゴリズムであることに留意することが重要です。SimRank は、オブジェクト間に十分な関連関係があり、少なくとも何らかの類似性の概念を関係に基づいているすべてのドメインに適用されます。明らかに、他のドメイン固有の側面の類似性も重要です。これらは、全体的な類似性の尺度として、関係構造的コンテキストの類似性と組み合わせることができます (また、組み合わせる必要があります)。たとえば、Web ページの場合、SimRank は従来のテキスト類似性と組み合わせることができます。同じ考え方が科学論文やその他のドキュメント コーパスにも適用されます。推奨システムの場合、アイテム間の既知の類似性 (両方のコンピューター、両方の衣類など) や、ユーザー間の類似性 (同じ性別、同じ支出レベルなど) が組み込まれている場合があります。この場合も、これらの類似性を、好みのパターンに基づいて計算された類似性スコアと組み合わせて、全体的な類似性の尺度を作成できます。
基本的なSimRank方程式
有向グラフのノードについて、 の入近傍と出近傍の集合をそれぞれと表します。の場合には、個々の入近傍は と表され、の場合には、個々の出近傍は と表されます。
オブジェクトとの類似性を で表します。前述の動機に従って、 について再帰方程式が書かれます。の場合、は と定義されます。それ以外の場合、
ここで、 はと の間の定数です。ここで少し技術的なことは、またはのどちらかに内隣がない可能性があるということです。この場合、と の間に類似性を推測する方法がないため、類似性は に設定され、したがって、 または の場合には、上記の式の合計は と定義されます。
SimRankの行列表現
との間の任意の定数が与えられたとき、 を類似度行列とし、そのエントリが類似度スコア を表すものとし、を列正規化された隣接行列とし、そのエントリがから への辺がある場合に、それ以外の場合は 0 であるとする。行列表記では、SimRank は次のように定式化できる。
ここで、は単位行列です。
SimRankの計算
グラフの SimRank 方程式の解は、固定点への反復によって得られます。を のノード数とします。各反復 で、エントリ を保持できます。ここで、 は反復との間のスコアを示します。に基づいて、 を連続的に計算します。 から開始します。ここで、それぞれは実際の SimRank スコアの下限です。
から計算するには、基本的な SimRank 方程式を使用して次の式を取得します。
については、については です。つまり、各反復 で、基本的な SimRank 方程式に従って、前回の反復からの近傍の類似度スコアを使用しての類似度を更新します。値は が増加しても減少しません。[4]では、値が基本的な SimRank 方程式を満たす限界、つまり SimRank スコアに収束することが示されています。 つまり、すべての、についてです。
元のSimRank提案では、減衰係数と実行する反復回数の固定値を選択することが提案されていました。しかし、最近の研究[5]では、およびに与えられた値は、反復計算されたSimRankスコアの精度が一般的に比較的低いことを意味していることが示されました。より正確な計算結果を保証するために、後者の論文では、より小さな減衰係数(特に)を使用するか、反復回数を増やすことを提案しています。
コシムランク
CoSimRankはSimRankの変形であり、ローカル定式化もできるという利点があります。つまり、CoSimRankは単一のノードペアに対して計算できます。[6]を類似度行列とし、そのエントリが類似度スコアを表すものとし、を列正規化された隣接行列とします。すると、行列表記では、CoSimRankは次のように定式化できます。
ここで、は単位行列です。 1 つのノード ペアのみの類似度スコアを計算するには、を標準基底のベクトル、つまり、番目のエントリが 1 で、他のすべてのエントリが 0 であるとします。次に、CoSimRank は 2 つの手順で計算できます。
ステップ 1 は、Personalized PageRankの簡略版と見ることができます。ステップ 2 では、各反復のベクトル類似度を合計します。行列表現とローカル表現はどちらも、同じ類似度スコアを計算します。CoSimRank は、 を変更することで、ノード セットの類似度を計算するためにも使用できます。
SimRankに関するさらなる調査
- FogarasとRacz [7]は、モンテカルロ法を用いた確率計算を通じてSimRankの計算を高速化することを提案した。
- Antonellisら[8]は、SimRank方程式を拡張し、(i)インシデントノードの証拠係数と(ii)リンクの重みを考慮に入れました。
- Yuら[9]は、異なる部分和の間で小さな共通部分を共有する細粒度メモ化法を介してSimRank計算をさらに改善しました。
- チェン氏とジャイルズ氏はSimRankの限界と適切な使用例について議論した。[3]
部分和のメモ化
Lizorkinら[5]はSimRankの計算を高速化するための3つの最適化手法を提案した。
- 必須ノードの選択により、事前スコアがゼロのノード ペアの一部の計算が不要になる場合があります。
- 部分和のメモ化は、類似度の合計の一部をキャッシュして後で再利用することで、異なるノード ペア間の類似度の繰り返し計算を効果的に削減できます。
- 類似度のしきい値設定により、計算されるノード ペアの数をさらに削減できます。
特に、部分和メモ化の 2 番目の観察は、 から への SimRank の計算を大幅に高速化する上で重要な役割を果たします。ここで、は反復回数、はグラフの平均次数、 はグラフ内のノード数です。部分和メモ化の中心的な考え方は、次の 2 つのステップで構成されます。
まず、上の部分和は次のように記される。
そして、次のよう に繰り返し計算される。
したがって、、、の結果は、後で最初の引数として 与えられた頂点の類似度を計算するときに再利用できます。
参照
引用
- ^ I. Antonellis、H. Garcia-Molina、C.-C. Chang。Simrank++: クリックグラフのリンク分析によるクエリ書き換え。VLDB '08 : Proceedings of the 34th International Conference on Very Large Data Bases、408--421 ページ。[1]
- ^ W. Yu、X. Lin、W. Zhang、L. Chang、J. Pei。「More is Simpler: Effectively and Efficiently Assessing Node-Pair Similarities Based on Hyperlinks」。VLDB '13 : Proceedings of the 39th International Conference on Very Large Data Bases、13~24 ページ。[2]
- ^ ab H. Chen、CL Giles。「ASCOS++: SimRankの問題に対処するための重み付けネットワークの非対称類似度測定。」ACM Transactions on Knowledge Discovery from Data (TKDD) 10.2 2015.[3]
- ^ ab G. Jeh およびJ. Widom。SimRank: 構造的コンテキスト類似性の尺度。KDD'02 : Proceedings of the eighth ACM SIGKDD international conference on Knowledge discovery and data mining、538-543 ページ。ACM Press、2002 年。 「アーカイブ コピー」(PDF)。2008 年 5 月 12 日にオリジナル(PDF)からアーカイブ。2008年 10 月 2 日に取得。
{{cite web}}: CS1 maint: archived copy as title (link) - ^ ab D. Lizorkin、P. Velikhov、M. Grinev、および D. Turdakov。SimRank 計算の精度推定と最適化手法。VLDB '08 : Proceedings of the 34th International Conference on Very Large Data Bases、422--433 ページ。「アーカイブ コピー」(PDF)。2009-04-07 にオリジナル(PDF)からアーカイブ。2008-10-25に取得。
{{cite web}}: CS1 maint: archived copy as title (link) - ^ S. RotheとH. Schütze。CoSimRank: 柔軟で効率的なグラフ理論的類似度測定。ACL '14 : 計算言語学協会第52回年次会議議事録(第1巻:長文論文)、1392-1402ページ。[4]
- ^ D. Fogaras および B. Racz。リンクベースの類似性検索のスケーリング。WWW '05 : Proceedings of the 14th international conference on World Wide Web、641-650 ページ、ニューヨーク、ニューヨーク、米国、2005 年。ACM。[5]
- ^ Antonellis、Ioannis、Hector Garcia Molina、Chi Chao Chang。「Simrank++: クリック グラフのリンク分析によるクエリ書き換え」VLDB Endowment 1.1 の議事録 (2008): 408-421。arXiv : 0712.0499
- ^ W. Yu、X. Lin、W. Zhang。大規模ネットワークでの効率的な SimRank 計算に向けて。ICDE '13: Proceedings of the 29th IEEE International Conference on Data Engineering、601--612 ページ。「アーカイブ コピー」(PDF)。2014 年 5 月 12 日にオリジナル(PDF)からアーカイブ。2014年 5 月 9 日に取得。
{{cite web}}: CS1 maint: archived copy as title (link)
出典
- Cai, Y.; Cong, G.; Jia, X.; Liu, H.; He, J.; Lu, J.; Du, X. (2009-12-01)。「実世界ネットワークにおけるリンクベースの類似性を計算するための効率的なアルゴリズム」。2009第9 回 IEEE 国際データマイニング会議。pp. 734– 739。doi :10.1109/ ICDM.2009.136。ISBN 978-1-4244-5242-2. S2CID 9799597。
