基于狄利克雷回归(Dirichlet Regression)的多类概率预测模型
狄利克雷回归是一种用于建模具有多个正比例成分(如组成数据、概率分布)的因变量的回归方法。它假设因变量服从狄利克雷分布,并通过回归模型将分布的参数与解释变量相关联。这使其特别适合于多类概率预测任务,例如预测文档主题分布、用户兴趣比例或不同类别占比。
接下来,我将详细讲解狄利克雷回归的模型设定、参数估计和预测过程。
第一步:问题定义与数据形式化
- 问题场景:假设我们有N个观测样本。对于每个样本i,我们有一个d维的特征向量 \(\mathbf{x}_i \in \mathbb{R}^d\)(例如,用户的特征、文档的词袋向量)。同时,我们有一个K类的概率向量作为因变量 \(\mathbf{y}_i = (y_{i1}, y_{i2}, ..., y_{iK})\),满足 \(y_{ik} > 0\) 且 \(\sum_{k=1}^K y_{ik} = 1\)。例如,\(y_i\) 可以是一篇文档属于K个主题的概率分布。
- 目标:建立一个模型,能够基于特征 \(\mathbf{x}_i\) 预测出对应的概率向量 \(\mathbf{y}_i\) 的整个分布,而不仅仅是其期望值。狄利克雷回归正是为此设计的。
第二步:模型核心——狄利克雷分布
- 分布定义:K维概率向量 \(\mathbf{y}\) 服从参数为 \(\boldsymbol{\alpha} = (\alpha_1, \alpha_2, ..., \alpha_K)\) 的狄利克雷分布,记作 \(\mathbf{y} \sim \text{Dir}(\boldsymbol{\alpha})\),其概率密度函数为:
\[ p(\mathbf{y} | \boldsymbol{\alpha}) = \frac{\Gamma(\sum_{k=1}^K \alpha_k)}{\prod_{k=1}^K \Gamma(\alpha_k)} \prod_{k=1}^K y_k^{\alpha_k - 1}, \quad \alpha_k > 0 \]
其中,$ \Gamma(\cdot) $ 是Gamma函数。
- 分布特性:
- 期望:\(\mathbb{E}[y_k] = \frac{\alpha_k}{\alpha_0}\),其中 \(\alpha_0 = \sum_{k=1}^K \alpha_k\)。
- 浓度参数:\(\alpha_0\) 称为浓度参数,其值越大,分布越“集中”在其期望值附近;值越小,分布越分散,允许更大的变异性。
- 灵活性:狄利克雷分布可以建模各种形状的概率分布,从高度集中到非常均匀,这使其适合表示真实世界中的不确定性。
第三步:建立回归模型——连接参数与特征
在狄利克雷回归中,我们让分布的参数 \(\boldsymbol{\alpha}\) 依赖于特征 \(\mathbf{x}\)。通常有两种参数化方式:
- 均值-精度参数化(最常见):
- 设 \(\mu_k(\mathbf{x}) = \mathbb{E}[y_k | \mathbf{x}] = \frac{\alpha_k(\mathbf{x})}{\alpha_0(\mathbf{x})}\) 是给定特征下第k类的期望概率。
- 设 \(\phi(\mathbf{x}) = \alpha_0(\mathbf{x})\) 是浓度参数,它衡量预测的确定性。
- 我们分别用两个模型来预测 \(\boldsymbol{\mu}\) 和 \(\phi\):
- 均值模型:使用一个从特征到K类概率的链接函数,例如softmax函数:
\[ \mu_k(\mathbf{x}; \mathbf{W}) = \frac{\exp(\mathbf{w}_k^T \mathbf{x})}{\sum_{j=1}^K \exp(\mathbf{w}_j^T \mathbf{x})} \]
其中,$ \mathbf{W} = (\mathbf{w}_1, ..., \mathbf{w}_K) $ 是待学习的权重矩阵,$ \mathbf{w}_k \in \mathbb{R}^d $。
* **精度模型**:浓度参数 $ \phi $ 必须为正,因此通常使用一个带指数链接的线性模型(或神经网络):
\[ \phi(\mathbf{x}; \mathbf{v}) = \exp(\mathbf{v}^T \mathbf{x} + b) \]
其中,$ \mathbf{v} $ 是权重向量,$ b $ 是偏置。
* 最终,狄利克雷分布的参数由 $ \alpha_k(\mathbf{x}) = \mu_k(\mathbf{x}) \cdot \phi(\mathbf{x}) $ 计算得出。
第四步:参数估计——最大化对数似然
- 似然函数:给定数据集 \(\{(\mathbf{x}_i, \mathbf{y}_i)\}_{i=1}^N\),并假设样本独立,模型的似然函数为:
\[ L(\mathbf{W}, \mathbf{v}, b) = \prod_{i=1}^N p(\mathbf{y}_i | \boldsymbol{\alpha}(\mathbf{x}_i; \mathbf{W}, \mathbf{v}, b)) \]
- 对数似然:为了便于优化,我们最大化对数似然:
\[ \ell(\mathbf{W}, \mathbf{v}, b) = \sum_{i=1}^N \log p(\mathbf{y}_i | \boldsymbol{\alpha}(\mathbf{x}_i)) \]
代入狄利克雷分布的PDF,对数似然为:
\[ \ell = \sum_{i=1}^N \left[ \log \Gamma(\phi_i) - \sum_{k=1}^K \log \Gamma(\mu_{ik} \phi_i) + \sum_{k=1}^K (\mu_{ik} \phi_i - 1) \log y_{ik} \right] \]
其中,$ \phi_i = \phi(\mathbf{x}_i) $,$ \mu_{ik} = \mu_k(\mathbf{x}_i) $。
- 优化求解:
- 这个对数似然函数关于参数 \(\mathbf{W}, \mathbf{v}, b\) 是连续可微的。
- 我们可以使用梯度下降或其变种(如Adam优化器)来最大化它。
- 需要计算对数似然关于 \(\mathbf{W}\) 和 \(\mathbf{v}, b\) 的梯度,这通常通过自动微分工具(如PyTorch, TensorFlow)在神经网络框架中实现。
第五步:预测与不确定性量化
- 点预测(期望概率):对于新的特征向量 \(\mathbf{x}^*\),模型可以直接输出其属于各类的期望概率:
\[ \hat{\mathbf{y}}^* = \boldsymbol{\mu}(\mathbf{x}^*) = \text{softmax}(\mathbf{W}^T \mathbf{x}^*) \]
- 不确定性估计:这是狄利克雷回归的关键优势。模型同时输出了浓度参数 \(\phi^* = \phi(\mathbf{x}^*)\)。
- 如果 \(\phi^*\) 很大,预测的概率向量 \(\hat{\mathbf{y}}^*\) 被认为是可靠的(低方差)。
- 如果 \(\phi^*\) 很小,意味着模型对基于 \(\mathbf{x}^*\) 的预测不确定性很高(高方差)。
- 我们甚至可以生成整个预测分布 \(p(\mathbf{y} | \mathbf{x}^*) = \text{Dir}(\mathbf{y} | \boldsymbol{\alpha}^*)\),并从中抽样,以可视化预测的不确定性。
总结与拓展
狄利克雷回归提供了一个严谨的概率框架来处理组成数据或概率分布作为因变量的回归问题。通过将传统分类模型的softmax输出(均值)与一个额外的精度参数模型相结合,它不仅提供了点估计,还量化了估计的不确定性。
这种模型在需要可靠置信度估计的场景中非常有用,例如:
- 药物成分分析:预测不同成分的比例。
- 生态学:预测不同物种的丰度占比。
- 推荐系统:预测用户对不同类型内容的兴趣分布及其确定性。
- 任何softmax回归的替代:当需要了解模型预测的不确定性时,可以用狄利克雷回归替代传统的多类逻辑回归。
其核心思想是通过建模整个输出分布(而非仅其均值)来更丰富地描述数据生成过程。