Shared Canonical Component Removal Beyond Expert Views
Organizations: School of Engineering and Applied Sciences Harvard University · Heart and Vascular Institute Mass General Brigham · Center for Quantitative Health Mass General Brigham
Abstract
In clinical practice, experts often begin by converting raw inputs into a set of expert features before making a decision. While black-box models trained on raw input can outperform models trained on expert views, it remains unclear what predictive signal the raw model exploits beyond what the expert view captures. We introduce an audit framework to quantify this gap using Shared Canonical Component Removal (SCCR). Unlike standard residualization or concept erasure, SCCR selectively removes only those directions strongly shared between learned raw and expert embeddings. Evaluations on synthetic data, coronary artery disease (CAD) detection, antidepressant treatment dropout prediction, and skin lesion classification using SkinCon annotations show that SCCR identifies the ways in which expert views are insufficient and recovers residual predictive signal while minimizing redundancy with the expert view.
Figures & tables
| (a) | Raw | Feature proj. | OLS | Exact LEACE | D-CCA | JIVE 1 | JIVE 2 | AJIVE 4,4 | SCCR |
|---|---|---|---|---|---|---|---|---|---|
| 1 | 0 | .510 | 0 | .857 | 1 | 1 | 1 | 0 | |
| 1 | 0 | .910 | 0 | .977 | 1 | 0 | 1 | 1 | |
| 1 | 0 | .910 | 0 | .977 | 1 | 1 | 1 | 1 |
| (a) Seed | Diagnosis gain | Gain over OLS | Fixed residual | Retraining | External DDI gain |
|---|---|---|---|---|---|
| 909 | |||||
| 910 |
Appendix figures & tables37 assets
Supplementary material from the paper’s appendix.
Appendix
| Method / output | Transformation | Population output |
|---|---|---|
| Raw embedding | ||
| Feature-space projection | ||
| OLS residual | ||
| Exact LEACE | ||
| D-CCA distinctive | ||
| JIVE, , individual |
| Model or diagnostic | 907 | 908 | 909 | 910 | 911 |
|---|---|---|---|---|---|
| Dual baseline | 86 | 99 | 98 | 91 | 100 |
| Raw only | 83 | 83 | 82 | 75 | 83 |
| SCCR | 100 | 100 | 100 | 99 | 100 |
| OLS | 100 | 84 | 91 | 90 | 90 |
| Regularized LEACE-style | 76 | 94 | 78 | 42 | 84 |
| VCCA-private | 100 | 100 | 100 | 100 | 100 |
| Method | Code | Probe | |||||
|---|---|---|---|---|---|---|---|
| Dual baseline | Raw | L | |||||
| Dual baseline | Own expert | L | |||||
| Raw only | Raw | L | |||||
| SCCR | Raw | L | |||||
| SCCR | Own expert | L | |||||
| SCCR | Residual | L |
| Linear probes | Quadratic probes | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Method/seed | Code | ||||||||||
| Dual 907 | Raw | ||||||||||
| Dual 907 | Own expert | ||||||||||
| Dual 908 | Raw | ||||||||||
| Dual 908 | Own expert | ||||||||||
| Dual 909 | Raw | ||||||||||
| Linear probes | Quadratic probes | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Method/seed | Code | ||||||||||
| R-LEACE 907 | Raw | ||||||||||
| R-LEACE 907 | Own expert | ||||||||||
| R-LEACE 907 | Residual | ||||||||||
| R-LEACE 908 | Raw | ||||||||||
| R-LEACE 908 | Own expert | ||||||||||
| Method | Metric | 907 | 908 | 909 | 910 | 911 | Mean SD |
|---|---|---|---|---|---|---|---|
| Dual baseline | Accuracy | ||||||
| AUROC | |||||||
| Log loss | |||||||
| Raw only | Accuracy | ||||||
| AUROC | |||||||
| Log loss |
| Linear readouts | Quadratic readouts | ||||||
|---|---|---|---|---|---|---|---|
| Method | Code | Accuracy | AUROC | Log loss | Accuracy | AUROC | Log loss |
| Dual baseline | Raw | ||||||
| Dual baseline | |||||||
| Dual baseline | |||||||
| Raw only | Raw | ||||||
| Raw only | |||||||
| Output | |||||
|---|---|---|---|---|---|
| Linear probes | |||||
| Raw | |||||
| Zero | |||||
| SCCR | |||||
| Exact LEACE | |||||
| D-CCA | |||||
| Output | Linear Res | Linear Comb | Quadratic Res | Quadratic Comb |
|---|---|---|---|---|
| Raw | ||||
| Zero | ||||
| SCCR | ||||
| Exact LEACE | ||||
| D-CCA | ||||
| AJIVE Gap individual |
| Output | Accuracy Res | Accuracy Comb | Log loss Res | Log loss Comb |
|---|---|---|---|---|
| Linear readouts | ||||
| Raw | ||||
| Zero | ||||
| SCCR | ||||
| Exact LEACE | ||||
| D-CCA | ||||
| Rank setting | 907 | 908 | 909 | 910 | 911 |
|---|---|---|---|---|---|
| Cohort / partition | Images | Diagnosis | Diagnosis | Crust | Erosion | Scale |
|---|---|---|---|---|---|---|
| Fitzpatrick17k training | 1,935 | 286 | 1,649 | 294 | 116 | 393 |
| Operator calibration | 965 | 129 | 836 | 128 | 67 | 199 |
| Audit-readout fitting | 970 | 157 | 813 | 166 | 49 | 194 |
| Fitzpatrick17k validation | 645 | 96 | 549 | 101 | 43 | 143 |
| Fitzpatrick17k test | 645 | 95 | 550 | 102 | 40 | 148 |
| DDI external evaluation | 636 | 171 | 465 | 53 | 14 | 103 |
| Model | Expert condition | Seed 909 | Seed 910 | ||
|---|---|---|---|---|---|
| Dual baseline | Omitted | 23 / 18 | 19 / 14 | — | — |
| SCCR | Omitted | 29 / 24 | 21 / 16 | — | — |
| OLS | Omitted | 22 / 17 | 23 / 18 | — | — |
| Regularized LEACE-style | Omitted | 65 / 60 | 54 / 49 | — | — |
| VCCA-private | Omitted | 70 / 65 | 44 / 39 | — | — |
| DSN-MMD | Omitted | 16 / 11 | 21 / 16 | — | — |
| Model | Seed | RGB MSE | Centered image error | Annotation BCE |
|---|---|---|---|---|
| VCCA-private | 909 | .025619 | .024970 | .149454 |
| VCCA-private | 910 | .026722 | .025869 | .139893 |
| DSN-MMD | 909 | .235905 | .026299 | .616325 |
| DSN-MMD | 910 | .274671 | .026180 | .507646 |
| Training-mean reference | — | .032361 | .025816 | .132480 |
| Model | Seed | F17k AUROC | F17k log loss | DDI AUROC | DDI log loss |
|---|---|---|---|---|---|
| Dual baseline | 909 | .873 [.824, .915] | .263 [.217, .316] | .559 [.510, .607] | .900 [.821, .975] |
| Dual baseline | 910 | .875 [.823, .918] | .265 [.214, .325] | .592 [.541, .641] | .791 [.720, .863] |
| SCCR ( ) | 909 | .845 [.796, .892] | .318 [.281, .360] | .541 [.489, .588] | .648 [.592, .707] |
| SCCR ( ) | 910 | .805 [.756, .853] | .349 [.315, .387] | .533 [.481, .581] | .646 [.596, .703] |
| OLS | 909 | .858 [.811, .902] | .314 [.282, .350] | .547 [.500, .594] | .689 [.646, .733] |
| OLS | 910 | .823 [.768, .869] | .321 [.275, .379] | .562 [.508, .611] | .714 [.645, .792] |
| Method | Seed | Crust AUROC linear | Crust AUROC nonlinear | linear | nonlinear |
|---|---|---|---|---|---|
| Fitzpatrick17k test | |||||
| Dual baseline | 909 | .588 [.529, .650] | .615 [.553, .677] | .031 [-.029, .088] | -.014 [-.098, .061] |
| Dual baseline | 910 | .628 [.569, .689] | .606 [.545, .665] | .040 [-.030, .102] | .001 [-.082, .068] |
| SCCR ( ) | 909 | .635 [.578, .692] | .626 [.571, .681] | .074 [.027, .121] | .073 [.027, .114] |
| SCCR ( ) | 910 | .568 [.505, .631] | .579 [.522, .641] | .042 [-.004, .087] | .051 [.003, .093] |
| OLS | 909 | .604 [.538, .670] | .639 [.579, .703] | -.121 [-.239, -.020] | -.032 [-.112, .041] |
| Method | Seed | Crust AUROC raw/full | Diagnosis AUROC raw/full | Diagnosis AUROC residual/private | without fallback |
|---|---|---|---|---|---|
| Fitzpatrick17k test | |||||
| Dual baseline | 909 | .615 [.553, .677] | .865 [.815, .907] | .865 [.815, .907] | -.014 [-.098, .061] |
| Dual baseline | 910 | .606 [.545, .665] | .856 [.806, .903] | .856 [.806, .903] | .001 [-.082, .068] |
| SCCR ( ) | 909 | .620 [.565, .672] | .862 [.813, .902] | .868 [.824, .905] | .073 [.027, .114] |
| SCCR ( ) | 910 | .664 [.603, .722] | .853 [.803, .896] | .831 [.782, .876] | .051 [.003, .093] |
| OLS | 909 | .586 [.524, .643] | .822 [.766, .875] | .847 [.797, .894] | -.032 [-.112, .041] |
| Method | Seed | Fitzpatrick17k test | DDI |
|---|---|---|---|
| Dual baseline | 909 | .031 [-.029, .088] | -.501 [-.623, -.387] |
| Dual baseline | 910 | .040 [-.030, .102] | -.465 [-.576, -.353] |
| SCCR ( ) | 909 | .074 [.027, .121] | -.182 [-.260, -.103] |
| SCCR ( ) | 910 | .042 [-.004, .087] | -.205 [-.283, -.127] |
| OLS | 909 | -.121 [-.239, -.020] | -.728 [-.874, -.592] |
| OLS | 910 | .014 [-.051, .073] | -.281 [-.370, -.191] |
| Method | Seed | Crust AUROC linear | Crust AUROC nonlinear | linear | nonlinear |
|---|---|---|---|---|---|
| Fitzpatrick17k test | |||||
| Dual baseline | 909 | .588 [.529, .650] | .615 [.553, .677] | .031 [-.029, .088] | -.014 [-.098, .061] |
| Dual baseline | 910 | .628 [.569, .689] | .606 [.545, .665] | .040 [-.030, .102] | .001 [-.082, .068] |
| SCCR ( ) | 909 | .554 [.493, .614] | .642 [.584, .698] | -.090 [-.185, -.003] | .000 [-.075, .068] |
| SCCR ( ) | 910 | .624 [.565, .684] | .637 [.574, .691] | .003 [-.034, .038] | .018 [-.040, .068] |
| Empirical LEACE | 909 | .500 P [.500, .500] | .500 P [.500, .500] | .000 F [.000, .000] | .000 F [.000, .000] |
| Method | Seed | Initial / total ranks | Joint rank | Individual ranks |
|---|---|---|---|---|
| JIVE | 909 | (1, 1) | 1 | (0, 0) |
| AJIVE | 909 | (1, 1) | 0 | (1, 1) |
| JIVE | 910 | (1, 1) | 1 | (0, 0) |
| AJIVE | 910 | (1, 1) | 0 | (1, 1) |
| Baseline | Seed | F17k linear | F17k nonlinear | DDI linear | DDI nonlinear |
|---|---|---|---|---|---|
| Dual baseline | 909 | -.121 [-.190, -.052] | .014 [-.028, .058] | -.269 [-.420, -.129] | .389 [.291, .483] |
| Dual baseline | 910 | -.037 [-.092, .021] | .018 [-.031, .071] | .398 [.297, .503] | .499 [.396, .596] |
| Empirical LEACE | 909 | -.090 [-.185, -.003] | .000 [-.075, .068] | -.770 [-.937, -.609] | -.548 [-.664, -.438] |
| Empirical LEACE | 910 | .003 [-.034, .038] | .018 [-.040, .068] | -.067 [-.125, -.006] | -.240 [-.322, -.163] |
| JIVE | 909 | -.090 [-.185, -.003] | .000 [-.075, .068] | -.770 [-.937, -.609] | -.548 [-.664, -.438] |
| JIVE | 910 | .003 [-.034, .038] | .018 [-.040, .068] | -.067 [-.125, -.006] | -.240 [-.322, -.163] |
| Baseline | Seed | F17k linear | F17k nonlinear | DDI linear | DDI nonlinear |
|---|---|---|---|---|---|
| Dual baseline | 909 | .043 [-.009, .098] | .087 [.022, .157] | .319 [.225, .422] | .751 [.627, .872] |
| Dual baseline | 910 | .002 [-.052, .062] | .050 [-.010, .122] | .260 [.169, .350] | .509 [.407, .622] |
| OLS | 909 | .194 [.106, .291] | .105 [.039, .174] | .547 [.426, .673] | .456 [.355, .572] |
| OLS | 910 | .028 [-.015, .080] | .050 [.005, .103] | .076 [.003, .153] | .050 [-.017, .127] |
| Reg. LEACE-style | 909 | .074 [.027, .121] | .073 [.027, .114] | -.182 [-.260, -.103] | -.187 [-.266, -.109] |
| Reg. LEACE-style | 910 | .042 [-.004, .087] | .051 [.003, .093] | -.205 [-.283, -.127] | -.229 [-.309, -.147] |
| Cohort | Seed / probe | |||
|---|---|---|---|---|
| Predictive overlap: initial gain and attenuation | ||||
| F17k | 909 / linear | .074 [.027, .121] | .003 [-.006, .012] | .005 [-.004, .014] |
| F17k | 909 / nonlinear | .073 [.027, .114] | .015 [.003, .027] | .020 [.008, .034] |
| F17k | 910 / linear | .042 [-.004, .087] | .000 [-.006, .008] | .001 [-.006, .008] |
| F17k | 910 / nonlinear | .051 [.003, .093] | .008 [-.002, .018] | .009 [-.001, .020] |
| DDI | 909 / linear | -.182 [-.260, -.103] | -.014 [-.023, -.005] | -.015 [-.024, -.006] |
| Seed / probe | F17k | F17k | DDI | DDI | |
|---|---|---|---|---|---|
| .20 | 909 / linear | .064 [.002, .133] | .055 [-.032, .138] | .070 [-.039, .170] | .028 [-.088, .144] |
| .20 | 909 / nonlinear | -.012 [-.109, .093] | -.074 [-.169, .026] | -.025 [-.157, .108] | .044 [-.098, .194] |
| .20 | 910 / linear | .085 [.012, .161] | .089 [.013, .164] | .018 [-.069, .109] | -.024 [-.108, .075] |
| .20 | 910 / nonlinear | .001 [-.091, .093] | .018 [-.077, .114] | -.077 [-.188, .048] | .000 [-.100, .112] |
| .40 | 909 / linear | .016 [.002, .029] | .008 [-.023, .039] | .003 [-.013, .019] | .025 [-.005, .053] |
| .40 | 909 / nonlinear | .045 [-.016, .111] | .009 [-.062, .083] | -.013 [-.101, .087] | .017 [-.070, .111] |
| Seed / condition | Probe | Raw AUROC | Residual AUROC | Expert-code AUROC |
|---|---|---|---|---|
| Fitzpatrick17k test | ||||
| 909 / Omitted | linear | .640 [.583, .695] | .635 [.578, .692] | .662 [.597, .725] |
| 909 / Omitted | nonlinear | .620 [.565, .672] | .626 [.571, .681] | .674 [.610, .736] |
| 909 / True Crust | linear | .605 [.546, .668] | .592 [.530, .657] | 1.000 [1.000, 1.000] |
| 909 / True Crust | nonlinear | .583 [.524, .643] | .581 [.520, .646] | .999 [.999, 1.000] |
| 909 / Shuffled Crust | linear | .654 [.593, .712] | .658 [.597, .717] | .671 [.606, .732] |
| Seed / condition | Probe | Raw / residual AUROC | Expert-code AUROC |
|---|---|---|---|
| Fitzpatrick17k test | |||
| 909 / Omitted | linear | .588 [.529, .650] | .674 [.606, .736] |
| 909 / Omitted | nonlinear | .615 [.553, .677] | .685 [.624, .743] |
| 909 / True Crust | linear | .570 [.503, .634] | 1.000 [.999, 1.000] |
| 909 / True Crust | nonlinear | .591 [.534, .651] | .999 [.997, 1.000] |
| 909 / Shuffled Crust | linear | .644 [.587, .710] | .676 [.611, .737] |
| Seed / condition | Probe | Native AUROC | : common | : matched expert |
|---|---|---|---|---|
| Fitzpatrick17k test | ||||
| 909 / Omitted | linear | .845 [.796, .892] | .074 [.027, .121] | .074 [.027, .121] |
| 909 / Omitted | nonlinear | .073 [.027, .114] | .073 [.027, .114] | |
| 909 / True Crust | linear | .842 [.795, .884] | .044 [-.006, .094] | .041 [-.009, .092] |
| 909 / True Crust | nonlinear | .029 [-.023, .078] | .021 [-.028, .068] | |
| 909 / Shuffled Crust | linear | .872 [.825, .911] | .010 [-.058, .073] | .002 [-.065, .065] |
| Method / seed | Code | Crust AUROC linear | Diagnosis AUROC linear | Crust AUROC nonlinear | Diagnosis AUROC nonlinear |
|---|---|---|---|---|---|
| VCCA-private / 909 | Full | .506 [.446, .563] | .590 [.521, .653] | .458 [.396, .516] | .595 [.526, .656] |
| VCCA-private / 909 | Shared | .564 [.505, .631] | .500 P [.500, .500] | .434 [.382, .496] | .495 [.432, .556] |
| VCCA-private / 909 | Private | .483 [.422, .536] | .581 [.513, .645] | .467 [.407, .526] | .579 [.512, .638] |
| VCCA-private / 910 | Full | .526 [.464, .590] | .649 [.587, .714] | .538 [.477, .603] | .548 [.488, .606] |
| VCCA-private / 910 | Shared | .522 [.462, .584] | .648 [.588, .714] | .538 [.473, .600] | .558 [.496, .618] |
| VCCA-private / 910 | Private | .571 [.509, .640] | .500 P [.500, .500] | .479 [.418, .540] | .500 P [.500, .500] |
| Method / seed | Code | Crust AUROC linear | Diagnosis AUROC linear | Crust AUROC nonlinear | Diagnosis AUROC nonlinear |
|---|---|---|---|---|---|
| VCCA-private / 909 | Full | .509 [.422, .594] | .560 [.510, .610] | .516 [.434, .604] | .511 [.457, .566] |
| VCCA-private / 909 | Shared | .540 [.458, .615] | .500 P [.500, .500] | .456 [.370, .539] | .509 [.457, .561] |
| VCCA-private / 909 | Private | .482 [.405, .557] | .557 [.506, .606] | .525 [.454, .609] | .513 [.463, .566] |
| VCCA-private / 910 | Full | .591 [.508, .671] | .555 [.504, .605] | .480 [.401, .554] | .510 [.460, .558] |
| VCCA-private / 910 | Shared | .568 [.492, .647] | .559 [.508, .612] | .456 [.371, .536] | .515 [.467, .564] |
| VCCA-private / 910 | Private | .550 [.467, .623] | .500 P [.500, .500] | .485 [.402, .562] | .500 P [.500, .500] |
| Encoder | Seed / / | Crust AUROC linear | Crust AUROC nonlinear | linear | nonlinear |
|---|---|---|---|---|---|
| Fitzpatrick17k test | |||||
| Dual baseline | 909 / .20 / 5 | .541 [.483, .603] | .566 [.510, .624] | -.050 [-.111, .006] | .020 [-.034, .075] |
| Dual baseline | 910 / .20 / 8 | .539 [.478, .596] | .548 [.488, .611] | .002 [-.022, .024] | .010 [-.030, .051] |
| Dual baseline | 910 / .50 / 0 | .628 [.569, .689] | .606 [.545, .665] | .040 [-.030, .102] | .001 [-.082, .068] |
| SCCR ( ) | 909 / .20 / 10 | .512 [.457, .569] | .579 [.516, .637] | -.028 [-.071, .017] | -.016 [-.057, .025] |
| SCCR ( ) | 909 / .50 / 1 | .651 [.596, .706] | .649 [.593, .701] | .074 [.028, .122] | .075 [.030, .117] |
| Cohort | Seed | Native AUROC | linear | nonlinear | |
|---|---|---|---|---|---|
| Fitzpatrick17k | 909 | .20 | .708 [.649, .767] | -.012 [-.050, .021] | -.002 [-.040, .031] |
| Fitzpatrick17k | 910 | .20 | .785 [.729, .836] | .016 [-.022, .053] | .033 [.003, .064] |
| DDI | 909 | .20 | .509 [.457, .560] | -.128 [-.181, -.073] | -.103 [-.152, -.051] |
| DDI | 910 | .20 | .553 [.501, .598] | -.032 [-.080, .013] | -.051 [-.100, -.004] |
| Site B | Site C | Site D | |||||
| Method | AUROC | AUPRC | AUROC | AUPRC | AUROC | AUPRC | |
| Expert-only | 5 | ||||||
| Raw-only | 5 | ||||||
| Identity | 5 | ||||||
| OLS | 5 | ||||||
| LEACE | 4 | ||||||
| Rank | Code | Rank | Code | Rank | Code | Rank | Code |
|---|---|---|---|---|---|---|---|
| 1 | cpt4:99213 | 65 | icd10:f33.9 | 129 | cpt4:76856 | 193 | cpt4:82247 |
| 2 | cpt4:99214 | 66 | cpt4:99284 | 130 | cpt4:88142 | 194 | rxnorm:36567 |
| 3 | icd10:i10 | 67 | rxnorm:1191 | 131 | icd10:r06.02 | 195 | rxnorm:4603 |
| 4 | cpt4:99211 | 68 | cpt4:97110 | 132 | rxnorm:8640 | 196 | rxnorm:214182 |
| 5 | cpt4:85027 | 69 | cpt4:71010 | 133 | cpt4:85007 | 197 | icd10:z04 |
| 6 | cpt4:36415 | 70 | cpt4:82310 | 134 | cpt4:83550 | 198 | icd10:n95.1 |
| AUROC [95% CI] | AUPRC [95% CI] | Mask drop | Raw drop | Mask/raw attr. | Evidence | |
|---|---|---|---|---|---|---|
| zero / perm. | zero / perm. | |||||
| 0.1 | 0.792 [0.772, 0.809] | 0.766 [0.738, 0.792] | 0.283 / 0.303 | 0.000 / 0.003 | 31.25 | Mask |
| 0.5 | 0.790 [0.771, 0.807] | 0.770 [0.745, 0.792] | 0.261 / 0.278 | 0.000 / 0.000 | 16.17 | Mask |
| 0.7 | 0.835 [0.819, 0.851] | 0.820 [0.795, 0.842] | 0.000 / 0.000 | 0.387 / 0.348 | 0.029 | Raw |
| 0.9 | 0.831 [0.816, 0.846] | 0.820 [0.797, 0.842] | -0.001 / 0.000 | 0.342 / 0.318 | 0.015 | Raw |
| (a) Separately trained native heads | |||
|---|---|---|---|
| Model | AUROC | AUPRC | Log loss |
| Dual baseline | .822 [.806, .839] | .815 [.794, .837] | .526 [.499, .550] |
| Epoch OLS | .774 [.754, .793] | .722 [.691, .752] | .594 [.570, .621] |
| Epoch LEACE | .793 [.775, .810] | .773 [.748, .801] | .560 [.537, .585] |
| SCCR | .792 [.775, .811] | .766 [.739, .793] | .552 [.535, .569] |
| SCCR | .788 [.770, .807] | .767 [.742, .792] | .553 [.535, .569] |
| (a) Diagnosis gain beyond each SCCR model’s own expert | ||||
|---|---|---|---|---|
| Probe | ||||
| .10 | Linear | -.0022 [-.0044, .0001] | -.0002 [-.0022, .0017] | -.0020 [-.0040, .0001] |
| .10 | RBF | -.0019 [-.0060, .0025] | -.0009 [-.0055, .0040] | -.0010 [-.0042, .0025] |
| .30 | Linear | .0009 [-.0006, .0024] | .0009 [-.0006, .0024] | .0000 [.0000, .0000] |
| .30 | RBF | -.0005 [-.0057, .0049] | -.0005 [-.0057, .0049] | .0000 [.0000, .0000] |
| (b) Descriptor recovery in the saved SCCR model | ||||