
1. 引言神经网络如何处理文本在自然语言处理任务中神经网络无法直接理解文字必须先将文本转换为数值形式。如何表示词、如何表示文本是神经网络处理文本问题的两个核心环节。本文围绕「词向量」这一主题系统梳理独热编码、分布式表示、神经网络语言模型NNLM以及 word2vec 模型并对每个概念给出明确定义和计算示例。2. 词的表示方法2.1 独热one-hot编码定义独热编码是一种将词表示为稀疏向量的方法。假设词表长度为 K每个词对应一个 K 维向量其中该词在词表中的第 i 个位置取值为 1其余位置均为 0。计算示例给定文本「我在清华大学学习生活在美丽的清华园中」构建词表{我在清华大学学习生活美丽的清华园中}词表长度 K8。各词的独热表示如下词独热向量8 维清华大学[0, 0, 1, 0, 0, 0, 0, 0]清华园[0, 0, 0, 0, 0, 0, 1, 0]美丽的[0, 0, 0, 0, 0, 1, 0, 0]特点分析优点编码简单易于实现。缺点编码太长维度随词表规模增长无法度量词之间的相似性任意两个词的向量内积为 0。2.2 词的分布式表示定义分布式表示Distributed Representation将每个词映射为一个稠密向量如 [-0.85, 2.3, 1.5, -0.54, 0.77, ...]向量的每个维度都承载一定的语义信息维度远小于词表长度。对比说明独热编码是稀疏向量分布式表示是稠密向量。分布式表示的核心优势在于语义相近的词在向量空间中距离更近。计算示例假设用三个维度分别表示「动物」「植物」「食物」三个语义属性则词动物植物食物猪1.00.11.0羊1.00.21.0熊猫1.00.30.0白菜0.01.01.0竹子0.01.00.1从表中可以看出「猪」和「羊」的向量相似度高同为动物且可食用而「熊猫」与「竹子」的向量差异较大这体现了分布式表示对语义相似性的刻画能力。2.3 词向量与词嵌入定义词向量Word Vector即词的分布式表示。词嵌入Word Embedding是把词向量从高维空间嵌入到低维空间中的一种方法本质上是学习一个映射函数将词表中的每个词映射为低维稠密向量。3. 语言模型3.1 语言模型的定义定义语言模型Language Model用于计算一个词序列出现的概率。给定前 n-1 个词语言模型预测第 n 个词出现的概率分布。计算示例给定前文「清华大学计算机」语言模型对下一个词的预测结果可能为候选词概率系大学院中大学小3.2 n 元模型以 2 元模型为例定义n 元模型假设当前词只与前面 n-1 个词相关。2 元模型Bigram假设当前词只与前一个词相关。计算示例对于句子「清华大学计算机系」2 元模型计算整个句子概率的方式为p(清华大学计算机系) p(大学|清华) × p(计算机|大学) × p(系|计算机)即整个句子的概率等于相邻词对条件概率的连乘。4. 神经网络语言模型NNLM4.1 模型结构定义神经网络语言模型NNLM利用神经网络来学习语言模型同时训练得到词向量。其基本结构为输入层取前 n-1 个词每个词用 m 维词向量表示拼接成 m(n-1) 维向量作为输入。隐藏层包含 H 个神经元与输入层全连接。输出层神经元个数等于词表长度 K输出为下一个词的概率分布。其中每个词对应的 m 维词向量是模型训练得到的参数。4.2 训练样本的构造定义训练样本由滑动窗口生成给定句子和窗口大小 n每次取前 n-1 个词作为输入第 n 个词作为预测目标。计算示例设有句子「清华大学计算机科学与技术系」当窗口 n5 时可构造 3 个训练样本样本编号输入前 4 个词预测目标第 5 个词1清华 大学 计算机 科学与2大学 计算机 科学 与技术3计算机 科学 与 技术系4.3 训练目标定义NNLM 的训练目标是最大化训练语料的对数似然函数。对于每个训练样本模型输出预测词的概率通过反向传播BP算法更新网络参数和词向量。计算示例设模型对样本 1 预测「与」的概率为 p(与|清华,大学,计算机,科学)则似然函数为所有样本预测概率的连乘对数似然函数为连乘取对数后的和。训练过程通过梯度上升最大化对数似然函数。4.4 NNLM 存在的问题NNLM 的主要问题在于输出层神经元个数等于词表长度 K输入层为 m(n-1) 维向量全连接参数过多导致训练计算量巨大尤其当词表规模很大时效率低下。5. word2vec 模型5.1 模型概述定义word2vec 是一种简化的神经网络语言模型专门用于高效训练词向量。它有两种实现方式连续词袋模型CBOW和跳词模型Skip-Gram。5.2 连续词袋模型CBOW定义CBOW 通过上下文词窗口内除中心词外的其他词来预测中心词。模型结构包括输入层、投影层和输出层输出层使用霍夫曼树Hierarchical Softmax来加速计算。计算示例对于句子「清华大学计算机系」若窗口大小为 5中心词为「计算机」则上下文词为「清华」「大学」「系」。CBOW 将上下文词的词向量求和或平均通过神经网络预测中心词「计算机」的概率。与 NNLM 的对比对比项NNLMCBOW输出层全连接K 个神经元霍夫曼树Hierarchical Softmax训练计算量每次更新全部参数每次只计算与该词有关的参数越是常用词涉及的参数越少词向量获取训练得到训练得到BP 算法求解5.3 跳词模型Skip-Gram定义Skip-Gram 与 CBOW 相反通过中心词来预测上下文词。给定中心词模型输出窗口内各上下文词的概率分布。计算示例对于句子「清华大学计算机系」若中心词为「计算机」窗口大小为 5则模型需要分别预测「清华」「大学」「系」这三个上下文词。6. 词向量的性质与应用6.1 词向量的语义性质定义词向量具有语义相近词距离近的性质且支持向量加减运算来刻画语义关系。计算示例经典的语义关系示例为C(王后) C(女人) C(国王) - C(男人)即「国王」减去「男人」得到「王」的语义再加上「女人」得到「王后」的语义说明词向量编码了丰富的语义关系。6.2 词向量应用举例TextCNN 情感分类定义TextCNN 是一种利用卷积神经网络进行文本分类的模型其输入为词向量序列通过多个不同大小的卷积核提取局部特征再经池化和全连接层输出分类结果。计算示例以情感分类为例正面情感示例「我很喜欢这部电影」负面情感示例「这部电影不好看」TextCNN 的处理流程为将句子中每个词转换为词向量并拼接成矩阵使用 6 个不同大小的卷积核卷积核宽度与词向量长度一致进行卷积再经过 1-最大池化1-max pooling提取每个卷积核的最大特征拼接后送入全连接层和 softmax 层输出正面/负面情感的概率。7. 小结本文围绕「词向量」主题系统梳理了以下核心概念独热编码稀疏向量表示编码简单但无法度量词间相似性。分布式表示稠密向量表示语义相近的词距离近。神经网络语言模型NNLM通过训练语言模型得到词向量但参数过多、计算量大。word2vec 模型简化的神经网络语言模型包括连续词袋模型CBOW和跳词模型Skip-Gram训练效率高。词向量应用支持语义运算如 C(王后) C(女人)C(国王)-C(男人)并可用于 TextCNN 等下游任务。词向量是连接文本与神经网络的桥梁理解其原理对于学习自然语言处理和深度学习具有重要意义。