Word2vec简介:学习词嵌入
了解词嵌入的基本概念。
概述
在本章中,我们将讨论自然语言处理(NLP)中的一个至关重要的主题——Word2vec,这是一种通过数据驱动方式学习语言中词语或词元强大数值表示(即向量)的技术。语言本身非常复杂,因此我们构建的模型必须具备扎实的语言理解能力,才能有效解决NLP问题。在将词语转换为数值表示时,许多传统方法无法充分捕捉词语所蕴含的语义和上下文信息。例如,“forest”(森林)一词的特征表示应与“oven”(烤箱)有很大差异,因为这两个词几乎不会出现在相似的语境中;而“forest”和“jungle”(丛林)的表示则应当非常接近。如果不能捕捉这类信息,模型的表现就会大打折扣。
Word2vec 试图通过大量文本的学习来克服这一问题,从而获得高质量的词向量表示。
注意:Word2vec 被称为分布式表示(distributed representation),因为词语的语义是由整个表示向量的激活模式共同决定的,而不是由向量中的某一个单独元素决定(例如,并非仅将向量中某个位置设为1、其余为0来表示一个词)。
内容脉络
本章中,我们将深入学习多种 Word2vec 算法的工作机制。首先,我们会回顾解决词表示问题的经典方法及其局限性,这将引导我们转向基于神经网络的 Word2vec 方法——这类方法在获取优质词表示方面表现卓越,达到了当前最先进的水平。
我们将在一个数据集上训练模型,并分析模型所学到的词表示。下图展示了使用 t-SNE(一种用于高维数据可视化的技术)将一组词语的词嵌入映射到二维平面上的结果。仔细观察可以发现,语义相近的词在空间中彼此靠近(例如,中间聚类的一组是数字):
注意:t分布随机邻域嵌入(t-SNE) 是一种降维技术,可将高维数据投影到二维空间,使我们能够直观地观察高维数据在空间中的分布情况。由于人类通常难以直接理解三维以上的数据结构,这种可视化方法尤为重要。
本章将围绕以下几个核心主题展开:
- 什么是词表示或词义?
- 学习词表示的经典方法
- Word2vec——一种基于神经网络的词表示学习方法
- Skip-gram 算法
- 连续词袋模型(CBOW)算法
通过本章的学习,你将全面理解词表示的发展历程如何催生了 Word2vec,掌握两种不同 Word2vec 算法的应用方法,并深刻认识 Word2vec 在自然语言处理中的关键作用。