谷歌Jeff Dean团队发文,探讨「学习模型」如何替代传统索引结构

原文来源arxiv-vanity

作者:Tim KraskaAlex BeutelEd H. ChiJeffrey DeanNeoklis Polyzotis

「雷克世界」编译:嗯~阿童木呀、多啦A亮、我是卡布达

 

索引就是模型:B-Tree-Index可以看作是一个能够将一个键映射到排序数组中记录所在位置的模型;哈希索引(Hash-Index)是一个能够将键映射到未排序数组中记录所在位置的模型;BitMap-Index则是一个用以指示数据记录是否存在的模型。在这篇探索性的研究论文中,我们从这个前提出发,假设所有现有索引结构都可以被其他类型的模型所代替,其中也包括我们称之为学习索引的深度学习模型。其中的关键思想是,一个模型可以学习查找键的排序顺序或结构,然后使用这个信号对记录的所在位置或存在进行有效地预测。我们从理论上分析了在哪些条件下,学习索引架构的表现要优于传统索引结构,并描述了在学习索引结构设计方面所存在的主要挑战。最初的研究结果表明,通过使用神经网络,我们能够在速度上超越缓存优化B-Trees达到70%,同时还在真实数据集中节省了数量级内存。更重要的是,我们相信,通过用学习模型取代数据管理系统的核心组件这一想法对于未来的系统设计有着深远的影响,而我们这项研究只是提供了一些可能的表现。

 

无论何时需要高效的数据访问,索引结构都能给予满足,并且存在多种选择以满足各种访问模式的不同需求。例如,B-Trees是区间请求(range requests)的最佳选择(例如,在一定的时间范围内检索所有记录);在基于键的查找中,哈希映射(Hash-Maps)在性能上难以找到对手;而布隆过滤器(Bloom-filters)通常用于检查是否存在记录。由于索引对于数据库系统和许多其他应用程序的不言而喻的重要性,过去几十年来,它们已经被广泛地进行调优以提高内存、高速缓存和/或CPU效率。

 

然而,所有这些索引都是通用数据结构,假设数据分布最差,而且没有利用真实数据中普遍存在的模式。例如,如果目标是建立高度调谐的系统,用以存储和查询具有连续整数键(例如,键1到100M)的固定长度记录,那么将不使用传统的B-Trees索引来覆盖键,因为键本身可以用作抵消,使其成为一个O(1)而不是O(logn) 操作来查找任意键或一系列键的开始。同样的,索引内存的大小也会从O(n)减少到O(1)。也许令人惊讶的是,对于其他数据模式,相同的优化仍然是可能的。换句话说,了解精确的数据分布可以高度优化数据库系统所使用的几乎任何索引。

 

当然,在大多数真实用例中,数据并不完全遵循已知的模式,而为每个用例构建专门解决方案的工程工作量通常都是极其高的。然而,我们认为,机器学习打开了一个学习模型的机会,它可以反映数据模式和相关性,从而能够以较低的工程成本自动合成我们称之为学习索引的专业索引结构。

 

在本文中,我们探讨了包括神经网络在内的学习模型在多大程度上可以用来代替传统的索引结构,从B-Trees到Bloom-filters。这似乎与直觉相反,这主要是因为机器学习不能提供我们传统上与这些索引相关联的语义保证,并且因为最强大的机器学习模型——神经网络,传统上被认为是非常昂贵从而难以进行评估的。然而,我们认为,这些明显的障碍并没有像它们表面上那么具有问题性。相反,我们使用学习模型的建议可能会带来巨大的好处,特别是在下一代硬件上,所带来的益处不可小觑。

 

在语义保证方面,索引已经在很大程度上被学习模型所取代,这使得用其他类型的模型来代替它们也变得非常简单,如神经网络。例如,可以将B-Trees视为一个模型,它将一个键作为输入,并预测数据记录所在位置。一个Bloom-filter是一个二进制分类器,它基于一个键来预测一个键是否存在于某个集中。很明显,存在细微但重要的区别。例如,一个Bloom-filter可能有假阳性,而不是假阴性。然而,正如我们将在本文中展示的那样,通过全新的学习技术和/或简单的辅助数据结构,解决好这些差异性事非常有可能的。

 

在性能方面,我们观察到每个CPU都拥有强大的SIMD功能,并且我们推测许多笔记本电脑和手机也将很快拥有图形处理单元(GPU)或张量处理单元(Tensor Processing Unit,TPU)。此外,相较于通用指令集而言,它更容易对神经网络所使用的受限(并行)数学运算集进行扩展,因此我们可以合理地推测,CPU-SIMD/GPU/TPU的功能将越来越强大。因此,执行神经网络的高昂成本在未来可以忽略不计。例如,英伟达和谷歌的TPU已经能够在一个周期内完成即使不是上万次也要有数千次的神经网络操作。此外,有人声称,到2025年CPU的性能将提高1000倍,而基于摩尔定律(Moore’s law)的CPU在本质上将不复存在。通过利用神经网络取代分支重索引结构,数据库可以从这些硬件的发展趋势中受益。

 

