I updated this so now it returns up to 5,000 results per image rather than 150 (with pagination). Results might get less consistent as you get to higher page numbers though.
I changed the weights the algorithm uses to result in slightly better matches (as subjectively eyeballed by me)
I lowered the limit for images where the link shows up to a score of 10 (down from 25). Since that's also the lowest possible score that shows up in the results, you can now go "infinite" by clicking through to any result, and then clicking "Similar images" under that pic.
If you run this on an image you favorited, it no longer uses your favorites in computing the result. This was problematic when running on an image with a low score (say, 10), that you also favorited, since too many of the results would be repeats of your favorites and thus boring. This also means different people can see slightly different results for a particular picture, if at least one of them has favorited it.
Do you have any tips for frameworks / libraries / general approaches to get started with something like this? I do have more than 0 knowledge of ML but I am not very experienced in it.
Any application of ML to GWM seems to me like it would involve heavy image processing (and probably not apply to videos).
Agree that videos would be more tricky, but for single images once trained, using a deep model is not very expensive. I would estimate that a regular GeForce 1060-70 would be able to parse at least 60 images per sec. Training the model is expensive, but it can be done offline once in a while
As for libraries, i would go with pytorch which is very intuitive.
This link is a good starting point: transfer_learning_tutorial. html (search it on pytorch website, i can't post links)
The given example is for single label classification, but it is easy to adapt it to multiple labels (the tags). If we find a platform to collaborate on, i'd be willing to help with code.
It doesn't always actually pick "similar images", but that's expected as it has no notion of content.
I think some deep learning could do a lot here, I have many years of experience and would be happy to help.
To give an idea, it would be possible to train a model on a relevant task (e.g. correctly assigning tags) and then use it to extract features from the images. Once you have the image features it would be trivial to simply pick the nearest neighbors in feature space. If the model was trained properly the nearest images should be semantically and visually similar (depending on what task was used to train the model).
Do you have any tips for frameworks / libraries / general approaches to get started with something like this? I do have more than 0 knowledge of ML but I am not very experienced in it.
Any application of ML to GWM seems to me like it would involve heavy image processing (and probably not apply to videos).
At first I was also expecting visually similar images. Maybe "Users also liked/favorited" would be more self explanatory, but I don't mind the current text.
To give an idea, it would be possible to train a model on a relevant task (e.g. correctly assigning tags) and then use it to extract features from the images. Once you have the image features it would be trivial to simply pick the nearest neighbors in feature space. If the model was trained properly the nearest images should be semantically and visually similar (depending on what task was used to train the model).
I was also thinking about playing with something like this to suggest tags when I upload something.
It doesn't always actually pick "similar images", but that's expected as it has no notion of content.
I think some deep learning could do a lot here, I have many years of experience and would be happy to help.
To give an idea, it would be possible to train a model on a relevant task (e.g. correctly assigning tags) and then use it to extract features from the images. Once you have the image features it would be trivial to simply pick the nearest neighbors in feature space. If the model was trained properly the nearest images should be semantically and visually similar (depending on what task was used to train the model).
This is great. Each subject picture matched a lot of others with similar muscle tone. I searched a group pic and it came up with some other group pics. Abs pics focus on abs, biceps on biceps, etc. Awesome feature!
Out of curiosity, does GWM use a NoSQL / Graph database or are you able to do this with a classical relational database? Do you cache the pairings or is it always recomputed?
Relational DB (Postgres). The pairings are cached for 10 mins after they are loaded by someone. I didn't think longer caching would really make a difference; I don't want to cache results for newer pics because they might change, and as for older pics, there are too many for caching to make a meaningful difference.
Seems a bit slow though?
Yes, it does take 5-10 seconds to generate results for a single image.
Love it Chainer! Does this also return images with similar tags? It says "users who liked X Also liked Y" but some of the images don't seem to use the same tags as the source image
This is a very creative way of combining human pattern recognition and dopamine response with statistical overlaps in order to return image results that users will find appealing.
Who needs machine learning when you can just hijack users' own content preference behaviours to generate ultra-specific recommendations?
This appears to be very effective, great work everyone involved!
Man, quite some skilled programmers working on this site. Awesome, seems to work pretty nicely. Out of curiosity, does GWM use a NoSQL / Graph database or are you able to do this with a classical relational database? Do you cache the pairings or is it always recomputed?
Congrats!
Welcome and congrats!
I updated this so now it returns up to 5,000 results per image rather than 150 (with pagination). Results might get less consistent as you get to higher page numbers though.
I have been using this a lot and I love it! Great idea! :)
I updated this a bit:
Agree that videos would be more tricky, but for single images once trained, using a deep model is not very expensive. I would estimate that a regular GeForce 1060-70 would be able to parse at least 60 images per sec. Training the model is expensive, but it can be done offline once in a while
As for libraries, i would go with pytorch which is very intuitive. This link is a good starting point: transfer_learning_tutorial. html (search it on pytorch website, i can't post links)
The given example is for single label classification, but it is easy to adapt it to multiple labels (the tags). If we find a platform to collaborate on, i'd be willing to help with code.
Do you have any tips for frameworks / libraries / general approaches to get started with something like this? I do have more than 0 knowledge of ML but I am not very experienced in it.
Any application of ML to GWM seems to me like it would involve heavy image processing (and probably not apply to videos).
At first I was also expecting visually similar images. Maybe "Users also liked/favorited" would be more self explanatory, but I don't mind the current text.
I was also thinking about playing with something like this to suggest tags when I upload something.
Hi, great feature!
It doesn't always actually pick "similar images", but that's expected as it has no notion of content. I think some deep learning could do a lot here, I have many years of experience and would be happy to help.
To give an idea, it would be possible to train a model on a relevant task (e.g. correctly assigning tags) and then use it to extract features from the images. Once you have the image features it would be trivial to simply pick the nearest neighbors in feature space. If the model was trained properly the nearest images should be semantically and visually similar (depending on what task was used to train the model).
No, I just messed around with various aspects of it until it was working well.
Did you base you approach on an existing algorithm somewhere?
This is great. Each subject picture matched a lot of others with similar muscle tone. I searched a group pic and it came up with some other group pics. Abs pics focus on abs, biceps on biceps, etc. Awesome feature!
Algorithm works great, knocked the ball out of the park, great stuff 👌
this is a feature i was hoping this site would implement!
another very pleasantly surprised visitor here :)
I like this feature alot it made me find amazing pics in a short time.
Glad this is catching on!
Relational DB (Postgres). The pairings are cached for 10 mins after they are loaded by someone. I didn't think longer caching would really make a difference; I don't want to cache results for newer pics because they might change, and as for older pics, there are too many for caching to make a meaningful difference.
Yes, it does take 5-10 seconds to generate results for a single image.
It does not take tags into account at all.
Good Idea
This new feature is amazing! Works very well. It’s the feature nobody knew they wanted but now can’t live without lol well done!!!
That feature is awesome, thank you!
Love it Chainer! Does this also return images with similar tags? It says "users who liked X Also liked Y" but some of the images don't seem to use the same tags as the source image
I like this a lot, and it does seem to work. Seems a bit slow though?
Thoroughly approved.
This is a very creative way of combining human pattern recognition and dopamine response with statistical overlaps in order to return image results that users will find appealing.
Who needs machine learning when you can just hijack users' own content preference behaviours to generate ultra-specific recommendations?
This appears to be very effective, great work everyone involved!
Man, quite some skilled programmers working on this site. Awesome, seems to work pretty nicely. Out of curiosity, does GWM use a NoSQL / Graph database or are you able to do this with a classical relational database? Do you cache the pairings or is it always recomputed?