[NLP论文阅读]Learned in Translation: Contextualized Word Vectors

使用CoVe进行分类

进行分类任务时,作者介绍了他们使用的general biattentive classification network(应该可以称之为双向注意力分类网络?):
[NLP论文阅读]Learned in Translation: Contextualized Word Vectors
这个网络模型可以处理成对的句子也可以处理单个的句子。在处理单个句子的时候就将句子进行复制,然后当成句子对处理。
然后就是一些神经网络的公式,有兴趣可以直接看文章。
文章中提到双向注意力机制时提到了这篇文章,都是2017年最新的,以后可以看看:Bidirectional attention flow for machine comprehension

数据集

情感分类:
SST-2
https://nlp.stanford.edu/sentiment/treebank.html

SST-5
https://nlp.stanford.edu/sentiment/treebank.html

IMDb
http://ai.stanford.edu/~amaas/data/sentiment/

问题分类:
TREC-6
http://cogcomp.cs.illinois.edu/Data/QA/QC/

TREC-50
http://cogcomp.cs.illinois.edu/Data/QA/QC/

蕴含分类:
SNLI
https://nlp.stanford.edu/projects/snli/

问答:
SQuAD
https://rajpurkar.github.io/SQuAD-explorer/

实验结果

作者将随机初始化的词向量、使用GloVe初始化的向量、GloVe+CoVe词向量在各个数据集上对模型性能的影响进行了对比:
[NLP论文阅读]Learned in Translation: Contextualized Word Vectors
可以看到单独使用GloVe向量比使用随机初始化的向量要好,使用GloVe+CoVe词向量的结果又要比GloVe向量要好。

作者接下来又对用于训练得到CoVe向量的机器翻译模型训练数据的规模进行了研究,得到如下结果:
[NLP论文阅读]Learned in Translation: Contextualized Word Vectors
可以看到随着机器翻译模型使用训练集的规模变大,在下游任务中使用CoVe向量的提升作用越明显。我觉得这结果还是在意料之中的,毕竟要训练一个好的LSTM是需要大量的数据的。

实验代码在作者的salesforce的github上可以看到,目前还没有去研究过,感觉应该是对以前模型代码的一些拼凑,毕竟MT模型是有开源的代码的。

结论

好好搞机器翻译模型对NLP的其他任务都是有帮助的。

感想

文中实验大部分都是分类任务,分类任务相较其他任务而言比较简单,作者提出的模型在数据上有了提高,但是涉及到的模型的复杂度也不断提高,不知道这样的代价和得到的性能提升是不是成正比。毕竟有些分类任务直接用Word2Vec训练好的词向量进行一些简单数学计算就能取得不错的分类效果。