入门NLP:语言表示之词向量——从onehot到word2vector:CBOW和Skip-Gram
笔者在入学期间从计算机视觉方面来学习深度学习理论,然后在一次实习中,恰巧接触到了NLP领域,并从事了NLP文本分类相关的工作,之后的几篇帖子中也会较为详细的介绍一下相关知识,以便自己更好的梳理。
在计算机视觉中,我们处理的数据为图片,其中图片本身就是像素矩阵,也就是说本身为一种数值,可以直接拿来进行相关的处理,但是NLP中要处理的大多为为字符数据,这种数据对于模型来讲就无法直接处理,需要进行转为计算机可以理解的向量形式才能进行训练。
词向量的表示
一般来讲,将字符表示为向量,有两种表示方式:one-hot vector和Distributed representation
1.one-hot vector
在以往的处理中,最为直观的做法就是One-hot Representation,做过数据挖掘方面的同学肯定对此不陌生,它就是将一个词映射为一个一维的向量,只有一个元素为1,其余全部为0,并且其他词的向量不能和它相同。如下图:
- 注意:1. 这种方式将数据以稀疏方式存储,使用起来十分简洁。2. 然而,每个词之间是独立的,没法表示出词语之间的相关信息。
2.Distributed representation
one-hot编码方式只是将字符进行符号量化,并没有考虑任何语义信息。 所以在 distributional hypothesis中,Harris提出上下文相似的词,其语义是相似的。因此,可以将一个