美文网首页NLP&NLU
NLP很多任务中为什么需要mask?

NLP很多任务中为什么需要mask?

作者: top_小酱油 | 来源:发表于2020-03-14 18:31 被阅读0次

1. PAD的问题

通常在训练NLP模型时,batch中的句子长度不相等,这个时候会对没有达到规定长度的句子会进行pad操作(一般用0进行pad),如下图所示(绿色是进行pad的部分):


但是PAD会引起以下几个问题:

1.1 mean-pooling的问题

如上图所示,对于矩阵:
a=[3,7,11,2,1,8,5]

对a进行mean-pooling:


进行pad之后:
pad_a=[3,7,11,2,1,8,5,0,0,0]

对pad_a进行mean-pooling:


对比mean_a和mean_pad_a发现:pad操作影响mean-pooling。

1.2 max-pooling的问题

如上图所示,矩阵b=[−1,−3,−9,−11,−7,−2,−8],pad之后的矩阵PAD_b=[−1,−3,−9,−11,−7,−2,−8,0,0,0]。
分别对其进行max-pooling:
max_b=−1;
max_pad_b=0;

对比max_a和max_pad_a发现:pad操作影响max-pooling。

1.3 attention的问题

attention技术是目前NLP任务的必备选项,在attention的计算中通常最后一步是使用softmax进行归一化操作,将数值转换为概率。但是如果直接对pad之后的向量进行softmax操作,那么pad的部分也会分摊一部分概率,这就导致有意义的部分(非pad部分)的概率之和不等于1。

2. 使用mask解决以上问题

mask是相对于pad而产生的技术,具备告诉模型一个向量有多长的功效。mask矩阵有如下特点:

1.mask矩阵是与pad之后的矩阵具有相同的shape;
2.mask矩阵只有1和0两个值,如果值为1表示对应的pad矩阵中该位置有意义,如果值为0表示对应的pad矩阵中该位置无意义。

在第1部分中的两个向量的mask矩阵(m=[1,1,1,1,1,1,1,0,0,0]m=[1,1,1,1,1,1,1,0,0,0]m=[1,1,1,1,1,1,1,0,0,0])如下图所示:

2.1 解决mean_pooling的问题

2.2 解决max_pooling的问题

在进行max_pooling时,只需要将pad的部分的值足够小即可,可以将mask矩阵中值为0的位置替换的足够小

,则不会影响max_pooling计算。


2.3 解决attention的问题

该问题的解决方式跟max_pooling一样,就是将pad的部分足够小,使得e^x
的值非常接近于0,以至于可以忽略。


结论:所以只要任务中用到padding的话,一般都需要进行mask操作!!!

相关文章

  • NLP很多任务中为什么需要mask?

    1. PAD的问题 通常在训练NLP模型时,batch中的句子长度不相等,这个时候会对没有达到规定长度的句子会进行...

  • 白话 NLP,3 个因果告诉你 Mask 矩阵因何而产生?

    一、为什么需要 Mask? 在此,先思考一个问题,为什么需要 mask? 在 NLP 中,一个最常见的问题便是输入...

  • [LM]构建语言模型

    在很多NLP任务上需要用到语言模型,其实很多传统的LM算法就就足够了,不用什么都套深度学习的东西。 代码以及介绍

  • 2021-02-18

    NLP任务中-layer-norm比BatchNorm好在哪里 这就要理解为什么LN单独对一个样本的所有单词做缩放...

  • NLP任务中术语的作用

    在自然语言处理的任务当中,术语在相当一部分中占有了优化效果的作用。与优化算法、语料清洁等等一样,它能够带来的效果也...

  • NLP之transformer -Task01

    常见的NLP任务[https://datawhalechina.github.io/learn-nlp-with-...

  • 昭君说|一流的生活,不是富有,而是觉知

    十一年前开始接受NLP,到去年把NLP导师课程读完。很多人不理解为什么我不去讲NLP,不去做NLP老师。付出了十年...

  • 你有 MASK 吗

    NLP 方向的同学们对 mask 一定不会陌生,不管是 BERT 前时代我们在做 attention 时对 PAD...

  • 将Numpy存储为jpg图像时像素值改变

    做深度学习图像分割任务时通常需要将原始图像对应的MASK存储在硬盘上,需要注意的是存储为.jpg格式时,虽然得到的...

  • NLP任务集合

    选自Github,作者:Sebastian Ruder,机器之心编译。 https://zhuanlan.zhih...

网友评论

    本文标题:NLP很多任务中为什么需要mask?

    本文链接:https://www.haomeiwen.com/subject/pangshtx.html