★★★本博客欢迎转载,但请注明版权、原文链接,谢谢。
Memento..
My stories in my way..
posts - 39,comments - 591,trackbacks - 13

A.背景

在阅读本文之前,我们强烈建议您阅读一下郑昀 的《来,做一个社会化推荐引擎》和《一个想法从构思到实现只需7天》,本文所讨论的议题以及我们正在做的事情,都始于他以前在相同领域的工作与思考。我们的测试版社会化推荐引擎取名为“玩聚猫”(http://dullcat.com) ,也是在名称上延续郑昀在三年前发布的同类产品“玩聚SR”。

当然,我们并不是在探讨如何简单地复制郑昀以前的工作,而是探讨如何站在巨人的肩膀上,把社会化推荐引擎做得更好、更全面、更讨用户喜欢。

玩聚猫

B.什么是社会化推荐(Social Recommendation,SR)?

郑昀在三年前对此的定义是“选择一批IT业界人士的社会化媒体分享源,如曹增辉冯大辉的GoogleReader分享,白鸦困兽twitter张亮饭否,还有叽歪dedelicious等等。对这些信息源的分享链接进行汇总,一个信息源推荐就算一票,综合票数、信息源权重、推荐时间点、信息源类型等多种因素,最终形成像鲜果热文diggReddit一样的跨平台社会化推荐引擎,并进一步引入语义关联技术,进化到协同过滤+语义过滤的自动化系统。”

由于数据源的原因,郑昀的定义比较强调“IT业界人士”,而我们想淡化这一点。

我们认为,社会化推荐系统是从社会化媒体中,根据一系列的算法,发现热门内容的系统。其使用的算法除了常规的数据挖掘、聚类外,主要是对各种信息源的『分享行为』进行汇总,对『分享行为』进行加权,综合『分享行为』的数量、信息源权重、推荐时间点、信息源类型等多种因素。她能分享最有价值的信息,能具有视野发散度,能削减信息爆炸。

『分享行为』是指用户在社会化媒体中对特定内容进行分享的行为,包括但不限于新浪微博的“转发”、人人网的“喜欢”、Google Plus的“+1”、以及Digg类网站的“顶”等等。

C.我们为什么要重复发明车轮?

原因很简单的,诞生于三年前的郑昀版社会化推荐系统有他的局限性:

a)由于过分依赖于IT业界人士,所推荐的内容难以吸引非IT人士

b)数据源较少(无论是种类还是数量),Google Reader Shared Item和Twitter占据了超过85%的信息。

c)由于b),没有形成在更大范围通用的排名公式。

d)没有像Google PR( Google PageRank)那样的指标,无法向用户直观地体现特定文章的价值。

e)推荐者权重模型(如名人效应)没有得到体现

因此,我们打算重新发明车轮,进行一场新的社会化推荐革命!

D.玩聚猫社会化推荐的数据源应该包含哪些?

我们把国内社会化分享媒体分为以下四类:

a) 微博、轻博客类。包含腾讯微博、新浪微博、网易微博、点点网、新浪Qing等;

b) SNS类。包含人人网、开心网、腾讯朋友等;

c) 书签、网摘类。包含强国网摘、CSDN网摘系统、爱库网、QQ书签、有道书签、百度搜藏等等;

d)RSS阅读器。包含Google Reader、鲜果、抓虾、豆瓣9点等等。

E.玩聚猫在处理不同类型社会化分享媒体的『分享行为』要考虑哪些因素?

上文也零星提及了一些,归纳起来有以下几点重要差异:

a)  『分享行为』类型不同。新浪微博有“转发”、人人网有“喜欢”、豆瓣9点有“推荐”、有的网站只有“阅读量”。

b)  网站权重不同。例如爱库网上最热的内容,权重肯定没有新浪微博上同一时间最热的内容权重高。

c)『分享行为』发起人的权重不同。例如李开复转发了一条微博,权重会比50个我转发同样一条微博更高。

d) 『分享行为』的时间也会影响权重。很多时候对于同一信息源、同一内容的『分享行为』是呈指数衰减的。例如在郭美美事件,我第一次在新浪微博看到时已经拥有了两万次转发,我看完后决定转发第两万零一次,明显我的这次转发的权重比第两千零一次转发的权重小。

e)  考虑去重复。例如我同时在我新浪微博和腾讯微博转发了同样一条微博,只能计数一次。

当然,我们希望这些差异对用户透明,因为用户不需要了解这么多。用户只需要一个类似Google PR的数字直接了当地告诉他文章价值就可以了。

所以我们引入了SR(Social Rank),范围0~10,标识在每篇文章的标题后面。一篇文章的SR能够精确表示它在其他各种社会化媒体的火热程度。

F.玩聚猫SR的计算公式

设置我们有N种数据源,分别是 {S1,S2,S3….Sn} ∈ S

如前文所述,数据源有4种类型,分别是{T1,T2,T3,T4}∈ T

设类型权重 {WT1,WT2,WT3,WT4}∈W T

对于数据源Si ,

设数据源自身权重为SW(i), SW(i)由网站的Alexa排名、PV量、修正值决定。

 T(i)表示它所属于的分类,WT(T(i) )  表示Si的类型权重

在计算某篇文章的SR时,设A(i) 是该文章在Si数据源里的『分享行为』计数。

那么,

对于这篇文章而言,

SR = Logi=1..nA(i) ×WT(T(i) )× SW(i)

