SlowGuess/NAACL_2021_OCR huggingface dataset:
Eric Lehman\*  $\Psi^{\Upsilon 1}$ , Sarthak Jain\*  $\Upsilon^{2}$ , Karl Pichotta\*, Yoav Goldberg\*, and Byron C. Wallace\*
$\Psi$ MIT CSAIL
$\Upsilon$  Northeastern University
$^{\Phi}$ Memorial Sloan Kettering Cancer Center
$^{\Omega}$ Bar Ilan University / Ramat Gan, Israel; Allen Institute for Artificial Intelligence
'lehmer16@mit.edu
2jain.sar@northeastern.edu
Large Transformers pretrained over clinical notes from Electronic Health Records (EHR) have afforded substantial gains in performance on predictive clinical tasks. The cost of training such models (and the necessity of data access to do so) coupled with their utility motivates parameter sharing, i.e., the release of pretrained models such as ClinicalBERT (Alsentzer et al., 2019). While most efforts have used deidentified EHR, many researchers have access to large sets of sensitive, nondeidentified EHR with which they might train a BERT model (or similar). Would it be safe to release the weights of such a model if they did? In this work, we design a battery of approaches intended to recover Personal Health Information (PHI) from a trained BERT. Specifically, we attempt to recover patient names and conditions with which they are associated. We find that simple probing methods are not able to meaningfully extract sensitive information from BERT trained over the MIMIC-III corpus of EHR. However, more sophisticated "attacks" may succeed in doing so: To facilitate such research, we make our experimental setup and baseline probing models available.
Pretraining large (masked) language models such as BERT (Devlin et al., 2019) over domain specific corpora has yielded consistent performance gains across a broad range of tasks. In biomedical NLP, this has often meant pretraining models over collections of Electronic Health Records (EHRs) (Alsentzer et al., 2019). For example, Huang et al. (2019) showed that pretraining models over EHR data improves performance on clinical predictive tasks. Given their empirical utility, and the fact that pretraining large networks requires a nontrivial amount of compute, there is a natural desire to
share the model parameters for use by other researchers in the community.
However, in the context of pretraining models over patient EHR, this poses unique potential privacy concerns: Might the parameters of trained models leak sensitive patient information? In the United States, the Health Insurance Portability and Accountability Act (HIPAA) prohibits the sharing of such text if it contains any reference to Protected Health Information (PHI). If one removes all reference to PHI, the data is considered "deidentified", and is therefore legal to share.
While researchers may not directly share nondeidentified text, it is unclear to what extent models pretrained on non-deidentified data pose privacy risks. Further, recent work has shown that general purpose large language models are prone to memorizing sensitive information which can subsequently be extracted (Carlini et al., 2020). In the context of biomedical NLP, such concerns have been cited as reasons for withholding direct publication of trained model weights (McKinney et al., 2020). These uncertainties will continue to hamper dissemination of trained models among the broader biomedical NLP research community, motivating a need to investigate the susceptibility of such models to adversarial attacks.
This work is a first step towards exploring the potential privacy implications of sharing model weights induced over non-deidentified EHR text. We propose and run a battery of experiments intended to evaluate the degree to which Transformers (here, BERT) pretrained via standard masked language modeling objectives over notes in EHR might reveal sensitive information (Figure 1).<sup>3</sup>
Even for deidentified data such as MIMIC (Johnson et al., 2016), one typically must complete a set of trainings before accessing the data, whereas model parameters are typically shared publicly, without any such requirement.
3We consider BERT rather than an auto-regressive language model such as GPT-\* given the comparatively widespread adoption of the former for biomedical NLP.
$\star$  equal contribution.
1https://github.com/elehman16/
exposingpatient_data_release.
Association for Computational Linguistics: Human Language Technologies, pages 946-959
Figure 1: Overview of this work. We explore initial strategies intended to extract sensitive information from BERT model weights estimated over the notes in Electronic Health Records (EHR) data.
We find that simple methods are able to recover associations between patients and conditions at rates better than chance, but not with performance beyond that achievable using baseline condition frequencies. This holds even when we enrich clinical notes by explicitly inserting patient names into every sentence. Our results using a recently proposed, more sophisticated attack based on generating text (Carlini et al., 2020) are mixed, and constitute a promising direction for future work.
Unintended memorization by machine learning models has significant privacy implications, especially where models are trained over nondeidentified data. Carlini et al. (2020) was recently able to extract memorized content from GPT-2 with up to  $67\%$  precision. This raises questions about the risks of sharing parameters of models trained over non-deidentified data. While one may mitigate concerns by attempting to remove PHI from datasets, no approach will be perfect (Beaulieu-Jones et al., 2018; Johnson et al., 2020). Further, deidentifying EHR data is a laborious step that one may be inclined to skip for models intended for internal use. An important practical question arises in such situations: Is it safe to share the trained model parameters?
While prior work has investigated issues at the intersection of neural networks and privacy (Song and Shmatikov, 2018; Salem et al., 2019; Fredrikson et al., 2015), we are unaware of work that specifically focuses on attacking the modern
Transformer encoders widely used in NLP (e.g., BERT) trained on EHR notes, an increasingly popular approach in the biomedical NLP community. In a related effort, Abdalla et al. (2020) explored the risks of using imperfect deidentification algorithms together with static word embeddings, finding that such embeddings do reveal sensitive information to at least some degree. However, it is not clear to what extent this finding holds for the contextualized embeddings induced by large Transformer architectures.
Prior efforts have also applied template and probe-based methods (Bouraoui et al., 2020; Petroni et al., 2019; Jiang et al., 2020b; Roberts et al., 2020; Heinzerling and Inui, 2020) to extract relational knowledge from large pretrained models; we draw upon these techniques in this work. However, these works focus on general domain knowledge extraction, rather than clinical tasks which pose unique privacy concerns.
We use the Medical Information Mart for Intensive Care III (MIMIC-III) English dataset to conduct our experiments (Johnson et al., 2016). We follow prior work (Huang et al., 2019) and remove all notes except for those categorized as 'Physician', 'Nursing', 'Nursing/Others', or 'Discharge Summary' note types. The MIMIC-III database was deidentified using a combination of regular expressions and human oversight, successfully removing almost all forms of PHI (Neamatullah et al., 2008). All patient first and
last names were replaced with [Known First Name ...] and [Known Last Name ...] pseudo-tokens respectively.
We are interested in quantifying the risks of releasing contextualized embedding weights trained on non-deidentified text (to which one working at hospitals would readily have access). To simulate the existence of PHI in the MIMIC-III set, we randomly select new names for all patients (Stubbs et al., 2015). Specifically, we replaced [Known First Name] and [Known Last Name] with names sampled from US Census data, randomly sampling first names (that appear at least 10 times in census data) and last names (that appear at least 400 times).
This procedure resulted in  $11.5\%$  and  $100\%$  of patients being assigned unique first and last names, respectively. While there are many forms of PHI, we are primarily interested in recovering name and condition pairs, as the ability to infer with some certainty the specific conditions that a patient has is a key privacy concern. This is also consistent with prior work on static word embeddings learned from EHR (Abdalla et al., 2020).
Notes in MIMIC-III do not consistently explicitly reference patient names. First or last names are mentioned in at least one note for only 27,906 (out of 46,520) unique patients. Given that we cannot reasonably hope to recover information regarding tokens that the model has not observed, in this work we only consider records corresponding to these 27,906 patients. Despite comprising  $61.3\%$  of the total number of patients, these 27,906 patients are associated with the majority  $(82.6\%)$  of all notes (1,247,291 in total). Further, only  $10.2\%$  of these notes contain at least one mention of a patient's first or last name.
Of the 1,247,291 notes considered, 17,044 include first name mentions, and 220,782 feature last name mentions. Interestingly, for records corresponding to the 27,906 patients, there are an additional 18,345 false positive last name mentions and 29,739 false positive first name mentions; in
these cases the name is also an English word (e.g., 'young'). As the frequency with which patient names are mentioned explicitly in notes may vary by hospital conventions, we also present semisynthetic results in which we insert names into notes such that they occur more frequently.
4 Enumerating Conditions
As a first attempt to evaluate the risk of BERT leaking sensitive information, we define the following task: Given a patient name that appears in the set of EHR used for pretraining, query the model for the conditions associated with this patient. Operationally this requires defining a set of conditions against which we can test each patient. We consider two general ways of enumerating conditions: (1) Using International Classification of Diseases, revision 9 (ICD-9) codes attached to records, and (2) Extracting condition strings from the free-text within records.<sup>7</sup> Specifically, we experiment with the following variants.
[ICD-9 Codes] We collect all ICD-9 codes associated with individual patients. ICD-9 is a standardized global diagnostic ontology maintained by the World Health Organization. Each code is also associated with a description of the condition that it represents. In our set of 27,906 patients, we observe 6,841 unique ICD-9 codes. We additionally use the short ICD-9 code descriptions, which comprise an average of 7.03 word piece tokens per description (under the BERT-Base tokenizer). On average, patient records are associated with 13.6 unique ICD-9 codes.
[MedCAT] ICD-9 codes may not accurately reflect patient status, and may not be the ideal means of representing conditions. Therefore, we also created lists of conditions to associate with patients by running the MedCAT concept annotation tool (Kraljevic et al., 2020) over all patient notes. We only keep those extracted entities that correspond to a Disease / Symptom, which we use to normalize condition mentions and map them to their UMLS (Bodenreider, 2004) CUI and description. This yields 2,672 unique conditions from the 27,906 patient set. On average, patients are associated with an average of 29.5 unique conditions, and conditions comprise 5.37 word piece tokens.
Once we have defined a set of conditions to use
4We could have used non-deidentified EHRs from a hospital, but this would preclude releasing the data, hindering reproducibility.
5We sampled first and last names from https: //www.ssa.gov/ and https://www.census.gov/ topics/population/genealogy/data/2010_ surnames.html, respectively.
In some sense this bodes well for privacy concerns, given that language models are unlikely to memorize names that they are not exposed to; however, it is unclear how particular this observation is to the MIMIC corpus.
In this work, we favor the adversary by considering the set of conditions associated with reidentified patients only.
for an experiment, we assign binary labels to patients indicating whether or not they are associated with each condition. We then aim to recover the conditions associated with individual patients.
5 Model and Pretraining Setup
5.1 Contextualized Representations (BERT)
We re-train BERT (Devlin et al., 2019) over the EHR data described in Section 3 following the process outlined by Huang et al. (2019), yielding our own version of ClinicalBERT. However, we use full-word (rather than wordpiece) masking, due to the performance benefits this provides. We adopt hyper-parameters from Huang et al. (2019), most importantly using three duplicates of static masking. We list all model variants considered in Table 1 (including Base and Large BERT models). We verify that we can reproduce the results of Huang et al. (2019) for the 30-day readmission from the discharge summary prediction task.
We also consider two easier semi-synthetic variants, i.e., where we believe it should be more likely that an adversary could recover sensitive information. For the Name Insertion Model, we insert (prepend) patient names to every sentence within corresponding notes (ignoring grammar), and train a model over this data. Similarly, for the Template Only Model, for each patient and every MedCAT condition they have, we create a sentence of the form: “[CLS] Mr./Mrs. [First Name] [Last Name] is a yo patient with [Condition] [SEP]”. This over-representation of names should make it easier to recover information about patients.
5.2 Static Word Embeddings
We also explore whether PHI from the MIMIC database can be retrieved using static word embeddings derived via CBoW and skip-gram word2vec models (Mikolov et al., 2013). Here, we follow prior work (Abdalla et al. 2020; this was conducted on a private set of EHR, rather than MIMIC). We induce embeddings for (multi-word) patient names and conditions by averaging constituent word representations. We then calculate cosine similarities between these patient and condition embeddings (See Section 6.3).
6 Methods and Results
We first test the degree to which we are able to retrieve conditions associated with a patient, given their name. (We later also consider a simpler task: Querying the model as to whether or not it observed a particular patient name during training.) All results presented are derived over the set of 27,906 patients described in Section 4.
The following methods output scalars indicating the likelihood of a condition, given a patient name and learned BERT weights. We compute metrics with these scores for each patient, measuring our ability to recover patient/condition associations. We aggregate metrics by averaging over all patients. We report AUCs and accuracy at 10 (A@10), i.e., the fraction of the top-10 scoring conditions that the patient indeed has (according to the reference set of conditions for said patient).
6.1 Fill-in-the-Blank
We attempt to reveal information memorized during pretraining using masked template strings. The idea is to run such templates through BERT, and observe the rankings induced over conditions (or names). This requires specifying templates.
Generic Templates We query the model to fill in the masked tokens in the following sequence: “[CLS] Mr./Mrs. [First Name] [Last Name] is a yo patient with  $\left[\mathrm{MASK}\right]^+$  [SEP]. Here, Mr. and Mrs. are selected according to the gender of the patient as specified in the MIMIC corpus.[11] The  $\left[\mathrm{MASK}\right]^+$  above is actually a sequence of [MASK] tokens, where the length of this sequence depends on the length of the tokenized condition for which we are probing.
Given a patient name and condition, we compute the perplexity (PPL) for condition tokens as candidates to fill the template mask. For example, if we wanted to know whether a patient ("John Doe") was associated with a particular condition ("MRSA"), we would query the model with the following (populated) template: "[CLS] Mr. John Doe is a yo patient with [MASK] [SEP]" and measure the perplexity of "MRSA" assuming the [MASK] input token position. For multiword conditions, we first considered taking an average PPL over constituent words, but this led to
This is similar to methods used in work on evaluating language models as knowledge bases (Petroni et al., 2019).
<sup>11</sup>We do not include age as Huang et al. (2019) does not include digits in pretraining.
$^{8}$ https://github.com/kexinhuang12345/ clinicalBERT/blob/master/notebook/ pretrain.ipynb  
 $^{9}$ https://github.com/google-research/bert
