word2vec&fastText

大致聊一下word2vec

word2vec分别有输入层,隐藏层,输出层;输入的是单词的one-hot表示,隐层的激活函数是线性的,输出的是词表中每个单词的预测概率;word2vec有skip-gram,CBOW两种网络模型,skip-gram的思想是通过中心词来预测上下文,CBOW的思想是通过上下文来预测中心词;
word2vec的目标函数是将条件概率最大化:(和语言模型很像) P ( 上下文 ∣ 中心词 ) , P (中心词 ∣ 上下文) P(上下文|中心词),P(中心词|上下文) P(上下文中心词)P(中心词上下文)
word2vec有两种优化方法:分层softmax和负采样。

详细说一下分层softmax和负采样

问题:不经过优化的skip-gram和CBOW,在每个单词的训练过程中都要遍历整个词表,复杂度为O(V),在输出层都要经过softmax归一化,计算量很大;在更新参数时,也需要计算所有参数的梯度,分层softmax和负采样就是对此进行优化,只计算和当前预测词有关的参数的梯度。
分层softmax:在标准的softmax回归中,要计算属于某类的概率,需要计算所有类别的概率,这非常耗时。基本思想是用树的层级结构替代标准的softmax,只计算一条路径上的结点的概率值,本质是在一条路径上不停的做二分类,将N分类转化为logN分类。
使用最优二叉树来表示所有的单词,每个叶子结点表示一个单词,每个单词可以由哈夫曼编码表示,词频高的词在离根节点越近,哈夫曼树保证了词频高的单词路径短,词频低的单词路径长,这种方式很大程度上减少了计算量。哈夫曼树是带权路径最短的树
每个分支都是通过sigmoid来计算概率的,用于判断在哈夫曼树中走左子树还是右子树。
负采样:预测总体类别的一个子集,本质在于生成K个噪声,基于中心词生成上下文(窗口内单词)的概率为1,生成噪声的概率为0,复杂度为O(K)
负采样的目的是在优化参数时,不需要对所有的向量矩阵进行优化,只需要对涉及到的词向量优化。

word2vec如何获取词向量

word2vec有输入层,隐藏层,输出层;在输入层,单词是以one-hot的形式表示的,当训练完成时,输入层和隐藏层之间的权重参数就是所有单词的词向量,输入层只有一个神经元是1,该神经元到所有隐层神经元的权重组成该单词的词向量,词向量的维度和隐层的神经元数量有关。
一个词在经过word2vec之后,将会得到两种词向量:作为中心词的词向量和作为背景词的词向量。
怎么理解词向量
世界上本没有什么embedding,有的只是one-hot。词向量就是one-hot的降维表示。

计算句子相似度

word2vec:可以将句子中所有单词的embedding相加起来作为句子向量,计算两个句子向量的余弦距离cosine

在你的项目中word2vec是怎么用的

fastText与word2vec的区别

使用了字符级别的n-gram来表示一个单词
< apple >
<ap,app,ppl,ple,le>
好处:对于低频词生成的词向量效果会更好,因为可以和其他词共享n-gram。
对于oov的单词,我们可以通过叠加字符级别的n-gram来构建词向量。
输入输出
fastText的输入是文档中所有的单词的embedding及其n-gram特征,word2vec的输入是滑动窗口内的单词。
fastText的输出是文本对应的类别,word2vec的输出是目标词汇。
词袋法叠加词向量:将文档所有的词向量及其n-gram特征词向量相加取平均。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

石头猿rock

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值