TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

Yakread's Ranking Algorithm

68 点作者 jacobobryant大约 1 个月前

4 条评论

jacobobryant大约 1 个月前
Fun to see this on the front page! I worked on Yakread full time for about 8 months as an attempted startup, after a few years of other recommender system startup ideas. Now it&#x27;s a side project that I develop on the weekends after my kids fall asleep, aided by caffeine (me, not the kids). I&#x27;m in the middle of open-sourcing&#x2F;rewriting it. Hopefully will be done in a couple months? Then I can finally get back to adding new features. I talked about some potential ones in my previous post: <a href="https:&#x2F;&#x2F;obryant.dev&#x2F;p&#x2F;rewriting-yakread&#x2F;" rel="nofollow">https:&#x2F;&#x2F;obryant.dev&#x2F;p&#x2F;rewriting-yakread&#x2F;</a><p>also I guess a link to the actual app wouldn&#x27;t hurt: <a href="https:&#x2F;&#x2F;yakread.com" rel="nofollow">https:&#x2F;&#x2F;yakread.com</a>
vitus大约 1 个月前
Hm, I was curious about the biased shuffle, since I was not expecting that particular shape.<p>It looks like we basically build up the list of bookmarks as follows [0]:<p><pre><code> x = rand() if x &lt; p: element = first element else: element = random element return [element] + shuffle(rest of list, according to the original order) </code></pre> In some sense, it&#x27;s reminiscent of selection sort. Any particular reason for choosing this approach? One &quot;obvious&quot; downside is that this ends up being an O(n*k) algorithm because you end up building a new list each iteration. It&#x27;s also harder for me to intuitively understand how shuffled the list is based on the parameter, other than at the two extremes.<p>[0] <a href="https:&#x2F;&#x2F;github.com&#x2F;jacobobryant&#x2F;yakread&#x2F;blob&#x2F;bff756c68d86a07cb4a6c11e22b13a1484e14804&#x2F;src&#x2F;com&#x2F;yakread&#x2F;model&#x2F;recommend.clj#L87-L99">https:&#x2F;&#x2F;github.com&#x2F;jacobobryant&#x2F;yakread&#x2F;blob&#x2F;bff756c68d86a07...</a><p>I&#x27;m also curious about the interleaving approach described in the last section:<p>&gt; If you’ve already scrolled past all your unread bookmarked items several times but you have a bunch of new subscription items, we should probably lean towards recommending the subscription items.<p>&gt; I do this by comparing the two lists pairwise and selecting an item via weighted random choice based on how many times they’ve been previously skipped (i.e. scrolled past in the For You feed). e.g. if the first bookmark item has been skipped twice and the first subscription item has been skipped once, then there’ll be a 40% chance we select the subscription item and a 60% chance we select the bookmark item.<p>I thought we wanted to prefer the item that hadn&#x27;t been skipped as many times (so, prefer the subscription item)?
评论 #43666170 未加载
andersmurphy大约 1 个月前
Thank you for sharing. I was hoping you&#x27;d eventually publish an article on Yakread&#x27;s ranking model, I remember you mentioning it tangentially in one of your talks.<p>Love how concise the code is.
评论 #43663968 未加载
alexdobrenko大约 1 个月前
yeaaaaa go jacob go!!! (also hi!)
评论 #43663971 未加载