词的表达

  1. 给定包含 篇文档的语料库 ,所有的单词来自于包含 个词汇的词汇表 ,其中 表示词汇表的大小 。

    每篇文档 包含单词序列 ,其中 表示第 篇文档的第 个单词在词汇表中的编号, 表示第 篇文档包含 个单词。

    词的表达任务要解决的问题是:如何表示每个词汇

  2. 最简单的表示方式是one-hot 编码:对于词汇表中第 个单词 ,将其表示为 ,即第 位取值为1,剩余位取值为0

    这种表示方式有两个主要缺点:

    • 无法表达单词之间的关系:对于任意一对单词 ,其向量距离均为
    • 向量维度过高:对于中文词汇表,其大小可能达到数十万,因此one-hot 向量的维度也在数十万维。这对于存储、计算都消耗过大。
  3. BOW:Bag of Words:词在文档中不考虑先后顺序,这称作词袋模型。

一、向量空间模型 VSM

  1. 向量空间模型主要用于文档的表达。

  2. 向量空间模型假设单词和单词之间是相互独立的,每个单词代表一个独立的语义单元。实际上该假设很难满足:

    • 文档中的单词和单词之间存在一定关联性,单词和其前面几个单词、后面几个单词可能存在语义上的相关性,而向量空间模型忽略了这种上下文的作用。
    • 文档中存在很多的一词多义和多词同义的现象,每个单词并不代表一个独立的语义单元。

1.1 文档-单词 矩阵

  1. 给定语料库 和词汇表 ,定义文档-单词 矩阵为:

    令矩阵为 ,则: 表示文档 中含有单词 表示文档 中不含单词

    于是文档 表示为: ,其中文档 中包含的单词对应的位置取值为1,其它位置取值为 0 。

  2. 事实上,文档的上述表达并未考虑单词的顺序,也未考虑单词出现的次数。一种改进策略是考虑单词出现的次数,从而赋予文档-单词 矩阵以不同的权重:

    其中 表示单词 在文档 中的权重。

    • 如果单词 在文档 中未出现,则权重
    • 如果单词 在文档 中出现,则权重
  3. 权重 有两种常用的选取方法:

    • 单词权重等于单词出现的频率TF

      • 函数 返回单词 在文档 中出现的频数。
      • 其缺点是:一些高频词(如:我们大家)以较大的权重出现在每个文档中,这意味着对每篇文档这些高频词是比较重要的。事实上对于绝大多数 NLP 任务,将这些词过滤掉不会有任何影响。
    • 单词权重等于单词的TF-IDF

      • 函数 是单词的逆文档频率: 。其中: 为语料库的文档数量, 为出现单词 的文档的数量, 为单词 出现在一篇文档中的概率。
      • TF-IDF 对于高频词进行降权。如果单词 出现在大多数文档中,则 较大,因此 会较小。
  4. TF-IDF 不仅考虑了单词的局部特征,也考虑了单词的全局特征。

    • 词频 描述了单词 在文档 中的局部统计特征。
    • 逆文档频率 描述了单词 在语料库 中的全局统计特征。

1.2 相似度

  1. 给定 文档-单词 矩阵,则很容易得到文档的向量表达:

    给定文档 ,则文档的相似度为:

    其中

    也可以使用其它方式的相似度,如 距离相似度。

二、LSA

  1. 潜在语义分析latent semantic analysis:LSA 的基本假设是:如果两个词多次出现在同一篇文档中,则这两个词具有语义上的相似性。

2.1 原理

  1. 给定文档-单词 矩阵

    其中 表示单词 在文档 中的权重,可以为:单词 在文档 中是否出现的0/1 值、单词 在文档 中出现的频次、或者单词 在文档 中的TF-IDF 值。

  2. 定义 , 它为矩阵 的第 列,代表单词 单词-文档向量,描述了该单词和所有文档的关系。

    • 向量内积 描述了单词 和单词 在文档集合中的相似性。
    • 矩阵乘积 包含了所有词向量内积的结果。
  3. 定义 ,它为矩阵 的第 行,代表文档 文档-单词向量,描述了该文档和所有单词的关系。

    • 向量内积 描述了文档 和文档 在文档集合中的相似性。
    • 矩阵乘积 包含了所有文档向量内积的结果。
  4. 对矩阵 进行SVD 分解。假设矩阵 可以分解为: 。其中:

    • 为单位正交矩阵。

    • 为广义对角矩阵。

      其中 称作奇异值。

  5. SVD 分解的物理意义为:将文档按照主题分解。所有的文档一共有 个主题,每个主题的强度 (主题强度就是主题在数据集中出现的次数)分别为:

    • 篇文档 由这 个主题组成,文档的主题概率分布(称作文档-主题向量)为:

    • 个主题由 个单词组成,主题的单词概率分布(称作主题-单词向量 )为:

    • 个单词由 个主题组成,单词的主题概率分布(称作 单词-主题 向量)为:

    • 根据 有:

      则该分解的物理意义为:文档-单词 矩阵 = 文档-主题 矩阵 x 主题强度 x 主题-单词 矩阵。

