專利名稱:分布式因子圖形系統(tǒng)的制作方法
技術領域:
本公開涉及數(shù)據(jù)處理系統(tǒng),更特別地,涉及用于概率計算的數(shù)據(jù)處理系統(tǒng)。聯(lián)邦贊助研究聲明本發(fā)明的完成得到了國防高級研究計劃局(DARPA)給予的FA8750-07-C-0231下的政府支持。政府具有本發(fā)明的某些權利。
背景技術:
如今,大量的計算機時間主要用于實施貝葉斯公式以計算概率。例如,有在線的內容分發(fā)服務,其執(zhí)行應用以用于預測消費者可能高度評級的內容,已知消費者先前已經(jīng)對內容進行了評級。類似地,存在零售服務,其執(zhí)行應用以用于預測消費者可能想要購買什么產品,已知消費者以前已經(jīng)購買過該產品。于是,有搜索引擎嘗試基于檢索歷史來預測什么鏈接可能相關。這些應用實質上已知在先事件的發(fā)生,計算條件概率,即事件的概率。其他概率應用包括用于猜測如何將網(wǎng)頁從一種語言翻譯到另一種語言的程序以及大規(guī)模貝葉斯推理,包括雷達成像中的合成孔徑重構、醫(yī)療層析成像中的圖像重構以及預測與疾病相關聯(lián)的核酸序列。在通信領域,當例如蜂窩電話中的嵌入和移動應用基于所接收的帶噪聲的信號預測最初發(fā)射了哪些比特時,發(fā)生概率計算。在機器人技術中,存在用于預測穿過困難地形的最可能最佳路徑的應用。
發(fā)明內容
本發(fā)明基于如下認識,即分布式計算機系統(tǒng)可以用于用軟數(shù)據(jù)(soft data)實現(xiàn)將要用于概率計算的圖形。這里使用時,軟數(shù)據(jù)指的是相信值的估計是正確值的程度。在因子圖形中,關于估計有多可能符合正確值的這些置信從一個節(jié)點傳播到另一個節(jié)點。這樣做時,置信逐漸變強,直到它逼近近乎確定。以此方式確定值的過程通常稱為“置信傳播”。置信從一個節(jié)點到另一節(jié)點的傳播可以跨越通過局域網(wǎng)絡、廣域網(wǎng)絡或者甚至諸如因特網(wǎng)的全球網(wǎng)絡連接的分布式計算機系統(tǒng)來進行。可以通過從節(jié)點抽取消息或者通過使節(jié)點將其消息推送到另一節(jié)點來使置信從一個節(jié)點傳播到另一節(jié)點。在因特網(wǎng)的情況下,置信可以通過采用已有的RSS饋送機制被推送,且可以通過采用已有的超鏈接機制而被抽取。在一方面中,本發(fā)明呈現(xiàn)為一種用于實現(xiàn)因子圖形的方法,該因子圖形具有通過邊(edge)彼此連接的變量節(jié)點和函數(shù)節(jié)點,該方法包括在第一計算機系統(tǒng)上實現(xiàn)第一函數(shù)節(jié)點,所述第一計算機系統(tǒng)與第二計算機系統(tǒng)網(wǎng)絡通信;建立到多個處理系統(tǒng)中的每個的網(wǎng)絡連接;在所述第一函數(shù)節(jié)點處接收來自在所述處理系統(tǒng)中的一個上實現(xiàn)的變量節(jié)點的軟數(shù)據(jù),所述軟數(shù)據(jù)包括值的估計和表示相信所述估計對應于正確值的程度的信息;以及從所述第一函數(shù)節(jié)點向所述處理系統(tǒng)中的所述一個發(fā)送表示所述值的更新估計的軟數(shù)據(jù)。在一些實踐中,接收所述軟數(shù)據(jù)包括從軟等于節(jié)點接收所述信息。另一些實踐包括向所述變量節(jié)點提供用于生成與所述變量節(jié)點相關聯(lián)的所述變量的所述值的新估計的信息。
替選實踐包括其中所述邊通過網(wǎng)絡連接實現(xiàn)的那些實踐,其中所述變量節(jié)點包括等于門的那些實踐,以及其中向所述變量節(jié)點分配唯一識別符的那些實踐。在另一些實踐中,接收所述軟數(shù)據(jù)包括激活與所述第一函數(shù)節(jié)點對應的超鏈接,并且發(fā)送所述軟數(shù)據(jù)包括激活與所述第一變量節(jié)點對應的超鏈接。本發(fā)明的另外一些方面包括一種計算機可讀介質以及數(shù)據(jù)處理系統(tǒng),該計算機可讀介質具有編碼于其上的軟件,該軟件用于實現(xiàn)前述方法中的任意方法,該數(shù)據(jù)處理系統(tǒng)包括服務器,該服務器配置成執(zhí)行其上編碼有用于實現(xiàn)前述方法中的任意方法的軟件的計算機可讀介質。在另一方面,本發(fā)明的特征在于一種用于實現(xiàn)因子圖形的分布式計算機系統(tǒng)。這種系統(tǒng)包括第一計算機系統(tǒng),實現(xiàn)所述因子圖形的函數(shù)節(jié)點;第二計算機系統(tǒng),實現(xiàn)所述因子圖形的變量節(jié)點。所述第一和第二計算機系統(tǒng)通過網(wǎng)絡數(shù)據(jù)通信。這些以及其他特征將從下面的詳細描述和附圖變得顯然,附圖中
圖I示出用于實現(xiàn)數(shù)獨因子圖形的示范性DMPL代碼;圖2示出圖I實現(xiàn)的過程的迭代期間的數(shù)獨陣列;圖3、4和5示出萬維網(wǎng)解算器的示范性應用;圖6A和6B示出用于實現(xiàn)與圖5中的示例對應的因子圖形的DMPL代碼;圖7A和7B示出圖5的示例中的電話位置的估計;圖8A、8B、8C、8D和8E示出連續(xù)的用于估計圖5的示例中的電話位置的概率分布;圖9示出用于實現(xiàn)因子圖形的軟等于門(soft equals gate);圖10示出通過具有跨越網(wǎng)絡的邊(edge)而連接以形成更大因子圖形的兩個因子圖形;圖11示出經(jīng)由網(wǎng)絡彼此連接的兩個因子圖形之間的變量的復制;以及圖12示出兩個因子圖形,其每個經(jīng)由網(wǎng)絡連接到第三因子圖形的公共等于節(jié)點(equalsnode)。
具體實施例方式標準編程語言如C和C++對于寫代碼而言是理想的,該代碼旨在匯編到且運行在獨立計算機諸如PC上或者甚至在超級計算機集群上。類似地,對于寫將要在獨立計算機上或者甚至在獨立超級計算機諸如Amazon云上解算的概率圖形模型或生成模型而言,已有的概率編程語目是良好的。因為概率編程的重要性日益提高,在概率編程語言方面已經(jīng)出現(xiàn)了學術復興。概率編程語言的早期示例是IBAL,其由Avi Pfeffer在1997年創(chuàng)建。已知語言包括Alchemy、Bach、Blaise、Church、CILog2、CP-Logic、Csoft、DBLOG、Dyna、Factorie、Infer. NET、PyBLOG、IBAL、PMTK、PRISM、ProbLog、ProBT、R和S+。該列表中的大多數(shù)其他編程語言在過去的5年內建立。關于概率編程語言的第一次會議是NIPS 2008會議,其于2008年12月13日在加拿大的Whistler召開。一種這樣的概率編程語言是分布式數(shù)學編程語言(DMPL),其描述于2010年I月13日提交的題為“Implementation of Factor Graph Circuitry”的美國臨時申請No. 61/294,740 中。DMPL已經(jīng)用于建立許多有趣的演示。圖I示出用于實現(xiàn)數(shù)獨解算器的示范性DMPL源代碼。該DMPL源代碼主要描述游戲的規(guī)則。執(zhí)行期間,解算器迭代地退火到約束的滿意 解。圖2是在退火過程中的中間點處解的快照。注意,某些方塊中的猜測仍處于重疊中。然而,還沒有適于在跨越網(wǎng)絡(network)諸如因特網(wǎng)連接的處理器之間進行概率計算的基于萬維網(wǎng)(web)的概率編程語言。也沒有萬維網(wǎng)服務器用于進行概率計算,下文稱為“萬維網(wǎng)解算器”。萬維網(wǎng)解算器可以在實現(xiàn)其中約束節(jié)點和變量節(jié)點通過邊而連接的因子圖形時被查看。典型地,約束節(jié)點將居于云中,變量節(jié)點將居于本地設備上。給出變量之間的約束,因子圖形提供已知的途徑來確定最可能的變量組合。這種因子圖形的操作始于一組初始變量,并且允許變量在多次迭代之后收斂到其最可能的值。對于實現(xiàn)用于概率計算的因子圖形的萬維網(wǎng)服務,存在許多實際應用。例如,在這種服務中,移動設備可以收集傳感器數(shù)據(jù)流,諸如音頻和視頻數(shù)據(jù),并執(zhí)行低水平推理(inference)以提取用于傳輸?shù)皆频慕y(tǒng)計值。這些統(tǒng)計值可以包括特定事件發(fā)生的概率。云將接收來自多個設備的數(shù)據(jù)流,如圖3所示,然后跨越這些數(shù)據(jù)流聯(lián)合地執(zhí)行推理。這種推理可包括活動(activity)集中和歸類。云然后將邊緣概率(marginal probability)作為因子圖形消息發(fā)送到移動設備從而為進一步的推理做準備。另一示例將涉及汽車中的引擎故障的預測,如圖4所示。在這樣的例子中,每個用戶將對云注冊其汽車的年份、制造商和型號。然后移動設備將收集引擎噪聲音頻和來自車載計算機的信息。移動設備將使用該數(shù)據(jù)來提取用于傳輸?shù)皆频慕y(tǒng)計值。然后云將基于汽車的狀況來集中汽車,并將邊緣概率作為因子圖形消息發(fā)送到移動設備。這些消息將使設備為尋找數(shù)據(jù)中的特定簽名(signature)做準備。另一示例是使多個適當配置的移動設備諸如個人數(shù)字助理或蜂窩電話能夠通過發(fā)射超聲波并測量從相鄰設備接收的聲波的幅度來相互三角測量它們的相對位置,如圖5所示。用于實施該功能的示范性DMPL代碼示于圖6A-6B中。圖7A-7B示出解(solution)從圖7A中的兩次迭代之后的估計進展到圖7B中的五次迭代之后的改善的估計。設備的實際位置示為藍十字,解算器的位置估計示為綠圈。解算器的連續(xù)估計實際上是兩個空間變量的概率分布。這些分布的方差(variance)隨著解算器的每次迭代而減小。五次連續(xù)的估計示于圖8A-8E中。在所有這些例子中,移動設備或其他客戶機設備(諸如膝上計算機、PC或嵌入式處理器)具有傳感器或使它們能與物理世界互動的其他I/o器件。前面的例子還涉及計算“云”。計算云一般理解為可通過萬維網(wǎng)(例如通過因特網(wǎng)和/或無線網(wǎng)絡)訪問的一組服務器群。然而,計算云也可以是較不復雜一些的裝置,諸如結合圖5描述的裝置,其中“云”可以簡單地是電話附近的膝上計算機,其具有比電話更多的處理能力??蛻魴C和云因此能通過通信協(xié)議諸如http協(xié)議相互通信。在云和客戶機設備之間可以存在各種其他關系。例如,在一實施例中,通信是單向的客戶機僅向云發(fā)送,而云不向客戶機發(fā)送。在另一實施例中,通信是雙向或多向的。在另一實施例中,根本沒有“云”或“服務器”,而是相互通信的設備的“網(wǎng)狀(mesh)”或“對等(adhoc)” 網(wǎng)絡。在一實施例中,概率程序員將建立將變量彼此關聯(lián)的貝葉斯模型(諸如概率圖形模型或生成模型)。例如,在結合圖5描述的蜂窩電話聲學定位示例中,該模型將是一組三角約束,已知關于一組電話相對于彼此的距離的(噪聲)信息,該三角約束強制該組電話的允許位置的一致性。該模型可以居于云上。在該示例中,云可以僅是通過網(wǎng)絡與電話通信的膝上型計算機。實現(xiàn)圖5描述的過程的另一途徑是對于每個客戶機(即,每個電話)具有僅帶單個變量的概率圖形模型,該變量表示客戶機在歐幾里德空間中的位置。與該變量相關聯(lián)的將是來自客戶機的GPS接收器子系統(tǒng)的客戶機位置的先前估計。為了方便,將表示第一電話的位置的變量稱為“I”。第二和第三電話將分別具有名為“2”和“3”的變量以識別它們的位置。在概率圖形模型中最流行的種類之一(Forney因子圖形)中,變量節(jié)點也稱為等于門。然而,與它叫什么無關,變量節(jié)點的功能是相同的聚集對變量值的各種估計并且對于該值重分配一個新值。例如對于二元變量,{0、1}中的X,等于門將是圖9所示的形式。每個客戶機具有用于其位置的模型。該模型體現(xiàn)于單個變量節(jié)點或等于門中。該節(jié)點可以估計客戶機的位置,并且向外發(fā)送客戶機位置的消息(邊緣概率)。該節(jié)點還可以接收消息,所接收的消息將影響其對客戶機位置的估計。在常規(guī)概率圖形模型中,這些客戶機位置節(jié)點1、2...中的每個將通過邊(edge)連接到模型中的一個或更多約束節(jié)點(也稱為“函數(shù)節(jié)點”)。在圖5的客戶機定位示例中,約束節(jié)點將通過強制三角恒等式對于歐幾里德空間中存在的客戶機而言保持為真,來強制客戶機的允許位置的一致性。用于實現(xiàn)這些約束的示范性DMPL源代碼示于圖6A-6B中。已知因子圖形和一些或全部變量的在先信息,然后解算器算法(諸如和-積算法)可以跨越圖形中的邊執(zhí)行迭代消息傳遞以產生對客戶機位置的估計。這一般都發(fā)生于一臺計算機上。在過去,算法如和-積通過多個線程、批量列隊等在多核計算機或超級計算機上并行。然而,在圖5的客戶機定位示例中,客戶機位置節(jié)點儲存在與它相關聯(lián)的客戶機上且在其上計算,而約束節(jié)點儲存在云上且在其上計算,云可以實現(xiàn)在附近的膝上計算機上。云還可以儲存和計算依賴于其他約束的先前知識的其他變量節(jié)點。在所示的特定示例中,一個約束可以是全部客戶機在具有已知尺寸和形狀的桌子上。在該情況下,對于所有客戶機可以彼此離開多遠將由限制。沒有容易的途徑用已有的概率編程語言實現(xiàn)該系統(tǒng),部分是因為沒有容易的途徑在客戶機與云之間或者客戶機彼此之間傳遞消息。一般必須超越概率編程語言并且發(fā)送概率到處理萬維網(wǎng)通信的單獨軟件。
前述缺點通過在圖形中具有作為網(wǎng)絡連接的邊而得到克服。在該方案中,每個變量接收URL或其他唯一識別符。概率程序本身如.XML或.HTML文檔一樣,因為它居于萬維網(wǎng)解算器上。萬維網(wǎng)解算器在接收到對變量值的請求,即對URL的請求時重新計算該變量。替選地,該變量節(jié)點可以通過例如RSS饋送而被定期重新計算和通過辛迪加發(fā)送。該基于萬維網(wǎng)的概率編程和概率解算基礎結構使得建模者和解算器的大規(guī)模分布式網(wǎng)絡成為可能。例如,不同大陸上的氣候建模者可以每個建立一個他們大陸上的氣象動力學模型。然后他們可以使用軟等于超鏈接(soft-equals-hyperlink)將他們的模型鏈接到其他模型。如果他們將他們的模型安置于服務器上,并通過辛迪加發(fā)送他們的當前氣象預測,那么其他服務器將通過軟等于超鏈接而使該信息對他們可用。這些其他服務器又可以更新他們自己的預報。以此方式,概率消息(邊緣、顆粒、參數(shù)等)可以在網(wǎng)絡上無縫傳遞,模型的所有部分可以得到適當?shù)馗?,盡管居于不同位置的不同計算機上。圖10示出第一和第二因子圖形,其中一個因子圖形上的變量節(jié)點連接到另一因子圖形上的約束節(jié)點,連接邊橫跨網(wǎng)絡。這兩個節(jié)點之間的消息傳遞通過超鏈接或RSS饋 送方便地進行。凈效果是更大的因子圖形,其存在是網(wǎng)絡連接的結果。圖11示出第一和第二因子圖形,其每個實現(xiàn)在經(jīng)由網(wǎng)絡彼此連接的不同客戶機上。第一因子圖形中的一個變量節(jié)點經(jīng)由兩個客戶機之間的網(wǎng)絡連接而有效地成為對于兩個因子圖形而言是公共的。雖然圖10所示的例子是簡單的,但是顯然的是,圖10所示的架構可以容易地擴展到多個因子圖形之間的多個超鏈接。圖12示出類似的配置,其中兩個客戶機連接到服務器,公共變量節(jié)點現(xiàn)在居于服務器上而不是在客戶機上。圖12中的變量節(jié)點可經(jīng)由超鏈接而從任何客戶機訪問。在某些算法諸如Gibbs采樣中,沒有等于門。不過,有從相鄰約束節(jié)點接收更新的變量節(jié)點。在Gibbs采樣萬維網(wǎng)解算器中(以及在類似實施例中),變量節(jié)點被超鏈接到約束節(jié)點且約束節(jié)點被超鏈接到變量節(jié)點,而無需等于門。在某些解算器算法諸如和-積算法中,圖形中消息更新的順序可以使針對給定圖形計算的最終結果產生差異。在常規(guī)實現(xiàn)中,消息更新調度表通過單個計算機上的解算器算法而在全局控制之下。然而,在分布式因子圖形中,可能難以維持對更新特定消息和安排順序的全局控制。洪水(flooding)調度是對于和-積算法而言最周知的調度。在洪水調度中,從等于門到函數(shù)節(jié)點的初始消息被計算。然后,一旦這被完成,消息就從約束節(jié)點傳遞到等于門。針對上述調度問題的另一方法是具有集中服務器,其同步所有的消息傳遞,如結合圖5描述的那樣。當與較大且較少集中組織的系統(tǒng)一起使用時,集中服務器可具有多個缺點。即使它可以跟蹤巨大網(wǎng)絡中的全部消息且以某種方式保證它們遵守洪水調度,但是如果一個服務器失效或者不能從其變量傳送消息至它們的目的約束,或者其約束不能傳送它們的消息至它們的對應變量,則這種協(xié)議可能導致整個網(wǎng)絡鎖死。針對上述調度問題的另一方法是隨機調度,其中圖形中的消息隨機更新。此類調度看起來更適于這里描述的網(wǎng)絡上的分布式消息傳遞。已經(jīng)描述了本發(fā)明及其優(yōu)選實施方式,主張為新穎的且通過專利證書保護的本發(fā)明定義于所附權利要求及其等價物中
。
權利要求
1.一種在數(shù)據(jù)處理系統(tǒng)中實現(xiàn)因子圖形的方法,該因子圖形具有通過邊彼此連接的變量節(jié)點和函數(shù)節(jié)點,該方法包括 在第一計算機系統(tǒng)上實現(xiàn)第一函數(shù)節(jié)點,所述第一計算機系統(tǒng)與第二計算機系統(tǒng)網(wǎng)絡通信; 建立到多個處理系統(tǒng)中的每個的網(wǎng)絡連接; 在所述第一函數(shù)節(jié)點處接收來自在所述處理系統(tǒng)中的一個上實現(xiàn)的變量節(jié)點的軟數(shù)據(jù),所述軟數(shù)據(jù)包括值的估計和表示相信所述估計對應于正確值的程度的信息;以及 從所述第一函數(shù)節(jié)點向所述處理系統(tǒng)中的所述一個發(fā)送表示所述值的更新估計的軟數(shù)據(jù)。
2.如權利要求I所述的方法,其中,接收所述軟數(shù)據(jù)包括從軟等于節(jié)點接收所述信息。
3.如權利要求I所述的方法,還包括向所述變量節(jié)點提供用于生成與所述變量節(jié)點相關聯(lián)的所述變量的所述值的新估計的信息。
4.如權利要求I所述的方法,其中,所述邊通過網(wǎng)絡連接實現(xiàn)。
5.如權利要求I所述的方法,其中,所述變量節(jié)點包括等于門。
6.如權利要求I所述的方法,還包括向所述變量節(jié)點分配唯一識別符。
7.如權利要求I所述的方法,其中,接收所述軟數(shù)據(jù)包括激活與所述第一函數(shù)節(jié)點對應的超鏈接,并且發(fā)送所述軟數(shù)據(jù)包括激活與所述第一變量節(jié)點對應的超鏈接。
8.一種用于實現(xiàn)因子圖形的分布式計算機系統(tǒng),所述系統(tǒng)包括 第一計算機系統(tǒng),實現(xiàn)所述因子圖形的函數(shù)節(jié)點; 第二計算機系統(tǒng),實現(xiàn)所述因子圖形的變量節(jié)點; 其中,所述第一和第二計算機系統(tǒng)通過網(wǎng)絡數(shù)據(jù)通信。
全文摘要
一種在數(shù)據(jù)處理系統(tǒng)中實現(xiàn)因子圖形的方法,該因子圖形具有通過邊彼此連接的變量節(jié)點和函數(shù)節(jié)點,該方法包括在第一計算機系統(tǒng)上實現(xiàn)第一函數(shù)節(jié)點,所述第一計算機系統(tǒng)與第二計算機系統(tǒng)網(wǎng)絡通信;建立到多個處理系統(tǒng)中的每個的網(wǎng)絡連接;在所述第一函數(shù)節(jié)點處接收來自在所述處理系統(tǒng)中的一個上實現(xiàn)的變量節(jié)點的軟數(shù)據(jù),所述軟數(shù)據(jù)包括值的估計和表示相信所述估計對應于正確值的程度的信息;以及從所述第一函數(shù)節(jié)點向所述處理系統(tǒng)中的所述一個發(fā)送表示所述值的更新估計的軟數(shù)據(jù)。
文檔編號G06F15/16GK102934100SQ201180019617
公開日2013年2月13日 申請日期2011年2月22日 優(yōu)先權日2010年2月22日
發(fā)明者B·維格達 申請人:美國亞德諾半導體公司