非负矩阵分解(Non-negative Matrix Factorization, NMF)的概率解释与最大似然估计
字数 4388 2025-12-14 10:15:19

非负矩阵分解(Non-negative Matrix Factorization, NMF)的概率解释与最大似然估计

题目描述
我们讨论非负矩阵分解(NMF)的一种概率建模视角。假设我们有一个非负观测矩阵 \(V \in \mathbb{R}^{n \times m}_{\ge 0}\),NMF旨在将其分解为两个非负矩阵的乘积:\(V \approx WH\),其中 \(W \in \mathbb{R}^{n \times k}_{\ge 0}\)\(H \in \mathbb{R}^{k \times m}_{\ge 0}\)\(k\) 是给定的潜在维度(通常 \(k \ll \min(n, m)\))。从概率角度来看,我们可以假设观测矩阵 \(V\) 中的每个元素 \(v_{ij}\) 服从一个以 \((WH)_{ij}\) 为参数的泊松分布。这个概率模型为NMF提供了一个基于最大似然估计的推导框架,并可以自然导出乘性更新规则。我们将逐步讲解如何建立这个概率模型,推导其对数似然函数,并通过期望最大化(EM)算法的思想得到与经典乘性更新规则等价的迭代优化过程。

解题过程

  1. 概率模型建立
    • 假设观测矩阵 \(V\) 的每个元素 \(v_{ij}\) 是独立的,且服从泊松分布,其概率质量函数为:

\[ P(v_{ij} | \lambda_{ij}) = \frac{\lambda_{ij}^{v_{ij}} e^{-\lambda_{ij}}}{v_{ij}!} \]

 其中,泊松分布的参数 $ \lambda_{ij} $ 被建模为分解矩阵的乘积元素,即:

\[ \lambda_{ij} = (WH)_{ij} = \sum_{t=1}^{k} w_{it} h_{tj} \]

  • 这里,\(W\)\(H\) 是非负的,因此 \(\lambda_{ij} \ge 0\) 满足泊松分布参数的要求。这个假设适用于计数数据(如文档的词频、图像的像素强度等非负整数)。
  1. 对数似然函数
    • 给定整个观测矩阵 \(V\),其似然函数是所有元素概率的乘积:

\[ P(V | W, H) = \prod_{i=1}^{n} \prod_{j=1}^{m} \frac{((WH)_{ij})^{v_{ij}} e^{-(WH)_{ij}}}{v_{ij}!} \]

  • 取对数得到对数似然函数(忽略常数项):

\[ \mathcal{L}(W, H) = \sum_{i=1}^{n} \sum_{j=1}^{m} \left[ v_{ij} \log \left( \sum_{t=1}^{k} w_{it} h_{tj} \right) - \sum_{t=1}^{k} w_{it} h_{tj} \right] \]

  • 我们的目标是找到非负矩阵 \(W\)\(H\) 以最大化这个对数似然函数。由于对数内部有求和,直接优化困难,我们引入潜在变量来简化。
  1. 引入潜在变量与EM算法框架
    • 我们引入一组潜在变量 \(z_{ijt} \ge 0\),满足:

\[ v_{ij} = \sum_{t=1}^{k} z_{ijt} \]

 其中,每个 $ z_{ijt} $ 可以解释为观测 $ v_{ij} $ 中归属于第 $ t $ 个潜在成分的部分。在泊松分布的背景下,如果 $ v_{ij} \sim \text{Poisson}(\sum_t w_{it} h_{tj}) $,那么可以证明存在一组独立的潜在变量 $ z_{ijt} \sim \text{Poisson}(w_{it} h_{tj}) $,且 $ v_{ij} = \sum_t z_{ijt} $。
  • 给定 \(v_{ij}\),潜在变量 \(\{z_{ijt}\}_{t=1}^k\) 的联合条件分布是一个多项分布:

\[ P(z_{ij1}, \dots, z_{ijk} | v_{ij}) = \frac{v_{ij}!}{\prod_{t=1}^{k} z_{ijt}!} \prod_{t=1}^{k} \left( \frac{w_{it} h_{tj}}{\sum_{s=1}^{k} w_{is} h_{sj}} \right)^{z_{ijt}} \]

 其中,$ \sum_{t} z_{ijt} = v_{ij} $。这个关系允许我们在E步中计算 $ z_{ijt} $ 的期望。
  1. EM算法的E步:计算潜在变量的期望
    • 在E步,我们需要计算完整数据对数似然关于潜在变量条件分布的期望。完整数据对数似然(包括 \(z_{ijt}\) )为:

\[ \mathcal{L}_c = \sum_{i,j,t} \left[ z_{ijt} \log(w_{it} h_{tj}) - w_{it} h_{tj} - \log(z_{ijt}!) \right] \]

  • 在给定当前参数估计 \(W^{old}, H^{old}\) 和观测 \(v_{ij}\) 下,潜在变量 \(z_{ijt}\) 的条件期望为:

