<div align="center">

<!-- title -->
<!--lint ignore no-dead-urls-->
# Awesome XAI [![Awesome](https://awesome.re/badge.svg)](https://awesome.re)

<!-- subtitle -->
A curated list of XAI and Interpretable ML papers, methods, critiques, and
resources.

<!-- image -->
<img src="https://raw.githubusercontent.com/altamiracorp/awesome-xai/main/images/icon.svg" width="256" style="max-width: 25% !important"/>

<!-- description -->
Explainable AI (XAI) is a branch of machine learning research which seeks to
make various machine learning techniques more understandable.

</div>

<!-- TOC -->

## Contents
- [Papers](#papers)
    - [Landmarks](#landmarks)
    - [Surveys](#surveys)
    - [Evaluations](#evaluations)
    - [XAI Methods](#xai-methods)
    - [Interpretable Models](#interpretable-models)
    - [Critiques](#critiques)
- [Repositories](#repositories)
- [Videos](#videos)
- [Follow](#follow)


<!-- CONTENT -->
## Papers

### Landmarks

These are some of our favorite papers. They are helpful to understand the field
and critical aspects of it. We believe this papers are worth reading in their
entirety.

- [Explanation in Artificial Intelligence: Insights from the Social Sciences](https://arxiv.org/abs/1706.07269) - This paper provides an introduction to the social science research into explanations. The author provides 4 major findings: (1) explanations are constrastive, (2) explanations are selected, (3) probabilities probably don't matter, (4) explanations are social. These fit into the general theme that explanations are -contextual-.
- [Sanity Checks for Saliency Maps](https://arxiv.org/abs/1810.03292) - An important read for anyone using saliency maps. This paper proposes two experiments to determine whether saliency maps are useful: (1) model parameter randomization test compares maps from trained and untrained models, (2) data randomization test compares maps from models trained on the original dataset and models trained on the same dataset with randomized labels. They find that "some widely deployed saliency methods are independent of both the data the model was trained on, and the model parameters".

### Surveys

- [Explainable Deep Learning: A Field Guide for the Uninitiated](https://arxiv.org/abs/2004.14545) - An in-depth description of XAI focused on technqiues for deep learning.

### Evaluations

- [Quantifying Explainability of Saliency Methods in Deep Neural Networks](https://arxiv.org/abs/2009.02899) - An analysis of how different heatmap-based saliency methods perform based on experimentation with a generated dataset.

### XAI Methods

- [Ada-SISE](https://arxiv.org/abs/2102.07799) - Adaptive semantice inpute sampling for explanation.
- [ALE](https://rss.onlinelibrary.wiley.com/doi/abs/10.1111/rssb.12377) - Accumulated local effects plot.
- [ALIME](https://link.springer.com/chapter/10.1007/978-3-030-33607-3_49) - Autoencoder Based Approach for Local Interpretability.
- [Anchors](https://ojs.aaai.org/index.php/AAAI/article/view/11491) - High-Precision Model-Agnostic Explanations.
- [Auditing](https://link.springer.com/article/10.1007/s10115-017-1116-3) - Auditing black-box models.
- [BayLIME](https://arxiv.org/abs/2012.03058) - Bayesian local interpretable model-agnostic explanations.
- [Break Down](http://ema.drwhy.ai/breakDown.html#BDMethod) - Break down plots for additive attributions.
- [CAM](https://www.cv-foundation.org/openaccess/content_cvpr_2016/papers/Zhou_Learning_Deep_Features_CVPR_2016_paper.pdf) - Class activation mapping.
- [CDT](https://ieeexplore.ieee.org/abstract/document/4167900) - Confident interpretation of Bayesian decision tree ensembles.
- [CICE](https://christophm.github.io/interpretable-ml-book/ice.html) - Centered ICE plot.
- [CMM](https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.40.2710&rep=rep1&type=pdf) - Combined multiple models metalearner.
- [Conj Rules](https://www.sciencedirect.com/science/article/pii/B9781558603356500131) - Using sampling and queries to extract rules from trained neural networks.
- [CP](https://ieeexplore.ieee.org/abstract/document/6597214) - Contribution propogation.
- [DecText](https://dl.acm.org/doi/abs/10.1145/775047.775113) - Extracting decision trees from trained neural networks.
- [DeepLIFT](https://ieeexplore-ieee-org.ezproxy.libraries.wright.edu/abstract/document/9352498) - Deep label-specific feature learning for image annotation.
- [DTD](https://www.sciencedirect.com/science/article/pii/S0031320316303582) - Deep Taylor decomposition.
- [ExplainD](https://www.aaai.org/Papers/IAAI/2006/IAAI06-018.pdf) - Explanations of evidence in additive classifiers.
- [FIRM](https://link.springer.com/chapter/10.1007/978-3-642-04174-7_45) - Feature importance ranking measure.
- [Fong, et. al.](https://openaccess.thecvf.com/content_iccv_2017/html/Fong_Interpretable_Explanations_of_ICCV_2017_paper.html) - Meaninful perturbations model.
- [G-REX](https://www.academia.edu/download/51462700/s0362-546x_2896_2900267-220170122-9600-1njrpyx.pdf) - Rule extraction using genetic algorithms.
- [Gibbons, et. al.](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3977175/) - Explain random forest using decision tree.
- [GoldenEye](https://link-springer-com.ezproxy.libraries.wright.edu/article/10.1007/s10618-014-0368-8) - Exploring classifiers by randomization.
- [GPD](https://arxiv.org/abs/0912.1128) - Gaussian process decisions.
- [GPDT](https://ieeexplore.ieee.org/abstract/document/4938655) - Genetic program to evolve decision trees.
- [GradCAM](https://openaccess.thecvf.com/content_iccv_2017/html/Selvaraju_Grad-CAM_Visual_Explanations_ICCV_2017_paper.html) - Gradient-weighted Class Activation Mapping.
- [GradCAM++](https://ieeexplore.ieee.org/abstract/document/8354201/) - Generalized gradient-based visual explanations.
- [Hara, et. al.](https://arxiv.org/abs/1606.05390) - Making tree ensembles interpretable.
- [ICE](https://www.tandfonline.com/doi/abs/10.1080/10618600.2014.907095) - Individual conditional expectation plots.
- [IG](http://proceedings.mlr.press/v70/sundararajan17a/sundararajan17a.pdf) - Integrated gradients.
- [inTrees](https://link.springer.com/article/10.1007/s41060-018-0144-8) - Interpreting tree ensembles with inTrees.
- [IOFP](https://arxiv.org/abs/1611.04967) - Iterative orthoganol feature projection.
- [IP](https://arxiv.org/abs/1703.00810) - Information plane visualization.
- [KL-LIME](https://arxiv.org/abs/1810.02678) - Kullback-Leibler Projections based LIME.
- [Krishnan, et. al.](https://www.sciencedirect.com/science/article/abs/pii/S0031320398001812) - Extracting decision trees from trained neural networks.
- [Lei, et. al.](https://arxiv.org/abs/1606.04155) - Rationalizing neural predictions with generator and encoder.
- [LIME](https://dl.acm.org/doi/abs/10.1145/2939672.2939778) - Local Interpretable Model-Agnostic Explanations.
- [LOCO](https://amstat.tandfonline.com/doi/abs/10.1080/01621459.2017.1307116#.YEkdZ7CSmUk) - Leave-one covariate out.
- [LORE](https://arxiv.org/abs/1805.10820) - Local rule-based explanations.
- [Lou, et. al.](https://dl.acm.org/doi/abs/10.1145/2487575.2487579) - Accurate intelligibile models with pairwise interactions.
- [LRP](https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0130140) - Layer-wise relevance propogation.
- [MCR](https://www.jmlr.org/papers/volume20/18-760/18-760.pdf) - Model class reliance.
- [MES](https://ieeexplore.ieee.org/abstract/document/7738872) - Model explanation system.
- [MFI](https://arxiv.org/abs/1611.07567) - Feature importance measure for non-linear algorithms.
- [NID](https://www.sciencedirect.com/science/article/abs/pii/S0304380002000649) - Neural interpretation diagram.
- [OptiLIME](https://arxiv.org/abs/2006.05714) - Optimized LIME.
- [PALM](https://dl.acm.org/doi/abs/10.1145/3077257.3077271) - Partition aware local model.
- [PDA](https://arxiv.org/abs/1702.04595) - Prediction Difference Analysis: Visualize deep neural network decisions.
- [PDP](https://projecteuclid.org/download/pdf_1/euclid.aos/1013203451) - Partial dependence plots.
- [POIMs](https://academic.oup.com/bioinformatics/article/24/13/i6/233341) - Positional oligomer importance matrices for understanding SVM signal detectors.
- [ProfWeight](https://arxiv.org/abs/1807.07506) - Transfer information from deep network to simpler model.
- [Prospector](https://dl.acm.org/doi/abs/10.1145/2858036.2858529) - Interactive partial dependence diagnostics.
- [QII](https://ieeexplore.ieee.org/abstract/document/7546525) - Quantitative input influence.
- [REFNE](https://content.iospress.com/articles/ai-communications/aic272) - Extracting symbolic rules from trained neural network ensembles.
- [RETAIN](https://arxiv.org/abs/1608.05745) - Reverse time attention model.
- [RISE](https://arxiv.org/abs/1806.07421) - Randomized input sampling for explanation.
- [RxREN](https://link.springer.com/article/10.1007%2Fs11063-011-9207-8) - Reverse engineering neural networks for rule extraction.
- [SHAP](https://arxiv.org/abs/1705.07874) - A unified approach to interpretting model predictions.
- [SIDU](https://arxiv.org/abs/2101.10710) - Similarity, difference, and uniqueness input perturbation.
- [Simonynan, et. al](https://arxiv.org/abs/1312.6034) - Visualizing CNN classes.
- [Singh, et. al](https://arxiv.org/abs/1611.07579) - Programs as black-box explanations.
- [STA](https://arxiv.org/abs/1610.09036) - Interpreting models via Single Tree Approximation.
- [Strumbelj, et. al.](https://www.jmlr.org/papers/volume11/strumbelj10a/strumbelj10a.pdf) - Explanation of individual classifications using game theory.
- [SVM+P](https://www.academia.edu/download/2471122/3uecwtv9xcwxg6r.pdf) - Rule extraction from support vector machines.
- [TCAV](https://openreview.net/forum?id=S1viikbCW) - Testing with concept activation vectors.
- [Tolomei, et. al.](https://dl.acm.org/doi/abs/10.1145/3097983.3098039) - Interpretable predictions of tree-ensembles via actionable feature tweaking.
- [Tree Metrics](https://www.researchgate.net/profile/Edward-George-2/publication/2610587_Making_Sense_of_a_Forest_of_Trees/links/55b1085d08aec0e5f430eb40/Making-Sense-of-a-Forest-of-Trees.pdf) - Making sense of a forest of trees.
- [TreeSHAP](https://arxiv.org/abs/1706.06060) - Consistent feature attribute for tree ensembles.
- [TreeView](https://arxiv.org/abs/1611.07429) - Feature-space partitioning.
- [TREPAN](http://www.inf.ufrgs.br/~engel/data/media/file/cmp121/TREPAN_craven.nips96.pdf) - Extracting tree-structured representations of trained networks.
- [TSP](https://dl.acm.org/doi/abs/10.1145/3412815.3416893) - Tree space prototypes.
- [VBP](http://www.columbia.edu/~aec2163/NonFlash/Papers/VisualBackProp.pdf) - Visual back-propagation.
- [VEC](https://ieeexplore.ieee.org/abstract/document/5949423) - Variable effect characteristic curve.
- [VIN](https://dl.acm.org/doi/abs/10.1145/1014052.1014122) - Variable interaction network.
- [X-TREPAN](https://arxiv.org/abs/1508.07551) - Adapted etraction of comprehensible decision tree in ANNs.
- [Xu, et. al.](http://proceedings.mlr.press/v37/xuc15) - Show, attend, tell attention model.

### Interpretable Models

- [Decision List](https://christophm.github.io/interpretable-ml-book/rules.html) - Like a decision tree with no branches.
- [Decision Trees](https://en.wikipedia.org/wiki/Decision_tree) - The tree provides an interpretation.
- [Explainable Boosting Machine](https://www.youtube.com/watch?v=MREiHgHgl0k) - Method that predicts based on learned vector graphs of features.
- [k-Nearest Neighbors](https://en.wikipedia.org/wiki/K-nearest_neighbors_algorithm) - The prototypical clustering method.
- [Linear Regression](https://en.wikipedia.org/wiki/Linear_regression) - Easily plottable and understandable regression.
- [Logistic Regression](https://en.wikipedia.org/wiki/Logistic_regression) - Easily plottable and understandable classification.
- [Naive Bayes](https://en.wikipedia.org/wiki/Naive_Bayes_classifier) - Good classification, poor estimation using conditional probabilities.
- [RuleFit](https://christophm.github.io/interpretable-ml-book/rulefit.html) - Sparse linear model as decision rules including feature interactions.


### Critiques

- [Attention is not Explanation](https://arxiv.org/abs/1902.10186) - Authors perform a series of NLP experiments which argue attention does not provide meaningful explanations. They also demosntrate that different attentions can generate similar model outputs.
- [Attention is not --not-- Explanation](https://arxiv.org/abs/1908.04626) - This is a rebutal to the above paper. Authors argue that multiple explanations can be valid and that the and that attention can produce *a* valid explanation, if not -the- valid explanation.
- [Do Not Trust Additive Explanations](https://arxiv.org/abs/1903.11420) - Authors argue that addditive explanations (e.g. LIME, SHAP, Break Down) fail to take feature ineractions into account and are thus unreliable.
- [Please Stop Permuting Features An Explanation and Alternatives](https://arxiv.org/abs/1905.03151) - Authors demonstrate why permuting features is misleading, especially where there is strong feature dependence. They offer several previously described alternatives.
- [Stop Explaining Black Box Machine Learning Models for High States Decisions and Use Interpretable Models Instead](https://www.nature.com/articles/s42256-019-0048-x?fbclid=IwAR3156gP-ntoAyw2sHTXo0Z8H9p-2wBKe5jqitsMCdft7xA0P766QvSthFs) - Authors present a number of issues with explainable ML and challenges to interpretable ML: (1) constructing optimal logical models, (2) constructing optimal sparse scoring systems, (3) defining interpretability and creating methods for specific methods. They also offer an argument for why interpretable models might exist in many different domains.
- [The (Un)reliability of Saliency Methods](https://link.springer.com/chapter/10.1007/978-3-030-28954-6_14) - Authors demonstrate how saliency methods vary attribution when adding a constant shift to the input data. They argue that methods should fulfill *input invariance*, that a saliency method mirror the sensistivity of the model with respect to transformations of the input.


## Repositories

- [EthicalML/xai](https://github.com/EthicalML/xai) - A toolkit for XAI which is focused exclusively on tabular data. It implements a variety of data and model evaluation techniques.
- [MAIF/shapash](https://github.com/MAIF/shapash) - SHAP and LIME-based front-end explainer.
- [PAIR-code/what-if-tool](https://github.com/PAIR-code/what-if-tool) - A tool for Tensorboard or Notebooks which allows investigating model performance and fairness.
- [slundberg/shap](https://github.com/slundberg/shap) - A Python module for using Shapley Additive Explanations.


## Videos

- [Debate: Interpretability is necessary for ML](https://www.youtube.com/watch?v=93Xv8vJ2acI) - A debate on whether interpretability is necessary for ML with Rich Caruana and Patrice Simard for and Kilian Weinberger and Yann LeCun against.


## Follow

Their views aren't necessarily our views. :wink:

- [The Institute for Ethical AI & Machine Learning](https://ethical.institute/index.html) - A UK-based research center that performs research into ethical AI/ML, which frequently involves XAI.
- [Tim Miller](https://twitter.com/tmiller_unimelb) - One of the preeminent researchers in XAI.
- [Rich Caruana](https://www.microsoft.com/en-us/research/people/rcaruana/) - The man behind Explainable Boosting Machines.

Who else should we be following!?

## Contributing

[Contributions of any kind welcome, just follow the guidelines](contributing.md)!

### Contributors
[Thanks goes to these contributors](https://github.com/altamiracorp/awesome-xai/graphs/contributors)!

[xai.md Github](https://github.com/altamiracorp/awesome-xai
)
