Network Applications of Bloom Filters: A Survey

Network Applications of Bloom Filters: A Survey

一、False Positive rate 假阳性 / 误判率

Bloom Filter有一个可预测的误判率,可通过调整hash function数量k,以及位数组m大小来控制。
参数:
m:bloom filter size
在这里插入图片描述

n:elements number
k:hash函数个数 / hash次数

assume:kn < m / m >> n(保证filter不满)

1. self

一个element,hash一次,某位置1的概率:
P ( 1 个 e l e m e n t , h a s h 一次,某位置 1 ) = 1 m P(1个element,hash一次,某位置1) = \frac {1} {m} P(1elementhash一次,某位置1)=m1
一个element,hash一次,该位不置1的概率:
P ( 1 个 e l e m e n t , h a s h 一次,该位不置 1 ) = 1 − 1 m P(1个element,hash一次,该位不置1) = 1 - \frac 1 m P(1elementhash一次,该位不置1)=1m1
一个element,hash k次,该位不置1的概率:
P ( 1 个 e l e m e n t , h a s h   k 次,该位不置 1 ) = ( 1 − 1 m ) k = ( ( 1 − 1 m ) − m ) − k m ≈ e − k m \begin{aligned} P(1个element,hash \ k次,该位不置1) &= (1 - \frac 1 m)^k \\ &= ((1 - \frac 1 m)^{-m}) ^{- \frac k m}\\ &≈ e^{-\frac k m} \end{aligned} P(1elementhash k次,该位不置1)=(1m1)k=((1m1)m)mkemk
上式用e的极限:
lim ⁡ x → ∞ ( 1 + 1 x ) x = e lim ⁡ x → ∞ ( 1 − 1 x ) x = lim ⁡ x → ∞ ( ( 1 + ( − 1 x ) ) − x ) − 1 = e − 1 \begin{aligned} \lim_{x\to \infty} (1 + \frac 1 x) ^x &= e\\ \lim_{x\to \infty} (1 - \frac 1 x) ^x &= \lim_{x\to \infty} ((1 + (- \frac 1 x)) ^{-x})^{-1} \\ &= e^{-1} \end{aligned} xlim(1+x1)xxlim(1x1)x=e=xlim((1+(x1))x)1=e1
n个elements,hash k次,某位不置1的概率:
P ( n 个 e l e m e n t s , h a s h   k 次,某位不置 1 ) = ( 1 − 1 m ) k n ≈ e − n k m \begin{aligned} P(n个elements,hash \ k次,某位不置1)&=(1 - \frac 1 m)^{kn}\\ &≈ e^{-\frac {nk} m} \end{aligned} P(nelementshash k次,某位不置1)=(1m1)knemnk
n个elements,hash k次,某位置1的概率:
这个概率是:n个elements,hash k次之后的状态中,bloom filter中1的概率。
P ( n 个 e l e m e n t s , h a s h   k 次,某位置 1 ) = 1 − ( 1 − 1 m ) k n ≈ 1 − e − k n m \begin{aligned} P(n个elements,hash \ k次,某位置1)&=1 - (1 - \frac 1 m)^{kn}\\ &≈ 1 - e^{-\frac {kn} m} \end{aligned} P(nelementshash k次,某位置1)=1(1m1)kn1emkn
PS:
以上,“置1” -> “不置1” -> “置1”,这样计算原因:hash k次,有重复置1。

