Your distribution is basically an undirected graphical model (Markov random field, Markov network, factor graph).
To compute the conditional probability $P(x_i \vert x_{i-1})$, you have to marginalize over the variables $x_{i+1},\ldots,x_n$. You can ignore factors over variables $x_1,\ldots,x_{i-1}$, because of conditional independence.
To efficiently evaluate your exponentially large sum you can use
- the distributive law, and
- dynamic programming,
because the dependency structure of your problem is a tree (it's even a chain).
Algorithms for efficient computation of marginals
Some related, and more or less equivalent, algorithms for computing all single variable marginals at once are:
- Pearl's Belief Propagation (for arbitrary trees)
- sum-product algorithm
- the forward-backward algorithm for HMMs.
If you are only interested in the marginal distribution of a single variable, you can also apply
Some reading
- Aji, Srinivas M., and Robert J. McEliece. "The generalized distributive law." Information Theory, IEEE Transactions on 46.2 (2000): 325-343.
- Kschischang, Frank R., Brendan J. Frey, and Hans-Andrea Loeliger. "Factor graphs and the sum-product algorithm." Information Theory, IEEE Transactions on 47.2 (2001): 498-519.
- Book: Koller, D. & Friedman, N. Probabilistic Graphical Models: Principles and Techniques MIT Press, 2009