\[ \mathbb{E}[z_{ijt} | v_{ij}, W^{old}, H^{old}] = v_{ij} \cdot \frac{w_{it}^{old} h_{tj}^{old}}{\sum_{s=1}^{k} w_{is}^{old} h_{sj}^{old}} \]

 记这个期望为 $ \hat{z}_{ijt} $。直观上,它将观测 $ v_{ij} $ 按当前模型下各成分的贡献比例分配给各潜在成分。
  1. EM算法的M步:最大化期望完整数据对数似然
    • M步需要最大化关于 \(W, H\) 的期望完整数据对数似然(忽略常数项):

\[ Q(W, H) = \sum_{i,j,t} \left[ \hat{z}_{ijt} \log(w_{it} h_{tj}) - w_{it} h_{tj} \right] \]

  • 分别对 \(w_{it}\)\(h_{tj}\) 求导并设为零。例如,对 \(w_{it}\) 的偏导数为:

\[ \frac{\partial Q}{\partial w_{it}} = \sum_{j=1}^{m} \frac{\hat{z}_{ijt}}{w_{it}} - \sum_{j=1}^{m} h_{tj} = 0 \]

 解得:

\[ w_{it} = \frac{\sum_{j=1}^{m} \hat{z}_{ijt}}{\sum_{j=1}^{m} h_{tj}} \]

  • 类似地,对 \(h_{tj}\) 求导可得:

\[ h_{tj} = \frac{\sum_{i=1}^{n} \hat{z}_{ijt}}{\sum_{i=1}^{n} w_{it}} \]

  • 但注意,这里 \(\hat{z}_{ijt}\) 依赖于 \(W^{old}\)\(H^{old}\),而上式右边的分母也含有待优化的变量,因此这并非封闭解。然而,我们可以将上述方程重新整理,得到迭代更新公式。
  1. 导出乘性更新规则
    • \(\hat{z}_{ijt} = v_{ij} \cdot \frac{w_{it}^{old} h_{tj}^{old}}{(W^{old} H^{old})_{ij}}\) 代入 \(w_{it}\) 的表达式:

\[ w_{it} = w_{it}^{old} \cdot \frac{\sum_{j=1}^{m} \frac{v_{ij}}{(W^{old} H^{old})_{ij}} h_{tj}^{old}}{\sum_{j=1}^{m} h_{tj}} \]

  • 但此时 \(h_{tj}\) 在分母中仍是未知的。为了得到封闭的迭代格式,一个常见的做法是采用“当前估计”来近似分母中的 \(h_{tj}\),即用 \(h_{tj}^{old}\) 代替分母中的 \(h_{tj}\),从而得到:

\[ w_{it}^{new} = w_{it}^{old} \cdot \frac{\sum_{j=1}^{m} \frac{v_{ij}}{(W^{old} H^{old})_{ij}} h_{tj}^{old}}{\sum_{j=1}^{m} h_{tj}^{old}} \]

  • 同理,对 \(h_{tj}\) 可得:

\[ h_{tj}^{new} = h_{tj}^{old} \cdot \frac{\sum_{i=1}^{n} \frac{v_{ij}}{(W^{old} H^{old})_{ij}} w_{it}^{old}}{\sum_{i=1}^{n} w_{it}^{old}} \]

  • 这两个更新公式正是经典NMF乘性更新规则(对应于用散度损失,这里泊松模型对应的是Kullback-Leibler散度)。它们保证了 \(W\)\(H\) 的非负性(如果初始化为非负),且每次迭代单调增加对数似然(或等价地,减少KL散度)。
  1. 算法总结与解释
    • 算法从随机非负初始化 \(W, H\) 开始,然后交替进行以下步骤直至收敛:
      1. E步:计算“比例分配”矩阵 \(\hat{Z}\),其中元素 \(\hat{z}_{ijt} = v_{ij} \cdot \frac{w_{it} h_{tj}}{\sum_s w_{is} h_{sj}}\)
      2. M步:用上述乘性更新规则更新 \(W\)\(H\)
    • 实际上,E步和M步可以合并,直接应用乘性更新规则迭代,而不显式计算 \(\hat{Z}\),这正是实践中常用的NMF-KL算法。
    • 这个概率视角不仅提供了最大似然解释,还可以自然地扩展到考虑缺失值、加入正则化(如通过先验分布)等情况。

通过以上步骤,我们完成了NMF概率模型的构建、最大似然估计的推导,并展示了如何通过EM算法框架导出经典的乘性更新规则。这个推导揭示了NMF与泊松分布、KL散度最小化的内在联系,为其在处理计数数据时的有效性提供了理论依据。

