JP5315291B2 - グラフにおけるノードの間の類似度を計算するための方法、プログラム、およびシステム - Google Patents

グラフにおけるノードの間の類似度を計算するための方法、プログラム、およびシステム Download PDF

Info

Publication number
JP5315291B2
JP5315291B2 JP2010105065A JP2010105065A JP5315291B2 JP 5315291 B2 JP5315291 B2 JP 5315291B2 JP 2010105065 A JP2010105065 A JP 2010105065A JP 2010105065 A JP2010105065 A JP 2010105065A JP 5315291 B2 JP5315291 B2 JP 5315291B2
Authority
JP
Japan
Prior art keywords
node
label value
nodes
calculating
similarity
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.)
Expired - Fee Related
Application number
JP2010105065A
Other languages
English (en)
Other versions
JP2011233069A (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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP2010105065A priority Critical patent/JP5315291B2/ja
Priority to US13/093,962 priority patent/US8538169B2/en
Publication of JP2011233069A publication Critical patent/JP2011233069A/ja
Application granted granted Critical
Publication of JP5315291B2 publication Critical patent/JP5315291B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、一般的には情報処理技術に関し、特定的にはグラフにおけるノードの間の類似度を計算するための方法、プログラム、およびシステムに関する。
グラフとは、頂点(ノードとも呼ばれる)と、頂点を繋ぐ辺(エッジや、枝、リンクとも呼ばれる)からなる数学的対象である。グラフのノードおよびエッジには互いに識別するためのラベルを付与することができる。
道路地図、化学式のような現実の対象を、グラフで表現することができる。例えば、道路地図においては、交差点がノードであり、道がエッジであるとみなすことができる。化学式においては、元素がノードであり、元素間の結合がエッジであるとみなすことができる。グラフは、遺伝子、タンパク質構造、電気回路、地理学、建築学などの広い範囲に応用することができることが理解される。
最近では、ソーシャル・ネットワーキング・サービス(SNS)を表現することにもグラフ構造が適用されつつある。すなわち、SNSの個々のユーザをノードとし、ユーザの間の友好関係などをエッジと考えることにより、SNSの特定の状態をグラフで表現することができる。同様に、ワールド・ワイド・ウェッブ(WWW)のリンク構造も、グラフで表現することができることが当業者には理解されよう。
現実の対象をグラフとして表現した場合、グラフ内のノードの間の類似度を評価することの要望が存在する。例えば、生体内のタンパク質と反応する既知の薬品と、開発中の新薬が類似するかどうかを評価して、当該新薬が生体内のタンパク質と反応するかどうかを推定することの要望がある。この場合、タンパク質および薬品を表現するグラフにおいて、既知の薬品に関するノードと新薬に関するノードの間の類似度の計算することでかかる評価を行うことができるであろう。
背景技術として、構成要素の配列からなる生体高分子の局所類似配列として選択された配列並置結果から、類似度の大きい領域を表示、抽出する方法、及び装置を開示する。方法は、ダイナミックプログラミング法などの手法により、局所類似配列を有する配列同士の並置結果を演算することを含む。並置結果を、第1の軸を並置された一方の配列の要素である塩基あるいはアミノ酸の順序を表す要素番号、第2の軸をその要素番号までのスコアの累積値とするグラフとして求め、出力表示する。類似度の大きい領域ではグラフの勾配は大となる。
は、他の背景技術として、高信頼な通信ソフトウェアの開発を効率的に行う為の通信ソフトウェア開発支援装置を開示する。装置は、通信ソフトウェア開発における各工程において記述され追加される機能の仕様を解釈し状態と通信処理実行時発生する信号から成る状態遷移関係を表す第1のグラフを生成する手段と、自動的に検索された開発済みの機能の仕様を解釈し状態と通信処理実行時発生する信号から成る状態遷移関係を表す第2のグラフを生成する手段と、第1のグラフと第2のグラフ間の類似度を算出する手段と、算出された類似度の高い順にグラフを選択する手段と、選択されたグラフに対応する開発済みの機能の仕様を表示する手段とを備え、仕様定義者に再利用可能な開発済みの機能を再利用可能性の高い順に示すことを特徴とする。
は、他の背景技術として、テキストの構造を反映してテキスト間の類似度を簡単に算出できるようにする類似度計算装置を開示する。類似度計算装置は、テキストに対して形態素解析を行う形態素解析部と、文節へのまとめ上げを行う文節解析部と、文節に関して依存関係を決定する依存関係解析部と、形態素解析の結果、文節へのまとめ上げの結果および依存関係の解析結果に基づいて、処理対象のテキストに対応する階層を許した非循環有向グラフを生成する非循環有向グラフ生成部と、非循環有向グラフ間の類似度を計算してテキスト間の類似度として出力する類似度計算部と、を備える。非循環有向グラフにおける全部分パス中の一致する部分パス数の総和として、非循環有向グラフ間の類似度が定められる。再帰式によって類似度を計算することが好ましい。
は、他の背景技術として、対象文書中に出現する用語のセットに対して、単語シソーラスを用意することなく、同クラス語のグループを、対象文書に応じて高い信頼性で作成することができる単語クラス作成プログラムを開示する。プログラムは、抽出された用語間の組合せに関して類似度を算出し、類似度に基づいて二つの用語からなる用語組を選別し、選別された用語組について、各用語をノードとし組関係をエッジで表してグラフを作成し、所定のエッジを切断することによって得られるグラフの2分割パターンの候補を抽出し、各候補から算出された平均エッジ密度に基づいてグラフを分割し、分割結果における複数のグラフそれぞれの構成ノードにおける用語を同クラス用語グループとして抽出する。
は、他の背景技術として、本発明は、複数の統合グラフを扱うことができ、演算量が少なく、簡易な構成のグラフ統合装置を開示する。装置は、入力要素を示すノードとノード間において分岐及び合流が可能な示すエッジとで構成された入力グラフGが複数入力され、入力グラフGを統合するものであって、グラフ入力手段11と、入力グラフ記憶手段と、DPマッチング法によって、入力グラフGの類似度を算出する類似度算出手段と、類似度に基づいて、入力グラフGが類似するか否かを判定する類似判定手段と、入力グラフGが類似する場合、入力グラフGを統合するグラフ統合手段と、入力グラフGが類似しない場合、入力グラフGを新たな統合グラフとして追加するグラフ追加手段と、統合グラフ記憶手段と、を備える。
“Fast subtreekernels on graphs”は、他の背景技術として、以下を開示する。
“We propose fast subtree kernels on graphs. On graphs with n nodes and medges and maximum degree d, these kernels comparing subtreesof height h can be computed in O(mh), whereas theclassic subtree kernel by Ramon & G¨artner scales as O(n24dh). Key to this efficiency is theobservation that the Weisfeiler-Lehman test ofisomorphism from graph theory elegantly computes a subtreekernel as a byproduct. Our fast subtree kernels candeal with labeled graphs, scale up easily to large graphs and outperformstate-of-the-art graph kernels on several classification benchmark datasets interms of accuracy and runtime.”
“Graph Matching: Theoretical Foundations, Algorithms, and Applications”は、他の背景技術として、以下を開示する。
“Graphs are a powerful and versatile tooluseful in various subfields of science and engineering. In many applications, forexample, in pattern recognition and computer vision, it is required to measurethe similarity of objects. When graphs are used for the representation ofstructured objects, then the problem of measuring object similarity turns intothe problem of computing the similarity of graphs, which is also known as graphmatching. In this paper, similarity measures on graphs and related algorithmswill be reviewed. Applications of graph matching will be demonstrated givingexamples from the fields of pattern recognition and computer vision. Also recenttheoretical work showing various relations between different similaritymeasures will be discussed.”
特開平07−155169号公報 特開平07−219759号公報 特開2004−272352号公報 特開2007−128389号公報 特開2010−032919号公報
Nino Shervashidze and Karsten M. Borgwardt, "Fast subtreekernels on graphs", NIPS 2009 Horst Bunke, "Graph Matching: Theoretical Foundations, Algorithms, and Applications", Montreal, Quebec, Canada, May 2000, pp. 82-88.
グラフにおけるノードの間の類似度の計算は、グラフが比較的少ない数のノード、エッジを含むものであれば妥当な計算時間で解が得られる。しかし、グラフの規模が大きくなるとナイーブなノード間の類似度計算技法が現実的な計算量で扱える範囲を大きく上回ることがある。例えば、遺伝子配列を扱うバイオインフォマティックスでは、ノードの数が数千から数万、SNSでは数百万と非常に大きなものとなる場合がある。
本発明の目的は、コンピュータの処理によって、グラフにおけるノードの間の類似度を計算するための改善された方法、プログラム、および装置を提供することである。
コンピュータの処理によって、1以上のグラフにおけるノードの間の類似度を計算する方法が提供される。方法は、1以上のグラフにおけるノードのそれぞれについて、当該ノードの隣接ノードのラベル値に基づいて新ラベル値を計算するステップと、ノード間の類似度を計算する対象ノードのそれぞれについて、当該対象ノードのラベル値の影響を取り除くように、その隣接ノードの新ラベル値を補正するステップと、1の対象ノードの隣接ノードの補正された新ラベル値と、他の対象ノードの隣接ノードの補正された新ラベル値を用いて、対象ノードの間の類似度を計算するステップを含む。
好ましくは、新ラベル値を計算するステップが、新ラベル値を計算するために、隣接ノードのラベル値のハッシュ計算を実行するステップを含む。
さらに好ましくは、ハッシュ計算を実行するステップが、隣接ノードが複数存在する場合に複数の隣接ノードのラベル値同士をXORした値を計算するステップを含む。さらに好ましくは、ハッシュ計算を実行するステップが、隣接ノードが複数存在する場合に複数の隣接ノードのラベル値同士をXORした値と当該ノードのラベル値のXORを計算するステップを含む。
好ましくは、補正するステップが、当該対象ノードのラベル値の影響を取り除くために、対象ノードの隣接ノードの新ラベル値と対象ノードのラベル値をXORした値を計算するステップを含む。
好ましくは、新ラベルを計算するステップが、当該ノードに接続されたエッジのラベル値を用いて隣接ノードのラベル値を変換するステップを含む。さらに好ましくは、変換するステップが、隣接ノードのラベル値を当該ノードに接続されたエッジのラベル値に応じてビット回転するステップを含む。さらに好ましくは、変換するステップが、隣接ノードのラベル値に当該ノードに接続されたエッジのラベル値を加算するステップを含む。
好ましくは、類似度を計算するステップが、1の対象ノードの隣接ノードの補正された新ラベル値と他の対象ノードの隣接ノードの補正された新ラベル値を比較し、ジャガード係数(Jaccard Coefficient)を計算するステップを含む。
好ましくは、新ラベル値を計算するステップが、1以上のグラフにおけるノードのラベル値を当該ノードの新ラベル値で置き換えるステップを含み、方法は、新ラベル値を計算するステップを、所定の回数繰り返すステップを含む。
好ましくは、前記ラベル値が、離散値である。好ましくは、ラベル値は所定のビット列である。さらに好ましくは、ラベル値は固定長のビット列である。
以上、方法として本発明の概要を説明したが、本発明は、システム、装置、ソフトウェア製品、ソフトウェア、プログラムなどとしても把握することもできる。ソフトウェア製品は、例えば、前述のソフトウェアを格納した記憶媒体を含め、あるいはソフトウェアを伝送する媒体を含めることができる。
上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの構成要素のコンビネーションまたはサブコンビネーションもまた、発明となり得ることに留意すべきである。
本発明の一実施形態に係る処理を実現するコンピュータ・システムの好適なハードウェアのブロック図である。 本発明の一実施形態に係るコンピュータ・システムの機能ブロック図である。 本発明の一実施形態におけるデータ処理システムの動作の全体を表現するフローチャートである。 本発明の一実施形態におけるハッシュ計算の処理をより詳細に説明するフローチャートである。 図4の処理の一実施例を示す図である。 図5の処理の具体的な計算例を図示したものである。 本発明の一実施形態における隣接ノードの新ラベル値の補正処理の具体的な計算例を図示したものである。 本発明の一実施形態におけるノード間の類似度計算処理を行うグラフの一例を図示したものである。 本発明の一実施形態の効果の一例を図示したものである。
以下、図面に基づき、この発明の実施例を説明する。特に断わらない限り、同一の参照番号は、図面を通して、同一の対象を指すものとする。尚、以下で説明するのは、本発明の一実施形態であり、この発明を、この実施例で説明する内容に限定する意図はないことを理解されたい。
図1を参照すると、本発明の一実施形態に係る処理を実現するコンピュータ・システムの好適なハードウェアのブロック図が示されている。図1において、システム・パス102には、CPU104と、主記憶(RAM)106と、ハードディスク・ドライブ(HDD)108と、キーボード110と、マウス112と、ディスプレイ114が接続されている。CPU104は、好適には、32ビットまたは64ビットのアーキテクチャに基づくものであり、例えば、インテル社のPentium(商標) 4、Core(商標)2 Duo、Xeon(商標)、AMD社のAthlon(商標)などを使用することができる。主記憶106は、好適には、2GB以上の容量をもつものである。ハードディスク・ドライブ108は、大量のグラフ・データを格納できるように、例えば、320GB以上の容量をもつものであることが望ましい。
ハードディスク・ドライブ108には、個々には図示しないが、オペレーティング・システムが、あらかじめ格納されている。オペレーティング・システムは、Linux(商標)、マイクロソフト社のWindows XP(商標)、Windows(商標)2000、アップルコンピュータのMac OS(商標)などの、CPU104に適合する任意のものを採用することができる。
ハードディスク・ドライブ108は、C、C++、C#、Java(商標)などのプログラム言語処理系も格納する。このプログラム言語処理系は、後で説明する、グラフ・データ処理用のモジュールまたはツールを作成し、維持するために使用される。
ハードディスク・ドライブ108は、プログラム言語処理系でコンパイルするためのソースコードを書くためのテキスト・エディタ、及び、Eclipse(商標)などの開発環境を含み得る。
キーボード110及びマウス112は、オペレーティング・システムまたは、ハードディスク・ドライブ108から主記憶106にロードされ、ディスプレイ114に表示されたプログラム(図示せず)を起動したり、文字を打ち込んだりするために使用される。
ディスプレイ114は、好適には、液晶ディスプレイであり、例えば、XGA(1024×768の解像度)、またはUXGA(1600×1200の解像度)などの任意の解像度のものを使用することができる。ディスプレイ114は、図示しないが、処理すべきグラフ・データや、グラフの類似度を表示するために使用される。
図2は、本発明の一実施形態に係るコンピュータ・システム100の機能ブロック図である。これらの機能ブロックは、C、C++、C#、Java(商標)など既存のプログラム言語で書かれ、実行可能バイナリ形式でハードディスク・ドライブ108に格納され、マウス112またはキーボード110の操作に応答して、オペレーティング・システム(図示しない)の働きで、主記憶106に呼び出され実行されるプログラム・モジュールを用いて、ハードウェア資源とソフトウェアを協働させることによって実現することができる。
コンピュータ・システム100は、グラフ・データ作成部205、グラフ・データ格納部210、グラフ探索部215、ハッシュ計算部220、ラベル値補正部230、および、ノード類似度計算部210を含む。
グラフ・データ作成部205は、所与のグラフを、コンピュータ可読なデータ構造に変換する。本発明の一実施形態では、ノード数n、平均隣接ノード数dのグラフgとして、次のようなデータ構造を用いる。もっとも、本発明を実施するためのデータ構造はこれに限定されないことに留意されたい。
g.nodelist:ノードのリストを表す長さnのリスト
g.nodelabellist:ノードラベルのリストを表す長さnのリスト
g.nodelabellistx:g.nodelabellistと同じデータ構造で、ラベル書込み用バッファとして使用される、長さnのリスト
g.adjacencymatrix:グラフの隣接行列。ノードiとノードjにリンクがあれば行列の要素(i, j)は1、そうでなければ0を持つ。大きさはn × nになるが、0要素を省略するスパース行列というデータ構造を使えばn × dで済む。
g.edgelabelmatrix:エッジ・ラベルのリストを表す長さn × nの行列。ノードiとノードjにリンクがあれば行列の要素(i, j)にエッジのラベル値を持ち、そうでなければ0の値を持つ。大きさはn ×nになるが、0要素を省略するスパース行列というデータ構造を使えばn ×dで済む。
グラフ・データ格納部210は、グラフ・データ作成部205によって構成されたグラフ・データを格納する。具体的には、グラフ・データは、主記憶106上にロードされるか、または、ハードディスク108に、保存される。グラフ・データが非常に大きい場合、グラフ・データを先ずハードディスク108上に置き、計算に必要な箇所のデータだけを主記憶にロードするようにすることもできる。
グラフ探索部215は、グラフを順次探索して、1つのグラフの全てのノードを訪問し、訪問中のノード(「自ノード」という)の隣接ノードおよびエッジのラベル値を参照し、ハッシュ計算部220に引き渡す。そして、ハッシュ計算部220から、ハッシュ計算の結果である自ノードの新ラベル値を受け、グラフ・データ格納部210に送る処理を行う。また、グラフ探索部215は、後述するノード選択部225から受けた類似度の計算を行う2以上の対象ノードの選択情報に基づいて、グラフ・データ格納部210から対象ノードのラベル値および対象ノードの隣接ノードの新ラベル値をラベル値補正部230に引き渡す処理も行うことができる。
ハッシュ計算部220は、グラフ探索部215から自ノードの隣接ノードおよび自ノードに接続されているエッジのラベル値を受け、ハッシュ計算(詳細は後述する)を行って、計算結果である新ラベル値をグラフ探索部215に渡すことができる。
ノード選択部225は、類似度の計算を行う2以上の対象ノードの選択をユーザ、他のシステムなどから受ける。対象ノードの選択情報は、グラフ探索部215に引き渡されることとなる。
ラベル値補正部230は、ノード選択部225によって選択された、類似度の2以上の対象ノードのそれぞれについて、当該対象ノードのラベル値の影響を取り除くように、その隣接ノードの新ラベル値を補正する処理を行うことができる。補正された隣接ノードの新ラベル値は、2以上の対象ノードの間の類似度を計算するためにノード類似度計算部205に引き渡される。
ノード類似度計算部210は、類似度の計算を行う2以上の対象ノードの隣接ノードに関する補正された新ラベル値をラベル値補正部230から受け取り、それらに基づき、2以上の対象ノードの類似度を計算する。本発明の一実施形態では、ノード間の類似度の計算は、ジャカード係数(Jaccard coefficient)を計算することによって行われる(詳細は後述する)。
図3は、本発明の一実施形態におけるデータ処理システムの動作の全体を表現するフローチャート300である。処理はステップ305でスタートし、ステップ310でノードおよびエッジを含むグラフ・データが作成される。これらのノードおよびエッジには、それぞれにラベル値が付与される。本発明の一実施形態では、この処理は、図2のグラフ・データ作成部205によって実施される。
ステップ310では、ノードの異なるラベルの種類をpとすると、p << 2mのようなmを選んで、ラベルをmビットのデータとする。このように、2mをpよりも十分大きくとる理由は、ラベルにおけるハッシュ衝突の可能性を減らすためである。
そして、例えば、2m-1 < P1 < 2mであるような素数P1と、P1よりも十分大きい素数P2を用意して、i番目のラベル値をLHiとすると、下記の式で、ラベルLi ( i = 1,.., p )の各々に、異なるmビットのラベル値を付与することができる。
for ( i = 1; i <= p; i++ ) {
LHi =(P2 * i) % P1;
}
ここで、%は、割算の余りを計算する演算子である。なお、これ以外の任意の乱数生成ルーチンを使用することもできることに留意されたい。
ステップ310では、このようにして決められたラベル値LHiを、グラフの各ノードに、そのラベルLiに応じて付与しつつ、グラフ・データを構成する。すなわち、グラフ・データ作成部205は、図6にその一部が示されているようなグラフを、例えば深さ優先でグラフを辿りながら、g.nodelistを順次作成し、併せてそのラベル値LHiを g.labellistに記録しつつ、隣接関係をg.adjacencymatrixに記録していく。その結果、各ラベルにラベル値としてビット列が付与される。図6の例では、A =#1000, B = #1100, C = #1110である。なお、ここで”#”が先頭に付された#1000のような表記は、”#”に続く数が2進数であることを表現するものとする。後で説明するビット回転、XORなどの計算に好都合なので、ラベル値は固定ビット数とすることが好ましい。
また、ステップ310では、エッジのラベル値の付与も行われる。本発明の一実施形態では、エッジのラベル値は後でビット回転等に用いられるので、ノードのラベルよりも少ない桁数で実現することが好ましい。具体的には、エッジの種類の数がqである場合、1、2、3…、pの数字をそれぞれのエッジに種類に応じて割り当てるとよい。なお、本発明の一実施形態では、エッジのラベル値は、その方向に応じて正負の数字が与えられる。
処理はステップ315に進み、グラフ内のノードの探索が行われる。次に、ステップ320では、グラフのすべてのノードを訪問したかどうかの判断が行われる。具体的には、この判断はg.nodelistの末端に達したかどうかで行われる。
ステップ325で、まだグラフのすべてのノードを訪問していないと判断された場合、処理はNOの矢印からステップ330に進む。ステップ330では、g.nodelistに従い、グラフ探索モジュール206は、次のノードを訪問する。なお、グラフ探索の最初の段階では、ステップ330では、先頭のノードを訪問することになる。本発明の一実施形態では、これらの処理は、図2のグラフ探索部215によって実施される。
また、ステップ330では、いま訪問しているノード(「自ノード」)の隣接ノードのラベル値、自ノードに接続されているエッジのラベル値、および自ノードのラベル値を用いて、ハッシュにより自ノードの新ラベル値(「新ラベル値」という)の計算を行う。本発明の一実施形態では、これらの処理は、図2のハッシュ計算部220によって実施される。ここで隣接ノードとは、当該ノードにエッジを介して直接接続されているノードである。このような隣接関係は、 g.adjacencymatrixに記録されている値を参照することによって、調べることができる。これらのラベル値は、g.nodelabellist、g.edgelabelmatrixを参照することによって取得することができる。
ステップ330において計算された新ラベル値は、当該ノードの新ラベル値としてグラフ・データ格納部210に格納される。この場合、g.nodelabellistにではなく、g.nodelabellistxに新ラベルが書き込まれることが好ましい。これは、g.nodelabellistに直接上書きすると、ノードの探索順序に依存して、結果が変わってしまい、また、g.nodelabellistに格納されている新ラベル値を計算するのに用いたラベル値を後で使用する可能性があるからである。
以下、ラベル値の計算を、図4および図5を参照して、詳細に説明する。図4は、本発明の一実施形態におけるハッシュ計算の処理をより詳細に説明するフローチャートである。
図3のフローチャートで、ノードを訪問していくときに、今滞在しているノードを自ノードと呼ぶことにする。まず、自ノードの隣接ノードのラベル集合405は、g.adjacencymatrixに記録されている値を参照することによって、 g.nodelabellistから取得することができる。自ノードの隣接ノードのラベル集合は一般的に複数存在するので、NeighboringNodeLabels[]として表現され得る。
自ノードに接続されているエッジのラベル集合410は、g.adjacencymatrixに記録されている値を参照することによって、 g.edgelabematrixから取得される。エッジのラベル集合410も一般的に複数存在するので、ConnectedEdgeLabels[]として表現され得る。
自ノードのラベル415は、いま訪問しているノードに対応するラベル値であり、g.nodelabellistから取得される。ここでは、自ノードのラベル415をThisNodeLabelと表現するものとする。
ハッシュ関数420を、Hash()とし、新しいラベル425をNewLabelとすると、NewLabelは以下の式によって計算される。このように計算されたNewLabelの値が、自ノードの新ラベル値として、g.labellistxに書き込まれる。
NewLabel =Hash(ThisNodeLabel,NeighboringNodeLabels[], ConnectedEdgeLabels[])
図5は、図4の処理の一実施例を示す図である。図5には、隣接ノードのラベル集合505、接続エッジのラベル集合510、自ノードのラベル515から、新しいラベル525を生成するためのハッシュ計算ブロック520が示されている。
ハッシュ計算ブロック520は、隣接ノードのラベル集合510を対応する(つまり、当該隣接ノードと自ノードを接続する)エッジのラベル値の大きさだけビット回転するブロック530と、ビット回転された隣接ノードのラベル集合505に対応するエッジのラベル値を加算するブロック535と、ビット回転、加算が施された隣接ノードのラベル集合505の排他的論理和(XOR)を計算するブロック540と、XORされた隣接ノードのラベル集合505と自ノードのラベル値のXORを計算するブロック545を備える。
図6に、図5の処理の具体的な計算例を示す。図6において、自ノードv0のラベルが#1000、隣接ノードv1、v2、 v3のラベルがそれぞれ#1100、#1110、#1100、対応するエッジのラベル値が2、-1、1であるとする。なお、エッジのラベル値の正負は、エッジの方向を表現するものであることに留意されたい。
まず、ブロック530によるビット回転の出力は、#0011、#0111、#1001となる。次に、ブロック535によってエッジのラベル値が加算され、その出力は、#0101、#0110、#1010となる。ブロック540が、XORを計算し、その出力は#1001となる。これに対してさらにブロック545が自ノードのラベル値#1000とのXORを計算し、最終的に自ノードv0の新ラベル値(NH)は#0001となる。
なお、自ノードのラベル値をハッシュにより計算するためのアルゴリズムは、図5および図6に示すアルゴリズムに限定されず、妥当な計算量且つハッシュ衝突が起こりにくいものであれば、任意のハッシュ・アルゴリズムを使用することができることに留意されたい。
図3に戻り、ステップ330において新ラベル値が計算されたのち、処理はステップ320に戻る。全てのノードを訪問し終わるまで、ステップ320、325及び330が実行される。全てのノードを訪問し終わると、g.nodelistの全てのノードについて新ラベル値が計算されたこととなる。
このようなグラフの訪問による新ラベル値の計算処理は、複数回行われることもあり得る。この場合、g.labellistを、 g.labellistxで置換するようにするとよい。このようなグラフの訪問によるラベル値の書き換えは、類似度を計算すべき対象ノードを含む1以上のグラフのすべてについて行われる。なお、所定の複数回新ラベルの計算が行われることによってグラフ比較の精度は一般的には高まるが、必ずしも回数が増えるほど精度が高まるとは限らず最適な回数があろうことに留意されたい。
ステップ325で、まだグラフのすべてのノードを訪問したと判断された場合、処理はYESの矢印からステップ330に進む。ステップ330では、ノード間の類似度計算を行う対象となる2以上のノード(「対象ノード」という)の選択を受ける。本発明の一実施形態では、この処理は図2のノード選択部225によって実施されるが、具体的には、コンピュータ・システム100のユーザまたは他システムからの入力に基づいて行われる。
処理はステップ335に進み、対象ノードの隣接ノードの新ラベル値(ステップ325で生成されたものである)から対象ノードのラベル値の影響を取り除くための補正処理が実行される。この処理は、図2のラベル値補正部230によって実施される。具体的には、それぞれの隣接ノードの新ラベル値と、対象ノードのラベル値のXORを計算することによって、隣接ノードの新ラベル値から対象ノードのラベル値の影響を取り除かれることとなる。
図7に、新ラベル値の補正処理の具体的な計算例を示す。図7においては、対象ノードv0のラベルが#1000、その隣接ノードv1、v2、 v3の新ラベル値が(ステップ325の処理の結果)それぞれ#0101、#1101、#1001として得られているものと仮定する。この場合、それぞれ補正された隣接ノードv1、v2、 v3の新ラベル値(ANH)は、#1101、#0101、#0001となる。
図3に戻り、処理は340に進み、選択された対象ノード間の類似度の計算がステップ335において補正された新ラベル値を用いて実施される。本発明の一実施形態では、以下に示すよく知られたジャガード係数(Jaccard Coefficient)を求めることによってノード間の類似度を計算するものとする。すなわち、1の対象ノードの隣接ノードの新ラベル値の集合(A)と他の対象ノードの隣接ノードの新ラベル値の集合(B)について、AとBの積集合の要素数(|A∩B|)をAとBの和集合の要素数(|A∪B|)で除算したものを類似度として計算する。本発明の一実施形態では、この処理は図2のノード類似度計算部235によって実施される。
Figure 0005315291
図8に、本発明の一実施形態におけるノード間の類似度計算処理を行うグラフの一例を図示する。図8に示すグラフにおいて、類似度計算を行う対象ノードとしてv0、w0が選択されたものとする。対象ノードv0の隣接ノードv1、v2、v3の補正された新ラベル値の集合(V)は#1101、#0101、#1001であり、対象ノードw0の隣接ノードw1、w2、w3、w4の補正された新ラベル値の集合(W)はそれぞれ#1101、#0101、#1011、#1011である。
したがって、VとWの和集合は#1101、#0101、#1001、#1011、#1011でその個数は「5」、VとWの積集合は#1101、#0101でその個数は「2」となる。よって、対象ノードv0、w0の間の類似度(ジャカード係数J)は、「0.4」と計算されることとなる。
図9に、本発明の一実施形態の適用の効果の一例を図示する。図9は、イースト菌に存在するタンパク質のネットワーク(2361ノード)における類似度評価の実験結果である。表中の”Mean similarity (all)”の列は「全タンパク質ペアの類似度」を、”Mean similarity (selected)”の列は、人手でアノテーションされた「既知の類似タンパク質ペアの平均類似度」を、”Mean rank (selected)”の列は「類似タンパク質ペア類似度の平均」をそれぞれ意味している。
図9では、本発明の一実施形態を用いた今回の手法を以下の4つの手法と対比している。
・CoS(ID):接続ノードベクトル(2361次元)の内積で類似度を定義
・CoS(label):接続ノードのラベル個数ベクトル(13次元)の内積で類似度を定義
・SimRank:ランダムウォークベースの既存手法
・AugmentedSimRank:ノードラベルを考慮したランダムウォークベースの既存手法
この結果の対比では以下の評価基準を用いることができる、まず第1に「全タンパク質ペアの類似度」に比べて「既知の類似タンパク質ペアの平均類似度」が大きい場合、類似タンパク質ペアの類似度が平均値として高く出ているので、その手法は優れているといえる。第2に、「類似タンパク質ペア類似度の平均」が小さい場合、類似タンパク質ペアの類似度がランキングとして上位に出ているので、その手法は優れているといえる。
結果を見ると、Cos(ID)の手法は、第1の評価基準では優れているが、第2の評価基準では悪い結果を示しているといえる。また、その他の手法(CoS(label)、SimRank、AugmentedSimRank)は第1、第2のいずれの評価基準によっても悪い結果を示しているといえる。
これに対して、今回の手法は第1、第2の評価基準のいずれでも安定して良好な結果を示していることが理解される。よって、本発明の一実施形態によれば、2361ノードという大規模なグラフに対しても、かかる良好な結果を妥当な計算時間で解が得られるという顕著な効果が得られることが理解される。
以上、本発明を実施の形態を用いて説明したが、上記実施の形態に、様々な変更または改良を加えることが可能であり、その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、当分野の当業者に明らかであろう。例えば、図4に示すラベル値のハッシュ計算として、図5あるいは図6に示す具体的な処理を示したが、これらはあくまでも実施例であり、妥当な計算量の任意のハッシュ関数を使用することができる。
また、本発明の一実施形態で用いたジャカード係数による類似度計算処理も一実施例であり、この分野の当業者であるなら、2つの対象ノードの隣接ノードの新ラベル値に基づき、様々な変形例を思いつくことができる。他のバリエーションとして、各ノードの新ラベル値の計算を複数回繰り返して行った場合、それぞれの繰り返された計算で得られた新ラベル値を用いて計算した複数のジャカード係数の平均または重み付き平均等を求めることによって対象ノード間の類似度を計算するようにしてもよい。
205・・・グラフ・データ作成部
210・・・グラフ・データ格納部
215・・・グラフ探索部
220・・・ハッシュ計算部
225・・・ノード選択部
230・・・ラベル値補正部
235・・・ノード類似度計算部

Claims (15)

  1. コンピュータの処理によって、1以上のグラフにおけるノードの間の類似度を計算する方法であって、
    前記1以上のグラフにおけるノードのそれぞれについて、当該ノードの隣接ノードのラベル値に基づいて新ラベル値を計算するステップと、
    ノード間の類似度を計算する対象ノードのそれぞれについて、当該対象ノードの前記ラベル値の影響を取り除くように、その隣接ノードの前記新ラベル値を補正するステップと、
    1の対象ノードの隣接ノードの補正された新ラベル値と、他の対象ノードの隣接ノードの補正された新ラベル値を用いて、前記対象ノードの間の類似度を計算するステップと、
    を含む、方法。
  2. 前記新ラベル値を計算するステップが、前記隣接ノードのラベル値のハッシュ計算を実行するステップを含む、請求項1に記載の方法。
  3. 前記ハッシュ計算を実行するステップが、前記隣接ノードが複数存在する場合に複数の前記隣接ノードのラベル値同士をXORした値を計算するステップを含む、請求項2に記載の方法。
  4. 前記ハッシュ計算を実行するステップが、前記隣接ノードが複数存在する場合に複数の前記隣接ノードのラベル値同士をXORした値と当該ノードのラベル値のXORを計算するステップを含む、請求項2に記載の方法。
  5. 前記補正するステップが、当該対象ノードの前記ラベル値の影響を取り除くために、前記対象ノードの隣接ノードの新ラベル値と対象ノードのラベル値をXORした値を計算するステップを含む、請求項4に記載の方法。
  6. 前記新ラベルを計算するステップが、当該ノードに接続されたエッジのラベル値を用いて隣接ノードのラベル値を変換するステップを含む、請求項1に記載の方法。
  7. 前記変換するステップが、隣接ノードのラベル値を当該ノードに接続されたエッジのラベル値に応じてビット回転するステップを含む、請求項6に記載の方法。
  8. 前記変換するステップが、隣接ノードのラベル値に当該ノードに接続されたエッジのラベル値を加算するステップを含む、請求項7に記載の方法。
  9. 前記類似度を計算するステップが、1の対象ノードの隣接ノードの補正された新ラベル値と他の対象ノードの隣接ノードの補正された新ラベル値を比較し、ジャカード係数(Jaccard coefficient)を計算するステップを含む、請求項1に記載の方法
  10. 前記新ラベル値を計算するステップが、前記1以上のグラフにおけるノードのラベル値を当該ノードの前記新ラベル値で置き換えるステップを含み、前記新ラベル値を計算するステップを、所定の回数繰り返すステップを含む、請求項1に記載の方法。
  11. 前記ラベル値が、離散値である、請求項1に記載の方法。
  12. 前記ラベル値が、所定のビット列である、請求項1に記載の方法。
  13. 前記ラベル値が、固定長のビット列である、請求項1に記載の方法。
  14. 1以上のグラフにおけるノードの間の類似度を計算するためのプログラムであって、
    前記1以上のグラフにおけるノードのそれぞれについて、当該ノードの隣接ノードにのラベル値に基づいて新ラベル値を計算するステップと、
    ノード間の類似度を計算する対象ノードのそれぞれについて、当該対象ノードの前記ラベル値の影響を取り除くように、その隣接ノードの前記新ラベル値を補正するステップと、
    1の対象ノードの隣接ノードの補正された新ラベル値と、他の対象ノードの隣接ノードの補正された新ラベル値を用いて、前記対象ノードの間の類似度を計算するステップと、
    をコンピュータに実行させる、プログラム。
  15. 1以上のグラフにおけるノードの間の類似度を計算するためのシステムであって、
    前記1以上のグラフにおけるノードのそれぞれについて、当該ノードの隣接ノードのラベル値に基づいて新ラベル値を計算する手段と、
    ノード間の類似度を計算する対象ノードのそれぞれについて、当該対象ノードの前記ラベル値の影響を取り除くように、その隣接ノードの前記新ラベル値を補正する手段と、
    1の対象ノードの隣接ノードの補正された新ラベル値と、他の対象ノードの隣接ノードの補正された新ラベル値を用いて、前記対象ノードの間の類似度を計算する手段と、
    を備える、システム。
JP2010105065A 2010-04-30 2010-04-30 グラフにおけるノードの間の類似度を計算するための方法、プログラム、およびシステム Expired - Fee Related JP5315291B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2010105065A JP5315291B2 (ja) 2010-04-30 2010-04-30 グラフにおけるノードの間の類似度を計算するための方法、プログラム、およびシステム
US13/093,962 US8538169B2 (en) 2010-04-30 2011-04-26 Method, program, and system for calculating similarity between nodes in graph

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010105065A JP5315291B2 (ja) 2010-04-30 2010-04-30 グラフにおけるノードの間の類似度を計算するための方法、プログラム、およびシステム

Publications (2)

Publication Number Publication Date
JP2011233069A JP2011233069A (ja) 2011-11-17
JP5315291B2 true JP5315291B2 (ja) 2013-10-16

Family

ID=44858307

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010105065A Expired - Fee Related JP5315291B2 (ja) 2010-04-30 2010-04-30 グラフにおけるノードの間の類似度を計算するための方法、プログラム、およびシステム

Country Status (2)

Country Link
US (1) US8538169B2 (ja)
JP (1) JP5315291B2 (ja)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8762390B2 (en) * 2011-11-21 2014-06-24 Nec Laboratories America, Inc. Query specific fusion for image retrieval
US9135369B2 (en) 2012-05-02 2015-09-15 Nvidia Corporation System, method, and computer program product for performing graph aggregation
US9009179B2 (en) * 2012-05-02 2015-04-14 Nvidia Corporation System, method, and computer program product for performing graph matching
US9405853B2 (en) * 2013-06-17 2016-08-02 Hewlett Packard Enterprise Development Lp Reading object queries
US10657178B2 (en) * 2014-08-22 2020-05-19 Hewlett Packard Enterprise Development Lp Processing of a generate entity type graph component of a graph analysis system
CN105989154B (zh) * 2015-03-03 2020-07-14 华为技术有限公司 相似性度量的方法及设备
US11222072B1 (en) * 2015-07-17 2022-01-11 EMC IP Holding Company LLC Graph database management system and method for a distributed computing environment
US9558265B1 (en) * 2016-05-12 2017-01-31 Quid, Inc. Facilitating targeted analysis via graph generation based on an influencing parameter
US10824607B2 (en) 2016-07-21 2020-11-03 Ayasdi Ai Llc Topological data analysis of data from a fact table and related dimension tables
US11301774B2 (en) 2017-02-28 2022-04-12 Nec Corporation System and method for multi-modal graph-based personalization
US10803122B2 (en) * 2017-04-11 2020-10-13 International Business Machines Corporation Labeled graph isomorphism allowing for false positive
US10866963B2 (en) * 2017-12-28 2020-12-15 Dropbox, Inc. File system authentication
CN108197491B (zh) * 2017-12-29 2021-06-15 西安电子科技大学 一种基于密文的子图检索方法
CA3095362A1 (en) * 2019-10-03 2021-04-03 Royal Bank Of Canada System and method for behavioral pattern recognition
CN110826812A (zh) * 2019-11-13 2020-02-21 南京航空航天大学 一种基于图的布尔可满足性问题的目标算法预测方法
JP7346286B2 (ja) * 2019-12-25 2023-09-19 株式会社日立製作所 関連性分析装置、及び方法
US11809986B2 (en) 2020-05-15 2023-11-07 International Business Machines Corporation Computing graph similarity via graph matching

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07155169A (ja) 1993-12-10 1995-06-20 Hitachi Ltd 生体高分子局所類似配列の表示、抽出方法及び装置
JPH07219759A (ja) 1994-01-31 1995-08-18 Kodo Tsushin Syst Kenkyusho:Kk 通信ソフトウェア開発支援装置
CN1186737C (zh) * 2002-02-05 2005-01-26 国际商业机器公司 对尚未访问的网页进行基于路径的排队的方法和系统
KR100513735B1 (ko) * 2002-12-05 2005-09-08 삼성전자주식회사 지각적 인식이 가능한 3차원 형상의 기술방법과 이를이용한 3차원 그래픽 모델의 데이터베이스 검색 방법 및장치
US7257244B2 (en) * 2003-02-24 2007-08-14 Vanderbilt University Elastography imaging modalities for characterizing properties of tissue
US7174043B2 (en) * 2003-02-25 2007-02-06 Evernote Corp. On-line handwriting recognizer
JP4073015B2 (ja) 2003-03-05 2008-04-09 日本電信電話株式会社 類似度計算方法、装置、プログラムおよび該プログラムを格納した記録媒体
JP2007128389A (ja) 2005-11-07 2007-05-24 Fujitsu Ltd 単語クラス作成プログラム、単語クラス作成装置、及び単語クラス作成方法、並びに類似度算出プログラム、類似度算出装置、及び類似度算出方法
US7599902B2 (en) * 2006-04-27 2009-10-06 Hrl Laboratories, Llc Analogical reasoning system
US8041082B1 (en) * 2007-11-02 2011-10-18 Google Inc. Inferring the gender of a face in an image
JP4956503B2 (ja) 2008-07-30 2012-06-20 日本放送協会 グラフ統合装置及びそのプログラム

Also Published As

Publication number Publication date
US20110268364A1 (en) 2011-11-03
US8538169B2 (en) 2013-09-17
JP2011233069A (ja) 2011-11-17

Similar Documents

Publication Publication Date Title
JP5315291B2 (ja) グラフにおけるノードの間の類似度を計算するための方法、プログラム、およびシステム
JP5306461B2 (ja) グラフの類似度計算システム、方法及びプログラム
CN105786980B (zh) 对描述同一实体的不同实例进行合并的方法、装置及设备
CN111461164A (zh) 样本数据集的扩容方法及模型的训练方法
Zhang et al. An efficient, large-scale, non-lattice-detection algorithm for exhaustive structural auditing of biomedical ontologies
US20230401426A1 (en) Prediction method, prediction apparatus and program
Djukanovic et al. An A⁎ search algorithm for the constrained longest common subsequence problem
Nguyen et al. On a linear fused Gromov-Wasserstein distance for graph structured data
JP6770709B2 (ja) 機械学習用モデル生成装置及びプログラム。
JP2004318884A (ja) 有向スケールフリーオブジェクト関係のモデリング
Paszek et al. Efficient algorithms for genomic duplication models
Hamilton et al. An entanglement-based volumetric benchmark for near-term quantum hardware
Zhang et al. Nonbifurcating Phylogenetic Tree Inference via the Adaptive LASSO
CN109472023B (zh) 一种基于实体及文本联合嵌入的实体关联度衡量方法、系统及存储介质
Han et al. Improving quartet graph construction for scalable and accurate species tree estimation from gene trees
Blum et al. Hybrid techniques based on solving reduced problem instances for a longest common subsequence problem
Patra et al. Motif discovery in biological network using expansion tree
Zhang et al. A heuristic cluster-based em algorithm for the planted (l, d) problem
Guan et al. DCG++: a data-driven metric for geometric pattern recognition
Wicaksana et al. Web-app realization of Shor’s quantum factoring algorithm and Grover’s quantum search algorithm
US11797580B2 (en) Connection nature between nodes in graph structure
Porter Fast NeighborNet: Improving the Speed of the Neighbor-Net Phylogenetic Network Algorithm with Multithreading and a Relaxed Search Strategy
CN115794196B (zh) EdgeX的关键软件识别方法、装置、设备及存储介质
JP4082615B2 (ja) 判定装置、判定方法、及びプログラム
WO2023017565A1 (ja) 信頼性計算方法、信頼性計算装置、及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130115

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130416

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130423

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130515

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: 20130618

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130708

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees