神经网络没有办法直接处理文本,需要将文本转化成数学表达,这个数学表达的方式就是嵌入向量,这个转换的过程就是embedding的过程,embedding包括两个步骤:
- 首先将文本根据词表(vocab)转化成整数序列索引或者one-hot矩阵
- 使用embedding层将高维稀疏的one-hot整数序列或索引通过嵌入矩阵转化成低维的嵌入向量
常见的词嵌入算法,例如word2vec、fasttext、Glove来构建嵌入矩阵
使用嵌入矩阵来获取嵌入向量的方法有两种:
- 一种是使用one-hot矩阵与嵌入矩阵相乘,所得到的矩阵就是所求的嵌入向量;
- 另一种是使用token在词表中的索引(即one-hot中不为零的元素所在的列数)直接查找对应嵌入向量的对应行,所得到的矩阵就是所求的嵌入向量。