最近刷技术社区的时候看到一个挺有意思的开源项目,一群在校实习生用Go语言搭了一套基于大语言模型的生成式推荐系统,项目代号叫「乘风破浪」。我第一反应是——推荐系统这东西都被做烂了吧,从协同过滤到深度学习,各种方案卷了多少年了,这帮同学能玩出什么新花样?
哈哈,你这个反应其实挺典型的。推荐系统确实是老话题了,但你仔细看他们做的东西,核心卖点不是「又做了一个推荐系统」,而是把大语言模型真正嵌进了推荐的每个环节。这跟传统方案的区别还是蛮大的。传统推荐本质上是在历史数据里找统计规律,不管是协同过滤还是后来的Wide & Deep、DeepFM那些深度学习模型,都是在已有数据的模式里打转。而这个项目让LLM直接参与决策,甚至能生成内容,这就不一样了。
嗯,你说到架构,这个项目名字起得还挺讲究的。「乘风」是后端服务层,「破浪」是推荐系统层,他们自己也说了,后端是为推荐系统服务的,推荐才是重心。
对,这个定位我觉得很清醒。其实现在很多AI应用项目容易犯一个毛病,就是花大量精力在基础设施上,结果AI那部分反而很薄。这个团队把优先级摆得很明确——工程能力是基本功,但真正的差异化价值在AI能力的深度集成。这个思路放到整个行业来看也是成立的。
那我们具体聊聊,他们的生成式推荐到底跟传统方案有哪些本质区别?我看他们主要讲了三个核心差异。
第一个差异是用LLM的Embedding来做深层语义理解。你想啊,传统推荐系统怎么描述一篇文章?靠人工打标签、提关键词,粒度很粗。比如一篇讲机器学习入门的文章和一篇讲深度学习基础的文章,关键词完全不同,但语义上其实非常接近。LLM的Embedding能把这种语义相似性捕捉到,因为它在海量语料上预训练过,能把语义相近的内容映射到向量空间里很近的位置。
他们还做了一个三级层次结构来组织文章内容,对吧?第一级是核心主题,第二级是段落标题,第三级是对长段落做chunk分片。这个分片其实就是RAG领域的标准做法?
没错,因为大模型的上下文窗口有限,你不能把一整篇长文直接扔进去做Embedding,那样语义表示会很模糊。切成合适大小的片段分别处理,精度会高很多。然后在召回阶段,他们还分了粗召回和精召回——粗召回用标题、标签这些做初步筛选,精召回用向量检索深入到段落内容层面做语义匹配。后续还计划引入图数据库,用知识图谱来表达文章之间的复杂关联,比如多跳关系。
第二个差异是他们设计的三层用户记忆架构,这个我觉得特别有意思。长期记忆、短期记忆、周期记忆——听起来有点像在模拟人的记忆系统。
你这个类比很到位。长期记忆是用户注册时通过问卷获取的初始偏好,这个直接解决了推荐系统最经典的冷启动问题。传统方案碰到新用户,要么推热门内容兜底,要么靠人口统计学特征猜,效果都一般。但有了LLM,哪怕用户只填了几个兴趣关键词,模型也能做语义级别的理解和推理,生成比较靠谱的初始推荐。短期记忆就是最近浏览和互动的记录,反映即时兴趣。最妙的是周期记忆——它能捕捉你在不同时间段的兴趣变化,比如你早上喜欢看技术干货,晚上就想刷点轻松的内容。
这确实比传统的用户画像精细多了。然后第三个差异,也是「生成式」这三个字的核心——AI直接参与推荐决策,甚至能生成个性化内容。
对,这是最颠覆性的一点。传统推荐系统说白了就是个「选择器」,从已有内容池里挑东西给你。但生成式推荐系统里,用户该看什么类型的文章,这个判断是大模型做出的,不是简单的规则引擎或统计模型。它能处理更复杂的上下文信息。而且这不是他们拍脑袋想的,小红书在CNCC上就分享过类似的实践,把LLM融入推荐系统是业界正在认真探索的方向。
他们在用户反馈这块也下了不少功夫,设计了一个五维反馈体系。显式反馈像点赞收藏,隐式行为像停留时长、是否读完,还有负面反馈、周期性行为、地理位置信息。虽然有些功能还没落地,但框架确实很完整。
嗯,这套设计说明团队对用户建模想得比较深。特别是隐式行为和负面反馈,很多初级项目会忽略这些信号。你快速滑过一篇文章和认真读完一篇文章,传递的信息是完全不同的。把这些信号都纳入考量,用户画像才能真正立体起来。
聊聊项目现状吧。他们目前用的是阿里通义千问的API,一版已经开发完了,但也很坦诚地列了不少不足——单一模型、没有在线学习能力、还没做多Agent协同。
在线学习这个确实是关键短板。没有在线学习,模型就没法从部署后的用户交互中自我进化。比如用户突然对某个热点话题感兴趣,系统没法快速调整推荐策略,得等离线重新训练。工业界现在常用增量更新Embedding、实时特征工程,还有基于强化学习的探索-利用策略来解决这个问题。多Agent协同也很值得期待,想象一下,一个Agent专门分析用户画像,一个负责内容理解和召回,一个做排序决策,还有一个调控结果的多样性,各司其职然后协商出最终推荐——这比单一Agent的能力上限高很多。
他们的迭代计划也挺清晰的,春招期间先维护,暑假组人做大版本迭代加入多模态支持,长期目标是做成可持续运营的开源平台。
对一个实习生团队来说,这个节奏感很好。不贪大求全,先把核心链路跑通,再逐步迭代。
最后我想总结一下这个项目给我的三个感受。第一,AI工具确实在降低复杂系统的开发门槛,在校生团队也能搭出有一定复杂度的AI应用。第二,生成式推荐不是概念炒作,大厂已经在落地了,这个方向值得深入。第三,对想入门AI Agent开发的同学来说,参与这种真实的开源项目,比自己闭门造车效率高太多了。
我补充一点,这个项目用Go语言来做也是个亮点。现在AI领域Python一家独大,但Go在工程化、并发性能、部署运维方面的优势是很明显的。用Go搭AI Agent系统,本身就是一种有价值的探索。对于那些Go背景的开发者想切入AI领域,这个项目是个很好的切入点。而且他们也说了,欢迎零经验的开发者提PR,门槛放得很低,想试试的同学真的可以去看看。