word2vec训练过程
先介绍一下word2vec的训练过程,目的是想说明这个算法拆解开步骤并不多,初学的时候听说这是deep learning的应用,就感觉高深莫测,其实并不会。

1.准备语料

2.扫描语料库,统计每个词出现的次数,并保存到一个hash表。

3.根据各词的词频简历哈夫曼树。 哈夫曼树中每个叶子结点都有一个权值。且所有野子节点的权值乘上其到根节点路径的长度的累加和最小。

5.迭代最优化,训练。回到语料库,逐一读取一系列的词,后用梯度下降法算出梯度

STEP 1:为了训练出词向量,肯定要先准备好语料,巧妇难为无米之炊嘛。我们先将中文语料分好词,分词的方法有很多,这里就不细说了。再去除一些无意义的词,比如纯数字1523523523,乱码fasdfkalsjfwek等等,这样得到的结果看起来会更干净。如果是用google开源的word2vec实现,那就将所有语料保存在一个文本里,可以所有词用一行表示,也可以有换行符\n,google的代码里自动将换行符替换为<\s>了,所以在结果词向量里会看到这么一个词,不要觉得奇怪。

STEP 2:扫描语料库,统计每个词出现的次数,保存在一个hash表里。

STEP 3: 根据各词的词频建立哈夫曼树。哈夫曼树是一棵最优二叉树,哈夫曼树中的每个叶子节点都有一个权值,并且所有叶子节点的权值乘上其到根节点路径的长度的累加和最小。因此权值较大的叶子节点往往比较靠近根节点。每个词汇最终都是哈夫曼树的叶子节点,词频就是相应的权值,所有的非叶子节点代表了某一类的词,如下图中的Wsyn1Wsyn1,每一个Wsyn1Wsyn1也是与叶子节点的词一样,为KK维的向量。哈夫曼树建立好以后,每个词都会有一个二进制的哈夫曼编码,用于表示从根节点到该词汇的路径。比如我们假设往左子节点走编码为0,往右为1,下图中红框内的词的哈夫曼编码就是101。

STEP 4: 初始化词向量与哈夫曼树非叶子节点的向量。向量的维度是我们给定的参数KK,google的代码里将词向量的每个维度都随机初始化为±0.00X±0.00X,将非叶子节点每个维度初始化为0。word2vec最终得到的是词向量,但并不是执行一系列复杂的运算,在最终算出一堆的词向量,词向量在一开始就已经存在了,整个运算过程只是不断的迭代优化,让被随机初始化的词向量在词向量空间里逐渐挪到属于它自己的位置。

STEP 5:训练,也就是迭代最优化。再回到语料库,逐句的读取一系列的词,然后用梯度下降算出梯度,再更新词向量的值、非叶子节点处向量的词。通常神经网络训练过程,会指定max epoch,与early stop的patience,并且独立保存一个验证集,用于每一个epoch后用验证集算一下error,然后用early stop策略来控制是否停止训练。但是word2vec的实现更简单粗暴,如果语料文档读完了,就终止,或者是每个线程遍历过的词数超过了一个值。

word2vec用的是神经网络模型,分为两种,cbow与skip-gram,每个模型的训练方法又分别有两种,hierarchical sofmax与negative sampling。

