每个词只能嵌入一个词,即每个词只能存储一个向量。所以" bank "只有一个意思"我把钱存进了银行"和"河岸上有一条漂亮的长凳";
它们很难在大型数据集上训练;
你无法调整它们。为了使他们适合你的领域,你需要从零开始训练他们;
它们不是真正的深度神经网络。他们被训练在一个有一个隐藏层的神经网络上。
2. 递归神经网络(RNNs)不再是一个NLP标准架构
长期以来,RNNs一直是基于NLP的神经网络的基础架构。这些架构是真正的深度学习神经网络,是从早期的创新(如Word2Vec)设定的基准发展而来的。去年讨论最多的方法之一是ELMo(来自语言模型的嵌入),它使用RNNs提供最先进的嵌入表示,解决了以前方法的大多数缺点。从下图中可以看出,与前馈网络不同,RNNs允许隐藏层的循环返回到它们自己,并且以这种方式能够接受可变长度的序列输入。这就是为什么它们非常适合处理文本输入。 RNNs非常重要,因为它提供了一种处理数据的方法,而时间和顺序非常重要。例如,对于文本相关的数据,单词的顺序很重要。改变语序或单词可以改变一个句子的意思,或只是使它乱语。在前馈网络中,隐含层只能访问当前输入。它没有任何其他已经处理过的输入的“内存”。相比之下,RNN能够对其输入进行“循环”,看看之前发生了什么。 作为一个实际的例子,让我们回到我们的一个bank的例句,“I lodged money in the bank”。在前馈网络中,当我们到达“bank”这个词时,我们对之前的词已经没有“记忆”了。这使得我们很难知道句子的上下文,也很难预测正确的下一个单词。相比之下,在RNN中,我们可以参考句子中前面的单词,然后生成下一个单词是“bank”的概率。 RNNs和长短时记忆(LSTM)是RNN的一种改进类型,它们的详细信息不在本文讨论范围之内。但如果你真的想深入了解这个主题,没有比克里斯托弗•奥拉斯(Christopher Olahs)关于这个主题的精彩文章更好的起点了。