欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 建筑 > 【小白学AI系列】NLP 核心知识点(七)Embedding概念介绍

【小白学AI系列】NLP 核心知识点(七)Embedding概念介绍

2025/2/21 2:59:15 来源:https://blog.csdn.net/qq_40855242/article/details/145686278  浏览:    关键词:【小白学AI系列】NLP 核心知识点(七)Embedding概念介绍

Embedding(嵌入) 是自然语言处理(NLP)中非常重要的概念。简单来说,embedding 是一种将离散的、稀疏的、不可直接计算的对象(比如词、字符或句子)转换为 密集的、连续的向量表示 的技术。

这个向量通常是低维的,并且在向量空间中能够捕捉到该对象的某些语义或结构特征。可以通过这种方式将我们通常理解为 文本 的信息转化为模型可以处理的数字形式。

1. 为什么需要Embedding?

传统的计算机处理文本的方式往往是将每个词表示为 独热编码(One-Hot Encoding),即通过一个 非常长的向量 来表示词汇表中每个单词。每个词都被表示成一个 高维的稀疏向量,其中只有一个元素是 1,其他元素是 0。例如:

  • 假设词汇表包含 10000 个单词,那么 “apple” 可能就表示为一个长度为 10000 的向量,其中只有 “apple” 这个位置是 1,其他全是 0。

但是这种表示方法有两个主要问题:

  1. 维度高:如果词汇表很大,向量维度会非常高,计算开销也会增加。
  2. 缺乏语义联系:独热编码无法捕捉到词与词之间的关系。例如,“猫”和“狗”是相似的词,但它们在独热编码下完全不相同,无法体现它们的语义关系。

因此,我们需要一种能够 压缩 表示并 捕捉语义关系 的方法。这时,词嵌入(Embedding) 就应运而生。

2. 词嵌入(Word Embedding)

词嵌入(Word Embedding)是将每个单词映射到一个 低维的实数向量空间,这样不仅能减少存储空间,还能有效地捕捉词与词之间的语义关系。

例如,词嵌入将 “apple”、“banana” 和 “fruit” 映射到一个低维向量空间,其中 “apple” 和 “banana” 会比它们与 “dog” 之间的距离要近,从而反映出它们在语义上的相似性。

3. 常见的词嵌入模型

最常见的词嵌入模型包括:

  1. Word2Vec(Skip-gram 和 CBOW)
  2. GloVe(Global Vectors for Word Representation)
  3. FastText
  4. ELMoBERT(基于上下文的词嵌入)
(1) Word2Vec

Word2Vec 是一个基于 神经网络 的模型,可以通过两种方法来训练:

  • Skip-gram:通过给定上下文(周围的词)来预测目标词。
  • CBOW(Continuous Bag of Words):通过给定目标词来预测上下文中的词。

Word2Vec 通过将词嵌入到一个连续的向量空间中,并通过训练使得语义相似的词在向量空间中彼此接近。

(2) GloVe

GloVe 是一种基于 矩阵分解 的词嵌入方法,它通过捕捉全局词汇统计信息来学习词向量,尤其关注词与词之间的共现关系。与 Word2Vec 不同,GloVe 不依赖于局部上下文,而是通过计算词与词之间在大规模语料库中的统计关系来生成词嵌入。

(3) FastText

FastText 是 Facebook 提出的模型,它的一个主要优点是能够 处理词汇表之外的词,通过将词分解成子词(subwords),因此可以更好地处理未知词(Out of Vocabulary, OOV)。比如,“apple” 这个词可以被拆分成 “ap”、“ple” 等子词,这样可以更好地处理未出现的词汇。

(4) BERT 和 ELMo

BERT 和 ELMo 则是基于上下文的词嵌入模型,它们不仅根据词汇本身,还利用 上下文信息 来生成词向量。BERT 在训练时通过 双向 Transformer 来捕捉上下文信息,因此它的词嵌入不仅仅是一个固定的词向量,而是根据该词在具体上下文中的含义来动态生成向量。

4. 如何使用词嵌入(Word Embedding)?

词嵌入模型的输出是每个单词对应的一个向量。你可以将这些向量作为特征输入到其他机器学习模型中进行训练,例如:

  • 分类任务:如情感分析、垃圾邮件分类。
  • 生成任务:如机器翻译、文本生成。
  • 相似度计算:通过计算词嵌入的 余弦相似度,可以度量两个词的相似性。

5. 示例:如何通过 Word2Vec 生成嵌入

假设我们有一个训练好的 Word2Vec 模型,我们想查看词 “apple” 和 “banana” 的词嵌入向量,计算它们的 相似度

  1. 输入词 “apple” 和 “banana” 通过 Word2Vec 模型,获取它们的词嵌入向量 v a p p l e \mathbf{v_{apple}} vapple v b a n a n a \mathbf{v_{banana}} vbanana
  2. 计算它们的 余弦相似度(Cosine Similarity):

cosine_similarity = v a p p l e ⋅ v b a n a n a ∥ v a p p l e ∥ ∥ v b a n a n a ∥ \text{cosine\_similarity} = \frac{\mathbf{v_{apple}} \cdot \mathbf{v_{banana}}}{\| \mathbf{v_{apple}} \| \| \mathbf{v_{banana}} \|} cosine_similarity=vapple∥∥vbananavapplevbanana

如果 “apple” 和 “banana” 在语义上相似,余弦相似度会接近 1;如果不相似,余弦相似度会接近 0。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词