#自然语言处理# Lecture 1: Word2Vec

1. 如何表示一个词语的意义

  • 通常解决方案: WordNet (包含同义词集和超名称列表的同义词词典)

2. WordNet 存在的问题

  • 问题包括:
    (1)可以作为较好的资源,但是缺少细微的差别
    (2)无法自动更新新的词汇以及词语的新意义
    (3)主观的
    (4) 需要大量人工去创建和维护
    (5) 不能计算词语间的相似度

  • 将词语表示为离散符号 --> one-hot vectors
    eg.
    motel = [0 0 0 0 0 0 0 0 0 0 1 0 0 0 0]
    hotel = [0 0 0 0 1 0 0 0 0 0 0 0 0 0 0]
    存在的问题:两个向量是正交的,无法度量相似性
    解决方案:通过上下文表示词语

    • Distributional semantics(分布式语义学):A word's meaning is given by the words that frequently appear close-by.
    • 使用大量的上下文来建立一个词语的表示方法
  • 词向量
    建立一个密集矩阵来表示每个单词,因此相似上下文出现的单词具有相似的矩阵。


    注意:词向量(Word vectors) 有时也称作 词嵌入(Word Embeddings) 或者 词表示(Word representations) ,他们都是分布式表示(distributed representation)

3. 什么是Word2vec

  • 核心是构建一个简单的、可扩展的、快速的训练模型,可以处理数十亿单词文本并生成效果很好的单词表示。
  • 预测每一个单词以及其上下文的单词, 是从大量文本语料中以无监督的方式学习语义知识的一种模型
  • 两种算法:
    (1)Skip-grams (SG)
    预测给定目标的上下文单词(位置独立的)
    (2)Continuous Bag of Words (CBOW)
    从磁暴模型上下文预测目标单词
  • 两种效率中等的训练方法:
    (1)Hierarchical softmax
    (2)Negative sampling
  • 详细介绍SG模型

SGD优化模型(Stochastic Gradient Descent,随机梯度下降)

你可能感兴趣的:(#自然语言处理# Lecture 1: Word2Vec)