BERT的工作原理
BERT的工作原理:
Transformer的编码器是双向的,它可以从两个方向读取一个句子。因此,BERT由Transformer获得双向编码器特征。
我们把句子A(He got bit by Python)送入Transformer的编码器,得到句子中每个单词的上下文特征(嵌入)。一旦我们将句子送入编码器,编码器就会利用多头注意力层来理解每个单词在句中的上下文(将句子中的每个单词与句子中的所有单词联系起来,以学习单词之
间的关系和语境含义),并将其特征值作为输出。
如下图所示,我们将句子送入Transformer的编码器,得到句子中每个单词的特征值。图中的N表示可以有N个编码器。 R H e R_{He} RHe表示单词He的特征, R g o t R_{got} Rgot表示单词got的特征,以此类推。每个单词的特征向量大小是编码器层的大小。假设编码器层的大小为768,那么每个单词的特征向量大小也是768。为了避免重复,只有编码器1被展开说明。
同样,如果我们将句子B(Python is my favorite programming language)送入Transformer的编码器,那么会得到句子中每个单词的上下文特征,如下图所示。
可见,通过BERT模型,对于一个给定的句子,我们可以获得每个单词的上下文特征(嵌入)。现在,我们已经了解了BERT是如何生成上下文特征的。