Topic: Tag likeliness

Posted under e621 Tools and Applications

Ever since I joined this site I had a question.

Given a random post, would I like it?

I recently made a little program in vb. It takes a (fairly) random post and it is voted (up/neutral/down). Then the program puts that vote on each tag of that post.

After voting a bunch of posts you got a score for each tag.
Now I'm bit stuck and I'm not sure how to follow.

What I'm asking here is if anyone has though about this kind of problem. Or made a tool similar to mine. Or if anyone has a system better than mine to solve this problem.

Updated

Ciruelitas said:
Ever since I joined this site I had a question.

Given a random post, would I like it?

I recently made a little program in vb. It takes a (fairly) random post and it is voted (up/neutral/down). Then the program puts that vote on each tag of that post.

After voting a bunch of posts you got a score for each tag.
Now I'm bit stuck and I'm not sure how to follow.

What I'm asking here is if anyone has though about this kind of problem. Or made a tool similar to mine. Or if anyone has a system better than mine to solve this problem.

So what you're suggesting is a low level "suggested for you" sort of function where tags are ordered based on your response to a certain post. In theory it makes sense, but it seems like an incredibly simplified algorithm. It doesn't have a reasonable checking system to intelligently define "good" tags.

Lets say you want to search for a lot of mlp related stuff, but none of the things you are veiwing are in an art style that you appreciate. So you down-vote them, and now every mlp-related tag is getting downvoted too. So now you have a system that effects every tag negatively if even one unwanted tag is involved.

On the other hand lets say you just decide to chose neutral instead of downvoting. Then nothing is being accomplished because you will still have to see more of the same art type.

In all essence the idea is fairly simple but implementing it is deceptively complicated. Also, the tag culture on this site, as well as the blacklist feature, make this an unneccessary feature. On a site like FA, however, i could see it being more useful.

Updated by anonymous

leomole

Former Staff

This is a great idea! I think e6 would benefit greatly from a recommendation system. One improvement that could be made is leveraging other users' favorites lists. For instance, compile a list of users who favorited the same posts you did. Among those overrepresented in that list, look at their favorites and see if any agree. Then present those posts as suggestions. It's simple and computationally light, at least from what I understand.

Updated by anonymous

This feature is far too complicated and unlikely to see much use. People just search tags when they want to see art of their favorite tags.

Updated by anonymous

FibS said:
This feature is far too complicated and unlikely to see much use. People just search tags when they want to see art of their favorite tags.

Or I look at the order:random favourites of other users and see if I like them. I only actually checked Queen_Sectonia tough, because I would see her comments on the same stuff I was commenting on.

Updated by anonymous

I'm working on something like this. It's not done yet, but here's the current version: https://mega.nz/#!KhZHTaJS!nPR7IVl8wtzb2BJS8iJbu7ozjgYSXDKbxwCbXjZHP5o

It works similar to your system. It gives you a list of posts and lets you vote on each one. If you upvote a post, it increases the upvote count for each of its tags. For each tag, it uses the upvote and downvote counts to determine a score for the tag, and it computes the score for a post by averaging the scores of its tags. When you do a search, it sorts the results by that score. It also tries to guess at tags that you might like, by adding extra tags to searches.

Right now it crashes a lot, and it's kind of slow. But it seems to work pretty well once you've voted on a few hundred posts.

Updated by anonymous

well, a "recommendations" systemcould work but i've seen a flaw with such an idea before on other sites. you run the risk of the system starting to, and continuing to from then on, recommend the same content you've already seen before and eventually only very rarely would anything new be shown.

if i may use kongregate's "recommended" system as an example of this problematic result: they're system shows recommendations you might like based on what games you've rated highly (they still use the old 1-5 star rating system despite numerous attempts at changing it to much better suggested systems. people always go and gun down any attempts at improvements on the rating system there.) or that you've added to your favorites. now, the problem with this is far FAR more often than not it'll only suggest other games you've already played as a result and only rarely will the system direct you to anything you haven't tried before.

so you might want to take such a result into account while making this kind of system otherwise it could have a similar end result as kong's system where instead of recommending things you've yet to see, it'd just keep re-recommending the same content you've already seen over and over and over (which would make such a system pretty useless imo).

maybe add an invisible view count (or visible...maybe make it toggle able?) and have that work as a secondary filter so the more times you've viewed a certain post, the less often said post would get recommended. perhaps this might aid in maintaining a steady stream of fresh/new recommendations?

