最好走的路越走越难,最难走的路越走越容易

Follow guwendong on Web
  • Subscribe to Beyond Search via RSS
  • Join Resys Google Group
  • Follow @clickstone on Douban
  • Follow @clickstone on Twitter

Tag Archives: reddit

Social Media Algorithm: Reddit

毫无疑问,互联网媒体的未来是属于 social media 的。

群体智慧,是 social media 的基础。其基本假设是说,参与到 social 中的群体越多,media 所反应出来的智慧越高超。但如何把群体活动转化为可被使用的智慧呢?这个就是算法发挥作用的地方了。

本文将陆续披露 RedditStumbleuponDel.icio.usHacker News 等一系列站点所使用到的算法。

Reddit,背景介绍可以参考我之前写的两篇短文:1)社会新闻网站:Reddit 和 Findory;2)Reddit 被收购了

Reddit-Rank

1、公式构成

假设有一篇文章《Social Media Algorithm》,与其相关的有两个时间 A 和 B,其中,A 为某篇文章的具体发布时间,精确到秒;B 为一个固定的时间常量,2005-12-8 7:46:43。则可以计算得到 A 和 B 间隔的秒数 ts

reddit01

另外,U 表示 《Social Media Algorithm》一文得到的支持票数,D 表示得到的否定票数,则可以计算得到 x,

reddit02

定义变量 y,

reddit03

定义变量 z,

reddit04

最后定义得分公式 为,

reddit05

2、公式解释

1)时间点 B,2005-12-8 7:46:43,是一个固定的值,猜测应该是 Reddit 的上线时间。ts 反映了文章的新鲜程度。引入 B 是一个非常优雅的技巧,它使得新鲜度的度量可以独立于系统当前时间。
2)y 表示支持数和否定数之间的相对关系。被否定多的文章得负分,这是合乎常理的。
3)45000 代表的是一个 12.5 小时周期内的总秒数。它 与 yts 一起使用,随着时间的推移,新文章的得分会逐渐超越高投票数的老文章,从而实现自动更新的效果。
4)log10 的使用是另外一个技巧,它可以使得早期的投票获得更大的权重。比如,前 10 票获得的权重,与 11 到 101 票所获得的权重是一样的。

整个公式的效果可以简单解释为:在 00:00:00 发布的一个帖子 a,如果它想在 12.5 小时之后,能够取得与在 12:30:00 发布的帖子 b 同样的得分,则必须在 00:00:00 点到 12:30:00 这段时间内,把它的得票数扩大 10 倍。注:这个解释不精确,但容易理解一些,不然写着太绕。
不过,其中 45000 与 log10 的选择不是通用的,得根据自己网站实际的情况进行修正。这是一个 trial-and-error 的过程,也是作算法的人最头大的部分。

3、来源
code.reddit.comRedflavor.com 以及 Hacker News 的用户 Aneesh

 

Reddit被收购了

和大多数国外的轻量级创业公司一样,Reddit 被收购了。

今天早上还有另外一件事情,也是收购《Google has acquired JotSpot》。因为收购方是 Google,所以显得格外引人注目。但我倒是对这则消息《Condé Nast/Wired Acquires Reddit》更感兴趣。Reddit 被收购,这应该说早就是意料之中的事情,悬念只不过是“谁”会来收购 Reddit。现在答案已经很明确了。其实早在这之前,Condé Nast 旗下的另一个网站 Lipstick.com 就已经在使用 Reddit 的技术了,这个网站的模样也简直就是 Reddit 的翻版。现在看来,这应该是 Condé Nast 收购之前,对 Reddit 团队进行的一次技术实力考验。

TechCrunch 文章后面的评论,大家现在都在猜测 Reddit 的身价。提到钱的事情,看来全世界人民都一样,充满热情。Reddit 团队反而对此闭口不谈。其实,不论最后的确切数字是多少,YCombinator 和 Reddit 团队自然都是有得赚的。要知道,Reddit 团队以最初8.8万美元的种子投资,做到现在足以和 Digg 抗衡,已经充分证明了他们非凡的实力了。

