create account

Introducing the Steem Recommendation Page by steemitblog

View this thread on: hive.blogpeakd.comecency.com
· @steemitblog ·
$1,737.46
Introducing the Steem Recommendation Page
Today we are happy to add personalized recommendations to steemit.com. 

Steemit analyses your voting patterns to identify other users who vote like you. The more you and someone else vote alike the more weight their votes have in promoting (or demoting) content on your personalized feed.

When you vote for a post, it creates a strong link between you and the author of the post. When others vote the same way on the same post a weaker link is established between you and your fellow voters. 

Down voting a post means you are much less likely to see future posts from the same author.

If you find the content in your recommendation page is not accurately reflecting your interests, then the best course of action is to find stuff you do like and up vote it.  

## The Algorithm

For those of you who are interested in the algorithm it is divided into several parts. The first part is identification of users who are similar to you. The second part involves identifying recent articles voted on by similar users.

### Measuring User Similarity 

Any time two users vote the same way on a post the vote is deemed to be similar. It is assumed that the author of a post votes for his own post.  *direct* and *indirect* fields below measure the percent of similar voting.

    direct = direct_similar_votes / total_direct_votes;
    indirect = indirect_similar_votes / total_indirect_votes;
    
The algorithm needs to factor in a weighting factor based upon the number of votes sampled. This is done on a *log* scale so that all users approach the same weight as the number of measurements approaches infinity.

    direct_order = log(total_direct_votes)
    indirect_order = log(total_indirect_votes)

Any user for whom we have no similar votes is deemed to have a negative order.

    if( direct_similar_votes + indirect_similar_votes == 0 ) {
        direct_order *= -1;  
        indirect_order *= -1;
    }


Lastly we combine these terms giving a 10x weight to the author.  The *direct* and *indirect* measures are squared to bias the results heavily toward users with high degree of similarity and to greatly discount users who vote in opposite ways on even a few posts.

    user_similarity = 10 * direct_order * direct ^ 2 + indirect_order * indirect ^ 2


### Generating Recommendations

Armed with a measure of user similarity, we are now ready to start ranking posts. The first step is to go over your list of similar peers and fetch all posts they have voted on in the last 24 hours. The posts are further filtered to remove any posts with global negative down votes, posts that are older than 24 hours, or posts that the user has already voted on.

