机器学习模型处理的原始数据,如文本、图像或复杂的图结构,往往无法直接使用。嵌入 (Embeddings) 技术应运而生,它是一种强大的方法,可以将这些原始、非结构化数据转换成模型能够理解和处理的数值向量。本文将深入探讨嵌入 (Embeddings) 的概念、重要性、创建过程及其在现实机器学习任务中的应用,并着重介绍如何利用嵌入 (Embeddings) 技术来提升大模型时代高质量训练数据的生成与评估。

高质量训练数据的重要性

高质量的训练数据是机器学习成功的基石,它直接影响模型的准确性、可靠性和公平性。模型需要大规模、多样化和无偏的数据集才能有效学习。低质量或有偏的数据会导致不准确或带有歧视性的预测。这对于包括 ChatGPT 和 BERT 等大型语言模型在内的所有 AI 模型都适用。例如,Google 的 C4 数据集中的缺陷以及 Google Vision AI 最近出现的偏见问题,都突显了使用低质量或有偏数据的风险。如果模型训练的数据集中包含大量特定性别、种族或年龄段的样本,模型可能在处理其他群体的输入时表现不佳。因此,在构建大模型时,必须重视数据的质量,并积极探索提升数据质量的方法。

什么是嵌入 (Embeddings)?

在人工智能领域,嵌入 (Embeddings) 是一种学习到的数学表示,它将复杂数据(如文本、图像或音频)映射到低维空间,从而捕捉有意义的关系和模式。与手动定义的特征不同,嵌入 (Embeddings) 是从大型数据集中学习的,使模型能够检测到人类可能忽略的模式。这些 嵌入 (Embeddings) 随后可用作其他模型的输入,以提高预测和决策能力。例如,在自然语言处理(NLP)中,可以将单词、句子甚至整个文档转换为 嵌入 (Embeddings),以便模型可以理解其语义关系。

为什么要使用嵌入 (Embeddings)?

原始数据通常是类别型的或非结构化的,而传统的机器学习算法需要数值输入。嵌入 (Embeddings) 提供了一种编码这些信息的方法,同时保留不同实体之间的语义关系。以电商领域的推荐系统为例,用户和商品都可以表示为 嵌入 (Embeddings)。相似的用户(例如,购买了类似商品的用户)在 嵌入 (Embeddings) 空间中会彼此靠近。同样,相似的商品(例如,同一类型的商品)也会聚集在一起。这种表示方法使得推荐系统能够更有效地预测用户的兴趣,并提供个性化的推荐。

嵌入 (Embeddings) 的工作原理

让我们考虑一下经典的词 嵌入 (Embeddings) 示例。在自然语言处理 (NLP) 中,像 Word2Vec、GloVe 或 FastText 这样的 嵌入 (Embeddings) 将单词转换为高维向量。其思想是,相似的词语出现在相似的上下文中,因此应该具有相似的向量。例如,“king” 和 “queen” 的向量在空间中会比 “king” 和 “banana” 的向量更接近。这种向量表示使得模型能够理解词语之间的语义关系,从而提高 NLP 任务的性能。

嵌入 (Embeddings) 空间的直观理解

嵌入 (Embeddings) 空间的结构使得几何关系能够反映语义或功能上的相似性。例如:

vec(“king”) — vec(“man”) + vec(“woman”) ≈ vec(“queen”)

这种代数推理之所以成为可能,是因为模型在训练过程中学会隐式地捕捉潜在维度,如性别、皇室或职业。通过 嵌入 (Embeddings) 技术,我们可以将复杂的语义关系转换为简单的数学运算,这为机器学习模型理解语言提供了一种有效的方法。

如何创建嵌入 (Embeddings)?

