深度NLP

1、通用模型结构

文本分类的模型很多,基本上都遵循以下的架构:

深度NLP

基本思路就是,词(或者字)经过embedding层之后,利用CNN/RNN等结构,提取局部信息、全局信息或上下文信息,利用分类器进行分类,分类器的是由两层全连接层组成的。

在开始介绍每个模型之前,这里先下几个结论:

  1. 1、如果你的模型分数不够高,试着把模型变得更深更宽更复杂

  2. 2、当模型复杂到一定程度的时候,不同模型的分数差距很小

  3. 3、当模型复杂达到一定程度,继续变复杂难以继续提升模型的分数

2、 TextCNN

卷积神经网络(CNN Convolutional Neural Network)最初在图像领域取得了巨大成功,CNN原理就不讲了,核心点在于可以捕捉局部相关性,具体到文本分类任务中可以利用CNN来提取句子中类似 n-gram 的关键信息。

这是最经典的文本分类模型,这里就不细说了,模型架构如下图:

深度NLP

和原始的论文的区别就在于:

  • 使用两层卷积

  • 使用更多的卷积核,更多尺度的卷积核

  • 使用了BatchNorm

  • 分类的时候使用了两层的全连接

总之就是更深,更复杂。不过卷积核的尺寸设计的不够合理,导致感受野差距过大。

3、TextRNN

 

深度NLP

相比于其他人的做法,这里的不同点在于:

  • 使用了两层的双向LSTM。

  • 分类的时候不是只使用最后一个隐藏元的输出,而是把所有隐藏元的输出做K-MaxPooling再分类。

4、TextRCNN

和RNN类似,也是两层双向LSTM,但是需要和Embedding层的输出Concat(直连)。

深度NLP

5、TextInception

知乎看山杯NLP大赛冠军model,参照TextCNN(多尺度卷积核),模仿Inception的结构设计的,每层Inception结构如下图所示:

深度NLP

 

【参考】:http://www.360doc.com/content/17/1124/18/40903010_706805642.shtml

                   https://zhuanlan.zhihu.com/p/25928551

相关文章: