Technical: How does the new Honest feed algorithm work?

2019-01-17T12:00:51.000Z Honest Cash

Up to now, you could follow creators on Honest and see the stories from them in a combined feed. We have worked now on how the feed is constructed. We now include in the Honest feed also stories and responses upvoted by the people you follow.

This update presents the first iteration in order to improve the design of the feed and an experience of our existing users.

This change improves the following: 

  • Old content is brought again to the top of the feed if upvoted

  • New accounts with smaller amount of followers can reach a bigger audience when upvoted by popular accounts

  • Users are more likely to receive rewards from upvoting, because the upvoted story is presented to their followers

For example, that's what it looks like now:

Even though Xerographica posted the content on the 14th of January, it is shown before the story from the 17th January. It is because rkalis that I follow has just upvoted it.

Technical notes

When you request your feed, we fetch last upvotes and stories. Next, we sort them by publishing time. We then add these stories to a user-specific feed cache in the memory. When you scroll to the end of the feed, another request is made with a constraint on the upper time limit - equating to the publishing time of the last post that you see in your feed. Then, these stories are added to the feed which it is sorted again.

Cache mechanism for the Honest feed

When you request the feed again, we do not recalculate it again, but simply send it directly from the cache in a memory.

In order to keep the feed fresh and do not occupy the memory unnecessarily, the feed is destroyed regularly and built again if you request it.

Thoughts for the future

As we get more users and stories posted we will improve the feed again. These are the dimensions which will guide the design:

Personalization

Personalization improves user experience, enhancing engagement, retention, and conversion. At the moment, we are sorting the feed items by publishing date now, but we can also sort by user-specific rating based on the story interaction likelihood, relationship to the creator and other dimensions that we can calculate a weight for.

Performance

The feed calculation and presentation to the user presents a complex problem that can affect the performance in the future. We can persist the feed for every user and refresh it every time some of the users that you follow interact with the platform. In this way, constructing the feed can happen not on reading, but on writing time.

Feedback time

What do you think? Was this update a step into the right direction for Honest?

Responses


Feed + Notifications?

by @Xerographica

Currently, when somebody responds to one of my posts, I receive an email notification which contains a link to the response.  I'd prefer to see the response (preview) in my feed.  

Another thing that I'd like to see in my feed are bitvotes for my posts.  I don't need to see a preview of the post, just the user and the post title.  The amount would be nice as well.  

It seems like you tweaked the feed algorithm.  Previously I thought it showed all the bitvotes for the same story.  Now it only shows the most recent bitvote for a story?  

For example, I follow both you and somospolvo.  The two of you bitvoted for honest.whotipped.it.  In my feed I first saw your bitvote for the story, but now I only see his bitvote for the story.  I'd prefer to see both of the bitvotes in my feed.  

Imagine if, before I check my feed, 5 people that I follow all bitvote for the same story.  Would my feed show all their bitvotes or only the most recent one?  If I saw all their bitvotes in my feed then I'd be more inclined to read the story.  Because, all else being equal, 5 "vouches" is stronger than 1.  

Like I said here, I want my feed to be public.  So my profile page should show… 

- my stories/responses

- my bitvotes for other posts

- my feed

These suggestions/ideas aren't equally important to me, which is why my most important suggestion is being able to spend money on my own posts.


Seeing BitVotes In Feed

by @Xerographica

I'm not a fan of the term "upvote".  This isn't Reddit, we don't simply vote for the content that matches our preferences, we spend our money on it.  Maybe "bitvote" would be a better term… kinda like "dollar voting" but with crypto instead of fiat.  

It's really awesome that my feed now displays the bitvotes made by people that I follow!!!  This makes it less likely that I will overlook valuable content.  

One possible refinement would be to display each bitvote action on a single line, for example…

cain bitvoted Wallets On Honest Cash by danigocrypto

adrianbarwicki bitvoted ECIP-1049: Why Ethereum Classic shou… by chicken 

cain bitvoted ? ? ? The Vision of the Nightingale… ? by Melooo182

This will require less scrolling and, at a glance, I can easily distinguish between the new content (has a preview) and the bitvotes (no preview).  

Right now this isn't a major issue or anything.  For me a bigger priority would be to see responses in my feed.  Well, now I do see responses if somebody bitvotes for them.  But I would like to see all the responses of the people that I follow.  

Of course the biggest priority for me is to be able to bitvote for my own content.  This would allow me to improve its ranking and help fund this website.  

Not sure if you were aware of this, but when the content is in preview list mode (ie #economics) I am able to click the bitvote button on my own content.  At first I thought that you had implemented this function, but I'm guessing it is just an oversight, given that it still isn't possible to bitvote for my content when I see it in full view mode.   

Anyways, being able to see bitvotes in my feed is a big improvement!  

Hopefully in the future though you'll try and determine the demand for a feature/function before you implement it.  Give us the opportunity to put our money where our mouth is.  Of course you definitely don't have to cater to our preferences/priorities, but it will be useful to know what they are!  

Perhaps in some cases you will disagree with our priorities.  This would mean that you have some information that we don't have… and maybe we have some information that you don't have. :D  In the process of debating our priorities we would share our information with each other.  As a result, we would all be better informed and this would improve our priorities.