【自然语言处理与大模型】自然语言处理的漫漫长路之文本向量化

前文我们谈到,计算机想要理解人类语言,首要步骤是把文本编码为数字。这一阶段的核心目标,尚且不是精准理解词语与句子的语义,而是探索如何将文本转化为数字形式,并尽可能保留其中蕴含的信息。时常有感,攻克一件难事,恰似自然语言处理这条漫漫长路:拾级而上,步步积累,不急不躁,才最终抵达当下人工智能的高峰 ------ 大模型。或许未来人工智能领域还会涌现更多新的高峰,而本篇,我们继续沿着脉络,梳理 NLP 的演进历程。


一、文本向量化

上文中我们已经发现了**统计方法的诸多不足:只统计词频,不理解语义,只看词是否出现,不看词序和上下文,向量高维稀疏,对短文本、同义词、多义词和稀有词都不稳定。**还有这么多的难题等着攻克呀!

分布式假设是NLP 词向量体系的理论基石,核心思想可概括为"观其伴而知其义",也就是说一个词的语义由它出现的上下文(周围的词)决定,上下文分布相似的词语义也相似。

(1)NNLM

我们先来看人们对语义方向的突破,统计方法的王N-gram顶到了"离散计数"的天花板,但也传递出了思想火花,再来回顾一下它的核心是"一个词出现的概率,只取决于它前面几个词",但人们很难继续通过"数频次"来获得更强的泛化能力。转折点出现在Bengio在2003年提出的NNLM,它的出现是一道曙光,为后续Word2Vec提供思想武器,我已经迫不及待了,但还是要先说说NNLM。

NNLM它仍然在做语言建模:给定前几个词,预测下一个词。 但它不再把词当成孤立符号,而是给每个词学一个低维、连续、稠密的向量。NNLM的大致流程是:

  1. 把钱N-1个词,查表成向量
  2. 拼接后送入隐藏层
  3. 通过softmax预测下一个词
  4. 训练过程中,词向量也被一起更新

这些流程非常重要,因为它带来了三个变化:词从One-hot离散符号,变成了连续向量。相似上下文会让相似词获得相似向量。即便某个词组合没在训练数据量出现过,模型也能靠向量相似性猜个大概。不过它也有个现实的问题,就是运算太慢,它的隐藏层有非线性变换,输出层还需要对整个词表做softmax,只要词表一大计算代价就非常高。但它的出现证明了神经语言模型加词向量这条路可行。

(2)Word2Vec

2013年Mikolv团队提出了Word2Vec,它继承发展了NNLM的思想,NNLM 证明了"用预测任务学词向量"是有效的,Word2Vec 把这件事做得足够简单、足够快,才让词向量真正普及。它做了几个关键的简化:

  • 去掉深层非线性:网络极浅,几乎就是一个投影层加预测层;
  • 放弃完整语言模型目标:不再追求完美的句子概率估计,而是专注学好词向量;
  • 用层次 softmax / 负采样:避免每次都对几十万、上百万词做归一化;
  • 滑动窗口训练:局部上下文足够捕捉很多语义关系。

具体包含两个算法,CBOW 是"用上下文预测中心词",Skip-gram 是"用中心词预测上下文"。

它们都不再像 NNLM 那样追求一个完整、复杂的语言模型,而是把"预测下一个词/周围词"当成学习语义的手段。

它们训练的目标不是为了拿来做预测,是借着 "预测" 这个任务,顺便把每个词练出一个向量,让意思相近的词向量挨在一起。比如"国王" 和 "女王" 向量距离很近,"猫" 和 "桌子" 离得很远。

但聪明的你又看出了端倪:一次训练完成后每一个词只有固定的词向量(情态词向量),还是无法解决"苹果"在水果语境是水果在科技领域是公司的问题,也就是无法做到一词多义。另外还它的上下文窗口有限,Word2Vec 只通过固定大小的滑动窗口学习词与词的关系,通常只有 5-10 个词。所以它很难建模跨句、跨段落的语义关联。比如前文提到的主体、否定、转折,到了后面可能就"断掉"了。

为什么会这样呢?其实道理很简单,共现不等于真正理解语义。 它学到的是"哪些词经常一起出现",而不是世界知识、逻辑关系或常识。比如它可能知道"苹果"常和"吃、甜、水果"共现,但并不真正理解苹果是可食用物体、有营养、会腐烂。所以接下来人们想要解决的问题变成了"如何通过语境动态计算词向量?"

二、小结

**我们再来回顾这句话:不同的词向量方法本质是在提升向量所涵盖文本的信息量。**BoW将信息量从"这段文档中有没有这个词",提升到"这段文本中有多少这个词"。TF-IDF把"出现次数"升级成了"重要性"。这样一来信息量从"这段文本中有多少这个词"提升到"这个词对这篇文档有多重要"。而N-gram 把信息量从"单个词的存在/频率/重要性",提升到了"局部词序列"层面。

NNLM 和 Word2Vec 把信息量从"离散符号的局部序列",提升到了"连续语义空间里的词"。

它不再只问"这个词和前面几个词是否一起出现",而是让每个词获得一个低维稠密向量,并在向量空间里把"猫"和"狗"放得近一些,把"猫"和"冰箱"放得远一些。

方法 信息量升级
BoW 从"有没有这个词" → "有多少这个词"
TF-IDF 从"出现次数" → "对这篇文档多重要"
N-gram 从"单个词统计" → "局部词序列/语序搭配"
NNLM 从"离散符号" → "连续语义向量"
Word2Vec 从"连续向量" → "可计算、可泛化、可大规模训练的语义空间"

NLP的漫漫长路又迈进了一大步!


参考文章:

【机器学习300问】128、简述什么Word2Vec?

【机器学习300问】127、怎么使用词嵌入?

【自然语言处理与大模型】自然语言处理的漫漫长路之给文本编码

相关推荐
薛定谔的猫-菜鸟程序员1 小时前
从 SEO 到 GEO:生成式引擎优化的原理、证据与骗局
人工智能·seo·geo
sunshine22 girl1 小时前
copilot vscode 使用技巧
人工智能·vscode·编辑器
雨后的天空1 小时前
周末花两天手撸了一个车牌识别,CCPD 上 99%,换张手机照片就翻车了 🚗
人工智能
蒲公英eric1 小时前
元胞自动机:从森林火灾到交通流
人工智能·数学建模·元胞自动机·数学建模模型
AI的探索之旅2 小时前
OpenCV Day39 —— 无缝克隆 seamless cloning(cloning_demo / cloning_gui)
人工智能·opencv
滼2 小时前
AI 数据安全面试应答框架:从大框架到小点
大数据·人工智能·安全·面试·安全架构
科技云报道2 小时前
科技云报到:AI没有杀死软件,只是重写了它的“收银台“
人工智能·科技
武子康2 小时前
同一台 ESP32,GSM 能消回声,VoIP 为什么不行?
人工智能·后端·agent