본문 바로가기

📕Privacy

Differential Privacy 정의

Motivation

머신러닝과 빅데이터의 시대가 열리면서 유용하고 정확한 서비스를 만들기 위해서는 데이터를 많이, 그리고 정확히 모을 필요가 생겼습니다. 실제로 AI 서비스의 경쟁력이 데이터를 학습하는 능력 뿐만 아니라 방대하고 정확한 데이터의 소유에서 오기도 합니다. 여담이지만 IT기업에서 검색 엔진, 메신저, 음성인식 등의 서비스를 무료로 제공하는 이유도 데이터 수집을 할 수 있기 때문이지요. 데이터의 종류에 따라 어떤 데이터는 공개할 수 있지만 어떤 데이터는 공개되었을 때 큰 위험을 초래할 수도 있습니다. 예를 들어, 감기에 걸렸는지는 아무렇지 않게 말할 수 있지만 성병에 걸렸는지는 불가피한 경우가 아닌 이상 잘 이야기하지 않습니다. 그 외에도 시간에 따른 위치 정보, 사진, 질병 및 의료 정보, 대화 내용, 검색 기록 등 기업이나 연구소에서는 알고 싶어하고 개인은 알려주고 싶지 않은 정보를 우리는 많이 가지고 있습니다. 그 둘 사이를 중재하는 것이 privacy 관련 연구입니다. 데이터의 원본을 수집하는 것이 아니라 학습이나 유추하고자 하는 바와 관련된 부분만 추출해서 수집한다면 개인이나 서비스 사용자의 사생활이 어느 정도 지켜지면서 데이터를 활용할 수도 있지 않을까. 어느 정도의 활용도를 보장하기 위해서는 어느 정도까지 사생활이 보호가 가능할까. 이런 질문의 답을 찾기 위해 우선 사생활 보호의 정도를 측정할 수 있는 개념을 정의합니다. 여러 가지 정의가 있지만, 이 페이지에서는 최근 각광을 받고 있는 Differential Privacy에 대해 이야기하려 합니다.

Preliminary

Differential Privacy를 이해하기 위해서는 먼저 아래와 같은 상황을 생각해봅시다.

 

 

Database(데이터베이스)는 데이터로 구성된 집합을 말합니다. 데이터베이스를 가지고 있는 쪽을 편의상 user(유저)라고 부르고, 데이터를 수집하고자하는 쪽을 server(서버)라고 부릅시다. 이 때 서버는 유저에게 데이터를 이용해 계산한 결과를 달라는 요청을 보내는데, 이 것을 query(쿼리)라고 부릅니다. 유저는 쿼리를 받으면 자신의 데이터를 이용해 쿼리에 대한 답변을 서버에게 다시 보내는데, 이것을 answer(답변)이라고 합니다. 이 때 데이터베이스에 하나의 데이터를 더하고 뺌에 따라 답변이 최대한 얼마나 달라지는지를 나타내는 개념이 있는데, 이를 query sensitivity(쿼리 민감도)라고 부릅니다.

Definition of Differential Privacy

