返回报告库

AI / Technology

深度上下文化词表示

静态词向量与上下文词表示的区别

图 1|教学示意,不是论文原图。静态词向量把同一词形映射到同一个向量;上下文表示会随整句而变。

  1. 一个词,不止一个向量。 ELMo 给每次出现的词元生成依赖整句的表示,因此能区分同形词在不同语境里的含义。[来源:论文摘要、§1、§3]
  2. 有用信息不只在最后一层。 双向语言模型的较低层更偏句法,较高层更偏语境语义;下游任务学习混合所有层,比只拿顶层更稳。[来源:论文 §3.2、§5.1、§5.3,表 2、5、6]
  3. 它是一块可插拔的预训练模块。 在六个不同的 NLP 基准中,把 ELMo 接入原有强基线都带来提升;它改变的是输入表示,不要求重造整套任务模型。[来源:论文 §3.3、§4,表 1]

ELMo 从整句到下游模型的数据流

图 2|教学示意。双向语言模型参数在下游训练时固定;任务学习的是如何混合各层,以及如何使用混合后的表示。[来源:论文 §3.2–§3.3]

对句中每个词元,biLM 暴露三组信息:字符得到的词元层、第一层双向 LSTM、第二层双向 LSTM。ELMo 用一组经 softmax 归一化的任务专属权重对这些层做线性组合,再乘一个可学习的整体缩放系数。直白地说,同一套预训练表示仓库,问答、实体识别或情感分析都能拿不同配方。[来源:论文 §3.2,公式 1]

不同层提供不同语言信号

图 3|教学示意。图中的层级关系表达论文实验观察到的倾向,不表示每一层只包含一种信息。

词义消歧(WSD)上,biLM 第二层 F1 为 69.0,高于第一层的 67.4;词性标注(POS)则相反,第一层准确率 97.3,高于第二层的 96.8。这个交叉结果支持“较低层更偏句法、较高层更偏语义”的解释,但它是倾向而非严格分工。[来源:论文 §5.3,表 5–6]

研究附录

官方源标题: Deep contextualized word representations
作者: Matthew E. Peters、Mark Neumann、Mohit Iyyer、Matt Gardner、Christopher Clark、Kenton Lee、Luke Zettlemoyer
论文: arXiv:1802.05365,NAACL 2018;本文依据 arXiv v2(2018-03-22)
一句话: ELMo 不再给每个词发一张永久不变的“身份证”,而是先读完整句话,再让具体任务从语言模型的不同层里调出合适的信息。

核心结论

三个记忆点

  1. 一个词,不止一个向量。 ELMo 给每次出现的词元生成依赖整句的表示,因此能区分同形词在不同语境里的含义。[来源:论文摘要、§1、§3]
  2. 有用信息不只在最后一层。 双向语言模型的较低层更偏句法,较高层更偏语境语义;下游任务学习混合所有层,比只拿顶层更稳。[来源:论文 §3.2、§5.1、§5.3,表 2、5、6]
  3. 它是一块可插拔的预训练模块。 在六个不同的 NLP 基准中,把 ELMo 接入原有强基线都带来提升;它改变的是输入表示,不要求重造整套任务模型。[来源:论文 §3.3、§4,表 1]

问题

固定词向量看不见“这一次”的含义

GloVe、word2vec 一类传统方法通常为一个词类型保存一个固定向量。无论它在句子里扮演什么角色,模型拿到的起点都相同;多义性只能留给后续网络自行消化。论文用 play 举例:静态近邻混合了不同词性和词义,而双向语言模型的上下文表示能把体育含义与戏剧含义分开。[来源:论文 §2、§5.3,表 4]

既要语义,也要句法

好的词表示还要同时处理两个尺度:局部的词形、搭配与句法关系,以及更高层的语境含义。此前的上下文表示方法如 TagLM、CoVe 通常只取编码器顶层;这会丢掉分布在中间层的信号。ELMo 的关键问题不是“怎样再训练一个更大的任务模型”,而是“怎样把预训练语言模型内部不同层的知识交给每个任务自己选”。[来源:论文 §1–§2]

方法

先用大量无标注文本学会看前后文

作者在约 3000 万句的 1B Word Benchmark 上训练两层双向语言模型(biLM):正向模型预测下一个词,反向模型预测上一个词。输入先经过字符卷积,因此即使词不在固定词表中,也能从字符构成得到起始表示。最终配置每个方向的 LSTM 有 4096 个单元、投影为 512 维;训练 10 个 epoch 后,前后向平均困惑度为 39.7。[来源:论文 §2、§3.1、§3.4]

把每一层都开放给任务

对句中每个词元,biLM 暴露三组信息:字符得到的词元层、第一层双向 LSTM、第二层双向 LSTM。ELMo 用一组经 softmax 归一化的任务专属权重对这些层做线性组合,再乘一个可学习的整体缩放系数。直白地说,同一套预训练表示仓库,问答、实体识别或情感分析都能拿不同配方。[来源:论文 §3.2,公式 1]

接入现有模型,而非推倒重来

使用时先运行预训练 biLM,记录每个词的所有层表示;再把 ELMo 向量与原任务模型的输入拼接。SQuAD 和 SNLI 还在任务 RNN 输出处加入了另一组 ELMo 混合。论文的默认做法是冻结 biLM 权重,对 ELMo 加适量 dropout;多数任务会先用本领域训练文本对 biLM 做一轮语言模型微调,再固定它。[来源:论文 §3.3、附录 A.1]

证据与局限

六项任务都提升,但指标不能横着比

下表抄录论文测试集表 1 的核心结果。“基线”是作者重现或构建的强任务模型,“+ELMo”只是在其上加入 ELMo。不同任务使用不同指标,因此只能在每一行内比较,不能说 92.22 就一定比 70.4 更好。

