自然语言处理中的Word Embedding简介

本文参考自What Are Word Embeddings for Text

简介

Word Embedding可以将word转化为数值型词向量,便于后续机器学习和深度学习模型的训练。并且,word之间的相似性越大,词向量之间的距离越小。

Word Embedding有两大优势:

  • 原本离散的word被转化为连续的数值型向量,便于计算。
  • 包含更多的信息:因为相似word的词向量在数值上是相近的。

Word Embedding的几种算法

Embedding Layer

借助神经网络(Embedding Layer)进行Word Embedding,神经网络的输入是one-hot的word,输出是词向量。神经网络可以是DNN,也可以是RNN。

这种方法需要非常多的训练数据,如果训练充分的话,效果会比较好。

Word2Vec

Word2Vec是2013年谷歌员工提出的Word Embedding算法,到目前为止,该算法也是Word Embedding流域的第一选择。

Word2Vec不仅能在快速完成词嵌入,而且在词向量中保留word之间的关系。它包含两个子算法:

  • CBOW:利用上下文预测当前word
  • Skip-Gram:利用当前word预测上下文

自然语言处理中的Word Embedding简介
Word2Vec中有一个重要的超参数——窗口大小,窗口越大,包含更多的上下文,使词向量更加趋同;窗口越小,包含更少的上下文,词向量趋于个性化。

GloVe

GloVe是一种对Word2Vec算法的延伸,因为它使用了全局统计信息,使用co-current matric代替word2vec中的窗口。关于GloVe算法可以参考GloVe详解

Word Embedding的使用

  1. 下载现成的word2vec或glove词向量
  2. 自行训练一个通用的word embedding model
  3. 为不同的任务分别训练不同的word embedding model