在探讨现代人工智能技术时,一个概念不容忽视:Embeddings。
无论是成熟的应用如ChatGPT,还是新兴的图像生成技术如Stable Diffusion,它们的核心都与Embeddings紧密相连。
但Embeddings的重要性远不止于此,它在许多日常应用中也发挥着至关重要的作用,例如搜索、面部识别和推荐系统。
💡 深入理解 Embedding
Embedding 是用来表示其他对象(无论是数字、物理还是抽象对象)的向量。这些对象的关键属性被转化为该向量的几何属性。
这听起来可能有点抽象,但让我们来深入探讨其背后的概念。
向量
我们可以把向量看作是高维空间坐标的数字列表。想象一个包含两个数字的列表(x,y)。我们可以将其视为x-y图上的坐标,每个列表对应二维空间中的一个点:
如果我们有三个数字(x,y,z),则它对应三维空间中的一个点:
于是,我们就可以轻松地将这个逻辑扩展到更多维度:四、五、一百、一千,甚至是数百万或数十亿。
现实中绘制一千个维度的空间非常困难,只靠大脑想象更是难上加难,但在数学中却是小事一桩。
Embeddings 作为向量
举个例子吧。
我们使用某种方法为苹果和橙子的图片分配一个只有两个数字的小向量。
我们可以将只有两个数字的向量看作X-Y图上的点,所以想象我们为苹果和橙子的图片分配了随机向量,然后把向量在图上画出来:
苹果和橙子都混合在一起,它们在图上的位置无法告诉我们图片是苹果还是橙子。我们想要的是这样的情况:
如果我们有方法为苹果和橙子的图片分配这样的向量,那么写一个程序来区分它们就变得非常简单。它只需要检查向量落在哪一侧就可以轻松分辨。
AI和神经网络提供了一种确切的方法。
我们可以使用机器学习构建一个AI模型,该模型接收图像并输出向量,使得橙子和苹果容易分辨。这些向量通常超过两个维度,因此不容易绘制。
无论是苹果还是橙子,原始对象的属性都被保存在嵌入向量的几何属性中:苹果全部在一边,橙子在另一边,通过高维几何中所谓的超平面可以轻松分开——实际上,这只是一种分割 embedding 空间的简单方法。
这个例子非常简单,只涉及苹果和橙子的区分。
Embedding 可以捕获有关于它们代表的对象的许多不同方面的大量信息。
如果我们训练一个AI模型来区分苹果和橙子,就可能会发现 embedding 编码了许多特征来区分苹果和橙子,如颜色、纹理和茎的存在。
除此之外,我们可能还会发现,青苹果聚集在一起,离红苹果更远,或者斑驳的苹果的 embedding 更接近橙子。
Word Embeddings
正如下一部分所说的那样,Embedding 可以说是从基于神经网络的AI模型中自动产生的,但它们最初是为了更好地封装计算机的词语语义(即意义)而开发的。有时你仍然会看到有人谈论"semantic embeddings",因为 word embeddings 在这项技术中发挥了作用。
尽管 embedding 并不专门针对某种现实世界的意义,而是有关于AI模型可以学习和识别的任何有用属性。
在自然语言处理中,embedding 始终与语言学中分布假设相关联,尤其是语言学家J.R. Firth:
“你应该根据它的上下文来了解一个词。”
语言学理论简介,1930-55。
(在语言学分析研究中,1957年,第1-31页)
分布假设是说,一个词的语义会在上下文中体现。两个词越是近义词,就越应该在相同的上下文中出现。
当两个单词的拼写或发音相同时,我们使用上下文来确定词义:
- She took her bat to baseball practice.
- She was chased away from the cave by a bat.
从上下文中,我们可以清楚地看出"bat"的意思。
同样,通常来自同一语义类的词会在相同的上下文中出现:
- He grew tomatoes in his garden.
- He grew carrots in his garden.
- He grew zucchini in his garden.
而不是:
- He grew bicycles in his garden.
- He grew bicycles in his garden.
在“He grew _ in his garden”这道填空题里面,能够填空的单词具有的属性无法与“自行车”共享。
我们可以构建一个AI模型,这个模型包含单词及其可以填入的上下文文段。Word embeddings 就是一种将这些信息封装在向量空间中的方法。
图像识别
我们甚至可以在没有明确说明哪些特征相关的情况下构建 embeddings 。
例如,人脸识别系统的 embedding 会将人的照片转换为分布在高维空间中的 embedding 向量。
我们可能会发现那些面部有一些共同特性的人会在 embedding 空间的某个部分被归为一组。例如,我们可能发现白头发的人和秃头的人聚集在一起:
但更重要和更有用的是,如果我们提供两张同一个人的照片,比起其他人的照片,这两个 embedding 会彼此更接近:
当然,它也会找到看起来相似的人,尽管我们希望他们不会像实际上是同一个人的两个人那样靠得那么近:
Multimodal Embeddings
Embedding 空间也可以作为不同种类输入之间的桥梁。
例如,如果我们有一个带有描述性标题的图片数据库,就可以联合训练两个 Embedding 模型——一个用于图像,一个用于文本——输出在同一个 embedding 空间中的向量。结果是,图像描述的 embedding 和图像本身的 embedding 会彼此靠近。
Embedding 无处不在
Embedding 不仅为我们提供了一个有力的工具来对事物进行比较,更在人工智能和机器学习领域中大放异彩。几乎无处不在的Embeddings,为各种应用带来了深远的影响,从媒体搜索到自然语言理解,它们的应用几乎无所不及。
Jina AI,正致力于在Embedding领域的持续研究和开发。无论您是一个经验丰富的AI开发者,还是刚刚起步的初学者,我们都提供了一系列的资源和工具,帮助您更好地探索和应用Embeddings技术。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。