卷积神经网络相关
- 在NLP中,虽然文本是序列数据,上下文信息需要模型具有记忆模块,但CNN依然有一定的应用价值。
- CNN中的卷积类似于n-gram。提取的是局部的信息。
- CNN在训练时可以并行运算,RNN由于需要先前的信息,串行运算。
文本CNN与图像的区别:
- 文本做的是一维卷积,卷积核只在序列维度上移动,保证embedding的维度不变。
- 2D图像是二维卷积,卷积核是在两个维度上移动的。
- 通道个数都是自由的,取决于模型设计。但文本本身是单通道的,图片是有可能是多通道的(RGB)
卷积的计算
文本
- 不同颜色,说明是不同尺寸的卷积核。都是3,说明都是三通道的。
- 这边注意下,feature的长度取决于卷积核,但不同长度的一个feature最终经过Pooling就只有一个值,所以同一颜色色块的数目只取决于通道个数。
图像
- 在这里,图片是三通道的。 5 * 5 * 3,那么卷积核(正方形)(k * k * 3),接下来通道数就是有几组,这边是有两组,步长为2 ,padding到7 。
- 所以就是 3 * 3 * 2(3 = (7-3)/2 + 1)的结果。
特殊的卷积
11的小卷积,减少通道的个数。——11的参数量很小,缩减参数个数。
大卷积提特征。
应用
CNN就可以理解为一个特征提取器,或者编码器。就是把词向量矩阵进行编码,得到相应的信息。
最早的就是TextCNN那篇。
随后虽然说RNN直接上更适合文本,但实际上在很多工作中依然有用CNN作为句子的编码器(特征提取器)
Hybrid Attention-Based Prototypical Networks for Noisy Few-Shot Relation Classification
在这篇2019年AAAI的工作中,不仅encoder是CNN,同时还是将卷积作为同一个类别支持样本句向量的特征提取器。
无独有偶,同样是小样本关系抽取,2019 ACL的这篇论文,同样选择CNN作为encoder。
Multi-Level Matching and Aggregation Network for Few-Shot Relation Classification
为什么?两篇对于词向量的表示,都选择了PCNN的做法,也就是除了word2vec,还有实体在句子中的位置
直觉来分析,可能在关系抽取任务中,一个好的句向量编码,不一定要能记住过往所有的信息。因为决定关系的除了句子,更重要的是两个实体。PCNN这种方式,或许能让模型更好地看到实体的信息,所以2014年的工作,到2019年的顶会,依旧被follow。