一文彻底搞懂自然语言处理 - 词嵌入(Word Embedding) 原创

发布于 2024-11-18 18:45
浏览
0收藏

一文彻底搞懂自然语言处理 - 词嵌入(Word Embedding)-AI.x社区

在自然语言处理中,词汇通常被表示为离散的符号(如独热编码One-Hot Encoding。但独热编码存在维度灾难和语义缺失,导致计算复杂且无法表达词汇间关系。为了解决这些问题,词嵌入技术应运而生。

词嵌入(Word Embedding)是NLP中的一个关键技术,它能够将词汇从离散的符号表示转换为连续的向量表示,从而方便后续的深度学习模型进行处理。

一文彻底搞懂自然语言处理 - 词嵌入(Word Embedding)-AI.x社区

Word Embedding

一、One-Hot Encoding

什么是独热编码(one-hot 编码)​?独热编码的基本思想是为词汇表中的每个词汇分配一个唯一的向量。这个向量的长度等于词汇表的大小,向量中的每个元素都是0,除了代表该词汇的那个位置是1。

例如,假设我们的词汇表为 {“Biscoe”, “Dream”, “Torgensen”},那么“Biscoe”可以表示为 [1, 0, 0],“Dream”表示为 [0, 1, 0],“Torgensen”表示为 [0, 0, 1]。

一文彻底搞懂自然语言处理 - 词嵌入(Word Embedding)-AI.x社区

为什么独热编码是个糟糕的选择?独热编码在自然语言处理中因维度灾难造成计算负担,且由于语义缺失无法表达词汇间的相关性,因此通常不被视为理想选择

  1. 维度灾难:随着词汇表的增大,向量的维度也会增大,导致计算和存储的复杂度增加。
  2. 语义缺失:独热编码无法表达词汇之间的语义关系,因为任何两个不同词汇的向量之间的点积都是0。

一文彻底搞懂自然语言处理 - 词嵌入(Word Embedding)-AI.x社区

二、Word2Vec

Word2Vec是什么?Word2Vec 是由 Google 在 2013 年提出的一种词嵌入技术,它利用神经网络将词汇映射到低维向量空间中。

Word2Vec 有两种主要的模型结构:CBOW(Continuous Bag of Words)和 Skip-Gram。

一文彻底搞懂自然语言处理 - 词嵌入(Word Embedding)-AI.x社区

什么是CBOW(连续词袋模型)?CBOW 模型根据上下文(context)预测当前词(target word)。

CBOW模型类似于一个高级的完型填空游戏,其中上下文中的词汇(已知选项)被用来“填空”预测出缺失的中心词(答案)。

  • 输入层:将上下文词汇的 one-hot 编码作为输入。
  • 投影层:通过一个权重矩阵 W,将输入层的 one-hot 编码转换为连续的向量表示(即嵌入向量)。
  • 隐藏层:对投影层的向量进行平均或求和操作,得到一个上下文向量。
  • 输出层:通过另一个权重矩阵 W' 和 softmax 函数,计算当前词的概率分布。

CBOW 模型的目标是最小化预测当前词的概率分布的负对数似然。

一文彻底搞懂自然语言处理 - 词嵌入(Word Embedding)-AI.x社区

什么是Skip-Gram(跳字模型)?Skip-Gram 模型则根据当前词预测上下文。

Skip-Gram模型如同一个词汇侦探,通过当前词“线索”去“追踪”并预测其周围的上下文词汇。

  • 输入层:将当前词的 one-hot 编码作为输入。
  • 投影层:通过一个权重矩阵 W,将输入层的 one-hot 编码转换为连续的向量表示(即嵌入向量)。
  • 隐藏层:此层实际上与投影层共用相同的嵌入向量。
  • 输出层:对于每个上下文词汇,通过另一个权重矩阵 W' 和 softmax 函数,计算其概率分布。

Skip-Gram 模型的目标是最小化预测上下文词汇的概率分布的负对数似然。

一文彻底搞懂自然语言处理 - 词嵌入(Word Embedding)-AI.x社区




本文转载自公众号架构师带你玩转AI 作者:AllenTang

原文链接:​​https://mp.weixin.qq.com/s/_Pata_cPMwMb5crt5uwtsQ​

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
收藏
回复
举报
回复
相关推荐