word2vec的实现简记

采用negative sampling方式
1.处理数据,获得中心词centers(一个词对应一个序号),背景词和非背景词contexts_negatives(一个词对应一个序号),和标签labels(0和1,0表示非背景词,1表示背景词),masks(用于contexts_negatives长度不足时填充,0表示填充单元,1表示有效单元)
2.定义两个全连接层设【1】,【2】,权重矩阵均为 m * n 其中m为样本总数,n为单词向量表示的特征数
3.计算时候根据【1】【2】得到centers和contexts_negatives的表示,并且将他们做内积运算得到inputs,和targets(也就是lables),masks之后代入loss函数,loss函数为

nn.functional.binary_cross_entropy_with_logits(inputs, targets,
reduction="none", weight=mask)

得到最终输出,并做BP
4.其算法本质上是将与背景词的预测尽可能接近1,而非背景词的预测尽可能接近于0,以达到缩小损失函数的目的。
这样最终得到的表达下,中心词和背景词的单词向量内积取sigmoid后将会接近1,可以认为是两单词一起出现的可能性。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值