Home / 大语言模型 / ELMo:一个词的表示,应由它在当前句子中的用法决定

016|ELMo:一个词的表示,应由它在当前句子中的用法决定

目录 · 上一篇 · 下一篇

论文:Matthew E. Peters 等,Deep Contextualized Word Representations,NAACL 2018。原文 · PDF。重点是双向语言模型的分层上下文化特征与下游加权组合,不把它写成 BERT 式掩码预训练。

先接住前作的问题

word2vec、GloVe与fastText都主要给词类型固定表示,子词共享并不告诉模型这个词在当前句子中的用法。本篇改变表示对象:取预训练语言模型在具体位置的激活。循环骨干组合LSTM,迁移方式则与整体微调路线平行。

五个前置概念

五个前置概念是双向语言建模、上下文化、层混合、特征迁移和领域适配。它们分别回答表示来自哪里、何时变化、怎样选择、如何接入任务以及额外数据怎样影响结果。

一、问题设定:同一拼写在不同句子里怎样获得不同表示

英文bank在金融与河岸语境中拼写相同,静态查表通常返回同一词向量;子词也无法仅凭拼写确定当前用法。本篇让表示依赖整句上下文,并开放多层特征给下游任务选择,而非只导出每个词的一组固定参数。

二、区分双向语言预测、位置激活与任务层混合

对位置 kk,预训练模型提供从输入表示到多层隐藏状态的集合 Rk={hk,j}j=0LR_k=\{h_{k,j}\}_{j=0}^{L}。下游任务使用:

ELMo⁡ktask=γtask∑j=0Lsjtaskhk,j.\operatorname{ELMo}_k^{task} =\gamma^{task}\sum_{j=0}^{L}s_j^{task}h_{k,j}.

sjs_j 通常经 softmax 归一化,表示层权重;γ\gamma 调整整体尺度。不同任务可以强调不同层,避免假定最深层总是最佳特征。这里学习的是任务级层混合,并非每个词都由一个自由路由器选择完全不同层权重。

语言模型使用字符层输入表示与双向循环层,使形态信息和上下文共同参与。预训练目标仍是两个方向的语言似然,不直接使用每个下游任务标签。论文还涉及领域相关语言模型适配,所以“完全冻结一个通用模型、所有任务直接使用”并不能概括所有实验。

下游通常将 ELMo 拼接到已有表示的某些位置,再训练任务网络及层混合权重。加入位置本身是实验变量:靠近输入或较深层可能作用不同。预训练参数是否领域适配、是否冻结,应按具体实验区分。

双向特征与双向预测要分清

ELMo先分别优化正向 log⁡p(tk∣t<k)\log p(t_k\mid t_{<k}) 和反向 log⁡p(tk∣t>k)\log p(t_k\mid t_{>k}),两个LSTM方向不在预测同一token时互相偷看答案;下游才拼接各方向表示,并以 γ∑jsoftmax⁡(a)jhk,j\gamma\sum_j\operatorname{softmax}(a)_j h_{k,j} 混合层。这里 tkt_k 为第 kk 个词,hk,jh_{k,j} 为它在第 jj 层的双向特征,aa 为各层可训练混合分数,γ\gamma 为可训练整体尺度。层权重通常是任务级参数,不是每个词都单独产生一套路由分数。上下文化主要来自 hk,jh_{k,j} 随句子变化,层混合让任务选择使用哪一级特征。

教学算例。 三层候选表示在某一维为 (1,2,4)(1,2,4),任务权重为 (0.2,0.3,0.5)(0.2,0.3,0.5),缩放 γ=2\gamma=2,则该维输出为 2(0.2+0.6+2)=5.62(0.2+0.6+2)=5.6。另一任务即便读取同一个冻结语言模型,只把层权重改为 (0.6,0.3,0.1)(0.6,0.3,0.1),输出就变为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 单独预测的成绩。

ELMo加入前后六类自然语言任务的结果及绝对和相对增益
实验结果表摘引:Matthew E. Peters 等,2018,表1,PDF第5页;核对原文。原版权保留。

证据三,第 5.1 节及后续层分析。比较使用全部层与只用末层,检验层组合必要性;分析揭示不同层在句法与语义信息上的差异。探针发现可解码信息,不等于证明下游真正以同样方式使用这些信息。

还应注意领域适配带来的额外数据访问。如果语言模型在任务相关文本上再训练,收益可能同时来自领域分布接近与特征形式。阅读附录设置能避免把这部分归因遗漏。

层混合的教学类比是使用不同抽象层次的特征。实体边界可能更依赖局部形态,长程角色关系可能需要更深上下文;但这只是直觉,不能预先把每层钉死为某一功能。论文通过任务实验与分析来检验,而不是仅靠命名。

五、上下文化仍需检验关系使用与运行成本

更准确地说,ELMo 并没有为词典里每种词义分配一个固定编号。表示是连续函数,语境变化会连续影响它。含糊句子仍可能无法消歧,错误或稀有用法也可能导致不稳定表示。

一个模型看见上下文,不代表它忠实理解否定、数量或实体关系。它可能利用数据中的关联捷径。要验证语义,应构造保持词汇但交换关系的对照,而不是仅查看近邻是否按主题聚类。

上下文化还增加每条输入的计算;静态向量可以直接查表,ELMo 需要运行循环模型。多任务共享预训练参数节省知识学习,但执行成本仍在。任务性能与延迟、缓存和批量策略应分别比较。

局限包括循环顺序成本、领域依赖、下游结构复杂以及预训练目标与语义任务间的距离。

六、把本篇机制再推进一步

1. 冻结语言模型以后,两个任务得到的最终ELMo特征一定相同吗?

参考答案:不一定。底层各层激活可以相同,但任务级层权重和整体缩放会改变最终组合;正文的5.6与3.2算例展示了这一点。应区分预训练参数是否更新、层混合是否学习和输入语境是否变化,不能把三者统称为“冻结表示”。

七、对照特征迁移、整体微调与深层双向交互

任务层混合依赖已经形成的双向特征。BERT改用掩码恢复,并通常更新骨干做下游微调;比较这两种迁移方式时,应把预训练条件、任务参数和训练预算一起列出。

自测与参考答案

1. ELMo 的双向与 BERT 的双向为何不同?

ELMo 组合分别按两个方向训练的循环语言模型状态;BERT 的掩码编码器让位置在同一网络中交互左右信息。两者都提供双向上下文,但训练目标和信息融合路径不同。

2. 为什么不直接取最深层?

不同层可能保留不同类型信息,最适合语言预测的末层未必最适合所有任务。任务学习混合权重能够利用多个层次;是否获益要通过消融检验。

3. 表1 提升是否意味着只加入向量就无需标注?

不是。下游模型仍在任务标注上训练,ELMo 提供额外预训练特征。应把无标签预训练、领域适配和任务监督的数据来源分别说明。