前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >KDD'18「airbnb」房屋动态定价经典方法

KDD'18「airbnb」房屋动态定价经典方法

作者头像
秋枫学习笔记
发布2022-09-19 11:50:29
6650
发布2022-09-19 11:50:29
举报
文章被收录于专栏:秋枫学习笔记秋枫学习笔记

背景

本文是以airbnb为背景,设计的房屋动态定价方法。本文采用两阶段的方式对定价进行预测,总体方案流程和上一篇文章中APP-LM有点类似,但是细节上也有差别。本文为kdd'18的论文,上一篇为kdd'19的论文,上一篇论文也就更进一步的提出了端到端的方法,如果没看过上一篇的可以看一下上一篇,因为关于损失函数中的一些含义介绍有所省略,因为在前一篇介绍过了。

上一篇:推荐系统(十四)——kdd'19动态定价方法(APP-LM,APP-DES,DNN-CL)

本文所提模型主要包括三个部分:

  • 一个二分类模型,用于预测房屋被预定的概率
  • 一个回归模型,用于结合各种特征以及定制的损失函数进行定价预测
  • 一个辅助个性化的模块,和回归模型结合预测更好的价格

可以发现这里的前两部分其实和APP-LM有点相似。

难点

需求估计难点

  • 需求预估:通常做动态定价时,使得P*F(P)最大的P就是所求定价,F(P)为需求函数。其实这里的需求函数就是对应的二分类模型,他的好坏影响着最终结果。但是文中场景中的房屋都是异质的,不能直接作出需求曲线,因此采用机器学习的方法结合其他特征进行学习得到。
  • 时间变化:房屋的预定会随着时间有季节性的变化,并且随着一些特殊事件的发生也会引起房屋预定的较大变化。
  • 供给变化:不像旅馆,所有房屋都是差不多的,是同质的,airbnb上的房屋是异质的,周围环境等因素都不一样,因此需要考虑在内。并且评分,周围房源也都要考虑进去。

定价难点

算法提供的动态定价建议只会被一部分商家接受,其他商家仍然会按照自己的想法来定价,并且他们的定价会偏高。因此,通过这些数据预测出来的价格可能会超出原始设定的价格范围。(PS:正如上一篇文章所述,虽然是动态定价,但是为了防止定价过高过低,会有一个固定的范围限制)

方法

定价的总体流程如上图所示,先预测预定概率,然后采用定价策略模型进行定价,然后进行个性化。

预定概率预测模型

该二分类模型文中采用了GBM模型(当然想上一篇文章的DNN等模型也可以尝试),使用了房屋的本身特征(可住几人,房间类型等)、时间特征(季节性、距离晚上的时间等)、辅助特征(房屋周围环境,搜索率等)。这些特征是在airbnb场景下用到的,可以参考,不过具体问题还是具体分析,这里就不过多陈述了。

除了设计模型之外,本文还在采样上进行了改进,文中说的是房屋密度高的地方有地理优势,因此在高密度的地方采样率也高。

想要得到精确的价格-需求曲线是很难的,主要存在以下挑战:数据稀疏、样本的唯一性、部分特征之间存在依赖关系。因此本文采用将预测的概率作为价格预测模型的输入的一部分。

定价策略模型

训练数据

\{x_i,y_i\}_{i=1}^N

中N表示样本数,xi是特征,yi表示是否预定,是标签。

\mathcal{L}=\underset{\theta}{\arg \min } \sum_{i=1}^{N}\left(L\left(P_{i}, y_{i}\right)-f_{\theta}\left(x_{i}\right)\right)^{+}+\left(f_{\theta}\left(x_{i}\right)-U\left(P_{i}, y_{i}\right)\right)^{+}

上式为总体的损失函数,+表示max(0,·),上图为损失函数对应的上下界的直线。虽然无法预测到准确的价格用于构建损失函数,但是可以有一个范围。上下界的函数如下所示

L\left(P_{i}, y_{i}\right)=y_{i} \cdot P_{i}+\left(1-y_{i}\right) \cdot c_{1} P_{i}
U\left(P_{i}, y_{i}\right)=\left(1-y_{i}\right) \cdot P_{i}+y_{i} \cdot c_{2} P_{i}

这里的上下界函数可以发现和上一篇文章的是类似的,因此这里不再过多赘述他们表达的含义,有需要的小伙伴可以看一下上一篇中的这部分内容,也可以结合上一篇文章中的表格一起看,会更加容易理解。其实就是要让价格在一个范围内,大于或小于都会产生损失。定价模型基于以下三个假设:

  • 对于同一个房子,建议价格与当前价格的预订概率呈正相关。预定概率高的可以涨点价
  • 动态定价的价格以房东通常设定的最具代表性的价格为中心,具有可学习的增加/减少幅度,因此这里说明模型预测的价格是基于原有价格的。
  • 预订概率模型未完全捕获的其他需求信号,应该将这些信号融入模型中

定价模型为:

P_{sug}=P*V
V=\left\{\begin{array}{ll} 1+\theta_{1}\left(q^{\varphi_{H}^{-q D}}-\theta_{2}\right) & \text { if } D>0 \\ 1+\theta_{1}\left(q^{\varphi_{L}^{-(1-q) D}}-\theta_{2}\right) & \text { if } D \leq 0 \end{array}\right.

P是calendar price(可以用多种方式定义,例如历史价格的均值等),q是预测概率,D是额外的需求信号得到的需求分数(例如相似的房屋聚类为一个簇)。

\theta_1

控制价格的涨跌,

\theta_2

当建议价格与实际价格相同时,以适当调节当参数。这两个参数保证

P_{sug}

是单调的,随着概率的增大而增大。

通过将簇级别的需求信号调整到常见的高斯尺度上,将需求分数 D 归一化。D 的值越高,对应集群中的需求就越高。

1<\varphi_L<\varphi_H<2

,这两个参数控制曲线的弯度。如图所示,价格增加和下跌的曲线是不一样的,非对称曲线。通过这种方式,建议的价格可以更好的反应需求敏感度。

训练方式和参数设置等就不在这展开了。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-10-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 秋枫学习笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景
    • 难点
    • 方法
      • 预定概率预测模型
        • 定价策略模型
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档