大模型连载8:词向量如何表示近义词?
余弦相似度和欧式距离既然我们将 token 都转换到了高维的数学空间中那么在高维数学空间中如何来衡量两个 token 高维空间中为向量的含义是相似的还是相反的呢比如在人类的认知中狗和猫可以认为是一对近义词这是相比于其他词比如“跑”而言的。而在数学上衡量两者是近义词的方法便是认为“两个向量更接近或者更相似”。这种数学意义上的“向量更接近”可以称之为“向量的距离更小”更进一步讲称为多维空间中“两个向量的欧氏距离更小”。在三维几何上中表示为两个点之间的距离可以通过平方根来进行计算而在高维空间中则可以使用余弦相似度来计算。比如在 GPT-4模型中官方就推荐使用余弦相似度来衡量两个向量的距离。GPT-4 中的余弦相似度和欧氏距离的关系当然这里有些细节还要说明一下以免大家产生误导。首先欧氏距离和余弦相似度的含义和计算公式是不一样的那么在 GPT-4 的词嵌入空间中为什么可以使用余弦相似度来衡量两个向量之间的距离欧式距离呢先看下两者的概念余弦相似度衡量的是向量在方向上的相似程度而不是它们的大小。它是通过计算两个向量的点积然后除以它们的模长得到的余弦相似度的公式如下cos_similarity (A · B) / (||A|| * ||B||)欧氏距离衡量的是多维空间中两点之间的直线距离。在几何上它是两点坐标差的平方和的平方根。欧氏距离对向量的长度和方向都敏感。在 GPT-4 的嵌入空间中嵌入向量都被标准化到长度1也就是说所有的向量都是单位向量在这种情况下余弦相似度和欧氏距离之间存在一个有趣的关系点积由于向量长度为1余弦相似度就等于向量的点积这样做不仅理解简单还可以加速余弦相似度的计算。欧氏距离在标准化了的向量空间中欧氏距离的平方是两个单位向量之差的平方和。由于所有向量的长度相同这实际上就可以认为是两个向量在方向上的差异的一种衡量。因为 GPT-4 的高维向量空间将向量都做了标准化因此在词嵌入空间中尽管余弦相似度和欧氏距离的计算结果在数值上不一致但它们却都可以产生相同的顺序排名两种指标仍然可以一起指示哪些向量更相似或更不同。比如计算猫和狗的余弦相似度为 0.9 欧式距离为 9.9猫和“跑”的余弦相似度为0.1 欧式距离为 2.0鱼和跑的余弦相似度为 0.01 欧式距离为 0.9。虽然两种计算方法得到的数值不同但是排名是相同的。两者都可以指示谁与谁更接近谁与谁更相反或没有关联。这就是为什么在 GPT-4 的嵌入空间中推荐使用余弦相似度的原因一是因为它计算更高效二是因为它的计算结果和欧式距离一样具有相同的顺序排名。总结一下本节在进行文本处理之前文本转换为词嵌入向量是必须的并且要转换为具有多个维度的高维向量以此来衡量文本的语义。在GPT-4的词嵌入空间中推荐使用余弦相似度来衡量向量的“距离”这是因为 GPT-4 把嵌入向量标准化到了1从而使得余弦相似度与欧氏距离在衡量向量相似性上具有一样的排名。在其他的场景下也可以使用余弦相似度这一指标来衡量向量的相似性。比如衡量两个文本或图像是否相似直接计算其余弦相似度也是一种简单有效的办法。参考:^维基百科余弦相似度 en.wikipedia.org/wiki/Cosine…查看全部 AI 知识库内容点击链接董章鱼的公开 AI 空间
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2420059.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!