https://blog.csdn.net/just_so_so_fnc/article/details/103304995
skip-gram 原理没看完

https://blog.csdn.net/Jemila/article/details/72831640
skip-gram源码解析

https://blog.csdn.net/itplus/article/details/37969519
基础

https://blog.csdn.net/weixin_41843918/article/details/90312339
skip-gram 重点

https://blog.csdn.net/qq_24003917/article/details/80389976

skip-gram

https://zhuanlan.zhihu.com/p/35500923

https://blog.csdn.net/u011748542/article/details/85880852
gensim.models.word2vec 参数说明

前言

自从Mikolov在他2013年的论文“Efficient Estimation of Word Representation in Vector Space”提出词向量的概念后,NLP领域仿佛一下子进入了embedding的世界,Sentence2Vec、Doc2Vec、Everything2Vec。词向量基于语言模型的假设——“一个词的含义可以由它的上下文推断得出“,提出了词的Distributed Representation表示方法。相较于传统NLP的高维、稀疏的表示法(One-hot Representation),Word2Vec训练出的词向量是低维、稠密的。Word2Vec利用了词的上下文信息,语义信息更加丰富,目前常见的应用有:

  1. 使用训练出的词向量作为输入特征,提升现有系统,如应用在情感分析、词性标注、语言翻译等神经网络中的输入层。
  2. 直接从语言学的角度对词向量进行应用,如使用向量的距离表示词语相似度、query相关性等。
    注:前言部分内容来自参考文献1。

1.什么是word2vec

如果用一句比较简单的话来总结,word2vec是用一个一层的神经网络(即CBOW)把one-hot形式的稀疏词向量映射称为一个n维(n一般为几百)的稠密向量的过程。为了加快模型训练速度,其中的tricks包括Hierarchical softmax,negative sampling, Huffman Tree等。

在NLP中,最细粒度的对象是词语。如果我们要进行词性标注,用一般的思路,我们可以有一系列的样本数据(x,y)。其中x表示词语,y表示词性。而我们要做的,就是找到一个x -> y的映射关系,传统的方法包括Bayes,SVM等算法。但是我们的数学模型,一般都是数值型的输入。但是NLP中的词语,是人类的抽象总结,是符号形式的(比如中文、英文、拉丁文等等),所以需要把他们转换成数值形式,或者说——嵌入到一个数学空间里,这种嵌入方式,就叫词嵌入(word embedding),而 Word2vec,就是词嵌入( word embedding) 的一种。

在 NLP 中,把 x 看做一个句子里的一个词语,y 是这个词语的上下文词语,那么这里的 f,便是 NLP 中经常出现的『语言模型』(language model),这个模型的目的,就是判断 (x,y) 这个样本,是否符合自然语言的法则,更通俗点说就是:词语x和词语y放在一起,是不是人话。

Word2vec 正是来源于这个思想,但它的最终目的,不是要把 f 训练得多么完美,而是只关心模型训练完后的副产物——模型参数(这里特指神经网络的权重),并将这些参数,作为输入 x 的某种向量化的表示,这个向量便叫做——词向量。
(上面部分内容来自参考文献2)

2.CBOW与Skip-Gram

word2vec里面有两个重要的模型-CBOW模型(Continuous Bag-of-Words Model)与Skip-gram模型。在Tomas Mikolov的paper中给出了示意图。

由名字与图都很容易看出来,CBOW就是根据某个词前面的C个词或者前后C个连续的词,来计算某个词出现的概率。Skip-Gram Model相反,是根据某个词,然后分别计算它前后出现某几个词的各个概率。

上一张图,可以比较清楚地看清楚CBOW的训练过程。

(图片来自网络)

把这张图看懂,基本word2vec就懂了一大半。下面来详细说说这张图。
词向量最简单的方式是1-of-N的one-hot方式。onehot对于同学们来说都很熟悉了,也就是从很大的词库corpus里选V个频率最高的词(忽略其他的) ,V一般比较大,比如V=10W,固定这些词的顺序,然后每个词就可以用一个V维的稀疏向量表示了,这个向量只有一个位置的元素是1,其他位置的元素都是0。One hot方式其实就是简单的直接映射,所以缺点也很明显,维数很大,也没啥计算上的意义。
在上图中,
1、Input layer输出层:是上下文单词的one hot。假设单词向量空间的维度为V,即整个词库corpus大小为V,上下文单词窗口的大小为C。
2、假设最终词向量的维度大小为N,则图中的权值共享矩阵为W。W的大小为 V * N,并且初始化。
3、假设语料中有一句话"我爱你"。如果我们现在关注"爱"这个词,令C=2,则其上下文为"我",“你”。模型把"我" "你"的onehot形式作为输入。易知其大小为1V。C个1V大小的向量分别跟同一个V * N大小的权值共享矩阵W相乘,得到的是C个1N大小的隐层hidden layer。
4.C个1
N大小的hidden layer取平均,得到一个1N大小的向量,即图中的Hidden layer。
5.输出权重矩阵W’为N
V,并进行相应的初始化工作。
6.将得到的Hidden layer向量 1V与W’相乘,并且用softmax处理,得到1V的向量,此向量的每一维代表corpus中的一个单词。概率中最大的index所代表的单词为预测出的中间词。
7.与groud truth中的one hot比较,求loss function的的极小值。

