CN112639769A - 利用概率谓词来加速机器学习推理 - Google Patents

利用概率谓词来加速机器学习推理 Download PDF

Info

Publication number
CN112639769A
CN112639769A CN201980038901.0A CN201980038901A CN112639769A CN 112639769 A CN112639769 A CN 112639769A CN 201980038901 A CN201980038901 A CN 201980038901A CN 112639769 A CN112639769 A CN 112639769A
Authority
CN
China
Prior art keywords
blob
clause
blobs
query
pps
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201980038901.0A
Other languages
English (en)
Inventor
S·乔杜里
S·坎杜拉
路遥
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN112639769A publication Critical patent/CN112639769A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/01Probabilistic graphical models, e.g. probabilistic networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/248Presentation of query results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • G06N5/048Fuzzy inferencing

Abstract

提出了利用概率谓词(PP)来加快需要机器学习推理的搜索的实现。一种方法包括接收搜索查询,该搜索查询包括用于利用用户定义函数(UDF)来过滤数据库中的二进制大对象的谓词。过滤要求UDF对二进制大对象进行分析,以确定通过过滤的二进制大对象。此外,该方法包括基于该谓词来确定PP的PP序列。每个PP是分类器,该分类器计算满足PP子句的PP‑二进制大对象概率。PP序列定义表达式以组合PP。此外,该方法包括如下操作:该操作执行PP序列以确定该二进制大对象满足表达式的二进制大对象概率,确定哪些二进制大对象满足准确性阈值,丢弃具有小于该准确性阈值的二进制大对象概率的二进制大对象,以及对尚未被丢弃的二进制大对象执行数据库查询。然后呈现结果。

Description

