Interview time: February this year.
Department: e-commercial team.
Round 1:
- Self-introduction, walked through my projects.
- A few classic ML Q&A:
- Q: Why is XGBoost less prone to overfitting than a single decision tree?
- A: Because it's a gradient-boosting ensemble method (many weak-learner trees), it adds regularization (L1/L2, tree complexity penalties), a learning rate (shrinkage), row/column subsampling (subsample/colsample), depth limits, and more stable split criteria — together these reduce the risk of overfitting.
- Algorithm question: dynamic programming (not too hard).
Round 2:
- Self-introduction, walked through my projects again.
- System design question: detect self-buy-self-sell (fake buy-sell) behavior.
- I answered with a recommendation-based approach at the time, and it didn't fly. The interviewer said I should use more graph features or a GNN instead.
- Suggested direction:
- Build a buyer-seller-item heterogeneous graph, extract graph structural features (degree, triangle count, bidirectional edges, k-core, community detection, etc.)
- Time-series features: abnormally frequent buying/selling in a short window, repurchase frequency, price/quantity anomalies
- Association features: shared shipping address/phone number/IP/device, refund rate, similarity in review behavior
- Graph methods: GNN/GraphSAGE/GCN, graph embeddings (Node2Vec, DeepWalk), anomalous subgraph detection (dense subgraph / bipartite core)
- Models: rules combined with ML (XGBoost), or a two-stage GNN pipeline (candidate generation + GNN re-ranking)
- On evaluation: rerank after a high-recall stage, and build positive/negative samples offline using historical labels.
Discussion
Loading comments…