欢迎使用CSDN-markdown编辑器

来源:互联网 发布:韦德生涯数据更新 编辑:程序博客网 时间:2024/06/08 09:57

word2vec 核心简记

  • Huffman编码:

    用词频作为词权重,构造 Huffman 树生成的 Huffman 编码,满足语料库总编码长度的期望最短。(频率高的编码短,频率低的编码长)

  • n-gram:

    (n-1)阶Markov假设:词概率只与它前面 n-1 个词有关。复杂度 O(Nn)。需要平滑(类似 Bayes)
    n=1即是 unigram

2 Hierarchical Softmax

  • n-gram下词 wi 的上下文Context(wi):

    C(wi)=(win,,wi1wi+1,,wi+n)

  • 每个词的词向量:v(w)

2.1 CBOW(continuous bag of word):
  • 概率模型及其对数似然函数:

    p(w|C(w))=wlogp(w|C(w))

  • 输入层:C(w)

  • 投影层的构造:x(w)=wC(w)v(w)
  • 输出层:
    Huffman 树,叶子节点N(词个数)个,非叶子节点 N1个。
    从根节点向下找到词 w 的叶节点有唯一路径 j,到每一层 j 的结点(有一个权重θj)向下做二分裂,相当于做一次二分类σ(x(w)θj)。向左为负类(tj+1=0),右为正类(tj+1=1)。
    最终找到词 w 的概率 P 及对数似然函数
    p(w|C(w))=j=1wp(tj+1|x(w),θj)=j=1wσ(x(w)θj)tj+1[1σ(x(w)θj)]1tj+1=wlogj=1wp(tj+1|x(w),θj)=wj=1w(tj+1logσ[x(w)θj]+(1tj+1)log(1σ[x(w)θj]))

t是与 w 有关的(每次找不同的 w),θ只与结点有关,与词无关?

2.2 skip-gram:
  • 输入层:v(w)
  • 输出层:
    Huffman树。从顶层根结点向下找到每个 uC(w)。每个结点的二分裂与CBOW 类似。
    概率模型及其对数似然函数:
    p(C(w)|w)=uC(w)p(u|w)=uC(w)j=1uσ(v(w)θj)tj+1[1σ(v(w)θj)]1tj+1=wloguC(w)p(u|w)wuC(w)j=1u(tj+1logσ[v(w)θj]+(1tj+1)log(1σ[v(w)θj]))

3. Negative sampling(NEG)

用随机负采样替代 Huffman 树,提高效率。

  • 词向量:v(w),简写 vw
  • 每个词的上下文Context(w):C(w)xw=x(w)=uC(w)v(u)
  • 每个词的负采样集合:NEG(w)
  • 每个词的辅助权重:θw
3.1 CBOW

对每一组样本 (w,C(W)),最大化 p(c(w)w),最小化 uNEG(w)p(c(w)u), 即最大化的单样本似然函数g(w)。及语料库D的总似然函数

g(w)=p(w|C(w))uNEG(w)p(u|C(w))=σ(xwθw)uNEG(w)[1σ(xwθu)]=wlogg(w)=wlogσ(xwθw)+uNEG(w)log[1σ(xwθu)]

3.2 skip gram

对每一组样本 (w,C(W)),?