# Dirichlet process

Draws from the Dirichlet process ${\displaystyle \mathrm {DP} \left(N(0,1),\alpha \right)}$. The four rows use different ${\displaystyle \alpha }$ (top to bottom: 1, 10, 100 and 1000) and each row contains three repetitions of the same experiment. As seen from the graphs, draws from a Dirichlet process are discrete distributions and they become less concentrated (more spread out) with increasing ${\displaystyle \alpha }$. The graphs were generated using the stick-breaking process view of the Dirichlet process.

In probability theory, Dirichlet processes (after Peter Gustav Lejeune Dirichlet) are a family of stochastic processes whose realizations are probability distributions. In other words, a Dirichlet process is a probability distribution whose range is itself a set of probability distributions. It is often used in Bayesian inference to describe the prior knowledge about the distribution of random variables—how likely it is that the random variables are distributed according to one or another particular distribution.

The Dirichlet process is specified by a base distribution ${\displaystyle H}$ and a positive real number ${\displaystyle \alpha }$ called the concentration parameter (also known as scaling parameter). The base distribution is the expected value of the process, i.e., the Dirichlet process draws distributions "around" the base distribution the way a normal distribution draws real numbers around its mean. However, even if the base distribution is continuous, the distributions drawn from the Dirichlet process are almost surely discrete. The scaling parameter specifies how strong this discretization is: in the limit of ${\displaystyle \alpha \rightarrow 0}$, the realizations are all concentrated at a single value, while in the limit of ${\displaystyle \alpha \rightarrow \infty }$ the realizations become continuous. Between the two extremes the realizations are discrete distributions with less and less concentration as ${\displaystyle \alpha }$ increases.

The Dirichlet process can also be seen as the infinite-dimensional generalization of the Dirichlet distribution. In the same way as the Dirichlet distribution is the conjugate prior for the categorical distribution, the Dirichlet process is the conjugate prior for infinite, nonparametric discrete distributions. A particularly important application of Dirichlet processes is as a prior probability distribution in infinite mixture models.

The Dirichlet process was formally introduced by Thomas Ferguson in 1973[1] and has since been applied in data mining and machine learning, among others for natural language processing, computer vision and bioinformatics.

## Introduction

Dirichlet processes are usually used when modeling data that tends to repeat previous values in a "rich get richer" fashion. Specifically, suppose that the generation of values ${\displaystyle X_{1},X_{2},\dots }$ can be simulated by the following algorithm.

Input: ${\displaystyle H}$ (a probability distribution called base distribution), ${\displaystyle \alpha }$ (a positive real number called scaling parameter)
1. Draw ${\displaystyle X_{1}}$ from the distribution ${\displaystyle H}$.
2. For ${\displaystyle n>1}$:

a) With probability ${\displaystyle {\frac {\alpha }{\alpha +n-1}}}$ draw ${\displaystyle X_{n}}$ from ${\displaystyle H}$.

