2011-04-18 65 views
10

一位朋友使用因子圖進行文本挖掘(識別對文本中的人的引用),並且讓我對這個工具感興趣,但是我很難找到關於因子圖的直觀解釋以及如何使用它們。什麼是「因子圖」,它們對於什麼有用?

任何人都可以提供一個數學圖解的解釋,它不是數學上的重點,而是側重於實際應用而不是抽象理論?

回答

20

它們被廣泛用於將問題分解成小塊。因子圖的一個非常有趣的應用(以及消息傳遞)是XBox Live TrueSkill算法。我在我的博客上寫過wrote extensively about it,我試着去做一個介紹性的解釋,而不是過於學術的解釋。

+5

只是一個方面的評論,但這是一個很棒的博客文章。 – jonsca 2011-04-18 22:12:31

+0

啊傑夫,是的 - 我實際上在幾個月前閱讀過你的博客文章,好的 - 說實話,我已經完成了一半。但是我的軟件的Java版本用於我的[side project](http://rank.my/)。我沒有真正意識到TrueSkill使用了因子圖,我需要返回並完整閱讀您的博客條目。 – sanity 2011-04-18 23:19:14

+0

是啊 - 偉大的職位!謝謝! – skaz 2015-02-12 08:53:04

4

因子圖是在特定類型的公式中存在的變量和因子(公式的部分)之間的相關性的圖形表示。

假設你有一個函數f(x_1,x_2,...,x_n),並且你想爲某個參數x_i計算這個函數的邊緣化,因此將剩下的公式的所有賦值相加。進一步的f可以被分解成因素,例如,

f(x_1,x_2,...,x_n)=f_1(x_1,x_2)f_2(x_5,x_8,x_9)...f_k(x_1,x_10,x_11)

然後以計算的f邊緣化了一些你可以使用一種特殊的算法叫和產品(或消息傳遞),打破問題成更小的計算的變量。對於這個算法,哪些變量作爲哪個因子的參數顯得非常重要。該信息由因子圖捕獲。

A 因子圖是具有因子節點和變量節點的二部圖。如果變量作爲因子的參數出現,則因子和變量節點之間存在邊緣。在我們的示例中,在因子f_2和變量x_5之間將存在邊緣,但不在f_2x_1之間。

有一篇很棒的文章:Factor graphs and the sum-product algorithm

3

因子圖是數學模型,只能用數學方程來解釋。簡而言之,它是解釋模型中感興趣變量之間複雜關係的方法。例如:A是溫度,B是壓力,組分C,D,E在某種程度上取決於B,A,組分K取決於B,A。而且你想根據A和B預測K值。所以你只知道可見狀態。基本ML庫不允許對這種結構建模。神經網絡做得更好。因素圖正是解決了這個問題。 因子圖是深度學習的一個例子。當不可能用特徵和輸出呈現模型時,因子模型允許構建隱藏的狀態,圖層和變量的複雜結構以適應現實世界的行爲。例如機器翻譯對齊,指紋識別,共同參考等。

相關問題