Page 221 - 《软件学报》2021年第11期
P. 221

欧阳佳  等:面向频繁项集挖掘的本地差分隐私事务数据收集方法                                                  3547


                    算法 1. TDC_CLDP_Cand 算法.
                    输入:用户的事务数据 t,所有候选项集 CandI.
                    输出:扰乱后的事务数据 t′.
                    1:   for s∈CandI do:
                    2:      //计算 t 与每个候选项集 s 的分数
                                   α
                                   −⋅ dist (, )t s
                    3:      score ()s =  e  2
                    4:   end for
                    5:   随机选择一个候选项集 t′,其概率为
                                           score ()s′
                    6:      Pr[ is sampled]s′  =
                                        ∑ s CandI∈  score () s
                    7:   return t′
                 3.2   TDC_CLDP算法
                    TDC_CLDP_Cand 算法存在的主要问题是候选项集的样品空间随着项集域的大小 d 呈指数级增长,导致时
                 间复杂度非常高.本文基于 TDC_CLDP_Cand 提出 TDC_CLDP 算法,该算法是对 TDC_CLDP_Cand 的具体实现,
                 其优点是可以避免直接从候选项集的样品空间中进行抽样.TDC_CLDP 方法见算法 2.
                    算法 2. TDC_CLDP 算法.
                    输入:用户的事务数据 t∈D,|t|≤m,项集域 I={a 1 ,…,a d },隐私参数α,输出的事务数据长度 k.
                    输出:扰乱的事务数据 t′,|t′|=k,且满足α-CLDP.
                    1:   t′=∅,d=|I|
                    2:   Z对 t 作等长处理

                    3:   t =  , t I =  { ,...,a 1  a d } {a∪  d +  1 ,...,a d m+  } ,  //已有项集域的项为 a 1 ,…,a d ,补充的项为 a d+1 ,…,a d+m ,属于噪音项.
                    4:   for i=0; i<m−|t|; i=i+1 do:


                    5:      t =∪  a di++ 1
                            t
                    6:   end for

                    7:   Z对 t 作随机化处理
                            −  α  0 ⋅  k ⎛  −  α  ⋅  (k −  inter )  ⎞
                    8:   Ω =  e  2  ⋅  C +  k  ∑  e ⎜  2  ⋅  (C inter ⋅  C k − inter  )⎟    //*部分表示相似度为 0,**部分表示相似度大于 0
                                    inter= 1 ⎝  ⎜  m   d   ⎟  ⎠
                                 d
                              *
                                               **
                    9:   r=uniform_random(0.0,1.0)
                    10:  inter=0
                            − α ⋅ 0 C k
                    11:  p =  e  2  ⋅  d    //相似度为 0 的候选项集被选中的概率
                                Ω
                    12: while p<r do:
                    13:     inter=inter+1
                                 − α ⋅  (k inter )
                                    −
                                                1 inter
                                e  2   ⋅  (C inter  ⋅  C k −−  )
                    14:     p =  p +      m    d − 1    //相似度大于 0 的候选项集被选中的概率
                                         Ω
                    15: end while

                    16:  t′  t′ =∪  sample (,in rt    te  )   //以等概率方式从 t 中不放回随机抽取 inter 个项,这部分为保留的真实数据


                    17:  t′  t′ =∪  sample (I −  t  ,ki−  nte  ) r   //以等概率方式从 I − 中不放回随机抽取 k−inter 个项,这部分为引入
                                                                 t
                                                  的噪音数据
                    18: return t′
   216   217   218   219   220   221   222   223   224   225   226