词嵌入与Word Embedding算法:原理与应用
大家好,今天要讲的内容是,词嵌入,Word Embedding算法。
词嵌入,英文是word embedding,是一种将词汇表中的词或短语,映射为固定长度向量的技术。
通过词嵌入,我们可以将One-Hot编码表示的高维稀疏向量,转为低维且连续的向量。
例如,将man、woman、king、queen四个词语,映射到一个7维的空间中,每个词语都对应了一个7维的向量。
为了进一步说明词与词之间的关系,我们可以使用降维算法,将词嵌入向量降维至2维,从而在平面上绘制出来。
这里可以发现,语义相近的词语,词语对应的向量位置也更相近:
例如,cat猫与kitten小猫的含义相近,它们就聚在一起。
horse、dog与cat的语义差异比kitten大,所以它们距离cat,就相对较远。
词嵌入向量不仅可以表达语义的相似性,还可以通过向量的数学关系,来描述词语之间的语义关联。
例如,从图中可以看出,向量("king")?向量("man")≈向量("queen")-向量("woman")。
因此,总结来说,词嵌入技术能够有效地将自然语言中的词语,转换为数值向量,从而表达词语之间的语义关系。
这种技术也为后续更高级的自然语言处理任务,提供了坚实的基础。
1.词嵌入算法
为了实现词嵌入,我们会通过特定的词嵌入算法,例如,word2vec、fasttext、Glove等等,训练出一个通用的嵌入矩阵。
矩阵中的每一行都代表了一个词向量。
这些词向量,一旦训练完成,可以用在不同的NLP任务中。
具体来说,嵌入矩阵的行,是语料库中词语的个数。
矩阵的列是表示词语的维度。
例如,如果语料库中包括了5000个单词,每个单词,都使用一个128维的向量表示,那么嵌入矩阵就是一个5000*128维的矩阵。
2.词嵌入的过程
下面用一个具体的例子,来说明词嵌入的过程。
设词表中包括了5000个单词,每个词使用一个128维的向量表示。
因此嵌入矩阵的大小就是5000*128,我们将该矩阵记为E:
我们要将句子“我喜欢学习数学”进行词嵌入。
通过词嵌入,将句子中的每个词,都表示为一个128维的向量。
首先,将句子进行切词,得到4个词语,“我”、“喜欢”、“学习”、“数学”:
最初词语使用One-Hot进行编码,每个词是一个5000维的向量,整个句子是4*5000的矩阵。
我们将该矩阵记作V:
将OneHot矩阵V和嵌入矩阵E相乘,会可以得到一个4*128的矩阵:
该矩阵即为句子“我喜欢学习数学”的嵌入向量。
实际上,词嵌入矩阵的第1行、第2行、第3行与第5000行,分别代表“喜欢”、“我”、“学习”、“数学”四个词向量。
我们通过将矩阵V和矩阵E相乘,将这些向量从嵌入矩阵中取出。
总结来说,嵌入矩阵是词嵌入的关键。
通过将One-Hot编码表示的词,与嵌入矩阵相乘,就可以将高维稀疏的矩阵,嵌入到一个低维稠密的矩阵中。
3.词嵌入的优势
相比One-Hot编码,词嵌入具有如下优势:
1.表达效率的提升:
词嵌入将文本中的词,通过一个低维向量来表达。
相比上万维的One-Hot编码,效率上有了质的提升。
2.理解词语的语义:
通过词嵌入表示的词语,可以理解词语的语义,并进行词语推理。
语义相似的词在向量空间上也会更相近。
3.嵌入矩阵的通用性:
One-Hot编码不具有通用性,不同语料得到的One-Hot编码,一般是不同的。
而嵌入矩阵是通用的,同一份词向量,可以用在不同的NLP任务中。
那么到这里,词嵌入,Word Embedding算法就讲完了,感谢大家的观看,我们下节课再会。
本站部分内容来源于互联网,仅供学习交流之用。如有侵犯您的版权,请及时联系我们,我们将尽快处理。