word2vec 过程理解&词向量的获取
来源:互联网 发布:手机做电子相册的软件 编辑:程序博客网 时间:2024/05/21 12:49
网上有很多这方面的资源,详细各位都能够对于word2vec了解了大概,这里只讲讲个人的理解,
目的:通过对于一个神经网络的训练,得到每个词对应的一个向量表达
基于: 这个神经网络,是基于语言模型,即给定T个词的字符串s,计算s是自然语言的概率p(w1,w2,…,wt)而构建的,更直白点,就是通过输入wi的上下相邻的n个词(n-gram方法),来就算输出是wi的概率
方案:CBOM和skip-gram两种,每一种有分别有霍夫曼和nec的2种实现方式,所以总共有4种实现模式。
网络:
CBOM 霍夫曼:
输入:与wi相邻的n个节点的one-hot表达向量维度为V(V为语料库的单词总数)
过程:
step1:n个V维向量与V*m维权重向量Wc相乘,得到n个m维的向量(m就是最后每个词所对应的词向量的维度,自己设定)
step2:n个m维的词向量求和得到一个m维向量作为霍夫曼层的输入
step3:下面就是网上很多资料讲解的一个算P(wi|contenti)的过程了,在此不讲具体的,霍夫曼树是为了是计算P(wi|contenti)的时间复杂度降到log级,树上的每个非叶子节点上都有一个m维的向量参数,与step2得到的输出相乘相加通过一个sigmod的激活函数来算的此节点的概率。
输出: P(wi|contenti)的概率
其中loss是cross-entropy,然后反向传播,更新网络中的参数。
而词向量就是step1中的输出,一个词对应一个m维的向量。
CBOM nec:
step1和step2一样,只不过优化计算P(wi|contenti)的时候,没有采用霍夫曼树,而是通过对语料库的数据采样来计算,而不是遍历整个语料库。
skip-gram和CBOW刚好相反,
输入是一个单词
输出其上下相邻单词的概率
词向量也蕴含在one-hot到m维向量的转换中。
强烈建议看一下:
word2vec Parameter Learning Explained
* 除此之外附上几个较为有用的word2vec资料:*
word2vec中的数学原理详解
深度学习word2vec学习笔记
https://blog.acolyer.org/2016/04/21/the-amazing-power-of-word-vectors/?blogsub=confirming#subscribe-blog
word2vec 构建中文词向量
- word2vec 过程理解&词向量的获取
- 利用Word2Vec训练词向量过程
- 理解word2vec的训练过程
- 理解word2vec的训练过程
- word2vec中关于词向量的阐述
- word2vec中关于词向量的阐述
- word2vec中关于词向量的阐述
- 使用预训练的word2vec词向量
- 使用预训练的word2vec词向量
- word2vec 词向量
- word2vec 词向量
- word2vec 词向量训练
- 秒懂词向量Word2vec的本质
- 秒懂词向量Word2vec的本质
- 词向量之word2vec(1)
- 词向量之word2vec(2)
- 词向量与word2vec分析
- 基于python的gensim word2vec训练词向量
- 基础知识填坑---矢量的叉积
- 第16周项目1-验证算法(1)直接插入排序
- 新浪分享获取签名
- 使用bootstrap-datepicker的beforeShowDay给日历添加特殊日期及样式
- 第十六周-项目一 验证算法(2)
- word2vec 过程理解&词向量的获取
- 第九周项目3-稀疏矩阵的三元组表示的实现及应用(2)
- windows 7系统桌面图标显示错误的解决方法
- 数据快照
- 第十六周项目一(1)冒泡排序
- 第十六周 项目1 验证算法 希尔排序 快速排序
- 第16周项目1-验证算法(2)希尔排序
- 使用python进行数据迁移重组之mysql工具类
- 量化分析师的Python日记【第2天:再接着介绍一下Python呗】