Anime Hint improvement ? [OLD REQUEST]

AniDB Client Feature Requests go here

Moderators: AniDB, AniDB API

Locked
Gambit
AniDB Staff
Posts: 555
Joined: Sun Oct 06, 2002 11:21 am

Anime Hint improvement ? [OLD REQUEST]

Post by Gambit »

ATM the anime hint page tries to get a list of possible anime recommendations by first comparing all YOUR anime votes with the anime votes of all other anidb users.
This is used to create a weight (or score) for each user in relation to you.
The weight is a number calculated by adding 10 for each anime the other user voted exactly the same as you did. And adding 5 is the other user voted only one rating different (i.e. 8 instead of 9).
If the difference between votes is 3,4,5,6,7,8 or 9 a value of 2,4,6,8,10,12 or 15 is substracted from the weight for that user.

The resulting weights for the users are compared to the min. weight value from the input box. All users with a weight < min. weight are ignored from here on.

Now the votes of all remaining users for animes you haven't voted fore are checked. A score per anime is generated by adding the weight of the user*((vote-5)/5) per user vote.
I can understand the first step. Comparing your votes with all other people in other to get a weight is probably useful with this very lenient way of rating.
But I don`t get that difference-voting. If you voted a 7 for someone, and the other votes a 3, that`s a huge difference of 4. Still, they extract only 4 points from the weight.

I would rather see it being done like this - if possible. Of course it needs to be tested as well.

Old system of comparing:
Same score: +10
Score +1/-1: +5 (votes look like: 8 and 7)
Score +2/-2: 0 (votes look like: 7 and 5)
Score +3/-3: -2 (votes look like: 7 and 4)
Score +5/-5: -6 (votes look like: 8 and 3)

New system:
Same score: + 40 (votes look like: 7 and 7)
Score +1/-1: +5 (votes look like: 8 and 7)
Score +2/-2: -5 (votes look like: 6 and 4)
Score with a difference of 3 or more: -20 (votes look like: 7 and 4)

This ensures that it will search for people and give lots of points to the people who voted the same as you. The same score will give a tremendous amount of points, while a difference of 3 or more will lower the score in a very harsh way. After all, if someone`s vote doesn`t differ it`s good to add points. Especially a lot of points if that person doesn`t differ at all.

Votes which differ with just +1/-1 aren`t rare. A lot of people have just a slight different feeling about most anime. An increase of 5 points doesn`t feel bad here.
If someone differs +2/-2 - well, that can happen. This person is unlikely to share your opinion, so the same amount should be substracted - also 5 points.

On the other hand, if someone votes 3 times with a difference of 3 or more, then he`s very unlikely to be synced with you. Even people with the same taste will hardly ever vote an anime which differs more than 2 from your vote. Ratings which differ with more than 4 (10 with 6, 7 with 3, etc) are indications that that person doesn`t share your opinion at all, therefor it should decrease the score with a lot more points, imo.

If someone votes a lot of times exactly the same as you, that should be rewarded with a lot more points. Before you used 10 points for a perfect match, while you only decreased 4 points when someone`s vote was a difference of 4.

Personally I think this would be a more fair system, but it`s also possible that I`m completely mistaken. Hopefully I`ll get a bit of feedback on this ... or the testing should prove my right or wrong :)
Last edited by Gambit on Tue Jul 29, 2003 11:03 am, edited 1 time in total.
PetriW
AniDB Staff
Posts: 1522
Joined: Sat May 24, 2003 2:34 pm

Post by PetriW »

I think the numbers might be too large but it could be worth trying out. :D
theMug
Posts: 23
Joined: Wed Nov 20, 2002 12:08 am
Location: Germany

Post by theMug »

Good idea overall. But I think the +40 figure might be too heavy but a test should clear that up.

To get better sync results I would like to see differences in voting penalized more. A difference of 3 is already too large and should be taken into account a lot more. If I vote 9 and love it and the other votes 6, we don't match.

So I would like to increase the penalty starting with 3 more, like -30 for 3 and -40 for 4+. Maybe the results would be too few, a test should show that.

Or another crazy idea, make that configurable. Either directly in an advanced mode, or make a few different weight choices (normal = current, lenient = less penalties, close = like Gambit or I suggested). Dunno how it was programmed, but chances are that you would just need to change some hardcoded values into variables.
exp
Site Admin
Posts: 2438
Joined: Tue Oct 01, 2002 9:42 pm
Location: Nowhere