2021-10-18word2vec训练过程相关推荐

  1. 2021/10/11 训练赛1 的个人小结

    比赛在HDU进行,网址入口是User Login,密码是acm加训练室号码 1.   POJ 1260  Pearls  珍珠   线性DP 问题描述 在珍珠岛,每个人都喜欢珍珠.一家名为" ...

  2. HRBU 2021年暑期训练阶段二Day3

    目录 A - Shuffle'm Up 题目链接: 题意: 做法: B - Prime Path 题目链接: 题意: 做法: C - Function Run Fun 题目链接: 题意: 做法: D ...

  3. 谷歌BERT预训练源码解析(三):训练过程

    目录 前言 源码解析 主函数 自定义模型 遮蔽词预测 下一句预测 规范化数据集 前言 本部分介绍BERT训练过程,BERT模型训练过程是在自己的TPU上进行的,这部分我没做过研究所以不做深入探讨.BE ...

  4. 深度学习模型训练过程

    深度学习模型训练过程 一.数据准备 基本原则: 1)数据标注前的标签体系设定要合理 2)用于标注的数据集需要无偏.全面.尽可能均衡 3)标注过程要审核 整理数据集 1)将各个标签的数据放于不同的文件夹 ...

  5. 【CV】Pytorch一小时教程添加损失函数图像可视化训练过程

    Pytorch一小时教程中的图像分类器(GPU版本)的原代码为: import torch.optim as optim import torch import torchvision import ...

  6. 浅析深度学习中Batch Size大小对训练过程的影响

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 作者丨陈志远@知乎(已授权) 来源丨https://zhuanlan ...

  7. PyTorch下的可视化工具(网络结构/训练过程可视化)

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 作者 | 锦恢@知乎 来源 | https://zhuanlan.z ...

  8. 手把手教你洞悉 PyTorch 模型训练过程,彻底掌握 PyTorch 项目实战!(文末重金招聘导师)...

    (文末重金招募导师) 在CVPR 2020会议接收中,PyTorch 使用了405次,TensorFlow 使用了102次,PyTorch使用数是TensorFlow的近4倍. 自2019年开始,越来 ...

  9. 谷歌大脑提出对智能体进行「正向-反向」强化学习训练,加速训练过程

    原文来源:arXiv 作者:Ashley D. Edwards.Laura Downs.James C. Davidson 「雷克世界」编译:嗯~是阿童木呀.KABUDA.EVA 在强化学习问题中,关 ...

  10. DeepLearning tutorial(2)机器学习算法在训练过程中保存参数

    FROM: http://blog.csdn.net/u012162613/article/details/43169019 DeepLearning tutorial(2)机器学习算法在训练过程中保 ...

最新文章

  1. 支付宝蚂蚁森林合种树,2-4天领证,1/2号车满员,3号车成立
  2. java中String对象和String变量
  3. 【hdu 1043】Eight
  4. linux script录屏文件夹,linux下录屏和回放工具script和scriptreplay
  5. 王子与公主的另类结局
  6. 金税接口Sap下传文档
  7. Restful framework【第七篇】权限组件
  8. hdu 3094——A tree game
  9. 第六十二期:看完这篇还不了解Nginx,那我就哭了!
  10. 【往届已EI检索-IEEE技术支持】第三届-信息技术与计算机应用 多主题征稿!
  11. 电脑无法检查计算机更新,安装win7系统弹出错误提示无法检查更新的方法
  12. 408 计算机网络 知识点总结
  13. 单机游戏计时器防zuo弊解决方案
  14. 仿苹果手机_安卓党福音?安卓手机也能拥有iOS控制中心,十分炫酷
  15. 群晖Docker部署Alist V2
  16. 算术左移,逻辑左移,算术右移,逻辑右移之间的区别
  17. Java开源图像处理框架Marvin介绍
  18. 天桥脑科学研究院推出“对话大脑”院士论坛:国际大咖畅谈脑机接口
  19. 库乐队历史版本怎么下载_苹果库乐队下载-库乐队app最新版下载V2.3.2-西西软件下载...
  20. 基于SSM的高校共享单车管理系统【数据库设计、源码、开题报告】

热门文章

  1. 打开浏览器标签页并修改内容_解决因Bing导致Chrome打开标签页光标失焦的问题...
  2. PHP面试之网络协议面试题
  3. GPS Programming Tips for Windows Mobile
  4. Docker 三剑客之 Docker Swarm
  5. 源码安装php5.5
  6. 闲谈 Kubernetes 的主要特性和经验分享
  7. Windows Phone 项目实战之我的微盘
  8. 如何在打开谷歌的时候强制跳转google.com
  9. STC学习:电子音乐
  10. php网页制作头部和尾部,用phpcms如何将静态页面制作成企业网站,头部加尾部