Similar anime recommendation feature
planned
Erik_The_Red
Merged in a post:
Recommendations feature
Iodine
Please add recommendations, that way we can find more anime similar to the ones we've already watched. And it helps users to find new and interesting, but not too mainstream anime. A lot of other anime websites use it, but I use this site because it looks way better than most of them.
Erik_The_Red
It's planned:
https://kitsu.io/feedback/feature-requests/p/recommendations
https://kitsu.io/feedback/feature-requests/p/similar-anime-recommendation-feature
fukuchi△♪
Recommendations should be able to cross media type. For example, giving similar recommendation of anime to respective manga.
Chen-Wan-Hui
OMG Yes! Don't know how we don't have this already!!
Matthew Dias
Merged in a post:
Add Based on your rating to Browsing sections
Aarow37
if you could add a based on you like "so and so anime" you might like "such and such anime" to your browse section.
Matthew Dias
planned
Sjo
i'd gladly help out with anime suggestions, this is a great idea
b
bariman34
This is right down the alley of my research. I'd be willing to help create a custom recommendation engine.
audiobahn53
bariman34: Yup, let me know if you guys need any help, I do machine learning and data science. Happy to lend a hand.
b
bariman34
audiobahn53: Machine learning would be a tad overkill for this particular use in my opinion. The cost to implement and run would have to be low, so it will be a lot more caching of information as-needed. The real fun seems like it would be in cache invalidation, which is one of the three biggest issues in computer science along with the others: off by one errors.
Humor out of the way, Kitsu's backend is in Ruby. What could be done would be to make use of Sidekiq for managing background tasks stored in a RabbitMQ or similar queue. When a user completes a show or adds to currently watching, we check a scan_block_until timestamp in the database. If it is after the timestamp, we update the timestamp to maybe 7 days in the future and add the task to process the user to the queue. The same would happen with shows when completed by a user. Doing this spreads the load and the block period can be adjusted as needed.
As to the actual processing of the data, I'd recommend roughly the following:
- Start with a show and get a list of everybody who has watched it and all of the shows they have watched and rated of some specified value or higher.
- For each show, count the number of views and weight it with the ratings. Bias of the weight for shows in the same franchise may be desirable here. Bias from genres can also be useful.
- Cache the connected anime IDs with its weighted score in a text column on the originating show's row. This can even be restricted to the top 50 scoring anime.
And then for each user:
- Select all of the shows in their completed and currently watching lists.
- From the cached data for each, aggregate them together while performing some operation to aggregate scores (have fun). A possible bias can even be added here for shows friends have watched.
- Take the top 50 scoring anime and cache that to the user.
When the user visits Kitsu then, they can be presented by a randomly selected anime of the 50 next to their currently watching or somewhere.
This keeps the processing power needed relatively low and thus keeps it within budget. Ideally the more that can be done within the database server, the better as the backend of Kitsu is Ruby. Off the top of my head I don't know if they are using PostgreSQL, MySQL/MariaDB, or another solution.
Edit: It should also be noted that this will require custom API endpoints outside of the JSON API spec. Otherwise the data storage costs go up faster than ideal.
Chen-Wan-Hui
bariman34: yo community strikes again :) nice man i'd appreciate it
b
bariman34
Chen-Wan-Hui: I actually just did a quick Google and noticed that Kitsu appears to be based REALLY close to me. And when I say close, I mean just 15 minutes away. I'm now tempted to try and meet with Josh and talk about how something like this can be implemented and a timeline of implementation.
Band
Actually, simular feature was on Hummingbird, so maybe it will be easier to port it here.
- ♕ -
Maybe have a section for 'user recommendations'. As in there will be computer auto-generated recommendations but also a section where users can recommend other users similar anime/manga.
Load More
→