自然语言处理NLP - 第8章 词向量与神经网络:从手工特征到学习表示

8.1 One-hot表示为什么不够

词表有10000个词时,One-hot为每个词创建10000维向量,只有对应位置为1,其余为0。它能唯一标识词,却不能自然表达"电梯"和"升降设备"的相近关系。词表越大,表示越稀疏。

Embedding把离散ID映射为较低维的稠密向量,向量值通过学习获得。每个坐标通常不能直接解释成"紧急程度"或"设备类型";语义分布在多维组合中,不是一本逐维写好含义的词典。

8.2 Word2Vec的核心直觉

如果两个词经常出现在类似上下文中,它们可能具有相似的用法。CBOW利用周围词预测中心词,Skip-gram利用中心词预测周围词。通过这类训练目标,模型学习到可用于相似度等任务的词表示。

静态词向量通常为一个词提供一份表示,所以"苹果"的水果义和品牌义会混在一起。上下文化模型则根据当前句子生成表示,让同一个Token在不同语境中得到不同向量。

8.3 神经网络怎样做文本分类

一种简单结构是:Token ID进入Embedding层,得到一串向量;对向量做平均池化,得到句子向量;经过线性层和Softmax,输出类别分布。训练时根据正确类别计算损失,让各层参数共同调整。

平均池化容易丢失顺序,例如"不是坏了"和"坏了"可能较难区分。更复杂模型的价值之一,就是更好地表示上下文、组合关系和位置,而不只是扩大向量维数。

8.4 CNN、RNN、LSTM和GRU

文本CNN用局部窗口捕捉短语模式,有点像自动学习的N-gram特征提取器。RNN按顺序读取Token,用隐藏状态传递历史信息;长序列中,训练可能受到梯度消失或爆炸等问题影响。

LSTM和GRU通过门控机制控制信息的保留、更新与遗忘,缓解普通RNN的长期依赖困难,但不能保证任意远距离的信息都被完好保留。序列步骤之间的依赖也会限制训练并行程度。

8.5 Seq2Seq与注意力的出现

Seq2Seq用编码器表示输入,再由解码器生成输出,例如把中文翻译成英文。早期结构若把整个输入压进单个固定向量,长句信息容易受限。注意力让解码器在生成不同位置时,能够重新访问输入的不同部分。

把注意力想成"每一步给相关内容不同权重"是一个有用起点,但不要把它等同于人类专注。权重是根据训练目标学出的数值,并不自动等于因果解释。

8.6 本章检查点

词向量与句向量有什么区别?前者表示词或Token,后者表示整段文本。不能随便把某个模型的第一个Token向量当作高质量检索向量;需要符合该模型的训练方式、池化方式及使用约定。

相关推荐
一隅论数智2 天前
给AI一张“业务概念地图“:本体如何从哲学走向企业智能
大数据·人工智能·经验分享·笔记·学习·学习方法·政务
XiHongShi20162 天前
STM32F407 RTC定时器例程,建议保存
stm32·单片机·学习
LaughingZhu2 天前
Product Hunt 每日热榜 | 2026-09-19
人工智能·深度学习·神经网络·搜索引擎·百度
爱吃苹果的日记本2 天前
离散数学第六课
学习·离散数学
AI职业加油站2 天前
AI智能体应用工程师证书:政策红利下的职业新风口
大数据·运维·人工智能·学习·职场发展
旖旎夜光2 天前
力控面试题 01.01: 判定字符是否唯一(位运算) —— 题解
c++·学习·算法·leetcode·力控
奇思妙想聪明勤奋的小羊2 天前
DeepAgents第5章:子Agent 与上下文隔离—让 Agent学会委派
人工智能·python·学习·语言模型
霍霍的袁2 天前
【C++】map 和 set 的使用 | 从用法到底层
开发语言·c++·学习·visual studio
彧azz2 天前
Linux 环境下 Redis 学习总结:数据类型、持久化、锁、事务、主从与缓存问题
linux·redis·笔记·学习·面试