Hi, OP here. I started working on recommender systems in 2016 during my undergrad, specifically doing music recommendation (I was dissatisfied with the quality of Pandora/Spotify recommendations). I spent about five months in 2019 trying to make a music startup based on that. However, during that time I realized that there would probably be more value in having a really good general-purpose/cross-domain recommender system. i.e. if you're looking for something specific, use Google, and if you're not looking for something specific, use Findka. That's the vision anyway.[1][2]
More specifically, the benefits I see from cross-domain recommendation are:
- More data per user => better recommendations.
- More potential users => (eventually) better recommendations. For example, to get users for a podcast recommender, you have to find people who like podcasts above a certain threshold. With Findka, anyone who's interested in getting recommendations for at least one content type is a potential user. (And even people who aren't above that threshold for podcasts might appreciate an occasional podcast recommendation).
- Lots of potential applications. I'm particularly interested with trying to use Findka for social networking (opt-in of course). Data from Findka could be useful for dating, job opportunities, forming online communities, etc. This is more long-term, but I also think Findka data could be useful for search.[3]
The algorithm currently is dead simple. Just collaborative filtering without explicitly taking into account content type. So it's naively cross-domain. Since the data set is still small, there's no need for matrix factorization. I recompute the whole matrix every hour and store it in memory. See [4] for the implementation (it only took 30 LOC). That's a little out-of-date but the general approach hasn't changed.
For the tech stack, I'm using a Clojure web framework + deployment solution that I made.[5] It's like a self-hosted version of Firebase (I'm running it on DigitalOcean).
[1] https://www.ben-evans.com/benedictevans/2015/6/24/search-dis....
[2] https://www.aaai.org/ojs/index.php/aimagazine/article/view/2....
[3] https://news.ycombinator.com/item?id=23449754