logo

美团搜索粗排优化的探索与实践

作者:狼烟四起2025.09.26 12:22浏览量:0

简介:本文深入探讨美团搜索粗排阶段的优化策略,结合业务场景与技术实现,系统阐述特征工程、模型结构、训练策略及评估体系的创新方法,为大规模电商搜索场景的粗排优化提供实践参考。

一、粗排阶段的核心价值与挑战

在美团搜索的”召回-粗排-精排-重排”四层架构中,粗排阶段承担着在百万级候选商品中筛选出千级优质结果的职责。相较于召回阶段追求高覆盖率,粗排需要兼顾效率与效果,在毫秒级响应时间内完成复杂特征计算和模型推理。
美团日均搜索请求量超亿次,用户行为呈现明显的场景化特征:餐饮场景下用户更关注配送时效,酒店场景下重视价格敏感度,丽人场景则关注服务评价。这种多模态需求导致传统粗排模型面临三大挑战:

  1. 特征多样性不足:传统ID类特征难以捕捉动态业务信息
  2. 模型表达能力受限:简单DNN结构无法处理复杂交互
  3. 训练数据偏差:曝光样本与真实需求存在显著差异

二、特征体系的重构与创新

1. 多维度特征融合

我们构建了包含用户画像、上下文、商品属性、实时行为的四维特征体系。以餐饮场景为例:

  1. # 用户画像特征示例
  2. user_features = {
  3. 'long_term': ['price_sensitivity', 'diet_preference'],
  4. 'short_term': ['recent_click_categories', 'last_7d_orders'],
  5. 'realtime': ['current_location', 'time_of_day']
  6. }

通过时间衰减因子(λ=0.9)对历史行为进行加权处理,有效捕捉用户兴趣的动态变化。

2. 动态特征计算

针对配送时效这类关键特征,开发了实时计算引擎:

  1. // 配送时效动态计算示例
  2. public class DeliveryTimeCalculator {
  3. public double calculate(Location userLoc, List<Merchant> merchants) {
  4. return merchants.stream()
  5. .mapToDouble(m -> estimateTime(userLoc, m.getLocation()))
  6. .min()
  7. .orElse(DEFAULT_TIME);
  8. }
  9. private double estimateTime(Location a, Location b) {
  10. // 调用路径规划API获取预估时间
  11. return pathPlanningService.estimate(a, b);
  12. }
  13. }

该引擎通过缓存机制将平均响应时间控制在15ms以内。

3. 负样本增强策略

为解决数据偏差问题,设计了基于业务规则的负样本挖掘方法:

  1. -- 曝光未点击样本增强
  2. WITH candidate_negatives AS (
  3. SELECT item_id
  4. FROM search_logs
  5. WHERE query = '火锅'
  6. AND曝光时间 BETWEEN '2023-01-01' AND '2023-01-07'
  7. EXCEPT
  8. SELECT item_id
  9. FROM click_logs
  10. WHERE query = '火锅'
  11. AND点击时间 BETWEEN '2023-01-01' AND '2023-01-07'
  12. ),
  13. filtered_negatives AS (
  14. SELECT item_id
  15. FROM candidate_negatives
  16. JOIN item_attributes ON candidate_negatives.item_id = item_attributes.item_id
  17. WHERE item_attributes.price_level = '中档' -- 业务规则过滤
  18. )

通过分层抽样确保负样本与正样本在关键维度上的分布一致性。

三、模型结构的演进路径

1. 从Wide&Deep到Multi-task Learning

初期采用的Wide&Deep模型在餐饮场景取得12%的CTR提升,但面临两个问题:

  • 不同业务场景的特征重要性差异显著
  • 多个优化目标(CTR/CVR/GMV)存在冲突

为此升级为多任务学习框架:

  1. class MultiTaskModel(tf.keras.Model):
  2. def __init__(self, shared_layers, task_towers):
  3. super().__init__()
  4. self.shared_layers = shared_layers # 共享底层特征
  5. self.task_towers = task_towers # 任务专用网络
  6. def call(self, inputs):
  7. shared_repr = self.shared_layers(inputs)
  8. return {task: tower(shared_repr) for task, tower in self.task_towers.items()}

通过动态权重调整机制,使模型在不同场景下自动优化特征组合方式。

2. 实时特征交互建模

引入Self-Attention机制捕捉特征间的复杂关系:

  1. class FeatureInteraction(tf.keras.layers.Layer):
  2. def __init__(self, num_heads=8):
  3. super().__init__()
  4. self.multihead = tf.keras.layers.MultiHeadAttention(num_heads=num_heads)
  5. def call(self, features):
  6. # 特征维度对齐处理
  7. aligned = tf.concat([tf.expand_dims(f, -1) for f in features], axis=-1)
  8. return self.multihead(aligned, aligned)

在酒店场景的测试中,该结构使长尾query的排序准确率提升18%。

四、工程优化实践

1. 模型服务架构升级

采用分层服务架构:

  1. 客户端 边缘节点(特征预处理) 区域中心(模型推理) 中心集群(模型更新)

通过以下技术实现QPS提升3倍:

  • 特征计算异步化
  • 模型量化(FP32→FP16)
  • 请求批处理(Batch Size=128)

2. 持续学习系统

构建了基于强化学习的模型更新机制:

  1. class RLUpdater:
  2. def __init__(self, model, reward_func):
  3. self.model = model
  4. self.reward_func = reward_func # 包含CTR、CVR、GMV等多指标
  5. def update(self, new_data):
  6. # 计算当前策略的回报
  7. current_reward = self.reward_func(self.model.predict(new_data))
  8. # 生成候选策略
  9. candidates = self.generate_candidates()
  10. # 选择最优更新
  11. best_candidate = max(candidates, key=lambda c: self.reward_func(c.predict(new_data)))
  12. self.model.set_weights(best_candidate.get_weights())

该系统使模型适应业务变化的速度提升5倍。

五、效果评估与业务影响

1. 评估体系构建

设计了包含离线指标、在线AB测试、业务影响的立体评估框架:

  • 离线指标:AUC、NDCG、Precision@K
  • 在线指标:CTR、CVR、GMV、用户停留时长
  • 业务指标:商家曝光公平性、长尾query覆盖率

2. 实际业务效果

经过6个月的持续优化,核心指标取得显著提升:
| 指标 | 优化前 | 优化后 | 提升幅度 |
|———————|————|————|—————|
| 粗排过滤率 | 99.2% | 98.5% | -0.7% |
| 精排输入质量 | 0.72 | 0.85 | +18% |
| 用户转化率 | 12.3% | 14.7% | +19.5% |
| 商家满意度 | 3.8 | 4.2 | +10.5% |

六、未来优化方向

  1. 实时特征增强:引入用户实时行为序列建模
  2. 多模态融合:结合图片、文本等非结构化信息
  3. 联邦学习应用:在保护数据隐私前提下提升模型效果
  4. 强化学习排序:构建长期价值最优的排序策略

结语:美团搜索粗排优化是一个持续迭代的过程,需要平衡技术先进性与业务实用性。通过特征体系重构、模型结构创新和工程优化,我们构建了适应超大规模电商场景的粗排解决方案。未来将继续深化技术探索,为用户提供更精准的搜索体验,为商家创造更大的商业价值。

相关文章推荐

发表评论

活动