nusdbsystem/ARM-Net

A ready-to-use framework of the state-of-the-art models for structured (tabular) data learning with PyTorch. Applications include recommendation, CRT prediction, healthcare analytics, anomaly detection, and etc.

Python

80

12 commits

updated Nov 21, 2025

See the code

README

ARM-Net: Adaptive Relation Modeling Network for Structured Data

version python pytorch singa

This repository contains our PyTorch implementation of ARM-Net: Adaptive Relation Modeling Network for Structured Data. We also provide the implementation of relevant baseline models for structured (tabular) data learning.

ARM-Net for Large Real-world Datasets

Benchmark Datasets

Summary of Results

  • Main results are summarized below.
  • ARM-Net achieves the overall best performance.
  • More results and technical details can be found in the paper.
  • Note that these results are reported using a fixed embedding size of 10 for a fair comparison, and higher AUC can be obtained by increasing the embedding size:
E.g., with a larger embedding size of 100, ARM-Net (single head, without ensemble with a DNN) 
can obtain 0.9817 AUC on Frappe with only 10 exponential neurons.

CUDA_VISIBLE_DEVICES=0 python train.py --model armnet_1h --nemb 100 --h  10 --alpha 1.7 --lr 0.001 --exp_name frappe_armnet_1h_nemb_100

The AUC and Model Size of this ARM-Net with different embedding sizes are listed below. 
Embedding Size102030405060708090100110120
AUC0.97770.97790.98010.98030.97980.98070.98080.98100.98100.98170.98110.9805
Model Size177K262K348K434K520K606K692K779K866K953K1.04M1.13M

Baseline Models

ModelCodeReference
Logistic RegressionLR, lr.py-
Factorization MachineFM, fm.py[ICDE-10] FM
Attentional Factorization MachineAFM, afm.py[IJCAI-17] AFM
Higher-Order Factorization MachinesHOFM, hofm.py[NeurIPS-16] HOFM
Deep Neural NetworkDNN, dnn.py-
Graph Convolutional NetworksGCN, gcn.py[ICLR-17] GCN
Graph Convolutional NetworksGAT, gat.py[ICLR-18] GAT
Wide&DeepWide&Deep, wd.py[RecSys-16] Wide&Deep
Product Neural NetworkIPNN/KPNN, pnn.py[ICDE-16] PNN
Neural Factorization MachineNFM, nfm.py[SIGIR-17] NFM
DeepFMDeepFM, dfm.py[IJCAI-17] DeepFM
Deep & Cross NetworkDCN/DCN+, dcn.py[KDD-17] DCN
Gated Linear UnitSA_GLU, sa_glu.py[ICML-17] GLU
xDeepFMCIN/xDeepFM, xdfm.py[KDD-18] xDeepFM
Context-Aware Self-Attention NetworkGC_ARM, gc_arm.py[AAAI-19] GC-ARM
AFNAFN/AFN+, afn.py[AAAI-20] AFN
ARM-NetARM-Net/ARM-Net+, armnet.py[SIGMOD-21] ARM-Net
ARM-Net-1h (one-head, recommended)ARM-Net/ARM-Net+, armnet_1h.py[SIGMOD-21] ARM-Net-1h

ARM-Net for Small to Medium Tabular Datasets (121 UCI datasets)

We also implement and evaluate prior arts, latest models and our ARM-Net on UCI datasets. These datasets are multi-class real-world classification tasks, whose features are all converted into numerical features following common practice. Models and Utilities for evaluating models on 121 UCI Datasets are included in this branch.

Summary of UCI Results

  • Main results are summarized below.
  • ARM-Net achieves overall best performance.
  • More results and technical details can be found here.
