Supervised Learning in the Presence of Noise: Application in ICD-10 Code Classification

ICD coding is the international standard for capturing and reporting health conditions and diagnosis for revenue cycle management in healthcare. Manually assigning ICD codes is prone to human error due to the large code vocabulary and the similarities between codes. Since machine learning based approaches require ground truth training data, the inconsistency among human coders is manifested as noise in labeling, which makes the training and evaluation of ICD classifiers difficult in presence of such noise. This paper investigates the characteristics of such noise in manually-assigned ICD-10 codes and furthermore, proposes a method to train robust ICD-10 classifiers in the presence of labeling noise. Our research concluded that the nature of such noise is systematic. Most of the existing methods for handling label noise assume that the noise is completely random and independent of features or labels, which is not the case for ICD data. Therefore, we develop a new method for training robust classifiers in the presence of systematic noise. We first identify ICD-10 codes that human coders tend to misuse or confuse, based on the codes' locations in the ICD-10 hierarchy, the types of the codes, and baseline classifier's prediction behaviors; we then develop a novel training strategy that accounts for such noise. We compared our method with the baseline that does not handle label noise and the baseline methods that assume random noise, and demonstrated that our proposed method outperforms all baselines when evaluated on expert validated labels.


Introduction
International Classification of Diseases (ICD) is a standard classification system for capturing and reporting diagnosis and medical conditions in clinical records for revenue cycle management in healthcare. It includes codes for diagnoses, symptoms, and procedures. The latest version of ICD, ICD-10, has over 70,000 codes. ICD-10 coding system consists of alphanumeric values with up to seven characters (e.g., R91.8), which are structured in a tree-like hierarchy 1. Addition of each character moves a code from one level to another in the hierarchy.
In Radiology, depending on the content, one or multiple ICD codes may be assigned to a single clinical record. Manually assigning ICD codes to health records is time-consuming due to large volume of health records. Furthermore, manual code assignment is a challenging task due to the large code vocabulary and the similarities between codes, which results in inconsistencies among human coders. Previous studies have shown that the inter-assessor agreement rate between human coders is merely 50% (American Hospital Association et al., 2003;Horsky et al., 2017;Stausberg et al., 2008).
Recently, Computer-assisted Coding (CAC) systems have gained popularity as they utilize machine learning for ICD code prediction. Nevertheless, the inconsistency in human-driven labeling poses challenges in training and evaluation of ICD classifiers since the ground truth for training and evaluation may not be reliable.
This paper investigates and categorizes the noise in manually-assigned ICD codes, studies the effect of noisy data in the model training and evaluation, and finally, proposes a method to train robust ICD classifiers in the presence of labeling noise.
In order to study the noise in ICD-10 coding, we used a relatively large dataset of radiology notes with corresponding ICD-10 codes from mul- tiple clinical sites. We discovered systematic noise by analyzing labels assigned by two different human coders. One most prevalent noise pattern is over-using the codes defined for generic symptoms where the codes defined for specific diagnoses should have been used. Since rebuilding training data by expert coders to avoid such errors in labeling is expensive, it is desired to account for such noise in the ICD-10 classifier training that is capable of learning through noisy labels. Most of the existing methods for handling label noise assume that the noise is completely random and is independent of features or labels, which is not the case in ICD-10 data.
In this work, we propose a new method for training robust classifiers in the presence of systematic noise. We first identify ICD-10 codes that human coders tend to misuse or confuse, based on the codes' descriptions, the types of the codes, and baseline classifier's prediction behaviors; we then develop a new training strategy that accounts for such noise. We compared our method with the baseline that does not handle label noise and the baseline methods that assume random and independent noise, and demonstrated that our proposed method outperforms all baselines when evaluated on expert validated labels.
Our contributions are as follows: 1. We identify systematic noise in ICD-10 codes annotated by human coders, and measure its negative impact on machine learning model's performance.
2. We propose a method for detecting systematic noise automatically.
3. We propose a robust training method to train classifiers on noisy labels and gain improvements when evaluated on validated labels.

Analyzing ICD-10 Coding Noise
In order to handle the labeling noise during classifier training, we first analyze the nature of noise by collecting data with both the original noisy labels and validated/corrected labels by expert coders.

