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 等开源底座做金融继续预训练的模型,强调可定制与低成本微调。
四、案例与场景:一条金融舆情推理链路
假设我们要对某上市公司公告与新闻做实时情绪打分,典型链路如下:
- 文本清洗与分句,保留时间戳、股票代码等元数据;
- 使用金融分词器编码,输入 FinBERT 类模型;
- 模型输出情感概率分布(正面/中性/负面);
- 结合实体识别结果,将情绪归因到具体公司或行业;
- 结果写入在线特征库,供风控或投研系统消费。
在这一链路中,Transformer 的注意力机制负责捕捉“公告措辞—财务指标—市场反应”之间的隐含关联,而预训练模型则提供了对金融语言的先验理解。若直接使用通用模型,常出现“利好”“利空”方向判断错误,尤其在反讽、条件句和否定句中。
五、误区与复盘:别把“预训练”当成万能钥匙
复盘建议:在选型时,先明确任务是判别式还是生成式,再评估延迟预算与标注数据量。对于在线推理场景,可优先考虑 FinBERT 等中等规模模型,并预留蒸馏与量化空间;对于离线研报生成,再考虑更大规模的金融大模型。理解注意力机制与架构差异,才能在蒸馏时知道“哪些层、哪些头”更值得保留,从而在精度与效率之间取得平衡。