我注意到在一个深度预训练的文本神经网络中,一开始有两个嵌入层,我不太明白为什么有两个。据我了解(如果我错了,请纠正我,我是 NLP 的新手)在嵌入层中有一个可训练权重向量,它为每个唯一单词形成一组参数。那么,连续两个这样的层是什么意思呢?第二层是否为原始嵌入层中的每个参数创建子参数?
连续两个嵌入层是什么意思?
数据挖掘
深度学习
神经网络
nlp
词嵌入
嵌入
2022-03-02 01:02:22
1个回答
如果您使用注释中包含的代码打印模型层,您将获得以下信息:
GPT2ForSequenceClassification(
(transformer): GPT2Model(
(wte): Embedding(50257, 1024)
(wpe): Embedding(2048, 1024)
...
误会由此而来。在另一层之后打印一层并不意味着它们是连接的。他们不是。
第一个嵌入是普通的令牌嵌入,有 50257 个令牌 ID。第二个嵌入是位置编码,有 2048 个位置。
您正在探索的模型基于GPT-2,它是一个Transformer解码器。在这样的架构中,文本被编码为离散的标记,生成的嵌入向量与一些称为位置编码/嵌入的特殊向量相加,位置编码/嵌入对标记在序列中的位置进行编码:
所以,答案是:连续没有两个嵌入层,这是一个误解。实际上,其中一个嵌入层对标记进行编码,另一个对标记位置进行编码,并将结果向量相加。
其它你可能感兴趣的问题
