首页 / 资讯中心 / 文章详情

概率图模型与神经网络:从HMM、CRF到深度学习的选型指南

概率图模型与神经网络:从HMM、CRF到深度学习的选型指南 ★ FEATURED ARTICLE
1. 从一张手写公式图说起概率图模型到底强在哪几年前我在做一个序列标注的小项目当时第一反应就是上隐马尔可夫模型HMM。原因很简单数据量不大标注成本高而且业务方希望模型“能解释”——为什么这个词被标成了那个标签最好能给出一个概率上的说法。HMM 恰好满足这些条件它的联合概率分解干净利落前向-后向算法推导一遍就能手写实现维特比解码也不复杂。那段时间我对概率图模型Probabilistic Graphical Models简称 PGM是真心推崇的觉得它才是“把世界结构写清楚”的正道。概率图模型的核心思想用一句话概括就是用图结构来表达随机变量之间的条件独立关系从而把高维联合概率分解成若干低维因子的乘积。这个思路非常优雅。一个朴素贝叶斯分类器就是假设特征在给定类别下条件独立一个 HMM就是假设观测只依赖当前隐状态、隐状态构成马尔可夫链一个贝叶斯网络Bayesian Network就是把变量之间的因果或依赖关系画成有向无环图一个条件随机场CRF则是把标签之间的依赖建模成无向图直接对条件概率建模。这些模型的共同点是结构先验是显式写出来的。你告诉模型“A 影响 BB 影响 CA 和 C 在给定 B 时条件独立”模型就老老实实按这个结构去算。参数量通常远小于同等表达能力的神经网络可解释性强小样本下往往更稳。这也是为什么在生物序列分析、语音识别早期、自然语言处理早期、故障诊断等领域PGM 长期占据主流。但问题也恰恰出在这里。结构先验是人为设定的而现实世界的依赖关系往往比我们画出来的图复杂得多。你画了一个有向无环图可真实数据里可能存在环、存在长程依赖、存在高阶交互这些用一张静态图很难全部装进去。于是后来大家越来越倾向于让模型自己从数据里学结构哪怕学出来的东西是一团黑箱。这就是概率图模型与深度学习此消彼长的大背景。2. HMM、贝叶斯网络、CRF 各自的看家本领与软肋2.1 HMM序列建模的入门课也是天花板很低的课HMM 的假设非常强当前观测只依赖当前隐状态当前隐状态只依赖上一时刻隐状态。这两个假设让推断变得极其高效前向算法复杂度是 O(T·N²)T 是序列长度N 是隐状态数。用动态规划一跑解码、求似然、参数估计Baum-Welch全都能做。但它的软肋同样明显。第一观测独立性假设太苛刻。在词性标注里一个词的词性显然和它前后的多个词都有关不只是当前词本身。第二隐状态数量需要人为设定设少了欠拟合设多了过拟合且计算量上升。第三它只能建模一阶马尔可夫依赖长程依赖基本无能为力。我当年做那个序列标注项目时遇到最头疼的就是实体边界处的标签跳变HMM 经常在“B-实体”和“I-实体”之间犹豫因为它看不到更远的上下文。2.2 贝叶斯网络因果结构的白盒表达贝叶斯网络用有向无环图表示变量间的依赖每个节点对应一个条件概率表CPT。它的优势在于结构清晰可以做因果推断可以处理缺失值可以做概率推理如变量消元、信念传播。在医疗诊断、风险评估这类需要“讲清楚理由”的场景里贝叶斯网络至今仍有不可替代的价值。但它的痛点也很现实。结构学习本身是一个 NP-hard 问题变量多了以后搜索空间爆炸。条件概率表的规模随父节点数量指数增长一个节点有 10 个二值父节点CPT 就有 2¹¹ 个条目。实际项目中我们往往只能靠领域专家手工建图或者做大量简化假设。一旦变量维度上去贝叶斯网络要么建不起来要么建出来参数多到没法估计。2.3 CRF序列标注的黄金一代CRF 是我个人认为在序列任务上设计得最漂亮的一类模型。它直接对条件概率 P(Y|X) 建模避免了 HMM 的观测独立性假设同时可以灵活定义特征函数把任意窗口内的上下文特征都塞进去。线性链 CRF 在命名实体识别、分词、词性标注上曾经是标配配合 L-BFGS 或 SGD 训练效果稳定。CRF 的代价是训练和推断都更慢。特征函数需要人工设计特征模板一多参数规模就上去了。而且它本质上还是一个对数线性模型表达能力受限于特征工程的质量。你特征设计得好它就很强你特征设计得差它就一般。到了深度学习时代BiLSTM-CRF 把特征提取交给 LSTMCRF 只负责标签转移约束这算是 CRF 最后一次高光时刻。再往后BERT 加一个线性分类头就能超过它CRF 层逐渐变成了可选项。3. 黑箱神经网络凭什么后来居上3.1 表达能力的代差从线性因子到万能逼近概率图模型的联合概率分解本质上是一堆低维因子的乘积。每个因子通常是对数线性的表达能力有限。神经网络则不同一个足够宽或足够深的多层感知机理论上可以逼近任意连续函数。这意味着神经网络不需要你告诉它“A 和 B 有关系”它自己能从数据里把这种关系学出来哪怕这种关系是高阶的、非线性的、长程的。举个例子在语言建模里n-gram 模型本质上就是一个简化的马尔可夫链它只能看前 n-1 个词。RNN 和 Transformer 则可以把整个序列的信息压缩进隐状态或注意力矩阵里长程依赖不再是问题。这种表达能力的代差是神经网络胜出的根本原因。3.2 端到端训练让特征工程退居二线PGM 时代做一个 NLP 任务流程通常是分词、词性标注、依存句法分析、特征模板设计、模型训练。每一步都需要人工介入误差也会逐层累积。神经网络把这一整套流程压缩成了一个端到端的可微系统。你给它原始文本它直接输出标签中间的特征表示全部由网络自己学。这种端到端范式极大降低了使用门槛。你不再需要是某个领域的专家才能设计出好特征只要你有足够的数据和算力网络就能学到比人工特征更好的表示。这也是为什么深度学习能在图像、语音、文本三个领域同时爆发——它把“特征工程”这个最依赖经验的环节变成了“网络结构设计”和“数据规模”的问题。3.3 算力与数据的双轮驱动神经网络不是新东西上世纪八九十年代就火过一阵后来因为算力和数据跟不上而沉寂。真正让它翻身的是两个条件同时成熟GPU 大规模并行计算让训练深层网络成为可能互联网和移动互联网产生了海量标注或弱标注数据。概率图模型对数据量的需求相对小但它的上限也低。神经网络对数据量需求大但数据越多它越能发挥表达能力的优势。在数据稀缺的年代PGM 是理性选择在数据爆炸的年代神经网络是更优解。这不是模型优劣的问题而是时代条件变了。4. 结构先验真的输了吗概率图模型在深度学习时代的隐身存在4.1 注意力机制里的图结构影子很多人以为概率图模型已经退出历史舞台其实它的思想一直活在深度学习里。Transformer 的注意力机制本质上是在学习一个动态的、全连接的图结构。每个 token 对其他 token 的注意力权重可以看作是一种软化的边。只不过这个图不是人为设定的而是从数据里学出来的。再比如结构化预测里的 CRF 层至今仍然被用在很多序列标注模型的输出端。BiLSTM-CRF、BERT-CRF 在实体识别任务里依然常见因为 CRF 能建模标签之间的转移约束这是纯线性分类头做不到的。PGM 的结构先验在这里以“输出层约束”的形式保留了下来。4.2 变分推断与图模型的思想延续深度生成模型里的变分自编码器VAE其核心推导就来自变分推断而变分推断正是概率图模型里近似推断的核心方法。你可以在 VAE 的 ELBO 推导里看到清晰的图模型影子隐变量、联合分布、条件独立假设、变分后验。只不过现在这些分布用神经网络参数化了而不是用条件概率表。扩散模型也一样。它的前向加噪和反向去噪过程可以看作是一个多层隐变量模型每一层都是一个高斯分布。这本质上就是一个深度概率图模型只是推断和生成都用神经网络来实现。4.3 神经符号结合两条路线的交汇最近几年神经符号结合成为一个热门方向。它的核心思路是用神经网络做感知和表示学习用符号系统或概率图模型做推理和约束。比如在视觉问答里先用 CNN 提取图像特征再用一个概率图模型或逻辑程序做关系推理。在知识图谱推理里用图神经网络学习实体和关系的嵌入再用规则或约束做后处理。这种结合不是简单的拼接而是试图把神经网络的数据拟合能力和概率图模型的结构泛化能力结合起来。在小样本、需要强解释性的场景里这种混合模型往往比纯黑箱网络表现更好。5. 如果今天重新选型什么场景该用PGM什么场景该用神经网络5.1 数据量小、解释性要求高PGM 仍是首选如果你手头只有几百条标注数据而且业务方要求模型给出可解释的推理路径那概率图模型仍然是更稳妥的选择。HMM、CRF、朴素贝叶斯在这些场景下训练快、参数少、不容易过拟合。你可以清楚地告诉业务方这个预测是因为观测特征和标签的共现概率高加上标签转移概率的约束。神经网络在小数据上很容易过拟合而且解释性差。你很难跟业务方解释为什么一个 12 层的 Transformer 输出了这个标签。当然你可以用注意力权重做可视化但那只是近似解释不是因果解释。5.2 数据量大、追求精度神经网络优势明显如果你有百万级甚至千万级的标注数据而且任务对精度要求极高那神经网络几乎是唯一选择。它的表达能力和端到端训练范式能让它在复杂任务上远超 PGM。这时候你不需要太担心过拟合因为数据量足够大你也不需要太担心解释性因为业务方更看重效果。5.3 混合方案用神经网络做特征用PGM做约束实际项目中最常见的方案是混合的。比如在序列标注里用预训练语言模型做编码器用 CRF 做输出层。在推荐系统里用深度网络学习用户和物品的嵌入用因子分解机或概率图模型做交互建模。在医疗诊断里用神经网络做影像特征提取用贝叶斯网络做诊断推理。这种混合方案的好处是既利用了神经网络的表示学习能力又保留了 PGM 的结构约束和解释性。缺点是系统复杂度高训练和部署都更麻烦。场景推荐方案理由小样本序列标注HMM / CRF参数少不易过拟合可解释大规模文本分类预训练模型 线性头表达能力强端到端训练医疗诊断推理贝叶斯网络 神经网络特征需要因果解释同时利用感知能力实时序列预测轻量级 RNN / 一阶 HMM延迟低计算量小高精度实体识别BERT CRF兼顾表示能力和标签约束6. 踩过的坑与实战心得6.1 不要迷信“结构正确”就能赢我早期做项目时总想把变量之间的依赖关系画得尽可能准确觉得只要图结构对了模型效果自然就好。后来发现结构正确只是必要条件不是充分条件。参数估计的误差、推断算法的近似、特征设计的质量都会影响最终效果。一个结构正确但参数估计不准的贝叶斯网络可能还不如一个结构简单但参数估计很准的朴素贝叶斯。6.2 神经网络的“黑箱”不是不可解释而是解释成本高很多人说神经网络是黑箱其实它只是解释成本高。你可以用 SHAP、LIME、注意力可视化、梯度归因等方法去近似解释。只不过这些方法给出的解释是事后的、近似的不像 PGM 那样是模型内在的。在实际项目中如果业务方只是想要一个“大致说得通”的解释这些方法够用了。如果业务方要求严格的因果解释那还是得用 PGM 或因果推断方法。6.3 混合模型的关键是接口设计混合模型最容易出问题的地方是神经网络和 PGM 之间的接口。比如你用 BERT 输出每个 token 的隐状态然后送入 CRF 层。这个接口的维度、归一化方式、梯度回传路径都需要仔细设计。我见过不少项目BERT 部分和 CRF 部分单独看都没问题拼在一起效果反而下降就是因为接口没设计好。6.4 算力预算决定模型选型这一点很现实。如果你只有一张消费级显卡想训练一个大规模的预训练模型是不现实的。这时候轻量级的 PGM 或小型神经网络更合适。如果你有集群资源那可以尝试更大的模型。模型选型不只是算法问题也是工程问题。7. 写在最后模型没有优劣只有适配概率图模型和神经网络本质上是在用两种不同的方式处理不确定性。PGM 用显式的图结构和条件独立假设来压缩不确定性神经网络用高维参数和端到端训练来拟合不确定性。前者像手工打造的机械表结构清晰、可解释、但上限有限后者像数控机床精度高、产能大、但内部过程不透明。在实际项目中我越来越倾向于“看菜下饭”数据少、解释性要求高就上 PGM数据多、精度要求高就上神经网络两者都有要求就做混合模型。没有哪个模型是万能的关键是理解它们的假设、边界和代价然后根据手头的资源做取舍。如果你正在做模型选型我的建议是先用最简单的 PGM 跑一个基线看看效果和解释性是否满足需求。如果不满足再逐步引入神经网络组件。不要一上来就上大模型那样你既不知道问题出在哪也不知道收益来自哪。一步一步来每一步都搞清楚为什么这才是做模型的正确姿势。
阅读完成 · 觉得有帮助?
咨询建站