Post by exp »

well,

the old description on the forum does not list the current values @ anime hint.
these are the ones used atm (and which have been used almost since the anime hint got public IMHO)

vote distance -> points
0 -> +10
1 -> +1
2 -> -1
3 -> -2
4 -> -4
5 -> -6
6 -> -8
7 -> -10
8 -> -12
9 -> -15
distance 0 meaning equal votes and 9 meaning one guy voted 1 and the other 10.

I am pretty sure that those values could need some tweaking and it wouldn't be a big problem to make them configurable.
However what I am looking for are not simply the best values for this algorithm but new and additional ways of calculating hints.

So get your imagination going :o)

Some ideas to get you going:
- might there be any usefull way to take genres into account?
- is the amount of users who have a file in mylist any thing worth looking at?
- might the viewed state be of interest?
- what about reviews (amount, votes, who reviewed what)?
- should we take a closer look at animes which are sequel/prequel to an anime the user liked?
- are the users stats of interest?
- what about files which have notification enabled?
- how to handle new animes which are still airing and have almost no serious reviews/votes ?
- might group preference have anything to do with anime preference?
- what about a "mylist sync" ?
- ...

BYe!
EXP
Gambit
AniDB Staff
Posts: 555
Joined: Sun Oct 06, 2002 11:21 am

Post by Gambit »

exp wrote:Some ideas to get you going:
- might there be any usefull way to take genres into account?
- is the amount of users who have a file in mylist any thing worth looking at?
- might the viewed state be of interest?
- what about reviews (amount, votes, who reviewed what)?
- should we take a closer look at animes which are sequel/prequel to an anime the user liked?
- are the users stats of interest?
- what about files which have notification enabled?
- how to handle new animes which are still airing and have almost no serious reviews/votes ?
- might group preference have anything to do with anime preference?
- what about a "mylist sync" ?
- ...
About those numbers, I know how they work, that`s why I suggested newer ones. I believe my numbers should work a bit better already. At least look into that to see if I was right ...

Taking genres into account
No. Why? I believe, that some people add genres which aren`t useful.
Think of Chobits, Love Hina, Hanaukyo Maids, Ebichu .. and then Kiddy Grade. Those are all listed as 'Ecchi'. I believe most people will surely feel bad about Kiddy Grade if they expected something as Love Hina, since it`s obviously not ecchi. They are just badly dressed :P That`s why I rather don`t include genres. For that same reason sothis @ AP decided not to use them, and I have to agree with her on that one.

Amount of users
Good thing. Lots of people who have only 1 or 2 series in their list. I think the hint should get restricted to people who have (voted for) at least 10 or more titles. Perhaps even more ... like, 30 or 50, since Anime Hint works best if you`ve voted yourself for more than 50 anime. Right?

Viewed state
Another good idea! EXP must`ve hired someone to fill in for him :lol:
There is a bit of a problem here though. But let me explain.
I think a person should have watched the entire series/movie to be included (although a lot of people would disagree). This becomes a problem with the ongoing series. With those, I would say that half of all added eps should`ve been watched at least. But I will probably make myself hated for forcing this on the Hint ;)

Reviews
Don`t see how Reviews should be involved in this...

Sequel/Prequel
Could be taking into account ... people who liked the prequel as much as you did, how did they vote for the sequel. No use for people who didn`t like the prequel already ...

User stats
[22:57] <EXP[BUSY]> i.e. is the amount of files someone added any hint?
[22:57] <EXP[BUSY]> maybe if he's the one who added the files for your favorite anime?
Uh ... doesn`t make any sense? So no.

Notification
This is used for more reasons ... not that an user loves this series that much. I don`t think this should be taken into account.

New anime
Again, only people who have seen at least half of the show, and voted. You might want to restrict the hint for stuff with less than XX votes, but that`ll make that some shows always get ignored, even though they`re a bit older but nobody has noticed them yet. Or you have to set a restriction to ongoing series only for that idea.

Group preference
I don`t think so. People who like ANBU don`t have to like the new series they do (think: boobs 2, currently airing by ANBU).
On the other hand, animes done only by AJ might not be very fun, but I don`t think that is enough to make this interesting.
I say, don`t include this.

