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.
2020-03-23 08349, 2020
pristine__
Umm.... But now when I think of it, playcounts can be used to sort the listens loved by a user.
2020-03-23 08345, 2020
pristine__
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
2020-03-23 08326, 2020
BrainzBot
MBS-10718: Duplicate series "part of" relationships which got grouped are harder to detect
2020-03-23 08302, 2020
shivam-kapila
pristine__: IMO both should be considered together
2020-03-23 08323, 2020
shivam-kapila
Not all users will be rating their songd
2020-03-23 08327, 2020
shivam-kapila
songs*
2020-03-23 08354, 2020
shivam-kapila
Or we can say select all songs with rating >=0 and then sort by listen count
2020-03-23 08330, 2020
shivam-kapila
So that even if the user hasnt rated thier songs then listen count comes into consideration
2020-03-23 08317, 2020
shivam-kapila
I think expressing it in tabular form in the proposal can be a good idea
2020-03-23 08312, 2020
pristine__
> Or we can say select all songs with rating >=0 and then sort by listen count
2020-03-23 08322, 2020
pristine__
That is select all the songs, isn't it?
2020-03-23 08338, 2020
shivam-kapila
Nope
2020-03-23 08349, 2020
shivam-kapila
Hate will be given -5 rating
2020-03-23 08316, 2020
shivam-kapila
But we need to implement a join
2020-03-23 08308, 2020
shivam-kapila
Ratings need a separate schema. It cant be stored with listens
2020-03-23 08331, 2020
pristine__
Oh. So hate = -5 and love = 5 always?
2020-03-23 08342, 2020
shivam-kapila
I guess 'NOT IN' will work perfect
2020-03-23 08358, 2020
shivam-kapila
pristine__: Anything +ve and -ve will work.
2020-03-23 08346, 2020
shivam-kapila
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.
2020-03-23 08343, 2020
pristine__
Umm.... You can also have a schema <recording_mbid, user_name, rating>
2020-03-23 08300, 2020
shivam-kapila
Exactly the same I am thinking of
2020-03-23 08315, 2020
pristine__
And join on recording_mbid and user_name where rating >= 0
2020-03-23 08325, 2020
pristine__
And then group to get the playcounts
2020-03-23 08341, 2020
shivam-kapila
Yeah same same till now
2020-03-23 08307, 2020
pristine__
I am not sure what you mean by exclude these recordings
2020-03-23 08328, 2020
shivam-kapila
But =0 case doesnt exist in schema
2020-03-23 08313, 2020
CatQuest
hi indians <3
2020-03-23 08324, 2020
CatQuest
I'm eating noodles with indian spices :D
2020-03-23 08331, 2020
CatQuest
(also chana left.overs in it)
2020-03-23 08349, 2020
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
2020-03-23 08311, 2020
shivam-kapila
CatQuest: Hey :D. Food is <3
2020-03-23 08320, 2020
CatQuest
i thoguht those on reviews where "this is useful" this isn't useful"
2020-03-23 08356, 2020
CatQuest
maybe you can have both. that way "usefull/unuseful doesn't become a de-facto "i agee/idisagree / hate/love
2020-03-23 08344, 2020
pristine__
So what about the recordings that have not been rated. I think you should first think about all the possible cases and solutions.
2020-03-23 08356, 2020
pristine__
And then think about the schema?
2020-03-23 08314, 2020
pristine__
CatQuest: heya
2020-03-23 08332, 2020
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!
2020-03-23 08318, 2020
shivam-kapila
pristine__: I thought about it. Most of the recordings will be unrated right?
2020-03-23 08337, 2020
pristine__
Yes
2020-03-23 08352, 2020
CatQuest
also.. some are going to be hella over rated (I'm looking at you sb19))
2020-03-23 08352, 2020
shivam-kapila
So storing for the unrated ones is uselessly eating memory
2020-03-23 08309, 2020
pristine__
I mean it is good to assume that as of now to be on safer sode
2020-03-23 08312, 2020
pristine__
Side*
2020-03-23 08318, 2020
pristine__
Yup.
2020-03-23 08328, 2020
pristine__
Only store the rated ones
2020-03-23 08337, 2020
CatQuest
I mean. rating of recordings is only oing to increase right? especially if it is implemented in listenbrainz and stuff
2020-03-23 08310, 2020
CatQuest
it was that idea to store both critiques and ratings in critiquebrainz ,and thne fetch those to mb. same coudl be done on lb
2020-03-23 08316, 2020
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
2020-03-23 08326, 2020
CatQuest
with the ability to ate things *on* lb, and those ratings being propogated bakc to cb
2020-03-23 08336, 2020
CatQuest
rate*
2020-03-23 08352, 2020
CatQuest
or idk. inline ratings
2020-03-23 08316, 2020
CatQuest
you'd require a MeB account to rate thoguh
2020-03-23 08336, 2020
shivam-kapila
Select all records from listen schema - Records which have negative rating for the user in rating schema
2020-03-23 08316, 2020
pristine__
shivam-kapila: right but I think that negative ratings are as important as positive ones
2020-03-23 08318, 2020
pristine__
Let's say
2020-03-23 08323, 2020
pristine__
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.
2020-03-23 08314, 2020
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
2020-03-23 08346, 2020
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.
2020-03-23 08331, 2020
shivam-kapila
pristine__: So you mean to generate all recommendations and then separate out what a user might like and which not
2020-03-23 08332, 2020
pristine__
In this case whole - negative != positive since there will be unrated recordings
2020-03-23 08334, 2020
pristine__
No. I am giving one use case. I was trying to explain why both negative and positive should be stored.
2020-03-23 08334, 2020
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
2020-03-23 08356, 2020
pristine__
CatQuest: yup
2020-03-23 08309, 2020
pristine__
shivam-kapila: let's unfold it step by step
2020-03-23 08320, 2020
shivam-kapila
Seems like a good option CatQuest
2020-03-23 08328, 2020
pristine__
1. We have listens of all the users in one schema
2020-03-23 08338, 2020
pristine__
And ratings of all the users in another.
2020-03-23 08348, 2020
pristine__
What do you intend to do next?
2020-03-23 08329, 2020
shivam-kapila
A join of these two schemas based on username and mbid of recording
2020-03-23 08345, 2020
CatQuest
inline ratings from cb and metadata from mb!
2020-03-23 08345, 2020
CatQuest
heh..
2020-03-23 08331, 2020
CatQuest
honestly things like collectinons and maybe even tags could be moved to critique brainz
2020-03-23 08357, 2020
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
2020-03-23 08357, 2020
CatQuest
as in served by CB but still showing up on mb and lb like they are inline
2020-03-23 08305, 2020
pristine__
no?
2020-03-23 08325, 2020
shivam-kapila
pristine__: Yes but its definitely useful
2020-03-23 08337, 2020
pristine__
Nice
2020-03-23 08341, 2020
pristine__
Then?
2020-03-23 08341, 2020
CatQuest
especially if you'd allow rating *on* lb
2020-03-23 08351, 2020
CatQuest
that field will not be null long
2020-03-23 08316, 2020
pristine__
The schema after join would look like (recording mbid, user name, rating, listened at, artist mbid, release mbid.... so on)
2020-03-23 08328, 2020
CatQuest
sorry for butting onto your conversation pristine and shivam, I'm going shower now. !m you guys
2020-03-23 08353, 2020
pristine__
CatQuest: yo yo. And be safe :)
2020-03-23 08357, 2020
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
2020-03-23 08348, 2020
CatQuest
pristine__: the shower is a scary place! there is soap😆
2020-03-23 08313, 2020
shivam-kapila
CatQuest: I am noting down your suggestions because the thing about keeping ratings in CB seems good to me
2020-03-23 08336, 2020
shivam-kapila
I found better points in your suggestions
2020-03-23 08345, 2020
CatQuest
shivam-kapila: it was actually a pretty old idea.. i forget who was working on that. possibly even iliekcomputers?
2020-03-23 08300, 2020
CatQuest
oh?
2020-03-23 08315, 2020
shivam-kapila
Ohh. I need to discuss it further then.
2020-03-23 08331, 2020
CatQuest
it's been on hold for a while thoguh. i forget
2020-03-23 08352, 2020
CatQuest
asking ruaok would be gold .. (if he remembers 😆)
2020-03-23 08316, 2020
iliekcomputers
what are we talking about?
2020-03-23 08326, 2020
CatQuest
oh no, a wild iliekcomputers apears
2020-03-23 08346, 2020
shivam-kapila
pristine__: Did you get what I was saying
2020-03-23 08318, 2020
pristine__
I haven't read it. Lemme read :)
2020-03-23 08335, 2020
shivam-kapila
iliekcomputers: Heya. You make me remember the old saying "Bohot lambi umr hogi aapki"
2020-03-23 08337, 2020
pristine__
I was dancing between knitting and IRC this time :p
2020-03-23 08309, 2020
iliekcomputers
i got a notification, so it isn't entirely coincidental
2020-03-23 08310, 2020
shivam-kapila
pristine__: Seems like you love dancing :p
2020-03-23 08325, 2020
pristine__
Definitely
2020-03-23 08310, 2020
shivam-kapila
iliekcomputers: Lol. So the idea was to store the new ratings aka love/hate in CB
2020-03-23 08322, 2020
shivam-kapila
And integrate CB with LB
2020-03-23 08328, 2020
iliekcomputers
we already store ratings in CB
2020-03-23 08336, 2020
iliekcomputers
it was a gsoc project in 2017
2020-03-23 08352, 2020
iliekcomputers
but
2020-03-23 08353, 2020
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