直接回答
"喜欢此商品的人也喜欢"的经典实现是基于物品的协同过滤:利用"用户-商品"交互矩阵(购买、点赞、浏览),计算商品两两相似度(同时喜欢 A 和 B 的用户越多越相似),为每个商品预计算 Top-N 相似商品列表,查询时直接读取。工程上拆成离线计算 + 在线读取两层,避免实时计算的高成本。
展开解析
设计分解:数据层收集行为日志(曝光/点击/加购/购买,按强度加权、近期权重高);离线层用 Spark/Flink 定时任务构建交互矩阵计算相似度——简单可用余弦或 Jaccard,规模化常用共现计数加归一化,稀疏场景用内容特征(类目、品牌、embedding)相似度兜底;结果写入 Redis(key 为商品 ID,value 为有序列表)。在线层读缓存,合并业务规则:过滤已购、无库存,类目打散保证多样性,按需插入运营位。质量保障:相似度要惩罚热门商品(否则都指向爆款,可用 TF-IDF 式加权);用 A/B 测试验证点击/转化提升。演进方向是向量召回(embedding + ANN 索引)与多路召回+排序模型。追问:新品/新用户冷启动、实时行为如何快速反映进推荐(近线流式更新)。