↑↑↑关注后"星标"Datawhale
每日干货 & 每月组队学习,不错过
Datawhale干货
作者:陈锴,中山大学 张泽,华东师范大学
近两年来,Bert模型非常受欢迎,大部分人都知道Bert,但却不明白具体是什么。一句话概括来讲:BERT的出现,彻底改变了预训练产生词向量和下游具体NLP任务的关系,提出龙骨级的训练词向量概念。
想要了解Bert,那么可能你需要先从tranformer框架了解清楚。今天我们就从Transformer到Bert进行详细地讲解。
1. Attention
在学会 Transformer 和 Bert 之前,我们需要理解Attention和Self-Attention机制。Attention的本质是要找到输入的feature的权重分布,这个feature在某一个维度有一个长度的概念,如果我们输入一个长为 n 的 feature,那么 Attention 就要学习一个长为 n 的分布权重,这个权重是由相似度计算出来的,最后返回的得分就将会是权重与feature的加权和。
1.1 Attention的计算过程
Attention的输入是Q,K,V,返回的是一个socre,计算公式如下:
需要注意的是上述公式的下标位置,显然我们需要学习的权重分布是 ,而 和 相关, 就是我们希望去被找到权重的feature。
1.1.1 QKV 英文名字的含义
Q 即为英文中 Query 是指:被查询的序列,可以看到在每次计算相似度的过程中,Q在计算中是一直保持着整体的状态。
K 即为英文中 Key 是指:被查询的索引,我们学习到的权重分布A 长度为n,那么A中每一个下标的大小,就代表了对应索引被分配到的权重。所以这个K,控制的是索引。
V 即为英文中的 Value 是指:值,也就是我们feature 本身的值,他要去和权重分布做加权和来得到最终的分布。
1.1.2 相似度的计算方式
这里相似度的计算方式有很多种:
相似度名 | 计算方式 |
---|---|
点乘 | |
矩阵乘积 | , 为参数 |
余弦相似度 | $s(q,k)=\frac{q^Tk}{ |
concat | , 为参数 |
mlp |