[NLP论文阅读]Learned in Translation: Contextualized Word Vectors
使用CoVe进行分类
进行分类任务时,作者介绍了他们使用的general biattentive classification network(应该可以称之为双向注意力分类网络?):
这个网络模型可以处理成对的句子也可以处理单个的句子。在处理单个句子的时候就将句子进行复制,然后当成句子对处理。
然后就是一些神经网络的公式,有兴趣可以直接看文章。
文章中提到双向注意力机制时提到了这篇文章,都是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词向量在各个数据集上对模型性能的影响进行了对比:
可以看到单独使用GloVe向量比使用随机初始化的向量要好,使用GloVe+CoVe词向量的结果又要比GloVe向量要好。
作者接下来又对用于训练得到CoVe向量的机器翻译模型训练数据的规模进行了研究,得到如下结果:
可以看到随着机器翻译模型使用训练集的规模变大,在下游任务中使用CoVe向量的提升作用越明显。我觉得这结果还是在意料之中的,毕竟要训练一个好的LSTM是需要大量的数据的。
实验代码在作者的salesforce的github上可以看到,目前还没有去研究过,感觉应该是对以前模型代码的一些拼凑,毕竟MT模型是有开源的代码的。
结论
好好搞机器翻译模型对NLP的其他任务都是有帮助的。
感想
文中实验大部分都是分类任务,分类任务相较其他任务而言比较简单,作者提出的模型在数据上有了提高,但是涉及到的模型的复杂度也不断提高,不知道这样的代价和得到的性能提升是不是成正比。毕竟有些分类任务直接用Word2Vec训练好的词向量进行一些简单数学计算就能取得不错的分类效果。