AI 学习之路 01:文本不是“被看懂”的,而是先被表示成可计算对象

21 阅读6分钟

很多人刚开始接触 AI,尤其是文本方向时,最容易先想到“模型”。

比如大模型、Transformer、embedding、微调,仿佛进入这些词,才算真正开始学 AI。

但我最近在学习时,反而越来越觉得,文本任务里最基础、也最容易被忽略的一步,不是模型本身,而是一个更朴素的问题:

文本到底怎么变成计算机可以处理的东西?

如果这个问题没有想清楚,后面很多内容都会停留在“会调用库”的层面,而不是理解原理。

一、计算机并不会直接“看懂文本”

人看到一句话,比如“供应商联系人”,会自然联想到它的语义、业务场景、可能对应的字段或者页面元素。

但对计算机来说,文本一开始并没有“语义”这种东西。
它首先只是一个字符串,一串字符序列。

所以做文本任务时,第一步不是“理解”,而是:表示。

也就是先把文本转换成某种可以计算、可以比较、可以输入到程序里的结构。

这是我最近学习中一个非常重要的体会。
以前会觉得,文本处理的核心在“模型”;现在更能感受到,文本处理的起点其实在“表示”。

二、最朴素的文本表示:拆分、去重、比较

如果暂时不谈复杂模型,只用最基础的方法,也可以让文本进入“可计算状态”。

比如一段文本,可以先做这些处理:

  1. 字符拆分
  2. 集合去重
  3. 重合度计算

看起来很简单,但这几步其实已经是在做一件很关键的事:

把自然语言变成结构化对象。

例如,“供应商联系人”这段文本,可以被拆成一个字符集合。
另一段文本也可以拆成另一个字符集合。
这样一来,原本“人类眼里的词”,就变成了“程序眼里的集合”,接下来就可以继续做交集、计数、比例这些计算。

这一步让我第一次比较直观地理解了:

计算机处理文本,往往不是先理解它,而是先把它转成一种能算的形式。

这个认识很重要,因为它会影响后面对很多概念的理解,比如:

  • 为什么要做分词
  • 为什么要做向量化
  • 为什么会有 TF-IDF
  • 为什么 embedding 本质上也是一种表示

它们看起来技术路线不同,但在做的其实是同一类事情:

给文本找一种适合计算的表达方式。

三、为什么“文本表示”是学习 AI 时绕不过去的一步

如果跳过这一步,直接进入模型,很容易产生一种错觉:

“模型很厉害,所以它自然会懂文本。”

但真实情况没那么神秘。
无论是简单方法还是复杂模型,前面一定都存在一个“表示层”。

只是简单方法里,这个表示是人工定义的,比如字符、词、词频。
复杂模型里,这个表示是通过训练学出来的,比如向量表示、上下文表示。

所以从学习路径上说,先理解最朴素的文本表示方式,其实很有价值。
因为它让很多后续概念不再是黑箱。

换句话说:

不是只有高级模型才在处理文本,最基础的字符集合、词频统计,也是在处理文本。

区别不在于有没有“表示”,而在于表示方式是否足够好。

四、第二个更重要的问题:什么叫建模思维

当文本已经变成可计算对象之后,接下来就进入另一个核心问题:

到底怎么定义“像”或者“不像”?

这其实就是建模思维的开始。

我这里说的“建模”,不是传统数学建模比赛里那种更完整的优化、约束、推导体系,而是更偏机器学习里的建模视角:

  • 输入是什么
  • 特征是什么
  • 规则是什么
  • 输出是什么
  • 怎么判断结果好不好

也就是说,建模不是一上来就上模型,而是先回答:

我打算怎样描述这个问题?

以文本相似度为例,表面看是在做“比较两个文本”,但真正往下拆,会出现很多建模问题:

  • 输入到底是完整文本,还是词、字、标签组合?
  • 用字符比较,还是用词比较?
  • 同名是否应该直接判满分?
  • 不同字段的重要性是否一样?
  • 相似度分数怎么定义才合理?

这些问题没有一个是纯“编码问题”,它们本质上都是建模问题。

五、建模思维不是追求复杂,而是追求合理

我以前会比较容易把“建模”想得很高深,好像只有公式很多、模型很复杂,才算建模。

但现在更倾向于把它理解成:

为了描述一个问题,你主动做出的那些定义和取舍。

比如:

  • 为什么选字符而不是词?
  • 为什么做去重?
  • 为什么用重合度而不是编辑距离?
  • 为什么名字和标签不能完全混在一起?
  • 为什么某些规则会让结果违背直觉?

这些其实都是非常典型的建模思考。

它的重点不在“高级”,而在“是否清楚”。
你是否知道自己在定义什么,为什么这么定义,以及这个定义会带来什么后果。

从这个角度看,建模思维并不是神秘能力,而是一种不断追问的习惯:

  • 我现在到底在算什么?
  • 这个分数代表什么?
  • 这个特征有没有副作用?
  • 这个规则为什么会在某些样本上失效?

一旦开始这样想问题,学习就会从“会写代码”慢慢走向“会分析方法”。

六、为什么我觉得这两步比直接追模型更重要

如果一开始就把注意力放在模型名字上,很容易忽略两个更根本的问题:

  1. 文本是怎么表示的
  2. 问题是怎么被定义的

但实际上,后面的很多模型能力,都是建立在这两层基础上的。

文本没有被合理表示,模型就没有稳定输入。
问题没有被合理定义,模型效果也很难真正解释。

所以从学习顺序上,我越来越觉得更稳的路线应该是:

先理解文本表示
再理解建模思维
最后再进入更复杂的模型

这样后面学 TF-IDF、embedding、神经网络时,理解会扎实很多。

结尾

这段时间最大的一个认识是:

AI 不是从模型开始的,而是从表示和建模开始的。

文本任务尤其如此。
计算机并不会直接“看懂”文本,它首先需要一个可以计算的表示;而人也不能跳过定义问题这一步,最终还是要回到建模本身。

对我来说,这比“先学哪个大模型”更重要。
因为只有把这两层想清楚,后面的学习才不会只是堆概念、调库和跑 demo。