gpt4 book ai didi

tensorflow - 为什么 embedding_lookup 比使用线性变换的一种热编码更好?

转载 作者:行者123 更新时间:2023-12-01 03:26:16 24 4
gpt4 key购买 nike

我想我在这里遗漏了一些明显的东西,但希望得到一些帮助来解决这个问题。

假设我有一百万个单词,并希望将它们作为模型的一部分嵌入。
使用 TF,我可以进行嵌入查找,但我需要提供大小为 [1m*space_size] 的矩阵。所以对于 50 个维度,50M 可训练参数。
另一方面,我可以用 20 维向量对一百万个单词进行热编码。我可以将其嵌入到一个 50 维空间中,其中包含一个 [20*50] 矩阵,用于 1K 参数。便宜得多。由于这个矩阵的权重仍然是可训练的,我希望能学到一些关于单词的知识,如果我需要更多的容量,我可以增加空间的大小。

这是理论上的,在实践中我尝试过,模型没有学到任何东西。所以我的问题是,为什么?
谢谢

最佳答案

确实,您可以用 20 位二进制数编码一百万个单词。但是one-hot编码不是二进制的。这意味着整个向量中只有一个数字可以是 1,其余的都是 0。该数字表示单词的索引。所以你需要一个 200 万长度的向量来编码 200 万个单词。那么你需要一个 200 万 x 50 的矩阵来作为模型参数。

使用 20 位二进制表示是有问题的,因为您在 20 维空间中任意分配某些单词以使其彼此更接近。最好让模型学习这些关联,而不是预先定义它们。

关于tensorflow - 为什么 embedding_lookup 比使用线性变换的一种热编码更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41314819/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com