[nlp] 小傻学transfomer-XL

what is Transfomer-XL?

在传统Transfomer中的segment间引入RNN机制:将上一个segment计算好的hidden state进行存储,在计算下一个segment时将上一个segment的这些信息融入到当前segment的计算当中。即将上一个segment中的hidden state沿着句子长度方向与当前segment 的hidden state进行concat,然后在concat之后的长度上进行Transformer操作。

Transformer-XL: Attentive Language Models Beyond a Fixed-Length Context

why Transfomer-XL?

  1. 解决长文本的建模,捕获超长距离依赖
    LSTM 200 ,Transformer 512(单字 or wordpiece)
  2. 贡献:
    循环(RNN)的transformer建模机制(encoder-decoder,etc.)
    一种相对位置编码方式

训练阶段:传统Transfomer语言模型中,训练阶段无法支持很长的文本输入,一般需将文本进行截断成segments后进行训练。导致在训练时只能在segment内部进行,忽略调segments之间的关系。这种策略能建模的长程依赖为所设置的segment长度,对于Transfomer self-attention的优势未充分利用。
预测阶段:传统Transfomer有一个窗口的概念(此窗口大小和训练阶段的segment长度相同)。在进行每一步预测时,只会用到最后一步来进行预测,预测完后向后移动一个位置,然后重复此过程。这种方法可避免训练阶段的context fragmentation问题,及充分利用长context中的信息,但重复计算较多,效率低。

  1. 能够建模更长上下文
    a Recurrence机制
    b 相对位置表示
  2. 在语言模型上获得更好的性能,加快速度
  3. 后续工作的启发

Transformer & RNN的优缺点
Transformer优点:并行,更好的表达长距离依赖
缺点:无位置表示,只有主观上的position encoding
RNN:优点:天然时序,无需位置表示
缺点:无法表示长距离依赖,无法并行
Transformer-XL = Transformer + RNN:位置表达,一定程度上并行计算,长距离表达更好。

1)因为segments之间独立训练,所以不同的token之间,最长的依赖关系,就取决于segment的长度;2)出于效率的考虑,在划分segments的时候,不考虑句子的自然边界,而是根据固定的长度来划分序列,导致分割出来的segments在语义上是不完整的。

在预测的时候,会对固定长度的segment做计算,一般取最后一个位置的隐向量作为输出。为了充分利用上下文关系,在每做完一次预测之后,就对整个序列向右移动一个位置,再做一次计算,如上图(b)所示࿰

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值