(57)【特許請求の範囲】
【請求項１】
第１のノードと、該第１のノードに少なくとも１つのパスによって接続される第２のノードとの間のネットワーク接続を決定する方法であって、該方法は、
ネットワークコミュニティ内の該第１のノードから該第２のノードまでのパスを識別することであって、各パスは、１つ以上のリンクを含み、各リンクにユーザ接続値が割り当てられている、ことと、
処理回路を使用して、
該識別されたパスの各々について正規化されたパス重みを決定することと、
該識別されたパスの各々について、該パス内のリンクに割り当てられたユーザ接続値を識別することと、
該識別されたパスの各々について、該識別されたユーザ接続値と該正規化されたパス重みとの積を計算することと、
該計算された積を合計することにより、ネットワーク接続表示を生成することと、
サードパーティ評定データにアクセスすることと、
該サードパーティ評定データに少なくとも部分的に基づいて、該ネットワーク接続表示を決定することと、
該ネットワーク接続表示を出力することと
を行うことと
を含む、方法。
【請求項２】
リンク閾値にアクセスすることをさらに含み、前記ネットワークコミュニティ内の前記第１のノードから前記第２のノードまでの前記パスを識別することは、該アクセスされたリンク閾値よりも少ないリンクを含有するパスのみを識別することを含む、請求項１に記載の方法。
【請求項３】
パス重み閾値にアクセスすることをさらに含み、前記ネットワークコミュニティ内の前記第１のノードから前記第２のノードまでの前記パスを識別することは、該アクセスされたパス重み閾値を上回る前記正規化されたパス重みを有するパスのみを識別することを含む、請求項１に記載の方法。
【請求項４】
前記処理回路は、前記識別されたパスのうちの１つの識別されたパスについての前記正規化されたパス重みを、該識別されたパス全てのパス重みの合計で該１つの識別されたパス内のリンクに割り当てられたユーザ接続値の積を除算することによって、決定する、請求項１に記載の方法。
【請求項５】
前記処理回路は、前記識別されたパスの各１つの識別されたパスについて、該パス内のリンクに割り当てられた前記ユーザ接続値を、該１つの識別されたパス内のリンクに割り当てられた最小接続値を識別することによって、識別する、請求項１に記載の方法。
【請求項６】
前記ユーザ接続値は、主観的なユーザ信頼値または能力査定値のうちの少なくとも１つを表す、請求項１に記載の方法。
【請求項７】
前記ネットワークコミュニティ内の前記第１のノードから前記第２のノードまでの前記パスを識別することは、ソーシャルネットワーキングサービスからデータにアクセスすることを含む、請求項１に記載の方法。
【請求項８】
前記ネットワークコミュニティ内の前記第１のノードから前記第２のノードまでの前記パスを識別することは、データベースにおけるテーブルから、該第１のノードから該第２のノードまでの該パスについての事前に記憶された識別を回収することを含む、請求項１に記載の方法。
【請求項９】
前記ネットワーク接続表示に少なくとも部分的に基づいて、少なくとも１つのネットワークベースの決定を自動的に行うことをさらに含む、請求項１に記載の方法。
【請求項１０】
第１のノードと、該第１のノードに少なくとも１つのパスによって接続される第２のノードとの間のネットワーク接続を決定するシステムであって、該システムは、処理回路を備え、該処理回路は、
ネットワークコミュニティ内の該第１のノードから該第２のノードまでのパスを識別することであって、各パスは、１つ以上のリンクを含み、各リンクにユーザ接続値が割り当てられている、ことと、
該識別されたパスの各々について正規化されたパス重みを決定することと、
該識別されたパスの各々について、該パス内のリンクに割り当てられたユーザ接続値を識別することと、
該識別されたパスの各々について、該識別されたユーザ接続値と該正規化されたパス重みとの積を計算することと、
該計算された積を合計することにより、ネットワーク接続表示を生成することと、
サードパーティ評定データにアクセスすることと、
該サードパーティ評定データに少なくとも部分的に基づいて、該ネットワーク接続表示を決定することと、
該ネットワーク接続表示を出力することと
を行うように構成される、システム。
【請求項１１】
前記処理回路は、リンク閾値にアクセスするようにさらに構成され、該処理回路は、該アクセスされたリンク閾値よりも少ないリンクを含有するパスのみを識別することによって、前記ネットワークコミュニティ内の前記第１のノードから前記第２のノードまでの前記パスを識別する、請求項１０に記載のシステム。
【請求項１２】
前記処理回路は、パス重み閾値にアクセスするようにさらに構成され、該処理回路は、該アクセスされたパス重み閾値を上回る前記正規化されたパス重みを有するパスのみを識別することによって、前記ネットワークコミュニティ内の前記第１のノードから前記第２のノードまでの前記パスを識別する、請求項１０に記載のシステム。
【請求項１３】
前記処理回路は、前記識別されたパスのうちの１つの識別されたパスについての前記正規化されたパス重みを、該識別されたパス全てのパス重みの合計で該１つの識別されたパス内のリンクに割り当てられたユーザ接続値の積を除算することによって、決定する、請求項１０に記載のシステム。
【請求項１４】
前記処理回路は、前記識別されたパスの各１つの識別されたパスについて、該パス内のリンクに割り当てられた前記ユーザ接続値を、該１つの識別されたパス内のリンクに割り当てられた最小接続値を識別することによって、識別する、請求項１０に記載のシステム。
【請求項１５】
前記ユーザ接続値は、主観的なユーザ信頼値または能力査定値のうちの少なくとも１つを表す、請求項１０に記載のシステム。
【請求項１６】
前記処理回路は、ソーシャルネットワーキングサービスからデータにアクセスすることによって、前記ネットワークコミュニティ内の前記第１のノードから前記第２のノードまでの前記パスを識別する、請求項１０に記載のシステム。
【請求項１７】
前記処理回路は、データベースにおけるテーブルから、前記第１のノードから前記第２のノードまでの前記パスについての事前に記憶された識別を回収することによって、前記ネットワークコミュニティ内の該第１のノードから該第２のノードまでの該パスを識別する、請求項１０に記載のシステム。
【請求項１８】
前記処理回路は、前記ネットワーク接続表示に少なくとも部分的に基づいて、少なくとも１つのネットワークベースの決定を自動的に行うようにさらに構成される、請求項１０に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
（発明の背景）
本発明は、概して、個人および／またはエンティティのネットワークおよびネットワークコミュニティに関し、特に、個人および／またはエンティティまたは個人および／またはエンティティのネットワーク内またはこれらの間の信頼（ｔｒｕｓｔ）スコアまたは接続を決定するためのシステムおよび方法に関する。
【背景技術】
【０００２】
個人またはネットワークコミュニティ内のエンティティの接続または関係は、その個人またはエンティティの属性を推測するために使用され得る。例えば、個人またはネットワークコミュニティ内のエンティティの接続は、（例えば、識別の請求および承認について決定するために使用される）個人またはエンティティの識別、個人またはエンティティの信頼性または名声、または特定のコミュニティまたは特定のコミュニティのサブセットにおけるその個人またはエンティティのメンバーシップ、状態、および／または影響を決定するために使用され得る。
【０００３】
しかしながら、ネットワークコミュニティ内の個人またはエンティティの接続は、数量化することが困難である。例えば、ネットワークコミュニティは、何百、何千、何百万、何十億またはより多くのメンバーを含み得る。各メンバーは、それ自体およびおそらくはコミュニティの他のメンバーについての接続情報の変動する度合いを所有し得る。この情報のうちのいくつかは、非常に信頼できるか、または客観的であり得、他の情報は、あまり信頼できないおよび主観的ではなくあり得る。加えて、コミュニティメンバーからの接続情報は、種々の形態および種々のスケールで得られ得、１人のメンバーの「信頼性」または「能力」および接続情報を、別のメンバーの「信頼性」または「能力」および接続情報と意義深く比較することが困難になる。さらに、多くの個人は、複数のコミュニティに属し得、ネットワークコミュニティ内の信頼および接続の数量化可能な表示の決定をさらに複雑にする。個人の接続の数量化可能な表現が決定される場合であっても、個人について現実世界の決定を行うために（例えば、個人を信頼するか否か）、この表現を意義深く使用することは、多くの場合、困難である。
【０００４】
さらに、これらの現実世界の決定をあらかじめ（つまり、予想されるイベントに先んじて）行うことが有用であり得る。こうした予想分析は、個人としては困難であり得、またはネットワークコミュニティ内のエンティティの接続は、個人またはエンティティの間の接続として急速に変化し得、およびネットワークコミュニティ内の別のものは量的または質的に変化し得る。この分析は、複数のコミュニティを横断して適用される場合のように、ますます複雑になる。
【発明の概要】
【課題を解決するための手段】
【０００５】
上記に鑑みて、システムおよび方法は、ネットワークコミュニティ内のノード間の接続を決定し、接続から信頼性または能力等の属性を推測するために提供される。接続は、少なくとも部分的に、以下により詳細に記載される種々のグラフ走査（ｇｒａｐｈ  ｔｒａｖｅｒｓａｌ）および正規化技術を使用して、決定されてもよい。
【０００６】
一実施形態では、パスカウンティングアプローチは、ネットワークコミュニティ内の第１のノードｎ１と第２のノードｎ２との間のパスの数をカウントするように処理回路が構成される場合に使用され得る。次いで、接続評定Ｒｎ１ｎ２は、ノードに割り当てられ得る。割り当てられた接続評定は、他の考えられる尺度（ｍｅａｓｕｒｅ）の間でも、２つのノードを接続するサブパスの数、または関係に比例してもよい。尺度としてサブパスの数を使用し、第１のノードｎ１と第２のノードｎ２との間の１つ以上の中間ノードを有するパスは、適正な数（例えば、中間ノードの数）によってスケールされてもよく、このスケールされた数は、接続評定を計算するために使用されてもよい。
【０００７】
いくつかの実施形態では、重み付けされたリンクが、サブパスカウンティングアプローチに加えて、またはこれの代替として使用される。処理回路は、ネットワークコミュニティ内の第１のノードｎ１と第２のノードｎ２とを接続する各パスへ相対的なユーザ重みを割り当てるように構成されてもよい。ユーザ接続値は、各リンクに割り当てられてもよい。例えば、ノードｎ１に関連付けられるユーザまたはエンティティは、ノードｎ１から全ての実行中のパスについてのユーザ接続値を割り当ててもよい。いくつかの実施形態では、ユーザまたはエンティティによって割り当てられた接続値は、ノードｎ２に関連付けられたユーザまたはエンティティ内のユーザまたはエンティティの信頼を示してもよい。特定のユーザまたはエンティティに割り当てられたリンク値は、各リンクについての相対的なユーザ重みを決定するために、互いに比較されてもよい。
【０００８】
各リンクの相対的なユーザ重みは、そのユーザ（つまり、アウトリンク値）によって割り当てられた全てのユーザ接続値の平均をまず計算することによって決定されてもよい。ｔｉがリンクｉに割り当てられたユーザ接続値である場合、そのリンクに割り当てられた相対的なユーザ重みｗｉは、以下の式に従って求められ得る。
【０００９】
【数１】
0005965511.tif 000002
パスの全体的な重みを決定するために、いくつかの実施形態では、パスに沿った全てのリンクの重みを一緒に乗算してもよい。全体的なパスの重みは、以下の式によって求められ得る。
【００１０】
【数２】
0005965511.tif 000003
パスの接続値は、以下の式に従って、全体的なパスの重みによって乗算されたパス内の全リンクの最小ユーザ接続値として定義されてもよい。
【００１１】
【数３】
0005965511.tif 000004
パス接続値を決定するために、いくつかの実施形態では、並列計算フレームワークまたは分散計算フレームワーク（または両方）を使用してもよい。例えば、一実施形態では、コアプロセッサの数は、Ａｐａｃｈｅ  ＨａｄｏｏｐまたはＧｏｏｇｌｅ  ＭａｐＲｅｄｕｃｅクラスタを実装する。このクラスタは、新しいパスリンク値およびパスの重みの決定に関連して、分散計算のうちのいくつかまたは全てを実施してもよい。
【００１２】
処理回路は、ネットワークコミュニティ内の変化したノードを識別してもよい。例えば、新しい実行中のリンクを追加してもよい、リンクを除去してもよい、またはユーザ接続値が変化されていてもよい。変化したノードの識別に応じ、いくつかの実施形態では、処理回路は、関与されるネットワークコミュニティまたはコミュニティ内のいくつかまたは全てのノードに関連付けられたリンク、パス、および重み値を再計算してもよい。
【００１３】
いくつかの実施形態では、ネットワークコミュニティ内の影響されるノードに関連付けられた値のみが、変化したノードが識別された後に再計算される。ネットワークコミュニティ内に少なくとも１つの変化したノードが存在する場合、変化したノードまたはノードは、まず準備プロセスを実施してもよい。準備プロセスは、「マップ」フェーズおよび「低減」フェーズを含んでもよい。準備プロセスのマップフェーズにおいて、準備プロセスは、並列計算フレームワーククラスタ内のコアに分散されるより小さいサブプロセスに分割されてもよい。例えば、各ノードまたはリンク変化（例えば、アウトリンク変化に対するテールおよびインリンク変化に対するヘッド）は、並列計算のために異なるコアにマップされてもよい。準備プロセスの低減フェーズにおいて、各アウトリンクの重みは、式（１）に従って判別されてもよい。アウトリンク重みのそれぞれは、アウトリンク重み（または任意の他の適した値）の合計によって正規化されてもよい。ノードテーブルは、各変化したノード、そのインリンク、およびそのアウトリンクについて更新されてもよい。
【００１４】
変化したノードが作成された後、各変化したノードから発されるパスが計算されてもよい。また再び、このプロセスの「マップ」および「低」フェーズを定義してもよい。このプロセス中、いくつかの実施形態では、ノード有向グラフまたはノードツリーの深さ優先の回収を実施してもよい。全ての影響される祖先ノードが識別されてもよい、また、それらのパスが再計算されてもよい。
【００１５】
いくつかの実施形態では、パフォーマンスを向上させるために、パスは、パス内の最後のノードによってグループ化されてもよい。例えば、ノードｎ１で終了する全てのパスが共にグループ化されてもよく、ノードｎ２で終了する全てのパスがグループ化されてもよい、等である。これらのパスグループは、（例えば、単一のデータベーステーブルの異なるカラムに）別々に記憶されてもよい。いくつかの実施形態では、パスグループは、ＨＢａｓｅクラスタを実装するキー値ストアのカラムに記憶されてもよい（または、ＢｉｇＴａｂｌｅ等の任意の他の圧縮された、ハイパフォーマンスデータベースシステム）。
【００１６】
いくつかの実施形態では、１つ以上の閾値関数を定義してもよい。閾値関数または関数は、接続決定または接続計算で分析されるパスの最大リンク数を決定するために使用されてもよい。閾値要因は、さらに、最小リンク重み、パスの重み、または両方について定義されてもよい。ユーザ定義またはシステム定義の閾値未満である重みは、接続決定または接続計算で無視されてもよく、十分な大きさの重みのみを考慮してもよい。
【００１７】
いくつかの実施形態では、ユーザ接続値は、第１のノードと第２のノードとの間の信頼度を表してもよい。一実施形態では、ノードｎ１は、それとノードｎ２との間のリンクにｌ１のユーザ接続値を割り当ててもよい。ノードｎ２は、さらに、それとノードｎ１との間の逆のリンクへｌ２のユーザ接続値を割り当ててもよい。ｌ１およびｌ２の値は、リンクによって接続されるノードに関連付けられる個人またはエンティティの信頼性の少なくとも部分的に主観的な表示であってもよい。例えば、ネットワークコミュニティ（またはいくつか他のコミュニティ）内の個人またはエンティティの名声、状態、および／または影響、（例えば、政治的、社会的、または宗教的な連携）信頼機関（ｔｒｕｓｔｉｎｇ  ｐａｒｔｙ）を有する個人またはエンティティの連携、個人またはエンティティとの過去の対応、および個人またはエンティティの特性および完全性（または任意の他の関連する考慮点）のうちの１つ以上は、信頼を示す部分的に主観的なユーザ接続値を決定するために使用されてもよい。ユーザ（またはノードによって認証された他の個人）は、個人またはエンティティへノードを接続する実行中のリンクにこの値を割り当ててもよい。いくつかの実施形態では、信頼を示す合成されたユーザ接続値を形成するために、客観的な尺度（例えば、サードパーティの評定エージェンシーまたは信用情報機関からのデータ）をさらに使用してもよい。主観的、客観的、または両方のタイプの尺度は、自動的に取得されてもよい、または分析のために手動で入力されてもよい。
【００１８】
いくつかの実施形態では、意思決定アルゴリズムは、ユーザの代理として自動決定（例えば、承認または識別リクエスト等の自動ネットワークベースの決定）を行うために、接続値にアクセスしてもよい。接続値は、さらにまたは代替として、サードパーティにおいて配置される外部システムおよびプロセスに出力されてもよい。外部システムおよびプロセスは、少なくとも部分的に、受信した接続値に基づくトランザクションを自動的に開始する（またはいくつか特定の一連のアクションを取る）ように構成されてもよい。例えば、電子的またはオンライン広告は、少なくとも部分的に、ネットワーク接続値に基づくネットワークコミュニティのメンバーのサブグループを対象としていてもよい。
【００１９】
いくつかの実施形態において、意思決定アルゴリズムはあらかじめ（例えば、信用リクエストのような予期されるイベントの前に）決定を行うために、接続値にアクセスしてもよい。かかる決定は、ユーザのリクエストによって、または自動化されたプロセス（例えば、顧客情報のデータベースの信用情報機関の周期的な自動化された分析）の一部として行われてもよい。この予想分析は、流体的および／または動的なトランザクションの開始（またはいくつか特定のアクションを取ること）を可能にしてもよい。
本明細書は、例えば、以下の項目も提供する。
（項目１）
第１のノードと、該第１のノードに少なくとも１つのパスによって接続される第２のノードとの間のネットワーク接続を決定する方法であって、該方法は、
ネットワークコミュニティ内の該第１のノードから該第２のノードまでのパスを識別することと、
処理回路を使用することであって、それにより、
各識別されたパスについて正規化されたパスの重みを決定することと、
各識別されたパスについてユーザ接続値を決定することと、
各識別されたパスについて、ネットワーク接続表示を生成するために、該ユーザ接続値と該正規化されたパスの重みとの積を合計することと、
該ネットワーク接続表示を出力することと
を行う、ことと
を含む、方法。
（項目２）
リンク閾値にアクセスすることをさらに含み、ネットワークコミュニティ内の前記第１のノードから前記第２のノードまでのパスを識別することは、該アクセスされたリンク閾値よりも少ないリンクを含有するパスのみを識別することを含む、項目１に記載の方法。
（項目３）
パスの重みの閾値にアクセスすることをさらに含み、ネットワークコミュニティ内の前記第１のノードから前記第２のノードまでのパスを識別することは、該アクセスされたパスの重みの閾値を上回る正規化されたパスの重みを有するパスのみを識別することを含む、項目１に記載の方法。
（項目４）
前記制御回路は、識別されたパスにおける各リンクのリンク重みの積を、全ての識別されたパスの前記パスの重みの合計で除算することによって、各識別されたパスについての正規化されたパスの重みを決定する、項目１に記載の方法。
（項目５）
前記制御回路は、識別されたパスについての前記パスの重みと該識別されたパスにおけるリンクに割り当てられた最小接続値とを乗算することによって、各識別されたパスについてのユーザ接続値を決定する、項目１に記載の方法。
（項目６）
前記ユーザ接続値は、主観的なユーザ信頼値または能力査定値のうちの少なくとも１つを表す、項目１に記載の方法。
（項目７）
前記制御回路を使用することをさらに含み、それにより、
サードパーティ評定データにアクセスすることと、
該サードパーティの評定情報に少なくとも部分的に基づいて、前記ネットワーク接続表示を決定することと
を行う、項目６に記載の方法。
（項目８）
ネットワークコミュニティ内の前記第１のノードから前記第２のノードまでのパスを識別することは、ソーシャルネットワーキングサービスからデータにアクセスすることを含む、項目１に記載の方法。
（項目９）
ネットワークコミュニティ内の前記第１のノードから前記第２のノードまでのパスを識別することは、データベースにおけるテーブルから、該第１のノードから該第２のノードまでの該パスについての事前に記憶された識別を回収することを含む、項目１に記載の方法。
（項目１０）
前記ネットワーク接続表示に少なくとも部分的に基づいて、少なくとも１つのネットワークベースの決定を自動的に行うことをさらに含む、項目１に記載の方法。
（項目１１）
第１のノードと、該第１のノードに少なくとも１つのパスによって接続される第２のノードとの間のネットワーク接続を決定するシステムであって、該システムは、処理回路を備え、該処理回路は、
ネットワークコミュニティ内の該第１のノードから該第２のノードまでのパスを識別することと、
各識別されたパスについて正規化されたパスの重みを決定することと、
各識別されたパスについてユーザ接続値を決定することと、
各識別されたパスについて、ネットワーク接続表示を生成するために、該ユーザ接続値と該正規化されたパスの重みとの積を合計することと、
該ネットワーク接続表示を出力することと
を行うように構成される、システム。
（項目１２）
前記処理回路は、リンク閾値にアクセスするようにさらに構成され、前記制御回路は、該アクセスされたリンク閾値よりも少ないリンクを含有するパスのみを識別することによって、ネットワークコミュニティ内の前記第１のノードから前記第２のノードまでのパスを識別する、項目１１に記載のシステム。
（項目１３）
前記処理回路は、パスの重みの閾値にアクセスするようにさらに構成され、前記制御回路は、該アクセスされたパスの重みの閾値を上回る正規化されたパスの重みを有するパスのみを識別することによって、ネットワークコミュニティ内の前記第１のノードから前記第２のノードまでのパスを識別する、項目１１に記載のシステム。
（項目１４）
前記制御回路は、識別されたパスにおける各リンクのリンク重みの積を全ての識別されたパスの前記パスの重みの合計で除算することによって、各識別されたパスについて正規化されたパスの重みを決定する、項目１１に記載のシステム。
（項目１５）
前記制御回路は、識別されたパスについての前記パスの重みと該識別されたパスにおけるリンクに割り当てられた最小接続値とを乗算することによって、各識別されたパスについてのユーザ接続値を決定する、項目１１に記載のシステム。
（項目１６）
前記ユーザ接続値は、主観的なユーザ信頼値または能力査定値のうちの少なくとも１つを表す、項目１１に記載のシステム。
（項目１７）
前記制御回路は、
サードパーティの評定データにアクセスすることと、
該サードパーティの評定情報に少なくとも部分的に基づいて、前記ネットワーク接続表示を決定することと
を行うように構成される、項目１６に記載のシステム。
（項目１８）
前記制御回路は、ソーシャルネットワーキングサービスからデータにアクセスすることによって、ネットワークコミュニティ内の前記第１のノードから前記第２のノードまでのパスを識別する、項目１１に記載のシステム。
（項目１９）
前記制御回路は、データベースにおけるテーブルから、前記第１のノードから前記第２のノードまでの前記パスについての事前に記憶された識別を回収することによって、ネットワークコミュニティ内の該第１のノードから該第２のノードまでのパスを識別する、項目１１に記載のシステム。
（項目２０）
前記制御回路は、前記ネットワーク接続表示に少なくとも部分的に基づいて、少なくとも１つのネットワークベースの決定を自動的に行うようにさらに構成される、項目１１に記載のシステム。
（項目２１）
第１のノードと、該第１のノードに少なくとも１つのパスによって接続される第２のノードとの間のネットワーク接続を決定するシステムであって、該システムは、
ネットワークコミュニティ内の該第１のノードから該第２のノードまでのパスを識別する手段と、
各識別されたパスについて正規化されたパスの重みを決定する手段と、
各識別されたパスについてユーザ接続値を決定する手段と、
各識別されたパスについて、ネットワーク接続表示を生成するために、該ユーザ接続値と該正規化されたパスの重みとの積を合計する手段と、
該ネットワーク接続表示を出力する手段と
を備える、システム。
（項目２２）
リンク閾値にアクセスする手段をさらに備え、ネットワークコミュニティ内の前記第１のノードから前記第２のノードまでのパスを識別する前記手段は、該アクセスされたリンク閾値よりも少ないリンクを含有するパスのみを識別する手段を備える、項目２１に記載のシステム。
（項目２３）
パスの重みの閾値にアクセスする手段をさらに備え、ネットワークコミュニティ内の前記第１のノードから前記第２のノードまでのパスを識別する前記手段は、該アクセスされたパスの重みの閾値を上回る正規化されたパスの重みを有するパスのみを識別する手段を備える、項目２１に記載のシステム。
（項目２４）
各識別されたパスについて正規化されたパスの重みを決定する前記手段は、識別されたパスにおける各リンクについてのリンクの重みの積を、全ての識別されたパスの該パスの重みの合計によって除算する手段を備える、項目２１に記載のシステム。
（項目２５）
各識別されたパスについてのユーザ接続値を決定する前記手段は、識別されたパスについての前記パスの重みと該識別されたパスにおけるリンクに割り当てられた最小接続値とを乗算する手段を備える、項目２１に記載のシステム。
（項目２６）
前記ユーザ接続値は、主観的なユーザ信頼値または能力査定値のうちの少なくとも１つを表す、項目２１に記載のシステム。
（項目２７）
サードパーティの評定データにアクセスする手段と、
該サードパーティの評定情報に少なくとも部分的に基づいて、前記ネットワーク接続表示を決定する手段と
をさらに備える、項目２６に記載のシステム。
（項目２８）
ネットワークコミュニティ内の前記第１のノードから前記第２のノードまでのパスを識別する前記手段は、ソーシャルネットワーキングサービスからデータにアクセスする手段を備える、項目２１に記載のシステム。
（項目２９）
ネットワークコミュニティ内の前記第１のノードから前記第２のノードまでのパスを識別する前記手段は、データベースにおけるテーブルから、該第１のノードから該第２のノードまでの該パスについての事前に記憶された識別を回収する手段を備える、項目２１に記載のシステム。
（項目３０）
前記ネットワーク接続表示に少なくとも部分的に基づいて、少なくとも１つのネットワークベースの決定を自動的に行う手段をさらに備える、項目２１に記載のシステム。
【図面の簡単な説明】
【００２０】
本発明の上記および他の特徴、その性質および種々の利点は、添付の図面に関して記載される以下の詳細な説明を考慮するとより明らかになる。
【図１】図１は、本発明の一実施形態に従う、ネットワークコミュニティ内の接続をサポートするために使用されるネットワークアーキテクチャの例示的なブロック図である。
【図２】図２は、本発明の一実施形態に従う、ネットワークコミュニティ内の接続をサポートするために使用されるネットワークアーキテクチャの別の例示的なブロック図である。
【図３Ａ】図３Ａおよび３Ｂは、本発明の一実施形態に従うネットワークコミュニティ内の接続決定をサポートするための例示的なデータテーブルを示す。
【図３Ｂ】図３Ａおよび３Ｂは、本発明の一実施形態に従うネットワークコミュニティ内の接続決定をサポートするための例示的なデータテーブルを示す。
【図４Ａ】図４Ａ〜４Ｄは、本発明の一実施形態に従うネットワークコミュニティ内の接続決定をサポートするための例示的なプロセスを示す。
【図４Ｂ】図４Ａ〜４Ｄは、本発明の一実施形態に従うネットワークコミュニティ内の接続決定をサポートするための例示的なプロセスを示す。
【図４Ｃ】図４Ａ〜４Ｄは、本発明の一実施形態に従うネットワークコミュニティ内の接続決定をサポートするための例示的なプロセスを示す。
【図４Ｄ】図４Ａ〜４Ｄは、本発明の一実施形態に従うネットワークコミュニティ内の接続決定をサポートするための例示的なプロセスを示す。
【図４Ｅ】図４Ｅは、本発明の一実施形態に従うネットワークコミュニティ内の接続決定をサポートするための例示的なプロセスを示す。
【図５】図５は、ターゲットノードへの全てのパスのクエリを実行し、本発明の一実施形態に従うネットワーク接続値を計算するための例示的なプロセスを示す。
【発明を実施するための形態】
【００２１】
ネットワークコミュニティ内のノード間の接続を決定するためのシステムおよび方法が提供される。本明細書に定義されているように、「ノード」は、任意のユーザ端子、ネットワークデバイス、コンピュータ、モバイルデバイス、アクセスポイント、または任意の他の電子デバイスを含んでもよい。いくつかの実施形態では、ノードは、さらに、個々の人間、エンティティ（例えば、公的企業または民間企業、コーポレーション、有限責任会社（ＬＬＣ）、合名会社、個人事業主、または慈善団体等の法的エンティティ）、概念（例えば、ソーシャルネットワーキンググループ）、動物、または無生物（例えば、車、飛行機、またはツール）を表してもよい。本明細書にさらに定義されるように、「ネットワークコミュニティ」は、ノードの集合を含んでもよく、デバイス、個人、またはエンティティの任意のグループを表してもよい。
【００２２】
例えば、ソーシャルネットワーキングウェブサイトまたはソーシャルネットワーキングサービス（またはオンラインゲームコミュニティ等の任意の他のタイプのウェブサイトまたはサービス）のユーザの全てのまたはいくつかのサブセットは、単一のネットワークコミュニティを構成してもよい。各ユーザは、ネットワークコミュニティ内のノードによって表されてもよい。別の例として、特定のニュースグループまたは分散リストの全ての加入者は、単一のネットワークコミュニティを構成してもよく、各個人加入者は、ネットワークコミュニティ内のノードによって表されてもよい。任意の特定のノードは、ゼロ、１つ、または１つより多いネットワークコミュニティに属してもよい、またはノードは、コミュニティの全てまたはサブセットから禁止されてもよい。ネットワークコミュニティの追加、削除、およびリンク変化を促進するために、いくつかの実施形態では、ネットワークコミュニティは、方向づけられたグラフ、または有向グラフ、重み付けされた有向グラフ、ツリー、または任意の他の適したデータ構造によって表されてもよい。
【００２３】
図１は、ネットワークコミュニティ内の接続決定をサポートするために使用される例示的なネットワークアーキテクチャ１００を示す。ユーザは、通信ネットワーク１０４においてアプリケーションサーバ１０６にアクセスするためにアクセスアプリケーション１０２を利用してもよい。例えば、アクセスアプリケーション１０２は、標準的なウェブブラウザを含んでもよく、アプリケーションサーバ１０６は、ウェブサーバを含んでもよく、および通信ネットワーク１０６は、インターネットを含んでもよい。アクセスアプリケーション１０２は、１つ以上のプラットフォームまたはデバイスについて特別に開発された独占的（ｐｒｏｐｒｉｅｔａｒｙ）アプリケーションをさらに含んでもよい。例えば、アクセスアプリケーション１０２は、Ａｐｐｌｅ  ｉＯＳ、Ａｎｄｒｏｉｄ、またはＷｅｂＯＳアプリケーションまたは通信ネットワーク１０４においてアプリケーション１０６にアクセスする際に使用される任意の適したアプリケーションの１つ以上のインスタンスを含んでもよい。複数のユーザは、クセスアプリケーション１０２の１つ以上のインスタンスを介してアプリケーションサービス１０６にアクセスしてもよい。例えば、複数のモバイルデバイスは、デバイス上においてローカルで実施するアクセスアプリケーション１０２のインスタンスをそれぞれ有してもよい。１人以上のユーザは、アプリケーションサーバ１０６と相互作用するように、アクセスアプリケーション１０２のインスタンスを有してもよい。
【００２４】
通信ネットワーク１０４は、インターネット、ＷｉＭａｘ、広域セルラー、またはローカルエリアワイアレスネットワーク等の任意の有線のまたは無線のネットワークを含んでもよい。通信ネットワーク１０４は、Ｂｌｕｅｔｏｏｔｈ（登録商標）および赤外線ネットワーク等のパーソナルエリアネットワークをさらに含んでもよい。通信ネットワーク１０４上の通信は、任意の適したセキュリティまたは暗号化プロトコルを用いて、暗号化または安全にされてもよい。
【００２５】
ファイルまたはウェブサーバ等の任意のネットワークサーバまたは仮想サーバを含んでもよいアプリケーションサーバ１０６は、ローカルでまたは任意の適したネットワーク接続によってデータソース１０８にアクセスしてもよい。アプリケーションサーバ１０６は、処理回路（例えば、１つ以上のマイクロプロセッサ）、メモリ（例えば、ＲＡＭ、ＲＯＭ、および混合タイプのメモリ）、記憶デバイス（例えば、ハードドライブ、光学ドライブ、およびテープドライブ）をさらに含んでもよい。アプリケーションサーバ１０６に含まれる処理回路は、本発明のネットワーク接続決定をサポートするためのサーバプロセスを実施してもよく、一方で、アクセスアプリケーション１０２は、対応するクライアントプロセスを実施する。アプリケーションサーバ１０６に含まれる処理回路は、さらに、ネットワーク接続の決定に関連して、本明細書に記載される計算および計算のいずれかを実施してもよい。いくつかの実施形態では、その上にコンピュータプログラム論理が記録されたコンピュータ可読媒体は、アプリケーションサーバ１０６内に含まれる。コンピュータプログラム論理は、ネットワークコミュニティ内の２つ以上のノードの間の接続を決定してもよく、表示画面またはデータへかかる接続を出力してもよい、またはしなくてもよい。
【００２６】
例えば、アプリケーションサーバ１０６は、インターネット、安全な非公開ＬＡＮ、または任意の他の通信ネットワークを通じてデータソース１０８にアクセスしてもよい。データソース１０８は、サードパーティのソーシャルネットワーキングサービスおよびサードパーティの評定機関からのデータ等の１つ以上のサードパーティのデータソースを含んでもよい。例えば、データソース１０８は、Ｆａｃｅｂｏｏｋ、ＭｙＳｐａｃｅ、ｏｐｅｎＳｏｃｉａｌ、Ｆｒｉｅｎｄｓｔｅｒ、Ｂｅｂｏ、ｈｉ５、Ｏｒｋｕｔ、ＰｅｒｆＳｐｏｔ、Ｙａｈｏｏ！３６０、ＬｉｎｋｅｄＩｎ、Ｔｗｉｔｔｅｒ、Ｇｏｏｇｌｅ  Ｂｕｚｚ、Ｒｅａｌｌｙ  Ｓｉｍｐｌｅ  Ｓｙｎｄｉｃａｔｉｏｎリーダーまたは任意の他のソーシャルネットワーキングウェブサイトまたは情報サービスのうちの１つ以上からのユーザおよび関係データ（例えば、「友達」または「フォロワー」データ）を含んでもよい。データソース１０８は、アクセスアプリケーション１０２を介してアプリケーションサーバ１０６にアクセスするユーザについての関係情報を含有するアプリケーションサーバ１０６にローカルなデータストアおよびデータベースをさらに含んでもよい（例えば、アドレスのデータベース、法的記録、交通機関の乗客リスト、ギャンブルパターン、政治的および／またはチャリティ寄付、政治的所属、車両ライセンスプレートまたは識別番号、統一製品コード、ニュース記事、ビジネスリスティング、および病院または大学所属）。
【００２７】
アプリケーションサーバ１０６は、データストア１１０、キー値ストア１１２、および並列計算フレームワーク１１４のうちの１つ以上と通信してもよい。任意のリレーショナルデータベース管理システム（ＲＤＢＭＳ）、ファイルサーバ、または記憶システムを含んでもよいデータストア１１０は、１つ以上のネットワークコミュニティに関する情報を記憶してもよい。例えば、データテーブル３００（図３Ａ）のうちの１つ以上は、データストア１１０に記憶されてもよい。データストア１１０は、ネットワークコミュニティ内のユーザおよびエンティティについての識別情報、ネットワークコミュニティ内のノードの識別、ユーザリンクおよびパスの重み、ユーザ構成設定、システム構成設定、および／または任意の他の適した情報を記憶してもよい。ネットワークコミュニティ毎にデータストア１１０の１つのインスタンスが存在してもよいか、またはデータストア１１０は、複数のネットワークコミュニティに関する情報を記憶してもよい。例えば、データストア１１０は、ネットワークコミュニティ毎に１つのデータベースを含んでもよいか、または１つのデータベースは、全ての利用可能なネットワークコミュニティについての情報を記憶してもよい（例えば、データベーステーブル毎に１つのネットワークコミュニティについての情報）。
【００２８】
任意の並列または分散計算フレームワークまたはクラスタを含んでもよい並列計算フレームワーク１１４は、同時に、分散的に、または両方で実施されるより小さなジョブに、計算ジョブを分割するように構成されてもよい。例えば、並列計算フレームワーク１１４は、アプリケーションが、そのそれぞれが任意のコアプロセッサまたはコアのクラスタ上で実施または再実施されてもよい複数の小さい仕事のフラグメントに分割されてもよい場合にマップ／低減計算パラダイムを実装することにより、データ集中分散アプリケーションをサポートしてもよい。並列計算フレームワーク１１４の適した例は、Ａｐａｃｈｅ  Ｈａｄｏｏｐクラスタを含む。
【００２９】
並列計算フレームワーク１１４は、さらにコアのクラスタの形態を取ってもよい、キー値ストア１１２とのインターフェースを取ってもよい。キー値ストア１１２は、並列計算フレームワーク１１４によって実装されるマップ／低減計算パラダイムと共に使用するためのキー値ペアのセットを保持してもよい。例えば、並列計算フレームワーク１１４は、キー値ペアのデータセット上の分散動作のシーケンスとして大規模な分散計算を表現してもよい。ユーザ定義マップ／低減ジョブは、クラスタで複数のノードにわたって実施されてもよい。本明細書に記載の処理および計算は、少なくとも部分的に、プロセッサの任意のタイプまたはプロセッサの組み合わせによって実施されてもよい。例えば、並列コンピューティングおよび処理を大規模に実施するために、種々のタイプの量子プロセッサ（例えば、固体の量子プロセッサおよび光ベースの量子プロセッサ）、人工的中立ネットワーク等を使用してもよい。
【００３０】
いくつかの実施形態では、並列計算フレームワーク１１４は、２つの別のフェーズ、「マップ」フェーズおよび「低減」フェーズをサポートしてもよい。計算への入力は、キー値ストア１１２において記憶されたキー値ペアのデータセットを含んでもよい。マップフェーズにおいて、並列計算フレームワーク１１４は、入力データセットを多数のフラグメントに分割または除算し、マップタスクへ各フラグメントを割り当ててもよい。並列計算フレームワーク１１４は、さらに、それが動作するノードのクラスタにおいてマップタスクを分散してもよい。各マップタスクは、その割り当てられたフラグメントからのキー値ペアを消費し（ｃｏｎｓｕｍｅ）、中間キー値ペアのセットを生成してもよい。各入力キー値ペアについて、マップタスクは、入力を異なるキー値ペアに変化させるユーザ定義されたマップ関数を呼び出してもよい。マップフェーズ後に、並列計算フレームワーク１１４は、キーによって中間データセットをソートし、特定のキーに関連付けられた全ての値が共に現れるように、タプルの集合を生成する。並列計算フレームワーク１１４は、さらに、低減タスク数に等しいフラグメントの数に、タプルの集合をパーティション分割してもよい。
【００３１】
低減フェーズでは、各低減タスクは、それに割り当てられたタプルのフラグメントを消費してもよい。各かかるタプルについて、低減タスクは、出力キー値ペアにタプルを変化させるユーザ定義低減関数を呼び出してもよい。並列計算フレームワーク１１４は、次いで、ノードのクラスタにおいて多くの低減タスクを分散し、各低減タスクへ中間データの適正なフラグメントを提供してもよい。
【００３２】
計算中に１つ以上のノードが失敗する場合、かかる失敗されたノードに割り当てられたタスクが残りのノードにおいて再分散されてもよいように、各フェーズ内のタスクはフォールトトレラントで実施されてもよい。この挙動は、負荷バランシングおよび失敗したタスクの、低い実施時間オーバーヘッドによる再実施を可能にしてもよい。
【００３３】
キー値ストア１１２は、確実に大きなファイルを記憶できる任意の分散ファイルシステムを実装してもよい。例えば、キー値ストア１１２は、Ｈａｄｏｏｐの自己分散ファイルシステム（ＤＦＳ）またはＨＢａｓｅ等のより拡張可能なカラム指向分散データベースを実装してもよい。かかるファイルシステムまたはデータベースは、任意の数のテーブルカラムのサポート等のＢｉｇＴａｂｌｅのような機能を含んでもよい。
【００３４】
図１では、図面が複雑になりすぎることを防止するために、アクセスアプリケーション１０２、通信ネットワーク１０４、アプリケーションサーバ１０６、データソース１０８、データストア１１０、キー値ストア１１２、および並列計算フレームワーク１１４の単一のインスタンスのみを示すが、実際には、ネットワークアーキテクチャ１００は、上記のコンポーネントのうちの１つ以上の複数のインスタンスを含んでもよい。加えて、キー値ストア１１２および並列計算フレームワーク１１４は、いくつかの実施形態でさらに除かれてもよい。図２のネットワークアーキテクチャ２００に示されるように、キー値ストア１１２および／または並列計算フレームワーク１１４によって実施される並列または分散計算は、固定のコアの代わりにモバイルデバイス２０２のクラスタによって、さらにまたは代替として実施されてもよい。いくつかの実施形態では、モバイルデバイス２０２、キー値ストア１１２、および並列計算フレームワーク１１４のクラスタは、ネットワークアーキテクチャ内に全て存在する。特定のアプリケーションプロセスおよび計算は、モバイルデバイス２０２のクラスタによって実施されてもよく、特定の他のアプリケーションプロセスおよび計算は、キー値ストア１１２および並列計算フレームワーク１１４によって実施されてもよい。加えて、いくつかの実施形態では、通信ネットワーク１０４自体は、アプリケーションプロセスおよび計算のうちのいくつかまたは全てを実施してもよい。例えば、特別に構成されたルータまたはサテライトは、本明細書に記載のアプリケーションプロセスおよび計算のうちのいくつかまたは全てを実施するように適合された処理回路を含んでもよい。
【００３５】
モバイルデバイス２０２のクラスタは、ＰＤＡ、携帯電話、モバイルコンピュータ、または任意の他のモバイルコンピューティングデバイス等の１つ以上のモバイルデバイスを含んでもよい。モバイルデバイス２０２のクラスタは、マイクロプロセッサ（例えば、余分な処理時間による）、記憶、または両方を含有する任意のアプライアンス（例えば、オーディオ／ビデオシステム、電子レンジ、冷蔵庫、フードプロセッサ）をさらに含んでもよい。アプリケーションサーバ１０６は、並列計算フレームワーク１１４およびマップ／低減計算パラダイムによって複数の固定されたコアへ分散されるのと同様に、計算、記憶、または両方を実施するように、モバイルデバイス２０２のクラスタ内のデバイスを命令してもよい。モバイルデバイス２０２のクラスタ内の各デバイスは、個別の計算ジョブ、記憶ジョブ、または両方を実施してもよい。アプリケーションサーバ１０６は、各分散ジョブの結果を組み合わせ、計算の最終結果を返してもよい。
【００３６】
図３Ａは、本発明の接続決定をサポートするために使用される例示的なデータテーブル３００を示す。テーブル３００のうちの１つ以上は、例えば、データストア１１０内のリレーショナルデータベースに記憶されてもよい（図１）。テーブル３０２は、ネットワークコミュニティ内に登録される全てのノードの識別を記憶してもよい。一意の識別子は、各ノードに割り当てられ、テーブル３０２に記憶されてもよい。加えて、ストリング名は、各ノードに関連付けられ、テーブル３０２に記憶されてもよい。上記に記載のように、いくつかの実施形態では、ノードは個人またはエンティティを表してもよく、その場合、ストリング名は、個人または人物の名および／または姓、ニックネーム、ハンドル、またはエンティティ名を含んでもよい。
【００３７】
テーブル３０４は、ユーザ接続値を記憶してもよい。いくつかの実施形態では、ユーザ接続値は、（例えば、アプリケーションサーバ１０６（図１）による）システムによって自動的に割り当てられてもよい。例えば、アプリケーションサーバ１０６（図１）は、ネットワークコミュニティのメンバー間の全ての電子相互作用（例えば、電子通信、電子取引、または両方）を監視してもよい。いくつかの実施形態では、デフォルトのユーザ接続値（例えば、リンク値１）は、最初に、ネットワークコミュニティ内の全てのリンクに割り当てられてもよい。ネットワークコミュニティ内の２つ以上のノードの間で電子相互作用が識別された後に、ユーザ接続値は、ノードの間の相互作用のタイプおよび相互作用の結果によって、上または下方向に連携されてもよい。例えば、２つのノードの間の各単純な電子メールの交換は、固定された大きさだけ、これらの２つのノードを接続するユーザ接続値を自動的に増減させてもよい。２つのノードの間のより複雑な相互作用（例えば、積またはサービスセールスまたはクエリ）は、いくつかのより大きい固定された大きさだけ、これらの２つのノードを接続するユーザ接続値を増減してもよい。いくつかの実施形態では、２つのノードの間のユーザ接続値は、ユーザまたはノードが、相互作用が好ましくないか、正常に完了されていないか、または不利であることを示さない限り、常に増加してもよい。例えば、トランザクションは、時間通りに実施されなかった可能性があるか、または電子メール交換が特に不快であった（ｄｉｓｐｌｅａｓｉｎｇ）可能性がある。不利な相互作用は、自動的にユーザ接続値を下げる可能性があり、一方で、全ての他の相互作用は、ユーザ接続値（または影響がない）を増加させる可能性がある。加えて、ユーザ接続値は、外部ソースを用いて自動的に取得されてもよい。例えば、サードパーティのデータソース（評定エージェンシーおよび信用情報機関等）は、接続情報について自動的にクエリが実行されてもよい。この接続情報は、完全に客観的な情報、完全に主観的な情報、部分的に客観的であって部分的に主観的である合成された情報、任意の他の適した接続情報、または上記の任意の組み合わせを含んでもよい。
【００３８】
いくつかの実施形態では、ユーザ接続値は、ネットワークコミュニティのメンバーによって手動で割り当てられてもよい。これらの値は、例えば、２人のユーザまたは２つのノードの間の信頼の度合いまたはレベル、あるいはいくつかの試みにおける、あるノードの別のノードの能力についての査定値を表してもよい。上記に記載のように、ユーザ接続値は、いくつかの実施形態において、主観的なコンポーネントおよび客観的なコンポーネントを含んでもよい。主観的なコンポーネントは、第１のユーザまたはノードが第２のユーザ、ノード、コミュニティ、またはサブコミュニティをどれほど信頼性が高いと判断するかを示す信頼性「スコア」を含んでもよい。このスコアまたは値は、完全に主観的であり、２人のユーザ、２つのノード、またはコミュニティの間の相互作用に基づいてもよい。主観的および客観的なコンポーネントを含む合成されたユーザ接続値が、さらに使用されてもよい。例えば、サードパーティの情報は、例えば、消費者のクレーム数、信用度スコア、社会経済学的要因（例えば、年齢、収入、政治的または宗教的所属、および犯罪歴）、またはメディアあるいは回収エンジン回収における引用／ヒット数に基づく客観的なコンポーネントを形成するように閲覧されてもよい。サードパーティの情報は、通信ネットワーク１０４（図１）を用いてアクセスされてもよい。例えば、サードパーティの信用情報機関のデータベースは、ポーリングされてもよい、または犯罪歴情報を含む個人バイオグラフィーおよびバックグラウンド情報は、（例えば、データソース１０８（図１）からアクセスされてもよい、または別々のデータソースの一部として）サードパーティのデータベースまたはデータソースまたはノード、ユーザ、またはシステム管理者によって直接入力されてもよい。
【００３９】
テーブル３０４は、リンクヘッド、リンクテールの識別、およびリンクのユーザ接続値を記憶してもよい。リンクは、双方向であってもよい、または双方向でなくてもよい。例えば、ノードｎ１からノードｎ２までのユーザ接続値は、ノードｎ２からノードｎ１までのリンクとは異なって（および全く分かれて）いてもよい。特に、上記に記載の信頼という文脈において、各ユーザはユーザ自身のユーザ接続値をリンクに割り当てることができる（つまり、２人のユーザは、いくつかの実施形態では互いに等しい量、信頼する必要がない）。
【００４０】
テーブル３０６は、テーブル３０４の監査ログを記憶してもよい。テーブル３０６は、ネットワークコミュニティにおいてどのノードまたはリンクが変化したかを決定するように分析されてもよい。いくつかの実施形態では、データベーストリガは、テーブル３０４内のデータの変化が検出される場合に必ず、テーブル３０６に監査記録を自動的に挿入するように使用される。例えば、新しいリンクが作成されてもよい、リンクが除去されてもよい、またはユーザ接続値が変化されてもよい。この監査ログは、あらかじめ（つまり、予期されるイベントの前に）作成される接続値に関する決定を可能にしてもよい。かかる決定は、ユーザのリクエストにより、または図５について以下に記載のプロセス等の自動化されたプロセスの一部として、行われてもよい。この予想分析は、流体的および／または動的なトランザクションの開始（またはいくつかの特定のアクションを取ること）を可能にしてもよい。かかる変化が検出された後、トリガは、テーブル３０６内の新しい行を自動的に作成してもよい。テーブル３０６は、変化したノードの識別、および変化したリンクヘッド、変化したリンクテールの識別、ならびに変化したリンクに割り当てられるユーザ接続値を記憶してもよい。テーブル３０６は、変化および動作コードの時刻を示すタイムスタンプをさらに記憶してもよい。いくつかの実施形態では、動作コードは、それぞれ、リンクの挿入された、ユーザ接続値の変化、またはリンクの削除に対応する「ｉｎｓｅｒｔ」、「ｕｐｄａｔｅ」、または「ｄｅｌｅｔｅ」動作を含んでもよい。他の実施形態では、他の動作コードを使用してもよい。
【００４１】
図３Ｂは、本発明の接続決定をサポートするために使用される例示的なデータ構造３１０を示す。いくつかの実施形態では、データ構造３１０は、キー値ストア１１２（図１）を使用して記憶されてもよく、一方で、テーブル３００は、データストア１１０に記憶される（図１）。上記に記載のように、キー値ストア１１２（図１）は、ＨＢａｓｅ記憶システムを実装してもよく、ＢｉｇＴａｂｌｅサポートを含んでもよい。従来のリレーショナルデータベース管理システムと同様に、図３Ｂに示されるデータは、テーブルに記憶されてもよい。しかしながら、ＢｉｇＴａｂｌｅサポートは、各テーブル内の任意の数のカラムを可能にしてもよく、一方で、従来のリレーショナルデータベース管理システムは、固定された数のカラムを必要としてもよい。
【００４２】
データ構造３１０は、ノードテーブル３１２を含んでもよい。図３Ｂに示される例において、ノードテーブル３１２は、いくつかのカラムを含む。ノードテーブル３１２は、６４ビット、１２８ビット、２５６ビット、５１２ビット、または１０２４ビットの整数を記憶してもよい、行識別子カラム３１４を含んでもよく、ノードテーブル３１２内の各行（例えば、各ノード）を一意に識別するように使用されてもよい。カラム３１６は、現行のノードの全ての着信リンクのリストを含んでもよい。カラム３１８は、現行のノードの全ての実行中のリンクのリストを含んでもよい。カラム３２０は、現行のノードが接続されるノード識別子のリストを含んでもよい。第１のノードは、第２のノードに達するために実行中のリンクがフォローされてもよい場合に、第２のノードに接続されてもよい。例えば、Ａ−＞Ｂである場合、ＡがＢに接続されるが、ＢはＡに接続されなくてもよい。以下により詳細に記載されているように、図４Ｂに示されるプロセス４００（図４Ａ）の部分の間、カラム３２０が使用されてもよい。ノードテーブル３１２は、１つ以上の「バケツ」カラム３２２をさらに含んでもよい。これらのカラムは、現行のノードをターゲットノードに接続するパスのリストを記憶してもよい。上記に記載のように、パス（例えば、ターゲットノード）内の最後のノードによるパスのグループ化は、接続の計算を促進してもよい。図３Ｂに示されるように、いくつかの実施形態では、スキャンを促進するために、バケツカラム名は、「ｂｕｃｋｅｔ：」カラムの終了に付加されるターゲットノード識別子を含んでもよい。
【００４３】
図４Ａ〜４Ｄは、ネットワークコミュニティ内のノードの接続を決定するための例示的なプロセスを示す。図４Ａは、ネットワークコミュニティに関連付けられる接続グラフ（または任意の他の適したデータ構造）を更新するためのプロセス４００を示す。上記に記載のように、いくつかの実施形態では、各ネットワークコミュニティは、それ自体の接続グラフ、有向グラフ、ツリー、または他の適したデータ構造に関連付けられる。他の実施形態では、複数のネットワークコミュニティは、１つ以上の接続グラフ（または他のデータ構造）を共有してもよい。
【００４４】
いくつかの実施形態では、図４Ａ〜４Ｄについて記載のプロセスは、あらかじめ（つまり、予期されたイベントの前に）決定するように実施されてもよい。図５に関して以下に記載のプロセス等、かかる決定は、ユーザのリクエストによってまたは自動化されたプロセスの一部として、実施されてもよい。この予想分析は、流体的および／または動的にトランザクションの開始（またはいくつかの特定のアクションを取ること）を可能にしてもよい。
【００４５】
ステップ４０２において、少なくとも１つのノードがネットワークコミュニティにおいて変化しているか否かを決定する。上記に記載のように、監査記録は、ノードが変化した後にテーブル３０６（図３）に挿入されてもよい。テーブル３０６（図３）を分析することにより、新しいリンクが追加された、既存のリンクが除去された、またはユーザ接続値が変化したという決定が（例えば、図１のアプリケーションサーバ１０６により）行われてもよい。ステップ４０４において、ノードが変化したと決定される場合、プロセス４００は、変化したノードを準備するためにステップ４１０（図４Ｂに示される）へ、変化したノードから発するパスを計算するためにステップ４１２（図４Ｃに示される）へ、変化したノードを通過するパスを除去するためにステップ４１４（図４Ｄに示される）へ、および変化したノードを通過するパスを計算するためにステップ４１６（図に示される４Ｅ）へと実行する。図４Ｂ、４Ｃ、４Ｄ、および４Ｅに示される１つよりも多いステップまたはタスクが、例えば、コアのクラスタを使用して並列に実施されてもよいことに留意されたい。例えば、図４Ｂに示される複数のステップまたはタスクは、並列または分散的に実施されてもよく、図４Ｃに示される複数のステップまたはタスクは並列または分散的に実施されてもよく、図４Ｄに示される複数のステップまたはタスクは並列または分散的に実施されてもよく、図４Ｅに示される複数のステップまたはタスクは並列または分散的に実施されてもよい。このようにして、プロセス４００に関連付けられる全体的な待ち時間が低減してもよい。
【００４６】
ステップ４０４においてノード変化が検出されない場合、プロセス４００は、ステップ４０６においてスリープモードに入る。例えば、いくつかの実施形態では、アプリケーションスレッドまたはプロセスは、少なくとも１つのノードまたはリンクがネットワークコミュニティで変化したか否かを決定するように実行的にチェックしてもよい。他の実施形態では、アプリケーションスレッドまたはプロセスは、変化したリンクおよびノードをｎ秒毎に周期的にチェックしてもよく、ここでｎは任意の正の数である。ステップ４１６において変化したノードが通過するパスが計算された後に、またはステップ４０６におけるスリープ期間の後に、プロセス４００は、ステップ４０８においてループするか否かを決定してもよい。例えば、全ての変化したノードが更新されない場合、プロセス４００は、ステップ４１８において停止してもよい。しかしながら、処理すべきより多くの変化したノードまたはプロセスへのリンクが存在する場合、プロセス４００は、ステップ４０８においてループし、ステップ４０４に返ってもよい。
【００４７】
実際に、プロセス４００に示される１つ以上のステップは、他のステップと組み合わせられるか、任意の適した順序で実施されるか、並列で実施されるか（例えば、同時にまたは実質的に同時に）、または除去されてもよい。
【００４８】
図４Ｂ〜４Ｅは、それぞれ、「マップ」フェーズおよび「低減」フェーズを有するプロセスを含む。上記に記載のように、これらのフェーズは、並列計算フレームワーク１１４（図１）、キー値ストア１１２（図１）、または両方によって実施されるマップ／低減計算パラダイムの一部を形成されてもよい。図４Ｂに示されるように、任意の変化したノードを作成するために、マップフェーズ４２０は、ステップ４２２においてより多いリンク変化が存在するか否かを決定すること、ステップ４４０において次のリンク変化を回収すること、ステップ４４２においてテールからアウトリンクまでの変化をマップすること、およびステップ４４４においてヘッドからインリンク変化をマップすることを含んでもよい。
【００４９】
ステップ４２２においてこれ以上のリンク変化がない場合、低減フェーズ４２４では、ステップ４２６において、処理すべきより多くのノードおよびリンク変化が存在すると決定されてもよい。その場合、ステップ４２８において次のノードおよびそのリンク変化が回収されてもよい。最も最近のリンク変化は、ステップ４３０において保存されてもよく、一方で、任意の中間リンク変化がより最近の変化に代わられてもよい。例えば、各リンクまたはノード変化の時刻を決定するために、テーブル３０６（図３）に記憶されたタイムスタンプを使用してもよい。ステップ４３２において、平均アウトリンクユーザ接続値が計算されてもよい。例えば、ノードｎ１が割り当てられたユーザ接続値を有する８つのアウトリンクを有する場合、これらの８つのユーザ接続値は、ステップ４３２において平均化されてもよい。ステップ４３４において、各アウトリンクの重みは、上記の式（１）に従って計算されてもよい。全てのアウトリンク重みは、合計され、ステップ４３６において各アウトリンク重みを正規化するように使用されてもよい。例えば、各アウトリンク重みは、全てのアウトリンク重みの合計によって分割されてもよい。これは、各アウトリンクの０および１の間の重みを生じさせてもよい。ステップ４３８において、変化したノード、インリンク、およびアウトリンクの既存のバケツを保存してもよい。例えば、バケツは、キー値ストア１１２（図１）またはデータストア１１０（図１）に保存してもよい。ステップ４２６においてこれ以上処理するノードおよびリンク変化がない場合、プロセスは、ステップ４４６において停止してもよい。
【００５０】
図４Ｃに示されるように、変化したノードから発されるパスを計算するためには、マップフェーズ４４８は、ステップ４５０においてより多くの変化したノードが存在するか否かを決定すること、ステップ４６６において次の変化したノードを回収すること、ステップ４６８においてＮＵＬＬパスへ変化したノードをマップすることにより、削除のために既存のバケツをマークすること、ステップ４７０において以下のアウトリンクによってパスを反復的に生成すること、およびパスが条件付きのパスである場合に、テールをパスにマップすることを含んでもよい。条件付きのパスは、１つ以上の事前定義された閾値関数を満たすパスを含んでもよい。例えば、閾値関数は、最小パスの重みを指定してもよい。最小パスの重みよりも大きいパスの重みを有するパスは、条件付きのパスとして指定されてもよい。
【００５１】
ステップ４５０において変化したノードがこれ以上存在しない場合、低減フェーズ４５２では、ステップ４５４において、処理すべきより多くのノードおよびパスがあるか否かが決定されてもよい。その場合、ステップ４５６において、次のノードおよびそのパスを回収してもよい。ステップ４５８において、バケツは、それらのヘッドによってパスをグループ化することにより作成されてもよい。バケツがステップ４６０においてＮＵＬＬパスのみを含む場合、ノードテーブル内の対応するセルは、ステップ４６２において削除されてもよい。バケツがＮＵＬＬパスより多くを含む場合、ステップ４６４において、バケツは、ノードテーブル内の対応するセルへ保存される。ステップ４５６において、処理すべきノードおよびパスがこれ以上存在しない場合、ステップ４７４においてプロセスは停止してもよい。
【００５２】
図４Ｄに示されるように、変化したノードを通過するパスを除去するために、マップフェーズ４７６は、ステップ４７８において変化したノードがこれ以上あるか否かを決定すること、およびステップ４８８において次の変化したノードを回収することを含んでもよい。ステップ４９０において、変化したノードに対応するノードテーブル（例えば、ノードテーブル３１２のカラム３２２（共に図３Ｂ））内の「ｂｕｃｋｅｔ：」カラムをスキャンしてもよい。例えば、上記に記載のように、ターゲットノード識別子は、「ｂｕｃｋｅｔ：」カラム名の最後に付加されてもよい。各バケツは、現行のノードをターゲットノードに接続するパスのリスト（例えば、変化したノード）を含んでもよい。ステップ４９２において、スキャンによって見つかった各一致するノードおよび変化したノードの古いバケツについて、一致するノードが（変化したノード、古いバケツ）削除ペアに一致されてもよい。
【００５３】
ステップ４７８において変化したノードがこれ以上存在しない場合、低減フェーズ４８０において、ステップ４８４において、処理すべきより多くのノードおよび削除ペアがあると決定されてもよい。その場合、ステップ４８４において次のノードおよびその削除ペアを回収してもよい。ステップ４８６において、各削除ペアについて、古いバケツ内の変化したノードを通過する任意のパスは削除されてもよい。ステップ４８２において処理すべきノードおよび削除ペアがこれ以上ない場合、プロセスは、ステップ４９４において停止してもよい。
【００５４】
図４Ｅに示されるように、変化したノードを通過するパスを計算するためには、マップフェーズ４９６は、ステップ４９８において変化したノードがさらにあると決定すること、およびステップ５０８において次の変化したノードを回収することを含んでもよい。ステップ５１０において、変化したノードに対応するノードテーブル（例えば、ノードテーブル３１２のカラム３２２（共に図３Ｂ））内の「ｂｕｃｋｅｔ：」カラムをスキャンしてもよい。ステップ５１２において、スキャンで見つかった各一致するノードおよび変化したノードのパスについて、スキャンされたバケツ内の全てのパスは、変化したバケツの全てのパスと結合されてもよい。ステップ５１４において、各一致するノードは、各条件付きの結合されたパスにマップされてもよい。
【００５５】
ステップ４９８において変化したノードがこれ以上存在しない場合、低減フェーズ５００では、ステップ５０２において処理すべきノードおよびパスがさらに存在することを決定してもよい。その場合、ステップ５０４において、次のノードおよびそのパスを回収してもよい。各パスは、ステップ５０６において適正なノードバケツに追加されてもよい。ステップ５０２において処理すべきノードおよびパスがこれ以上存在しない場合、プロセスはステップ５１６において停止してもよい。
【００５６】
図５は、第１のノードからターゲットノードまでの全てのパスのユーザクエリをサポートするための例示的なプロセス５２０を示す。例えば、第１のノード（例えば、第１の個人またはエンティティを表す）が、第１のノードが、ネットワークコミュニティ内のいくつかの第２のノード（例えば、第２の個人またはエンティティを表す）にどのように接続するかを知りたいと思ったとする。上記に記載の信頼の文脈において（およびユーザ接続値が、例えば、少なくとも部分的に主観的なユーザ信頼値を表す場合）、このクエリは、第１のノードが第２のノードをどのくらい信頼してもよいかの表示を返してもよい。概して、２つのノードを接続するより多くのパスは、より大きい（または例えば、逆の評定が使用されている場合にはより小さい）ネットワーク接続値（またはネットワーク信頼の大きさ）を生じさせてもよい。
【００５７】
ステップ５２２において、行識別子が第１のノード識別子と等しく、カラムが「ｂｕｃｋｅｔ：」カラム名プリフィクスに付加されるターゲットノード識別子と等しい場合に、ノードテーブルセルがアクセスされる。全てのパスは、ステップ５２４においてこのセルから読み込まれてもよい。ステップ５２４において読み込まれるパスに割り当てられたパスの重みは、ステップ５２６において合計されてもよい。ステップ５２８において、パスの重みは、パスの重みの計算された合計によって、各パスの重みを分割することで正規化されてもよい。ネットワーク接続値は、ステップ５３０において計算されてもよい。例えば、各パスのユーザ接続値は、その正規化されたパスの重みが乗算されてもよい。ネットワーク接続値は、次いで、いくつかの実施形態では、以下の式に従って計算されてもよい。
【００５８】
【数４】
0005965511.tif 000005
式中、ｔｐａｔｈはパス（式（３）に従って与えられる）のユーザ接続値であり、ｗｐａｔｈはそのパスの正規化された重みである。ネットワーク接続値は、保持または出力（例えば、ディスプレイデバイス上に表示、アプリケーションサーバ１０６の処理回路によって出力、および／またはデータストア１１０（図１）上に記憶）されてもよい。加えて、意思決定アルゴリズムは、ユーザの代わりに自動決定（例えば、承認または識別リクエスト等の自動ネットワークベースの決定）を行うために、ネットワーク接続値にアクセスしてもよい。ネットワーク接続値は、さらにまたは代替として、サードパーティに配置される外部システムおよびプロセスに出力されてもよい。外部システムおよびプロセスは少なくとも部分的に、受信したネットワーク接続値に基づいて、トランザクションを自動的に開始する（またはいくつか特定の行動指針を取る）ように構成されてもよい。プロセス５２０は、ステップ５３２において停止してもよい。
【００５９】
実際に、プロセス５２０に示される１つ以上のステップは、他のステップと共に組み合わせられ、任意の適した順序で実施され、並列（例えば、同時にまたは実質的に同時に）で実施され、または除かれてもよい。加えて、上記に記載のように、計算の複雑性を低減するために種々の閾値関数を使用してもよい。例えば、トラバース（ｔｒａｖｅｒｓｅ）への最大数のリンクを定義する閾値関数を定義してもよい。閾値関数によって指定される閾値よりも多く含有するパスは、ネットワーク接続決定において考慮されなくてもよい。加えて、リンクおよびパスの重みに関する種々の閾値関数を定義してもよい。閾値関数によって指定される閾値重み未満のリンクまたはパスは、ネットワーク接続決定で考慮されなくてもよい。
【００６０】
プロセス５２０は第１のノードからターゲットノードまでの全てのパスの単一のユーザクエリを記述しているが、実際の実装において、ノードのグループは、グループ内の各ノードから特定のターゲットノードまでの全てのパスの単一のクエリを開始してもよい。例えば、ネットワークコミュニティの複数のメンバーは、全て、ターゲットノードへのグループクエリを開始してもよい。プロセス５２０は、グループ内の各クエリノードの個人ネットワーク接続値またはクエリグループ内の全てのノードを考慮する単一の合成されたネットワーク接続値を返してもよい。例えば、個人ネットワーク接続値は、合成された値を形成するために平均化されてもよく、またはいくつか重み付けされた平均を使用してもよい。各個々のネットワーク接続値に割り当てられた重みは、例えば、コミュニティ内のセキュリティ（例えば、各ノードがどれだけ長くコミュニティ内のメンバーであるか）、ランク、または社会的な名声に基づいてもよい。加えて、いくつかの実施形態では、ユーザは、単一のクエリ内の複数のターゲットノードのネットワーク接続値のリクエストを開始してもよい。例えば、ノードｎ１が、それと複数の他のノードとの間のネットワーク接続値を決定することを望んでもよい。例えば、複数の他のノードは、ノードｎ１によって特定のトランザクションを開始するためのいくつかの候補を表してもよい。単一のクエリ内の全てのネットワーク接続値のクエリを実行することにより、計算は、結果の一部または全てを実質的に同時に計算するように、複数のコアへ並列に分散されてもよい。
【００６１】
加えて、クエリは、多くの方法で開始されてもよい。例えば、（ソースノードによって表される）ユーザは、自動的にプロセス５２０を開始するために（ターゲットノードによって表される）別のユーザを識別してもよい。例えば、視覚的ディスプレイ、グラフ、またはツリーからターゲットノードを選択することにより、ユーザ名、ハンドル、ネットワークアドレス、電子メールアドレス、電話番号、地理的座標、またはターゲットノードに関連付けられた一意の識別子を入力または選択することにより、または所定のコマンド（例えば、「クエリノード１」または「クエリノードグループ１、５、９」、ここで１、５、および９が一意のノード識別子を表す）をスピークすることにより、ユーザは、任意の適した方法でターゲットノードを識別してもよい。ターゲットノードまたはノードの識別が受信された後に、プロセス５２０が自動的に実施されてもよい。プロセス（例えば、個々または合成されたネットワーク接続値）の結果は、上記に記載のように、１つ以上のサードパーティのサービスまたはプロセスに自動的に送信されてもよい。
【００６２】
一実施形態では、ユーザは、通信ネットワーク１０４（さらに、図１を参照）を通じてアプリケーションサーバ１０６にアクセスし、自動的にプロセス５２０を開始するために送信されるユーザクエリを生成するために、アクセスアプリケーション１０２を利用してもよい。例えば、ユーザは、Ａｐｐｌｅ  ｉＯＳ、Ａｎｄｒｏｉｄ、またはＷｅｂＯＳアプリケーションまたは通信ネットワーク１０４を通じてアプリケーション１０６にアクセスする際に使用するための任意の適したアプリケーションにアクセスしてもよい。アプリケーションは、Ｆａｃｅｂｏｏｋ、ＭｙＳｐａｃｅ、ｏｐｅｎＳｏｃｉａｌ、Ｆｒｉｅｎｄｓｔｅｒ、Ｂｅｂｏ、ｈｉ５、Ｏｒｋｕｔ、ＰｅｒｆＳｐｏｔ、Ｙａｈｏｏ！３６０、ＬｉｎｋｅｄＩｎ、Ｔｗｉｔｔｅｒ、Ｇｏｏｇｌｅ  Ｂｕｚｚ、Ｒｅａｌｌｙ  Ｓｉｍｐｌｅ  Ｓｙｎｄｉｃａｔｉｏｎリーダーまたは任意の他のソーシャルネットワーキングウェブサイトまたは情報サービスのうちの１つ以上からそのユーザ（例えば、「友達」または「フォロワー」データ）に関連された関係データの検索可能なリストを表示してもよい。いくつかの実施形態では、ユーザは、直ちに（ｒｅａｄｉｌｙ）、リストされていない関係データ、つまり、Ｆａｃｅｂｏｏｋ、Ｔｗｉｔｔｅｒ、または関係データの検索可能なリストに表示されていないターゲットノードの情報の任意の適したデータベースを検索してもよい。ユーザは、ユーザがターゲットノードにどのように接続するかの尺度をリクエストするために、上記に記載のようにターゲットノードを選択（例えば、「友達」または「フォロワー」を表すユーザ名のリストから項目を選択）してもよい。図３および４Ａ〜Ｄについて記載のプロセスを使用して、このクエリは、ユーザがターゲットノードをどれだけ信頼してもよいかの表示を返してもよい。返された表示は、任意の適したインジケータを用いてユーザに表示されてもよい。いくつかの実施形態では、インジケータは、ターゲットノードがユーザに対してどれだけ信頼性があるのかを示すパーセンテージであってもよい。
【００６３】
いくつかの実施形態では、ユーザは、ターゲットノードがどれだけ信頼性があるかの少なくとも部分的に主観的な表示の手動の割り当てを提供するように、アクセスアプリケーション１０２を利用してもよい。例えば、ユーザは、ユーザが選択されたターゲットノード（例えば、選択された「友達」または「フォロワー」）を特定の度合いに信頼することを指定してもよい。特定の度合いは、ターゲットノードがどれほどの信頼性があるかのユーザの認識を表すパーセンテージの形態であってもよい。ユーザは、上記に記載のプロセス５２０の前、後、最中にこの表示を提供してもよい。ユーザ（例えば、信頼性の少なくとも部分的に主観的な表示）によって提供される表示は、上記に記載のように、１つ以上のサードパーティのサービスまたはプロセスに自動的に送信されてもよい。いくつかの実施形態では、ユーザによって提供される表示は、ノードおよび／またはリンクをネットワークコミュニティ内で変化させてもよい。この変化により、図３および４Ａ〜４Ｄについて記載のように種々のプロセスをトリガする、ネットワークコミュニティ内で少なくとも１つのノードおよび／またはリンクが変化しているという決定が行われてもよい。
【００６４】
いくつかの実施形態では、上記に記載の重み付けされたリンクアプローチに加えてまたはこれの代わりに、パスカウンティングアプローチを使用してもよい。（例えば、アプリケーションサーバ１０６の）処理回路は、ネットワークコミュニティ内の第１のノードｎ１と第２のノードｎ２との間のパス数をカウントするように構成されてもよい。接続評定Ｒｎ１ｎ２は、ノードに割り当てられてもよい。割り当てられた接続評定は、パス数、または２つのノードを接続する関係に比例してもよい。第１のノードｎ１と第２のノードｎ２との間の１つ以上の中間ノードを有するパスは、適正な数（例えば、中間ノードの数）によってスケールされてもよく、接続評定を計算するためにこのスケールされた数を使用してもよい。
【００６５】
上記に提示される各式は、同様の種類の式のクラスとして構成すべきであり、提示される実際の式は代表的なクラスの例である。例えば、上記に提示される式は、これらの式、低減、簡略化、正規化の全ての数学的に同等なバージョン、および同じ度合いの他の式を含む。
【００６６】
本発明の上記に記載の実施形態は、例示を目的としてのものであり、制限を目的として提示されているものではない。以下の番号を振られたパラグラフは、本発明のさらなる実施形態を示す。
【図１】
0005965511.tif 000006
【図２】
0005965511.tif 000007
【図３Ａ】
0005965511.tif 000008
【図３Ｂ】
0005965511.tif 000009
【図４Ａ】
0005965511.tif 000010
【図４Ｂ】
0005965511.tif 000011
【図４Ｃ】
0005965511.tif 000012
【図４Ｄ】
0005965511.tif 000013
【図４Ｅ】
0005965511.tif 000014
【図５】
0005965511.tif 000015