embedding

来源:互联网 发布:java读音 编辑:程序博客网 时间:2024/04/23 18:13

what is emdding

embedding就是把字词用向量表示出来,相当于是对字词做encoding

motivation

比如 猫,狗,我们当然可以直接把他们表示为一些独立的离散符号,但是这样的表示毫无意义,而且会产生大量稀疏数据。使我们在训练统计模型时不得不寻求更多的数据。而词汇的向量表示将克服上述的难题。

background

  • VSM(vector space model)
    核心思想就是把一些词用向量空间的表示方法。最基本的应用,就是tf-idf。
    我们把一篇文档用一组向量表示,然后计算文档之间的余弦值来衡量文档相似度。

    vsm在nlp有着非常丰富的应用历史,不过这一模型又是基于分布式假设的。

  • 分布式假设
    其核心思想是:认为出现在上下文情景中的词汇都有着相似的语义。
    基于这一假设的方法,大致可以分为两类:
    – 计数方法。潜在语义分析(latent sematics analysis)
    – 预测方法。神经概率化模型
    用神经网络训练语言模型,比较经典就是Bengio于2003年发表在JMLR上的《A Neural Probabilistic Language Model》
    最简单的词向量,当属于one-hot的表示,这种表示并不是很理想,而distributed represention则比one-hot的好很多,一个猜测是:one-hot的表示相当于是空间中一个孤立的点,而distributed representation,则有种风险平摊的感觉,就像文档表示,被分摊到很多词上面。

  • 神经概率语言模型
    比较经典就是Bengio于2003年发表在JMLR上的《A Neural Probabilistic Language Model》,该论文提出的模型如下:
    这里写图片描述
    其中,w,u都是权重。p和q表示偏置项(bias)
    输入的v是一个已经训练好的词向量。
    输入的个数类似于n-gram,比如假设只跟其前n-1个词语有关于,那么输入层就是n-1,如果向量大小为m,那么投影层就是(n-1)*m的大小,隐层是由语料库的大小决定的,假设有C个。
    那么神经网络语言模型和传统的n-gram的区别是什么呢?
    (1) 词语之间的相似性可以通过词向量来体现。(句子层面)
    (2) 自带平滑功能。(词层面)
    【这里不是很懂,再看看原文章】
    http://blog.csdn.net/itplus/article/details/37969817

Word2Vec

最初的提出者:Tomas Mikolov经典文章:  两种衍生:CBOW Skip-gram
0 0
原创粉丝点击