Embedding

149 阅读2分钟

what is embeding

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) 自带平滑功能。(词层面) 【这里不是很懂,再看看原文章】 blog.csdn.net/itplus/arti…

Word2Vec

最初的提出者:Tomas Mikolov 经典文章:
两种衍生:CBOW Skip-gram

开启掘金成长之旅!这是我参与 「掘金日新计划 · 2 月更文挑战」的第 25 天,点击查看活动详情