文章目录
  1. 1. Language Model
    1. 1.1. 统计语言模型
      1. 1.1.1. n-gram 模型
      2. 1.1.2. TF-IDF
      3. 1.1.3. 共现矩阵
    2. 1.2. 神经概率语言模型(NNLM)与词向量
      1. 1.2.1. One-hot Representation
      2. 1.2.2. Distributed Representation
      3. 1.2.3. 对比分析
    3. 1.3. 参考

Language Model

统计语言模型

机器翻译系统中,对于给定的语言段 ${f_{in}}$,将其翻译为语言段 ${f_{out}}$,即找到一个使得概率 ${p(f_{out}|f_{in})}$ 最大的文本段 ${f_{out}}$,利用 ${Bayes}$ 公式则有:

其中,${p(f_{out}|f_{in})}$ 是翻译模型,${f_{out}}$ 为语言模型。

而统计语言模型,是用来计算一个句子的概率。对于一个句子 ${W = w_{1}^{T} = (w_1 w_2 \cdots w_T)}$ 表示为有 ${T}$ 个词按顺序构成一个句子,那么联合概率为:

利用 Bayse 公式,那么可以将联合概率分解为:

其中,条件概率 ${p(w_{1}),\ p(w_{2}|w_{1}) ,\ p(w_{3}|w_{1}^{2}) ,\ \cdots ,\ p(w_{T}|w_{1}^{T-1})}$ 为语言模型的参数。对于 ${p(w_{k}|w_{1}^{k-1})}$ 的计算,利用贝叶斯公式:

根据大数定律,当语料库足够大的时候,可以采用近似的方法计算:

但是,如果语料库有 ${N}$ 个词,对于一个长度为 ${T}$ 的句子,每种可能都需要计算 ${T}$ 个参数,那么整个语言模型就需要 ${T \ast N^T}$ 个参数,这个参数量的量级是非常大的。

n-gram 模型

n-gram 模型中,最简单的是 bi-gram,二元模型。优点在于,考虑了小范围内词的顺序,缺点在于词表的迅速膨胀,也会面临数据稀疏的问题。

n-gram 模型做了一个 ${n-1}$ 阶的 Markov 假设,认为一个词出现的概率只与它前面的 ${n-1}$ 个词相关。那么,语言模型可以化简为:

根据大数定律,当语料库足够大的时候,可以采用近似的方法计算:

当 ${n=2}$ 时,表示形式如下。

当 ${n}$ 较大时,模型的参数量也是非常巨大的。

n 模型的参数量
1 (unigram) ${2 \times 10^5}$
2 (bigram) ${4 \times 10^{10}}$
3 (trigram) ${8 \times 10^{15}}$
4 (4-gram) ${16 \times 10^{20}}$

TF-IDF

一个词预测文章主题的能力越强,那么权重就越大。

词 ${w}$ 的 ${\text{TF}}$ (Term Frequency) weight 为 ${\frac{n_w}{N}}$,${n_w}$ 为词 ${w}$ 出现的次数,${N}$ 为一篇文档总共的词的个数。

词 ${w}$ 的 ${\text{IDF}}$ (Inverse Document Frequency) weight 为 ${\log (1 + \frac{N}{n_{w}})}$,${N}$ 为文档总数,${n_w}$ 为含有词 ${w}$ 的文档数。

如果一个词在很少的文章中出现了,那么这个词有可能代表了这篇文章主题,相反,一个词在大部分文章中都出现了,那么这个词对主题的预测并不能起到什么作用。所以,计算一个词的权重,则是 ${\text{IDF}}$ 对于 ${\text{TF}}$ 的加权求和 ${\sum_{i} \text{TF}_{i} \times \text{IDF}_{i}}$。

在信息论中,一个词 ${w}$ 的信息量用信息熵来表示为:

其中 ${N}$ 是整个语料库词的个数,是一个常数,对于每个词来说都一样,那么可以省略:

假设总共有 ${D}$ 个文档,如果每个文档的大小基本相同,均为 ${M = \frac{N}{D} = \frac{\sum_w \text{TF}(w)}{D}}$ 个词。而且一个词 ${w}$ 如果在文档中出现,无论多少次,贡献都相同,即这个词 ${w}$ 出现 ${c(w) = \frac{\text{TF}(w)}{D(w)}}$ 次。如果不出现,那么贡献为 ${0}$,出现次数也为 ${0}$。

可以发现 ${\text{TF-IDF}}$ 与信息量之间的差异主要就是第二项,由于 ${c(w) < M}$,所以第二项大于零,是 ${c(w)}$ 的递减函数。

可以发现,一个词的信息量越大,${\text{TF-IDF}}$ 越大,词 ${w}$ 命中的文档中 ${w}$ 出现的平均次数越多,第二项也越小,${\text{TF-IDF}}$ 越大,这些结论与信息论完全相符。但是,${\text{TF-IDF}}$ 的缺点在于,词的顺序没有提现出来。

共现矩阵

一个矩阵记录了两个词同时出现,主要用于发现主题,用于主题模型,比如 LSA(Latent Semantic Analysis)。

局域窗中的 word-word 共现矩阵可以挖掘语法和语义信息。window length 一般设置为 5-10,一般使用左右对称的窗函数。

神经概率语言模型(NNLM)与词向量

在 NLP 任务中,由于计算机无法直接理解人类的语言,那么需要首先将语言数学化,词向量是一种很好的做法。

Neural Network Language Model

One-hot Representation

最简单的方式是 One-hot Representation,用一个很长的向量来表示一个词,词向量的长度为词典 ${D}$ 的大小 ${N}$,向量的分量中,只有一个是 ${1}$,其他全是 ${0}$,${1}$ 的位置对应该词在的索引。

这样做的问题在于,容易遭受维度灾难的困扰,尤其是当遇到 Deep Learning 的场景时;另一个问题在于无法描述词与词之间的语义联系。

Distributed Representation

另一种词向量的方式是 Distributed Representation,通过训练讲某种语言的某个词英社称一个固定长度的短向量(短相对于 One-hot Representation 而言),所有的向量构成了一个词向量的空间,而每一个向量看成空间中的一个点,在这个空间上引入 “距离”,就可以根据词之间的 “距离” 来判断它们之间(语法、语义)的相似性,word2vec 就是采用的这种 Distributed Representation

对比分析

对于两种 RepresentationOne-hot Representation 只有一个非零分量,非常非常集中;而 Distributed Representation 有大量的非零分量,相对分散,把词的信息分布到了语义空间中的各个分量,用一个词附近的其他词来表示该词。

参考

  1. Word2Vec中的数学原理详解
  2. 《数学之美》吴军
  3. 经典词嵌入与神经网络语言模型的对比研究
文章目录
  1. 1. Language Model
    1. 1.1. 统计语言模型
      1. 1.1.1. n-gram 模型
      2. 1.1.2. TF-IDF
      3. 1.1.3. 共现矩阵
    2. 1.2. 神经概率语言模型(NNLM)与词向量
      1. 1.2.1. One-hot Representation
      2. 1.2.2. Distributed Representation
      3. 1.2.3. 对比分析
    3. 1.3. 参考