Validating annotation
We took a large collection of Radiology notes from multiple clinical sites annotated with ICD-10 codes (the latest version) by several human coders. We randomly sampled notes using stratified sampling to make sure different code sets are represented in the sample, and then asked expert coders to validate existing code annotations and make corrections if necessary. Each radiology note is reviewed by at least two expert coders. If the two expert coders disagree, a third expert coder who is more experienced is asked to make the final judgment. A total of 29,826 Radiology notes were validated through the schema described above. For noisy pattern analysis (section 2), all the validated notes are used. For the model training and evaluations (section 3), we selected one of the clinical sites and used only the notes from the selected site, which has 1,688 notes.
We call the resulting code labels validated labels in contrast to the original labels. Accordingly the corresponding coders would be referred to as validating coders and original coders. In this research, we refer to the original labels as noisy labels and validated labels as clean labels even though the validated labels still may not be 100% accurate.

Condition
Ratio

Noise patterns
During the validation process, each note is assigned to two or more validating coders. We can measure inter-coder agreement rate between the validating coders as well as the agreement rate between the original coders and the validating coders. Given two coders and the set of the notes that are annotated by the both coders, the agreement rate is the rate of the notes that two coders annotated exactly the same code set. The average agreement rate between the original and validating coders is 65%, and the average agreement rate between the two validating coders is 72%. Note that validating coders can see the original annotations, which may have contributed to the higher agreement rate. Second, we categorize the agreement and disagreement between the original code set S o and the validated code set S v as follows: • other: all other cases Table 1 shows an example for each category as well as the percentage of each category in our dataset. We can see that the most common form of disagreement is "replacement". So we focus on notes from this category in which one code is replaced with another, and we want to see how similar or confusing the code pairs are. We leverage the ICD-10 code hierarchy, and check how each pair of codes differ in the hierarchy by computing the length of the common prefixes in the code.
The top level of the hierarchy, indicated by the first letter, is referred to as chapter 1 . The first three characters together are referred to as category.
Each additional character adds more specificity to the code definition. Table 2 shows the breakdown results based on the common characters for the "replacement" type of disagreement. The code pairs under completely different chapters (first character) or different categories (three characters) contribute to 67% of the disagreement, and the disagreement on minor details is only 33%. This is somewhat surprising as one might expect coders tend to disagree with the subtle differences at the lower levels of the hierarchy (characters four, five or six). Further investigations show that among the 40.9% of the cases that have different chapters, 19.4% involve the "R" chapter in one of the codes. The "R" chapter stands for "symptoms, signs, and abnormal clinical and laboratory findings, not elsewhere classified" (DHHS, 2019).  butions. We then average over all the codes and report mean average precision (MAP). Because for each test instance we have both the original labels and the validated labels, we compute two MAP scores treating each of them as ground truth, in order to understand how labeling noise affects classifier evaluation. Note that classifier training is always performed based on the original labels.

