User language data can contain highly sensitive personal content. As such, it is imperative to offer users a strong and interpretable privacy guarantee when learning from their data. In this work, we propose SentDP: pure local differential privacy at the sentence level for a single user document. We propose a novel technique, D eep C andidate, that combines concepts from robust statistics and language modeling to produce high-dimensional, general-purpose  -SentDP document embeddings. This guarantees that any single sentence in a document can be substituted with any other sentence while keeping the embedding  -indistinguishable. Our experiments indicate that these private document embeddings are useful for downstream tasks like sentiment analysis and topic classification and even outperform baseline methods with weaker guarantees like word-level Metric DP. Language models have now become ubiquitous in NLP (Devlin et al., 2019; Liu et al., 2019b; Alsentzer et al., 2019), pushing the state of the art in a variety of tasks (Strubell et al., 2018; Liu et al., 2019a; Mrini et al., 2021). While language models capture meaning and various linguistic properties of text (Jawahar et al., 2019; Yenicelik et al., 2020), an individual's written text can include highly sensitive information. Even if such details are not needed or used, sensitive information has been found to be vulnerable and detectable to attacks (Pan et al., 2020; Abdalla et al., 2020; Carlini et al., 2020). Reconstruction attacks (Xie and Hong, 2021) have even successfully broken through private learning schemes that rely on encryption-type methods (Huang et al., 2020). As of now, there is no broad agreement on what constitutes good privacy for natural language (Kairouz et al., 2019). Huang et al. (2020) argue that different applications and models require Figure 1: x and x  yield z  R d with similar probability. different privacy definitions. Several emerging works propose to apply Metric Differential Privacy (Alvim et al., 2018) at the word level (Feyisetan et al., 2019; Feyisetan and Kasiviswanathan, 2021; Carvalho et al., 2021; Qu et al., 2021; Yue et al., 2021; Xu et al., 2021) . They propose to add noise to word embeddings, such that they are indistinguishable from their nearest neighbours. At the document level, however, the above definition has two areas for improvement. First, it may not offer the level of privacy desired. Having each word indistinguishable with similar words may not hide higher level concepts in the document, and may not be satisfactory for many users. Second, it may not be very interpretable or easy to communicate to end-users, since the privacy definition relies fundamentally on the choice of embedding model to determine which words are indistinguishable with a given word. This may not be a clear and precise enough for end-users to grasp. In this work, we propose a new privacy definition for documents: sentence privacy. This guarantee is both strong and interpretable: any sentence in a document must be indistinguishable with any other sentence. A document embedding is sentence-private if we can replace any single sentence in the document and have a similar probability of producing the same embedding. As such, the embedding only stores limited information unique to any given sentence. This definition is easy to communicate and strictly stronger than word-level definitions, as modifying a sentence can be changing one word. Although this definition is strong, we are able to produce unsupervised, general embeddings of documents that are useful for downstream tasks like sentiment analysis and topic classification. To achieve this we propose a novel privacy mechanism, D eep C andidate, which privately samples a high-dimensional embedding from a preselected set of candidate embeddings derived from public, non-private data. D eep C andidate works by first pre-tuning a sentence encoder on public data such that semantically different document embeddings are far apart from each other. Then, we approximate each candidate's Tukey Depth within the private documents' sentence embeddings. Deeper candidates are the most likely to be sampled to represent the private document. We evaluate D eep C andidate on three illustrative datasets, and show that these unsupervised private embeddings are useful for both sentiment analysis and topic classification as compared to baselines. In summary, this work makes the following contributions to the language privacy literature: 1. A new, strong, and interpretable privacy definition that offers complete indistinguishability to each sentence in a document. 2. A novel, unsupervised embedding technique, D eep C andidate, to generate sentence-private document embeddings. 3. An empirical assessment of D eep C andidate, demonstrating its advantage over baselines, delivering strong privacy and utility. Then, the space of all documents is X = S  and document x  X is written as x = ( s 1 , s 2 , . . . , s k ) for any non-negative integer k of sentences. In this work, we focus on cohesive documents of sentences written together like reviews or emails, but our methods and guarantees apply to any sequence of sentences, such as a collection of messages written by an individual over some period of time. Our task is to produce an embedding z  R d of any document x  X such that any single sentence s i  x is indistinguishable with every other sentence s  i  S\ s i . That is, if one were to replace any single sentence in the document s i  x with any other sentence s  i  S\ s i , the probability of producing a given embedding z is similar. To achieve this, we propose a randomized embedding function (the embedding mechanism ) M : X  R d , that generates a private embedding z = M ( x ) that is useful for downstream tasks. The above privacy notion is inspired by Differential Privacy (DP) (Dwork, 2006). It guarantees that  whether an individual participates (dataset D ) or not (dataset D  )  the probability of any output only chances by a constant factor. Definition 2.1 (Differential Privacy) . Given any pair of datasets D, D   D that differ only in the information of a single individual, we say that the mechanism A : D  O , satisfies  -DP if Pr[ A ( D )  O ]  e  Pr[ A ( D  )  O ] for any event O  O . Note that we take probability over the randomness of the mechanism A only, not the data distribution. DP has several nice properties that make 3368 it easy to work with including closure under postprocessing, an additive privacy budget (composi-tion), and closure under group privacy guarantees (guarantees to a subset of multiple participants). See Dwork et al. 2014 for more details. When our output space is a discrete and finite set of alternatives to choose from O = ( o 1 , o 2 , . . . , o n ) , we may use the exponential mechanism to satisfy  -DP (McSherry and Talwar, 2007). To do so, we specify a utility function over input/output pairs, u : D  O  R . The utility of choosing alternative o  O when the input is dataset D  D is then given by u ( D, o ) . The sensitivity of u (  ,  ) is the worst-case change in utility over pairs of neighboring datasets,  u = max D,D  ,o | u ( D, o )  u ( D  , o ) | . Natural Language Privacy. Previous work has demonstrated that NLP models and embeddings are vulnerable to reconstruction attacks (Carlini et al., 2020; Abdalla et al., 2020; Pan et al., 2020). In response there have been various efforts to design privacy-preserving techniques and definitions across NLP tasks. A line of work focuses on how to make NLP model training satisfy DP (Kerrigan et al., 2020; Bagdasaryan et al., 2019). This is distinct from our work in that it satisfies central DP  where data is first aggregated non-privately and then privacy preserving algorithms (i.e. training) are run on that data. We model this work of the local version of DP (Dwork et al., 2006), wherein each individual's data is made private before centralizing. Our definition guarantees privacy to a single document as opposed to a single individual. A line of work more comparable to our approach makes documents locally private by generating a randomized version of a document that satisfies some formal privacy definition. As with the private embedding of our work, this generates locally private representation of a given document x . The overwhelming majority of these methods satisfy an instance of Metric-DP (Alvim et al., 2018) at the word level (Feyisetan et al., 2019; Feyisetan and Kasiviswanathan, 2021; Carvalho et al., 2021; Qu et al., 2021; Yue et al., 2021; Xu et al., 2021). As discussed in the introduction, this guarantees that a document x is indistinguishable with any other document x  produced by swapping a single word in x with a similar word. Two words are similar' if they are close in the word embeddings space (e.g. GloVe). This guarantee is strictly weaker than our proposed definition, SentDP, which offers indistinguishability to any two documents that differ in an entire sentence. Privacy-preserving embeddings. There is a large body of work on non-NLP privacy-preserving embeddings, as these embeddings have been shown to be vulnerable to attacks (Song and Raghunathan, 2020). Li and Clifton (2021) attempt to generate locally private embeddings by bounding the embedding space, and we compare with this method in our experiments. Kamath et al. (2019) propose a method for privately publishing the average of embeddings, but their algorithm is not suited to operate on the small number of samples (sentences) a given document offers. Finally, Beimel et al. (2019) propose a method for privately learning halfspaces in R d , which is relevant to private Tukey Medians, but their method would restrict input examples (sentence embeddings) to a finite discrete set in R d , a restriction we cannot tolerate. We now introduce our simple, strong privacy definition, along with concepts we use to satisfy it. In this work, we adopt the local notion of DP (Dwork et al., 2006), wherein each individual's data is guaranteed privacy locally before being reported and centralized. Our mechanism M receives a single document from a single individual, x  X . We require that M provides indistinguishability between documents x, x  differing in one sentence . Definition 3.1 (Sentence Privacy, SentDP) . Given any pair of documents x, x   X that differ only in one sentence, we say that a mechanism M : X  O satisfies  -SentDP if Pr[ M ( x )  O ]  e  Pr[ M ( x  )  O ] for any event O  O . We focus on producing an embedding of the given document x , thus the output space is O = R d . For instance, consider the neighboring documents x = ( s 1 , s 2 , . . . , s k ) and x  = ( s 1 , s  2 , . . . , s k ) that differ in the second sentence, i.e. s 2 , s  2 can be 3369 any pair of sentences in S 2 . This is a strong notion of privacy in comparison to existing definitions across NLP tasks. However, we show that we can guarantee SentDP while still providing embeddings that are useful for downstream tasks like sentiment analysis and classification. In theory, a SentDP private embedding z should be able to encode any information from the document that is not unique to a small subset of sentences. For instance, z can reliably encode the sentiment of x as long as multiple sentences reflect the sentiment. By the group privacy property of DP, which SentDP maintains, two documents differing in a sentences are a indistinguishable. So, if more sentences reflect the sentiment, the more M can encode this into z without compromising on privacy. Our approach is to produce a private version of the average of general-purpose sentence embeddings. By the post-processing property of DP, this embedding can be used repeatedly in any fashion desired without degrading the privacy guarantee. Our method makes use of existing pre-trained sentence encoding models. We denote this general sentence encoder as G : S  R d . We show in our experiments that the mean of sentence embeddings, g ( x ) = (cid:88) s i  x G ( s i ) , (1) maintains significant information unique to the document and is useful for downstream tasks like classification and sentiment analysis. We call g ( x ) the document embedding since it summarizes the information in document x . While there exist other definitions of document embeddings (Yang et al., 2016; Thongtan and Phien-thrakul, 2019; Bianchi et al., 2020), we decide to use averaging as it is a simple and established embedding technique (Bojanowski et al., 2017; Gupta et al., 2019; Li et al., 2020). Definition 3.2. Given a distribution P over R d , the Tukey Depth of a point y  R d is TDP ( y ) = inf w  R d P { y  : w  ( y   y )  0 } . In other words, take the hyperplane orthogonal to vector w , h w , that passes through point y . Let P w 1 be the probability under P that a point lands on one side of h w and let P w 2 be the probability that a point lands on the other side, so P w 1 + P w 2 = 1 . y is considered deep if min( P w 1 , P w 2 ) is close to a half for all vectors w (and thus all h passing through y ). The Tukey Median of distribution P , TMED ( P ) , is the set of all points with maximal Tukey Depth, TMED ( P ) = arg max y  R d TDP ( y ) . and the median, TMED ( Y ) , maximizes the depth and is at most half the size of our sample (cid:4) n (cid:5) . Generally, finding a point in TMED ( Y ) is hard; SOTA algorithms have an exponential dependency in dimension (Chan, 2004), which is a non-starter when working with high-dimensional embeddings. However, there are efficient approximations which we will take advantage of. While useful and general, the document embedding g ( x ) does not satisfy SentDP. We now turn to describing our privacy-preserving technique, D eep C andidate, which generates general,  -SentDP document embeddings that preserve relevant information in g ( x ) , and are useful for downstream tasks. To understand the nontrivial nature of this problem, we first analyze why the simplest, straightfoward approaches are insufficient. Motivation. Preserving privacy for high dimensional objects is known to be challenging (Kamath et al., 2019; Feyisetan and Kasiviswanathan, 2021; Zhou et al., 2009) . For instance, adding Laplace noise directly to g ( x ) , as done to satisfy some privacy definitions (Feyisetan et al., 2019; Alvim et al., 2018), does not guarantee SentDP for any  . Recall that the embedding space is all of R d . A change in one sentence can lead to an unbounded change in g ( x ) , since we do not put any restrictions on the general encoder G . Thus, no matter how much noise we add to g ( x ) we cannot satisfy SentDP. a limited set such as a sphere or hypercube as done in prior work (Li and Clifton, 2021; Abadi et al., 2016). In doing so, we bound how far apart embeddings can be for any two sentences,  G ( s i )  G ( s  i )  1 , thus allowing us to satisfy SentDP by adding finite variance noise. However, such schemes offer poor utility due to the high dimensional nature of useful document embeddings (we confirm this in our experiments). We must add noise with standard deviation proportional to the dimension of the embedding, thus requiring an untenable degree of noise for complex encoders like BERT which embed into R 768 . Our method has three pillars: (1) sampling from a candidate set of public, non-private document embeddings to represent the private document, (2) using the Tukey median to approximate the document embedding, and (3) pre-training the sentence encoder, G , to produce relevant candidates with high Tukey depth for private document x . Instead of having our mechanism select a private embedding z from the entire space of R d , we focus the mechanism to select from a set of m candidate embeddings, F , generated by m public, non-private documents. We assume the document x is drawn from some distribution  over documents X . For example, if we know x is a restaurant review,  may be the distribution over all restaurant reviews. F is then a collection of document embeddings over m publicly accessible documents x i   , F = { f i = g ( x i ) : x 1 , . . . , x m iid   } , and denote the corresponding distribution over f i as g (  ) . By selecting documents F to be similar in nature to the private document x , we inject an advantageous inductive bias into our mechanism, which is critical to satisfy strong privacy while preserving meaningful information relevant to x . We now propose a novel mechanism MTD , which approximates g ( x ) by sampling a candidate embedding from F . MTD works by concentrating probability on candidates with high Tukey Depth w.r.t. the set of sentence embeddings S x = { G ( s i ) : s i  x } . We model sentences s i from document x as i.i.d. draws from distribution  x . Then, S x is k draws from g (  x ) , the distribution of sentences from  x passing through G . Deep points are a good approximation of the mean under light assumptions. If g (  x ) belongs to the set of halfspace-symmetric distributions (including all elliptic distributions e.g. Gaussians), we know that its mean lies in the Tukey Median (Zhu et al., 2020). Formally, MTD is an instance of the exponential mechanism (Definition 2.2), and is defined by its utility function. We set the utility of a candidate document embedding f i  F to be an approximation of its depth w.r.t. sentence embeddings S x , u ( x, f i ) = (cid:99) TDS x ( f i ) . The approximation (cid:99) TDS x , which we detail in the Appendix, is necessary for computational efficiency. If the utility of f i is high, we call it a deep candidate' for sentence embeddings S x . The more candidates sampled (higher m ), the higher the probability that at least one has high depth. Without privacy, we could report the deepest candidate, z = arg max f i  F (cid:99) TDS x ( f i ) . However, when preserving privacy with MTD , increasing m has diminishing returns. To see this, fix a set of sentence embeddings S x for document x and the i.i.d. distribution over candidate embeddings f i  g (  ) . This induces a multinomial distribution over depth, u j ( x ) = Pr[ u ( x, f i ) = j ] ,  k 2  (cid:88) j =0 u j ( x ) = 1 , where randomness is taken over draws of f i . For candidate set F and sentence embeddings S x , the probability of MTD 's selected candidate, z , having (approximated) depth j  is given by Pr[ u ( x, z ) = j  ] = a j  ( x ) e j  / 2 (cid:80)  k 2  j =0 a j ( x ) e j/ 2 (4) where a j ( x ) is the fraction of candidates in F with depth j w.r.t. the sentence embeddings of document x , S x . For m sufficiently large, a j ( x ) concentrates around u j ( x ) , so further increasing m does not increase the probability of MTD sampling a deep candidate. For numerical intuition, suppose m = 5000 (as in our experiments),  b candidates have depth  j  , and all other candidates have depth 0, MTD will sample one of these deep candidates w.p.  0 . 95 under the settings in Table 1. For low  < 10 (high privacy), about 1% of candidates need to have high depth (  3) in order to be 3371 Table 1: Conditions for deep candidates  b j  3 55 5 6 25 3 10 5 2 23 1 1 Figure 3: G  is trained to encourage similar documents to embed close together and different documents to embed far apart. reliably sampled. Note that this is only possible for documents with  6 sentences. For higher   10 , MTD will reliably sample low depth candidates even if there are only a few. From these remarks we draw two insights on how D eep C andidate can achieve high utility. (1) More sentences A higher k enables greater depth, and thus a higher probability of sampling deep candidates with privacy. We explore this effect in our experiments. (2) Tuned encoder By tuning the sentence encoder G for a given domain, we can modify the distribution over document embeddings g (  ) and sentence embeddings g (  x ) to encourage deep candidates (high probability u j for deep j ) that are relevant to document x . So far, we have identified that deep candidates from F can approximate g ( x ) . To produce a good approximation, we need to ensure that 1) there reliably exist deep candidates for any given set of sentence embeddings S x , and 2) that these deep candidates are good representatives of document x . The general sentence encoder G used may not satisfy this out of the box'. If the distribution on document embeddings g (  ) is very scattered around the instance space R 768 , it can be exceedingly unlikely to have a deep candidate f i among sentence embeddings S x . On the other hand, if distribution g (  ) is tightly concentrated in one region (e.g. before training' in Figure 3), then we may reliably have many deep candidates, but several will be poor representatives of the document embedding g ( x ) . To prevent this, we propose an unsupervised, efficient, and intuitive modification to the (pretrained) sentence encoder G . We freeze the weights of G and add additional perceptron layers mapping into the same embeddings space H : R d  R d , producing the extended encoder G  = H  G . Broadly, we train H to place similar document embeddings close together, and different embeddings far part. To do so, we leverage the assumption that a given domain's distribution over document embeddings g (  ) can be parameterized by n c clusters, visualized as the black circles in Figure 3. H 's aim is to recode sentence embeddings such that document embedding clusters are preserved, but spaced apart from each other. By preserving clusters, we are more likely to have deep candidates (increased probability u j for high depth j ). By spacing clusters apart, these deep candidates are more likely to come from the same or a nearby cluster as document x , and thus be good representatives. Note that H is domain-specific: we train separate H encoders for each dataset. The final component of D eep C andidate is computing the approximate depth of a candidate for use as utility in the exponential mechanism as in Eq. (3). We use a version of the approximation algorithm proposed in Gilad-Bachrach and Burges 2012. Intuitively, our algorithm computes the one-dimensional depth of each f i among x 's sentence embeddings S x on each of p random projections. The approximate depth of f i is then its lowest depth across the p projections. We are guaranteed that (cid:99) TDS x ( f i )  TDS x ( f i ) . Due to space constraints, we leave the detailed description of the algorithm for the Appendix. Proof follows from the fact that (cid:99) TDS x ( f i ) has bounded sensitivity (changing one sentence can only change depth of f i by one). We expand on this, too, in the Appendix. We produce private, general embeddings of documents from three English-language datasets: Good Reads (Wan and McAuley, 2018) 60k book reviews from four categories: fantasy, history, romance, and childrens literature. Train-48k | Val-8k | Test-4k 20 News Groups (Lang, 1995) 11239 correspondences from 20 different affinity groups. Due to similarity between several groups (e.g. comp.os.ms-windows.misc and comp.sys.ibm.pc.hardware ), the dataset is partitioned into nine categories. Train-6743k | Val-2247k | Test-2249k IMDB (Maas et al., 2011) 29k movie reviews from the IMDB database, each labeled as a positive or negative review. Train-23k | Val-2k | Test-4k To evaluate utility of these unsupervised, private embeddings, we check if they are predictive of document properties. For the Good Reads and 20 News Groups datasets, we evaluate how useful the embeddings are for topic classification. For IMDB we evaluate how useful the embeddings are for sentiment analysis (positive or negative review). Our metric for performance is test-set macro F 1 score. For the general encoder, G : S  R 768 , we use SBERT (Reimers and Gurevych, 2019), a version of BERT fine-tuned for sentence encoding. Sentence embeddings are generated by mean-pooling output tokens. In all tasks, we freeze the weights of SBERT. The cluster-preserving recoder, H , as well as every classifier is implemented as an instance of a 4-layer MLP taking 768 -dimension inputs and only differing on output dimension. We denote an instance of this MLP with output dimension o as MLP o . We run 5 trials of each experiment with randomness taken over the privacy mechanisms, and plot the mean along with a  1 standard deviation envelope. D eep C andidate: The candidate set F consists of 5k document embeddings from the training set, each containing at least 8 sentences. To train G  , we find n c = 50 clusters with k -means. We train a classifier C dc = MLP r on document embeddings g  ( x ) to predict class, where r is the number of classes (topics or sentiments). We compare the performance of D eep C andidate with 4 baselines: Non-private , Truncation , Word-level Metric-DP , and Random Guesser . Non-private: This demonstrates the usefulness of non-private sentence-mean document embeddings g ( x ) . We generate g ( x ) for every document using SBERT, and then train a classifier C nonpriv = MLP r to predict x 's label from g ( x ) . Truncation: We adopt the method from Li and Clifton 2021 to truncate (clip) sentence embeddings within a box in R 768 , thereby bounding sensitivity as described at the beginning of Section 4. Laplace noise is then added to each dimension. Documents with more sentences have proportionally less noise added due to the averaging operation reducing sensitivity. Word Metric-DP (MDP): The method from Feyisetan et al. 2019 satisfies  -word-level metric DP by randomizing words. We implement MDP to produce a randomized document x  , compute g ( x  ) with SBERT, and predict class using C nonpriv . Random Guess: To set a bottom-line, we show the theoretical performance of a random guesser only knowing the distribution of labels. This is addressed in Figures 4a to 4c. Here, we observe how the test set macro F 1 score changes with privacy parameter  (a lower  offers stronger privacy). Generally speaking, for local differential privacy,  < 10 is taken to be a strong privacy regime, 10   < 20 is moderate privacy, and   25 is weak privacy. The truncation baseline mechanism does increase accuracy with increasing  , but never performs much better than the random guesser. This is to be expected with high dimension embeddings, since the standard deviation of noise added increases linearly with dimension. The word-level MDP mechanism performs significantly better than truncation , achieving relatively good performance for   30 . There are two significant caveats, however. First, is the privacy definition: as discussed in the Introduction, for the same  , word-level MDP is strictly weaker than SentDP. The second caveat is the level of  at which privacy is achieved. Despite a weaker privacy definition, the MDP mechanism does not achieve competitive performance until the weak-privacy regime of  . We suspect this is due to two reasons. First, is the fact that the MDP mechanism does not take advantage of contextual information in each sentence as our technique does; randomizing each word independently does not use higher level linguistic information. Second, is the fact that the MDP mechanism does not use domain-specific knowledge as our mechanism does with use of relevant candidates and domain specific sentence encodings. In comparison, D eep C andidate offers strong utility across tasks and datasets for relatively low values of  , even into the strong privacy regime. Beyond  = 25 , the performance of D eep C andidate tends to max out, approximately 10-15% below the non-private approach. This is due to the fact that D eep C andidate offers a noisy version of an approximation of the document embedding g ( x )  it cannot perform any better than deterministically selecting the deepest candidate, and even this candidate may be a poor representative of x . We consider this room for improvement, since there are potentially many other ways to tune G  and select the candidate pool F such that deep candidates are nearly always good representatives of a given document x . This is addressed in Figures 4d to 4f. We limit the test set to those documents with k in the listed range on the x-axis. We set  = 10 , the limit of the strong privacy regime. Neither baseline offers performance above that of the random guesser at this value of  . D eep C andidate produces precisely the performance we expect to see: documents with more sentences result in sampling higher quality candidates, confirming the insights of Section 4.2. Across datasets and tasks, documents with more than 10-15 sentences tend to have high quality embeddings. We introduce a strong and interpretable local privacy guarantee for documents, SentDP, along with D eep C andidate, a technique that combines principles from NLP and robust statistics to generate general  -SentDP embeddings. Our experiments confirm that such methods can outperform existing approaches even with with more relaxed privacy guarantees. Previous methods have argued that it is virtually impossible to satisfy pure local DP (Feyisetan et al., 2019; Feyisetan and Ka-siviswanathan, 2021) at the word level while capturing linguistic semantics. Our work appears to refute this notion at least at the document level. proaches (apart from k -means) of capturing the structure of the embedding distribution g (  ) to encourage better candidate selection. We also plan to experiment with decoding private embeddings back to documents by using novel candidates produced by a generative model trained on F . KC and CM would like to thank ONR under N00014-20-1-2334. KM gratefully acknowledges funding from an Amazon Research Award and Adobe Unrestricted Research Gifts. We would would also like to thank our reviewers for their insightful feedback.
abstain abstain objective objective abstain result abstain abstain abstain abstain abstain abstain abstain abstain abstain abstain abstain abstain abstain abstain objective abstain method abstain abstain method objective abstain method abstain result objective objective objective other method method other objective other other other objective method other other method abstain other other other other other other objective abstain abstain method method other other other objective other other method other abstain method method abstain abstain abstain abstain method abstain abstain abstain abstain abstain abstain abstain abstain abstain method abstain abstain abstain method abstain abstain abstain abstain abstain abstain abstain abstain method abstain method abstain abstain abstain abstain abstain abstain method abstain method method method method method method abstain abstain abstain abstain abstain abstain abstain abstain abstain abstain method abstain abstain abstain abstain abstain abstain abstain other abstain method other abstain abstain abstain abstain abstain abstain method method method abstain abstain method abstain method method abstain abstain abstain method abstain abstain abstain method abstain abstain abstain abstain abstain abstain abstain abstain abstain abstain abstain abstain abstain abstain abstain method abstain method abstain method method abstain method method abstain abstain abstain abstain abstain abstain abstain result abstain abstain abstain abstain abstain abstain abstain abstain abstain abstain abstain abstain method abstain abstain abstain method abstain method abstain abstain abstain abstain method result abstain abstain abstain objective other other other