值得注意的是,我们并不认为学习索引结构可以完全替代传统索引结构。相反,我们论述了一种建立索引的新方法,它完善了现有的研究,并且可以说,它为该领域数十年的研究开辟了一个新方向。虽然,我们的关注点在于只读分析工作负载,但我们也概述了如何将这一想法拓展至写入繁重工作负载(write-heavy workloads)的加速索引。此外,我们简要地概述了如何使用相同的原则来取代数据库系统的其他组件和操作,其中包括排序和连接。如果成功的话,这可能导致与当前数据系统的开发方式完全不同。

  

结论与未来研究

 

研究结果表明,学习索引可以通过利用被索引数据的分布提供显著效益。这为许多有趣问题的研究打开了一扇大门。

 

多维索引

 

坦白讲,对学习索引而言,最激动人心的研究方向是将其扩展到多维索引结构。尤其是神经网络模型,非常擅长捕捉复杂的高维度关系。在理想状态下,这个模型能够预估由任意属性组合过滤后的记录所有位置。

 

超越索引:


学习算法

 

或许令人惊讶的是,CDF模型不仅具有索引能力,在加速排序(speed-up sorting)和连接方面同样拥有潜力。例如,加速排序(speed-upsorting)的基本思路是使用一个现有的CDF模型F,将粗略的排序按顺序排列,将几近完美的排列数据进一步修正,比如,插入排序(insertion sort)。

 

GPU/TPU

 

最后,正如本文中多次提及的那样,GPU/TPU将使得学习索引的思想更加可行。但与此同时,GPU/TPU也面临其自身的挑战,其中最重要的是高调用延迟(high invocation latency)。虽然我们可以合理地认为,根据前面所展示的异常压缩比率,所有的学习索引都适用于GPU/TPU,但这中间任需要2-3微秒的时间来调用他们的所有操作。同时,机器学习加速器与CPU的集成越来越好,通过使用诸如批量请求(batching requests)这样的技术,调用的成本可以被分摊,所以我们不认为调用延迟是一个真正的障碍。

 

总而言之,我们已经证明,相较于最先进的数据库索引而言,机器学习模型有潜力展现出更大优势。我们坚信这将对未来的研究提供卓有成效的指导。


原文链接:https://www.arxiv-vanity.com/papers/1712.01208v1/


未来智能实验室致力于研究互联网与人工智能未来发展趋势,观察评估人工智能发展水平,由互联网进化论作者,计算机博士刘锋与中国科学院虚拟经济与数据科学研究中心石勇、刘颖教授创建。


未来智能实验室的主要工作包括:建立AI智能系统智商评测体系,开展世界人工智能智商评测;开展互联网(城市)云脑研究计划,构建互联网(城市)云脑技术和企业图谱,为提升企业,行业与城市的智能水平服务。

  如果您对实验室的研究感兴趣,欢迎支持和加入我们。扫描以下二维码或点击本文左下角“阅读原文”

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/497926.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

php html区别_php与html区别

php与html区别HTML是超文本标记语言;PHP即“超文本预处理器”,是一种通用开源脚本语言。PHP 独特的语法混合了 C、Java、Perl 以及 PHP 自创新的语法。HTML主要用在客户端的显示,比如我们浏览的网页,特别是静态网页,都…

Struts2源码阅读(三)_DispatcherConfigurationProvider

首先强调一下struts2的线程程安全,在Struts2中大量采用ThreadLocal线程局部变量的方法来保证线程的安全,像Dispatcher等都是通过ThreadLocal来保存变量值,使得每个线程都有自己独立的实例变量,互不相干. 接下来就从Dispatcher开始看起,先看其构造函数&a…

谷歌宣布在北京成立AI中国中心:李飞飞和李佳共同领导

来源:澎湃新闻概要:谷歌正式宣布谷歌AI中国中心(Google AI China Center)在北京成立。谷歌正式宣布谷歌AI中国中心(Google AI China Center)在北京成立。12月13日,在上海举行的谷歌开发者大会&a…

AI 与区块链:两大热门技术,会碰撞出什么样的火花?

来源:36氪概要:区块链和AI可以说是当今最热门的两个技术方向了。区块链和AI可以说是当今最热门的两个技术方向了。在一般人看来,这两大技术似乎没有什么交叉的地方,因为区块链和AI分别属于是技术谱系的两个极端:一个是…

伯克利人工智能研究院最新研究:协作型工业机器人如何更智能?

原文来源:BAIR作者:Changliu Liu、Masayoshi Tomizuka「雷克世界」编译:嗯~阿童木呀、我是卡布达在现代工厂中,工人和机器人是两大主要劳动力。出于安全考虑,这两者通常被限制在金属笼中的机器人分离开来,而…

Php如何过360拦截,PHP常见漏洞修复文件-360漏洞修复插件

