Locally Private k-Means Clustering
論文題目
-
《Locally Private k-Means Clustering》(本地私有k均值聚類)
-
Author:Uri Stemmer
-
Publication: SODA '20: Proceedings of the Thirty-First Annual ACM-SIAM Symposium
on Discrete Algorithms January 2020 Pages 548–559
-
Link:https://dl.acm.org/doi/10.5555/3381089.3381122
領域綜述
聚類是機器學習中無標籤背景下常用的算法,而k-means算法是聚類中最爲經典的算法。如此“基於中心的聚類”,大多是尋找一個“最優”的中心集和通過分配數據集的劃分。在超過60年的研究中,基於中心的聚類是無監督學習中的一個焦點問題,目的是使代價costS(C)=cϵC∑∥x−c∥2最小。
由於聚類算法的大量應用,和用戶對隱私意識的提高,對於私有k-means聚類算法的研究日益增長。差分隱私算法有兩種主要模型:trusted-curator模型和local模型。前者假設了一個可以信任的負責人,收集所有的個人信息並分析它們,保證分析輸出結果對於每個個體是隱藏的(但對負責人是可見的)。相反地,本地模型沒有這個“負責人”,而是一個“不可信任的服務器”。這個服務器的目標是基於輸入進行計算,但用戶並不直接發送數據到服務器,而是在數據中添加一些噪音。本地模型的要求是每個用戶的噪音對於模型數據分佈幾乎沒有影響。在這篇論文中,正是基於這個模型進行研究。
在trusted-curator模型中,目前最先進的算法由Kaplan和Stemmer建立,擁有極小的O(1)乘性誤差以及poly(logn, k, d)的加性誤差。其算法對於給定的n輸入點集合S∈(Rd)n識別出一個還有k個點的集合C,滿足
costS(C)≤O(1)∙OPTS(k)+poly(logn, k, d)
其算法可以概括爲3步:
-
私有地識別出候選中心集合Y包含有大小爲k的子集,其代價較低;
-
計算每個候選中心以其爲最近點的輸入點的數量,把該值作爲對噪音的估計,並保證滿足LDP;
-
預處理候選中心以及噪音計數以識別低代價子集;
該算法的加性誤差≈n32,而本論文正是在加性誤差方面突破了瓶頸。
對於本地差分約束模型,有兩個先進的研究:一個是由Nissim和Stemmer研究的算法,其乘性誤差爲O(k)、加性誤差爲≈n32,其主要缺點是在用戶和未信任服務器之間需要O(k∙logn)回合的信息交換;另一個研究繼承與上一個研究,其改進算法僅需O(1)回合的交互,且將乘性誤差降低到O(1),但沒有降低加性誤差。在這後一個研究中已經將交互回合數量和乘性誤差降低得較爲完美,但仍存在有巨大的加性誤差。這兩種方法的候選中心集合大小均≈n32,這導致其加性誤差至少爲n1/3∙n=n2/3。降低加性誤差也正是本論文最爲關鍵的部分。
論文閱讀報告
摘要
該研究設計了一個在本地差分隱私模型運行的新算法。近似k均值聚類一定有兩種誤差:加性誤差和乘性誤差。該研究將該算法加性誤差從n32+a減少到n21+a(∀a>0)的同時,保持了當前最優乘性誤差O(1)。此外,該研究還證明加性誤差的簡單下界≈n對於k-means算法是必需的。
問題定義
客觀上最小化k-means是NP難問題,因此研究集中在近似算法的研究上。近似算法存在着加性誤差和乘性誤差,減小這兩種誤差的理論值便是目前主流優化方向。
目前,在非隱私聚類領域,最優的乘性誤差爲OPTs(k)=6.357。這意味着該最優算法找出k箇中心的集合所用代價不會多餘最低可能代價。隱私模型相較於非隱私模型,在近似算法中會多出一個加性誤差,該加性誤差正比於該輸入域的直徑。乘性誤差和加性誤差在兩種隱私模型中均存在。因此,在近似算法的研究中,都以減少乘性誤差和加性誤差爲主要目標。
算法及證明
K-means聚類算法也稱k均值聚類算法,採用距離作爲相似性的評價指標,即認爲兩個對象的距離越近,其相似度就越大。該算法認爲類簇是由距離靠近的對象組成的,因此把得到緊湊且獨立的簇作爲最終目標。K-means聚類算法是一種迭代求解的聚類分析算法,其步驟是隨機選取K個對象作爲初始的聚類中心,然後計算每個對象與各個種子聚類中心之間的距離,把每個對象分配給距離它最近的聚類中心。聚類中心以及分配給它們的對象就代表一個聚類。每分配一個樣本,聚類的聚類中心會根據聚類中現有的對象被重新計算。這個過程將不斷重複直到滿足某個終止條件。終止條件可以是沒有(或最小數目)對象被重新分配給不同的聚類,沒有(或最小數目)聚類中心再發生變化,誤差平方和局部最小。算法實現步驟如下:
-
首先確定一個k值,即我們希望將數據集經過聚類得到k個集合。
-
從數據集中隨機選擇k個數據點作爲質心。
-
對數據集中每一個點,計算其與每一個質心的距離(如歐式距離),離哪個質心近,就劃分到那個質心所屬的集合。
-
把所有數據歸好集合後,一共有k個集合。然後重新計算每個集合的質心。
-
如果新計算出來的質心和原來的質心之間的距離小於某一個設置的閾值(表示重新計算的質心的位置變化不大,趨於穩定,或者說收斂),我們可以認爲聚類已經達到期望的結果,算法終止。
-
如果新質心和原質心距離變化很大,需要迭代3~5步驟。
以上k-means算法的計算服務器對每個輸入數據的瞭解都是精準的,換句話說,數據是公開的,對於服務器沒有隱私。在要求保護隱私的服務器的目標是基於輸入進行計算,但用戶並不直接發送數據到服務器,而是在數據中添加一些噪音。本地模型的要求是每個用戶的噪音對於模型數據分佈幾乎沒有影響。而這一模型的基礎理論便是本地差分隱私(LDP)。本地差分隱私是該模型最爲重要的部分之一。多個分佈式數據庫作爲多個可信任的部分,基於協議進行多輪傳輸。在每輪傳輸中,每個部分選擇一段根據輸入、內部投幣和之前收到的消息生成的新消息。協議的輸出由所交換消息的轉錄本的確定性函數指定。
在樸素的k-means算法中,選擇中心具有極大的不確定性。再加上私有模型,爲了減少交互次數,不能頻繁訪問輸入點,這些都給中心選擇帶來不便。比如使用k-means++會極大增加未信任服務器和用戶的交互次數。不從輸入點選中心,從候選中心中選(輸入點之前先計算好);分配點,不分配到最近的中心,而是設置候選中心新屬性,分配滿足條件。本論文算法的主要思路如下:
- 任取一個點作爲1箇中心
- 再取k-1個點作爲中心,每取一個點作爲中心要使得代價最低
前面提到的兩個研究中,已經將交互回合數量和乘性誤差降低得較爲完美,但仍存在有巨大的加性誤差。這兩種方法的候選中心集合大小均≈n32,這導致其加性誤差至少爲
n1/3∙n=n2/3
降低加性誤差也正是本論文最爲關鍵的部分。因此本文的思路主要從如何減小候選中心集合大小入手。
爲了識別出k個低代價中心,該論文設計了WeightedCenter算法。該算法首先需要在分佈式數據庫上執行*GoodCenter*算法。*該算法繼承與在先前最優研究,該算法旨在從輸入點中篩選出若干候選中心。然而在參數r的選擇數量和出現指數級的增長。對於任意一次算法執行及其特定的參數r,能夠刪選出若干組中心的子集(即假定中心)。詳細來說,當lϵ[k]*時,對於
rlopt=∣∣Slopt∣∣2xϵSlopt∑∥∥x−clopt∥∥2
算法使這些中心以*rlopt爲半徑的情況下包含的點儘可能多,即該聚類儘可能大,形式化描述爲∣∣Slopt∣∣≤n(較小的聚類可以忽略,因它們只會引起可以接受的、至多n*的加性誤差)。當聚類在一定範圍內,即
∥∥yl−clopt∥∥≤O(rlopt)
若用一個“足夠近”的點來代替,能保證只有乘性的常數誤差。對於每個候選中心*Y子集P(滿足∣P∣≥n,對算法隱藏),在分佈式數據中滿足P∈S,至少有1−β的可能性Y包含一箇中心y*滿足
∥y−Average(P)∥<O(diam(P))
這樣通過GoodCenter算法選出來的點即被稱爲候選中心Y。
前人嘗試過基於以上算法,進行對帶噪音的數據統計每個候選中心以其爲最近點的輸入數據個數,記爲*#s(y),但是這樣的方法會使噪音疊加,導致加性誤差增大。因此本論文改進了算法,設計了WeightedCenter*算法。基於已經選擇好的候選中心,執行以下算法:
WeightedCenter算法
輸入:失敗可能性β,隱私參數ε, δ
設置:每個參與者$jϵ[n]擁有xiϵB(0, Λ),定義數據集S=(x1, x2,⋯,xn)
-
構造候選中心:以預設的t, r和隱私參數4log(n)ε, log(n)δ作爲參數在數據集S執行GoodCenter算法,得出若干中心點集合Yir
-
將數據集的點分配給候選中心:將a(i,xi)極爲每個用戶被分配到的Y中的中心之一。計算a(i,xi)滿足下列條件:使聚類半徑ri最小,以至於xi以ri構造中心,y(i,xi,ri)記爲這個中心,將yi∗記爲xi最近距離的中心。根據∥xi−yi∗∥和∥xi−y(i,xi,ri)∥大小關係選擇更近的中心。
-
估計候選中心的權值:使用4ε−LDP算法獲得每個中心的估計值a^(y) ≈ a(y)≜∣{i : a(i, xi) =y}∣,即估計每個中心“以該中心爲最近中心的輸入點的個數”。
-
重新分配點給候選中心:記b(i,xi)爲重新分配的中心。挑選“分配到足夠多點”的中心的集合W,若有輸入點的中心不在W中,則將該輸入點分配到W中最近的一個點。
-
重新估計候選中心的權值:按照第3步的方法估計權值:b^(y) ≈b(y)≜∣{i : b(i, xi) = y}∣。
-
K-Means++採樣:初始化Z0=∅,做以下操作t=100k次:
6.1. 在候選中心中選出一個點w,每個點選出的概率與其和Z0中距離最近的點的距離成比例。
6.2. Zi=Zi−1∪{w}
-
放大成功概率:重複步驟六O(logβ1)次,將Z記爲獲得的集合Zt的並集,Z是一個大小爲O(k∙logβ1)的集合。
-
估計採樣中心的臨近點數量:使用4ε−LDP算法獲得每個中心的估計值,即估計每個中心“以該中心爲最近中心的輸入點的個數”。
-
輸出:非私有地識別出一個大小爲k的低代價子集。
實驗結論
基於隱私模型的k-means算法需要對於帶噪音的數據進行聚類,噪音帶來了乘性和加性誤差。在中心初值的選取過程中,首先要在預處理階段運用GoodCenter算法篩選出可能成爲中心的“候選中心”集合Y,滿足以每個候選中心y的聚類達到O(n)的數據規模,該算法有效降低了乘性誤差。再通過WeightedCenter算法從大集合Y篩選出大小爲k的子集,通過分配後的#s(y)求值對每個中心進行賦權,然後通過再分配是的聚類進一步密集,取出子集作爲中心集合初值。該方法保持了最優乘性誤差O(1),並將加性誤差降低到了n21。再此基礎上,論文給出了一個簡單的、基於連續回合LDP算法的近似k-means問題的加性誤差下界,結果從間隙閾值問題進行結果的遷移。
方法不足
本研究的理論加性誤差爲
O~(n21+a∙k∙max{d, k})
在該論文之前由Kaplan完成的研究中加性誤差爲
O~(n32+a∙d31∙k2)
其中n爲數據集規模,d爲數據集直徑,k爲聚類簇數。
可以直觀看出,在數據集較大的情況下,本研究的算法(記爲算法A)是遠優於另一個研究的算法(記爲算法B)。但是在輸入點數、直徑和簇數變化的情況下,本研究的算法可能沒有明顯優勢。當滿足
O~(n32+a∙d31∙k2)O~(n21+a∙k∙max{d, k})≤O(1)
時,算法A佔優;反之算法B佔優。
O~(n32+a∙d31∙k2)O~(n21+a∙k∙max{d, k})=O~⎝⎛n61∙d31∙kmax{d, k}⎠⎞≤O(1)
兩邊省略常數後,粗略地得到:
max{d, k}≪n61∙d31∙k
當d≥k,即O(d)≥O(k)時,可以化簡爲
d≪n61∙d31∙k
d61≪n61∙k
因此,當O(d)≪O(n)時,算法A更優;而當O(d)≈O(n)時,即當數據過於離散、且數據量不夠充足時,算法A則不顯著優於算法B。
當d≤k,即O(d)≤O(k)時,可以化簡爲
k≪n61∙d31∙k
n61∙d31∙k21≫1
因此當
⎩⎨⎧O(n)≫O(1)O(d)≫O(1)O(k)≫O(1)
成立時,算法A更優;而反之,即極小數據集聚類,算法A並不適用。實際上小數據集上近似算法難以執行。因此該情況不在考慮範圍之內。
此外Nissim研究的算法(算法C),加性誤差
≈O~(n32+a∙d31∙k)
優於算法B,缺點在於交互回合O(klogn)較大。不過在交互能力較強的系統上,可以考慮用算法C代替算法B。