具体计算过程为:
从input -> hidden: WT∗xWT∗xWT∗xWT∗xWT∗x W^T * xWTxWTxWTxlen(w)=uvocabcount(u)3/4count(w)3/4

参考文献:
1.https://zhuanlan.zhihu.com/p/28491088
2.https://zhuanlan.zhihu.com/p/26306795
3.http://alwa.info/2016/04/24/Autoencoder-%E8%AF%A6%E8%A7%A3/
4.https://qrfaction.github.io/2018/03/20/%E6%95%B0%E6%8D%AE%E7%AB%9E%E8%B5%9Btrick%E6%80%BB%E7%BB%93/ 数据竞赛trick总结

                                </div><div><div></div></div><link href="https://csdnimg.cn/release/phoenix/mdeditor/markdown_views-60ecaf1f42.css" rel="stylesheet"><div class="more-toolbox"><div class="left-toolbox"><ul class="toolbox-list"><li class="tool-item tool-active is-like "><a href="javascript:;"><svg class="icon" aria-hidden="true"><use xlink:href="#csdnc-thumbsup"></use></svg><span class="name">点赞</span><span class="count">18</span></a></li><li class="tool-item tool-active is-collection "><a href="javascript:;" data-report-click="{&quot;mod&quot;:&quot;popu_824&quot;}"><svg class="icon" aria-hidden="true"><use xlink:href="#icon-csdnc-Collection-G"></use></svg><span class="name">收藏</span></a></li><li class="tool-item tool-active is-share"><a href="javascript:;" data-report-click="{&quot;mod&quot;:&quot;1582594662_002&quot;}"><svg class="icon" aria-hidden="true"><use xlink:href="#icon-csdnc-fenxiang"></use></svg>分享</a></li><!--打赏开始--><!--打赏结束--><li class="tool-item tool-more"><a><svg t="1575545411852" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5717" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M179.176 499.222m-113.245 0a113.245 113.245 0 1 0 226.49 0 113.245 113.245 0 1 0-226.49 0Z" p-id="5718"></path><path d="M509.684 499.222m-113.245 0a113.245 113.245 0 1 0 226.49 0 113.245 113.245 0 1 0-226.49 0Z" p-id="5719"></path><path d="M846.175 499.222m-113.245 0a113.245 113.245 0 1 0 226.49 0 113.245 113.245 0 1 0-226.49 0Z" p-id="5720"></path></svg></a><ul class="more-box"><li class="item"><a class="article-report">文章举报</a></li></ul></li></ul></div></div><div class="person-messagebox"><div class="left-message"><a href="https://blog.csdn.net/bitcarmanlee"><img src="https://profile.csdnimg.cn/C/6/1/3_bitcarmanlee" class="avatar_pic" username="bitcarmanlee"><img src="https://g.csdnimg.cn/static/user-reg-year/1x/4.png" class="user-years"></a></div><div class="middle-message"><div class="title"><span class="tit"><a href="https://blog.csdn.net/bitcarmanlee" data-report-click="{&quot;mod&quot;:&quot;popu_379&quot;}" target="_blank">bitcarmanlee</a></span></div><div class="text"><span>发布了441 篇原创文章</span> · <span>获赞 1748</span> · <span>访问量 463万+</span></div></div><div class="right-message"><a href="https://bbs.csdn.net/topics/395530810" target="_blank" class="btn btn-sm btn-red-hollow bt-button personal-messageboard">他的留言板</a><a class="btn btn-sm  bt-button personal-watch" data-report-click="{&quot;mod&quot;:&quot;popu_379&quot;}">关注</a></div></div></div>
</article>

http://www.taodudu.cc/news/show-64085.html

相关文章:

  • 错位禁位排列-数学
  • 机器翻译评测——BLEU算法详解 (新增 在线计算BLEU分值)评估
  • numpy笔记1
  • numpy笔记2
  • numpy笔记3
  • numpy笔记4
  • numpy笔记5
  • 同态同构-数学
  • 小显卡训练大模型
  • 语义网所谓的“本体”的具体例子是什么?人工智能
  • python 如何获取当前系统的时间
  • 存在量词后必须用合取式?-数学
  • pycharm汇总
  • git项目问题
  • github下载源码也用命令进行安装包的联系
  • python编程问题--第二次
  • python编程问题---第一次
  • 矩阵乘以其矩阵转置求导-数学
  • 批量读取文件
  • linux问题
  • 解读Python的命名空间
  • linux sh 改 cmd
  • 命名实体识别NER遗留问题----模型构建
  • 超详细中文预训练模型ERNIE使用指南-源码
  • python codecs.open()及文件操作-文本处理 with open
  • 命令行带参数启动--命令行相关问题 代码规范
  • 编程规范问题
  • bdwp
  • tensorflow问题
  • docker坑

