img

Word2Vec

Word2Vec 有以下几种方式:

1-of-N Encoding:vector 中元素的数量 = word 的数量,对一个单词来说只要 vector 中对应元素为 1,其他元素为 0 。但这种表示方式无法建立 word 之间的联系

Word Class:把具有相同性质的 word 进行聚类划分成多个 class,用 word 所属的 class 表示该 word。但聚类算法强迫每个样本属于并只属于一个 cluster,实际上一个样本会有多个 cluster 的特征,比如 dog 的 class 是动物,flower 的 class 是植物,但它们又同属于生物

Word Embedding:把所有 word 投影到一个空间,且该空间的维度远低于 1-of-N Encoding,这是一个 Dimension Reduction 的过程。语义相近的 word 在该投影空间中是比较接近的,且该空间的每一维都有特殊的含义。

image-20260219170806232

Word Embedding 是一个无监督的方法,只要让机器阅读大量文章,它就可以知道每一个 word 在 embedding 之后的特征向量。我们的任务就是训练一个神经网络,输入为 word,输出为 word 对应的 embedding vector。它的基本思路是根据 word 的上下文获取该 word 的含义。比如“A 担任总统”与“B 担任总统”,他会知道 A、B 前后都有相同/相似的内容,于是就可以推测 A 与 B 是类似的

如何做 Word Embedding

Counting based

假设 wiw_iwjw_j 这两个 word 经常在一篇文章中同时出现,他们的 word vector 分别用 V(wi)V(w_i)V(wj)V(w_j) 表示,则 V(wi)V(w_i)V(wj)V(w_j) 会比较接近。假设 Ni,jN_{i,j}wiw_iwjw_j 这两个词汇在相同文章中同时出现的次数,我们希望它和 V(wi)V(wj)V(w_i)·V(w_j) 越接近越好

Prediction based

给定一个 sentence,我们要训练一个神经网络,它要根据当前的 word wi1w_{i-1} 来预测下一个可能出现的 word wiw_i 是什么。整个神经网络把 wi1w_{i-1} 的 1-of-N encoding 当作 input,经过网络的计算,output 代表每个 word 为 wiw_i 的概率。经过充分训练之后,我们取该网络第一个隐藏层的输入当作 word vector V(wi)V(w_i),用它来代表 word wiw_i

参数共享

image-20260219230018672 以使用 2 个 word 预测下一个 word 为例,在一般神经网络中直接把 wi2w_{i-2}wi1w_{i-1} 拼接成一个更长的 vector 作为输入即可。如上图所示,实际上我们希望 wi2w_{i-2}wi1w_{i-1} 的相同 dimension 对应的神经元中的参数是相同的,否则把同一个 word 分别作为 wi2w_{i-2}wi1w_{i-1} 得到的 Embedding 结果会是不一样的,另外也尝试可以通过共享参数的方式有效减少参数量,不会由于输入 word 数量的增加导致参数量剧增。

公式定义

如下图所示,假设 wi2w_{i-2} 的 1-of-N 编码为 xi2x_{i-2}wi1w_{i-1} 的 1-of-N 编码为 xi1x_{i-1}, 它们的维数 V|V| 为数据中 word 的数量,隐藏层的输入向量 z=W1xi2+W2xi1z=W_1x_{i-2}+W_2x_{i-1},其中 W1W_1W2W_2 都是 Z|Z| V|V| 维的 weight matrix,zz 的长度 Z|Z| 表示降维后的维数 image-20260219230231756

我们让 W1=W2=WW_1=W_2=W,此时 z=W(xi2+xi1)z=W(x_{i-2}+x_{i-1}),只要我们得到了这组参数 W,就可以与 1-of-N 编码 x 相乘得到 word embedding 的结果 zz。要使 W1=W2W_1=W_2,我们只需保证初始值相同并且更新流程相同即可,即

wi=wiηCwiηCwjw_i = w_i - \eta \frac{\partial C}{\partial w_i} - \eta \frac{\partial C}{\partial w_j}

wj=wjηCwjηCwiw_j = w_j - \eta \frac{\partial C}{\partial w_j} - \eta \frac{\partial C}{\partial w_i}

其它 Prediction-based 方法

  • CBOW(Continuous bag of word model)
    拿前后的词汇去预测中间的词汇
  • Skip-gram
    拿中间的词汇去预测前后的词汇

image-20260219231155536