Sutskever 30 #08:词第一次有了位置
从查表开始 #01 最后留了一个问题: n-gram 看见的"猫"和"狗"完全是两个互不相干的整数 ID,哪怕语料里"猫吃鱼"和"狗吃肉"各出现 100 次,它也不会推断"猫吃肉"或"狗吃鱼"。它只数它见过的那个东西。 2013 年 Mikolov 那两篇 word2vec 论文(Efficient Estimation of Word Representations in Vector Space 和 Distributed Representations of Words and Phrases and their Compositionality)往这里走了一步:把词从整数 ID 变成向量。 换一个看法:把词放进一个向量空间 n-gram 的世界里,每个词是一个 ID。词表 5 万,那"猫"可能是 723,“狗"可能是 4912,“汽车"可能是 18。这三个数字之间没有任何意义——723 和 4912 在数轴上相距 4189,但它没告诉你"猫"和"狗"在概念上多近。 word2vec 把这层抽掉。每个词不再是一个 ID,而是一个几十维到几百维的实数向量。比如 100 维: 猫 → [0.12, -0.34, 0.81, ..., 0.05] (100 个数) 狗 → [0.18, -0.29, 0.77, ..., 0.09] 汽车 → [-0.66, 0.41, -0.12, ..., 0.88] “猫"和"狗"的向量在这 100 维空间里挨得很近,“汽车"在远处。这套向量怎么来的?训练。 ...