2016-12-19

来源:互联网 发布:软件测试方案实例 编辑:程序博客网 时间:2024/05/21 21:48
今天主要的工作有以下几部分:
1. 熟悉运行word2vec_basic版本,tf.nn.nce_loss()函数返回的是batch的loss值,而因为词表太大不太适合做全局的softmax, 因此此处采取的是采样的方法,也就是经过一个正样本和多个随机采样的负样本来计算loss值,此处用的是sigmoid_cross_entropy_with_logits()函数,因此在计算交叉熵的时候是每一个维度分别看作一个二值的概率分布。

2. 在训练的时候代码中输入的embedding参数和输出的embedding并不是相同的参数,而是分开训练的。为了看两者的区别,分别做了两个不同的实验,一个是输入输出参数分别训练,结果如上方图所示,另外一个则共用参数,结果如下方图所示。

3. word2vec是更复杂版本的,有多线程和处理大规模数据的操作。需要注意的是tensorflow中op用c语言来写,在编译的时候会把相应的c语言代码编入相应的库中可以调用。

4. 看了短文本相似度一些最近的文章,大概了解到之前的利用知识库的方法主要先计算不同词在知识库中的距离,之后再计算短文本之间的距离。而利用深度学习的方法也类似,是把词表示向量,之后再用不同的方法来计算短文本的距离,比如(加权平均,求和,卷积,RNN)等等。
0 0
原创粉丝点击