从0到1搭建政策推荐系统:政策快报的实践
政策快报平台的核心功能之一是“智能推荐”——把用户可能感兴趣的政策推送到他面前,而不是让他自己去搜。
推荐系统上线第一天,逻辑很简单:用户选了“制造业”,系统就把所有带“制造业”标签的政策推给他。
当时推荐点击率只有12%左右。现在的推荐点击率稳定在38%以上。
从12%到38%,经历了多次迭代。今天复盘推荐系统从0到1的搭建过程,以及几次关键优化的逻辑。
4个关键阶段
阶段一:基于标签的推荐(V1.0)
逻辑:用户注册时选择行业和地区,系统按这些标签匹配政策。
优点:简单直接,技术门槛低,冷启动友好(新用户注册即有推荐)。
缺点:标签太粗,匹配精度有限,用户很快觉得“推的东西跟我关系不大”。
点击率:约12%
阶段二:基于关键词的推荐(V2.0)
逻辑:在标签基础上,增加了关键词设置。用户可以设置3-5个关键词,系统优先推送标题或正文包含这些词的政策。
优点:比纯标签匹配更精准。
缺点:用户不会设关键词(大部分用户注册完就走了),而且关键词匹配方式死板,政策里写的是“专项资金”但用户设的是“补贴”,匹配不上,错过很多机会。
点击率:约18%
阶段三:基于行为的推荐(V3.0)
逻辑:不依赖用户手动设置,而是观察用户行为。用户在平台上点击了哪些政策、搜索了什么词、停留了多久、收藏了什么——这些行为被用来推断用户的真实兴趣。
具体做法:
用户点击一条政策,系统记录该政策的行业标签和关键词,更新用户画像权重
用户搜索一个词,系统记录该词,作为用户兴趣信号
用户收藏一条政策,该政策的相关标签权重加倍
优点:用户不需要主动设置,系统自动学习。行为比问卷更能反映真实需求。
缺点:新用户没有行为数据,冷启动问题突出。
点击率:约28%
阶段四:基于语义的混合推荐(V4.0)
逻辑:针对新用户冷启动问题,注册环节引导用户选择更细粒度的标签(三级行业分类)。对老用户,结合行为数据和政策语义向量,计算用户与政策的匹配度。
具体做法:
新用户:注册时选择三级行业标签+企业规模,生成初始画像
老用户:行为数据+语义向量匹配,持续更新画像
混合排序:相关性得分 × 时效性权重 × 用户行为权重
点击率:约38%
技术架构
text
复制
下载
用户请求 → 召回阶段 → 候选集 → 排序阶段 → 返回结果 召回策略: - 标签匹配召回(行业、地区) - 行为相似召回(同标签用户点击过的政策) - 语义向量召回(用户画像向量 × 政策向量) - 热度召回(近期热门政策兜底) 排序特征: - 相关性得分(标签匹配度、语义相似度) - 时效性得分(发布天数、截止日期) - 行为得分(用户历史点击、收藏权重) - 质量得分(政策热度、用户互动)
效果数据
| 版本 | 核心逻辑 | 点击率 |
|---|---|---|
| V1.0 | 标签匹配 | 12% |
| V2.0 | 关键词匹配 | 18% |
| V3.0 | 行为学习 | 28% |
| V4.0 | 语义混合 | 38% |
几条经验
经验一:从简单开始,逐步迭代。V1.0虽然简陋,但上线就能用,且积累了用户数据为后续优化打基础。如果一开始就想做V4.0,可能半年都上不了线。
经验二:行为比问卷更真实。用户自己选的标签,和实际点击的内容,往往不一致。行为数据比问卷数据更能反映真实需求。
经验三:新用户用规则,老用户用模型。新用户没有行为数据,靠注册信息做规则推荐(冷启动方案)。老用户行为丰富,用模型推荐(个性化方案)。
政策推荐系统的核心目标,不是“用户点得越多越好”,而是“用户找到他需要的政策”。这两个目标有时候是一致的,有时候不一致。点击率是手段,用户留存才是目的。