기본 콘텐츠로 건너뛰기

DP-14. 빈도수 오라클 주요 기법 상세 설명: k-RR

지역 차등 정보보호를 구현하는 대표적인 기술 중 하나가 바로 k-Randomized Response(k-RR), 우리말로는 'k-무작위화 응답'입니다.

k-Randomized Response의 작동 과정

k-Randomized Response는 사용자가 자신의 실제 값을 일정 확률로 보내거나, 또는 완전히 다른 임의의 값으로 바꿔서 보내는 방식으로 작동합니다. 여기서 'k'는 사용자가 응답할 수 있는 가능한 값의 총 개수(카디널리티)를 의미합니다.

과정은 다음과 같이 간단하게 두 단계로 나눌 수 있습니다.

1단계: 사용자의 응답 무작위화 (클라이언트 측)

사용자는 자신의 실제 값을 서버에 보내기 전, 동전 던지기와 같은 확률적 과정을 거칩니다.

  • 참 값을 보낼 확률 (p): 미리 정해진 확률 $p$에 따라 자신의 실제 값을 그대로 보냅니다.
  • 거짓 값을 보낼 확률 (q): 반대로, 확률 $q$에 따라 자신의 실제 값을 제외한 나머지 (k-1)개의 값 중 하나를 무작위로 선택하여 보냅니다.

여기서 두 확률의 관계는 다음과 같이 정의됩니다.

$$p + (k-1)q = 1$$

프라이버시 보장 수준은 $p$의 값에 따라 달라집니다. $p$가 클수록 원본 데이터의 유용성은 높아지지만 프라이버시 보호 수준은 낮아집니다. 반대로 $p$가 작아지면 프라이버시 보호는 강화되지만, 수집된 데이터의 통계적 정확성은 떨어지게 됩니다.

예시: '예' 또는 '아니오' (k=2)로 답하는 설문조사를 생각해 보겠습니다.

> 질문: "어제 운동을 하셨나요?"

한 사용자의 실제 답변이 '예'라고 가정해 봅시다.

  • 확률 p (예: 75%) 로는 자신의 실제 값인 '예'를 그대로 서버에 전송합니다.
  • 확률 q (예: 25%) 로는 다른 값인 '아니오'를 서버에 전송합니다.

만약 가능한 답변이 'A', 'B', 'C' (k=3) 세 가지이고, 사용자의 실제 값이 'A'라면 과정은 다음과 같습니다.

  • 확률 p로는 'A'를 전송합니다.
  • 확률 q로는 'B' 또는 'C' 중 하나를 무작위로 선택하여 전송합니다.

2단계: 데이터 집계 및 통계 복원 (서버 측)

서버는 이렇게 무작위화된 응답들을 수집합니다. 개별 응답은 실제 값인지 거짓 값인지 알 수 없지만, 수많은 데이터를 모으면 통계적으로 원래 값의 분포를 추정할 수 있습니다.

서버는 수집된 응답 값들의 개수를 센 뒤, 미리 알고 있는 확률 $p$와 $q$를 이용해 통계적 보정을 거쳐 원래 응답의 분포를 복원합니다.

예를 들어, $N$명의 사용자로부터 특정 값 $v$가 $N_v$번 관측되었다면, 원래 값 $v$를 가진 사용자의 수($n_v$)는 다음 공식을 통해 추정할 수 있습니다.

$$n_v \approx \frac{N_v - Nq}{p-q}$$

이처럼 k-Randomized Response는 개별 사용자의 프라이버시를 강력하게 보호하면서도 전체 데이터 집단의 통계적 특성은 유지할 수 있게 해주는 효과적인 지역 차등 정보보호 기술입니다. Google이나 Apple과 같은 기업에서 사용자의 민감한 정보(예: 키보드 사용 패턴, 앱 사용 통계 등)를 수집하면서도 프라이버시를 보호하기 위해 널리 활용되고 있습니다.

프라이버시 손실 관계식 유도

인접 데이터셋:

  • $D_1$: 개인의 실제 답변이 v인 경우
  • $D_2$: 개인의 실제 답변이 w인 경우 ($w \neq v$)

차등 정보보호 정의:

$$
\frac{P(M(D_1)=O)}{P(M(D_2)=O)} = \frac{P(\text{보고된 답변}=v|\text{실제 답변}=v)}{P(\text{보고된 답변}=v|\text{실제 답변}=w)} \leq e^{\epsilon}
$$

보고된 답변이 v일 확률 계산:

  • $P(\text{보고된 답변}=v|\text{실제 답변}=v) = p$
  • $P(\text{보고된 답변}=v|\text{실제 답변}=w) = q$

프라이버시 손실 수준이 $\epsilon$으로 주어졌을 때 $\epsilon$-차등 정보보호를 만족하기 위한 최대 $p$ 값 유도:

$$
\frac{p}{q} = e^{\epsilon}
$$

여기서

$$
q = \frac{1-p}{k-1}
$$

를 대입하고 p에 대해 풀면

$$
p = \frac{e^{\epsilon}}{e^{\epsilon} + k - 1}
$$

이 됩니다.

원래 값 추정 공식 유도

실제 답변이 v인 사용자가 v로 보고할 확률은 p이고 실제 답변이 v가 아닌 사용자가 v로 보고할 확률은 q이므로 v로 보고한 사용자 수는 아래와 같은 관계를 가지게 됩니다.

$$
N_v = pn_v + q(N-n_v)
$$

