深度学习:词向量和句向量(Embedding)
文章目录Word VectorSkip-grams model with negative samplingContinuous Bag of WordsDocument VectorWord Vector词向量模型可表示为含有一层隐藏层的前向神经网络,词向量为输入层到隐藏层的参数,即参数矩阵的行向量.语料库总词数为|V|embedding后的单词维度为n输入层为n维向量输入层到隐藏...
Word Vector
词向量模型可表示为含有一层隐藏层的前向神经网络,词向量为输入层到隐藏层的参数,即参数矩阵的行向量.
- 语料库总词数为|V|
- embedding后的单词维度为n
- 输入层为n维向量
- 输入层到隐藏层参数矩阵 W ∣ V ∣ × n W_{|V|\times n} W∣V∣×n
- 隐藏层到输出层参数矩阵 U ∣ V ∣ × n U_{|V|\times n} U∣V∣×n,输出经过softmax归一化为概率分布
模型具有两种变体:skip-grams (sg)和continuous bag of words(cbow).
Skip-grams model with negative sampling
skip-grams是基于中心词预测上下文,示意图如下:
输出层的维度等于语料库单词总数,使用naive softmax计算简单,但是计算代价太高.
给定词 w w w,上下文 context ( w ) \text{context}(w) context(w),随机采样K个词构成词集 neg ( w ) \text{neg}(w) neg(w),其中 w , context ( w ) ∉ neg ( w ) w,\text{context}(w) \notin \text{neg}(w) w,context(w)∈/neg(w),可将 context \text{context} context和 neg ( w ) \text{neg}(w) neg(w)分别视为 w w w的正、负样本, K K K个负采样仅构成 K + 1 K+1 K+1个logisti回归,从而退化softmax.
我们希望中心词与真实上下文单词向量的內积更大,与 K K K次随机采样词的內积更小,对于单个窗口的负采样似然函数可表示为:
J t ( θ ) = log σ ( u 0 ⊤ v c ) + ∑ k = 1 K log ( 1 − σ ( u k ⊤ v c ) ) J_t(\theta)=\log\sigma(u_0^\top v_c)+\sum_{k=1}^K\log(1-\sigma(u_k^\top v_c)) Jt(θ)=logσ(u0⊤vc)+k=1∑Klog(1−σ(uk⊤vc))
式中 u 0 u_0 u0和 u k u_k uk分别为上下文单词和负采样单词的onehot向量, v c v_c vc为中心词在输出层向量表示.
负样本词被采样的概率与其在语料库中的频率正相关,为相对减少常见词被采样频率。增加稀有词被采样概率,可将语料库生成的unigram分布,通过3/4次方,w被采样的概率为
P ( w ) = U ( w ) 3 / 4 / Z P(w)=U(w)^{3/4}/Z P(w)=U(w)3/4/Z
上式中Z为归一化因子,用于生成概率分布.
Continuous Bag of Words
CBOW: Predict center word from (bag of) context words.
假设n_gram总数为 T T T(窗口数/训练样本数), w t w_t wt为窗口 t t t中心词的onehot向量,输入层向量 w t ~ w_{\tilde t} wt~为所有邻近词onehot向量, P ( w t ∣ w t ~ ) P(w_t|w_{\tilde t}) P(wt∣wt~)为窗口 t t t中心词的概率分布.
模型目标函数为
J ( θ ) = max ∑ t = 1 T l o g P ( w t ∣ w t ~ ) = max ∑ t = 1 T w t ⋅ log softmax ( U ⋅ f ⊤ ( W ⊤ w t ~ ) ) J(\theta)=\max\sum_{t=1}^Tlog P(w_t|w_{\tilde t}) =\max\sum_{t=1}^Tw_t\cdot \log\text{softmax}\left(U\cdot f^\top(W^\top w_{\tilde t})\right)\\ J(θ)=maxt=1∑TlogP(wt∣wt~)=maxt=1∑Twt⋅logsoftmax(U⋅f⊤(W⊤wt~))
由于 N N N较大(中文词约几十万),而且大语料集下 M M M也非常大,模型的复杂度较大,通常是采用Negtive Sample或Hierarchical Softmax求近似解.
Document Vector
与word2vec类似,doc2vec也可采用两种训练方式:pv-dm类似于cbow(如下图),pv-dbow类似于skip-ngram.
滑动窗口从句中采样固定长度的词,将其中一个词向量作为预测,其他词向量和句向量作为输入(累加平均).
同一句在不同滑动窗口训练时共享句向量.
更多推荐
所有评论(0)