一种数据过滤、构造数据滤波器的方法及装置的制造方法_3

文档序号:9471405阅读:来源:国知局
向量,都对应有一个标识,且检测向量与标识为一一对应的关系。只要知道了标识, 就可以知道该标识对应于哪个检测向量。
[0091] 可选的,本发明实施例中,在将样本向量进行分段,获得k个样本子向量之前,还 可以包括:从所述特定分布中获得所述k个检测向量,并对所述k个检测向量分别进行归一 化操作,使所述k个检测向量的L2范数为1 ;其中,所述特定分布满足:从所述特定分布中 获得的任意向量,在进行归一化操作后,其L2范数均为1。
[0092] S卩,所述特定分布至少需满足一个条件:从所述特定分布中获得的任意向量,在进 行归一化操作后,其L2范数均为1。即,所述特定分布在进行随机投影时具有一些特质,其 中一个特质就是可以保持从中获取的向量的L2范数,因为本发明实施例中在构造所述数 据滤波器时需要使用哈希函数,只有所述特定分布具有这些特质,才可以尽量保证哈希函 数的局部敏感性(locality-sensitiveproperty)。具体的,所述特定分布例如可以是标准 正态分布,或者也可以是其他具有这些特质的分布。其中,本发明实施例中所述的标准正态 分布,是指均值为0、方差为1的高斯分布。
[0093]可选的,本发明实施例中,在获得所述k个样本子向量之后,还可以包括:对所述k个样本子向量分别进行归一化操作。则,将所述k个样本子向量分别与预设的k个检测向 量中相应的检测向量进行内积运算,获得k个第二运算结果,可以包括:将归一化操作后的 所述k个样本子向量分别与所述k个检测向量中相应的检测向量进行所述内积运算,获得 所述k个第二运算结果。
[0094]例如对于所述N个样本向量中的第i个样本向量,可以将其进行分段,分段方式如 下:假设所述第i个样本向量可以用d维实数空间的向量y进行表述,即y为所述第i个样 本向量。给定整数参数k,首先对向量y的d个坐标进行随机排序,然后将排序后的向量y 均匀的分为k段,从而得到这1^个样本子向量。其中,当d不能被k整除时, yk的长度小于d/k,否则每个样本子向量的长度均为d/k。
[0095]本发明实施例中,在获得所述k个检测向量后,一样可以对所述k个检测向量进行 归一化操作,以使所述k个检测向量的L2范数的值为1。
[0096] 下面以yk为例,假设yk⑴表示yk中的第i个元素。对yk进行归一化操作的过程 如下:
[0099] 其中S2为yk的L2范数,yk⑴表示归一化后的yk。
[0100] 在将所述k个样本子向量均进行归一化操作后,可以将归一化操作后的所述k个 样本子向量分别与所述k个检测向量中相应的检测向量进行所述内积运算。本发明实施例 中,将一个样本子向量和与其相应的检测向量进行所述内积运算,"相应"的含义是指对应 的标识相同。所述k个检测向量中,每个检测向量都对应有标识,那么,对于每个样本向量, 在将其划分为所述k个样本子向量后,可以为每个样本子向量设置一个标识。总体来说,可 以为所述k个样本子向量共设置k个标识,而所述k个检测向量也共对应有k个标识,则, 为所述k个样本子向量设置的k个标识和所述k个检测向量对应的k个标识分别相同。例 如,共有3个检测向量,其对应的标识分别为1、2、3,针对一个样本向量共划分出3个样本子 向量,也为其分别设置标识为1、2、3。
[0101] 那么,将所述k个样本子向量分别与所述k个检测向量中相应的检测向量进行所 述内积运算,具体方式为:将标识为1的样本子向量与标识同为1的检测向量进行所述内积 运算,将标识为2的样本子向量与标识同为2的检测向量进行所述内积运算,……,将标识 为k的样本子向量与标识同为k的检测向量进行所述内积运算,共可以得到所述k个第二 运算结果。
[0102] 这其中,标识为1的样本子向量与标识同为1的检测向量进行所述内积运算,该第 二运算结果的标识例如是标识1,标识为2的样本子向量与标识同为2的检测向量进行所述 内积运算,该第二运算结果的标识例如是标识2,……,标识为k的样本子向量与标识同为 k的检测向量进行所述内积运算,该第二运算结果的标识例如是标识k。可以看到,每个第 二运算结果的标识实际上是该第二运算结果所对应的检测向量的标识。
[0103] 例如,确定出所述k个第二运算结果中值最大的第二运算结果,则获取该值最大 的第二运算结果所对应的检测向量的标识,例如针对一个样本向量来说,确定出值最大的 第二运算结果所对应的检测向量的标识是标识3。因为为每个检测向量都预设有对应的哈 希桶,且检测向量的标识与哈希桶之间为一一对应的关系,只要确定出检测向量的标识就 能够确定出对应的哈希桶,因此可以将该样本向量映射到标识3对应的哈希桶中。
[0104] 对所述N个样本向量中的每一个样本向量都进行相同的处理,则每个样本向量都 可以被映射到一个哈希桶中。在全部的样本向量映射完毕后,可以统计每个哈希桶中映射 至IJ的样本向量的数量,将一个哈希桶中映射到的样本向量的总数量记为该哈希桶的值。例 如,共有6个样本向量映射到了标识为标识3的哈希桶中,则标识3的哈希桶的值就是6。
[0105] 在得到每个哈希桶的值后,所述数据滤波器相当于构造完毕。其中,所述数据滤波 器中包括所述k个检测向量和所述k个哈希桶,其中每个哈希桶都具有对应的值,从而可以 根据所述k个检测向量将待测向量映射到相应的哈希桶中,以确定应对相应的待测向量进 行何种处理。
[0106] 本发明实施例中,所述待测向量即为待测流数据。
[0107] 对所述待测向量进行分段,分段方式与对所述样本向量的分段方式可以相同,即: 假设所述待测向量可以用d维实数空间的向量X进行表述,即X为所述待测向量。给定整 数参数k,首先对向量X的d个坐标进行随机排序(randomshuffle),然后将排序后的向量 X均匀的分为k段(group),从而得到XpX2,…,xk这1^个待测子向量。其中,当d不能被 k整除时,Xk的长度小于d/k,否则每个待测子向量的长度均为d/k。
[0108] 可选的,本发明实施例中,在将待测向量进行分段,获得k段待测子向量之后,所 述方法还包括:对所述k个待测子向量分别进行归一化操作。其中,对所述待测子向量进行 归一化操作的方法与对所述样本测子向量进行归一化操作的方法可以相同。
[0109] 下面以Xk为例,假设xk(i)表示Xk中的第i个元素。对知进行归一化操作的过程 如下:
[0112] 其中S1为Xk的L2范数,Xk⑴表示归一化后的xk。
[0113] 本发明实施例中,可以将所述待测向量分为k个不同的待测子向量,并且每个待 测子向量也是归一化的。
[0114] 本发明实施例中,对所述待测向量、所述样本向量和所述检测向量均可以进行归 一化操作,能够使得到的结果更为准确。
[0115] 步骤102 :将所述k个待测子向量分别与预设的k个检测向量中相应的检测向量 进行内积运算,获得k个第一运算结果。
[0116] 本发明实施例中,在获得所述k个待测子向量后,可以将所述k个待测子向量分别 与所述k个检测向量中相应的检测向量进行所述内积运算。同样的,本发明实施例中,将一 个待测子向量和与其相应的检测向量进行所述内积运算,"相应"的含义是指对应的标识相 同。所述k个检测向量中,每个检测向量都对应有标识,那么,对于每个待测向量,在将其划 分为所述k个待测子向量后,可以为每个待测子向量设置一个标识。总体来说,可以为所述 k个待测子向量共设置k个标识,而所述k个检测向量也共对应有k个标识,则,为所述k 个待测子向量设置的k个标识和所述k个检测向量对应的k个标识分别相同。例如,共有 3个检测向量,其对应的标识分别为1、2、3,针对一个待测向量共划分出3个样本子向量,也 为其分别设置标识为1、2、3。
[0117] 那么,将所述k个待测子向量分别与所述k个检测向量中相应的检测向量进行所 述内积运算,具体方式为:将标识为1的待测子向量与标识同为1的检测向量进行所述内积 运算,将标识为2的待测子向量与标识同为2的检测向量进行所述内积运算,……,将标识 为k的待测子向量与标识同为k的检测向量进行所述内积运算,共可以得到所述k个第一 运算结果。
[0118] 可选的,本发明实施例中,如果在获得所述k个待测子向量后对所述k个待测子向 量分别进行了归一化操作,则该步骤可以是将归一化操作后的所述k个待测子向量分别于 所述k个检测向量中相应的检测向量进行所述内积运算,获得所述k个第一运算结果。
[0119] 步骤103 :确定其中值最大的第一运算结果,获取该第一运算结果所对应的检测 向量的标识;其中,检测向量与标识为 对应的关系。
[0120] 例如,标识为1的待测子向量与标识同为1的检测向量进行所述内积运算,该第一 运算结果的标识例如是标识1,标识为2的待测子向量与标识同为2的检测向量进行所述内 积运算,该第一运算结果的标识例如是标识2,……,标识为k的待测子向量与标识同为k 的检测向量进行所述内积运算,该第一运算结果的标识例如是标识k。可以看到,每个第一 运算结果的标识实际上是该第一运算结果所对应的检测向量的标识。
[0121] 在获得所述k个第一运算结果后,确定出所述k个第一运算结果中值最大第一运 算结果,再获取该值最大的第一运算结果所对应的检测向量的标识。例如对于一个待测向 量来说,确定出的值最大的第一运算结果所对应的检测向量的标识是标识2。
[0122] 步骤104 :将所述待测向量按照获取的、与值最大的第一运算结果所对应的检测 向量的标识映射到预设的数据滤波器中,通过所述数据滤波器确定是否将所述待测向量滤 除。
[0123] 在步骤101之前,所述数据滤波器已经构造完毕,因此可以直接将所述待测向量 映射到所述数据滤波器中,通过所述数据滤波器即可确定是否要滤除所述待测向量。
[0124] 可选的,本发明实施例中,将所述待测向量按照获取的、与值最大的第一运算结果 所对应的检测向量的标识映射到预设的数据滤波器中,通过所述数据滤波器确定是否将所 述待测向量滤除,包括:将所述待测向量映射到特定的哈希桶中,并判断所述特定的哈希桶 的值是否大于预设阈值;其中,所述特定的哈希桶为:所述数据滤波器中的、与值最大的第 一运算结果所对应的检测向量的标识对应的哈希桶;若大于,确定将所述待测向量滤除。
[0125] 例如,确定出的值最大的第一运算结果所对应的检测向量的标识是标识2,则可以 将所述待测向量映射到所述数据滤波器中、标识2对应的哈希桶中,此时,所述标识2对应 的哈希桶就可以称为所述特定的哈希桶。而如果确定出的值最大的第一运算结果所对应的 检测向量的标识是标识4,则可以将所述待测向量映射到所述数据滤波器中、标识4对应的 哈希桶中,此时,所述标识4对应的哈希桶就可以称为所述特定的哈希桶。即,所述特定的 哈希桶并不是一个固定的哈希桶,针对确定出的、与值最大的第一运算结果对应的标识的 不同,所述特定的哈希桶也会相应不同。
[0126] 本发明实施例中,无论是映射所述样本向量,还是映射所述待测向量,所依赖的都 是所述k个检测向量。因为,所述k个待测子向量的标识、所述k个样本子向量的标识和所 述哈希桶的标识,都是根据所述k个检测向量的标识来确定的,因此,如果将一个待测向量 和一个样本向量同时映射到了一个哈希桶中,说明在将这两个向量与所述k个检测向量进 行运算时,运算出来的值最大的运算结果对应的检测向量都是同一个检测向量,也就说明 这两个向量是相似的。
[0127] 在将所述待测向量映射到一个哈希桶中后,可以确定所述哈希桶的值,在确定所 述哈希桶的值之后,可以判断所述哈希桶的值是否大于所述预设阈值。
[0128] 若所述哈希桶的值大于所述预设阈值,则确定所述待测向量与多个样本向量均相 似,确定所述待测向量应当被滤除。
[0129] 可见,所述待测向量所映射到的哈希桶的值越大,所述待测向量被滤除的可能性 就越大。因为所述待测向量所映射到的哈希桶的值越大,说明映射到该哈希桶的样本向量 越多,也同时说明所述待测向量与样本集中的多个样本向量均相似,则可以确定该待测向 量为应当被滤除的向量。
[0130] 其中,所述预设阈值可以根据不同情况来进行不同的设定。本发明实施例中,通过 设定所述预设阈值,可以控制被滤除的向量的数目,也就可以控制数据滤波的严格程度。
[0131] 本发明实施例中,在进行具体操作时,可以采用级联的方式设置多个本发明实施 例中的数据滤波器,当然,每个数据滤波器可以采用不同的检测向量和样本向量来进行构 造。这样,对待测向量进行多层级的滤波,进一步增强滤波效果,提高数据安全性。
[0132] 请参见图2,基于同一发明构思,本发明实施例提供一种构造数据滤波器的方法, 所述方法的主要流程如下:
[0133] 步骤201 :取N个样本向量,针对所述N个样本向量中的每个样本向量,执行以下 步骤:将样本向量进行分段,获得k个样本子向量;将所述k个样本子向量分别与预设的
当前第3页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1