37 - Word Embedding原理精讲及其PyTorch API教程讲解

文章目录

  • 1. 语言建模
  • 2. 详解
    • 2.1 n-gram模型
    • 2.2 单词的语义表征
    • 2.3 基于神经网络的语言模型(NNLM)
    • 2.4 word2vec模型
      • 2.4.1 改进1
      • 2.4.2 改进2
  • 3. nn.Embedding

1. 语言建模

  • 一种基于已有的人类组织的文本预料来去做无监督学习,如何组织一句话并还能得到单词的语义表征
  • 统计模型:n-gram
  • 无监督学习:NNLM
  • 大规模无监督学习:word2vec,BERT

2. 详解

2.1 n-gram模型

  • 特点:统计性,简单,泛化能力差,无法得到单词的语言信息
  • 定义:n个相邻符构成的序列;单个词unigram/双词bigram/三词trigram
  • 用途:基于n-gram的频数分析文本,如垃圾邮件分类
  • 问题:对于word-n-gram特征维度随着预料词汇增大而增大,而指数增大会导致维度灾难现象发生
  • 问题:对于字符character n-gram来说特征维度只随着n增大而增大

2.2 单词的语义表征

  • 稀疏式:one-hot-encoding
  • 分布式:类似于word-embedding
  • 应用场景:word/character/phrase/sentence/paragraph-embedding/speaker/user/item embedding

2.3 基于神经网络的语言模型(NNLM)

由Rengio提出解决维度灾难问题

  • 输入层
  • 隐含层
  • 投影层
  • 输出层
    Word-Embedding为副产物,隐含的语义表征,主要复杂度为 N ∗ D ∗ H + H ∗ V N*D*H+H*V NDH+HV
    37 - Word Embedding原理精讲及其PyTorch API教程讲解_第1张图片

2.4 word2vec模型

2.4.1 改进1

  • 抛弃隐含层,并提出CBOW(continuous-bag-of-words)与Skip-gram
  • CBOW连续词袋不同于NNLM,CBOW考虑到了前后上下文,使用周围单词预测中间单词
  • skip-gram与CBOW相反,使用中间单词预测周围单词
    37 - Word Embedding原理精讲及其PyTorch API教程讲解_第2张图片

2.4.2 改进2

优化softmax,softmax计算量跟K呈线性关系
σ ( z ) = exp ⁡ z i ∑ j = 1 k exp ⁡ z j \sigma(z)=\frac{\exp^{z_i}}{\sum_{j=1}^k\exp^{z_j}} σ(z)=j=1kexpzjexpzi

  • 基于H-softmax的word2vec
  • CBOW:输入:前n个单词和后n个单词;目标:基于H-Softmax预测中间单词
  • Skip-gram:输入:中间单词;目标:基于H-Softmax预测前n个单词和后n个单词

3. nn.Embedding

nn.Embedding函数测试教程

你可能感兴趣的:(python,pytorch,pytorch,深度学习,机器学习)