基于期望最大化(EM)算法的朴素贝叶斯混合模型无监督文本分类算法详解
字数 3230 2025-12-22 11:51:47

基于期望最大化(EM)算法的朴素贝叶斯混合模型无监督文本分类算法详解

1. 问题描述

假设我们有一个文本数据集,但没有任何标签信息(即无监督场景)。我们想将这些文本自动聚类成K个类别(例如K个主题),同时为每个类别学习一个概率生成模型。该问题可以形式化为:给定文本集合 \(D = \{d_1, d_2, ..., d_N\}\),每个文档 \(d\) 由词序列表示,目标是学习K个多项式朴素贝叶斯模型(每个类别一个),并推断每个文档属于各个类别的软分配概率。这是一个典型的无监督文本分类软聚类问题,可以通过EM算法与朴素贝叶斯混合模型结合来解决。

2. 算法核心思想

我们假设数据由以下生成过程产生(混合多项式朴素贝叶斯模型):

  1. 随机选择一个类别 \(z \in \{1, 2, ..., K\}\),其先验概率为 \(P(z = k) = \pi_k\)
  2. 给定类别 \(k\),文档中的每个词独立地从类别特定的多项式分布中生成:\(P(w | z=k) = \phi_{k,w}\),其中 \(\phi_{k,w}\) 是类别 \(k\) 中词 \(w\) 的概率。
    目标是估计参数 \(\Theta = \{\pi_k, \phi_{k,w}\}\) 以及每个文档的后验类别分布 \(P(z | d)\)。由于没有标签,我们使用EM算法进行最大似然估计。

3. 算法步骤详解

步骤1:模型定义与符号

  • 词汇表大小为 \(V\),所有词索引为 \(1..V\)
  • 文档 \(d_i\) 表示为词袋向量 \(\mathbf{x}_i = (x_{i1}, ..., x_{iV})\),其中 \(x_{iv}\) 是词 \(v\) 在文档 \(i\) 中的出现次数。
  • 参数:
    • \(\pi_k = P(z=k)\),满足 \(\sum_{k=1}^K \pi_k = 1\)
    • \(\phi_{k,v} = P(w=v | z=k)\),满足 \(\sum_{v=1}^V \phi_{k,v} = 1\)
  • 隐藏变量:文档 \(i\) 的类别标签 \(z_i\)

步骤2:完全数据对数似然

如果已知所有文档的标签 \(z_i\),则完全数据的似然为:

\[L_c(\Theta) = \prod_{i=1}^N \pi_{z_i} \prod_{v=1}^V \phi_{z_i, v}^{x_{iv}} \]

取对数:

\[\ell_c(\Theta) = \sum_{i=1}^N \left[ \log \pi_{z_i} + \sum_{v=1}^V x_{iv} \log \phi_{z_i, v} \right] \]

步骤3:EM算法框架

由于 \(z_i\) 未知,我们通过迭代以下两步优化:

E步(期望步)
计算隐藏变量 \(z_i\) 的后验分布,即文档 \(i\) 属于类别 \(k\) 的概率:

\[\gamma_{ik} = P(z_i = k | \mathbf{x}_i, \Theta^{(t)}) = \frac{\pi_k^{(t)} \prod_{v=1}^V (\phi_{k,v}^{(t)})^{x_{iv}}}{\sum_{j=1}^K \pi_j^{(t)} \prod_{v=1}^V (\phi_{j,v}^{(t)})^{x_{iv}}} \]

这里 \(\Theta^{(t)}\) 是当前迭代的参数。注意:由于是朴素贝叶斯假设,给定类别下词之间独立,因此似然是每个词概率的乘积。

M步(最大化步)
基于当前后验 \(\gamma_{ik}\),更新参数以最大化完全数据对数似然的期望:

\[Q(\Theta) = \mathbb{E}_{z|\mathbf{x},\Theta^{(t)}}[\ell_c(\Theta)] = \sum_{i=1}^N \sum_{k=1}^K \gamma_{ik} \left[ \log \pi_k + \sum_{v=1}^V x_{iv} \log \phi_{k,v} \right] \]

\(\pi_k\)\(\phi_{k,v}\) 分别优化,加入约束(和为1),使用拉格朗日乘子法可得闭式解:

  • 更新先验概率:

\[\pi_k^{(t+1)} = \frac{\sum_{i=1}^N \gamma_{ik}}{N} \]

  • 更新词汇概率:

\[\phi_{k,v}^{(t+1)} = \frac{\sum_{i=1}^N \gamma_{ik} x_{iv}}{\sum_{i=1}^N \gamma_{ik} \sum_{u=1}^V x_{iu}} \]

分母是分配给类别 \(k\) 的所有文档的总词数(即归一化因子)。