非负矩阵分解(Non-negative Matrix Factorization, NMF)的概率解释与最大似然估计 题目描述 我们讨论非负矩阵分解(NMF)的一种概率建模视角。假设我们有一个非负观测矩阵 \( V \in \mathbb{R}^{n \times m} {\ge 0} \),NMF旨在将其分解为两个非负矩阵的乘积:\( V \approx WH \),其中 \( W \in \mathbb{R}^{n \times k} {\ge 0} \),\( H \in \mathbb{R}^{k \times m} {\ge 0} \),\( k \) 是给定的潜在维度(通常 \( k \ll \min(n, m) \))。从概率角度来看,我们可以假设观测矩阵 \( V \) 中的每个元素 \( v {ij} \) 服从一个以 \( (WH)_ {ij} \) 为参数的泊松分布。这个概率模型为NMF提供了一个基于最大似然估计的推导框架,并可以自然导出乘性更新规则。我们将逐步讲解如何建立这个概率模型,推导其对数似然函数,并通过期望最大化(EM)算法的思想得到与经典乘性更新规则等价的迭代优化过程。 解题过程 概率模型建立 假设观测矩阵 \( V \) 的每个元素 \( v_ {ij} \) 是独立的,且服从泊松分布,其概率质量函数为: \[ P(v_ {ij} | \lambda_ {ij}) = \frac{\lambda_ {ij}^{v_ {ij}} e^{-\lambda_ {ij}}}{v_ {ij} !} \] 其中,泊松分布的参数 \( \lambda_ {ij} \) 被建模为分解矩阵的乘积元素,即: \[ \lambda_ {ij} = (WH) {ij} = \sum {t=1}^{k} w_ {it} h_ {tj} \] 这里,\( W \) 和 \( H \) 是非负的,因此 \( \lambda_ {ij} \ge 0 \) 满足泊松分布参数的要求。这个假设适用于计数数据(如文档的词频、图像的像素强度等非负整数)。 对数似然函数 给定整个观测矩阵 \( V \),其似然函数是所有元素概率的乘积: \[ P(V | W, H) = \prod_ {i=1}^{n} \prod_ {j=1}^{m} \frac{((WH) {ij})^{v {ij}} e^{-(WH) {ij}}}{v {ij} !} \] 取对数得到对数似然函数(忽略常数项): \[ \mathcal{L}(W, H) = \sum_ {i=1}^{n} \sum_ {j=1}^{m} \left[ v_ {ij} \log \left( \sum_ {t=1}^{k} w_ {it} h_ {tj} \right) - \sum_ {t=1}^{k} w_ {it} h_ {tj} \right ] \] 我们的目标是找到非负矩阵 \( W \) 和 \( H \) 以最大化这个对数似然函数。由于对数内部有求和,直接优化困难,我们引入潜在变量来简化。 引入潜在变量与EM算法框架 我们引入一组潜在变量 \( z_ {ijt} \ge 0 \),满足: \[ v_ {ij} = \sum_ {t=1}^{k} z_ {ijt} \] 其中,每个 \( z_ {ijt} \) 可以解释为观测 \( v_ {ij} \) 中归属于第 \( t \) 个潜在成分的部分。在泊松分布的背景下,如果 \( v_ {ij} \sim \text{Poisson}(\sum_ t w_ {it} h_ {tj}) \),那么可以证明存在一组独立的潜在变量 \( z_ {ijt} \sim \text{Poisson}(w_ {it} h_ {tj}) \),且 \( v_ {ij} = \sum_ t z_ {ijt} \)。 给定 \( v_ {ij} \),潜在变量 \( \{z_ {ijt}\} {t=1}^k \) 的联合条件分布是一个多项分布: \[ P(z {ij1}, \dots, z_ {ijk} | v_ {ij}) = \frac{v_ {ij}!}{\prod_ {t=1}^{k} z_ {ijt}!} \prod_ {t=1}^{k} \left( \frac{w_ {it} h_ {tj}}{\sum_ {s=1}^{k} w_ {is} h_ {sj}} \right)^{z_ {ijt}} \] 其中,\( \sum_ {t} z_ {ijt} = v_ {ij} \)。这个关系允许我们在E步中计算 \( z_ {ijt} \) 的期望。 EM算法的E步:计算潜在变量的期望 在E步,我们需要计算完整数据对数似然关于潜在变量条件分布的期望。完整数据对数似然(包括 \( z_ {ijt} \) )为: \[ \mathcal{L} c = \sum {i,j,t} \left[ z_ {ijt} \log(w_ {it} h_ {tj}) - w_ {it} h_ {tj} - \log(z_ {ijt}!) \right ] \] 在给定当前参数估计 \( W^{old}, H^{old} \) 和观测 \( v_ {ij} \) 下,潜在变量 \( z_ {ijt} \) 的条件期望为: \[ \mathbb{E}[ z_ {ijt} | v_ {ij}, W^{old}, H^{old}] = v_ {ij} \cdot \frac{w_ {it}^{old} h_ {tj}^{old}}{\sum_ {s=1}^{k} w_ {is}^{old} h_ {sj}^{old}} \] 记这个期望为 \( \hat{z} {ijt} \)。直观上,它将观测 \( v {ij} \) 按当前模型下各成分的贡献比例分配给各潜在成分。 EM算法的M步:最大化期望完整数据对数似然 M步需要最大化关于 \( W, H \) 的期望完整数据对数似然(忽略常数项): \[ Q(W, H) = \sum_ {i,j,t} \left[ \hat{z} {ijt} \log(w {it} h_ {tj}) - w_ {it} h_ {tj} \right ] \] 分别对 \( w_ {it} \) 和 \( h_ {tj} \) 求导并设为零。例如,对 \( w_ {it} \) 的偏导数为: \[ \frac{\partial Q}{\partial w_ {it}} = \sum_ {j=1}^{m} \frac{\hat{z} {ijt}}{w {it}} - \sum_ {j=1}^{m} h_ {tj} = 0 \] 解得: \[ w_ {it} = \frac{\sum_ {j=1}^{m} \hat{z} {ijt}}{\sum {j=1}^{m} h_ {tj}} \] 类似地,对 \( h_ {tj} \) 求导可得: \[ h_ {tj} = \frac{\sum_ {i=1}^{n} \hat{z} {ijt}}{\sum {i=1}^{n} w_ {it}} \] 但注意,这里 \( \hat{z}_ {ijt} \) 依赖于 \( W^{old} \) 和 \( H^{old} \),而上式右边的分母也含有待优化的变量,因此这并非封闭解。然而,我们可以将上述方程重新整理,得到迭代更新公式。 导出乘性更新规则 将 \( \hat{z} {ijt} = v {ij} \cdot \frac{w_ {it}^{old} h_ {tj}^{old}}{(W^{old} H^{old}) {ij}} \) 代入 \( w {it} \) 的表达式: \[ w_ {it} = w_ {it}^{old} \cdot \frac{\sum_ {j=1}^{m} \frac{v_ {ij}}{(W^{old} H^{old}) {ij}} h {tj}^{old}}{\sum_ {j=1}^{m} h_ {tj}} \] 但此时 \( h_ {tj} \) 在分母中仍是未知的。为了得到封闭的迭代格式,一个常见的做法是采用“当前估计”来近似分母中的 \( h_ {tj} \),即用 \( h_ {tj}^{old} \) 代替分母中的 \( h_ {tj} \),从而得到: \[ w_ {it}^{new} = w_ {it}^{old} \cdot \frac{\sum_ {j=1}^{m} \frac{v_ {ij}}{(W^{old} H^{old}) {ij}} h {tj}^{old}}{\sum_ {j=1}^{m} h_ {tj}^{old}} \] 同理,对 \( h_ {tj} \) 可得: \[ h_ {tj}^{new} = h_ {tj}^{old} \cdot \frac{\sum_ {i=1}^{n} \frac{v_ {ij}}{(W^{old} H^{old}) {ij}} w {it}^{old}}{\sum_ {i=1}^{n} w_ {it}^{old}} \] 这两个更新公式正是经典NMF乘性更新规则(对应于用散度损失,这里泊松模型对应的是Kullback-Leibler散度)。它们保证了 \( W \) 和 \( H \) 的非负性(如果初始化为非负),且每次迭代单调增加对数似然(或等价地,减少KL散度)。 算法总结与解释 算法从随机非负初始化 \( W, H \) 开始,然后交替进行以下步骤直至收敛: E步 :计算“比例分配”矩阵 \( \hat{Z} \),其中元素 \( \hat{z} {ijt} = v {ij} \cdot \frac{w_ {it} h_ {tj}}{\sum_ s w_ {is} h_ {sj}} \)。 M步 :用上述乘性更新规则更新 \( W \) 和 \( H \)。 实际上,E步和M步可以合并,直接应用乘性更新规则迭代,而不显式计算 \( \hat{Z} \),这正是实践中常用的NMF-KL算法。 这个概率视角不仅提供了最大似然解释,还可以自然地扩展到考虑缺失值、加入正则化(如通过先验分布)等情况。 通过以上步骤,我们完成了NMF概率模型的构建、最大似然估计的推导,并展示了如何通过EM算法框架导出经典的乘性更新规则。这个推导揭示了NMF与泊松分布、KL散度最小化的内在联系,为其在处理计数数据时的有效性提供了理论依据。