在国外,被大公司收购,其实正是诸多轻量级创业公司的初衷。他们往往具备非凡的技术力量和吸引人的点子,通过自己的努力,或者小额的天使投资,来度过公司的萌芽阶段。在确立了一定的市场地位之后,就会像 Reddit 这样,迅速投靠一个大公司来寻求更好的发展。大公司可以提供更好的资源,更棒的合作人员,和更加广阔的平台。毕竟,想要成长为Google或者Yahoo这样的巨人,对绝大多数创业公司来说,绝对是一种奢望。我个人认为,这样的发展路线屡试不爽,正是国外技术创业公司不断涌现的源动力之一。

最近,在国内,千橡收购了校内网。从 Stanford 回来的陈一舟做了一件非常美国化的事情。希望能有更多的国内互联网巨头采用这样的方式,而不是仗着财大气粗,粗暴地欺负业内的小兄弟。都说国内的互联网浮躁,大家都在忽悠概念。这是业界的大环境使然,还是创业公司自己就不尊重技术呢?

 

社会新闻网站:Reddit和Findory

今天,看了一下《Personalied Content 国外市场纵览》里面提到的几个网站,给我印象比较深的是Reddit.comFindory.com

Reddit的UI设计,是典型的外国式的Web2.0网站的界面形式:简洁的页面,极少的图片,快速的打开。我个人非常喜欢这样的UI设计,国内的douban也 是这样的UI。他和douban还有另外一个很像的地方,都是使用Python开发,都在持续release新的features。Reddit最开始使 用Lisp语言开发,后来转而使用Python。这还在Reddit和Lisp社区内引起不少的争议。有人就发起号召:“用Lisp写一个更好的Reddit!”。

Reddit由一个四个人的团队维 护,2个维吉尼亚的,一个harvard的,1个Stanford中途退学的(看来传说中退学的高人又要多一个了)。乍一看,Reddit和digg很 像,但不同的是,他们采用的应该是完全不同的算法。digg使用的是聚类的方法,他的用户分成group,然后计算group内用户对文章赋予的digg 值,把最popular的内容放到该group的顶端。digg其实有一个根本的问题:按照digg数得到的popular列表,并不一定是你感兴趣的, 除非你的兴趣和整个group用户的兴趣一致。Reddit不一样,他的目标是实现personalized。我个人初步使用了一下Reddit,发现其实还是存在一些不足的。而且,网上也有其他人在抱怨,Reddit的推荐不准确。但我必须说,personalized涉及的算法是比较复杂的,想要一下子达到一个好的效果是非常困难的。据猜测,Reddit使用的是“基于内容的推荐”。通过从文章内抽取关键字,得到和这些关键字相关的推荐。从Reddit团队的blog中可以看到,他们非常谦虚,而且还在持续进行改进。

Findory给我的感觉要比Reddit好!据说他是历史最悠久的个性化内容服务站点。他对用户的隐私保护,给我留下相当深刻的印象。你可以不进行任何 的注册,就可以享受到具有一定personalized程度的内容。当你在Findory中点击自己喜欢的文章的时候,Findory就会在后台学习你的 阅读习惯,之后,Findory就会把他计算出来的推荐结果呈献给你。你阅读的文章越多,Findory对你的阅读习惯的学习越全面,就可能为你推荐越准 确的内容。Findory的创办人Greg Linden,是Personalized content方面的资深评论人,并且是Amazon商品推荐引擎与个性化界面的主导开发者。Findory系出名家之手,因此推荐效果自然不一搬。

我把我的RSS提交到Findory的“Favorites”里面,在首页中马上就可以看到带有“”图标的推荐内容,而且我看来还比较准确!暂时不能肯定Findory采用的是哪种算法。但通过他的技术说明,我猜可能使用的是“协同过滤推荐”,或者是“协同过滤与基于内容相结合的推荐”。据说,Findory已经实现正向现金流。

附:在《推荐系统:主要推荐方法》一问中,对“基于内容的推荐”和“协同过滤推荐”有简要的介绍。

 

1. 持续关注 个性化推荐 技术;
2. 持续关注 Semantic Web 技术;
3. 评论与上两项相关的互联网业务与产品;

我相信技术的力量!
wendell.gu@GMail.com

Archives