CNN、LSTM和CRF的融合

标签:
神经网络lstm |
分类: 计算机技术 |
(1) 首先使用CNN将一个词汇的字符级别信息编码到它的字符级别表示中去,然后我们将字符级别的表示和词汇级别的表示连接起来,将它们放到BLSTM中,对每个词汇的上下文信息建模;
(2)
2.1 用于字符级别表示的CNN
CNN是从词汇字符中抽取形态信息(比如词汇的前缀、后缀)并将其编码到神经网络表示的有效方法
2.2, 2.3 略过
2.4 BLSTM-CNNs-CRF构造
字符级别表示通过CNN训练得到,然后将这些字符级别embedding和词汇级别embedding连接起来,作为输入输入到BLSTM中,最后从BLSTM中输出的向量输入到CRF中,来联合解码以得到最优序列标注。
那么问题1来了,为什么还要在BLSTM后面添加一个CRF层呢,既然BLSTM已经可以输出标注结果?
答:因为BLSTM有些输出是B-person,I-organization,O,O,...,这在命名实体识别上是不合法的,所以需要以BLSTM的输出作为CRF的输入,从而将命名实体的规则加入到序列标注的过程中[]。
在下面图中,dropout层被应用到BLSTM的输入向量和输出向量,实验表明dropout能够明显改善实验结果。
http://s10/mw690/001oZrbjzy7fmD82BQdc9&690
问题2是,char embedding和word embedding怎样concatenate?word
embedding没问题,一个单词直接对应一个低维向量,那这个单词的char
embedding呢?不同单词的char数量不同,怎么将其转化为一个固定维度的低维向量?
答:在char embedding时,首先设定一个单词最长长度,然后对于比较短的单词,添加pad补充,对句子中包含单词数量不同的情况,也类似处理,最终将句子转化为张量,然后使用cnn处理图像的方式处理文本,需要注意的是,这中间filter的宽度和单词最大长度一致[3]。
http://s4/mw690/001oZrbjzy7fmGCjPuba3&690
[1] https://arxiv.org/pdf/1603.01354.pdf
[2] https://createmomo.github.io/2017/09/12/CRF_Layer_on_the_Top_of_BiLSTM_1/
[3]