一、简介
这篇论文的任务是问答,输入一个question,从候选集中找到对应的answer。其实也可以看成paraphrase identification任务,或者是短文本匹配。
文中使用的数据集是insuranceQA,数据规模如下。
这篇论文的特色是“齐全”,作者设计了6种CNN结构 + 8种相似度实验,最终在数据集上得到0.653的准确率。作者给出了详细的实验结果,这些结论可以让我们少走许多弯路。
二、模型
2.1 CNN结构
符号定义
- HL(hidden layer) ,W是权重矩阵,B是偏置向量。
- CNN。卷积层
- P。1-MaxPooling
- T。tanh层
2.1.1 CNN结构1
如图1所示,对于输入Q和A分别使用HL层+CNN层提取特征,然后经过MaxPooling+tanh得到sentence的信息,再计算Q和A的相似度。
2.2.2 CNN结构2
输入Q和A通过权值共享的HL+ CNN层得到特征,然后各种经过MaxPooling + tanh得到sentence的信息,最后计算Q和A的相似度。如图2所示。
2.2.3 CNN结构3
与CNN结构2类似,不同的地方是在计算相似度之前加入对Q和A分别加一层HL。如图3所示:
2.2.4 CNN结构4
与CNN结构2类似,不同的是在计算相似度之前,对Q和A使用一个权值共享的HL层。如图4所示:
2.2.5 CNN结构5
此结构在CNN结构2的基础上,在CNN后又加了一层CNN,其他类似。如图5所示:
2.2.6 CNN结构6
与CNN结构5类似,都是2层CNN,不同的是结构6每层CNN后都会接P+T,然后计算两次损失函数。如图6所示:
2.2.7 其他结构
除此之外,作者还对以下三个方面进行实验
- CNN的filter数量
- 卷积操作加入了skip-bigrams,会对不相邻的词进行卷积
- 使用了不同的相似度指标进行实验
2.3 损失函数
对于输入的Q,训练集中有一个正确的A+(groud truth),同时通过采样得到一个负样本A-,我们计算cos(Q, A+),和cos(Q, A-)。那最终的目标就是使这两个相似度之间的距离大于m,对应的hinge loss如下:
2.4 实验结果
2.3.1 不同CNN结构实验
如上表所示,实验中第一个baseline是使用Wordvector的词袋模型,第二个baseline是信息检索的WD模型。其中Architecture就是前面介绍的各种CNN结构,AugmentedCNN结构使用了skip-bigrams。下面说一些实验结论
- 论文提出的新方法优于两个baseline
- 对于Q和A分别使用的HL和CNN的模型,准确率没有共享权重的网络高。这是因为使用共享参数可以保证Q和A的对应的部分输出相同的结果。而且非共享权重网络需要优化双倍的参数
- 在CNN后加HL层降低了准确率,说明CNN已经充分捕捉输入的信息
- 增加CNN中filter数量可以捕捉更多信息,提高准确率
- 两层CNN可以表示高度抽象信息,从而提高准确率
- Layer-wise supervision不能提高准确率
- 加入skip-gram在test1上有效,但在test2上无效
- 在相似度指标上,作者设计的两个相似度指标(GESD,AESD)表现最好。具体结果详见论文