完整题目
请说明BERT结合CRF模型在命名实体识别等信息抽取任务中的工作原理,包括两者各自的作用、联合训练方式以及相比纯BERT的优势。
本文目录
BERT 与 CRF 的分工
BERT 为每个输入 token 产生上下文相关 hidden state h_i。线性层把 h_i 映射为每个标签的 emission logits/scores,不是彼此独立且已归一化的 P(y_i|x)。
线性链 CRF 再引入标签转移分数 A_{y_{i-1},y_i}。一条标签序列的总分为 emission 分数之和加 transition 分数之和:
score(x,y)=sum_i emission_i(y_i)+sum_i A[y_{i-1},y_i]
训练最大化正确序列的条件对数似然,分母用 forward algorithm 对所有标签序列求和;解码用 Viterbi 找总分最高的标签路径。梯度同时更新 BERT、线性头和 CRF 参数。
优势与边界
相比逐 token softmax,CRF 能学习相邻标签依赖,例如实体内部标签与边界模式。但普通 CRF 的转移矩阵只是学习偏好,不保证 BIO 规则绝对合法;若需要硬合法,必须显式 mask 非法转移或使用 constrained CRF。
BIO 中 I-PER → B-LOC 可以合法地结束人物实体并开启地点实体。典型非法例是 O → I-PER 或 B-ORG → I-PER。CRF 的收益取决于数据量、标签体系和 encoder 强度,也会增加训练/解码成本;应与 token classifier 在 span-F1、非法率和延迟上公平比较。
图解
继续追问 · 3 个问题
- CRF层的计算复杂度是多少,如何优化长序列的解码效率
- 如果换成BiLSTM+CRF,与BERT+CRF相比核心差距在哪里
- 实际项目中CRF权重如何初始化,是否遇到过标注不平衡问题
换一种问法,检查是否真正理解
场景切入
假设一个 BIO 标注模型输出了 O→I-PER 这样的非法转移。BERT+线性头+CRF 会怎样建模 emission 与 transition,你又会怎样保证解码结果满足硬约束?
层层追问
BERT 输出怎样变成每个标签的 emission score?……CRF 的序列总分如何组成?……训练和 Viterbi 解码分别做什么?……普通 CRF 是否保证 BIO 合法?……何时需要显式 transition mask?
直球技术
说明 BERT+CRF 在 NER 中的分工、联合训练和解码,并用 O→I-PER 或 B-ORG→I-PER 解释学习转移偏好与硬约束的区别。
练习口述回答 · 约3分钟
- 说明 BERT 和线性头的 emission 分数
- 解释 CRF 的序列总分与训练
- 用 Viterbi 做全局解码
- 区分学习偏好与硬 BIO 约束
BERT-CRF 做命名实体识别时,可以把职责分成三层。第一层是 BERT,它为每个 token 生成结合左右上下文的 hidden state。第二层是线性分类头,把每个 hidden state 映射成所有标签的 emission logits,也就是这个位置对 B-PER、I-PER、O 等标签的分数。这里不能直接叫独立概率,因为还没有经过逐位置 softmax,而且后面的 CRF 会做全局归一化。
第三层是线性链 CRF。它除了 emission 分数,还学习相邻标签之间的 transition score。一条候选标签序列的总分,等于每个位置选择标签的 emission 分数,加上相邻标签转移分数。训练时最大化正确序列的条件对数似然,分母需要用 forward algorithm 汇总所有可能路径;解码时用 Viterbi 找总分最高的完整标签序列。BERT、线性头和 CRF 可以联合反向传播。
相比逐 token 独立分类,CRF 的优势是能利用局部标签依赖。例如 B-ORG 后面更可能接 I-ORG,而不是随意跳到另一个实体内部标签。但边界要说准确:普通 CRF 只是从数据中学习转移偏好,并不保证所有输出严格符合 BIO 规则。若业务要求绝不产生非法路径,需要把非法转移显式设为不可选,使用 constrained CRF 或后处理。
BIO 的例子也很容易说错。I-PER 后接 B-LOC 可以合法地结束一个人物实体并开始地点实体;典型非法情况是 O 直接接 I-PER,或者 后接 ,因为 I 标签类型与当前实体不匹配。