嵌入 (Embeddings) 是在模型训练过程中学习的。以下是一些常见的技术:

  1. 词、句子和文档嵌入 (Embeddings)

    • Word2Vec (CBOW 和 Skip-Gram):从上下文中预测一个词或从一个词预测上下文。例如,给定句子 “The cat sat on the mat”,CBOW 模型会尝试从 “the”, “sat”, “on”, “the”, “mat” 这些上下文中预测 “cat”。 Skip-Gram 模型则反过来,从 “cat” 预测上下文。
    • GloVe:基于全局词共现统计进行训练。GloVe 算法会统计语料库中每个词语与其他词语共同出现的频率,并利用这些统计信息来构建词向量。
    • FastText:通过考虑子词(字符 n-gram)信息来扩展 Word2Vec。例如,“apple” 这个词会被分解成 “ap”, “app”, “ppl”, “ple”, “le” 等 n-gram。这使得 FastText 能够处理未登录词 (out-of-vocabulary words),并更好地理解词语的形态学。
    • Sentence-BERT:微调 BERT 以生成句子级别的 嵌入 (Embeddings)。Sentence-BERT 通过修改 BERT 的结构,使其能够直接生成句子级别的 嵌入 (Embeddings),从而提高句子相似度计算的效率。
    • Doc2Vec:将 Word2Vec 扩展到文档。Doc2Vec 算法为每个文档学习一个向量表示,该向量可以捕捉文档的语义信息。
  2. 图像嵌入 (Embeddings)

    • 通过提取 CNN (例如 ResNet, VGG) 的中间层激活值来获得。这些 嵌入 (Embeddings) 可以用于相似性搜索、聚类或图像描述。 例如,可以将 ResNet 模型的倒数第二层的激活值作为图像的 嵌入 (Embeddings)
  3. 图嵌入 (Embeddings)

    • 像 Node2Vec、DeepWalk 和 GraphSAGE 这样的技术基于图中的节点结构和邻域将节点表示为向量。例如,在社交网络中,可以将用户表示为图中的节点,用户之间的关系表示为边。然后,可以使用图 嵌入 (Embeddings) 技术来学习用户的向量表示,从而可以用于推荐、社区检测等任务。

嵌入 (Embeddings) 的应用

嵌入 (Embeddings) 已成为几乎每个机器学习领域中的关键工具:

  • NLP → 情感分析、翻译、搜索。 例如,在情感分析中,可以将文本转换为 嵌入 (Embeddings),然后使用分类器来预测文本的情感。
  • 计算机视觉 → 人脸识别、图像搜索、分类。例如,在人脸识别中,可以将人脸图像转换为 嵌入 (Embeddings),然后比较 嵌入 (Embeddings) 之间的距离来判断是否是同一个人。
  • 推荐系统 → 用于协同过滤的用户/项目 嵌入 (Embeddings)。例如,可以将用户和商品都表示为 嵌入 (Embeddings),然后根据用户和商品 嵌入 (Embeddings) 之间的相似度来推荐商品。
  • 医疗保健 → 来自 EHR 数据的患者 嵌入 (Embeddings)。例如,可以将患者的病历数据转换为 嵌入 (Embeddings),然后使用这些 嵌入 (Embeddings) 来预测患者的疾病风险。
  • 金融 → 用于欺诈检测的交易模式 嵌入 (Embeddings)。例如,可以将交易数据转换为 嵌入 (Embeddings),然后使用这些 嵌入 (Embeddings) 来检测异常交易。

AI 嵌入 (Embeddings) 在机器学习和数据创建中具有广泛的应用。它们通过去噪、识别模式和处理缺失值来提高数据质量。 嵌入 (Embeddings) 还通过支持基于相似性的自动标记来减少手动数据标记的需要。 它们通过将高维数据压缩为更小的、信息丰富的向量来降低计算成本。 总之,嵌入 (Embeddings) 简化了数据处理并提高了各个领域的模型性能。

