word embedding
定义
词向量,英文也叫word embedding ,按照字面意思,就是词嵌入。就是把单词映射为多维向量。
one-hot编码
要了词向量,就要从one-hot编码说起。one-hot编码就是给句子中的每个字分别用一个0-1编码,以“科、学、空、间、不、错”为例:
其中,“科学”可以用以下矩阵表示:
从这个例子可以看出,一个句子中有多少个字,就有多少维度。这样构造出来的矩阵是很大的,而且是稀疏矩阵,浪费资源。
计算过程
最左边表明,这是一个以2×6的one-hot矩阵为输入,中间层节点数为3的全连接的神经网络层。从右边可以看出,这个计算过程就相当于从 wi,j 矩阵中取出第1,2行,跟字向量的查表操作是一样的(从表中找出对应的向量)。
因此,Embedding层就是以one hot为输入、中间层节点为字向量维数的全连接层!而这个全连接层的参数,就是一个“字向量表”!。
one hot型的矩阵相乘,就像是相当于查表,于是它直接用查表作为操作,而不写成矩阵再运算,这大大降低了运算量。再次强调,降低了运算量不是因为词向量的出现,而是因为把one hot型的矩阵运算简化为了查表操作。
计算完成之后,直接用全连接层的参数作为字、词的表示,从而得到字、词向量。