什么是“因子图”,它们对什么有用?

时间:2011-04-18 21:50:17

标签: statistics artificial-intelligence machine-learning

一位朋友正在使用因子图进行文本挖掘(识别文本中对人的引用),这让我对这个工具感兴趣,但是我很难找到因子图是什么以及如何使用它们。

任何人都可以提供非数学重要因子图的解释,并且重点关注实际应用而不是抽象理论吗?

3 个答案:

答案 0 :(得分:21)

它们被广泛用于将问题分解成碎片。因子图(以及消息传递)的一个非常有趣的应用是XBox Live TrueSkill算法。我wrote extensively about it在我的博客上,我试图进行介绍性解释,而不是过于学术性的解释。

答案 1 :(得分: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的边缘化,您可以使用称为和积(或消息传递)的特殊算法,将问题分解为更小的计算。对于这个算法,哪个变量作为哪个因子的参数出现是非常重要的。这些信息由因子图捕获。

因子图是包含因子节点和变量节点的二分图。如果变量作为因子的参数出现,则因子和变量节点之间存在边缘。在我们的示例中,因子f_2和变量x_5之间存在优势,但f_2x_1之间不存在优势。

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

答案 2 :(得分:3)

因子图是数学模型,只能用数学方程来解释。简而言之,它是解释模型中兴趣变量之间复杂关系的方法。例如:A是温度,B是压力,组分C,D,E以某种方式取决于B,A,而组分K取决于B,A。并且您希望基于A和B预测值K.因此您只知道可见状态。基本的ML库不允许对这种结构进行建模。神经网络做得更好。因子图正好解决了这个问题。 因子图是深度学习的一个例子。当无法呈现具有特征和输出的模型时,因子模型允许构建隐藏状态,层和复杂的变量结构以适应现实世界的行为。例如机器翻译对齐,指纹识别,共同参考等。