shivam-kapila: so right now it is like the more you listen to a song, the more you like it (playcounts). It may happen that a user listens to a song 20 times, and hate it when they hear it the 20th time. In that case playcounts doesn't have a role to play. So I am not sure if we need both playcounts and rating, I think rating should be enough.
Umm.... But now when I think of it, playcounts can be used to sort the listens loved by a user.
So like these 20 songs all have *love* rating, and song x is has the highest playcount, so the user must like this song. Ratings definitely will refine the recommendations.
bitmap: https://tickets.metabrainz.org/browse/MBS-10718 - although I'd argue the fix for that one is to actually disallow duplicate part-of-series entries, which I'm not sure why we allow at all rn
BrainzBot
MBS-10718: Duplicate series "part of" relationships which got grouped are harder to detect
shivam-kapila
pristine__: IMO both should be considered together
Not all users will be rating their songd
songs*
Or we can say select all songs with rating >=0 and then sort by listen count
So that even if the user hasnt rated thier songs then listen count comes into consideration
I think expressing it in tabular form in the proposal can be a good idea
pristine__
> Or we can say select all songs with rating >=0 and then sort by listen count
That is select all the songs, isn't it?
shivam-kapila
Nope
Hate will be given -5 rating
But we need to implement a join
Ratings need a separate schema. It cant be stored with listens
pristine__
Oh. So hate = -5 and love = 5 always?
shivam-kapila
I guess 'NOT IN' will work perfect
pristine__: Anything +ve and -ve will work.
This can work. We will select out all the songs with negative rating or say hate. Then we exclude these records with hate rating from the listens.
pristine__
Umm.... You can also have a schema <recording_mbid, user_name, rating>
shivam-kapila
Exactly the same I am thinking of
pristine__
And join on recording_mbid and user_name where rating >= 0
And then group to get the playcounts
shivam-kapila
Yeah same same till now
pristine__
I am not sure what you mean by exclude these recordings
shivam-kapila
But =0 case doesnt exist in schema
CatQuest
hi indians <3
I'm eating noodles with indian spices :D
(also chana left.overs in it)
shivam-kapila
pristine__: Is it worth storing this? The by default rating is =0 and I intend not to store it. Store only the love/hate ones
CatQuest: Hey :D. Food is <3
CatQuest
i thoguht those on reviews where "this is useful" this isn't useful"
maybe you can have both. that way "usefull/unuseful doesn't become a de-facto "i agee/idisagree / hate/love
pristine__
So what about the recordings that have not been rated. I think you should first think about all the possible cases and solutions.
And then think about the schema?
CatQuest: heya
CatQuest
i honestly.. i thought chana (kikerter in .no) were impossible. i tried some an age ago and they where dry and unedible. even if i did get fro ma can and boiled them.. idk maybe i did soemthing wrong. but i got a n (italiasn f all things) "legume soup" mix and folloswed isnturctions. tha had chana in it and it was delicious. so i started ot experiemnt with it. i'm definitly eting more!
shivam-kapila
pristine__: I thought about it. Most of the recordings will be unrated right?
pristine__
Yes
CatQuest
also.. some are going to be hella over rated (I'm looking at you sb19))
shivam-kapila
So storing for the unrated ones is uselessly eating memory
pristine__
I mean it is good to assume that as of now to be on safer sode
Side*
Yup.
Only store the rated ones
CatQuest
I mean. rating of recordings is only oing to increase right? especially if it is implemented in listenbrainz and stuff
it was that idea to store both critiques and ratings in critiquebrainz ,and thne fetch those to mb. same coudl be done on lb
shivam-kapila
Then we can do is that we exclude the ones with negative rating form the results and pull out all others. Something like the minus operator we study in DBMS
CatQuest
with the ability to ate things *on* lb, and those ratings being propogated bakc to cb
rate*
or idk. inline ratings
you'd require a MeB account to rate thoguh
shivam-kapila
Select all records from listen schema - Records which have negative rating for the user in rating schema
pristine__
shivam-kapila: right but I think that negative ratings are as important as positive ones
Let's say
You get a list of recommendations for a user, with negative ratings you can remove all the recordings from the recommendations which the user does not like.
shivam-kapila
CatQuest: Actually these ratings as based on per user taste and not on cumulative basis as of now. N for CB. I was also thinking to integrate CB with LB. Currently I see that we can only rate artists and not recordings in CB. Your idea seems a nice one to rate in CBitself
pristine__
I am not very clear on this but I think it is good to store preferences ok both the sides. It's good to know what users like and what they don't.
shivam-kapila
pristine__: So you mean to generate all recommendations and then separate out what a user might like and which not
pristine__
In this case whole - negative != positive since there will be unrated recordings
No. I am giving one use case. I was trying to explain why both negative and positive should be stored.
CatQuest
pristine__: I liek that. one of the most annoying things on last-fm was the thing wher eit suggested artists i didn't care about al lthe time
pristine__
CatQuest: yup
shivam-kapila: let's unfold it step by step
shivam-kapila
Seems like a good option CatQuest
pristine__
1. We have listens of all the users in one schema
And ratings of all the users in another.
What do you intend to do next?
shivam-kapila
A join of these two schemas based on username and mbid of recording
CatQuest
inline ratings from cb and metadata from mb!
heh..
honestly things like collectinons and maybe even tags could be moved to critique brainz
pristine__
shivam-kapila: right. After the join you will have ratings (negative and positive) corresponding to recordings and users. Most of the fields will be null for rating
CatQuest
as in served by CB but still showing up on mb and lb like they are inline
pristine__
no?
shivam-kapila
pristine__: Yes but its definitely useful
pristine__
Nice
Then?
CatQuest
especially if you'd allow rating *on* lb
that field will not be null long
pristine__
The schema after join would look like (recording mbid, user name, rating, listened at, artist mbid, release mbid.... so on)
CatQuest
sorry for butting onto your conversation pristine and shivam, I'm going shower now. !m you guys
pristine__
CatQuest: yo yo. And be safe :)
shivam-kapila
The ALS algo will predict the null rating ones to find what kind of score the user can give based on reactions of similar users
CatQuest
pristine__: the shower is a scary place! there is soap😆
shivam-kapila
CatQuest: I am noting down your suggestions because the thing about keeping ratings in CB seems good to me
I found better points in your suggestions
CatQuest
shivam-kapila: it was actually a pretty old idea.. i forget who was working on that. possibly even iliekcomputers?
oh?
shivam-kapila
Ohh. I need to discuss it further then.
CatQuest
it's been on hold for a while thoguh. i forget
asking ruaok would be gold .. (if he remembers 😆)
iliekcomputers
what are we talking about?
CatQuest
oh no, a wild iliekcomputers apears
shivam-kapila
pristine__: Did you get what I was saying
pristine__
I haven't read it. Lemme read :)
shivam-kapila
iliekcomputers: Heya. You make me remember the old saying "Bohot lambi umr hogi aapki"
pristine__
I was dancing between knitting and IRC this time :p
iliekcomputers
i got a notification, so it isn't entirely coincidental
shivam-kapila
pristine__: Seems like you love dancing :p
pristine__
Definitely
shivam-kapila
iliekcomputers: Lol. So the idea was to store the new ratings aka love/hate in CB
And integrate CB with LB
iliekcomputers
we already store ratings in CB
it was a gsoc project in 2017
but
pristine__
> The ALS algo will predict the null rating ones to find what kind of score the user can give based on reactions of similar users