传统表达:one-hot
将每个词表示为一个长长的向量。词袋:所有词的不重复构成。
这样做的缺陷:忽略了句子词频信息;面临高维困境(文本维度随着词数变化而变化);忽略了词语上下文关联。
基本概念
词嵌入(Word embedding)是一种词的类型表示,是将词汇映射到实数向量的方法总称。
用低维向量表示一个是的相似意义的词向量距离相近,同时又能避免维度过高的问题。
核心思想:根据词语的上下文来计算词向量,一个词的语义是由它周围的词决定的。
CBOW:连续词袋模型:
词向量生成过程:
输入层:context word的one-hot;
输出层:目标值为center word的one-hot;
所有输入one-hot共享权重矩阵W(v*N);
N代表隐层神经元个数,自定义;v代表one-hot编码维度。
网络训练后所得的权重矩阵W(v*N)即为词向量。
可以看到,训练后的权重矩阵W的每一行,即对应我们训练输入及输出词的词向量。另,词向量不是一般的模型训练任务,二十为了完成任务产生的附属品。
隐层到输出层:隐层神经元会将接受到的(v-1)个word编码取平均,然后继续往后传输。
Skip-gram
它的做法,将一个词所在上下文中的词作为输出,而那个词本身作为输入,但其核心思想还是一样的。
word->vector,最后我们得到的结果是,每个词都会有一个实属向量。