一、算法目标与业务场景
1. 核心目标
- 提升用户购买转化率(如加购率、下单率)
- 增加客单价(通过交叉推荐高毛利商品)
- 减少生鲜损耗(通过精准预测需求,优化库存)
- 增强用户粘性(个性化推荐提升复购率)
2. 典型场景
- 首页推荐:基于用户历史行为、实时兴趣推荐商品
- 购物车页推荐:推荐互补商品(如买了牛肉推荐洋葱)
- 搜索后推荐:对搜索未命中商品的用户推荐相似品
- 促销活动推荐:结合用户偏好推送限时折扣商品
二、数据层构建
1. 用户画像数据
- 基础属性:年龄、性别、地域、家庭结构(如是否有小孩)
- 行为数据:浏览、加购、下单、退货、评价记录
- 偏好标签:饮食偏好(如素食、低糖)、价格敏感度、品牌偏好
- 实时行为:当前会话的浏览路径、停留时长、点击热区
2. 商品数据
- 静态属性:品类、品牌、规格、价格、产地、保质期
- 动态属性:库存状态、促销活动、销量趋势、评价评分
- 关联关系:替代品(如进口苹果 vs 国产苹果)、互补品(如牛奶 vs 面包)
3. 上下文数据
- 时间维度:工作日/周末、用餐时段(如晚餐前推荐半成品菜)
- 地理位置:根据收货地址推荐本地时令生鲜(如江南地区推荐大闸蟹)
- 天气数据:雨天推荐火锅食材,高温天推荐凉拌菜配料
三、算法模型设计
1. 召回阶段(Candidate Generation)
- 协同过滤(CF)
- 用户协同过滤:找到相似用户(如都购买过有机蔬菜)的购买列表
- 商品协同过滤:推荐与用户历史购买商品相似的商品(如买了三文鱼推荐挪威鳕鱼)
- 优化点:结合生鲜时效性,过滤掉已售罄或保质期临近的商品
- 基于内容的推荐
- 利用商品标签(如“低脂”“儿童辅食”)和用户偏好匹配
- 示例:用户常买“减脂餐”,推荐高蛋白低卡食材(鸡胸肉、西兰花)
- 实时兴趣召回
- 通过用户当前会话行为(如浏览“海鲜”品类)触发实时推荐
- 结合LBS数据推荐附近仓库有货的商品
- 热门与趋势召回
- 区域性热销商品(如某小区近期大量购买车厘子)
- 季节性商品(如夏季推荐西瓜,冬季推荐砂锅)
2. 排序阶段(Ranking)
- 多目标排序模型
- 同时优化点击率(CTR)、转化率(CVR)、客单价、毛利率等指标
- 使用Wide & Deep、DeepFM等模型融合特征
- 关键特征
- 用户侧:历史购买频次、价格敏感度、退货率
- 商品侧:库存深度、促销力度、损耗率预测
- 上下文侧:时间、天气、配送时效
- 业务规则干预
- 强制露出新品、清仓商品或高毛利商品
- 动态调整排序权重(如促销期优先展示折扣商品)
3. 重排阶段(Re-ranking)
- 多样性控制:避免推荐过于相似的商品(如连续推荐多种苹果)
- 业务约束:确保推荐列表包含必需品类(如蔬菜、肉类)
- 实时反馈:根据用户即时行为(如快速滑动跳过某商品)调整后续推荐
四、技术实现要点
1. 实时计算架构
- 使用Flink/Spark Streaming处理用户实时行为数据
- 通过Redis缓存用户画像和商品特征,支持毫秒级响应
2. 冷启动解决方案
- 新用户:基于注册信息(如家庭人数)或地理位置推荐通用套餐
- 新商品:利用商品标签匹配相似老品的用户群体
3. AB测试与优化
- 分流测试不同算法策略(如协同过滤 vs 深度学习模型)
- 监控核心指标:CTR、转化率、GMV、退货率
五、生鲜行业特殊优化
1. 时效性推荐
- 优先推荐保质期长的商品(如根茎类蔬菜)给临时用户
- 对预约配送用户推荐需提前准备的食材(如火锅底料)
2. 损耗控制
- 结合库存预测模型,推荐临期商品给价格敏感用户
- 动态调整推荐权重(如某仓库草莓剩余量多时加大曝光)
3. 供应链协同
- 根据区域销售预测调整推荐策略(如某地区预估需求激增时提前备货)
六、案例示例
- 场景:用户A历史常买“进口牛排”,周末下午浏览“西餐”关键词
- 推荐逻辑:
1. 召回:协同过滤推荐“澳洲谷饲牛排”“黑胡椒酱”
2. 排序:结合促销活动(黑胡椒酱买一送一)提升排名
3. 重排:插入“红酒”作为互补品,提升客单价
- 结果:用户加购牛排+酱料+红酒,客单价提升40%
七、挑战与应对
- 数据稀疏性:生鲜用户购买频次高但品类集中,需通过图神经网络挖掘潜在关联
- 实时性要求:用户从浏览到下单决策链路短,需支持毫秒级响应
- 动态定价:推荐时需实时获取商品价格,避免展示已涨价商品
通过上述框架,叮咚买菜可构建一个兼顾个性化、实时性和业务目标的推荐系统,在提升用户体验的同时优化供应链效率。