在注意力机制中，key是用于参考的信息，通常是由Encoder产生的表示数据，它与查询向量（query）共同用于计算当前位置下上下文向量（context vector）的权重。对于原始输出的key（比如，CNN中的feature map），往往需要通过一些变换（如一个全连接层）将维度缩小，以通过query和key之间的相似度计算了解关注的位置。

具体来说，Encoder中的输出通常是一个二维矩阵，其维度为[batch_size, hidden_size]，其中hidden_size表示representation的大小。当我们将Encoder的输出作为key时，首先需要为key定义权重向量（weight vector），来描述当前query与key的相似度。由于key的输入维度至少是hidden_size才能提取出有意义的信息，因此通常会将hidden_size的维度扩展至2倍，即2*hidden_size。

这种做法的主要目的是增加模型的表达能力，通过增加key的维度，可以更好地捕捉到query和key之间的暗示关系，进而提高模型的性能。同时，这种做法也可以通过增加参数数量使模型更加复杂。不过对于使用不同类型的Encoder或Decoder，key维度（或其他变换操作）可能会有所改变，具体操作以实际模型为准。