很多人刚开始接触 AI,尤其是文本方向时,最容易先想到“模型”。
比如大模型、Transformer、embedding、微调,仿佛进入这些词,才算真正开始学 AI。
但我最近在学习时,反而越来越觉得,文本任务里最基础、也最容易被忽略的一步,不是模型本身,而是一个更朴素的问题:
文本到底怎么变成计算机可以处理的东西?
如果这个问题没有想清楚,后面很多内容都会停留在“会调用库”的层面,而不是理解原理。
一、计算机并不会直接“看懂文本”
人看到一句话,比如“供应商联系人”,会自然联想到它的语义、业务场景、可能对应的字段或者页面元素。
但对计算机来说,文本一开始并没有“语义”这种东西。
它首先只是一个字符串,一串字符序列。
所以做文本任务时,第一步不是“理解”,而是:表示。
也就是先把文本转换成某种可以计算、可以比较、可以输入到程序里的结构。
这是我最近学习中一个非常重要的体会。
以前会觉得,文本处理的核心在“模型”;现在更能感受到,文本处理的起点其实在“表示”。
二、最朴素的文本表示:拆分、去重、比较
如果暂时不谈复杂模型,只用最基础的方法,也可以让文本进入“可计算状态”。
比如一段文本,可以先做这些处理:
- 字符拆分
- 集合去重
- 重合度计算
看起来很简单,但这几步其实已经是在做一件很关键的事:
把自然语言变成结构化对象。
例如,“供应商联系人”这段文本,可以被拆成一个字符集合。
另一段文本也可以拆成另一个字符集合。
这样一来,原本“人类眼里的词”,就变成了“程序眼里的集合”,接下来就可以继续做交集、计数、比例这些计算。
这一步让我第一次比较直观地理解了:
计算机处理文本,往往不是先理解它,而是先把它转成一种能算的形式。
这个认识很重要,因为它会影响后面对很多概念的理解,比如:
- 为什么要做分词
- 为什么要做向量化
- 为什么会有 TF-IDF
- 为什么 embedding 本质上也是一种表示
它们看起来技术路线不同,但在做的其实是同一类事情:
给文本找一种适合计算的表达方式。
三、为什么“文本表示”是学习 AI 时绕不过去的一步
如果跳过这一步,直接进入模型,很容易产生一种错觉:
“模型很厉害,所以它自然会懂文本。”
但真实情况没那么神秘。
无论是简单方法还是复杂模型,前面一定都存在一个“表示层”。
只是简单方法里,这个表示是人工定义的,比如字符、词、词频。
复杂模型里,这个表示是通过训练学出来的,比如向量表示、上下文表示。
所以从学习路径上说,先理解最朴素的文本表示方式,其实很有价值。
因为它让很多后续概念不再是黑箱。
换句话说:
不是只有高级模型才在处理文本,最基础的字符集合、词频统计,也是在处理文本。
区别不在于有没有“表示”,而在于表示方式是否足够好。
四、第二个更重要的问题:什么叫建模思维
当文本已经变成可计算对象之后,接下来就进入另一个核心问题:
到底怎么定义“像”或者“不像”?
这其实就是建模思维的开始。
我这里说的“建模”,不是传统数学建模比赛里那种更完整的优化、约束、推导体系,而是更偏机器学习里的建模视角:
- 输入是什么
- 特征是什么
- 规则是什么
- 输出是什么
- 怎么判断结果好不好
也就是说,建模不是一上来就上模型,而是先回答:
我打算怎样描述这个问题?
以文本相似度为例,表面看是在做“比较两个文本”,但真正往下拆,会出现很多建模问题:
- 输入到底是完整文本,还是词、字、标签组合?
- 用字符比较,还是用词比较?
- 同名是否应该直接判满分?
- 不同字段的重要性是否一样?
- 相似度分数怎么定义才合理?
这些问题没有一个是纯“编码问题”,它们本质上都是建模问题。
五、建模思维不是追求复杂,而是追求合理
我以前会比较容易把“建模”想得很高深,好像只有公式很多、模型很复杂,才算建模。
但现在更倾向于把它理解成:
为了描述一个问题,你主动做出的那些定义和取舍。
比如:
- 为什么选字符而不是词?
- 为什么做去重?
- 为什么用重合度而不是编辑距离?
- 为什么名字和标签不能完全混在一起?
- 为什么某些规则会让结果违背直觉?
这些其实都是非常典型的建模思考。
它的重点不在“高级”,而在“是否清楚”。
你是否知道自己在定义什么,为什么这么定义,以及这个定义会带来什么后果。
从这个角度看,建模思维并不是神秘能力,而是一种不断追问的习惯:
- 我现在到底在算什么?
- 这个分数代表什么?
- 这个特征有没有副作用?
- 这个规则为什么会在某些样本上失效?
一旦开始这样想问题,学习就会从“会写代码”慢慢走向“会分析方法”。
六、为什么我觉得这两步比直接追模型更重要
如果一开始就把注意力放在模型名字上,很容易忽略两个更根本的问题:
- 文本是怎么表示的
- 问题是怎么被定义的
但实际上,后面的很多模型能力,都是建立在这两层基础上的。
文本没有被合理表示,模型就没有稳定输入。
问题没有被合理定义,模型效果也很难真正解释。
所以从学习顺序上,我越来越觉得更稳的路线应该是:
先理解文本表示
再理解建模思维
最后再进入更复杂的模型
这样后面学 TF-IDF、embedding、神经网络时,理解会扎实很多。
结尾
这段时间最大的一个认识是:
AI 不是从模型开始的,而是从表示和建模开始的。
文本任务尤其如此。
计算机并不会直接“看懂”文本,它首先需要一个可以计算的表示;而人也不能跳过定义问题这一步,最终还是要回到建模本身。
对我来说,这比“先学哪个大模型”更重要。
因为只有把这两层想清楚,后面的学习才不会只是堆概念、调库和跑 demo。