ModelRank(Best_Cnt)abaloneacute-inflammationacute-nephritisadultannealingarrhythmiaaudiology-stdbalance-scaleballoonsbankbloodbreast-cancerbreast-cancer-wiscbreast-cancer-wisc-diagbreast-cancer-wisc-progbreast-tissuecarcardiotocography-10clasescardiotocography-3claseschess-krvkchess-krvkpcongressional-votingconn-bench-sonar-mines-rocksconn-bench-vowel-deterdingconnect-4contraccredit-approvalcylinder-bandsdermatologyechocardiogramecolienergy-y1energy-y2fertilityflagsglass
n_samples-417712012048842898452196625164521748286699569198106172821262126280563196435208990675571473690512366131336768768100194214
n_features-97715322636055175101031341072222737176112431016363511899102910
LR6-th (0/36)0.6293/0.00800.9833/0.02110.9533/0.05520.8423/0.00080.1280/0.01720.5442/0.01840.7040/0.04800.8718/0.03100.7250/0.09350.8904/0.00230.7610/0.00430.6923/0.01710.9490/0.00900.9641/0.01030.6626/0.06560.5283/0.13710.8032/0.00520.7595/0.01180.8798/0.01200.2743/0.00090.9438/0.00350.5705/0.03280.7385/0.01860.7121/0.00880.7547/0.00040.4829/0.03830.8557/0.01190.6305/0.06470.9399/0.03130.7600/0.06050.7988/0.05100.8391/0.01230.8448/0.02970.5800/0.10660.4206/0.03650.5290/0.0281
FM5-th (3/36)0.6329/0.00670.9767/0.03890.8700/0.09450.8443/0.00050.1960/0.14930.5283/0.02110.4880/0.05880.9224/0.00870.5750/0.12750.8882/0.00280.7647/0.00000.6909/0.06040.9599/0.00480.9697/0.00480.6626/0.08490.5094/0.08180.8882/0.00970.7616/0.01610.8903/0.01720.3127/0.00350.9796/0.00380.5705/0.03060.9502/0.00870.9502/0.00870.8264/0.00050.4524/0.01400.8638/0.00930.7016/0.02500.9202/0.03500.7846/0.06000.7595/0.06800.8823/0.00860.8604/0.02830.7720/0.06880.3423/0.02000.5907/0.0361
DNN4-th (6/36)0.6560/0.00510.9900/0.02000.9500/0.03160.8519/0.00150.4420/0.23460.6442/0.01140.6880/0.04660.8987/0.00480.5500/0.23180.8900/0.00350.7583/0.00500.7147/0.00820.9633/0.00330.9648/0.01070.7091/0.04750.5849/0.03960.9442/0.00340.7797/0.01210.9178/0.00310.6842/0.01470.9775/0.00320.5834/0.01470.7481/0.03770.9745/0.00630.8501/0.00230.5084/0.01580.8417/0.01870.7359/0.03860.9639/0.01010.7846/0.03370.8524/0.01660.8688/0.01070.8865/0.00940.8320/0.07220.4969/0.02720.5850/0.0316
SNN3rd (6/36)0.6457/0.00430.9567/0.03890.9000/0.05480.8489/0.00090.2280/0.26710.5841/0.04100.7200/0.02530.9058/0.02400.7250/0.12250.8885/0.00190.8885/0.00190.7105/0.01050.9656/0.00410.9690/0.01120.6727/0.09030.6000/0.06900.9632/0.00660.8008/0.01250.9029/0.00860.6796/0.01410.9726/0.00610.5779/0.02090.7135/0.03000.9693/0.01000.8491/0.00130.5106/0.00980.8719/0.01210.7000/0.01630.9388/0.02690.7877/0.04390.8179/0.0350.8714/0.01420.8854/0.01540.7600/0.11800.4804/0.02310.5738/0.0602
Perceiver-IO2nd (6/36)0.6381/0.01431.0000/0.00000.9367/0.05310.8521/0.00110.7600/0.00000.5602/0.00530.0080/0.01600.8821/0.01660.7750/0.05000.8850/0.00000.7620/0.00000.7063/0.00880.9352/0.03130.9556/0.01420.7596/0.01180.3208/0.05970.9326/0.01200.5325/0.08610.7817/0.00350.6834/0.01510.8106/0.08950.6129/0.00000.5635/0.08170.6732/0.05210.7538/0.00000.4457/0.01220.7745/0.10750.6133/0.00780.4295/0.07540.7662/0.08340.6440/0.02390.8417/0.02950.8807/0.03250.8560/0.04800.3010/0.02470.4093/0.0415
ARM-Net1st (15/36)0.6603/0.00340.9767/0.03890.9600/0.08000.8562/0.00110.1500/0.11310.6487/0.02140.5520/0.02990.9135/0.00700.7500/0.07910.8922/0.00120.8922/0.00120.7203/0.01930.9530/0.01180.9521/0.01860.6828/0.04850.5170/0.06380.9463/0.00860.7868/0.00540.9146/0.00510.6982/0.01090.9826/0.00400.5760/0.01930.7712/0.03350.9675/0.01150.8672/0.00280.5228/0.01190.8620/0.01870.7133/0.03050.9497/0.01810.8338/0.04060.8214/0.02790.8844/0.00480.8750/0.03040.8240/0.05280.4330/0.05260.6150/0.0232

