视频封面

视频元信息

  • 课程:吴恩达深度学习专项课程 · 序列模型 · 自然语言处理与词嵌入
  • 主题:情感分类(Sentiment Classification)
  • 时长:约 7 分 30 秒

内容摘要(TL;DR)

本视频讲解情感分类任务的定义与应用场景,重点分析两种基于词嵌入的建模方案:一是对词向量取平均/求和后接 Softmax 分类器(简单但忽略词序),二是用多对一 RNN 结构(能捕捉词序与否定语义)。核心结论是借助大规模语料预训练的词嵌入,即使标注训练集很小,也能快速构建效果不错的 NLP 系统。


一、什么是情感分类 [00:00]

  • 情感分类(Sentiment Classification)的任务是:输入一段文本,判断说话人对所谈论事物的态度是喜欢还是不喜欢。
  • 它是 NLP 中最重要的基础模块之一,被广泛应用在各种场景中。
  • 考点:情感分类的核心挑战是标注训练集往往很小,通常只有 1 万到 10 万词规模,有时甚至不足 1 万词。
  • 但借助词嵌入(Word Embeddings),即使标注数据规模有限,也能构建出效果不错的情感分类器。

情感分类是"看一段文本 → 判断情感倾向"的映射任务,属于典型的文本分类问题。

理解:情感分类之所以被视为 NLP 的"积木",是因为很多上层任务(评论分析、舆情监控、客服质检)本质上都依赖它。


二、应用案例:餐厅评论星级预测 [00:27]

视频给出的典型例子是餐厅评论的星级预测:

  • 输入 x:一段评论文本。
  • 输出 y:情感标签,例如 1 星到 5 星的评分。

示例评论与标签:

  • "The dessert is excellent."(甜点很棒)→ 4 星
  • "Service quite good."(服务相当好)→ 2 星
  • "Good for quick meal but nothing special."(快餐还行,但没什么特别)→ 2 星
  • "Lacking good taste, good service and good ambience."(口味、服务、氛围都不好)→ 1 星

易错点:最后一条评论是典型的"陷阱样本"——它包含大量 "good" 这个词,但整体是极负面的 1 星评价。这直接引出后续两种模型的关键差异。

应用价值:

  • 可以监控顾客对自己餐厅的评论。
  • 可以抓取 Twitter、Facebook、Instagram 等社交媒体上关于餐厅的帖子。
  • 有了情感分类器,就能自动追踪餐厅口碑是在变好还是变差。

思考:这类任务在工业界的价值在于"自动化舆情追踪",把人工看评论变成系统批量打分。


三、为什么词嵌入能解决小样本问题 [01:35]

情感分类的标注数据通常很少,但词嵌入可以在远大于标注集的语料上训练:

  • 词嵌入可在 10 亿甚至 1000 亿词的语料上学习。
  • 这让模型能吸收大量知识,甚至包括标注训练集中没出现过的生僻词。
  • 关键点:词嵌入把"通用语言知识"与"具体任务的少量标注"解耦,从而在小标注集上显著提升效果。

理解:这是迁移学习思想的早期体现——先在大语料上学词向量,再迁移到小规模下游任务。


四、方案一:词向量平均/求和 + Softmax 分类器 [02:08]

这是最简单的情感分类模型,流程如下:

  1. 取一句话,例如 "dessert is excellent",在词典(如 1 万词词典)中查找每个词。
  2. 每个词转成 one-hot 向量。
  3. one-hot 向量乘以嵌入矩阵 E,得到该词的嵌入向量(例如 300 维)。
  4. 对所有词的嵌入向量做求和(sum)或平均(average)。
  5. 得到一个 300 维特征向量,送入 Softmax 分类器。
  6. Softmax 输出 5 个可能结果(1 星到 5 星)的概率。

该方案的优点:

  • 结构简单,计算高效。
  • 对评论长度不敏感:无论评论是 4 个词还是 100 个词,都能通过求和/平均压缩成固定维度的特征向量。
  • 效果"还算不错(decently well)"。

该方案的致命缺陷:

  • 易错点:它完全忽略了词序(word order)。
  • 它本质上是在"平均/汇总所有词的含义"。
  • 对于 "Lacking good taste, good service and good ambience" 这种评论,由于 "good" 反复出现,最终特征向量中 "good" 的表示占比很高,分类器很可能误判为好评,而它实际是 1 星差评。

