词---->向量: 叫作【
词向量化】, 文本向量化(vectorize)是指将文本转换为数值张量的过程
多种实现方法:
- 将文本分割为单词,并将每一个单词转换为一个向量。
- 将文本分割为字符,并将每一个字符转换为一个向量。
- 提取单词或字符的 n-gram(n元),并将每一个 n-gram 转换为一个向量。n-gram 是多个连续单词或字符的集合(n-gram 之间可重叠)。
将文本分解而成的单元(单词、字符或n-gram)叫做标记(token),将文本分解成标记的过程叫做分词(tokenization)
全部文本向量化过程都是应用某种分词方案,而后将数值向量与生成的标记相关联。这些向量组合成序列张量,被输入到深度神经网络中(见图6-1)。将向量与标记相关联的方法有不少种。本节将介绍两种主要方法:对标记作one-hot 编码(one-hot
encoding)与标记嵌入[token embedding,一般只用于单词,叫做词嵌入(word embedding)]。
词向量化有两种方式:
1. one-hot编码 (缺点是:词越多维度越大, 词与词之间没有相关性,没法理解语义)
2. word embedding: 词嵌入。 优势是下降维度(将vector每个元素由整形改成浮点型,变为整个实数范围的表示;将原来稀疏的巨大维度压缩嵌入到一个更小维度的空间)
词嵌入模型:
1. CBOW模型 (Continuous Bag-of-Words Model): 上下文来预测当前词
2. Skip-gram模型(Continuous Skip-gram Model):当前词预测上下文
两种模型优化方法:
1. Negative Sample : 负采样
2. Hierarchical Softmax:层次化softmax. 把 N 分类问题变成 log(N)次二分类。 用Huffman树计算几率值,而不是传统的softmax.
word2vec: 是谷歌提出的一种词嵌入的具体方法,采用了两种模型(CBOW与skip-gram模型)与两种方法(负采样与层次softmax方法)的组合,比较常见的组合为 skip-gram+负采样方法。
词嵌入的训练方法:
1)无监督或弱监督的预训练
优势:不须要大量的人工标记样本就能够获得质量还不错的embedding向量
缺点:准确率有待提升
解决办法:获得预训练的embedding向量后,用少许人工标注的样本再去优化整个模型
典型表明:word2vec和auto-encoder
(这里解释一下AutoEncoder,AutoEncoder也能够用于训练词向量,先将one hot映射成一个hidden state,再映射回原来的维度,令输入等于输出,取中间的hidden vector做为词向量,在不损耗原表达能力的前提下压缩向量维度,获得一个压缩的向量表达形式。)
2)端对端(end to end)的有监督训练。
优势:学习到的embedding向量也每每更加准确
缺点:模型在结构上每每更加复杂
应用:经过一个embedding层和若干个卷积层链接而成的深度神经网络以实现对句子的情感分类,能够学习到语义更丰富的词向量表达。
二者比较:word2vec不关心后续的应用场景,其学习到的是就是根据共现信息获得的单词的表达,用n-gram信息来监督,在不一样的子task间都会有必定效果。而end2end训练的embedding其和具体子task的学习目标紧密相关,直接迁移到另外一个子task的能力很是弱。
经常使用的词嵌入分为:
dense(稠密)和sparse(稀疏)两种形式
常见的sparse就好比 co-occurence 或者one-hot的形式;对sparse embedding进行一些降维运算好比SVD、PCA就能够获得dense。