Deep Learning for Extreme Multi-label Text Classification阅读笔记
概述
Extreme multi-label就是说总的标签量非常多, 成千上万甚至数百万.
Extreme multi-label text classification主要难点在于数据稀疏, 并且计算量较大(标签太多).
本文作者对textcnn进行改进, 使其在extreme multi-label text classification问题上获得更好的效果.
模型
模型是基于text-cnn改进的.
创新点:
- dynamic max pooling.
- 改进了损失函数
- 在pooling和输出层之间加了一个bottleneck layer, 减小模型规模, 加快训练.
Dynamic max pooling
text-cnn是对每个feature map做max pooling, 所以每个feature在pooling之后只得到一个特征.
作者认为, 这样做pooling, 如果句子很长, 会损失很多信息, 并且没有利用任何位置信息.
对此, 作者提出使用Dynamic max pooling, 对于每个feature map, pooling生成p个特征. 具体做法如下,
- 对于一个包含m个词的句子, 把这个句子分成p块, 每一块分别做max-pooling然后进行拼接.
损失函数
损失函数使用binary cross-entropy, 而不是 softmax cross-entropy
Hidden Bottleneck layer
其实就是在pooling层和ouput层之间加了个全连接
实验
参数设置
- 卷积核大小:{2, 4, 8}
- 每种卷积核数量(也就是输出通道数): 对于小数据集是128, 大数据集32
- dropout: 0.5
- bottleneck layer: 512