在进入变形金刚之前你应该知道的概念

在进入变形金刚之前你应该知道的概念

源节点: 1894868

神经网络通过数字学习,因此每个词都将映射到向量以表示一个特定的词。 嵌入层可以被认为是一个查找表,它存储词嵌入并使用索引检索它们。

 

进入 Transformer 之前你应该知道的概念
 

具有相同含义的词在欧氏距离/余弦相似度方面将很接近。 例如,在下面的单词表示中,“星期六”、“星期日”和“星期一”与相同的概念相关联,因此我们可以看到单词的结果相似。
 

进入 Transformer 之前你应该知道的概念

词的位置判断,为什么要判断词的位置呢? 因为,transformer 编码器不像循环神经网络那样循环,我们必须在输入嵌入中添加一些关于位置的信息。 这是使用位置编码完成的。 该论文的作者使用以下函数对单词的位置进行建模。

 

进入 Transformer 之前你应该知道的概念
 

我们将尝试解释位置编码。

 

进入 Transformer 之前你应该知道的概念
 

这里的“pos”指的是“word”在序列中的位置。 P0指的是第一个词的位置embedding; “d”表示单词/标记嵌入的大小。 在本例中 d=5。 最后,“i”指的是嵌入的 5 个单独维度中的每一个(即 0、1,2,3,4、XNUMX、XNUMX、XNUMX)

如果“i”在上面的等式中发生变化,您将得到一堆频率不同的曲线。 读取不同频率的位置嵌入值,在 P0 和 P4 的不同嵌入维度上给出不同的值。

进入 Transformer 之前你应该知道的概念
 

该 查询,Q 代表一个向量词, 键 K 是句子中的所有其他词,并且 值 V 表示词的向量。

注意力的目的是计算关键词相对于与同一人/事物或概念相关的查询词的重要性。

在我们的例子中,V 等于 Q。

注意机制告诉我们单词在句子中的重要性。

 

进入 Transformer 之前你应该知道的概念
 

当我们计算查询和键之间的归一化点积时,我们得到一个张量,表示每个其他词对于查询的相对重要性。

 

进入 Transformer 之前你应该知道的概念
 

在计算 Q 和 KT 之间的点积时,我们尝试估计向量(即查询和关键字之间的词)如何对齐并返回句子中每个词的权重。

然后,我们将 d_k 和 softmax 函数的平方结果归一化,对项进行正则化,并在 0 和 1 之间重新缩放它们。

最后,我们将结果(即权重)乘以值(即所有词)以降低不相关词的重要性并仅关注最重要的词。

多头注意输出向量被添加到原始位置输入嵌入中。 这称为剩余连接/跳过连接。 残差连接的输出经过层归一化。 归一化残差输出通过逐点前馈网络进行进一步处理。

 

进入 Transformer 之前你应该知道的概念

掩码是一个矩阵,其大小与注意力分数相同,填充了 0 和负无穷大的值。

 

进入 Transformer 之前你应该知道的概念
 

使用掩码的原因是,一旦您采用掩码分数的 softmax,负无穷大就会变为零,从而为未来的标记留下零注意力分数。

这告诉模型不要关注这些词。

softmax 函数的目的是获取实数(正数和负数)并将它们转换为总和为 1 的正数。

 

进入 Transformer 之前你应该知道的概念

 
 
拉维库马尔·纳杜文 正忙于使用 PyTorch 构建和理解 NLP 任务。

 
原版。 经许可重新发布。
 

时间戳记:

更多来自 掘金队