Patent Publication Number: US-2022222539-A1

Title: Adversarial learning of privacy preserving representations

Description:
TECHNICAL FIELD 
     The subject matter described herein relates generally to machine learning and more specifically to weakly supervised learning of privacy preserving representations. 
     BACKGROUND 
     Machine learning models may be trained to perform a variety of cognitive tasks including, for example, object identification, natural language processing, information retrieval, speech recognition, and/or the like. A deep learning model such as, for example, a neural network, may be trained to perform a classification task by at least assigning input samples to one or more categories. The deep learning model may be trained to perform the classification task based on training data that has been labeled in accordance with the known category membership of each sample included in the training data. Alternatively and/or additionally, the deep learning model may be trained to perform a regression task. The regression task may require the deep learning model to predict, based at least on variations in one or more independent variables, corresponding changes in one or more dependent variables. 
     SUMMARY 
     Systems, methods, and articles of manufacture, including computer program products, are provided for learning a privacy preserving representation. In some example embodiments, there is provided a system that includes at least one processor and at least one memory. The at least one memory may include program code that provides operations when executed by the at least one processor. The operations may include: training a first machine learning model to generate a first representation of a first user data having a plurality of private attributes and a plurality of non-private attributes, the first machine learning model being trained to generate the first representation to maximize an entropy amongst similar private attributes and maintain a separation between the plurality of private attributes and the plurality of non-private attributes; applying the trained first machine learning model to generate a second representation of a second user data having the plurality of private attributes and the plurality of non-private attributes; and performing one or more downstream tasks by at least applying, to the second representation of the second user data, a second machine learning model, the second representation of the second user data enabling the second machine learning model to perform the one or more downstream tasks without revealing the plurality of private attributes associated with the second user data. 
     In some variations, one or more features disclosed herein including the following features can optionally be included in any feasible combination. The training of the first machine learning model may include shifting the entropy amongst the plurality of private attributes to maximize the entropy amongst similar private attributes. 
     In some variations, the first machine learning model may be further trained to generate the first representation to preserve a first information associated with the plurality of non-private attributes and omit a second information associated with the plurality of private attributes. 
     In some variations, the first machine learning model may include an encoder trained to generate the first representation to include a target portion including the plurality of non-private attributes and a residual portion including the plurality of private attributes. 
     In some variations, the first user data may be classified based on the target portion of the first representation but not the residual portion of the first representation. 
     In some variations, the first machine learning model may include a non-private attribute predictor, a private attribute predictor, an adversarial private attribute predictor, and an adversarial non-private attribute predictor. 
     In some variations, the training of the first machine learning model may include subjecting the non-private attribute predictor, the private attribute predictor, the adversarial private attribute predictor, and the adversarial non-private attribute predictor to an adversarial training. 
     In some variations, the plurality of non-private attributes may include one or more coarse labels associated with the first user data. The plurality of private attributes may include one or more fine labels associated with the first user data. 
     In some variations, the first machine learning model may be a variational autoencoder (VAE). 
     In some variations, the one or more downstream tasks may include training the second machine learning model, object identification, natural language processing, information retrieval, and/or speech recognition. 
     In some variations, the similar private attributes may include attributes that are common to user data sharing a same label and/or a same classification. 
     In another aspect, there is provided a method for learning a privacy preserving representation. The method may include: training a first machine learning model to generate a first representation of a first user data having a plurality of private attributes and a plurality of non-private attributes, the first machine learning model being trained to generate the first representation to maximize an entropy amongst similar private attributes and maintain a separation between the plurality of private attributes and the plurality of non-private attributes; applying the trained first machine learning model to generate a second representation of a second user data having the plurality of private attributes and the plurality of non-private attributes; and performing one or more downstream tasks by at least applying, to the second representation of the second user data, a second machine learning model, the second representation of the second user data enabling the second machine learning model to perform the one or more downstream tasks without revealing the plurality of private attributes associated with the second user data. 
     In some variations, one or more features disclosed herein including the following features can optionally be included in any feasible combination. The training of the first machine learning model may include shifting the entropy amongst the plurality of private attributes to maximize the entropy amongst similar private attributes. 
     In some variations, the first machine learning model may be further trained to generate the first representation to preserve a first information associated with the plurality of non-private attributes and omit a second information associated with the plurality of private attributes. 
     In some variations, the first machine learning model may include an encoder trained to generate the first representation to include a target portion including the plurality of non-private attributes and a residual portion including the plurality of private attributes. 
     In some variations, the first user data may be classified based on the target portion of the first representation but not the residual portion of the first representation. 
     In some variations, the first machine learning model may include a non-private attribute predictor, a private attribute predictor, an adversarial private attribute predictor, and an adversarial non-private attribute predictor. The training of the first machine learning model may include subjecting the non-private attribute predictor, the private attribute predictor, the adversarial private attribute predictor, and the adversarial non-private attribute predictor to an adversarial training. 
     In some variations, the plurality of non-private attributes may include one or more coarse labels associated with the first user data. The plurality of private attributes may include one or more fine labels associated with the first user data. 
     In some variations, the similar private attributes may include attributes that are common to user data sharing a same label and/or a same classification. 
     In another aspect, there is provided a computer program product including a non-transitory computer readable medium storing instructions. The instructions may cause operations may executed by at least one data processor. The operations may include: training a first machine learning model to generate a first representation of a first user data having a plurality of private attributes and a plurality of non-private attributes, the first machine learning model being trained to generate the first representation to maximize an entropy amongst similar private attributes and maintain a separation between the plurality of private attributes and the plurality of non-private attributes; applying the trained first machine learning model to generate a second representation of a second user data having the plurality of private attributes and the plurality of non-private attributes; and performing one or more downstream tasks by at least applying, to the second representation of the second user data, a second machine learning model, the second representation of the second user data enabling the second machine learning model to perform the one or more downstream tasks without revealing the plurality of private attributes associated with the second user data. 
     Implementations of the current subject matter can include methods consistent with the descriptions provided herein as well as articles that comprise a tangibly embodied machine-readable medium operable to cause one or more machines (e.g., computers, etc.) to result in operations implementing one or more of the described features. Similarly, computer systems are also described that may include one or more processors and one or more memories coupled to the one or more processors. A memory, which can include a non-transitory computer-readable or machine-readable storage medium, may include, encode, store, or the like one or more programs that cause one or more processors to perform one or more of the operations described herein. Computer implemented methods consistent with one or more implementations of the current subject matter can be implemented by one or more data processors residing in a single computing system or multiple computing systems. Such multiple computing systems can be connected and can exchange data and/or commands or other instructions or the like via one or more connections, including a connection over a network (e.g. the Internet, a wireless wide area network, a local area network, a wide area network, a wired network, or the like), via a direct connection between one or more of the multiple computing systems, etc. 
     The details of one or more variations of the subject matter described herein are set forth in the accompanying drawings and the description below. Other features and advantages of the subject matter described herein will be apparent from the description and drawings, and from the claims. While certain features of the currently disclosed subject matter are described for illustrative purposes, it should be readily understood that such features are not intended to be limiting. The claims that follow this disclosure are intended to define the scope of the protected subject matter. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The accompanying drawings, which are incorporated in and constitute a part of this specification, show certain aspects of the subject matter disclosed herein and, together with the description, help explain some of the principles associated with the disclosed implementations. In the drawings, 
         FIG. 1A  depicts a system diagram illustrating an example of a machine learning enabled analysis system, in accordance with some example embodiments; 
         FIG. 1B  depicts a schematic diagram illustrating an example of a machine learning model, in accordance with some example embodiments; 
         FIG. 2A  depicts a schematic diagram illustrating focal entropy and the effect of grouping, in accordance with some example embodiments; 
         FIG. 2B  depicts a graph illustrating an analysis of attribute-level privacy, in accordance with some example embodiments; 
         FIG. 3A  depicts a visualization of an example of privacy preserving representation, in accordance with some example embodiments; 
         FIG. 3B  depicts a visualization of data and the corresponding reconstructions at various privacy levels, in accordance with some example embodiments; 
         FIG. 4A  depicts a flowchart illustrating an example of a process for privacy preserving machine learning processing, in accordance with some example embodiments; 
         FIG. 4B  depicts a flowchart illustrating an example of a process for training a machine learning model to generate a privacy preserving representation of a user data, in accordance with some example embodiments; and 
         FIG. 5  depicts a block diagram illustrating a computing system, in accordance with some example embodiments; and 
     
    
    
     When practical, similar reference numbers denote similar structures, features, or elements. 
     DETAILED DESCRIPTION 
     A machine learning model may be trained to perform a variety of cognitive tasks including, for example, object identification, natural language processing, information retrieval, speech recognition, and/or the like. For example, a machine learning model trained to perform image classification may assign, to an image, one or more labels corresponding to one or more objects depicted in the image. Alternatively, a machine learning model trained to perform natural language processing may classify a text by at least assigning, to the text, one or more labels indicating a sentiment, a topic, and/or an intent associated with the text. However, despite its potential and growing prevalence, many machine learning enabled services do not provide adequate privacy and security for sensitive user data ingested by the underlying machine learning models. Conventional techniques for preserving user privacy, such as anonymizing user data through obfuscation and/or the like, may yield sub-optimal results because a naïve anonymization strategy compromises the predictive power of the machine learning model operating on the anonymized user data. 
     In some example embodiments, a privacy controller may train a machine learning model to generate a privacy preserving representation of user data for subsequent processing by one or more other machine learning models. For example, the machine learning model may be subjected to adversarial training to learn privacy preserving representations to achieve a focal entropy, which shifts maximum entropy towards similar private attributes to enforce uncertainty amongst similar private attributes while maintaining a separation between private attributes and non-private attributes. The trained machine learning model may therefore be capable of generating a privacy preserving representation configured to preserve information associated with the non-private attributes of the user data and omitting information associated with the private attributes of the user data. Accordingly, the privacy preserving representation may maintain the privacy and security of the user data while maximizing the predictive power of the one or more machine learning models operating on the privacy preserving representation. For instance, the privacy preserving representation of the user data may be used as training data (e.g., to train a machine learning model) and/or be ingested by a trained machine learning model to perform one or more downstream tasks. 
       FIG. 1  depicts a system diagram illustrating an example of a machine learning enabled analysis system  100 , in accordance with some example embodiments. Referring to  FIG. 1 , the machine learning enabled analysis system  100  may include a privacy controller  110  including a first machine learning model  115 , a task engine  120  including a second machine learning model  125 , and a client  130 . The privacy controller  110 , the task engine  120 , and the client  130  may be communicatively coupled via a network  140 . The client  130  may be a processor-based device including, for example, a smartphone, a tablet computer, a wearable apparatus, a virtual assistant, an Internet-of-Things (IoT) appliance, and/or the like. The network  140  may be any wired network and/or a wireless network including, for example, a wide area network (WAN), a local area network (LAN), a virtual local area network (VLAN), a public land mobile network (PLMN), the Internet, and/or the like. 
     In some example embodiments, the first machine learning model  115  at the privacy controller  110  may be trained to generate, based at least on a user data  135  received from the client  130 , a corresponding representation of the user data  135 . For example, the first machine learning model  115  may be trained to generate a representation that is configured to preserve information associated with the non-private attributes of the user data  135  and omitting information associated with the private attributes of the user data  135 . The representation of the user data  135  may therefore maintain the privacy and security of the user data  135  while maximizing the predictive power of the one or more machine learning models operating on the representation of the user data  135 . 
     For example, the representation of the user data  135  generated by the first machine learning model  115  may be used to train the second machine learning model  125  at the task engine  120 . Alternatively and/or additionally, the second machine learning model  125  may ingest the representation of the user data  135  to perform one or more cognitive tasks including, for example, object identification, natural language processing, information retrieval, speech recognition, and/or the like. While the representation of the user data  135  may preserve an ability of the second machine learning model  125  to classify the user data  135  based on the non-private attributes of the user data  135 , the representation of the user data  135  may prevent the second machine learning model  125  from classifying the user data  135  based on the private attributes of the user data  135 . 
       FIG. 1B  depicts a schematic diagram illustrating an example of the first machine learning model  115 , in accordance with some example embodiments. As shown in  FIG. 1B , the first machine learning model  115  may include an encoder E, a decoder D, a non-private attribute predictor T, a private attribute predictor S, and two adversarial predictors {tilde over (T)}, {tilde over (S)}. The non-adversarial predictors T and S may aim at channeling the information flow. The adversarial predictors {tilde over (T)} and {tilde over (S)} may aim at minimizing information leakage by enforcing the mutual exclusivity of private attributes and non-private attributes. As such, the adversarial predictors {tilde over (T)} and {tilde over (S)} may act as proxies for an adversarial post-classifier trained on the trained representation of the user data  135 . At equilibrium of a minimax game between the encoder E, the decoder D, the non-adversarial predictors T and S, and the adversarial predictors {tilde over (T)} and {tilde over (S)}, the latent space may factorize these subspaces independently. 
     Referring again to  FIGS. 1A-B , the user data  135  received at the first machine learning model  115  may include an observational input x ∈   k , an M quantity of non-private attributes α∈ =A 1 =A 1 &gt;A 2  . . . A M , each having m t  classes A t ={a 1 , . . . , a m     t   }, and a private attribute of N classes, which may be known at group level defined as y={1, . . . , N}. The goal of training the first machine learning model  115  may be to learn an encoder q(x; θ E )=z parameterized by θ E  producing an embedding z ∈    h . The representation of the user data  135  may be decomposed into two parts (z tar  ∈   f , z res  ∈    g )=z. Decomposition of the representation may entail two network streams, parameterized by θ tar  and θ res . Here z tar  may represent the target portion of the representation including the non-private attributes of the user data  135 , and z res  may represent a residual portion of the representation including the private attributes of the user data  135 . It may be assumed, without loss of generality, that the target portion z tar  and the residual portion z res  of the user data  135  may be of equal dimensionality f=g. 
     The encoder z=E(x; θ E ) and the decoder {tilde over (x)}=D(z; θ E ) may be defined as deterministic functions. Furthermore, z tar =E tar (x; θ E ) may, as noted, denote the target portion of the representation of the user data  135 , and z=E res (x; θ E ) may denote the residual portion of the representation of the user data  135 . The non-private attribute predictor T may be expressed as p T  (a|z tar ; the private attribute predictor S as p S (y|z; θ res ), and the corresponding adversarial predictors {tilde over (T)} and {tilde over (S)} may be denoted respectively as {tilde over (p)} T (a|z res ; {tilde over (θ)} tar ) and {tilde over (p)}(a|z res ; {tilde over (θ)} res ) . The attribute predictors T and S may be subject to a different optimization than the adversarial predictors {tilde over (T)} and {tilde over (S)} due to the competitive relationship between the two. For example, the predictors T and S may be trained using minimization of cross-entropy, and the adversarial predictors {tilde over (T)} and {tilde over (S)} may be trained to seek to maximize entropy. Expressed as Equations (1) and (2) below, the training of the first machine learning model 115  may be defined as an optimization problem in which six-players engage in a nonzero-sum game. 
     
       
         
           
             
               
                 
                   
                     
                       min 
                       
                         θ 
                         
                           E 
                           , 
                           T 
                           , 
                           D 
                           , 
                           S 
                         
                       
                     
                     
                       max 
                       
                         θ 
                         
                           T 
                           , 
                           
                             S 
                             ~ 
                           
                         
                       
                     
                     
                       λ 
                       · 
                       
                         
                           ϕ 
                           ED 
                         
                         ( 
                         
                           
                             θ 
                             E 
                           
                           , 
                           
                             θ 
                             D 
                           
                         
                         ) 
                       
                     
                   
                   + 
                   
                     
                       α 
                       T 
                     
                     · 
                     
                       
                         ϕ 
                         T 
                       
                       ( 
                       
                         
                           θ 
                           E 
                         
                         , 
                         
                           θ 
                           T 
                         
                       
                       ) 
                     
                   
                   + 
                 
               
               
                 
                   ( 
                   1 
                   ) 
                 
               
             
           
         
       
       
         
           
             
               
                 
                   
                     
                       
                         α 
                         S 
                       
                       · 
                       
                         
                           ϕ 
                           S 
                         
                         ( 
                         
                           
                             θ 
                             E 
                           
                           , 
                           
                             θ 
                             S 
                           
                         
                         ) 
                       
                     
                     + 
                     
                       
                         β 
                         
                           T 
                           ~ 
                         
                       
                       · 
                       
                         
                           ϕ 
                           
                             T 
                             ~ 
                           
                         
                         ( 
                         
                           
                             θ 
                             E 
                           
                           , 
                           
                             θ 
                             
                               T 
                               ~ 
                             
                           
                         
                         ) 
                       
                     
                     + 
                     
                       
                         β 
                         
                           s 
                           ~ 
                         
                       
                       · 
                       
                         
                           ϕ 
                           
                             S 
                             ~ 
                           
                         
                         ( 
                         
                           
                             θ 
                             E 
                           
                           , 
                           
                             θ 
                             
                               S 
                               ~ 
                             
                           
                         
                         ) 
                       
                     
                   
                   , 
                 
               
               
                 
                   ( 
                   2 
                   ) 
                 
               
             
           
         
       
     
     wherein φ*(.|.) may denote the players, and λ, α*, β* ∈   denote weighting scalars. The optimization criterion for each player is explained in more detail below. 
     In some example embodiments, the attribute predictors T and S and the corresponding adversarial predictors {tilde over (T)} and {tilde over (S)} may be trained in accordance with Equations (3) and (4) below. 
       ϕ T (θ E , θ T )= D   KL ( p ( a|x )∥ p   T ( a|E   tar ( x; θ   E ); θ tar )  (3)
 
       ϕ S (θ E , θ S )= D   KL ( p ( y|x )∥ p   S ( y|E   res ( x; θ   E ); θ res )  (4)
 
     wherein p(a|x) may denote the ground-truth label a for training input x, p(y|x) may denote the ground-truth label for the private attribute, and D KL (.∥.) may denote the Kullback-Leibler divergence between the two distributions. 
     In some example embodiment, a variational autoencoder (VAE) may be used for reconstructing the user data  135  based on the corresponding representation because the variational autoencoder may permit modeling the uncertainty associated with representation learning. Accordingly, optimization of ϕ ED  may entail minimizing an evidence lower bound (ELBO) as defined by Equation (5) below. 
       ϕ ED (θ E , θ D )= E   q(z|x; θ     E     )  [log  p ( x|z; θ   D )]− D   KL ( q ( x|z; θ   D )∥ p ( z ))  (5)
 
     Equation (5) may be decomposed into two parts. The first term may correspond to a likelihood of the user data  135  being reconstructed based on the corresponding representation, which may provide a measure of the error in the reconstruction. The second term may correspond to a prior constraint, where an isotropic Gaussian distribution may be assumed as the latent prior p(z)=N (0; I) in which I denotes the identity matrix. Furthermore, the posterior may be assumed to approximate to be multivariate Gaussians. Given the two separate encoding streams, one for the target portion including the non-private attributes of the user data  135  and the other for the residual portion including the private attributes of the user data  135 , may yield q(z tar |x; θ E )=N(z tar ; μ tar , Σ tar ,) and q(z res |x; θ E )=N(z res ; μ res , Σ res ,) in which μ ∈    h , Σ ∈   h×h  may denote the output of the encoder. 
     In some example embodiments, the training of the first machine learning model  115  may maximize an entropy in order to minimize information leakage across representation partitions. Doing so may generate the representation of the user data  135  to be maximally ignorant with respect to attributes in the domain confusion sense. Specifically, the adversarial target attribute may be expressed as Equation (6) below. 
       ϕ   S   (θ E , θ   T   )= D   KL (   p     T ( a|E   res ( x; θ   E ); θ {tilde over (T)} )∥ U ),  (6)
 
     wherein U may denote the uniform distribution. Although maximization of entropy may be sufficient for non-private attributes to minimize information leakage across representation partitions, it may nevertheless be insufficient for sanitization purposes as structural information may remain present. As such, when properly trained, the first machine learning model  115  may sanitize the information associated with each observation within a focus area such as amongst nearest neighbors. For instance, for each observation, the nearest neighbors may share the most commonalities in features. Accordingly, discrimination with respect to nearest neighbors may be less likely to be trivially enforceable. Proper sanitization may therefore be performed with respect to focus groups. To this end, training the first machine learning model  115  to optimize ϕ {tilde over (T)} (θ E , θ {tilde over (S)} ) may leverage focal entropy, rather than mere conventional entropy maximization, to serve the purpose of deep sanitization. 
     Realizing deep sanitization may require the private attributes of the user data  135  to be partitioned into two sets with respect to mutual discriminativeness. The first set may correspond to “similar” groups of private attributes while the second set may correspond to “dissimilar” groups of private attributes. As used herein, the term “similar private attributes” refer to attributes that are common amongst user data sharing a same label (or classification) and the term “dissimilar private attributes” refer to attributes that are not common amongst user data sharing the same label (or classification). This partitioning may be input specific. Thus, letting s be the logit scores given the observational input x, with class predictions given by any index with maximal score (e.g., p(y|x; θ)=p(s) ∈ argmax s). Accordingly, as shown in Equations (7) and (8), “similar” groups of private attributes may include the set of labels corresponding to the k largest scores while the “dissimilar” groups of private attributes may correspond to the complement. 
         y   similar   ={y ∈ y   (k)   : ∀i ∈  {1, . . . ,  k}, s   y     i     ≥s   [k] }  (7)
 
         y   dissimilar   =     \y   similar   (8)
 
     In Equations (7) and (8), s [k]  may denote the k-th largest element of s, and y k  may denote the set of k-tuples with k distinct elements of y. It should be noted that this grouping may be conducted either according to label information provided, using a pre-trained model or “on-the-fly” during training. Let N A , N B  correspond to the number of classes in A and B, where typically N A &lt;&lt;N B  holds and N=N A +N B . 
     When there are an N quantity of classes, entropy may reach a maximum at uniformity 
     
       
         
           
             
               ( 
               
                 e.g., 
                   
                 
                   1 
                   n 
                 
               
               ) 
             
             . 
           
         
       
     
     To ensure proper sanitization, the entropy peak may be shifted to increase the dominance of uniformity with respect to similar groups of private attribute. This implies reciprocal reweighting of the classes in A and B. Accordingly, a reweighting vector τ ∈    N  may be defined to achieve Equation (9) below. 
     
       
         
           
             
               
                 
                   
                     
                       𝒯 
                       
                         1 
                         , 
                         … 
                             
                         , 
                         
                           N 
                           A 
                         
                       
                     
                     = 
                     
                       
                         N 
                         E 
                       
                       
                         
                           N 
                           H 
                           2 
                         
                         + 
                         
                           
                             N 
                             E 
                           
                           · 
                           
                             N 
                             H 
                           
                         
                       
                     
                   
                   , 
                   
                     
                       𝒯 
                       
                         
                           
                             N 
                             A 
                           
                           + 
                           1 
                         
                         , 
                         … 
                             
                         , 
                         N 
                       
                     
                     = 
                     
                       
                         N 
                         H 
                       
                       
                         
                           N 
                           E 
                           2 
                         
                         + 
                         
                           
                             N 
                             H 
                           
                           · 
                           
                             N 
                             E 
                           
                         
                       
                     
                   
                   , 
                   
                     
                       s 
                       . 
                       t 
                       . 
                       
                         
                           ∑ 
                           i 
                           N 
                         
                         
                           𝒯 
                           i 
                         
                       
                     
                     = 
                     1 
                   
                 
               
               
                 
                   ( 
                   9 
                   ) 
                 
               
             
           
         
       
     
     To further illustrate,  FIG. 2A  depicts a schematic diagram illustrating focal entropy and the effect of grouping, in accordance with some example embodiments. The center of  FIG. 2A  provides a visualization of data point configuration and schematic focus regions depicted as circles ranging from narrow (1) to wide (3). To the left of  FIG. 2A , off-center entropies (similar, dissimilar) are visualized for different focus regions scenarios, with the width of the focus being inversely proportional to the weight of “similar” samples. For example, a more narrow focus may increase the weight of “similar” samples whereas a wider focus range may increase equiprobability. The right of  FIG. 2A  provides a visualization of entropy for focus scenarios. 
     As Equation (9) shows, the training of the first machine learning model  115  may aim to give more weight to confusion amongst members of similar groups private attributes. Meanwhile, members of dissimilar groups of private attributes may be down-weighted accordingly. As a result, the first machine learning model  115  may be trained to be maximally ignorant with respect to the class properties of members of similar groups private attributes. That is, the target portion of the representation of the user data  135  generated by the first machine learning model  115 , for example, the encoder E, may exclude sensitive information. This focus on specific targets is what is referred to as “focal entropy.” Implementation of the focal entropy criterion may be analogous to maximizing an off-centered entropy in the special case of a normalized uniform probability within each group. As shown in  FIG. 2A , off-centering entropy may entail a transformation of the probabilities, with p=(p 1 , . . . , p N ) ∈    N  being a vector of probabilities. 
     In order to have an entropy peak at τ ∈    N , each probability p i  may be remapped. In case of uniformity and an N quantity of classes 
     
       
         
           
             
               τ 
               = 
               
                 ( 
                 
                   
                     1 
                     N 
                   
                   , 
                   … 
                       
                   , 
                   
                     1 
                     N 
                   
                 
                 ) 
               
             
             , 
           
         
       
     
     to implement the focusing behavior with respect to similar groups of private attributes, π i  may be defined as Equation (10) below. 
     
       
         
           
             
               
                 
                   
                     
                       π 
                       j 
                     
                     = 
                     
                       
                         
                           
                             p 
                             j 
                           
                           
                             N 
                             
                               𝒯 
                               j 
                             
                           
                         
                         ⁢ 
                         if 
                         ⁢ 
                             
                         0 
                       
                       ≤ 
                       
                         p 
                         j 
                       
                       ≤ 
                       
                         𝒯 
                         j 
                       
                     
                   
                   , 
                   
                     
                       π 
                       j 
                     
                     = 
                     
                       
                         
                           
                             
                               N 
                               ⁡ 
                               ( 
                               
                                 
                                   p 
                                   j 
                                 
                                 - 
                                 
                                   𝒯 
                                   j 
                                 
                               
                               ) 
                             
                             + 
                             1 
                             - 
                             
                               p 
                               j 
                             
                           
                           
                             N 
                             ⁡ 
                             ( 
                             
                               1 
                               - 
                               
                                 𝒯 
                                 j 
                               
                             
                             ) 
                           
                         
                         ⁢ 
                         if 
                         ⁢ 
                             
                         
                           𝒯 
                           j 
                         
                       
                       ≤ 
                       
                         p 
                         j 
                       
                       ≤ 
                       1. 
                     
                   
                 
               
               
                 
                   ( 
                   10 
                   ) 
                 
               
             
           
         
       
     
     These π j  may be subject to subsequent normalization. The properties of a proper entropy may be achieved subsequent to normalization according to π*j=πj·(C i   N π i ) −1 . The application of focal entropy may promote the formation of hubs. This may be attributed to hubness being related to the convergence of pairwise similarities between elements to a constant as the dimensionality of the space increases. As a result, hubs may constitute a favored return to nearest neighbor queries. This may contrast with the notion of conventional entropy, its drive for equiprobability, and thereby suppression of hub formation. Consequently, whereas conventional entropy induces a bijective mapping due to its invariance to random relabeling, focal entropy may induce a surjective mapping to hubs. 
     Instead of actually transforming the probabilities, a transformation of probabilities may be emulated by splitting the entropy computation into two parts. Doing so may be computationally faster and conceptually more straightforward. As such, training the first machine learning model  115  may include maximizing entropy within each subgroup separately as shown in Equations (11) and (12) below. 
       ϕ {tilde over (T)} (θ E , θ   S   )= D   KL ( {tilde over (p)}   S ( y   A   |E   tar ( x; θ   E ); θ {tilde over (S)}   ∥U   A )+  (11)
 
         D   KL ( {tilde over (p)}   S ( y   B   |E   tar ( x; θ   E ); θ {tilde over (S)} )∥ U   B )  (12)
 
     In equations (11) and (12), y A , y B  may denote the classifier with respect to label subsets A and B, respectively. It should be appreciated that merging the groups “similar” and “dissimilar” private attribute may result in Equation (12) transform KL({tilde over (p)} S (y|E tar  (x; θ E ); {tilde over (θ)} {tilde over (S)} )∥U), which maximizes the uniform entropy across the entire set of private attributes. While maximizing the entropy with respect to members of similar groups of private attributes, the same may also be done for members of non-similar groups of private attributes. Doing so may support information disentanglement. 
     The performance of the first machine learning model  115  may be validated using a CelebA dataset of celebrity face images. The CelebA dataset may include a large number of identities (people) with multiple observations for each identity. The performance of the first machine learning model  115  may also be validated on the CIFAR-100 dataset, which contains 100 classes that are further grouped into 20 superclasses. The classes in the CIFAR-100 dataset may be entirely mutually exclusive such that each item is associated with precisely one fine-grained category that further belongs to one coarse superclass. In the privacy setting, the first machine learning model  115 , the encoder E, may be trained to learn a representation of the user data  135  that is superclass aware while simultaneously withholding information about the fine-grained classes. 
     In order to learn the representation of the user data  135 , Stochastic Gradient Descent (SGD) may be employed with momentum 0.9 and weight-decay of 1e-4 and a batch size of 200, with a learning rate of 0.01. Furthermore, a learning rate decay may be employed at every 30 th  epoch by a factor of 0.1. Specifically, in order to learn target and adversary classifiers smoothly, pre-training may be performed without any adversary objectives for 100 epochs. This gives the first machine learning model 135 an opportunity to learn a stable representation that is crucial for gentle modification (e.g., channeling of the information flow). Subsequently, the first machine learning model  135  may be trained for another 350 epochs, allowing for a slow “burn-in” of the adversary objective such it cannot be undone. As for the trade-off parameters of Equation (2), equal weights for target loss and adversary may be applied for the CIFAR-100 dataset (e.g., α tar =α T =1, β T =β S =−1). For the CelebA dataset, weighting may be performed according to number of objectives 
     
       
         
           
             
               ( 
               
                 
                   
                     e.g., 
                       
                     
                       α 
                       T 
                     
                   
                   = 
                   
                     1 
                     
                       4 
                       ⁢ 
                       0 
                     
                   
                 
                 , 
                   
                 
                   
                     α 
                     S 
                   
                   = 
                   
                     1 
                     . 
                     0 
                   
                 
                 , 
                   
                 
                   
                     β 
                     T 
                   
                   = 
                   
                     1 
                     
                       4 
                       ⁢ 
                       0 
                     
                   
                 
                 , 
                   
                 
                   
                     β 
                     S 
                   
                   = 
                   
                     - 
                     1 
                   
                 
               
               ) 
             
             . 
           
         
       
     
     Reconstructing weighting may always assume λ=1.0. For grouping in focal entropy, the nearest neighborhood size may be assumed to be 5. 
     To evaluate the quality of privacy sanitization, the target accuracy of the two datasets may be analyzed relative to adversarial accuracy. For the CIFAR-100 dataset, which includes 100 classes that are further grouped into 20 superclasses, each image may have a fine label corresponding to the class to which the image belongs as well as a coarse label corresponding to the superclass to which the image belongs. In the context of the CIFAR-100 dataset, the coarse label (e.g., superclass membership) may be treated as a non-private attribute whereas the fine label (e.g., class membership) may be treated as a private attribute. The task with respect to the CIFAR-100 dataset may be to the first machine learning model  115  to learn features of the superclasses while not revealing any information associated with the underlying classes. Ideally, the representation of the user data  135  generated by the first machine learning model  115  permit an 100% accuracy in the prediction of the superclass but a 1% accuracy in the prediction of the class (e.g., the probability associated with randomly selecting the correct class from 100 possible classes in the CIFAR-100 dataet). 
     Table 1 reports the accuracy achieved by the attribute predictor and adversary. The results shown in Table 1 indicate that the first machine learning model  115  achieves the best target accuracy while being comparable on adversarial accuracy compared to other sanitization techniques. Using conventional entropy for adversary instead of focal entropy results in a significant performance drop (e.g., achieving 0.85 and 0.25 in terms of target accuracy and adversary accuracy, respectively). This evidence the importance of similar group mining in privacy sanitization. 
     
       
         
           
               
               
               
               
             
               
                   
                 TABLE 1 
               
               
                   
                   
               
               
                   
                   
                 Target 
                 Adversarial 
               
               
                   
                 Method 
                 Accuracy 
                 Accuracy 
               
               
                   
                   
               
             
            
               
                   
               
            
           
           
               
            
               
                 CIFAR-100 [19] 
               
            
           
           
               
               
               
               
            
               
                   
                 Upper-bound/Random Chance 
                 1.0 
                 0.01 
               
               
                   
                 MaxEntARL [33] 
                 0.71 
                 0.16 
               
               
                   
                 Kernel-SARL [35] 
                 0.80 
                 0.16 
               
               
                   
                 Ours 
                 0.85 
                 0.16 
               
            
           
           
               
            
               
                 CIFAR-100 [15] 
               
            
           
           
               
               
               
               
            
               
                   
                 Upper-bound/Random Chance 
                 1.0 
                 &lt;0.001 
               
               
                   
                 Szabo [38] 
                 — 
                 0.09 
               
               
                   
                 Cycle-VAE [16] 
                 — 
                 0.14 
               
               
                   
                 DrNet [16] 
                 — 
                 0.03 
               
               
                   
                 ML-VAE [3] 
                 0.88 
                 0.178 
               
               
                   
                 Deep-Face-Attribute [24] 
                 0.873 
                 — 
               
               
                   
                 PANDA [41] 
                 0.854 
                 — 
               
               
                   
                 D 2  AE [23] 
                 0.878 
                 — 
               
               
                   
                 Ours 
                 0.90 
                 0.024 
               
               
                   
                   
               
            
           
         
       
     
     The CelebA dataset may have a richer structure to be utilized for privacy while at the same time being less structured in terms of similarity when compared to the CIFAR-100 dataset. For the CelebA dataset, attribute labels may be treated as the target whereas celebrity identity may be treated as the source of private information. 
     As such, the task of the first machine learning model 115 in the case of the CelebA dataset may be learn to classify the attributes, while not revealing the information about the identity of the celebrities. With the CelebA dataset, a lower adversary accuracy may be desirable compared to the CIFAR-100 dataset (e.g., &lt;0.001) due to the CelebA dataset having an order of magnitude higher quantity of identity classes. The accuracy of the target predictor and the adversary predictor are also shown in Table 1 above. As shown in Table 1, the first machine learning model  115  may achieve a higher target accuracy and lower adversarial accuracy when compared even the best non-adversarial techniques. As shown in Table 2, using conventional entropy instead of focal entropy when processing the CeleabA dataset exhibits a considerably higher level of privacy leakage (e.g., 0.061 and 0.024). 
     
       
         
           
               
               
               
               
             
               
                   
                 TABLE 2 
               
               
                   
                   
               
               
                   
                   
                 Target 
                 Adversarial 
               
               
                   
                 Method 
                 Accuracy 
                 Accuracy 
               
               
                   
                   
               
             
            
               
                   
               
            
           
           
               
            
               
                 CIFAR-100 [19] 
               
            
           
           
               
               
               
               
            
               
                   
                 Upper-bound/Random Chance 
                 1.0 
                 0.01 
               
               
                   
                 Our Method (conventional entropy) 
                 0.85 
                 0.26 
               
               
                   
                 Our Method (focal entropy) 
                 0.85 
                 0.16 
               
            
           
           
               
            
               
                 CelebA [15] 
               
            
           
           
               
               
               
               
            
               
                   
                 Upper-bound/Random Chance 
                 1.0 
                 0.01 
               
               
                   
                 Our Method (conventional entropy) 
                 0.90 
                 0.061 
               
               
                   
                 Our Method (focal entropy) 
                 0.90 
                 0.024 
               
               
                   
                   
               
            
           
         
       
     
     Moreover, to analyze the sanitization of privacy in the latent representation,  FIG. 3A  depicts a visualization of an example of privacy preserving representation, in accordance with some example embodiments.  FIG. 3A  depicts a t-distributed stochastic neighbor embedding (t-SNE) of the target portion and the residual portion of the representation of the user data  135 . For visualization, a subset of 200 identities may be selected randomly from the test set. As shown in  FIG. 3A , private class associations may appear random and not recoverable from the target portion of the representation. This contrasts sharply with the residual portion of the representation, where common identities tend to form clusters, giving rise to a proper margin. The visualization in  FIG. 3A  therefore confirms the quantitative results associated with target predictor and adversary predictor accuracy. 
     The attribute classification accuracy behavior with respect to varying level of privacy of attributes on the CelebA dataset is further analyzed. To that end, subsets of the original attributes may be selected with different degrees of correlation with the identities to reflect the different privacy level that is associated with each attribute. For example, three subsets of 5 attributes each may be selected to represent a low level of privacy, an intermediate level of privacy, and a high level of privacy. The rich correlation structure amongst all attributes makes this a challenging privacy dataset (e.g., difficult to achieve a high accuracy for non-private attributes and a low accuracy for private attributes). For each attribute, Table 3 below reports the Δ-accuracy, which may correspond to the difference in accuracy between a target predictor trained on z tar  and an adversary predictor trained on z res . Table 3 further depicts a corresponding “privacy correlation” trade-off while  FIG. 2B  provides a visualization of the normalized A-accuracy and the privacy correlation trade-off. As can be seen, a higher correlation to privacy may be associated with a higher the loss in accuracy. For example, private attributes, such as gender and facial attributes, may have strong correlation ad therefore exhibiting a significant loss in accuracy. By contrast, less private attributes such as temporal facial features (e.g., gestures and/or the like) may have low privacy correlation and therefore achieve stronger accuracy. A higher accuracy is therefore manifest where the attribute is more unrelated to identity. 
     
       
         
           
               
             
               
                 TABLE 3 
               
             
            
               
                   
               
               
                 CIFAR-100 [15] 
               
            
           
           
               
               
               
               
               
            
               
                   
                 Target 
                 Δ- 
                 Correla- 
                   
               
               
                 Attribute 
                 Accuracy 
                 Accuracy 
                 tion 
                 Group 
               
               
                   
               
            
           
           
               
               
               
               
               
            
               
                 Mouth_Slightly_Open 
                 0.92 
                 0.187 
                 0.222 
                 low 
               
               
                 Smiling 
                 0.912 
                 0.16 
                 0.239 
                 low 
               
               
                 High_Cheekbones 
                 0.861 
                 0.119 
                 0.267 
                 low 
               
               
                 Wavy_Hair 
                 0.801 
                 0.0248 
                 0.326 
                 low 
               
               
                 Oval_Face 
                 0.738 
                 0.00962 
                 0.332 
                 low 
               
               
                 Black_Hair 
                 0.87 
                 −0.00142 
                 0.37 
                 intermediate 
               
               
                 Wearing_Necklace 
                 0.882 
                 0.00404 
                 0.403 
                 intermediate 
               
               
                 Wearing_Lipstick 
                 0.906 
                 −0.00617 
                 0.415 
                 intermediate 
               
               
                 Heavy_Makeup 
                 0.89 
                 0.0131 
                 0.38 
                 intermediate 
               
               
                 No_Beard 
                 0.935 
                 −0.00149 
                 0.435 
                 intermediate 
               
               
                 Sideburns 
                 0.957 
                 −0.0531 
                 0.463 
                 high 
               
               
                 Gray_Hair 
                 0.971 
                 −0.0344 
                 0.471 
                 high 
               
               
                 Mustache 
                 0.965 
                 −0.0413 
                 0.474 
                 high 
               
               
                 Bald 
                 0.984 
                 −0.0332 
                 0.486 
                 high 
               
               
                 Male 
                 0.958 
                 −0.0262 
                 0.494 
                 high 
               
               
                   
               
            
           
         
       
     
     In some example embodiments, the variational autoencoder (VAE) may be the backbone of the first machine learning model  115  in learning the representation of the user data  1325  for a downstream task.  FIG. 3B  depicts a visualization of the CelebA dataset and reconstructions at varying privacy levels to provide further insights into the sanitization behavior of the first machine learning model  115 . Each column of  FIG. 3B  may corresponding to a different sample from the CelebA dataset and the reconstructions are performed with decreasing quantities of private attribute disclosure from top to bottom. For example, the first row may correspond to ground truth images while subsequent rows may correspond to reconstructions of the ground truth images based on representations having varying levels of disclosure of private attributes. The second row, for example, may correspond to reconstructions based on a concatenation of the target portion and the residual portion of the representation (e.g., [z tar , z res ]). The next two rows may correspond to reconstruction formed from the target portion of the representation and the residual portion of the representation. Specifically, the third row shows the reconstruction from the concatenation of the average target portion of the representation (e.g., across the entire training set) and the residual portion of the representation [z tar , z res ]. The fourth row, however, may correspond to the reconstruction of the ground truth images from the target portion of the representation in which a zero private latent vector (e.g., [z tar , 0]) is assumed 
       FIG. 3B  provides a visual confirmation of the sanitization that is being performed by the first machine learning model  115 . More concretely, reconstructions from the residual part of the representation may result in a sharpening of identity revealing private attributes (e.g., skin color, eye style, and/or the like) and a obscuring of non-identity revealing non-private attributes (e.g., sunglasses, jewelry, and/or the like). Contrastingly, reconstructions from the target portion of the representation may include generic facial features (e.g., facial expressions, teeth, facial outlines, and/or the like). It should therefore be appreciated that target reconstructions may usurp properties provided by the CelebA attributes such as accessories (sunglasses which appear shadows around eyes), facial expressions, and/or the like. Residual reconstructions may feature essential information for identifying the person, e.g., beard removed, eyeglasses removed, background removed, and/or the like. The reconstructions from joining target and residual portions of the representation may feature a clear reconstruction of facial properties, while at the same time blurring out the non-essential background. 
       FIG. 4A  depicts a flowchart illustrating an example of a process  400  for privacy preserving machine learning processing, in accordance with some example embodiments. Referring to  FIGS. 1, 2A -B,  3 A-B, and  4 A, the process  400  may be performed by the privacy controller  110  in order to generate a privacy preserving representation of the user data  135  for one or more downstream tasks at the task engine  120 . 
     At  402 , the privacy controller  110  may train, in an adversarial manner, the first machine learning model  115  to generate privacy preserving representations configured to maximize an entropy amongst groups of similar private attributes while maintaining a separation between one or more private attributes and non-private attributes. In some example embodiments, the privacy controller  110  may train the first machine learning model  115  to generate a privacy preserving representation of user data for subsequent processing by one or more other machine learning models. For example, the first machine learning model  115  may be subjected to adversarial training to learn privacy preserving representations to achieve a focal entropy. Doing so may shift a maximum entropy towards similar group members to enforce uncertainty amongst similar private attributes while maintaining the separation between private attributes and non-private attributes. Once trained, the first machine learning model  115  may therefore be capable of generating a privacy preserving representation configured to preserve information associated with the non-private attributes of the user data and omitting information associated with the private attributes of the user data. 
     At  404 , the privacy controller  110  may apply the trained first machine learning model  115  to generate a representation of a user data. For example, the privacy controller  110  may apply the trained first machine learning model  115  to generate a representation of the user data  135 . The first machine learning model  115  may be trained to generate a representation that is configured to preserve information associated with the non-private attributes of the user data  135  and omitting information associated with the private attributes of the user data  135 . The representation of the user data  135  may therefore maintain the privacy and security of the user data  135  while maximizing the predictive power of the one or more machine learning models operating on the representation of the user data  135 . 
     At  406 , the privacy controller  110  may send, to the task engine  120 , the representation of the user data to perform one or more downstream tasks. The representation of the user data  135  may, as noted, maintain the privacy and security of the user data  135  while maximizing the predictive power of the one or more machine learning models operating on the representation of the user data  135 . Accordingly, the representation of the user data  135  may be used to train the second machine learning model  125  at the task engine  120 . Alternatively and/or additionally, the second machine learning model  135  may ingest the representation of the user data  135  to perform one or more cognitive tasks including, for example, object identification, natural language processing, information retrieval, speech recognition, and/or the like. The representation of the user data  135  may preserve an ability of the second machine learning model  125  to classify the user data  135  based on the non-private attributes of the user data  135 . Moreover, the representation of the user data  135  may prevent the second machine learning model  125  from classifying the user data  135  based on the private attributes of the user data  135 . 
       FIG. 4B  depicts a flowchart illustrating an example of a process  450  for training a machine learning model to generate a privacy preserving representation of a user data, in accordance with some example embodiments. Referring to  FIGS. 1, 2A -B,  3 A-B, and  4 A-B, the process  450  may implement operation  402  of the process  400 . The process  450  may be performed by the privacy controller  110  in order to train, for example, the first machine learning model  115  to generate a privacy preserving representation of the user data  135 . 
     At  452 , the privacy controller  110  may train, based at least on a first representation of a target portion of a user data and a second representation of a residual portion of the user data generated by an encoder, a non-private attribute predictor and a private attribute predictor to maintain a separation between private attributes and non-private attributes. As shown in  FIG. 1B , the first machine learning model  115  may include the encoder E, the decoder D, the non-private attribute predictor T, the private attribute predictor S, and two adversarial predictors {tilde over (T)}, {tilde over (S)}. In some example embodiments, the encoder E may generate z tar  corresponding to the target portion of the representation, which includes the non-private attributes of the user data  135 . Moreover, the encoder E may generate z res  corresponding to a residual portion of the representation, which includes the private attributes of the user data  135 . The non-adversarial predictors T and S may aim at channeling the information flow. For example, the non-adversarial predictors T and S may be trained using minimization of cross-entropy in order to maintain the separation between the private attributes and the non-private attributes of the user data  135 . 
     At  454 , the privacy controller  110  may train, based at least on the first representation of the target portion of the user data and the second representation of the residual portion of the user data generated by the encoder, an adversarial private attribute predictor and an adversarial non-private attribute predictor to maximize an entropy amongst similar private attributes of the user data  135 . For example, the adversarial predictors T and S may be trained to achieve focal entropy by seeking a maximize entropy as amongst similar private attributes, which include attributes that are common to user data sharing a same label (or classification). 
     At  456 , the privacy controller  110  may optimize, based at least on the outputs of the private attribute predictor, the non-private attribute predictor, the adversarial private attribute predictor, and the adversarial non-private attribute predictor, a performance of the encoder generating one or more privacy preserving representations of user data. For example, in some example embodiments, the training of the first machine learning model  115  may be defined as an optimization problem in which the encoder E, the decoder D, the non-private attribute predictor T, the private attribute predictor S, and two adversarial predictors {tilde over (T)}, {tilde over (S)} engage in a nonzero-sum game. 
       FIG. 5  depicts a block diagram illustrating a computing system  500 , in accordance with some example embodiments. Referring to  FIGS. 1-5 , the computing system  500  can be used to implement the privacy controller  110 , the task engine  120  can include a processor  510 , a memory  520 , a storage device  530 , and input/output devices memory  520 , the storage device  530 , and the input/output devices  540  can be interconnected via a system bus  550 . The processor  510  is capable of processing instructions for execution within the computing system  500 . Such executed instructions can implement one or more components of, for example, the privacy controller  110 , the task engine  120 , and/or the like. In some implementations of the current subject matter, the processor  510  can be a single-threaded processor. Alternately, the processor  510  can be a multi-threaded processor. The processor  510  is capable of processing instructions stored in the memory  520  and/or on the storage device  530  to display graphical information for a user interface provided via the input/output device  540 . 
     The memory  520  is a computer readable medium such as volatile or non-volatile that stores information within the computing system  500 . The memory  520  can store data structures representing configuration object databases, for example. The storage device  530  is capable of providing persistent storage for the computing system  500 . The storage device  530  can be a floppy disk device, a hard disk device, an optical disk device, or a tape device, or other suitable persistent storage means. The input/output device  540  provides input/output operations for the computing system  500 . In some implementations of the current subject matter, the input/output device  540  includes a keyboard and/or pointing device. In various implementations, the input/output device  540  includes a display unit for displaying graphical user interfaces. 
     According to some implementations of the current subject matter, the input/output device  540  can provide input/output operations for a network device. For example, the input/output device  540  can include Ethernet ports or other networking ports to communicate with one or more wired and/or wireless networks (e.g., a local area network (LAN), a wide area network (WAN), the Internet). 
     In some implementations of the current subject matter, the computing system  500  can be used to execute various interactive computer software applications that can be used for organization, analysis and/or storage of data in various (e.g., tabular) format (e.g., Microsoft Excel®, and/or any other type of software). Alternatively, the computing system  500  can be used to execute any type of software applications. These applications can be used to perform various functionalities, e.g., planning functionalities (e.g., generating, managing, editing of spreadsheet documents, word processing documents, and/or any other objects, etc.), computing functionalities, communications functionalities, etc. The applications can include various add-in functionalities or can be standalone computing products and/or functionalities. Upon activation within the applications, the functionalities can be used to generate the user interface provided via the input/output device  540 . The user interface can be generated and presented to a user by the computing system  500  (e.g., on a computer screen monitor, etc.). 
     One or more aspects or features of the subject matter described herein can be realized in digital electronic circuitry, integrated circuitry, specially designed ASICs, field programmable gate arrays (FPGAs) computer hardware, firmware, software, and/or combinations thereof. These various aspects or features can include implementation in one or more computer programs that are executable and/or interpretable on a programmable system including at least one programmable processor, which can be special or general purpose, coupled to receive data and instructions from, and to transmit data and instructions to, a storage system, at least one input device, and at least one output device. The programmable system or computing system may include clients and servers. A client and server are generally remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other. 
     These computer programs, which can also be referred to as programs, software, software applications, applications, components, or code, include machine instructions for a programmable processor, and can be implemented in a high-level procedural and/or object-oriented programming language, and/or in assembly/machine language. As used herein, the term “machine-readable medium” refers to any computer program product, apparatus and/or device, such as for example magnetic discs, optical disks, memory, and Programmable Logic Devices (PLDs), used to provide machine instructions and/or data to a programmable processor, including a machine-readable medium that receives machine instructions as a machine-readable signal. The term “machine-readable signal” refers to any signal used to provide machine instructions and/or data to a programmable processor. The machine-readable medium can store such machine instructions non-transitorily, such as for example as would a non-transient solid-state memory or a magnetic hard drive or any equivalent storage medium. The machine-readable medium can alternatively or additionally store such machine instructions in a transient manner, such as for example, as would a processor cache or other random access memory associated with one or more physical processor cores. 
     To provide for interaction with a user, one or more aspects or features of the subject matter described herein can be implemented on a computer having a display device, such as for example a cathode ray tube (CRT) or a liquid crystal display (LCD) or a light emitting diode (LED) monitor for displaying information to the user and a keyboard and a pointing device, such as for example a mouse or a trackball, by which the user may provide input to the computer. Other kinds of devices can be used to provide for interaction with a user as well. For example, feedback provided to the user can be any form of sensory feedback, such as for example visual feedback, auditory feedback, or tactile feedback; and input from the user may be received in any form, including acoustic, speech, or tactile input. Other possible input devices include touch screens or other touch-sensitive devices such as single or multi-point resistive or capacitive track pads, voice recognition hardware and software, optical scanners, optical pointers, digital image capture devices and associated interpretation software, and the like. 
     The subject matter described herein can be embodied in systems, apparatus, methods, and/or articles depending on the desired configuration. The implementations set forth in the foregoing description do not represent all implementations consistent with the subject matter described herein. Instead, they are merely some examples consistent with aspects related to the described subject matter. Although a few variations have been described in detail above, other modifications or additions are possible. In particular, further features and/or variations can be provided in addition to those set forth herein. For example, the implementations described above can be directed to various combinations and subcombinations of the disclosed features and/or combinations and subcombinations of several further features disclosed above. In addition, the logic flows depicted in the accompanying figures and/or described herein do not necessarily require the particular order shown, or sequential order, to achieve desirable results. For example, the logic flows may include different and/or additional operations than shown without departing from the scope of the present disclosure. One or more operations of the logic flows may be repeated and/or omitted without departing from the scope of the present disclosure. Other implementations may be within the scope of the following claims.