2011-04-18 66 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库不允许对这种结构建模。神经网络做得更好。因素图正是解决了这个问题。 因子图是深度学习的一个例子。当不可能用特征和输出呈现模型时,因子模型允许构建隐藏的状态,图层和变量的复杂结构以适应现实世界的行为。例如机器翻译对齐,指纹识别,共同参考等。

相关问题