IPB

Welcome Guest ( Log In | Register )

> foobar2000 General Forum Rules

This is NOT a tech support forum.
Tech support questions go to foobar2000 Tech Support forum instead.

See also: Hydrogenaudio Terms of Service.

16 Pages V  < 1 2 3 4 > »   
Reply to this topicStart new topic
"hotness", An experiment in "meta-rating"
hit_ny
post Feb 18 2005, 19:51
Post #26





Group: Members
Posts: 87
Joined: 30-January 02
Member No.: 1207



QUOTE
Rating is all fine and dandy,


Taken on thier own sure, but what if you take it a step further by averaging track ratings into an album rating. Now you know which albums are hot or not at a glance, which in a big library can be very useful. I think of best of's by series, by artist, by year etc.


QUOTE
When a song is played, its hotness should be given a boost (the amount of this boost is detailed below). As time passes since the last time a song was played, that song's hotness should decrease. So now we've got to define a decay period: the time it takes before a song's hotness dwindles to 0 again. The two factors that determine the length of this decay period are rating and play frequency.


I see this being useful when there are many users accessing a common library. But what about one user with a large library. Chances that you would have heard a particular good track would be far and between. OK once we skip ahead many months and play count gets increased it might have some relevance.

What i'm saying is how long will it take for the "hotness" concept to be useful ? Rating took forever, now that its done, have to listen to lots of stuff repeatedly to see results.

I find this subject interesting, just trying to offer some intelligent critiques.
Go to the top of the page
+Quote Post
Lyx
post Feb 18 2005, 20:37
Post #27





Group: Members
Posts: 3353
Joined: 6-July 03
From: Sachsen (DE)
Member No.: 7609



QUOTE (hit_ny @ Feb 18 2005, 08:51 PM)
Taken on thier own sure, but what if you take it a step further by averaging track ratings into an album rating. Now you know which albums are hot or not at a glance, which in a big library can be very useful. I think of best of's by series, by artist, by year etc.

Not possible with current formatting-strings. Strings can only see one track at once and cannot look ahead or behind.

This post has been edited by Lyx: Feb 18 2005, 20:38


--------------------
I am arrogant and I can afford it because I deliver.
Go to the top of the page
+Quote Post
falconfox
post Feb 18 2005, 23:10
Post #28





Group: Members
Posts: 100
Joined: 24-September 04
From: Chicago, IL
Member No.: 17281



i am still not getting any colors for my dots, i have an %added% tag in YYYYMMDD and %play_date% in YYYYMMDD , i have a %play_counter% tage and i have a column of hotness with "$blend(FFFFFF,0000FF,%_hotness%,100)●" in display for the column. then i have the code pasted just at the bottom of the column -> globals ->variables section. i have "use global variables for display checked as well as "make date info available" checked. I really want this to work, but i don't see what i am doing wrong.
Could this be because i don't use ratings at all?

@topdownjimmy: it would be helpful to maybe have a link to playcounter plugin as well as the rating plugin on your first post, it will make it easier for everyone.

This post has been edited by falconfox: Feb 18 2005, 23:15
Go to the top of the page
+Quote Post
topdownjimmy
post Feb 18 2005, 23:54
Post #29





Group: Members
Posts: 525
Joined: 1-January 05
From: Boston
Member No.: 18762



QUOTE (falconfox @ Feb 18 2005, 05:10 PM)
i am still not getting any colors for my dots, i have an %added% tag in YYYYMMDD and %play_date% in YYYYMMDD , i have a %play_counter% tage and i have a column of hotness with "$blend(FFFFFF,0000FF,%_hotness%,100)●" in display for the column. then i have the code pasted just at the bottom of the column -> globals ->variables section. i have "use global variables for display checked as well as "make date info available" checked. I really want this to work, but i don't see what i am doing wrong.
Could this be because i don't use ratings at all?

@topdownjimmy: it would be helpful to maybe have a link to playcounter plugin as well as the rating plugin on your first post, it will make it easier for everyone.
*

Ratings aren't necessary for this to work (unrated tracks get a default rating, which is configurable in the code).