another idea might be to include a filter that would use the current rating system for posts. you could set it so it would only recommend posts above or below a certain rating number. or perhaps set a range like posts with a rating high as 5 to posts as low as -5. (or in one case of -660+ lol)

Updated by anonymous

truthbetold said:
So what you're suggesting is a low level "suggested for you" sort of function where tags are ordered based on your response to a certain post. In theory it makes sense, but it seems like an incredibly simplified algorithm. It doesn't have a reasonable checking system to intelligently define "good" tags.

Yes, I know it overly simplified. I was thinking of it more than a mathematical problem rather than something useful. But I still tried some stuff

Lets say you want to search for a lot of mlp related stuff, but none of the things you are veiwing are in an art style that you appreciate. So you down-vote them, and now every mlp-related tag is getting downvoted too. So now you have a system that effects every tag negatively if even one unwanted tag is involved.

On the other hand lets say you just decide to chose neutral instead of downvoting. Then nothing is being accomplished because you will still have to see more of the same art type.

I don't see it as dragging it down. If you are looking for mlp tags, if you generally like it, doesn't mean you like everything tagged as mlp. In this case the artwork would make you not to like it and any other tag involved will be voted down (you don't like them, even if it's just because of the artwork).

Let's say you search for rainbows and find the same post. You will still not like it.

Positive votes add a point. Negative substract one. Neutral adds cero, but they still count for the total of votes. The effect is that they move the tags towards zero.

I have tested this system with a little blacklist and it worked pretty good. I think it doesn't work that good without it but I haven't tried yet.

In all essence the idea is fairly simple but implementing it is deceptively complicated. Also, the tag culture on this site, as well as the blacklist feature, make this an unneccessary feature. On a site like FA, however, i could see it being more useful.

I know :D I didn't think of this as a feature, I'm just curious to see if this could work.

leomole said:
This is a great idea! I think e6 would benefit greatly from a recommendation system. One improvement that could be made is leveraging other users' favorites lists. For instance, compile a list of users who favorited the same posts you did. Among those overrepresented in that list, look at their favorites and see if any agree. Then present those posts as suggestions. It's simple and computationally light, at least from what I understand.

I have though about this. Looking at your favorites list would give positive feedback about tags you like but nothing about tags you don't like. I fear that if I give positive votes to the tags in your fav posts the more common tags will shadow the other tags.

feralfeline said:
I'm working on something like this. It's not done yet, but here's the current version: https://mega.nz/#!KhZHTaJS!nPR7IVl8wtzb2BJS8iJbu7ozjgYSXDKbxwCbXjZHP5o

It works similar to your system. It gives you a list of posts and lets you vote on each one. If you upvote a post, it increases the upvote count for each of its tags. For each tag, it uses the upvote and downvote counts to determine a score for the tag, and it computes the score for a post by averaging the scores of its tags. When you do a search, it sorts the results by that score. It also tries to guess at tags that you might like, by adding extra tags to searches.

Right now it crashes a lot, and it's kind of slow. But it seems to work pretty well once you've voted on a few hundred posts.

I have tried it and it wasn't slow for me. How do you select the tags to add to the searches?

treos said:
so you might want to take such a result into account while making this kind of system otherwise it could have a similar end result as kong's system where instead of recommending things you've yet to see, it'd just keep re-recommending the same content you've already seen over and over and over (which would make such a system pretty useless imo).

another idea might be to include a filter that would use the current rating system for posts. you could set it so it would only recommend posts above or below a certain rating number. or perhaps set a range like posts with a rating high as 5 to posts as low as -5. (or in one case of -660+ lol)

This wasn't aimed at a reccomendation system but may end up being it. If that is the case, the easier way to avoid that situatios would be to just order posts. Order new posts by recommendation points so you find earlier what you (may) like.

Updated by anonymous

Well, I've done a program using the Naive Spam filter and it is actualy working pretty nicely.

I had to tweak it a bit because rare tangs could change a picture likeliness a lot.

After a few weeks of testing I can say this system tend to separate the pictures you give in 2 batches The ones you may like and the one you probably won't like.

Sure, you won't like ALL the pictures the program think you may like, but when you see that pictures you can think why the program thought you could like it.

With this method, I don't think it can be used for a reccomendation system but that wasn't the main point of this so I'm still happy.

Thanks for the ideas to everyone :)

Updated by anonymous

  • 1