word embedding-论文笔记总结

本文详细介绍了词嵌入模型word2vec的两种方法——skipgram和CBOW,包括它们的工作原理、训练过程和优缺点。此外,还提及了GloVe和fasttext等其他词嵌入模型,并简单提到了中文词嵌入的CWE、JWE和cw2vec。
摘要由CSDN通过智能技术生成

词嵌入

word2vec(2013 Tomas Mikolov)

假设你已经对word embedding有初步的了解,至少知道skipgram是用中心词去预测上下文词汇,而CBOW是用上下文词来预测中心词。
假设个鬼哦,还是从头开始整理吧哭泣。我不!!!
网上有好多通俗的讲解word2vec,嘛要是只想了解一下大概是怎么做的而已的话其实也是够的,才怪!! 但对于想要了解得更底层一些的同学(我)来说就有一些误导性,比如一般的word2vec都是用C或者C++写的,跑的时候也是用多线程跑的,而不是用GPU跑的。反向传播的时候也是一对一对的去更新参数而不是一个batch一个batch去更新。loss也不是用softmax而是用nce loss之类的。

下面我讲的是我们实际上在训练词向量矩阵的过程。

举个例子:我们有一个超级大的txt文本,里面是以段落为行,即每个段落结尾有一个\n分行。我们要用这个文本训练一个词向量矩阵,维度为100,要训练的词袋里面有N个词(一般取count=5为界,出现次数小于5的都不去踢出词袋)。
文本里有一个段落(文本提前做了预处理,去掉了字母以外的符号):
My dog is very cute and does not bite people

假设这个时候cute被作为中心词,window取2,即周围词是[is ,very, and, does]。
对于cbow和skipgram,开始训练之前都要先随机初始化两个词向量矩阵(记为左右矩阵),然后在训练的过程通过反向传播更新这两个矩阵(神经网络的经典套路),希望矩阵通过训练能捕捉到词的一些信息。当然两个都可以作为词向量矩阵,不过一般都是取右边的作为词向量矩阵,也有人将两个词向量矩阵平均一下作为词向量矩阵。

  • cbow
    重复一遍,cbow用周围词去预测中心词,对于cbow来说左矩阵就是代表周围词的向量矩阵,右矩阵代表中心词向量矩阵。
    cbow的做法是用[is ,very, and, does]这四个词的在左矩阵的词向量的平均去跟右矩阵的所有向量 中心词+负采样得到的词在右矩阵中对应的词向量分别算分数,分数函数一般用 s ( w , v ) = w T v s(w, v) =w^Tv s(w,v)=wT
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值