Jump to content

Factor graph

From Wikipedia, the free encyclopedia

Afactor graphis abipartite graphrepresenting thefactorizationof afunction.Inprobability theoryand its applications, factor graphs are used to represent factorization of aprobability distribution function,enabling efficient computations, such as the computation ofmarginal distributionsthrough thesum–product algorithm.One of the important success stories of factor graphs and the sum–product algorithm is thedecodingof capacity-approachingerror-correcting codes,such asLDPCandturbo codes.

Factor graphs generalizeconstraint graphs.A factor whose value is either 0 or 1 is called a constraint. A constraint graph is a factor graph where all factors are constraints. The max-product algorithm for factor graphs can be viewed as a generalization of thearc-consistency algorithmfor constraint processing.

Definition

[edit]

A factor graph is abipartite graphrepresenting thefactorizationof a function. Given a factorization of a function,

where,the corresponding factor graphconsists of variable vertices ,factorvertices,and edges.The edges depend on the factorization as follows: there is an undirected edge between factor vertexand variable vertexif.The function is tacitly assumed to bereal-valued:.

Factor graphs can be combined with message passing algorithms to efficiently compute certain characteristics of the function,such as themarginal distributions.

Examples

[edit]
An example factor graph

Consider a function that factorizes as follows:

,

with a corresponding factor graph shown on the right. Observe that the factor graph has acycle.If we mergeinto a single factor, the resulting factor graph will be atree.This is an important distinction, as message passing algorithms are usually exact for trees, but only approximate for graphs with cycles.

Message passing on factor graphs

[edit]

A popular message passing algorithm on factor graphs is the sum–product algorithm, which efficiently computes all the marginals of the individual variables of the function. In particular, the marginal of variableis defined as

where the notationmeans that the summation goes over all the variables,except.The messages of the sum–product algorithm are conceptually computed in the vertices and passed along the edges. A message from or to a variable vertex is always afunctionof that particular variable. For instance, when a variable is binary, the messages over the edges incident to the corresponding vertex can be represented as vectors of length 2: the first entry is the message evaluated in 0, the second entry is the message evaluated in 1. When a variable belongs to the field ofreal numbers,messages can be arbitrary functions, and special care needs to be taken in their representation.

In practice, the sum–product algorithm is used forstatistical inference,wherebyis a jointdistributionor a jointlikelihood function,and the factorization depends on theconditional independenciesamong the variables.

TheHammersley–Clifford theoremshows that other probabilistic models such asBayesian networksandMarkov networkscan be represented as factor graphs; the latter representation is frequently used when performing inference over such networks usingbelief propagation.On the other hand, Bayesian networks are more naturally suited forgenerative models,as they can directly represent the causalities of the model.

See also

[edit]
[edit]
  • Loeliger, Hans-Andrea (January 2004),"An Introduction to Factor Graphs]"(PDF),IEEE Signal Processing Magazine,21(1): 28–41,Bibcode:2004ISPM...21...28L,doi:10.1109/MSP.2004.1267047,S2CID7722934
  • dimpleArchived2016-01-06 at theWayback Machinean open-source tool for building and solving factor graphs in MATLAB.
  • Loeliger, Hans-Andrea (2008),An introduction to Factor Graphs(PDF)

References

[edit]