crackcell's dustbin home projects
首页 > 词向量技术小结 > 正文

词向量技术小结

1 分布式假说和分布式表示

  • 分布式假说(distributional hypothesis):词的语义由其上下文决定
  • 分布式表示(distributed representation):是相对于局部表示(local representation)来说的。局部表示将词的语义存储在向量的一维中(例如one-hot),分布式表示将一个词的语义分散到多维中

2 基于分布假说的词表示方法

目前主要分3种:

  1. 基于矩阵的分布式表示
  2. 基于聚类的分布式表示
  3. 基于神经网络的分布式表示

虽然方式不同,但它们的核心思想基本一致,由两部分组成:

  1. 选择一种方式表示上下文
  2. 选择一种模型刻画某个词和其上下文的关系

3 基于矩阵的分布式表示

3.1 上下文选取

构建共现矩阵,常见方式有3种:

  1. 词-文档矩阵:非常稀疏
  2. 词-词矩阵:比较稠密
  3. 词-ngram矩阵:相对稠密,并且保留了序的关系

使用共现次数作为矩阵元素,但直接使用效果不好,会使用加权和平滑,最常用的有tf-idf、PMI和直接取log。

3.1.1 PMI

PMI:点互信息(Pointwise Mutual Information)。

\begin{eqnarray} pmi(x,y) &=& log\frac{p(x,y)}{p(x)p(y)} \\ &=& log\frac{p(x|y)}{p(x)} \\ &=& log\frac{p(y|x)}{p(y)} \end{eqnarray}

3.2 模型

3.2.1 LSA

  • 词-文档矩阵
  • tf-idf元素
  • SVD分解

3.2.2 GloVe

  • 词-词矩阵
  • 共现次数取log
  • LFM(Latent Factor Model)

4 基于聚类的分布式表示

通过聚类的手段构建词和其上下文之间的关系,最经典的方法是布朗聚类(Brown clustering)。

4.1 布朗聚类(Brown Clustering)

5 基于神经网络的分布式表示(词向量)

5.1 神经网络语言模型(NNLM)

语言模型表示的是一个词序列出现的概率:

\begin{eqnarray} P(w_1,w_2,\cdots,w_m) &=& P(w_1)P(w_2|w_1)P(w_3|w_1,w_2) \cdots P(w_m|w_1,w_2,\cdots,w_{m-1}) \end{eqnarray}

传统的完整的统计语言模型的问题在于参数膨胀,n-gram是对于完整模型的近似。

NNLM不通过计数的方法对n元条件概率进行估计,而是直接通过一个神经网络结构。

nnlm_arch.png

Figure 1: NNLM的网络结构

  • 输入层:各个词的词向量的顺序拼接,解决数据稀疏的问题
  • 输出层: \(|V|\) 个元素,对应下一个词为词表中某个词的可能性,加一层softmax,保证加和为1

词向量出现在两个地方:

  1. 输入层中,每个词的词向量在一个 \(|e| \times |V|\) 的实数矩阵中
  2. 隐藏层中到输出层的权重矩阵U的维度为 \(|V| \times |h|\) ,也可以看做是另外一个词向量 \(e'\)

一般来说使用的是 \(e\) 。

5.2 Log双线性语言模型(LBL)

跟NNLM相比:

  1. LBL没有非线性的激活函数tanh
  2. LBL中,只有一份词向量 \(e\) ,也就是说,无论一个词是作为上下文,还是作为目标词,使用的是同一份词向量

5.3 循环神经网络语言模型(RNNLM)

rnnlm_arch.png

Figure 2: RNNLM的网络结构

5.4 C&W模型

跟上面的神经网络语言模型不同,它是第一个以生成词向量为目标的模型。

cw_arch.png

Figure 3: C&W的网络结构

5.5 CBOW和Skip-gram

5.5.1 CBOW模型(Continuous Bag-of-Words)

CBOW做了简化:

  • 去除了上下文的词序信息,直接使用上下文各词词向量的平均值,代替神经网络语言模型使用的上下文个词词向量的拼接
  • 没有隐藏层,模型从神经网络转化成了log线性结构。CBOW直接用上下文表示对目标词进行预测

5.5.2 Skpi-gram模型

skipgram_arch.png 和CBOW不同:

  • 输入是从目标词w的上下文c中选择一个词,将其词向量作为模型输入x,作为w的上下文表示。会遍历使用c中的所有词

5.5.3 效果优化技术

5.5.3.1 层次softmax(Hierarchical Softmax)
5.5.3.2 负采样(Negative sampling)
5.5.3.3 二次采样(Subsampling)

思想是,对于出现次数比较多的词,表意上贡献度会低,需要跳过。具体做法是,如果词w在余量中出现频率f(w)大于阈值t,则有P(w)的概率在训练时跳过。

\begin{eqnarray} P(w)=\frac{f(w)-t}{f(w)}-\sqrt{\frac{t}{f(w)}} \end{eqnarray}

Date: Fri Feb 15 23:25:59 2019

Author: Menglong TAN

Created: 2019-02-25 Mon 16:31

Validate

Modified theme and code from Tom Preston-Werner.