What are Dynamic Bayesian Networks?
A Bayesian network is a snapshot of the system at a given time and is used to model systems that are in some kind of equilibrium state. Unfortunately, most systems in the world change over time and sometimes we are interested in how these systems evolve over time more than we are interested in their equilibrium states. Whenever the focus of our reasoning is change of a system over time, we need a tool that is capable of modeling dynamic systems.
​A dynamic Bayesian network (DBN) is a Bayesian network extended with additional mechanisms that are capable of modeling influences over time (Murphy, 2002). The temporal extension of Bayesian networks does not mean that the network structure or parameters changes dynamically, but that a dynamic system is modeled. In other words, the underlying process, modeled by a DBN, is stationary. A DBN is a model of a stochastic process.
Consider a decision problem faced by a manufacturer, who is conscious of the fact that the quality of a new product will come at a price (high production cost), which will drive the product price up and, effectively, lead to decrease of sales, profits, and market share. On the other hand, high product quality will positively impact the product reputation over time and the product reputation will, again over time, impact the reputation of the company. These impact directly sales and profits. The problem is complex, as reputation (both product’s and company’s) is to some degree a self-propelling process, i.e., reputation at a given point in time, in addition to other factors, impacts reputation in the immediate future. Company’s reputation will also impact the reputation of its products, including the current product. The decision is not a one-shot decision, whose effects we will know immediately but rather a decision whose effects will unfold over time. In order to assess the consequences of this decision, the manufacturer needs to model time explicitly and use dynamic Bayesian networks.
​The following GeNIe screen shows the structure of a model representing this problem. The way that GeNIe represents dynamic models is different from other representations in that is does not focus on time slices but rather on variables. This representation allows for a compact modeling of higher order temporal influences. One thing that we can notice right away in the screen shot below is that there are special arcs in the model that are labeled by numbers inside little squares. These arcs represent temporal influences and the numbers denote their order. An influence of the first order, marked by  represents an influence spanning over one time step. Influences of higher order, e.g.,  represent slower influences that span over multiple time steps. The number in the square expresses the number of time steps over which the influence spans. We can see that both Product Reputation and Company’s Reputation impact themselves in the near future (we can see looping influences marked by , originating and ending in the respective nodes). There is an influence of Company’s Reputation on Product Reputation and a slower, two-step influence of Product Reputation on Company’s Reputation. Product Reputation will thus slowly impact Company’s Reputation. Aggressive Advertizing will impact both Product Reputation and High Sales over time.
A dynamic Bayesian network model allows us to calculate how probabilities of interest change over time. This is of vital interest to decision who deal with consequences of their decisions over time. The following plot shows the same model with nodes viewed as bar charts and High Quality of the Product set to False. We can see the marginal probabilities changing over the time horizon of 10 steps (this is a model parameter that can be easily changed).
Similarly to Bayesian networks and influence diagrams, dynamic Bayesian networks can be embedded into custom programs and web interfaces, helping with calculating the relevance of observations and making decisions. SMILE Engine, our software library embedding Bayesian networks, has been deployed in a variety of environments, including custom programs, web servers, and on-board computers.