编译 | AI科技大本营(rgznai100)
参与 | JeyZhang,鸽子
在NLP社区中曾流行着这样一个玩笑,说是一个带注意力机制的LSTM模型在任何的NLP任务上的表现都是最好的。虽然这在过去的两年中确实如此,但这个模型已经成为了现在标准的baseline,随着NLP社区的逐步发展,大家开始转向使用其他更加有趣的模型。
不过,本文作者不想独自花费2年的时间去发掘下一个带注意力机制的LSTM模型,也不想去推翻现有效果好的一些技巧或方法。虽然许多现有的深度学习库已经考虑了神经网络实践方面的最佳实践经验,例如模型的初始化方面,但仍有许多其他细节,特别是面向具体领域的任务时,使用者还是需要考虑很多特定因素。
这篇文章并没有谈及目前最先进的技术,而是汇集了各种与特定任务相关的最佳实践经验和方法。换句话说,这篇文章不会去描述具体的模型架构,而是去谈在实际中应用这些模型的小技巧和方法。这些实践方法和经验对于提升模型的性能往往非常有效,甚至能够使模型的效果达到最佳,通过与baseline对比能够从直观上更好地理解它们有效的原因。我有几张阿里云幸运券分享给你,用券购买或者升级阿里云相应产品会有特惠惊喜哦!把想要买的产品的幸运券都领走吧!快下手,马上就要抢光了。
假设你已经熟悉了如何将神经网络技术应用于NLP领域 ,并对通用的或特定领域的NLP任务感兴趣,想要快速掌握有关的最佳实践经验,从而尽快地产出有意义的成果,那么这篇文章很适合你。
在文章中,作者首先会列举适用于大多数NLP任务的最佳实践经验和方法。然后,作者将列举与一些最常见NLP任务相关的最佳实践经验和方法,特别是分类,序列标签,自然语言生成和神经机器翻译等任务。
希望对你有帮助,以下,enjoy!
词向量技术
词向量技术在最近的NLP领域中被广泛应用。文献表明,使用预训练好的词向量有助于提升模型的结果 。词向量维数的最佳大小取决于任务本身:对于语法相关的任务,如命名实体识别 或词性标注,词向量的维数小一点更好;而对于涉及到语义相关的任务,如情感分析,词向量的维数可以设置得大一些。
模型深度
NLP中用到的神经网络模型已变得越来越深,尽管目前还不及计算机视觉领域中用到的那么深。目前最好的方法经常使用到深层次的双向LSTM模型,通常由3-4层组成,如用于词性标注和语义角色标注 任务上。用于特定任务上的模型层数甚至可以更深,可参考Google的NMT模型,具有8层的编码器和解码器 。然而,在大多数情况下,模型层数超过2层之后继续加深模型所带来的性能提升是很小的 。
以上这些结论适用于大多数的序列标记和结构预测问题。对于分类任务,深层次的模型仅在输入为字符级时表现较好,目前使用浅层次的模型仍然是最好的方法。