如何使用嵌入 (Embeddings) 创建高质量的训练数据

  1. 数据准备

    高质量 嵌入 (Embeddings) 的基础是充分准备的数据。 无论是文本、图像还是图数据,预处理对于确保 嵌入 (Embeddings) 捕获有意义且准确的模式至关重要。

    对于文本数据,这涉及诸如分词、删除停用词、纠正拼写错误和消除标点符号等步骤。 例如,在使用 Word2Vec 训练词向量之前,需要对文本进行分词、删除停用词等预处理操作。

    对于图像数据,它可能包括将图像大小调整为一致的尺寸、删除重复项或过滤掉不相关的视觉效果,例如过于暗或亮的图像。例如,在使用 CNN 提取图像特征之前,需要将图像大小调整为一致的尺寸,并进行归一化处理。

    如果没有适当的数据清理,生成的 嵌入 (Embeddings) 可能会错误地表示输入数据,从而导致次优的模型性能。

  2. 嵌入 (Embeddings) 技术

    一旦数据被清理并以数值形式存在,就可以根据数据类型和任务应用几种 嵌入 (Embeddings) 方法:

    • PCA 和 SVD → 这些线性降维技术将高维数据转换为紧凑空间,从而保留关键方差。 PCA 通常用于图像和音频处理,而 SVD 为诸如文档相似性和推荐系统之类的任务提供支持。 例如,可以使用 PCA 将高维的人脸图像 嵌入 (Embeddings) 降维到低维空间,从而减少计算量。
    • 自编码器 → 学习将数据压缩为低维表示并重建它的神经网络。 在诸如异常检测、聚类以及从非结构化数据中提取特征之类的场景中很有用。 例如,可以使用自编码器学习图像的低维 嵌入 (Embeddings),然后使用这些 嵌入 (Embeddings) 来检测异常图像。
    • Word2Vec 和 GloVe → 两者都生成单词的向量表示,但在方法上有所不同。Word2Vec 从目标词预测上下文(反之亦然),从而捕获语义关系。GloVe 使用全局共现统计信息构建单词向量,从而提供更丰富的上下文 嵌入 (Embeddings)。 例如,可以使用 Word2Vec 或 GloVe 训练词向量,然后使用这些词向量来计算文本的相似度。
    • BERT → 由 Google 提供的基于 Transformer 的模型,BERT 通过考虑左右上下文来生成深度上下文词 嵌入 (Embeddings)。 BERT 在庞大的文本语料库上进行了预训练,在诸如情感分析、问答和分类之类的任务中非常有效,并且可以针对特定用例进行微调。例如,可以使用 BERT 生成文本的 嵌入 (Embeddings),然后使用这些 嵌入 (Embedings) 来进行情感分析。
    • t-SNE → 主要用于可视化,t-SNE 将高维数据简化为 2D 或 3D,同时保留局部关系。 尽管计算量很大,但它对于探索聚类和理解 嵌入 (Embeddings) 质量很有用。 例如,可以使用 t-SNE 将高维的图像 嵌入 (Embeddings) 降维到 2D 空间,从而可以可视化图像的聚类情况。
    • UMAP → UMAP 平衡了局部和全局结构保留与计算效率。 它越来越多地用于基因组学、NLP 和计算机视觉等领域,以生成不仅对可视化有用,而且对下游 ML 模型有用的 嵌入 (Embeddings)。 例如,可以使用 UMAP 将高维的基因表达数据 嵌入 (Embeddings) 降维到 2D 空间,从而可以可视化基因的聚类情况。

分析和验证嵌入 (Embeddings) 以进行质量保证

分析和验证 嵌入 (Embeddings) 对于确保其在机器学习任务中的有效性和公平性至关重要。 一种广泛使用的方法是可视化 — 使用诸如 t-SNE 或 PCA 之类的技术将高维数据 嵌入 (Embeddings) 到 2D 或 3D 中。 这有助于发现模式、聚类或异常值,从而更容易检测数据中的异常或潜在偏差。

像 Encord Active 这样的平台提供了可视化工具来绘制 嵌入 (Embeddings),特别是对于图像数据集。 这些可视化效果允许用户检查数据的分布,识别错误标记,并评估聚类质量 — 从而提高数据和标签质量。

除了可视化之外,还必须在诸如分类或预测之类的下游任务上验证 嵌入 (Embeddings)。 比较不同 嵌入 (Embeddings) 方法的性能有助于衡量其真实世界的效用并确定改进之处。

最后,重要的是评估和减轻 嵌入 (Embeddings) 中的偏差。 由于 嵌入 (Embeddings) 可能会继承和放大来自训练数据的偏差,因此需要使用诸如去偏见之类的技术来确保建立在这些 嵌入 (Embedings) 上的模型保持公平和公正。例如,可以使用 Word Embedding Association Test (WEAT) 来评估词向量中的性别偏见。

简而言之,有效的可视化、特定于任务的评估和偏差缓解是 嵌入 (Embeddings) 质量保证的关键组成部分。

嵌入 (Embeddings) 的评估

