Data Pre-process Build Evaluate Post-process How to build recommender Intro to recommender algorithms Why Julia • Vector/matrix-friendly syntax • High simplicity and modularity • E ff i cient numerical computing • Recommender is not only about ML • Ecosystem for math tools matters
of “good” recommender? Coverag e AggregatedDiversit y GiniInde x IntraListSimilarit y Novelt y Serendipit y ShannonEntropy AU C MA E MA P MP R NDC G Precisio n RMS E Recal l ReciprocalRank split_dat a cross_validatio n measur e evaluate
Data modeling and linear algebra Characteristics MyMediaLite C# Built-in arithmetic operators with fi le IOs Simplicity and transparency of basic recommendation techniques LibRec Java Custom interfaces (e.g., dense/sparse matrices) & built-in data structures Wide range of algorithms implemented from scratch LensKit / LightFM Python NumPy/SciPy & Cython Rapid development and wider use cases in the Python community Recommendation.jl Julia Built-in vector/matrix representations Take full advantage of built-in o ff ering for simplicity and e ff i ciency Data model Algorithm Interface Metrics Utils