matlab中mask参数意义,NLP中的mask的作用

本文详细解析了在NLP中mask的作用,包括在RNN中的padding mask,防止标签泄露的sequence mask,以及在Transformer中的self-attention机制中的应用。通过具体的例子阐述了mask如何在不同场景下帮助模型正确处理序列数据。
摘要由CSDN通过智能技术生成

最近真的被mask搞得晕晕的,还是需要好好的看下哦

1、padding mask:处理非定长序列,区分padding和非padding部分,如在RNN等模型和Attention机制中的应用等

2、sequence mask:防止标签泄露,如:Transformer decoder中的mask矩阵,BERT中的[Mask]位,XLNet中的mask矩阵等

PS:padding mask 和 sequence mask非官方命名

嗯,上面的解释还是很晕的,还是要具体解读一下的

后面读了具体论文之后如有错误再修改

RNN中的Mask

对于RNN等模型,本身是可以直接处理不定长数据的,因此它不需要提前告知 sequence length,如下是pytorch下的LSTM定义:

nn.LSTM(input_size, hidden_size, *args, **kwargs)

但是在实践中,为了 batch 训练,一般会把不定长的序列 padding 到相同长度,再用 mask 去区分非 padding 部分和 padding 部分。

区分的目的是使得RNN只作用到它实际长度的句子,而不会处理无用的 padding 部分,这样RNN的输出和隐状态都会是对应句子实际的最后一位。另外,对于token级别的任务,也可以通过mask去忽略 padding 部分对应的loss。

不过,在 pytorch 中,对 mask 的具体实现形式不是mask矩阵,而是通过一个句子长度列表来实现的,但本质一样。实现如下,sentence_lens 表

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值