ARM-Net for Log-Based Anomaly Detection

ARM-Net can also be readily adapted for supporting Log-based Anomaly Detection. Log-based anomaly detection aims to discover abnormal system behaviors (binary classification) by analyzing log sequences that are generated routinely by the system at runtime.

Each log is a message in unstructued data format (raw text), which can be parsed into structured data format of a number of key information fields, e.g., date, pid, level, event ID and etc. Models and Utilities for supporting End-to-end Log-based Anomaly Detection can be found in this branch.

Citation

If you use our code in your research, please cite:

S. Cai, K. Zheng, G. Chen, H.V. Jagadish, B.C. Ooi, M. Zhang. ARM-Net: Adaptive Relation Modeling Network for Structured Data. ACM International Conference on Management of Data (SIGMOD), 2021

Contact

To ask questions or report issues, you can drop us an email.

121-uci-datasets
attention
avazu-dataset
criteo-dataset
diabetes-prediction
frappe-dataset
healthcare-analysis
log-based-anomaly-detection
movielens-dataset
pytorch
structured-data
tabular-data

Contributors

solopku

12 commits

nusdbsystem/ARM-Net

A ready-to-use framework of the state-of-the-art models for structured (tabular) data learning with PyTorch. Applications include recommendation, CRT prediction, healthcare analytics, anomaly detection, and etc.

Python

80

12 commits

updated Nov 21, 2025

See the code

README

ARM-Net: Adaptive Relation Modeling Network for Structured Data

version python pytorch singa

This repository contains our PyTorch implementation of ARM-Net: Adaptive Relation Modeling Network for Structured Data. We also provide the implementation of relevant baseline models for structured (tabular) data learning.

ARM-Net for Large Real-world Datasets

Benchmark Datasets

Summary of Results

  • Main results are summarized below.
  • ARM-Net achieves the overall best performance.
  • More results and technical details can be found in the paper.
  • Note that these results are reported using a fixed embedding size of 10 for a fair comparison, and higher AUC can be obtained by increasing the embedding size:
E.g., with a larger embedding size of 100, ARM-Net (single head, without ensemble with a DNN) 
can obtain 0.9817 AUC on Frappe with only 10 exponential neurons.

CUDA_VISIBLE_DEVICES=0 python train.py --model armnet_1h --nemb 100 --h  10 --alpha 1.7 --lr 0.001 --exp_name frappe_armnet_1h_nemb_100

The AUC and Model Size of this ARM-Net with different embedding sizes are listed below. 
Embedding Size102030405060708090100110120
AUC0.97770.97790.98010.98030.97980.98070.98080.98100.98100.98170.98110.9805
Model Size177K262K348K434K520K606K692K779K866K953K1.04M1.13M

Baseline Models