步骤4:初始化与终止条件

  • 初始化:随机或通过K-means对文档向量(如TF-IDF)聚类初始化 \(\gamma_{ik}\),然后计算初始 \(\pi_k, \phi_{k,v}\)
  • 终止条件:对数似然 \(\ell(\Theta) = \sum_{i=1}^N \log \sum_{k=1}^K \pi_k \prod_{v=1}^V \phi_{k,v}^{x_{iv}}\) 的变化小于阈值,或达到最大迭代次数。

步骤5:输出

  • 文档软分类:\(\gamma_{ik}\) 表示文档 \(i\) 属于类别 \(k\) 的概率。
  • 硬分类:取 \(\arg\max_k \gamma_{ik}\) 作为文档的类别。
  • 每个类别的主题词:按 \(\phi_{k,v}\) 从高到低排列词,得到类别 \(k\) 的代表性词汇。

4. 示例说明

假设有两个文档:

  • 文档1:词序列 "apple banana apple"
  • 文档2:词序列 "banana orange"
    词汇表:{"apple":1, "banana":2, "orange":3},设K=2。

初始化
随机赋予文档初始软标签,例如 \(\gamma_{11}=0.8, \gamma_{12}=0.2\)\(\gamma_{21}=0.3, \gamma_{22}=0.7\)

第一次E步
用初始参数计算后验(公式略),得到新的 \(\gamma_{ik}\)

第一次M步
更新 \(\pi_1 = (0.8+0.3)/2=0.55\),计算 \(\phi_{1,apple}\)
分子:文档1贡献 \(0.8 \times 2\)("apple"出现2次)+ 文档2贡献 \(0.3 \times 0 = 0\) → 1.6
分母:文档1总词数3×0.8=2.4,文档2总词数2×0.3=0.6,总和3.0
因此 \(\phi_{1,apple}=1.6/3.0≈0.533\)。类似更新其他参数。

迭代直至收敛。

5. 算法特点与应用

  • 优点:提供概率输出,模型可解释(每个类别有词分布),适用于无监督主题发现或文本聚类。
  • 缺点:假设词之间条件独立(朴素贝叶斯),可能过于简化;EM可能陷入局部最优,对初始化敏感。
  • 应用:新闻文章主题聚类、社交媒体话题挖掘、文档组织等。

通过EM算法迭代优化,混合朴素贝叶斯模型能够从无标签文本中自动发现潜在类别结构,是一种经典的无监督文本分类方法。

