IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> Word2Vec -> 正文阅读

[人工智能]Word2Vec

Word2Vec

one-hot 编码将词符号化,不包含任何语义信息。而且词的独热表示是高维的,
需要赋予词语义信息和降低维度问题如何解决?

word2vec是Google研究团队里的Tomas Mikolov等人于2013年的《Distributed Representations ofWords and Phrases and their Compositionality》以及后续的《Efficient Estimation of Word Representations in Vector Space》两篇文章中提出的一种高效训练词向量的模型,基本出发点是上下文相似的两个词,它们的词向量也应该相似。

在这里插入图片描述

word2vec主要包含两个模型:

  • 连续词袋模型(CBOW,continuous bag of words)
  • 跳字模型(skip-gram)。
    CBOW是根据上下问预测目标词来训练词向量
    Skip-gram是根据目标词去训练和预测目标词周围的词向量
    在这里插入图片描述


### CBOW模型
  1. 输入层(Input layer):目标单词上下文的单词(这里显示三个),每个单词用ont-hot编码表示,为[1 * V]大小的矩阵,V表示词汇大小;
  2. 所有的ont-hot矩阵乘以输入权重矩阵W,W是[V * N]大小的共享矩阵,N是指输出的词的向量维数;
  3. 将相乘得到的向量 ([1 * V] 的ont-hot矩阵乘上[V * N]的共享矩阵W) 相加,然后求平均作为隐层向量h, 大小为[1 * N];
  4. 将隐层向量h乘以输出权重矩阵W’,W’是[N * V]大小的共享矩阵;
  5. 相乘得到向量y,大小为[1 * V],然后利用softmax激活函数处理向量y,得到V-dim概率分布;
  6. 由于输入的是ont-hot编码,即每个维度都代表着一个单词,那么V-dim概率分布中,概率最大的index所指代的那个单词为预测出的中间词。
  7. 将结果与真实标签的ont-hot做比较,误差越小越好,这里的误差函数,即loss function一般选交叉熵代价函数。
    在这里插入图片描述
    CBOW生成词向量的全过程。如果我们只是想提取每个单词的向量,那么只需要得到向量y就可以了,但训练过程中要去做预测并计算误差,去求得输入权重矩阵W和输出权重矩阵W’。

比如文本序列“the”、 “man”、“loves”、“his”和“son”里,以“loves”作为中心词,且背景窗口大小为 2 时,连续词袋模型关心的是,给定背景词“the”、“man”、“his”和“son”生成中心词“loves”的条件概率:P(loves∣the,man,his,son)

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

理解方式2

在这里插入图片描述
在这里插入图片描述



Skip-gram模型

Skip-gram和CBOW相反,由中心词去预测周围词的概率。
在这里插入图片描述

Skip-gram模型基于语料库构建词汇表(语料库就是句子集合,所以单词会重复,但是词汇表没有重复),把单词表示成向量之后,skip-gram就构建了这么一个语言模型,一个单词出现在一个句子中,那么这个单词就是和它的上下文有联系的,
可以构建一个神经网络,它的输入就是一个单词的向量,输出就是词汇表中各个单词是前后文的单词的概率,一般来说,这个神经网络包含一个输入层、线性隐层(不含激活函数)、输出层(softmax函数)。通过训练我们的模型,我们就能得到一个能够通过一个词预测它的前后文的语言模型。
在这里插入图片描述

跳字模型假设基于某个词来生成它在文本序列周围的词。举个例子,假设文本序列是“the”、“man”、“loves”、“his”和“son”。以“loves”作为中心词,设背景窗口大小为 2。跳字模型所关心的是,给定中心词“loves”,生成与它距离不超过 2 个词的背景词“the”、“man”、“his”和“son”的条件概率,即P(the,man,his,son∣loves)
假设给定中心词的情况下,背景词的生成是相互独立的,那么上式可以改写成:
P(the∣loves)?P(man∣loves)?P(his∣loves)?P(son∣loves)
在这里插入图片描述
Skip-gram隐层的激活函数其实是线性的,相当于没做任何处理(这也是 Word2vec 简化之前语言模型的独到之处)。
跳字模型的参数是每个词所对应的中心词向量和背景词向量。训练中我们通过最大化似然函数来学习模型参数,即最大似然估计。最大似然估计是将文本序列中的所有条件概率连乘,然后求使该乘积最大化的参数。这等价于最小化以下损失函数:
在这里插入图片描述
使用随机梯度下降,那么在每一次迭代里我们随机采样一个较短的子序列来计算有关该子序列的损失,然后计算梯度来更新模型参数。
在这里插入图片描述
微分计算后得到中心词词向量Vc的梯度
在这里插入图片描述



优缺点

优点

  1. 有着NNLM拥有的优点
  2. 相比NNLM,减少了模型参数量,大规模训练成为可能
  3. 考虑了上下文,效果比NNLM好

缺点

  1. 由于每个词的embedding在训练后就固定了,对于一词多义无法解决




参考

原文链接:https://blog.csdn.net/v_JULY_v/article/details/102708459
原文链接:https://blog.csdn.net/jesseyule/article/details/99974501
原文链接:https://www.pianshen.com/article/6780283075/
https://www.pianshen.com/article/730775751/
https://blog.csdn.net/fengzhou_/article/details/106022559
https://zhuanlan.zhihu.com/p/136247620
https://zhuanlan.zhihu.com/p/51648662
https://www.cnblogs.com/peghoty/p/3857839.html

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-10-28 12:23:44  更:2021-10-28 12:25:17 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 8:26:58-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码