code:https://github.com/chantera/bicnn-mi
Yin的这篇论文提出了一种叫Bi-CNN-MI
的架构,其中Bi-CNN
表示两个使用Siamese
框架的CNN模型;MI
表示多粒度的交互特征。Bi-CNN-MI
包含三个部分:
- 句子分析模型 (CNN-SM)
这部分模型主要使用了上述Kal在2014年提出的模型,针对句子本身提取出四种粒度的特征表示:词、短ngram、长ngram和句子粒度。多种粒度的特征表示是非常必要的,一方面提高模型的性能,另一方面增强模型的鲁棒性。
- 句子交互计算模型 (CNN-IM)
这部分模型主要是基于2011年Socher提出的RAE模型,做了一些简化,即仅对同一种粒度下的提取特征做两两比较。
- LR或Softmax网络层以适配任务
模型结构
论文提出的模型主要是基于Kal的模型及Socher的RAE模型的结合体,如下图:
通过模型图可以看出模型的主要思想:一方面利用Kal的模型进行多种粒度上的特征提取,另一方面采取RAE模型的思想,对提取出来的特征进行两两的相似度计算,计算完成的结果通过dynamic pooling
的方式进一步提取少量特征,然后各个层次的pooling
计算结果平摊为一组向量,通过全连接的方式与LR(或者softmax)层连接,从而适配同义句检测任务本身。
这个模型具体的计算细节不再赘述了,感兴趣的读者可以直接去看论文。除了提出这种模型结构之外,论文还有一个亮点在于使用了一种类似于语言模型的CNN-LM
来对上述CNN部分的模型进行预训练,从而提前确定模型的参数。CNN-LM
的网络结构如下图:
CNN-LM
模型的训练预料使用了最终的实验数据集,即MSRP;另外,由于MSRP的数据规模较小,所以作者又增加了100,000个英文句子语料。CNN-LM
模型最终能够得到word embedding, 模型权值等参数。需要注意的是,这些参数并不是固定的,在之后的句子匹配任务中是会不断更新的。从后面的实验结果中可以看出,CNN-LM
的作用是显著的。
实验结果
论文仅使用了一种数据集,即公认的PI (Paraphrase Identification)任务数据集,MSRP。实验结果如下:
可以看出,CNN-LM
的预训练效果显著,预训练后的模型性能很强(但是结果上比之前He提出的模型稍差一些)。