Word2vec是一种利用双层神经网络处理文本的技术。其核心是将文本语料库中的词语转化为特征向量,从而形成一组向量。
Word2vec的应用不仅限于自然语言处理,还可以应用于基因序列、代码、点赞记录、播放列表、社交媒体图片等多种数据类型。这些数据都具有与词语相似的离散结构,而Word2vec的目标是计算这些结构之间的转移概率,即它们共同出现的可能性。因此,类似的工具如gene2vec、like2vec和follower2vec都是可行的。
接下来的内容将介绍如何为任何一组离散且同时出现的数据创建神经向量。
Word2vec的主要目标是通过向量空间内的分组,识别词语之间的相似性。它可以自动识别数学上的相似性,而无需人工干预。通过足够多的数据、用法和上下文,Word2vec能够准确预测词义,并建立词与词之间的联系,例如“男人”与“男孩”的关系类似于“女人”与“女孩”的关系。这些关系可用于文档聚类、主题分类等领域,广泛应用于科研、调查取证、电子商务、客户关系管理等多个领域。
Word2vec神经网络的输入是一个词汇表,其中每个词都有一个对应的向量。这些向量可以输入深度学习网络,也可以通过查询这些向量来识别词之间的关系。
Word2vec使用余弦相似性来衡量词的相似性。例如,瑞典与瑞典完全相同,余弦距离为0,而挪威与瑞典的余弦距离为0.760124。以下是用Word2vec生成的“瑞典”的相关词列表:
为了表示词,我们使用神经词向量,这是一种独特的表示方式。尽管这是两种完全不同的事物,但可以通过一种事物来描述另一种事物。正如Elvis Costello所说:“写关于音乐的文字就像是跳关于建筑的舞蹈一样。”Word2vec将词“向量化”,使自然语言能够被计算机读取,从而进行复杂的数学运算以识别词之间的相似性。
神经词向量是一种简单而神奇的“翻译”。Word2vec与自动编码器类似,它将每个词编码为向量,但Word2vec不是通过重构输入的词语来定型,而是根据输入语料中相邻的其他词来定型。
Word2vec有两种主要的方法:一种是用上下文预测目的词(称为CBOW),另一种是用一个词来预测一段目的上下文(称为skip-gram)。我们使用后一种方法,因为它在处理大规模数据集时更加准确。
如果一个词的特征向量无法准确预测其上下文,那么向量的元素将会被调整。语料库中每个词的上下文就是通过反向传播误差信号来调整特征向量的“教师”。如果不同的词向量按上下文判断为相似,那么这些向量中的数字将被调整,使它们更加接近。
就像梵高的《向日葵》用油画颜料在画布上混合组成二维图形来表示19世纪末巴黎的三维植物一样,一个包含500个数字的向量也可以用来表示一个词或一组词。这些数字指出了每个词在500维向量空间中的位置。虽然人们很难想象超过三维的空间,但是这种表示方法使得相似的词语在向量空间中彼此靠近。
一组训练良好的词向量会让相似的词语在向量空间中彼此接近。例如,“橡树”、“榆树”、“桦树”这些词可能聚集在一个区域,而“和平”、“冲突”、“斗争”则可能聚集在另一个区域。
Word2vec本质上是一种词嵌入技术,即将词语转换为数值型向量,以便计算机能够处理。这使得自然语言处理变得更加高效和准确。