I think, people who have voted several anime the same (0 difference vote) as you did, should be taken into account a bit more.
exp
Site Admin
Posts: 2438
Joined: Tue Oct 01, 2002 9:42 pm
Location: Nowhere

Post by exp »

current anime hint values:

my %old = ( 0 => 10, 100 => 1, 200 => -1, 300 => -2, 400 => -4,
500 => -6, 600 => -8, 700 => -10, 800 => -12, 900 => -15,
"name" => "loose (old)", "id" => 0
);
my %gambit = ( 0 => 40, 100 => 5, 200 => -5, 300 => -20, 400 => -20,
500 => -20, 600 => -20, 700 => -20, 800 => -20, 900 => -20,
"name" => "strict", "id" => 1
);

it's pretty easy for me to add new entries, even easier if you keep the format above :P
the number in front of the => is the distance between votes * 100.
i.e. 7<->7 is 0, 6<->7 is 100, 1<->10 is 900

BYe!
EXP
Gambit
AniDB Staff
Posts: 555
Joined: Sun Oct 06, 2002 11:21 am

Post by Gambit »

Thought you tweaked it to
3 difference = -40 or -60
by now, which proves to be much more effective.
exp
Site Admin
Posts: 2438
Joined: Tue Oct 01, 2002 9:42 pm
Location: Nowhere

Post by exp »

yeah, current values are:

my %old = ( 0 => 10, 100 => 1, 200 => -1, 300 => -2, 400 => -4,
500 => -6, 600 => -8, 700 => -10, 800 => -12, 900 => -15,
"name" => "loose (old)", "id" => 0
);
my %gambit = ( 0 => 40, 100 => 5, 200 => -20, 300 => -40, 400 => -60,
500 => -60, 600 => -60, 700 => -60, 800 => -60, 900 => -60,
"name" => "strict", "id" => 1
);

BYe!
EXP
Gambit
AniDB Staff
Posts: 555
Joined: Sun Oct 06, 2002 11:21 am

Post by Gambit »

Found another annoying thing ...

I got synced with a user who doesn`t have his vote-list public :P So I got synced with someone, but I can`t see what he rated high enough for me to get interested in :P

Perhaps a nice idea to filter 'best sync' for users who don`t have their vote-list public, since this is useless to show.
wahaha
AniDB Staff
Posts: 1497
Joined: Sun Nov 17, 2002 3:33 pm

Post by wahaha »

Gambit wrote:Perhaps a nice idea to filter 'best sync' for users who don`t have their vote-list public, since this is useless to show.
The downside of the filtering is obviously that you could lose some important votes and lower the accuracy.

Maybe one could "downgrade" the function of "don't show my votes" to "don't show my nick along with my votes".
In other words, (if the other user wants to stay anonymous,) you wouldn't know any longer who you're in sync with, but you could still see the votes.
zaufany
Posts: 127
Joined: Sat Apr 05, 2003 9:50 pm
Location: Poland

Post by zaufany »

1 isn't a difference in a opinion. It is just casual. 2 isn't a big difference too. However 4 and more is a big distinction. I don't care it is only 4 or 9. A guy has complytly different opinion about good animes.
My sugestions:

my %zaufany = ( 0 => 2, 100 => 1, 200 => 0, 300 => -1, 400 => -2,
500 => -2, 600 => -2, 700 => -2, 800 => -2, 900 => -2,
"name" => "strict II", "id" => 2 );
wahaha wrote:Maybe one could "downgrade" the function of "don't show my votes" to "don't show my nick along with my votes".
In other words, (if the other user wants to stay anonymous,) you wouldn't know any longer who you're in sync with, but you could still see the votes.
I think it is a good idea. I'd like this feature too.
Gambit
AniDB Staff
Posts: 555
Joined: Sun Oct 06, 2002 11:21 am

Post by Gambit »

wahaha wrote:
Gambit wrote:Perhaps a nice idea to filter 'best sync' for users who don`t have their vote-list public, since this is useless to show.
The downside of the filtering is obviously that you could lose some important votes and lower the accuracy.
I didn`t say to filter his votes; I say that he shouldn`t get listed as 'best sync', but he should still be taken into account for his votes. It just doesn`t make sense to list him as best sync when he doesn`t allow you to view his votes. Better list the 2nd best then, who does show the list. That doesn`t mean that you should filter that #1 user entirely, you just doesn`t show his name.
Locked