NLP入门——天池新闻文本分类(6)基于深度学习的文本分类3
学习目标
• 了解Transformer的原理和基于预训练语言模型(Bert)的词表示
• 学会Bert的使用,具体包括pretrain和finetune
Attention
很可惜,要学会 Transformer 和 Bert ,我们需要的前置知识有点多,需要开始慢慢理解。
Attention的本质是要找到输入的feature的权重分布,这个feature在某一个维度有一个长度的概念,如果我们输入一个长为 n 的 feature,那么 Attention 就要学习一个长为 n 的分布权重,这个权重是由相似度计算出来的,最后返回的得分就将会是权重与feature的加权和。
Attention 机制
Attention 机制讲的是 Attention 计算的过程,他的输入是Q,K,V,返回的是一个socre。所以我们只要搞清楚Q ,K, V具体是什么东西就可以了。
A T T − s c o r e ( Q , K , V ) = ∑ i s i m i l a r ( Q , K i ) ∗ V i ATT-score(Q,K,V)=\sum_isimilar(Q,K_i)*V_i ATT−score(Q,K,V)=i∑similar(Q,Ki)∗Vi
注意这里的下标位置,显然我们需要学习的权重分布是 那个相似度 A,他和Q,K相关,而 V 就是我们希望去 被找到权重的 feature。
QKV 英文名字的含义:
- Q 即为英文中 Query 是指:被查询的序列,可以看到在每次计算相似度的过程中,Q在计算中是一直保持着整体的状态。
- K 即为英文中 Key 是指:被查询的索引,我们学习到的权重分布A 长度为n,那么A中每一个下标的大小,就代表了对应索引被分配到的权重。所以这个K,控制的是索引。
- V 即为英文中的 Value 是指:值,也就是我们feature 本身的值,他要去和权重分布做加权和来得到最终的分布。
相似度的计算方式:
这里相似度的计算方式有很多种:
点 乘 : s ( q , k ) = q T k 点乘:s(q,k)=qTk 点乘:s(q,k)=qTk
矩 阵 乘 s ( q , k ) = q T W k , W 为 参 数 矩阵乘s(q,k) = qTWk,W为参数 矩阵乘s(q,k)=qTWk,W为参数
c o s : s ( q , k ) = q t k ∣ ∣ q ∣ ∣ ∗ ∣ ∣ k ∣ ∣ cos:s(q,k) = \frac{qtk}{||q||*||k||} cos:s(q,k)=∣∣q∣∣∗∣∣k∣∣qtk
c o n c a t : s ( q , k ) = W [ q ; k ] , W 为 参 数 concat:s(q,k)=W[q;k],W为参数 concat:s(q,k)=W[q;k],