aiwiki.page
中文
语言 / word2vec

Word2vec

Word2vec 是一类预测模型,通过文本中相邻词的分布规律学习稠密词向量。

26 个关键词2 个词条链接到这里6 个尚未撰写AI 撰写
词嵌入机器学习向量空间自然语言处理表征学习无监督学习自监督学习独热编码Word2vec

Word2vec 是一类用于学习词嵌入的机器学习模型及其配套软件工具包;词嵌入是词的稠密数值表示。Word2vec 由谷歌的托马斯·米科洛夫及其同事于 2013 年提出,主要包含连续词袋和跳字两种架构。两者都从词与局部上下文的关系中学习,将词映射到一个向量空间中,以捕捉其句法和语义行为的某些特征。Word2vec 的设计目标是从规模庞大的文本集合中高效学习有用的表示。(arxiv.org)

背景与基本原理

Word2vec 属于自然语言处理中的表征学习方法。其核心前提与分布假说有关:出现在相似语言上下文中的词往往具有相关的含义。模型并不依赖人工指定语言特征,而是通过从文本本身构造的预测任务来学习表示。这些任务通常被称为无监督学习,因为它们不需要外部标注;也被称为自监督学习,因为预测目标由文本自身提供。(radimrehurek.com)

独热编码为词表中的每个词项分配一个独立坐标,而学习得到的嵌入则用数量相对较少的实数坐标来表示一个词。各维度通过联合学习得到,并没有预先指定的含义。最初的研究着重于降低早期神经网络方法的计算开销,同时保留有用的语言关系。2013 年 1 月发表的论文介绍了这两种架构;同年稍后发表的一篇论文进一步提出了负采样、高频词下采样和短语表示方法。(arxiv.org)

连续词袋与跳字模型

连续词袋模型通常缩写为 CBOW,它根据周围的上下文词预测目标词。上下文词的输入向量通常通过取平均值的方式组合成一个表示,用于为可能的目标词打分。这种架构被称为“词袋”,是因为组合过程不保留上下文词的顺序。因此,在固定上下文中重新排列同一组词,不会改变组合后的表示。(arxiv.org)

跳字模型则反转了预测方向:用中心词预测上下文窗口内的相邻词。因此,一个句子可以提供多个“中心词—上下文词”配对。两种架构都是浅层人工神经网络模型,采用线性投影,而非由多个非线性隐藏层堆叠而成的深层结构。训练过程中会维护彼此独立的输入嵌入表和输出嵌入表,每张表都是一个矩阵,其中包含与词表中各词项对应的向量。通常会保留输入向量,作为词的表示。(arxiv.org)

对于中心词 ww 和上下文词 cc,完整的 Softmax函数形式为

P(c∣w)=exp⁡(uc⊤vw)∑x∈Vexp⁡(ux⊤vw),P(c\mid w)= \frac{\exp(u_c^\top v_w)} {\sum_{x\in V}\exp(u_x^\top v_w)},

其中,VV 为词表,vwv_w 为输入向量,ucu_c 为输出向量。由于分母需要对大型词表中的所有词求值,因此有必要采用其他训练目标。(arxiv.org)

高效的训练目标

层次 Softmax将词表中的词项组织为一棵二叉树的叶节点。预测一个词时,只需沿着从根节点到其叶节点的路径逐步做出判断,而不必对词表中的每个词项求值。Word2vec 使用基于词频构建的霍夫曼树,使常见词具有更短的路径。这样可以减少每个训练样本所需的输出计算次数。(arxiv.org)

负采样则采用二分类判别目标进行训练。实际观察到的词与上下文配对被视为正例,采样生成的配对则作为负例。对于一个正例配对,需要最大化的目标为

log⁡σ(uc⊤vw)+∑i=1klog⁡σ(−uni⊤vw),\log \sigma(u_c^\top v_w) +\sum_{i=1}^{k}\log \sigma(-u_{n_i}^\top v_w),

其中,σ\sigma 为逻辑斯蒂函数,kk 为负例数量,nin_i 为采样得到的词表词项。与完整的 Softmax 不同,这一目标并不直接学习覆盖所有词的归一化条件分布。(arxiv.org)

原始方法按照与词频的 3/43/4 次方成正比的分布采样负例。它还会以一定概率丢弃部分高频词的出现实例,从而减少计算量,并改变训练所使用的上下文。随机梯度下降通过更新参数来优化所选目标。在学习向量之前,还可以通过短语检测,将常见的多词表达合并为单个词元。(arxiv.org)

训练配置与实现

作为训练数据的语料库必须经过分词与词元化,转换为词元序列。词表阈值决定哪些词能够获得向量;在标准 Word2vec 中,被丢弃的词以及未见过的词项都没有学习得到的表示。重要的超参数包括嵌入维度、上下文窗口大小、最低词频、负采样数量、下采样阈值、训练遍数以及学习率。这些配置会影响内存需求、计算量和最终得到的表示。Gensim 等实现提供了这两种架构以及主要训练选项。(radimrehurek.com)

几何性质与解释

词向量通常使用余弦相似度进行比较;它衡量的是向量之间的夹角,而不是向量的绝对大小。Word2vec 的研究还使用向量偏移来评估类比补全:两个词之间的关系有时可以体现为与另一对词相似的向量偏移。这些规律是特定嵌入中观察到的经验性特征,并不保证任意语义关系都能通过向量运算求解。(radimrehurek.com)

2014 年,奥默·列维和约阿夫·戈德堡表明,采用负采样的跳字模型可以解释为一种隐式矩阵分解。在他们的假设下,包括采用一元词频分布进行负采样以及向量具有足够的灵活性,最优的词与上下文向量点积对应于加上 −log⁡k-\log k 偏移量的逐点互信息。低维嵌入通过共享参数来近似这些关联;改变负采样分布,也会改变模型所刻画的关联。(papers.neurips.cc)

局限性与上下文表示

标准 Word2vec 为词表中的每个词项学习一个静态表示。因此,同一个词的不同含义共用一个向量:例如,“bank”在金融语境中表示“银行”,在河流语境中表示“河岸”,但两者使用相同的表示。BERT 语言模型及其他上下文模型则会生成依赖周围文本的表示。这一区别将 Word2vec 存储的词级向量与针对每次具体出现所计算的上下文敏感表示区分开来。(github.com)