主要对常见的漏洞进行拦截,如:SQL注入漏洞、检测POST数据、XSS漏洞防护等,效果非常不错,值得拥有。1、下载:360漏洞修复插件2、解压后,上传整个文件夹至服务器根目录3、if(is_file($_SERVER[DOCUMENT_ROOT]./360safe/3…

谷歌开源 TFGAN,让训练和评估 GAN 变得更加简单

作者:思颖概要:训练神经网络的时候,通常需要定义一个损失函数来告诉网络它离目标还有多远。三年前,蒙特利尔大学 Ian Goodfellow 等学者提出「生成式对抗网络」(Generative Adversarial Networks,GANs&…

Struts2源码阅读(六)_ActionProxyActionInvocation

下面开始讲一下主菜ActionProxy了.在这之前最好先去了解一下动态Proxy的基本知识.ActionProxy是Action的一个代理类,也就是说Action的调用是通过ActionProxy实现的,其实就是调用了ActionProxy.execute()方法,而该方法又调用了ActionInvocatio…

py语言和php,php和python什么区别

python语言的风格Python在设计上坚持了清晰划一的风格,这使得Python成为一门易读、易维护,并且被大量用户所欢迎的、用途广泛的语言。设计者开发时总的指导思想是,对于一个特定的问题,只要有一种最好的方法来解决就好了。这在由Ti…

计算机产业深度报告:云计算与人工智能开启新一轮技术变革周期

来源:乐晴智库概要:每一次的技术迭代都将行业推向新的高度,同时也对产业生态和企业兴衰产生重大影响。纵观整个IT产业的发展史,从1960年代到现在的2010年代,科技行业历经了大型机时代、小型机时代、PC时代、互联网时代…

自动分页,返回时跳回指定页

实现原理: displaytag 自动分页时,只需要提供一个“集合”(name 属性) 和翻页对应的 requestURI 属性(也是返回整体的集合) 执行翻页时 displaytag 会自动计算出页数,形如: http://localhost:8080/bpp/ma…

java 界面艺术字,Java 在Word文档中添加艺术字

与普通文字相比,艺术字更加美观有趣也更具有辨识度,常见于一些设计精美的杂志或宣传海报中。我们在日常工作中编辑Word文档时,也可以通过添加艺术字体来凸显文章的重点,美化页面排版。这篇文章将介绍如何使用FreeSpire.Doc for Java在word文档…

AI校招程序员最高薪酬曝光!腾讯80万年薪领跑,还送北京户口

来源:100offer概要:如果说 2016 年是互联网 AI 领域井喷的元年,2017 年整个 AI 领域全面爆发,来潮汹涌的趋势相较 2016 年可以说是有过之而无不及。如果说 2016 年是互联网 AI 领域井喷的元年,2017 年整个 AI 领域全面…

vscode php断点,VSCode中设置断点调试PHP(示例代码)

所需文件xampp 集成服务器(本文使用Apache2.4MySQLPHP7.4.3)vscodeXdebugphp-debug 插件配置Xdebug1. 下载Xdebug插件 (直接去 https://xdebug.org/download.php下载php对应版本的插件)如果不知道如何选取版本,则如下Step 1:获取本地php版本信息 (利用ph…

2017英国AI形势报告:认知鸿沟、新商业模式和当下的挑战

原作 David Kelnar MMC投资研究中心老大Root 编译自 MMC Venture量子位 出品 | 公众号 QbitAI来源:36氪概要:AI技术今年所获得媒体、资本极度的关注,短时间内已经给民众带来认知上剧烈的冲击:或是由未知产生恐惧,或是对…

前百度首席科学家吴恩达携手富士康,要用人工智能升级制造业

来源:澎湃新闻概要:当地时间12月14日,吴恩达再一次通过英文自媒体平台Medium公布了自己的下一个创业项目——Landing.ai。作为人工智能领域里的明星科学家、斯坦福大学计算机系教授吴恩达(Andrew Ng),离开百…

腾讯AI Lab解析2017 NIPS三大研究方向,启动教授及学生合作项目

来源: 腾讯AI实验室概要:腾讯AI Lab去年4月成立,今年第二次参加NIPS,共有8篇文章被录取,含一篇口头报告(Oral)。在所有国内研究机构和高校中,录取论文数仅次于清华大学。NIPS被誉为机…

「自然语言处理」如何快速理解?有这篇文章就够了!

原文来源:codeburst.io作者:Pramod Chandrayan「雷克世界」编译:嗯~阿童木呀、我是卡布达现如今,在更多情况下,我们是以比特和字节为生,而不是依靠交换情感。我们使用一种称之为计算机的超级智能机器在互联…

another mysql daemon,[守护进程详解及创建,daemon()使用

一,守护进程概述Linux Daemon(守护进程)是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。它不需要用户输入就能运行而且提供某种服务,不是对整个系统就是对某个用户程序提供服务。Linux系统的大多数服务…

李开复:明年会有一批AI公司倒闭

来源:公众号黑智概要:在北美的四大AI巨头公司中,李开复的总结是:Google有大牛优势;Facebook做得更深,但没有平台化意识;微软在试着聚拢自己的实力;“四大AI公司中,有3家不…