干货 | 纽约大学陈溪: AlphaGo Zero技术演进的必然性(附PPT)

简介:

陈溪:今天我要跟大家分享一下为什么要把机器学习和运筹学这两个学科结合起来,才能有效地解决很多实际的问题。

一、机器学习

afcadfef5000445ed6d1e040b22e7b5b1837cc5c

什么是机器学习?首先需要有一堆数据,然后有机器学习的算法,对于数据的统计建模、概率建模和数据的假设来作为算法的支撑。机器学习一般常用的应用是对数据进行预测,比如预测明天股票的价格,这种都是一些基础的预测,更重要的是通过机器学习,去学习数据中的一些模式。

b13f79871b399f5a96793de89470bf66fe4abe3c

机器学习从大的角度分成两类:监督学习与无监督学习(Supervised Learning & Unsupervised Learning)。比如我们通过房间里的照片来识别人脸,用某些方式进行一定的标注来确定人脸在什么地方,这时候我们就叫做有监督的学习。监督学习的框架如上图所示,根据预测的函数,把机器学习的特征映射到值域上。

9044c45b5df1362cd3a97b50e4e52f38cc82cc70

没有监督的学习是一个更加广泛的领域,比如我们需要把图片进行分类,这是完全根据人的需求和感觉,通过机器学习方法进行分类。

ff1059f77b1a3d81c53f87ecae2e75a8b8ae52db

深度学习是一个自动提取特征的有效工具,比如图像的结构化让深度学习得以提取足够的特征。然而并不是每个领域的数据都能够通过深度学习的方式把有效的特征提取出来,比如在很多金融领域,一定要把深度学习与非深度学习的方法进行有效的比对。

二、从学习到决策

传统的机器学习通常处理静态数据,但是这并不能满足很多商业需求,许多商业应用最终需要做决策

fd464fce46422897f04705816bc7e3bcce1a9fde

上面这张图把整个数据分析分成五个阶段:

● 第一阶段:Descriptive( 描述性 ),对数据进行基本的描述;
● 第二阶段:Diagnostic( 诊断性 ),对数据进行基本的诊断;
● 第三阶段:Discovery( 发现 ),挖掘数据内在的模型;
● 第四阶段:Predictive( 预测性 ),预测可能发生的情况的分析;

● 第五阶段:Prescriptive(指定),数据驱动决策的过程。

c2f718bd559a3ae794fb298981a987b24f8f1ea7

在现实领域中,我们会遇到很多决策的问题,比如决策库存量、设施位置、路线规划、商品价格等。

3654b584e7fda79c6cdd40d17c7d60124f8b06d5

AlphaGo Zero,作为围棋的一个重大进展,它不仅要对对手进行预测,同时还要对落子进行决策。所以Google设计了deep reinforcement learning(深度强化学习),它带有决策的成分,通过Monte Carlo tree search(蒙特卡洛树搜索),让机器和机器自己进行对战,从而进行学习。不管是学习还是决策,Simulation technique(模拟技术)在AlphaGo Zero中也很重要。

对于商业应用仍然很简单,这是为什么?在一个围棋的程序中,尽管搜索空间很大,信息是完整的,然后目标函数简单而明确(赢或输),而在商业决策过程中,目标函数可能会非常复杂。

a597acbfcff4c9e8f7c59fd52f27f86b64d6a743

这个研究工作叫Assortment optimization,基本上是一个推荐系统,比如搜索一个航班,它会自动帮我挑出性价比最高的几个航班。

c55f7f0b396f3f218529ffd5759ea26245786876

做Assortment optimization?首先,我们要了解客户的购买行为,然后用choice model(选择模型)去做选择。

d1dc992c90443b83ddbcf1452b85dcab18be5473

MNL是Logit类模型的基本型式,其选择一个产品的概率等于这个产品的效率(用户喜欢的程度)除上所有推荐产品的效率总和加1(S:推荐的产品,a:选择的产品,1:用户什么产品都不喜欢)。

在现实生活中还有很多复杂的情况,MNL不可能是一直有效的模型。

10c5fdd0e66b7f8d6d1d8bc76316775dbfed37a3

Nested logit models是先选择一个大类,然后在大类中再进行产品的选择,如上图所示,概率分成两部分,一部分是选择毛衣的概率,另一部分是选择毛衣的具体款式的概率,这样就构建了一个多层的选择过程。

23d733a1df9c4da2f197968ee30e4c5c0207d1d0

给定choice model,如何选择最好的产品推荐给客户?我们选择一个S(推荐的产品)做组合优化,使得它数学期望值的收益最大化。然而,现实生活中更复杂的问题是你并不知道用户选择产品的概率。

7a2c9f680fef1c660f3415f9b52dc7f617086502

Ruelala和唯品会是快消品的销售平台,销售时间很短,没有足够多的历史数据去学习用户对产品的喜好程度。Facebook在做在线广告的时候,若产品的选择数以百万计,这时候就无法估计用户对每一个产品的喜好程度。所以我们需要动态推荐系统,把机器学习和智能决策结合起来。

