正在加载 3D 实验室…
正在加载课程…
← AI 是如何工作的世界 1 · 第 3 节课,共 4 节全部课程 ↓

嵌入:每个词元对应的一组数字
正在教这个?打开投影模式
词元 ID 只是标签。ID 4821 在意义上并不“接近” ID 4822。为了计算类似意义的模式,模型需要一种表示方式,其中相似度是一个可计算的数字。
这种表示方式就是嵌入:对于每个词元,都有一个称为向量的数字列表。这些向量存储在一个大表中。它们的值最初是随机的,并在训练过程中进行调整。实际的模型每个词元使用数百到数千个数字。
是什么让向量变得有用?出现在相似上下文中的词元最终会拥有相似的向量。Mikolov 及其同事(2013 年,“word2vec”)在大规模上证明了这一想法,这也呼应了语言学家的口号:一个词由其伴随的词所定义。“Cat”(猫)和“dog”(狗)常出现在“pet”(宠物)、“fed”(喂养)和“vet”(兽医)等词附近,因此它们的向量彼此接近。而“Cat”和“carburettor”(化油器)则不然。
衡量相似度:余弦相似度。 对于两个向量 a 和 b:
cos = (a · b) / (|a| × |b|)
其中 a · b 是对应位置元素乘积之和,|a| 是元素平方和的平方根。结果始终在 −1 到 1 之间:1 表示向量指向相同方向,0 表示它们互相垂直,−1 表示方向相反。
一个包含两个数字的玩具示例(虚构):cat = (3, 4) 和 dog = (4, 3)。点积为 3×4 + 4×3 = 24。两者的长度均为 5。因此 cos = 24 / 25 = 0.96。现在取 car = (4, −3):它与 cat 的点积为 12 − 12 = 0,因此 cos = 0。
你无法画出 300 个维度。 为了展示地图,向量会通过 PCA 或 t-SNE 等方法压缩到 3 个(或 2 个)维度;AI 实验室在“从六个特征到点云”的世界中展示了这些方法的工作原理以及它们如何扭曲距离。压缩总会扭曲某些东西:在地图上看起来相邻的两个单词,在完整空间中可能相距甚远。
静态嵌入存在局限性。 如果每个标记(token)只有一个固定向量,那么单词“bank”在“river bank”(河岸)和“bank account”(银行账户)中拥有相同的向量。一个向量必须同时服务于两种含义。在本实验室的后面部分(世界 2),你将看到注意力机制如何让标记的数字依赖于周围的单词。
两个词向量指向完全相同的方向。它们的余弦相似度是多少?
为什么词向量的 3D 地图可能显示两个单词靠得很近,尽管它们在完整空间中相距甚远?
为什么“bank”只有一个固定向量是个问题?
对于 cat = (3, 4) 和 dog = (4, 3),余弦相似度是多少?