层次狄利克雷过程(Hierarchical Dirichlet Processes)
####提出层次Dirichlet过程的出发点
统计学中,如何将数据分组是一个反复出现的问题。这个问题也就是聚类。传统的聚类方法,如K-Means等都需要人们指定数据中类别的数量,然后模型根据一定的规则求出分组的结果。而Dirichlet过程混合模型(Dirichlet Process Mixture Model, DPMM)则是一种可以自动确定类别数量的聚类方法。与之不同,本文的层次狄利克雷过程模型是另一种分层聚类的模型,它不仅可以自动确定聚类的数量,而且是针对很多组数据建模的。在这个模型中,假设数据是由很多组的,每一组数据都有不知道数量的类别存在。层次狄利克雷模型就是为了找出每一组数据中包含的聚类结果。
首先我们举个例子,在信息检索领域,每个文档都有很多个主题,主题的数量我们不知道。如果只有一个文档,文档中有很多个词语,这些词语都是来自不同的主题,这可以使用DPMM解决。当有了多个文档后,DPMM就只能将它们合成一个大文档进行建模了。而分层狄利克雷模型(Hierarchical Dirichlet Process)可以针对这些不同的文档进行分层建模。这里要注意与LDA的区别,在LDA模型中,主题的数量是人为确定的,也就是说每个文档下面的词语所属的主题都是来自于这K个主题,但是,当主题数量不知道的时候,使用Dirichlet过程作为先验导致的问题是不同文档下面的相同的主题编号代表了不同的含义。这就无法进行下去了。
我们还是举例来说明。我们是需要解决多组数据的组内聚类问题,因此可以假设对每个小组$j$都有一个与之相关的随机测度的集合$G_j$。而$G_{j}$是可以通过与该小组相关的一个Dirichlet过程得到,即$G_{j} \sim DP(\alpha_{0j},G_{0j})$。对于不同组的数据聚类,我们可以把不同小组的DP连接起来(意思就是我们为不同的小组数据做组内聚类,而组与组之间的类别可能是相同的,在文档建模中就是每个文档都是一组数据,都有很多个主题组成,我们既要能对每个文档内的主题进行建模,同时也要保证不同文档之间的相同的主题编号代表了同一个主题,所以需要把文档之间连起来)。有个很简单的思路就能做到这些,就是把不同小组的$G_{j}$当做来自于同一个先验的结果,它们都共享一个DP先验,即$G_{j} \sim DP(\alpha_{0},G_0(\tau))$。但是这里有个问题,当$G_0$是一个连续分布的时候,尽管我们能通过DP的方式得到$G_0$的离散的抽样结果,但是这些抽样的结果$G_j$都不具有相同的原子(atom)。也就是说,尽管组内的数据可以通过DP先验得到一系列的聚类结果,但是组与组之间的聚类标签却是不同的。所以,作者限制了这里的$G_0$必须是离散的。最简单的做法就是把$G_0$当做是来自于某个DP先验分布的结果。这样$G_0$就一定是离散的了。这就是层次狄利克雷过程的基本思想的出发点。


