Dong Guo's Blog

我在滴滴遇到的技术挑战

| Comments

加入滴滴打车3个半月,感觉遇到和解决的技术问题超过之前1年的。写在这里给大家分享。

滴滴这边负责所有策略算法设计的是“策略组”,大概有20几个员工。由于滴滴的业务线越来越多(出租车,专车,快车,顺风车拼车,大巴),项目上线时间紧,没有时间对策略算法做最好的设计和优化。于是,新成立了一个通用模型组,目标是抽取出不同业务线的共同点,在一个更高的角度设计更好的策略算法,特别是提供通用的大规模机器学习支持。我是这个team第一个员工。

订单分配:

滴滴一个技术重点是订单分配,全国每天有几百万的乘客通过滴滴叫车出行,有近百万司机接滴滴的订单,如何将订单分配给司机使得更多的人更快地打到车?至少有如下问题需要考虑:

  1. 从大的层面,如何设计一套分配策略,能够保证目标最大?
  2. 从小的层面,分配订单时应该考虑到哪些因素?(距离?是否顺路?司机习惯偏好?天气?供求关系) 这些因素如何组合?
  3. 如何在更长的时间维度上做更优的分配?(比如,当前时刻将乘客A分给司机B是最优的,但几秒之后司机C出现了,司机C离乘客A要近得多)
  4. 拼车更环保也能帮乘客省钱,如何在订单分配中让尽可能多的人在保证体验的同时拼上车?TRB中有非常多的文献
  5. 乘客加价如何影响订单分配?
  6. 我们应该学习Uber的一些策略吗?(比如播单不告诉司机乘客的目的地)

在创业初期,可以用规则快速简单地实现,现在滴滴已经初步有了一套理论上保证收益的分配策略,需要我们进一步去优化效果和效率。

透露一下,在整体策略中,有一个部分是涉及到大规模机器学习:样本是几十亿级别,特征是亿级别(这是我进来的第一个项目)

动态调价:

设想在周五的傍晚,下班高峰,又开始下大雨。在国贸商圈有1000个用户通过滴滴叫车,而附近只有100辆车。如何做订单分配?应该把有限的车给谁?

首先,我们需要定义一个目标:动态调价的目的是什么?最大化成交量?最大化流水?最大化(愿加价)乘客打车的成功率?还是这几个目标的组合最合理?

选定目标之后,每个乘客应该加多少钱?一个优质订单是不是应该少加点?

滴米:

为了促进订单成交,除了给司机补贴和要求乘客加价,是不是还有别的激励方案?

于是滴滴牛逼的PM们推出了滴米这个牛逼的产品。滴米是一种虚拟货币,对于优质订单,一堆司机挤破头来抢,我们就扣他们虚拟货币,对于没人要的订单,我们就奖励滴米。这样就调节了优质劣质订单冰火两重天的不和谐局面。关键是,乘客和滴滴不用花一分钱!

产品很牛逼,策略上如何支持?一个订单发出前,如何确定其是扣滴米还是奖励滴米?扣多少奖多少?每个司机一样吗?整个策略会导致通货膨胀或者紧缩吗?

到达时间预估

预估司机从A点到B点的时间消耗,对滴滴挺重要。如果准确地预估?基于哪些数据和因素?这是一个机器学习问题吗?有更巧妙的预估方法吗?

工作感受

说了来滴滴3各月参与和了解的几个项目,我觉得都非常有意思,也非常有意义。说下来之后的几点体验:

第一,最大的体会是中国互联网行业,特别是滴滴,生机勃勃,有太多有挑战的事情等着做。产品和策略迭代非常快,基本上每天线上的策略设计和架构都会有一次优化上线,你每次改动就会影响每天几百万人的出行体验。

第二,相比我之前的工作,在滴滴工作会和不同岗位的同学紧密合作,每天和靠谱的策略组小伙伴一起做策略设计和讨论;和90后PM mm们讨论进度和策略设计;和QA团队合作测试,保证上线风险可控;和OP同学配合上线;

第三,滴滴的招聘质量提升非常快,3个月前我刚入职,周边同学大概还是百度同学的平均水平,现在我参与的面试,发的offer的质量基本和hulu差不多了。

最后,昨天滴滴大巴上线了,现在可供出行的产品线有出租车,专车,快车,顺风车,大巴。欢迎加入滴滴,在滴滴最美好的阶段,和牛逼的人做牛逼的事情,一起改变中国人的出行体验。有兴趣的联系我: guodong@diditaxi.com.cn

Comments