Word2Vec 与 Word Embedding的关系

文章目录

  • 参考文章
  • 一、 DeepNLP的核心
  • 二、 NLP中的文本表示(Representation)
    • 1. One Hot Representation
    • 2. 整数编码
    • 3. Distributed Reprensentation
      • 背景
      • 如何将语义融入到词表示中?
      • 如何利用上下文
  • 三、 NLP语言模型
  • 四、词的分布式表示
    • 1. 基于矩阵的分布表示
    • 2. 基于聚类的分布表示
    • 3. 基于神经网络的分布表示
  • 五、 词嵌入(Word Embedding)
    • 1. 概念
    • 2. 理解
    • 3. 实现方式
  • 六、 神经网络语言模型与word2vec
    • 1. 神经网络语言模型
    • 2. word2vec 与 CBOW、Skip-gram
      • ① CBOW
        • 简介
      • ② Skip-gram
        • 简介
  • 七、总结
  • 七、扩展知识

参考文章

  • 秒懂词向量Word2vec的本质
  • 通俗理解word2vec
  • 莫烦PYTHON GITHUB
  • word2vec和word embedding有什么区别?
  • YJango的Word Embedding–介绍 - YJango的文章
  • 李宏毅机器学习视频
  • 词嵌入 | Word embedding

一、 DeepNLP的核心

核心关键:语言表示(Representation)

二、 NLP中的文本表示(Representation)

Word2Vec 与 Word Embedding的关系_第1张图片

文本是一种非结构化的数据信息,是不可以直接被计算的。

文本表示的作用就是将这些非结构化的信息转化为结构化的信息,这样就可以针对文本信息做计算,来完成我们日常所能见到的文本分类,情感判断等任务。

主要介绍以下三种

  • 独热编码 | one-hot representation
  • 整数编码
  • 分布式编码|Distributed Reprensentation

1. One Hot Representation

示例

     ~~~~     假设有1000个词汇量,排在第一个位置的代表英语中的冠词 a a a, a a a就用 [ 1 , 0 , 0 , . . . . ] [1,0,0,....] [1,0,0,....]表示,只有第一个位置为 1 1 1,其余都是 0 0 0,如下图所示
Word2Vec 与 Word Embedding的关系_第2张图片

在one hot representation编码的每个单词都是一个维度,彼此相互独立

优点

  1. 解决了分类器难以处理离散数据的问题
  2. 一定程度上起到了扩充特征的作用

缺点

  1. 它是一个词袋模型,不考虑词语词之间的顺序(文本中词的顺序信息也是很重要i的)
  2. 词语词之间完全独立,没有相互联系,这显然是不符合实际。
  3. 其得到的特征是离散稀疏的,得到的向量过于稀疏,导致计算和存储的效率不高

2. 整数编码

一个数字来表示一个词

  • 猫:1
  • 狗:2
  • 牛:3
  • 羊:4

Word2Vec 与 Word Embedding的关系_第3张图片
将句子中的每个词拼起来就是可以表示一句话的向量。

缺点

  • 无法表达词语之间的关系
  • 对于模型解释而言,整数编码可能具有挑战性

3. Distributed Reprensentation

第四节详细阐述分布式表示

代表性的就是词嵌入(Word Embedding),具体将在后面讲解

Word2Vec 与 Word Embedding的关系_第4张图片

背景

每个单词之间彼此无关是不符合现实的,实际上大量单词之间会有着相关性

  • 语义:girl 和 women虽然在年龄上不同,但都是女性
  • 复数:word和words仅仅是复数和单数的差别
  • 时态:buy和bought表达的是"买"

one hot representation的编码方式就不会考虑这些差别

我们更希望用诸如“语义”,“复数”,“时态”等维度去描述一个单词。每一个维度不再是0或1,而是连续的实数,表示不同的程度。

如何将语义融入到词表示中?

Harris在1954年提出的分布假说(distributional hypothesis):上下文相似的词,其语义也相似

Firth在1957年对分布假说进一步阐述和明确:词的语义由其上下文决定(a word is characterized by
thecompany it keeps)

示例

