A fast and simple algorithm for training neural probabilistic language models

Mnih A. and Teh Y. W. A fast and simple algorithm for training neural probabilistic language models. ICML, 2012.

NCE 用在语言模型的训练上.

Noise contrastive estimation

  • 给定 context h, 下一个词为 w 的条件概率按照如下方式定义:

    Pθ(w|h)=exp(sθ(w,h))wexp(sθ(w,h)),

  • 作者认为, 当词表过大的时候, normalizing term Zh=wexp(sθ(w,h)) 的计算过于消耗时间了. 所以本文求助 NCE 来解决这一个问题.

  • 对于这类问题, NCE 的处理方式是设计一个二分类任务:

    P(C=1|w,h;θ)=Pθ(w|h)Pθ(w|h)+kPn(w|h),

    其中 Pn(w|h) 是一个噪声分布, k 表示采样过程中, w 采样自真实分布和噪声分布的比例为 1:k.

  • ch=lnZh, 我们有

    lnPθ(w|h)=sθ(w,h)c.

  • 此时

    P(C=1|w;θ)=σ(sθ(w,h)),sθ(w,h)=sθ(w,h)chlnkPn(w|h).

  • NCE 将 ch 也作为一个参数训练, 然后具体的损失为 (对于每个 h):

    EwP(w|h)logσ(sθ(w,h))kEwPn(w|h)log(1σ(sθ(w|h))).

  • 这里的一个问题是, 自然语言里的 context h 太多了, 所以很难说给每个 ch 都设为一个参数去学习, 作者发现, ch0 实验中的效果就很好. 故而, 实际中我们所采用的为:

    sθ(w,h)=sθ(w,h)lnkPn(w|h).

  • 特别地, 如果我们采取一种最简单的噪声分布, 即 Pn(w|h)=Pn(w)=1N (N 为词的个数), 我们有:

    sθ(w,h)=sθ(w,h)lnkN.

  • 进一步地, 我们可以把 lnkN 也省略, 只要我们相信 sθ(w,h) 本身有能力意识到这一点. 实际上, 这也是 Word2Vec 中的 NEG (Negative sampling) 的做法.

posted @   馒头and花卷  阅读(13)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
历史上的今天:
2019-12-13 Spurious Local Minima are Common in Two-Layer ReLU Neural Networks
点击右上角即可分享
微信分享提示