From f71422771e5e203882ea40425c97b4129ed8baf1 Mon Sep 17 00:00:00 2001 From: Manos Date: Tue, 12 Oct 2021 14:16:06 +0200 Subject: [PATCH] problem: Reviewed lmdk-mechs --- graphics/problem/lmdk-adaptive.pdf | Bin 0 -> 37009 bytes text/problem/thething/solution.tex | 106 +++++------------------------ 2 files changed, 18 insertions(+), 88 deletions(-) create mode 100644 graphics/problem/lmdk-adaptive.pdf diff --git a/graphics/problem/lmdk-adaptive.pdf b/graphics/problem/lmdk-adaptive.pdf new file mode 100644 index 0000000000000000000000000000000000000000..038e5e83e1ea7ffddfbd9113fc9b5bdba317ebdc GIT binary patch literal 37009 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 z�fM+uP>O6E2;BLrFA1Aq@zJO&7~Bxf+#q##-T%5x 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 AivR!s literal 0 HcmV?d00001 diff --git a/text/problem/thething/solution.tex b/text/problem/thething/solution.tex index 461ca4b..9f7bf15 100644 --- a/text/problem/thething/solution.tex +++ b/text/problem/thething/solution.tex @@ -16,7 +16,7 @@ Consequently, at each timestamp we protect every {\thething}, while reserving a \begin{figure}[htp] \centering - \includegraphics[width=0.9\linewidth]{problem/lmdk-uniform} + \includegraphics[width=.9\linewidth]{problem/lmdk-uniform} \caption{Uniform application scenario of {\thething} privacy.} \label{fig:lmdk-uniform} \end{figure} @@ -32,103 +32,33 @@ Particularly, sporadic location data publishing~\cite{gambs2010show, russell2018 \begin{figure}[htp] \centering - \includegraphics[width=0.9\linewidth]{problem/lmdk-skip} + \includegraphics[width=.9\linewidth]{problem/lmdk-skip} \caption{Application scenario of the Skip model in {\thething} privacy.} \label{fig:lmdk-skip} \end{figure} \paragraph{Adaptive} -Next, we propose an emph{Adaptive} privacy mechanism taking into account changes in the input data and exploiting the post-processing property of differential privacy. -Initially, it reserves uniformly the available privacy budget for each future release. -At each timestamp, based on a sampling rate the mechanism either publishes with noise the original data or it releases an approximation based on previous releases. -In the case when it publishes with noise the original data, it also calculates the difference between the current and the previous release and compares the difference with the scale of the perturbation ($\frac{\Delta f}{\varepsilon}$). -The outcome of this comparison determines the adaptation of the sampling rate for the next events: -if the scale is greater it means that the input has not changed much, and therefore it must decrease the sampling rate. -In the case when the mechanism approximates a {\thething} (but not a regular timestamp), it distributes the reserved privacy budget +Next, we propose an \emph{Adaptive} privacy mechanism taking into account changes in the input data and exploiting the post-processing property of differential privacy (Figure~\ref{fig:lmdk-adaprive}). + +\begin{figure}[htp] + \centering + \includegraphics[width=.5\linewidth]{problem/lmdk-adaptive} + \caption{Adaptive application scenario of {\thething} privacy.} + \label{fig:lmdk-adaprive} +\end{figure} + +Initially, its budget management component reserves uniformly the available privacy budget for each future release. +At each timestamp, it performs an analysis on the released data and based on that it adjusts the sampling rate of its processing component. +At each timestamp, the processing component decides to either publish with noise the original data or it releases an approximation based on previous releases. +In the case when it publishes with noise the original data, the analysis component estimates the data trends by calculating the difference between the current and the previous release and compares the difference with the scale of the perturbation ($\frac{\Delta f}{\varepsilon}$). +The outcome of this comparison determines the adaptation of the sampling rate of the processing component for the next events: +if the scale is greater it means that the data trends are evolving, and therefore it must decrease the sampling rate. +In the case when the mechanism approximates a {\thething} (but not a regular timestamp), the budget management component distributes the reserved privacy budget % divided by the number of remaining {\thething} plus one to the next timestamps. - -% \mk{WIP} -% \kat{write in text and remove the algorithm} -% \begin{algorithm} -% \caption{Adaptive {\thething} privacy mechanism} -% \label{algo:adapt-lmdk-priv} - -% \SetKwInput{KwData}{Input} -% \SetKwInput{KwResult}{Output} - -% \SetKwData{diffCur}{diffCur} -% \SetKwData{diffMin}{diffMin} -% \SetKwData{evalCur}{evalCur} -% \SetKwData{evalOrig}{evalOrig} -% \SetKwData{evalSum}{evalSum} -% \SetKwData{metricCur}{metricCur} -% \SetKwData{metricOrig}{metricOrig} -% \SetKwData{opt}{opt} -% \SetKwData{opti}{opt$_i$} -% \SetKwData{optim}{optim} -% \SetKwData{optimi}{optim$_i$} -% \SetKwData{opts}{opts} -% \SetKwData{reg}{reg} - -% \SetKwData{S}{$S_T$} -% \SetKwData{L}{$L$} -% \SetKwData{epsilon}{$\varepsilon$} - -% \SetKwFunction{calcMetric}{calcMetric} -% \SetKwFunction{evalSeq}{evalSeq} -% \SetKwFunction{getCombs}{getCombs} -% \SetKwFunction{getOpts}{getOpts} - -% \DontPrintSemicolon - -% \KwData{\S, \L, \epsilon} -% \KwResult{\optim} -% \BlankLine - -% % \If{abs($$)} - -% % \If{$i \in L$}{ -% % \lmdks $\leftarrow$ \lmdks + 1 -% % \ForEach{$j \in [i + 1, T]$}{ -% % $varepsilon_j \leftarrow varepsilon_j + \frac{\varepsilon_i}{|T| - \lmdks + 1}$ -% % } -% % } - -% % Evaluate the original -% \metricOrig $\leftarrow$ \calcMetric{$\{t_n\}, \emptyset, \{l_k\}$}\; -% \evalOrig $\leftarrow$ \evalSeq{\metricOrig}\; - -% % Get all possible option combinations -% \opts $\leftarrow$ \getOpts{$\{t_n\}, \{l_k\}$}\; - -% % Track the minimum (best) evaluation -% \diffMin $\leftarrow$ $\infty$\; - -% % Track the optimal sequence (the one with the best evaluation) -% \optim $\leftarrow$ $[]$\; - -% \ForEach{\opt $\in$ \opts}{\label{algo:lmdk-sel-opt-for-each} -% \evalSum $\leftarrow 0$\; -% \ForEach{\opti $\in$ \opt}{ -% \metricCur $\leftarrow$ \calcMetric{$\{t_n\}, \opti, \{l_k\}$}\;\label{algo:lmdk-sel-opt-comparison} -% \evalSum $\leftarrow$ \evalSum $+$ \evalSeq{\metricCur}\; - -% % Compare with current optimal -% \diffCur $\leftarrow \left|\evalSum/\#\opt - \evalOrig\right|$\; -% \If{\diffCur $<$ \diffMin}{ -% \diffMin $\leftarrow$ \diffCur\; -% \optim $\leftarrow$ \opt\; -% } -% } -% }\label{algo:lmdk-sel-opt-end} -% \Return{\optim} -% \end{algorithm} - - \subsubsection{{\Thething} privacy under temporal correlation} \label{subsec:lmdk-cor}