论文笔记-Vanilla Transformer:Character-Level Language Modeling with Deeper Self-Attention


前段时间为了解决长文本分类的问题,即长距离依赖问题,依次就看了些相关论文。比如Transformer-XL、XLNet等,这篇Vanilla Transformer在Transformer-XL中被用来做对比,所以也看了下这篇论文,记录一下。

1. 介绍

论文名称为:Character-Level Language Modeling with Deeper Self-Attention,主要解决的是字符级语言模型。在使用Transformer之前,自然语言文本的Character-level modeling通常具有如下一些 挑战/困难

  • (1)模型学习单词需要“from scratch”从头开始
  • (2)自然文本表现出的长甚至超长距离依赖
  • (3)基于字符的序列长度比词级别的序列显著增加,需要更多的计算step

但Transformer由于其self-attention的核心,作者发现:

  • (1)transformer适合于长序列的语言建模。作者推测,transformer在这里的成功是由于它能够“快速”地在任意距离上传播信息(We speculate that the transformer’s success here is due to its ability to “quickly” propagate information over arbitrary distances)
  • (2)对basic transformer进行一些修改在这一领域(字符级语言模型)是有益的:增加3个辅助损失auxiliary losses
    • 【Multiple Positions】 at intermediate sequence positions
    • 【Intermedia Layer Losses】 from intermediate hidden representations
    • 【Multiple Targets】 at target positions multiple steps in the future

这些loss加速了收敛,并且使得训练更深的网络成为可能。

2. Character Transformer Model

语言模型:
P r ( t 0 : L ) = P ( t 0 ) ∏ i = 1 L P r ( t i ∣ t 0 : i − 1 ) Pr(t_{0:L})=P(t_0)\prod\limits_{i=1}^L Pr(t_i|t_{0:i-1}) Pr(t0:L)=P(t0)i=1LPr(tit0:i1)

像原先seq2seq架构的Transformer一样,在训练语言模型时,为了确保模型的预测仅条件依赖于过去的字符,所以也为attention layers添加了look-ahead mask,所以每个位置只可以关注到左侧。即使用的是原先seq2seq架构的Transformer的 decoder 部分结构

模型架构上基本就是堆叠的64层transformer layers,每个layer有2个head。一个transformer layer就是指包含multihead self-attention sub-layer + 2层全连接sub-layers的 feed-forward network。每层Transformer layer的hidden_size=512, feed-forward network的内层FFC的dim是2048。模型处理的序列长度为512。

原始的 transformer中使用了正弦信号作为position encoding,但是此论文中是有64层的深度网络,这种时间(序列)信号在传播时非常容易丢失,所以作者在模型的每层transformer layer 前都添加了a learned per-layer positional embedding,即每层都添加了可学习的位置embedding,每一层都不一样,假设有N层layers,每层有L长度的context positions,位置编码深度(embedding dim)为512,则光位置embedding就会有一共 L   x   N   x   512 L\,\text{x}\,N\,\text{x}\,512 LxNx512个额外的(位置)参数。【每层都会将上一层的输出与pos embedding加在一起作为下一层的输入】【每层的pos embedding不是共享的】

所以说架构上没有提出什么特别新的,但是由于当模型深度很深,作者在最开始的实验中,只是有10层的时候,训练就已经非常有挑战性了,很慢的收敛以及非常低的准确率accuracy。于是作者提出增加3种辅助loss,分别是:

  • 【Multiple Positions】 intermediate positions
  • 【Intermedia Layer Losses】 intermediate layers
  • 【Multiple Targets】 and nonadjacent targets

论文指出增加这些辅助loss后,显著的加速了收敛。作者猜测这些loss不仅能加速收敛,还作为额外的正则化regularizer

3. 3种辅助loss

3.1 Multiple Positions

Multiple Positions

预测时不是指预测最后一个位置,而是序列的每个位置都进行预测,例如上图中t1,t2,t3,t4 4个位置都会产生预测然后都会计算loss。训练时,t1~t4产生的loss都不会decay,都是同等重要的。【这一类loss贯穿整个train的全部阶段,不发生衰减】

3.2 Intermedia Layer Losses

Intermedia Layer Losses

不仅最后一层会计算loss,作何对序列中所有中间位置的也添加了预测并也参与计算loss(见图3)。 随着训练的进展,低层被加权,对损失的贡献越来越小。 如果总共有n层,那么第 l l l个中间层在完成 l 2 n \frac{l}{2n} 2nl 的训练后停止贡献任何损失。 在训练完成一半后,这个schedule会drop所有中间损失。【中间层的loss并不贯穿整个train始终,而是随着训练进行,逐渐衰减,衰减的方式是,一共有n层网络,当训练进行到 l 2 n \frac{l}{2n} 2nl 时停止计算第k层loss。也就是说当训练进行到一半的时候,所有的 中间层 都不再贡献loss】

3.3 Multiple Targets

Multiple Targets

在序列的每个位置,模型不仅对下一个token做预测,还会对下下一个token做预测。【但对于下下步的预测结果产生的loss是要发生衰减的,论文中该loss乘以0.5后再加入到整体的loss中】

4. 实验

4.1 训练和数据

  • prediction layers:logistic regression layers over the full 256 outputs
  • 由于参数(235 million)比语料大,所以为了regularize the model,添加了dropout=0.55 在attention和ReLU layers。
  • 使用momentum optimizer with 0.99 momentum
  • learning rate 固定:0.003
  • 训练:4 million steps

4.2 结果(消融实验)

Ablation Experiments

从实验结果开看:【Multiple positions和Intermedia layer losses的增益最突出。】

4.3 Qualitative Analysis 定性分析

优点:
可以学到长距离依赖,can successfully copy over this long distance.

缺点:
计算量大,每次预测一个字符,前面都要重新计算,不能像RNN一样能记住之前的隐藏状态信息。

参考

[1] Character-Level Language Modeling with Deeper Self-Attention
[2] 【读论文】Character-Level Language Modeling with Deeper Self-Attention(Vanilla Transformer)

  • 2
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Transformer-XL是一种改进的Transformer模型,用于处理超长文本。它的名称中的"XL"代表"extra long",意味着它专门设计用于处理长文本。\[1\]传统的Transformer模型在处理超长文本时效率较低,因此Transformer-XL通过引入相对位置编码来解决这个问题。相对位置编码是指在词向量中添加关于词的相对位置信息,而不仅仅是绝对位置信息。\[2\]这样一来,Transformer-XL可以在训练时将文本分成多个segment进行训练,并在预测时通过移动segment的步长来处理超长文本。这种方法大大提高了处理超长文本的效率。\[1\]此外,Transformer-XL还通过保存前一个segment的hidden state来避免在推理阶段重新计算,进一步提高了推理速度。根据论文中的比较,Transformer-XL在enwiki8数据集上的推理速度是Vanilla Transformer的1800多倍。\[3\] #### 引用[.reference_title] - *1* *2* [Transformer-XL详解](https://blog.csdn.net/qq_51302564/article/details/117882327)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Transformer-XL全解读](https://blog.csdn.net/u012526436/article/details/109156096)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值