推荐系统通常分为召回和排序两个阶段。召回阶段从海量物品中快速筛选出几百个候选,强调速度和覆盖率;排序阶段则对候选做精细打分,强调准确性和特征丰富度。两者目标不同,工程约束也不同。
召回模型面对的候选集往往是百万甚至千万级,所以常用双塔结构、向量检索、倒排索引等手段,把用户和物品映射到低维空间做近似最近邻搜索,牺牲部分精度换取响应速度。
排序模型面对的候选只有几百个,可以承受更复杂的特征交叉和更深的网络结构。它通常使用用户特征、物品特征、上下文特征和交叉特征,输出点击率或转化率预估,再按业务目标加权排序。
两阶段的分工不是绝对的。有些系统会增加粗排层做过渡,也有些系统尝试端到端学习。但核心思想一致:先用低成本方法缩小搜索空间,再用高成本模型精细决策。
理解这个分层,有助于排查问题。召回不足会导致好物品根本进不了排序,表现为天花板明显;排序不佳则是在候选不错的情况下排错了顺序,两者优化手段完全不同。