swem词向量训练
-
Baseline Needs More Love
种子杯决赛答辩上面,第一名的队伍用到了一个叫做swem的模型,赛后读了一下这篇2018年5月份的论文.模型只使用pooling操作不断提取文本当中的信息,除了最后一层分类层外,没有任何其他参数.可以想象到模型训练速度和预测速度都是相当快的.
- paper:https://arxiv.org/abs/1805.09843
- 模型实现(tensorflow): https://github.com/dinghanshen/SWEM
模型结构
模型核心在于设计三个pooling操作解决文本分类当中的三个核心问题
- SWEM-aver:平均池化, 用于提取文本语义信息
- SWEM-max:最大池化, 用于提取文本关键词信息
- SWEM-hier:分级池化, 用于提取文本当中的n-gram信息
最大池化和平均池化就不解释了, 这里解释一下分级池化(Hierarchical Pooling),分级池化可以分为以下几个步骤:
- 构建步长为n的滑窗提取n个字词
- 在每个滑窗上使用平均池化
- 在平均池化取得的特征上面使用最大池化进行下采样
参数量比较
这个池化的操作很巧妙了,完全基于词向量去做,从语义、关键词、语序几个层面去提取信息.后面可以尝试以下使用swem训练词向量再用到cnn等模型里去进行语义提取.