Hierarchical Dirichlet processes