网络的嵌入层是什么样的?

我刚开始研究文本分类,就在嵌入层上遇到了困难。如果我有一批序列编码成对应每个词的整数,嵌入层是什么样的?它像普通的神经层那样有神经元吗?

我看到了keras.layers.Embedding,但在查看了文档后,我对它的工作原理感到非常困惑。我能理解input_dim,但为什么output_dim是一个二维矩阵?我在这个嵌入层中有多少权重?

如果我的问题解释得不够清楚,我很抱歉,我在自然语言处理方面没有经验,如果这个问题关于词嵌入是NLP中的常见基础知识,请告诉我,我会去查阅的。


回答:

嵌入层只是一个可训练的查找表:它以整数索引作为输入,并返回与该索引相关联的词嵌入:

index |                            word embeddings=============================================================================  0   |  索引为0的词的词嵌入(通常用于填充)-----------------------------------------------------------------------------  1   |  索引为1的词的词嵌入-----------------------------------------------------------------------------  2   |  索引为2的词的词嵌入-----------------------------------------------------------------------------  .   |  .   |  .   |-----------------------------------------------------------------------------  N   |  索引为N的词的词嵌入-----------------------------------------------------------------------------

它的可训练性在于嵌入值不一定是固定的,可以在训练过程中改变。input_dim参数实际上是词的数量(或者更普遍地说,是序列中不同元素的数量)。output_dim参数指定了每个词嵌入的维度。例如,如果使用output_dim=100,每个词嵌入将是一个大小为100的向量。此外,由于嵌入层的输入是一系列整数(对应于句子中的词),因此它的输出形状将是(num_sequences, len_sequence, output_dim),即对于序列中的每个整数,将返回一个大小为output_dim的嵌入向量。

至于嵌入层中的权重数量,很容易计算:有input_dim个独特的索引,每个索引与一个大小为output_dim的词嵌入相关联。因此,嵌入层中的权重数量是input_dim x output_dim

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注