词袋式(bag-of-words)的平均/求和模型无法处理否定与词序,遇到 "not good"、"lacking good" 这类结构极易判错。这是情感分类中最经典的坑。

推导:设词向量为 e₁…eₜ,模型输出 = Softmax(W · (1/T)Σeᵢ + b)。由于求和/平均是可交换运算,打乱词序结果不变,因此"not good"和"good not"得到完全相同的表示。


五、方案二:多对一 RNN 情感分类器 [05:09]

针对方案一的缺陷,吴恩达给出更精细的模型——用 RNN 做情感分类:

  1. 取评论中的每个词(如 "lacking"、"good"、"taste"、"service"、"ambience")。
  2. 每个词查 one-hot 向量,乘以嵌入矩阵 E,得到词嵌入向量。
  3. 将词嵌入向量按顺序依次输入 RNN。
  4. RNN 在最后一个时间步计算出一个表示(representation)。
  5. 用该表示预测输出 y(星级)。

结构特征:

  • 这是多对一(many-to-one)RNN 架构,在前一周课程中已经介绍过。
  • 关键优势:能考虑词的顺序,从而识别 "lacking in good taste" 是负面评价、"not good" 是负面评价。
  • 相比之下,方案一只是把所有词"搅成一团词向量糊(big word vector of mush)",无法区分 "not good" 与 "good" 的语义差异。

泛化能力:

  • 词嵌入可在更大语料上训练,因此 RNN 方案对新词泛化更好。
  • 例如 "completely absent of good taste, good service and good ambience" 中的 "absent" 即使没出现在情感分类的标注训练集里,只要它出现在训练词嵌入的 10 亿/1000 亿词语料中,模型仍可能判对。
  • 重要结论:词嵌入让模型能泛化到标注训练集中未出现、但词嵌入语料中出现过的词。

理解:RNN 通过隐藏状态逐步累积上下文,最后一个时间步的隐藏状态相当于对整句语义的"有序压缩",因此能编码否定、转折等词序相关语义。

【拓展】RNN 之后,业界进一步用 LSTM、GRU 缓解长程依赖与梯度消失问题;再后来 Transformer(自注意力)成为主流,能并行处理并更好捕捉长距离依赖。但本视频强调的"词序 vs 词袋"的核心矛盾,在所有这些架构中依然成立。


六、两种方案对比总结 [06:30]

维度 方案一:平均/求和 + Softmax 方案二:多对一 RNN
是否考虑词序 否 是
能否处理否定 不能 能
计算复杂度 低 较高
对长文本 天然适配(固定维度) 需处理长序列依赖
效果 尚可 更好

考点:情感分类的两大方案差异,本质是"是否建模词序"。这是本视频最核心的对比点,也是易错点——不要以为平均词向量就能解决情感分类。

思考:方案一可作为基线(baseline)快速验证,方案二在需要精细语义时使用。实际工程中常先跑基线再决定是否上 RNN。


七、核心要点回顾 [07:22]

  • 情感分类 = 判断文本表达的是喜欢还是不喜欢。
  • 挑战:标注训练集小(约 1 万 ~ 10 万词)。
  • 解决思路:用大规模语料预训练词嵌入,迁移到小标注任务。
  • 方案一(平均/求和 + Softmax):简单、适配长短文本,但忽略词序,易被 "good" 类词误导。
  • 方案二(多对一 RNN):考虑词序,能正确理解 "not good"、"lacking good taste" 等否定结构。
  • 词嵌入的最大价值:让模型泛化到标注训练集中未出现、但词嵌入语料中出现过的词。
  • 结论:一旦拥有(或下载)预训练词嵌入,就能快速构建相当有效的 NLP 系统。

关键标签 / 关键词

情感分类 #SentimentClassification #词嵌入 #WordEmbeddings #RNN #多对一架构 #ManyToOne #Softmax #自然语言处理 #NLP #吴恩达深度学习 #序列模型 #词序 #否定语义 #迁移学习 #预训练词向量


生成时间:2026-10-11 00:23:14 生成平台:VideoNote www.xygy.top