任务指标基线+ELMo绝对提升
SQuAD 问答F181.185.8+4.7
SNLI 文本蕴含准确率88.088.7+0.7
SRL 语义角色标注F181.484.6+3.2
Coref 共指消解平均 F167.270.4+3.2
CoNLL-2003 NERF190.1592.22+2.06
SST-5 情感分类准确率51.454.7+3.3

[来源:论文 §4、表 1。NER 与 SST-5 为 5 个随机种子运行的均值;原表另报标准差。]

最醒目的单项是 SQuAD:测试 F1 从 81.1 升到 85.8,对应作者所报 24.9% 相对错误率下降。更能支持机制主张的是消融实验:在 SQuAD 开发集上,基线、只用顶层、平均所有层、学习所有层权重依次为 80.8、84.7、85.0、85.2;SNLI 与 SRL 也呈相同方向。[来源:论文 §4、§5.1,表 2]

分层信号与样本效率

词义消歧(WSD)上,biLM 第二层 F1 为 69.0,高于第一层的 67.4;词性标注(POS)则相反,第一层准确率 97.3,高于第二层的 96.8。这个交叉结果支持“较低层更偏句法、较高层更偏语义”的解释,但它是倾向而非严格分工。[来源:论文 §5.3,表 5–6]

样本效率实验也值得注意:SRL 的 ELMo 模型在第 10 个 epoch 就超过无 ELMo 基线的最佳水平,而基线到第 486 个 epoch 才达到自身峰值;使用 1% 训练数据的 ELMo 模型,F1 约等于使用 10% 数据的基线。[来源:论文 §5.4、图 1]

这篇论文没有证明什么

  • 六项任务都使用英文数据和当时的特定架构;论文没有验证多语言、生成任务、长文档,也没有证明在后来的 Transformer 模型中仍有同样增益。
  • 任务之间同时改变了数据、基线架构和 ELMo 插入位置,所以六项提升能证明方法有广泛适用性,却不能单独定位每一分收益来自字符输入、双向预训练、领域微调还是层混合。
  • biLM 规模不小,推理时还要为整句计算多层双向状态;论文给出模型尺寸取舍和困惑度,但没有提供完整的延迟、显存、能耗或部署成本比较。[来源:论文 §3.4;这是对报告范围的界定]
  • “建立新 SOTA”是论文提交时的历史结论,不应理解成今天仍领先。[来源:论文摘要、§4]

实际意义

真正留下来的设计原则

解读: ELMo 最重要的遗产不是某个 LSTM 配方,而是三条可复用的产品与建模原则:表示应随上下文变化;大规模无标注预训练可以迁移到小数据任务;预训练网络的不同深度包含互补信号,下游不一定只该取最后一层。后来更强的上下文预训练模型沿着相近方向发展,但这属于历史影响的解读,不是本文实验直接验证的结论。

何时值得借鉴

如果你在做领域文本分类、抽取或问答,最值得复用的不是照搬 ELMo,而是先做三个检查:同一词是否在不同语境中频繁变义;标注数据是否少而无标注文本很多;任务是否可能同时依赖词形、句法与语义。三项越符合,使用上下文预训练表示、允许任务访问多层信号的理由越强。

研究者核对清单

  • 主张定位: 上下文表示与层混合见 §3.1–§3.3;模型规模与预训练见 §3.4。
  • 结果定位: 六任务测试结果见表 1;层混合消融见表 2;插入位置见表 3;WSD/POS 探针见表 5–6;样本效率见 §5.4。
  • 复现追问: 领域微调是否使用了测试信息之外的训练文本?比较不同插入位置时是否保持其余超参数一致?报告均值的任务是否也检查方差?实际部署中 biLM 的吞吐和内存成本是多少?
  • 不确定项: 论文未报告统一硬件上的端到端成本,也未覆盖非英语与分布外迁移;这些都应在真实项目中重新测量,而不是从表 1 外推。

证据账本摘要: 核心机制由 §3 与公式 1 支撑;跨任务收益由表 1 支撑;“所有层优于顶层”由表 2 支撑;层间句法/语义倾向由表 5–6 支撑;主要不确定性来自实验语言、时代架构与成本报告范围。

关于这篇论文的三个关键问题

深度上下文化词表示 解决了什么问题?

GloVe、word2vec 一类传统方法通常为一个词类型保存一个固定向量。无论它在句子里扮演什么角色,模型拿到的起点都相同;多义性只能留给后续网络自行消化。论文用 play 举例:静态近邻混合了不同词性和词义,而双向语言模型的上下文表示能把体育含义与戏剧含义分开。[来源:论文 §2、§5.3,表 4]

深度上下文化词表示 的核心结论有哪些证据?

最醒目的单项是 SQuAD:测试 F1 从 81.1 升到 85.8,对应作者所报 24.9% 相对错误率下降。更能支持机制主张的是消融实验:在 SQuAD 开发集上,基线、只用顶层、平均所有层、学习所有层权重依次为 80.8、84.7、85.0、85.2;SNLI 与 SRL 也呈相同方向。[来源:论文 §4、§5.1,表 2]

阅读 深度上下文化词表示 时最需要注意什么局限?

下表抄录论文测试集表 1 的核心结果。“基线”是作者重现或构建的强任务模型,“+ELMo”只是在其上加入 ELMo。不同任务使用不同指标,因此只能在每一行内比较,不能说 92.22 就一定比 70.4 更好。

今天还可免费读 2 篇新报告订阅 Pro 后无限阅读,并获得每月 10 篇新论文生成额度。升级 Pro