一、NLP 的基本模型解读(TF and Bert)

1. Transformer 模型

整体架构如下:

Untitled

1. 1 关于位置编码(Transformer 中的二元位置编码)

$$ PE_{(pos,2i)} = sin(pos / 10000^{2i/d_{\text{model}}}) \\ PE_{(pos,2i+1)} = cos(pos / 10000^{2i/d_{\text{model}}})\\ 其中i为该词在序列中的position $$

Untitled

一文读懂Transformer模型的位置编码

About Embedding Methods of BERTS (为什么嵌入向量可以相加,可以间接的联想到为什么 positional encoding 能够和 word embedding 进行线性相加)

为什么 Bert 的三个 Embedding 可以进行相加? - 知乎

PATH: Attention→Transformer→BERT→NLP applying,一下为参考的NLP模型学习资料

基于transformers的自然语言处理(NLP)入门

1.2 关于Attention的机制

Untitled

Untitled

  1. RNN 的每个神经元的输入为上个神经元的hidden state 和 第 i 个input vector,输出为第 i 个神经元的hidden state 和 output vector。这样会导致随着序列的增长,时间跨度相隔较大的两个词向量的关系将被淡化,从而无法进行长序列的关注。
  1. Attention 的decoder 的输入则为encoder中RNN 的所有hidden states,这样将导致其能关注到长序列信息;

讲解连接如下:https://datawhalechina.github.io/learn-nlp-with-transformers/#/./篇章2-Transformer相关原理/2.1-图解attention

1.3 Self-Attention 的计算机制

Untitled

Untitled

  1. 将 word embedding 向量分别乘以 Q, K, V 矩阵得到每个词向量对应的 q,k,v 向量;
  1. 为了计算每个 词向量相对其它词向量的attention 得分,分别将每个词向量进行如下步骤: a. 将第 i 个词向量的 q 分别与每个词向量(共k个)的 k 进行内积,得到 n 个内积得分 b. 为了保证梯度的有效性,将其分别除以 $\sqrt{d_k}$ 并使用softmax函数进行归一,以此得到其它词向量分别与第 i 个词向量的重要程度 c. 将归一后对应的得分作为权重分别乘以 对应词向量的 v 后求和,得到第 i 个位置的输出向量;

矩阵运算如上,讲解连接为:https://datawhalechina.github.io/learn-nlp-with-transformers/#/./篇章2-Transformer相关原理/2.2-图解transformer?id=transformer宏观结构