Embedding (NLP) — 嵌入
Jump to navigation
Jump to search
嵌入(Embedding,源自英文“embedding”,意为“嵌入”)是机器学习和自然语言处理领域的一项基础技术,它将离散或复杂的对象(如单词、句子、图像)转换为固定维度的数值向量表示。这些向量或嵌入被放置在一个多维空间中,使得语义上相似的对象在空间中彼此靠近。
定义与概念
形式上,嵌入是一个映射函数 ,其中 是原始对象空间(例如,词汇表),而 是一个维度为 的多维向量空间(嵌入空间)。维度 远小于原始空间的维度,这使得这些表示是密集的(dense)。
词向量表示的理论基础是分布语义学,该理论认为词的意义由其使用的上下文决定。也就是说,出现在相似上下文中的词具有相似的含义,因此它们的向量表示也相近。
嵌入的基本原则
- 固定维度: 所有对象都被映射为相同长度的向量,而不受原始数据大小(例如句子长度)的影响。
- 语义相似性: 向量之间的距离(通常通过余弦相似度度量)反映了原始对象的语义相似性。
- 支持数学运算: 向量保留了语义关系,允许对其进行代数运算。一个经典的例子是:。
历史与发展
早期方法 (1980–2000年代)
向量表示的最初思想出现在20世纪80年代的神经网络研究中。早期的方法基于对词语共现的统计分析。
Word2Vec 时代 (2013)
2013年,由 Tomas Mikolov 领导的 Google 团队开发的 Word2Vec 成为一个革命性的时刻。Word2Vec 提出了两种高效且计算成本较低的词嵌入训练架构:
- CBOW (Continuous Bag of Words): 根据周围的上下文预测中心词。
- Skip-gram: 根据中心词预测上下文词。
Word2Vec 凭借其开源代码和高运行速度,成为第一个广受欢迎的向量表示实现。
其他方法的发展
继 Word2Vec 之后,出现了其他重要的静态嵌入模型:
- GloVe (2014): 由斯坦福大学开发的模型,利用全局词语共现统计数据来训练向量。
- FastText (2015): Facebook 推出的模型,通过将每个词表示为其字符n-gram向量之和来考虑词的形态。这使得即使对于训练词汇表中不存在的词(词汇表外词,Out-of-Vocabulary),也能够创建嵌入。
Transformer 与上下文嵌入时代 (2018至今)
随着 Transformer 架构和 BERT 模型(2018)的出现,该领域取得了突破。这催生了上下文嵌入,其中词的向量表示取决于其使用的上下文。与静态表示(例如,“key”一词在“door key”和“musical key”中具有相同的向量)不同,上下文模型会为每种情况生成不同的嵌入。
嵌入的类型
按表示层级划分
- 词嵌入: 基本类型,每个词由一个单独的向量表示(Word2Vec, GloVe)。
- 句子和文档嵌入: 将整个短语、句子或文档表示为单个向量(PV-DM, PV-DBOW)。
- 用户和物品嵌入: 用于推荐系统,表示用户的兴趣和商品的特征。
按上下文相关性划分
- 静态嵌入: 每个词被分配一个固定的向量,与上下文无关(Word2Vec, GloVe, FastText)。
- 上下文嵌入: 根据词的周围环境为同一个词生成不同的表示。主要代表有:
- BERT: 基于 Transformer 的双向模型。
- ELMo: 双向 LSTM 模型。
- RoBERTa, DistilBERT, ALBERT: BERT 的改进版本。
按模态划分
- 文本嵌入: 最常见的类型,包括词、句子和文档的表示。
- 视觉嵌入: 用于计算机视觉任务的图像表示。
- 多模态嵌入: 将不同类型的数据(文本、图像、音频)整合到同一个向量空间中。例如 ImageBind,能够连接来自六种模态的数据。
架构与训练方法
经典方法
- 独热编码 (One-hot encoding): 最简单的方法,其中每个词被编码为一个与词汇表大小相同的向量,在相应位置为1。缺点是维度高、稀疏且缺乏语义信息。
- 矩阵分解: 将降维方法(如 LSA)应用于词语共现矩阵。
神经网络架构
- 浅层神经网络: Word2Vec 中的 CBOW 和 Skip-gram 架构使用两层神经网络进行高效训练。
- Transformer: 凭借其注意力机制 (attention) 彻底改变了该领域的架构。
现代方法
- 掩码自监督学习: BERT 使用预测被掩盖词语的任务来训练上下文表示。
- 对比学习: 旨在最大化语义相近(正)对的相似性,并最小化语义疏远(负)对的相似性的方法。
嵌入的应用
嵌入在各个领域都有广泛的应用:
自然语言处理
- 搜索与信息检索:提高语义搜索的质量,允许按意义而非关键词查找文档。
- 文本分类:向量表示作为分类器的输入数据,提高了其准确性。
- 情感分析:结合上下文确定文本的情感色彩。
- 机器翻译:增进对源语言和目标语言语义的理解。
推荐系统
用户和商品的嵌入是性化推荐系统的基础,包括:
- 协同过滤: 基于用户行为的嵌入。
- 基于内容的过滤: 使用商品特征的嵌入。
计算机视觉
- 图像分类与搜索: 卷积神经网络和 Vision Transformer 创建图像嵌入,用于图像分类和视觉相似图像的搜索。
生物信息学与医学
- 医学数据分析: 分析临床记录和诊断疾病。
- 分子表示: 创建嵌入以预测化合物的性质。
技术细节与优化
- 维度优化方法: Matryoshka Representation Learning (MRL) 是一种创新方法,允许从单个模型中获得不同维度的嵌入,将重要信息集中在向量的开头部分。
- 嵌入量化: 降低数值表示的精度(例如,降至8位或4位),以加速计算并节省内存。
- 与数据库集成: 现代向量数据库(如 Milvus, Pinecone)以及传统数据库管理系统(DBMS)的扩展(如 PostgreSQL 的 pgvector)能够高效地存储和搜索嵌入。
链接
参考文献
- Mikolov, T. et al. (2013). Efficient Estimation of Word Representations in Vector Space. arXiv:1301.3781.
- Mikolov, T. et al. (2013). Distributed Representations of Words and Phrases and their Compositionality. arXiv:1310.4546.
- Pennington, J.; Socher, R.; Manning, C. (2014). GloVe: Global Vectors for Word Representation. PDF.
- Bojanowski, P. et al. (2017). Enriching Word Vectors with Subword Information. arXiv:1607.04606.
- Joulin, A. et al. (2017). Bag of Tricks for Efficient Text Classification. arXiv:1607.01759.
- Peters, M. E. et al. (2018). Deep Contextualized Word Representations. ACL Anthology.
- Devlin, J. et al. (2019). BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding. arXiv:1810.04805.
- Reimers, N.; Gurevych, I. (2019). Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks. arXiv:1908.10084.
- Kusupati, A. et al. (2022). Matryoshka Representation Learning. arXiv:2205.13147.
- Radford, A. et al. (2021). Learning Transferable Visual Models From Natural Language Supervision. PMLR 139.
- Girdhar, R. et al. (2023). ImageBind: One Embedding Space To Bind Them All. CVPR 2023.