Seq2Seq
Seq2Seq和Word2Vec
Seq2Seq
Word2Vec
深入浅出Word2Vec原理解析 - 知乎 (zhihu.com)
一文搞懂One-Hot编码与词嵌入(Embedding)-百度开发者中心 (baidu.com)
如何通俗理解Word2Vec (23年修订版)-CSDN博客 :star:
传统的one-hot 编码仅仅只是将词符号化,不包含任何语义信息。而且词的独热表示(one-hot representation)是高维的,且在高维向量中只有一个维度描述了词的语义 (高到什么程度呢?词典有多大就有多少维,一般至少上万的维度)。所以我们需要解决两个问题:
- 需要赋予词语义信息
- 降低维度
Word2Vec:最终词向量的维度(与隐含层结点数一致)一般情况下要远远小于词语总数 的大小,所以 Word2vec 最有价值的是
- 让不带语义信息的词带上了语义信息
- 其次把词语从 one-hot encoder 形式的表示降维到 Word2vec 形式的表示
CBOW(通过上下文推断某个词)
- 将上下文词进行 one-hot 表征作为输入:
I: [1,0,0,0]
drink: [0,1,0,0]
coffee: ?
everyday: [0,0,0,1] - 然后将 one-hot 表征结果[1,0,0,0]、[0,1,0,0]、[0,0,0,1],分别乘以:3×4的输入层到隐藏层的权重矩阵W「这个矩阵也叫嵌入矩阵,可以随机初始化生成」,比如可以是
1 2 3 0
1 2 1 2
-1 1 1 1 - 将得到的结果向量求平均作为隐藏层向量:[1, 1.67, 0.33]
- 然后将隐藏层[1, 1.67, 0.33]向量乘以:4×3的隐藏层到输出层的权重矩阵W’「这个矩阵也是嵌入矩阵,也可以初始化得到」,得到输出向量:[4.01, 2.01, 5.00, 3.34]
- 最后对输出向量[4.01, 2.01, 5.00, 3.34] 做 softmax 激活处理得到实际输出[0.23, 0.03, 0.62, 0.12],并将其与真实标签[0, 0, 1, 0]做比较,然后基于损失函数做梯度优化训练
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Roger-Lv's space!
评论