I'm not sure if $blend(FFFFFF,0000FF,%_hotness%,100)● is valid code for the display tab, I just threw that together quickly to illustrate what I was getting at. I've updated the first post with some code that should work; try that.
Go to the top of the page
+Quote Post
topdownjimmy
post Feb 19 2005, 00:02
Post #30





Group: Members
Posts: 525
Joined: 1-January 05
From: Boston
Member No.: 18762



QUOTE (hit_ny @ Feb 18 2005, 01:51 PM)
QUOTE
When a song is played, its hotness should be given a boost (the amount of this boost is detailed below). As time passes since the last time a song was played, that song's hotness should decrease. So now we've got to define a decay period: the time it takes before a song's hotness dwindles to 0 again. The two factors that determine the length of this decay period are rating and play frequency.


I see this being useful when there are many users accessing a common library. But what about one user with a large library. Chances that you would have heard a particular good track would be far and between. OK once we skip ahead many months and play count gets increased it might have some relevance.

What i'm saying is how long will it take for the "hotness" concept to be useful ? Rating took forever, now that its done, have to listen to lots of stuff repeatedly to see results.

I find this subject interesting, just trying to offer some intelligent critiques.
*


I don't see what you're saying about "having heard a particular good track"...granted people have different listening habits, and that's what the baseline settings are for. And, hotness will work the same no matter how low or high a song's playcount is; remember, the algorithm bases hotness on play frequency, not playcount alone. So if you add a song to your library today and play it twice, it already has a frequency of twice the baseline frequency.

I hope that explains things better...when I first started planning for this algorithm, a lot of things weren't making sense to me. Example: "If the baselinefrequency is 28 and baselinedecay is 7, that's a ratio of 4:1...instead of having to set both blfrequency and bldecay, why not just make the ratio configurable?" That sounds logical (or at least it did to me), but turns out it doesn't work that way. Then I had a hard time wrapping my head around what baselinedecay and baselinefrequency MEAN, what they should be set at, and why they should be set that way. And in fact, the conclusion I came to is very counterintuitive (i.e., baselineFREQUENCY should be lowered if songs stay hot too long...shouldn't it be baselineDECAY that's lowered if songs are staying hot too long? No.)
Go to the top of the page
+Quote Post
Lyx
post Feb 19 2005, 00:14
Post #31





Group: Members
Posts: 3353
Joined: 6-July 03
From: Sachsen (DE)
Member No.: 7609



Maybe i will implement this idea later if PLAY_FIRST becomes a reality. Anything else - at least for a public FCS - would be quite exotic requirements. Anyways, the reason why i'm posting is that i will probably translate the counterintuitive technical description into a more intuitive practical description in the config (i.e. not explaining how it works, but instead directly asking the user for his listening habits). Of course thats just the plan - i dunno if i will succeed in doing so wink.gif

After i dig through the code and make me familiar with it, i will probably also change the way how "new songs" are weighted, because my personal opinion is that it should take a while for a track to become hot, even if its played 5 times in the first 2 days. Else, whenever someone gives a new track a more close listen (so, not just one time) it would automatically be threated like a fav. So in short, i'll probably go for a more conservative approach - a bit like that tracks have to "become worthy" before getting a high-rating. So, not a linear but instead a logarithmic approach.

But don't get your hopes up too soon - may take from 2 weeks to 6 weeks until i implement that.

- Lyx

This post has been edited by Lyx: Feb 19 2005, 00:16


--------------------
I am arrogant and I can afford it because I deliver.
Go to the top of the page
+Quote Post
falconfox
post Feb 19 2005, 00:22
Post #32





Group: Members
Posts: 100
Joined: 24-September 04
From: Chicago, IL
Member No.: 17281



still nothing, even with the new formatting. i am really confused on how i am not getting this to work. with the new code in the color tab, i only get a ● on the currently played track. i also checked the use custom colors tab. so you changed the required tags to added YYYYMMDD and now last_played to YYYY-MM-DD .

This post has been edited by falconfox: Feb 19 2005, 00:24
Go to the top of the page
+Quote Post
topdownjimmy
post Feb 19 2005, 00:31
Post #33





Group: Members
Posts: 525
Joined: 1-January 05
From: Boston
Member No.: 18762



