3. Transformer与预训练语言模型

在金融NLP任务中,模型能否准确捕捉“利率上调对银行股是利空还是利好”“某段财报措辞暗示了怎样的现金流风险”,取决于它是否具备强大的上下文建模能力。Transformer 正是这一能力的基石,而 BERT、 以及 FinBERT、BloombergGPT 等金融领域预训练模型,则把这种能力迁移到了专业语料上。本节将围绕注意力机制、两大主流架构和金融预训练模型概览展开,为后续的模型蒸馏与在线推理打下结构认知基础。

一、核心原理:自注意力如何“看懂”金融文本

Transformer 的核心是自注意力机制(Self-Attention)。它让序列中每个词都能直接与其它词建立关联,并动态分配权重。对金融文本而言,这种全局关联尤为重要:在“该公司因原材料涨价导致毛利率承压,但汇兑收益对冲了部分影响”这句话中,“承压”与“对冲”需要被同时关注,才能判断整体情绪倾向。

自注意力的计算可概括为查询(Q)、键(K)、值(V)三组向量:

Attention(Q, K, V) = softmax(QK^T / sqrt(d_k)) V

# 多头注意力:并行多组Q/K/V,拼接后再线性变换
MultiHead(Q, K, V) = Concat(head_1, ..., head_h) W^O
head_i = Attention(Q W_i^Q, K W_i^K, V W_i^V)

其中 sqrt(d_k) 用于缩放,避免点积过大导致 softmax 梯度消失。多头机制让模型在不同子空间分别关注语法、实体、数值、时间等不同维度的信息。此外,由于自注意力本身不包含顺序信息,需要加入位置编码,金融文本中的时间先后、财报同比环比顺序才能被正确表达。

理解要点:注意力权重不是固定规则,而是随输入动态变化的“相关性打分”。同一句话在不同上下文中,关键词的权重分布可能完全不同,这正是预训练模型优于传统词袋模型的关键。

二、两大主流架构:BERT 与 的分工

基于 Transformer,衍生出两条主流技术路线,它们在金融场景中的适用任务差异明显。

对比维度 BERT(Encoder-only) (Decoder-only)
注意力方向 双向,可见完整上下文 单向因果掩码,只能看左侧
预训练目标 掩码语言模型 MLM + 下一句预测 自回归下一词预测
典型金融任务 情感分类、实体识别、关系抽取、事件抽取 研报生成、问答、摘要、对话
推理特点 一次前向编码,适合批量判别 逐 生成,延迟随长度增长

简言之,BERT 擅长“理解”, 擅长“生成”。在金融风控、舆情监控等判别式任务中,BERT 类模型仍是主力;而在智能投研助手、自动摘要等生成式场景中, 类模型更具优势。实际工程中,也常见“BERT 做召回与分类、 做生成与解释”的组合架构。

三、金融领域预训练模型概览

通用语料预训练模型直接用于金融文本时,常因术语、缩写、财报格式差异而效果下降。金融预训练模型通过在专业语料上继续预训练或领域适配,显著提升下游表现。

  • FinBERT:在金融新闻、财报、分析师报告等语料上继续预训练 BERT,常用于金融情感分类、实体识别。其优势是轻量、易部署,适合作为蒸馏的教师或学生基线。
  • BloombergGPT:约 500 亿参数的大规模金融语言模型,训练语料混合金融与通用文本,覆盖金融问答、情感分析、命名实体识别等任务,代表了金融大模型的重投入路线。
  • 其他方向:如 FinGPT 系列、中文金融 BERT(如 FinBERT-zh)、以及基于 LLaMA 等开源底座做金融继续预训练的模型,强调可定制与低成本微调。
工程启示:金融预训练模型并非越大越好。在线推理场景中,延迟、显存和成本约束往往比绝对精度更关键,这正是后续模型蒸馏要解决的核心矛盾。

四、案例与场景:一条金融舆情推理链路

假设我们要对某上市公司公告与新闻做实时情绪打分,典型链路如下:

  1. 文本清洗与分句,保留时间戳、股票代码等元数据;
  2. 使用金融分词器编码,输入 FinBERT 类模型;
  3. 模型输出情感概率分布(正面/中性/负面);
  4. 结合实体识别结果,将情绪归因到具体公司或行业;
  5. 结果写入在线特征库,供风控或投研系统消费。

在这一链路中,Transformer 的注意力机制负责捕捉“公告措辞—财务指标—市场反应”之间的隐含关联,而预训练模型则提供了对金融语言的先验理解。若直接使用通用模型,常出现“利好”“利空”方向判断错误,尤其在反讽、条件句和否定句中。

金融文本:注意力关联与预训练推理链路 输入金融文本 “原材料涨价致毛利承压” “汇兑收益对冲部分影响” 时间戳 / 股票代码 分词与位置编码 Embedding + Position Encoding 金融领域词表 多头自注意力 Q / K / V 动态权重 “承压” ↔ “对冲” 全局上下文关联 预训练 模型 FinBERT BloombergGPT 下游金融任务输出 情感分类 正面/中性/负面 实体识别 公司/行业/指标 关系抽取 事件因果链 生成摘要 研报/问答 编码表示

五、误区与复盘:别把“预训练”当成万能钥匙

常见误区一:认为金融预训练模型一定优于通用模型。实际上,若下游任务数据与预训练语料分布差异大,或标注样本极少,直接微调可能不如“通用模型 + 少量领域适配”。误区二:忽视分词器差异。金融文本中数字、单位、股票代码密集,分词不当会破坏语义单元。误区三:只关注精度,忽略推理成本。大模型在线推理的延迟和显存开销,往往成为系统瓶颈。

复盘建议:在选型时,先明确任务是判别式还是生成式,再评估延迟预算与标注数据量。对于在线推理场景,可优先考虑 FinBERT 等中等规模模型,并预留蒸馏与量化空间;对于离线研报生成,再考虑更大规模的金融大模型。理解注意力机制与架构差异,才能在蒸馏时知道“哪些层、哪些头”更值得保留,从而在精度与效率之间取得平衡。