Word2Vec的介绍
Word2Vec是用浅层神经网络来进行词嵌入的技术,由Tomas Mikolov开发。
优势
如果我们用one-hot编码来将文字矢量化,会出现每个单词是孤立的情况,并且one-hot会浪费更多的存储空间。
举个例子:
“今天是晴天”,将其分割为{今,天,是,晴,天},用one-hot编码来矢量化:
今 = [1, 0, 0, 0, 0]
天 = [0,1, 0, 0, 0]
是 = [0, 0, 1, 0, 0]
晴 = [0, 0, 0, 1, 0]
天 = [0, 0, 0, 0, 1]
这样所有的文字之间就没有任何的联系,比如“今”和“天”的关系程度与“今”、“是”完全没有区别的。而我们希望的是相关的字之间能够有更加紧密的联系。
Word2Vec就能很好的帮助我们来解决这个问题。
Word2Vec原理
Word2Vec包含两种方法:
1.CBOW Model
这种方法通过上下文来作为输入,来预测相关的字来进行输出。
以下是CBOW的两种结构,一种是通过一个输入字符来预测一个可能字符,另一种是通过多个输入字符来预测一个可能字符。
2.SKip Gram
这种模型,我们输入一个目标字符,会得到按可能性排列的预测结果。
对比
Skip Gram:
在更小的数据集上那个有更好的效果,那个更好的处理少用的词汇。
CBOW:
速度更快,对常用的词汇更友好。