QUOTE (Lyx @ Feb 18 2005, 06:14 PM)
After i dig through the code and make me familiar with it, i will probably also change the way how "new songs" are weighted, because my personal opinion is that it should take a while for a track to become hot, even if its played 5 times in the first 2 days. Else, whenever someone gives a new track a more close listen (so, not just one time) it would automatically be threated like a fav. So in short, i'll probably go for a more conservative approach - a bit like that tracks have to "become worthy" before getting a high-rating. So, not a linear but instead a logarithmic approach.
*


I want to make clear (in case I didn't before) that if you play a song twice on the same day you add it, the algorithm doesn't assign it a frequency of 2 plays per day. It assigns it a frequency of 2 plays per baselinefrequency. In code:
CODE
$max($get(baselinefrequency),$get(age))

This doesn't entirely solve the issue you bring up (because songs still tend to get played more when they're first added), but it's certainly better than not taking newness into account at all.

I also want to make clear that as time passes since a song's last play, not only does it decay, but its decay accelerates. Say you add a song to your library and play it five times, thus giving it a decay period of one month. So its hotness is, say, 95%, and in one month, it will be 0%. Right? Not necessarily...its decay period is based on its frequency of play. So, once its age surpasses the baselinefrequency, its play frequency begins to deline, as does its decay period. As time-since-last-play increases, decay period decreases, and they collide somewhere in the middle, sooner than was predicted the last time you played it.

wacko.gif

This post has been edited by topdownjimmy: Feb 19 2005, 00:34
Go to the top of the page
+Quote Post
topdownjimmy
post Feb 19 2005, 00:34
Post #34





Group: Members
Posts: 525
Joined: 1-January 05
From: Boston
Member No.: 18762



QUOTE (falconfox @ Feb 18 2005, 06:22 PM)
still nothing, even with the new formatting. i am really confused on how i am not getting this to work. with the new code in the color tab, i only  get a ● on the currently played track. i also checked the use custom colors tab. so you changed the required tags to added YYYYMMDD and now last_played to YYYY-MM-DD .
*


Try this...make a new column, and in the "Display" tab, put:
CODE
%_hotness%

This will give you the hotness as a number from 0-100. See what number is displayed and you might get a clue to your problem.
Go to the top of the page
+Quote Post
falconfox
post Feb 19 2005, 00:39
Post #35





Group: Members
Posts: 100
Joined: 24-September 04
From: Chicago, IL
Member No.: 17281



i get ? when i just put in _hotness
I'm not giving up!

This post has been edited by falconfox: Feb 19 2005, 00:42
Go to the top of the page
+Quote Post
upNorth
post Feb 19 2005, 00:43
Post #36





Group: Members
Posts: 1099
Joined: 18-March 03
From: Oslo, Norway
Member No.: 5569



@falconfox: Make sure there is a square at the end of the last line:
CODE
$get(recentness),$get(begindecaynow))),0),100),$get(decay))

The square is available at the top right corner in Columns UI config.

Edit: In the "Globals" part of the config, that is...
Each global variable assignment has to end with a square.

This post has been edited by upNorth: Feb 19 2005, 00:45
Go to the top of the page
+Quote Post
falconfox
post Feb 19 2005, 00:45
Post #37





Group: Members
Posts: 100
Joined: 24-September 04
From: Chicago, IL
Member No.: 17281



yeah it is all there, i mean i copied the entire code, including the last line of //////// so there is nothing missing
Go to the top of the page
+Quote Post
topdownjimmy
post Feb 19 2005, 00:45
Post #38





Group: Members
Posts: 525
Joined: 1-January 05
From: Boston
Member No.: 18762



QUOTE (falconfox @ Feb 18 2005, 06:39 PM)
i get ? when i just put in _hotness
I'm not giving up!
*


If you're getting a question mark, that means the main code was copied and pasted incorrectly. Try copying and pasting again. If it doesn't work, there might be some conflict with the surrounding Navigator Suite code.

edit: MAKE SURE that you have %last_played% as YYYY-MM-DD and %play_counter%.

This post has been edited by topdownjimmy: Feb 19 2005, 00:46
Go to the top of the page
+Quote Post
falconfox
post Feb 19 2005, 00:48
Post #39





