016|ELMo:一个词的表示,应由它在当前句子中的用法决定
论文:Matthew E. Peters 等,Deep Contextualized Word Representations,NAACL 2018。原文 · PDF。重点是双向语言模型的分层上下文化特征与下游加权组合,不把它写成 BERT 式掩码预训练。
先接住前作的问题
word2vec、GloVe与fastText都主要给词类型固定表示,子词共享并不告诉模型这个词在当前句子中的用法。本篇改变表示对象:取预训练语言模型在具体位置的激活。循环骨干组合LSTM,迁移方式则与整体微调路线平行。
五个前置概念
五个前置概念是双向语言建模、上下文化、层混合、特征迁移和领域适配。它们分别回答表示来自哪里、何时变化、怎样选择、如何接入任务以及额外数据怎样影响结果。
一、问题设定:同一拼写在不同句子里怎样获得不同表示
英文bank在金融与河岸语境中拼写相同,静态查表通常返回同一词向量;子词也无法仅凭拼写确定当前用法。本篇让表示依赖整句上下文,并开放多层特征给下游任务选择,而非只导出每个词的一组固定参数。
二、区分双向语言预测、位置激活与任务层混合
对位置 ,预训练模型提供从输入表示到多层隐藏状态的集合 。下游任务使用:
通常经 softmax 归一化,表示层权重; 调整整体尺度。不同任务可以强调不同层,避免假定最深层总是最佳特征。这里学习的是任务级层混合,并非每个词都由一个自由路由器选择完全不同层权重。
语言模型使用字符层输入表示与双向循环层,使形态信息和上下文共同参与。预训练目标仍是两个方向的语言似然,不直接使用每个下游任务标签。论文还涉及领域相关语言模型适配,所以“完全冻结一个通用模型、所有任务直接使用”并不能概括所有实验。
下游通常将 ELMo 拼接到已有表示的某些位置,再训练任务网络及层混合权重。加入位置本身是实验变量:靠近输入或较深层可能作用不同。预训练参数是否领域适配、是否冻结,应按具体实验区分。
双向特征与双向预测要分清
ELMo先分别优化正向 和反向 ,两个LSTM方向不在预测同一token时互相偷看答案;下游才拼接各方向表示,并以 混合层。这里 为第 个词, 为它在第 层的双向特征, 为各层可训练混合分数, 为可训练整体尺度。层权重通常是任务级参数,不是每个词都单独产生一套路由分数。上下文化主要来自 随句子变化,层混合让任务选择使用哪一级特征。
教学算例。 三层候选表示在某一维为 ,任务权重为 ,缩放 ,则该维输出为 。另一任务即便读取同一个冻结语言模型,只把层权重改为 ,输出就变为3.2。预训练参数没变不代表下游输入特征的使用方式没变。
构造英文词 bank 在“在银行存钱”和“沿河岸行走”对应英文语境中的两次出现,即使目标词拼写相同,左右词不同,循环状态也不同。ELMo 可以产生不同位置向量;静态查表则给出相同词项参数,除非后续另有上下文网络。中文“银行”本身不具有英文 bank 的河岸义,因此教学例子应保留英文词,避免把翻译歧义错当作中文一词多义。
防止双向特征里混入预测标签
对“甲 乙 丙”,正向语言模型在预测“乙”时只用“甲”,反向模型用右侧“丙”。下游表示才把两个方向的隐状态组合。若训练正向预测时直接给它已包含“乙”的双向拼接表示,就改变了原来的语言建模条件;“下游用双向”不能成为训练时泄漏当前词的理由。
教法联系:Christopher Olah的Understanding LSTM Networks。算例为本文自构。
三、将预训练特征接入下游,并记录领域适配
预训练:
用无标签文本训练前向与后向语言模型
保留字符输入层和各层上下文状态
下游训练:
对每个句子计算各位置的多层表示
用任务可学习权重混合各层,并学习尺度 gamma
将混合特征加入原任务网络的指定位置
用下游监督损失训练任务参数与混合参数
评价:使用相同任务与数据划分比较加入前后表现
数学目标分成预训练语言建模与下游任务损失;机制是上下文化分层特征迁移;指标依任务而异。不能把六个不同任务的 F1、准确率和相关量简单平均成一个没有定义的“理解率”。
四、按任务模型、层选择和重复协议读取收益
实验单位是原任务系统与加入特征后的系统;层分析再回答特征从哪里提供帮助。
| 项目 | 原文范围 |
|---|---|
| 任务 | 问答、蕴含、语义角色标注、共指、实体识别、情感分类 |
| 对照 | 任务基线与加入 ELMo 的对应模型,另比较既有系统 |
| 预训练来源 | 双向语言模型;部分任务使用领域适配版本 |
| 指标 | SQuAD/SRL/NER 等 F1、SNLI/SST 准确率、共指平均 F1 |
| 消融 | 层混合、特征加入位置及预训练层信息分析 |
| 重复 | 表1 对 NER、SST-5 给出五次随机运行均值与标准差;不能扩展成所有列均同协议 |
证据一,第 3 节方法。层加权式说明“深层表示”如何成为任务接口。作者没有要求下游只读取最后一层,这正是与更早单层特征方案的重要区别。
证据二,表1。语义角色标注的相应基线 F1 从 81.4 到 84.6,共指从 67.2 到 70.4。数值属于具体任务模型的加入前后对照,不是 ELMo 单独预测的成绩。