基于期望最大化(EM)算法的朴素贝叶斯混合模型无监督文本分类算法详解 1. 问题描述 假设我们有一个文本数据集,但没有任何标签信息(即无监督场景)。我们想将这些文本自动聚类成K个类别(例如K个主题),同时为每个类别学习一个概率生成模型。该问题可以形式化为:给定文本集合 \( D = \{d_ 1, d_ 2, ..., d_ N\} \),每个文档 \( d \) 由词序列表示,目标是学习K个多项式朴素贝叶斯模型(每个类别一个),并推断每个文档属于各个类别的软分配概率。这是一个典型的 无监督文本分类 或 软聚类 问题,可以通过EM算法与朴素贝叶斯混合模型结合来解决。 2. 算法核心思想 我们假设数据由以下生成过程产生(混合多项式朴素贝叶斯模型): 随机选择一个类别 \( z \in \{1, 2, ..., K\} \),其先验概率为 \( P(z = k) = \pi_ k \)。 给定类别 \( k \),文档中的每个词独立地从类别特定的多项式分布中生成:\( P(w | z=k) = \phi_ {k,w} \),其中 \( \phi_ {k,w} \) 是类别 \( k \) 中词 \( w \) 的概率。 目标是估计参数 \( \Theta = \{\pi_ k, \phi_ {k,w}\} \) 以及每个文档的后验类别分布 \( P(z | d) \)。由于没有标签,我们使用EM算法进行最大似然估计。 3. 算法步骤详解 步骤1:模型定义与符号 词汇表大小为 \( V \),所有词索引为 \( 1..V \)。 文档 \( d_ i \) 表示为词袋向量 \( \mathbf{x} i = (x {i1}, ..., x_ {iV}) \),其中 \( x_ {iv} \) 是词 \( v \) 在文档 \( i \) 中的出现次数。 参数: \( \pi_ k = P(z=k) \),满足 \( \sum_ {k=1}^K \pi_ k = 1 \)。 \( \phi_ {k,v} = P(w=v | z=k) \),满足 \( \sum_ {v=1}^V \phi_ {k,v} = 1 \)。 隐藏变量:文档 \( i \) 的类别标签 \( z_ i \)。 步骤2:完全数据对数似然 如果已知所有文档的标签 \( z_ i \),则完全数据的似然为: \[ L_ c(\Theta) = \prod_ {i=1}^N \pi_ {z_ i} \prod_ {v=1}^V \phi_ {z_ i, v}^{x_ {iv}} \] 取对数: \[ \ell_ c(\Theta) = \sum_ {i=1}^N \left[ \log \pi_ {z_ i} + \sum_ {v=1}^V x_ {iv} \log \phi_ {z_ i, v} \right ] \] 步骤3:EM算法框架 由于 \( z_ i \) 未知,我们通过迭代以下两步优化: E步(期望步) : 计算隐藏变量 \( z_ i \) 的后验分布,即文档 \( i \) 属于类别 \( k \) 的概率: \[ \gamma_ {ik} = P(z_ i = k | \mathbf{x} i, \Theta^{(t)}) = \frac{\pi_ k^{(t)} \prod {v=1}^V (\phi_ {k,v}^{(t)})^{x_ {iv}}}{\sum_ {j=1}^K \pi_ j^{(t)} \prod_ {v=1}^V (\phi_ {j,v}^{(t)})^{x_ {iv}}} \] 这里 \( \Theta^{(t)} \) 是当前迭代的参数。注意:由于是朴素贝叶斯假设,给定类别下词之间独立,因此似然是每个词概率的乘积。 M步(最大化步) : 基于当前后验 \( \gamma_ {ik} \),更新参数以最大化完全数据对数似然的期望: \[ Q(\Theta) = \mathbb{E} {z|\mathbf{x},\Theta^{(t)}}[ \ell_ c(\Theta)] = \sum {i=1}^N \sum_ {k=1}^K \gamma_ {ik} \left[ \log \pi_ k + \sum_ {v=1}^V x_ {iv} \log \phi_ {k,v} \right ] \] 对 \( \pi_ k \) 和 \( \phi_ {k,v} \) 分别优化,加入约束(和为1),使用拉格朗日乘子法可得闭式解: 更新先验概率: \[ \pi_ k^{(t+1)} = \frac{\sum_ {i=1}^N \gamma_ {ik}}{N} \] 更新词汇概率: \[ \phi_ {k,v}^{(t+1)} = \frac{\sum_ {i=1}^N \gamma_ {ik} x_ {iv}}{\sum_ {i=1}^N \gamma_ {ik} \sum_ {u=1}^V x_ {iu}} \] 分母是分配给类别 \( k \) 的所有文档的总词数(即归一化因子)。 步骤4:初始化与终止条件 初始化:随机或通过K-means对文档向量(如TF-IDF)聚类初始化 \( \gamma_ {ik} \),然后计算初始 \( \pi_ k, \phi_ {k,v} \)。 终止条件:对数似然 \( \ell(\Theta) = \sum_ {i=1}^N \log \sum_ {k=1}^K \pi_ k \prod_ {v=1}^V \phi_ {k,v}^{x_ {iv}} \) 的变化小于阈值,或达到最大迭代次数。 步骤5:输出 文档软分类:\( \gamma_ {ik} \) 表示文档 \( i \) 属于类别 \( k \) 的概率。 硬分类:取 \( \arg\max_ k \gamma_ {ik} \) 作为文档的类别。 每个类别的主题词:按 \( \phi_ {k,v} \) 从高到低排列词,得到类别 \( k \) 的代表性词汇。 4. 示例说明 假设有两个文档: 文档1:词序列 "apple banana apple" 文档2:词序列 "banana orange" 词汇表:{"apple":1, "banana":2, "orange":3},设K=2。 初始化 : 随机赋予文档初始软标签,例如 \( \gamma_ {11}=0.8, \gamma_ {12}=0.2 \),\( \gamma_ {21}=0.3, \gamma_ {22}=0.7 \)。 第一次E步 : 用初始参数计算后验(公式略),得到新的 \( \gamma_ {ik} \)。 第一次M步 : 更新 \( \pi_ 1 = (0.8+0.3)/2=0.55 \),计算 \( \phi_ {1,apple} \): 分子:文档1贡献 \( 0.8 \times 2 \)("apple"出现2次)+ 文档2贡献 \( 0.3 \times 0 = 0 \) → 1.6 分母:文档1总词数3×0.8=2.4,文档2总词数2×0.3=0.6,总和3.0 因此 \( \phi_ {1,apple}=1.6/3.0≈0.533 \)。类似更新其他参数。 迭代直至收敛。 5. 算法特点与应用 优点 :提供概率输出,模型可解释(每个类别有词分布),适用于无监督主题发现或文本聚类。 缺点 :假设词之间条件独立(朴素贝叶斯),可能过于简化;EM可能陷入局部最优,对初始化敏感。 应用 :新闻文章主题聚类、社交媒体话题挖掘、文档组织等。 通过EM算法迭代优化,混合朴素贝叶斯模型能够从无标签文本中自动发现潜在类别结构,是一种经典的无监督文本分类方法。