用于社交图数据分析以确定社区内的连接性的系统和方法

文档序号:7914611阅读:298来源:国知局
专利名称:用于社交图数据分析以确定社区内的连接性的系统和方法
技术领域
本发明一般地涉及个体和/或实体网络以及网络社区,更具体地,涉及用于确定个体和/或实体或者个体和/或实体网络内或者之间的信任得分(trust score)或连接性(connectivity)的系统和方法。
背景技术
网络社区内的个体或实体的连接性或关系可被用于推断(infer)该个体或实体的属性。例如,网络社区内的个体或实体的连接性可被用于确定个体或实体的身份(例如,用于作出关于身份主张和认证(authentication)的决策),个体或实体的可信赖度 (trustworthiness)或声誉,或者该个体或实体在特定社区或特定社区的子集中的成员资格(membership)、状况、和/或影响。但是,难以量化网络社区内的个体或实体的连接性。例如,网络社区可包括几百、几千、几百万、几十亿或更多成员。每个成员可拥有不同程度的关于自己和可能地关于社区其他成员的连接性信息。该信息中的一些可能是高度可信的或客观的,而其他信息可能是不太可信的和主观的。另外,来自社区成员的连接性信息可能以各种形式和以各种规模出现,使得难以有意义地将一个成员的“可信赖度”或“能力”(competence)和连接性信息与另一成员的“可信赖度”或“能力”和连接性信息相比较。此外,许多个体可能属于多个社区,进一步地使对于网络社区内的信任和连接性的可量化表示的确定复杂化。即使确定了对于一个个体的连接性的可量化表示,通常也难以以有意义的方式使用该表示来作出关于该个体的真实世界的决策(例如是否信任该个体)。此外,对于这些真实世界的决策可能有用的是预料性地(prospectively)(即,在一个预期的(anticipated)事件之前)将其作出。由于网络社区内的个体或实体的连接性可能随着该个体或实体与该网络社区中的其他个体或实体之间的连接可能定量地或定性地变化而快速地变化,所以,这样的预料性分析可能是困难的。该分析变得日益复杂,如同跨多个社区地被应用一样。

发明内容
鉴于以上这些,提供了用于确定网络社区内的节点之间的连接性以及从该连接性推断诸如可信赖度或能力的属性的系统和方法。使用下面更详细地描述的各种图遍历(graph traversal)和归一化(normalization)技术可以至少部分地确定连接性。在实施例中,可以使用路径计数方法,其中,处理电路被配置为计算网络社区内的第一节点Ii1与第二节点n2之间的路径的数量。然后,连接性等级(rating) Rnln2可被分配给节点。所分配的连接性等级可以与其他可能的度量之中的连接这两个节点的子路径的数量或关系成比例。通过使用子路径的数量作为度量,在第一节点Ii1与第二节点n2之间具有一个或多个中间节点的路径可以用适当的数量(例如,中间节点的数量)被标度,并且,该标度的数量可被用于计算连接性等级。
在一些实施例中,另外使用或作为该子路径计数方法的替代而使用加权的链路。处理电路可被配置为将相对的(relative)用户权重分配给网络社区内连接第一节点Ii1与第二节点112的每个路径。用户连接性值可以被分配给每个链路。例如,与节点Ii1关联的用户或实体可以为自节点Ii1的所有外出(outgoing)路径分配用户连接性值。在一些实施例中,由用户或实体分配的连接性值可以指示该用户或实体对于与节点n2关联的用户或实体的信任。然后,由特定用户或实体分配的链路值可以被相互比较以确定每个链路的相对用户权重。可以通过首先计算由该用户分配的所有用户连接性值(例如,出链路(out-link)值)的平均值来确定每个链路的相对用户权重。如果\是分配给链路i的用户连接性值,那么可以根据下式给出分配给该链路的相对用户权重Wi Wi =! + (/.-/,)-(I)
O为了确定一个路径的总权重,在一些实施例中,沿该路径的所有链路的权重可以被乘在一起。于是,可以根据下式给出总路径权重Wpath = TI (Wi) (2)。然后,根据下式,该路径的连接性值可被定义为由总路径权重乘以该路径中的所 有链路的最小用户连接性值tpath = WpathXtmin (3)。为了确定路径连接性值,在一些实施例中,并行的计算框架或分布式计算框架(或两者)可以被使用。例如,在一个实施例中,多个核处理器实现Apache Hadoop或GoogleMapReduce集群(cluster)。该集群可以与确定新路径链路值和路径权重有关地(inconnection with)进行一些或所有的分布式计算。处理电路可以识别网络社区内的改变节点。例如,新的向外的链路可以被加入,链路可以被移除,或者用户连接性值可能已经改变。响应于识别到改变节点,在一些实施例中,处理电路可以重新计算与所牵连的(implicated) —个或多个网络社区中的一些或所有节点关联的链路、路径和权重值。在一些实施例中,在识别到改变节点之后仅重新计算与网络社区中的受影响的节点关联的值。如果在网络社区中存在至少一个改变节点,该一个或多个改变节点可以先经历准备过程。准备过程可以包括“映射”阶段和“简化”(reduce)阶段。在准备过程的映射阶段,准备过程可以被分成更小的子过程,这些更小的子过程然后被分布给并行计算框架集群中的核。例如,每个节点或链路改变(例如,出链路的尾部(tail to out-link)改变和入链路的头部(head to in-link)改变)可以被映射到用于并行计算的不同的核。在准备过程的简化阶段,每个出链路的权重可以根据式(I)确定。然后,可以用出链路权重(或任何其他合适的值)之和来归一化每个出链路权重。然后,可以为每个改变节点、其入链路以及其出链路更新节点表。在已经准备了改变节点之后,起源于每个改变节点的路径可以被计算。再一次地,该过程的“映射”和“简化”阶段可以被定义。在该过程期间,在一些实施例中,可以对节点有向图(digraph)或节点树进行深度优先的搜索(depth-first search)。然后,所有受影响的祖先节点(ancestor node)可被识别并且它们的路径被重新计算。在一些实施例中,为了提高性能,可通过路径中的最后一个节点对路径分组。例如,所有以节点Ii1结束的路径可以被分组在一起,所有以节点n2结束的路径可以被分组在一起,等等。这些路径分组然后可以被分开存储(例如,在单个数据库表的不同列中)。在一些实施例中,路径分组可以被存储在实现HBase集群(或任何其他的压缩的高性能数据库系统,例如BigTable)的key-value存储系统(key-value store)的列中。在一些实施例中,可以定义一个或多个阈值函数。一个或多个阈值函数可被用于确定将在连接性确定或连接性计算中被分析的路径中的链路的最大数量。也可以为最小链路权重、路径权重或两者定义阈值系数(factor)。落在用户定义的或系统定义的阈值之下的权重可以在连接性确定或连接性计算中被忽略,而仅足够大小的权重可被考虑。在一些实施例中,用户连接性值可以代表第一节点与第二节点之间的信任度。在一个实施例中,节点Ii1可以将用户连接性值I1分配给它与节点n2之间的链路。节点n2也可将用户连接性值I2分配给它与节点Ii1之间的反向(reverse)链路。值I1和I2可以是对于与由该链路连接的节点关联的个体或实体的可信赖度的至少部分主观指示。例如,该网络社区(或某个其他社区)内的个体或实体的声誉、状况和/或影响,个体或实体与信任方的 结盟(例如,政治、社会或宗教结盟),与个体或实体的过去的交往(dealings),以及个体或实体的特征和诚信(integrity)(或任何其他有关的考虑)中的一个或多个可被用于确定指示信任的部分主观的用户连接性值。然后,用户(或由节点授权的其他个体)可以分配该值给将该节点连接至个体或实体的向出链路。在一些实施例中,客观的度量(例如,来自第三方评级机构或信用机构(credit bureau)的数据)也可以被使用,以形成指示信任的复合的(composite)用户连接性值。主观的度量、客观的度量、或者这两种类型的度量可以被自动获得或被手动输入以用于分析。在一些实施例中,决策算法可以访问连接性值以便代表用户作出自动决策(例如,自动的基于网络的决策,例如认证或身份请求)。连接性值可以另外地或可选地(alternatively)被输出至位于第三方的外部系统和过程。外部系统和过程可被配置为至少部分地基于所接收的连接性值自动地发起交易(或采取某特定的做法(course ofaction))。例如,电子或在线广告可以至少部分地基于网络连接性值而以网络社区的成员的子组为对象。在一些实施例中,决策算法可以访问连接性值以预料性地决策(例如,在预期的事件(如信用请求)之前)。这样的决策可以应用户的请求或作为自动化过程(例如信用机构的对顾客信息数据库的周期性自动分析)的一部分而作出。这种预料性的分析可以实现(allow for)以流动和/或动态的方式发起交易(或者采取某特定行动)。


