数据分析案例

KDD 2018 | Airbnb用机器学习实现房屋动态定价(不

2018-10-18  本文已影响26人  老王420

在KDD 2018上,Airbnb的研究人员们发表了一篇名为Customized Regression Model for Airbnb Dynamic Pricing的论文。这篇文章描述了Airbnb使用的动态定价模型,以下是论智对文章的大致介绍。

价格优化的目的是帮助房东制定最优价格。传统定价策略是为大量相同的产品定价,但在Airbnb没有相同的产品,因为平台所提供的房屋都有独一无二的价值和体验感受。这样的独特性就很难估计传统定价策略所需要的需求曲线。

“研究人员所提出的策略模型在Airbnb上应用了一年多的时间。第一代模型刚一使用,网站的预定量就得到大幅提升,采用了这一方法的房东们受益也随之增长。经过多次迭代后,策略模型将进一步改善定价的质量。”

想给Airbnb上所有不同的房间定价是非常有挑战性的,即使我们可以收集同一区域中的同样大小的房间,但是其他因素(例如评分星级)也会影响价格。除此之外,由于不同的季节和区域因素,需求也是随时间波动的。同样,预定的早晚也是影响价格的因素,预定的越晚,房间预订成功的机会就越小,这也会导致需求函数的变化。

为了让房东的受益最大化,Airbnb提出了“Price Tips”和“Smart Pricing”工具。Price Tips可以提供价格日历,根据房东目前的定价,显示该房间每天被预定出去的概率是多少。点击某一天,页面中会显示Airbnb推荐的价格以及其他信息。

Price Tips截图

在Smart Pricing工具中,房东可以设置一个最低值和最高值,之后Airbnb会自动生成不同日期的新价格。

Smart Pricing截图

在理想情况下,我们会估计一个需求曲线F(P), 在给定价格P的情况下估计房间的需求量,之后选择P的值,使P×F(P)的值最大。之前我们已经提到过影响价格的因素有很多,而且,由于Airbnb并不是直接控制房间价格的,而是只能给出“建议价格”,所以想要直接拿不同的定价策略做实验来观察市场反应也是不容易的。

Airbnb最终采用的定价系统有三个要素:

一个二元分类模型,预测某一晚某房间预定的概率。

这些预测之后会被输入到一个定价策略模型中,会对空闲日期提出建议价格。

策略模型会加入其他个性化逻辑,以符合房东的目标、结合特殊事件等等。

定价系统概览

这篇论文的主要目的是定价策略模型,但是我们首先要简单了解下预定概率模型的细节。

预定概率模型

想知道某件房间会有多大概率被预定,这里是用的是Gradient Boosting Machines(GBM),除此之外还有一个针对各个市场训练的模型。对于训练数据的采样率在根据各市场密度的不同有所差别:

“房屋密度高的市场能从地理位置这一因素中获益最多,这里的采样率会高于全局常量的采样率。”

模型在做决策时考虑了三个方面:

页面所列出的各项特征,例如每晚的价格、房间类型、可住人数、房间数量、洗手间数量、房间设施、地理位置、评价、历史入住率、能否立即预定等等。

时间因素,例如季节、日期、可入住时间等等。

供给因素,例如周围是否有相似房源、评价、搜索率等等。

模型在不同价格点预测预定概率,可能会得到一个需求曲线。但是,由于上述的多重影响因素,想得到精确的需求曲线进行价格设置是非常困难的。

“我们试着基于估计的需求曲线,直接应用利润最大化策略,但是在线的A/B测试结果显示这些方法在实际中通常会失败。所以,我们决定找其他的替代方法。”

替代法使用预定概率模型的输出结果作为定价策略模型的输入因素之一。

定价策略模型

首先让我们思考:在缺少最优价的基础上,训练定价策略模型时,应该用什么评估尺度呢?

深思熟虑之后,研究团队确定了两种评估尺度:价格下降查全率(PDR)预定反悔率(BR)。我们曾统计过,某间房间是否在某天被预定出去,以及预定的价格是多少。PDR和BR都能反映出这一点。

假设如果某间房没能以价格P成功预定,那么它也一定不会在比P更高的价格上预订出去。但是如果价格低于P,那么可能有被预定的机会。PDR就表示当实际价格高于模型的建议价格时,房间未被预定的比例。在下面的图表中,PDR为0.6(5晚中有3晚没有被预定出去)。

如果我们只有PDR,那么最终我们训练出的模型最后会把指导价格变为零!如果该房间某天被成功预订,价格为P,并且P≥指导价格,那么这个指导价格就没什么用了。预订反悔率就抓住了这之中的利润。BR按以下方法计算:对于所有被成功预订的日子,取零和预定价格与指导价格之间的百分比之中的最大值。然后从这些值中取中位数。

例如:

BR就是(14,5,6,0,0)的中位数,5%。

现在我们把这些思想合到一个单一的损失函数中,看起来是这样:

给定参数xi,fθ(xi)是输出的建议价格,L是下限函数,U是上限函数。

对于预订出去的日期,下限是预定价格Pi,对于没有预定出去的日子,是c1Pi,其中c1是0到1之间的常数。

对于没有被预订出去的日子,上限是价格日历中的价格Pi。对于预订出去的日子,上限是c2Pi,其中c2是大于1的常数。

当建议价格在上下限之间时,损失是零,否则损失就是建议价格和界限之间的距离。

在论文中,作者提到:

“我们并不用相同的常数表示价格增加和减少,因为我们想让训练系统非对称地学习比率。这样一来,建议价格可以反映需求的敏感度。”

参数θ1和θ2是在Airbnb上400多万个有效房源中训练出的,训练更关注最近的预定行为,从而更好地反映季节信号。

评估

和直接从预定概率模型中的需求估计曲线定价的简单策略相比,定价策略模型显著改善了PDR和BR。

除了定量评估,论文作者还检查了2018年2月8日生成的未来120晚的价格,下图分别是针对日本东京和美国加州Lake Tahoe的房源价格走势:

可以看到,两地房间的价格都在周末有所上升,并且东京在三月末到四月初的房价也相对较高,因为那正是赏樱的好时节。“从这两个案例中,我们看到模型的确能捕捉到时间带来的房价波动”,研究者说。

原文:Customized regression model for Airbnb dynamic pricing

编译:Bing

上一篇下一篇

猜你喜欢

热点阅读