1、隐马尔可夫链路一般较短原因
连乘链路太长,会导致数据稀疏,零频词太多
2、零频问题的一般解决方案
平滑/回退/差值
当n设置较小时,仍然会存在oov问题(语料中未出现的词)
2.1、平滑
2.1.1、加1平滑/拉普拉斯平滑
当很多词出现次数较少时,加1会带来较大的偏差,加1平滑效果一般不佳
2.1.2、delta平滑/加k平滑
2.1.3、good Turing 平滑
为出现频次为r次词的个数
出现的概率
2.2、回退
当连续词出现零频时,平滑是避免出现零频,还可以选择绕过;例如当3-gram的频率为0,则回退到2-gram,依次类推。
2.3、插值法
n-gram回退到n-1 gram,还是以3-gram为例,可以考虑以一定的权重将1-gram,2-gram,3-gram线性组合。
3、mlp进阶至cnn
mlp进阶至cnn,全链接网络上一层的每个值都会作用于下一层的每个值,但是并非所有的值更新都需要上一层的所有元素参与,这样会引入一些无效计算。同时,在特定的场景,我们需要focus某些输入,因而引入cnn。
4、注意力机制诞生动机
seq2seq上下文词向量C,输入序列经过encoder生成上下文词向量C(一般为最后隐层向量),decoder的每个节点的输入依赖于相同的输入c。注意机制的引入使得不同时刻t关注不同的信息,使得对局部信息进行重点关注。
encoder-decoder注意力机制,保存encoder阶段的每一时刻的隐层向量,并和decoder层当前节点做点积、然后softmax后作为权重,线性加权encoder阶段所有隐层向量得到。
5、自注意力机制
为了得到关于某方面信息 Q,可以通过关注某些信息 K,进而得到某些信息(V)作为结果。文本内容本身存在一定的关联关系Q-K-V
多头注意力扩展了模型关注不同位置的能力。
6、退化现象、残差网络
退化现象是指随着网络层数的增加,表现效果反而下降了
因而考虑直接在x上进行建模,而直接让一些叠加层去拟合一个潜在的恒等映射函数H(x) = x会比较困难,所以采用一些非线性层,让它们去拟合另一种残差映射F (x) := H(x)-x,而原来的映射则变成H(x) = F(x) + x
7、transformer三角函数位置编码
7.1、三角函数位置编码
transformer的位置编码方式为绝对位置编码;绝对位置编码是指直接对位置进行编码,使其可以融入到embdding的输入中。相对位置编码是指在attention阶段可以直接识别相应的位置。
7.2、习得式位置编码
习得式位置编码也属于绝对位置编码,位置编码作为训练参数,在训练过程中产生,例如bert,当序列超过限定长度时,无法编码。
华为的 NEZHA 模型便是一个换成了相对位置编码的 BERT 模型。相对位置编码一般会对位置差做个截断,使得要处理的相对位置都在一个有限的范围内,因此相对位置编码可以不受限于序列长度。
7.3、层次位置编码
表示 m>n ,不能为0.5,避免(i,j)与(j,i)表示一样
7.4、transformer结构
编码器encoder
- 第一层是多头注意力层(Multi-Head Attention Layer)。
- 第二层是经过一个前馈神经网络(Feed Forward Neural Network,简称 FFNN)。
- 这两层,每一层都有「Add & Normalization」和 ResNet。
解码器decoder
- 解码器有两个多头注意力层。第一个多头注意力层是 Masked Multi-Head Attention 层,即在自注意力计算的过程中只有前面位置上的内容。第二个多头注意力层没有被 Masked,是个正常多头注意力层。
- 可以看出来,第一个注意力层是一个自注意力层(Self Attention Layer),第二个是 Encoder-Decoder Attention 层(它的 K、V 来自 Encoder,Q 来自自注意力层),有些文章里会用这个角度来指代。
- FNN、Add & Norm、ResNet 都与 Encoder 类似
7.5、transformer整个过程
1、词embdding、位置embdding pe
2、encoder、多头注意力机制、全链接FFNN,每层都有add&norm、resnet;每个encoder的输入来自前一个encoder的输出,第一层encoder的输入来自词embdding和位置embedding
3、进入decoder,经过第一个多头注意力层 Masked Multi-Head Attention 层,即在自注意力计算的过程中只有前面位置上的内容。第二个多头注意力层买有被 Masked,是个正常多头注意力层。第一个注意力层是一个自注意力层(Self Attention Layer),第二个是 Encoder-Decoder Attention 层(它的 K、V 来自 Encoder,Q 来自自注意力层),有些文章里会用这个角度来指代。每层都有FNN、Add & Norm、ResNet
4、线性变换、softmax归一化,输出
人工智能 LLM 革命前夜:一文读懂横扫自然语言处理的 Transformer 模型
【简单理解】自然语言处理-平滑方法(Smoothing)_雾行的博客-CSDN博客_jelenik-mercer smoothing
层次分解位置编码,让BERT可以处理超长文本