博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
学界 | 哈佛研究者推出新型优化算法,指数级提升计算速度
阅读量:5786 次
发布时间:2019-06-18

本文共 1428 字,大约阅读时间需要 4 分钟。

一种新出现的算法可以大大缩短电影推荐和出租车路径规划这类问题的计算时间。

这个算法由哈佛大学的研究人员开发,通过减少已有算法的迭代次数来快速解决优化问题。更出人意料的是,哈佛大学高级研究员Yaron Singer指出,这个方法并不以减少最终结果的精确度为代价。

优化问题是在可能的解中选出最佳答案,诸如映射从A点到B点的最快路径。许多专为解决优化问题设计的算法自从20世纪70年代首次被提出后便没有任何改进。

已有的优化算法通常是一个循序渐进的执行过程,迭代次数与所分析的数据量成正比。比如,一个电影推荐算法会依次找到每一部与用户喜欢的电影相似的电影。

然而,已有的优化算法存在“收益递减”的特性:随着算法的执行,每一步产生的相对收益变得越来越小。这意味着涉及海量数据的优化问题,寻找最优解的计算开销会极其昂贵。

在实验中,Singer和共同研究者Eric Balkanski发现他们的算法对包含6000名用户针对4000部电影的100万条评论数据集进行分析时,可以得出与现行算法相似的电影推荐结果,但速度却能提升20倍。

另外,对纽约市出租车公司与Limousine Commission的200万条出租车行车数据集进行分析时,新算法在为出租车挑选最佳位置时,不仅可以覆盖大部分潜在用户,而且比已有算法快6倍。

大部分已有的优化算法是通过单一方向的迭代运行来处理问题,而这一新的算法则采用多个方向并行实现。基于这样的方法,算法舍弃了不理想的优化方向,选取对结果最有价值的方向进行迭代。这种适应算法数据变化的方式,有助于解决收益递减问题。

这种策略可以发挥作用,得益于算法目标的两个不同方面。研究者称之为曲率(curvature)和同质性(homogeneity)。

对于电影推荐问题,具有高曲率的目标与用户看过的电影十分相似——例如,如果你喜欢Die Hard,那么算法推荐的电影很有可能包含这部电影的续集。对于出租车调度问题,具有高曲率的目标是出租车可以在30秒内响应客户的地方。曲率越平缓,算法越高效——例如,当一辆出租车的响应时间为5分钟而非30秒的时候,算法的效率更高。

同样对于电影推荐问题,具有高同质性的目标假设有许多电影可以推荐——例如,你喜欢Die Hard,高同质性的电影诸如Lethal Weapon 的同类型动作片会被算法推荐。对于出租车调度问题,具有高同质性的目标假设基于位置的客户分布相对均衡。同质性越高,算法越高效。

这种新的方法还可以用于解决其他问题,例如识别新药物、从在线健康社区发现药物间的相互作用以及开发医学成像的传感器阵列等等。

Singer说,“事实是我们确实能指数级得加速计算运行时间,这为医疗保健、计算生物学、机器学习和数据挖掘带来了新的契机,过去这些应用程序的计算成本太高,难以考虑太多因素。”

Balkanski和Singer正在探索他们的策略适用于哪些优化问题。他们同时也在计划为GPU编写代码,以在更多领域应用他们的成果。Singer表明,“一般来说,这些算法非常简单,几行代码即可实现。”。

Balkanski和Singer于6月28日在洛杉矶举行的国际计算机协会(ACM)的计算机理论研讨会(STOC)和7月12日在斯德哥尔摩的国际机器学习大会(ICML)上详细介绍了他们的成果。

相关报道:

原文发布时间为:2018-07-31

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

转载地址:http://zptyx.baihongyu.com/

你可能感兴趣的文章
[BZOJ] 1012 [JSOI2008]最大数maxnumber
查看>>
gauss消元
查看>>
多线程-ReentrantLock
查看>>
数据结构之链表与哈希表
查看>>
IIS7/8下提示 HTTP 错误 404.13 - Not Found 请求筛选模块被配置为拒绝超过请求内容长度的请求...
查看>>
http返回状态码含义
查看>>
响应式网站对百度友好关键
查看>>
洛谷P2179 骑行川藏
查看>>
(十八)js控制台方法
查看>>
VB关键字总结
查看>>
android代码生成jar包并混淆
查看>>
一个不错的vue项目
查看>>
屏蔽指定IP访问网站
查看>>
python学习 第一天
查看>>
根据毫秒数计算出当前的“年/月/日/时/分/秒/星期”并不是件容易的事
查看>>
python的图形模块PIL小记
查看>>
shell变量子串
查看>>
iOS的主要框架介绍 (转载)
查看>>
react报错this.setState is not a function
查看>>
poj 1183
查看>>