Model Name	Starts from	Train iterations (seqlen 128)	Train iterations (seqlen 512)
Regular Base	BERT Base	300K	100K
Regular Large	BERT Large	300K	100K
Regular Base++	BERT Base	1M	-
Regular Large++	BERT Large	1M	-
Regular Pubmed-base	PubmedBERT (Gu et al., 2020)	1M	-
Name Insertion	BERT base	300K	100K
Template Only	BERT base	300K	100K
Table 1: BERT model and training configurations considered in this work. Train iterations are over notes from the MIMIC-III EHR dataset.
Model	AUC	A@10
ICD9
Frequency Baseline	0.926	0.134
Regular Base	0.614	0.056
Regular Large	0.654	0.063
Name Insertion	0.616	0.057
Template Only	0.614	0.050
MedCAT
Frequency Baseline	0.933	0.241
Regular Base	0.529	0.109
Regular Large	0.667	0.108
Name Insertion	0.541	0.112
Template Only	0.784	0.160
Table 2: Fill-in-the-Blank AUC and accuracy at 10 (A@10). The Frequency Baseline ranks conditions by their empirical frequencies. Results for Base++, Large++, Pubmed-Base models are provided in Appendix Table 10.
counterintuitive results: longer conditions tend to yield lower PPL. In general, multi-word targets are difficult to assess as PPL is not well-defined for masked language models like BERT (Jiang et al., 2020a; Salazar et al., 2020). Therefore, we bin conditions according to their wordpiece length and compute metrics for bins individually. This simplifies our analysis, but makes it difficult for an attacker to aggregate rankings of conditions with different lengths.
Results We use the generic template method to score ICD-9 or MedCAT condition descriptions for each patient. We report the performance (averaged across length bins) achieved by this method in Table 2, with respect to AUC and A@10. This straightforward approach fares better than chance, but worse than a baseline approach of assigning scores equal to the empirical frequencies of conditions.[12] Perhaps this is unsurprising for MIMIC
III, as only  $0.3\%$  of sentences explicitly mention a patient's last name.
If patient names appeared more often in the notes, would this approach fare better? To test this, we present results for the Name Insertion and Template Only variants in Table 2. Recall that for these we have artificially increased the number of patient names that occur in the training data; this should make it easier to link conditions to names. The Template Only variant yields better performance for MedCAT labels, but still fares worse than ranking conditions according to empirical frequencies. However, it may be that the frequency baseline performs so well simply due to many patients sharing a few dominating conditions. To account for this, we additionally calculate performance using the Template Only model on MedCAT conditions that fewer than 50 patients have. We find that the AUC is 0.570, still far lower than the frequency baseline of 0.794 on this restricted condition set.
Other templates, e.g., the most common phrases in the train set that start with a patient name and end with a condition, performed similarly.
Masking the Condition (Only) Given the observed metrics achieved by the 'frequency' baseline, we wanted to establish whether models are effectively learning to (poorly) approximate condition frequencies, which might in turn allow for the better than chance AUCs in Table 2. To evaluate the degree to which the model encodes condition frequencies we design a simple template that includes only a masked condition between [CLS] and [SEP] token (e.g., [CLS][MASK]...[MASK][SEP]). We then calculate the PPL of individual conditions filling these slots. In Table 3, we report AUCs, A@10 scores, and Spearman correlations with frequency scores (again, averaged across length bins). The latter are low, suggesting that the model rankings differ from overall frequencies.
<sup>12</sup>We note that these frequencies are derived from the MIMIC data, which affords an inherent advantage, although it seems likely that condition frequencies derived from other data sources would be similar. We also note that some very common conditions are associated with many patients — see Appendix Figures A1 and A2 — which may effectively 'inflate' the AUCs achieved by the frequency baseline.
Model	AUC	A@10	Spearman
ICD-9
Regular Base	0.496	0.042	0.114
Regular Large	0.560	0.049	0.109
Name Insertion	0.483	0.042	0.100
Template Only	0.615	0.056	0.240
MedCAT
Regular Base	0.472	0.110	0.218
Regular Large	0.530	0.113	0.173
Name Insertion	0.473	0.102	0.156
Template Only	0.595	0.110	0.248
6.2 Probing
The above token prediction infill setup attacks the model only via fixed templates. But the induced representations might implicitly encode sensitive information that happens to not be readily exposed by the template. We therefore also investigate a probing setup (Alain and Bengio, 2017; Bouraoui et al., 2020), in which a representation induced by a pretrained model is provided to a second probing model which is trained to predict attributes of interest. Unlike masked token prediction, probing requires that the adversary have access to a subset of training data to associate targets with representations.
We train an MLP binary classifier on top of the encoded CLS token from the last layer of BERT. The probe is trained to differentiate positive instances (conditions the patient has) from negative examples (conditions the patient does not have) on a randomly sampled subset of 5000 patients (we downsample the negative class for balancing). We use the following template to encode the patient-condition pairs: "[CLS] Mr./Mrs. [NAME] is a patient with [CONDITION] [SEP]". For more information on the setup, see Section A.5. Results are reported in Table 4. For comparison, we also consider a simpler, "condition only" template of "[CLS] [CONDITION] [SEP]", which does not include the patient name.
We run experiments on the Base, Large, and Name Insertion models. These models achieve strong AUCs, nearly matching the frequency baseline performance in Table 2.[13] However, it appears that removing the patient's name and simply encoding the condition to make a binary prediction yields similar (in fact, slightly better) per
Table 3: Average AUC, A@10 and Spearman correlations over conditions binned by description length. Correlations are w/r/t empirical condition frequencies.
Model	Name + Condition	Condition Only
AUC	A@10	AUC	A@10
ICD-9
Standard Base	0.860	0.131	0.917	0.182
Regular Base	0.917	0.148	0.932	0.195
Regular Large	0.909	0.153	0.922	0.186
Name Insertion	0.871	0.095	0.932	0.204
MedCAT
Standard Base	0.918	0.355	0.954	0.464
Regular Base	0.946	0.431	0.956	0.508
Regular Large	0.942	0.393	0.955	0.475
Name Insertion	0.925	0.365	0.950	0.431
Table 4: Probing results using BERT-encoded CLS tokens on the test set. We use 10,000 patients out of 27,906 due to time constraints. Standard Base is the original BERT base model.
formance. This suggests that the model is mostly learning to approximate condition frequencies.
The standard probing setup encourages the model to use the frequency of target conditions to make predictions. To address this, we also consider a variant in which we probe for only individual conditions, rather than defining a single model probing for multiple conditions, as above. This means we train independent models per condition, which can then be used to score patients with respect to said conditions. To train such models we upsample positive examples such that we train on balanced sets of patients for each condition.[14]