{"repo":"Ameobea/sprout","free":true,"listed":false,"github":"https://github.com/Ameobea/sprout","clone":"git clone https://github.com/Ameobea/sprout.git","description":"AI-powered anime recommendation website for MyAnimeList + AniList with other tools, visualizations, and profile analytics","language":"Jupyter Notebook","stars":100,"topics":["anilist","anilist-api","myanimelist","myanimelist-api","recommender-system","sveltekit","tensorflowjs"],"license":null,"category":"analytics","readme_excerpt":"Sprout Sprout is an anime recommendation website that uses a neural network to suggest animes to watch based on watch history and past ratings. It can pull public profiles directly from MyAnimeList or AniList, and it also has an interactive recommender where you can provide your ratings directly on the site. In addition to recommendations, it also has some profile analytics and an interactive visualzation of the whole world of anime, Anime Atlas: Tech The site is written in TypeScript and built with SvelteKit using the Node.JS adapter. Recommendation Model The recommendation model was trained completely in the browser using Tensorflow.JS. It is a rather large model of 100M parameters but uses a very simple architecture. It was trained to learn associations between anime as well as other patterns in user profiles and anime preferences using data collected from a very large number of MyAnimeList profiles. The design is similar to a denoising autoencoder. User profiles were provided as input with some percentage of ratings held out, and the model was trained to predict the full profile. The model is served using Tensorflow.JS as well and runs on the CPU. To determine which ratings in a users' profile contribute most to individual recommendations, the model is re-run many times while holding out each rating to see which causes the recommendation's score to go down the most. I've written a bit more about the model's design, architecture, and training process in this Reddit comment","default_branch":null,"files":null,"tree":[],"storefront":"/r/Ameobea","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/Ameobea/sprout/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}