ModelCodeReference
Logistic RegressionLR, lr.py-
Factorization MachineFM, fm.py[ICDE-10] FM
Attentional Factorization MachineAFM, afm.py[IJCAI-17] AFM
Higher-Order Factorization MachinesHOFM, hofm.py[NeurIPS-16] HOFM
Deep Neural NetworkDNN, dnn.py-
Graph Convolutional NetworksGCN, gcn.py[ICLR-17] GCN
Graph Convolutional NetworksGAT, gat.py[ICLR-18] GAT
Wide&DeepWide&Deep, wd.py[RecSys-16] Wide&Deep
Product Neural NetworkIPNN/KPNN, pnn.py[ICDE-16] PNN
Neural Factorization MachineNFM, nfm.py[SIGIR-17] NFM
DeepFMDeepFM, dfm.py[IJCAI-17] DeepFM
Deep & Cross NetworkDCN/DCN+, dcn.py[KDD-17] DCN
Gated Linear UnitSA_GLU, sa_glu.py[ICML-17] GLU
xDeepFMCIN/xDeepFM, xdfm.py[KDD-18] xDeepFM
Context-Aware Self-Attention NetworkGC_ARM, gc_arm.py[AAAI-19] GC-ARM
AFNAFN/AFN+, afn.py[AAAI-20] AFN
ARM-NetARM-Net/ARM-Net+, armnet.py[SIGMOD-21] ARM-Net
ARM-Net-1h (one-head, recommended)ARM-Net/ARM-Net+, armnet_1h.py[SIGMOD-21] ARM-Net-1h

ARM-Net for Small to Medium Tabular Datasets (121 UCI datasets)

We also implement and evaluate prior arts, latest models and our ARM-Net on UCI datasets. These datasets are multi-class real-world classification tasks, whose features are all converted into numerical features following common practice. Models and Utilities for evaluating models on 121 UCI Datasets are included in this branch.

Summary of UCI Results

  • Main results are summarized below.
  • ARM-Net achieves overall best performance.
  • More results and technical details can be found here.
