[NLP]word2vec原理

Hierarchical Softmax

Cbow:

    原理:用中心词作为预测的值(输出),输出可看做一个点,和其他点(词语)做区分,共同构成了一个霍夫曼树,要求Xw经过层次softmax函数,达到输出预测值概率最大。

    用周围的词做输入,通过查表的形式,将原输入的one-hot编码形式转换为词向量形式,词向量表初始化时为随机值。然后简单相加,得到Xw

    霍夫曼树建立,先将所有词按频率排序,按频率从小到大结合成霍夫曼树(http://www.cnblogs.com/pinard/p/7160330.html)

       周围的词通过查表(词向量表)加和得到xw,在通过层次softmax得到x3的概率最大值,注意,损失函数即为,采用极大似然法,概率最大化x3的值

    其中代表一个softmax概率,代表正概率,即霍夫曼树向左传播,代表覆盖率,即霍夫曼树向右传播。

    最后要最大化这个损失函数,将这个损失函数求导,更新softmax中的sita值,和词向量表中的值。我们要的是词向量表中的词。

 

层次softmax的skip-gram模型

    输入xw就是x3的词向量(需要训练)

    输出是x1245中的一个词,即一个词的概率

    损失函数即是,采用极大似然法,概率最大化x1(或x245)的值

    循环极大似然x1245,更新sita的改变量g,和xw的改变量e

    最后对所有的x1245统一进行更新

    注:本来每次训练是对xw进行更改(即x3),为了整体迭代更加均匀,且为了效率,对x3进行的更新可看做对x1245进行更新,如何理解——当w3+e(迭代更新)能使 (即周围是x1245预测出x3的概率)增大,同样能使(即周围是x3,预测出x1245的概率)增大。即对x3+e的更新,对x1245+e的更新同样适用。


    HierarchicalSoftmax 的缺点:当面对一个频率出现小的词,他的霍夫曼树要走很久,霍夫曼树还是很复杂。

 

Negative Sampling负采样方法

    概率性的选择N个词,作为可能输出的值,代替了词库所有的词,作为softmax输出的选项。

    以一个词的频率作为词的长度,概率性的选择N-1个负样例,与正样例组成N个softmax输出的可能性。


    最后通过softmax x0最大化为损失函数。反向求导,更新sita值和xw值

    对于skip-gram模型,输入输出组成两两一队形式进行训练,即(x1,x3),(x2,x3),(x4,x3),(x5,x3)这四队,分别进行训练

 

 

参考:http://www.cnblogs.com/pinard/p/7249903.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值