diff --git a/graphics/problem/lmdk-adaptive.pdf b/graphics/problem/lmdk-adaptive.pdf new file mode 100644 index 0000000..038e5e8 Binary files /dev/null and b/graphics/problem/lmdk-adaptive.pdf differ 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}