ModelRank(Best_Cnt)abaloneacute-inflammationacute-nephritisadultannealingarrhythmiaaudiology-stdbalance-scaleballoonsbankbloodbreast-cancerbreast-cancer-wiscbreast-cancer-wisc-diagbreast-cancer-wisc-progbreast-tissuecarcardiotocography-10clasescardiotocography-3claseschess-krvkchess-krvkpcongressional-votingconn-bench-sonar-mines-rocksconn-bench-vowel-deterdingconnect-4contraccredit-approvalcylinder-bandsdermatologyechocardiogramecolienergy-y1energy-y2fertilityflagsglass
n_samples-417712012048842898452196625164521748286699569198106172821262126280563196435208990675571473690512366131336768768100194214
n_features-97715322636055175101031341072222737176112431016363511899102910
LR6-th (0/36)0.6293/0.00800.9833/0.02110.9533/0.05520.8423/0.00080.1280/0.01720.5442/0.01840.7040/0.04800.8718/0.03100.7250/0.09350.8904/0.00230.7610/0.00430.6923/0.01710.9490/0.00900.9641/0.01030.6626/0.06560.5283/0.13710.8032/0.00520.7595/0.01180.8798/0.01200.2743/0.00090.9438/0.00350.5705/0.03280.7385/0.01860.7121/0.00880.7547/0.00040.4829/0.03830.8557/0.01190.6305/0.06470.9399/0.03130.7600/0.06050.7988/0.05100.8391/0.01230.8448/0.02970.5800/0.10660.4206/0.03650.5290/0.0281
FM5-th (3/36)0.6329/0.00670.9767/0.03890.8700/0.09450.8443/0.00050.1960/0.14930.5283/0.02110.4880/0.05880.9224/0.00870.5750/0.12750.8882/0.00280.7647/0.00000.6909/0.06040.9599/0.00480.9697/0.00480.6626/0.08490.5094/0.08180.8882/0.00970.7616/0.01610.8903/0.01720.3127/0.00350.9796/0.00380.5705/0.03060.9502/0.00870.9502/0.00870.8264/0.00050.4524/0.01400.8638/0.00930.7016/0.02500.9202/0.03500.7846/0.06000.7595/0.06800.8823/0.00860.8604/0.02830.7720/0.06880.3423/0.02000.5907/0.0361
DNN4-th (6/36)0.6560/0.00510.9900/0.02000.9500/0.03160.8519/0.00150.4420/0.23460.6442/0.01140.6880/0.04660.8987/0.00480.5500/0.23180.8900/0.00350.7583/0.00500.7147/0.00820.9633/0.00330.9648/0.01070.7091/0.04750.5849/0.03960.9442/0.00340.7797/0.01210.9178/0.00310.6842/0.01470.9775/0.00320.5834/0.01470.7481/0.03770.9745/0.00630.8501/0.00230.5084/0.01580.8417/0.01870.7359/0.03860.9639/0.01010.7846/0.03370.8524/0.01660.8688/0.01070.8865/0.00940.8320/0.07220.4969/0.02720.5850/0.0316
SNN3rd (6/36)0.6457/0.00430.9567/0.03890.9000/0.05480.8489/0.00090.2280/0.26710.5841/0.04100.7200/0.02530.9058/0.02400.7250/0.12250.8885/0.00190.8885/0.00190.7105/0.01050.9656/0.00410.9690/0.01120.6727/0.09030.6000/0.06900.9632/0.00660.8008/0.01250.9029/0.00860.6796/0.01410.9726/0.00610.5779/0.02090.7135/0.03000.9693/0.01000.8491/0.00130.5106/0.00980.8719/0.01210.7000/0.01630.9388/0.02690.7877/0.04390.8179/0.0350.8714/0.01420.8854/0.01540.7600/0.11800.4804/0.02310.5738/0.0602
Perceiver-IO2nd (6/36)0.6381/0.01431.0000/0.00000.9367/0.05310.8521/0.00110.7600/0.00000.5602/0.00530.0080/0.01600.8821/0.01660.7750/0.05000.8850/0.00000.7620/0.00000.7063/0.00880.9352/0.03130.9556/0.01420.7596/0.01180.3208/0.05970.9326/0.01200.5325/0.08610.7817/0.00350.6834/0.01510.8106/0.08950.6129/0.00000.5635/0.08170.6732/0.05210.7538/0.00000.4457/0.01220.7745/0.10750.6133/0.00780.4295/0.07540.7662/0.08340.6440/0.02390.8417/0.02950.8807/0.03250.8560/0.04800.3010/0.02470.4093/0.0415
ARM-Net1st (15/36)0.6603/0.00340.9767/0.03890.9600/0.08000.8562/0.00110.1500/0.11310.6487/0.02140.5520/0.02990.9135/0.00700.7500/0.07910.8922/0.00120.8922/0.00120.7203/0.01930.9530/0.01180.9521/0.01860.6828/0.04850.5170/0.06380.9463/0.00860.7868/0.00540.9146/0.00510.6982/0.01090.9826/0.00400.5760/0.01930.7712/0.03350.9675/0.01150.8672/0.00280.5228/0.01190.8620/0.01870.7133/0.03050.9497/0.01810.8338/0.04060.8214/0.02790.8844/0.00480.8750/0.03040.8240/0.05280.4330/0.05260.6150/0.0232

ARM-Net for Log-Based Anomaly Detection

ARM-Net can also be readily adapted for supporting Log-based Anomaly Detection. Log-based anomaly detection aims to discover abnormal system behaviors (binary classification) by analyzing log sequences that are generated routinely by the system at runtime.

Each log is a message in unstructued data format (raw text), which can be parsed into structured data format of a number of key information fields, e.g., date, pid, level, event ID and etc. Models and Utilities for supporting End-to-end Log-based Anomaly Detection can be found in this branch.

Citation

If you use our code in your research, please cite:

S. Cai, K. Zheng, G. Chen, H.V. Jagadish, B.C. Ooi, M. Zhang. ARM-Net: Adaptive Relation Modeling Network for Structured Data. ACM International Conference on Management of Data (SIGMOD), 2021

Contact

To ask questions or report issues, you can drop us an email.

121-uci-datasets
attention
avazu-dataset
criteo-dataset
diabetes-prediction
frappe-dataset
healthcare-analysis
log-based-anomaly-detection
movielens-dataset
pytorch
structured-data
tabular-data

Contributors

solopku

12 commits

Languages

Python

95.0%

Shell

5.0%