b) With probability ${\displaystyle {\frac {n_{x}}{\alpha +n-1}}}$ set ${\displaystyle X_{n}=x}$, where ${\displaystyle n_{x}}$ is the number of previous observations ${\displaystyle X_{j},j, such that ${\displaystyle X_{j}=x}$.

At the same time, another common model for data is that the observations ${\displaystyle X_{1},X_{2},\dots }$ are assumed to be independent and identically distributed (i.i.d.) according to some distribution ${\displaystyle P}$. The goal in introducing Dirichlet processes is to be able to describe the procedure outlined above in this i.i.d. model.

The ${\displaystyle X_{1},X_{2},\dots }$ observations are not independent, since we have to consider the previous results when generating the next value. They are, however, exchangeable. This fact can be shown by calculating the joint probability distribution of the observations and noticing that the resulting formula only depends on which ${\displaystyle x}$ values occur among the observations and how many repetitions they each have. Because of this exchangeability, de Finetti's representation theorem applies and it implies that the observations ${\displaystyle X_{1},X_{2},\dots }$ are conditionally independent given a (latent) distribution ${\displaystyle P}$. This ${\displaystyle P}$ is a random variable itself and has a distribution. This distribution (over distributions) is called Dirichlet process (${\displaystyle \mathrm {DP} }$). In summary, this means that we get an equivalent procedure to the above algorithm:

1. Draw a distribution ${\displaystyle P}$ from ${\displaystyle \mathrm {DP} \left(H,\alpha \right)}$
2. Draw observations ${\displaystyle X_{1},X_{2}\dots }$ independently from ${\displaystyle P}$.

In practice, however, drawing a concrete distribution ${\displaystyle P}$ is impossible, since its specification requires an infinite amount of information. This is a common phenomenon in the context of Bayesian non-parametric statistics where a typical task is to learn distributions on function spaces, which involve effectively infinitely many parameters. The key insight is that in many applications the infinite dimensional distributions appear only as an intermediary computational device and are not required for either the initial specification of prior beliefs or for the statement of the final inference. The Dirichlet process can be used to circumvent infinite computational requirements as described above.

## Formal definition

Given a measurable set S, a base probability distribution H and a positive real number ${\displaystyle \alpha }$, the Dirichlet process ${\displaystyle \mathrm {DP} (H,\alpha )}$ is a stochastic process whose sample path (or realization, i.e. an infinite set of random variates drawn from the process) is a probability distribution over S and the following holds. For any measureable finite partition of S, say ${\displaystyle \left\{B_{i}\right\}_{i=1}^{n}}$,

${\displaystyle {\text{if }}X\sim \mathrm {DP} \left(H,\alpha \right)}$
${\displaystyle {\text{then }}\left(X\left(B_{1}\right),\dots ,X\left(B_{n}\right)\right)\sim \mathrm {Dir} \left(\alpha H\left(B_{1}\right),\dots ,\alpha H\left(B_{n}\right)\right)}$,

where ${\displaystyle \mathrm {Dir} }$ denotes the Dirichlet distribution and the notation ${\displaystyle X\sim D}$ means that the random variable ${\displaystyle X}$ is distributed according to the distribution ${\displaystyle D}$.

## Alternative views

There are several equivalent views of the Dirichlet process. Besides the definition above, the Dirichlet process can be defined implicitly through de Finetti's theorem as described in the first section; this is often called the Chinese restaurant process. A third alternative is the stick-breaking process, which defines the Dirichlet process constructively by writing a distribution sampled from the process as ${\displaystyle f\left(x\right)=\sum _{k=1}^{\infty }\beta _{k}\delta _{x_{k}}\left(x\right)}$, where ${\displaystyle \left\{x_{k}\right\}_{k=1}^{\infty }}$ are samples from the base distribution ${\displaystyle H}$, ${\displaystyle \delta _{x_{k}}}$ is an indicator function centered on ${\displaystyle x_{k}}$ (zero everywhere except for ${\displaystyle \delta _{x_{k}}(x_{k})=1}$) and the ${\displaystyle \beta _{k}}$ are defined by a recursive scheme that repeatedly samples from the beta distribution ${\displaystyle \mathrm {Beta} \left(1,\alpha \right)}$.

## Use in Dirichlet mixture models

Simulation of 1000 observations drawn from a Dirichlet mixture model. Each observation within a cluster is drawn independently from the multivariate normal distribution ${\displaystyle N(\mu _{k},1/4)}$. The cluster means ${\displaystyle \mu _{k}}$ are drawn from a distribution G which itself is drawn from a Dirichlet process with concentration parameter ${\displaystyle \alpha =0.5}$ and base distribution ${\displaystyle H=N(2,16)}$. Each row is a new simulation.

To understand what Dirichlet processes are and the problem they solve we consider the example of data clustering. It is a common situation that data points are assumed to be distributed in a hierarchical fashion where each data point belongs to a (randomly chosen) cluster and the members of a cluster are further distributed randomly within that cluster.

### Example 1

For example, we might be interested in how people will vote on a number of questions in an upcoming election. A reasonable model for this situation might be to classify each voter as a liberal, a conservative or a moderate and then model the event that a voter says “Yes” to any particular question as a Bernoulli random variable with probability dependent on which political cluster they belong to. By looking at how votes were cast in previous years on similar pieces of legislation one could fit a predictive model using a simple clustering algorithm such as k-means. That algorithm, however, requires knowing in advance the number of clusters that generated the data. In many situations it is not possible to determine this ahead of time, and even when we can reasonably assume a number of clusters we would still like to be able to check this assumption. For example, in the voting example above the division into liberal, conservative and moderate might not be finely tuned enough; attributes such as a religion, class or race could also be critical for modeling voter behavior.

### Example 2

As another example, we might be interested in modeling the velocities of galaxies using a simple model assuming that the velocities are clustered, for instance by assuming each velocity is distributed according to the normal distribution ${\displaystyle v_{i}\sim N(\mu _{k},\sigma ^{2})}$, where the ${\displaystyle i}$th observation belongs to the ${\displaystyle k}$th cluster of galaxies with common expected velocity. In this case it is far from obvious how to determine a priori how many clusters (of common velocities) there should be and any model for this would be highly suspect and should be checked against the data. By using a Dirichlet process prior for the distribution of cluster means we circumvent the need to explicitly specify ahead of time how many clusters there are, although the concentration parameter still controls it implicitly.

We consider this example in more detail. A first naive model is to presuppose that there are ${\displaystyle K}$ clusters of normally distributed velocities with common known fixed variance ${\displaystyle \sigma ^{2}}$. Denoting the event that the ${\displaystyle i}$th observation is in the ${\displaystyle k}$th cluster as ${\displaystyle z_{i}=k}$ we can write this model as:

{\displaystyle {\begin{aligned}(v_{i}\mid z_{i}=k,\mu _{k})&\sim N(\mu _{k},\sigma ^{2})\\\mathrm {P} (z_{i}=k)&=\pi _{k}\\({\boldsymbol {\pi }}\mid \alpha )&\sim \mathrm {Dir} \left({\frac {\alpha }{K}}\cdot \mathbf {1} _{K}\right)\\\mu _{k}&\sim H(\lambda )\end{aligned}}}

That is, we assume that the data belongs to ${\displaystyle K}$ distinct clusters with means ${\displaystyle \mu _{k}}$ and that ${\displaystyle \pi _{k}}$ is the (unknown) prior probability of a data point belonging to the ${\displaystyle k}$th cluster. We assume that we have no initial information distinguishing the clusters, which is captured by the symmetric prior ${\displaystyle \mathrm {Dir} \left(\alpha /K\cdot \mathbf {1} _{K}\right)}$. Here ${\displaystyle \mathrm {Dir} }$ denotes the Dirichlet distribution and ${\displaystyle \mathbf {1} _{K}}$ denotes a vector of length ${\displaystyle K}$ where each element is 1. We further assign independent and identical prior distributions ${\displaystyle H(\lambda )}$ to each of the cluster means, where ${\displaystyle H}$ may be any parametric distribution with parameters denoted as ${\displaystyle \lambda }$. The hyper-parameters ${\displaystyle \alpha }$ and ${\displaystyle \lambda }$ are taken to be known fixed constants, chosen to reflect our prior beliefs about the system. To understand the connection to Dirichlet process priors we rewrite this model in an equivalent but more suggestive form:

{\displaystyle {\begin{aligned}(v_{i}\mid {\tilde {\mu }}_{i})&\sim N({\tilde {\mu }}_{i},\sigma ^{2})\\{\tilde {\mu }}_{i}&\sim G=\sum _{k=1}^{K}\pi _{k}\delta _{\mu _{k}}({\tilde {\mu }}_{i})\\({\boldsymbol {\pi }}\mid \alpha )&\sim \mathrm {Dir} \left({\frac {\alpha }{K}}\cdot \mathbf {1} _{K}\right)\\\mu _{k}&\sim H(\lambda )\end{aligned}}}

Instead of imagining that each data point is first assigned a cluster and then drawn from the distribution associated to that cluster we now think of each observation being associated with parameter ${\displaystyle {\tilde {\mu }}_{i}}$ drawn from some discrete distribution ${\displaystyle G}$ with support on the ${\displaystyle K}$ means. That is, we are now treating the ${\displaystyle {\tilde {\mu }}_{i}}$ as being drawn from the random distribution ${\displaystyle G}$ and our prior information is incorporated into the model by the distribution over distributions ${\displaystyle G}$.

Animation of the clustering process for one-dimensional data using Gaussian distributions drawn from a Dirichlet process. The histograms of the clusters are shown in different colours. During the parameter estimation process, new clusters are created and grow on the data. The legend shows the cluster colours and the number of datapoints assigned to each cluster.

We would now like to extend this model to work without pre-specifying a fixed number of clusters ${\displaystyle K}$. Mathematically, this means we would like to select a random prior distribution ${\displaystyle G({\tilde {\mu }}_{i})=\sum _{k=1}^{\infty }\pi _{k}\delta _{\mu _{k}}({\tilde {\mu }}_{i})}$ where the values of the clusters means ${\displaystyle \mu _{k}}$ are again independently distributed according to ${\displaystyle H\left(\lambda \right)}$ and the distribution over ${\displaystyle \pi _{k}}$ is symmetric over the infinite set of clusters. This is exactly what is accomplished by the model:

{\displaystyle {\begin{aligned}(v_{i}\mid {\tilde {\mu }}_{i})&\sim N({\tilde {\mu }}_{i},\sigma ^{2})\\{\tilde {\mu }}_{i}&\sim G\\G&\sim \mathrm {DP} (H(\lambda ),\alpha )\end{aligned}}}

With this in hand we can better understand the computational merits of the Dirichlet process. Suppose that we wanted to draw ${\displaystyle n}$ observations from the naive model with exactly ${\displaystyle K}$ clusters. A simple algorithm for doing this would be to draw ${\displaystyle K}$ values of ${\displaystyle \mu _{k}}$ from ${\displaystyle H(\lambda )}$, a distribution ${\displaystyle \pi }$ from ${\displaystyle \mathrm {Dir} \left(\alpha /K\cdot \mathbf {1} _{K}\right)}$ and then for each observation independently sample the cluster ${\displaystyle k}$ with probability ${\displaystyle \pi _{k}}$ and the value of the observation according to ${\displaystyle N\left(\mu _{k},\sigma ^{2}\right)}$. It is easy to see that this algorithm does not work in case where we allow infinite clusters because this would require sampling an infinite dimensional parameter ${\displaystyle {\boldsymbol {\pi }}}$. However, it is still possible to sample observations ${\displaystyle v_{i}}$. One can e.g. use the Chinese restaurant representation described below and calculate the probability for used clusters and a new cluster to be created. This avoids having to explicitly specify ${\displaystyle {\boldsymbol {\pi }}}$. Other solutions are based on a truncation of clusters: A (high) upper bound to the true number of clusters is introduced and cluster numbers higher than the lower bound are treated as one cluster.

Fitting the model described above based on observed data ${\displaystyle D}$ means finding the posterior distribution ${\displaystyle p\left({\boldsymbol {\pi }},{\boldsymbol {\mu }}\mid D\right)}$ over cluster probabilities and their associated means. In the infinite dimensional case it is obviously impossible to write down the posterior explicitly. It is, however, possible to draw samples from this posterior using a modified Gibbs sampler.[2] This is the critical fact that makes the Dirichlet process prior useful for inference.

## The Chinese restaurant process

Animation of a Chinese restaurant process with scaling parameter ${\displaystyle \alpha =0.5}$. Tables are hidden once the customers of a table can not be displayed anymore; however, every table has infinitely many seats. (Recording of an interactive animation.[3])

A widely employed metaphor for the Dirichlet process is based on the so-called Chinese restaurant process. The name stems from the impression that Chinese restaurants would have infinitely many tables. The metaphor is as follows:

Imagine a Chinese restaurant in which customers enter. A new customer sits down at a table with a probability proportional to the number of customers already sitting there. Additionally, a customer opens a new table with a probability proportional to the scaling parameter ${\displaystyle \alpha }$. After infinitely many customers entered, one obtains a probability distribution over infinitely many tables to be chosen. This probability distribution over the tables is a random sample of the probabilities of observations drawn from a Dirichlet process with scaling parameter ${\displaystyle \alpha }$.

If one associates draws from the base measure ${\displaystyle H}$ with every table, the resulting distribution over the sample space ${\displaystyle S}$ is a random sample of a Dirichlet process. The Chinese restaurant process is related to the Pólya urn sampling scheme which yields samples from finite Dirichlet distributions.

Because customers sit at a table with a probability proportional to the number of customers already sitting at the table, two properties of the DP can be deduced:

1. The Dirichlet process exhibits a self-reinforcing property: The more often a given value has been sampled in the past, the more likely it is to be sampled again.
2. Even if ${\displaystyle H}$ is a distribution over an uncountable set, there is a nonzero probability that two samples will have exactly the same value, because the probability mass will concentrate on a small number of tables.

## The stick-breaking process

A third approach to the Dirichlet process is the so-called stick-breaking process view. Remember that draws from a Dirichlet process are distributions over a set ${\displaystyle S}$. As noted previously, the distribution drawn is discrete with probability 1. In the stick-breaking process view, we explicitly use the discreteness and give the probability mass function of this (random) discrete distribution as:

${\displaystyle f(\theta )=\sum _{k=1}^{\infty }\beta _{k}\cdot \delta _{\theta _{k}}(\theta )}$

where ${\displaystyle \delta _{\theta _{k}}}$ is the indicator function which evaluates to zero everywhere, except for ${\displaystyle \delta _{\theta _{k}}(\theta _{k})=1}$. Since this distribution is random itself, its mass function is parameterized by two sets of random variables: the locations ${\displaystyle \left\{\theta _{k}\right\}_{k=1}^{\infty }}$ and the corresponding probabilities ${\displaystyle \left\{\beta _{k}\right\}_{k=1}^{\infty }}$. In the following, we present without proof what these random variables are.

The locations ${\displaystyle \theta _{k}}$ are independent and identically distributed according to ${\displaystyle H}$, the base distribution of the Dirichlet process. The probabilities ${\displaystyle \beta _{k}}$ are given by a procedure resembling the breaking of a unit-length stick (hence the name):

${\displaystyle \beta _{k}=\beta '_{k}\cdot \prod _{i=1}^{k-1}\left(1-\beta '_{i}\right)}$