Group: Members
Posts: 100
Joined: 24-September 04
From: Chicago, IL
Member No.: 17281



yeah i just repasted it and i am getting ? still. i am using azrael 's formatting, and all i did was paste your code to the end of the global -> variable section. maybe there is some conflict?
Go to the top of the page
+Quote Post
topdownjimmy
post Feb 19 2005, 00:54
Post #40





Group: Members
Posts: 525
Joined: 1-January 05
From: Boston
Member No.: 18762



QUOTE (Lyx @ Feb 18 2005, 06:14 PM)
Else, whenever someone gives a new track a more close listen (so, not just one time) it would automatically be threated like a fav.

Well, hotness isn't intended to measure how much you like a song (that's what rating is for). I don't really have a problem with a song being "hot" that I don't like. Besides, if on the second listen I decide I don't like it, I can always rate it a 1, thus decreasing its decay period by more than half.

I think a more accurate description of "hotness" is that it measures how fresh a song is in your mind. With that in mind, a song you download and play twice should be pretty "hot."

QUOTE (Lyx @ Feb 18 2005, 06:14 PM)
So in short, i'll probably go for a more conservative approach - a bit like that tracks have to "become worthy" before getting a high-rating. So, not a linear but instead a logarithmic approach.
*


I'm really curious to see how you're going to account for "worthiness." What did you have in mind? "Don't assign any hotness unless play_counter > 5?"
Go to the top of the page
+Quote Post
Lyx
post Feb 19 2005, 00:55
Post #41





Group: Members
Posts: 3353
Joined: 6-July 03
From: Sachsen (DE)
Member No.: 7609



QUOTE (topdownjimmy @ Feb 19 2005, 01:31 AM)
I also want to make clear that as time passes since a song's last play, not only does it decay, but its decay accelerates.  Say you add a song to your library and play it five times, thus giving it a decay period of one month.  So its hotness is, say, 95%, and in one month, it will be 0%.  Right?  Not necessarily...its decay period is based on its frequency of play.  So, once its age surpasses the baselinefrequency, its play frequency begins to deline, as does its decay period.


But isn't that the opposite of how listening-patterns work in practice? Such a scheme may work for people who listen to music like fast-food. But with people who listen more "deep" it works the opposite way: They may totally dig a track in the first month.... then it becomes boring because of overdose......after 4 months, the play-frequency begins to increase again. But in the third months, its hotness would be displayed lower than it actually is - because although the listener may not listen to it right now because of previous saturation, he still likes it and will play it again later - the track is just "sleeping".

At this point in this post, there would be an explanation of how it imho should work. But i deleted so often what i wrote, because i noticed that i cannot explain what i mean, that i guess it makes sense to explain it when the day comes where i draft a more concrete model.

edit: what i mean is that a track which is new should be at a disadvantage - and a track which is old but has a high playcount should decay slower than it normally would. Or in other words: when a song is new, then better rate it too bad than too good, when a highly played track is old, then better rate it too good than too bad.

- Lyx

This post has been edited by Lyx: Feb 19 2005, 01:00


--------------------
I am arrogant and I can afford it because I deliver.
Go to the top of the page
+Quote Post
Lyx
post Feb 19 2005, 00:57
Post #42





Group: Members
Posts: 3353
Joined: 6-July 03
From: Sachsen (DE)
Member No.: 7609



falcon: which browser do you use? You may have a charset-problem.


--------------------
I am arrogant and I can afford it because I deliver.
Go to the top of the page
+Quote Post
falconfox
post Feb 19 2005, 00:58
Post #43





Group: Members
Posts: 100
Joined: 24-September 04
From: Chicago, IL
Member No.: 17281



QUOTE (Lyx @ Feb 18 2005, 05:57 PM)
falcon: which browser do you use? You may have a charset-problem.
*


firefox MOOX build
Go to the top of the page
+Quote Post
Lyx
post Feb 19 2005, 01:01
Post #44





Group: Members
Posts: 3353
Joined: 6-July 03
From: Sachsen (DE)
Member No.: 7609



QUOTE (falconfox @ Feb 19 2005, 01:58 AM)
firefox MOOX build
*

