当前位置:   article > 正文

【NLP】word2vec哈夫曼编码/层次softmax_层序softmax 二叉霍夫曼树

层序softmax 二叉霍夫曼树

一、回顾word2vec的训练流程:

1.初始化一个embedding权重矩阵W1(N*D)→

2.根据输入单词直接挑出W1矩阵中对应的行向量→

3.相加并求平均得一个向量(1*D)→

4.和W2矩阵(D*N)相乘得最终预测置信度(1*N)→

5.经过softmax得概率(1*N)(注:N为词典大小,D为词向量维度)。

二、为什么要进行哈夫曼编码/层次softmax?

优化【word2vec的训练流程】的第4、5步的计算效率。由于softmax计算分母要求和,在上文第4步时,每预测一个单词,都要进行一次计算,可以看出计算量和词典大小有关(W2矩阵为D“*N)。那我不用softmax函数(虽然叫层次softmax,但并没有用到softmax函数)不就得了;

第二个优化就是减少W2权重矩阵的个数。

三、如何进行哈夫曼编码/层次softmax?

1. 先构造一棵哈夫曼树,这棵树在词典确定好之后就可以构建了:把词频作为权重去构造哈夫曼二叉树,导致权重大的,即经常出现的词更靠近根节点(具体构造方法网上有很多资料)。构造好之后,叶节点涵盖了词典内所有的词,而每个非叶节点上的词频权重可以扔掉了,这些节点在下一步会被赋予新的需要计算的权重,每个节点上的权重形状为D*1。

2. 在【word2vec的训练流程】的第4步,W2不再是一个D*N的矩阵,而是D维度不变,N维度对应哈夫曼树从根节点到预测叶节点走过的节点数,比如我预测一个深

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小桥流水78/article/detail/834252
推荐阅读
相关标签
  

闽ICP备14008679号