本文是以airbnb为背景,设计的房屋动态定价方法。本文采用两阶段的方式对定价进行预测,总体方案流程和上一篇文章中APP-LM有点类似,但是细节上也有差别。本文为kdd'18的论文,上一篇为kdd'19的论文,上一篇论文也就更进一步的提出了端到端的方法,如果没看过上一篇的可以看一下上一篇,因为关于损失函数中的一些含义介绍有所省略,因为在前一篇介绍过了。
上一篇:推荐系统(十四)——kdd'19动态定价方法(APP-LM,APP-DES,DNN-CL)
本文所提模型主要包括三个部分:
可以发现这里的前两部分其实和APP-LM有点相似。
需求估计难点
定价难点
算法提供的动态定价建议只会被一部分商家接受,其他商家仍然会按照自己的想法来定价,并且他们的定价会偏高。因此,通过这些数据预测出来的价格可能会超出原始设定的价格范围。(PS:正如上一篇文章所述,虽然是动态定价,但是为了防止定价过高过低,会有一个固定的范围限制)
定价的总体流程如上图所示,先预测预定概率,然后采用定价策略模型进行定价,然后进行个性化。
该二分类模型文中采用了GBM模型(当然想上一篇文章的DNN等模型也可以尝试),使用了房屋的本身特征(可住几人,房间类型等)、时间特征(季节性、距离晚上的时间等)、辅助特征(房屋周围环境,搜索率等)。这些特征是在airbnb场景下用到的,可以参考,不过具体问题还是具体分析,这里就不过多陈述了。
除了设计模型之外,本文还在采样上进行了改进,文中说的是房屋密度高的地方有地理优势,因此在高密度的地方采样率也高。
想要得到精确的价格-需求曲线是很难的,主要存在以下挑战:数据稀疏、样本的唯一性、部分特征之间存在依赖关系。因此本文采用将预测的概率作为价格预测模型的输入的一部分。
训练数据
中N表示样本数,xi是特征,yi表示是否预定,是标签。
上式为总体的损失函数,+表示max(0,·),上图为损失函数对应的上下界的直线。虽然无法预测到准确的价格用于构建损失函数,但是可以有一个范围。上下界的函数如下所示
这里的上下界函数可以发现和上一篇文章的是类似的,因此这里不再过多赘述他们表达的含义,有需要的小伙伴可以看一下上一篇中的这部分内容,也可以结合上一篇文章中的表格一起看,会更加容易理解。其实就是要让价格在一个范围内,大于或小于都会产生损失。定价模型基于以下三个假设:
定价模型为:
P是calendar price(可以用多种方式定义,例如历史价格的均值等),q是预测概率,D是额外的需求信号得到的需求分数(例如相似的房屋聚类为一个簇)。
控制价格的涨跌,
当建议价格与实际价格相同时,以适当调节当参数。这两个参数保证
是单调的,随着概率的增大而增大。
通过将簇级别的需求信号调整到常见的高斯尺度上,将需求分数 D 归一化。D 的值越高,对应集群中的需求就越高。
,这两个参数控制曲线的弯度。如图所示,价格增加和下跌的曲线是不一样的,非对称曲线。通过这种方式,建议的价格可以更好的反应需求敏感度。
训练方式和参数设置等就不在这展开了。