利用概率谓词来加速机器学习推理
技术领域
本文公开的主题总体上涉及用于加速复杂数据库查询,尤其是用于加速支持机器学习推理任务的复杂数据库查询的方法、系统和程序。
背景技术
一些搜索查询基于关于数据库中数据的信息,但是该信息不能使用标准数据库查询立即搜索,因为必须分析数据库中的数据以确定是否满足一个或多个搜索条件。例如在存储图像的数据库中,可以接收查询以标识包含红色汽车的图像。关系数据库不包括在图像中的汽车颜色的字段,因此必须分析图像以确定每个图像中是否有红色汽车。
在某些情况下,机器学习系统用于执行图像分析。但是,经典查询优化技术,包括谓词下推的使用,针对机器学习推理查询具有有限的用途,因为从非结构化数据(例如数据库中的图像)提取关系列的用户定义函数(UDF)通常非常昂贵并且如果这些谓词需要由UDF生成的关系列,则查询谓词可能无法在这些UDF之前(或旁路)执行。
附图说明
附图中的各个附图仅示出了本公开的示例实施例,并且不能被认为是对其范围的限制。
图1示出了根据一些示例实施例的包括使用机器学习分类器的查询的处理。
图2示出了根据一些示例实施例的利用概率谓词(PP)的查询处理。
图3是示出根据一些示例实施例的使用不同机器系统的开销的表格。
图4示出了根据一些示例实施例的利用查询优化器的查询处理。
图5示出了根据一些示例实施例的概率谓词机器学习程序的训练。
图6示出了根据一些示例实施例的利用概率谓词的查询优化器。
图7示出了根据一些示例实施例的示出了针对复杂谓词的概率谓词(PP)组合的各种选择的示例。
图8是示出了对于一些示例实施例的根据降维和分类器技术的不同PP方法的复杂度的表。
图9示出了根据一些示例实施例的使用线性支持向量机或核密度估计器所训练的PP分类器的功能。
图10示出了根据一些示例实施例的对应于不同准确性水平的阈值的生成。
图11示出了根据一些示例实施例的基于全连接神经网络的PP分类器的结构。
图12示出了根据一些示例实施例的针对在两个PP分类器上的或运算的查询计划。
图13示出了根据一些示例实施例的针对在两个PP分类器上的与运算的查询计划。
图14示出了负PP的使用示例。
图15是示出了根据一些示例实施例的用于PP的下推规则的表。
图16示出了用于实现示例实施例的搜索管理器。
图17是根据一些示例实施例的用于利用概率谓词来加速利用机器学习推理的搜索的方法的流程图。
图18是示出了机器的示例的框图,在该机器上或通过该机器,可以实现或控制本文描述的一个或多个示例过程实施例。
具体实施方式
示例方法、系统和计算机程序针对利用概率谓词来加快利用机器学习推理的搜索。示例仅代表可能的变化。除非另有明确说明,否则组件和功能是可选的,并且可以被组合或细分,并且操作可以按顺序变化或被组合或细分。在以下描述中,出于解释的目的,阐述了许多具体细节以提供对示例实施例的透彻理解。然而,对于本领域的技术人员将显而易见的是,可以在没有这些具体细节的情况下实践本主题。
概率谓词(PP)是二元分类器,被配置为通过确定每个输入是否满足某个条件来过滤非结构化输入。例如PP“为红色”用于分析图像并确定图像是否包含红色物体。在一些实现中,基于预定义的目标准确性水平,PP被用于过滤不满足搜索查询的谓词的数据二进制大对象。此外,几个PP可以用于给定查询,并且基于开销的查询优化器用于选择具有简单PP的适当组合的搜索计划。在大数据集群上进行的几种机器学习工作负载的实验表明,查询处理可以改进多达十倍甚至更多倍。
在一个实施例中,提供了一种方法。该方法包括用于接收用于搜索数据库的查询的操作,该查询包括用于利用用户定义函数(UDF)过滤数据库中的二进制大对象(blob)的谓词。此外,过滤需要UDF分析二进制大对象,以确定每个二进制大对象是否通过谓词指定的过滤。另外,该方法包括用于基于谓词确定一个或多个PP的PP序列的操作,每个PP是与相应子句相关联的二进制分类器。PP计算每个二进制大对象满足该子句的PP-二进制大对象概率,并且PP序列基于谓词来定义表达式以组合PP序列的PP。此外,该方法包括用于执行PP序列以确定该二进制大对象满足该表达式的二进制大对象概率,二进制大对象概率基于PP-二进制大对象概率和该表达式。另外,该方法包括以下操作:确定哪些二进制大对象的二进制大对象概率大于或等于准确性阈值,从搜索中丢弃二进制大对象概率小于准确性阈值的二进制大对象,对尚未被丢弃的二进制大对象执行数据库查询,该数据库搜索利用UDF,并提供数据库搜索的结果。
在另一实施例中,一种系统包括存储器,该存储器包括指令和一个或多个计算机处理器。所述指令在由一个或多个计算机处理器执行时,使所述一个或多个计算机处理器执行以下操作:接收用于搜索数据库的查询,所述查询包括用于利用用户定义函数(UDF)过滤数据库中的二进制大对象的谓词,过滤要求UDF分析二进制大对象,以确定每个二进制大对象是否通过谓词指定的过滤;基于该谓词来确定一个或多个概率谓词(PP)的PP序列,每个PP是与相应子句相关联的二进制分类器,该PP计算每个二进制对象满足该子句的PP-二进制大对象概率,该PP序列定义用于基于谓词来组合PP序列的PP的表达式;执行PP序列,以确定该二进制大对象满足表达式的二进制大对象概率,二进制大对象概率基于PP-二进制大对象概率和表达式;确定哪些二进制大对象具有大于或等于准确性阈值的二进制大对象概率;从搜索中丢弃二进制大对象概率小于准确性阈值的二进制大对象;对未丢弃的二进制大对象执行数据库查询,数据库搜索利用UDF;并提供数据库搜索的结果。
在又一个实施例中,机器可读存储介质(例如非暂态存储介质)包括指令,该指令在由机器执行时使机器执行包括以下各项的操作:接收用于搜索数据库的查询,该查询包括用于利用用户定义函数(UDF)过滤数据库中的二进制大对象的谓词,该过滤需要UDF对二进制大对象进行分析以确定每个二进制大对象是否通过了该谓词所指定的过滤;基于该谓词确定一个或多个概率谓词(PP)的PP序列,每个PP是与相应子句关联的二元分类器,该PP计算每个二进制大对象满足该子句的PP-二进制大对象概率,该PP序列定义用于基于谓词来组合PP序列的PP的表达式;执行PP序列,以确定该二进制大对象满足表达式的二进制大对象概率,二进制大对象概率基于PP-二进制大对象概率和表达式;确定哪些二进制大对象具有大于或等于准确性阈值的二进制大对象概率;从搜索中丢弃具有小于准确性阈值的二进制大对象概率的二进制大对象;对未丢弃的二进制大对象执行数据库查询,数据库搜索利用UDF;并提供数据库搜索的结果。
图1示出了根据一些示例实施例的查询的处理,该查询包括使用机器学习分类器。关系数据平台越来越多地用于分析数据二进制大对象,诸如非结构化文本、图像或视频。如本文所用,“二进制大对象”(最初源自二进制大对象)是指在数据库中存储的或从网络处理器的消息中获取的数据块,并且它可以包括图像、视频帧、视频、可读文档等。呈现了针对引用单个图像的二进制大对象的实施例,但是其他实现可以对其他类型的二进制大对象使用相同的原理。
在这些系统中的查询102通过应用用户定义的函数(UDF)来从二进制大对象中提取关系列开始。查询可以包括多个元素,诸如可以使用诸如结构化查询语言(SQL)的数据库查询格式来定义的那些元素。这些元素可以包括选择子句104、来自子句105、连接子句106、谓词子句107等。谓词子句107指示结果必须满足的一个或多个条件;例如谓词子句107充当数据过滤约束。
例如可以接收查询102以查找由城市内的一个或多个监视相机捕获的红色运动型多功能车(SUV)。该数据库在关系数据库中每行包括一个图像帧,查询可以表示为:
选择cameraID,frameID,
Cl(Fl(vehBox))AS vehType,C2(F2(vehBox))AS vehColor
从(过程输入视频
生成cameraID,frameID,vehBox
使用VehDetector)
其中vehType=SUV∧vehColor=红色
这里,VehDetector 110,例如机器学习系统(MLS),从每个视频帧中提取车辆边界框。F1和F2是用于从每个边界框提取相关特征的特征提取器。此外,C1和C2是使用提取的特征来标识车辆类型和颜色的分类器。
目标是有效地执行这样的机器学习推理查询。诸如谓词下推的现有查询优化技术针对此示例中不是很有用,因为这些技术不会将谓词推入生成谓词列的UDF下方。在上面的示例中,仅在执行VehDetector、C1、C2、F1和F2之后,vehType和vehColor才可用。即使谓词具有低选择性(也许每100张图像中就有1张具有红色SUV),每个视频帧都必须由所有UDF处理。
使用现有的查询优化技术将首先利用MLS VehDetector来确定二进制大对象中是否有车辆以及每个找到的车辆的精细边界框。如果是覅优酷网标识出车辆,则特征提取器F1 112和F2 114用于从每个边界框提取相关特征。然后,使用分类器C1 116和C2 118来确定车辆类型和车辆颜色。
此外,将谓词子句107应用于发现的车辆120,以确定每个二进制大对象是否包括SUV的车辆类型和红色的车辆颜色。然后返回满足谓词的结果122。
通过将机器学习组件与相关部分(例如已经存在于数据库或网络消息中的访问列)分离,可以简化问题。例如数据平台外生(exogenous)的某些组件可以对二进制大对象进行预处理,并具体化(materialize)所有必要的列(例如创建具有“是红色”布尔值的列),然后可以将传统的查询优化器应用于剩余的查询。这种方案在某些情况下可能是可行的,但通常是不可行的。在许多工作负载中,查询很复杂,并且使用许多不同类型的特征提取器和分类器。因此,就计算和存储资源而言,预先计算所有可能的谓词选项将极其昂贵。此外,由于具有提取特征的许多列可能永远不会被使用,因此预先计算对于即席查询将是浪费的。
例如在监视场景中,即席(ad-hoc)查询通常获取交通事件的追溯视频证据。尽管某些查询可能会访问某些视频和列,但某些查询可能根本无法被访问。最后,对于在线查询(例如对实时新闻广播或广播游戏的查询),直接在实时数据上执行查询和机器学习(ML)组件可能更快。
图2示出了根据一些示例实施例的利用概率谓词的查询处理。在较高级别上,PP充当非关系数据的谓词,例如充当非关系数据的过滤器。在一些示例实施例中,PP是在二进制大对象上执行的谓词的一个术语的分类器,丢弃不满足与PP相关联的条件的二进制大对象。
在一些示例实施例中,PP在整个二进制大对象上操作。因此,PP不考虑由特征提取器标识的特征,诸如边界框,因为PP在查询中的其他术语之前被应用。首先将一个或多个PP应用于输入二进制大对象,以便丢弃一些不满足关联条件的二进制大对象,然后对二进制大对象中的其余二进制大对象执行查询102的搜索操作。
在图2所示的示例中,已标识出两个PP,并且搜索计划已标识出要在PP 204“是红色”之前执行的PP 202“是SUV”。因此,首先执行PP 202,将满足条件“是SUV”的二进制大对象用作对PP 204的输入,并丢弃不满足该条件的二进制大对象。
在应用PP 204之后,将满足条件的二进制大对象用作车辆检测器110的输入,并且将不满足条件的二进制大对象被丢弃。因此,如图1所示,与未利用PP相比,操作中的其余操作可以使用更小的数据子集执行。
机器学习技术训练模型以对馈送到模型中的数据(例如用户在给定话语中所说的话;名词是人、地方还是事物;明天天气将是什么样子)准确地进行预测。在学习阶段,将针对输入的训练数据集开发模型,以优化模型以正确预测给定输入的输出。通常,学习阶段可以是有监督的、半监督的或无监督的,指示与训练输入相对应的“正确”输出被提供给的递减水平。在有监督的学习阶段,所有输出都被提供给模型,并且模型直接用于开发将输入映射到输出的通用规则或算法。相反,在无人监督的学习阶段中,没有为输入提供所需的输出,因此模型可以开发自己的规则以发现训练数据集内的关系。在半监督学习阶段,提供了不完整地标记的训练集,其中一些输出对于训练数据集是已知的,而某些输出是未知的。
分类器是一种机器学习算法,其被设计用于为给定输入分配类别,诸如识别图像中个人的面部。每个类别都称为类,并且在此示例中,可以被识别的每个个人都构成类(其包括该个人的所有图像)。这些类也可以被称为标记。尽管本文中提出的实施例是参照对象识别来呈现的,但是相同的原理可以应用于训练用于识别任意类型的物品的机器学习程序。
一个目标是通过使用概率谓词来加速使用昂贵的UDF的机器学习推理查询。在一些示例实施例中,每个PP是“简单”分类器,其旨在消耗很少的资源同时丢弃大量的二进制大对象。“简单”是指分类器针对诸如“是红色”的易于评估的条件进行过滤,这意味着图像中存在红色对象;“图像中有狗吗?”;“是文档中的词语“攻击””;等。更为复杂的分类器可能会进行更精细的选择,诸如从大量可能的人中标识名人,确定高速公路上是否有时速超过六十英里的绿色汽车,确定文档是否关于假新闻等。这些复杂的分类器需要更复杂的训练数据、更多特征的评估以及更多的计算资源。
通常,PP分类器在准确性和性能之间进行权衡,而先前的谓词可能没有权衡。另外,开销与执行PP相关联,因为通常来说,更复杂的PP需要更高的执行开销。在某些情况下,如果第一PP开销较低地用于执行,则最好使用不如第二PP准确(例如区分)的第一PP。在其他情况下,针对应用,第二PP可能会更好,以满足准确性目标。
系统设计者做出的决定是应该构建什么PP,以便加快尽可能多的查询。在某些大型系统中,可能的查询谓词的数量可能非常大(例如每个查询一个),因此构造所有可能的PP都是不切实际的。例如可以为“是狗与是小狗与是黑色”构建PP,但是该特殊PP可能很少使用。
在一些示例实施例中,创建PP来检查单个条件,然后可以组合若干PP来说明复杂的谓词。下面参考图7提供有关如何组合PP的更多详细信息。当然,在某些情况下,如果预期会经常使用这种类型的复杂PP,则可能会创建检查复杂条件的更复杂的PP。
在一些示例实施例中,对一段时间内接收到的搜索查询进行分析,以标识谓词中最常见的条件。然后,系统设计人员可以为最常见的条件创建PP。
在一些示例实施例中,PP是非结构化输入上的二进制分类器,其为那些不会通过查询谓词的数据二进制大对象缩短后续的UDF,从而减少了查询开销。例如如果查询谓词具有红色SUV,选择性很小,并且PP能够丢弃不具有红色SUV的一半帧,则查询可能加速提高两倍或更多。
此外,常规谓词下推产生确定性的过滤结果,但是在精确调用曲线上,使用PP进行过滤是参数化的。基于所需的准确性,可以实现不同的过滤速率(从而加快速度)。
应当指出,机器学习查询本质上是容错的,因为即使未修改的查询也具有带有一些误报(false positive)和漏报(false negative)的机器学习UDF。在某些情况下,注射PP不会改变误报率,但可能会增加漏报率。在一些实现中,一种方法用于通过选择使用哪些PP以及如何组合它们来限制整个查询范围的准确性损失。实验表明,在各种查询和数据集上,速度提高幅度很大,具有可以忽略不计的小的准确性损失。
构造PP的不同技术适用于不同的输入和谓词(例如基于输入稀疏性、维数以及通过谓词或使谓词失败的输入子集是否可线性分离)。在一些实现中,使用不同的PP构造技术(例如线性支持向量机(SVM)、核密度估计器、神经网络(NN))来选择具有高执行效率、高数据缩减率和少量的漏报的适当的执行计划。
此外,查询优化技术可以用于仅使用少量可用PP来支持复杂谓词和即席查询。例如与查询谓词的必要条件相对应的PP可以被集成到具有选择、项目和外键联接(foreign-key joins)的查询中。这些技术缩减了必须训练的PP数量。
图3是表302,其示出了根据一些示例实施例的使用不同机器系统的开销。表302示出了一些示例应用。
查询诸如视频、音频、图像、非结构化文本等的非关系输入的问题对于许多应用和服务至关重要。关于监视视频的分析,在许多城市中已经存在具有数百或数千个相机的城市范围的部署。而且,警察所佩戴的身体摄像机和部署在家庭中的安全摄像机也大大增加了。
以下是一些示例推理查询:
Q1:在高速公路上查找速度≥80mph的汽车。
Q2:高速公路的每个车道上的平均车容量是多少?
Q3:找到带有牌照ABC123的黑色SUV。
Q4:找到在相机C1中看到,然后在摄像机C2中看到的汽车。
Q5:如果任意外门被打开,则向手机发送文本。
Q6:如果开枪,请向警察控制室报警。
为了回答这样的查询,将诸如特征提取器、分类器等的多个机器学习UDF应用于输入(例如相机捕获的视频帧)。随后的行集有时被隐式过滤(例如没有车辆的视频帧在Q2中被丢弃)。
此外,查询还可以包含分组、聚合(例如Q2)和联接(例如Q4)。不难发现,在处理这些查询时,具体化开销(例如用于执行机器学习UDF的时间和资源)将很高。也很容易看到具体化是特定于查询的。尽管存在一些共性,但通常,不同的查询会调用不同的特征提取器、回归器、分类器等。
考虑到系统可能支持的所有可能的查询,输入上不同的UDF的数量很大。因此,输入上的所有UDF的先验应用具有很高的资源开销。诸如Q5和Q6的安全警报对时间敏感,并且Q2可以在线执行以更新行驶方向或实时更改快车道的通行费。对于此类对延迟敏感的查询,输入中所有UDF的先验应用都会增加过多的延迟。
除了监视分析之外,许多应用还共享上述三个方面:巨大的具体化开销、机器学习UDF的多样性、以及延迟和/或开销敏感性。表302说明了其中一些应用。这些应用可以是在线的(广告推荐、视频推荐、信用卡欺诈)或离线的(视频贴标签、垃圾邮件过滤和图像贴标签)。每个不同的应用可能利用不同的特质,诸如词语袋、浏览历史、物理位置等。表302进一步显示了分类器或回归器的一些示例,这些分类器或回归器的示例可以以预期的开销、查询谓词的类型和预期的选择性一起被利用。
这些系统中的具体化开销在每个输入数据项的毫秒到秒的范围内,当在短时间内例如在视频流系统中生成数百万个数据二进制大对象时,这可能是重大的。由于查询可能使用许多不同的UDF,因此离线系统将需要大量的计算和存储资源来预先具体化所有可能的UDF的输出。经常需要快速响应的在线系统也可能因预先具体化UDF的延迟而成为瓶颈。
为了减少机器学习查询的执行开销和延迟,假设可以将过滤器直接应用于原始输入,该过滤器丢弃将不通过原始查询谓词的输入数据。开销缩减是因为过滤器后面的UDF只需要处理通过过滤器的输入。过滤器的更高的数据减少率r导致更大的可能的性能改进。数据减少率r是指可以被过滤器消除的数据输入的百分比。
假设应用过滤器的开销为c,而应用UDF的开销为u;那么早期过滤的增益g将是:
Figure BDA0002821915100000111
相对于UDF,早期过滤器的效率越高(较小的c/u),增益g将越大。此外,如果r≤c/u,则查询性能可能变差(而不是提高),例如相对于其额外开销,早期过滤器具有较小的数据缩减量。因此,只有具有较大r的过滤器才能加快查询速度。
另一个考虑因素是早期过滤器的准确性。由于原始UDF和查询谓词将处理由早期过滤器传递的输入,因此查询的误报率不受影响。但是,过滤器可能会丢弃将通过原始查询谓词的输入数据,因此可能会增加漏报。与查询关系数据不同,机器学习应用具有内置的容错,因为查询中的原始UDF也具有一定的误报和漏报率。因此,要求用户指定期望的准确性阈值a是可行的。在诸如Q1和Q2的某些查询中,用户可以容忍已知的不准确量。
为了以期望的准确性实现相当大的查询加速,必须解决一些挑战。第一个挑战是如何构建这些早期的过滤器。由于原始输入不具有原始查询谓词所需的列,因此构造早期过滤器不类似于谓词下推,并且与基于谓词的开销和数据减少r来排序谓词不同。在一些示例实施例中,训练二进制分类器,其中二进制分类器将输入二进制大对象分组为与查询谓词不一致的那些和可能一致的那些。不一致的输入二进制大对象将被丢弃,其余的将被传递到原始查询计划。这些分类器是上述概率谓词,因为每个PP都有元组的关联值[数据减少率、开销、准确性]。能够训练具有不同元组值的PP。
第二个挑战是如何构造有用的PP,例如在数据减少率、开销和准确性之间进行良好权衡的PP。将数据成功地分为两类,一类通过原始查询谓词而另一类不通过原始查询谓词,这取决于底层数据分布。谓词可以看作是将两个类别分开的决策边界。直观地,任意可以标识远离此决策边界的输入的分类器都是有用的PP。但是,输入的性质和决策边界会影响哪些分类器可以有效地将两个类分开。在一些示例实施例中,利用不同的分类器,诸如用于线性可分离情况的线性支持向量机(SVM),以及用于非线性可分离情况的核密度估计器(KDE)和神经网络。但是,其他分类器也可以用于构建PP。
为了处理具有高维数的数据二进制大对象,具体化使用采样,主成分分析(PCA)和特征哈希。应用模型选择过程来选择适当的分类和降维技术。
第三个挑战是如何支持复杂的谓词和即席查询。由于查询谓词可以是多种多样的,因此为每个查询构造PP不太可能扩展。在图2的示例中,针对红色∧SUV训练的PP不能应用于(红色∧轿车)或(蓝色∧SUV)。在某些实现中,将构建每个简单子句的PP,并且查询优化器在查询编译时会组装PP组合,该PP组合:(1)具有最低开销;(2)在准确性目标之内;(3)由原始查询谓词在语义上隐含,例如这是查询谓词的必要条件(因为我们使用PP丢弃不太可能满足该谓词的二进制大对象)。
在一些示例实施例中,为形式为f(gi(b),…)φv的子句构建PP,其中f和gi是函数;b是输入二进制大对象;φ是运算符,其可以是=,≠,<,≤,>,≥中的任意一个;并且v是常数。使用这些PP,查询优化器(QO)可以支持谓词,这些谓词包含上述子句的任意合取(conjunctions)、析取(disjunctions)或否定(negations)。
概率谓词背后的基本直觉类似于机器学习中级联分类器的直觉:可以在昂贵的分类器之前使用更有效但不准确的分类器,以降低总体开销。但是,典型的级联使用具有等效功能的分类器(例如所有分类器都是对象检测器)。相反,PP不等同于它们旁路的UDF。此外,与旁路的UDF的功能无关,PP是二进制谓词特定的分类器。如果没有这种专业化(功能性中的减少),可能很难获得以下分类器:该分类器可以对原始输入进行执行,并且仍会在不损失准确性的情况下实现良好的数据减少。此外,典型的级联在流水线中的任意地方接受和拒绝输入。尽管这对于其输出只是输入的子集的选择查询是可行的,但它不会轻易扩展到具有投影、联接或聚合的查询。通常,PP直接应用于输入,并拒绝无关的二进制大对象,其余输入则被传递给实际查询。
本文提出的实施例说明了如何标识和建立有用的PP分类器,以及如何在PP分类器和QO之间提供深度集成。前者涉及仔细的模型选择,而后者则概括了对复杂谓词和即席查询的应用性。此外,相关系统标识输入列与用户定义的谓词之间的相关性,然后基于所标识的相关输入列的值来学习接受或拒绝输入的概率选择方法,而不评估用户定义的谓词。
图4示出了根据一些示例实施例的利用查询优化器402的查询处理。在一些示例实施例中,查询语言提供了用于UDF的一些新模板。开发人员可以通过从适当的UDF模板继承来实现UDF。处理器模板封装了行操纵器,该行操纵器每个输入行产生一个或多个输出行。处理器通常用于提取数据并执行按二进制大对象的ML操作,诸如特征提取。此外,减少器封装了相关项目组上的操作。基于上下文的ML操作,诸如使用来自相机的有序帧序列的对象跟踪,被构建为减少器。根据查询计划,减少器可以转换为分区改组聚合(partition-shuffle aggregate)。
组合器封装自定义联接,即,对多组相关项的操作。类似于联接,组合器可以以几种方式实现,例如作为广播联接、哈希联接等。
图4示出了用于在没有PP的情况下处理查询的示例。查询优化器402接收查询102,并且查询优化器402生成用于访问输入410的计划404,该输入包括在数据库中存储的数据。例如输入410可以包括在数据库中存储的一系列二进制大对象。
查询102可以包括一个或多个UDF,并且查询优化器402生成计划404以高效地访问输入410数据以取回期望的结果。计划404包括用于取回数据的一个或多个数据访问操作(例如操作1)406,并且这些操作可以顺序地、并行地或其组合来被执行。当被执行时,计划404的操作406生成期望结果408。
在实验评估期间分析了四个案例研究:文档分析,图像分析,视频活动识别和综合交通监控。输入数据集的维数范围从数千(例如低分辨率图像)到数十万(例如非常稀疏的文档的词袋(bag-of-words)表示)。一些谓词可能是相关的(例如视频中的文档的分层标记和活动类型)。此外,谓词的选择性也广泛地变化,其中某些谓词具有非常低的选择性(例如交通视频中的“有卡车”),而其他谓词具有高的选择性。
第一个用例涉及文档分析。大规模分层文本分类(LSHTC)数据集包含来自Wikipedia的240万个文档,并且每个文档都被表示为词袋,具有针对244K词语是每一个的频率值,这导致稀疏的矢量。
第二个用例涉及图像标记。SUNAttribute数据集包含各种场景的14K图像,并且图像用描述场景的802个二进制属性进行注释,诸如“是厨房”、“是办公室”、“是干净”、“是空”等。对于PP,考虑取回具有一个或多个属性的图像的查询。
第三用例涉及视频活动识别。利用了UCF101视频活动识别数据集(来自野外视频的101个人类动作类的数据集),其中包含13,000个视频剪辑,其中持续时间从十秒到几分钟不等。每个视频剪辑都注释有101个动作类别之一,诸如“涂口红”、“摇摆”等。对取回说明活动的剪辑的问题进行了分析。
第四个用例涉及综合的交通监控(surveillance)视频分析。分析了回答对交通监控视频进行综合查询的问题。数据集包括来自DETRAC(检测和追踪)车辆检测和跟踪基准(benchmark)的几小时的监视视频。查询集被设计用于执行机器学习动作,诸如车辆检测、颜色和类型分类、交通流估计(车辆速度和流量)等。尽管DETRAC已按车辆类型(轿车、SUV、卡车和货车/公交车)注释了车辆,车辆颜色(红色、黑色、白色、银色等)被手动注释。
图5示出了根据一些示例实施例的概率谓词机器学习程序的训练。在一些示例实施例中,PP训练利用二进制标记的输入数据504;例如标记指定输入的二进制大对象是通过谓词还是使谓词失败。应用PP的输出是对PP的标识,该PP用与之对应的谓词子句、执行开销、以及预测的数据减少与准确性来被注释。
在一些示例实施例中,在批处理系统中,历史查询502被用来推断在查询中频繁出现的简单子句。为了针对这些PP条件训练508概率谓词,一些标记的输入数据可能已经可用,因为使用了类似的语料库来构建原始UDF(例如训练分类器)。可选地,可以通过注释查询计划来生成标记的语料库;例如除查询结果506外,使用特定子句的第一查询还将输出标记的输入。
在在线系统中,训练过程可以与查询执行同时运行。也就是说,在没有PP可用时的冷启动处,查询计划为相关子句输出带标记的输入。周期性地,或者当足够的标记的输入可用时,对PP进行训练508,并且随后的查询运行可以使用包括经过训练的PP 510的查询计划。
现在介绍如何训练个体PP的细节。在一些示例实施例中,谓词子句p的PPp的唯一特征在于以下三元组:
Figure BDA0002821915100000151
这里,
Figure BDA0002821915100000152
是训练数据集,其包括在其上构建PPp的数据二进制大对象的一部分。每个二进制大对象
Figure BDA0002821915100000153
都有一个关联的标记
Figure BDA0002821915100000154
对于与p一致的二进制大对象,其值为+1;并且对于与p不一致的二进制大对象,其值为-1。此外,m是模型选择方案选择的过滤策略,指示要使用哪种分类f(·)和降维ψ(·)算法。
在图8的表802中描述了不同方案的PP开销。此外,r[a]是数据减少率,在给定上述设置的情况下,其是由PPp过滤的数据二进制大对象的一部分,并且a是目标准确性,其中a∈[0,1」(例如1.0、0.95)。PP用目标准确性级别来被参数化。
第一分类器是线性支持向量机(SVM),其是二进制分类器。线性SVM具有以下形式:
flsvm(ψ(x))=wT·ψ(x)+b, (3)
这里,ψ(x)表示将输入二进制大对象x投射到更少维度上的降维技术(下面讨论了不同的降维技术)。此外,w是权重矩阵,b是偏置项,并且对它们两者进行了训练,使得f(·)接近训练集中
Figure BDA0002821915100000164
中二进制大对象的标记l(·)。
等式(3)可以被解释为超平面,其将标记的输入分为两类,如图9所示。在类别之间实现完美的分离并非总是可能的;因此,以下决策函数用于预测标记:
Figure BDA0002821915100000161
这里,th[a]是在期望的过滤准确性a下的判定阈值。th[a]的不同值将产生不同的准确性和减少率。例如当th[a]为-∞时,将预测所有二进制大对象都通过谓词(PP(x)=+1),从而导致减少率为0,并且完美准确性a=1。
在一些示例实施例中,如下选择参数阈值th[a]:
Figure BDA0002821915100000162
要注意的是,由于决策函数是确定性的,而与th[a]值无关,因此可以构建针对不同准确性阈值参数化的PP,而无需重新训练SVM分类器。图10示出了用于选择th[a]的一些示例,其中白色圆圈904表示-1,并且阴影圆圈910表示+1。
此外,可以通过以下方式计算由PP实现的减少率r:
Figure BDA0002821915100000163
应注意,线性SVM具有优点和缺点。线性SVM可以被高效地训练(参见图8中的表802)并且具有小的测试开销。但是,如果输入二进制大对象无法线性分离,则线性SVM将产生较差的PP;即,在这种情况下,满足期望的过滤准确性将导致少量的数据减少。
在其他示例实施例中,可以使用非线性SVM核(例如径向基函数(RBF)核)。但是,对于训练和推理两者,这些非线性SVM核的计算复杂性可能会大大增加。
用于非线性可分离问题的替代分类方法是核密度估计(KDE)。机器学习二进制大对象,诸如图像和视频,可能是高维的,并不总是线性可分离的。对于这些情况,可以构造不假设任意基础数据分布的非参数PP分类器。直观地,可以将标记的二进制大对象集合转换为密度函数,以使任意位置x上的密度指示其属于该集合的可能性。
考虑图9中的密度函数。训练集中的二进制大对象的两个密度函数是根据它们的标记计算的。此外,d+(ψ(x))和d-(ψ(x))分别是ψ(x)具有+1或-1标记的密度(例如似然性)。如图9所示,密度函数可能会重叠。
如前,ψ(x)表示降维技术。核密度估计器fkde(ψ(x))定义如下:
fkde(ψ(x))=d+(ψ(x))/d-(ψ(x)) (7)
直观地,具有+1的真实标记的数据点x在d+(ψ(x))上应具有比d-(ψ(x))更高的值,从而导致较高的fkde值。类似地,如果x的真标记为-1,则fkde应为低。
为了建立密度函数d+和d-,利用KDE。具有+1标记的点的密度d+(ψ(x))定义如下:
Figure BDA0002821915100000171
这里,h是指示应检查的ψ(x)邻域大小的固定参数,并且K是将ψ(x)邻域归一化的核函数。使用产生平滑密度估计的高斯核。
此外,在具有-1标记的数据二进制大对象上类似地定义d-(ψ(x))。交叉验证用于选择h。此外,Silverman的经验法则(请参阅Bernard W.Silverman.Density estimationfor statistics and data analysis)也可以用于挑选初始h。
为了使用KDE方法完成概率谓词的构造,可以通过使用fkde代替flsvm来应用等式(4)-(6)。特别是,像线性SVM PP一样,可以对KDE PP进行参数化而无需重新训练分类器。
要注意的是,即使基础数据不是线性可分离的,使用KDE方法的PP也是有效的。但是,如图8的表802所示,这在测试过程中会带来一些额外的开销。特别是,在测试时应用KDEPP可能需要通过整个训练集,因为密度d+和d-是基于测试点x与每个训练点之间的距离来被计算的。为了避免这种情况,使用了k-d树,这是一种按维度划分数据的数据结构。相似的数据点被分配给相同或附近的树节点。对于k-d树,通过将等式(8)应用于从k-d树取回的ψ(x)的邻居(例如如表802中所示的n'个节点,其中n′<<n,训练样本数)来近似计算输入二进制大对象x的密度。平均而言,取回复杂度是输入二进制大对象的特征长度的对数。可以使用的第三个分类器是深度神经网络(DNN)。
主成分分析(PCA)是一种用于维度降低的技术。使用ψ(x)=xP投射输入x,其中P是从训练数据中提取的线性基础。
有两个考虑。首先,即使基础数据不是线性可分离的,应用PCA也不会阻止后续分类器标识远离决策边界的二进制大对象。其次,使用奇异值分解来计算PCA基础在训练集中的二进制大对象数量或维数O(min(n2d,nd2))上都是平方的。为了加快该过程,在训练数据
Figure BDA0002821915100000182
的一小部分采样子集上计算PCA,以权衡速度的缩减率。表802中的公式可以用于确定在训练和测试期间使用PCA的开销,其中n可以是完整的训练集或采样子集。
特征哈希(FH)是另一种降维技术,其可以被视为PCA的简化形式,它不需要训练并且非常适合于稀疏特征。它使用两个哈希函数h和η,如下所示:
Figure BDA0002821915100000181
这里,第一哈希函数h(·)将每个原始维度索引(j=1,…,d)投影到正好是dr个维度之一中,并且第二哈希函数η(·)将每个原始维度索引投影到±1,指示该特征值的符号。因此,特征向量从d减少到dr个维度。可以看出,特征散列是廉价的,并且已经证明是无偏的。但是,如果输入特征向量密集,则哈希冲突会频繁发生,并且分类器准确性会恶化。
此外,为了避免过度拟合训练数据,将输入的二进制大对象集合
Figure BDA0002821915100000191
随机分为训练和验证部分。使用训练部分
Figure BDA0002821915100000192
对分类器进行训练,但是在验证部分
Figure BDA0002821915100000193
上计算正确性数据减少曲线r[a]。此外,进行检查以确定训练后的分类器具有几乎与在验证部分上预测的准确性一样好的准确性。
此外,为谓词p上的PP构建的分类器可重新用于谓词
Figure BDA0002821915100000195
(NOT p)上的PP。给定为谓词p构建的分类器函数(例如flsvm,fkde),将这些函数乘以-1即可得出谓词-p的对应分类器函数。因此,谓词
Figure BDA0002821915100000196
的PP可以重新使用分类器并代之以用-1*f来计算等式(5)和(6)。
此外,PP的输入特征是数据二进制大对象的表示,例如图像的原始像素、视频的连续帧(相等持续时间)上的原始像素的级联以及文档的标记化词向量。
图6示出了根据一些示例实施例的利用概率谓词的查询优化器604。除了查询102和输入410数据库之外,查询优化器604还采用两个附加输入:可用的训练过的PP 510和用于查询的期望准确性阈值610。
查询优化器604基于准确性阈值610,将每个查询的PP的适当组合(例如510a-510c)添加到计划606。一旦执行了计划606,就在与查询相关联的其余操作406之前,在原始输入410上执行所选的PP,这些操作在语义上等效于没有PP的原始查询计划。在执行计划606之后,返回结果608。
图7示出了根据一些示例实施例的示例,该示例示出了针对复杂谓词的概率谓词(PP)组合的各种选择。查询优化器的首要目标是确定哪些PP可能对具有复杂谓词或先前未见谓词的查询有用。
查询可以使用任意可用的PP或可用的PP的组合,其是实际谓词的必要条件。给定一个复杂的查询谓词
Figure BDA0002821915100000194
QO会生成零个或多个逻辑表达式
Figure BDA0002821915100000201
其为
Figure BDA0002821915100000202
的等效条件或必要条件,但只包含简单子句的合取(conjunctions)或析取(disjunctions);即
Figure BDA0002821915100000203
挑战在于可能有
Figure BDA0002821915100000204
的很多选择;因此,选择的探索必须快速有效。
QO的第二个目标是在满足查询准确性阈值的同时,挑选PP上可用表达式中的最佳实现。对于单个PP,他们的训练已经产生了开销估算以及准确性与数据减少曲线之间的关系。挑战在于为PP上的逻辑表达式生成这些估计。QO探索表达式ε中PP的不同顺序,并探索对每个PP的准确性的不同分配,从而确保整个表达式满足查询级准确性阈值。QO输出具有所选实现的查询计划。
例如考虑以下形式的复杂谓词702:
Figure BDA0002821915100000205
这里,p、q和r是已经对其训练了PP的简单子句,并且
Figure BDA0002821915100000206
是谓词的其余部分。每个PP都通过其模仿的简单子句而部分被唯一地特征化,其中PPp是与简单子句p对应的PP。
PP上的一些可能的表达式704-707可用于支持该复杂谓词。要注意的是,由∧(与)附加的
Figure BDA0002821915100000207
的某些部分,诸如本示例中的
Figure BDA0002821915100000208
可以被忽略,因为与其他部分相对应的PP将是对于
Figure BDA00028219151000002010
的必要条件。此外,当谓词具有简单子句的合取时,可以使用这些子句中一个或多个的PP。这在表达式704和705中进行了说明。
此外,两个PP的和(例如PPp∨PPq)是该析取p∨q的有效PP。下面将参考图12描述该证明。不通过两个PP的二进制大对象将被丢弃。和以前一样,由于实际谓词适用于通过的二进制大对象,因此不会有误报,但可能会有一些漏报。相似的证明也适用于合取,如以下参考图13所述。
表达式704和706分别示出了析取和合取重写的使用。这样的重写极大地扩展了PP的用途,因为否则,不仅需要针对单个简单子句,而且还要针对简单子句的所有组合,都需要对PP进行训练。
此外,该谓词也可以逻辑地重写,从而导致与PP匹配的更多可能性。例如表达式
Figure BDA0002821915100000209
导致PP表达式706和707。
要注意的是,对应于复杂谓词的PP上的隐含表达式的数量可能很大,并且图7示出了一些可能性。
因此,表达式704示出了或(OR)表达式p∨q可能导致或表达式的PPp∨q或两个PP的组合,即对于p的PPp和对于q的PPq
此外,表达式705示出了负数
Figure BDA00028219151000002115
可能导致对应的
Figure BDA00028219151000002116
表达式706示出了组合表达式704和705加上分解合取∧运算的结果。因此,
Figure BDA00028219151000002117
可以分解为
Figure BDA00028219151000002118
此外,表达式707示出了
Figure BDA00028219151000002119
可以被分解为
Figure BDA00028219151000002120
这导致
Figure BDA00028219151000002121
为获得PP的表达式,输入是一个复杂的谓词
Figure BDA0002821915100000211
和经过训练的PP的集合
Figure BDA0002821915100000212
每一个都对应一些简单的子句;例如
Figure BDA0002821915100000213
目的是获得表达式
Figure BDA0002821915100000214
这些表达式是由
Figure BDA0002821915100000215
隐含的
Figure BDA0002821915100000216
中的PP的合取或析取;例如
Figure BDA0002821915100000217
如果存在m个
Figure BDA0002821915100000218
并且n个PP与
Figure BDA0002821915100000219
的合取范式(CNF)表示中的某些子句直接匹配,则对于
Figure BDA00028219151000002110
至少有2n个选择。由于此问题具有指数大小的输出,因此将需要指数时间。
提出了一种基于直觉的贪婪解决方案,即具有许多PP的表达式将具有更高的执行开销。开销较高的过滤器应具有相对较大的数据减少量,以便比基准计划更好地执行。输入查询谓词被发送到争执器(wrangler),争执器贪婪地改进了与可用PP的匹配性。争执规则的示例包括将不相等的检查转换为相等的检查的析取关系(例如
Figure BDA00028219151000002122
Figure BDA00028219151000002123
或放宽比较检查(例如
Figure BDA00028219151000002124
)。
随后,将谓词转换为PP上的表达式,如图7所示。对于谓词
Figure BDA00028219151000002111
Figure BDA00028219151000002112
表示在删除简单子句p之后
Figure BDA00028219151000002113
的剩余部分。然后,可以使用以下规则在PP上生成表达式。
规则R1:
Figure BDA00028219151000002114
规则R2:
Figure BDA00028219151000002125
规则R3:
Figure BDA00028219151000002126
规则R4:
Figure BDA0002821915100000221
规则R4可以用于具有高选择性的谓词。要在PP上构造隐式逻辑表达式,请使用以下操作:
(1)将任意表达式
Figure BDA0002821915100000222
中的不同PP的数量限制为至多小的可配置常数k。
(2)仅当较大的子句(例如p∨q or p∧q)在
Figure BDA0002821915100000228
中没有可用的PP或至少一个较简单的子句具有执行的更好的PP时,才应用规则R2和R3(开销与数据减少的比例
Figure BDA0002821915100000223
越小,表示性能越好)。直观上,这阻止了探索不太可能执行更好的可能性。
对于图7中的示例,假定k=2,则可用PP的集合
Figure BDA0002821915100000224
Figure BDA0002821915100000225
的递增顺序为
Figure BDA0002821915100000229
该算法可以输出三种可能性:
Figure BDA0002821915100000226
贪婪检查可能会消除其他可能性。
图8是表802,示出了对于一些示例实施例,根据降维和分类器技术的不同PP方案的复杂性。表802描述了一些用于分类器选择、其空间复杂度、其计算复杂度以及它们在不同情况下的适用性中的降维的方案。
在表802中,n是(采样的)训练集中的数据项的数目;d(dr)是向量x中的维数(其在降维后保留);n′是k-d树中邻居节点的数目;dm是DNN模型中的参数数;b是时代数;并且cf(cb)是前向(向后)传播开销。在所有情况下,假定dr<<n。
提供了用于构造PP并执行维度减少的技术,所有这些技术都可以在有或没有采样训练数据的情况下以及与几个参数选择(例如用于FH的降维的数目dr)一起使用。这导致了PP的许多可能的技术。重要的是要快速确定哪种技术最适合给定的输入数据集。
给定不同的PP方法
Figure BDA0002821915100000227
通过针对以下方案最大化减少率rm来选择最佳方案m:
Figure BDA0002821915100000231
此外,这些方法具有不同的适用性约束,如表802所示。首先,可以使用这些应用性约束来修剪
Figure BDA0002821915100000232
为了快速计算rm[a],使用了训练数据样本并且a固定为0.95。此外,随机选择一些不同的简单子句,训练分类器,然后使用执行更好的技术。实验表明,输入数据集对技术选择的影响最大;也就是说,给定特定类型的输入二进制大对象,相同的PP技术适用于不同的谓词和准确性阈值。
图9示出了根据一些示例实施例的使用线性支持向量机或核密度估计器训练的PP分类器的功能。在一些示例实施例中,PP是SVM类型分类器。存在属于两类的项目:对于-1的白色圆圈904表示的第一类和对于+1的黑色圆圈910表示的第二类。
分类器被配置为标识第一类的项目和第二类的项目之间的分隔。分隔线908标识用于分类项目的两个子空间。在一些示例实施例中,基于KDE的PP将fkde(x)测量为d+(x)/d-(x),其中基于h的邻域906来估计d。密度函数912和914示出了第一类别和第二类别的密度。
图10示出了根据一些示例实施例的基于准确性水平的阈值的生成。阈值是f(x)的最小可能值,其可提供训练或测试集所需的准确性。大于阈值的值将提供相同或更好的准确性。
图10示出了根据数据行的f(x)值以升序排列的数据行。如图9中,黑圈910和白圈904分别表示具有+1和-1标记的数据二进制大对象。阈值th[a]被选择为最大阈值,该阈值正确地标识由黑圈910表示的+1个数据点中的a部分。
在该示例中,因为所有黑圈910都被捕获到th1的右侧,所以th1表示100%的准确性。此外,th0.9是90%准确性的阈值,因为90%的黑圈910位于th0.9的右侧,等等。
在训练时,如以上参考等式(5)针对期望的准确性的不同的a值,计算阈值th[a]的数组。通过计算此阈值th[a]的数组,可以基于在查询优化时所需的准确性,即基于查询指定的准确性来选择PP。
如果仅选择一个PP,则准确性直接定义阈值目标。然而,当选择了多个PPS,决定要作出有关如何为每个所选择的PP分发目标准确性。
图11示出了根据一些示例实施例的基于全连接神经网络的PP分类器的结构。在一些示例实施例中,PP可以是神经网络分类器1102。
神经网络,有时被称为人工神经网络,是一种基于对动物大脑的生物神经网络的考虑的计算系统。在示例输入集合上训练此类系统以改进性能,这被称为学习。例如在图像识别中,可以教神经网络通过分析示例图像来标识包含对象的图像,其中示例图像已被标上对象的名称,并且在获悉对象和名称后,可以使用分析结果来标识未贴标签的图像中的对象。神经网络基于称为神经元的连接单元的集合,其中神经元之间的每个被称为突触(synapse)的连接都可以发送具有随连接强度变化的激活强度的单向信号。接收神经元通常是基于来自潜在许多传输神经元的组合传入信号是否具有足够的强度,其中强度是参数,可以激活信号并将信号传播到与其连接的下游神经元。
深度神经网络(DNN)是由多层组成的堆叠神经网络。这些层由节点组成,这些节点是发生计算的位置,在人脑的神经元上呈松散图案,当遇到足够的刺激时就会触发(fire)。节点将来自数据的输入与系数或权重集合进行组合,这些系数或权重会放大或减弱(dampen)每个输入对算法试图学习的任务的重要性。对这些输入权重乘积进行求和,然后将总和通过所谓的节点激活函数进行传递,以确定信号是否以及在何种程度上进一步通过网络以影响最终结果。DNN使用多层非线性处理单元的级联进行特征提取和转换。每个后续层都使用前一层的输出作为输入。较高级别的功能从较低级别的特征派生而来,形成了层次表示。输入层之后的层可以是卷积层,这些卷积层会生成特征图,这些特征图将过滤输入的结果并由下一个卷积层使用。
在DNN体系结构的训练中,被构造为用于估计变量之间的关系的统计过程集合的回归可以包括开销函数的最小化。开销函数可以实现为返回数字的函数,该数字表示神经网络在映射训练示例以纠正输出时的执行情况。在训练中,如果开销函数值不在预定范围内,则基于已知训练图像,将使用反向传播,其中反向传播是训练人工神经网络的常见方法,该方法与诸如随机梯度下降(SGD)方法的优化方法一起使用。
神经网络分类器1102可以具有多个全连接层(例如1104-1107),这些层被解释为将输入二进制大对象x与不同的权重矩阵1108顺序相乘。函数gi(实现为ReLU、Sigmoid或其他函数)是在每个全连接层之后应用的非线性激活,从而将非线性引入模型。
PP设计可以结合可以被转换为具有阈值(例如等式(4)中的f)的实值函数的任意分类器。分类器的应用性取决于数据分布、谓词和分类器开销。特别是,DNN也符合此要求,并且可以使用ffcn在等式(4)-(6)中构建DNN PP,其中ffcn的计算如下:
Figure BDA0002821915100000251
DNN已经显示出在各种ML应用中有希望的分类性能。但是,用于训练DNN的参数数目(例如权重矩阵)比训练以前呈现的其他分类器的数目大得多。因此,训练DNN会利用更多的数据,并且训练开销很高。此外,使用DNN的PP的执行开销可能很高。因此,在实践中,使用DNN构建的PP适合具有非常昂贵的UDF(例如更大的DNN)、具有庞大的训练语料库或使用频率很高以至于较高的训练开销是有道理的查询和谓词。
实际上,输入二进制大对象可以具有许多维度。例如在视频中,可以将帧中的每个像素或像素的8×8像素块解释为维度。在自然语言文本的词袋表示中,每个不同的词语都是维度,而对于文档而言,向量x是词语的频率。当维度增加时,用于计算w·x和x-xi的欧几里得距离会失去判别能力。在一些示例实施例中,为了解决这个问题,在分类器之前应用降维技术。但是,对于某些实现,这是可选的:例如ψ(x)可以等于x。
图12示出了根据一些示例实施例的针对在两个PP分类器上的OR操作的查询计划。给定表达式集合{ε},它们是PP的合取(conjunctions)或析取(disjunctions),一个目标是计算出满足查询准确性阈值的开销最低的查询计划。如果
Figure BDA0002821915100000261
的一些执行计划的逐个二进制大对象的开销为c,而缩减vs准确性为r[a],则查询计划开销与c+(1-r[a])*u成比例,其中u是执行原始查询的逐个二进制大对象的开销。此外,u和a是算法的输入,但必须计算c和r[a]。
由于
Figure BDA0002821915100000262
中的PP的执行顺序以及单个PP之间分配的准确性预算方式均影响计划开销,因此标识了三个子问题。首先,必须计算查询的准确性预算对单个PP的不同分配。其次,可以在合取或析取内探索PP的不同顺序。此过程对嵌套的合取或析取进行递归。第三,在确定准确性阈值和PP的顺序之后,必须计算所得到的计划的开销和减少率。
第一个子问题转换为动态程序。对于第二个子问题,要注意的是,任意
Figure BDA0002821915100000264
中最多有k个PP。如果k小,则可以探索许多排序。另一方面,当k大时,可利用以下启发式方法:基于PP的c/r[1]的比率对PP进行排序,并且然后距离此贪婪顺序最多2个编辑距离的PP被考虑。从第一序列到第二序列的编辑距离是指通过交换两个元素的编辑次数,该编辑对第一序列做出以获得第二序列。例如给定针对具有合取或析取的三个PP的表达式的{p,q,r}的贪婪顺序,则以下顺序的编辑距离为1:{p,r,q}、{q,p,r}和{r,q,p}。每个顺序的编辑距离为1,交换一对PP,即它们对贪婪的顺序进行一次编辑。在实践中,这些类型的排序被证明是最有用的。
第三子问题,给定固定PP顺序和固定准确性阈值的情况下的计算开销和缩减率,可以如下被归纳地解决。在单个PP的基本情况下,ε=PPp,而ε的开销和准确性与数据缩减曲线与PPp的开销和准确性与数据缩减曲线相同。
此外,在图12中示出了析取情况
Figure BDA0002821915100000263
其中相应逻辑表达式的开销为c1和c2;它们的准确性与数据减少曲线分别为r1[a]和r2[a];并且分配的准确性阈值分别为a1和a2。在此示例中,为简单起见,做出PPp 1202和PPq 1212是独立的假设;例如它们相应的过滤器彼此独立。
对于析取情况,提供以下方程式:
a=a1+a2-a1*a2 (13)
r[a]=r1[a1]*r2[a2] (14)
c[a]=min(c1+r1[a1]*c2,c2+r2[a2]*c1) (15)
例如如果查询请求99%的准确,则a1和a2的值必须合并以获得99%的整体a,并且该选择可以通过此优化解决。
可以使用以下原理:(1)准确性成倍地减t;(2)数据减少率提高,但是当使用许多PP且个体子表达式已经高度减少时(例如如果两个表达式各自的减少率均为0.1,则合取几乎将数据减少翻倍到0.19;但是,当每个减少率是0.8时,合取仅增加到0.96),边际改进较少;以及(3)当具有较小率c/r[a]的子表达式首先执行时,累积开销较小。用于组合PP的启发式算法基于这些原理。
如果选择首先执行PPp 1202,则由于OR操作的性质,满足PPp1202的过滤标准的输出,被示出为“+”,不必通过PPp 1202运行。此外,不满足过滤标准的PPp 1202的输出,被示出为“-”,是PPp 1202的输入。
PPp 1202的“+”输出与PPp 1202的“+”输出相加1204,并且结果被用作查询1206其余部分的输入。谓词p∨q被执行1208并且结果被输出1210。PPp 1202的“-”结果被丢弃1214,因为它们不满足任意条件。
图13示出了根据一些示例实施例的针对在两个PP分类器上的与运算的查询计划。对于合取情况,
Figure BDA0002821915100000271
适用以下公式:
a=a1*a2 (16)
r[a]=r1[a1]+r2[a2]-r1[a1]*r2[a2] (17)
c[a]=min(c1+(1-r1[a1])*c2,c2+(1-r2[a2])*c1) (18)
由于与运算的性质,PPp 1202的“+”结果被输入到PPp 1212,并且PPp 1212的“+”结果被发送以执行查询1302的其余部分。PPp 1202和PPq 1212的“-”结果的结果被丢弃1308。谓词p∧q被执行1304,并且结果被输出1306。
要解决的一个问题是如何确定要训练的PP的最优选择。例如给定查询集和对整体训练预算的限制,让我们考虑选择哪些PP进行训练以便在该查询集上获得最佳可能的加速的问题。设
Figure BDA0002821915100000289
为训练PPp的开销。谓词p的PP将帮助p是必要条件的任意查询q。
Figure BDA00028219151000002810
为如果训练了PPp将会受益的查询集。对于该集合中的每个查询q,rp[a]q表示通过在查询q上使用PPp并确保准确性高于a来实现的数据减少率。此外,查询可以使用多于一个PP。因此,给定可用的PP的集合
Figure BDA0002821915100000281
Figure BDA0002821915100000282
为通过q通过
Figure BDA0002821915100000283
中PP的某种组合实现的最佳数据减少。此外,
Figure BDA0002821915100000284
是给定查询的集合,
Figure BDA0002821915100000285
Figure BDA0002821915100000286
中所有谓词(以及这些谓词的所有必要条件)的集合,并且T是训练预算。此问题可以如下表述:
Figure BDA0002821915100000287
在本文中通过将集合覆盖缩减到上述问题的简单形式,证明了该问题是不确定的多项式时间难题(NP-hard)。给定元素集合{1、2,...,n}(被称为宇宙(universe))和其并集等于宇宙的m个集合的集合S,集合覆盖问题是标识其并集等于宇宙的S的最小子集合。
通过对宇宙中的每个元素和与S中的每个集合相对应的谓词创建查询来进行减少,其中要理解为该谓词训练PP将帮助其元素属于该集合的所有查询。因此,将每个PP的训练开销设置为相同,缩少率设置为一个单位;也就是说,如果一个查询被至少一个PP覆盖,它将获得最大的收益。要注意的是,只有当所选择的集合的子集合的并集等于宇宙时,才能获得这些查询的最大可得利益。为了找到S的最小可能子集合,可以将训练预算从1更改为|S|=m,并找到总收益等于n的最小训练预算。
另一个任务是确定可用PP的最优使用:给定可用PP的集合
Figure BDA00028219151000002811
问题是找到在给定准确性目标a的情况下为查询q提供最佳数据减少的PP组合。此外,cp是开销,而rp[a]是PP的数据减少率
Figure BDA0002821915100000288
可以证明,通过将背包问题减少为上述问题的非常简单的版本,此问题也是NP难题,如此处所示。背包问题是组合优化中的资源分配问题,其中给定项目集合,每个项目具有权重和值,目标是确定要包括在集合中的每个项目的数量,以使总权重较小或等于给定的限制,并且总值尽可能大。背包问题从某人遇到的问题得到名称,该人受到固定大小背包的约束,并且必须用最有价值的项目装满它。
为了减少的目的,可以假设仅允许可用PP的合取。此外,上述问题包括两个部分:如何在可用的PP之间分配准确性预算,以及如何对所选的PP进行排序。撇开PP的排序,减少通过以下各项开始:如果分配给该PP的准确性预算最多为该项目的权重的对数并且在其他情况下为零,则将对应PP与每个项目相关联,对应PP的减少率等于该项目的价值。也就是说,PP仅在至少给出了那么多的准确性预算(权重)的情况下才会提供减少率(值)。此外,将极限的对数设置为准确性预算,并且对数之和是根据合取PP公式(等式(17))得出的单个准确性预算的乘积。可以很容易地看出,最优PP选择类似于包装0-1背包(每个PP是否被挑选)以实现最大值(缩少率),而总权重(准确性值的乘积)仍在预算范围内(查询的准确性目标)。
此外,为复杂谓词定义了附加规则。目的是确定谓词子句,以便谓词从句可以与PP完全匹配。
不等式检查(f(C)≠v):在此和接下来的几段中,C表示关系列,f表示函数,而v,t,v1,v2表示该函数采用的可能值;如果f(C)的范围是有限且离散的,则
Figure BDA0002821915100000295
例如如果车辆类型∈{SUV,卡车,汽车},则
Figure BDA0002821915100000291
Figure BDA0002821915100000292
如果PP仅存在于卡车和汽车子句中,则这种争执(wrangling)非常有用。
-比较:
Figure BDA0002821915100000293
等式右侧的表达式使比较放宽,并且如果针对某个值t训练PP则可能很有用。当f(C)是有限且离散的,诸如
Figure BDA0002821915100000294
时,可以进行另一种重写。类似的重写可用于其他操作,诸如>,≤,≥。
-范围检查(v1≤f(C)≤v2)是比较的一种特殊情况,它在两侧均受限制,可以如上所述被争执。
-没有谓词:如果查询输出中的某些列集C具有有限且离散的范围,则即使没有谓词的查询也可以从PP中受益,因为
Figure BDA0002821915100000301
Figure BDA0002821915100000302
对于上面的车辆类型示例,
Figure BDA0002821915100000303
Figure BDA0002821915100000304
图14示出了负PP的使用示例。如上所述,谓词重写规则R4为:
Figure BDA0002821915100000305
为了评估p,如果
Figure BDA0002821915100000306
1402可用,则其可以通过以下各项被使用:执行
Figure BDA0002821915100000307
1402并使用“+”结果作为对其余查询1406的输入。在数据库执行p 1408之后,结果被添加1509到
Figure BDA0002821915100000308
1402的“-”输出以获得输出1410。
该规则是有力的,因为具有高选择性的谓词不会产生有用的PP,但是它们的取反可以实现大量的数据减少。如图14所示,不通过否定PP的二进制大对象将立即输出。这要求查询输出的模式与查询输入的模式匹配,例如查询仅选择二进制大对象的子集。此外,该规则可能与其他规则以复杂的方式构成,因为其应用可能导致误报。
图15是示出了根据一些示例实施例的用于PP的下推规则的表1502。使用表示为Xp的占位符来播种可能的PP,并且该方法尝试使用这些规则将占位符向下推,直到Xp直接在原始输入上执行。
应当指出,原始输入上的谓词能够用PP的某种组合来代替。如果这是不可能的,则QO将从最终计划中简单地省略占位符。在第一个规则中,右侧的表达式不太准确;例如它具有给定数量的误报和漏报。对于每个后续规则,这些表达式具有相同的准确性,但是右侧的表达式可以提供更好的性能。
此外,某些规则仅在某些条件下成立。下推要求谓词p和q是独立的。此外,对于外键联接规则,R和S是在列集
Figure BDA0002821915100000309
上等价联接(equijoin)的行集,其是S的主键和R的外键。如果由外键联接隐式地执行地选择(请注意,R中的每一行最多为连接输出贡献一行)独立于谓词p,则此规则成立。此外,项目的下推规则会更改谓词中的列以反转投射的效果。
作为对从属谓词的进一步解释,在实验中对具有多个PP的查询观察到了合理的性能。但是,如果多个谓词列上的PP是相关的,则开销和减少率估算以及因此的PP计划将不是最优的。在这种情况下,将应用运行时修复。如果观察到运行时的PP开销和减少率与其估计值有显著差异,则将这些谓词被贴标签为可能是从属的,以便未来QO将仅对该谓词使用一个PP(而不是从属PP的组合)。还应注意,由于实际准确性目标非常接近1,因此可以用较高的上限准确性极限来代替独立性假设。
图16示出了用于实现示例实施例的搜索管理器1600。搜索管理器1600包括查询管理器1602、查询优化器1604、机器学习程序1606、概率谓词管理器1608、概率谓词训练器1610、用户界面1612和多个数据库。这些数据库至少包括PP数据库1614、搜索数据库1616和ML训练数据数据库1618。
查询管理器1602管理诸如经由用户界面1612的在系统中接收到的查询,并且与其他元素交互以确定接收到的查询的处理。查询优化器1604执行上述用于优化查询和创建实现计划的操作。机器学习程序1606包括上文描述的一些分类器。
此外,概率谓词管理器1608管理PP的创建和评估,并且概率谓词训练器1610对所选择的PP执行训练。
PP数据库1614存储用于处理查询中的多个训练的PP。搜索数据库1616包括正在搜索的输入数据,诸如来自整个城市的相机的图像。此外,ML训练数据数据库1618存储用于训练不同分类器的数据。
要注意的是,图16所示的实施例是示例,并且没有描述每个可能的实施例。其他实施例可以利用不同的模块、利用附加的模块或组合功能。因此,图16所示的实施例不应解释为排他性或限制性的,而应是示意性的。
图17是根据一些示例实施例的用于利用概率谓词来加速利用机器学习推论的搜索的方法1700的流程图。尽管顺序地呈现和描述了该流程图中的各种操作,但是本领域的普通技术人员将理解,一些或全部操作可以以不同的顺序执行、被组合或省略、或者被并行执行。
在操作1702中,接收到用于搜索数据库的查询,该查询包括用于利用用户定义函数(UDF)过滤数据库中的二进制大对象的谓词,该过滤需要UDF对二进制大对象进行分析以确定每个二进制大对象是否通过谓词指定的过滤。
方法1700从操作1702进行到操作1704,用于基于该谓词确定一个或多个概率谓词(PP)的PP序列,每个PP是与相应子句相关联的二进制分类器,该PP计算每个二进制大对象满足子句的PP-二进制大对象概率,PP序列定义表达式,以基于谓词来组合PP序列的PP。
方法1700从操作1704进行到操作1706,用于执行PP序列,以确定二进制大对象满足表达式的二进制大对象概率,二进制大对象概率基于PP-二进制大对象概率和表达式。
方法1700从操作1706进行到操作1708,用于确定哪些二进制大对象具有大于或等于准确性阈值的二进制大对象概率。
方法1700从操作1708进行到操作1710,用于从搜索中丢弃具有小于准确性阈值的二进制大对象概率的二进制大对象。
在操作1712,对尚未丢弃的二进制大对象执行数据库查询,数据库搜索利用UDF进行,并在操作1714,提供数据库搜索的结果。
在一些示例实施例中,方法1700的操作由一个或多个处理器执行。
在一个示例中,二进制大对象是图像,其中每个PP执行二进制分类以确定二进制大对象的图像是否满足PP的子句。
在一个示例中,查询包括准确性阈值,其中每个PP与PP准确性、执行PP的开销以及减少率相关联。
在一个示例中,确定PP顺序还包括:基于查询中的准确性阈值和开销、PP准确性和可用PP池中的PP减少率,从可用PP池中选择PP。
在一个示例中,该表达式包括第一PP的第一子句和第二PP的第二子句的逻辑或运算,其中执行PP序列还包括:执行第一PP以生成符合第一子句的第一通过二进制大对象集合和不符合第一子句的第一失败二进制大对象集合;对第一失败二进制大对象集合执行第二PP,以生成满足第二子句的第二通过二进制大对象集合和不满足第二子句的第二失败二进制大对象集合;并以第一通过二进制大对象集合和第二通过二进制大对象集合的并集来继续PP序列。
在一个示例中,该表达式包括第三PP的第三子句和第四PP的第四子句的逻辑与运算,其中执行PP序列还包括:执行第三PP以生成满足第三子句的第三通过二进制大对象集合和不满足第三子句的第三失败二进制大对象集合;对第三通过二进制大对象集合执行第四PP,以生成满足第四子句的第四通过二进制大对象集合和不满足第四子句的第四失败二进制大对象集合;并使用第四通过二进制大对象集合继续PP序列。
在一个示例中,该表达式包括第五子句的逻辑非运算,其中确定PP序列还包括在执行与第五子句关联的第五PP或执行与作为第五子句的逻辑非的子句相关联的第六PP之间进行选择。
在一个示例中,方法1700还包括:分析接收到的查询以搜索数据库;以及基于所分析的查询来选择PP;并训练所选择的PP。
在一个示例中,UDF包括一个或多个特征提取器和一个或多个分类器,其中每个PP在不使用UDF的特征提取器和分类器的情况下对数据库中的二进制大对象进行操作。
在一个示例中,每个PP是用多个训练二进制大对象的标记数据训练的神经网络。
实验表明,与按原样执行查询相比,使用PP与不同的谓词运行在线/批处理机器学习推理可实现多达十倍的提速。
图18是示出机器1800的示例的框图,在该机器上或通过该机器可以实现本文描述的一个或多个示例过程实施例。在替代实施例中,机器1800可以作为独立设备操作,或者可以连接(例如联网)到其他机器。在联网部署中,机器1800可以在服务器-客户端网络环境中以服务器机器、客户端机器或两者的能力进行操作。在示例中,机器1800可以在对等(P2P)(或其他分布式)网络环境中充当对等机器。机器1800可以是个人计算机(PC)、平板电脑、机顶盒(STB)、膝上型计算机、移动电话、网络设备、网络路由器、网络交换机、网桥或能够执行指令(顺序的或其他方式)的任意机器,这些指令指定该机器要执行的操作。此外,虽然仅示出了单个机器1800,但是术语“机器”也应被认为包括任意机器集合,该任意机器集合诸如通过云计算、软件即服务(SaaS)或其他计算机集群配置来单独或共同地执行指令的一个集合(或多个集合)以执行本文所讨论的任意一种或多种方法。
如本文所述,示例可以包括逻辑或多个组件或机制或可以由逻辑或多个组件或机制来操作。电路是在包括硬件(例如简单电路、门、逻辑)的有形实体中实现的电路的集合。电路成员资格可能随时间推移以及潜在的硬件可变性而变得灵活。电路包括可在操作时单独或组合执行指定操作的成员。在一个示例中,电路的硬件可以被不变地被设计为执行特定操作(例如硬连线)。在一个示例中,电路的硬件可以包括可变地连接的物理组件(例如执行单元、晶体管、简单电路),其包括物理上被修改(例如通过磁性、电学、通过不变质量块的可移动放置)以编码特定操作的指令的计算机可读介质。在连接物理组件时,硬件组件的基础电性能会发生变化,例如从绝缘体更改为导体,反之亦然。指令使嵌入式硬件(例如执行单元或加载机制)能够经由变量连接在硬件中创建电路的成员,以在操作时执行特定操作的一部分。因此,当设备操作时,计算机可读介质通信地耦合到电路的其他组件。在一个示例中,任意物理组件可以在一个以上电路的一个以上元件中使用。例如在操作下,执行单元可以在一个时间点在第一电路的第一电路中使用,并且可以在不同的时间被第一电路中的第二电路或第二电路中的第三电路重用。
机器(例如计算机系统)1800可以包括中央处理单元(CPU)1802、主存储器1804和静态存储器1806,它们中的一些或全部可以经由互连链路(例如总线)1808彼此通信。机器1800可进一步包括显示设备1810、一个或多个输入设备1812(例如键盘、麦克风、触摸屏、游戏控制器、遥控器、摄像机、专用按钮)和一个或更多用户界面导航设备1814(例如鼠标、触摸板、触摸屏、操纵杆、凝视跟踪器)。在示例中,显示设备1810,输入设备1812和用户界面导航设备1814可以包括触摸屏显示器。机器1800可另外包括大容量存储设备(例如驱动单元)1816、信号生成设备1818(例如扬声器)、网络接口设备1820和一个或多个传感器1821,诸如全球定位系统(GPS)传感器、指南针、加速度计、磁力计或其他传感器。机器1800可以包括输出控制器1828,诸如串行(例如通用串行总线(USB))、并行或其他有线或无线(例如红外(IR)、近场通信(NFC)等)连接以与一个或多个外围设备(例如打印机、读卡器等)通信或控制一个或多个外围设备。
大容量存储设备1816可以包括机器可读介质1822,在该机器可读介质1822上存储有一组或多组数据结构或指令1824(例如软件),一组或多组数据结构或指令1824(例如软件)由本文描述的任意一种或多种技术或功能体现或利用。在机器1800执行指令1824期间,指令1824也可以全部或至少部分地驻留在主存储器1804内、静态存储器1806内或CPU 1802内。在示例中,CPU 1802、主存储器1804、静态存储器1806或大容量存储设备1816的一个或任意组合可以构成机器可读介质。
尽管将机器可读介质1822被示出为单个介质,但是术语“机器可读介质”可以包括单个介质或多个介质(例如集中式或分布式数据库和/或相关联的高速缓存和服务器),其配置为存储一个或多个指令1824。存储介质不是瞬时传播信号。
术语“机器可读介质”可以包括能够存储、编码或携带指令1824的任意介质,指令1824由机器1800执行并且使机器1800执行本公开的任意一种或多种技术,或能够存储、编码或携带由此类指令1824使用或与此类指令1824相关联的数据结构。非限制性机器可读介质示例可以包括固态存储器以及光学和磁性介质。机器可读介质的特定示例可以包括非易失性存储器,诸如半导体存储设备(例如电可编程只读存储器(EPROM)、电擦除可编程只读存储器(EEPROM))和闪存设备;磁盘,诸如内部硬盘和可移除磁盘;磁光盘;以及CD-ROM和DVD-ROM磁盘。
指令1824还可以经由网络接口设备1820使用传输介质在通信网络1826上发送或接收。
在整个说明书中,多个实例可以实现被描述为单个实例的组件、操作或结构。尽管将一种或多种方法的单独操作示出并描述为单独的操作,但是可以同时执行一个或多个单独操作,并且不需要按照所示顺序执行操作。在示例配置中表示为单独的组件的结构和功能可以实现为组合的结构或组件。类似地,呈现为单个组件的结构和功能可以实现为单独的组件。这些和其他变型、修改、添加和改进落入本文主题的范围内。
本文说明的实施例被充分详细地描述,以使本领域技术人员能够实践所公开的教导。可以使用其他实施例并从中得出其他实施例,从而可以在不脱离本公开的范围的情况下进行结构和逻辑上的替换和改变。因此,不应从限制意义上理解具体实施方式,并且各种实施例的范围仅由所附权利要求以及这些权利要求所赋予的等同物的全部范围来限定。
如本文中所使用的,术语“或”可以以包含或排他的含义来解释。此外,可以为本文中描述为单个实例的资源,操作或结构提供多个实例。另外,各种资源、操作、模块、引擎和数据存储之间的边界在某种程度上是任意的,并且在特定示意性配置的上下文中示出了特定操作。可以设想功能的其他分配,并且其可以落在本公开的各种实施例的范围内。通常,在示例配置中表示为单独资源的结构和功能可以实现为组合结构或资源。类似地,呈现为单个资源的结构和功能可以实现为单独的资源。这些和其他变型、修改、添加和改进落入如所附权利要求所表示的本公开的实施例的范围内。因此,说明书和附图应被认为是示意性的而不是限制性的。

Claims (15)

1.一种系统,包括:
存储器,包括指令;以及
一个或多个计算机处理器,其中所述指令当由所述一个或多个计算机处理器执行时,使所述一个或多个计算机处理器执行操作,所述操作包括:
接收用于搜索数据库的查询,所述查询包括用于利用用户定义函数(UDF)来过滤所述数据库中的二进制大对象的谓词,所述过滤需要由所述UDF对所述二进制大对象的分析以确定所述二进制大对象是否通过由所述谓词所指定的所述过滤;
基于所述谓词确定一个或多个概率谓词(PP)的PP序列,每个PP是与相应子句相关联的二进制分类器,所述PP计算每个二进制大对象满足所述子句的PP-二进制大对象概率,所述PP序列定义用于基于所述谓词来组合所述PP序列的所述PP的表达式;
执行所述PP序列,以确定所述二进制大对象满足所述表达式的二进制大对象概率,所述二进制大对象概率基于所述PP-二进制大对象概率和所述表达式;
确定哪些二进制大对象具有大于或等于准确性阈值的二进制大对象概率;
从所述搜索中丢弃具有小于所述准确性阈值的所述二进制大对象概率的所述二进制大对象;
对未被丢弃的所述二进制大对象执行所述数据库查询,数据库搜索利用所述UDF;以及
提供所述数据库搜索的结果。
2.根据权利要求1所述的系统,其中所述二进制大对象是图像、视频或文本文档之一,其中每个PP执行二进制分类以确定所述二进制大对象是否满足所述PP的所述子句。
3.根据权利要求1所述的系统,其中所述查询包括所述准确性阈值,其中每个PP与PP准确性、执行所述PP的开销以及减少率相关联。
4.根据权利要求3所述的系统,其中确定所述PP序列还包括:
基于以下项从可用PP池中选择PP:所述查询中的所述准确性阈值和所述开销、PP准确性以及所述可用PP池中的PP的减少率。
5.根据权利要求1所述的系统,其中所述表达式包括第一PP的第一子句和第二PP的第二子句的逻辑或运算,其中执行所述PP序列还包括:
执行所述第一PP以生成满足所述第一子句的第一通过二进制大对象集合和不满足所述第一子句的第一失败二进制大对象集合;
在所述第一失败二进制大对象集合上执行所述第二PP,以生成满足所述第二子句的第二通过二进制大对象集合和不满足所述第二子句的第二失败二进制大对象集合;以及
利用所述第一通过二进制大对象集合和所述第二通过二进制大对象集合的并集来继续所述PP序列。
6.一种方法,包括:
接收用于搜索数据库的查询,所述查询包括用于利用用户定义函数(UDF)来过滤所述数据库中的二进制大对象的谓词,所述过滤需要由所述UDF对所述二进制大对象的分析以确定所述二进制大对象是否通过由所述谓词所指定的所述过滤;
基于所述谓词确定一个或多个概率谓词(PP)的PP序列,每个PP是与相应子句相关联的二进制分类器,所述PP计算每个二进制大对象满足所述子句的PP-二进制大对象概率,所述PP序列定义用于基于所述谓词来组合所述PP序列的所述PP的表达式;
执行所述PP序列,以确定所述二进制大对象满足所述表达式的二进制大对象概率,所述二进制大对象概率基于所述PP-二进制大对象概率和所述表达式;
确定哪些二进制大对象具有大于或等于准确性阈值的二进制大对象概率;
从所述搜索中丢弃具有小于所述准确性阈值的所述二进制大对象概率的所述二进制大对象;
对未被丢弃的所述二进制大对象执行所述数据库查询,数据库搜索利用所述UDF;以及
提供所述数据库搜索的结果。
7.根据权利要求6所述的方法,其中所述二进制大对象是图像、视频或文本文档之一,其中每个PP执行二进制分类以确定所述二进制大对象是否满足所述PP的所述子句。
8.根据权利要求6所述的方法,其中所述查询包括所述准确性阈值,其中每个PP与PP准确性、执行所述PP的开销以及减少率相关联。
9.根据权利要求8所述的方法,其中确定所述PP序列还包括:
基于以下项从可用PP池中选择PP:所述查询中的所述准确性阈值和所述开销、PP准确性以及所述可用PP池中的PP的减少率。
10.根据权利要求6所述的方法,其中所述表达式包括第一PP的第一子句和第二PP的第二子句的逻辑或运算,其中执行所述PP序列还包括:
执行所述第一PP以生成满足所述第一子句的第一通过二进制大对象集合和不满足所述第一子句的第一失败二进制大对象集合;
在所述第一失败二进制大对象集合上执行所述第二PP,以生成满足所述第二子句的第二通过二进制大对象集合和不满足所述第二子句的第二失败二进制大对象集合;以及
利用所述第一通过二进制大对象集合和所述第二通过二进制大对象集合的并集来继续所述PP序列。
11.根据权利要求6所述的方法,其中所述表达式包括第三PP的第三子句和第四PP的第四子句的逻辑与运算,其中执行所述PP序列还包括:
执行所述第三PP以生成满足所述第三子句的第三通过二进制大对象集合和不满足所述第三子句的第三失败二进制大对象集合;
在所述第三通过二进制大对象集合上执行所述第四PP,以生成满足所述第四子句的第四通过二进制大对象集合和不满足所述第四子句的第四失败二进制大对象集合;以及
利用所述第四通过二进制大对象集合继续所述PP序列。
12.根据权利要求6所述的方法,其中所述表达式包括第五子句的逻辑非运算,其中确定所述PP序列还包括:
在执行与所述第五子句相关联的第五PP或执行与作为所述第五子句的逻辑非的子句关联的第六PP之间进行选择。
13.根据权利要求6所述的方法,还包括:
分析所接收的用于搜索所述数据库的查询;
基于所分析的所述查询来选择PP;以及
训练所选择的所述PP。
14.一种系统,包括用于执行根据权利要求6-13中任一项所述的方法的部件。
15.至少一种机器可读介质,包括指令,所述指令在由机器执行时使所述机器执行根据权利要求6-13中任一项所述的方法。
CN201980038901.0A 2018-06-08 2019-05-30 利用概率谓词来加速机器学习推理 Pending CN112639769A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/003,495 US20190378028A1 (en) 2018-06-08 2018-06-08 Accelerating machine learning inference with probabilistic predicates
US16/003,495 2018-06-08
PCT/US2019/034766 WO2019236385A1 (en) 2018-06-08 2019-05-30 Accelerating machine learning inference with probabilistic predicates

Publications (1)

Publication Number Publication Date
CN112639769A true CN112639769A (zh) 2021-04-09

Family

ID=67060468

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980038901.0A Pending CN112639769A (zh) 2018-06-08 2019-05-30 利用概率谓词来加速机器学习推理

Country Status (4)

Country Link
US (1) US20190378028A1 (zh)
EP (1) EP3803634A1 (zh)
CN (1) CN112639769A (zh)
WO (1) WO2019236385A1 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10824624B2 (en) * 2018-07-12 2020-11-03 Bank Of America Corporation System for analyzing, optimizing, and remediating a proposed data query prior to query implementation
US11449796B2 (en) * 2019-09-20 2022-09-20 Amazon Technologies, Inc. Machine learning inference calls for database query processing
US20210124739A1 (en) * 2019-10-29 2021-04-29 Microsoft Technology Licensing, Llc Query Processing with Machine Learning
US20220147516A1 (en) * 2020-11-06 2022-05-12 Twitter, Inc. Machine learning using query engines
US11782918B2 (en) * 2020-12-11 2023-10-10 International Business Machines Corporation Selecting access flow path in complex queries
US11941036B2 (en) * 2022-06-03 2024-03-26 Capital One Services, Llc Methods and arrangements for similarity search based on multi-label text classification
WO2023236187A1 (en) * 2022-06-10 2023-12-14 Baidu.Com Times Technology (Beijing) Co., Ltd. Parallel computing of ml services and applications

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080195577A1 (en) * 2007-02-09 2008-08-14 Wei Fan Automatically and adaptively determining execution plans for queries with parameter markers
CN104685499A (zh) * 2012-08-20 2015-06-03 甲骨文国际公司 过滤/投影操作的硬件实现

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080195577A1 (en) * 2007-02-09 2008-08-14 Wei Fan Automatically and adaptively determining execution plans for queries with parameter markers
CN104685499A (zh) * 2012-08-20 2015-06-03 甲骨文国际公司 过滤/投影操作的硬件实现

Also Published As

Publication number Publication date
US20190378028A1 (en) 2019-12-12
EP3803634A1 (en) 2021-04-14
WO2019236385A1 (en) 2019-12-12

Similar Documents

Publication Publication Date Title
Lu et al. Accelerating machine learning inference with probabilistic predicates
CN112639769A (zh) 利用概率谓词来加速机器学习推理
Xu et al. Synthesizing tabular data using generative adversarial networks
US10451712B1 (en) Radar data collection and labeling for machine learning
Shanthamallu et al. A brief survey of machine learning methods and their sensor and IoT applications
Kim et al. Hypergraph attention networks for multimodal learning
Feng et al. Comparison of advanced imputation algorithms for detection of transportation mode and activity episode using GPS data
US10642891B2 (en) Graph matching by sub-graph grouping and indexing
CA3076638A1 (en) Systems and methods for learning user representations for open vocabulary data sets
Choi et al. Dynamic graph convolutional networks with attention mechanism for rumor detection on social media
Dhiman et al. Multi-modal active learning with deep reinforcement learning for target feature extraction in multi-media image processing applications
US11562179B2 (en) Artificial intelligence system for inspecting image reliability
US11386655B2 (en) Image processing neural network systems and methods with scene understanding
Gomes et al. A survey on semi-supervised learning for delayed partially labelled data streams
EP3765995B1 (en) Systems and methods for inter-camera recognition of individuals and their properties
Sun et al. Categorizing malware via A Word2Vec-based temporal convolutional network scheme
Karras et al. Pattern recognition and event detection on IoT data-streams
De Albuquerque Filho et al. A review of neural networks for anomaly detection
Marshall et al. A neural network approach for truth discovery in social sensing
Chemchem et al. Deep learning and data mining classification through the intelligent agent reasoning
Do et al. Outlier detection on mixed-type data: an energy-based approach
Blasch et al. Physics-based and human-derived information fusion video activity analysis
Guo et al. Counterfactual learning on graphs: A survey
Zhu et al. Cross-Modal Retrieval: A Systematic Review of Methods and Future Directions
US20220269899A1 (en) Image-based vehicle classification

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination