面向近似近邻查询的分布式哈希学习方法
发布时间:2020-02-07 06:47
【摘要】:近似近邻查询是信息检索领域中的一项重要技术.随着文本、图像、视频等非结构化数据规模的迅速增长,如何对海量高维数据进行快速、准确的查询是处理大规模数据所必须面对的问题.哈希作为近似近邻查询的关键方法之一,能够在保持数据相似性的条件下对高维数据进行大比例压缩.以往所提出的哈希方法往往都是应对集中式存储的数据,因而难以处理分布式存储的数据.该文提出了一种基于乘积量化的分布式哈希学习方法SparkPQ,并在Spark分布式计算框架下实现算法.在传统的乘积量化方法的基础上,该文首先给出了分布式乘积量化模型的形式化定义.然后,作者设计了一种按行列划分的分布式矩阵,采用分布式K-Means算法实现模型求解和码本训练,利用训练出的码本模型对分布式数据进行编码和索引.最终,该文构建了一套完整的近似近邻查询系统,不仅可以大幅降低存储和计算开销,而且在保证高检索准确率的条件下加速查询效率.在较大规模的图像检索数据集上进行的实验验证了方法的正确性和可扩展性.
【图文】:
成一栈式的生态系统.图1是Spark集群系统架构图.驱动程序(Driver)会和集群的管理器(ClusterManager)相连接,驱动管理器为集群其他节点分配资源.在分配完毕以后,驱动程序会将应用程序发送到各个节点的执行进程(Executor).之后驱动程序会调配任务给各个执行进程执行任务.图1Spark集群系统架构图弹性分布式数据集(ResilientDistributedData-sets,RDD)[11]是Spark中的分布式内存的抽象.相比于MapReduce的计算过程,RDD可以被缓存在内存中,每一次的计算产生的结果都可以保留在内存中,从而避免了大量的磁盘读写操作,大大节省了计算时间.在Spark程序中,RDD的创建是通过静态类SparkContext来实现,主要包含有两种创建来源:一是从指定的文件系统(或指定的数据库)读取数据来创建;二是从内存数据集合直接生成.不同于MapReduce中仅有map和reduce两种操作,RDD还支持多种丰富的常用操作,主要分为转换操作、控制操作和行为操作3类.转换操作顾名思义,就是将一个RDD操作之后转换为另一个RDD,包括map、flatMap、filter等操作.控制操作主要是将RDD缓存到内存中或者磁盘上,比如cache、persist、check-point等操作.行为操作主要分为两类:一类是变成集合或标量的操作;另一类是将RDD存储到外部文件系统或数据库的操作.Spark的所有对RDD的操作,只有
图3BlockMatrix的划分方式4.3训练码本首先,我们将乘积量化模型的目标函数进行分布式表示,把式(1)改写成弗罗贝尼乌斯范数(Frobeniusnorm)的形式:辶PQ=minX-C1B1鐤CmBq縬纐膓牛恚玻疲ǎ玻┢渲校兀剑保玻郏荩睿拢剑猓保猓玻郏猓荩睿旅嬷っ魅绾未邮剑ǎ保┩频嫉绞剑ǎ玻っ鳎筛ヂ薇茨嵛谒狗妒亩ㄒ蹇芍粒玻疲健疲椤疲辏幔椋辏玻健疲椋幔椋玻玻兀茫保拢辩枺茫恚聁縬纐膓牛恚玻疲剑保郏荩睿茫保猓保保猓保玻猓保郏荩铉枺茫恚猓恚保猓恚玻猓恚郏輖縬纐模顀牛玻疲剑保保茫保猓保保保玻茫保猓保玻保睿茫保猓保铉枺恚保茫恚猓恚保恚玻茫恚猓恚玻恚睿茫恚猓恚睿玻疲剩兀茫保拢辩枺茫恚聁縬纐膓牛恚玻疲健疲睿椋剑保椋茫保猓保殓枺茫恚猓韖縬纐模閝牛玻玻虼耸剑ǎ保┛梢愿男次剑ǎ玻け希诜植际降南低持校菔欠植际降卮娲⒃谟涤校痈鼋诘愕募扑慵荷希偕璧冢舾鼋诘闵洗娲⒌模睿舾鍪荩吹氖菥卣螅鼐涂梢员换殖桑痈鲂〉木卣蠼蟹植际酱娲ⅲ矗兀
本文编号:2577111
【图文】:
成一栈式的生态系统.图1是Spark集群系统架构图.驱动程序(Driver)会和集群的管理器(ClusterManager)相连接,驱动管理器为集群其他节点分配资源.在分配完毕以后,驱动程序会将应用程序发送到各个节点的执行进程(Executor).之后驱动程序会调配任务给各个执行进程执行任务.图1Spark集群系统架构图弹性分布式数据集(ResilientDistributedData-sets,RDD)[11]是Spark中的分布式内存的抽象.相比于MapReduce的计算过程,RDD可以被缓存在内存中,每一次的计算产生的结果都可以保留在内存中,从而避免了大量的磁盘读写操作,大大节省了计算时间.在Spark程序中,RDD的创建是通过静态类SparkContext来实现,主要包含有两种创建来源:一是从指定的文件系统(或指定的数据库)读取数据来创建;二是从内存数据集合直接生成.不同于MapReduce中仅有map和reduce两种操作,RDD还支持多种丰富的常用操作,主要分为转换操作、控制操作和行为操作3类.转换操作顾名思义,就是将一个RDD操作之后转换为另一个RDD,包括map、flatMap、filter等操作.控制操作主要是将RDD缓存到内存中或者磁盘上,比如cache、persist、check-point等操作.行为操作主要分为两类:一类是变成集合或标量的操作;另一类是将RDD存储到外部文件系统或数据库的操作.Spark的所有对RDD的操作,只有
图3BlockMatrix的划分方式4.3训练码本首先,我们将乘积量化模型的目标函数进行分布式表示,把式(1)改写成弗罗贝尼乌斯范数(Frobeniusnorm)的形式:辶PQ=minX-C1B1鐤CmBq縬纐膓牛恚玻疲ǎ玻┢渲校兀剑保玻郏荩睿拢剑猓保猓玻郏猓荩睿旅嬷っ魅绾未邮剑ǎ保┩频嫉绞剑ǎ玻っ鳎筛ヂ薇茨嵛谒狗妒亩ㄒ蹇芍粒玻疲健疲椤疲辏幔椋辏玻健疲椋幔椋玻玻兀茫保拢辩枺茫恚聁縬纐膓牛恚玻疲剑保郏荩睿茫保猓保保猓保玻猓保郏荩铉枺茫恚猓恚保猓恚玻猓恚郏輖縬纐模顀牛玻疲剑保保茫保猓保保保玻茫保猓保玻保睿茫保猓保铉枺恚保茫恚猓恚保恚玻茫恚猓恚玻恚睿茫恚猓恚睿玻疲剩兀茫保拢辩枺茫恚聁縬纐膓牛恚玻疲健疲睿椋剑保椋茫保猓保殓枺茫恚猓韖縬纐模閝牛玻玻虼耸剑ǎ保┛梢愿男次剑ǎ玻け希诜植际降南低持校菔欠植际降卮娲⒃谟涤校痈鼋诘愕募扑慵荷希偕璧冢舾鼋诘闵洗娲⒌模睿舾鍪荩吹氖菥卣螅鼐涂梢员换殖桑痈鲂〉木卣蠼蟹植际酱娲ⅲ矗兀
本文编号:2577111
本文链接:https://www.wllwen.com/kejilunwen/ruanjiangongchenglunwen/2577111.html