word2vec

  • 2013年google开源,将词表征为实数值向量的高效工具

  • word2vec通过训练将,文本内容处理简化为k维向量空间中的向量运算,空间向量上的相似度,可以用来表示文本语义的相似度

  • 应用:聚类,同义词,词性分析


1. 词向量

1.1 one-hot representation

  • One-Hot编码,又称为一位有效编码,

  • one-hot向量的维度等于词典的大小。这在动辄上万甚至百万词典的实际应用中,面临着巨大的维度灾难问题

* bag of words

  • 文档的向量表示可以直接将各词的词向量表示加和s

  • 没有考虑词的顺序

* 考虑词的顺序:Bi-gram和N-gram


2. 统计语言模型

* 一句话 (词组合) 出现的概率

  • 表示为各个词语条件概率的形式

  • context是上下文,更加上下文的划分方法不同,分为多个模型

2.1 上下文无关的模型

  • 仅考虑当前词本身的概率,不考虑该词所对应的上下文环境

  • Unigram-model

2.2 n-gram模型

  • n=2时候,称为:Bigram

  • n-gram的优点是包含了前N-1个词所提供的全部信息

* 缺点

  • 只可以约束n-1个词,无法提供更远的信息
  • 无法计算词的相似度(白色的汽车和白色的轿车)
  • 语料库,有些n元的元素没有出现过,出现0的情况:laplace平滑的方法

2.3 n-pos模型

  • n-gram的衍生
  • n-gram假设第t个词出现的概率依赖于前面N-1个词
  • n-pos假设第t个词出现的概率依赖于前面词的语法功能
  • 将词按照语法功能分类,词类决定了下一个词的出现概率(pos-of-speech)

2.4 决策树模型

  • 上文的无上下文模型,n-gram,n-pos都可以以统计决策树的形式出现
  • 决策树的每个节点是一个上下文相关的问题,例如

2.5 最大熵模型


3. 分布式表示

  • Dirtributed Representation由hiton在1986年提出,基本思想:通过训练将每个词映射为k维d轭实数向量
  • 可以用来判断语义的相似度

* 例子

* 共现矩阵

  • word-Document的矩阵应用于主题模型,用于发现主题

    * word-word的共现矩阵,用于发现和挖掘语法和语义

* 直接使用的问题

  • 向量维数,随着词典大小线性增长
  • 存储整个词典的空间销毁巨大
  • 一些模型,如文本分类问题,面临稀疏的问题
  • 模型的稳定性欠妥

* 构造低纬稠密向量作为词的分布式表示(25-1000)

* 使用SVD降维

  • 使用SVD对共现矩阵降维
  • 计算了巨大
  • 难以为新加入的词分配词向量

3. NNLM

* 神经网络语言模型

* 目标函数

  • 使用非对称前向窗函数,窗口的长度n-1
  • 滑动窗口遍历整个语料库求和,计算量正比于语料库的大小
  • 概率满足:

* NNLM的模型


4 word2vec的改进:CBOW(连续词袋模型)


5. 进一步的改进

5.1 层次softmax

* 使用huffman编码树

* 使用负例采样

* skip-gram模型


6. 问题

results matching ""

    No results matching ""