여기서

  • $N$: 총 답변자 수
  • $N_v$: 보고된 답변이 v인 사용자 수
  • $n_v$: 실제 답변이 v인 사용자 수 (추정 값)

위 수식을 $n_v$에 대해 풀면

$$
n_v = \frac{N_v - qN}{p - q}
$$

가 됩니다.


댓글

이 블로그의 인기 게시물

Windows에 AMP와 MediaWiki 설치하기

1. 들어가기     AMP는 Apache + MySQL +  Perl/PHP/Python에 대한 줄임말이다. LAMP (Linux + AMP)라고 하여 Linux에 설치하는 것으로 많이 소개하고 있지만 Windows에서도 간편하게 설치하여 사용할 수 있다.       이 글은 Windows 7에 Apache + MySQL + PHP를 설치하고 그 기반에서 MediaWiki를 설치하여 실행하는 과정을 간략히 정리한 것이다. 2. MySQL     * 버전 5.6.12     1) 다운로드         http://dev.mysql.com/downloads/installer/         MySQL Installer 5.6.12         Windows (x86, 32-bit), MSI Installer         (mysql-installer-web-community-5.6.12.0.msi)     2) 다운로드한 MSI 파일을 더블클릭하여 설치를 진행한다.           설치 위치:                   C:\Program Files\MySQL               선택 사항:                       Install MySQL Products             Choosing a Se...

MATLAB Rutime 설치하기

MATLAB Rutime 설치하기 미설치시 에러 MATLAB Runtime 을 설치하지 않은 환경에서 MATLAB 응용프로그램이나 공유 라이브러리를 사용하려고 하면 아래와 같은 에러 메시지가 표시될 것입니다. 처리되지 않은 예외: System.TypeInitializationException: 'MathWorks.MATLAB.NET.Utility.MWMCR'의 형식 이니셜라이저에서 예 외를 Throw했습니다. ---> System.TypeInitializationException: 'MathWorks.MATLAB.NET.Arrays.MWArray'의 형식 이니셜라이저에서 예외를 Throw했습니다. ---> System.DllNotFoundException: DLL 'mclmcrrt9_3.dll'을(를) 로드할 수 없습니다. 지정된 모듈을 찾을 수 없습니다. (예외가 발생한 HRESULT: 0x8007007E) 위치: MathWorks.MATLAB.NET.Arrays.MWArray.mclmcrInitialize2(Int32 primaryMode) 위치: MathWorks.MATLAB.NET.Arrays.MWArray..cctor() --- 내부 예외 스택 추적의 끝 --- 위치: MathWorks.MATLAB.NET.Utility.MWMCR..cctor() --- 내부 예외 스택 추적의 끝 --- 위치: MathWorks.MATLAB.NET.Utility.MWMCR.processExiting(Exception exception) 해결 방법 이 문제를 해결하기 위해서는 MATLAB Runtime 을 설치해야 합니다. 여러 가지 방법으로 MATLAB Runtime 을 설치할 수 있습니다. MATLAB 이 설치되어 있는 경우에는 MATLAB 설치 폴더 아래에 있는 MATLAB Runtime 설치 프로그램을 실행하여 설치합니다. ...

Wi-Fi 카드 2.4GHz로만 동작시키기

Wi-Fi 카드 2.4GHz로만 동작시키기 별도의 Wi-Fi AP 장치를 두지 않고 아래와 같은 기기들로만 Wi-Fi 네트워크를 구성하고자 할 때 주변 기기들이 2.4GHz만 지원하기 때문에 PC에서 실행하는 AP가 항상 2.4GHz를 사용하도록 Wi-Fi 카드를 설정해 주어야 합니다. 기기 Wi-Fi 카드 주파수 대역 Wi-Fi Direct 지원 PC (Windows 10) 2.4GHz, 5GHz O 주변 기기들 2.4GHz X Wi-Fi 카드별 주파수 대역 선택 방법 Windows 시작 메뉴에서 설정 을 클릭합니다. Windows 설정 화면에서 네트워크 및 인터넷 을 클릭합니다. 설정 화면의 왼쪽 메뉴바에서 Wi-Fi 를 클릭합니다. 화면 오른쪽 관련 설정 구역에 있는 어댑터 옵션 변경 을 클릭합니다. 설정을 바꾸고자 하는 Wi-Fi 카드 항목을 선택하고 마우스 오른쪽을 누른 다음 속성 메뉴를 클릭합니다. 대화상자의 네트워킹 탭 화면에 있는 구성 버튼을 클릭합니다. 장치 속성 대화상자의 고급 탭 화면으로 이동합니다. 제시되는 속성 항목들은 제품별로 다르며 자세한 사항은 아래의 제품별 설명을 참고하여 값을 설정하시기 바랍니다. Intel Dual Band Wireless-AC 7265 기술 사양 주파수 대역: 2.4GHz, 5GHz 무선 표준: 802.11ac 주파수 대역 선택 장치 속성 대화상자에서 아래와 같이 선택합니다. Wireless Mode 1. 802.11a => 5GHz 4. 802.11b/g => 2.4GHz (이 항목 선택) 6. 802.11a/b/g => 2.4GHz, 5GHz Intel Dual Band Wireless-AC 8265 기술 사양 주파수 대역: 2.4GHz, 5GHz 무선 표준: 802.11ac 주파수 대역 선택 장치 속성 대화상자에서 아래와 같이 ...