2.2 应用

  1. 得到了文档的主题分布、单词的主题分布之后,可以获取文档的相似度和单词的相似度。

    • 文档 和文档 的相似度:

    • 单词 和单词 的相似度:

  2. 虽然获得了文档的单词分布,但是并不能获得主题的相似度。因为 是正交矩阵,因此有:

    则有:

    因此,任意两个主题之间的相似度为 0 。

  3. 文档-主题向量 决定。根据: ,而文档-主题向量 的行向量,也就是 的列向量。文档-单词向量 的行向量,也就是 的列向量。

    因此对于一篇新的文档 ,假设其文档-单词向量 ,则其文档-主题向量为:

  4. LSA 可以应用在以下几个方面:

    • 通过对文档的文档-主题向量 进行比较,从而进行基于主题的文档聚类或者分类。
    • 通过对单词的单词-主题向量进行比较,从而用于同义词、多义词进行检测。
    • 通过将query 映射到主题空间,进而进行信息检索。

2.3 性质

  1. LSA 的本质是将矩阵 通过 SVD 进行降维,降维主要是由于以下原因:

    • 原始的文档-单词 矩阵 太大计算机无法处理,通过降维得到原始矩阵的一个近似。
    • 原始的文档-单词 矩阵 含有噪音,通过降维去掉原始矩阵的噪音。
    • 原始的文档-单词 矩阵 过于稀疏,通过降维得到一个稠密的矩阵。
  2. LSA 的降维可以解决一部分同义词的问题,也可以解决一部分二义性的问题。

    • 经过降维,意义相同的同义词的维度会因降维被合并。
    • 经过降维,拥有多个意义的词,其不同的含义会叠加到对应的同义词所在的维度上。
  3. LSA 的缺点:

    • 产生的主题维度可能存在某些主题可解释性差。即:它们并不代表一个人类理解上的主题。

    • 由于Bag of words:BOW 模型的局限性,它无法捕捉单词的前后顺序关系。

      一个解决方案是:采用二元词组或者多元词组。

    • LSA 假设单词和文档形成联合高斯分布。实际观察发现,它们是一个联合泊松分布。这种情况下,用pLSA 模型效果会更好。

三、Word2Vec

3.1 CBOW 模型

  1. CBOW 模型(continuous bag-of-word):根据上下文来预测下一个单词。

3.1.1 一个单词上下文

  1. 在一个单词上下文的CBOW 模型中:输入是前一个单词,输出是后一个单词,输入为输出的上下文。

    由于只有一个单词作为输入,因此称作一个单词的上下文。

  2. 一个单词上下文的CBOW 模型如下:

    其中:

    • 为隐层的大小,即隐向量

    • 网络输入 ,它是输入单词(即上下文单词)的 one-hote 编码,其中只有一位为 1,其他位都为 0 。

    • 网络输出 ,它是输出单词为词汇表各单词的概率。

    • 相邻层之间为全连接:

      • 输入层和隐层之间的权重矩阵为
      • 隐层和输出层之间的权重矩阵为
  3. 假设没有激活函数,没有偏置项。给定输入 ,则其对应的隐向量 为:

    令:

    由于 是个one-hot编码,假设它为词表 中第 个单词 ,即:

    则有:

    即: 的第 就是词表 中第 个单词 的表达,称作单词 的输入向量。

  4. 给定隐向量 ,其对应的输出向量 为: 。令:

    则有:

    • 表示词表 中,第 个单词 的得分。
    • 为矩阵 的第 列,称作单词 的输出向量。
  5. 之后接入一层 softmax 层,则有:

    表示词汇表 中第 个单词 为真实输出单词的概率。

    假设输入单词为 (它称作上下文) ,观测到它的下一个单词为 。令输入单词的对应的网络输入为 ,其隐向量为 ,输入输出单词对应的输出单元为 ,则采用交叉熵的损失函数为:

    考虑语料库 中所有的样本,则整体经验损失函数为:

    则网络的优化目标为:

    设张量 为某个网络参数,则有:

    则该参数的单次更新 ,可以表示为单个样本的多次更新:

    因此本节的参数更新推导是关于单个样本的更新:

3.1.2 参数更新

  1. 定义 ,即第 个输出单元对应于真实的输出单词 时,它为1;否则为0。定义:

    它刻画了每个输出单元的预测误差:

    • 时: ,它刻画了输出概率 () 与真实概率 之间的差距。小于 0 表示预测不足。
    • 时:,它刻画了输出概率 () 与真实概率 之间的差距。大于 0 表示预测过量。
  2. 根据: ,则有:

    更新规则为:

    其物理意义为:

    • 当估计过量 () 时, 会减去一定比例的 。 这发生在第 个输出单元不对应于真实的输出单词时。
    • 当估计不足 () 时, 会加上一定比例的 。这发生在第 个输出单元刚好对应于真实的输出单词时。
    • 时,更新的幅度将非常微小。
  3. 定义:

    根据: ,则有:

    的物理意义为:词汇表 中所有单词的输出向量的加权和,其权重为

  4. 考虑到 ,则有:

    写成矩阵的形式为: ,其中 为克罗内克积。

    由于 one-hote 编码,所以它只有一个分量非零,因此 只有一行非零,且该非零行就等于 。因此得到更新方程:

    其中 非零分量对应的 中的行,而 的其它行在本次更新中都保持不变。

  5. 考虑更新 行的第 列,则:

    • 时, 趋近于 0 ,则更新的幅度将非常微小。
    • 差距越大, 绝对值越大, 则更新的幅度越大。
  6. 当给定许多训练样本(每个样本由两个单词组成),上述更新不断进行,更新的效果在不断积累。

    • 根据单词的共现结果,输出向量与输入向量相互作用并达到平衡。

      • 输出向量 的更新依赖于输入向量

        这里隐向量 等于输入向量

      • 输入向量 的更新依赖于输出向量