Word2Vec
Word2Vec
由于深度神经网络无法向人类一样理解单词或者句子,因此需要将单词或者句子表达成网络可以理解的形式。
假设有一个词表\(\mathbf{V}=\{w_1,...,w_{|v|}\}\),对每一个单词\(w_i\)来说,有两种表达方式,首先是独热码,其次是分布式表示。
one-hot representation
将每一个单词表示为一个向量,向量的长度是词表中单词的总数,每一个向量只有一个1剩下的值都是0。
优点
- 解释性强:每个单词有唯一对应的独热码,独热码的向量长度等于词表中单词的总数。
- 无信息丢失:词向量的维度等于单词的数量
缺点
- 高维数据导致运算复杂:由于每一个词向量的维度等于词表中单词的总数,因此每一个词向量的维度会高达几千到几万维,因此导致运算复杂度的大幅度上升。
- 效率低下:由于每一个词向量中只有一个1剩下都是0,因此从信息论的角度上说,利用率非常低
- 无法表示任意两个单词之间的相似性:由于使用了独热编码,任意两个单词之间都是正交的。
distributed representation
优点
- 和独热码相比维度较低。
- 向量中每一个元素取值范围为实数
- 可以表达两个单词之间的相似性信息
word2vec
假设:
- 假设窗口大小为\(2c\)
- 假设任意两个词向量分布之间相互独立
对于词表\(\bf{V}=\{w_1,...,W_T \}\)来说,可以得到联合概率分布:
\[ P(w_{1:T})=P(w_t)*P(\text{context}(w_t)|w_t) \]
给定\(w_t\)可以得到条件似然:
\[ P(w_{1:T})=P(w_t)P(w_{t-c : t-1}, w_{t+1:t+c}|w_t)=\Pi_{t=1}^TP(w_{t-c:t-1},w_{t+1:t+c}|w_t) \]
平均条件似然可以表示为:
\[ L = \frac{1}{T}\sum\limits_{t=1}^{T}\log P(w_{t-c:t-1},w_{t+1:t+c}|w_t)=\frac{1}{T}\sum\limits_{t=1}^{T}\sum\limits_{i\in [-c,c]}\log P(w_{t+1}|w_t) \]
Word2Vec
http://jingmengzhiyue.top/2023/03/05/Word2Vec/