1、(10)申请公布号 CN 102934100 A (43)申请公布日 2013.02.13 CN 102934100 A *CN102934100A* (21)申请号 201180019617.2 (22)申请日 2011.02.22 61/306,876 2010.02.22 US G06F 15/16(2006.01) G06F 17/00(2006.01) (71)申请人 美国亚德诺半导体公司 地址 美国马萨诸塞州 (72)发明人 B维格达 (74)专利代理机构 中国国际贸易促进委员会专 利商标事务所 11038 代理人 冯玉清 (54) 发明名称 分布式因子图形系统 (57) 摘要 一
2、种在数据处理系统中实现因子图形的方 法, 该因子图形具有通过边彼此连接的变量节点 和函数节点, 该方法包括 : 在第一计算机系统上 实现第一函数节点, 所述第一计算机系统与第二 计算机系统网络通信 ; 建立到多个处理系统中的 每个的网络连接 ; 在所述第一函数节点处接收来 自在所述处理系统中的一个上实现的变量节点的 软数据, 所述软数据包括值的估计和表示相信所 述估计对应于正确值的程度的信息 ; 以及从所述 第一函数节点向所述处理系统中的所述一个发送 表示所述值的更新估计的软数据。 (30)优先权数据 (85)PCT申请进入国家阶段日 2012.10.18 (86)PCT申请的申请数据 PCT
3、/US2011/025743 2011.02.22 (87)PCT申请的公布数据 WO2011/152900 EN 2011.12.08 (51)Int.Cl. 权利要求书 1 页 说明书 6 页 附图 11 页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书 1 页 说明书 6 页 附图 11 页 1/1 页 2 1. 一种在数据处理系统中实现因子图形的方法, 该因子图形具有通过边彼此连接的变 量节点和函数节点, 该方法包括 : 在第一计算机系统上实现第一函数节点, 所述第一计算机系统与第二计算机系统网络 通信 ; 建立到多个处理系统中的每个的网络连接 ; 在所述第一
4、函数节点处接收来自在所述处理系统中的一个上实现的变量节点的软数 据, 所述软数据包括值的估计和表示相信所述估计对应于正确值的程度的信息 ; 以及 从所述第一函数节点向所述处理系统中的所述一个发送表示所述值的更新估计的软 数据。 2. 如权利要求 1 所述的方法, 其中, 接收所述软数据包括从软等于节点接收所述信息。 3. 如权利要求 1 所述的方法, 还包括向所述变量节点提供用于生成与所述变量节点相 关联的所述变量的所述值的新估计的信息。 4. 如权利要求 1 所述的方法, 其中, 所述边通过网络连接实现。 5. 如权利要求 1 所述的方法, 其中, 所述变量节点包括等于门。 6. 如权利要求
5、 1 所述的方法, 还包括向所述变量节点分配唯一识别符。 7. 如权利要求 1 所述的方法, 其中, 接收所述软数据包括激活与所述第一函数节点对 应的超链接, 并且发送所述软数据包括激活与所述第一变量节点对应的超链接。 8. 一种用于实现因子图形的分布式计算机系统, 所述系统包括 : 第一计算机系统, 实现所述因子图形的函数节点 ; 第二计算机系统, 实现所述因子图形的变量节点 ; 其中, 所述第一和第二计算机系统通过网络数据通信。 权 利 要 求 书 CN 102934100 A 2 1/6 页 3 分布式因子图形系统 0001 相关申请的交叉引用 0002 本申请主张 2010 年 2 月
6、 22 日提交的题为 “DISTRIBUTED FACTOR GRAPH SYSTEM” 的美国临时申请 No.61/306,876 的权益, 其内容通过引用合并于此。 技术领域 0003 本公开涉及数据处理系统, 更特别地, 涉及用于概率计算的数据处理系统。 0004 联邦赞助研究声明 0005 本发明的完成得到了国防高级研究计划局 (DARPA) 给予的 FA8750-07-C-0231 下 的政府支持。政府具有本发明的某些权利。 背景技术 0006 如今, 大量的计算机时间主要用于实施贝叶斯公式以计算概率。 例如, 有在线的内 容分发服务, 其执行应用以用于预测消费者可能高度评级的内容,
7、 已知消费者先前已经对 内容进行了评级。 类似地, 存在零售服务, 其执行应用以用于预测消费者可能想要购买什么 产品, 已知消费者以前已经购买过该产品。 于是, 有搜索引擎尝试基于检索历史来预测什么 链接可能相关。这些应用实质上已知在先事件的发生, 计算条件概率, 即事件的概率。 0007 其他概率应用包括用于猜测如何将网页从一种语言翻译到另一种语言的程序以 及大规模贝叶斯推理, 包括雷达成像中的合成孔径重构、 医疗层析成像中的图像重构以及 预测与疾病相关联的核酸序列。 0008 在通信领域, 当例如蜂窝电话中的嵌入和移动应用基于所接收的带噪声的信号预 测最初发射了哪些比特时, 发生概率计算。
8、 在机器人技术中, 存在用于预测穿过困难地形的 最可能最佳路径的应用。 发明内容 0009 本发明基于如下认识, 即分布式计算机系统可以用于用软数据 (soft data) 实现 将要用于概率计算的图形。 这里使用时, 软数据指的是相信值的估计是正确值的程度。 在因 子图形中, 关于估计有多可能符合正确值的这些置信从一个节点传播到另一个节点。这样 做时, 置信逐渐变强, 直到它逼近近乎确定。以此方式确定值的过程通常称为 “置信传播” 。 0010 置信从一个节点到另一节点的传播可以跨越通过局域网络、 广域网络或者甚至诸 如因特网的全球网络连接的分布式计算机系统来进行。 可以通过从节点抽取消息或
9、者通过 使节点将其消息推送到另一节点来使置信从一个节点传播到另一节点。在因特网的情况 下, 置信可以通过采用已有的 RSS 馈送机制被推送, 且可以通过采用已有的超链接机制而 被抽取。 0011 在一方面中, 本发明呈现为一种用于实现因子图形的方法, 该因子图形具有通过 边 (edge) 彼此连接的变量节点和函数节点, 该方法包括在第一计算机系统上实现第一函数 节点, 所述第一计算机系统与第二计算机系统网络通信 ; 建立到多个处理系统中的每个的 说 明 书 CN 102934100 A 3 2/6 页 4 网络连接 ; 在所述第一函数节点处接收来自在所述处理系统中的一个上实现的变量节点的 软数
10、据, 所述软数据包括值的估计和表示相信所述估计对应于正确值的程度的信息 ; 以及 从所述第一函数节点向所述处理系统中的所述一个发送表示所述值的更新估计的软数据。 0012 在一些实践中, 接收所述软数据包括从软等于节点接收所述信息。 0013 另一些实践包括向所述变量节点提供用于生成与所述变量节点相关联的所述变 量的所述值的新估计的信息。 0014 替选实践包括其中所述边通过网络连接实现的那些实践, 其中所述变量节点包括 等于门的那些实践, 以及其中向所述变量节点分配唯一识别符的那些实践。 0015 在另一些实践中, 接收所述软数据包括激活与所述第一函数节点对应的超链接, 并且发送所述软数据包
11、括激活与所述第一变量节点对应的超链接。 0016 本发明的另外一些方面包括一种计算机可读介质以及数据处理系统, 该计算机可 读介质具有编码于其上的软件, 该软件用于实现前述方法中的任意方法, 该数据处理系统 包括服务器, 该服务器配置成执行其上编码有用于实现前述方法中的任意方法的软件的计 算机可读介质。 0017 在另一方面, 本发明的特征在于一种用于实现因子图形的分布式计算机系统。这 种系统包括 : 第一计算机系统, 实现所述因子图形的函数节点 ; 第二计算机系统, 实现所述 因子图形的变量节点。所述第一和第二计算机系统通过网络数据通信。 0018 这些以及其他特征将从下面的详细描述和附图变
12、得显然, 附图中 : 附图说明 0019 图 1 示出用于实现数独因子图形的示范性 DMPL 代码 ; 0020 图 2 示出图 1 实现的过程的迭代期间的数独阵列 ; 0021 图 3、 4 和 5 示出万维网解算器的示范性应用 ; 0022 图 6A 和 6B 示出用于实现与图 5 中的示例对应的因子图形的 DMPL 代码 ; 0023 图 7A 和 7B 示出图 5 的示例中的电话位置的估计 ; 0024 图 8A、 8B、 8C、 8D 和 8E 示出连续的用于估计图 5 的示例中的电话位置的概率分布 ; 0025 图 9 示出用于实现因子图形的软等于门 (soft equals ga
13、te) ; 0026 图 10 示出通过具有跨越网络的边 (edge) 而连接以形成更大因子图形的两个因子 图形 ; 0027 图 11 示出经由网络彼此连接的两个因子图形之间的变量的复制 ; 以及 0028 图 12 示出两个因子图形, 其每个经由网络连接到第三因子图形的公共等于节点 (equals node) 。 具体实施方式 0029 标准编程语言如 C 和 C+ 对于写代码而言是理想的, 该代码旨在汇编到且运行在 独立计算机诸如 PC 上或者甚至在超级计算机集群上。类似地, 对于写将要在独立计算机上 或者甚至在独立超级计算机诸如 Amazon 云上解算的概率图形模型或生成模型而言, 已
14、有 的概率编程语言是良好的。 0030 因为概率编程的重要性日益提高, 在概率编程语言方面已经出现了学术复兴。概 说 明 书 CN 102934100 A 4 3/6 页 5 率编程语言的早期示例是IBAL, 其由Avi Pfeffer在1997年创建。 已知语言包括Alchemy、 Bach、 Blaise、 Church、 CILog2、 CP-Logic、 Csoft、 DBLOG、 Dyna、 Factorie、 Infer.NET、 PyBLOG、 IBAL、 PMTK、 PRISM、 ProbLog、 ProBT、 R 和 S+。该列表中的大多数其他编程语言在过 去的 5 年内建立
15、。关于概率编程语言的第一次会议是 NIPS 2008 会议, 其于 2008 年 12 月 13 日在加拿大的 Whistler 召开。 0031 一种这样的概率编程语言是分布式数学编程语言 (DMPL) , 其描述于 2010 年 1 月 13 日提交的题为 “Implementation of Factor Graph Circuitry”的美国临时申请 No.61/294,740 中。 0032 DMPL已经用于建立许多有趣的演示。 图1示出用于实现数独解算器的示范性DMPL 源代码。该 DMPL 源代码主要描述游戏的规则。执行期间, 解算器迭代地退火到约束的满意 解。图 2 是在退火过
16、程中的中间点处解的快照。注意, 某些方块中的猜测仍处于重叠中。 0033 然而, 还没有适于在跨越网络 (network) 诸如因特网连接的处理器之间进行概率 计算的基于万维网 (web) 的概率编程语言。也没有万维网服务器用于进行概率计算, 下文 称为 “万维网解算器” 。 0034 万维网解算器可以在实现其中约束节点和变量节点通过边而连接的因子图形时 被查看。 典型地, 约束节点将居于云中, 变量节点将居于本地设备上。 给出变量之间的约束, 因子图形提供已知的途径来确定最可能的变量组合。 这种因子图形的操作始于一组初始变 量, 并且允许变量在多次迭代之后收敛到其最可能的值。 0035 对于
17、实现用于概率计算的因子图形的万维网服务, 存在许多实际应用。例如, 在 这种服务中, 移动设备可以收集传感器数据流, 诸如音频和视频数据, 并执行低水平推理 (inference) 以提取用于传输到云的统计值。这些统计值可以包括特定事件发生的概率。 云将接收来自多个设备的数据流, 如图 3 所示, 然后跨越这些数据流联合地执行推理。这种 推理可包括活动 (activity) 集中和归类。云然后将边缘概率 (marginal probability) 作 为因子图形消息发送到移动设备从而为进一步的推理做准备。 0036 另一示例将涉及汽车中的引擎故障的预测, 如图 4 所示。在这样的例子中, 每
18、个用 户将对云注册其汽车的年份、 制造商和型号。然后移动设备将收集引擎噪声音频和来自车 载计算机的信息。移动设备将使用该数据来提取用于传输到云的统计值。然后云将基于汽 车的状况来集中汽车, 并将边缘概率作为因子图形消息发送到移动设备。这些消息将使设 备为寻找数据中的特定签名 (signature) 做准备。 0037 另一示例是使多个适当配置的移动设备诸如个人数字助理或蜂窝电话能够通过 发射超声波并测量从相邻设备接收的声波的幅度来相互三角测量它们的相对位置, 如图 5 所示。用于实施该功能的示范性 DMPL 代码示于图 6A-6B 中。 0038 图7A-7B示出解 (solution) 从图
19、7A中的两次迭代之后的估计进展到图7B中的五 次迭代之后的改善的估计。设备的实际位置示为蓝十字, 解算器的位置估计示为绿圈。解 算器的连续估计实际上是两个空间变量的概率分布。这些分布的方差 (variance) 随着解 算器的每次迭代而减小。五次连续的估计示于图 8A-8E 中。 0039 在所有这些例子中, 移动设备或其他客户机设备 (诸如膝上计算机、 PC 或嵌入式处 理器) 具有传感器或使它们能与物理世界互动的其他 I/O 器件。 0040 前面的例子还涉及计算 “云” 。计算云一般理解为可通过万维网 (例如通过因特网 说 明 书 CN 102934100 A 5 4/6 页 6 和 /
20、 或无线网络) 访问的一组服务器群。然而, 计算云也可以是较不复杂一些的装置, 诸如 结合图 5 描述的装置, 其中 “云” 可以简单地是电话附近的膝上计算机, 其具有比电话更多 的处理能力。客户机和云因此能通过通信协议诸如 http 协议相互通信。 0041 在云和客户机设备之间可以存在各种其他关系。 例如, 在一实施例中, 通信是单向 的 : 客户机仅向云发送, 而云不向客户机发送。在另一实施例中, 通信是双向或多向的。在 另一实施例中, 根本没有 “云” 或 “服务器” , 而是相互通信的设备的 “网状 (mesh) ” 或 “对等 (adhoc) ” 网络。 0042 在一实施例中,
21、概率程序员将建立将变量彼此关联的贝叶斯模型 (诸如概率图形 模型或生成模型) 。例如, 在结合图 5 描述的蜂窝电话声学定位示例中, 该模型将是一组三 角约束, 已知关于一组电话相对于彼此的距离的 (噪声) 信息, 该三角约束强制该组电话的 允许位置的一致性。该模型可以居于云上。在该示例中, 云可以仅是通过网络与电话通信 的膝上型计算机。 0043 实现图 5 描述的过程的另一途径是对于每个客户机 (即, 每个电话) 具有仅带单个 变量的概率图形模型, 该变量表示客户机在欧几里德空间中的位置。与该变量相关联的将 是来自客户机的 GPS 接收器子系统的客户机位置的先前估计。为了方便, 将表示第一
22、电话 的位置的变量称为 “1” 。第二和第三电话将分别具有名为 “2” 和 “3” 的变量以识别它们的 位置。 0044 在概率图形模型中最流行的种类之一 (Forney因子图形) 中, 变量节点也称为等于 门。然而, 与它叫什么无关, 变量节点的功能是相同的 : 聚集对变量值的各种估计并且对于 该值重分配一个新值。例如对于二元变量,0、 1 中的 X, 等于门将是图 9 所示的形式。 0045 每个客户机具有用于其位置的模型。该模型体现于单个变量节点或等于门中。该 节点可以估计客户机的位置, 并且向外发送客户机位置的消息 (边缘概率) 。该节点还可以 接收消息, 所接收的消息将影响其对客户机
23、位置的估计。 0046 在常规概率图形模型中, 这些客户机位置节点 1、 2. 中的每个将通过边 (edge) 连接到模型中的一个或更多约束节点 (也称为 “函数节点” ) 。在图 5 的客户机定位示例中, 约束节点将通过强制三角恒等式对于欧几里德空间中存在的客户机而言保持为真, 来强制 客户机的允许位置的一致性。用于实现这些约束的示范性 DMPL 源代码示于图 6A-6B 中。 0047 已知因子图形和一些或全部变量的在先信息, 然后解算器算法 (诸如和 - 积算法) 可以跨越图形中的边执行迭代消息传递以产生对客户机位置的估计。 这一般都发生于一台 计算机上。在过去, 算法如和 - 积通过多
24、个线程、 批量列队等在多核计算机或超级计算机上 并行。 0048 然而, 在图 5 的客户机定位示例中, 客户机位置节点储存在与它相关联的客户机 上且在其上计算, 而约束节点储存在云上且在其上计算, 云可以实现在附近的膝上计算机 上。云还可以储存和计算依赖于其他约束的先前知识的其他变量节点。在所示的特定示例 中, 一个约束可以是全部客户机在具有已知尺寸和形状的桌子上。 在该情况下, 对于所有客 户机可以彼此离开多远将由限制。 0049 没有容易的途径用已有的概率编程语言实现该系统, 部分是因为没有容易的途径 在客户机与云之间或者客户机彼此之间传递消息。 一般必须超越概率编程语言并且发送概 率到
25、处理万维网通信的单独软件。 说 明 书 CN 102934100 A 6 5/6 页 7 0050 前述缺点通过在图形中具有作为网络连接的边而得到克服。在该方案中, 每个变 量接收 URL 或其他唯一识别符。概率程序本身如 .XML 或 .HTML 文档一样, 因为它居于万维 网解算器上。万维网解算器在接收到对变量值的请求, 即对 URL 的请求时重新计算该变量。 替选地, 该变量节点可以通过例如 RSS 馈送而被定期重新计算和通过辛迪加发送。 0051 该基于万维网的概率编程和概率解算基础结构使得建模者和解算器的大规模分 布式网络成为可能。例如, 不同大陆上的气候建模者可以每个建立一个他们大
26、陆上的气象 动力学模型。然后他们可以使用软等于超链接 (soft-equals-hyperlink) 将他们的模型链 接到其他模型。如果他们将他们的模型安置于服务器上, 并通过辛迪加发送他们的当前气 象预测, 那么其他服务器将通过软等于超链接而使该信息对他们可用。这些其他服务器又 可以更新他们自己的预报。以此方式, 概率消息 (边缘、 颗粒、 参数等) 可以在网络上无缝传 递, 模型的所有部分可以得到适当地更新, 尽管居于不同位置的不同计算机上。 0052 图 10 示出第一和第二因子图形, 其中一个因子图形上的变量节点连接到另一因 子图形上的约束节点, 连接边横跨网络。这两个节点之间的消息传
27、递通过超链接或 RSS 馈 送方便地进行。净效果是更大的因子图形, 其存在是网络连接的结果。 0053 图 11 示出第一和第二因子图形, 其每个实现在经由网络彼此连接的不同客户机 上。 第一因子图形中的一个变量节点经由两个客户机之间的网络连接而有效地成为对于两 个因子图形而言是公共的。虽然图 10 所示的例子是简单的, 但是显然的是, 图 10 所示的架 构可以容易地扩展到多个因子图形之间的多个超链接。 0054 图 12 示出类似的配置, 其中两个客户机连接到服务器, 公共变量节点现在居于服 务器上而不是在客户机上。图 12 中的变量节点可经由超链接而从任何客户机访问。 0055 在某些算
28、法诸如 Gibbs 采样中, 没有等于门。不过, 有从相邻约束节点接收更新的 变量节点。在 Gibbs 采样万维网解算器中 (以及在类似实施例中) , 变量节点被超链接到约 束节点且约束节点被超链接到变量节点, 而无需等于门。 0056 在某些解算器算法诸如和 - 积算法中, 图形中消息更新的顺序可以使针对给定图 形计算的最终结果产生差异。在常规实现中, 消息更新调度表通过单个计算机上的解算器 算法而在全局控制之下。 然而, 在分布式因子图形中, 可能难以维持对更新特定消息和安排 顺序的全局控制。 0057 洪水 (flooding) 调度是对于和 - 积算法而言最周知的调度。在洪水调度中,
29、从等 于门到函数节点的初始消息被计算。然后, 一旦这被完成, 消息就从约束节点传递到等于 门。 0058 针对上述调度问题的另一方法是具有集中服务器, 其同步所有的消息传递, 如结 合图 5 描述的那样。 0059 当与较大且较少集中组织的系统一起使用时, 集中服务器可具有多个缺点。即使 它可以跟踪巨大网络中的全部消息且以某种方式保证它们遵守洪水调度, 但是如果一个服 务器失效或者不能从其变量传送消息至它们的目的约束, 或者其约束不能传送它们的消息 至它们的对应变量, 则这种协议可能导致整个网络锁死。 0060 针对上述调度问题的另一方法是随机调度, 其中图形中的消息随机更新。此类调 度看起来
30、更适于这里描述的网络上的分布式消息传递。 0061 已经描述了本发明及其优选实施方式, 主张为新颖的且通过专利证书保护的本发 说 明 书 CN 102934100 A 7 6/6 页 8 明定义于所附权利要求及其等价物中。 说 明 书 CN 102934100 A 8 1/11 页 9 图 1 说 明 书 附 图 CN 102934100 A 9 2/11 页 10 图 2 说 明 书 附 图 CN 102934100 A 10 3/11 页 11 图 3 说 明 书 附 图 CN 102934100 A 11 4/11 页 12 图 4 图 5 说 明 书 附 图 CN 102934100
31、A 12 5/11 页 13 图 6A 说 明 书 附 图 CN 102934100 A 13 6/11 页 14 图 6B 说 明 书 附 图 CN 102934100 A 14 7/11 页 15 图 7A 图 7B 图 8A 图 8B 图 8C 图 8D 说 明 书 附 图 CN 102934100 A 15 8/11 页 16 图 8E 图 9 说 明 书 附 图 CN 102934100 A 16 9/11 页 17 图 10 说 明 书 附 图 CN 102934100 A 17 10/11 页 18 图 11 说 明 书 附 图 CN 102934100 A 18 11/11 页 19 图 12 说 明 书 附 图 CN 102934100 A 19