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
- 滑动窗口遍历整个语料库求和,计算量正比于语料库的大小
- 概率满足: