- 1、本文档共17页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
在线最优化求解
(Online Optimization)
冯扬 (@fengyoung)
新浪微博-商业平台及产品部-推荐引擎
2014-12-09
摘要:最优化求解问题可能是我们在工作中遇到的最多的一类问题了:从已有的数据中提炼
出最适合的模型参数,从而对未知的数据进行预测。当我们面对高维高数据量的场景时,常
见的批量处理的方式已经显得力不从心,需要有在线处理的方法来解决此类问题。本文以模
型的稀疏性作为主线,逐一介绍几个在线最优化求解算法,并进行推导,力求讲清楚算法的
来龙去脉,以及不同算法之间的区别和联系,达到融会贯通。在各个算法原理介绍之后,都
会给出该算法的工程实现伪代码,可以用于实际工作的参考。
1 动机与目的
在实际工作中,无论是工程师、项目经理、产品同学都会经常讨论一类话题:“从线上
对比的效果来看,某某特征或因素对xx 产品的最终效果有很大的影响”。这类话题本质上说
的是通过已有的数据反映出某些特定的因素对结果有很强的正(或负)相关性。而如何定量
计算这种相关性?如何得到一套模型参数能够使得效果达到最优?这就是最优化计算要做
的事情。
举一类典型点的例子:在推荐和广告计算中,我们经常会需要对某些值进行预测,例如
在一条推荐或广告在曝光之前先预测用户是否会产生点击(CTR 预估),或者是否会由此产
生某些转换(RPM 预估)。这类问题可以表示为:针对一个输入 = [ , … ] ∈ ℝ ,通
1 2
过某个函数()计算 (预测)输出 ∈ ℝ。根据值为连续的还是离散的,预测问题被划分
成回归问题(Regression )和分类问题(Classification )。而利用已有的样本数据{( , ) | =
1,2, …, }训练() 的过程往往转换成一个最优化求解的过程。
无论是线性回归(Linear Regression)、逻辑回归(Logistic Regression)、支持向量机(SVM )、
深度学习(Deep Learning)中,最优化求解都是基本的步骤。常见的梯度下降、牛顿法、拟
牛顿法等属于批量处理的方法(Batch),每次更新都需要对已经训练过的样本重新训练一遍。
而当我们面对高维高数据量的时候,批量处理的方式就显得笨重和不够高效,因此需要有在
线处理的方法(Online )来解决相同的问题。关于在线最优化问题(Online Optimization )的
论文比较多,逐一查找阅读费时费力,那么本文就以高维高数据量的应用场景中比较看重的
稀疏性作为主线,来介绍一些在线最优化的方法。
本文的预期读者大概有如下几类:
1. 具有很深机器学习经验和背景的高阶人员:就拿这篇文章当作一个关于在线最优化
算法的回顾材料好了,如有错误和不足欢迎指正。
2. 具有一定机器学习经验的中级读者:可以将本文作为一个理论资料进行阅读,略过
“预备知识”部分,直接进入主题,将之前对于在线最优化算法的理解串联起来,
希望能对将来的工作提供帮助。
3. 对机器学习有认识但是实践经验较少的初级读者:从预备知识看起,逐一理解相关
概念和方法,从而达到融会贯通的目的。
4. 仅仅对算法的工程实现感兴趣的读者:大致浏览一下预备知识中的2.3 节,了解我
1 / 17
们要讨论什么,然后直奔各算法的算法逻辑(伪代码),照着实现就ok 鸟。
5. 高富帅和白富美:只需要知道本文讨论的是一堆好用的求最优解的方法,可以用于
分类预测、回归预测等一系列问题。然后吩咐攻城狮去实践就好了。还可以拿这篇
文章嘲笑机器学习的屌丝:看你们都弄
文档评论(0)