By accumulating small steps, one can reach a thousand miles.

很多所谓 AI 信息系统,并没有解决信息筛选问题。它们只是把人工阅读的成本,改写成了模型调用的成本。

但我想到一个问题:今日头条早在 2012 年 8 月就上线了。此后十几年,我们又在支付宝、滴滴、浏览器和无数与资讯八竿子打不着的 App 里刷到了个性化信息流。

那个没有 LLM 的时代,到底是怎么做推荐的?


每天从 500 篇 RSS 文章里,捞出和几个固定主题相关的内容。

LLM 会把它理解成一个阅读理解题:读文章、读规则、推理、输出结论。

但它其实也可以被改写成一道几何题:这篇文章,离「科技向善」这个主题有多近?

Embedding 模型会把一段文本转换成一串固定长度的数字,也就是一个向量。你可以把它想象成一台「语义坐标转换器」:文章进去,出来的是它在语义空间中的坐标。

很多人第一次认识 Embedding,是在 RAG 里看它负责召回。这一代应用开发者大多从 LLM 时代进入 AI,起点又在应用层,很容易把 Embedding 当成 RAG 的固定配件:离开知识库问答,就想不起它还能干什么。

其实只要一个任务可以改写成「比较两段东西有多像」,Embedding 就能在许多场景单独派上用场。

Embedding 本身不是分类器。真正的分类器,是「Embedding + 主题锚点(范文) + 相似度 + 阈值」这四样东西拼起来的结果。

维度Embedding 分类LLM 分类
核心任务计算语义距离阅读、推理并生成结论
输出固定长度向量文本或 JSON
多主题成本文章向量可复用,主题向量可缓存主题越多,Prompt 与判断负担越重
稳定性相同模型和输入下结果稳定受 Prompt、采样和模型版本影响
延迟编码后直接返回,适合批处理需要逐 Token 解码
可解释性可以看到相似度、最佳范文和阈值可以生成解释,但也可能事后合理化
擅长主题匹配、召回、粗筛、聚类复杂规则、跨文档推理、摘要与改写
本地部署小模型即可,资源要求较低通常需要更大模型和更多资源
日常边际成本运行时接近 0每次判断都继续消耗 Token

但只判断「像不像」时,没必要调用一个会推理、会写作、会解释的大语言模型。


本文讲的内容匹配、向量相似度、关键词检索、聚类、去重和多样性重排,更像上一代推荐系统里的边角技术:它们用于冷启动、内容召回、特征补足、重复控制和排序校正,而不是单独扛起一个今日头条。

可个人日报恰好没有平台的条件。

你没有数亿用户,没有足够密集的 用户—文章行为 矩阵,也不需要预测陌生人下一秒会不会继续滑动。你只有一个人或一小群人的订阅源、几百篇文章,以及一个更朴素的目标:把真正值得看的东西先捞出来。

在这个尺度上,推荐系统的「边角技术」已经够用了。

对从 LLM 时代才进入算法与工程世界的 Vibe Coding 一代来说,这些旧技术值得补课。Embedding、余弦相似度、BM25、n-gram、SimHash、兴趣簇、MMR、FTRL,不如大模型性感,但便宜、稳定,出了问题也知道该从哪里查。

做 Harness 时,我现在会先问一句:这一步的“智能”真的需要 AI 吗?毕竟“智能”这个词早在这一轮 LLM 爆发之前,就已经出现在几乎各类软件和家用电器里了,也许我所需要的根本不是一个 AI 级别的智能。