给machine阅读大量文本,例如下图中的两例,机器通过上下文认为“马英九”和“蔡英文”是相似类型的词

Word2Vec 与 Word Embedding的关系_第5张图片
基于分布假说的词表示方法

根据建模的不同分为以下三类

  • 基于矩阵的分布表示
  • 基于聚类的分布表示
  • 基于神经网络的分布表示

上述方法的核心思想

  • 选择一种方式描述上下文
  • 选择一种模型刻画某个词(下文称"目标词")与其上下文之间的关系

如何利用上下文

1 Count based

若是两个单词 w i w_i wi w j w_j wj经常一起出现,那么这两个单词就有紧密的联系

2 Predition based

三、 NLP语言模型

在详细介绍词的分布式表示之前,需要将NLP中的一个关键概念描述清楚:语言模型。

语言模型包括文法语言模型统计语言模型

一般我们指的是统计语言模型。之所以要将语言模型摆在词表示方法之前,是因为后面的表示方法马上要用到这一概念。

  • 统计语言模型:
    • 统计语言模型把语言(词的序列)看作一个随机事件,并赋予相应的概率来描述其属于某种语言集合的可能性。
    • 给定一个词汇集合 V V V,对于一个由 V V V 中的词构成的序列 S = ⟨ w 1 , ⋅ ⋅ ⋅ , w T ⟩ ∈ V n S = ⟨w_1, · · · , w_T ⟩ \in V_n S=w1,,wTVn,统计语言模型赋予这个序列一个概率 P ( S ) P(S) P(S),来衡量 S S S符合自然语言的语法和语义规则的置信度。

用一句简单的话说,就语言模型就是计算一个句子的概率大小的这种模型。有什么意义呢?

一个句子的打分概率越高,越说明他是更合乎人说出来的自然句子。就是这么简单。

常见的统计语言模型有 N N N元文法模型(N-gram Model),
最常见的是unigram model、bigram model、trigram model等等。

形式化讲,统计语言模型的作用是为一个长度为 m m m 的字符串确定一个概率分布 P ( w 1 ; w 2 ; . . . . . ; w m ) P(w_1; w_2;..... ; w_m) P(w1;w2;.....;wm),表示其存在的可能性,其中 w 1 w_1 w1 w m w_m wm 依次表示这段文本中的各个词。一般在实际求解过程中,通常采用下式计算其概率值:

P ( w i ∣ w 1 , w 2 , . . . w i − 1 ) ≈ P ( w i ∣ w i − ( n − 1 ) , . . . , w i − 1 ) P(w_i|w_1,w_2,...w_{i-1}) \approx P(w_i|w_{i-(n-1)},...,w_{i-1}) P(wiw1,w2,...wi1)P(wiwi(n1),...,wi1)
同时通过这些方法均也可以保留住一定的词序信息,这样就能把一个词的上下文信息capture住。
具体的语言模型请自行搜索。

四、词的分布式表示

1. 基于矩阵的分布表示

     ~~~~     基于矩阵的分布表示通常又称为分布语义模型,在这种表示下,矩阵中的一行,就成为了对应词的表示,这种表示描述了该词的上下文的分布。由于分布假说认为上下文相似的词,其语义也相似,因此在这种表示下,两个词的语义相似度可以直接转化为两个向量的空间距离。

     ~~~~     常见到的Global Vector 模型( GloVe模型)是一种对“词-词”矩阵进行分解从而得到词表示的方法,属于基于矩阵的分布表示。

2. 基于聚类的分布表示

3. 基于神经网络的分布表示

基 于 神 经 网 络 的 分 布 表 示 一 般 称 为 词 向 量 、 词 嵌 入 ( w o r d e m b e d d i n g ) 或 分 布 式 表 示 ( d i s t r i b u t e d r e p r e s e n t a t i o n ) \color{red}{基于神经网络的分布表示一般称为词向量、词嵌入( word embedding)或分布式表示( distributed representation}) wordembeddingdistributedrepresentation),这就是此次文章的主角

神经网络词向量表示技术通过神经网络技术对上下文,以及上下文与目标词之间的关系进行建模

