Word2vec是一组相关的神经网络模型,由谷歌研究人员于2013年提出,用于从大规模无标注文本语料库中学习单词的稠密向量表示,通过向量运算而非手工制定的语言规则来捕捉词义和用法的各个方面。它是首批被广泛采用的嵌入技术之一,证明了语义关系可以直接从文本中的词语共现模式中恢复出来。
方法
Word2vec通过两种相关架构引入,由Tomas Mikolov及其谷歌同事(包括杰夫·迪恩和伊利亚·苏茨克维)在2013年发表的论文中描述:连续词袋模型(CBOW),根据周围上下文词预测目标词;以及跳字模型(skip-gram),根据目标词预测周围上下文词。两者都是浅层两层神经网络模型,通过自监督学习训练,因为训练信号自动从原始文本中获取,无需人工标注数据,利用邻近词作为隐式监督信号。隐藏层产生的权重矩阵即为学习到的词向量,通常具有几百个维度。
“国王减男人加女人”示例
Word2vec最广泛引用的演示是其向量运算能力,能反映语义和句法关系:从“国王”的向量中减去“男人”的向量,再加上“女人”的向量,得到的向量在学习的嵌入空间中最接近“女王”。类似的类比结构也出现在国家-首都对和动词时态等关系中,表明嵌入空间的几何结构编码了有意义且系统性的关系,而非任意聚类,这一结果在自然语言处理研究界引起了极大关注。
对NLP的影响
Word2vec,连同同时期的方法如GloVe,使预训练词嵌入成为下游NLP模型的标准输入层,取代了跨任务(包括机器翻译、情感分析和命名实体识别)中的稀疏独热词表示。其效率,,在当时的标准硬件上数小时内处理数十亿词,,使分布式词表示在规模上变得实用,这是早期神经语言模型无法实现的。
后继者
Word2vec的上下文无关表示,即每个词分配一个固定向量而不考虑周围上下文,已被上下文嵌入模型所取代。2018年的BERT模型以及基于Transformer架构的更广泛模型家族,会根据句子上下文为同一词生成不同向量,解决了Word2vec无法区分例如“bank”作为河岸和“bank”作为金融机构的问题。尽管在大多数最先进应用中被取代,Word2vec仍广泛用作轻量级嵌入基线,并作为学习向量表示这一更广泛概念的教学入门点,该概念如今支撑着语义搜索和向量数据库检索系统。