21/7/2 读书笔记 基于规则的分类器 PSI隐私集合求交 优化GC的带宽和计算效率

21/7/2 读书笔记

安全计算导论 隐私集合求交(Private-Set Intersection,PSI)

MPC通用协议虽然能够利用电路解决通用的问题,但是对于一些特殊的问题来说,采用通用的方法将带来不可接受的性能损失。故有很多针对特殊使用场景的协议被提出,其较通用协议的效率更高,但是在安全性和泛化性上并不好。

PSI描述了这样一个使用场景:多个参与者各自持有自己的输入,他们需要共同计算出所持有集合的交集,同时还不能让其他参与者知道自己持有的集合的信息。我们介绍一个用于解决双方的PSI问题的协议,其主要基于OPRF的实现。

PRF全称Pseudo-Random Function,伪随机函数。PRF可以描述为一个函数\(F(K,X,Y)\),其中\(K\)表示密钥空间,\(X,Y\)为不同的值空间。对于每个给定的密钥k,\(F\)必须满足随机地将\(X\)映射到\(Y\)中。而OPRF描述了这样一个问题:两个参与者P1和P2,P1负责给出属于X空间的输入序列\(\{x_1,x_2...\}\),而P2负责生成密钥\(k\)。P1和P2共同计算\(F(k,x_i)\),使得P1能够获得所有的\(F(k,x_i)\)而不知道\(k\)是什么,P2则不知道最后的加密结果\(F(k,x_i)\)。对于P1来说,这就好像是将X随机打乱到Y空间中了。

PSSZ(Pinkas-Scheider-Segev-Zohner)构造过程利用OPRF实现PSI,其中它用到了Cuckoo哈希方法

该哈希方法中包含三个不同的随机哈希函数\(h_1,h_2,h_3\)以及一个元素序列\(B[1,2...]\)。输入序列是n个不同的值,对每个值\(x\),我们查看\(B[h_{1,2,3}(x)]\)是否为空,如果有空的地方就将x放进去,如果都不是空的,就随机取一个\(B[h_i(x)]\)放入,然后将原来在里面的值\(x_{next}\)递归地执行相同的操作。如果递归超过一定限度就将其放在额外的一个序列区域\(S\)

在参与者P1、P2各种持有集合X和集合Y且\(|X|=|Y|\)的情况下,PSSZ实现PSI的方式是:

  1. P2利用Cuckoo哈希方法将自己的n个属于X集合的元素映射成长为1.2n的普通序列和另外长为s的额外序列,空的地方补缺省位。

  2. 对P2的1.2n+s长度的序列的每一位执行OPRF。对第i位\(x_i\),P1提供密钥\(k_i\),P2获知\(F(k_i,x_i)\)

  3. P1需要计算以下两个集合:

    \[H=\{F(k_{h_i(x)},x)|x\in X,i\in \{1,2,3\}\}\\ S=\{F(k_{1.2n+j},x)|x\in X,j \in \{1,2,...,s\}\} \]

    随后将这两个集合发送给P2

  4. P2通过查找\(H\)\(S\)就能知道哪些是交集

PSSZ只能应付semi-honest的情境,同时还需要保证\(F(k_a,a)=F(k_b,b)\ only\ if\ a=b\)

安全计算导论 优化混淆电路通信带宽和计算效率

对于姚氏混淆电路GC来说,每次P1都要向P2计算和传输整个混淆表,占用了很大的带宽和计算资源;以及对于P2,需要对混淆表的每一项进行验证,这也导致了计算上的冗余。

GRRx(Garbled Row Reduction by x)混淆表简化,x表示其将原本4行的混淆表简化为x行。比如GRR3就是通过设定合适的加密过程,将四个密文项中的一项在加密过程中保持为固定值(比如全0),而使得需要实际传输的混淆表变成三行。

FreeXOR是基于一个论证而提出的:对于相对独立的秘密,最小分享规模(minimum share sizes)的下限总是指数性提升的。但是这个论断对于XOR这样真值表同时包含2个0和2个1的“对称”门并不适用。通过巧妙的设计就能将无需密文操作仍能保持安全的XOR引入GC中,使得有关XOR的带宽和计算资源得到释放。

Half Gates是在支持FreeXOR的基础上提出的将AND门表达为一个拥有两个half gates的XOR门。一个half gate需要传递两个密文,而由于GRR3中提出的方式,可以将两个密文缩减到一个密文,因此一个AND门只需要传递两个密文。这两个half gates分别是generator half gateevaluater half gate,组合起来实现AND门的功能。


数据挖掘导论 基于规则的分类器

基于规则的分类器中利用一组规则对记录进行分类。一个规则的形式表示为:

\[rule_i:(条件i)\to y_i \]

条件i称为规则前件,其是对属性的一系列测试结果的合取;\(y_i\)规则后件,表示了预测类型。当记录\(x\)符合规则\(rule_i\)的规则前件,称\(rule_i\)覆盖\(x\)\(rule_i\)激发。对于每条规则,定义覆盖率(Coverage)和准确率(Accuracy),前者描述了这条规则对数据集中所有数据的覆盖概率,即所有记录符合规则前件的概率;后者描述了这条规则对已经被覆盖的记录,其预测类型与记录的实际类型相符的概率。

