数学之美:马尔科夫链的扩展-贝叶斯网络 词分类

前面介绍的马尔科夫链是一种状态序列,但在实际中,各个事物之间不仅使用链串行起来的,而是互相交叉,错综复杂。因此通过各个事物之间的联系,可以将马尔科夫链推广至图论中。

没想到贝叶斯网络还可以用于词分类。在前面我们介绍到通过使用SVD可以对文本进行分类,如果把文本和关键词的关联矩阵转90度。进行奇异值分解,或者对每个词建立文本向量,再聚类。那么我们得到的就是关于词的分类,称之为概念。显然一个概念可以包含多个词,一个词也可以属于多个概念。现在使用贝叶斯网络对这些文本、概念和关键词建立网络:

图中,文章和关键词有直接关联,同时与主题也有直接关联,通过主题还有间接关联。通过这个图可以找到每个关键词与概念之间关系,词与词之间的相关性。google的rephil网络就是建立文章、词和概念之间的关系,将上百万词聚类成若干概念类。在广告和搜索中应用广泛。

使用贝叶斯网络首先就要确定其结构,对简单网络,专家可以直接给出;对于复杂的网络就需要机器学习了。

优化的贝叶斯网络要保证其产生的序列从头到尾可能性最大,如果使用概率度量,那就是后验概率最大。但是产生一个序列可以有多条路径,从理论上讲,需要完备搜索,考虑每一条路径,得到全局最优。但这样计算的复杂度是NP-Hard。因此一般采用贪心算法,每次沿着箭头走有限步,但这样容易陷入局部最优。一个防止局部最优的算法就是蒙特卡洛方法,用许多随机数测试,看看是否显然局部最优。这个方法的计算量较大,最近的新方法是计算节点两两之间的互信息,只保留互信息较大的直接连接,简化网络后再完备搜索。

在确定网络结构后就需要确定节点间的权重,假设使用条件概率来度量权重,那就需要训练数据,使得网络在这些观察到的数据上概率最大,即EM过程。

需指明结构的训练和参数的训练是交替进行的,先优化参数,再优化结构,然后再次优化参数,直到模型收敛,或误差足够小。

猜你喜欢

转载自blog.csdn.net/qq_16234613/article/details/82820604