预备知识
神经网络语音模型
NNLM(Neural Network Language Model)
来源于《A Neural Probabilistic Language Model》
独热编码(Onehot)
独热编码即 One-Hot 编码,又称一位有效编码,其方法是使用N位状态寄存器来对N个状态进行编码,每个状态都有它独立的寄存器位,并且在任意时候,其中只有一位有效。
存在的问题:维度灾难 和 语义鸿沟
词向量(Word Embedding)
词向量 (Word Vector) 或称词嵌入 (Word Embedding) 做的事情其实就是将词表中的单词映射为实数向量以便计算机进行进一步的计算。从某种意义上来说,可以理解为用实数向量来表示每个单词的意思,拥有相似意义的单词被映射到二维平面上时通常是靠在一起的。来源: 知乎-以成
Word2Vec模型
在进行自然语言处理以及文本分析问题的时候,文本向量化是我们用来表示文本的一种重要方式,其中词袋(Bag of Words,BOW)和词向量(Word Embedding)是两种最常用的类型。
word2vec技术是一种为了利用神经网络从大量无标注的文本中提取有用信息而产生的向量。该模型的输入是one-hot编码,Hidden Layer是线性单元(没有激活函数),Output的使用的是softmax回归(输出输入词的邻近词的概率分布),维度和input相同,模型训练后输入层和隐藏层之间权重即为我们要获取的词向量。
word2vec本质上是一种简单的神经网络,它分为两种训练模型(CBOW和Skip-gram):
1、CBOW模型是根据中心词W(t)周围的词来预测中心词。
2、Skip-gram模型是根据中心词W(t)来预测周围的词。
RNN(Recurrent Neural Network)
LSTM(Long Short-Term Memory)
ELMo(Embeddings from Language Models)
双向长短期记忆网络(Bi-LSTM)
LSTM的全称是Long Short-Term Memory,它是RNN(Recurrent Neural Network)的一种。LSTM由于其设计的特点,非常适合用于对时序数据的建模,如文本数据。BiLSTM是Bi-directional Long Short-Term Memory的缩写,是由前向LSTM与后向LSTM组合而成。两者在自然语言处理任务中都常被用来建模上下文信息。
注意力机制 Attention
自注意力机制 Self Attention
掩码自注意力机制 Masked Self Attention
多头自注意力机制 Multi-head Self Attention
Transformer整体框架
seq2seq模型
序列(编码器)到序列(解码器)
分成两部分,编码器和解码器
编码器(Encoder)
编码器;把输入变成一个词向量(Self-Attention)
作用:做更好的词向量,从而更加精准的表示单词
作用:编码器让计算机能够合理地(不确定性的)认识人类世界客观存在的一些东西
编码器包括两个子层:Self-Attention、Feed Forward
每一个子层的传输过程中都会有一个(残差网络+归一化)
Self-Attention
残差网络(Add)
作用: 避免梯度消失
残差网络是什么?
梯度消失是什么?
归一化(Normalize)
作用:避免梯度爆炸
Layer Norm 做标准化(为了避免梯度爆炸),限制区间
Feed Forward(FFN)
前面每一步都在做线性变换,线性变换的叠加永远是线性变换,通过Feed Forward的激活函数Relu做一次非线性变换,做这样的空间变换可以无限拟合任何一种状态,从而得到一种新的表征。
解码器(Decoder)
解码器:得到编码器输出的词向量后,通过这个词向量去生成翻译的结果
Self-Attention
识别(测试)的时候是逐个接收,因此采取masked Self-Attention。
Decoder为什么需要Mask?
为了解决训练阶段和测试阶段的不匹配(gap)
Linear层
转换成此表的维度
Softmax层
得到最大词的概率
关于模型的输入输出
输入什么不重要,重要的是特征提取能力。
参考链接:
【语言模型】NNLM(神经网络语言模型)
【NLP】神经网络语言模型(NNLM)
详解BiLSTM及代码实现
Transformer、GPT、BERT,预训练语言模型的前世今生
预训练语言模型的前世今生 - 从Word Embedding到BERT - 二十三岁的有德
做知识的搬运工,有侵权联系删除!