NLP - 01Introduction and Word Vectors

词向量

将词编码为向量可以在词空间中表示为一个点,词空间的维度实际上可能比词数量要小,就足以编码所有单词的语义。one-hot vector:将每个词表示为含有0和1的向量,$R^{|V|·1}$,V为词汇表的大小。这样的词表示没给我们直接的相似性概念,每个词都是线性无关的,所以尝试减小空间来找到一个子空间编码单词之间的关系。

  • Denotational semantics: 用符号(独热向量)表示,是稀疏的不能捕获相似性。

  • Distributional semantics: 根据上下文表示单词的含义,密度大可以很好的捕捉相似性。

SVD based methods

这类的方法是找到一个词嵌入,我们先循环一遍数据集,用矩阵X累计单词共现的频率,然后在X上进行奇异值分解,得到$USV^T$,用U的行作为字典里所有单词的词嵌入。下面讨论几种X的选择。

  • Using Word-Word Co-occurrence
    Matrix:
    • Generate |V| × |V| co-occurrence
      matrix, X.
    • Apply SVD on X to get X = $USV^T$.
    • Select the first k columns of U to get a k-dimensional word vectors.
    • $\frac{\sum^{k}{i=1}\sigma{i}}{\sum^{|V|}{i=1}\sigma{i}}$ indicates the amount of variance captured by the first k dimensions.

      Word-Document Matrix

猜测:有联系的单词经常出现在相同的文档里

构建X:循环非常多的文档,每次单词i出现在文档j里,我们将它添加到$X_{ij}$,维度为$|V|·M$,随着文档数增加。

Window based Co-occurrence Matrix

计算每个单词出现在感兴趣的单词的周围的特定大小滑动窗口中的次数。

对共现矩阵使用SVD

对X执行SVD,观察奇异值,S矩阵的对角项,根据捕获的期望百分比方差,在某个索引k处切断它们。

  • 基于统计的方法有很多问题:矩阵的维数经常发生变化;矩阵稀疏;高维;计算代价;单词频率不平衡

Iteration Based Methods - Word2vec

我们尝试一种新的方法,不是计算存储关于大数据集的全局信息,我们尝试构建一个模型,有能力一次学习一个迭代,最终能够对给定上下文的单词的概率进行编码。

  • Iteration-based methods:每次捕捉单词的共现,而不是SVD直接捕获所有的共现

Word2vec is a software package that actually includes :

  • 2 algorithms: continuous bag-of-words (CBOW) and skip-gram.

    CBOW aims to predict a center word from the surrounding context in terms of word vectors. Skip-gram does the opposite, and predicts the distribution (probability) of context words from a center word.

  • 2 training methods: negative sampling and hierarchical softmax.

    Negative sampling defines an objective by sampling negative examples, while hierarchical softmax defines an objective using an efficient tree structure to compute probabilities for all the vocabulary.

语言模型

NLP - 01Introduction and Word Vectors

http://example.com/2022/09/16/NLP - 01/

作者

Yang

发布于

2022-09-16

更新于

2022-09-21

许可协议

评论