滴滴章文嵩将派单问题与 AlphaGo 相比较,被怼「不懂围棋」
雷锋网 (公众号:雷锋网) AI 科技评论按,日前,滴滴副总裁章文嵩的一段演讲片段掀起了一波吐槽滴滴的高潮。
他的原文如下:
「所以说,我们这个问题的复杂度,比下围棋要复杂一百倍以上,就比 AlphaGo 面临的问题复杂一百倍,因为我们知道一天有 86400 秒,如果除以两秒钟撮合一次,我们的步数我们要考虑 43200 步,我们知道下围棋,格子里面只有 19 乘 19,最多 361 步,而且都有确定性的解,是赢,还是输,还是平局。那我们实际上最优解是怎么样?都是目前我们在不断迭代,所以这个问题复杂度,比下围棋复杂多了,所以这可能是跟大家想象得不一样,滴滴是真正背后是拿很多科技的手段在解决问题……」
这段话核心观点如下——滴滴所面临的问题比 AlphaGo 要复杂得多。
然而很不幸,雷锋网 AI 科技评论看到,微博上某些媒体将标题引申为:【滴滴派送体验不好?滴滴副总裁:滴滴的算法比 AlphaGo 复杂很多倍】
当然,被有意误导之后,他第一时间发表微博表示:「这标题明显误导。我是表达派单问题的复杂度,搜索空间是巨大的,并没有对比滴滴算法和 AlphaGo 算法,实际上我们也使用增强学习算法。」
但是事情已经发生,出现了很多(让人觉得标题没常识的)新闻:
嗯,对于算法,章文嵩根本就没有进行比较(摊手)。
值得注意的一点是,这些新闻都围绕棋圣聂卫平展开。
据媒体报道,在江苏姜堰观战世界女子围棋擂台赛期间,心直口快的聂卫平听说了章文嵩的言论,忍不住反问:
「我就问一句,围棋有 361 个格子,你知道这其中的变化量是多少吗?……中国围棋协会主席林建超在担任总参办公厅主任时组织力量进行研究,得出的结论是围棋变化是 10 的 808 次方。如果围棋的算法比滴滴都简单,何须拥有巨大资金和技术支撑的 AlphaGo 团队出马,一个小学生就足够研究透彻了!」
棋圣在这里高冷地表示,我们围棋并不简单。当然,他的这番言论中也出现了一个小 bug——「如果围棋的算法比滴滴都简单」,事实上章文嵩在演讲中并没有将两者的算法进行比较。
随后,章文嵩发文详细说明了滴滴派单问题的复杂性:
在围棋里,每一步落子都会影响棋局变化。在 19*19 的棋盘上,最多对弈 361 步,若不考虑棋盘的对称性,围棋的变化是 361 的阶乘,约 10 的 768 次方...,这已经是一个惊人的量。
滴滴派单问题是极为复杂的时空调度问题,一天有几千万乘客在不同的时空中发出需求,也有大几百万司机在不同的时空出现,每一次不同的派单都会影响不同的时空里供需分布,乘客和司机对派单响应是动态的,交通路况也不断地变化,优化目标也挺难刻画的,不光考虑全局的需求满足率,还得考虑人们心目中对服务的感觉等约束,把服务确定性描述清楚就不容易,是个开放的问题。若要跟围棋对比,我们简单抽象这个问题,一天完成 2500 万以上的订单,每 2 秒的一次撮合完成几百到上千的派单,一次撮合本身的计算复杂度非常高,可载客的车辆数和需求订单数远远大于派单数,组合的空间非常大 10 万以上,每 2 秒撮合都会影响到未来的时空上供需分布,就像下棋每一步落子都会影响棋局变化,一天共撮合 43200 次,时空的变化是(10 万)43200 次方的量级。滴滴也用强化学习算法来解这个问题,不断迭代和改进。
围棋的规则是确定的,是完美信息博弈,AlphaZero 可以自己根据规则创造出棋谱,AlphaGo 和 AlphaZero 在围棋上可以超过人类棋手。而在开放问题上,AlphaGo 和 AlphaZero 目前还不能超越人类,例如,在星际争霸上还打不过人类,在王者荣耀上也胜不过人类。相信在大家共同努力下,技术不断突破边界,我们人类也有信心驾驭它,为人类的智慧不断增长而服务。在不同的战场,我们一起加油。
以上。
然而,不幸地是,他的话语又捅出了篓子。身为前阿里云 CTO,LVS(Linux Virtual Server)开源软件创始人,虽然对技术是极懂的,但是看起来却不那么懂围棋。
他说道,「我们知道下围棋,格子里面只有 19 乘 19,最多 361 步。」
然后,微博下面是一波类似这样的群嘲:
随后,他也为自己的失误道歉并表示,虽然自己前面的说法有误,但围棋的复杂度并不是无限提升的:
围棋最多 361 步这个说法不准确,抱歉!没有考虑到打劫和提子的情况,感谢大家的讨论提升了我的认知。围棋的复杂度不是无限提升的,不能反复打劫,提子后空间也有限,聂棋圣在微博上说有专家团队研究过围棋变化是 10 的 808 次方。还是挺想学习一下里面的计算方法。
但是,解决的问题越复杂就意味着更厉害吗?
对于这一问题,其实已经有一大批知乎 er 展开了讨论。
虽然提问的打开方式并不怎么正确:
如何看待滴滴章文嵩称,滴滴的算法比 AlphaGo 复杂 100 倍?(章文嵩哪里有说滴滴的算法比 AlphaGo 复杂了???)
随后引发了一大波不明真相的群众的歪楼,大家都在嘲笑:
你这个算法有什么可比的。
算法更复杂,不就证明代码越费时费力,不就证明你的工程水平不高?
(不明觉厉)
当然,也有正正经经研究过事情始末的人,表达了这样的言论:
从理论上来说两个问题在很多层面上都是 NP-hard 的复杂度,无从谈起谁更复杂,当事人只是要说明滴滴的时效性要求高、数据量大的事实。
在这两种言论之间,也有人站在客观的立场看待这一问题。
知乎上一位匿名用户表示,虽然围棋的复杂度或许更高,但从用户体验上来看,滴滴并没有成功解决问题:
第一,围棋场景复杂度也许更高。
围棋的场景复杂度,并不在于其每一步最多 361 种选择。它复杂在,坐在你对面是高智商的对手。需时刻提防对手随时「留陷阱」,要每一步皆需统筹全局,并能大致预测对方接下来几步落子位置,且要有与之相应的应对措施。
而滴滴的派单场景呢,没有「高智商对手」主动「下绊子」是前提。在这种相对稳定又绝对动态的情境下进行派单。具体每一步的复杂程度有多高,按照章所言,43200 种选择。
我没有读过 AlphaGo 源码,所以只能做一个不负责的数字推断:
鉴于随着棋局的进行,每一步的落子选择也减少,因而保守假设平均每一步有 100 种选择。
之前看到报道说 AlphaGo 最多可以提前预判 50 步棋。如此,AlphaGo 每走一步棋需要考虑 100 的 50 次方。这个数字相信远远超过 43200 吧。
100 的 50 次方这个数字可能有点夸张,毕竟 AlphaGo 不是穷举的。但是肯定不是章以为的「最多 361 种选择」这么简单。
第二,用户体验上来看,滴滴没有成功解决问题。
目前看来,AlphaGo 是成功解决了围棋争霸这个难题了。
至于滴滴嘛,他的派单算法有多复杂先不谈,但是其提供的服务说实话是没办法硬着脖子讲「完全解决」这四个字的。
退一万步讲,假设派单场景确实比下围棋复杂的多。那么,章的行为就像某些人宣称的:「我在试图形成一个比相对论更高的模型,虽然还没成功,但是我比爱因斯坦更伟大!」
第三,章文嵩本人非算法领域。
有很多答主都提到了,他是阿里的高级专家,是真正的系统级开发高手。但是问题就在这儿。
其实 AlphaGo 算法跟系统开发是两个截然不同的领域。
相比对算法方面的评价,其实他在 AlphaGo 的网络延迟、分布式计算效率、CPU 利用率等问题上会更专业。
至于算法复杂度,鉴于 Deep Learning 是强凸优化强矩阵变换的一种统计学习算法,我相信滴滴内部的算法相关负责人应该更有发言权。
而微博上,也有一大票用户评论,不管讨论的是问题复杂度还是算法复杂度,首要问题应该是解决用户体验。
雷锋网 AI 科技评论也将持续跟进这一问题的后续,敬请期待。
PS:关于滴滴的调度系统,滴滴研究院副院长、密歇根大学终身教授叶杰平博士曾非常全面地进行了揭秘,大家可以在看过之后,再回望这场闹剧。
传送门: 滴滴研究院副院长叶杰平:揭开滴滴人工智能调度系统的真面目
。