0
点赞
收藏
分享

微信扫一扫

《阿里云天池大赛赛题解析(深度学习篇)》学习笔记(3)实体识别深度学习方法

双向循环神经网络

BiRNN,包括BiLSTM、BiGRU等。
BiRNN通常先采用正向与反向两个循环神经网络。
正向负责从前到后计算,反向负责从后向前计算。
将两个网络的输出采用一定方式(直接相加、拼接等)叠加,BiRNN即可在任意时刻获取前后的信息,能够比单向RNN具有更强表达。
BiRNN

首先训练每个单词的词向量。
然后将处理为单词索引的句子输入。
经过Embedding层转化为对应的特征张量(bs,len,dim),传入BiLSTM层。
该层叠加正反两个RNN,计算序列输出张量(bs,len,hidden)。
张量通过SoftMax层得到输出概率(bs,len,1)。
最后通过此概率与利用BIOES等方式标注的标签来计算交叉熵损失,并将之反向传播回网络,从而更新参数。
使用BiRNN可避免人工构造大量特征,也可以获得更好的非线性表达效果。
但预测序列可能出现B-B的形式。
在CRF中,通过构造特征学习到的转移特征函数 f k ( y t , y t − 1 , x t ) f_k(y_t,y_{t-1},x_t) fk(yt,yt1,xt)包含前后两个时刻的标注信息,而直接使用BiLSTM相当于只有状态特征 s k ( y t , x t ) s_k(y_t,x_t) sk(yt,xt),即预测的前后两个标注是相互独立的。
为解决此问题,可将两模型结合。

双向循环神经网络+条件随机场模型

先采用BiLSTM计算特征,然后用CRF学习转移函数和状态函数。
CRF层替换了SoftMax层。
SoftMax层计算每个字词的独立概率输出,而CRF层采用极大似然估来计算负对数似然概率(-logP)。
由于负对数似然概率与交叉熵损失本质上是一样的,因此直接采用网络参数迭代与更新即可完成训练。
在模型预测时,CRF层采用Viterbi算法进行解码输出。
BiLSTM+CRF既有BiLSTM自动构建输入数据特征与双向表达的优点,又具有CRF模型能够充分学习到标注之间信息的优点。

举报

相关推荐

0 条评论