前言
在之前的中文文本分类中,使用了LSTM来进行模型的构建(详情参考:
Tensorflow使用LSTM实现中文文本分类(2)、使用numpy实现LSTM和RNN网络的前向传播过程)。除了使用LSTM来处理时间序列问题,也可以使用在图像处理领域使用更多的卷积神经网络来处理时间序列问题。
LSTM and Char-CNN
- 在Char-CNN中,词语embedding的每一列(每一个特征),可以看做是一个通道,是该词语的一种表达。因此,(timesteps, embed_size)中的每一列,都可以看做是这一个句子的不同表达。
其实想想,在图像领域,不同的卷积核提取出来的feature map,也是该图像的不同表达而已,本质上并没有什么区别。 - 一维卷积核应用在时间维度上,也就是应用在timestep(时间步)上,embedding的长度就是通道数目。这就产生了一个问题——句子不等长的处理方式,必须要对不等长的就句子进行截断,令其变成等长序列,这样才能正常运行。这也就是为什么CNN天然的不能很完美的解决序列式问题的原因之一。
- CNN的卷积核长度,就相当于可以看到句子中词语的个数,每次只能看到n个词语(虽然说可以将n设置的大一些,但终究是有限个)。而RNN