zoukankan      html  css  js  c++  java
  • Word2vec 基本原理

    1. 词嵌入算法

      基于神经网络的表示一般称为词向量、词嵌入(word embedding)或分布式表示(distributed representation)。其核心是上下文的表示以及上下文与目标词之间的关系映射,主要通过神经网络对上下文,以及上下文和目标词之间的关系进行建模。

    2. 词向量

      最常见的方法是用 One-hot。它假设词之间的语义和语法关系是相互独立的。

      先创建一个词汇表并把每个词按顺序编号,每个词就是一个很长的向量,向量的维度等于词汇表大小,只有在对应位置上的数字为 1,其他都为 0 。

      如: PHP is the best programming language in the world.

      ​ I really enjoy the process of programming.

      对于这两句话,我们先构造一个词典

      [D={'PHP':1,quad 'is':2,quad 'the':3,quad 'best':4,quad 'programming':5, quad 'language':6, quad 'in':7, quad 'world':8, quad 'I':9, quad 'really':10, quad 'enjoy':11, quad 'process':12, quad 'of':13, quad } ]

      上面的词典包含14个单词,然后对每个单词进行 one-hot 编码

      PHP : (1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
      is :  (0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
      the : (0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
      ...
      ...
      ...
      of :  (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)
      

      得到了每个单词的embedding之后,就可以送入到机器学习或者深度学习模型中进行后续处理。

      不足:

      • 无法捕捉词与词之间得相似度,即仅从两个向量是无法看出两个词汇之间的关系,也称为 “ 语义鸿沟” 问题
      • 维度爆炸。随着词典规模的增大,维度变得越来越大,矩阵也变得超稀疏,且会耗费巨大得计算资源。
      • 无法保留词序信息
    3. word2vec

      word2vec 是 Google 在 2013 年发布的一个开源词向量建模工具。

      基本思想:通过训练将每个词映射成 K 维实数向量(K 一般为模型中的超参数),通过词之间的距离(欧氏距离等)来判断它们之间的语义相似度。

      word2vec 结构图:

      word2vec 采用的模型有两种:CBOW(Continuous Bag-Of-Words) 和 Skip-Gram 两种

      两种结构如下:

      • CBOW

        通过上下文来预测当前词。包含输入层、投影层、输出层(没有隐藏层)。

        • 随机生成一个所有单词的词向量矩阵,每一行对应一个单词向量
        • 对于某一个单词(中心词),从矩阵中提取其周边单词的向量
        • 求周边单词的词向量的均值向量
        • 在该均值上使用 logistic regression 进行训练,softmax 作为激活函数
        • 期望回归得到的概率向量可以与真实的概率向量(即中心词 one-hot 编码向量)相匹配
      • Skip-gram

        它与 CBOW 相反,通过中心词来预测上下文,输出层是一颗 Huffman 树。

      Huffman 树

      对于一组节点,按权值从小到大排列,每次选其中最小的两个节点组合成一个新的节点,放入节点集中,再次选择,直到节点选完。

  • 相关阅读:
    DNNClassifier 深度神经网络 分类器
    浏览器对MP4视频 帧宽度 高度的兼容性
    UnicodeEncodeError:'latin-1' codec can't encode character
    文件夹下 文件计数
    the largest value you actually can transmit between the client and server is determined by the amount of available memory and the size of the communications buffers.
    the “identity” of an object
    广告特征 用户特征
    如果一个维度全覆盖,则有效维度应该对该维度全覆盖
    a high-level neural networks AP
    使用 LDA 挖掘的用户喜好主题
  • 原文地址:https://www.cnblogs.com/alivinfer/p/12840994.html
Copyright © 2011-2022 走看看