为什么是Logx 呢? 有两点原因,一是它可以使得早期的投票获得更大的权重,比如,当x=10时,前 10 票获得的权重,与 11 到 101 票所获得的权重是一样的;二是使信息的层级呈金字塔型分布,就像Google PR、地震里氏等级一样。

Logx x的取值非常重要,玩聚猫的取法是这样的:从已知的m篇预料信息中计算最大的推荐价值

MaxV= Max( Vj= i=1..nA(i) ×WT(T(i) )× SW(i) | j=1..m  )

由于SR的范围是0至10,我们令 x^10 =MaxV

从而计算出 x =  10√MaxV

如果MaxV为35000,则X应该设定为2.847,SR = Log2.847 i=1..nA(i) ×WT(T(i) )× SW(i);推荐价值约200的文章SR为5,推荐价值约4500的文章SR为8,推荐价值大于35000的文章SR为10

通过这样的公式,为每篇文章都计算出一个Rank值,用户就能直观又精确地了解到文章的价值了。

×注意:玩聚猫的SocialRank和《来,做一个社会化推荐引擎》里提到的排序依据SR Rank不同。玩聚猫的SR跟列表排序依据没关系,只跟内容本身的价值有关系;郑昀 只跟排序有关系。

G.玩聚猫还有哪些需要改进的地方?

我们正在以下领域进行奋斗:
1.强化用户权重系统,尤其是引入模糊计算和估值,强调名人效应。
2.通过实验数据,不断改进排名算法。
3.引入智能语义、自然语言,使玩聚猫在面对文本信息时,能够以人类而非机械的方式进行思考、归类、关联、过滤、总结。
4.引入机器学习(如Prediction),使玩聚猫能够记住每一个用户的口味,个性化地推荐文章。

 

如果你对社会化推荐感兴趣的话,不妨到玩聚猫看看(目前是测试版本,服务器在国外,可能不太稳定,请见谅)。我们热忱欢迎您的一切宝贵意见、建议和批评。

posted on 2011-11-30 02:01 流牛木马 阅读(1721) 评论(17) 编辑 收藏

FeedBack:
2011-11-30 09:35 | 诺贝尔      
效果呢?
 回复 引用 查看   
2011-11-30 10:29 | 偶卖糕的      
权重系统是重点
 回复 引用 查看   
2011-11-30 11:41 | Google Chrome 插件      
太牛逼了!膜拜啊!
这个网站果断收藏了

 回复 引用 查看   
2011-11-30 11:52 | 汉心      
莫名前来膜拜。。。
想法不新颖,但在国内很少有实现得这么完善的。
请问博主,我能参与进来与你们一起开发这个项目吗?谢谢

 回复 引用 查看   
2011-11-30 11:56 | 木子李85      
经朋友推荐过来学习。Mark一下。博主加油
 回复 引用 查看   
2011-11-30 11:56 | 木子李85      
引用诺贝尔:效果呢?

文章最后不是有个演示网站吗?

 回复 引用 查看   
2011-11-30 12:11 | im流浪剑客      
SR算法这一块设计得不错,学习了。
 回复 引用 查看   
2011-11-30 12:14 | 元谋程序猿      
是否可以考虑一下增加过滤系统,防止被墙
我看目前网站里还有cao liu什么的 ⊙﹏⊙

 回复 引用 查看   
2011-11-30 14:09 | 诺贝尔      
没发觉和普通的文章网站有什么差别。
 回复 引用 查看   
#10楼[楼主]
2011-11-30 14:25 | 流牛木马      
引用诺贝尔:没发觉和普通的文章网站有什么差别。

我们做的工作虽然复杂,如我文章中所说,我们希望“对普通用户透明”,因为普通的网站浏览者不需要了解这么多。所以,你只看表面是看不出差别的。
正所谓,外行看热闹,内行看门道。
感谢您的支持!

 回复 引用 查看   
#11楼[楼主]
2011-11-30 14:25 | 流牛木马      
@元谋程序猿
引用元谋程序猿:
是否可以考虑一下增加过滤系统,防止被墙
我看目前网站里还有cao liu什么的 ⊙﹏⊙

这个的确是个问题... 谢谢你的提议

 回复 引用 查看   
#12楼[楼主]
2011-11-30 14:26 | 流牛木马      
@汉心
引用汉心:
莫名前来膜拜。。。
想法不新颖,但在国内很少有实现得这么完善的。
请问博主,我能参与进来与你们一起开发这个项目吗?谢谢

非常欢迎!我们私下交流吧

 回复 引用 查看   
2011-11-30 23:46 | 看那边的人      
发觉外观和豆瓣的九点基本一致
 回复 引用 查看   
#14楼[楼主]
2011-11-30 23:55 | 流牛木马      
引用看那边的人:发觉外观和豆瓣的九点基本一致

哈哈 被你发现了!!
程序猿不会做界面,套用的9点的界面,嘿嘿

 回复 引用 查看   
2011-12-01 00:25 | 微生物      
打不开。。。
 回复 引用 查看   
2011-12-01 00:54 | 性感柠檬      
我能说这是一个采集器吗?
不要生气哈,百度其实也是一个采集器?
等服务器庞大了 可以做成搜索引擎哈~~
不过对数据库优化存储,搜索要求高
-------------------------------
为了回这个帖子特意注册回复的。
LZ偶给你面子吧
因为这种搜索引擎一直是我想做但始终没做的。
交个朋友吧。

 回复 引用 查看   
#17楼[楼主]
2011-12-04 05:53 | 流牛木马      
引用微生物:打不开。。。

兄弟再试试看。服务器不太稳定,呵呵

 回复 引用 查看