内容平台的推荐算法永远在走钢丝。纯按点击量优化,最终变成标题党回声室;纯按时间排序,优质讨论两小时就被淹没。DEV团队最近公开了他们最新的解法——把传统社区信号和Google的Gemini Embeddings 2结合起来,用pgvector在数据库层直接做语义匹配。
这套方案的核心不是某个黑盒API调用,而是一套可审计的基础设施。他们设计了Ai::Base和Ai::Embedding两个包装类,服务层只需要传wrapper: self,系统就能自动识别调用者类名和版本号。每次生成向量或分析趋势,AiAudit模型都会记录模型版本、调用方、载荷、延迟和token消耗——调试和成本追踪和业务逻辑完全解耦。
打开网易新闻 查看精彩图片
推荐流的具体实现靠FeedConfig模块动态编译SQL。过去这套系统只硬编码标签匹配和关注关系,现在引入了一个语义反馈循环:用户交互行为会被实时汇总成一个interest_embedding向量,直接注入查询。
打开网易新闻 查看精彩图片
关键代码片段用了pgvector的余弦相似度计算:1 - (articles.semantic_embedding <=> :interest_embedding)。这个得分会乘以semantic_similarity_weight,再和传统社交信号、内容质量分、时间衰减混合排序。结果是高度相关的内容可以冒上来,你关注的社区成员发的热门帖也不会被埋没——DEV团队强调的是"平衡"而非单一指标最大化。
打开网易新闻 查看精彩图片
Embedding本身是把文本转成高维数字向量的技术。语义相近的内容在向量空间里距离更近,哪怕用词完全不同。DEV这次升级到了Google新发布的Gemini Embeddings 2,但原文在此处截断,未提及该版本相比前代的具体改进点。
热门跟贴