JP5596235B2 - グラフデータストリーム内のオブジェクトをクラス化するための方法 - Google Patents

グラフデータストリーム内のオブジェクトをクラス化するための方法 Download PDF

Info

Publication number
JP5596235B2
JP5596235B2 JP2013525903A JP2013525903A JP5596235B2 JP 5596235 B2 JP5596235 B2 JP 5596235B2 JP 2013525903 A JP2013525903 A JP 2013525903A JP 2013525903 A JP2013525903 A JP 2013525903A JP 5596235 B2 JP5596235 B2 JP 5596235B2
Authority
JP
Japan
Prior art keywords
edge
stream
data
class label
graph
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
JP2013525903A
Other languages
English (en)
Other versions
JP2013543160A5 (ja
JP2013543160A (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
Publication of JP2013543160A publication Critical patent/JP2013543160A/ja
Publication of JP2013543160A5 publication Critical patent/JP2013543160A5/ja
Application granted granted Critical
Publication of JP5596235B2 publication Critical patent/JP5596235B2/ja
Active 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/94Hardware or software architectures specially adapted for image or video understanding

Description

本発明は、大規模(massive)グラフストリームのクラス化に関する。
機械学習において、クラス化は、入力オブジェクトに対してクラスラベルを割り当てることである。クラス化は、化学的及び生物学的なデータ、ウェブ並びに通信ネットワークのような多数の領域を背景として生じる。一例として、ウェブクエリのトピックのクラス化/カテゴリ化は、ウェブ検索クエリ(例えば、入力オブジェクト)を、そのクエリのトピックに基づいて、1つ又は複数の事前定義されたカテゴリ(例えば、クラスラベル)に割り当てることを扱う。例えば、ウェブクエリ「apple」を発行したユーザは、果物のリンゴに関係したウェブページを見ようとしているかもしれないし、又はコンピュータ会社に関係した製品若しくはニュースを見る方を好むかもしれない。検索結果ページは、クエリクラス化アルゴリズムにより予測されたカテゴリに従ってグループ化することができる。
化学的データ、生物学的データ及びウェブのような多くのデータ領域は、グラフとして構造化される。化学的及び生物学的領域においては、グラフのノードは、比較的少ない可能性のベースから引き出されたものであり、データセットは比較的小さいサイズであると想定される。一方で、ウェブグラフ、通信ネットワーク、及びソーシャル・ネットワークは、根底にある大規模なノード領域上で定義されたものであり得る。10を超えるノードを有するグラフは、1013ものエッジを含むことがあり、それゆえ大規模であるとみなすことができる。ノードは、ウェブグラフにおけるURLアドレス、通信ネットワークにおけるIPアドレス、又はソーシャル・ネットワークにおけるユーザ識別子に対応するものとすることができる。URLアドレス、IPアドレス及びユーザ識別子の間のリンクがエッジである。
ストリーミング・アプリケーションにおいては、ある外部環境内で生成されたデータが、この情報を処理するサーバに非同期的にプッシュされる。ストリーミング・アプリケーションは、大容量のデータストリームをタイムリーで応答性に優れた方式で処理する能力により特徴付けられる。大規模グラフストリームは、ソーシャル・ネットワークにおけるユーザの通信パターン、全てのユーザの閲覧パターン、又は通信ネットワーク上の侵入トラフィックを含むことができる。
Roger Rea及びKrishna Mamidipaka著「IBM InfoSphere Streams, Redefining Real Time Analytics」2010年2月発行 Gedik他著、「SPADE:System S Declarative Stream Processing Engine」、SIGMOD、2008年6月9日−12日、1123−1134ページ Hirzel他著、「SPL Stream Processing Language Specification」、IBM(登録商標)Research Report、RC24897(W0911−044)、2009年11月5日
大規模グラフがストリーム形態である場合には、そのことが、将来的な解析のために構造情報をマイニングするために用いることができるアルゴリズムの種類を制限する。例えば、ストリームであるという制約条件は、データ上で1つのパスしか許容しない。さらに、グラフのエッジは、データストリーム内で順序が乱れて到着することがある。グラフのサイズが大規模であることで、クラス化に関連した情報の効果的な抽出にとっての難題も生じる。例えば、グラフデータ内の多数の相異なるエッジに関する集計情報を格納することは困難である。さらに、構造的挙動は多数の相異なるエッジの組合せによって支配されるので、部分構造決定問題の複雑度の指数関数的増大は、部分構造のカーディナリティが増すにつれて非常に速く増大する。このような場合、頻度判別的部分グラフの決定は、計算的にも空間的にも非実用的な程度まで非効率的になることがある。
本発明の例示的な実施形態は、グラフデータストリーム内のオブジェクトをクラス化するための方法及びコンピュータ・プログラム製品を提供する。
グラフデータストリームは、エレメントを表わす複数のノードと、エレメント間の接続を表わすエッジとを含むことができる。データストリーム内のオブジェクトは、ノードとそれらのノード間のエッジとが一緒になったグループとすることができる。例示的な方法において、グラフデータの訓練ストリームが受信され、この訓練ストリームは、複数のオブジェクトをそれらオブジェクトの各々に関連付けられたクラスラベルと共に含む。クラスラベルについて訓練ストリーム内の判別エッジ集合(例えば、部分グラフ)が決定され、ここで判別エッジ集合は、所与のクラスラベルを有するエッジを含むオブジェクトを指し示すもの(しかし、直接対応するものではない)である。次にグラフデータの着信データストリームが受信されるが、着信データストリーム内のオブジェクトにはまだクラスラベルは割り当てられていない。判別エッジ集合に基づいて、着信データストリーム内のオブジェクトに関連付けられるクラスラベルが決定される。第2の決定に基づいたオブジェクト−クラスラベル対が、情報リポジトリに出力される。
大規模グラフの一部を示す。 本発明の例示的な実施形態による、グラフデータストリーム内のオブジェクトをクラス化するための方法のフローチャートを示す。 本発明の例示的な実施形態による、グラフデータストリームの各着信エッジについてmin−hashインデックスを更新するためのアルゴリズムを示す。 図3に示されるアルゴリズムの一部に対応するフローチャートを示す。 本発明の例示的な実施形態による、列圧縮を伴う、グラフデータストリームの各着信グラフについてmin−hashインデックスを更新するためのアルゴリズムを示す。 図5に示されるアルゴリズムの一部に対応するフローチャートを示す。 本発明の例示的な実施形態を実装するための装置を示す。
本発明の例示的な実施形態による、グラフデータストリーム内のオブジェクトをクラス化するための方法を以下説明する。グラフデータストリームは、大規模なものとすることができる。オブジェクトは、ウェブサーフィンのパターンを識別するグラフのノード及びエッジを含むことができる。例えば、訪問したウェブサイトがノードであり、1つのウェブページから別のウェブページへのパスがエッジである。したがって、ページ1の次にページ2へ、その次にページ3へと訪問するユーザは、ある特定の特性を有していそうな(すなわち、特定の本を購入しそうな)人である。本発明は、そのようなパターンを識別し、次いで、これらのパターンに、関連したラベルを割り当てることを目的とする。
このことを達成するために、グラフデータの訓練ストリーム内に存在する判別的(discriminative)部分グラフを最初に決定し、次いでクラスラベルを与える。簡単に言えば、着信データを小空間に縮小する2次元(2D)ハッシュ圧縮技術を用いて相関エッジ集合を決定する。次いで相関エッジ集合について優勢クラスラベルを決定し、この優勢クラスラベルをそれぞれの部分グラフに対して最終的なクラスラベルとして与えて、判別的部分グラフを得る。次にこの判別的部分グラフを用いて、検定グラフストリーム内のオブジェクトのクラスラベルを推論することができる。例えば上述のウェブサーフィンのパターンを反映したオブジェクトを含む検定グラフストリームがストリーム・プロセッサにおいて受信される場合には、判別的部分グラフとそれらの関連付けられたクラスラベルとを含むメモリにアクセスして、着信オブジェクトに対応する部分グラフを見つけ出すことができる。着信オブジェクトが対応する部分グラフのクラスラベルが、そのオブジェクトに与えられる。この場合、クラスラベルは、そのオブジェクトが特定の本を購入しそうなユーザのパターンに対応することを示すことができる。
図1は、大規模グラフの一部を示す。この例では、ウェブグラフ100が示されている。しかしながら、大規模グラフは、通信ネットワーク、ソーシャル・ネットワーク等のグラフとすることができる。図1に示されるように、ウェブグラフ100は、複数のノードA−P及びエッジ(すなわちノード間の矢印)を含む。ウェブグラフ100は、例えば、10を超えるノード及び1013を超えるエッジを含むことがあるので、図1にはウェブグラフ100の一部しか示されていない。ウェブグラフ100のノードA−Pは、ウェブページを表わすことができ、ウェブグラフ100のエッジは、ウェブページ間のハイパーリングを表わすことができる。ウェブグラフ100のリンク構造は、様々なデータマイニング目的で利用することができる豊富な情報を保持する。例えば、マイニングを通じて識別されたウェブ閲覧パターンは、脅威をクラス化してテロリズムと戦うために政府が用いることもでき、又は、顧客が正に必要とするものを供給することによってより良い顧客との関係を確立するために会社が用いることもできる。
図2は、本発明の例示的な実施形態による、グラフデータストリーム内のオブジェクトをクラス化するための方法のフローチャートである。再び図1を参照すると、オブジェクトは、ノードA−Pとそれらのエッジとが一緒になったグループとすることができる。例えば、オブジェクトは、ノードA及びBをそれらの間の単一のエッジと共に含むことができ、又は、より多くのノードとそれらの間のエッジとを含むこともできる。
図2に示されるように、ストリーム・プロセッサは、ウェブグラフ100からデータの訓練ストリームを受信する(210)。ストリーム・プロセッサは、ニューヨーク州アーモンク(Armonk)のインターナショナル・ビジネス・マシーンズ・コーポレーションが提供するInfoSphere Streams(登録商標)(以前はSystem Sとして知られていた)のような実時間ストリーム処理プラットフォームを実行することができるコンピューティング環境とすることができる。InfoSphere Streams(商標)に関する詳細は、例えば、非特許文献1を含む種々のIBM(商標)の刊行物で提供される。InfoSphere Streams(商標)プラットフォームは、ストリーム処理言語(SPL:Stream Processing Language、以前はSPADEとして知られていた)と呼ばれる高水準プログラミング言語を用いる。SPADEは、非特許文献2で説明されている。SPLに関するさらなる詳細は、非特許文献3で説明されている。InforSphere Streams(商標)及びストリーム処理言語は、多数の演算ノードに及ぶことがある分散データストリーム処理アプリケーションをサポートする。ストリーム処理言語の宣言型言語は、一例において、これらの多重オペレータ・アプリケーションをプログラムするために用いられる。ストリーム処理言語のストリーム中心の設計は、基本ビルディングブロックがストリームである言語を含意する。ストリーム処理言語のオペレータベースのプログラミングは、あるアプリケーションがその実行のために設計された演算を供給するのに必要とされる可能な限り最小限のビルディングブロックに基づいて、アプリケーションを設計することに焦点を合わせている。
ステップ210において受信されたグラフデータの訓練ストリームは、複数のオブジェクトをこれらのオブジェクトに関連付けられたクラスラベルと共に含む。ストリーム内の個々のオブジェクトは、グラフG..G...で示すことができる。各グラフGは、{1...m}から引き出されるクラスラベルCに関連付けられる。ウェブグラフは、ノード集合Nにわたって定義することができる。ストリーム内のデータは、順々にストリーム・プロセッサに到着する。例えば、データは、〈GraphId〉〈Edge〉〈ClassLabel〉のように到着することができる。ストリーム内で、クラスラベルは常にグラフ識別子に添付されていると仮定する。グラフGのエッジは、ストリーム内で順序が乱れて出現することがある。これは、ソーシャル・ネットワーク及び通信ネットワークのような多くのアプリケーションでは一般によくあることであり、その理由は、異なるエッジを横断してメッセージ及び通信の順序を制御することができないからである。変数〈Edge〉の値は、その2つの構成ノードにより定義される。
ストリーム内のデータのうちの幾つかの例として、ネットワーク侵入アプリケーションを考えると、この場合、識別子は侵入が生じたタイムスタンプに対応する。侵入は、部分グラフに対応するエッジ集合を誘導することができる。したがって、グラフの識別子は、タイムスタンプとすることができる。エッジは、攻撃者と犠牲者の送信元及び宛先のIPアドレスを含むことができる。クラスラベルは、侵入のタイプとすることができる(例えば「サービス妨害」攻撃)。
グラフデータの訓練ストリームの受信に応答して、訓練ストリーム内の判別エッジ集合(例えば、部分グラフ)がクラスラベルについて決定される(220)。このステップにおいて、最初に相関エッジ集合を見つけ出し、次にこれらにクラスラベルを与えて、判別エッジ集合を得る。例えば、対応する共起エッジ(グループとして)の存在が統計的に期待されるよりはるかに高い部分グラフが、最初に見つけ出される。そのような部分グラフは、以下の議論において、有意な部分グラフと呼ばれる。次に、特定のクラスに対して判別的な部分グラフが決定される。
相関エッジ集合を見つけ出し、これにクラスラベルを与えて判別エッジ集合を得る方法を検討する前に、幾つかの関連した注釈及び定義をここで紹介する。
有意な部分グラフPは、その構成エッジの相対度数に関して有意な統計的存在を有するものとして定義される。これは、エッジ・コヒーレンスと呼ばれる。この概念は、形式上、以下のように定義される。f∩(P)を、G...Gのうち、Pの全てのエッジが存在するグラフの分率とする。f∪(P)を、Pのエッジのうちの少なくとも1つ又は複数が存在するグラフの分率とする。すると、部分グラフPのエッジ・コヒーレンスC(P)は、f∩(P)/f∪(P)で表される。
このエッジ・コヒーレンスの定義は、部分グラフパターンの絶対存在ではなく、むしろ相対存在に焦点を合わせたものである。このことは、有意な部分グラフだけが見つけ出されることを保証する。このことは、度数は高いが有意性は低い多数の関連性のないパターンは考慮されないこともまた保証する。
クラスラベルr∈{1...m}に関するエッジ集合Pのクラス信頼度は、以下のように定義される。部分グラフPを含む全てのグラフの中で、s(P,r)を、クラスラベルrに属する分率とする。この分率は、クラスrに関するパターンPの信頼度である。
次いで、特定の部分グラフについての優勢クラス信頼度は、以下のように定義される。優勢クラス信頼度DI(P)又は部分グラフPは、全ての異なるクラス{1...m}にわたる最大クラス信頼度として定義される。特定の検定インスタンスについてのDI(P)の有意に大きい値は、そのパターンPがクラス化にとって非常に関連性のあるものであること、及び、対応する優勢クラスラベルがその検定インスタンスのラベルの魅力的な候補となり得ることを示している。
絶対存在の点で興味深い、特定のクラスについて判別的な部分グラフを決定するために、エッジ・コヒーレンス及びクラス興味率(class interest ratio)に対する閾値パラメータに対応する、パラメータ対(α,θ)も用いられる。部分グラフPは、以下の2つのエッジ・コヒーレンス及びクラス判別の制約条件を満たすならば、(α,θ)有意であるといわれる。部分グラフPのエッジ・コヒーレンスC(P)が少なくともαであること。すなわち、C(P)α。優勢クラス信頼度DI(P)が少なくともθである。すなわち、DI(P)θ。
相関エッジ集合を見つけ出すために、本発明の例示的な実施形態によれば、2Dハッシュ圧縮技術が用いられる。この技術は、クラス化に最も関連した判別的部分グラフを決定することができる連続的に更新可能なデータ構造を使用する。このデータ構造は小さいので、主メモリ内で維持することができ、着信データストリームが到着している間の任意の時点で用いることができる。
議論を簡単にするために、データ構造は、グラフデータセットのN行n列の表形式の二進表現とすることができる。N行は、データ内に存在するN個の異なるグラフに対応する。列は、データ内の異なるエッジを表わすが、これは1対1写像ではない。nの選択は、主メモリ内で表を保持するのに利用可能な空間に依存する。2つの2Dハッシュ圧縮技術を、本発明に従って用いることができる。1つは、min−hash圧縮を行に対してのみ用いる技術であり、各列は相異なるエッジに対応する。もう1つは、従来のハッシュ関数を用いることにより複数の列を単一の列にマッピングし、次に、min−hash圧縮を行に対して用いる技術である。
ここで第1の技術について論じる。
このmin−hashスキームの主たる思想は、データ内の行に対するソート順序を用いることにより、異なる列上の値における共起性を決定することである。このソート順序を作り出すために、単一の一様乱数ハッシュ値が、データ内の各行について生成される。データ内の全ての列は、このハッシュ値の順序によりソートされる。このような手法の結果として、各列は全く同じランダムな順序でソートされることになることに留意されたい。それゆえ、以下のことを観察することができる。
Pエッジの集合を考える。P’を、Pに対応する表内の列とする。列は、ハッシュ値によりソートされた順序で検査される。1の値を有するP’内の各列についての第1の行のインデックスが同じである確率は、エッジ・コヒーレンスC(P)に等しい。
P’内の列のうちのいずれかの中に1を有する第1の行のインデックスは、P’のエッジのうちのいずれかが存在する第1の行でもあるので、上記の観察は検証が簡単である。この行が、関連した列にわたって全て1の値を含む確率が、エッジ・コヒーレンス確率C(P)である。
この手法を用いて、エッジ・コヒーレンス確率の標本推定を構築することができる。例えば、k個の異なるハッシュ値を用いてソート順序を構築することができ、上記の確率は、全ての値が1であるk個の標本の分率を計算することによって推定することができる。
ここで、完全な表の使用を伴う第1の技術の実施を検討する。この場合、表がE個の列を有すると仮定すると、E=N・(N−1)/2が、データ内の可能な相異なるエッジの数である。min−hashインデックスを用いて、根底にあるデータのトランザクション表現を構築する。これを行うために、最初にk個の異なるハッシュ値を用いたmin−hash手法を適用し、サイズk×Eの表を作成する。ここで、このmin−hash表現からの特定の標本を検査する。r...rを、対応する列内に1を有する第1の行の行インデックスとする。次に、集合r...rを、min−hashインデックス値が同じであるグループに分割する。したがって、r...rがQ...Qに分割されたならば、各r∈Qは同じ値を有する(一定のjについて)。各分割Qについて、対応する列のインデックスを含むカテゴリ的トランザクションを作成する。例えば、Q={r,r23,r45,r71}ならば、トランザクションT={2,23,45,71}を作成する。最後に、等インデックス分割Q...Qに対応するトランザクションT...Tを構築する。各インデックス集合は対応するトランザクション集合を作成するので、この標本抽出プロセスをk回繰り返してk個の異なるインデックス集合を作成することにより、推定プロセスの精度を高めることができる。例えば、各インデックス集合について、対応するトランザクション集合を全トランザクション集合Tに加える。以下の観察がなされる。
Tを、min−hashインデックス集合から構築されたトランザクションとする。すると、エッジ集合Pのコヒーレンス確率C(P)は、トランザクション集合TにおけるP’の絶対台(absolute support)をkで割ったものとして推定することができる。高いコヒーレンス確率C(P)を有するエッジが、相関エッジ集合であると決定される。
この観察は、従来の観察の直接的拡張である。なぜなら、列集合P’は、T...T内のトランザクションを、P’内のエッジのmin−hashインデックスが、該トランザクションがそこから構築された対応するmin−hash標本内で同一であるときかつそのときに限り、支持するからである。
特定のグラフ内のエッジの存在を表わす表の行は、所与の時点で利用可能でないことがあることに留意されたい。なぜなら、所与のグラフについてのエッジは、ストリームシナリオにおいては連続的に到着しない場合があるからである。さらに、データは典型的に非常に疎であり、表内の大部分の値は0である。したがって、本発明は、疎な無順序のエッジと共に機能することができる新規な更新プロセスを使用する。このプロセスの例は、図3のアルゴリズム300によって示される。
図3に示されるように、ストリーム内の各々の着信グラフエッジe∈G(グラフ識別子Id(G)を有する)について、k個のランダムハッシュ値h(1,Id(G))...h(k,Id(G))が生成される。i番目のハッシュ値h(i,Id(G))は、pで表される。ハッシュ関数h(・,・)は、入力としてId(G)を用いるので、ストリーム内の後の段階において同じグラフGからのエッジに遭遇したときに、同じランダムハッシュ値を生成することができる。ランダムハッシュ値を生成するために、h(・,・)の2つの引数に対応する文字列の連接に対して、標準的なハッシュ関数を用いることができる。
Lを、ストリーム内で今までに遭遇した相異なるエッジの数の実行中推定(running estimate)とする。アルゴリズム300は、k・L個の実行中最小ハッシュ値の集合Vを、これらの最小値が得られたk・L個の対応するグラフ識別子の集合Iと共に維持する。Lの値は、データストリームの進行中に、ますます多くの相異なるエッジがストリームによって受信されるので、増加する。V内の各エントリは(e,MinHashValue)の形式であり、I内の各エントリは(e,GraphIdentifier)の形式である。データストリーム内で今までに遭遇した各々の相異なるエッジについて、V及びIの両方の中にこのようなk個のエントリが存在する。各エッジeについて、V内のi番目の最小ハッシュ標本は、eを含む全グラフG上でのh(i,Id(G))の最小値を表わす。特定のエッジeについてのI内のk個のエントリは、V内のこれら最小ハッシュ値が得られたk個のグラフ識別子を表わす。
ストリーム内のエッジは、順序が乱れて出現することがあるので、アルゴリズム300の適用により、各エッジは、ストリーム内で自身に対応するグラフ識別子に関連付けられる。この場合、各々の着信エッジe及びグラフ識別子Id(G)について、集合V及びIは、アルゴリズム300によって以下のように更新される。k個の異なるハッシュ値p=h(1,Id(G))...p=h(k,Id(G))を生成する。今までにエッジeに遭遇していない場合には、その情報はV及びI内に存在しないことになる。そのような場合には、Lの値を増やし、eについての対応するエントリをV及びIの中にそれぞれ含める。具体的には、この新たに追跡されるエッジについてのV内のk個のハッシュ値が、最近生成されたk個のハッシュ値p...pに設定される。したがって、エントリ(e,p)...(e,p)が、Vの中に含められる。これに対応して、エントリ(e,Id(G))...(e,Id(G))が、Iに追加される。一方、ストリーム内で既にエッジeに遭遇している場合には、対応するエントリ(e,MinHashValue)...(e,MinHashValue)がV内で検査される。新たに生成されたハッシュ値pがMinHashValueより小さい場合には、(e,MinHashValue)は、(e,p)で置き換えられる。さらに、I内の対応するエントリは、(e,Id(G))で置き換えられる。
図4は、各々の着信エッジについてmin−hashインデックスを更新するプロセスを示す、図3のアルゴリズム300の一部を反映したフローチャートである。特に、図4は、各々の着信グラフストリームについて要求されるステップを示す。ステップ410において、各行についてk個のランダムハッシュ値が生成され、この行は、本質的にはストリーム内の着信グラフである。k個のランダムハッシュ値は、図3においては、p...pとも称される。ステップ420において、各行のmin−hashインデックスが更新される。ステップ430において、各行についてのmin−hash値が更新される。これらの更新は、生成されたmin−hash値が現行の値より小さい場合にのみ行われる。この生成ステップは、図3の最も内側のループにより行われる。
以上のように、図3及び図4を参照して検討したプロセスは、着信グラフの集計表現を連続的に維持する。これらの集計統計量は主メモリ内で維持されるので、任意の時点でこれらを用いて、コヒーレントなエッジパターン、すなわち相関エッジ集合を決定することができる。
図3のアルゴリズム300の使用に伴う主定数は、集計統計量V及びIがサイズO(k・L)を有することであり、ここでLは今までに遭遇した相異なるエッジの数であることに留意されたい。ここでの問題点は、本開示において検討されている大規模グラフ仮説のため、Lの値が非常に大きくなることがあるという点である。そのような大きい集計は、このシナリオでの効率的な更新プロセスのために必要とされるディスク上又は主メモリ内に容易に維持することができないことがある。したがって、図3のmin−hash行圧縮アルゴリズム300は、図5のアルゴリズム500により示されるプロセスで補完される。図5に示されるプロセスは、第2のmin−hash技術であり、データ構造のサイズを縮小するために列圧縮を用いる。この結果として、行及び列が同時に圧縮されるが、図5における列圧縮は、図3とは異なるやり方で実行される。
図5のアルゴリズム500は、図3のアルゴリズム300と同様であるが、但し、データ内の各エッジは、最初に一様乱数ハッシュ関数を用いて範囲[1,n]内の整数にマッピングされ、次に図3のアルゴリズム300のステップが適用される。したがって、この場合には、実際のエッジ上でパターンを決定する代わりに、範囲[1,n]内の整数上でパターンが決定される。さらに、図5のアルゴリズム500は、列圧縮サイズnを入力として用い、これを用いて各エッジを[1,n]内の整数上にマッピングするという点で、図3のアルゴリズムとは異なる。アルゴリズム300においては、このマッピングは、一様ハッシュ関数を使用して行われる。エッジの文字列表現は、2つの端部のノードラベルを連接することにより構築される。次いで、ハッシュ関数がこの文字列表現に適用される。
nの値は、記憶装置の要件に基づいて選ぶことができ、典型的には、相異なるエッジの数よりもずっと小さくされる。nの選択は、記憶装置の大きさと精度との間のトレードオフに起因する。複数のエッジを同じ整数にマッピングすることができるので、この手法の結果として計算精度のある程度の低下がさらに生じることがある。しかしながら、列圧縮スキームは、質の低下が比較的小さい状態で、空間の要求条件を顕著に小さくする。
列圧縮を用いて各々の着信グラフについてのハッシュインデックスを更新するための方法を示す、図5のアルゴリズム500の一部を反映したフローチャートが図6に示される。このフローチャートは、図4に示されるものと同様であるが、但し、エッジは、より制限されたハッシュ値の集合にマッピングされている。これは、全ての相異なるエッジについてのハッシュ値を追跡するには、相異なるエッジの数が多すぎる過ぎることがあるという理由で行われる。図6に示されるように、ステップ610において、エッジは、従来のハッシュ関数により、擬似列の制限された集合に対してマッピングされる。その後のステップは、図4のステップと同様である。ステップ620において、異なる行についてのハッシュ値が生成される。ステップ630及びステップ640において、生成されたmin−hash値が今までにストリーム内で遭遇した現行の値より小さければ、現行のmin−hashインデックス及び値がそれぞれ生成される。
クラスラベルもまた、min−hashスキームの実行中に追跡される。先に述べたように、グラフのクラスラベルは、各グラフGについての識別子Id(G)に添付されていると仮定する。したがって、クラスラベルは、グラフ識別子と共に追跡される。具体的には、グラフ識別子の最後の部分が、そのグラフのクラスラベルである。min−hashインデックスはグラフ識別子を含むので、暗黙的にクラスラベルも含む。
これらのクラスラベルを用いて、データの圧縮された集計から判別エッジ集合を計算する。これは、特定のクラスラベルと高度に相関するmin−hashインデックス内の頻度の高いエッジのパターン(換言すれば、コヒーレントな又は相関エッジパターン)を決定することにより達成される。具体的には、min−hash相内で決定された高頻度パターンに関係した優勢クラスラベルが決定され、クラスの存在がユーザ定義閾値を上回る全てのパターンの集合が保存される。
ここで、図2のステップ230を参照すると、ストリーム・プロセッサは、グラフデータの着信ストリームを受信する。このストリームは訓練ストリームと同様であるが、但し、ストリーム内のオブジェクトにはまだクラスラベルが割り当てられていないことに留意されたい。このようなストリームの例は、侵入の性質はまだ決定されていないが侵入に対応する部分グラフは既に受信された、侵入アプリケーションとすることができる。グラフデータの着信ストリームを入力として用いて、クラスラベルが着信データストリーム内のオブジェクトに関連付けられる(240)。これは、ステップ220で決定された判別エッジ集合を用いることによって行われる。具体的には、訓練相において決定された判別的部分グラフに対応するオブジェクトを着信グラフ内で見つけ出す。次に、見つけ出されたオブジェクトに対して、その単独の対応する部分グラフのクラスラベル又はその対応する部分グラフの多数派のクラスラベルが割り当てられる。
これらのオブジェクト−クラスラベル対は、次にストリーム・プロセッサから出力され、情報リポジトリ内に格納される(250)。これらの対を処理して、多様なアプリケーションのための有用な情報を提供することができる。特に、ユーザは、着信データストリームの中から見つけ出すべき特定のパターンを定義することができる(260)。例えば、侵入検出アプリケーションでは、ユーザは、侵入攻撃の性質(例えば、それが「サービス妨害」攻撃であるか否か)に関して知りたいと望むかもしれない。オブジェクト−クラスラベル対は、着信ストリーム内のクラスを「サービス妨害」とラベル付けすることにより、そのような攻撃の性質に関する情報を提供することができる。
ここで、本発明の例示的な実施形態を、図7の装置701を参照して説明する。装置701はコンピュータとすることができ、これは、メモリ702、ディスク703、及び中央処理ユニット(CPU)704などのプロセッサを含む。
本明細書で用いられる「プロセッサ」という用語は、図2を参照して上で検討したストリーム・プロセッサのような、任意の処理デバイス、例えばCPU及び/又は他の形態の処理回路を含むものなどを含むことを意図することを理解されたい。さらに、「プロセッサ」という用語は、複数の個別のプロセッサを指すことができる。「メモリ」という用語は、プロセッサ又はCPUに関連付けられたメモリ、例えば、RAM、ROM、固定メモリ・デバイス(例えば、ハード・ドライブ)、取り外し可能なメモリ・デバイス(例えば、ディスケット)、フラッシュ・メモリなどを含むことが意図される。さらに、本明細書で用いられる「入力/出力インターフェース」という語句は、例えば、処理ユニットにデータを入力するための1つ又は複数の機構(例えば、マウス)、及び、処理ユニットに関連付けられた結果を提供するための1つ又は複数の機構(例えば、プリンタ)を含むことが意図される。
図7に示されるように、装置701が入力インターフェースを介して訓練ストリームのようなグラフデータストリームを受信すると、これを、図2−図6を参照して上で説明したメモリ702内の2Dデータ構造内に格納することができる。グラフデータストリームは、任意のタイプの大規模グラムから到来したものとすることができる。着信グラフデータをCPU704で処理して、例えば図2−図6を参照して上で説明した方法で判別エッジ集合を決定する。判別エッジ集合は、それらのクラスラベルと共にディスク703内に格納することができる。装置701が入力インターフェースを介して非訓練/検定グラフデータストリームを受信したときには、この入力データストリームはメモリ702内に置くことができる。次いで、ディスク703内に格納された判別エッジ集合にアクセスして、非訓練/検定グラフデータストリーム内のオブジェクトに関連付けられるクラスラベルを、図2−図6を参照して説明した方法で決定することができる。次いで、この決定に基づいたオブジェクト−クラスラベル対を、装置701の出力インターフェースを通じて情報リポジトリ705に出力することができる。情報リポジトリ705は、オブジェクト−クラスラベル対が格納されるディスク記憶装置の形態とすることができる。オブジェクト−クラスラベル対は、将来的な処理のために任意の種類のデータベース内に格納することができる。
非訓練グラフデータストリーム内の所望のパターンを識別するために、オブジェクト−クラスラベル対は、情報リポジトリ705から装置701又は別のコンピューティング装置によってアクセスすることができる。次に、オブジェクト−クラスラベル対を解析して、所望のパターンを決定することができる。例えば、特定のウェブサイトを訪問したときのユーザの挙動を指し示すオブジェクト−クラスラベル対を見つけ出すことができる。幾つかの実施形態においては、パターン識別を実施することを求める要求710、例えばユーザから入力される検索要求を、装置701に入力することができる。幾つかの実施形態においては、要求に対する応答720が装置701から出力される。
当業者により認識されるように、本発明の態様は、システム、方法又はコンピュータ・プログラム製品として具体化することができる。したがって、本発明の態様は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態(ファームウェア、常駐ソフトウェア、マイクロコード等を含む)、又はソフトウェアの態様とハードウェアの態様とを組み合わせた実施形態の形態をとることができ、これらは全て本明細書において一般的に「回路」、「モジュール」又は「システム」と呼ばれることがある。さらに、本発明の態様は、具体化されたコンピュータ可読プログラム・コードをその中に有する1つ又は複数のコンピュータ可読媒体内に具体化されたコンピュータ・プログラム製品の形態をとることができる。
1つ又は複数のコンピュータ可読媒体のあらゆる組み合わせを用いることができる。コンピュータ可読媒体は、コンピュータ可読信号媒体であってもよく、又はコンピュータ可読ストレージ媒体であってもよい。コンピュータ可読ストレージ媒体は、例えば、電子的、磁気的、光学的、電磁的、赤外線若しくは半導体のシステム、装置若しくはデバイス、又はそれらのいずれかの適切な組み合わせとすることができるがこれらに限定されない。コンピュータ可読ストレージ媒体のより具体的な例(非網羅的なリスト)は、以下もの、即ち、1つ又は複数のワイヤを有する電気的接続、ポータブル・コンピュータ・ディスケット、ハード・ディスク、RAM、ROM、消去可能なプログラム可能読み取り専用メモリ(EPROM又はフラッシュ・メモリ)、光ファイバ、ポータブル・コンパクト・ディスク型読み取り専用メモリ(CD−ROM)、光ストレージ・デバイス、磁気ストレージ・デバイス、又はそれらのいずれかの適切な組み合わせを含む。本文書の文脈において、コンピュータ可読ストレージ媒体は、命令実行システム、装置若しくはデバイスによって用いられるプログラム又はそれらに関連して用いられるプログラムを収容又は格納することができる、いずれかの有形媒体とすることができる。
コンピュータ可読信号媒体は、具体化されたコンピュータ可読プログラム・コードを例えばベースバンド内に又は搬送波の一部としてその中に有する、伝搬データ信号を含むことができる。このような伝搬信号は、電磁的形態、光学的形態又はこれらのいずれかの適切な組み合わせを含む種々の形態のうちのいずれの形態をとることもできるが、それらに限定されない。コンピュータ可読信号媒体は、コンピュータ可読ストレージ媒体ではなく、且つ、命令実行システム、装置若しくはデバイスによって用いられるプログラム又はそれらに関連して用いられるプログラムを伝達、伝搬又伝送することができる、いずれかのコンピュータ可読媒体とすることができる。
コンピュータ可読媒体上に具体化されたプログラム・コードは、無線、有線、光ファイバケーブル、RF等、又はこれらのいずれかの適切な組み合わせを含むがそれらに限定されない、いずれかの適切な媒体を用いて送信することができる。
本発明の態様に関する動作を遂行するためのコンピュータ・プログラム・コードは、Java、Smalltalk、C++等のようなオブジェクト指向プログラミング言語、及び「C」プログラミング言語又は同様のプログラミング言語のような従来の手続き型プログラミング言語を含む、1つ又は複数のプログラミング言語のいずれかの組み合わせで記述することができる。プログラム・コードは、全体がユーザのコンピュータ上で実行される場合もあり、独立型ソフトウェア・パッケージとして一部がユーザのコンピュータ上で実行される場合もあり、一部がユーザのコンピュータ上で実行され、一部が遠隔コンピュータ上で実行される場合もあり、又は全体が遠隔コンピュータ若しくはサーバ上で実行される場合もある。後者のシナリオの場合、遠隔コンピュータは、ローカル・エリア・ネットワーク(LAN)又は広域ネットワーク(WAN)を含むいずれかのタイプのネットワークを通じてユーザのコンピュータに接続される場合もあり、又は外部コンピュータへの接続がなされる場合もある(例えば、インターネット・サービス・プロバイダを用いたインターネットを通じて)。
本発明の態様は、本発明の実施形態による方法、装置(システム)及びコンピュータ・プログラムのフローチャート図及び/又はブロック図を参照しながら説明される。フローチャート図及び/又はブロック図の各ブロック、並びにフローチャート図及び/又はブロック図内のブロックの組み合わせは、コンピュータ・プログラム命令によって実施することができることが理解される。これらのコンピュータ・プログラム命令を、機械を製造するために汎用コンピュータ、専用コンピュータ、又は他のプログラム可能データ処理装置のプロセッサに提供し、これにより、コンピュータ又は他のプログラム可能データ処理装置のプロセッサによって実行される命令がフローチャート及び/又はブロック図の1つ又は複数のブロックにおいて指定された機能/動作を実施するための手段を作り出すようにさせることができる。
これらのコンピュータ・プログラム命令を、コンピュータ、他のプログラム可能データ処理装置又は他のデバイスを特定の方式で機能させるように指示することができるコンピュータ可読媒体内に格納し、これにより、そのコンピュータ可読媒体内に格納された命令がフローチャート及び/又はブロック図の1つ又は複数のブロックにおいて指定された機能/動作を実施する命令を含む製品を製造するようにさせることもできる。
コンピュータ・プログラム命令をコンピュータ、他のプログラム可能データ処理装置、又は他のデバイス上にロードして、一連の動作ステップをコンピュータ、他のプログラム可能装置又は他のデバイス上で実行させて、コンピュータ実施プロセスを生成し、これにより、コンピュータ又は他のプログラム可能装置上で実行される命令がフローチャート及び/又はブロック図の1つ又は複数のブロックにおいて指定された機能/動作を実施するためのプロセスを提供するようにさせることもできる。
図面内のフローチャート及びブロック図は、本発明の種々の実施形態によるシステム、方法及びコンピュータ・プログラムの可能な実装のアーキテクチャ、機能及び動作を示す。この点に関して、フローチャート又はブロック図内の各ブロックは、指定された論理機能を実装するための1つ又は複数の実行可能な命令を含むモジュール、セグメント又はコードの一部を表すことができる。幾つかの代替的な実装において、ブロック内に記された機能は、図面内に記された順序とは異なる順序で行われることもあることにも留意されたい。例えば、連続して示された2つのブロックが実際には実質的に同時に実行されることもあり、又は、それらのブロックは、関与する機能に応じて、ときには逆順で実行されることもある。ブロック図及び/又はフローチャート図の各ブロック、並びにブロック図及び/又はフローチャート図内のブロックの組み合わせは、指定された機能又は動作を実行する専用ハードウェアベースのシステム、又は専用ハードウェアとコンピュータ命令との組み合わせによって実装することができることにも留意されたい。
本明細書において用いられる用語は、特定の実施形態を説明することのみを目的とするものであり、本発明を限定することを意図していない。本明細書で用いられる場合、単数形の「1つの(a、an)」及び「その(the)」は、文脈が明確に他の場合を指示していない限り、複数形をも含むことを意図している。「含む(comprises)」及び/又は「含んでいる(comprising)」という用語は、本明細書において用いられる場合、述べられた特徴、整数、ステップ、動作、要素及び/又はコンポーネントの存在を特定するが、1つ又は複数の他の特徴、整数、ステップ、操作、要素、コンポーネント及び/又はそれらの群の存在又は付加を排除するものではないこともさらに理解されよう。
下記の特許請求の範囲における全ての「手段又はステップと機能との組合せ(ミーンズ又はステップ・プラス・ファンクション)」要素の対応する構造、材料、動作及び均等物は、明確に特許請求される他の特許請求された要素と組み合わされてその機能を実施するためのいかなる構造、材料又は動作をも含むことを意図している。本発明の記載は、例示及び説明の目的で提示されたが、網羅的であることを意図するものでも、開示された形態の発明に限定することを意図するものでもない。当業者には、本発明の範囲及び真意から逸脱しない多くの修正及び変形が明らかであろう。実施形態は、本発明の原理及び実際の適用を最も良く説明し、且つ、当業者が企図される特定の使用に適した種々の修正を伴う種々の実施形態について本発明を理解できるように、選択され、説明された。
100:ウェブグラフ
701:装置

Claims (16)

  1. グラフデータストリーム内のオブジェクトをクラス化するための方法であって、前記グラフデータストリームは、エレメントを表わす複数のノードと、前記エレメント間の接続を表わすエッジとを含み、前記データストリーム内のオブジェクトは、ノードとそれらノード間のエッジとが一緒になったグループであり、前記方法は、
    グラフデータの訓練ストリームを受信するステップであって、前記訓練ストリームは、複数のオブジェクトを前記オブジェクトの各々に関連付けられたクラスラベルと共に含むものである、ステップと、
    前記クラスラベルについて前記訓練ストリーム内の判別エッジ集合を決定するステップであって、前記判別エッジ集合は、所与のクラスラベルを有するエッジを含むオブジェクトを示すものである、第1の決定ステップと、
    前記グラフデータの着信データストリームを受信するステップであって、クラスラベルがまだ、前記着信データストリーム内の前記オブジェクトに割り当てられていない、ステップと、
    前記判別エッジ集合に基づいて、前記着信データストリーム内の前記オブジェクトに関連付けられるクラスラベルを決定する、第2の決定ステップと、
    前記第2の決定ステップに基づオブジェクトクラスラベル対を情報リポジトリに出力するステップと
    を含み、
    前記方法プロセッサを用いて実行さ
    前記第1の決定ステップは、
    前記訓練ストリームの第1の着信エッジを2次元(2D)データ構造内に配置するステップであって、前記2Dデータ構造の行が、前記訓練ストリームの異なるグラフに対応し、前記2Dデータ構造の列が、前記訓練ストリームの異なるエッジを表す、ステップと、
    前記2Dデータ構造の各々の行及び列内の前記エッジについて、min−hash関数を用いて生成されるハッシュ値を生成するステップと、
    相関エッジ集合を識別するステップであって、相関エッジ集合は、前記訓練データ内の特定のオブジェクトに関連したエッジの集合であり、同じmin−hash値を有するエッジの集合が相関エッジ集合である、識別ステップと、
    クラスラベルを前記相関エッジ集合に割り当てて、前記判別エッジ集合を得るステップであって、特定の相関エッジ集合に割り当てられるクラスラベルが、前記相関エッジ集合の優勢クラスラベルである、割当ステップと、
    を含む、方法。
  2. 異なるオブジェクトの前記エッジが、前記グラフデータ内に順序が乱れて出現する、請求項1に記載の方法。
  3. 前記第1の決定ステップが、
    前記判別エッジ集合をそれらの所与のクラスラベルと共にデータセット内に格納するステップであって、前記データセットが、ディスク上又は主コンピュータメモリ内に格納される、格納ステップ含む、請求項1に記載の方法。
  4. 前記2Dデータ構造が、前記主コンピュータメモリ内に格納される、請求項3に記載の方法。
  5. 前記訓練ストリームの第2の着信エッジを受信するステップと、
    前記2Dデータ構造の各々の行及び列内の前記エッジについて、新たなハッシュ値を生成するステップと、
    前記新たなハッシュ値に基づいて、前記2Dデータ構造のインデックス及び値を更新するステップと、
    前記更新された2Dデータ構造を用いて、前記識別ステップ、前記割当ステップ、及び前記格納ステップを繰り返すステップと
    をさらに含む、請求項3に記載の方法。
  6. グラフデータストリーム内のオブジェクトをクラス化するための方法であって、前記グラフデータストリームは、エレメントを表わす複数のノードと、前記エレメント間の接続を表わすエッジとを含み、前記データストリーム内のオブジェクトは、ノードとそれらノード間のエッジとが一緒になったグループであり、前記方法は、
    グラフデータの訓練ストリームを受信するステップであって、前記訓練ストリームは、複数のオブジェクトを前記オブジェクトの各々に関連付けられたクラスラベルと共に含むものである、ステップと、
    前記クラスラベルについて前記訓練ストリーム内の判別エッジ集合を決定するステップであって、前記判別エッジ集合は、所与のクラスラベルを有するエッジを含むオブジェクトを示すものである、第1の決定ステップと、
    前記グラフデータの着信データストリームを受信するステップであって、クラスラベルがまだ、前記着信データストリーム内の前記オブジェクトに割り当てられていない、ステップと、
    前記判別エッジ集合に基づいて、前記着信データストリーム内の前記オブジェクトに関連付けられるクラスラベルを決定する、第2の決定ステップと、
    前記第2の決定ステップに基づくオブジェクトとクラスラベルの対を情報リポジトリに出力するステップと
    を含み、
    前記方法はプロセッサを用いて実行され、
    前記第1の決定ステップ
    前記訓練ストリームの第1の着信エッジを2Dデータ構造内に配置するステップであって、前記2Dデータ構造の行が、前記訓練ストリームの異なるグラフに対応し、前記2Dデータ構造の列が、前記訓練ストリームの異なるエッジを表す、ステップと、
    前記2Dデータ構造の列を、第1のハッシュ関数を用いて擬似列にマッピングするステップであって、各々の擬似列がその中にマッピングされた複数の列を含む、ステップと、
    前記2Dデータ構造の各々の行及び擬似列内の前記エッジについて、min−hash関数を用いて生成されるハッシュ値を生成するステップと、
    相関エッジ集合を識別するステップであって、相関エッジ集合は、前記訓練データ内の特定のオブジェクトに関連したエッジの集合であり、同じmin−hash値を有するエッジの集合が相関エッジ集合である、識別ステップと、
    クラスラベルを前記相関エッジ集合に割り当てて前記判別エッジ集合を得るステップであって、特定の相関エッジ集合に割り当てられるクラスラベルが、前記相関エッジ集合の優勢クラスラベルである、割当ステップと、
    前記判別エッジ集合をそれらの所与のクラスラベルと共にデータセット内に格納するステップであって、前記データセットが、ディスク上又は主コンピュータメモリ内に格納される、格納ステップと
    を含む方法。
  7. 前記2Dデータ構造が、前記主コンピュータメモリ内に格納される、請求項6に記載の方法。
  8. 前記訓練ストリームの第2の着信エッジを受信するステップと、
    前前記第2の着信エッジが配置された前記2Dデータ構造の列を、前記第1のハッシュ関数を用いて擬似列にマッピングするステップと、
    前記2Dデータ構造の各々の行及び擬似列内の前記エッジについて、新たなハッシュ値を生成するステップと、
    前記新たなハッシュ値に基づいて、前記2Dデータ構造のインデックス及び値を更新するステップと、
    前記更新された2Dデータ構造を用いて、前記識別ステップ、前記割当ステップ、及び前記格納ステップを繰り返すステップと
    をさらに含む、請求項6に記載の方法。
  9. 前記第2の決定ステップが、
    前記着信データストリーム内の特定のオブジェクトについて、(a)前記クラスラベルについての前記訓練ストリーム内の前記判別エッジ集合が格納されたメモリにアクセスし、(b)前記オブジェクトに対応する判別エッジ集合を見つけ出すステップと、
    これらの前記判別エッジ集合の優勢クラスラベルを前記オブジェクトのクラスラベルとして割り当てるステップと
    を含む、請求項1に記載の方法。
  10. 前記着信データストリーム内のユーザ定義パターンを見つけ出すことを求める要求を受け取るステップと、
    前記ユーザ定義パターンのパラメータに対応する、前記情報リポジトリ内に格納されたオブジェクトクラスラベル対を検索するステップと、
    検索結果をユーザに表示するステップと
    をさらに含む、請求項1に記載の方法。
  11. 前記ユーザ定義パターンが、ソーシャル・ネットワークにおける特定の時間窓の中でのユーザの通信パターン、ウェブグラフのユーザが特定のウェブページに入るときの閲覧パターン、又は通信ネットワーク上の侵入トラフィックを含む、請求項10に記載の方法。
  12. 前記グラフデータが、ウェブグラフ、ソーシャル・ネットワーク又は通信ネットワークから提供される、請求項1に記載の方法。
  13. 前記ウェブグラフのノードは、ユニフォーム・リソース・ロケータ(URL)アドレスを含み、前記ウェブグラフのエッジは、前記URLアドレス間のリンクを含み、前記ソーシャル・ネットワークのノードは、ユーザ識別子を含み、前記ソーシャル・ネットワークのエッジは、前記ユーザ識別子間のリンクを含み、又は、前記通信ネットワークのノードは、インターネット・プロトコル(IP)アドレスを含み、前記通信ネットワークのエッジは、前記IPアドレス間のリンクを含む、請求項12に記載の方法。
  14. グラフデータストリーム内のオブジェクトをクラス化するためのコンピュータ・プログラム製品であって、前記グラフデータストリームは、エレメントを表わす複数のノードと、前記エレメント間の接続を表わすエッジとを含み、前記データストリーム内のオブジェクトは、ノードとそれらノード間のエッジとが一緒になったグループであり、
    前記コンピュータ・プログラム製品は、コンピュータ可読プログラム・コードを有するコンピュータ可読な記憶媒体を備え、前記コンピュータ可読プログラム・コードは、
    グラフデータの訓練ストリームを受信するステップであって、前記訓練ストリームは、複数のオブジェクトを前記オブジェクトの各々に関連付けられたクラスラベルと共に含むものである、ステップと、
    前記クラスラベルについて前記訓練ストリーム内の判別エッジ集合を決定するステップであって、前記判別エッジ集合は、所与のクラスラベルを有するエッジを含むオブジェクトを指し示すものである、第1の決定ステップと、
    前記グラフデータの着信データストリームを受信するステップであって、前記着信データストリーム内の前記オブジェクトにはまだクラスラベルが割り当てられていない、ステップと、
    前記判別エッジ集合に基づいて、前記着信データストリーム内の前記オブジェクトに関連付けられるクラスラベルを決定する、第2の決定ステップと、
    前記第2の決定ステップに基づオブジェクトクラスラベル対を情報リポジトリに出力するステップと
    を含み、
    前記第1の決定ステップは、
    前記訓練ストリームの第1の着信エッジを2次元(2D)データ構造内に配置するステップであって、前記2Dデータ構造の行が、前記訓練ストリームの異なるグラフに対応し、前記2Dデータ構造の列が、前記訓練ストリームの異なるエッジを表す、ステップと、
    前記2Dデータ構造の各々の行及び列内の前記エッジについて、min−hash関数を用いて生成されるハッシュ値を生成するステップと、
    相関エッジ集合を識別するステップであって、相関エッジ集合は、前記訓練データ内の特定のオブジェクトに関連したエッジの集合であり、同じmin−hash値を有するエッジの集合が相関エッジ集合である、ステップと、
    クラスラベルを前記相関エッジ集合に割り当てて、前記判別エッジ集合を得るステップであって、特定の相関エッジ集合に割り当てられるクラスラベルが、前記相関エッジ集合の優勢クラスラベルである、ステップと、
    を含む、コンピュータ・プログラム製品
  15. 前記第1の決定ステップは、
    前記判別エッジ集合をそれらの所与のクラスラベルと共にデータセット内に格納するステップ含む、請求項14に記載のコンピュータ・プログラム製品
  16. 単一の一様乱数ハッシュ値が各行について生成され、総ての列が前記ハッシュ値の順序によりソートされる、請求項1に記載の方法。
JP2013525903A 2010-08-30 2011-03-30 グラフデータストリーム内のオブジェクトをクラス化するための方法 Active JP5596235B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/871,168 US8655805B2 (en) 2010-08-30 2010-08-30 Method for classification of objects in a graph data stream
US12/871,168 2010-08-30
PCT/US2011/030525 WO2012030411A1 (en) 2010-08-30 2011-03-30 Method for classification of objects in a graph data stream

Publications (3)

Publication Number Publication Date
JP2013543160A JP2013543160A (ja) 2013-11-28
JP2013543160A5 JP2013543160A5 (ja) 2014-08-07
JP5596235B2 true JP5596235B2 (ja) 2014-09-24

Family

ID=45698477

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013525903A Active JP5596235B2 (ja) 2010-08-30 2011-03-30 グラフデータストリーム内のオブジェクトをクラス化するための方法

Country Status (6)

Country Link
US (1) US8655805B2 (ja)
JP (1) JP5596235B2 (ja)
CN (1) CN103189836B (ja)
GB (1) GB2501170A (ja)
TW (1) TWI497325B (ja)
WO (1) WO2012030411A1 (ja)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140115010A1 (en) * 2012-10-18 2014-04-24 Google Inc. Propagating information through networks
US9164786B2 (en) 2013-04-30 2015-10-20 Splunk Inc. Determining performance states of parent components in a virtual-machine environment based on performance states of related child components during a time period
US8904389B2 (en) 2013-04-30 2014-12-02 Splunk Inc. Determining performance states of components in a virtual machine environment based on performance states of related subcomponents
US9142049B2 (en) * 2013-04-30 2015-09-22 Splunk Inc. Proactive monitoring tree providing distribution stream chart with branch overlay
US9495187B2 (en) 2013-04-30 2016-11-15 Splunk, Inc. Interactive, top-down presentation of the architecture and performance of a hypervisor environment
US8972992B2 (en) 2013-04-30 2015-03-03 Splunk Inc. Proactive monitoring tree with state distribution ring
US9015716B2 (en) 2013-04-30 2015-04-21 Splunk Inc. Proactive monitoring tree with node pinning for concurrent node comparisons
US9185007B2 (en) 2013-04-30 2015-11-10 Splunk Inc. Proactive monitoring tree with severity state sorting
CN104516995A (zh) * 2013-09-29 2015-04-15 华为技术有限公司 网络流图缩减方法和装置
US9886521B2 (en) * 2014-03-13 2018-02-06 International Business Machines Corporation Adaptive sampling schemes for clustering streaming graphs
US9767217B1 (en) * 2014-05-28 2017-09-19 Google Inc. Streaming graph computations in a distributed processing system
EP3268870A4 (en) * 2015-03-11 2018-12-05 Ayasdi, Inc. Systems and methods for predicting outcomes using a prediction learning model
US10255378B2 (en) 2015-03-18 2019-04-09 Adp, Llc Database structure for distributed key-value pair, document and graph models
CN105678323A (zh) * 2015-12-31 2016-06-15 中国银联股份有限公司 基于图的分析用户的方法和系统
US10754859B2 (en) 2016-10-28 2020-08-25 Microsoft Technology Licensing, Llc Encoding edges in graph databases
TWI611308B (zh) * 2016-11-03 2018-01-11 財團法人資訊工業策進會 網頁資料擷取裝置及其網頁資料擷取方法
US10536512B2 (en) * 2017-05-18 2020-01-14 International Business Machines Corporation Dynamic graph adaptation for stream processing over hybrid, physically disparate analytics platforms
US10628492B2 (en) 2017-07-20 2020-04-21 Microsoft Technology Licensing, Llc Distributed graph database writes
US10983997B2 (en) 2018-03-28 2021-04-20 Microsoft Technology Licensing, Llc Path query evaluation in graph databases
US11151165B2 (en) * 2018-08-30 2021-10-19 Microsoft Technology Licensing, Llc Data classification using data flow analysis
US11604942B2 (en) * 2019-01-31 2023-03-14 Walmart Apollo, Llc Method and apparatus for determining data linkage confidence levels
US11567995B2 (en) 2019-07-26 2023-01-31 Microsoft Technology Licensing, Llc Branch threading in graph databases
US11113267B2 (en) 2019-09-30 2021-09-07 Microsoft Technology Licensing, Llc Enforcing path consistency in graph database path query evaluation
CN110837869A (zh) * 2019-11-11 2020-02-25 深圳市商汤科技有限公司 图像分类模型训练方法、图像处理方法及装置
CN113065099B (zh) * 2021-03-26 2024-03-05 浙江科技学院 一种社交网络子结构计数的方法
CN113591088B (zh) * 2021-07-30 2023-08-29 百度在线网络技术(北京)有限公司 一种标识识别方法、装置及电子设备
CN113961754B (zh) * 2021-09-08 2023-02-10 南湖实验室 一种基于持久内存的图数据库系统

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001072040A2 (en) 2000-03-21 2001-09-27 Koninklijke Philips Electronics N.V. System and method for automatic content enhancement of multimedia output device
TWI237777B (en) * 2000-11-04 2005-08-11 Inst Information Industry Method for object to record classified paths under a tree structure
US6983068B2 (en) 2001-09-28 2006-01-03 Xerox Corporation Picture/graphics classification system and method
CN1186737C (zh) * 2002-02-05 2005-01-26 国际商业机器公司 对尚未访问的网页进行基于路径的排队的方法和系统
US7167850B2 (en) 2002-10-10 2007-01-23 Ab Initio Software Corporation Startup and control of graph-based computation
US7093231B2 (en) 2003-05-06 2006-08-15 David H. Alderson Grammer for regular expressions
US7765534B2 (en) 2004-04-30 2010-07-27 International Business Machines Corporation Compiler with cache utilization optimizations
US8560475B2 (en) 2004-09-10 2013-10-15 Cavium, Inc. Content search mechanism that uses a deterministic finite automata (DFA) graph, a DFA state machine, and a walker process
US20060056804A1 (en) 2004-09-13 2006-03-16 Seo Kang S Recording medium, and method and apparatus for reproducing data from the recording medium
CN101124537B (zh) * 2004-11-12 2011-01-26 马克森斯公司 采用术语构建知识关联的知识发现技术
TWI284862B (en) * 2005-05-04 2007-08-01 Univ Nat Chiao Tung Method of detecting an object and multi-class boosting classification algorithm used thereby
US7890510B2 (en) 2005-10-05 2011-02-15 International Business Machines Corporation Method and apparatus for analyzing community evolution in graph data streams
WO2007115224A2 (en) 2006-03-30 2007-10-11 Sri International Method and apparatus for annotating media streams
US7920720B2 (en) 2006-06-26 2011-04-05 Keystream Corporation Computer-implemented method for object creation by partitioning of a temporal graph
TWI326049B (en) * 2006-11-10 2010-06-11 Ind Tech Res Inst Method of image object classification and identification
US7834875B2 (en) 2007-04-02 2010-11-16 International Business Machines Corporation Method and system for automatically assembling stream processing graphs in stream processing systems
US20080288255A1 (en) 2007-05-16 2008-11-20 Lawrence Carin System and method for quantifying, representing, and identifying similarities in data streams
US7941387B2 (en) 2007-11-05 2011-05-10 International Business Machines Corporation Method and system for predicting resource usage of reusable stream processing elements
US7818303B2 (en) * 2008-01-29 2010-10-19 Microsoft Corporation Web graph compression through scalable pattern mining
US8073832B2 (en) * 2009-05-04 2011-12-06 Microsoft Corporation Estimating rank on graph streams

Also Published As

Publication number Publication date
US8655805B2 (en) 2014-02-18
CN103189836B (zh) 2016-08-10
WO2012030411A1 (en) 2012-03-08
US20120054129A1 (en) 2012-03-01
TW201224808A (en) 2012-06-16
GB201303817D0 (en) 2013-04-17
TWI497325B (zh) 2015-08-21
CN103189836A (zh) 2013-07-03
GB2501170A (en) 2013-10-16
JP2013543160A (ja) 2013-11-28

Similar Documents

Publication Publication Date Title
JP5596235B2 (ja) グラフデータストリーム内のオブジェクトをクラス化するための方法
US8392398B2 (en) Query optimization over graph data streams
US11190562B2 (en) Generic event stream processing for machine learning
US20160065534A1 (en) System for correlation of domain names
EP3724785A1 (en) Fast indexing with graphs and compact regression codes on online social networks
WO2016069065A1 (en) Similarity search and malware prioritization
US11347851B2 (en) System and method for file artifact metadata collection and analysis
Gao et al. Android malware detection via graphlet sampling
JP2018500640A (ja) 特徴的なサブトレースマイニングを使用する、経時的グラフにおける挙動クエリ構築のための方法及びシステム
CN110855648B (zh) 一种网络攻击的预警控制方法及装置
US10558707B2 (en) Method for discovering relevant concepts in a semantic graph of concepts
Kaur et al. Web news mining using Back Propagation Neural Network and clustering using K-Means algorithm in big data
CN112784595A (zh) 用广义词汇表标记训练和评估机器学习模型的系统和方法
US20160217185A1 (en) Population of context-based data gravity wells
Raghav et al. Bigdata fog based cyber physical system for classifying, identifying and prevention of SARS disease
US20230205823A1 (en) Intelligent clustering systems and methods useful for domain protection
US10990881B1 (en) Predictive analytics using sentence data model
US20140279743A1 (en) Jabba-type override for correcting or improving output of a model
US20140279804A1 (en) Jabba-type contextual tagger
US11822459B2 (en) Automated function category detection
US11379669B2 (en) Identifying ambiguity in semantic resources
JP2011048488A (ja) データフロー解析装置、データフロー解析システム、データフロー解析方法およびデータフロー解析プログラム
Jain et al. Efficient Graph Extraction-Based Clustering Technique for Social Network Analysis
Hernandez Beyond the Hype: Challenges of Neural Networks as Applied to Social Networks
Pradeep et al. Big Data analysis: a step to define

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140212

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20140603

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20140604

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140623

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20140623

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20140714

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

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20140722

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140806

R150 Certificate of patent or registration of utility model

Ref document number: 5596235

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150