JP2017530477A - グラフを処理するためのシステムおよび方法 - Google Patents
グラフを処理するためのシステムおよび方法 Download PDFInfo
- Publication number
- JP2017530477A JP2017530477A JP2017517233A JP2017517233A JP2017530477A JP 2017530477 A JP2017530477 A JP 2017530477A JP 2017517233 A JP2017517233 A JP 2017517233A JP 2017517233 A JP2017517233 A JP 2017517233A JP 2017530477 A JP2017530477 A JP 2017530477A
- Authority
- JP
- Japan
- Prior art keywords
- node
- array
- nodes
- graph
- processor
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2237—Vectors, bitmaps or matrices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2457—Query processing with adaptation to user needs
- G06F16/24578—Query processing with adaptation to user needs using ranking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
Abstract
システムおよび方法が、いくつかのエッジによって相互に接続されたいくつかのノードを有するグラフの形の情報を体系化し、また処理するために、提供される。アレイEは、ノードの決定された順番の形の少なくとも1つの隣接ノードを有するグラフのノードについての隣接ノードをリストアップしている。それぞれのノードについてのアレイEの中でリストアップされた最後の隣接ノードについてのアレイEの中の位置は、ノードの決定された順番に基づいて、アレイVにおける対応するエントリとしてリストアップされる。様々な態様においては、アレイEとアレイVとを使用して、グラフの1つまたは複数の与えられたノードの次数または隣接ノードを含めて、グラフについての情報を決定する。本明細書において開示される本システムおよび本方法は、グラフのノードについての相対的なランクを決定するために適用可能である。
Description
本開示は、データ分析のためのシステムおよび方法を対象としている。より詳細には、本開示は、多数の相互に接続されたノードを有するグラフを表すデータセットからの情報を体系化し、また抽出するためのシステムおよび方法を対象としている。
本節は、本明細書において開示されるシステムおよび方法についてのよりよい理解を容易にする際に、助けとなり得る態様を導入している。したがって、本節の陳述は、この観点から読まれるべきであり、また何が先行技術の中にあるか、または何が先行技術の中にないかについての承認として理解され、または解釈されるべきではない。
オンライン相互作用における急激な増大に部分的に起因した、アクセス可能なデータの量における最近の激増は、グラフィカルなやり方で情報を示すように、多数の研究コミュニティと、ビジネス・コミュニティと、マーケティング・コミュニティとを導いてきている。グラフィカル・モデル(例えば、ソーシャル・ネットワーク・モデル、コール・データ・モデルなど)は、生データの間の関係または相互接続についての直感的なビューを提供することができるが、どのようにして様々なエンティティ(例えば、加入者、グループ、人々、オブジェクト、マシン、データなど)が、グラフからの他のエンティティと相互作用するか、または関連しているかを決定することは、通常非常に多数の計算を実行することを必要とする。多数のグラフィカル・モデルが、さらに多くの接続によって相互に接続される極めて多数のノード(またはエンティティ)を含むことができるので、グラフィカル・モデルによって表されるデータから関連のある情報を取り出すための時間とコンピュータによる努力とを低減させるためのスケーラブルなシステムおよび方法についての必要性が、存在している。
システムおよび方法が、いくつかのエッジによって相互に接続されたいくつかのノードを表すグラフの形の情報を体系化し、また処理するために、提供される。アレイEは、ノードの決定された順番の形の少なくとも1つの隣接ノードを有するグラフのノードについての隣接ノードをリストアップしている。それぞれのノードについてのアレイEの中でリストアップされた最後の隣接ノードについてのアレイEの中の位置は、ノードの決定された順番に基づいて、アレイVにおける対応するエントリとしてリストアップされる。様々な態様において、アレイEとアレイVとは、生成され、またアレイEとアレイVとを使用して、グラフの1つまたは複数の与えられたノードの次数または隣接ノードを含む、グラフについての関連のある情報を決定する。本明細書において開示される本システムおよび本方法は、グラフのノードについての相対的なランキングを決定するためのシステムなどにおける様々なコンテキストとアプリケーションとにおいて適用可能であるように考えられる。
一態様においては、M個のエッジによって相互に接続されたN個のノードを有するグラフを処理するためのシステムおよび方法は、プロセッサを使用して、少なくとも1つの隣接ノードを有するグラフのN個のノードのうちのそれぞれのノードについての隣接ノードをリストアップするためのM個のエントリを有するアレイEを生成するステップを含んでおり、そこでは、隣接ノードは、グラフのN個のノードに割り当てられた決定された順番における少なくとも1つの隣接ノードを有するグラフのそれぞれのノードについてのアレイEの中でリストアップされる。本システムおよび本方法は、プロセッサを使用して、決定された順番において、グラフのN個のノードに対応しているN個のエントリを有するアレイVを生成するステップと、対応するノードについてのアレイEの中でリストアップされた最後の隣接ノードの、アレイEの中の位置をそれぞれ示すために、アレイEの中でリストアップされた少なくとも1つの隣接ノードを有するグラフのノードに対応している、アレイVのエントリを入力するステップとをさらに含む。
一態様においては、本システムおよび本方法は、どのような隣接ノードも有していない、グラフのノードに対応している、アレイVのエントリのうちの少なくとも1つを入力するステップを含んでおり、エントリの直前の値が、アレイVへと入力される。
一態様においては、本システムおよび本方法は、ゼロの値を有するどのような隣接ノードも有していない、グラフのノードに対応しているアレイVのエントリのうちの少なくとも1つを入力するステップを含んでいる。
一態様においては、本システムおよび本方法は、アレイVの1つまたは複数の入力されたエントリからグラフのN個のノードのうちの与えられたノードiの次数を決定するステップを含んでいる。一態様においては、アレイVの1つまたは複数の入力されたエントリから与えられたノードiの次数を決定するステップは、与えられたノードiの次数として、アレイVから値V[i]−V[i−1]を計算するステップをさらに含んでいる。
一態様においては、本システムおよび本方法は、与えられたノードiが、V[i]−V[i−1]=0という決定に基づいて、アレイVからのどのような隣接ノードも有していないことを決定するステップを含んでいる。
一態様においては、本システムおよび本方法は、グラフの与えられたノードiが、V[i]−V[i−1]>=1という決定に基づいて、アレイVからの少なくとも1つの隣接ノードを有することを決定するステップを含んでいる。
一態様においては、本システムおよび本方法は、アレイVとアレイEとを使用して、E[V[i−1]+1]から出発して、E[V[i]]まで、またE[V[i]]を含めて、アレイEにおけるエントリを計算することにより、グラフのN個のノードのうちの与えられたノードiの隣接ノードを決定するステップを含んでいる。
一態様においては、本システムおよび本方法は、グラフのN個のノードのうちの第1の与えられたノードが、E[V[i−1]+1]から、E[V[i]]まで、またE[V[i]]を含めて、アレイEにおけるエントリを探索することにより、グラフのN個のノードのうちの与えられたノードiの隣接ノードであるかどうかを決定するステップを含んでいる。
一態様においては、本システムおよび本方法は、グラフのN個のノードのうちの1つまたは複数のノードについて相対的なランクを決定するためにアレイEとアレイVとを利用するステップを含んでいる。
これらの実施形態および他の実施形態は、添付図面を参照して、本明細書における以下の詳細な説明を考慮すると、明らかになるであろう。
本開示の様々な態様が、添付の図面を参照して以下で説明され、これらの図面においては、同様な番号は、それらの図の説明全体を通して、同様な要素のことを意味している。本説明とそれらの図面とは、単に本開示の原理を示しているにすぎない。当業者なら、本明細書においては明確に説明されても、または示されてもいないが、それらの原理を実施し、また本開示の精神および範囲の内部に含められる様々な構成を考案することができるようになることが、理解されるであろう。
本明細書において使用されるように、用語「論理和(or)」は、それ以外の方法(例えば、「排他的論理和(or else)」または「代替的な形の論理和(or in the alternative)」)で示されていない限り、非排他的論理和(non−exclusive or)のことを意味している。さらに、本明細書において使用されるように、複数の要素の間の関係を説明するために使用される単語は、それ以外の方法で示されていない限り、直接の関係、または介在する要素の存在を含むように、広く解釈されるべきである。例えば、ある要素が、別の要素に対して、「接続され」ている、または「結合され」ていると称されるときに、その要素は、他の要素に対して直接に接続され、または結合されることもあり、あるいは介在する要素が、存在していてもよい。対照的に、ある要素が、別の要素に、「直接に接続され」ている、または「直接に結合され」ていると称されるときには、介在する要素は、存在していない。同様に、「間に(between)」、「隣接して(adjacent)」などの単語は、同様なやり方で、解釈されるべきである。
本開示は、グラフのエンティティおよび相互接続に関する様々なタイプの情報を決定し、また抽出するために使用され得るデータセットの集まりへと複数の相互に接続されたノードのグラフを処理するための態様を説明している。本明細書において開示されるそれらの態様は、任意の数のノードと相互接続とを有するグラフに対して適用可能であり、またとりわけ、多数のノードと相互接続と(例えば、何千個、何百万個、もしくは何十億個のノードまたは相互接続)を含むグラフのために適用可能である。
図1は、4つの相互に接続されたノード(または頂点)1101、1102、1103、および1104(一括してノード110と称される)を含むグラフ100の非常に簡略化された例を示すものである。グラフ100のノード1101、1102、1103、および1104は、単方向のパスまたはエッジ1151、1152、1153、および1154(一括して、エッジ115と称される)を経由して直接的に、または間接的に相互に接続される。少ないノード110とエッジ115とだけが、本開示の原理の理解を助けるために、グラフ100の中に示されるが、実際には、グラフは、多数の(例えば、何千個の、何百万個の、または何十億個のノード110またはエッジ115を含むことができることが、理解されるであろう。さらに、グラフ100は、全体グラフとすることができ、あるいはより大きな1つまたは複数のグラフのサブセットとすることができる。
様々な実施形態においては、グラフ100のノード110は、1つまたは複数のタイプのエンティティ(例えば、加入者、グループ、人々、オブジェクト、マシン、データなど)を表すことができ、またエッジ115は、グラフ100の様々なエンティティの間の関係を表すことができる。いくつかの例として、1つの非限定的な実施形態においては、グラフ100は、電気通信サービス・プロバイダのコール・データ・レコードのモデルとすることができる。この場合には、ノード110は、電気通信サービス・プロバイダのユーザまたは加入者(またはユーザ機器)を表すことができ、また単方向のエッジ115は、加入したユーザ(またはユーザ機器)のうちの特定の加入したユーザ(またはユーザ機器)から他の加入したユーザ(またはユーザ機器)へのコールを表すことができる。別の非限定的な実施形態においては、グラフ100は、インターネット・サービス・プロバイダまたは検索プロバイダによって収集され、または生成されるウェブ・データのモデルとすることができる。この場合には、ノード110は、例えば、1つまたは複数のサーバにおいてホストされる異なるウェブページ(またはウェブサイト)を表すことができ、また単方向エッジ115は、1つのウェブページ(またはウェブサイト)から別のウェブページ(またはウェブサイト)へのハイパーテキスト・マークアップ・リンクを表すことができる。
さらに別の非限定的な実施形態においては、グラフ100は、ソーシャル・ネットワーク・プロバイダのソーシャル・ネットワーク・データをモデル化することができる。この場合には、ノード110は、ソーシャル・ネットワークの様々なユーザまたは加入者を表すことができ、また単方向のエッジ115は、1人の加入者と他の加入者との間の社会的な(または他の)関係を表すことができる。グラフ100の特定の例は、本開示の様々な態様を示すように参照される可能性があるが、本開示は、グラフ、エンティティ、または相互接続の特定の実施形態だけに限定されないことが、理解されるであろう。
グラフ100などのグラフに関しての基本的な興味についての1つの共通のコンピュータによる問い合わせは、ある与えられたノードが、別の与えられたノードの隣接ノードであるかどうかである(また逆もまた同様である)。一般に、第1のノードは、その第1のノードが、どのような介在するノードもトラバースすることなく、第2のノードから到達され得る場合に、第2のノードの隣接ノードである。それゆえに、ノード1102が、どのような介在するノードもトラバースすることなく、ノード1101から(単方向のエッジ1151を経由して)直接に到達され得るただ1つのノードであるので、ノード1101は、単一の隣接ノードを、すなわち、ノード1102を有することが、図1の簡単な例から分かる可能性がある。同様に、ノード1102は、2つの隣接ノードを、すなわち、ノード1103と、ノード1104とを有しており、また最後に、ノード1103は、1つの隣接ノードを、すなわち、ノード1104を有することが、図1において分かる可能性がある。
明確にまた完全にするために、図1の例に示されるようなノード1104は、グラフ100の他のノードが、1104から到達され得ないので、どのような隣接ノードも有してはいないことに注意すべきである。さらに、ノード1102は、ノード1101の隣接ノードであるが、その逆は、真ではなく、ノード1101が、ノード1102から到達され得ないので、ノード1101は、ノード1102の隣接ノードではない。他の実施形態においては、グラフ100のノード1101や1102など、グラフの2つのノードは、それらの2つのノードが、当業者によって理解されることになるように、例えば、双方向のエッジを経由して、または2つの相反する単方向のエッジによって互いに直接に相互に接続される場合には、互いの隣接ノードになることに注意すべきである。
グラフ100などのグラフに関しての興味についての別の共通のコンピュータによる問い合わせは、与えられたノードの次数についての決定である。一般に、ノードの次数は、ノートから別のノードへのエッジ(またはパス)の数である。それゆえに、図1の例においては、グラフのノード1101から別のノードへの単一の直接のパスまたはエッジ1151が存在しているので、ノード1101の次数は、1である。同様に、グラフのノード1102から他のノードへの2つの直接のパス1152および1153が存在しているので、ノード1102の次数は、2である。グラフのノード1103から別のノードへの単一の直接のパス1154が、存在しているので、ノード1103の次数は、1である。最後に、グラフのノード1104から他のノードへのパスが存在していないので、ノード1104の次数は、ゼロである。
図2は、図1のグラフ100についてのノード110のそれぞれについての隣接ノードと次数とをとりまとめているテーブル200を示すものである。図1の簡略化された例について計算することは比較的より簡単であるが、例えば、動的問い合わせに応じて、多数のノード(例えば、数百万個または数十億個の)あるいはさらにより多数でさえもの相互接続(例えば、数百万個または数十億個の数十倍の)を含むグラフの中の隣接ノードまたは次数を計算し、また決定することは、かなりの長さの時間と、かなりの量のリソース(例えば、プロセッサ速度、メモリなど)とを必要とするささいではない、計算集約的なタスクである。大規模の、または分散型の現代のコンピュータでさえも、10億個のノード、100億個のエッジよりも多くを有するグラフからの望ましい情報と、メモリの中の補助的な情報(エッジの重みなど)とを効率的に体系化し、また処理するというやりがいのある課題に直面している。
システムおよび方法が、従来よりも大規模なグラフの中の情報を効果的に処理するためのアルゴリズムとデータ構造とを開発する進行中の課題と必要性とが、存在している。本開示は、グラフの中のエッジの数に比例したメモリ・サイズの要件を低減させること、ノード、隣接ノード、およびグラフ構造についての効率的な問い合わせを可能にすること、グラフを通して効率的な複数の反復を提供することなど、いくつかの利点を提供することができる、グラフの中の情報を体系化し、また処理するためのシステムおよび方法を説明している。
図3は、本開示の態様に従って、N個のノードと、M個のエッジとを有するグラフの中で情報を体系化し、また処理するためのデータセットの集まりを構築するための例示のプロセス300を示すものである。プロセス300の特定の適用もまた、図1のグラフ100に関連して説明され、このグラフは、4つのノード(N=4)と、4つのエッジ(M=4)とを含んでいる。
一態様においては、プロセス300は、N−ノードのグラフのN個のノードについての順番を決定し、または割り当てるためのステップ305を含んでいる。グラフのノードに割り当てられる順番は、いくつかのやり方で決定される可能性がある。一実施形態においては、グラフのN個のノードのうちのそれぞれは、1からNまでの固有の順番を割り当てられることもある。この実施形態は、図1のグラフ100(N=4)について例証されており、ここで、ノード1101は、第1のノードまたはノード「1」として指定され、ノード1102は、第2のノードまたはノード「2」として指定され、ノード1103は、第3のノードまたはノード「3」として指定され、またノード1104は、最後のノードまたはノード「4」として指定される。割り当てられた順番もまた、図2のテーブル200の中に示される。
他の実施形態においては、割り当てられた順番は、ノードによって表されるエンティティの1つまたは複数の属性値に基づいて、N個のノードを辞書編集的観点から順序づけることによるなど、他の適切な手段によって決定される(またはあらかじめ決定される)こともある。例えば、グラフのノードが、ウェブページを表し、また単方向のエッジが、1つのウェブページから他のウェブページへのリンクを表すことを仮定すると、各ノード(またはウェブページ)は、それぞれのウェブページの固有のユニフォーム・リソース・ロケーション(「URL:uniform resource location」)、ウェブページの名前(またはタイトル)、またはそれぞれのウェブページの任意の他のタイプの属性(または同様な属性)の値に基づいて、割り当てられた順番を用いて指定されることもある。
任意の適切な方法が、ノードについての順番を決定するために使用されることもあるが、以下でより明らかになることになる理由のために、割り当てられた順番における第1のノードは、隣接ノードを有していないノード(グラフ100のノード1104など)とは対照的に、隣接ノードを有しているノード(グラフ100のノード1101など)であることが、好ましい可能性がある。しかしながら、これは、以下でさらに説明されるように、プロセス300のために必要でもなく、また限定でもない。
ステップ310において、プロセスは、ステップ305において決定されるノードの順番の形で、隣接ノードを有するグラフのノードについての隣接ノードを示しているエントリを有するアレイE[1,2,...,M]を生成するステップを含んでいる。この態様に従って、アレイEが、隣接ノードを有しているグラフのノードについてエントリを含むだけなので、アレイEは、グラフの中で表されるM個のエッジに対応しているM個のエントリを有している。
図4は、ステップ310において、図1のグラフ100についてのアレイEを生成する一例としてアレイ400を示すものである。図4に見られるように、アレイ400は、グラフ100のエッジ、すなわち、1151、1152、1153、および1154、の数(M=4)に対応する4つのエントリを含んでいる。アレイ400のエントリは、ステップ305において決定されるノードの順番の形で、少なくとも1つの隣接ノードを有しているグラフ100のノードのそれぞれについて、すなわち、ノード1101、1102、および1103についての隣接ノードを示している。隣接ノードを有していないノード(例えば、グラフ100のノード1104)では、アレイ400の中に記録されるエントリが存在していないことに注意すべきである。
アレイ400のエントリは、ステップ305において決定されるノードの順番に基づいて、順序づけられる。それゆえに、アレイ400の第1の位置においては、指定された順番の形の第1のノード(ノード「1」)、すなわち、ノード1101についての隣接ノードが、アレイ400の中へと入力される。ノード1101は、1つの隣接ノード、すなわち、ノード1102だけを有しているので、ノード1102を示す単一のエントリが、アレイ400の第1のインデックス付けされたエントリ(E[1]=「1102」)の中に配置される。
継続して、指定された順番における第2のノード(ノード「2」)、ノード1102の隣接ノードが、アレイ400へと入力される。ノード1102は、2つの隣接ノード、ノード1103と1104とを有しているので、ノード1102の2つの隣接ノードを示している2つのエントリ(E[2]=「1103」、E[3]=「1104」)が、アレイ400の第2のインデックス付けされた位置と、第3のインデックス付けされた位置との中に配置される。これらの2つの隣接ノードがアレイ400の第2の位置と第3の位置との中に示される順番は、必ずしもアレイ400の中に示されるように、指定された順序である必要はないが、以下でさらに説明されるように隣接ノードについて探索するときに、ある種の効率を提供することができることに、ここで注意すべきである。
次に、指定された順番における第3のノード(ノード「3」)、ノード1103の隣接ノードは、アレイ400の次の使用可能な位置から出発して、入力される。ノード1103は、単一の隣接ノード、すなわち、ノード1104を有しているので、隣接ノードを示している単一のエントリ(E[4]=「1104」)は、アレイ400の第4の位置へと配置される。
アレイ400のすべてのエントリが、ステップ305の指定されたノードの順番に入力されているので、またはより顕著には、指定された順番の中の最後に残っているノード(ノード「4」)、ノード1104が、どのような隣接ノードも有していないので、アレイ400の生成は、完了される。
上記の説明は、グラフの中の相互接続の数またはタイプに応じて原理的に変化しないが、アレイEによって示される隣接ノード(およびエントリの数)は、変化することができることに注意すべきである。例えば、図5aは、グラフ100のエッジ115のそれぞれが、図1に示される単方向のエッジの代わりに双方向のエッジ(2つの相反する単方向のエッジに等価)であることを仮定して、図1のグラフ100についてステップ310において、生成され得るアレイEの代替的な一実施形態を示すものである。同様に、図5bは、図1に既に示されている単方向のエッジに追加して、ノード1101からノード1102への、グラフ100における追加の並列の単方向のエッジの存在を仮定して、ステップ310において生成され得るアレイEの別の実施形態を示すものである。
図3のプロセス300に戻ると、ステップ315は、N個のエントリを有しているアレイV[1,2,...,N]を生成するステップを含んでおり、ここでそれぞれのN個のエントリのうちのそれぞれは、ステップ305の指定された順番におけるグラフ100のN個のノードのうちのそれぞれ1つに対応しており、またここでエントリは、隣接ノードを有しているグラフのそれぞれのノードについてアレイEの中にリストアップされる隣接ノードのうちの最後の隣接ノードの位置を示している。隣接ノードを有していない(またはアレイEの中にエントリを有していない)グラフのノードについてのそれぞれのエントリは、アレイVの直前のエントリの値で、またはそのような先行するエントリが存在していない場合にはゼロで、入力される。
図6は、ステップ315における図1のグラフ100についてのアレイVを生成する一例としてアレイ600を示すものである。理解を助けるために、図4のアレイ400(アレイE)はまた、図6において再び示される。図6に示されるように、アレイ600は、グラフ100のノードの数(N=4)に対応している4つのエントリを含んでいる。アレイ600における4つのエントリのうちのそれぞれは、グラフ100のそれぞれのノードに対応しており、またステップ305において指定される同じノードの順番の中に、すなわち、ノード「1」、ノード「2」、ノード「3」、およびノード「4」の中に入力される。
それゆえに、ノード1101が、ステップ305において決定されるノードの順番において第1のノードまたはノード「1」として指定されたので、アレイ600の第1のエントリ{V[1])は、ノード1101に対応している。アレイEにおけるノード1101についての隣接ノード・リストの最後の隣接ノードの終了位置が、アレイ400における第1の位置(E[1])であるので、「1」が、ノード1101についてのアレイ600の第1のエントリ(V[1]=「1」)へと記録される。
次に、ノード1102が、ステップ305において決定されるノードの順番における第2のノードまたはノード「2」として指定されたので、アレイ600の第2のエントリ(V[2])は、ノード1102に対応している。アレイEにおけるノード1102の隣接ノード・リストの最後の隣接ノードの終了位置が、アレイ400における第3の位置(E[3])に対応しているので、「3」が、アレイ600におけるノード1102についての第2のエントリ(V[2]=「3」)へと入力される。
次に、ノード1103が、ステップ305において決定されるノードの順番における第3のノードまたはノード「3」として指定されたので、アレイ600の第3のエントリ(V[3])は、ノード1103に対応している。ノード1103の隣接ノード・リストが、アレイ600における第4の位置(E[4])においてリストアップされる最後の隣接ノードで終了するので、「4」が、アレイ600におけるノード1103についての第3のエントリ(V[3]=「4」)へと記録される。
次に、ノード1104が、ステップ305において決定されるノードの順番における最後のノードまたはノード「4」として指定されたので、アレイ600の最後の、また第4のエントリ(V[4])は、ノード1104に対応している。ノード1104が、ステップ310において、どのような隣接ノードも有しておらず、またそれゆえにアレイ400の中にリストアップされる隣接ノードを有していないものと決定されたので、アレイ600における直前のエントリの値は、ノード1104に対応しているエントリにおいて、使用され、または反復される。したがって、先行するエントリV[3]が、「4」という値を有しているので、「4」はまた、アレイ600におけるノード1104についての第4のエントリ(V[4]=「4」)へと記録される。
ステップ305におけるノードの順番の決定中に、隣接ノードを有していないノード(例えば、グラフ100のノード1104)が、ノードの順番における第1のノードであるように指定される場合に、特別な場合が、ステップ315の開始時に発生する可能性がある。この状況においては、ステップ315においてはまだ、アレイVにおいて先行するエントリが、存在していないことになるので、またステップ310において、アレイ400の中でリストアップされる隣接ノードもまた存在していないことになるので、ゼロが、ステップ315においてアレイ600の第1の位置(V[1]=「0」)に入力されることもあり、またアレイ600の残りのエントリを入力するプロセスは、上記で説明されるようにステップ315において、継続する可能性がある。
アレイVのすべてのそれぞれのエントリが、ステップ315において、グラフのそれぞれのノードについて入力された後に、アレイVは、完了される。
ステップ320とステップ322とにおいて、本明細書において開示されるプロセスに従ってグラフのために構築されるアレイEとアレイVとは、グラフに関する情報を決定するために使用される。
一実施形態においては、グラフの中の様々なノードについてのノードの次数は、ステップ320においてアレイVを使用して計算される。ステップ305の指定された順番におけるN−ノードのグラフについての特定のノードi(i∈1...N)についてのノードの次数は、i≧2の場合にV[i]−V[i−1]を、またi=1の場合にV[i]を計算することにより、アレイVから決定される可能性がある。
図6のアレイ600(アレイV)と一緒に、図1のグラフ100の例を継続すると、ステップ320において、ノード1101(i=1)についてのノードの次数は、V[1]=「1」であるので、1(一)としてアレイ600から(例えば、問い合わせに応じて)決定される可能性がある。ノード1102(i=2)についてのノードの次数は、V[2]−V[1]=3−1=「2」であるので、2(二)としてアレイ600からステップ320において決定されることもある。ノード1103(i=3)についてのノードの次数は、V[3]−V[2]=4−3=「1」であるので、1(一)としてアレイ600からステップ320において決定されることもある。最後に、ノード1104(i=4)についてのノードの次数は、V[4]−V[3]=4−4=「0」であるので、0(ゼロ)として図6のアレイ600からステップ320において決定されることもある。アレイVを使用して算出されるノードの次数は、図2において示されるようなグラフのノードのそれぞれについてのノードの次数に正確にマッチすることが、分かる可能性がある。
別の実施形態においては、与えられたノードの隣接ノードは、ステップ322において、アレイVおよび/またはアレイEを使用して(例えば、問い合わせに応じて)決定されることもある。例えば、ステップ320において説明されるようにゼロという次数を有するように決定される、ステップ305の指定された順番におけるN−ノードのグラフの与えられたノードi(i∈1...N)は、隣接ノードを有していないノードとして効率的に識別される可能性がある。
代わりに、ステップ320において、ゼロよりも大きな次数を有するように決定される(またはそれ以外の方法で、ゼロよりも大きな次数を有することが知られている)ステップ305の指定された順番における、N−ノードのグラフの与えられたノードi(i∈1...N)では、そのようなノードについての隣接ノードは、E[V[i−1]+1]から出発して、i>=2の場合のE[V[i]]まで、またE[V[i]]を含めてエントリとして、またE[1](すなわち、アレイEにおける第1のエントリ)から出発して、i=1の場合のE[V[i]]まで、またE[V[i]]を含めてエントリとして、アレイEから決定されることもある。
例えば、問い合わせが、グラフ100のノード1101の隣接ノードについて受信されることを仮定する。図6のアレイ400(アレイE)とアレイ600(アレイV)とを使用して、ノード1101(ノード「1」)(i=1)の隣接ノードは、E[1]から出発して、E[V[1]]まで、またE[V[1]]を含めてアレイEにおいてリストアップされるすべてのノードとしてステップ322において決定されることもある。アレイVから、V[1]=「1」であることが、分かる可能性がある。それゆえに、ノード「1」の隣接ノードは、E[1]から、E[1]まで、またE[1]を含めてリストアップされるノードであり、あるいは簡単にE[1]=ノード「2」(ノード1102)である。
第2の例として、問い合わせは、グラフ100のノード1102(またはノード「2」)の隣接ノードについてのものであることを仮定する。この場合にも図6においてアレイ400(アレイE)とアレイ600(アレイV)とを使用して、ノード「2」(i=2)の隣接ノードは、エントリE[V[1]+1]から出発して、エントリE[V[2]]まで、またエントリE[V[2]]を含めてアレイEの中でリストアップされるノードとしてステップ322において決定されることもある。アレイVから、V[1]=「1」であり、またV[2]=「3」であることが、決定される可能性がある。アレイEから、E[2]から出発して、E[3]まで、またE[3]を含めてアレイEにおいてリストアップされる連続した隣接ノードは、ノード「3」およびノード「4」(またはノード1103およびノード1104)であることが、分かる可能性がある。それゆえに、ノード「3」および「4」は、ノード「2」の隣接ノードとして決定される。
このアプローチをまた使用して、第1のノードが、第2のノードの隣接ノードであるかどうかを(または等価的に、第2のノードから第1のノードへの直接のパスまたはエッジが存在しているかどうかを)決定することもできる。例えば、問い合わせが、ノード「1」がノード「2」の隣接ノードであるかどうかを(またはノード「2」からノード「1」への有向エッジが存在しているかどうかを)決定するために受信されることを仮定する。ノード「1」が、ステップ322において決定されるように、E[2](ノード「3」)から出発して、E[3](ノード「4」)まで、またE[3](ノード「4」)を含めてエントリの中にリストアップされないので、ノード「1」は、ノード「2」の隣接ノードではないことが、結論づけられる可能性がある。
本明細書において開示される本システムおよび本方法の様々な態様は、グラフを処理するための、とりわけ、数千個または数百万個のノードまたはエッジを含む大規模なグラフを処理するためのいくつかの利点をもたらすことができる。例えば、グラフについての様々な与えられたノードの次数は、アレイVを使用した一定の数の計算を用いて、決定されることもある。他の実施形態においては、グラフについてのノードの最大ノード次数や、グラフについてのノードの次数の分布など、他の決定もまた、アレイVから効率的に決定される可能性もある。さらに、グラフについての与えられたノードが、グラフについての別の与えられたノードの隣接ノードであるかどうかを決定するステップ(log2Δ量の時間内に達成され得るバイナリ・オペレーションで、ここでΔは、グラフの最大ノード次数である)、またはグラフについての与えられたノードの隣接ノードを決定するステップは、アレイEについてのエントリの焦点を当てられた、また関連のあるサブセットだけを(エントリのより大規模な組またはすべての組とは対照的に)検査することにより、達成される可能性がある。
本明細書において開示される様々な実施形態は、いくつかのコンテキストにおいて適用可能である。例えば、グラフのノードにランク付け(またはスコア付け)をして、いくつかの判断基準に関して、他のノードよりも比較的により重要であるノードを決定することが、多くの場合に望ましい。グラフのノードが、ウェブページ(またはウェブサイト)を表し、またノードを相互に接続するエッジが、1つのウェブページから別のウェブページへの有向ハイパーリンクを表す場合には、グラフのノードは、ランキング・アルゴリズムを使用して、グラフの他のノードからグラフの特定のノードに対する有向エッジの数に基づいて、ウェブサイトの相対的な人気を評価して、ランク付けされることもある。グラフの多数の他のノードから直接的にまたは間接的に到達可能であるノードは、グラフのより少ない(または何もない可能性のある)他のノードによって到達可能である別のノードよりも人気があるものと見なされる可能性がある。
類似した(または他の)ランキングの考慮は、ノードがソーシャル・ネットワークのユーザ(または他のエンティティ)を表すことができ、またエッジがソーシャル・ネットワーク・グラフの他のユーザ(またはエンティティ)に対するユーザ(またはエンティティ)の接続(または関係)を表すことができるソーシャル・ネットワーク・グラフなど、他のタイプの情報を表すグラフに対して適用される可能性がある。
ランキング・アルゴリズム(ウェブページ(またはウェブサイト)をランク付けし、またはスコア付けするために、グーグル社(Google Inc.)によって開発されたよく知られているページランク(PageRank)アルゴリズムなど)は、一般的に、最初のランクから出発する(例えば、グラフの各ノードは、最初に等しいランクを有することが仮定されることもある)こと、および次いで調整されたランクが、最終的な調整されたランキングへと収束するまで、グラフのノードのランクを繰り返して調整することにより、グラフのノードをランク付けする。グラフのそれぞれの各ノードに関連する最初のランクは、それぞれのノードの隣接ノードのうちのそれぞれに対して公平に配信される。これは、それぞれの各ノードについての調整されたランクをもたらし、このランクは、次いで、隣接ノードに対してそれぞれのノードの調整されたランクを配信する配信ステップを繰り返し行うことにより、さらに調整される。ランキング・プロセスは、(一般的に、いくつかの反復の後に)隣接ノードに対する配信の後にそれぞれのノードについてもたらされる調整されたランクが、収束するときに、それぞれのノードについての最終的なランキングで終了することができる(例えば、それらのノードの調整されたランクは、いくつかの反復の後に所定のしきい値よりも少ない反復または変化の結果として、さらに変化することはない)。
したがって、いくつかの実施形態においては、本明細書において開示される本システムおよび本方法は、ランキング・プロセスの一部分として、1つまたは複数のノードに関連する隣接ノードまたはノードの次数を、例えば、決定するために、グラフのノードをランク付けし、またはスコア付けするためのシステムおよび方法を補完することができ、あるいはシステムおよび方法へと統合されることもある。本明細書において開示される本システムおよび本方法は、類似したやり方でグラフを処理するための任意の他のシステムおよび方法へと一般に統合される可能性もあり、または任意の他のシステムおよび方法を補完することができる。
図7は、本開示の様々な態様(例えば、プロセス300の1つまたは複数のステップ)を実装するために適切なコンピューティング装置700の高レベル・ブロック図を示すものである。単一のブロックの形で示されているが、他の実施形態においては、本装置700は、並列アーキテクチャと分散型アーキテクチャとを使用して実装される可能性もある。したがって、例えば、プロセス300の例の中に示されるこれらのステップなど、様々なステップは、特定の実装形態に基づいて、逐次的に、並列に、または異なる順序で、装置700を使用して、実行されることもある。装置700は、様々な入出力デバイス704およびメモリ706と通信するように相互に接続されたプロセッサ702(例えば、中央演算処理装置(「CPU:central processing unit」)を含んでいる。
プロセッサ702は、汎用中央演算処理装置(「CPU」)など、任意のタイプのプロセッサ、または埋め込まれたマイクロコントローラやデジタル信号プロセッサ(「DSP:digital signal processor」)などの専用マイクロプロセッサとすることができる。入出力デバイス704は、プロセッサ702の制御の下で動作し、また例えば、ネットワーク・アダプタ、データ・ポートや、キーボード、キーパッド、マウス、ディスプレイなど、様々なユーザ・インターフェース・デバイスなどの装置700へとデータを入力し、または装置700からデータを出力するように構成された任意の周辺デバイスとすることができる。
メモリ706は、例えば、一時的なランダム・アクセス・メモリ(RAM:random access memory)や、リード・オンリー・メモリ(ROM:read only memory)、ハード・ディスク・ドライブ・メモリ、コンパクト・ディスク・ドライブ・メモリ、光メモリなどの非一時的メモリなどの電子的情報を記憶するために適切な任意のタイプのメモリとすることができる。メモリ706は、データ(例えば、グラフ100、アレイV、アレイE、または他のデータ)と、プロセッサ702による実行のすぐ後に、装置700が、本明細書において上記で説明される機能または態様(例えば、プロセス300の1つまたは複数のステップ)を実施し、または実行するように、構成し、またはさせることができる命令とを含むことができる。さらに、装置700は、オペレーティング・システム、問い合わせマネージャ、デバイス・ドライバや、メモリ706に記憶され、またプロセッサ702によって実行される1つまたは複数のネットワーク・プロトコルなど、コンピューティング・システムにおいて一般的に見出される他のコンポーネントを含むこともできる。
装置700の特定の一実施形態が、図7に示されるが、本開示に従う様々な態様は、1つまたは複数の特定用途向け集積回路(ASIC:application specific integrated circuits)、フィールド・プログラマブル・ゲート・アレイ(FPGA:field programmable gate arrays)、あるいはハードウェアまたはソフトウェアの任意の他の組合せを使用して、実装される可能性もある。例えば、本明細書において開示されるグラフおよびデータセット(例えば、アレイV、E)は、ソフトウェア、ハードウェア、またはそれらの組合せを使用して実装されるプログラマブル・プロセッサ(例えば、CPUまたはFPGA)によってアクセスされ、また操作され得る様々なタイプのデータ構造(例えば、リンクされたリスト)に記憶されることもある。
本明細書における態様は、特定の実装形態を参照して説明されてきているが、これらの実施形態は、本開示の原理とアプリケーションとについての単に実例となるものにすぎないことを理解すべきである。したがって、非常に多数の修正が、実例となる実施形態に対して行われ得ること、および他の構成が、本開示の精神および範囲を逸脱することなく考案され得ることを理解すべきである。
Claims (10)
- M個のエッジによって相互に接続されるN個のノードを有するグラフを処理するための装置であって、前記装置は、
プロセッサと、
前記プロセッサに通信するように接続されたメモリと
を備えており、前記メモリは、1つまたは複数のデータ構造と、前記プロセッサによる実行のすぐ後に、
前記メモリにおいて、少なくとも1つの隣接ノードを有する前記グラフの前記N個のノードのうちのそれぞれのノードについての隣接ノードであって、前記隣接ノードは、前記グラフの前記N個のノードに割り当てられる決定された順番の形の少なくとも1つの隣接ノードを有する前記グラフの前記それぞれのノードについてのアレイEの中にリストアップされる、隣接ノードをリストアップするためのM個のエントリを有するアレイEを生成し、また
前記メモリにおいて、前記決定された順番の形で、前記グラフの前記N個のノードに対応しているN個のエントリを有するアレイVを生成し、また前記対応するノードについてのアレイEの中にリストアップされる最後の隣接ノードのアレイEの中の位置をそれぞれ示すように、アレイEの中にリストアップされる少なくとも1つの隣接ノードを有する前記グラフの前記ノードに対応しているアレイVのエントリを入力する
ように前記プロセッサを構成する1つまたは複数の実行可能な命令と、を記憶するように構成されている、装置。 - 前記1つまたは複数の実行可能な命令は、さらに、
エントリの直前の値が、アレイVへと入力されたどのような隣接ノードも有していない前記グラフのノードに対応している、アレイVの前記エントリのうちの少なくとも1つを入力する
ように、前記プロセッサを構成する、請求項1に記載の装置。 - 前記1つまたは複数の実行可能な命令は、さらに、
ゼロという値を有するどのような隣接ノードも有していない前記グラフのノードに対応している、アレイVの前記エントリのうちの少なくとも1つを入力する
ように、前記プロセッサを構成する、請求項1に記載の装置。 - 前記1つまたは複数の実行可能な命令は、さらに、
アレイVの1つまたは複数の入力されたエントリから前記グラフの前記N個のノードのうちの与えられたノードiの次数を決定する
ように、前記プロセッサを構成する、請求項1に記載の装置。 - 前記1つまたは複数の実行可能な命令は、さらに、
前記与えられたノードiの前記次数としてアレイVから値V[i]−V[i−1]を計算する
ように、前記プロセッサを構成する、請求項4に記載の装置。 - 前記1つまたは複数の実行可能な命令は、さらに、
V[i]−V[i−1]=0という決定に基づいて、前記与えられたノードiが、アレイVからのどのような隣接ノードも有していないことを決定する
ように、前記プロセッサを構成する、請求項1に記載の装置。 - 前記1つまたは複数の実行可能な命令は、さらに、
V[i]−V[i−1]>=1という決定に基づいて、前記グラフの前記与えられたノードiが、アレイVからの少なくとも1つの隣接ノードを有することを決定する
ように、前記プロセッサを構成する、請求項5に記載の装置。 - 前記1つまたは複数の実行可能な命令は、さらに、
E[V[i−1]+1]から出発して、E[V[i]]まで、またE[V[i]]を含めてアレイEにおけるエントリを計算することにより、アレイVおよびアレイEを使用して前記グラフの前記N個のノードのうちの与えられたノードiの隣接ノードを決定する
ように、前記プロセッサを構成する、請求項1に記載の装置。 - 前記1つまたは複数の実行可能な命令は、さらに、
E[V[i−1]+1]から、E[V[i]]まで、またE[V[i]]を含めてアレイEにおけるエントリを探索することにより、前記グラフの前記N個のノードの第1の与えられたノードが、前記グラフの前記N個のノードの与えられたノードiの隣接ノードであるかどうかを決定する
ように、前記プロセッサを構成する、請求項1に記載の装置。 - 前記1つまたは複数の実行可能な命令は、さらに、
アレイEおよびアレイVを利用して、前記グラフの前記N個のノードのうちの1つまたは複数のノードについての相対的なランクを決定する
ように、前記プロセッサを構成する、請求項1に記載の装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/501,758 US20160092595A1 (en) | 2014-09-30 | 2014-09-30 | Systems And Methods For Processing Graphs |
US14/501,758 | 2014-09-30 | ||
PCT/US2015/052548 WO2016053824A1 (en) | 2014-09-30 | 2015-09-28 | Systems and methods for processing graphs |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2017530477A true JP2017530477A (ja) | 2017-10-12 |
Family
ID=54325698
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017517233A Pending JP2017530477A (ja) | 2014-09-30 | 2015-09-28 | グラフを処理するためのシステムおよび方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20160092595A1 (ja) |
EP (1) | EP3201800A1 (ja) |
JP (1) | JP2017530477A (ja) |
CN (1) | CN107077485A (ja) |
WO (1) | WO2016053824A1 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9569558B1 (en) * | 2015-11-25 | 2017-02-14 | International Business Machines Corporation | Method for backfilling graph structure and articles comprising the same |
US11526483B2 (en) * | 2018-03-30 | 2022-12-13 | Intel Corporation | Storage architectures for graph analysis applications |
CN114239858B (zh) * | 2022-02-25 | 2022-06-10 | 支付宝(杭州)信息技术有限公司 | 一种用于分布式图模型的图学习方法及设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05250808A (ja) * | 1992-03-04 | 1993-09-28 | Nec Corp | 音声録音システム |
JP2007140843A (ja) * | 2005-11-17 | 2007-06-07 | Fuji Xerox Co Ltd | リンク関係表示装置、リンク関係表示装置の制御方法及びプログラム |
US20130187941A1 (en) * | 2012-01-24 | 2013-07-25 | Ryan Noon | Systems and Methods for Graph Rendering |
JP2013156696A (ja) * | 2012-01-26 | 2013-08-15 | Nippon Telegr & Teleph Corp <Ntt> | クラスタリング装置及び方法及びプログラム |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB0106441D0 (en) * | 2001-03-15 | 2001-05-02 | Bayer Ag | Method for generating a hierarchical topological tree of 2D or 3D-structural formulas of chemical compounds for property optimization of chemical compounds |
US7346629B2 (en) * | 2003-10-09 | 2008-03-18 | Yahoo! Inc. | Systems and methods for search processing using superunits |
US7877737B2 (en) * | 2004-07-23 | 2011-01-25 | University Of Maryland | Tree-to-graph folding procedure for systems engineering requirements |
JP2008538016A (ja) * | 2004-11-12 | 2008-10-02 | メイク センス インコーポレイテッド | 概念または項目を用いて知識相関を構成することによる知識発見技術 |
US8611673B2 (en) * | 2006-09-14 | 2013-12-17 | Parham Aarabi | Method, system and computer program for interactive spatial link-based image searching, sorting and/or displaying |
WO2008111087A2 (en) * | 2007-03-15 | 2008-09-18 | Olista Ltd. | System and method for providing service or adding benefit to social networks |
US20080263022A1 (en) * | 2007-04-19 | 2008-10-23 | Blueshift Innovations, Inc. | System and method for searching and displaying text-based information contained within documents on a database |
US9014008B2 (en) * | 2009-08-12 | 2015-04-21 | Empire Technology Development Llc | Forward-looking probabilistic statistical routing for wireless ad-hoc networks with lossy links |
CN103108000B (zh) * | 2011-11-09 | 2016-08-10 | 中国移动通信集团公司 | 用于任务同步的方法和系统及系统中的主节点和工作节点 |
-
2014
- 2014-09-30 US US14/501,758 patent/US20160092595A1/en not_active Abandoned
-
2015
- 2015-09-28 WO PCT/US2015/052548 patent/WO2016053824A1/en active Application Filing
- 2015-09-28 CN CN201580052926.8A patent/CN107077485A/zh active Pending
- 2015-09-28 EP EP15781221.5A patent/EP3201800A1/en not_active Withdrawn
- 2015-09-28 JP JP2017517233A patent/JP2017530477A/ja active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05250808A (ja) * | 1992-03-04 | 1993-09-28 | Nec Corp | 音声録音システム |
JP2007140843A (ja) * | 2005-11-17 | 2007-06-07 | Fuji Xerox Co Ltd | リンク関係表示装置、リンク関係表示装置の制御方法及びプログラム |
US20130187941A1 (en) * | 2012-01-24 | 2013-07-25 | Ryan Noon | Systems and Methods for Graph Rendering |
JP2013156696A (ja) * | 2012-01-26 | 2013-08-15 | Nippon Telegr & Teleph Corp <Ntt> | クラスタリング装置及び方法及びプログラム |
Non-Patent Citations (1)
Title |
---|
BINNA, ROBERT ET AL.: "SpiderStore: A Native Main Memory Approach for Graph Storage", PROCEEDINGS OF THE 23RD GI-WORKSHOP ON FOUNDATIONS OF DATABASE (GRUNDLAGEN VON DATENBANKEN), JPN7018001931, 31 May 2011 (2011-05-31), pages 91 - 96, XP055234647 * |
Also Published As
Publication number | Publication date |
---|---|
WO2016053824A1 (en) | 2016-04-07 |
EP3201800A1 (en) | 2017-08-09 |
US20160092595A1 (en) | 2016-03-31 |
CN107077485A (zh) | 2017-08-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11580168B2 (en) | Method and system for providing context based query suggestions | |
JP5449628B2 (ja) | マルチステージを使用したカテゴリ情報の決定 | |
US9940399B2 (en) | Methods and systems for pathing analysis | |
WO2017084362A1 (zh) | 模型生成方法、推荐方法及对应装置、设备和存储介质 | |
WO2018149292A1 (zh) | 一种对象聚类方法和装置 | |
JP2019533205A (ja) | ユーザキーワード抽出装置、方法、及びコンピュータ読み取り可能な記憶媒体 | |
CN104965826B (zh) | 基于浏览器的检索方法及检索装置 | |
US9910821B2 (en) | Data processing method, distributed processing system, and program | |
US10956450B2 (en) | Dense subset clustering | |
JP6608972B2 (ja) | ソーシャルネットワークに基づいてグループを探索する方法、デバイス、サーバ及び記憶媒体 | |
US10467307B1 (en) | Grouping of item data using seed expansion | |
US10482086B2 (en) | Identifying similar database queries | |
CN104199969A (zh) | 网页数据分析方法及装置 | |
CN102955821A (zh) | 一种对查询序列进行扩展处理的方法与设备 | |
US20170293629A1 (en) | Merging multiple groups of records containing duplicates | |
KR102086936B1 (ko) | 사용자 데이터 공유 방법 및 디바이스 | |
JP6511417B2 (ja) | バーティカルベースのクエリのオプション化 | |
JP2017530477A (ja) | グラフを処理するためのシステムおよび方法 | |
Liu et al. | Bpgm: A big graph mining tool | |
US20150339392A1 (en) | Multi-query search system and method | |
CN111008873B (zh) | 一种用户确定方法、装置、电子设备及存储介质 | |
JP2011028509A (ja) | 関連性判定装置、関連性判定方法およびプログラム | |
CN106844553A (zh) | 基于样本数据的数据探测和扩充方法及装置 | |
CN109213972B (zh) | 确定文档相似度的方法、装置、设备和计算机存储介质 | |
US10394913B1 (en) | Distributed grouping of large-scale data sets |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20170526 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20180525 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20180614 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20190129 |