| import numpy as np | |
| import pandas as pd | |
| def build_node_features(df: pd.DataFrame, users: pd.DataFrame): | |
| """ | |
| Returns zero node features. | |
| This is intentional: the benchmark is designed so that static structural | |
| features carry NO signal. Only temporal memory (TGN) can solve the task. | |
| XGBoost / GNN with static features must fail — proving temporal necessity. | |
| """ | |
| user_ids = users["user_id"].values | |
| return np.zeros((len(user_ids), 2), dtype=np.float32) |