where ${\displaystyle \beta '_{k}}$ are independent random variables with the beta distribution ${\displaystyle \mathrm {Beta} \left(1,\alpha \right)}$. The resemblance to 'stick-breaking' can be seen by considering ${\displaystyle \beta _{k}}$ as the length of a piece of a stick. We start with a unit-length stick and in each step we break off a portion of the remaining stick according to ${\displaystyle \beta '_{k}}$ and assign this broken-off piece to ${\displaystyle \beta _{k}}$. The formula can be understood by noting that after the first k − 1 values have their portions assigned, the length of the remainder of the stick is ${\displaystyle \prod _{i=1}^{k-1}\left(1-\beta '_{i}\right)}$ and this piece is broken according to ${\displaystyle \beta '_{k}}$ and gets assigned to ${\displaystyle \beta _{k}}$.

The smaller ${\displaystyle \alpha }$ is, the less of the stick will be left for subsequent values (on average), yielding more concentrated distributions.

## The Pólya urn scheme

Yet another way to visualize the Dirichlet process and Chinese restaurant process is as a modified Pólya urn scheme. Imagine that we start with an urn filled with ${\displaystyle \alpha }$ black balls. Then we proceed as follows:

1. Each time we need an observation, we draw a ball from the urn.
2. If the ball is black, we generate a new (non-black) color uniformly, label a new ball this color, drop the new ball into the urn along with the ball we drew, and return the color we generated.
3. Otherwise, label a new ball with the color of the ball we drew, drop the new ball into the urn along with the ball we drew, and return the color we observed.

The resulting distribution over colors is the same as the distribution over tables in the Chinese restaurant process. Furthermore, when we draw a black ball, if rather than generating a new color, we instead pick a random value from a base distribution ${\displaystyle H}$ and use that value to label the new ball, the resulting distribution over labels will be the same as the distribution over values in a Dirichlet process.

## Applications of the Dirichlet process

Dirichlet processes are frequently used in Bayesian nonparametric statistics. "Nonparametric" here does not mean a parameter-less model, rather a model in which representations grow as more data are observed. Bayesian nonparametric models have gained considerable popularity in the field of machine learning because of the above-mentioned flexibility, especially in unsupervised learning. In a Bayesian nonparametric model, the prior and posterior distributions are not parametric distributions, but stochastic processes.[4] The fact that the Dirichlet distribution is a probability distribution on the simplex of sets of non-negative numbers that sum to one makes it a good candidate to model distributions over distributions or distributions over functions. Additionally, the nonparametric nature of this model makes it an ideal candidate for clustering problems where the distinct number of clusters is unknown beforehand. In addition, the Dirichlet process has also been used for developing mixture of expert models, in the context of supervised learning algorithms (regression or classification settings). For instance, mixtures of Gaussian process experts, where the number of required experts must be inferred from the data,.[5][6]

As draws from a Dirichlet process are discrete, an important use is as a prior probability in infinite mixture models. In this case, ${\displaystyle S}$ is the parametric set of component distributions. The generative process is therefore that a sample is drawn from a Dirichlet process, and for each data point in turn a value is drawn from this sample distribution and used as the component distribution for that data point. The fact that there is no limit to the number of distinct components which may be generated makes this kind of model appropriate for the case when the number of mixture components is not well-defined in advance. For example, the infinite mixture of Gaussians model,[7] as well as associated mixture regression models, e.g.[8]

The infinite nature of these models also lends them to natural language processing applications, where it is often desirable to treat the vocabulary as an infinite, discrete set.

The Dirichlet Process can also be used for nonparametric hypothesis testing, i.e. to develop Bayesian nonparametric versions of the classical nonparametric hypothesis tests, e.g. sign test, Wilcoxon rank sum test, Wilcoxon signed-rank test, etc. For instance, Bayesian nonparametric versions of the Wilcoxon rank sum test and the Wilcoxon signed-rank test have been developed by using the imprecise Dirichlet process, a prior ignorance Dirichlet process.

## References

1. ^ Ferguson, Thomas (1973). "Bayesian analysis of some nonparametric problems". Annals of Statistics. 1 (2): 209–230. MR 350949. doi:10.1214/aos/1176342360.
2. ^ Sudderth, Erik (2006). Graphical Models for Visual Object Recognition and Tracking (PDF) (Ph.D.). MIT Press.
3. ^ http://topicmodels.west.uni-koblenz.de/ckling/tmt/crp.html?parameters=0.5&dp=1#
4. ^ Nils Lid Hjort, Chris Holmes, Peter Müller and Stephen G. Walker (2010). Bayesian Nonparametrics. Cambridge University Press. ISBN 0-521-51346-4.
5. ^ Sotirios P. Chatzis, “A Latent Variable Gaussian Process Model with Pitman-Yor Process Priors for Multiclass Classification,” Neurocomputing, vol. 120, pp. 482-489, Nov. 2013. [1]
6. ^ Sotirios P. Chatzis, Yiannis Demiris, “Nonparametric mixtures of Gaussian processes with power-law behavior,” IEEE Transactions on Neural Networks and Learning Systems, vol. 23, no. 12, pp. 1862-1871, Dec. 2012. [2]
7. ^ Rasmussen, Carl (2000). "The Infinite Gaussian Mixture Model" (PDF). Advances in Neural Information Processing Systems. 12: 554–560.
8. ^ Sotirios P. Chatzis, Dimitrios Korkinof, and Yiannis Demiris, “A nonparametric Bayesian approach toward robot learning by demonstration,” Robotics and Autonomous Systems, vol. 60, no. 6, pp. 789–802, June 2012. [3]