离散表示
One-hot独热表示法
- NLP 中最常用、最传统的词特征表示方式是采用One-Hot 编码,即每一个词特征都被表示成一个很长的向量,其长度等于词表大小,当前词对应位置为1,其他位置为0。
- 但是这种表示方式存在显而易见的问题:
* 不同词之间总是正交的,无法衡量不同词之间的相似关系。
* 只能反映每个词是否出现,但无法突出词之间重要性的区别。
BOW词袋表示法
- 在One-Hot 表示法的基础上,对词表中的每一个词在该文本出现的频次进行记录,以表示当前词在该文本的重要程度。
- 但这种表示方式只能表达词在当前文本中的重要程度。很多停用词由于频次较高,权重很大。可用TF-IDF进行优化
- 存在的问题:
* 词之间是独立的,无法提供词序信息和上下文信息。
* 数据十分稀疏。
分布式表示
Distributed representation 被称为“Word Representation”或“Word Embedding”, 中文也叫“词向量”或“词嵌入”。首先引入词向量概念的是2003年Bengio等人用三层的神经网络构建了统计语言模型的框架,该框架的主要目标是训练语言模型,词向量只是它的副产品。模型的网络结构如下:
Word2vec词向量
- 2013年Google 开源了一款直接计算低维词向量的工具 ——Word2Vec,不仅能够在百万级的词典亿级数据集上高效训练,而且能够很好的度量词与词之间的相似性。
- 对原始NNLM的改进:
* 移除前向反馈神经网络中的非线性hidden layer,直接将中间层的embedding layer 与 softmax layer 连接。
* 输入所有词向量到一个embedding layer 中 。
* 将特征词嵌入上下文环境
* 后续还在训练方法上进行了优化:层次softmax以及负采样技术
CBOW模型:
Skip-gram模型