hscspring / hscspring.github.io

AI NLP 人工智能 自然语言处理 机器学习 哲学
https://yam.gift
5 stars 2 forks source link

DeBERTa 论文+代码笔记 | Yam #176

Open hscspring opened 4 years ago

hscspring commented 4 years ago

https://yam.gift/2020/06/27/Paper/2020-06-27-DeBERTa/

Yam | AI | NLP | 人工智能 | 哲学 | 自然语言处理 | 机器学习

LiChao-cy commented 4 years ago

博主,你好,有一个问题请教,"本文在预训练时用两个 Transformer 和一个 SoftMax 作为 Decoder",这个是怎样理解了?encoder和decorder都是同样的transformer结构,用一个11层的encoder和2层的decoder叠加与直接用一个12层的bert有什么区别吗?

hscspring commented 4 years ago

@LiChao-cy 博主,你好,有一个问题请教,"本文在预训练时用两个 Transformer 和一个 SoftMax 作为 Decoder",这个是怎样理解了?encoder和decorder都是同样的transformer结构,用一个11层的encoder和2层的decoder叠加与直接用一个12层的bert有什么区别吗?

你好。谢谢指正。应该是一个两层的 Transformer layer + Softmax 作为 Decoder。 Transformer 架构是包括一个 Encoder 和 Decoder 的,Bert 实际上用的是 Transformer 的 Encoder。

所以本文这种算是一个变化的 Transformer,而 Bert 是 Transformer 的 Encoder。两者不相同。

另外,本文提出的 DisentangledSelfAttention 是用在 Encoder(也就是 Bert)的输出和 Decoder 之间的,代码在这里:

    # 这里的 encoder 输出就是 Bert 的输出
    encoded_layers = self.encoder(embedding_output,
                   attention_mask,
                   output_all_encoded_layers=output_all_encoded_layers, return_att = return_att)
    if return_att:
      encoded_layers, att_matrixs = encoded_layers

    if self.z_steps>1:
      hidden_states = encoded_layers[-2]
      layers = [self.encoder.layer[-1] for _ in range(z_steps)]
      query_states = encoded_layers[-1]
      rel_embeddings = self.encoder.get_rel_embedding()
      attention_mask = self.encoder.get_attention_mask(attention_mask)
      rel_pos = self.encoder.get_rel_pos(embedding_output)
      for layer in layers[1:]:
        query_states = layer(hidden_states, attention_mask, return_att=False, query_states = query_states, relative_pos=rel_pos, rel_embeddings=rel_embeddings)
        encoded_layers.append(query_states)
LiChao-cy commented 4 years ago

嗯嗯,感谢回复,那这篇论文中的decoder结构就是一个位置一个位置的进行解码的呢?

hscspring commented 4 years ago

@LiChao-cy 嗯嗯,感谢回复,那这篇论文中的decoder结构就是一个位置一个位置的进行解码的呢?

嗯,应该是的。不过论文和代码都没有具体细节,只能确定依然用的 MLM。

aiainui commented 3 years ago

博主,“却导致了信息泄露——Token 以本身为条件进行预测”,这个以自身条件进行预测怎么理解呢?

hscspring commented 3 years ago

@aiainui 博主,“却导致了信息泄露——Token 以本身为条件进行预测”,这个以自身条件进行预测怎么理解呢?

BERT 的 Mask 策略,15% 中有 10% 是不变的,这意味着要预测的 Token 本身就在输入的 Token 里面。他所说的信息泄露就是这个意思。我理解是这样子,希望能帮到你。

aiainui commented 3 years ago

@hscspring

@aiainui 博主,“却导致了信息泄露——Token 以本身为条件进行预测”,这个以自身条件进行预测怎么理解呢?

BERT 的 Mask 策略,15% 中有 10% 是不变的,这意味着要预测的 Token 本身就在输入的 Token 里面。他所说的信息泄露就是这个意思。我理解是这样子,希望能帮到你。

嗯嗯,明白了,谢谢博主。

Facico commented 3 years ago

博主您好,在EMD那里,我看论文现在讲解的是主要为了引入绝对距离才有的EMD。好像是现在在arxiv上的论文重新改过了。