《A Comparative Study of Word Embeddings for Reading Comprehension》论文阅读

众所周知,预训练好的词向量有不同的维度,比如预训练好的GloVe词向量有从50-300维等的词向量表示,但这些不同维度的表示有什么区别,以及在什么时候该用什么维度的词向量(虽然各论文中大家大多用了300维的词向量),这些问题我也确实不太清除。这篇论文解答了我的这些困惑,写的还是很精彩的。

论文原链接

Let’s have a look:

这篇论文主要解决了两个问题点:

- 在阅读理解任务中应该使用什么样的预训练词向量

- 测试阶段对于OOV词应怎样处理

所用的数据集和模型

数据集

  • Who-Did-What(WDW) 完型填空类的数据集,从新闻故事中构建
  • Children’s Book Test(CBT) 从children’s book构建,此论文中仅用了CBT-NE,即数据集中答案为命名实体的数据

模型:
Stanford AR、GA Reader

词向量对比:

  • GloVe (50-300)
  • word2vec (300)
实验和结果
  1. 词向量的对比
  • 第一个结果:使用在合适的语料库上训练的词向量可以比随机初始化提高3-6%。
    然而,用于预训练的语料库和方法是重要的选择:例如,在CBT上训练的word2vec词向量比随机词向量执行效果更差。 另请注意,在每种情况下,GloVe词向量都优于在同一语料库中训练的word2vec嵌入。 但是由于词向量对训练参数很敏感,并不能说GloVe一定比word2vec好,但确实从各个论文中也可以看出,一般会优先选择GloVe。
  • 第二个结果:对比GloVe不同维度对实验结果的影响(50-300):随着词向量维度的增加,实验结果性能是下降的。但是即使使用了300维的GloVe词向量,实验结果仍然比word2vec词向量效果好。
  • 第三个结果:在使用原始语料进行训练时,要先将停用词去掉,与停用词的共现提供关于特定单词的语义的很少有意义的信息,因此具有高百分比的语料库可能不会产生高质量的向量。训练词向量时,超参数调节很重要。
  1. 处理OOV词
  • 第一个结果:一般对于OOV词的处理都是赋予一个固定大小不变的词向量(UNK)。这种方法忽略了这样一个事实,即分配为UNK的许多单词可能已经训练过VG中可用的词向量。实验中在测试时,任何新token将被分配其GloVe向量(如果存在)或UNK的向量。
  • 第二个结果,不是为所有OOV词分配一个共同的UNK向量,而是为它们分配未经训练但唯一的随机向量可能更好。此方法在训练时访问测试集词表是没必要的。
总结

作者已经证明,用于初始化单词向量的预训练词向量的选择对于阅读理解的神经网络模型的性能具有显著影响。在测试时处理OOV词的方法也是如此。

根据作者的实验,我们建议使用现成的GloVe词向量,并在测试时将预先训练的GloVe向量(如果可用)或随机但唯一的向量分配给OOV词。

Author: CinKate
Link: http://renxingkai.github.io/2019/05/12/WordEmbeddingsforReadingComprehension/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.