评估 嵌入 (Embeddings) 是确定它们如何很好地捕获数据的底层结构和语义的关键步骤。一个好的 嵌入 (Embeddings) 不仅应该降低维度,还应该保留有意义的关系并提高下游任务的性能。嵌入 (Embeddings) 的评估可以大致分为内在和外在方法。

  1. 内在评估

    内在方法基于内部属性(例如相似性、聚类或结构)评估 嵌入 (Embeddings) 的质量,而无需涉及特定任务。

    • 相似性和类比测试:对于词 嵌入 (Embeddings),使用诸如 WordSim-353 或 Google 的类比数据集之类的数据集来检查相似的词是否在向量空间中接近,或者是否保留了类比关系(例如,男人:国王::女人:?)。 例如,可以使用 WordSim-353 数据集来评估词向量的质量,该数据集包含一组词语对,以及它们之间的相似度得分。
    • 聚类质量:使用诸如 t-SNE、PCA 或 UMAP 之类的可视化工具来检查相似项(例如,相同的类标签或语义类别)的 嵌入 (Embeddings) 是否形成不同的、连贯的聚类。 例如,可以使用 t-SNE 将图像 嵌入 (Embeddings) 降维到 2D 空间,然后可视化图像的聚类情况。
    • 邻域一致性:通过计算 嵌入 (Embeddings) 空间中数据点的最近邻居,可以检查语义或结构上相似的项目是否紧密放置在一起。
  2. 外在评估

    外在评估衡量 嵌入 (Embeddings) 在用于诸如分类、回归或推荐之类的下游任务时的表现如何。

    • 分类准确性:嵌入 (Embeddings) 用作分类器(例如,逻辑回归、SVM 或神经网络)的输入特征。更好的 嵌入 (Embeddings) 通常会导致改进的分类性能。例如,可以使用词向量作为文本分类器的输入特征,从而提高分类准确率。
    • 信息检索:在检索任务中,可以通过测量检索相似项目(例如,检索相似的图像、文档或产品)时的精确度和召回率来评估 嵌入 (Embeddings)。例如,可以使用图像 嵌入 (Embeddings) 来检索相似的图像,并使用精确度和召回率来评估 嵌入 (Embedings) 的质量。
    • 推荐系统:对于用户/项目 嵌入 (Embeddings),可以使用诸如平均精度均值 (MAP)、归一化折扣累积增益 (NDCG) 或命中率之类的指标来评估性能。例如,可以使用用户和商品 嵌入 (Embeddings) 来进行商品推荐,并使用 MAP 或 NDCG 来评估推荐的质量。
    • 迁移学习:高质量的 嵌入 (Embeddings) 应该很好地泛化到其他任务或领域。可以通过将预训练的 嵌入 (Embeddings) 迁移到新任务并观察性能提升来测试这一点。例如,可以将预训练的词向量迁移到文本分类任务中,从而提高分类准确率。
  3. 嵌入 (Embeddings) 评估的定量指标

    • 余弦相似度:通常用于测量两个 嵌入 (Embeddings) 向量基于其方向而不是大小的相似程度。
    • 欧几里得距离:用于聚类或最近邻任务,以评估 嵌入 (Embeddings) 在向量空间中的接近程度。
    • 轮廓系数:评估对象与其自身聚类与其他聚类的相似程度。
    • t-SNE 可信度和连续性分数:这些是评估低维 嵌入 (Embeddings) 如何很好地保留局部和全局结构的指标。
  4. 偏差和公平性评估

    嵌入 (Embeddings) 可能会编码和永久化训练数据中存在的社会偏见。评估它们是否具有以下偏差至关重要:

    • 使用预定义的偏差评估数据集(例如,WEAT — 词 嵌入 (Embeddings) 关联测试)的性别、种族或年龄偏差。
    • 偏差指标,例如机会均等差异、人口均等和不同影响。

    如果发现偏差,则可以使用基于投影的方法、对抗训练或反事实数据增强之类的去偏见技术。

总结

嵌入 (Embeddings) 是当今许多机器学习系统的支柱。 它们使我们能够解锁非结构化数据中的含义和结构,从而使更智能的模型能够理解关系、语义甚至类比。 无论您是构建聊天机器人、推荐引擎还是欺诈检测模型; 掌握 嵌入 (Embeddings) 将使您能够构建更智能、更有效的解决方案,从而更好地赋能大模型时代的高质量训练数据,最终提升 AI 的性能和应用范围。