特開2015-164055(P2015-164055A)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ チュラプコ, エバン ブイの特許一覧 ▶ チャン, レオ エム.の特許一覧

<>
  • 特開2015164055-コミュニティ内の接続の決定 図000007
  • 特開2015164055-コミュニティ内の接続の決定 図000008
  • 特開2015164055-コミュニティ内の接続の決定 図000009
  • 特開2015164055-コミュニティ内の接続の決定 図000010
  • 特開2015164055-コミュニティ内の接続の決定 図000011
  • 特開2015164055-コミュニティ内の接続の決定 図000012
  • 特開2015164055-コミュニティ内の接続の決定 図000013
  • 特開2015164055-コミュニティ内の接続の決定 図000014
  • 特開2015164055-コミュニティ内の接続の決定 図000015
  • 特開2015164055-コミュニティ内の接続の決定 図000016
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】特開2015-164055(P2015-164055A)
(43)【公開日】2015年9月10日
(54)【発明の名称】コミュニティ内の接続の決定
(51)【国際特許分類】
   G06Q 50/10 20120101AFI20150814BHJP
   G06F 17/30 20060101ALI20150814BHJP
【FI】
   G06Q50/10
   G06F17/30 419B
【審査請求】有
【請求項の数】18
【出願形態】OL
【全頁数】25
(21)【出願番号】特願2015-85003(P2015-85003)
(22)【出願日】2015年4月17日
(62)【分割の表示】特願2012-531192(P2012-531192)の分割
【原出願日】2010年9月30日
(31)【優先権主張番号】61/247,343
(32)【優先日】2009年9月30日
(33)【優先権主張国】US
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.ANDROID
2.FACEBOOK
3.MYSPACE
4.LinkedIn
5.TWITTER
6.Orkut
(71)【出願人】
【識別番号】512081041
【氏名又は名称】チュラプコ, エバン ブイ
(71)【出願人】
【識別番号】512081052
【氏名又は名称】チャン, レオ エム.
(74)【代理人】
【識別番号】100078282
【弁理士】
【氏名又は名称】山本 秀策
(74)【代理人】
【識別番号】100113413
【弁理士】
【氏名又は名称】森下 夏樹
(72)【発明者】
【氏名】チュラプコ, エバン ブイ
(72)【発明者】
【氏名】チャン, レオ エム.
【テーマコード(参考)】
5L049
【Fターム(参考)】
5L049CC11
(57)【要約】      (修正有)
【課題】コミュニティ内でノード間の接続を決定するためのソーシャルグラフデータ分析用の好適なシステム及び方法を提供する。
【解決手段】ユーザはコミュニティの他のメンバーにユーザ接続値を割り当ててもよく、接続値はサードパーティから自動的に取得または割り当てられても、コミュニティのメンバー間の相互作用の頻度に基づいてもよい。接続値はネットワークコミュニティのソーシャルグラフ内の連携、名声、地位及び/又は影響あるいは信頼の度合い等の要因を表す。第1のノードを第2のノードに接続するパスが回収されるか、ソーシャルグラフデータ分析は回収されたパス上で実施される。ネットワーク接続値は回収されたパスの全て又は全てのうちの一部から決定される。並列計算フレームワーク114は接続決定に関する計算のうちの一部又は全てを実施するようにキー値の記憶に関連して動作する。
【選択図】図1
【特許請求の範囲】
【請求項1】
第1のノードと、該第1のノードに少なくとも1つのパスによって接続される第2のノードとの間のネットワーク接続を決定する方法であって、該方法は、
ネットワークコミュニティ内の該第1のノードから該第2のノードまでのパスを識別することであって、各パスは、1つ以上のリンクを含み、各リンクにユーザ接続値が割り当てられている、ことと、
処理回路を使用して、
識別されたパスの各々について正規化されたパス重みを決定することと、
該識別されたパスの各々について、該パス内のリンクに割り当てられたユーザ接続値を識別することと、
識別されたパスの各々について、該識別されたユーザ接続値と該正規化されたパス重みとの積を計算することと、
該計算された積を合計することにより、ネットワーク接続表示を生成することと、
サードパーティ評定データにアクセスすることと、
該サードパーティ評定データに少なくとも部分的に基づいて、該ネットワーク接続表示を決定することと、
該ネットワーク接続表示を出力することと
を行うことと
を含む、方法。
【請求項2】
リンク閾値にアクセスすることをさらに含み、前記ネットワークコミュニティ内の前記第1のノードから前記第2のノードまでの前記パスを識別することは、該アクセスされたリンク閾値よりも少ないリンクを含有するパスのみを識別することを含む、請求項1に記載の方法。
【請求項3】
パス重み閾値にアクセスすることをさらに含み、前記ネットワークコミュニティ内の前記第1のノードから前記第2のノードまでの前記パスを識別することは、該アクセスされたパス重み閾値を上回る前記正規化されたパス重みを有するパスのみを識別することを含む、請求項1に記載の方法。
【請求項4】
前記処理回路は、前記識別されたパスのうちの1つの識別されたパスについての前記正規化されたパス重みを、該識別されたパス全てのパス重みの合計で該1つの識別されたパス内のリンクに割り当てられたユーザ接続値の積を除算することによって、決定する、請求項1に記載の方法。
【請求項5】
前記処理回路は、前記識別されたパスのうちの1つの識別されたパスについての前記ユーザ接続値を、該1つの識別されたパス内のリンクに割り当てられた最小接続値を識別することによって、識別する、請求項1に記載の方法。
【請求項6】
前記ユーザ接続値は、主観的なユーザ信頼値または能力査定値のうちの少なくとも1つを表す、請求項1に記載の方法。
【請求項7】
前記ネットワークコミュニティ内の前記第1のノードから前記第2のノードまでの前記パスを識別することは、ソーシャルネットワーキングサービスからデータにアクセスすることを含む、請求項1に記載の方法。
【請求項8】
前記ネットワークコミュニティ内の前記第1のノードから前記第2のノードまでの前記パスを識別することは、データベースにおけるテーブルから、該第1のノードから該第2のノードまでの該パスについての事前に記憶された識別を回収することを含む、請求項1に記載の方法。
【請求項9】
前記ネットワーク接続表示に少なくとも部分的に基づいて、少なくとも1つのネットワークベースの決定を自動的に行うことをさらに含む、請求項1に記載の方法。
【請求項10】
第1のノードと、該第1のノードに少なくとも1つのパスによって接続される第2のノードとの間のネットワーク接続を決定するシステムであって、該システムは、処理回路を備え、該処理回路は、
ネットワークコミュニティ内の該第1のノードから該第2のノードまでのパスを識別することであって、各パスは、1つ以上のリンクを含み、各リンクにユーザ接続値が割り当てられている、ことと、
識別されたパスの各々について正規化されたパス重みを決定することと、
該識別されたパスの各々について、該パス内のリンクに割り当てられたユーザ接続値を識別することと、
識別されたパスの各々について、該識別されたユーザ接続値と該正規化されたパス重みとの積を計算することと、
該計算された積を合計することにより、ネットワーク接続表示を生成することと、
サードパーティ評定データにアクセスすることと、
該サードパーティ評定データに少なくとも部分的に基づいて、該ネットワーク接続表示を決定することと、
該ネットワーク接続表示を出力することと
を行うように構成される、システム。
【請求項11】
前記処理回路は、リンク閾値にアクセスするようにさらに構成され、該処理回路は、該アクセスされたリンク閾値よりも少ないリンクを含有するパスのみを識別することによって、前記ネットワークコミュニティ内の前記第1のノードから前記第2のノードまでの前記パスを識別する、請求項10に記載のシステム。
【請求項12】
前記処理回路は、パス重み閾値にアクセスするようにさらに構成され、該処理回路は、該アクセスされたパス重み閾値を上回る前記正規化されたパス重みを有するパスのみを識別することによって、前記ネットワークコミュニティ内の前記第1のノードから前記第2のノードまでの前記パスを識別する、請求項10に記載のシステム。
【請求項13】
前記処理回路は、前記識別されたパスのうちの1つの識別されたパスについての前記正規化されたパス重みを、該識別されたパス全てのパス重みの合計で該1つの識別されたパス内のリンクに割り当てられたユーザ接続値の積を除算することによって、決定する、請求項10に記載のシステム。
【請求項14】
前記処理回路は、前記識別されたパスのうちの1つの識別されたパスについての前記ユーザ接続値を、該1つの識別されたパス内のリンクに割り当てられた最小接続値を識別することによって、識別する、請求項10に記載のシステム。
【請求項15】
前記ユーザ接続値は、主観的なユーザ信頼値または能力査定値のうちの少なくとも1つを表す、請求項10に記載のシステム。
【請求項16】
前記処理回路は、ソーシャルネットワーキングサービスからデータにアクセスすることによって、前記ネットワークコミュニティ内の前記第1のノードから前記第2のノードまでの前記パスを識別する、請求項10に記載のシステム。
【請求項17】
前記処理回路は、データベースにおけるテーブルから、前記第1のノードから前記第2のノードまでの前記パスについての事前に記憶された識別を回収することによって、前記ネットワークコミュニティ内の該第1のノードから該第2のノードまでの該パスを識別する、請求項10に記載のシステム。
【請求項18】
前記処理回路は、前記ネットワーク接続表示に少なくとも部分的に基づいて、少なくとも1つのネットワークベースの決定を自動的に行うようにさらに構成される、請求項10に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
(発明の背景)
本発明は、概して、個人および/またはエンティティのネットワークおよびネットワークコミュニティに関し、特に、個人および/またはエンティティまたは個人および/またはエンティティのネットワーク内またはこれらの間の信頼(trust)スコアまたは接続を決定するためのシステムおよび方法に関する。
【背景技術】
【0002】
個人またはネットワークコミュニティ内のエンティティの接続または関係は、その個人またはエンティティの属性を推測するために使用され得る。例えば、個人またはネットワークコミュニティ内のエンティティの接続は、(例えば、識別の請求および承認について決定するために使用される)個人またはエンティティの識別、個人またはエンティティの信頼性または名声、または特定のコミュニティまたは特定のコミュニティのサブセットにおけるその個人またはエンティティのメンバーシップ、状態、および/または影響を決定するために使用され得る。
【0003】
しかしながら、ネットワークコミュニティ内の個人またはエンティティの接続は、数量化することが困難である。例えば、ネットワークコミュニティは、何百、何千、何百万、何十億またはより多くのメンバーを含み得る。各メンバーは、それ自体およびおそらくはコミュニティの他のメンバーについての接続情報の変動する度合いを所有し得る。この情報のうちのいくつかは、非常に信頼できるか、または客観的であり得、他の情報は、あまり信頼できないおよび主観的ではなくあり得る。加えて、コミュニティメンバーからの接続情報は、種々の形態および種々のスケールで得られ得、1人のメンバーの「信頼性」または「能力」および接続情報を、別のメンバーの「信頼性」または「能力」および接続情報と意義深く比較することが困難になる。さらに、多くの個人は、複数のコミュニティに属し得、ネットワークコミュニティ内の信頼および接続の数量化可能な表示の決定をさらに複雑にする。個人の接続の数量化可能な表現が決定される場合であっても、個人について現実世界の決定を行うために(例えば、個人を信頼するか否か)、この表現を意義深く使用することは、多くの場合、困難である。
【0004】
さらに、これらの現実世界の決定をあらかじめ(つまり、予想されるイベントに先んじて)行うことが有用であり得る。こうした予想分析は、個人としては困難であり得、またはネットワークコミュニティ内のエンティティの接続は、個人またはエンティティの間の接続として急速に変化し得、およびネットワークコミュニティ内の別のものは量的または質的に変化し得る。この分析は、複数のコミュニティを横断して適用される場合のように、ますます複雑になる。
【発明の概要】
【課題を解決するための手段】
【0005】
上記に鑑みて、システムおよび方法は、ネットワークコミュニティ内のノード間の接続を決定し、接続から信頼性または能力等の属性を推測するために提供される。接続は、少なくとも部分的に、以下により詳細に記載される種々のグラフ走査(graph traversal)および正規化技術を使用して、決定されてもよい。
【0006】
一実施形態では、パスカウンティングアプローチは、ネットワークコミュニティ内の第1のノードnと第2のノードnとの間のパスの数をカウントするように処理回路が構成される場合に使用され得る。次いで、接続評定Rn1n2は、ノードに割り当てられ得る。割り当てられた接続評定は、他の考えられる尺度(measure)の間でも、2つのノードを接続するサブパスの数、または関係に比例してもよい。尺度としてサブパスの数を使用し、第1のノードnと第2のノードnとの間の1つ以上の中間ノードを有するパスは、適正な数(例えば、中間ノードの数)によってスケールされてもよく、このスケールされた数は、接続評定を計算するために使用されてもよい。
【0007】
いくつかの実施形態では、重み付けされたリンクが、サブパスカウンティングアプローチに加えて、またはこれの代替として使用される。処理回路は、ネットワークコミュニティ内の第1のノードnと第2のノードnとを接続する各パスへ相対的なユーザ重みを割り当てるように構成されてもよい。ユーザ接続値は、各リンクに割り当てられてもよい。例えば、ノードnに関連付けられるユーザまたはエンティティは、ノードnから全ての実行中のパスについてのユーザ接続値を割り当ててもよい。いくつかの実施形態では、ユーザまたはエンティティによって割り当てられた接続値は、ノードnに関連付けられたユーザまたはエンティティ内のユーザまたはエンティティの信頼を示してもよい。特定のユーザまたはエンティティに割り当てられたリンク値は、各リンクについての相対的なユーザ重みを決定するために、互いに比較されてもよい。
【0008】
各リンクの相対的なユーザ重みは、そのユーザ(つまり、アウトリンク値)によって割り当てられた全てのユーザ接続値の平均をまず計算することによって決定されてもよい。tがリンクiに割り当てられたユーザ接続値である場合、そのリンクに割り当てられた相対的なユーザ重みwは、以下の式に従って求められ得る。
【0009】
【数1】
パスの全体的な重みを決定するために、いくつかの実施形態では、パスに沿った全てのリンクの重みを一緒に乗算してもよい。全体的なパスの重みは、以下の式によって求められ得る。
【0010】
【数2】
パスの接続値は、以下の式に従って、全体的なパスの重みによって乗算されたパス内の全リンクの最小ユーザ接続値として定義されてもよい。
【0011】
【数3】
パス接続値を決定するために、いくつかの実施形態では、並列計算フレームワークまたは分散計算フレームワーク(または両方)を使用してもよい。例えば、一実施形態では、コアプロセッサの数は、Apache HadoopまたはGoogle MapReduceクラスタを実装する。このクラスタは、新しいパスリンク値およびパスの重みの決定に関連して、分散計算のうちのいくつかまたは全てを実施してもよい。
【0012】
処理回路は、ネットワークコミュニティ内の変化したノードを識別してもよい。例えば、新しい実行中のリンクを追加してもよい、リンクを除去してもよい、またはユーザ接続値が変化されていてもよい。変化したノードの識別に応じ、いくつかの実施形態では、処理回路は、関与されるネットワークコミュニティまたはコミュニティ内のいくつかまたは全てのノードに関連付けられたリンク、パス、および重み値を再計算してもよい。
【0013】
いくつかの実施形態では、ネットワークコミュニティ内の影響されるノードに関連付けられた値のみが、変化したノードが識別された後に再計算される。ネットワークコミュニティ内に少なくとも1つの変化したノードが存在する場合、変化したノードまたはノードは、まず準備プロセスを実施してもよい。準備プロセスは、「マップ」フェーズおよび「低減」フェーズを含んでもよい。準備プロセスのマップフェーズにおいて、準備プロセスは、並列計算フレームワーククラスタ内のコアに分散されるより小さいサブプロセスに分割されてもよい。例えば、各ノードまたはリンク変化(例えば、アウトリンク変化に対するテールおよびインリンク変化に対するヘッド)は、並列計算のために異なるコアにマップされてもよい。準備プロセスの低減フェーズにおいて、各アウトリンクの重みは、式(1)に従って判別されてもよい。アウトリンク重みのそれぞれは、アウトリンク重み(または任意の他の適した値)の合計によって正規化されてもよい。ノードテーブルは、各変化したノード、そのインリンク、およびそのアウトリンクについて更新されてもよい。
【0014】
変化したノードが作成された後、各変化したノードから発されるパスが計算されてもよい。また再び、このプロセスの「マップ」および「低」フェーズを定義してもよい。このプロセス中、いくつかの実施形態では、ノード有向グラフまたはノードツリーの深さ優先の回収を実施してもよい。全ての影響される祖先ノードが識別されてもよい、また、それらのパスが再計算されてもよい。
【0015】
いくつかの実施形態では、パフォーマンスを向上させるために、パスは、パス内の最後のノードによってグループ化されてもよい。例えば、ノードnで終了する全てのパスが共にグループ化されてもよく、ノードnで終了する全てのパスがグループ化されてもよい、等である。これらのパスグループは、(例えば、単一のデータベーステーブルの異なるカラムに)別々に記憶されてもよい。いくつかの実施形態では、パスグループは、HBaseクラスタを実装するキー値ストアのカラムに記憶されてもよい(または、BigTable等の任意の他の圧縮された、ハイパフォーマンスデータベースシステム)。
【0016】
いくつかの実施形態では、1つ以上の閾値関数を定義してもよい。閾値関数または関数は、接続決定または接続計算で分析されるパスの最大リンク数を決定するために使用されてもよい。閾値要因は、さらに、最小リンク重み、パスの重み、または両方について定義されてもよい。ユーザ定義またはシステム定義の閾値未満である重みは、接続決定または接続計算で無視されてもよく、十分な大きさの重みのみを考慮してもよい。
【0017】
いくつかの実施形態では、ユーザ接続値は、第1のノードと第2のノードとの間の信頼度を表してもよい。一実施形態では、ノードnは、それとノードnとの間のリンクにlのユーザ接続値を割り当ててもよい。ノードnは、さらに、それとノードnとの間の逆のリンクへlのユーザ接続値を割り当ててもよい。lおよびlの値は、リンクによって接続されるノードに関連付けられる個人またはエンティティの信頼性の少なくとも部分的に主観的な表示であってもよい。例えば、ネットワークコミュニティ(またはいくつか他のコミュニティ)内の個人またはエンティティの名声、状態、および/または影響、(例えば、政治的、社会的、または宗教的な連携)信頼機関(trusting party)を有する個人またはエンティティの連携、個人またはエンティティとの過去の対応、および個人またはエンティティの特性および完全性(または任意の他の関連する考慮点)のうちの1つ以上は、信頼を示す部分的に主観的なユーザ接続値を決定するために使用されてもよい。ユーザ(またはノードによって認証された他の個人)は、個人またはエンティティへノードを接続する実行中のリンクにこの値を割り当ててもよい。いくつかの実施形態では、信頼を示す合成されたユーザ接続値を形成するために、客観的な尺度(例えば、サードパーティの評定エージェンシーまたは信用情報機関からのデータ)をさらに使用してもよい。主観的、客観的、または両方のタイプの尺度は、自動的に取得されてもよい、または分析のために手動で入力されてもよい。
【0018】
いくつかの実施形態では、意思決定アルゴリズムは、ユーザの代理として自動決定(例えば、承認または識別リクエスト等の自動ネットワークベースの決定)を行うために、接続値にアクセスしてもよい。接続値は、さらにまたは代替として、サードパーティにおいて配置される外部システムおよびプロセスに出力されてもよい。外部システムおよびプロセスは、少なくとも部分的に、受信した接続値に基づくトランザクションを自動的に開始する(またはいくつか特定の一連のアクションを取る)ように構成されてもよい。例えば、電子的またはオンライン広告は、少なくとも部分的に、ネットワーク接続値に基づくネットワークコミュニティのメンバーのサブグループを対象としていてもよい。
【0019】
いくつかの実施形態において、意思決定アルゴリズムはあらかじめ(例えば、信用リクエストのような予期されるイベントの前に)決定を行うために、接続値にアクセスしてもよい。かかる決定は、ユーザのリクエストによって、または自動化されたプロセス(例えば、顧客情報のデータベースの信用情報機関の周期的な自動化された分析)の一部として行われてもよい。この予想分析は、流体的および/または動的なトランザクションの開始(またはいくつか特定のアクションを取ること)を可能にしてもよい。
本明細書は、例えば、以下の項目も提供する。
(項目1)
第1のノードと、該第1のノードに少なくとも1つのパスによって接続される第2のノードとの間のネットワーク接続を決定する方法であって、該方法は、
ネットワークコミュニティ内の該第1のノードから該第2のノードまでのパスを識別することと、
処理回路を使用することであって、それにより、
各識別されたパスについて正規化されたパスの重みを決定することと、
各識別されたパスについてユーザ接続値を決定することと、
各識別されたパスについて、ネットワーク接続表示を生成するために、該ユーザ接続値と該正規化されたパスの重みとの積を合計することと、
該ネットワーク接続表示を出力することと
を行う、ことと
を含む、方法。
(項目2)
リンク閾値にアクセスすることをさらに含み、ネットワークコミュニティ内の前記第1のノードから前記第2のノードまでのパスを識別することは、該アクセスされたリンク閾値よりも少ないリンクを含有するパスのみを識別することを含む、項目1に記載の方法。
(項目3)
パスの重みの閾値にアクセスすることをさらに含み、ネットワークコミュニティ内の前記第1のノードから前記第2のノードまでのパスを識別することは、該アクセスされたパスの重みの閾値を上回る正規化されたパスの重みを有するパスのみを識別することを含む、項目1に記載の方法。
(項目4)
前記制御回路は、識別されたパスにおける各リンクのリンク重みの積を、全ての識別されたパスの前記パスの重みの合計で除算することによって、各識別されたパスについての正規化されたパスの重みを決定する、項目1に記載の方法。
(項目5)
前記制御回路は、識別されたパスについての前記パスの重みと該識別されたパスにおけるリンクに割り当てられた最小接続値とを乗算することによって、各識別されたパスについてのユーザ接続値を決定する、項目1に記載の方法。
(項目6)
前記ユーザ接続値は、主観的なユーザ信頼値または能力査定値のうちの少なくとも1つを表す、項目1に記載の方法。
(項目7)
前記制御回路を使用することをさらに含み、それにより、
サードパーティ評定データにアクセスすることと、
該サードパーティの評定情報に少なくとも部分的に基づいて、前記ネットワーク接続表示を決定することと
を行う、項目6に記載の方法。
(項目8)
ネットワークコミュニティ内の前記第1のノードから前記第2のノードまでのパスを識別することは、ソーシャルネットワーキングサービスからデータにアクセスすることを含む、項目1に記載の方法。
(項目9)
ネットワークコミュニティ内の前記第1のノードから前記第2のノードまでのパスを識別することは、データベースにおけるテーブルから、該第1のノードから該第2のノードまでの該パスについての事前に記憶された識別を回収することを含む、項目1に記載の方法。
(項目10)
前記ネットワーク接続表示に少なくとも部分的に基づいて、少なくとも1つのネットワークベースの決定を自動的に行うことをさらに含む、項目1に記載の方法。
(項目11)
第1のノードと、該第1のノードに少なくとも1つのパスによって接続される第2のノードとの間のネットワーク接続を決定するシステムであって、該システムは、処理回路を備え、該処理回路は、
ネットワークコミュニティ内の該第1のノードから該第2のノードまでのパスを識別することと、
各識別されたパスについて正規化されたパスの重みを決定することと、
各識別されたパスについてユーザ接続値を決定することと、
各識別されたパスについて、ネットワーク接続表示を生成するために、該ユーザ接続値と該正規化されたパスの重みとの積を合計することと、
該ネットワーク接続表示を出力することと
を行うように構成される、システム。
(項目12)
前記処理回路は、リンク閾値にアクセスするようにさらに構成され、前記制御回路は、該アクセスされたリンク閾値よりも少ないリンクを含有するパスのみを識別することによって、ネットワークコミュニティ内の前記第1のノードから前記第2のノードまでのパスを識別する、項目11に記載のシステム。
(項目13)
前記処理回路は、パスの重みの閾値にアクセスするようにさらに構成され、前記制御回路は、該アクセスされたパスの重みの閾値を上回る正規化されたパスの重みを有するパスのみを識別することによって、ネットワークコミュニティ内の前記第1のノードから前記第2のノードまでのパスを識別する、項目11に記載のシステム。
(項目14)
前記制御回路は、識別されたパスにおける各リンクのリンク重みの積を全ての識別されたパスの前記パスの重みの合計で除算することによって、各識別されたパスについて正規化されたパスの重みを決定する、項目11に記載のシステム。
(項目15)
前記制御回路は、識別されたパスについての前記パスの重みと該識別されたパスにおけるリンクに割り当てられた最小接続値とを乗算することによって、各識別されたパスについてのユーザ接続値を決定する、項目11に記載のシステム。
(項目16)
前記ユーザ接続値は、主観的なユーザ信頼値または能力査定値のうちの少なくとも1つを表す、項目11に記載のシステム。
(項目17)
前記制御回路は、
サードパーティの評定データにアクセスすることと、
該サードパーティの評定情報に少なくとも部分的に基づいて、前記ネットワーク接続表示を決定することと
を行うように構成される、項目16に記載のシステム。
(項目18)
前記制御回路は、ソーシャルネットワーキングサービスからデータにアクセスすることによって、ネットワークコミュニティ内の前記第1のノードから前記第2のノードまでのパスを識別する、項目11に記載のシステム。
(項目19)
前記制御回路は、データベースにおけるテーブルから、前記第1のノードから前記第2のノードまでの前記パスについての事前に記憶された識別を回収することによって、ネットワークコミュニティ内の該第1のノードから該第2のノードまでのパスを識別する、項目11に記載のシステム。
(項目20)
前記制御回路は、前記ネットワーク接続表示に少なくとも部分的に基づいて、少なくとも1つのネットワークベースの決定を自動的に行うようにさらに構成される、項目11に記載のシステム。
(項目21)
第1のノードと、該第1のノードに少なくとも1つのパスによって接続される第2のノードとの間のネットワーク接続を決定するシステムであって、該システムは、
ネットワークコミュニティ内の該第1のノードから該第2のノードまでのパスを識別する手段と、
各識別されたパスについて正規化されたパスの重みを決定する手段と、
各識別されたパスについてユーザ接続値を決定する手段と、
各識別されたパスについて、ネットワーク接続表示を生成するために、該ユーザ接続値と該正規化されたパスの重みとの積を合計する手段と、
該ネットワーク接続表示を出力する手段と
を備える、システム。
(項目22)
リンク閾値にアクセスする手段をさらに備え、ネットワークコミュニティ内の前記第1のノードから前記第2のノードまでのパスを識別する前記手段は、該アクセスされたリンク閾値よりも少ないリンクを含有するパスのみを識別する手段を備える、項目21に記載のシステム。
(項目23)
パスの重みの閾値にアクセスする手段をさらに備え、ネットワークコミュニティ内の前記第1のノードから前記第2のノードまでのパスを識別する前記手段は、該アクセスされたパスの重みの閾値を上回る正規化されたパスの重みを有するパスのみを識別する手段を備える、項目21に記載のシステム。
(項目24)
各識別されたパスについて正規化されたパスの重みを決定する前記手段は、識別されたパスにおける各リンクについてのリンクの重みの積を、全ての識別されたパスの該パスの重みの合計によって除算する手段を備える、項目21に記載のシステム。
(項目25)
各識別されたパスについてのユーザ接続値を決定する前記手段は、識別されたパスについての前記パスの重みと該識別されたパスにおけるリンクに割り当てられた最小接続値とを乗算する手段を備える、項目21に記載のシステム。
(項目26)
前記ユーザ接続値は、主観的なユーザ信頼値または能力査定値のうちの少なくとも1つを表す、項目21に記載のシステム。
(項目27)
サードパーティの評定データにアクセスする手段と、
該サードパーティの評定情報に少なくとも部分的に基づいて、前記ネットワーク接続表示を決定する手段と
をさらに備える、項目26に記載のシステム。
(項目28)
ネットワークコミュニティ内の前記第1のノードから前記第2のノードまでのパスを識別する前記手段は、ソーシャルネットワーキングサービスからデータにアクセスする手段を備える、項目21に記載のシステム。
(項目29)
ネットワークコミュニティ内の前記第1のノードから前記第2のノードまでのパスを識別する前記手段は、データベースにおけるテーブルから、該第1のノードから該第2のノードまでの該パスについての事前に記憶された識別を回収する手段を備える、項目21に記載のシステム。
(項目30)
前記ネットワーク接続表示に少なくとも部分的に基づいて、少なくとも1つのネットワークベースの決定を自動的に行う手段をさらに備える、項目21に記載のシステム。
【図面の簡単な説明】
【0020】
本発明の上記および他の特徴、その性質および種々の利点は、添付の図面に関して記載される以下の詳細な説明を考慮するとより明らかになる。
図1図1は、本発明の一実施形態に従う、ネットワークコミュニティ内の接続をサポートするために使用されるネットワークアーキテクチャの例示的なブロック図である。
図2図2は、本発明の一実施形態に従う、ネットワークコミュニティ内の接続をサポートするために使用されるネットワークアーキテクチャの別の例示的なブロック図である。
図3A図3Aおよび3Bは、本発明の一実施形態に従うネットワークコミュニティ内の接続決定をサポートするための例示的なデータテーブルを示す。
図3B図3Aおよび3Bは、本発明の一実施形態に従うネットワークコミュニティ内の接続決定をサポートするための例示的なデータテーブルを示す。
図4A図4A〜4Dは、本発明の一実施形態に従うネットワークコミュニティ内の接続決定をサポートするための例示的なプロセスを示す。
図4B図4A〜4Dは、本発明の一実施形態に従うネットワークコミュニティ内の接続決定をサポートするための例示的なプロセスを示す。
図4C図4A〜4Dは、本発明の一実施形態に従うネットワークコミュニティ内の接続決定をサポートするための例示的なプロセスを示す。
図4D図4A〜4Dは、本発明の一実施形態に従うネットワークコミュニティ内の接続決定をサポートするための例示的なプロセスを示す。
図4E図4Eは、本発明の一実施形態に従うネットワークコミュニティ内の接続決定をサポートするための例示的なプロセスを示す。
図5図5は、ターゲットノードへの全てのパスのクエリを実行し、本発明の一実施形態に従うネットワーク接続値を計算するための例示的なプロセスを示す。
【発明を実施するための形態】
【0021】
ネットワークコミュニティ内のノード間の接続を決定するためのシステムおよび方法が提供される。本明細書に定義されているように、「ノード」は、任意のユーザ端子、ネットワークデバイス、コンピュータ、モバイルデバイス、アクセスポイント、または任意の他の電子デバイスを含んでもよい。いくつかの実施形態では、ノードは、さらに、個々の人間、エンティティ(例えば、公的企業または民間企業、コーポレーション、有限責任会社(LLC)、合名会社、個人事業主、または慈善団体等の法的エンティティ)、概念(例えば、ソーシャルネットワーキンググループ)、動物、または無生物(例えば、車、飛行機、またはツール)を表してもよい。本明細書にさらに定義されるように、「ネットワークコミュニティ」は、ノードの集合を含んでもよく、デバイス、個人、またはエンティティの任意のグループを表してもよい。
【0022】
例えば、ソーシャルネットワーキングウェブサイトまたはソーシャルネットワーキングサービス(またはオンラインゲームコミュニティ等の任意の他のタイプのウェブサイトまたはサービス)のユーザの全てのまたはいくつかのサブセットは、単一のネットワークコミュニティを構成してもよい。各ユーザは、ネットワークコミュニティ内のノードによって表されてもよい。別の例として、特定のニュースグループまたは分散リストの全ての加入者は、単一のネットワークコミュニティを構成してもよく、各個人加入者は、ネットワークコミュニティ内のノードによって表されてもよい。任意の特定のノードは、ゼロ、1つ、または1つより多いネットワークコミュニティに属してもよい、またはノードは、コミュニティの全てまたはサブセットから禁止されてもよい。ネットワークコミュニティの追加、削除、およびリンク変化を促進するために、いくつかの実施形態では、ネットワークコミュニティは、方向づけられたグラフ、または有向グラフ、重み付けされた有向グラフ、ツリー、または任意の他の適したデータ構造によって表されてもよい。
【0023】
図1は、ネットワークコミュニティ内の接続決定をサポートするために使用される例示的なネットワークアーキテクチャ100を示す。ユーザは、通信ネットワーク104においてアプリケーションサーバ106にアクセスするためにアクセスアプリケーション102を利用してもよい。例えば、アクセスアプリケーション102は、標準的なウェブブラウザを含んでもよく、アプリケーションサーバ106は、ウェブサーバを含んでもよく、および通信ネットワーク106は、インターネットを含んでもよい。アクセスアプリケーション102は、1つ以上のプラットフォームまたはデバイスについて特別に開発された独占的(proprietary)アプリケーションをさらに含んでもよい。例えば、アクセスアプリケーション102は、Apple iOS、Android、またはWebOSアプリケーションまたは通信ネットワーク104においてアプリケーション106にアクセスする際に使用される任意の適したアプリケーションの1つ以上のインスタンスを含んでもよい。複数のユーザは、クセスアプリケーション102の1つ以上のインスタンスを介してアプリケーションサービス106にアクセスしてもよい。例えば、複数のモバイルデバイスは、デバイス上においてローカルで実施するアクセスアプリケーション102のインスタンスをそれぞれ有してもよい。1人以上のユーザは、アプリケーションサーバ106と相互作用するように、アクセスアプリケーション102のインスタンスを有してもよい。
【0024】
通信ネットワーク104は、インターネット、WiMax、広域セルラー、またはローカルエリアワイアレスネットワーク等の任意の有線のまたは無線のネットワークを含んでもよい。通信ネットワーク104は、Bluetooth(登録商標)および赤外線ネットワーク等のパーソナルエリアネットワークをさらに含んでもよい。通信ネットワーク104上の通信は、任意の適したセキュリティまたは暗号化プロトコルを用いて、暗号化または安全にされてもよい。
【0025】
ファイルまたはウェブサーバ等の任意のネットワークサーバまたは仮想サーバを含んでもよいアプリケーションサーバ106は、ローカルでまたは任意の適したネットワーク接続によってデータソース108にアクセスしてもよい。アプリケーションサーバ106は、処理回路(例えば、1つ以上のマイクロプロセッサ)、メモリ(例えば、RAM、ROM、および混合タイプのメモリ)、記憶デバイス(例えば、ハードドライブ、光学ドライブ、およびテープドライブ)をさらに含んでもよい。アプリケーションサーバ106に含まれる処理回路は、本発明のネットワーク接続決定をサポートするためのサーバプロセスを実施してもよく、一方で、アクセスアプリケーション102は、対応するクライアントプロセスを実施する。アプリケーションサーバ106に含まれる処理回路は、さらに、ネットワーク接続の決定に関連して、本明細書に記載される計算および計算のいずれかを実施してもよい。いくつかの実施形態では、その上にコンピュータプログラム論理が記録されたコンピュータ可読媒体は、アプリケーションサーバ106内に含まれる。コンピュータプログラム論理は、ネットワークコミュニティ内の2つ以上のノードの間の接続を決定してもよく、表示画面またはデータへかかる接続を出力してもよい、またはしなくてもよい。
【0026】
例えば、アプリケーションサーバ106は、インターネット、安全な非公開LAN、または任意の他の通信ネットワークを通じてデータソース108にアクセスしてもよい。データソース108は、サードパーティのソーシャルネットワーキングサービスおよびサードパーティの評定機関からのデータ等の1つ以上のサードパーティのデータソースを含んでもよい。例えば、データソース108は、Facebook、MySpace、openSocial、Friendster、Bebo、hi5、Orkut、PerfSpot、Yahoo!360、LinkedIn、Twitter、Google Buzz、Really Simple Syndicationリーダーまたは任意の他のソーシャルネットワーキングウェブサイトまたは情報サービスのうちの1つ以上からのユーザおよび関係データ(例えば、「友達」または「フォロワー」データ)を含んでもよい。データソース108は、アクセスアプリケーション102を介してアプリケーションサーバ106にアクセスするユーザについての関係情報を含有するアプリケーションサーバ106にローカルなデータストアおよびデータベースをさらに含んでもよい(例えば、アドレスのデータベース、法的記録、交通機関の乗客リスト、ギャンブルパターン、政治的および/またはチャリティ寄付、政治的所属、車両ライセンスプレートまたは識別番号、統一製品コード、ニュース記事、ビジネスリスティング、および病院または大学所属)。
【0027】
アプリケーションサーバ106は、データストア110、キー値ストア112、および並列計算フレームワーク114のうちの1つ以上と通信してもよい。任意のリレーショナルデータベース管理システム(RDBMS)、ファイルサーバ、または記憶システムを含んでもよいデータストア110は、1つ以上のネットワークコミュニティに関する情報を記憶してもよい。例えば、データテーブル300(図3A)のうちの1つ以上は、データストア110に記憶されてもよい。データストア110は、ネットワークコミュニティ内のユーザおよびエンティティについての識別情報、ネットワークコミュニティ内のノードの識別、ユーザリンクおよびパスの重み、ユーザ構成設定、システム構成設定、および/または任意の他の適した情報を記憶してもよい。ネットワークコミュニティ毎にデータストア110の1つのインスタンスが存在してもよいか、またはデータストア110は、複数のネットワークコミュニティに関する情報を記憶してもよい。例えば、データストア110は、ネットワークコミュニティ毎に1つのデータベースを含んでもよいか、または1つのデータベースは、全ての利用可能なネットワークコミュニティについての情報を記憶してもよい(例えば、データベーステーブル毎に1つのネットワークコミュニティについての情報)。
【0028】
任意の並列または分散計算フレームワークまたはクラスタを含んでもよい並列計算フレームワーク114は、同時に、分散的に、または両方で実施されるより小さなジョブに、計算ジョブを分割するように構成されてもよい。例えば、並列計算フレームワーク114は、アプリケーションが、そのそれぞれが任意のコアプロセッサまたはコアのクラスタ上で実施または再実施されてもよい複数の小さい仕事のフラグメントに分割されてもよい場合にマップ/低減計算パラダイムを実装することにより、データ集中分散アプリケーションをサポートしてもよい。並列計算フレームワーク114の適した例は、Apache Hadoopクラスタを含む。
【0029】
並列計算フレームワーク114は、さらにコアのクラスタの形態を取ってもよい、キー値ストア112とのインターフェースを取ってもよい。キー値ストア112は、並列計算フレームワーク114によって実装されるマップ/低減計算パラダイムと共に使用するためのキー値ペアのセットを保持してもよい。例えば、並列計算フレームワーク114は、キー値ペアのデータセット上の分散動作のシーケンスとして大規模な分散計算を表現してもよい。ユーザ定義マップ/低減ジョブは、クラスタで複数のノードにわたって実施されてもよい。本明細書に記載の処理および計算は、少なくとも部分的に、プロセッサの任意のタイプまたはプロセッサの組み合わせによって実施されてもよい。例えば、並列コンピューティングおよび処理を大規模に実施するために、種々のタイプの量子プロセッサ(例えば、固体の量子プロセッサおよび光ベースの量子プロセッサ)、人工的中立ネットワーク等を使用してもよい。
【0030】
いくつかの実施形態では、並列計算フレームワーク114は、2つの別のフェーズ、「マップ」フェーズおよび「低減」フェーズをサポートしてもよい。計算への入力は、キー値ストア112において記憶されたキー値ペアのデータセットを含んでもよい。マップフェーズにおいて、並列計算フレームワーク114は、入力データセットを多数のフラグメントに分割または除算し、マップタスクへ各フラグメントを割り当ててもよい。並列計算フレームワーク114は、さらに、それが動作するノードのクラスタにおいてマップタスクを分散してもよい。各マップタスクは、その割り当てられたフラグメントからのキー値ペアを消費し(consume)、中間キー値ペアのセットを生成してもよい。各入力キー値ペアについて、マップタスクは、入力を異なるキー値ペアに変化させるユーザ定義されたマップ関数を呼び出してもよい。マップフェーズ後に、並列計算フレームワーク114は、キーによって中間データセットをソートし、特定のキーに関連付けられた全ての値が共に現れるように、タプルの集合を生成する。並列計算フレームワーク114は、さらに、低減タスク数に等しいフラグメントの数に、タプルの集合をパーティション分割してもよい。
【0031】
低減フェーズでは、各低減タスクは、それに割り当てられたタプルのフラグメントを消費してもよい。各かかるタプルについて、低減タスクは、出力キー値ペアにタプルを変化させるユーザ定義低減関数を呼び出してもよい。並列計算フレームワーク114は、次いで、ノードのクラスタにおいて多くの低減タスクを分散し、各低減タスクへ中間データの適正なフラグメントを提供してもよい。
【0032】
計算中に1つ以上のノードが失敗する場合、かかる失敗されたノードに割り当てられたタスクが残りのノードにおいて再分散されてもよいように、各フェーズ内のタスクはフォールトトレラントで実施されてもよい。この挙動は、負荷バランシングおよび失敗したタスクの、低い実施時間オーバーヘッドによる再実施を可能にしてもよい。
【0033】
キー値ストア112は、確実に大きなファイルを記憶できる任意の分散ファイルシステムを実装してもよい。例えば、キー値ストア112は、Hadoopの自己分散ファイルシステム(DFS)またはHBase等のより拡張可能なカラム指向分散データベースを実装してもよい。かかるファイルシステムまたはデータベースは、任意の数のテーブルカラムのサポート等のBigTableのような機能を含んでもよい。
【0034】
図1では、図面が複雑になりすぎることを防止するために、アクセスアプリケーション102、通信ネットワーク104、アプリケーションサーバ106、データソース108、データストア110、キー値ストア112、および並列計算フレームワーク114の単一のインスタンスのみを示すが、実際には、ネットワークアーキテクチャ100は、上記のコンポーネントのうちの1つ以上の複数のインスタンスを含んでもよい。加えて、キー値ストア112および並列計算フレームワーク114は、いくつかの実施形態でさらに除かれてもよい。図2のネットワークアーキテクチャ200に示されるように、キー値ストア112および/または並列計算フレームワーク114によって実施される並列または分散計算は、固定のコアの代わりにモバイルデバイス202のクラスタによって、さらにまたは代替として実施されてもよい。いくつかの実施形態では、モバイルデバイス202、キー値ストア112、および並列計算フレームワーク114のクラスタは、ネットワークアーキテクチャ内に全て存在する。特定のアプリケーションプロセスおよび計算は、モバイルデバイス202のクラスタによって実施されてもよく、特定の他のアプリケーションプロセスおよび計算は、キー値ストア112および並列計算フレームワーク114によって実施されてもよい。加えて、いくつかの実施形態では、通信ネットワーク104自体は、アプリケーションプロセスおよび計算のうちのいくつかまたは全てを実施してもよい。例えば、特別に構成されたルータまたはサテライトは、本明細書に記載のアプリケーションプロセスおよび計算のうちのいくつかまたは全てを実施するように適合された処理回路を含んでもよい。
【0035】
モバイルデバイス202のクラスタは、PDA、携帯電話、モバイルコンピュータ、または任意の他のモバイルコンピューティングデバイス等の1つ以上のモバイルデバイスを含んでもよい。モバイルデバイス202のクラスタは、マイクロプロセッサ(例えば、余分な処理時間による)、記憶、または両方を含有する任意のアプライアンス(例えば、オーディオ/ビデオシステム、電子レンジ、冷蔵庫、フードプロセッサ)をさらに含んでもよい。アプリケーションサーバ106は、並列計算フレームワーク114およびマップ/低減計算パラダイムによって複数の固定されたコアへ分散されるのと同様に、計算、記憶、または両方を実施するように、モバイルデバイス202のクラスタ内のデバイスを命令してもよい。モバイルデバイス202のクラスタ内の各デバイスは、個別の計算ジョブ、記憶ジョブ、または両方を実施してもよい。アプリケーションサーバ106は、各分散ジョブの結果を組み合わせ、計算の最終結果を返してもよい。
【0036】
図3Aは、本発明の接続決定をサポートするために使用される例示的なデータテーブル300を示す。テーブル300のうちの1つ以上は、例えば、データストア110内のリレーショナルデータベースに記憶されてもよい(図1)。テーブル302は、ネットワークコミュニティ内に登録される全てのノードの識別を記憶してもよい。一意の識別子は、各ノードに割り当てられ、テーブル302に記憶されてもよい。加えて、ストリング名は、各ノードに関連付けられ、テーブル302に記憶されてもよい。上記に記載のように、いくつかの実施形態では、ノードは個人またはエンティティを表してもよく、その場合、ストリング名は、個人または人物の名および/または姓、ニックネーム、ハンドル、またはエンティティ名を含んでもよい。
【0037】
テーブル304は、ユーザ接続値を記憶してもよい。いくつかの実施形態では、ユーザ接続値は、(例えば、アプリケーションサーバ106(図1)による)システムによって自動的に割り当てられてもよい。例えば、アプリケーションサーバ106(図1)は、ネットワークコミュニティのメンバー間の全ての電子相互作用(例えば、電子通信、電子取引、または両方)を監視してもよい。いくつかの実施形態では、デフォルトのユーザ接続値(例えば、リンク値1)は、最初に、ネットワークコミュニティ内の全てのリンクに割り当てられてもよい。ネットワークコミュニティ内の2つ以上のノードの間で電子相互作用が識別された後に、ユーザ接続値は、ノードの間の相互作用のタイプおよび相互作用の結果によって、上または下方向に連携されてもよい。例えば、2つのノードの間の各単純な電子メールの交換は、固定された大きさだけ、これらの2つのノードを接続するユーザ接続値を自動的に増減させてもよい。2つのノードの間のより複雑な相互作用(例えば、積またはサービスセールスまたはクエリ)は、いくつかのより大きい固定された大きさだけ、これらの2つのノードを接続するユーザ接続値を増減してもよい。いくつかの実施形態では、2つのノードの間のユーザ接続値は、ユーザまたはノードが、相互作用が好ましくないか、正常に完了されていないか、または不利であることを示さない限り、常に増加してもよい。例えば、トランザクションは、時間通りに実施されなかった可能性があるか、または電子メール交換が特に不快であった(displeasing)可能性がある。不利な相互作用は、自動的にユーザ接続値を下げる可能性があり、一方で、全ての他の相互作用は、ユーザ接続値(または影響がない)を増加させる可能性がある。加えて、ユーザ接続値は、外部ソースを用いて自動的に取得されてもよい。例えば、サードパーティのデータソース(評定エージェンシーおよび信用情報機関等)は、接続情報について自動的にクエリが実行されてもよい。この接続情報は、完全に客観的な情報、完全に主観的な情報、部分的に客観的であって部分的に主観的である合成された情報、任意の他の適した接続情報、または上記の任意の組み合わせを含んでもよい。
【0038】
いくつかの実施形態では、ユーザ接続値は、ネットワークコミュニティのメンバーによって手動で割り当てられてもよい。これらの値は、例えば、2人のユーザまたは2つのノードの間の信頼の度合いまたはレベル、あるいはいくつかの試みにおける、あるノードの別のノードの能力についての査定値を表してもよい。上記に記載のように、ユーザ接続値は、いくつかの実施形態において、主観的なコンポーネントおよび客観的なコンポーネントを含んでもよい。主観的なコンポーネントは、第1のユーザまたはノードが第2のユーザ、ノード、コミュニティ、またはサブコミュニティをどれほど信頼性が高いと判断するかを示す信頼性「スコア」を含んでもよい。このスコアまたは値は、完全に主観的であり、2人のユーザ、2つのノード、またはコミュニティの間の相互作用に基づいてもよい。主観的および客観的なコンポーネントを含む合成されたユーザ接続値が、さらに使用されてもよい。例えば、サードパーティの情報は、例えば、消費者のクレーム数、信用度スコア、社会経済学的要因(例えば、年齢、収入、政治的または宗教的所属、および犯罪歴)、またはメディアあるいは回収エンジン回収における引用/ヒット数に基づく客観的なコンポーネントを形成するように閲覧されてもよい。サードパーティの情報は、通信ネットワーク104(図1)を用いてアクセスされてもよい。例えば、サードパーティの信用情報機関のデータベースは、ポーリングされてもよい、または犯罪歴情報を含む個人バイオグラフィーおよびバックグラウンド情報は、(例えば、データソース108(図1)からアクセスされてもよい、または別々のデータソースの一部として)サードパーティのデータベースまたはデータソースまたはノード、ユーザ、またはシステム管理者によって直接入力されてもよい。
【0039】
テーブル304は、リンクヘッド、リンクテールの識別、およびリンクのユーザ接続値を記憶してもよい。リンクは、双方向であってもよい、または双方向でなくてもよい。例えば、ノードnからノードnまでのユーザ接続値は、ノードnからノードnまでのリンクとは異なって(および全く分かれて)いてもよい。特に、上記に記載の信頼という文脈において、各ユーザはユーザ自身のユーザ接続値をリンクに割り当てることができる(つまり、2人のユーザは、いくつかの実施形態では互いに等しい量、信頼する必要がない)。
【0040】
テーブル306は、テーブル304の監査ログを記憶してもよい。テーブル306は、ネットワークコミュニティにおいてどのノードまたはリンクが変化したかを決定するように分析されてもよい。いくつかの実施形態では、データベーストリガは、テーブル304内のデータの変化が検出される場合に必ず、テーブル306に監査記録を自動的に挿入するように使用される。例えば、新しいリンクが作成されてもよい、リンクが除去されてもよい、またはユーザ接続値が変化されてもよい。この監査ログは、あらかじめ(つまり、予期されるイベントの前に)作成される接続値に関する決定を可能にしてもよい。かかる決定は、ユーザのリクエストにより、または図5について以下に記載のプロセス等の自動化されたプロセスの一部として、行われてもよい。この予想分析は、流体的および/または動的なトランザクションの開始(またはいくつかの特定のアクションを取ること)を可能にしてもよい。かかる変化が検出された後、トリガは、テーブル306内の新しい行を自動的に作成してもよい。テーブル306は、変化したノードの識別、および変化したリンクヘッド、変化したリンクテールの識別、ならびに変化したリンクに割り当てられるユーザ接続値を記憶してもよい。テーブル306は、変化および動作コードの時刻を示すタイムスタンプをさらに記憶してもよい。いくつかの実施形態では、動作コードは、それぞれ、リンクの挿入された、ユーザ接続値の変化、またはリンクの削除に対応する「insert」、「update」、または「delete」動作を含んでもよい。他の実施形態では、他の動作コードを使用してもよい。
【0041】
図3Bは、本発明の接続決定をサポートするために使用される例示的なデータ構造310を示す。いくつかの実施形態では、データ構造310は、キー値ストア112(図1)を使用して記憶されてもよく、一方で、テーブル300は、データストア110に記憶される(図1)。上記に記載のように、キー値ストア112(図1)は、HBase記憶システムを実装してもよく、BigTableサポートを含んでもよい。従来のリレーショナルデータベース管理システムと同様に、図3Bに示されるデータは、テーブルに記憶されてもよい。しかしながら、BigTableサポートは、各テーブル内の任意の数のカラムを可能にしてもよく、一方で、従来のリレーショナルデータベース管理システムは、固定された数のカラムを必要としてもよい。
【0042】
データ構造310は、ノードテーブル312を含んでもよい。図3Bに示される例において、ノードテーブル312は、いくつかのカラムを含む。ノードテーブル312は、64ビット、128ビット、256ビット、512ビット、または1024ビットの整数を記憶してもよい、行識別子カラム314を含んでもよく、ノードテーブル312内の各行(例えば、各ノード)を一意に識別するように使用されてもよい。カラム316は、現行のノードの全ての着信リンクのリストを含んでもよい。カラム318は、現行のノードの全ての実行中のリンクのリストを含んでもよい。カラム320は、現行のノードが接続されるノード識別子のリストを含んでもよい。第1のノードは、第2のノードに達するために実行中のリンクがフォローされてもよい場合に、第2のノードに接続されてもよい。例えば、A−>Bである場合、AがBに接続されるが、BはAに接続されなくてもよい。以下により詳細に記載されているように、図4Bに示されるプロセス400(図4A)の部分の間、カラム320が使用されてもよい。ノードテーブル312は、1つ以上の「バケツ」カラム322をさらに含んでもよい。これらのカラムは、現行のノードをターゲットノードに接続するパスのリストを記憶してもよい。上記に記載のように、パス(例えば、ターゲットノード)内の最後のノードによるパスのグループ化は、接続の計算を促進してもよい。図3Bに示されるように、いくつかの実施形態では、スキャンを促進するために、バケツカラム名は、「bucket:」カラムの終了に付加されるターゲットノード識別子を含んでもよい。
【0043】
図4A〜4Dは、ネットワークコミュニティ内のノードの接続を決定するための例示的なプロセスを示す。図4Aは、ネットワークコミュニティに関連付けられる接続グラフ(または任意の他の適したデータ構造)を更新するためのプロセス400を示す。上記に記載のように、いくつかの実施形態では、各ネットワークコミュニティは、それ自体の接続グラフ、有向グラフ、ツリー、または他の適したデータ構造に関連付けられる。他の実施形態では、複数のネットワークコミュニティは、1つ以上の接続グラフ(または他のデータ構造)を共有してもよい。
【0044】
いくつかの実施形態では、図4A〜4Dについて記載のプロセスは、あらかじめ(つまり、予期されたイベントの前に)決定するように実施されてもよい。図5に関して以下に記載のプロセス等、かかる決定は、ユーザのリクエストによってまたは自動化されたプロセスの一部として、実施されてもよい。この予想分析は、流体的および/または動的にトランザクションの開始(またはいくつかの特定のアクションを取ること)を可能にしてもよい。
【0045】
ステップ402において、少なくとも1つのノードがネットワークコミュニティにおいて変化しているか否かを決定する。上記に記載のように、監査記録は、ノードが変化した後にテーブル306(図3)に挿入されてもよい。テーブル306(図3)を分析することにより、新しいリンクが追加された、既存のリンクが除去された、またはユーザ接続値が変化したという決定が(例えば、図1のアプリケーションサーバ106により)行われてもよい。ステップ404において、ノードが変化したと決定される場合、プロセス400は、変化したノードを準備するためにステップ410(図4Bに示される)へ、変化したノードから発するパスを計算するためにステップ412(図4Cに示される)へ、変化したノードを通過するパスを除去するためにステップ414(図4Dに示される)へ、および変化したノードを通過するパスを計算するためにステップ416(図に示される4E)へと実行する。図4B、4C、4D、および4Eに示される1つよりも多いステップまたはタスクが、例えば、コアのクラスタを使用して並列に実施されてもよいことに留意されたい。例えば、図4Bに示される複数のステップまたはタスクは、並列または分散的に実施されてもよく、図4Cに示される複数のステップまたはタスクは並列または分散的に実施されてもよく、図4Dに示される複数のステップまたはタスクは並列または分散的に実施されてもよく、図4Eに示される複数のステップまたはタスクは並列または分散的に実施されてもよい。このようにして、プロセス400に関連付けられる全体的な待ち時間が低減してもよい。
【0046】
ステップ404においてノード変化が検出されない場合、プロセス400は、ステップ406においてスリープモードに入る。例えば、いくつかの実施形態では、アプリケーションスレッドまたはプロセスは、少なくとも1つのノードまたはリンクがネットワークコミュニティで変化したか否かを決定するように実行的にチェックしてもよい。他の実施形態では、アプリケーションスレッドまたはプロセスは、変化したリンクおよびノードをn秒毎に周期的にチェックしてもよく、ここでnは任意の正の数である。ステップ416において変化したノードが通過するパスが計算された後に、またはステップ406におけるスリープ期間の後に、プロセス400は、ステップ408においてループするか否かを決定してもよい。例えば、全ての変化したノードが更新されない場合、プロセス400は、ステップ418において停止してもよい。しかしながら、処理すべきより多くの変化したノードまたはプロセスへのリンクが存在する場合、プロセス400は、ステップ408においてループし、ステップ404に返ってもよい。
【0047】
実際に、プロセス400に示される1つ以上のステップは、他のステップと組み合わせられるか、任意の適した順序で実施されるか、並列で実施されるか(例えば、同時にまたは実質的に同時に)、または除去されてもよい。
【0048】
図4B〜4Eは、それぞれ、「マップ」フェーズおよび「低減」フェーズを有するプロセスを含む。上記に記載のように、これらのフェーズは、並列計算フレームワーク114(図1)、キー値ストア112(図1)、または両方によって実施されるマップ/低減計算パラダイムの一部を形成されてもよい。図4Bに示されるように、任意の変化したノードを作成するために、マップフェーズ420は、ステップ422においてより多いリンク変化が存在するか否かを決定すること、ステップ440において次のリンク変化を回収すること、ステップ442においてテールからアウトリンクまでの変化をマップすること、およびステップ444においてヘッドからインリンク変化をマップすることを含んでもよい。
【0049】
ステップ422においてこれ以上のリンク変化がない場合、低減フェーズ424では、ステップ426において、処理すべきより多くのノードおよびリンク変化が存在すると決定されてもよい。その場合、ステップ428において次のノードおよびそのリンク変化が回収されてもよい。最も最近のリンク変化は、ステップ430において保存されてもよく、一方で、任意の中間リンク変化がより最近の変化に代わられてもよい。例えば、各リンクまたはノード変化の時刻を決定するために、テーブル306(図3)に記憶されたタイムスタンプを使用してもよい。ステップ432において、平均アウトリンクユーザ接続値が計算されてもよい。例えば、ノードnが割り当てられたユーザ接続値を有する8つのアウトリンクを有する場合、これらの8つのユーザ接続値は、ステップ432において平均化されてもよい。ステップ434において、各アウトリンクの重みは、上記の式(1)に従って計算されてもよい。全てのアウトリンク重みは、合計され、ステップ436において各アウトリンク重みを正規化するように使用されてもよい。例えば、各アウトリンク重みは、全てのアウトリンク重みの合計によって分割されてもよい。これは、各アウトリンクの0および1の間の重みを生じさせてもよい。ステップ438において、変化したノード、インリンク、およびアウトリンクの既存のバケツを保存してもよい。例えば、バケツは、キー値ストア112(図1)またはデータストア110(図1)に保存してもよい。ステップ426においてこれ以上処理するノードおよびリンク変化がない場合、プロセスは、ステップ446において停止してもよい。
【0050】
図4Cに示されるように、変化したノードから発されるパスを計算するためには、マップフェーズ448は、ステップ450においてより多くの変化したノードが存在するか否かを決定すること、ステップ466において次の変化したノードを回収すること、ステップ468においてNULLパスへ変化したノードをマップすることにより、削除のために既存のバケツをマークすること、ステップ470において以下のアウトリンクによってパスを反復的に生成すること、およびパスが条件付きのパスである場合に、テールをパスにマップすることを含んでもよい。条件付きのパスは、1つ以上の事前定義された閾値関数を満たすパスを含んでもよい。例えば、閾値関数は、最小パスの重みを指定してもよい。最小パスの重みよりも大きいパスの重みを有するパスは、条件付きのパスとして指定されてもよい。
【0051】
ステップ450において変化したノードがこれ以上存在しない場合、低減フェーズ452では、ステップ454において、処理すべきより多くのノードおよびパスがあるか否かが決定されてもよい。その場合、ステップ456において、次のノードおよびそのパスを回収してもよい。ステップ458において、バケツは、それらのヘッドによってパスをグループ化することにより作成されてもよい。バケツがステップ460においてNULLパスのみを含む場合、ノードテーブル内の対応するセルは、ステップ462において削除されてもよい。バケツがNULLパスより多くを含む場合、ステップ464において、バケツは、ノードテーブル内の対応するセルへ保存される。ステップ456において、処理すべきノードおよびパスがこれ以上存在しない場合、ステップ474においてプロセスは停止してもよい。
【0052】
図4Dに示されるように、変化したノードを通過するパスを除去するために、マップフェーズ476は、ステップ478において変化したノードがこれ以上あるか否かを決定すること、およびステップ488において次の変化したノードを回収することを含んでもよい。ステップ490において、変化したノードに対応するノードテーブル(例えば、ノードテーブル312のカラム322(共に図3B))内の「bucket:」カラムをスキャンしてもよい。例えば、上記に記載のように、ターゲットノード識別子は、「bucket:」カラム名の最後に付加されてもよい。各バケツは、現行のノードをターゲットノードに接続するパスのリスト(例えば、変化したノード)を含んでもよい。ステップ492において、スキャンによって見つかった各一致するノードおよび変化したノードの古いバケツについて、一致するノードが(変化したノード、古いバケツ)削除ペアに一致されてもよい。
【0053】
ステップ478において変化したノードがこれ以上存在しない場合、低減フェーズ480において、ステップ484において、処理すべきより多くのノードおよび削除ペアがあると決定されてもよい。その場合、ステップ484において次のノードおよびその削除ペアを回収してもよい。ステップ486において、各削除ペアについて、古いバケツ内の変化したノードを通過する任意のパスは削除されてもよい。ステップ482において処理すべきノードおよび削除ペアがこれ以上ない場合、プロセスは、ステップ494において停止してもよい。
【0054】
図4Eに示されるように、変化したノードを通過するパスを計算するためには、マップフェーズ496は、ステップ498において変化したノードがさらにあると決定すること、およびステップ508において次の変化したノードを回収することを含んでもよい。ステップ510において、変化したノードに対応するノードテーブル(例えば、ノードテーブル312のカラム322(共に図3B))内の「bucket:」カラムをスキャンしてもよい。ステップ512において、スキャンで見つかった各一致するノードおよび変化したノードのパスについて、スキャンされたバケツ内の全てのパスは、変化したバケツの全てのパスと結合されてもよい。ステップ514において、各一致するノードは、各条件付きの結合されたパスにマップされてもよい。
【0055】
ステップ498において変化したノードがこれ以上存在しない場合、低減フェーズ500では、ステップ502において処理すべきノードおよびパスがさらに存在することを決定してもよい。その場合、ステップ504において、次のノードおよびそのパスを回収してもよい。各パスは、ステップ506において適正なノードバケツに追加されてもよい。ステップ502において処理すべきノードおよびパスがこれ以上存在しない場合、プロセスはステップ516において停止してもよい。
【0056】
図5は、第1のノードからターゲットノードまでの全てのパスのユーザクエリをサポートするための例示的なプロセス520を示す。例えば、第1のノード(例えば、第1の個人またはエンティティを表す)が、第1のノードが、ネットワークコミュニティ内のいくつかの第2のノード(例えば、第2の個人またはエンティティを表す)にどのように接続するかを知りたいと思ったとする。上記に記載の信頼の文脈において(およびユーザ接続値が、例えば、少なくとも部分的に主観的なユーザ信頼値を表す場合)、このクエリは、第1のノードが第2のノードをどのくらい信頼してもよいかの表示を返してもよい。概して、2つのノードを接続するより多くのパスは、より大きい(または例えば、逆の評定が使用されている場合にはより小さい)ネットワーク接続値(またはネットワーク信頼の大きさ)を生じさせてもよい。
【0057】
ステップ522において、行識別子が第1のノード識別子と等しく、カラムが「bucket:」カラム名プリフィクスに付加されるターゲットノード識別子と等しい場合に、ノードテーブルセルがアクセスされる。全てのパスは、ステップ524においてこのセルから読み込まれてもよい。ステップ524において読み込まれるパスに割り当てられたパスの重みは、ステップ526において合計されてもよい。ステップ528において、パスの重みは、パスの重みの計算された合計によって、各パスの重みを分割することで正規化されてもよい。ネットワーク接続値は、ステップ530において計算されてもよい。例えば、各パスのユーザ接続値は、その正規化されたパスの重みが乗算されてもよい。ネットワーク接続値は、次いで、いくつかの実施形態では、以下の式に従って計算されてもよい。
【0058】
【数4】
式中、tpathはパス(式(3)に従って与えられる)のユーザ接続値であり、wpathはそのパスの正規化された重みである。ネットワーク接続値は、保持または出力(例えば、ディスプレイデバイス上に表示、アプリケーションサーバ106の処理回路によって出力、および/またはデータストア110(図1)上に記憶)されてもよい。加えて、意思決定アルゴリズムは、ユーザの代わりに自動決定(例えば、承認または識別リクエスト等の自動ネットワークベースの決定)を行うために、ネットワーク接続値にアクセスしてもよい。ネットワーク接続値は、さらにまたは代替として、サードパーティに配置される外部システムおよびプロセスに出力されてもよい。外部システムおよびプロセスは少なくとも部分的に、受信したネットワーク接続値に基づいて、トランザクションを自動的に開始する(またはいくつか特定の行動指針を取る)ように構成されてもよい。プロセス520は、ステップ532において停止してもよい。
【0059】
実際に、プロセス520に示される1つ以上のステップは、他のステップと共に組み合わせられ、任意の適した順序で実施され、並列(例えば、同時にまたは実質的に同時に)で実施され、または除かれてもよい。加えて、上記に記載のように、計算の複雑性を低減するために種々の閾値関数を使用してもよい。例えば、トラバース(traverse)への最大数のリンクを定義する閾値関数を定義してもよい。閾値関数によって指定される閾値よりも多く含有するパスは、ネットワーク接続決定において考慮されなくてもよい。加えて、リンクおよびパスの重みに関する種々の閾値関数を定義してもよい。閾値関数によって指定される閾値重み未満のリンクまたはパスは、ネットワーク接続決定で考慮されなくてもよい。
【0060】
プロセス520は第1のノードからターゲットノードまでの全てのパスの単一のユーザクエリを記述しているが、実際の実装において、ノードのグループは、グループ内の各ノードから特定のターゲットノードまでの全てのパスの単一のクエリを開始してもよい。例えば、ネットワークコミュニティの複数のメンバーは、全て、ターゲットノードへのグループクエリを開始してもよい。プロセス520は、グループ内の各クエリノードの個人ネットワーク接続値またはクエリグループ内の全てのノードを考慮する単一の合成されたネットワーク接続値を返してもよい。例えば、個人ネットワーク接続値は、合成された値を形成するために平均化されてもよく、またはいくつか重み付けされた平均を使用してもよい。各個々のネットワーク接続値に割り当てられた重みは、例えば、コミュニティ内のセキュリティ(例えば、各ノードがどれだけ長くコミュニティ内のメンバーであるか)、ランク、または社会的な名声に基づいてもよい。加えて、いくつかの実施形態では、ユーザは、単一のクエリ内の複数のターゲットノードのネットワーク接続値のリクエストを開始してもよい。例えば、ノードnが、それと複数の他のノードとの間のネットワーク接続値を決定することを望んでもよい。例えば、複数の他のノードは、ノードnによって特定のトランザクションを開始するためのいくつかの候補を表してもよい。単一のクエリ内の全てのネットワーク接続値のクエリを実行することにより、計算は、結果の一部または全てを実質的に同時に計算するように、複数のコアへ並列に分散されてもよい。
【0061】
加えて、クエリは、多くの方法で開始されてもよい。例えば、(ソースノードによって表される)ユーザは、自動的にプロセス520を開始するために(ターゲットノードによって表される)別のユーザを識別してもよい。例えば、視覚的ディスプレイ、グラフ、またはツリーからターゲットノードを選択することにより、ユーザ名、ハンドル、ネットワークアドレス、電子メールアドレス、電話番号、地理的座標、またはターゲットノードに関連付けられた一意の識別子を入力または選択することにより、または所定のコマンド(例えば、「クエリノード1」または「クエリノードグループ1、5、9」、ここで1、5、および9が一意のノード識別子を表す)をスピークすることにより、ユーザは、任意の適した方法でターゲットノードを識別してもよい。ターゲットノードまたはノードの識別が受信された後に、プロセス520が自動的に実施されてもよい。プロセス(例えば、個々または合成されたネットワーク接続値)の結果は、上記に記載のように、1つ以上のサードパーティのサービスまたはプロセスに自動的に送信されてもよい。
【0062】
一実施形態では、ユーザは、通信ネットワーク104(さらに、図1を参照)を通じてアプリケーションサーバ106にアクセスし、自動的にプロセス520を開始するために送信されるユーザクエリを生成するために、アクセスアプリケーション102を利用してもよい。例えば、ユーザは、Apple iOS、Android、またはWebOSアプリケーションまたは通信ネットワーク104を通じてアプリケーション106にアクセスする際に使用するための任意の適したアプリケーションにアクセスしてもよい。アプリケーションは、Facebook、MySpace、openSocial、Friendster、Bebo、hi5、Orkut、PerfSpot、Yahoo!360、LinkedIn、Twitter、Google Buzz、Really Simple Syndicationリーダーまたは任意の他のソーシャルネットワーキングウェブサイトまたは情報サービスのうちの1つ以上からそのユーザ(例えば、「友達」または「フォロワー」データ)に関連された関係データの検索可能なリストを表示してもよい。いくつかの実施形態では、ユーザは、直ちに(readily)、リストされていない関係データ、つまり、Facebook、Twitter、または関係データの検索可能なリストに表示されていないターゲットノードの情報の任意の適したデータベースを検索してもよい。ユーザは、ユーザがターゲットノードにどのように接続するかの尺度をリクエストするために、上記に記載のようにターゲットノードを選択(例えば、「友達」または「フォロワー」を表すユーザ名のリストから項目を選択)してもよい。図3および4A〜Dについて記載のプロセスを使用して、このクエリは、ユーザがターゲットノードをどれだけ信頼してもよいかの表示を返してもよい。返された表示は、任意の適したインジケータを用いてユーザに表示されてもよい。いくつかの実施形態では、インジケータは、ターゲットノードがユーザに対してどれだけ信頼性があるのかを示すパーセンテージであってもよい。
【0063】
いくつかの実施形態では、ユーザは、ターゲットノードがどれだけ信頼性があるかの少なくとも部分的に主観的な表示の手動の割り当てを提供するように、アクセスアプリケーション102を利用してもよい。例えば、ユーザは、ユーザが選択されたターゲットノード(例えば、選択された「友達」または「フォロワー」)を特定の度合いに信頼することを指定してもよい。特定の度合いは、ターゲットノードがどれほどの信頼性があるかのユーザの認識を表すパーセンテージの形態であってもよい。ユーザは、上記に記載のプロセス520の前、後、最中にこの表示を提供してもよい。ユーザ(例えば、信頼性の少なくとも部分的に主観的な表示)によって提供される表示は、上記に記載のように、1つ以上のサードパーティのサービスまたはプロセスに自動的に送信されてもよい。いくつかの実施形態では、ユーザによって提供される表示は、ノードおよび/またはリンクをネットワークコミュニティ内で変化させてもよい。この変化により、図3および4A〜4Dについて記載のように種々のプロセスをトリガする、ネットワークコミュニティ内で少なくとも1つのノードおよび/またはリンクが変化しているという決定が行われてもよい。
【0064】
いくつかの実施形態では、上記に記載の重み付けされたリンクアプローチに加えてまたはこれの代わりに、パスカウンティングアプローチを使用してもよい。(例えば、アプリケーションサーバ106の)処理回路は、ネットワークコミュニティ内の第1のノードnと第2のノードnとの間のパス数をカウントするように構成されてもよい。接続評定Rn1n2は、ノードに割り当てられてもよい。割り当てられた接続評定は、パス数、または2つのノードを接続する関係に比例してもよい。第1のノードnと第2のノードnとの間の1つ以上の中間ノードを有するパスは、適正な数(例えば、中間ノードの数)によってスケールされてもよく、接続評定を計算するためにこのスケールされた数を使用してもよい。
【0065】
上記に提示される各式は、同様の種類の式のクラスとして構成すべきであり、提示される実際の式は代表的なクラスの例である。例えば、上記に提示される式は、これらの式、低減、簡略化、正規化の全ての数学的に同等なバージョン、および同じ度合いの他の式を含む。
【0066】
本発明の上記に記載の実施形態は、例示を目的としてのものであり、制限を目的として提示されているものではない。以下の番号を振られたパラグラフは、本発明のさらなる実施形態を示す。
図1
図2
図3A
図3B
図4A
図4B
図4C
図4D
図4E
図5