Then i dunno - FX should treat unicode-stuff and charsets perfectly. And moox's builds were absolutely okay during the time when i used FX in the past.


--------------------
I am arrogant and I can afford it because I deliver.
Go to the top of the page
+Quote Post
topdownjimmy
post Feb 19 2005, 01:02
Post #45





Group: Members
Posts: 525
Joined: 1-January 05
From: Boston
Member No.: 18762



QUOTE (Lyx @ Feb 18 2005, 06:55 PM)
because although the listener may not listen to it right now because of previous saturation, he still likes it and will play it again later - the track is just "sleeping".
*


This is, in fact, exactly how I intended hotness to operate. Like I said, it's not a measure of how much you like a song, it's a measure of how "hot" the song is. A song that hasn't been played in four months most certainly shouldn't be considered "hot." Five-stars, maybe, but not "hot." It sounds like you're arguing against any implementation of decay at all, when decay is what makes hotness interesting. We already have a measure of how much you like a song, called %rating%.
Go to the top of the page
+Quote Post
topdownjimmy
post Feb 19 2005, 01:05
Post #46





Group: Members
Posts: 525
Joined: 1-January 05
From: Boston
Member No.: 18762



QUOTE (Lyx @ Feb 18 2005, 06:55 PM)
edit: what i mean is that a track which is new should be at a disadvantage - and a track which is old but has a high playcount should decay slower than it normally would.

This is why play frequency affects how long a song's decay period is.

QUOTE (Lyx @ Feb 18 2005, 06:55 PM)
Or in other words: when a song is new, then better rate it too bad than too good, when a highly played track is old, then better rate it too good than too bad.

- Lyx
*


If a new song is bad, you will rate it a 1, which will decrease its decay period (i.e., speed up its decay), and it will arrive at zero hotness in about two days, although it should be hot for those two days simply because you listened to it recently.
Go to the top of the page
+Quote Post
falconfox
post Feb 19 2005, 01:08
Post #47





Group: Members
Posts: 100
Joined: 24-September 04
From: Chicago, IL
Member No.: 17281



I don't know, i think i am doing everything correctly. Hopefully there isn't any conflict with azrael or firefox.
for the column with %_hotness% , all i get is ?
for the column with [dot] in the display, and the color code in the colour, i get nothing. so i don't know what is wrong with my foobar.. ill try to fix the problem later i guess.
Go to the top of the page
+Quote Post
Lyx
post Feb 19 2005, 01:13
Post #48





Group: Members
Posts: 3353
Joined: 6-July 03
From: Sachsen (DE)
Member No.: 7609



Okay, now i get it - your idea is to rate the "freshness" - the current - only.... while i was trying to make it gauge how "interesting" a song may be for playback.

While you "rate" the result - my idea was create a gauge for the listener which tracks may be interesting to him. The different is that you dont try to guess anything - you just display the result of the current - while i would try to guess a little bit beforehand what may be interesting to the listener in the future.

- Lyx


--------------------
I am arrogant and I can afford it because I deliver.
Go to the top of the page
+Quote Post
Lyx
post Feb 19 2005, 01:16
Post #49





Group: Members
Posts: 3353
Joined: 6-July 03
From: Sachsen (DE)
Member No.: 7609



QUOTE (topdownjimmy @ Feb 19 2005, 02:05 AM)
If a new song is bad, you will rate it a 1, which will decrease its decay period

Good point - i didn't think of that. Pardon me, you have already all those thoughts behind you already which i've yet to go through.

- Lyx


--------------------
I am arrogant and I can afford it because I deliver.
Go to the top of the page
+Quote Post
falconfox
post Feb 19 2005, 01:47
Post #50





Group: Members
Posts: 100
Joined: 24-September 04
From: Chicago, IL
Member No.: 17281



it is wierd, when i have that code in my column display and color, when i have use custom color selected, nothing shows up, but when i unselect it, the [dot] shows up. this is really annoying....
Go to the top of the page
+Quote Post

16 Pages V  < 1 2 3 4 > » 
Reply to this topicStart new topic
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:

 



RSS Lo-Fi Version Time is now: 24th July 2014 - 17:09