通俗易懂word2vec详解词嵌入-深度学习相关推荐

  1. 2.5 学习词嵌入-深度学习第五课《序列模型》-Stanford吴恩达教授

    学习词嵌入 (Learning Word Embeddings) 在本节视频中,你将要学习一些具体的算法来学习词嵌入.在深度学习应用于学习词嵌入的历史上,人们一开始使用的算法比较复杂,但随着时间推移, ...

  2. 通俗易懂word2vec详解,入门级选手无难度

    项目github地址:bitcarmanlee easy-algorithm-interview-and-practice 欢迎大家star,留言,一起学习进步 前言 自从Mikolov在他2013年 ...

  3. 【NLP年度重磅盘点】12项重大行业突破!详解2017年深度学习加持下的NLP大事件

    翻译 | 林椿眄.刘畅.彭硕 编辑 | Donna Suisui 过去几年,深度学习架构和算法在图像识别和语音处理等领域取得了重大的进步.而在NLP(自然语言处理)领域,起初并没有太大的进展.不过现在 ...

  4. 干货 | 详解如何用深度学习消除背景,实现抠图

    微信公众号 关键字全网搜索最新排名 [机器学习算法]:排名第一 [机器学习]:排名第一 [Python]:排名第三 [算法]:排名第四 这篇文章介绍了作者 Gidi Sheperber 在 green ...

  5. 2.2 使用词嵌入-深度学习第五课《序列模型》-Stanford吴恩达教授

    使用词嵌入 (Using Word Embeddings) 上一个视频中,你已经了解不同单词的特征化表示了.这节你会看到我们如何把这种表示方法应用到NLP应用中. 我们从一个例子开始,我们继续用命名实 ...

  6. 全文详解:「深度学习」如何协助处理医疗中的「数据难题」

    原文来源:WordPress 作者:Luke Oakden-Rayner 「雷克世界」编译:嗯~是阿童木呀.KABUDA.EVA 医疗数据很难处理. 在医学成像中,数据存储(档案)是基于临床假设进行操 ...

  7. 详解如何获取深度学习模型中间层的输出值

    1. 引入 深度学习模型,大都是多层的网络,各个层可能各有不同(Dense, Dropout, Flatten, Activation, BatchNormalization, GlobalAvera ...

  8. 代码详解:用深度学习在Keras中对蝴蝶进行分类

    全文共11345字,预计学习时长23分钟或更长 荷兰一个组织Vlinderstichting每年都会收集大量的蝴蝶.一些志愿者会帮忙分辨花园中蝴蝶的类别,Vlinderstichting则负责收集信息 ...

  9. 白话详解ROCAUC | 小白深度学习入门

    搞机器学习的人一定频繁的听到ROC,AUC或者AUC-ROC,但这个概念又不向准确率召回率那么直观容易理解,给我带来了小小的困扰,这里就系统的学习下这两个概念. ROC ROC即Receiver Op ...

最新文章

  1. 在kotlin companion object中读取Bean,注入Bean对象
  2. ubuntu下解决“无法获得锁 ”的方法_cppmylove的博客-CSDN博客_无法获得锁
  3. 学习笔记--Spark
  4. TP5.1类的自动加载
  5. 上传本地文件到gitlab 项目里的某个文件夹
  6. C++primer习题--第1章
  7. 解析浏览器访问服务器 Servlet 应用程序的交互过程(Servlet 容器如何处理请求资源路径)
  8. python如何用xpath爬取指定内容_Python利用Xpath选择器爬取京东网商品信息
  9. springboot entity date_「Java」 - SpringBoot amp; JPA多数据源
  10. oracle用户被锁
  11. CSS3 Transition介绍
  12. 嵌入式开发自救指南(嵌入式怎么高薪基本思路)
  13. PVE解决VM is locked问题
  14. pscc2021绿色免安装完整版
  15. wamp中mysql连接数据库_wamp链接到数据库
  16. 笔记本搜不到WiFi是什么原因
  17. [网络诈骗]奈几利亚(奈及利亚), E-Mail 骗术
  18. 台式电脑 航嘉机箱 前面板耳机只有一边(左边)有声音 问题解决
  19. TOM 163VIP邮箱怎么登录?163.net邮箱登录界面是什么?
  20. 操作系统-文件存储空间管理

热门文章

  1. Redis 笔记(09)— 过期时间 expire(设置、查询、取消过期时间)
  2. OpenCV 笔记(06)— Mat 结构、像素值存储方法、创建 Mat 对象各种方法、Mat 对象的运算
  3. python内置库之学习ctypes库(三)--调用Win32API
  4. Aho-Corasick 多模式匹配算法(AC自动机) 的算法详解及具体实现
  5. 难忘的一天——装操作系统(二)
  6. nn.moduleList 和Sequential由来、用法和实例 —— 写网络模型
  7. MindInsight张量可视设计介绍
  8. 【其他】将幕布文章OPML转换为Markdown的方法
  9. [JS] [C] [编程题] 用户喜好
  10. api.php t.cn,PHP通过调用新浪API生成t.cn格式短网址链接的方法详解