Differential Privacy는 서버를 기본적으로 악의적이라고 가정합니다. 답변을 통해서 유저가 가진 데이터값을 유추하려는 변태로 보는 것이지요. 만약 한 가지 데이터의 유무 차이로 답변이 확연히 달라진다면, 그 한 가지 데이터 값에 대한 유추가 매우 쉬워질 것입니다. 예를 들어, 연구실 화장실 변기가 막혀서 범인을 찾아야 하는 상황을 생각해봅시다. 교수님과 학생들을 포함해서 오늘 화장실에서 쾌변한 사람의 수를 익명으로 조사하는 겁니다. 그 다음에는 교수님을 제외하고 학생들만 대상으로 같은 조사를 합니다. 두 설문의 결과를 비교하면 익명으로 조사를 진행했다 하더라도 교수님이 범인인지 아닌지 밝혀낼 수 있겠지요. (교수님 미안😜) 이런 식으로 받은 답변을 통해 유저가 사용한 데이터가 무엇이었을지 유추할 때, 데이터가 하나만 차이나는 두 데이터베이스, 즉 이웃한 두 데이터베이스에 대해 posterior probability(사후확률) 차이를 비교하는 것이 Differential Privacy의 아이디어입니다. 같은 쿼리에 대해서 이웃한 두 데이터베이스를 각각 이용했을 경우 그 두 답변이 비슷할수록 그 차이를 만드는 하나의 데이터는 더욱 보호되는 것이겠죠. 이 때 답변을 곧이 곧대로 보낼 때보다 값을 압축해서 정보를 의도적으로 손실시키거나 확률적인 노이즈를 더해서 의도적으로 부정확하게 만들어진 답변을 보내서 사생활을 보호할 수 있는데, 이런 사생활 보호 방식들을 Mechanism(메카니즘)이라고 칭합니다. 이 아이디어를 바탕으로 한 Differential Privacy의 정의는 아래와 같습니다 [1].

Definition (Differential Privacy). A randomized algorithm $\mathcal{M}$ with domain $\mathbb{N}^{|\mathcal{X}|}$ is $(\epsilon,\delta)$-differentially private if for all $\mathcal{S}\subseteq \text{Range}(\mathcal{M})$ and for all $x,y\in\mathbb{N}^{|\mathcal{X}|}$ such that $||x-y||_1\leq1:$

$$\Pr[\mathcal{M}(x)\in \mathcal{S}]\leq \exp(\epsilon)\Pr[\mathcal{M}(y)\in\mathcal{S}]+\delta, \text{ where } \epsilon,\delta>0.$$

위와 같은 정의는 더 구체적으로 $(\epsilon,\delta)$-differential privacy라고 부르고, $\delta=0$ 인 경우에 대해서는 $\epsilon$-differential privacy라고 부르기도 합니다. 위 정의에서 데이터베이스는 $\mathbb{N}^{|\mathcal{X}|}$이고 그 데이터베이스의 부분집합인 이웃하는 임의의 두 데이터베이스 $x,y$를 가정합니다. 메카니즘은 $\mathcal{M}$으로 정의되었고, 메카니즘의 치역을 $\text{Range}(\mathcal{M})$라고 표시합니다. 정의를 풀어 써보자면, 가능한 답변들로 이루어진 모든 집합 $\mathcal{S}$와 데이터베이스 $\mathbb{N}^{|\mathcal{X}|}$의 임의의 이웃하는 두 부분집합 $x,y$에 대해 메카니즘 $\mathcal{M}$을 사용했을 때의 답변인 $\mathcal{M}(x), \mathcal{M}(y)$가 $\mathcal{S}$에 속할 확률이 위 부등식을 만족할 때, 메카니즘 $\mathcal{M}$이 데이터베이스 $\mathbb{N}^{|\mathcal{X}|}$에 대해 $(\epsilon,\delta)$-differntial privacy를 보장한다는 말입니다. (풀어서 써도 복잡하군요..) 위 정의를 해석해보면 $\delta$의 값이 정해져 있을 때는 $\epsilon$이 0에 가까울수록 $\exp(\epsilon)$은 1에 가까워지기 때문에 두 확률의 차이가 적어지게 됩니다. 마찬가지로 $\epsilon$의 값이 정해져있을 때는 $\delta$값이 작을수록 두 확률 값의 차이가 작아지지요. 두 확률 값의 차이가 작아질수록 유저가 사용한 데이터가 $x$인지 $y$인지 유추하기 어려워지기 때문에 $\epsilon$과 $\delta$값이 적은 메카니즘일수록 더 강력한 프라이버시를 보장한다고 볼 수 있습니다.

 

참고문헌

[1]: The Algorithmic Foundations of Differential Privacy by Cynthia Dwork and Aaron Roth, 2014.