Bert 编码器接受输入并进入多头注意力模型。但它们如何保持顺序呢?由于当前单词不采用先前单词的顺序。另外,为什么是双向的?它是否像 LSTM 一样保持前向和后向序列?
它是双向的,因为它使用当前单词两侧的上下文(而不是例如仅使用前几个单词,而是使用整个序列)。
这取决于你想了解多少细节,但基本上有注意力和自注意力机制可以使这种“立即处理序列中的所有内容”的方式起作用。
简而言之,注意力机制意味着不是按顺序/逐字浏览句子,而是使用整个序列对当前处理的单词进行解码,同时使用注意力系统给出权重来决定其中的单词输入获得对当前单词的处理方式有多少发言权。
自注意力机制意味着即使对于输入序列本身的编码,上下文(句子的其余部分)也已经被使用。所以例如如果您有一个带有“it”用作代词的句子,则该标记的编码将强烈依赖于上下文。自注意力意味着与注意力类似,有一个权重函数,其中其他输入标记与当前输入标记的编码有多相关。
解释 Self-Attention 的一种流行方式是这样的:
The cat ran over the street, because it got startled.
这句话中 it
的编码强烈依赖于 The cat
并且有点依赖于 the street
,因为模型在预训练过程中学习到了在这种句子中预测it
之后/周围的屏蔽词将很大程度上依赖于这些名词。
如果您还没有,那么您绝对应该查看Attention is all you need-论文以及BERT-论文(至少是摘要),它们详细解释了机制和预训练过程的工作原理.
更好地了解其实际工作原理的另一个重要来源是Illustration Transformer。
BERT 中的双向机制是通过在预训练期间使用掩码语言模型(MLM)目标来实现的。在 BERT 的预训练阶段,通过预测句子中缺失的单词,在大型文本数据语料库上训练模型。然而,BERT 不是仅根据左侧或右侧上下文来预测丢失的单词,而是随机屏蔽输入序列中的一些单词,并要求模型使用来自左侧和右侧上下文的信息来预测这些被屏蔽的单词。