假阳 / 误判:新的element来,hash k次之后,原本不应全为1,但事实是,得到的全是1。
(新来的需要hash k次)
P ( f a l s e   p o s i t i v e ) = ( 1 − ( 1 − 1 m ) k n ) k ≈ ( 1 − e − k n m ) k \begin{aligned} P(false \ positive) &=(1 - (1 - \frac 1 m)^{kn})^k\\ &≈ (1 - e^{-\frac {kn} m})^k \end{aligned} P(false positive)=(1(1m1)kn)k(1emkn)k
以上误判率中,m↑ p↓ / n↓ p↓,确定p随k的变化。
先定m,根据内存大小确定,给定一个合适的m值。
令 f ( k ) = ( 1 − e − k n m ) k 两边取 l n l n ( f ( k ) ) = l n ( ( 1 − e − k n m ) k ) = k l n ( 1 − e − k n m ) 两边求导 1 f ( k ) f ′ ( k ) = l n ( 1 − e − k n m ) + k ( l n ( 1 − e − k n m ) ) ′ = l n ( 1 − e − k n m ) + k ( 1 1 − e − k n m ) ( 1 − e − k n m ) ′ = l n ( 1 − e − k n m ) + k ( 1 1 − e − k n m ) ( − e − k n m ) ( − k n m ) ′ = l n ( 1 − e − k n m ) + k ( 1 1 − e − k n m ) ( − e − k n m ) ( − n m ) = l n ( 1 − e − k n m ) + k n m e − k n m 1 − e − k n m 导数 f ′ ( k ) = 0 时,求一个极值: 1 f ( k ) f ′ ( k ) = 1 f ( k ) ⋅ 0 = 0 = l n ( 1 − e − k n m ) + k n m e − k n m 1 − e − k n m 去分母: 0 = ( 1 − e − k n m ) l n ( 1 − e − k n m ) + k n m e − k n m 0 = ( 1 − e − k n m ) l n ( 1 − e − k n m ) − e − k n m ( − k n m ) 0 = ( 1 − e − k n m ) l n ( 1 − e − k n m ) − e − k n m l n e − k n m 即: e − k n m l n e − k n m = ( 1 − e − k n m ) l n ( 1 − e − k n m ) \begin{aligned} 令 \qquad f(k) &= (1 - e^{-\frac {kn} m})^k \\ 两边取ln \quad ln(f(k)) &= ln((1 - e^{-\frac {kn} m})^k) \\ &= kln(1 - e^{-\frac {kn} m}) \\ 两边求导 \qquad \frac 1 {f(k)}f'(k) &= ln(1 - e^{-\frac {kn} m}) + k(ln(1 - e^{-\frac {kn} m}))' \\ &= ln(1 - e^{-\frac {kn} m}) + k(\frac 1 {1 - e^{-\frac {kn} m}})(1 - e^{-\frac {kn} m})' \\ &= ln(1 - e^{-\frac {kn} m}) + k(\frac 1 {1 - e^{-\frac {kn} m}})(- e^{-\frac {kn} m})(-\frac {kn} m)' \\ &= ln(1 - e^{-\frac {kn} m}) + k(\frac 1 {1 - e^{-\frac {kn} m}})(- e^{-\frac {kn} m})(-\frac n m) \\ &= ln(1 - e^{-\frac {kn} m}) + \frac {\frac {kn} m e^{-\frac {kn} m}} {1 - e^{-\frac {kn} m}}\\ 导数f'(k) = 0 时,求一个极值: \\ \frac 1 {f(k)}f'(k)&= \frac 1 {f(k)} · 0 \\ &= 0 \\ &= ln(1 - e^{-\frac {kn} m}) + \frac {\frac {kn} m e^{-\frac {kn} m}} {1 - e^{-\frac {kn} m}}\\ 去分母:0 &= (1 - e^{-\frac {kn} m})ln(1 - e^{-\frac {kn} m}) + \frac {kn} m e^{-\frac {kn} m} \\ 0 &= (1 - e^{-\frac {kn} m})ln(1 - e^{-\frac {kn} m}) - e^{-\frac {kn} m}(-\frac {kn} m) \\ 0 &= (1 - e^{-\frac {kn} m})ln(1 - e^{-\frac {kn} m}) - e^{-\frac {kn} m}lne^{-\frac {kn} m} \\ 即:e^{-\frac {kn} m}lne^{-\frac {kn} m}&= (1 - e^{-\frac {kn} m})ln(1 - e^{-\frac {kn} m}) \\ \end{aligned} f(k)两边取lnln(f(k))两边求导f(k)1f(k)导数f(k)=0时,求一个极值:f(k)1f(k)去分母:000即:emknlnemkn=(1emkn)k=ln((1emkn)k)=kln(1emkn)=ln(1emkn)+k(ln(1emkn))=ln(1emkn)+k(1emkn1)(1emkn)=ln(1emkn)+k(1emkn1)(emkn)(mkn)=ln(1emkn)+k(1emkn1)(emkn)(mn)=ln(1emkn)+1emknmknemkn=f(k)10=0=ln(1emkn)+1emknmknemkn=(1emkn)ln(1emkn)+mknemkn=(1emkn)ln(1emkn)emkn(mkn)=(1emkn)ln(1emkn)emknlnemkn=(1emkn)ln(1emkn) 令: { x = e − k n m y = 1 − e − k n m , x + y = 1 上式可写为: x l n x = y l n y 讨论 f ( x ) = x l n x 函数: f ′ ( x ) = l n x + 1 f ′ ( x ) = 0 时,解得 x = 1 e f ( 1 e ) = − 1 e , f ( 0 ) = 0 , f ( 1 ) = 0 \begin{aligned}&令: \begin {cases} x = e^{-\frac {kn} m} \\ y = 1 - e^{-\frac {kn} m} \end{cases},x + y = 1 \\ &上式可写为:xlnx = ylny \\ &讨论f(x) = xlnx 函数 :f'(x) = lnx + 1 \\ &f'(x) = 0时,解得x = \frac 1 e \\ &f(\frac 1 e) = -\frac 1 e,f(0) =0,f(1) = 0\end{aligned} 令:{x=emkny=1emknx+y=1上式可写为:xlnx=ylny讨论f(x)=xlnx函数:f(x)=lnx+1f(x)=0时,解得x=e1f(e1)=e1f(0)=0f(1)=0
绘制函数图像如图:
在这里插入图片描述
要求: { x + y = 1 x l n x = y l n y  函数值相等 ,唯一解: x = y = 1 2 \begin{aligned} 要求:\begin {cases} \begin{equation} x + y = 1\qquad\end{equation} \\ \begin{equation} xlnx = ylny \ 函数值相等\quad \end{equation} \end{cases},唯一解:x=y=\frac 1 2 \\ \end{aligned} 要求:{x+y=1xlnx=ylny 函数值相等,唯一解:x=y=21
解释:
因为函数值相等的解,只能在[0, 1]区间,
但是该区间内的解不满足(1)式,因为函数不对称。
具体如下图所示:
在这里插入图片描述
由以上可知, x = y = 1 2 即: x = e − k n m = 1 2 − k n m = l n 1 2 = l n 2 − 1 = − l n 2 k = m n l n 2 即: f ′ ( k ) = 0 时, k = m n l n 2 导数等于 0 的点, 说明 k = m n l n 2 这是个极值点,需要讨论两侧单调性 \begin{aligned} 由以上可知,&x = y = \frac 1 2 \\ 即:&x = e^{-\frac {kn} m} = \frac 1 2 \\ -\frac {kn} m &=ln\frac 1 2 \\ &= ln2^{-1} \\ &= -ln2 \\ k &= \frac m nln2 \\ 即:&f'(k) = 0 时,k = \frac m nln2\\ 导数等于0的点,&说明k = \frac m nln2这是个极值点,需要讨论两侧单调性 \end{aligned} 由以上可知,即:mknk即:导数等于0的点,x=y=21x=emkn=21=ln21=ln21=ln2=nmln2f(k)=0时,k=nmln2说明k=nmln2这是个极值点,需要讨论两侧单调性 f ( k ) = ( 1 − e − k n m ) k f ′ ( k ) = 0 时, k = m n l n 2 1 f ( k ) f ′ ( k ) = l n ( 1 − e − k n m ) + k ( l n ( 1 − e − k n m ) ) ′ f ′ ( k ) = f ( k ) [ l n ( 1 − e − k n m ) + k n m e − k n m 1 − e − k n m ] = ( 1 − e − k n m ) k [ l n ( 1 − e − k n m ) + k n m e − k n m 1 − e − k n m ] = ( 1 − e − k n m ) k − 1 [ ( 1 − e − k n m ) l n ( 1 − e − k n m ) + k n m e − k n m ] = ( 1 − e − k n m ) k − 1 [ ( 1 − e − k n m ) l n ( 1 − e − k n m ) − e − k n m l n e − k n m ] 可以写成 = ( 1 − e − k n m ) k − 1 ( y l n y − x l n x ) 的形式 \begin{aligned} f(k) &= (1 - e^{-\frac {kn} m})^k\\ f'(k) &= 0 时,k = \frac m nln2\\ \frac 1 {f(k)}f'(k) &= ln(1 - e^{-\frac {kn} m}) + k(ln(1 - e^{-\frac {kn} m}))' \\ f'(k) &= f(k)[ln(1 - e^{-\frac {kn} m}) +\frac {\frac {kn} m e^{-\frac {kn} m}} {1 - e^{-\frac {kn} m}}]\\ &= (1 - e^{-\frac {kn} m})^k[ln(1 - e^{-\frac {kn} m}) +\frac {\frac {kn} m e^{-\frac {kn} m}} {1 - e^{-\frac {kn} m}}]\\ &=(1 - e^{-\frac {kn} m})^{k-1}[(1 - e^{-\frac {kn} m})ln(1 - e^{-\frac {kn} m}) +\frac {kn} m e^{-\frac {kn} m}]\\ &=(1 - e^{-\frac {kn} m})^{k-1}[(1 - e^{-\frac {kn} m})ln(1 - e^{-\frac {kn} m}) -e^{-\frac {kn} m}lne^{-\frac {kn} m}]\\ 可以写成 &= (1 - e^{-\frac {kn} m})^{k-1}(ylny - xlnx)的形式 \\ \end{aligned} f(k)f(k)f(k)1f(k)f(k)可以写成=(1emkn)k=0时,k=nmln2=ln(1emkn)+k(ln(1emkn))=f(k)[ln(1emkn)+1emknmknemkn]=(1emkn)k[ln(1emkn)+1emknmknemkn]=(1emkn)k1[(1emkn)ln(1emkn)+mknemkn]=(1emkn)k1[(1emkn)ln(1emkn)emknlnemkn]=(1emkn)k1(ylnyxlnx)的形式 ( 1 ) 首先讨论 ( 1 − e − k n m ) k − 1 的符号: 由最初 a s s u m e : k n < m 可得: k n m < 1 ∈ ( 0 , 1 ) − k n m ∈ ( − 1 , 0 ) e − k n m ∈ ( e − 1 , e 0 ) ,即 ( e − 1 , 1 ) 1 − e − k n m ∈ ( 0 , 1 − e − 1 ) ( 1 − e − k n m ) k − 1 > 0 \begin{aligned}(1)首先讨论&(1 - e^{-\frac {kn} m})^{k-1}的符号:\\ 由最初assume&:kn < m可得:\frac {kn} m < 1 ∈(0,1) \\ -\frac {kn} m &∈(-1,0) \\ e^{-\frac {kn} m}&∈(e^{-1},e^0),即(e^{-1},1) \\ 1 - e^{-\frac {kn} m}&∈(0,1-e^{-1})\\ (1 - e^{-\frac {kn} m})^{k-1} &> 0 \end{aligned} (1)首先讨论由最初assumemknemkn1emkn(1emkn)k1(1emkn)k1的符号:kn<m可得:mkn<1(01)(10)(e1e0),即(e11)(01e1)>0 ( 2 ) 再讨论 ( y l n y − x l n x )的符号: k < m n l n 2 时 : k n m < l n 2 − k n m > − l n 2 ,即 − k n m > l n 1 2 e − k n m > e l n 1 2 ,即 e − k n m > 1 2 ,即 x > 1 2 根据 x 下图图像可得: y l n y − x l n x < 0 此时 f ′ ( k ) < 0 , f ( k ) 递减 ↓ 同理, k > m n l n 2 时 : x > 1 2 , y l n y − x l n x > 0 , f ′ ( k ) > 0 , f ( k ) 递增 ↑ \begin{aligned} (2)再讨论&(ylny - xlnx)的符号:\\ k < \frac m nln2时&:\\ \frac {kn} m &< ln2\\ -\frac {kn} m &> -ln2,即-\frac {kn} m > ln\frac 1 2\\ e^{-\frac {kn} m} &> e^{ln \frac 1 2},即e^{-\frac {kn} m} > \frac1 2 ,即 x > \frac 1 2\\ 根据&x下图图像可得:ylny - xlnx <0\\ 此时&f'(k) < 0,f(k)递减↓\\ 同理,k > \frac m nln2时&:x>\frac1 2 ,ylny - xlnx >0,f'(k) > 0,f(k)递增↑ \end{aligned} (2)再讨论k<nmln2mknmknemkn根据此时同理,k>nmln2ylnyxlnx)的符号:<ln2>ln2,即mkn>ln21>eln21,即emkn>21,即x>21x下图图像可得:ylnyxlnx<0f(k)<0f(k)递减x>21ylnyxlnx>0f(k)>0f(k)递增
在这里插入图片描述

根据以上推理可得如下结论:
k < m n l n 2 递减, k > m n l n 2 递增,在 k = m n l n 2 处取得极小值(最小误判率) k < \frac m nln2递减,k > \frac m nln2递增,在k=\frac m n ln2处取得极小值(最小误判率) k<nmln2递减,k>nmln2递增,在k=nmln2处取得极小值(最小误判率)

2. 论文方法

  • 17
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值