Observations
MAP of top 100 ICD-10 codes is measured on the development set. The MAP of the classifiers evaluated against the original labels is 88.5%. The MAP decreases to 48.1% when evaluated against the validated labels. Figure 2 shows the model's average precision on each code evaluated on the original and validated labels. For several ICD-10 codes, scores on the validated labels are much lower than scores on the original labels. Table 3 summarizes the score changes on all ICD-10 codes. While the overall MAP change is about 40%, only 32 ICD-10 codes show significant changes that are larger than 20%. This indicates that score changes are not uniform across all ICD-10 codes, and rather it is concentrated on a few codes.
Previous studies show that if the label noise is random and independent of features or labels, classifier's performance evaluated on cleaned labels should be higher than it's performance evaluated on noisy labels (Patrini et al., 2017;Ma et al., 2018;. Here we observe the opposite trend. This suggests that the noise in our data may not be random and independent, but systematic. We inspected the cases on which validating coders disagree with the original coders and observed that there exists systematic noise in the original labels and is fixed by validating coders. One prevalent noisy pattern is that the original coders often assign symptom ICD-10 codes when diagnosis ICD-10 codes should have been assigned. In ICD-10, there are codes that are used to indicate specific diagnoses (e.g., effusion on knee, spinal stenosis or intervertebral disc displacement), as well as codes that indicate signs or symptoms (e.g., fever, pain in back or cough). The official ICD-10 guideline says that "Codes that describe symptoms and signs, as opposed to diagnoses, are acceptable for reporting purposes when a related definitive diagnosis has not been established (confirmed) by the provider." (DHHS, 2019). Among the 32 ICD-10 codes that have AP score changes above 20%, 16 codes are symptom codes. When the classifier is trained on labels with such systematic noise, it learns to also overpredict symptom codes on cases that should have been assigned diagnosis codes, and therefore, receives low AP when evaluated on validated codes. For example, table 4 shows the top 10 instances ranked by classifier's prediction confidence for the code M54.5 ("Low back pain"). Many instances with false positive M54.5 predictions have in their ground truth specific diagnosis codes that are related to the M54.5 symptom code.  While diagnosis-symptom confusion is most common in this dataset, there are other types of code pairs that may cause confusion. In general, we refer to the code we are trying to predict as the target code and the code that cause confusion as the confusion code. In the noisy dataset, some instances are wrongly annotated with the target codes while their clean labels include the confusion codes. This causes the model to incorrectly predict the target code on instances where confusion codes should have been assigned. In the previous example, the symptom codes are the target codes and the diagnosis codes are the confusion codes.
The opposite scenario where the specific diagnosis is the target code and the symptom codes are confusion codes is also possible but not as com-mon, and therefore, we do not handle such scenario in this paper.

Handling Label Noise in Training
Our proposed training method first identifies which codes are often confused with our target codes based on the validated codes of the development split, and then supervised those codes (confusion codes) along with the target codes so that the model is able to better distinguish them. When the codes for generic symptoms are the target codes, the codes for specific diagnoses work as confusion codes.

Selecting confusion codes
For each of the target codes that are identified to have systematic noise, we select confusion codes based on the code descriptions and the model's behavior on the development set.
First, for each target code, we train an initial binary classifier on original labels as described in the previous section, and we apply it to each instance in development split to generate a label probability, based on which can rank all instances w.r.t. this target code. From the top-k instances, we further select those instances on which the classifier generates false positive predictions w.r.t. the target code. We used k value of 50. Next, we check which other codes are assigned to these selected instances by validating coders and consider them as candidate codes.
Let y (i) be the code set for i th ranked instance. Let p i be the model predicted probability of i th instance containing the target code t. Candidate code set C is given as Then, each candidate code c is scored by the sum of the reciprocal rank of the instances that is annotated with candidate code.
where 1 is the indicator function. We then keep the codes whose scores are larger than 0.1. Next, the selected candidate codes are filtered by their locations in the hierarchy, based on two simple heuristics: 1) accept code if the candidate code is from the same chapter as the target code; 2) accept code if either the candidate code or the target code is from chapter "R" or "S". Our intuition Code Description M54.5 Low back pain M41.86 Other forms of scoliosis, lumbar region M47.816 Spondylosis without myelopathy or radiculopathy, lumbar region 1 M47.817 Spondylosis without myelopathy or radiculopathy, lumbosacral region 2 M48.061 Spinal stenosis, lumbar region without neurogenic claudication M51.26 Other intervertebral disc displacement, lumbar region M51.16 Intervertebral disc disorders with radiculopathy, lumbar region Table 5: ICD code descriptions for M54.5 and codes for specific diagnosis that are related to M54.5. 1 lumbar: relating to the lower part of the back 2 lumbosacral: relating to the lumbar and sacral regions or parts is that the codes from the same chapters are more likely to be confusing. The "R" chapter (symptoms, signs and abnormal clinical and laboratory findings, not elsewhere classified) and the "S" chapter (injury, poisoning and certain other consequences of external causes) could act as wastebasket chapters in the Radiology domain and coding professionals often struggle with these codes (Butler, 2016). This design agrees with the observation in section 2.2 that the most confusing pairs appear in the same or limited chapters. Even though these two heuristics are very simple, we observe them to work well when combined with the first score-based filtering.

Modified supervision
As noted in previous sections, the classifier training data contains only the noisy labels. As a result, we explicitly model the label noise during model training. We map each of the training instances to one of the following three classes based on its original labels.
• class 0: None of the target code or confusion codes is in original labels.
• class 1: The target code is in original labels, and no confusion code is in original labels.
• class 2: At least one confusion code is in original labels.
We separate class 2 from class 1 because instances in class 2 are often mislabeled with the target code. We then train a standard 3-class logistic regression classifier using the mapped classes. During prediction, we use the prediction score for class 1 to determine the target code and ignore scores from class 0 and class 2.

Experiments
We evaluated the proposed training method on the 16 of ICD-10 codes which we identified to have label noise problems (section 2).

