本文将从Text Embedding工作原理、Image Embedding工作原理、Vedio Embedding工作原理三个方面,带您一文搞懂Embedding工作原理。![](./source/plugin/wq_wechatcollecting/static/images/wq_dian.jpg)
Embedding可视化
文本向量化(Text Embedding):将文本数据(词、句子、文档)表示成向量的方法。
词向量化将词转为二进制或高维实数向量,句子和文档向量化则将句子或文档转为数值向量,通过平均、神经网络或主题模型实现。
词向量化:将单个词转换为数值向量。
独热编码(One-Hot Encoding):为每个词分配一个唯一的二进制向量,其中只有一个位置是1,其余位置是0。
词嵌入(Word Embeddings):如Word2Vec, GloVe, FastText等,将每个词映射到一个高维实数向量,这些向量在语义上是相关的。
![](./source/plugin/wq_wechatcollecting/static/images/wq_dian.jpg)
词向量化
句子向量化:将整个句子转换为一个数值向量。
简单平均/加权平均:对句子中的词向量进行平均或根据词频进行加权平均。
递归神经网络(RNN):通过递归地处理句子中的每个词来生成句子表示。
卷积神经网络(CNN):使用卷积层来捕捉句子中的局部特征,然后生成句子表示。
自注意力机制(如Transformer):如BERT模型,通过对句子中的每个词进行自注意力计算来生成句子表示。
![](./source/plugin/wq_wechatcollecting/static/images/wq_dian.jpg)
BERT句子向量化
文档向量化:将整个文档(如一篇文章或一组句子)转换为一个数值向量。
文档主题模型(如LDA):通过捕捉文档中的主题分布来生成文档表示。
层次化模型:如Doc2Vec,它扩展了Word2Vec,可以生成整个文档的向量表示。
![](./source/plugin/wq_wechatcollecting/static/images/wq_dian.jpg)
文档向量化
统计方法用TF-IDF和N-gram统计生成文本向量,而神经网络方法如Word2Vec、GloVe等通过深度学习学习文本向量。
![](./source/plugin/wq_wechatcollecting/static/images/wq_dian.jpg)
TF-IDF
基于神经网络的方法
词嵌入:
Word2Vec:通过预测词的上下文来学习词向量。
GloVe:通过全局词共现统计来学习词向量。
FastText:考虑词的n-gram特征来学习词向量。
句子嵌入:
RNN:包括LSTM和GRU,可以处理变长句子并生成句子向量。
Transformer:使用自注意力机制和位置编码来处理句子,生成句子向量。
文档嵌入:
Doc2Vec:扩展了Word2Vec,可以生成整个文档的向量表示。
BERT:基于Transformer的预训练模型,可以生成句子或短文档的向量表示。
![](./source/plugin/wq_wechatcollecting/static/images/wq_dian.jpg)
Word2Vec
工作原理:将离散的文字信息(如单词)转换成连续的向量数据。这样,语义相似的词在向量空间中位置相近,并通过高维度捕捉语言的复杂性。
将离散信息(如单词、符号)转换为分布式连续值数据(向量)。
相似的项目(如语义上相近的单词)在向量空间中被映射到相近的位置。
提供了更多的维度(如1536个维度)来表示人类语言的复杂度。
举例来讲,这里有三句话:
“The cat chases the mouse” 猫追逐老鼠。
“The kitten hunts rodents” 小猫捕猎老鼠。
“I like ham sandwiches” 我喜欢火腿三明治。
人类能理解句子1和句子2含义相近,尽管它们只有“The”这个单词相同。但计算机需要Embedding技术来理解这种关系。Embedding将单词转换为向量,使得语义相似的句子在向量空间中位置相近。这样,即使句子1和句子2没有很多共同词汇,计算机也能理解它们的相关性。
如果是人类来理解,句子 1 和句子 2 几乎是同样的含义,而句子 3 却完全不同。但我们看到句子 1 和句子 2 只有“The”是相同的,没有其他相同词汇。计算机该如何理解前两个句子的相关性?
Embedding将单词转换为向量,使得语义相似的句子在向量空间中位置相近。这样,即使句子1和句子2没有很多共同词汇,计算机也能理解它们的相关性。
![](./source/plugin/wq_wechatcollecting/static/images/wq_dian.jpg)
向量空间可视化
图像向量化(Image Embedding):将图像数据转换为向量的过程。
卷积神经网络和自编码器都是用于图像向量化的有效工具,前者通过训练提取图像特征并转换为向量,后者则学习图像的压缩编码以生成低维向量表示。
卷积神经网络(CNN):通过训练卷积神经网络模型,我们可以从原始图像数据中提取特征,并将其表示为向量。例如,使用预训练的模型(如VGG16, ResNet)的特定层作为特征提取器。
自编码器(Autoencoders):这是一种无监督的神经网络,用于学习输入数据的有效编码。在图像向量化中,自编码器可以学习从图像到低维向量的映射。
![](./source/plugin/wq_wechatcollecting/static/images/wq_dian.jpg)
CNN
工作原理:通过算法提取图像的关键特征点及其描述符,将这些特征转换为高维向量表示,使得在向量空间中相似的图像具有相近的向量表示,从而便于进行图像检索、分类和识别等任务。
特征提取:使用算法(如SIFT、SURF、HOG等)从图像中提取关键特征点及其描述符。
高维空间:图像向量通常在高维空间中表示,每个维度对应一个特征或特征描述符。
相似度度量:在向量空间中,可以使用距离度量(如欧氏距离、余弦相似度等)来比较不同图像向量的相似度。
![](./source/plugin/wq_wechatcollecting/static/images/wq_dian.jpg)
图像向量化
视频向量化(Vedio Embedding):OpenAI的Sora将视觉数据转换为图像块(Turning visual data into patches)。
![](./source/plugin/wq_wechatcollecting/static/images/wq_dian.jpg)
将视觉数据转换为图像块
工作原理:Sora 用visual patches 代表被压缩后的视频向量进行训练,每个patches相当于GPT中的一个token。使用patches,可以对视频、音频、文字进行统一的向量化表示,和大模型中的 tokens 类似,Sora用 patches 表示视频,把视频压缩到低维空间(latent space)后表示为Spacetime patches。
OpenAI大模型的核心架构:大力出奇迹。Embedding技术实现文本、图像、视频等数据向量化表示,为大型模型提供了丰富的特征输入。只要模型规模足够大,这些向量化数据就能驱动模型生成各种所需的内容,体现了“万物皆可生成”的能力。