深度学习:词嵌入embedding和Word2Vec

目录

前言

一、词嵌入(Embedding)

1.传统自然语言处理问题

2.什么是词嵌入

二、Word2vec模型

1.Word2Vec的基本原理

三、CBOW模型训练过程


前言

在机器学习里的自然语言处理,是将语料库中的词语转换成词向量矩阵,再使用朴素贝叶斯算法对其进行预测。这篇文章要讲的是深度学习里关于自然语言处理的一些概念

一、词嵌入(Embedding)

1.传统自然语言处理问题

  • 早期的模型没有考虑到词序和上下文关系,使得模型无法捕捉句子中词之间更复杂的语义联系
  • 某些传统算法可能需要大量的计算和存储资源,影响其可扩展性

例如:

  1. 一个语料库4960个词语
  2. 每个词语的独热编码都是4959个0和1个1按顺序组成
  3. 第一个词语就是[000000...0001],第二个[0000...0010],依此类推
  4. 将其转换成词向量矩阵就是(4960*4960)
  5. 每一行数据就是一个词
  6. 如果语料库很大,那么就会出现维度灾难
  7. 使用词嵌入解决这种情况

2.什么是词嵌入

例如将一个词向量为(1*4960)的词语乘以一个(4960*300)的矩阵,将其变成(1*300)的词向量矩阵,从而达到降维的目的,解决了维度灾难。

二、Word2vec模型

  • Word2Vec是由Google的研究团队提出的一种用于词嵌入的模型,旨在将单词转换为向量,以便于计算机理解和处理自然语言。
  • 它能够捕捉词与词之间的语义关系,并在许多自然语言处理任务中得到了广泛应用。

1.Word2Vec的基本原理

连续词袋模型(CBOW):

  1. 目标是在给定上下文(周围词)的情况下预测中心词。
  2. 例如,在句子"我喜欢学习"中,如果上下文是"我"和"学习",模型的目标是预测"喜欢"。
  3. 即输入"我"、"学习"的独热编码,"喜欢"当做被预测的值

跳字模型(Skip-gram):

  1. 目标是根据中心词预测其上下文。
  2. 例如,在句子"我喜欢学习"中,如果中心词是"喜欢",模型的目标是预测"我"和"学习"。
  3. 输入"喜欢"的独热编码,"我"、"学习"当做被预测的值

三、CBOW模型训练过程

  1. 当前词的上下文词语的one-hot编码输入到输入层。
  2. 这些词分别乘以同一个矩阵W(V*N)后分别得到各自的1*N 向量。
  3. 将多个这些1*N 向量取平均为一个1*N 向量。
  4. 将这个1*N 向量乘矩阵 W'(N*V) ,变成一个1*V 向量。
  5. 将1*V 向量softmax归一化后输出取每个词的概率向量1*V
  6. 概率值最大 的数对应的词作为预测词
  7. 将预测的结果1*V 向量和真实标签1*V 向量(真实标签中的V个值中有一个是1,其他是0)计算误差
  8. 在每次前向传播之后反向传播误差,不断调整 W(V*N)和 W'(N*V)矩阵的值。

拿一个词语为4960个的语料库来举例,使用CBOW模型完成词嵌入:

  1. 假设选取上下各选两个词语,输入层每一个神经元接收一个词语的独热编码,然后将其乘以第一个权重w1(4960*300)的矩阵,将结果(1*300)的矩阵传入中间层
  2. 中间层将输入层传入的四个结果组合成一个(4*300)的矩阵,然后再对每一列进行求和得到(1*300)的矩阵,将该矩阵传入输出层
  3. 输出层接收到输入层传入的(1*300)的矩阵,将其乘以第二个权重w2(300*4960)的矩阵,得到(1*4960)的矩阵,每一行就是每个词语的预测结果
  4. 对矩阵进行归一化,得到的每一行都是一个词语的概率值
  5. 概率值最大的即为预测词
  6. 然后将该词的预测结果与真实标签进行误差计算
  7. 在每次前向传播之后反向传播误差,不断调整w1和w2的值
相关推荐
小黎14757789853642 分钟前
OpenClaw 连接飞书完整指南:插件安装、配置与踩坑记录
机器学习
后端小肥肠1 小时前
公众号躺更神器!OpenClaw+Claude Skill 实现自动读对标 + 写文 + 配图 + 存入草稿箱
人工智能·aigc·agent
爱可生开源社区1 小时前
SCALE | 重构 AI 时代数据库能力的全新评估标准
人工智能
Jahzo1 小时前
openclaw本地化部署体验与踩坑记录--飞书机器人配置
人工智能·开源
Narrastory1 小时前
明日香 - Pytorch 快速入门保姆级教程(一)
人工智能·pytorch·深度学习
数据智能老司机1 小时前
用于进攻性网络安全的智能体 AI——在 n8n 中构建你的第一个 AI 工作流
人工智能·安全·agent
数据智能老司机2 小时前
用于进攻性网络安全的智能体 AI——智能体 AI 入门
人工智能·安全·agent
Narrastory2 小时前
明日香 - Pytorch 快速入门保姆级教程(二)
人工智能·pytorch·深度学习
AI攻城狮2 小时前
OpenClaw Session 管理完全指南:Context 压缩、重置与持久化
人工智能·云原生·aigc
AI软著研究员2 小时前
程序员必看:软著不是“面子工程”,是代码的“法律保险”
算法