由于神经网络较为灵活,这类方法的最大优势在于可以表示复杂的上下文
在前面基于矩阵的分布表示方法中,最常用的上下文是词。如果使用包含词序信息的 n − g r a m n-gram ngram 作为上下文,当 n n n 增加时, n − g r a m n-gram ngram的总数会呈指数级增长,此时会遇到维数灾难问题。 而神经网络在表示 n − g r a m n-gram ngram 时,可以通过一些组合方式对 n n n个词进行组合,参数个数仅以线性速度增长。有了这一优势,神经网络模型可以对更复杂的上下文进行建模,在词向量中包含更丰富的语义信息。

五、 词嵌入(Word Embedding)

1. 概念

     ~~~~     基于神经网络的分布表示又称为词向量、词嵌入,神经网络词向量模型与其它分布表示方法一样,均基于分布假说核心依然是上下文的表示以及上下文与目标词之间的关系的建模

前面提到过,为了选择一种模型刻画某个词(下文称“目标词”)与其上下文之间的关系,我们需要在词向量中capture到一个词的上下文信息。同时,上面我们恰巧提到了统计语言模型正好具有捕捉上下文信息的能力。那么构建上下文与目标词之间的关系,最自然的一种思路就是使用语言模型。从历史上看,早期的词向量只是神经网络语言模型的副产品。

     ~~~~      2001年, Bengio 等人正式提出神经网络语言模型( Neural Network Language Model ,NNLM),该模型在学习语言模型的同时,也得到了词向量。所以请注意一点:词向量可以认为是神经网络训练语言模型的副产品。

2. 理解

o n e − h o t one-hot onehot表示法具有维度过大的缺点,那么现在将vector做一些改进:

  • 1、将vector每一个元素由整形改为浮点型,变为整个实数范围的表示;
  • 2、将原来稀疏的巨大维度压缩嵌入到一个更小维度的空间。如下图所示,这也是词向量又名词嵌入的缘由。

Word2Vec 与 Word Embedding的关系_第6张图片
优势

  • 将文本通过一个低维向量来表达,不像 one-hot 那么长。
  • 语意相似的词在向量空间上也会比较相近。
  • 通用性很强,可以用在不同的任务中。

Word2Vec 与 Word Embedding的关系_第7张图片

3. 实现方式

主要的实现方式

  • word2vec(Google)
  • GloVe
  • wordRank
  • FastText(Facebook)

六、 神经网络语言模型与word2vec

1. 神经网络语言模型

通过神经网络训练模型可以得到词向量,主要的神经网络语言模型如下所示

  • Neutral Network Language Model(NNLM)
  • Log-Bilinear Language Model(LBL)
  • Recurrent Neutral Netword based Language Model(RNNLM)
  • Collobert和Weston在2008年提出的C&W Model
  • Mikolov等人提出CBOW和SKip-gram Model

2. word2vec 与 CBOW、Skip-gram

上面的5个神经网络语言模型,只是逻辑概念上的东西。

具体模型我们得通过设计将其实现出来,而实现CBOW( Continuous Bagof-Words)和 Skip-gram 语言模型的工具正是 word2vec

C&W 模型的实现工具是SENNA。

所以说,分布式词向量并不是word2vec的作者发明的,他只是提出了一种更快更好的方式来训练语言模型罢了。分别是:连续词袋模型Continous Bag of Words Model(CBOW)和Skip-Gram Model,这两种都是可以训练出词向量的方法,再具体代码操作中可以只选择其一,不过据论文说CBOW要更快一些。

① CBOW

简介

通过上下文来预测中间那个词
Word2Vec 与 Word Embedding的关系_第8张图片

② Skip-gram

简介

根据当前词来预测上下文
Word2Vec 与 Word Embedding的关系_第9张图片
Skip-Gram Model 论文

七、总结

  • Word Embedding是词的一种表示方式,属于Distributed Representation中的一类
  • Word2Vec 是实现Word Embedding的一种方式
    • Word2Vec的两种训练模式是:CBOW和kip-gram

七、扩展知识

  • word2vec中的数学原理详解

你可能感兴趣的:(自然语言处理,自然语言处理,word,embedding,word2vec)