加载中…
个人资料
Aristo
Aristo
  • 博客等级:
  • 博客积分:0
  • 博客访问:7,099
  • 关注人气:105
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

CNN、LSTM和CRF的融合

(2017-10-28 16:15:42)
标签:

神经网络

lstm

分类: 计算机技术
1. 当前应用深度学习进行命名实体识别的主流手段是 CNN_BLSTM_CRF[1]。这到底是怎么回事?

(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] http://www.wildml.com/2015/11/understanding-convolutional-neural-networks-for-nlp/

0

阅读 收藏 喜欢 打印举报/Report
后一篇:反思
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有