结合附图考虑以下详细描述,本发明的以上和其他特征、其本质以及各种优点将更加清晰,其中图I是根据本发明的一个实施例的用于支持网络社区内的连接性的网络架构的例示性框图;图2是根据本发明的一个实施例的用于支持网络社区内的连接性的网络架构的另一例示性框图;图3A和3B示出了根据本发明的一个实施例的用于支持网络社区内的连接性确定的例示性数据表;图4A-4D示出了根据本发明的一个实施例的用于支持网络社区内的连接性确定的例示性过程;以及图5示出了根据本发明的一个实施例的用于查询到目标节点的所有路径并计算网络连接性值的例示性过程。
具体实施例方式提出了用于确定网络社区中节点之间的连接性的系统和方法。如本文所限定的,“节点”可以包括任何用户终端、网络设备、计算机、移动设备、访问点、或任何其他电子设备。在一些实施例中,节点也可以代表个人、实体(例如,法人(legal entity),诸如上市公 司(public company)或私营公司(private company)、企业、股份有限公司、合伙、独资、或慈善组织)、概念(例如,社交网络组)、动物、或无生命的物体(例如,汽车、飞行器、或工具)。此外,如本文所限定的,“网络社区”可以包括节点的集合并且可以代表设备、个体、或实体的任何组。例如,社交网络网站或社交网络服务(或任何其他类型的网站或服务,诸如在线游戏社区)的用户的所有或一些子集可以组成单个网络社区。每个用户在网络社区中可以由节点来代表。作为另一例子,特定的新闻组或分发列表(distribution list)的所有订户可以组成单个网络社区,其中每个个体订户在网络社区中可以用节点来代表。任何特定节点可以属于0个、I个或I个以上网络社区,或者一个节点可以被禁入整个该社区或该社区的子集。为了便于网络社区的添加、删除和链路改变,在一些实施例中,网络社区可以用有向的图(directed graph)、或有向图、加权有向图、树、或任何其他适合的数据结构来代表。图I示出了用于支持网络社区内的连接性确定的例示性网络架构100。用户可以利用访问应用102经由通信网络104访问应用服务器106。例如,访问应用102可以包括标准的web浏览器,应用服务器106可以包括web服务器,通信网络104可以包括因特网。访问应用102还可以包括专门为一个或多个平台或设备研发的专有(proprietary)应用。例如,访问应用102可以包括Apple iOS、Android、或WebOS应用或者用于经由通信网络104访问应用服务器106的任何适合的应用的一个或多个实例。多个用户可以借助于访问应用102的一个或多个实例访问应用服务器106。例如,多个移动设备可以各自具有本地运行在这些设备上的访问应用102的实例。一个或多个用户可以使用访问应用102的实例来与应用服务器106交互。通信网络104可以包括任何有线或无线网络,诸如因特网、WiMax (全球微波互联接入)、广域蜂窝或局域无线网络。通信网络104还可以包括个人局域网,诸如蓝牙和红外网络。通过使用任何合适的安全或加密协议,通信网络104上的通信可被加密或可以用其他方式使得其是安全的。可以包括诸如文件或web服务器的任何网络服务器或虚拟服务器的应用服务器106可以本地或经由任何适合的网络连接访问数据源108。应用服务器106还可以包括处理电路(例如,一个或多个微处理器)、存储器(例如,RAM、ROM、以及混合类型的存储器)、存储设备(例如,硬盘驱动器、光盘驱动器、以及磁带驱动器)。包括在应用服务器106中的处理电路可以执行用于支持本发明的网络连接性确定的服务器进程,而访问应用102执行对应的客户端进程。包括在应用服务器106中的处理电路还可以进行在本文与确定网络连接性有关地描述的任何计算和运算。在一些实施例中,上面记录有计算机程序逻辑的计算机可读介质包括在应用服务器106中。计算机程序逻辑可以确定网络社区中两个或更多个节点之间的连接性,并且它可以将该连接性输出到显示画面或数据,也可以不输出到显示画面或数据。例如,应用服务器106可以经由因特网、安全的私人LAN、或任何其他通信网络访问数据源108。数据源108可以包括一个或多个第三方数据源,诸如来自第三方社交网络服务和第三方评级机构的数据。例如数据源108可以包括来自Facebook、MySpace>openSocial、Friendster> Bebo、hi5、Orkut> PerfSpot、Yahoo !360、Linkedln、Twitter>Google Buzz、Really Simple Syndication readers或任何其他社交网络网站或信息服务的用户和关系数据(例如,“朋友”或“下属”数据)。数据源108也包括本地到应用服务器106的包含关于借助于访问应用102访问应用服务器106的用户的关系信息的数据存储系统和数据库(例如,地址、法律记录、运送旅客列表、赌博模式、政治和/或慈善捐助、政治派别(political affiliation)、车牌或身份证号、通用产品代码(universal product code)、新闻文章、商务列表、以及医院或大学从属关系(affiliation)的数据库)。应用服务器106可以与数据存储系统110、key-ValUe存储系统112和并行计算框架114中的一个或多个通信。可以包括任何关系数据库管理系统(RDBMS)、文件服务器或存储系统的数据存储系统110可以存储与一个或多个网络社区有关的信息。例如,数据表300(图3A)中的一个或多个可被存储在数据存储系统110中。数据存储系统110可以存储关于网络社区中的用户和实体的身份信息、网络社区中的节点的标识、用户链路和路径权重、用户配置设定、系统配置设定、和/或任何其他合适的信息。每个网络社区可以有数据存储系统110的一个实例,或者数据存储系统110可以存储与多个网络社区有关的信息。例如,数据存储系统110可以每网络社区包括一个数据库,或一个数据库可以存储关于所有可用网络社区的信息(例如,每个数据库表可以存储关于一个网络社区的信息)。可以包括任何并行或分布式计算框架或集群的并行计算框架114可以被配置为将计算作业分为要同时进行、以分布形式进行、或以上两者结合地进行的较小的作业。例如,并行计算框架114可以通过实现映射/简化计算范例(paradigm)来支持数据密集型分布式应用,在映射/简化计算范例中,这些应用可以被分为多个小工作片段,其中的每个小 工作片段都可以在核(core)集群中的任何一个核处理器上被执行或被重新执行。并行计算框架114的合适的例子包括Apache Hadoop集群。并行计算框架114可以与key-value存储系统112接口,其也可以采取核集群的形式。key-value存储系统112可以保持用于由并行计算框架114实现的映射/简化计算范例的多组key-value对。例如,并行计算框架114可以将大型分布式计算表达为对key-value对的多个数据组的一系列分布式操作。用户定义的映射/简化作业可以跨集群中的多个节点被执行。本文所述的处理和计算可以至少部分地由任何类型的处理器或处理器的组合进行。例如,各种类型的量子处理器(例如,固态量子处理器和基于光的量子处理器)、和人工神经网络等可被用于进行大规模并行计算和处理。在一些实施例中,并行计算框架114可以支持两个不同的阶段,“映射”阶段和“简化”阶段。计算的输入可以包括存储在key-value存储系统112中的key-value对的数据组。在映射阶段,并行计算框架114可以将输入的数据组分离或分割为大量的片段并且将每个片段分配给一个映射任务。并行计算框架114也可以跨它在上面操作的节点集群地分布这些映射任务。每个映射任务可以从它的被分配的片段消耗key-value对并且产生一组中间key-value对。对于每个输入key-value对,映射任务可以调用将该输入转化(transmute)为不同的key-value对的用户定义映射函数。在映射阶段之后,并行计算框架114可以按照键(key)将中间数据组分类并且产生元组(tuple)的集合,使得所有的与特定键关联的值一起出现。并行计算框架114还可以将元组的集合划分为数量与简化任务的数量相等的片段。在简化阶段中,每个简化任务可以消耗分配给它的元组的片段。对于每个这样的元组,简化任务可以调用将元组转化为输出key-value对的用户定义的简化函数。然后,并行计算框架114可以跨节点集群地分布许多简化任务并且将中间数据的合适片段提供给每个简化任务。每个阶段中的任务可以以容错的方式被执行,使得如果在计算期间一个或多个节 点出现故障,那么分配给这样的故障节点的任务可以跨剩余节点地被再分布。该行为可以实现负载平衡和使得故障任务以低运行时间开销被再执行。key-value存储系统112可以实现能够可靠地存储大文件的任何分布式文件系统。例如,key-value存储系统112可以实现Hadoop的自己的分布式文件系统(DFS)或更加可扩展的面向列的分布式数据库,诸如HBase。这样的文件系统或数据库可以包括BigTable类似的能力,诸如对任意数量的表列的支持。虽然为了不过分复杂化附图,图I仅示出了访问应用102、通信网络104、应用服务器106、数据源108、数据存储系统110、key-valUe存储系统112以及并行计算框架114的单个实例,但是,在实践中,网络架构100可以包括前述部件中的一个或多个的多个实例。另外,在一些实施例中,key-value存储系统112和并行计算框架114也可以被移除。如在图2的网络架构200中所示的,由key-value存储系统112和/或并行计算框架114所实施的并行或分布式计算可以被另外地或可选地由移动设备202的集群代替稳固的(stationary)核来执行。在一些实施例中,移动设备202的集群、key-value存储系统112和并行计算框架114都出现在网络架构中。某些应用进程和计算可以由移动设备202的集群执行,而某些其他应用进程和计算可以由key-value存储系统112和并行计算框架114执行。另外,在一些实施例中,通信网络104自身可以进行应用进程和计算中的一些或全部。例如,专门配置的路由器或卫星可以包括适于实施本文描述的应用进程和计算中的一些或全部的处理电路。移动设备202的集群可以包括一个或多个移动设备,诸如PDA、蜂窝电话、移动计算机、或任何其他移动计算设备。移动设备202的集群还可以包括包含微处理器(例如,具有空余处理时间)、存储器、或两者的任何器具(appliance)(例如,音频/视频系统、微波炉、冰箱、食品加工机)。应用服务器106可以指令移动设备202的集群内的设备以相似的方式执行计算、存储或两者,如同将已经由并行计算框架114和映射/简化计算范例分布给多个固定的核一样。移动设备202的集群中的每个设备可以执行离散计算作业、存储作业、或两者。应用服务器106可以组合每个分布式作业的结果并返回计算的最终结果。图3A示出了用于支持本发明的连接性确定的例示性数据表。一个或更多个表300可以被存储在例如数据存储系统110 (图I)中的关系数据库中。表302可以存储注册在网络社区中的所有节点的标识。唯一的标识符可以被分配给每个节点并存储在表302中。另外,字符串名称可以与每个节点关联并被存储在表302中。如上所述,在一些实施例中,节点可以代表个体或实体,在这种情况下,字符串名称可以包括个体或人的名和/或姓、昵称、句柄(handle),或实体名称。表304可以存储用户连接性值。在一些实施例中,用户连接性值可以由系统(例如,由应用服务器106 (图I))自动地分配。例如,应用服务器106 (图I)可以监控网络社区的成员之间所有电子交互(例如,电子通信、电子交易,或两者)。在一些实施例中,默认用户连接性值(例如,链路值I)可以被初始地分配给网络社区中的所有链路。在识别到网络社区中两个或多个节点之间的电子交互之后,可以根据节点间的交互的类型和交互的结果而上调或下调用户连接性值。例如,两个节点之间的每个简单email交流(exchange)可以自动地以固定的量增大或减小连接那两个节点的用户连接性值。两个节点之间的更复杂的交互(例如,产品或服务的销售或询问)可以以更大些的固定的量增大或减小连接那两个节点 的用户连接性值。在一些实施例中,两个节点之间的用户连接性值可以总是被增大,除非用户或节点指示该交互是不良的(unfavorable)、未成功完成的、或其他不利的(adverse)情况。例如,交易可能没有被按时执行或email交流可能是特别令人不愉快的。不利的交互可以自动减小用户连接性值,而所有其他交互可以增大用户连接性值(或不影响)。另外,可以使用外部源自动地获得用户连接性值。例如,可以自动地向第三方数据源(诸如评级机构和信用机构)查询连接性信息。该连接性信息可以包括完全客观的信息、完全主观的信息、部分客观和部分主观的复合信息、任何其他适合的连接性信息、或以上这些的任何组合。在一些实施例中,可以由网络社区的成员手动地分配用户连接性值。这些值可以代表例如在某程度上(in some endeavor)—个节点对另一节点的能力的评估、或者两个用户或节点之间的信任度或水平。如上所述,在一些实施例中,用户连接性值可以包括主观成分和客观成分。主观成分可以包括可信赖度“得分”,可信赖度“得分”指示第一用户或节点多么可信赖地找到第二用户、节点、社区、或子社区。该得分或值可以是全主观的并且可以基于两个用户、节点或社区之间的交互。包括主观和客观成分的复合用户连接性值也可以被使用。例如,可以参考(consult)第三方信息以基于例如顾客抱怨的数量、信用得分、社会经济因素(例如,年龄、收入、政治或宗教派别、以及犯罪史)、或在介质或在搜索引擎搜索中的引用/击中(hit)的数量而形成客观成分。可以使用通信网络104 (图I)访问第三方信息。例如,第三方信用机构的数据库可以被轮询,或者包括犯罪史信息的个人档案(biography)和背景信息可以由节点、用户、或系统管理员直接输入或者从第三方数据库或数据源(例如,作为数据源108 (图I)或单独的数据源的一部分)访问。表304可以存储链路的链路头、链路尾和用户连接性值的标识。链路可以是双向的,也可以不是。例如,从节点Ii1到节点n2的用户连接性值相比于从节点n2到节点Ii1的链路可以不同(并且是完全独立的)。尤其是在上述的信任情形(context)中,每个用户可以将他或她自己的用户连接性值分配给链路(即,在一些实施例中,两个用户不需要等量地相互信任)。表306可以存储表304的审计(audit)日志。可以分析表306以确定在网络社区中哪些节点或链路已经改变了。在一些实施例中,数据库触发器用于每当检测到表304中的数据的改变就自动地将审计记录插入到表306中。例如,可以创建新的链路,可以移除链路,或可以改变用户连接性值。该审计日志可以实现要被预料性地(即,在预期的事件之前)作出的与连接性值有关的决策。可以应用户的请求或作为诸如以下关于图5描述的过程的自动化过程的一部分作出这样的决策。这种预料性分析可以实现以流动和/或动态的方式发起交易(或采取某特定行动)。在检测到这样的改变后,所述触发器可以自动地在表306中创建新的行。表306可以存储改变节点的标识、和改变的链路头的标识、改变的链路尾、以及要分配给改变的链路的用户连接性值。表306也可以存储指示改变时间和操作代码的时间戳。在一些实施例中,操作代码可以包括“插入”、“更新”、或“删除”操作,其分别对应于链路是否被插入、用户连接性值是否被改变、或链路是否被删除。在其他实施例中,可以使用其他操作代码。图3B示出了用于支持本发明的连接性确定的例示性数据结构310。在一些实施例中,可以使用key-value存储系统112 (图I)存储数据结构310,而表300存储在数据存储系统110 (图I)中。如上所述,key-value存储系统112 (图I)可以实现HBase存储系统并且包括BigTable支持。像传统的关系数据库管理系统那样,图3B中示出的数据可以存 储在表中。但是,BigTable支持可实现每个表中的任意数量的列,而传统的关系数据库管理系统可能要求固定数量的列。数据结构310可以包括节点表312。在图3B中示出的例子中,节点表312包括几个列。节点表312可以包括行标识符列314,行标识符列314可以存储64比特、128比特、256比特、512比特、或1024比特的整数,并且可以用于唯一地识别节点表312中的每行(例如,每个节点)。列316可以包括当前节点的所有进入(incoming)链路的清单(list)。列318可以包括当前节点的所有外出链路的清单。列320可以包括当前节点所连接的节点标识符的清单。如果可以循着外出链路到达第二节点,那么第一节点可以连接到第二节点。例如,对于A->B,A连接到B,但B可能不连接到A。如以下更详细地描述的,可以过程400 (图4A)的图4B所示的部分期间使用列320。节点表312也可以包括一个或多个“桶”(bucket)列322。这些列可以存储将当前节点连接至目标节点的路径的清单。如上所述,通过路径中的最后一个节点(例如,目标节点)对多个路径进行分组可以便于连接性计算。如图3B中所示,在一些实施例中,为了便于扫描,桶列名称可以包括附到“桶”那一列末尾的目标节点标识符。 图4A-4D示出了用于确定网络社区内的节点的连接性的例示性过程。图4A示出了用于更新与网络社区关联的连接性图(或任何其他适合的数据结构)的过程400。如上所述,在一些实施例中,每个网络社区与其自己的连接性图、有向图、树或其他适合的数据结构关联。在其他实施例中,多个网络社区可以共享一个或多个连接性图(或其他数据结构)。在一些实施例中,关于图4A-4D描述的过程可以被执行以预料性地(例如,在预期的事件之前)作出决策。这样的决策可以应用户的请求或作为诸如以下关于图5描述的过程的自动化过程的一部分而作出。这种预料性分析可以实现以流动和/或动态的方式发起交易(或者采取某特定行动)。在步骤402,作出是否网络社区中至少一个节点已改变的确定。如上所述,在节点已改变之后,审计记录可被插入到表306 (图3)中。通过分析表306 (图3),(例如,通过图I的应用服务器106)作出新链路已被添加、现有链路已被移除、或用户连接性值已改变的确定。如果在步骤404确定节点已改变,那么过程400继续到步骤410 (在图4B中示出)以准备改变节点,到步骤412 (在图4C中示出)以计算源自改变节点的路径,到步骤414 (在图4D中示出)以移除通过改变节点的路径,以及到步骤416 (在图4E中示出)以计算通过改变节点的路径。应该注意的是,图4B、4C、4D和4E中示出的一个以上步骤或任务可以使用例如核的集群并行地执行。例如,图4B中示出的多个步骤或任务可以并行地或以分布式方式被执行,然后,图4C中示出的多个步骤或任务可以并行地或以分布式方式被执行,然后,图4D中示出的多个步骤或任务可以并行地或以分布式方式被执行,然后,图4E中示出的多个步骤或任务可以并行地或以分布式方式被执行。这样,与过程400关联的总体延迟(latency)可以被减少。如果在步骤404未检测到节点改变,那么过程400在步骤406进入休眠模式。例如,在一些实施例中,应用线程或进程可以连续地检查以确定是否网络社区中至少一个节点或链路已改变。在其他实施例中,应用线程或进程可以每n秒周期性地检查改变的链路和节点,其中n是任何正数。当在步骤416通过改变节点的路径被计算之后或在步骤406的休眠时段之后,过程400可以在步骤408确定是否循环。例如,如果所有的改变节点已被 更新,那么过程400可以在步骤418停止。但是,如果还有改变节点或链路要处理,那么过程400可以在步骤408循环并且返回到步骤404。在实践中,在过程400中示出的一个或更多个步骤可以与其他步骤组合、以任何合适的顺序被执行、并行地(例如,同时或基本同时地)被执行、或被移除。图4B-4E各自包括具有“映射”阶段和“简化”阶段的过程。如上所述,这些阶段可以形成由并行计算框架114 (图l)、key_value存储系统112 (图I)或两者实施的映射/简化计算范例的一部分。如在图4B中所示的,为了准备任何改变节点,映射阶段420可以包括在步骤422确定是否还有链路改变、在步骤440检索下面的链路改变、在步骤442映射出链路尾部的改变、以及在步骤444映射入链路头部的改变。如果在步骤422不再有链路改变,那么,在简化阶段424中,在步骤426可以作出是否还有节点和链路改变要处理的确定。如果是,那么可以在步骤428检索下一节点及其链路改变。最近期的链路改变可以在步骤430被保持(preserve),而任何中间链路改变被更近期的改变代替。例如,存储在表306 (图3)中的时间戳可以用于确定每个链路或节点改变的时间。在步骤432,可以计算平均出链路用户连接性值。例如,如果节点Ii1有8个具有分配的用户连接性值的出链路,那么这8个用户连接性值可以在步骤432被取平均。在步骤434,每个出链路的权重可以根据上面的式(I)来计算。然后,在步骤436,所有的出链路权重可被求和并且用于归一化每个出链路权重。例如,可以用所有出链路的权重之和来除每个出链路权重。这可以为每个出链路生成0和I之间的权重。在步骤438,现有的用于改变节点、入链路和出链路的桶可以被保存。例如,桶可以被保存在key-value存储系统112(图I)或数据存储系统110 (图I)中。如果在步骤426不再有节点和链路改变要处理,那么过程可以在步骤446停止。如图4C中所示的,为了计算源自改变节点的路径,映射阶段448可以包括在步骤450确定是否还有改变节点,在步骤466检索下一改变节点,在步骤468通过将改变节点映射到空(NULL)路径来标记现有的桶以便删除,在步骤470通过循着出链路而递归地生成路径,并且如果该路径是合格路径,则将尾部映射到该路径。合格=路径可以包括满足一个或多个预定义的阈值函数的路径。例如,阈值函数可以规定最小路径权重。路径权重比最小路径权重大的路径可以被指定为合格路径。如果在步骤450不再有改变节点,那么在简化阶段452中,在步骤454可以作出是否还有节点和路径要处理的确定。如果是,那么在步骤456可以检索下一节点及其路径。在步骤458,可以通过按其头部对路径分组来创建桶。如果在步骤460,桶只包含空路径,那么在步骤462,节点表中对应的単元格可被删除。如果桶不只包含空路径,那么在步骤464,该桶被保存到节点表中的对应的単元格。如果在步骤454不再有节点和路径要处理,则过程可以在步骤474停止。如图4D中所示,为了移除通过改变节点的路径,映射阶段476可以包括在步骤478确定是否还有改变节点以及在步骤488检索下一改变节点。在步骤490,节点表中的对应于改变节点的“桶”列(例如,节点表312的列322 (二者都在图3B中示出))可被扫描。例如,如上所述,目标节点标识符可以被附到“桶”列名称的末尾。每个桶可以包括将当前节点连接到目标节点(例如,改变节点)的路径的清単。在步骤492,对于通过扫描找到的每个匹配节点与改变节点的旧桶,该匹配节点可以与ー个(改变节点,旧桶)删除对相配。 如果在步骤478不再有改变节点,那么在简化阶段480中,在步骤482可以作出是否还有节点和删除对要处理的确定。如果是,那么在步骤484可以检索下一节点和其删除对。在步骤486,对于每个删除对,旧桶中的通过改变节点的任何路径可以被删除。如果在步骤482不再有节点和删除对要处理,那么过程可在步骤494停止。如图4E中所示,为了计算通过改变节点的路径,映射阶段496可以包括在步骤498确定是否还有改变节点以及在步骤508检索下一改变节点。在步骤510,对应于改变节点的节点表(例如,节点表312的列322 (两者在图3B中示出))中的“桶”列可以被扫描。在步骤512,对于在扫描中找到的每个匹配节点和改变节点的路径,被扫描的桶中的所有路径可以与改变的桶的所有路径联接(join)。在步骤514,每个匹配节点可以被映射到每个合格的组合路径。如果在步骤498不再有改变节点,那么在简化阶段500中,在步骤502可以作出是否还有节点和路径要处理的确定。如果是,那么可以在步骤504检索下一节点及其路径。然后,在步骤506,每个路径可以被加到适当的节点桶。如果在步骤502不再有节点和路径要处理,那么过程可以在步骤516停止。图5示出了用于支持对于从第一节点到目标节点的所有路径的用户查询的例示性过程520。例如,第一节点(例如,代表第一个体或实体)可能希望知道在网络社区中第一节点是如何连接到某第二节点(例如,代表第二个体或实体)的。在上面描述的信任情形(其中,用户连接性值例如代表至少部分主观的用户信任值)中,该查询可以返回第一节点可以多信任第二节点的指示。一般地,连接这两个节点的路径越多,可以产生的网络连接性值(或网络信任量)越大(或者越小,如果例如使用不利的等级)。在步骤522,访问行标识符等于第一节点标识符并且列等于附到“桶”列名称前缀的目标节点标识符的节点表単元格。在步骤524,可以从该単元格读出所有的路径。然后,在步骤526,分配给在步骤524读出的路径的路径权重可以被求和。在步骤528,通过用所计算的路径权重的和来除每个路径权重,可以将路径权重归ー化。然后,在步骤530,可以计算网络连接性值。例如,每个路径的用户连接性值可以与其归ー化的路径权重相乗。然后,在一些实施例中,可以根据下式计算网络连接性值tnetwork =Σ tpathXwpath (4),其中,tpath是路径的用户连接性值(根据式(3)给出的),Wpath是该路径的归ー化权重。然后,网络连接性值可以被保存或输出(例如,在显示设备上显示、由应用服务器106的处理电路输出、和/或存储在数据存储系统110 (图I))。另外,决策算法可以访问网络连接性值以便代表用户作出自动决策(例如,自动的基于网络的决策,诸如认证或身份请求)。网络连接性值可以另外或可选地被输出到位于第三方的外部系统和过程。外部系统和过程可以被配置为至少部分地基于接收的网络连接性值自动地发起交易(或采取某特定做法)。过程520可以在步骤532停止。
在实践中,在过程520中示出的一个或多个步骤可以与其他步骤组合、以任何合适的顺序被执行、并行地(例如,同时地或基本同时地)被执行、或被移除。另外,如上所述,可以使用各种阈值函数以便减少计算复杂性。例如,定义要遍历的链路的最大数量的阈值函数可以被定义。包含多于由阈值函数规定的阈值的路径可以在网络连接性确定中不被考虑。另外,可以定义与链路和路径权重有关的各种阈值函数。低于由阈值函数规定的阈值权重的链路或路径可以在网络连接性确定中不被考虑。虽然过程520描述了对于从第一节点到目标节点的所有路径的单个用户查询,但是在实际的实现中,节点组可以发起对于从该组中的每个节点到特定目标节点的所有路径的单个查询。例如,网络社区的多个成员都可以发起到目标节点的组查询。过程520可以为该组中的每个查询节点返回単独的网络连接性值或者考虑了查询组中的所有节点的单个复合网络连接性值。例如,各单独的网络连接性值可以被求平均以形成复合值或者某加权的平均值可以被使用。分配给每个单独的网络连接性值的权重可以基于例如在社区中的资历(seniority)(例如,姆个节点已经成为该社区中的成员多长时间)、级别(rank)、或社会地位。另外,在一些实施例中,用户可以在单个查询中发起对多个目标节点的网络连接性值的请求。例如,节点Ii1可能希望确定它与多个其他节点之间的网络连接性值。例如,所述多个其他节点可以代表用于发起与节点Ii1的特定交易的几个候选者。通过在单个查询中查询所有的网络连接性值,计算可以以并行的方式被分布到多个核从而ー些结果或所有的结果被基本上同时地计算出。另外,查询可以以多种方式被发起。例如,用户(用源节点代表)可以识别另ー用户(用目标节点代表)以便自动地发起过程520。用户可以以任何合适的方式识别目标节点,例如,通过从视觉显示(visual display)、图、或树选择目标节点,通过输入或选择用户名、句柄、网络地址、email地址、电话号码、地理坐标、或与目标节点关联的卩隹ー标识符,或通过说出预定的命令(例如,“查询节点I”或“查询节点组1、5、9”,其中1、5、9代表唯一的节点标识符)。在接收到ー个或多个目标节点的标识之后,过程520可以被自动执行。该过程的结果(例如,単独的或复合网络连接性值)然后可以被自动地发送到如上所述的ー个或多个第三方服务或过程。在实施例中,用户可以利用访问应用102来生成被经由通信网络104发送到访问应用服务器106的用户查询并且自动地发起过程520。例如,用户可以访问AppleiOS、Android、或WebOS应用或者用于经由通信网络104访问应用服务器106的任何适合的应用。应用可以显不与来自 Facebook、MySpace、openSocial、Friendster、Bebo、hi5、Orkut、PerfSpot、Yahoo ! 360、Linkedln、Twitter、Google Buzz、Really SimpleSyndicationreaders或任何其他社交网络网站或信息服务中的一个或多个的该用户有关的关系数据(例如,“朋友”或“下属”数据)的可捜索清単。在一些实施例中,用户可以捜索未被轻易地列出的关系数据ー即,从Facebook、Twitter、或任何适合的信息数据库搜索未在关系数据的可捜索清单中显示的目标节点。用户可以如上面所述的那样选择目标节点(例如,从代表“朋友”或“下属”的用户名清单中选择ー项)以请求该用户如何连接到该目标节点的度量。使用关于图3和图4A-4D描述的过程,该查询可以返回该用户可以多信任该目标节点的指示。返回的指示可以使用任何合适的指示器(indicator)显示给用户。在一些实施例中,指示器可以是指示对于该用户来说该目标节点是多么可信赖的百分比。在一些实施例中,用户可以利用访问应用102来提供对于目标节点是多么可信赖的至少部分主观的指示的手动分配。例如,用户可以规定他或她在特定程度上信任选择的目标节点(例如,选择的“朋友”或“下属”)。该特定程度可以按照代表用户感觉到目标节点 是多么可信赖的百分比的形式。用户可以在上述过程520之前、之后、或在上述过程520期间提供该指示。由用户提供的该指示(例如,可信赖度的至少部分主观的指示)然后可以如上所述的那样被自动发送到ー个或多个第三方服务或过程。在一些实施例中,由用户提供的指示可以引起节点和/或链路在网络社区中改变。该改变可能导致作出网络社区中至少一个节点和/或链路已改变的确定,这反过来触发如关于图3和图4A-4D描述的各种过程。在一些实施例中,可以在除了上述的加权链路方法之外还使用路径计数方法,或者可以代替上述的加权链路方法而使用路径计数方法。处理电路(例如,应用服务器106的处理电路)可以被配置为对网络社区内第一节点Ii1与第二节点n2之间的路径的数量进行计数。然后连接性等级Rnln2可以被分配给这些节点。分配的连接性等级可以与连接这两个节点的关系或路径的数量成比例。在第一节点Ii1与第二节点n2之间具有一个或更多个中间节点的路径可以通过适当的数量(例如中间节点的数量)被标度,并且该标度的数量可以被用于计算连接性等级。以上提出的各式应该被解释为相似种类的ー类式子,并且所提出的实际的式子是该类的ー个代表性例子。例如,以上所提出的式子包括那些式子、简化、化简、归ー化、以及同等的其他式子的所有数学上等同的版本。本发明的上述实施例的提出是出于例示而非限定的目的。以下编号的段落给出了本发明的另外实施例。
权利要求
1.一种用于确定第一节点与通过至少一个路径连接至第一节点的第二节点之间的网 络连接性的方法,所述方法包括识别网络社区内从第一节点到第二节点的路径;使用处理电路以为每个识别的路径确定归一化的路径权重;为每个识别的路径确定用户连接性值;针对每个识别的路径,对所述用户连接性值与所述归一化的路径权重之积求和,以产 生网络连接性指示;以及输出所述网络连接性指示。
2.如权利要求1所述的方法,还包括访问链路阈值,其中识别网络社区内从第一节点 到第二节点的路径包括仅识别包含比所访问的链路阈值更少的链路的那些路径。
3.如权利要求1所述的方法,还包括访问路径权重阈值,其中识别网络社区内从第一 节点到第二节点的路径包括仅识别归一化的路径权重在所访问的路径权重阈值以上的那 些路径。
4.如权利要求1所述的方法,其中,通过用所有识别的路径的路径权重之和除在识别 的路径中的每个链路的链路权重的积,控制电路为每个识别的路径确定归一化的路径权重。
5.如权利要求1所述的方法,其中,通过将识别的路径的路径权重与分配给该识别的 路径中的链路的最小连接性值相乘,控制电路为每个识别的路径确定用户连接性值。
6.如权利要求1所述的方法,其中,所述用户连接性值代表主观用户信任值或能力评 估中的至少一个。
7.如权利要求6所述的方法,还包括使用控制电路以 访问第三方评级数据;和至少部分地基于第三方评级信息确定所述网络连接性指示。
8.如权利要求1所述的方法,其中识别网络社区内从第一节点到第二节点的路径包括 访问来自社交网络服务的数据。
9.如权利要求1所述的方法,其中识别网络社区内从第一节点到第二节点的路径包括 从数据库中的表检索从第一节点到第二节点的路径的预存储标识。
10.如权利要求1所述的方法,还包括至少部分地基于所述网络连接性指示而自动地 作出至少一个基于网络的决策。
11.一种用于确定第一节点与通过至少一个路径连接至第一节点的第二节点之间的网 络连接性的系统,所述系统包括处理电路,所述处理电路被配置为识别网络社区内从第一节点到第二节点的路径;为每个识别的路径确定归一化的路径权重;为每个识别的路径确定用户连接性值;针对每个识别的路径,对所述用户连接性值与所述归一化的路径权重之积进行求和以 产生网络连接性指示;以及 输出所述网络连接性指示。
12.如权利要求11所述的系统,其中,所述处理电路进一步被配置为访问链路阈值,其中通过仅识别包含比所访问的链路阈值更少的链路的那些路径,控制电路识别网络社区内 从第一节点到第二节点的路径。
13.如权利要求11所述的系统,其中,所述处理电路进一步被配置为访问路径权重阈 值,其中,通过仅识别归一化的路径权重在所访问的路径权重阈值以上的那些路径,控制电 路识别网络社区内从第一节点到第二节点的路径。
14.如权利要求11所述的系统,其中,通过用所有识别的路径的路径权重之和除在识 别的路径中的每个链路的链路权重之积,控制电路为每个识别的路径确定归一化的路径权 重。
15.如权利要求11所述的系统,其中,通过将识别的路径的路径权重与分配给该识别 的路径中的链路的最小连接性值相乘,控制电路为每个识别的路径确定用户连接性值。
16.如权利要求11所述的系统,其中,所述用户连接性值代表主观用户信任值或能力 评估中的至少一个。
17.如权利要求16所述的系统,其中,控制电路进一步被配置为访问第三方评级数据;以及至少部分地基于第三方评级信息确定所述网络连接性指示。
18.如权利要求11所述的系统,其中,通过访问来自社交网络服务的数据,控制电路识 另IJ网络社区内从第一节点到第二节点的路径。
19.如权利要求11所述的系统,其中,通过从数据库中的表检索从第一节点到第二节 点的路径的预存储标识,控制电路识别网络社区内从第一节点到第二节点的路径。
20.如权利要求11所述的系统,其中,控制电路进一步被配置为至少部分地基于所述 网络连接性指示而自动地作出至少一个基于网络的决策。
21.一种用于确定第一节点与通过至少一个路径连接至第一节点的第二节点之间的网 络连接性的系统,所述系统包括用于识别网络社区内从第一节点到第二节点的路径的装置;用于为每个识别的路径确定归一化的路径权重的装置;用于为每个识别的路径确定用户连接性值的装置;用于针对每个识别的路径,对所述用户连接性值与所述归一化的路径权重之积进行求 和以产生网络连接性指示的装置;以及用于输出所述网络连接性指示的装置。
22.如权利要求21所述的系统,还包括用于访问链路阈值的装置,其中,用于识别网络 社区内从第一节点到第二节点的路径的装置包括用于仅识别包含比所访问的链路阈值更 少的链路的那些路径的装置。
23.如权利要求21所述的系统,还包括用于访问路径权重阈值的装置,其中,用于识别 网络社区内从第一节点到第二节点的路径的装置包括用于仅识别归一化的路径权重在所 访问的路径权重阈值以上的那些路径的装置。
24.如权利要求21所述的系统,其中,用于为每个识别的路径确定归一化的路径权重 的装置包括用于用所有识别的路径的路径权重之和除在识别的路径中的每个链路的链路 权重之积的装置。
25.如权利要求21所述的系统,其中,用于为每个识别的路径确定用户连接性值的装置包括用于将识别的路径的路径权重与分配给该识别的路径中的链路的最小连接性值相 乘的装置。
26.如权利要求21所述的系统,其中,所述用户连接性值代表主观用户信任值或能力 评估中的至少一个。
27.如权利要求26所述的系统,还包括用于访问第三方评级数据的装置;以及用于至少部分地基于第三方评级信息确定所述网络连接性指示的装置。
28.如权利要求21所述的系统,其中,用于识别网络社区内从第一节点到第二节点的 路径的装置包括用于访问来自社交网络服务的数据的装置。
29.如权利要求21所述的系统,其中,用于识别网络社区内从第一节点到第二节点的 路径的装置包括用于从数据库中的表检索从第一节点到第二节点的路径的预存储标识的装置。
30.如权利要求21所述的系统,还包括用于至少部分地基于所述网络连接性指示而自 动地作出至少一个基于网络的决策的装置。
全文摘要
本发明提供了用于社交图数据分析以确定社区内节点之间的连接性的系统和方法。用户可以向社区的其他成员分配用户连接性值,或连接性值可以从第三方自动获得或基于社区成员之间的交互的频率被自动分配。连接性值可以代表诸如联盟、声誉、状况和/或在网络社区的社交图内的影响、或信任度之类的因素。连接第一节点与第二节点的路径可以被检索,并且可以对搜索到的路径执行社交图数据分析。例如,网络连接性值可以从所有检索到的路径的全部或其子集被确定。并行计算框架可以与key-value存储系统相关地操作以执行有关连接性确定的一些或所有计算。网络连接性值和/或其他社交图数据可以被输出到第三方过程和服务以用于发起自动交易或作出自动化的基于网络或真实世界的决策。
文档编号H04L12/26GK102668457SQ201080051338
公开日2012年9月12日 申请日期2010年9月30日 优先权日2009年9月30日
发明者柯蔼文, 陈铭谦 申请人:柯蔼文, 陈铭谦
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1