1.RNN(输入 隐含 输出)
主要用于序列数据的处理,传统的神经网络模型,层与层之间是全连接的,每一层的节点是无连接的.其局限性太强,比如,在预测句子中的下一个单词时,因为句子中的单词不是独立的,所以传统的神经网络模型无能为力.RNN具有记忆功能,可以保存网络的内部状态并应用于当前的输出的计算中,也就是隐含层之间的节点不再是无连接的而是有 连接的,并且隐含层的输入不仅包含输入层的输出还包含上一时刻隐含层的输出.
RNN结构
将RNN可视化的一种有效方法是考虑将其在时间上进行展开,得到如图所示的结构:
RNN在时间上展开
注意:在传统的神经网络中,每一层的参数都是不共享的,在RNN中,权重参数U,V,W在每一层都是共享的.也就是说循环神经网络每一步都在做相同的事情,只是输入不同.
2.bi-rnn
考虑的是是否可以像访问过去的信息一样访问未来的上下文
bi-rnn结构图
3.lstm(输入门 忘记门 输出门) GRU 将输入门和忘记门结合为更新门
RNN最大的有点在于可以在输入和输出序列之间的映射过程中利用上下文相关信息.但是其存取的范围有限,
4.crf networks
现行的crf和逻辑回归在数学意义上一致.训练集中的每个句子中的每个词,有一个标书.对句子在第i个位置的词抽取高维特征(包含上一次词的标注id,前后ngram的特征),通过学习特征到标注的映射,可以得到特征到任一标注的概率(归一化),测试的时候,从句子的开头开始,抽取特征,预测标注概率,标注带入下一个特征,预测新一轮标注的概率.
5.bilstm+crf
其中最底层的(word embedding)就是单词embedding。
中间层(Bi-LSTM)l 代表单词左侧的上下文特征, r 代表单词右侧的上下文特征,c 代表了左右两侧的合成。
最高层(CRF)把单词tag之间的关系建模,提高NER准确率
注意:对于词向量的生成,最初始的时候使用的是word2Vec.双向LSTM可以捕捉字母拼写的一些规律(前缀,后缀,词根), 预训练的embedding可以捕捉全局上单词间的相似度。两者结合我们得到了更好的词嵌入(embedding)。