word2vec记录

记录一下

以skip-gram为例

在这里插入图片描述

1.W为词向量矩阵,存储着v个n长度的词向量
2.因为矩阵过于大,且过于稀疏,因此tf.matmul(x,W)采用根据x的向量索引进行查W表来进行代替,具体代码为
embedding = tf.Variable(tf.random_uniform([vocab_size, embedding_size], -1,1))
embed = tf.nn.embedding_lookup(embedding, inputs)
3.对获取的词向量采用softmax回归计算上下文单词的概率
4.由于训练速度过慢,因此采用负采样来更新权重
softmax_w = tf.Variable(tf.truncated_normal([vocab_size, embedding_size], stddev=0.1))
softmax_b = tf.Variable(tf.zeros(vocab_size))
loss = tf.nn.sampled_softmax_loss(softmax_w, softmax_b, labels, n_sampled, embed, vocab_size)
cost = tf.reduce_mean(loss)
optimizer = tf.train.AdamOptimizer().minimize(cost)
ps:负采样的目标函数是分配高概率给正例,低概率给负例,但是在随机选择负例的时候,取的是3/4次幂的softmax,目的是增大频次低的词

在这里插入图片描述

5.对了,刚开始的时候需要对数据进行处理,删除低频词和一些标点符号及其他干扰,减少噪音,删除高频词,即停用词(例如:the,this)
6.feed_list里面的inputs和labels是一直变的,所以可以一直更新词向量矩阵和softmax_w和softmax_b
7.反向传播见这篇博客
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值