writings

大模型补课:从工具到Agent

catching up on large language models: from conventional LLMs to reasoning models

building a product in the ai wave: the development story of Brevia

Understanding Sparse Autoencoders

Compute and equity

struggle with chaos

3D Reconstruction: Starting with Stereo Matching

From Pointwise to Generative: Recent NextRec Updates

Recommender systems: PEPNET and embedding-personalized multi-task learning

on the last day of 2025

multi-task learning: balancing multiple losses with GradNorm

NextRec: an efficient, modular, lightweight deep-learning recommendation framework

multi-task learning: AdaTT

multi-task learning: from hard parameter sharing to PLE

excerpt: improving recommendation systems and search in the age of LLMs

generative recommendation: RQ-VAE

2025 Q1–Q3 notes

Recommender-system misconceptions, v1: recent notes

why does a model perform well offline but not online?

understanding AUC in depth

python: resumable processing in concurrent workloads

server tinkering: buying a server, binding a domain, and reverse proxying

upgrading this blog: image hosting and automated uploads

machine learning in fintech?

paper reading: Google's MMoE model for multi-task learning

revisiting statistical learning: GBDT and its improvements

revisiting statistical learning: tree ensembles with Bagging and Boosting

graph algorithms: Node2Vec

revisiting statistical learning: decision trees

revisiting statistical learning: maximum likelihood and Bayesian estimation

on the last day of 2024

What goes up must come down

recommendation systems: implementing Neural Collaborative Filtering

A busy couple of months

Recommender systems: logistic regression, the workhorse of production feature modeling

Time is the slowest poison

Essential VS Code shortcuts

It's just business

Essential developer skills: common Vim commands

A note on moving — February 29, 2024

Written on Lunar New Year's Eve, 2024

On the first day