shape也是(32, 128),因为有些句子没有128个字,会在最后补0,attention_mask作用就是区分补0和原文;token_typeids是用于分割上下句的,token_typeids用于区分是第一句还是第二句,内容一般是[0, 0, 0, ... 0, 1, 1, 1, ... 1],shape是(32, 128)...
mask才能好好干活
1)其中80%的token对应的输入被替换为mask 2)10%的token对应的输入随机替换为另一个token 3)10%的...
由于BERT使用的是attention进行特征提取,相较于RNN而言其并行度的提高是显著的,并且由于是进行未锁定参数的微调,其效果也会比完全使用原始的参数来的好一点,这一点也证实了BERT原文中作者的表述(虽然我没有写出实验的过程,不过使用锁定所有参数,只训练最后的MLP的速度是极快的,所以可以轻易的进行尝试)。
在准备好以上数据后,即可将 token_ids 与 attention_mask 输入到预训练好的BERT模型中,便得到了每个单词的embedding表示。如下图所示: 在上图中,为了表述方便,在输入时还是使用的单词,但是需要注意的是:实际的输入是token_ids 与 attention_mask。在经过了BERT的处理后,即得到了每个单词的嵌入表示(此嵌入表示包含...
然后,我们反思理解了原因,其实Bert就是把这个词给<mask>掉预测这个词是什么,再往里面探本质是要学习一个attention map或者说similaritymatrix,学习<mask>的单词和其他单词的相似性,我们让对角线元素为0的做法犯了两个错误:第一个 自己和自己的相似性肯定是最大的,这样做相当于摒弃了自己的信息,完全让别的单词的信...
使用transformer而不是bi-LSTM做encoder,可以有更深的层数、具有更好并行性。并且线性的Transformer比lstm更易免受mask标记影响,只需要通过self-attention减小mask标记权重即可,而lstm类似黑盒模型,很难确定其内部对于mask标记的处理方式。 提升至句子级别: 学习句子/句对关系表示,句子级负采样。首先给定的一个句子,下一...
Attention Mask(注意力遮蔽) Attention Mask 注意, 在上面 的计算过程中, 我们通常使用 来计算, 也就是一次计算多句话, 也就是 的维度是 , 是句长,而一个 是由多个不等长的句子组成的, 我们就需要按照这个 中最大的句长对剩余的句子进行补齐长度, 我们一般用 ...
最后顺便提一下soft-attention和hard-attention的区别,soft-attention就是我们上述的attention机制,解码阶段对编码的每一时刻的输出进行加权平均的方法,可以直接求取梯度;而hard-attention选择编码的输出状态是采用的蒙特卡罗抽样的方法,这部分有需要的朋友可以深入一...