LTDK
Résumé
TLDR: shorter version
Experiences
I’m currently a Senior Machine Learning Engineer at Visenze working on making product search better:
-
Re-designed Multisearch, i.e., crafting the new search logic, and developing various features to enhance end-user experiences: rerank & recommendation services, natural filtering, boosting mechanism, adaptive threshold. I also lead the effort to improve search quality: from implementing algorithm codebase, experimenting & finetuning text embedding, to designing virtual agents for annotation tasks.
-
Vector search engine: conducted experiments on vector search algorithms, benchmarked search quality of SIMD-based vector calculation. [1], tuned optimal HNSW with replication settings.
-
Detection Models: overhauled annotation guidelines, upgraded the training framework from Detectron to Pytorch[2], developed and released multiple detection models across all Visenze solutions (search, tagging, recommendation).
I also spent about 2 years at Visenze developing on-device ML solutions:
- Built a 3D object labelling solution. It comprises: (1) an AR mobile app capturing objects and collect 3D data, (2) an Unity tool for importing and refining raw data, and (3) a DL training framework for 3D object detection.
- Delivered object tracking & hand gesture recognition solutions (a sneak peak) on mobile devices. I developed DL models designed for low memory usage and fast inference to maintain 30 FPS constraint and integrated it to the existing Unity games via native plugins. The game has more than 10M downloads on Play Store (Android), and stands at top-30 Education apps on iOS Store.
Other projects I got involved:
- Re-designed the sequential recommendation algorithm.
- Improved exact product search via new a re-rank logic & advanced data augmentations[3].
Past
Before joining Visenze, I spent 2.5 years as a research assistant in Prof Ngai-Man Cheung lab at SUTD focusing on:
- Hashing-based image retrieval: We were the one of the first tried to jointly learning hashing and vector embedding in end-to-end manner for retrieval task. I implemented most of the proposed methods on Caffe and Torch (not Pytorch)[4] and contributed to 10 publications.
- Vision-based localization: We built a 3D model of Singapore from Google Maps to infer user location based on building photos. I was responsible for re-implementing the inference framework (originally in MATLAB) to Android devices. The most challenging task is to implement fast SIFT features on Android devices using shader programs while maintaining the accuracy.
Education
Since 2023, I have been pursuing Master of Computing (Artificial Intelligence Specialisation) (part-time courseworks) at NUS. This program allows me to delve into AI topics that I don’t encounter in my daily work. I’ve completed several projects:
- Menu Recommendation using Deep Learning Critic-Actor Framework [Github, Report]: Thanks to our team member, we have access to order history of a F&B franchise in Singapore. I led implementation and model training. It helps me realize training RL model is painful 😭😭.
- Predicting HDB Rental Price in Singapore [Github, Report]: we studied rental price increases in Singapore using 2021-2023 HDB data and developed several prediction models, achieving Top #1 on the private leaderboard of the competition.
- Blood Cell Identification [Report]: I proposed an U-Net variant which utilizes segmentation masks to classify 5 leukocytes. It achieves 92.59% accuracy[5] on the CAM16 dataset.
I completed my undergraduate degree at HCMUS, where I had the opportunity to engage in several internships:
- I have 1 paper at ICIP on compact PCA component[6].
- At JAIST, I conducted research on background subtraction methods.
- At University of Saskatchewan, I derived a new method for white cell counting problem.
Misc
- A collection of my favorite books.
Build Status
Changing the default quantized vector quantization from SDC to ADC. It seems stupidly simple, but it was a huge pain since the engine API always assumes that both query vectors and index vectors are quantized ↩︎
the sweet old ancient time of DL ↩︎
While doing this, I anticipated Meta’s competition and got #12 on the leaderboard ↩︎
The good old day when DL engineers code a model in Lua ↩︎
TBH, the dataset seems too easy … ↩︎
My first paper ever. ↩︎