Baselines
We compare our method with the following baselines: • Vanilla: standard logistic regression trained on the original noisy labels • Modified label: if a training instance has both target code and confusion codes in the original labels, only keep the confusion codes • Dev set fine-tuned: first train the classifier on training set using original labels, and then fine tune on development set using validated labels • Dev set trained: train a classifier on the small development set using the validated codes • MLP + BR: train a multi-layer perceptron with one hidden layer and (n + 1)-output nodes for one target code and n confusion code. This model does not assume exclusive relations between codes and is expected to capture certain code dependencies as the hidden layer is shared.

Results
A summary of different classifiers' performance on the test set is given in Table 6 using two versions of labels: the original codes and the validated codes. The methods' performance on validated labels and the original labels are negatively correlated, matching our expectation that the noise is systematic -classifiers mimicking human mistakes will match original labels well but not validated labels.  Table 6: MAP for all the methods. The ultimate goal is to get a high score on validated labels. The score on original labels are listed only for reference. Statistical significance for a few pairs are: 9.9% between vanilla and proposed on validated, 12.4% between modified label and proposed on validated and 39.2% between modified label and proposed on original.

Method
When evaluated against validated codes, our proposed method outperforms the rest.
The results also show that the methods which explicitly consider confusion codes (modified label, proposed and MLP+BR) perform better than those who do not. Furthermore, the proposed method, which trains the model with 3-way categorical cross-entropy shows better score over using 2-way cross-entropy loss (modified label). This shows that our method does more than fixing training labels using a simple rule. MLP+BR is better than the vanilla but worse than our model. This shows that simply feeding relevant label information to a neural network without imposing a strong inductive bias based on the noise pattern does not guarantee successful training.
While not listed in table, we have also tried a noise-handling approach such as symmetric crossentropy , which showed worse score (63.3) than the vanilla method (64.8) 2 .
Finally, dev set trained performs poorly due to the limited training data. dev set fine-tuned outperforms vanilla but cannot match the methods that consider confusion codes.

Discussion
Several independent studies have reported that the inter-coder agreement for clinical billing is low. American Health Information Management Association (AHIMA) reported that the regular trained coders have about 42% accuracy evaluated against experts' annotations (American Hospital Associ-ation et al., 2003). In a study on ICD coding for ambulatory visits, it is reported only half of entered codes were actually appropriate and about a quarter codes were missing (Horsky et al., 2017).
The most commonly used datasets for ICD classification are MIMIC-III (Johnson et al., 2016) and CLEF (Névéol et al., 2017). To the best of our knowledge, no subsequent label quality check or cleaning has been performed on these public datasets, and therefore, we did not use these datasets for studying label noise.
Previous studies on ICD code classification tasks mainly focused on exploring different machine learning models for the task. A number of neural methods, including LSTM (Zeng et al., 2019), attention mechanism (Falis et al., 2019), and pretrained language models (Amin et al., 2019) have been proposed for such task. This work concentrates on an orthogonal aspect of ICD classification -label noise. Our modified training strategy is a general method and can be combined with different types of classifiers.
There are many existing works on training noiserobust classifiers (Bucak et al., 2011;Natarajan et al., 2013;Liu and Tao, 2015;Izadinia et al., 2015;Zhao and Guo, 2015;Patrini et al., 2017). Some methods make over-simplified assumptions about the noise and are not suitable for our problem (see section 2.2). For example, several methods assume the noise is completely random and is independent of features or labels ; and several others assume the noise is only in the form of missing labels (Kanehira and Harada, 2016;Jain et al., 2017). There are also methods that leverage samples with both noisy labels and clean labels in order to estimate the noise pattern (Xiao et al., 2015;Vahdat, 2017;Veit et al., 2017). Unlike previous works, our design of the noise handling method is driven both by the data and clinical domain knowledge (i.e., ICD hierarchy).

Conclusion and Future Work
This paper investigates the characteristics of labeling noise in manually-assigned ICD-10 codes and furthermore, proposes a method to train robust ICD-10 classifiers in the presence of labeling noise. Our research concluded that the nature of such noise is systematic. We compared our method with several different baselines including one that does not handle label noise and the baseline methods that assume random noise, and demonstrated that our proposed method outperforms all baselines when evaluated on expert validated labels.
We are currently working on extending our proposed method for data from other service lines besides Radiology, such as Pathology. We are also investigating the impact of including coders from different hospitals that may follow different coding conventions and as a result, may code the same note differently. Explicit modeling of such intersite disagreement during model training will help us generate a more robust and scalable model.