教你如何用神经网络和机器学习进行动态定价

教你如何用神经网络和机器学习进行动态定价

该智能系统被Correlation One以及Softbank评为数据科学项目top3的项目之一,可提高电子交易销售额及利润。

动态定价 图片来源   经允许后上传

本项目的主要目的是用于开发动态定价系统,通过适应供需水平,提高电子交易利润。

该定价系统应该能及时地操纵产品的最终价格,以可扩展的方式对报价和需求波动做出反应。

首先,一个模拟环境被创建,用来模拟几个变量下订单水平的波动。然后,将该模拟环境用于训练深度强化学习智能体(Deep Reinforcement Learning),选择最佳定价策略,实现利润最大化。如果你想了解更多数据分析相关内容,可以阅读以下这些文章:
Machine Learning知识点:机器学习里的聚类分析技巧
三个月如何搞定机器学习的数学原理?
研究了2000+笔记本,我们总结了最适合机器学习、数据科学和深度学习的电脑
评估机器学习算法的指标

数据准备和系统架构

动态定价系统架构由三个基本部分组成,分别为,在 Amazon RDS 主机上的PostgreSQL数据库,Flask API ,以及在 Amazon EC2 主机上的Dash 服务器端口。

Flask API 是一个 Python RESTful 框架,用于处理 HTTP 请求。它主要有两个用途:应用强化学习算法,和提供数据访问权。它会用经过训练的 PyTorch 模型处理数据,并将结果保存在数据库中,同时提供 JSON 格式数据的 HTTP 访问。

系统架构 图片来源:作者

在利用电子交易数据进行分析和建模之前,需要进行大范围的清理程序。这样做的主要目标,是将数据集合为时间序列的格式。针对我们收集的既定产品:

  • 竞争对手的价格(如果有)
  • 平均价格
  • 平均运费
  • 订单数量
  • 产品类型
  • 产品组

在抽取转化装载(ETL)过程中,需做出调整,以确保数据质量。例如,在分析竞争对手的价格时,我们注意到,数据集包含一些在短时间内售价为$0.00 的产品。由于该产品不太可能免费提供,因此从数据集中删除了此类记录。

从保留的数据中,删除了由人工错误引起的异常值(例如:售价 $199.99的产品在宣传页上的价格为$ 19.99 )。这是通过排除那些超出产品平均价格正负三倍价格标准差范围的值来实现的。

将产品进行聚类

产品在单独建模过程中存在许多障碍。制造产品的初期,历史数据不足以将其建模为时间序列。而且,每当产品供应出现中断时,另一个缺点也就随之出现。

另一方面,为所有组合创建同样的模型,只会导致模型质量下降,因为这种方法混合了特征差别很大的产品。

通过使用不同的方法,我们建立出了一种模型,能适合所有产品(one-model-fits-all)以及一种模型产品的权衡(one-model-by-product trade-off)问题。根据产品类型、组别和价格,我们对产品进行分类并收集。
图片

聚类演示  图片来源:Source  经许可后转载

对于每个产品组+类型的组合,根据四分位数范围,我们创建了 4 类价格范围(A、B、C 或 D)

通过采用这种分类方法,可以减少数据的稀疏性(sparsity),并且可以对时间序列较短的新产品按同类产品定价。

使用强化学习

使用真实场景来训练强化学习解决方案,通常需要大量时间,并且,由于智能体在项目开始时没有经验,可能会做出错误的决定,最终可能导致意外损失。

为了避免这些问题,我们使用各种模型创建了一个环境模拟装置,其中包括线性回归、决策树、随机树模型、支持向量机、eXtreme Gradient Boost和 Facebook 的 Prophet。

我们最终选择了线性回归环境模拟装置,因为它能够更好的展示该过程。然后,我们应用了一种强化学习方法,名叫Deep Q Learning。

强化学习循环 图片来源:Source

简而言之,一个软件智能体会根据当下环境的状态作出反应。之后,该智能体将获得奖励,并对该反应评分。通过不停地试验反应和评估奖励,智能体在经过训练后,做出最正确的决定。

在电子交易动态定价问题中,我们可以将这些概念映射到:

  • 环境:指交易市场(例如亚马逊网站)
  • 状态:即市场上的最低价格、库存水平、当前日期特征(星期几、当前月份和年份、假期等)、关键位置的运输价值等。
  • 智能体:动态定价算法
  • 反应:提高或降低价格,或提供免费送货
  • 奖励:智能体决策产生的总利润

具有 4 个隐藏层的全连接神经网络被投入使用,每个隐藏层有 30 个节点。输入层会接收状态信息(电子商务的产品价格、日期参数、库存、运输价值、竞争对手的价格),而输出层的反应大概有十种:通过将商品成本乘以 2.5 的增量来设置零售价格百分点。

这样,智能体就永远不会亏本销售产品,留下的任务就变成了选择需求价格之间的最佳平衡以优化利润。

总结

为了比较结果,在模拟环境的同时,我们也使用了原有的电子交易定价策略和受过训练的智能体定价策略。

通过分析财务结算,强化学习智能体的性能比基准定价策略高 3.48%。这种利润增加可以提高商家对电子交易平台的满意度,从而提高参与率。

商家的定价工作流程也可能会有所改进,因为人工手动操作价格会非常耗时。

动态定价效果  图片由作者提供

这种方法还可以进一步用于许多其他行业,如旅游业、交通运输和农业。

希望大家喜欢这篇文章,如果有任何疑问,请与我们联系。感谢阅读!

你还可以订阅我们的YouTube频道,观看大量数据科学相关公开课:https://www.youtube.com/channel/UCa8NLpvi70mHVsW4J_x9OeQ;在LinkedIn上关注我们,扩展你的人际网络!https://www.linkedin.com/company/dataapplab/

原文作者:Reslley Gabriel
翻译作者:Lia
美工编辑:过儿
校对审稿:Jiawei Tong
原文链接:https://towardsdatascience.com/dynamic-pricing-using-reinforcement-learning-and-neural-networks-cc3abe374bf5