摘要:在2018年1月6日的云栖社区数据智能技术论坛上,来自阿里巴巴的杨森做了智能决策的主题分享。目前智能决策在人力调度、货物分配、资源优化等场景上面扮演者重要的角色,杨森从获取数据,预测用户需求,做出决策这三个阶段,对智能决策的框架以及优化做了详细介绍。
以下为精彩视频整理:
通过对深度学习、优化技术、预测技术等进行算法设计,在人力调度、货物分配、资源优化等场景上面,对精确营销、计算资源、收益管理、风险控制、智慧物流、派送调度、工业制造调度、航空、电力市场等实现了智能决策。
智能决策是基于数据和预测,来量化决策相关的成本和收益,确定最优化的决策,从而实现数据再增值,最大程度的降低成本和提高效率。从数据到决策分为两个阶段:
第一个阶段是从数据去发现信息。
第二个阶段是预测用户的需求,并做最优的决策,最大程度上降低成本和效率。
接下来介绍智能决策在电商平台中应用,在电商平台中实现精准营销匹配用户和商品/商家。
第一阶段——预测:准确预测用户的需求
根据交易数据、行为数据、位置数据等,应用数据挖掘和机器学习,对用户进行画像。根据线上实时信息,进行在线计算并预测用户的需求。在预测用户的需求的时候采用了深度表征学习(RepL),RepL是基于深度学习的个性化核心算法,它是在行为信息的基础上,综合多模态信息,进行端到端的训练框架。采用迁移学习技术可以很容易应用到新的场景,根据新场景产出定制模型。这个算法各大业务场景中得到了验证,能处理上亿规模的用户商品的任务,并显著提升业务指标。
RepL的输入数据量非常大(例如千万级商品,亿级用户),这会导致网络非常庞大。为了降低数据的维度,不再使用one hot(每次输入时filed只有一个事务为1,其他为0),而是采用随机编码例如sixe-hot。这种方法可将百亿维的网络降低到几亿维。目前这个框架应用在阿里所有业务场景,利用阿里所有的数据,来预测用户的特征。因为这个特征是从阿里海量数据里面训练得到的,它包括了信息的全部特征,可以精准预测用户的需求。
但是随着深度学习模型的规模越来越大,使其很难到端上推广,这就需要进一步压缩模型。利用低位量化,用bits表示float来压缩模型,可以将模型的大小降低32倍,而且可以极大提升运算效率。采用交替方向乘子法(Alternating Direction Method of Multipliers,ADMM)将连续解和离散解结合起来,来分布式解决这个优化问题。
通过ImageNet上面测试模型压缩的效果,可以看出使用binary的Top-1 Acc.为0.687,比其他方法要好(BWN和TWN是文献中的工作,它们都是近似的量化机制),而在Tinynet+SSD或VGG16+SSD上面,3Bits与Full Bits的区别不大,几乎无损。
目前深度表征学习(RepL)应用在搜索(主搜索,天猫搜索,店铺内搜索),推荐(详情页看了又看,天猫国际,凑单推荐),广告等业务中,它们的指标都有明显提升。
第二阶段——决策:匹配用户和商品
用深度学习去预测用户的需求之后,接下来就需要解决如何匹配用户和商品,从而实现收益最大化。通过精确的预测用户的需求,再加上高效的匹配,帮助用户找到其想要的东西,平台才能得到最大的收益。
假定供应远远大于需求,这本质上是一个无约束的优化,使用贪心算法已经达到最优。假设广告的预算是无限的,为了最大化点击概率,只需要将最容易点击的广告一直展示。而在实际中实际供应是小于需求的,贪心算法无法达到最优,需要考虑分配问题。
分配问题是给定二分图(agent和task),左边为agents,右边为tasks。每个agent完成某种task之后有期望奖励,但是每个task只能分配给有限个agents,最优任务分配最大化总奖励。
分配问题的一个应用是在线广告。在线广告的目标是针对用户最优投放广告,实现点击概率最大化,但是广告的预算会对限制广告的分配。分配问题在阿里的应用非常常见,比如盒马如何调节流量,让用户和商品进行很好的匹配;菜鸟如何将包裹有效的进行分配等等。
分配问题可以通过LP的去解。其中n为agent个数,m为task的个数,cij是奖励,wi和bi是约束。
这个公式存在两个问题:
(1)解对cij敏感,cij是通过预测的方式去进行预估。比如点击概率是通过机器学习来预知的。
在模型中需要考虑奖励cij的不确定性。可以通过产生大量的cij,来将这个问题转化为min-max问题,使用extra-gradient方法求解: 收敛率为O(1/T)。
(2)不能处理在线请求。处理在线请求的前提是知道所有的数据,然后去进行离线分配。
为了解决这个问题,可以根据某一段时间做即时的反馈,计算和更新对偶变量, 使用对偶变量进行决策。
分配问题在线广告投放中应用时,如果不考虑投放量约束的话,供需关系是不匹配的;在考虑投放量约束的时候,供需关系是匹配的。在应用过程中,广告的收入有15%的提升。
计算资源智能决策
智能决策的另外一个用例是计算资源的智能决策。 总体来说,基于数据而非长期的人工观察,来了解这个系统的当前乃至未来的状态。基于算法学习出适应这个系统的最优策略,而非基于运营经验来设计规则。决策包括三个方面:
(1)时序预测:使用预测,实时监控APP潜在的使用。
(2)资源调度:如何用合理的策略调度资源,用最少的资源支持最多APP的使用。
(3)智能运维,进行异常检测和根因分析
资源调度优化应用在调度(dispatching)、均衡 (balancing)、伸缩 (scaling)等方面,需要在稳定性、利用率、可操作性等方面去进行优化。但是资源(Physical/Logical/Sequential)和规则(Match/Exclusive)会约束资源调度的优化。比如某个应用来了之后,如何选择容器。如果容器不能放下,如何去做迁移,比如一个容器比较闲,一个比较忙,需要做负载均衡。还有如果资源超出负荷,如何根据伸缩,满足资源需求。
下图是最简单的资源调度优化模型
资源调度面对的挑战是NP问题,它面向多个目标;实际中也有多种多样的约束(比如禁止迁入和迁出,打散,互斥等),而且资源调度需要处理上亿变量。
资源调度面临着App-container匹配、集合资源、应用DAG和生命周期、应用互斥、迁移序列,迁移代价等约束。通过阿里巴巴计算资源AI调度官可实现资源利用率、负载均衡和应用亲和性。
下面介绍两个资源调度优化的案例:
案例一:负载均衡
从图中看出资源已经超出了安全水位,通过合理的排布,对维度进行平滑。在上线前,不同的资源使用了比较多的Varnish,上线之后下降的比较明显。
案例二:Hippo重调度
如果一个新应用来了之后,无法对其分配的话,需要重调度对资源进行合理的排布,来给新应用进行分配。应用了Hippo重调度之后,其分配率从70%提升90%。图中出现下降的情况是因为有业务操作的动作。在OPDS、hadoop中都有合理调动资源的需求,来提升计算的能力。
目前大数据逐步在各个行业中积累,为智能升级奠定基础。机器学习逐步扩大对各类数据的认知,做出更准确的预测。决策优化利用大数据与机器学习,提供智能的判断。
本文由云栖社区志愿者小组王朝阳整理编辑,程弢审核。
活动相关文章
蚂蚁金服西亭:智能金融的技术挑战与方案
阿里云朱金童:深度揭秘ET大脑
阿里巴巴阿外:客服全链路智能解决方案
阿里巴巴少杰:大数据处理实践
浙江大学杨洋:社交网络中的群体用户行为分析与表示学习
阿里巴巴布民:图计算是生产力