Embedding
Embedding是现代人工智能和机器学习中极其重要地技术,尤其在自然语言处理、计算机视觉和推荐系统等领域发挥着核心作用。
定义
Embedding是一种将离散数据(词语、句子、图像、用户ID等)映射到连续地低维稠密向量空间技术。每个离散对象被表示为一个实数向量,这个向量捕捉了对象的语义或特征信息
本质
Embedding是数字化表示的升级版,不仅是数字化,更是通过学习让向量空间中的距离和方向反应对象间的语义或功能相似度
工作原理
离散到连续的映射
1、离散对象(词汇表中的词)先被分配一个唯一的整数ID
2、Embedding矩阵(形状为词表大小,嵌入维度)存储所有对象对应的向量
3、通过查表(索引ID对应的Embedding矩阵的行)获得该对象的向量表示
语义相似度体现
1、训练过程中,Embedding向量被调整,使得语义相近的对象向量举例更近(如“猫”和“狗”),语义无关的对象向量举例更远(如“猫”和“汽车”)
2、相似度通常用余弦相似度、欧氏距离等度量
训练目标
1、通过上下文关系或预测任务训练Embedding,如Word2Vec的Skip-gram和CBOW模型,最大化同一上下文词的相似度,最小化负样本相似度
2、现代预训练模型(如BERT)通过遮盖词预测等任务训练上下文相关的Embedding
Embedding训练方法
1、Word2Vec:利用神经网络模型,训练词向量,使得能预测上下文词(CBOW)或预测中心词(Skip-gram)
2、GloVe:基于词共现矩阵的统计方法,通过矩阵分解学习词向量
3、FastText:考虑词的子词信息,提升对罕见词的表示能力
4、Transformer模型:通过自身注意力机制生成上下文相关的动态Embedding
训练过程一般包括:
1、初始化Embedding矩阵(随机或预训练)
2、利用大规模语料,定义目标函数(如最大化上下文词概率)
3、反向传播优化Embedding参数
4、训练完成后,Embedding矩阵为所有词的向量表示
Embedding应用场景
1、自然语言处理:词向量、句子向量、文档向量,支持文本分类、机器翻译、情感分析、问答系统等
2、推荐系统:用户和物品的Embedding用于计算相似度,实现个性化推荐
3、计算机视觉:图像特征向量表示,用于图像检索、分类
4、多模态学习:将文本、图像、音频等统一映射到同一向量空间,实现跨模态检索和理解
5、搜索引擎:基于Embedding的语义检索,提升搜索结果相关性
Embedding的技术细节与优化
1、向量维度
- 维度一般在几十到几百之间,维度过低可能无法表达复杂语义,过高则增加计算成本
- 维度选择依赖任务和数据规模
2、相似度计算 - 余弦相似度是最常用的度量,计算两个向量夹角的余弦值
- 也有欧氏距离、点积等方法
3、高效检索 - 大规模Embedding向量检索采用近似最近邻(ANN)算法,如LSH、KD-tree、FAISS库等,提升检索速度
4、可视化 - 利用t-SNE、PCA等降维方法将高维Embedding向量映射到二维或三维空间,便于观察语义聚类和分布
Embedding与传统编码的对比
特点 | One-Hot 编码 | Embedding(分布式表示) |
---|---|---|
维度 | 高维稀疏(等于类别数) | 低维稠密(几十到几百维) |
语义信息 | 无,类别间独立 | 有,向量距离反映语义相似度 |
计算效率 | 低,维度高且稀疏 | 高,维度低且稠密,便于计算 |
可解释性 | 好,位置对应类别 | 差,向量维度难以解释 |
适用范围 | 简单分类变量 | 复杂语义表示,适合 NLP、CV 等多种场景 |
假设有词表大小为10000,Embedding维度为300:
1、One-Hot编码:每个词是长度10000的向量,只有一个位置为1。
2、Embedding表示:每个词是长度300的实数向量,训练后“猫”和“狗”的向量距离较近,“猫”和“汽车”的距离较远。
Embedding是连接离散符号世界与连续向量空间的桥梁,是深度学习理解和处理语言、图像等复杂数据的基石。它通过低维稠密向量有效表达对象的语义和特征,极大提升了模型的表达能力和泛化能力