c826d392af618212674f48b35c1b3140cc80c962

上图是简单的动态雏形,在每一个时刻我们假设给用户做一个产品的推荐,通过用户购买情况,不断的学习和做决策,一直到整个销售区间终止。如果知道用户的选择概率,可以把它做成静态的优化问题,如果不知道,就做成一个动态的优化问题。

d1e9e365b380ced9b1fae359e54cd74d80be39ee

怎么评估算法的好坏?在学术圈有一个叫Regret analysis的方法:将最佳分类与选择分类预期收益均差最小化。我们的目标是构造一个机器学习和决策的算法,使得在时间足够长的时候,收益差非常小,以及收益差怎么减少。

953ed469bd240b36f43fe4ee14fb9c3aa7c6bc90

这些模型虽然很有用,但还不够复杂,机器学习的精髓在于特征的提取,比如利用上下文的信息,把用户和产品的特征提取出来,做一个动态的Choice Model,这样就能更好的服务于现实。

5ba3679bfce938ad6ea97dca42e300ae8a781a53

沃尔玛做过类似的工作,根据用户已经放在购物车里的产品,在最后结账的过程中再推荐产品。

三、总结

a34e55066ebbf08305db033af894a52cbf44a079

很多商业的问题极其复杂,我们要深入理解问题本质的结构,机器学习与决策要有机的结合起来。只有把机器学习过程,随机的建模和优化全部柔和在一起,我们才能对大数据进行更好的理解和处理。


原文发布时间为:2018-08-22

本文作者:数据派

本文来自云栖社区合作伙伴“数据派THU”,了解相关信息可以关注“数据派THU”。

相关文章
|
存储 Java Apache
Maven - 统一构建规范:Maven 插件管理最佳实践
Maven - 统一构建规范:Maven 插件管理最佳实践
1545 0
|
jenkins Java Shell
使用 Docker 安装 Jenkins 并实现项目自动化部署
Jenkins 是一款开源的持续集成(DI)工具,广泛用于项目开发,能提供自动构建,测试,部署等功能。作为领先的开源自动化服务器,Jenkins 提供了数百个插件来支持构建、部署和自动化任何项目。
36566 3
使用 Docker 安装 Jenkins 并实现项目自动化部署
|
数据采集 前端开发 API
基于Qwen2大模型实现的中药智能化筛选助手
本文介绍了利用大语言模型微调技术在中药方剂智能化筛选与优化中的应用。项目涵盖微调环境搭建、数据预处理、智能体构建及效果评估等环节,展示了模型在生成新中药方剂上的创新能力和实用性。
基于Qwen2大模型实现的中药智能化筛选助手
|
IDE 开发工具
【开发IDE升级】如何对IDEA版本进行升级
本文介绍了如何将 IntelliJ IDEA Ultimate 从 2020.2.2 版本升级到 2022.3.2 版本。主要内容包括准备工作、卸载旧版本和安装新版本的步骤。首先,从官网下载所需版本并备份旧版配置;接着,通过 Uninstall.exe 卸载旧版,保留配置和插件;最后,安装新版并完成激活。详细的操作步骤和截图帮助用户顺利完成升级过程。
14209 1
【开发IDE升级】如何对IDEA版本进行升级
|
前端开发 Java 应用服务中间件
【异常解决】java程序连接MinIO报错The request signature we calculated does not match the signature you provided.
【异常解决】java程序连接MinIO报错The request signature we calculated does not match the signature you provided.
1541 0
|
Cloud Native Java 编译器
Spring之提前编译:AOT
【1月更文挑战第18天】 一、AOT概述 1、JIT与AOT的区别 2、Graalvm 3、Native Image 二、演示Native Image构建过程 1、GraalVM安装 (1)下载GraalVM (2)配置环境变量 (3)安装native-image插件 2、安装C++的编译环境 (1)下载Visual Studio安装软件 (2)安装Visual Studio (3)添加Visual Studio环境变量 (4)打开工具,在工具中操作 3、编写代码,构建Native Image (1)编写Java代码 (2)复制文件到目录,执行编译 (3)Native Image 进行构建
395 2
|
存储 搜索推荐 分布式数据库
深度解析Lindorm全文索引(SearchIndex)特性
索引是加速数据库查询的重要手段,Lindorm除了提供高性能的二级索引外,同时支持全文索引(SearchIndex),主要面向复杂的多维查询场景,并能够覆盖模糊查询、聚合分析、排序、分页等场景。本篇文章将从技术层面详细介绍Lindorm SearchIndex的具体实现。
2098 0
深度解析Lindorm全文索引(SearchIndex)特性
|
机器学习/深度学习
伪标签:教你玩转无标签数据的半监督学习方法
对于机器学习项目而言,数据是根本,但是往往我们拿到的是无标签数据,对于这些数据,我们该如何更好的利用它们呢?在本文中,作者提出了一个名为伪标签的半监督学习方法,通过这个方法,我们就可以使用无标签数据来提高机器学习模型的性能,也会让你在更多像Kaggle一样的比赛中受益。
12840 0
|
消息中间件 安全 Ubuntu