Distributed Representations of Words and Phrases and their Compositionality论文记录

1 中心点

在这篇文章中,提出了几个Skip-gram 模型的扩展。在训练过程中对频繁词进行二次采样可以显著地加速(约2倍-10倍),并提高较低频率词表示的准确性。

提出了一种简化的噪声对比估计(NCE)变体来训练 Skip-gram 模型,与之前工作中使用的更复杂的分层 Softmax 相比,该模型有更快的训练速度和更好的频繁词的向量表示

2 介绍

单词表示,不能很好表示不是单个单词组成的习语短语。例如,“波士顿环球报”是一份报纸,所以它不是“波士顿”和“环球报”意思的自然组合。

因此,使用向量表示整个短语使 Skip-gram 模型更具表现力。

最后,我们发现了 Skip-gram 模型的另一个有趣的性质。我们发现,简单的向量加法通常可以产生有意义的结果。例如,vec(“俄罗斯”) + vec(“河”)接近vec(“伏尔加河”),vec(“德国”) + vec(“首都”)靠近vec(“柏林”)。

这种构成性表明,通过对单词矢量表示进行基本的数学运算,可以获得不明显的语言理解程度。

Skip-gram

Skip-gram 模型的训练目标是:在句子或文档中,找到对预测周围单词有用的单词表示。

给定训练单词序列 w 1 , w 2 , w 3 , w T w_1, w_2, w_3, w_T w1,w2,w3,wT,Skip-gram 模型的目标是最大化平均对数概率
1 T ∑ t = 1 T ∑ − c ≤ j ≤ c , j ≠ 0 log ⁡ p ( w t + j ∣ w t ) \frac{1}{T} \sum_{t=1}^{T} \sum_{-c \leq j \leq c, j \neq 0} \log p\left(w_{t+j} \mid w_{t}\right) T1t=1Tcjc,j=0logp(wt+jwt) 其中,c 是训练的上下文大小;

Skip-gram 用 softmax 函数定义 p ( w t + j ∣ w t ) p(w_{t+j}|w_t) p(wt+jwt)
p ( w O ∣ w I ) = exp ⁡ ( v w O ′ τ w I ) ∑ w = 1 W exp ⁡ ( v w ′ v w I ) p\left(w_{O} \mid w_{I}\right)=\frac{\exp \left(v_{w_{O}}^{\prime} \tau_{w_{I}}\right)}{\sum_{w=1}^{W} \exp \left(v_{w}^{\prime} v_{w_{I}}\right)} p(wOwI)=w=1Wexp(vwvwI)exp(vwOτwI) v w v_w vw v w ′ v'_w vw 分别是 w w w 的输入和输出向量表示, W W W 是词典中单词数。

不过概率和 W W W 有关,计算复杂度有 1 0 5 − 1 0 7 10^5 -10^7 105107

分层Softmax

与完全 SoftMax 近似且高效计算的是分层 SoftMax,计算复杂度为 l o g 2 ( W ) log_2(W) log2(W)

分层 SoftMax 使用输出层的二叉树表示,以 W 单词作为其叶子,并且每个节点显式地表示其子节点的相对概率。这些定义了为单词分配概率的随机漫游。

分层 SoftMax 定义 p ( w O ∣ w I ) p(w_O|w_I) p(wOwI) 为:
p ( w ∣ w I ) = ∏ j = 1 L ( w ) − 1 σ ( ⟦ n ( w , j + 1 ) = ch ⁡ ( n ( w , j ) ) ⟧ ⋅ v n ( w , j ) ′ T v w I ) p\left(w \mid w_{I}\right)=\prod_{j=1}^{L(w)-1} \sigma\left(\llbracket n(w, j+1)=\operatorname{ch}(n(w, j)) \rrbracket \cdot {v'_{n(w, j)}}^T v_{w_{I}}\right) p(wwI)=j=1L(w)1σ([[n(w,j+1)=ch(n(w,j))]]vn(w,j)TvwI) 其中, n ( w , j ) n(w, j) n(w,j) 是从根到 w 的路径上的第 j j j 个结点;
L ( w ) L(w) L(w) 是这条路径的长度;这样 n ( w , 1 ) = r o o t n(w,1)=root n(w,1)=root n ( w , L ( w ) ) = w n(w, L(w))=w n(w,L(w))=w
c h ( n ) ch(n) ch(n) 是 n 的任意一个固定子结点
⟦ x ⟧ \llbracket x \rrbracket [[x]] 为 1 如果 x 为真,否则为 -1
σ ( x ) = 1 / ( 1 + e x p ( − x ) ) \sigma(x)=1/(1+exp(-x)) σ(x)=1/(1+exp(x))

现在计算概率的计算复杂度为 L ( w O ) L(w_O) L(wO),平均不超过 l o g W logW logW

分层 SoftMax 使用的树的结构对性能有相当大的影响。文章使用了二进制霍夫曼树,将短码分配给频繁出现的单词

负采样

分层 Softmax 的另一种替代方法是噪声对比估计(NCE)。它假设一个好的模型应该能够通过 Logistic 回归来区分数据和噪声。

Skip-gram 模型只关心学习高质量的向量表示,所以只要向量表示保持其质量,我们就可以自由地简化 NCE。我们根据目标定义负抽样(NEG):
log ⁡ σ ( v w O ′ T v w I ) + ∑ i = 1 k E w i ∼ P n ( w ) [ log ⁡ σ ( − v w i ′ T v w I ) ] \log \sigma\left({v'_{w_O}}^T v_{w_I}\right)+\sum_{i=1}^{k} \mathbb{E}_{w_{i} \sim P_{n}(w)}\left[\log \sigma\left(-{v'_{w_i}}^Tv_{w_{I}}\right)\right] logσ(vwOTvwI)+i=1kEwiPn(w)[logσ(vwiTvwI)]

频繁词子采样

有一些词会频繁出现(如 in、the、a) 等,提供的信息会很少

针对稀有词和频繁词之间的不平衡,我们采用了一种简单的二次抽样方法:一定概率丢弃训练集中的每个词 w i w_i wi
P ( w i ) = 1 − t f ( w i ) P\left(w_{i}\right)=1-\sqrt{\frac{t}{f\left(w_{i}\right)}} P(wi)=1f(wi)t 其中, f ( w i ) f(w_i) f(wi) 是单词 w i w_i wi 的频率;
t t t 是被选择的阈值,一般为 1 0 − 5 10^{-5} 105

频率大于 t t t 的单词进行积极的子采样。这个公式是启发式的,但在实践中效果很好。

3 结果

Skip-gram 的线性使其向量更适合于这种线性类比推理。

标准 S 型递归神经网络表明非线性模型也偏向单词表示的线性结构

猜你喜欢

转载自blog.csdn.net/qq_40860934/article/details/112235578