Logo
Section 1 / 3

问题陈述与评估指标

让我们深入探讨Airbnb租赁搜索排名应用的问题描述及所需指标。

导入

问题陈述与评估指标

让我们深入探讨Airbnb租赁搜索排名应用的问题描述及所需指标。

Airbnb房源搜索排序

1. 问题描述

Airbnb用户经常在特定位置搜索房源。平台不仅要返回相关住宿结果,更重要的是返回那些用户最有可能预订的房源。因此,排序系统的目标非常明确:

将房源按其被预订的可能性进行排序,使可能性更高的房源在搜索结果中排名更靠前。

一种简单粗暴的方法可能是基于关键词匹配或人工设计的评分规则——例如根据查询词与房源描述之间的相似性进行排序。但这种方法在实际应用中效果不佳。文本相似性可能返回“听起来不错”的结果,却未必能转化为真实预订。

相反,我们需要一种数据驱动的方法。如果我们能够估算出用户预订某个房源的概率,就可以按照该概率进行排序。这就引出了核心思路:

训练一个有监督的机器学习模型,通过历史用户会话数据进行学习,预测某个房源是否会被预订。 这本质上是一个二分类任务:预订 vs. 未预订。

为什么选择二分类?

  • 我们的输出是二元的(预订或未预订)。
  • 它在评估排序质量、分析用户行为以及优化收入等下游指标方面具有更大的灵活性。
  • 虽然回归方法(如直接预测预订概率)也可行,但分类模型在平衡误报和漏报时更具控制力——这在高风险排序场景中尤为重要。
...
Airbnb的搜索排序系统

2. 指标设计与要求

指标

选择合适的评估指标与选择算法同样重要。错误的指标可能导致模型优化错误的行为。

我们将指标分为两类:离线指标(训练阶段使用)和在线指标(线上生产环境测量)。

离线指标

  • 归一化折损累计增益(nDCG):nDCG 是排序问题中的标准指标,特别关注结果的位置。它对排在列表顶部的正确预测赋予更高权重——这正是搜索排序所期望的效果。

为何使用 nDCG?

  • 用户很少浏览全部结果,排在第2位的相关结果比排在第10位的价值更高。
  • 相较于基础准确率或AUC,它同时考虑了相关性和位置因素。
  • 相比精确率、召回率等简单的分类指标,它更能反映用户满意度。

DCGp=∑i=1prelilog2(i+1)DCG_{p} = \sum_{i=1}^p {rel_{i} \over log_{2}(i+1)}

nDCGp=DCGpIDCGp nDCG_{p} = {DCG_{p} \over IDCG_{p}}

其中:

  • relᵢ 表示第 i 个位置的结果的相关性得分
  • IDCG 表示理想状态下的 DCG,即所有相关结果都按最优顺序排列时的值

该指标帮助我们优化最相关(可预订)房源在搜索结果顶部的呈现能力。

在线指标

  • 转化率与收入提升:衡量每个用户搜索会话中产生的预订数量。

    conversion_rate=number_of_bookingsnumber_of_search_resultsconversion\_rate = \frac{number\_of\_bookings}{ number\_of\_search\_results}

要求

处理数据不平衡问题

数据集存在严重不平衡:大多数房源并未被预订。模型必须对此类偏差具备鲁棒性。

  • 使用分层采样、类别加权或焦点损失(focal loss),避免模型偏向多数类。
  • 可考虑对未预订样本进行降采样,或采用SMOTE等技术缓解类别不平衡。

按时间划分训练集与验证集

为模拟线上真实情况:

  • 设定一个时间截点;
  • 使用该时间点之前的会话数据作为训练集;
  • 使用之后的会话数据作为验证集。

推理与服务部署考量

  • 延迟要求:50–100ms。搜索排序需快速响应,以避免影响用户体验。

  • 冷启动挑战:新上线的房源缺乏历史数据。可通过混合模型或规则启发式方法补充(例如优先展示图片质量高或价格有竞争力的房源)。

总结

类型目标要求
指标实现较高的归一化折损累计增益(nDCG)
训练能够处理类别不平衡的数据
按时间切分训练集与验证集
推理延迟控制在50ms至100ms之间
具备应对新房源预测不足的能力

广告点击预测

预订模型