One-hot

每个token表示为一个长向量,每个向量的维度为词表的大小,向量中只有一个维度的值为1,一般为该词在词表中的索引

举例

假设用 one-hot对句子进行表示,对句子分词之后,我们可以得到[‘我‘,’爱‘,’北京‘,’天安门‘],可以用one hot(独热编码)对单词进行编码。具体为:

“我”可以表示为[1,0,0,0]

“爱"可以表示为[0,1,0,0]

‘北京’可以表示为[0,0,1,0]

‘天安门’可以表示为[0,0,0,1]

问题

  • one-hot向量之间彼此正交,无法识别每个词之间的关系(无法计算相似度,都为0)
  • 维度爆炸。维度和词表有关系,模型训练难度增大
  • 向量稀疏,难以捕捉语义关系,因为数据点分布系数,距离度量失效。而且稀疏矩阵存储效率低

词嵌入

词嵌入(Word Embedding)是将人类语言中离散、抽象的文本词汇,通过算法映射为计算机可理解的「连续、稠密的低维实数向量」 的文本表示技术

分布式表示

词嵌入将词表示为一种分布式的形式。分布式表示是将词转化成一个定长、稠密并且存在语义关系的向量,即分布相似的词,是有相似的语义的

Word2Vec

CBOW

Skip-gram