证据三,第 5.1 节及后续层分析。比较使用全部层与只用末层,检验层组合必要性;分析揭示不同层在句法与语义信息上的差异。探针发现可解码信息,不等于证明下游真正以同样方式使用这些信息。
还应注意领域适配带来的额外数据访问。如果语言模型在任务相关文本上再训练,收益可能同时来自领域分布接近与特征形式。阅读附录设置能避免把这部分归因遗漏。
层混合的教学类比是使用不同抽象层次的特征。实体边界可能更依赖局部形态,长程角色关系可能需要更深上下文;但这只是直觉,不能预先把每层钉死为某一功能。论文通过任务实验与分析来检验,而不是仅靠命名。
五、上下文化仍需检验关系使用与运行成本
更准确地说,ELMo 并没有为词典里每种词义分配一个固定编号。表示是连续函数,语境变化会连续影响它。含糊句子仍可能无法消歧,错误或稀有用法也可能导致不稳定表示。
一个模型看见上下文,不代表它忠实理解否定、数量或实体关系。它可能利用数据中的关联捷径。要验证语义,应构造保持词汇但交换关系的对照,而不是仅查看近邻是否按主题聚类。
上下文化还增加每条输入的计算;静态向量可以直接查表,ELMo 需要运行循环模型。多任务共享预训练参数节省知识学习,但执行成本仍在。任务性能与延迟、缓存和批量策略应分别比较。
局限包括循环顺序成本、领域依赖、下游结构复杂以及预训练目标与语义任务间的距离。
六、把本篇机制再推进一步
1. 冻结语言模型以后,两个任务得到的最终ELMo特征一定相同吗?
参考答案:不一定。底层各层激活可以相同,但任务级层权重和整体缩放会改变最终组合;正文的5.6与3.2算例展示了这一点。应区分预训练参数是否更新、层混合是否学习和输入语境是否变化,不能把三者统称为“冻结表示”。
七、对照特征迁移、整体微调与深层双向交互
任务层混合依赖已经形成的双向特征。BERT改用掩码恢复,并通常更新骨干做下游微调;比较这两种迁移方式时,应把预训练条件、任务参数和训练预算一起列出。
自测与参考答案
1. ELMo 的双向与 BERT 的双向为何不同?
ELMo 组合分别按两个方向训练的循环语言模型状态;BERT 的掩码编码器让位置在同一网络中交互左右信息。两者都提供双向上下文,但训练目标和信息融合路径不同。
2. 为什么不直接取最深层?
不同层可能保留不同类型信息,最适合语言预测的末层未必最适合所有任务。任务学习混合权重能够利用多个层次;是否获益要通过消融检验。
3. 表1 提升是否意味着只加入向量就无需标注?
不是。下游模型仍在任务标注上训练,ELMo 提供额外预训练特征。应把无标签预训练、领域适配和任务监督的数据来源分别说明。