This talk demonstrates FluRS, a library for efficient and flexible recommendation algorithms, based on the speaker’s past experience in academia and industry. Eventually, the speaker guides you to the world of an emerging trend, “streaming” recommender systems, in terms of both theory and practice.
FluRS is a Python library for streaming recommendation algorithms which enables you to efficiently and flexibly build a recommendation model from complex user-item data. By focusing around the library, this talk discusses each aspect of past, present and future as follows:
- Past: Challenges in classical recommendation engines (with their Python implementation),
- Present: How the speaker designed and implemented new kinds of recommendation algorithms as the Python library,
- Future: The feasibility of fast, real-time recommendation at scale with or without FluRS.
Note that, in order to learn the basic concept underlying the FluRS library, you can refer to the following article: FluRS: A Python Library for Online Item Recommendation. In short, implementation of FluRS takes advantage of the dependency injection technique, and developers do not need to worry much about recommender-specific code which commonly appears regardless of algorithm.
This talk is designed for people who have fundamental knowledge of machine learning (e.g., matrix computations), gradient descent, cross validation)) and Python coding with the NumPy & SciPy libraries; that is, audience does not have to be a professional machine learning researcher or Python developer. In particular, since the speaker explains the field of recommender systems from basics, people can enjoy without previous knowledge of recommendation techniques.
Eventually, the speaker expects audiences to become able to teach their friends the basic of recommender systems and implement recommendation algorithms by themselves.
Recommendations nowadays play an important role in real-world applications such as e-commerce and social networking services in order to improve customers' satisfaction, but the widely-developed systems pose a crucial challenge which cannot be properly handled by the classical techniques. More concretely, even though users' interests and item properties change dynamically over time on modern systems, there is a lack of effective ways and empirical studies to catch up with the dynamic data.
In that context, throughout his master's program and experience in the industry, the speaker fully realized how building real-world recommender systems is difficult over the past years. Thus, he ultimately invented two novel recommendation techniques to tackle the challenging scenario, and published corresponding research papers:
- Incremental Factorization Machines for Persistently Cold-starting Online Item Recommendation [Paper] [Slides] [GitHub]
- Sketching Dynamic User-Item Interactions for Online Item Recommendation [Paper] [Poster] [GitHub]
Notice that, as the GitHub links suggest, these inventions have been achieved along with the development of FluRS. So, one of the main topics of this talk is to dig deep into the experience.
For the reasons mentioned above, FluRS is a "package" of things what the speaker has experienced in both academia and industry, and hence he decided to give a talk on the library from a practical point of view.
Note: All contents are based on the speaker's own thought, and they do not reflect the view of any of his previous and current affiliations.
Author: Takuya Kitazawa
Takuya Kitazawa is a freelance software developer, minimalistic traveler, ultralight hiker & runner, and craft beer enthusiast. While my area of specialty is in data & AI ethics and machine learning productization, I have worked full-stack throughout the career e.g., as a frontend/backend engineer, OSS developer, technical evangelist, solution architect, data scientist, and product manager. You can find what I am doing lately at my "now" page, and your inquiry is always welcome at [email protected], including comments on my blog posts.
- Opinions are my own and do not represent the views of organizations I am/was belonging to.
- I am doing my best to ensure the accuracy and fair use of the information. However, there might be some errors or biased subjective statements because the main purpose of this blog is to jot down my personal thoughts as soon as possible before conducting an extensive investigation. Visitors understand the limitations and rely on any information at their own risk.
- That said, if there is any issue with the content, please contact me so I can take the necessary action.