近似训练

http://zh-v2.d2l.ai/chapter_natural-language-processing-pretraining/approx-training.html


这句话翻译错了,造成很大误解,一个时间步t怎么会有两个词?
看英文原文就知道了

时间步t表示当前窗口吧,wt表示正样本,wk表示负采样样本

请问在公式14.2.5中,为什么条件概率P(w^(t+j)|w^(t)) 可以近似的等于这K+1个事件S,N_1,N_2,…,N_K 同时发生的概率?这一步看不懂。

生成自GPT-4👇
负采样的核心思想是将一个复杂的问题简化为一个更简单的问题。原始的问题是,给定一个中心词$w^{(t)}$,我们想要计算它的每一个可能的上下文词$w^{(t+j)}$的条件概率$P(w^{(t+j)}|w^{(t)})$。这是一个多类别分类问题,因为我们的目标是在所有可能的上下文词中选择一个。这个问题的复杂性在于,我们需要计算和比较所有可能的上下文词的概率,这在词汇表非常大时是非常耗时的。

负采样的做法是,将这个多类别分类问题转化为一个二元分类问题。对于每一个中心词和上下文词的组合$(w^{(t)}, w^{(t+j)})$,我们不再计算$w^{(t+j)}$是$w^{(t)}$的上下文词的概率,而是计算这个组合是一个正样本(即,$w^{(t+j)}$确实是$w^{(t)}$的上下文词)的概率。这就是正样本事件$S$,即$P(D=1|w^{(t)}, w^{(t+j)})$。

然后,我们随机选择$K$个噪声词,对于每一个噪声词$w_k$,我们计算它和$w^{(t)}$组成的组合是一个负样本(即,$w_k$不是$w^{(t)}$的上下文词)的概率。这就是负样本事件$N_k$,即$P(D=0|w^{(t)}, w_k)$。

这样,我们就将原来的问题简化为了一个二元分类问题。我们的目标是最大化正样本的概率,同时最小化负样本的概率。这种做法的好处是,我们只需要考虑一个正样本和$K$个负样本,而不是所有可能的上下文词。这大大减少了计算的复杂性,使得模型的训练变得更加高效。

这个假设并不是完全准确的,因为它只是近似地表示了原始的条件概率。但是,在实践中,这种近似已经被证明是有效的,能够生成高质量的词嵌入。

学习时注意到这个问题。事实上从描述上或公式上,hk均与t无关所以明显不相关的

觉得是基于对比学习(如triplet loss in YOLO),另外条件概率简化为dot等因素

some questions:

  1. 能否将‘负采样’看作是contrastive learning即对比学习,而层序softmax看作是‘encoded representation’
  2. 引出 14.2.9 式说明了什么

是的,这里翻译有问题,时间步t只代表词w_(t)