<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>BM25 on Tony老师的博客</title><link>https://blog.tanteng.space/tags/bm25/</link><description>Recent content in BM25 on Tony老师的博客</description><generator>Hugo</generator><language>zh</language><lastBuildDate>Mon, 14 Sep 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://blog.tanteng.space/tags/bm25/index.xml" rel="self" type="application/rss+xml"/><item><title>基于 BM25 与向量检索的标签推荐系统设计</title><link>https://blog.tanteng.space/posts/tag-recommendation-hybrid-retrieval/</link><pubDate>Sat, 14 Dec 2024 00:00:00 +0000</pubDate><guid>https://blog.tanteng.space/posts/tag-recommendation-hybrid-retrieval/</guid><description>&lt;p&gt;一句话先放在前面：&lt;strong&gt;BM25 负责字面命中，向量检索负责意思相近，而标签推荐需要两者同时在场。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;用户画像里写着「MySQL」，内容标签里写着「关系型数据库」，倒排索引里找不到一个共同的词，字面匹配的召回是零。反过来，一个新用户只选了一个「MySQL」，纯向量检索会围绕这一个点向四周扩散，把「跟 MySQL 沾边的所有东西」都推给他——因为它不知道他不感兴趣什么。&lt;/p&gt;
&lt;p&gt;这两个缺口方向相反，而且不是把 embedding 模型换大就能补上的。标签推荐看起来像推荐问题，拆开之后其实是一个标准的检索问题：用户画像是 query，内容是 document，剩下的全是信息检索的老问题。&lt;/p&gt;
&lt;p&gt;下面按这个视角从头推一遍：先说清标签推荐真正在算什么，再把稀疏路和稠密路各自的失效模式拆开，然后讲融合——为什么默认不用加权求和、RRF 的参数该怎么取，最后落到重排、数据链路、评测和容量估算。&lt;/p&gt;</description></item></channel></rss>