作者
Joel Barnard
Writer
什么是嵌入?
嵌入是将文本、图像和音频等对象表示为连续向量空间中的点的一种方法,其中这些点在空间中的位置对于机器学习 (ML) 算法具有语义意义。
对于构建文本和图像搜索引擎、推荐系统、聊天机器人、欺诈检测系统等应用程序的机器学习工程师来说,嵌入是一个重要工具。从本质上讲,嵌入能让机器学习模型找到相似的对象。
与其他机器学习技术不同,嵌入是使用各种算法(例如 Neural Networks)从数据中学习的,而不是明确要求人类专业知识来定义。它们允许模型去学习数据中的复杂模式和关系,否则人类将无法识别这些模式和关系。
例如,OpenAI 的嵌入实施使 ChatGPT 能够轻松理解不同单词和类别之间的关系,而不是仅仅单独分析每个单词。 通过嵌入,OpenAI 的 GPT 模型可针对用户提示和问题生成更加连贯、与上下文更相关的响应。
最新的 AI 新闻 + 洞察分析
在每周的 Think 时事通讯中,发现专家精选的有关 AI、云等的洞察分析和新闻。
立即订阅
嵌入的工作原理
大多数机器学习算法只能将低维数值数据作为输入。 因此,有必要将数据转换为数值格式。 这可能涉及为文本数据创建“词袋”表示、将图像转换为像素值或将图形数据转换为数字矩阵等。
进入嵌入模型的对象作为嵌入输出,表示为向量。 向量是一个数字数组(例如 1489, 22…3, 777),其中每个数字表示对象在指定维度的位置。 维度的数量可达到一千个或更多,具体取决于输入数据的复杂性。在 n 维空间中嵌入越接近,就越相似。 分布相似性由一个对象到另一个对象的向量点的长度确定(通过欧几里得、余弦等方法测量)。
谷歌于 2013 年开发了 Word2Vec(词到向量)模型,这是一种使用两层神经网络高效创建词嵌入的方法。 该模型将一个单词作为输入,并输出一个 n 维坐标(嵌入向量),这样,当您在三维空间中绘制这些单词向量时,就会形成同义词簇。
以下说明如何用向量表示“dad”和“mom”这两个词:
“d一个d”=[0.1548,0.4848,…,1.864]
“mom”=[0.8785,0.8974,…,2.794]
尽管这两个词之间存在一些相似性,但我们预计“father”在向量空间中与“dad”的距离更近,从而产生更高的点积(两个向量相对方向的度量以及它们沿着它们指向的方向的紧密对齐程度)。
一个更复杂的示例是推荐嵌入,其工作原理是将用户和物品(如电影、产品、文章)表示为连续向量空间中的高维向量。这些嵌入捕获了反映用户偏好和物品特征的潜在特征。 目标是学习如何表示每个用户和物品,使其嵌入的点积与用户对该物品的偏好相关联。
每个用户和物品都与一个嵌入向量相关联。 这些向量通常是在训练过程中通过推荐模型学习的。 用户嵌入和物品嵌入经整理成矩阵。 用户矩阵的行代表用户,物品矩阵的行代表物品。
用户-物品对的推荐分数可通过用户的嵌入向量和物品的嵌入向量的点积来计算。 点积越高,用户对该物品感兴趣的可能性就越大。
Recommend一个tionScore=UserEmbedding⋅ItemEmbedding
嵌入矩阵是在训练过程中通过使用历史用户-物品交互学习的。该模型旨在最小化预测分数和实际用户偏好(例如评分、点击、购买)之间的差异。
模型受训后,即可用于为用户生成前 N 个推荐。 向用户推荐预测分数最高的物品。
Mixture of Experts | 4 月 25 日,第 52 集
解码 AI:每周新闻摘要
加入我们由工程师、研究人员、产品负责人等组成的世界级专家团队,他们将突破 AI 的喧嚣,为您呈现最新的 AI 新闻和洞察分析。
观看最新播客节目
为什么要使用嵌入
嵌入能够将高维和分类数据转换为连续向量表示,从而捕获有意义的模式、关系和语义,因此可用于各种领域和应用程序。以下是 数据科学中使用嵌入的几个原因:
语义表示
嵌入将实体(单词、图像、图表中的节点等)映射到连续空间中的向量,从而捕获语义关系和相似性,使模型能够更好地理解和概括。
减小维度
高维数据(例如文本、图像或图表)可转换为低维表示,从而提高计算效率且更易于使用。
改进模型泛化
通过从数据中学习有意义的表示,模型可很好地运用于未知示例,这使得嵌入对于标注数据有限的任务至关重要。
有效可视化
t-SNE 等技术可用于二维或三维的高维嵌入的可视化,从而深入了解对数据中的关系和集群。
神经网络的高效训练
嵌入层通常用于神经网络架构中,将分类输入映射到连续向量,从而促进反向传播和优化。
可嵌入哪些对象?
嵌入是一种通用的表示方法,可应用于多种数据类型。以下是一些最常见的可嵌入对象:
单词
词嵌入根据给定语言语料库中的使用模式捕获单词的语义关系和上下文含义。每个单词都表示为一个固定大小的实数密集向量。 它与稀疏向量相反,例如具有许多零条目的独热编码。
词嵌入的使用提供了更有意义、更高效的词表示,显著提高了自然语言处理 (NLP) 模型的性能。这些嵌入使机器能捕获语义细微差别和上下文关系,从而理解和处理语言,这使得它们对于情感分析、机器翻译和信息检索等广泛的应用具有价值。
流行的单词嵌入模型包括 Word2Vec、GloVe(用于文字表示的全局向量)、FastText 和源自基于转换器的模型的嵌入,例如 BERT(来自转换器的双向编码器表示)和 GPT(生成式预训练转换器)。
文本
文本嵌入扩展了词嵌入,以表示连续向量空间中的整个句子、段落或文档。 文本嵌入在各种自然语音处理应用中发挥着至关重要的作用,例如情感分析、文本分类、机器翻译、问答和信息检索。
Doc2Vec、USE(通用句子编码器)、BERT 和 ELMO(语言模型嵌入)等模型已经在大量预先训练的嵌入语料库(例如维基百科和谷歌新闻)上进行了训练。
图像
图像嵌入旨在捕获图像内容的视觉特征和语义信息。 图像嵌入对于各种计算机视觉任务特别有用,有助于对图像相似性、图像分类、对象检测和其他视觉识别任务进行建模。
用于图像嵌入的流行卷积神经网络 (CNN) 包括 VGG(视觉几何组)、ResNet(残差网络)、Inception (GoogLeNet) 和 EfficientNet 等模型。这些模型已在大规模图像数据集上进行了预训练,可用作强大的特征提取器。
音频
与图像和文本嵌入类似,音频嵌入通常使用深度学习架构生成,特别是循环神经网络 (RNN)、卷积神经网络 (CNN) 或结合两者的混合模型。 这些嵌入捕获音频数据的相关特征和特性,从而可进行有效的分析、处理和相似性度量。 音频嵌入在语音识别、音频分类和音乐分析等应用中特别有用。
图表
图表嵌入对于各种任务至关重要,包括复杂网络中的节点分类、链接预测和社区检测。 这些嵌入在社交网络分析、推荐系统、生物网络分析、欺诈检测以及数据可用图表表示的各种其他领域都有应用。
如何创建嵌入
嵌入通过名为“嵌入学习”的过程创建。尽管使用的具体方法取决于被嵌入数据的类型,但嵌入一般按照以下步骤创建:
选择或训练嵌入模型:选择适合数据和任务的已有嵌入模型,或在必要时训练一个新模型。对于文本,您可以选择 Word2Vec、GloVe 或 BERT。 对于图像,您可以使用预训练的 CNN,例如 VGG 或 ResNet。
准备数据: 以与所选嵌入模型兼容的方式格式化数据。对于文本,这涉及标记化,也可能涉及预处理。对于图像,您可能需要调整图像大小并将图像标准化。加载或训练嵌入模型: 如果使用预训练模型,则加载权重和架构。如果训练一个新模型,则向算法提供已准备好的训练数据。
生成嵌入:对于每个数据点,使用经过训练或加载的模型生成嵌入。例如,如果使用单词嵌入模型,则输入一个单词以获得其对应的向量。
将嵌入集成到您的应用程序中:将生成的嵌入作为机器学习模型中的功能,或用于相似性搜索、推荐、聚类等,这取决于您的特定任务。
所有嵌入的目标都在于表示连续向量空间中数据,并保留其中有意义的关系。 训练过程涉及根据所选目标函数调整模型参数,以尽量减少预测值和实际值之间的差异。经过训练后,嵌入可用于各种下游任务。
嵌入的实际示例
嵌入广泛用于现实世界中不同领域的应用程序。 例如:
自然语言处理 (NLP)
情感分析中的词嵌入: Word2Vec 或 GloVe 等词嵌入用于表示连续向量空间中的单词。情感分析模型可利用这些嵌入来理解一段文本的情感并对其进行分类。
用于问答的 BERT:BERT 嵌入用于问答系统。该模型可理解问题和文档的上下文以提取相关信息。
使用 Doc2Vec 衡量文本相似性: Doc2Vec 嵌入可用于查找相似文档等任务。通过比较文档嵌入来衡量文档之间的语义相似性。
计算机视觉
使用卷积神经网络进行图像分类: 卷积神经网络(例如 VGG 或 ResNet)用于图像分类任务。最终层或中间层的特征可用作图像嵌入。
使用 CLIP 进行图像检索:CLIP 模型学习图像和文本的联合嵌入。这支持基于自然语言查询的图像检索等应用程序。
使用 FaceNet 进行面部识别:FaceNet 为可用于面部识别的面部创建嵌入。这些嵌入通常用于衡量不同人脸之间的相似性。
推荐系统
带嵌入的协同过滤: 嵌入用于表示协同过滤模型中的用户和物品。矩阵分解方法利用这些嵌入来提出个性化推荐。
使用词嵌入进行产品推荐:在电子商务中,可使用词嵌入来嵌入产品描述或评论。可以根据嵌入的语义相似度推荐类似的产品。
跨模态应用
使用 MUSE 进行多模态翻译:MUSE(多语言通用句子编码器)可实现跨语言和跨模态理解。它可用于翻译多语言文本或将图像与相应描述连接等任务。
使用联合嵌入的跨模态搜索: 针对不同模态(例如图像和文本)学习联合嵌入。这允许跨模态搜索,即以一个模态的数据作为查询,检索另一模态中与之相关的数据。
异常检测
利用图表嵌入进行网络异常检测: 网络节点的嵌入可用于检测异常。嵌入空间发生变化可能表明出现异常行为。
通过交易嵌入进行欺诈检测:交易数据嵌入有助于识别与欺诈活动相关的模式。不寻常的嵌入可能表明存在潜在欺诈交易。
这些示例强调了嵌入在不同应用程序中的多功能性,展示了它们捕获不同类型数据中有意义的表示和关系的能力。