【不可思议的Word2Vec】5. Tensorflow版的Word2Vec
By 苏剑林 | 2017-05-27 | 112323位读者 | 引用本文封装了一个比较完整的Word2Vec,其模型部分使用tensorflow实现。本文的目的并非只是再造一次Word2Vec这个轮子,而是通过这个例子来熟悉tensorflow的写法,并且测试笔者设计的一种新的softmax loss的效果,为后面研究语言模型的工作做准备。
不同的地方
Word2Vec的基本的数学原理,请移步到《【不可思议的Word2Vec】 1.数学原理》一文查看。本文的主要模型还是CBOW或者Skip-Gram,但在loss设计上有所不同。本文还是使用了完整的softmax结构,而不是huffmax softmax或者负采样方案,但是在训练softmax时,使用了基于随机负采样的交叉熵作为loss。这种loss与已有的nce_loss和sampled_softmax_loss都不一样,这里姑且命名为random softmax loss。
另外,在softmax结构中,一般是$\text{softmax}(Wx+b)$这样的形式,考虑到$W$矩阵的形状事实上跟词向量矩阵的形状是一样的,因此本文考虑了softmax层与词向量层共享权重的模型(这时候直接让$b$为0),这种模型等效于原有的Word2Vec的负采样方案,也类似于glove词向量的词共现矩阵分解,但由于使用了交叉熵损失,理论上收敛更快,而且训练结果依然具有softmax的预测概率意义(相比之下,已有的Word2Vec负样本模型训练完之后,最后模型的输出值是没有意义的,只有词向量是有意义的。)。同时,由于共享了参数,因此词向量的更新更为充分,读者不妨多多测试这种方案。
哈哈,我的“《圣经》”到了
By 苏剑林 | 2013-06-27 | 56336位读者 | 引用中山大学力学网络教程
By 苏剑林 | 2010-07-21 | 19499位读者 | 引用为了避免以后出现资源无法访问的问题,BoJone把这部分内容拷贝到了科学空间的服务器上。
您现在所看到的版本,是位于“科学空间”服务器上的。
百科翻译:氢氧化钠(NaOH)的详细介绍
By 苏剑林 | 2009-07-08 | 65986位读者 | 引用对于我们来说,维基百科是一个难得的资料库,但是与其英文版相比,中文版就相形见绌了,就好像本文中所讲的氢氧化钠,在中文版的资料为http://zh.wikipedia.org/w/index.php?title=NaOH&variant=zh-cn;而在英文版的资料为http://en.wikipedia.org/wiki/NaOH 可见英文版本是多么丰富。为了使大家能够更多地了解到科学,笔者特地翻译了一些英文版的维基百科中一些资料。
【个人翻译】变暖的地球对冷血动物来说过热?
By 苏剑林 | 2009-07-08 | 33598位读者 | 引用天文马拉松:观测国际空间站
By 苏剑林 | 2009-07-09 | 23902位读者 | 引用植物拯救了地球,阻止寒冷灭绝之灾!
By 苏剑林 | 2009-07-09 | 22514位读者 | 引用增强typecho的搜索功能
By 苏剑林 | 2018-01-09 | 69795位读者 | 引用科学空间是使用typecho程序搭建的博客,侧边栏提供了搜索功能,然而typecho内置搜索功能仅仅是基于字符串的全匹配查找,因此导致很多合理的查询都没法得到结果,比如“2018天象”、“新词算法”都没法给出结果,原因就是文章中都不包含这些字符串。
于是就萌生了加强搜索功能的想法,之前也有读者建议过这个事情。这两天搜索了一下,本来计划用Python下的Whoosh库来建立一个全文检索引擎,但感觉整合和后期维护的工作量太大,还是放弃了。后来想到在typecho自身的搜索上加强,在公司同事(大佬)的帮助下,完成了这个改进。
由于是直接修改typecho源文件实现的改进,因此如果typecho升级后就可能被覆盖,因此在这里做个备忘。
探索
通过在Github检索我发现,typecho的搜索功能是在var/Widget/Archive.php
中实现的,具体代码大概在1185~1192行:
最近评论