自然语言处理第一章中的几个问题:
1. 词汇向量化的意义?
- 跨越符号与数值的鸿沟:计算机只能进行数学计算,无法直接理解人类的文本。词汇向量化将离散的文本符号映射为连续的数值空间,使得自然语言可以输入到机器学习和深度学习模型中。
- 量化语义关系:通过将词汇映射到多维坐标系中,我们可以利用几何空间中的距离(如欧氏距离)和方向(如余弦相似度)来精确衡量词与词之间的语义相关性和逻辑关系。
2. 相较于离散型向量,分布式表示向量有何优势?
离散型向量(如 One-hot 编码)是将词汇表大小作为维度,当前词所在位置为 1,其余为 0。相比之下,分布式表示(如 Word2Vec, GloVe 生成的低维稠密向量)具有压倒性优势:
- 突破维度灾难与数据稀疏:离散向量的维度极高(十万到百万级)且极度稀疏,计算成本巨大;分布式表示将维度压缩到固定的低维(如 300 维)稠密空间,大幅降低了计算复杂度和内存消耗。
- 包含丰富的语义计算能力:任意两个离散型 One-hot 向量的点积永远为 0,无法计算相似度("猫"和"狗"的距离等同于"猫"和"石头")。而分布式表示中,语义相近的词在几何空间中距离更近,能够直接进行相似度计算和线性类比。
- 更强的泛化能力:由于语义特征被"分布"在多个维度上,模型遇到未见过的句子组合时,能利用词向量的内在相似性做出合理推断。
3. 预训练词向量的意义?
- 知识迁移(迁移学习):利用海量无标注语料(如全网百科内容),通过自监督学习提取出通用的语言规律、语法结构和客观常识。然后将这些沉淀好的"先验知识"迁移到数据稀缺的下游任务中。
- 打破冷启动,加速收敛:为下游神经网络提供了一个极佳的参数初始化起点。相比于随机初始化,预训练词向量能有效避免模型陷入局部最优,显著加快训练收敛速度,并提高最终模型的性能上限。
4. 预训练词向量的不足?
- 一词多义的困境(静态表征局限):经典的预训练词向量(如 Word2Vec、GloVe)是静态字典映射。一个词(如"苹果")在空间中只有一个固定的向量,无法区分它是"水果"还是"科技公司"。(这一痛点直接催生了后来的 ELMo 和 BERT 等动态上下文表征技术)。
- 未登录词(OOV)处理棘手 :模型在测试时如果遇到预训练词表中没有的新词或罕见词,往往只能统一映射为一个无意义的
<UNK>向量,导致关键语义丢失。(FastText 通过引入子词在一定程度上缓解了此问题)。 - 领域偏差问题:如果在通用语料(如新闻)上预训练,直接用于高度专业化的垂直领域(如医疗病历或法律文书)时,词义分布差异会导致模型表现大打折扣。
5. GloVe 相比于全局矩阵分解的方法有什么优势?
虽然 GloVe 本质上也利用了全局共现矩阵,但它在目标函数的设计上比传统的全局矩阵分解(如 SVD、LSA)更进一步:
- 精细拟合"概率比值" :传统 SVD 直接分解共现频次矩阵,而 GloVe 拟合的是两个词在特定上下文中的共现概率比值 。这种对相对比例的拟合,使得 GloVe 在向量空间中完美保留了线性平移不变性,在词汇类比任务(如 A−B≈C−DA - B \approx C - DA−B≈C−D)上的表现远超传统矩阵分解。
- 对抗高频词噪声的权重设计 :传统的矩阵分解很容易被极高频词(如停用词)主导,浪费了表征空间。GloVe 引入了精心设计的非线性权重函数 f(Xij)f(X_{ij})f(Xij),对高频词设置了上限(Cap),同时平滑了低频词的波动,使得模型更加聚焦于真正具有语义辨识度的词汇共现关系。
6.WordNet优缺点?
WordNet 是由普林斯顿大学认知科学实验室(Cognitive Science Laboratory)在 20 世纪 80 年代中期开始开发的一个大型英语词汇数据库(Lexical Database)。
它不仅仅是一个提供释义的工具,更是一个机器可读的语义词典。在 Word2Vec 这类基于统计的神经网络词向量出现之前,WordNet 是自然语言处理(NLP)领域最核心、被使用最广泛的"知识库"底座。
要理解 WordNet,必须先理解它的最小物理单元------Synset(同义词集)。
- 传统词典的逻辑:以"词"为中心。 先找单词 "bank",然后下面列出它的三个意思:1. 银行;2. 河岸;3. 倾斜。
- WordNet 的逻辑:以"概念(意义)"为中心。 它首先定义了一个客观存在的"概念"(比如:储蓄金钱的金融机构)。然后,把所有能表达这个概念的词(如 bank, depository financial institution, banking concern)打包成一个集合。这个集合就叫 Synset。
结论: 在 WordNet 中,网络里的节点不是一个个"单词",而是一个个"概念"(Synset)。
WordNet 的四大核心特点
1. 极其丰富的"语义关系(Semantic Relations)"连线
这是 WordNet 最伟大的创造。它不仅定义了概念,还用各种"关系线"把这些概念(Synset)像蜘蛛网一样连了起来。最常见的关系包括:
-
上下位关系 (Hypernymy / Hyponymy) ------ "IS-A" 关系:
-
比如:"狗"的上位词是"犬科动物","犬科动物"的上位词是"哺乳动物"。这构建了一棵极其严密的知识树。
-
整体与部分关系 (Holonymy / Meronymy) ------ "PART-OF" 关系:
-
比如:"方向盘"、"轮胎"、"引擎"都是"汽车"的 Meronym(部分);"汽车"是它们的 Holonym(整体)。
-
反义关系 (Antonymy): 比如 "good" 和 "bad"。
-
蕴含关系 (Entailment): 专门用于动词。比如你想"打呼噜(snore)",前提是你必须在"睡觉(sleep)"。
2. 区分词性,独立建网
WordNet 将词汇分为四大类:名词、动词、形容词和副词 。(不包含介词、连词等虚词)。
每一个词性内部都有一张独立的语义关系网。其中,名词网络构建得最庞大、最深邃(层级最深),而动词网络相对扁平。
3. 纯人工编纂(专家系统时代的巅峰)
与我们之前讨论的 GloVe、Word2Vec(靠计算机自动阅读几十亿字文本统计出来)完全不同,WordNet 是由一群语言学家和认知科学家,字斟句酌、纯手工编纂和维护的。
- 特点: 精度极高,逻辑极其严密,绝不会出现统计模型那种莫名其妙的错误。
- 代价: 成本极其高昂,更新极慢(这就是你在上一张幻灯片中看到的"缺少新义、更新滞后"的原因)。
4. 本质是一个"本体库(Ontology)"或"知识图谱(Knowledge Graph)"雏形
在计算机科学中,WordNet 经常被当作一个初级的常识知识图谱来使用。如果你想让计算机知道"贵宾犬也是一种动物",在 Word2Vec 中你需要计算向量相似度(还不一定绝对准确),而在 WordNet 中,计算机只需要顺着"上下位关系"的树根往上爬两层,就能得到 100% 确定的事实。
优点:
- 精准消歧:每个同义词集仅对应单一词义和注释,借助集合能有效消除语义歧义。
- 跨语言应用:基于同义词集的结构,可实现跨语言的使用。
- 概念推演与扩展:可以通过已知词汇理解同义词集表达的核心概念,并借助集合间的关系类型来认识更多未知词汇。
缺点:
- 语义颗粒度粗:缺少词汇间的细微差别(例如将"熟练"等同于"良好",忽略了语境限制)。
- 计算与推断能力缺失:无法量化计算单词之间的相似度,也无法高效推断词汇间的深层关联关系。
- 更新滞后:无法及时收录网络新词或已有单词的新义。
- 主观偏差:由于完全依赖人工构建,不可避免地受到编纂者主观意识的影响。
- 多语言支持不均:中文词条数量过少。
7.评价方法
整个评估体系被明确划分为两大阵营:内部评估(Intrinsic Evaluation)和外部评估(Extrinsic Evaluation)。
1.内部评估(Intrinsic Evaluation)
核心思想: 直接在词向量空间内,通过计算向量之间的几何关系(如距离、夹角)来测试其是否准确捕捉了人类认知中的语义和句法规则。
- 优点: 计算速度快,能够直接、针对性地评估向量空间的几何性质,便于模型的快速迭代调试。
- 缺点: 内部评估得分高,并不一定保证在实际的复杂应用系统中效果好。
内部评估主要依赖两个经典的基准任务:
任务一:词汇语义相关性任务(Semantic Relatedness)
目的: 测试词向量计算出的相似度,是否与人类的主观直觉一致。
- 测试数据集: 通常使用人工标注的数据集,如 WordSim-353。数据集中包含大量的词对(如 tiger-cat),以及人类为这些词对打出的相关性平均分(分值越高越相关)。
- 计算方式: 使用余弦相似度(Cosine Similarity)来计算模型生成的两个词向量 uiu_iui 和 uju_juj 之间的距离:
cos(ui,uj)=ui⋅uj∣∣ui∣∣2×∣∣uj∣∣2cos(u_i, u_j) = \frac{u_i \cdot u_j}{||u_i||_2 \times ||u_j||_2}cos(ui,uj)=∣∣ui∣∣2×∣∣uj∣∣2ui⋅uj
- 最终指标: 计算模型得出的余弦相似度列表,与人类打分列表之间的 Spearman相关系数 ρ(X,Y)\rho(X,Y)ρ(X,Y)。相关系数越高,说明模型越符合人类直觉。(幻灯片图表显示,GloVe 模型在此类任务上表现通常优于早期的 SVD 和 Word2Vec 变体)。
任务二:词汇类比任务(Word Analogy Task)
目的: 测试词向量是否在多维空间中保留了严密的"线性平移不变性"(即差异性和共性)。也就是经典的" aaa 之于 bbb 等同于 ccc 之于 ddd " 问题。
- 测试数据集: 包含两类问题:
- 语义类(Semantic): 测试客观属性关系。如
man : woman \approx king : ?(答案是 queen)。 - 句法类(Syntactic): 测试语法时态、比较级等词形变化。如
bad : worst \approx cool : ?(答案是 coolest)。
- 计算方式(向量加减法): 假设我们需要求未知词 ddd。我们寻找词汇表中,其向量 wdw_dwd 与合成向量 (wb−wa+wc)(w_b - w_a + w_c)(wb−wa+wc) 余弦相似度最大的词:
argmaxd(cos(wd,wb−wa+wc))\arg\max_d(\cos(w_d, w_b - w_a + w_c))argdmax(cos(wd,wb−wa+wc))
- 空间表现: 如果模型足够优秀,具有相同关系的词对(如多组国家的首都和国名,或多组形容词的原级和最高级),在二维或三维投影下,它们之间的连线应当是高度平行的。
为了让你更直观地理解"词汇类比任务"中核心的向量加减法与空间平行关系,我为你生成了一个交互式的二维向量演示组件。你可以随意拖动输入词的向量,观察目标词是如何通过几何推导得出的。
2.外部评估(Extrinsic Evaluation)
核心思想: 将预训练好的词向量作为"原材料(输入特征)",直接喂给下游的具体自然语言处理任务模型,通过观察下游任务的最终表现来评判词向量的好坏。
- 常见的下游任务:
- 文本分类(Text Classification),例如情感分析判断一句话是褒义还是贬义。
- 命名实体识别(NER),例如从句子中抽取出人名、地名。
- 词性标注(POS tagging)。
- 评估逻辑: 保持下游任务的网络架构不变,仅仅替换底层输入的词向量(比如昨天用 Word2Vec,今天换成 GloVe)。如果替换后,文本分类的准确率上升了,就说明新换的词向量质量更高。
- 优点: 最具说服力。它直接反映了词向量对实际业务和真实语用的实际价值和影响。
- 缺点: 代价极其高昂。花费时间长,流程复杂。你必须训练一整个下游深度学习模型才能得到一次评估结果,难以用于词向量算法本身的快速调参。
这两种评估方法在工业界通常是结合使用 的:在研发一种新的词向量算法(或调参)时,研究员会疯狂跑内部评估 (算 Cosine 和 Spearman),因为它能在几秒钟内反馈结果;当筛选出几个得分最高的候选模型后,再将它们接入外部评估的真实业务链路中,进行耗时几天或几周的最终 A/B 测试,敲定最终的上线版本。