zoukankan      html  css  js  c++  java
  • 词向量 词嵌入 word embedding

    词嵌入 word embedding

    embedding 嵌入

    embedding: 嵌入, 在数学上表示一个映射f:x->y, 是将x所在的空间映射到y所在空间上去,并且在x空间中每一个x有y空间中唯一的y与其对应。 嵌入,也就是把x在y空间中找到一个位置嵌入,一个x嵌入为一个唯一的y。

    word embedding 词嵌入

    也就是把当前预料文本库中每一个词语都嵌入到一个向量空间当中,并且每一个词语对应唯一的词向量,也就是词向量。

    所以, one-hot也是word Embedding的一种实现,word2Vec也是为了实现 word embedding而提出的一种方案。

    为什么要提出 word Embedding?

    本质的想法是,把语料库中的每一个词语,映射成向量空间当中的唯一向量,这个向量在空间中的方向和位置能某种程度上衡量这个词的意思、感情色彩等。所以从传统的基于统计的n-gram模型之后,提出了one-hot模型,开始走向词向量,然后发现one-hot模型属于硬分类,只有词语不同和相同的信息,丢失了词义、不通词之间的词义,于是又提出了深度学习训练出的词向量模型,之后又经过改进,有了现在比较有名的word2vec模型。
    word2vec模型本身其实是包含两种算法的模型,把语料库中的词语映射到向量空间,获得词向量的一种手段。

    embedding层

    初学nlp知识的时候,经常听到embedding层,一直不知道是什么意思。
    我理解的embedding层,是一个全连接层。 这个全连接层的参数,也就是一个矩阵。将词的one-hot编码与这个全连接层的系数矩阵相乘,得到了一个新的向量,这个向量就是词向量,这样一层全连接层被称作了embedding层,其实就是一个用于讲词映射为向量的映射矩阵。那么这样一个系数矩阵的参数,也就是embedding层这个全连接层的参数是怎么得到的,要详细学习一下word2vec模型里面的两个算法,说的直白点是在用深度学习对词做其他任务的时候,将第一层全连接层的系数保留了下来,也就是则个映射矩阵,也就是embedding层。

    写在最后

    具体word2vec模型是怎么样的,暂且不在这里细说。只是我再学习的过程中,绝大多数讲解中都讲wordEmbedding 和 word2vec混在一起说,也没说清楚什么是word embedding,看到有前辈讲的很清楚,我将自己的理解记录下来,以供他人参考。当然,我的理解可能是不对的,欢迎批评指正

  • 相关阅读:
    Maven学习
    Android屏幕适配
    Java多线程中的死锁问题[转]
    数据结构基本概念和算法分析
    AsyncTask(异步任务)
    Android自定义滑动开关按钮
    记录一些我记不住的技术
    2017携程Web前端实习生招聘笔试题总结
    JavaScript ES5面向对象实现一个todolist
    原生JavaScript实现一个简单的todo-list
  • 原文地址:https://www.cnblogs.com/Lin-Yi/p/11611428.html
Copyright © 2011-2022 走看看