我们将规则的集合称为规则集\(R\)\(R\)可能具有以下特性:

  • 对记录:
    • 互斥规则:\(R\)中不存在两条不同的规则被同一条记录激发
    • 穷举规则:对记录的任何一种可能的属性组合,都至少有一条规则对其形成覆盖
  • 对规则:
    • 有序规则:\(R\)中的规则按照一定优先级排序,此时的有序规则集又称为决策集
    • 无序规则:\(R\)中的多条规则可能被一个记录同时激发,此时通过多条规则进行(加权)投票,以权最高的决定来判断最终分类结果。这使得每个记录都需要对每个规则进行测试,繁琐且性能低。优势在于拓展规则集时无需考虑排序等问题。

我们重点讨论有序规则的分类器,将基于规则的分类器的核心问题归结于:

  • 如何对规则进行排序
  • 如何提取规则

对于第一个问题,主要有两种方案:

  • 基于规则的排序方案:依据规则本身的质量对规则进行排序。这种方法通常期待每个记录都能被覆盖它的“最佳”规则来执行分类。但是这种方法会导致解释性的降低:质量较低的规则序号更靠后,而当其被触发时,说明其之前的所有规则都是不成立的。但是我们并不知道前面那些不成立的规则中哪些对于这个分类是相对有效的,哪些又是相对无关的。这在规则规模较大时会逐渐显著。

    考虑决策集:

    \[(t_1)\to a\\ (t_2)\to b\\ (t_3)\to a\\ (t_4)\to b\\ \]

    如果\(t_3\)被触发,说明前两个规则都是不成立的,而\(t_4\)是否成立仍然未知。我们无法从\(t_{1,2,3}\)总结出分类的一般规律。可能有属于b的记录也同时满足\(\neg a \and \neg b\)

  • 基于类的排序方案:针对解释性的问题,将所有规则后件相同的规则整理为一个整体,然后按照规则后件(即类标签)的信息排序。规则后件相同的规则间没有相对顺序,因为只要满足任何一个的分类结果都是相同的。但是这样会使得高质量但是低类秩的规则被低质量但是高类秩的规则所僭越。大部分著名基于规则的分类器都是基于类的排序方案,这也是接下来讨论的主要形式

对于第二个问题,主要分为直接提取和间接提取。直接提取通常是顺序覆盖,即从数据集中一次能够覆盖一个类的规则集合,利用贪心的方式进行搜索;间接提取则是利用决策树归纳算法等其他算法将数据间联系以更为显然的方式展示后,再归纳总结为决策集。

在顺序覆盖中,假设当前需要覆盖的类是a,核心问题在与如何寻找一个能够覆盖a类的规则,我们将其描述为一个规则的增长问题:

  • 从一般到特殊:初始规则是一个\((\empty)\to a\),即一切记录都被归于a类。我们考察一切可能的属性测试,并尝试将其加入初始规则中,并基于规则评估进行贪心的拓展
  • 从特殊到一般:随机地选择一个正例(即属于a类的某条记录)的属性集合作为初始记录。对初始记录进行合取项的删除并继续探索。

探索的终止条件通常是当规则覆盖反例或规则的质量不再提高。

而对于如何判断规则的质量这个问题,我们需要同时考虑覆盖率和准确率,这里给出几种方法:

  • 似然比:假设k为类的个数,\(f_i\)为被规则覆盖的类i的(在样本中的)观测概率,\(e_i\)是类i的随机期望概率(即假设数据集有n个记录,其中a个正例,规则覆盖x个记录,则\(e_a=x\frac{a}{n}\)

    \[R=2\sum_{i=1}^kf_i\log(f_i/e_i) \]

  • Laplace度量:假设n为规则覆盖的样例数,\(f_+\)是规则覆盖的正例数,k是类的总数,\(p_+\)是正例的先验概率。该度量在覆盖率很高时接近规则的准确率。

    \[Laplace=\frac{f_++1}{n+k}\\ m估计=\frac{f_++kp_+}{n+k} \]

规则也可以进行剪枝,可以依赖昨天提到的泛化误差估计来进行判断。

顺序覆盖中每提取一个规则就应该将其覆盖的正例反例一并删去,不再在后续的提取中继续考虑。因为如果覆盖的样例有重复,那么说明规则所提取的信息间有重复。对相同信息的重复提取会影响原数据中蕴含的信息的构成。

从决策树归纳算法也能进行规则的间接提取,即将决策数每个从根结点到叶结点的路径称为一个分类规则。之后对提取的规则进行剪枝,并注意剪枝后需要丢弃重复的规则。在利用基于类的排序方法对规则进行排序时,可以基于最小描述长度原则,计算每个类的最小描述长度并将具有更小描述长度的类赋予更高的秩(因为我们期望其的规则集质量更好,对数据集的信息提取更为精炼(奥卡姆剃刀,yyds))

基于规则的分类器相对于决策树归纳的优点在于其保持了相当的性能的同时具有更好的解释性,并且在基于类的规则排序时体现了对于处理类分布不平衡问题的更好表现。

posted @ 2021-07-02 10:43  neumy  阅读(588)  评论(0)    收藏  举报