编程与软件工程joelgrus.com
黑入 Hacker News
Hacking Hacker News
2012 — 2014,它一次次回到首页
黑点是上首页(≥ 50 分)的那次投稿,空心点是没冲上去的投稿,点越大分数越高。
导读
这篇博文记录了作者 Joel Grus 对 Hacker News 的一次“ hacking ”尝试:用分类器学习自己是否喜欢某条 HN 故事,从而做个性化过滤。评论主要围绕这种做法的数据来源、过滤气泡和方法局限展开争论。
为什么经久不衰:它提前触及了今天仍然核心的个性化推荐与信息茧房矛盾,而且方法简单、可复现,所以多年后仍值得读。
HN 评论精选
作者忽略了评论、提交、收藏和书签等强信号,而且个性化过滤会形成信息茧房。
恕我直言,Joel,你似乎漏掉了不少本可以用来训练分类器的输入。如果我想知道什么内容“对 Joel 来说有趣”,直接看你 HN 主页里的 comments 和 submissions 链接就行;我自己的 saved stories 更是我提交或点赞过的全部内容的金矿。另一个问题是,这样做会制造气泡,让你错过那些你尚未意识到自己会感兴趣的好东西。
jcr查看英文原文
With all due respect Joel, it seems you missed a good number of the inputs you could have used to train your classifier. If I (jcr) want to know what classifies as "interesting to Joel" (joelthelion), I simply look at the "comments" and "submissions" links in your HN profile. It will show me the stuff you took the time to comment on, or took the time to submit to HN. If I want to know what's "interesting" to me, the "saved stories" link is visible in my own profile even through it is not visible to others. In the "saved stories" is THE goldmine of every submission I've either submitted or up-voted. https://news.ycombinator.com/saved?id=jcr Depending on your personal bookmarking habits, your bookmarks file/db can be another useful input. I'm in the habit of bookmarking both the submitted article, and the HN discussion page (if it's good). Assuming I didn't book the HN discussion, I could easily find the HN discussion/submission for all of the sites that I've ever bookmarked with a search engine. Give google an URL and ask it for all of the sites linking to that URL, then parse for HN, and you've got the target. The serious problem I see with your approach was already mentioned by ck2; you're creating a bubble and will miss out on all the fantastic stuff that is interesting to you, but you don't yet know that it's interesting to you. One of the primary benefits of HN and similar sites is learning about the things that others find interesting. Those things may not interest me, but the fact that others find them interesting is, well, interesting. Why to they consider it interesting? Why do I consider it uninteresting? Even if my personal opinions remain unchanged, these are important questions for me to keep asking myself, repeatedly.
过滤会让人错过模式外内容,而 HN 的价值之一正是拓宽视野。
过滤掉一些东西后,你就永远不会接触到自己“模式”之外的内容。HN 的副标题是“Links for the intellectually curious”,我更愿意把它理解成“你思维模式之外的 hacker news”。
ck2查看英文原文
By filtering out stuff, you'll never expose yourself to things outside your "pattern". HN's subtitle is "Links for the intellectually curious" I guess HN has a dual purpose to keep people up on "breaking" hacker news, but I like to think of it as "hacker news outside your thinking pattern". Also why do people immediately go to AWS for testing something? Doesn't a real hacker have their own server handy for experimental projects, or is it only me?
真正喜欢的内容新颖难预测,简单屏蔽列表可能比分类器更实用。
HN 上有很多我喜欢的东西,也有很多我觉得无聊或无关的东西。但不幸的是,我真正喜欢的内容往往新颖且不可预测,所以想训练某种贝叶斯分类器来识别我会喜欢什么,大概行不通。我个人觉得,一个老派的 killfile 可能就够用了:不显示标题含某些字符串、或链接到某些站点的帖子。
thristian查看英文原文
There's a lot of stuff on HN I like, and a lot of stuff I find boring or irrelevant. Unfortunately, the stuff that I really like tends to be novel and unpredictable, so trying to teach some kind of Bayesian classifier to recognise things I'll like is probably not going to work. Personally, I think I'd be perfectly happy with an old-school killfile: do not show me posts whose headlines contain the strings "X", "Y" or "Z", or that link to sites "A", "B" or "C".
建议用账号点赞记录作为训练数据,并考虑兴趣随时间变化。
模型只有用更多训练数据才能变得更好,而这需要我判断自己是否喜欢某条故事。如果你让程序用你的账号登录 HN,它应该能知道你给哪些故事点过赞;用这些数据作为分类器输入,你只需在阅读时给感兴趣的内容点赞即可。我还好奇,故事是否会按年龄加权,以反映你兴趣的变化。
smoyer查看英文原文
"The model can only get better with more training data, which requires me to judge whether I like stories or not. I do this occasionally when there’s nothing interesting on Facebook. Right now this is just the above command-line tool, but maybe I’ll come up with something better in the future." If you let your program log into HN using your account, it should be able to tell which of the stories you've up-voted there. If you use that as the input to your classifier, as you read stories on HN, simply mark those that interest you by up-voting them. I'm also curious to know whether the stories are weighted by age to account for changes in what you find interesting.
历次讨论
同类还值得读
开源应用架构
The Architecture of Open Source Applications
《开源软件架构》(AOSA)是一本在线免费书,邀请知名开源项目的作者亲自剖析其内部设计,涵盖 SQLAlchemy、LLVM、Audacity、Apache、Bash 等系统。
编程与软件工程上首页 9 次 · 2011–2024aosabook.org编辑精选编程语言简史:简短、不完整且多半错误
A Brief, Incomplete, and Mostly Wrong History of Programming Languages
一篇以戏谑、故意不准确的方式回顾编程语言史的博客文章,用夸张轶事和讽刺定义串起 Lisp、C、C++、Java、JavaScript、PHP 等语言。
编程与软件工程上首页 8 次 · 2009–2021james-iry.blogspot.comSQLite 是如何测试的
How SQLite is tested
SQLite 官方文档页,系统介绍 SQLite 的测试体系:多种测试方法(TCL 测试、模糊测试、回归测试、静态分析等)和海量测试用例,展示了这个小型开源项目如何靠极致测试获得…
编程与软件工程上首页 8 次 · 2009–2025sqlite.org编辑精选高级编程语言(2009)
Advanced programming languages (2009)
Matt Might 的经典文章,按用途推荐“高级编程语言”:如果追求就业就选主流语言,如果追求表达力、学术研究或创业,则推荐 Haskell、OCaml、Scala 等函数式语…
编程与软件工程上首页 8 次 · 2009–2022matt.might.net我的 Forth 与栈机器经历
Yosefk - My history with Forth & stack machines
作者以亲身经历回顾了使用 Forth 语言和栈式机器的历程:既赞叹其简洁优雅、代码量小、可自举的优点,也坦率指出栈操作在实际编程中的痛苦,以及 Forth 社区文化中的问题。
编程与软件工程上首页 8 次 · 2010–2024yosefk.com编辑精选