本文介绍Word2Vec是基于Skip-Gram架构,本文只介绍核心思想,具体权重更新参考论文。

本文与论文同时饮用较好!

理解Word2Vec核心思想的步骤是先理解one word -> one word如何获取词向量,而Skip-Gram架构和CBOW架构是再次基础之上进行了输入或者输出的改变。

One-Word Context

One-Word Context是只是用一个单词预测另一个单词。其架构图为:

即只有两层全连接神经网络,并且隐藏层为先行层。输入层为每个单词的one-hot encoder,输出为下一个单词的预测。输出是Softmax处理后的概率值,那个维度的概率值大则为某个单词。

其中词向量为W的行向量或者W'的列向量,一般使用W的行向量作为输入词的词向量,也即是输入向量(One-hot encoder)与W的转置相乘之后隐藏层的结果。

CBOW架构

CBOW架构只是在one->one的基础之上输入层到隐藏层为:输入层的平均和。

Skip-Gram架构

只是在输出时,偏差为所有panel的偏差之和。

其中u为预测输出。

Hierarchical Softmax

Hierarchical Softmax是使用output-layer的每一个panel(即单词的输出评分),该输出评分的每一个维度为输出向量输入向量的内积。根据每一维度的大小构建二叉树(常用哈夫曼树,建议看看哈夫曼树的构建)。

对于构建哈夫曼树的权重进行Sigmoid函数处理,把它压缩在[0,1]之间,形成往左子树走的概率,则往右子树走的概率为1-P(左)。

如上图,从根节点往w2走,走的方向有向左->向左->向右走。(上图非哈夫曼树,但思想一致。)

把从根节点走到w2的路径的概率乘积即为预测概率,从而求出每个panel维度的概率。

loss函数:

负采样

负采样是在Hierarchical Softmax的loss函数基础之上,添加了负采样。

因此,损失函数为:

负采样的核心思想是根据词频进行选择sqmple更新权重,而不是所有权重;并且进行预测的单词权重必须更新,在所有非预测单词的权重进行负采样更新。

代码实现

from gensim.models import Word2Vec
# 必须为字符串,才能进行训练
docs = [['30760','157507'],['289197','63746'],['36162','168401'],['50644','361620']]
wv = Word2Vec(docs,size=12,sg=1,window=2,workers=10,min_count=1,iter=10)
wv['30760']

参考文献

[1]. word2vec Parameter Learning Explained(论文)

[2].https://zhuanlan.zhihu.com/p/26306795

[3].深度学习与推荐系统(王喆)

cbow word2vec 损失_Word2Vec的核心思想相关推荐

  1. cbow word2vec 损失_word2vec个人总结-理论篇

    word2vec不算新,但是在工业界有广泛应用.该方法利用词在各滑动窗口的共现现象建模词的潜在关系,并最终得到词向量(word embedding).如果两个词的embedding向量内积较大,则表示 ...

  2. cbow word2vec 损失_word2vec是如何得到词向量的?

    前言 word2vec是如何得到词向量的?这个问题比较大.从头开始讲的话,首先有了文本语料库,你需要对语料库进行预处理,这个处理流程与你的语料库种类以及个人目的有关,比如,如果是英文语料库你可能需要大 ...

  3. cbow word2vec 损失_Word2vec之CBOW

    一.Word2vec word2vec是Google与2013年开源推出的一个用于获取word vecter的工具包,利用神经网络为单词寻找一个连续向量看空间中的表示.word2vec是将单词转换为向 ...

  4. cbow word2vec 损失_词向量word2vec之CBOW算法

    词向量模型之CBOW模型的原理与实现 关于词向量模型word2rec,平台里只有skip-gram一个模型的代码实现,本项目将对word2rec算法的第二个模型--CBOW模型进行补充 此项目用于交流 ...

  5. cbow word2vec 损失_Skip-gram和CBOW知识点

    本文涉及的内容: 如何构造HuffMan树 Hierarchical Softmax似然函数 skip-gram似然函数 CBOW似然函数 Negative Sampling方法 一 HuffMan树 ...

  6. Lesson 8.1Lesson 8.2 决策树的核心思想与建模流程CART分类树的建模流程与sklearn评估器参数详解

    Lesson 8.1 决策树的核心思想与建模流程 从本节课开始,我们将介绍经典机器学习领域中最重要的一类有监督学习算法--树模型(决策树). 可此前的聚类算法类似,树模型也同样不是一个模型,而是一类模 ...

  7. 深度学习——核心思想

    核心思想: 假设我们有一个系统S,它有n层(S1,-Sn),它的输入是I,输出是O,形象地表示为: I =>S1=>S2=>-..=>Sn => O,如果输出O等于输入I ...

  8. IPD解读——从核心思想分析IPD体系

    苹果联合创办人史蒂夫▪乔布斯:"并行工程的目标为提高质量.降低成本.缩短产品开发周期和产品上市时间.并行工程的具体做法是:在产品开发初期,组织多种职能协同工作的项目组,使有关人员从一开始就获 ...

  9. SQL优化核心思想:或许你不知道的5条优化技巧

    点击关注 异步图书,置顶公众号 每天与你分享 IT好书 技术干货 职场知识 参与文末话题讨论,每日赠送异步图书. --异步小编 随着系统的数据量逐年增加,并发量也成倍增长,SQL性能越来越成为IT系统 ...

最新文章

  1. SQL Server基础知识之:设计和实现视图
  2. 安全专家:恶意软件盯上苹果Mac机用户
  3. 递归--练习4--noi666放苹果
  4. php数据库滚动文字_PHP 里用的文字左右滚动?
  5. UI设计工具比较:Sketch、Adobe XD、墨刀、Mockplus、Axure RP
  6. FATAL ERROR: Could not find ./bin/my_print_defaults 解决方法
  7. 如何做组间差异检验_买套餐送车险,做维修提供代步车,考拉爱车如何实现差异化竞争?...
  8. 秒表的检定及设备使用方法说明
  9. k8s安装calico网络插件
  10. 微服务部署之蓝绿发布、滚动发布、灰度发布区别与特点
  11. 「京东白条」的数据架构进化之路!
  12. 北大成立人工智能研究院,中科院院士黄如担任院长
  13. java 下载文件的文件名乱码_详细解决java文件下载文件名乱码问题
  14. 第一篇:微信公众平台开发实战Java版之了解微信公众平台基础知识以及资料准备
  15. leetcode简单之1076.项目员工II
  16. 使用VIM是一种信仰
  17. 2022杭电多校8 Stormwind
  18. android判断webview加载完成,android webView判断是否加载完成的2种办法
  19. 【新技研】高通全新骁龙Krait 300/400处理器架构浅析
  20. 新装修的房子怎样知道含不含有甲醛?斐讯悟空M1告诉你

热门文章

  1. 单片机8×8点阵显示简单汉字的程序_LED显示屏的显示原理原来是这样,科技实现梦想...
  2. html如何显示带有记号的文本,如何使用Wicket设置HTML锚标记的显示文本?
  3. 混合高斯模型_高斯混合模型(GMM)
  4. python飞机大战资料-Python之游戏开发-飞机大战
  5. 带你1小时掌握Google图像语义分割模型,更有《深度学习》实体书免费送
  6. 知了课堂 python_没想到你是这样的“知了课堂”
  7. java workerdone_【架构】Java并发编程——线程池的使用
  8. python异常处理优点_python各类异常处理学习笔记
  9. Notepad++的安装和基本使用
  10. 大数据 -- Hadoop集群环境搭建