For each post we calculate the sum of the *ranks* of all users voting for it.  Lastly we multiply it by age.  
      
      post_rank = sum(ranks) * (24 hr - now + creation_date) / 24 hr`.    

Something that is just posted has the full rank.  Something that is 24 hours old is ranked at 0.


## Finding your Recommendations
It is now easier than ever to find the best content from your favorite posters.  

You can find recommendations customized for you in the account menu located in the upper right hand corner of steemit.com.  

Enjoy!
👍  , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , and 56 others
👎  
properties (23)
authorsteemitblog
permlinkintroducing-the-steem-recommendation-page
categorysteem
json_metadata{"tags":["steemit"]}
created2016-05-25 23:29:57
last_update2016-05-25 23:29:57
depth0
children10
last_payout2016-08-24 03:11:42
cashout_time1969-12-31 23:59:59
total_payout_value868.824 HBD
curator_payout_value868.636 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length3,203
author_reputation332,472,558,821,177
root_title"Introducing the Steem Recommendation Page"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id14,283
net_rshares145,575,543,697,987
author_curate_reward""
vote details (121)
@bbqbear ·
$0.08
Very cool. This would be a great login landing page.
👍  , , ,
properties (23)
authorbbqbear
permlinkre-steemitblog-introducing-the-steem-recommendation-page-20160525t235600566z
categorysteem
json_metadata{}
created2016-05-25 23:56:15
last_update2016-05-25 23:56:15
depth1
children2
last_payout2016-08-24 03:11:42
cashout_time1969-12-31 23:59:59
total_payout_value0.042 HBD
curator_payout_value0.042 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length52
author_reputation17,818,351,858,368
root_title"Introducing the Steem Recommendation Page"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id14,312
net_rshares252,696,586,365
author_curate_reward""
vote details (4)
@cryptoctopus ·
Exactly!
👍  
properties (23)
authorcryptoctopus
permlinkre-bbqbear-re-steemitblog-introducing-the-steem-recommendation-page-20160526t000044323z
categorysteem
json_metadata{}
created2016-05-26 00:00:42
last_update2016-05-26 00:00:42
depth2
children0
last_payout2016-08-24 03:11:42
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length8
author_reputation365,406,972,531,657
root_title"Introducing the Steem Recommendation Page"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id14,318
net_rshares0
author_curate_reward""
vote details (1)
@donkeypong ·
$0.08
It will be interesting to see how similar it is to follow lists, once we get those. Over time, I can see how they might resemble one another.
👍  ,
properties (23)
authordonkeypong
permlinkre-bbqbear-re-steemitblog-introducing-the-steem-recommendation-page-20160618t041959478z
categorysteem
json_metadata{"tags":["steem"]}
created2016-06-18 04:20:00
last_update2016-06-18 04:20:00
depth2
children0
last_payout2016-08-24 03:11:42
cashout_time1969-12-31 23:59:59
total_payout_value0.040 HBD
curator_payout_value0.041 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length141
author_reputation431,667,636,679,304
root_title"Introducing the Steem Recommendation Page"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id36,113
net_rshares243,779,767,285
author_curate_reward""
vote details (2)
@cryptoctopus ·
bloody brilliant!
👍  
properties (23)
authorcryptoctopus
permlinkre-steemitblog-introducing-the-steem-recommendation-page-20160525t233838224z
categorysteem
json_metadata{}
created2016-05-25 23:38:36
last_update2016-05-25 23:38:36
depth1
children0
last_payout2016-08-24 03:11:42
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length17
author_reputation365,406,972,531,657
root_title"Introducing the Steem Recommendation Page"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id14,299
net_rshares0
author_curate_reward""
vote details (1)
@cryptogee ·
Awesome! Thanks for sharing the code, I'm just learning Java and Android so I found that very interesting, I agree with bbq, it would make a great login page.
properties (22)
authorcryptogee
permlinkre-steemitblog-introducing-the-steem-recommendation-page-20160526t054330838z
categorysteem
json_metadata{}
created2016-05-26 05:43:36
last_update2016-05-26 05:43:36
depth1
children0
last_payout2016-08-24 03:11:42
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length158
author_reputation419,387,439,147,428
root_title"Introducing the Steem Recommendation Page"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id14,572
net_rshares0
@dana-edwards · (edited)
Learning conditional preference networks could be used to suggest how people should vote over time depending on if Steemit has the computation capacity to implement it. It may be possible to suggest based on patterns and prediction algorithms which votes make the most economic sense. A/B testing can be used in order to tease out useful information from noisy data samples. 

References
1.[Learning conditional preference network from noisy samples using hypothesis testing](http://mc.eistar.net/uploadfiles/Papers/[1]%202012%20KBS%20Juntao%20Liu.pdf)
2. https://www.youtube.com/watch?v=2QeDRsxSF9M
3. https://en.wikipedia.org/wiki/Learning_to_rank
👍  
properties (23)
authordana-edwards
permlinkre-steemitblog-introducing-the-steem-recommendation-page-20160526t051733340z
categorysteem
json_metadata{"links":["http://mc.eistar.net/uploadfiles/Papers/[1]%202012%20KBS%20Juntao%20Liu.pdf"]}
created2016-05-26 05:17:33
last_update2016-05-26 05:29:36
depth1
children0
last_payout2016-08-24 03:11:42
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length649
author_reputation353,623,611,191,427
root_title"Introducing the Steem Recommendation Page"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id14,552
net_rshares416,257,183
author_curate_reward""
vote details (1)
@donkeypong · (edited)
I like this. Why have it on the right and not on the left, along with the other views - Active, Trending, etc.?
👍  
properties (23)
authordonkeypong
permlinkre-steemitblog-introducing-the-steem-recommendation-page-20160526t004035155z
categorysteem
json_metadata{}
created2016-05-26 00:40:42
last_update2016-05-26 00:40:57
depth1
children0
last_payout2016-08-24 03:11:42
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length111
author_reputation431,667,636,679,304
root_title"Introducing the Steem Recommendation Page"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id14,353
net_rshares0
author_curate_reward""
vote details (1)
@grandfx ·
Good Idea!
👍  
properties (23)
authorgrandfx
permlinkre-steemitblog-introducing-the-steem-recommendation-page-20160526t004036482z
categorysteem
json_metadata{}
created2016-05-26 00:40:42
last_update2016-05-26 00:40:42
depth1
children0
last_payout2016-08-24 03:11:42
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length10
author_reputation48,741,595,656
root_title"Introducing the Steem Recommendation Page"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id14,354
net_rshares80,737,300
author_curate_reward""
vote details (1)
@junber ·
excellent explanation.
properties (22)
authorjunber
permlinkre-steemitblog-introducing-the-steem-recommendation-page-20180722t182002124z
categorysteem
json_metadata{"tags":["steem"],"app":"steemit/0.1"}
created2018-07-22 18:31:39
last_update2018-07-22 18:31:39
depth1
children0
last_payout2018-07-29 18:31:39
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length22
author_reputation68,045,449,134
root_title"Introducing the Steem Recommendation Page"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id65,611,591
net_rshares0
@markopaasila ·
This article was at the top of my *recommended* page :-)
properties (22)
authormarkopaasila
permlinkre-steemitblog-introducing-the-steem-recommendation-page-20160526t040507421z
categorysteem
json_metadata{}
created2016-05-26 04:05:06
last_update2016-05-26 04:05:06
depth1
children0
last_payout2016-08-24 03:11:42
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length56
author_reputation32,771,884,740,822
root_title"Introducing the Steem Recommendation Page"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id14,514
net_rshares0