当前位置: 代码迷 >> 综合 >> word2vec 的本质
  详细解决方案

word2vec 的本质

热度:66   发布时间:2023-12-12 15:51:46.0

午夜昏睡的时候,忽然想到 word2vec 的本质,其实很简单。理解了其本质,可以组合出各种具体的方案出来。

假设词汇库里有 m 个词汇,word2vec 把 m m m 个词汇映射到 n n n 维空间。说白了,这就是一个映射。如下所示,其中 w w w 是词汇, v v v 是向量:
w → F v (1) \tag1 w \stackrel{F} \to v wFv(1)

要实现这个映射,可以分成两步:

第一步,把 w w w 映射到一个稀疏向量 u u u

可选方案很多,最简单的做法是,统计语料库中的句子中, w w w 前后某个范围内出现的其他单词的概率分布,这个频率分布可以用一个 m m m 维向量 u u u 表示 。

w → R u (2) \tag2 w \stackrel{R} \to u wRu(2)

其实这一步已经完成向量化的任务了。一般而言,这个步骤中的 u u u 是一个稀疏向量,因此我们需要给它降一下维。

第二步,把 u u u 降维。

这个用压缩+解压缩网络模型,用无监督训练方法,很容易建立一个数据压缩模型,进一步把 m m m 维的概率分布压缩到 n n n 维。

u → S v → T u ′ (3) \tag3 u \stackrel{S} \to v \stackrel{T} \to u' uSvTu(3)

其中, S S S 是压缩网络, T T T 是解压缩网络。最后,得到 word2vec 映射:
F = R ? S F = R\cdot S F=R?S

即:

w → R u → S v w\stackrel{R}\to u \stackrel{S}\to v wRuSv

虽然各种网络模型实现形式各有特色,但背后的数学思想,基本离不开本文所述。 ■ \blacksquare


原创不易,如果对您有帮助,请关注、点赞,谢谢支持!