PLATO is a method that enables deep learning on a tabular dataset with orders-of-magnitude more features than samples by using an auxiliary knowledge graph. (a) In PLATO, every input feature in a tabular dataset corresponds to a node in an auxiliary knowledge graph with information about the domain. (b) In the first layer of a MLP, every input feature corresponds to a vector of weights. (c,d) PLATO is based on the inductive bias that, if two input features correspond to similar nodes in the auxiliary KG, they should have similar weight vectors in the first layer of the MLP. PLATO captures the inductive bias by inferring the weight vector for each input feature from its corresponding node in the auxiliary KG. Ultimately, input features with similar embeddings produce similar weight vectors, regularizing the MLP and capturing the inductive bias.
For more information about PLATO, please refer to our paper, 5-minute video, slides, or poster!
Please run the commands below:
conda create -n plato python=3.8
bash install.sh
Download data from this anonymous link https://drive.google.com/file/d/1kMGagEdSE5nCrJDTRI-_yen9RwLXT5Ea/view?usp=sharing
, and put it under plato/data
.
Make sure to replace $save_path
with the directory where you would like to save your results.
cd plato/baseline
python single_source_pipeline.py --filename $save_path/save.pt \
--device 0 --epochs 30 --runs 3 --model GGMLP \
--l1_weight 0 --l2_weight 0 --batch_size 32 --tensorboard_dir $save_path \
--simple --seed 0 --drug_div 1 --gene_div 1000 \
--mlp_m_layer_list 32,32,1 --enlarge 1 --lr 0.001 --mp --beta 0.1 --load_dir ../data/kg --cache_dir ../data --dataset BRCA
Please contact Camilo Ruiz ([email protected]) and Hongyu Ren ([email protected]) with any questions.
@inproceedings{ruiz2023high,
title={High dimensional, tabular deep learning with an auxiliary knowledge graph},
author={Ruiz, Camilo and Ren, Hongyu and Huang, Kexin and Leskovec, Jure},
booktitle={Thirty-seventh Conference on Neural Information Processing Systems},
year={2023}
}