作者flamesky (猪也会跑哦)
看板ask-why
标题Re: [请益] Facebook 的朋友建议机制是怎麽回事?
时间Tue Sep 22 20:04:15 2009
我也来回一下,因为我对这方面一直很感兴趣,即社会模型部分,
所以facebook,还有大陆这边的豆瓣这些sns网站都研究过一点,
因为我以前也一直想做这样一个网站,我大概说一点我自己的想法
不一定真的是facebook真实的运作方式,不过我估计是这样的
facebook这类sns的运作方式,其实比较类似大脑的神经元,
因为我对AI,蚁群这些蛮感兴趣的,所以觉得这种想法是比较自然的
先不谈facebook,先谈下大陆的豆瓣网,这个也是sns,
但是这个比较多的是在推荐书籍,电影音乐上有非常有效的查找你感兴趣的方法
我们建一个模型,里面基本元素是结点,类似大脑的神经元,
比较基本的模型就是,这些节点每个都和其他节点相连不妨叫做关系,组成一个神经网络
而大脑神经元是一个不断翻新的系统,即如果你经常和某个节点发生关系,
那麽这个节点和你的连结就越紧密,紧密程度我们用距离来表示。
那麽我们就有了一个定义了节点,关系和关系的权重或者说是距离的网络,
是一个基础的数学模型。
不过这里的距离不是数学意义上的距离,不符合三角不等式的距离,
可能只是个半度量空间或伪度量空间。
这个模型最简单的例子就是twitter,节点之间的关系由follow确定,
节点之间的信息交流是完全模仿神经元的,即,信息会随着距离的增大时间的增加
而衰减,当减弱到一定程度,则无法引起"注意"。
但是twitter过于简单,所有的节点都是一个账户
那麽我聊facebook之前先说说豆瓣,豆瓣里面每一本书每一个电影都有一个评论系统,
你可以为这些书加上tag,然後很多人就有一个对一本书的tag的一个描述集合,
略去少的,比如A书描述集合为(罗马史,历史,政治,爱德华.吉本,罗马,社会,
西方史)那麽这些tag的信息就基本可以确定这本书的内容,这是一本罗马帝国衰亡史
如果你给书加的tag和评分较高的大多是政治,历史,西方,之类的,那麽豆瓣就会
猜一些你可能会喜欢的书,定位非常准确(亚马逊好像也是这样,不过亚马逊我不太熟)
同样的,tag不仅限于书,可能是电影,可能是一段评论,可能是一个运动,可能是一个
人,所有这些tag表示了你在网上喜欢关注的内容,即什麽对于你 这个节点是有吸引力的
那麽回到facebook,这里我们不但将每个人,将每所学校,每个兴趣,每个组织,
都设为一个节点
(这是比较简略的说法,比较复杂的要用到数学里面的范畴学,将节点和节点之间的
作用分类来运算)
这里有一个哲学命题,别人如何定义你,你在别人的脑子里是一些概念,一些事情的
集合。那麽同样的,facebook这种sns你也是这麽定义的:
你是有所有和你有关系的结点以及这种关系的距离所定义的
举个例子,这里後面的值越高,表示联系越紧密:
你:
结点 1/距离
a小学 19
b中学 21
c大学 109
某人A 1
某人B 40
某人C 300
星座 150
篮球 80
可见其中某人C和你关系最紧(亲密的人),
然後c大学(可能就是你的母校),星座(你的兴趣),篮球(兴趣)
假设你现在有一个人D,这个人关系表里面也有C,也有c大学
还有一个人F,这个人关系表里有C,还有a小学
那麽fb将根据某个函数X(结点1,结点2)
求出X(你,D),X(你,F)得出一个数值,这个就是由这个空间的距离定义得出,
然後给你一个推荐D,明显的,D和你关系更紧密
如果你选择了D,那麽由于D和你有共同的结点C和c
那麽你关于c和C的关注度上修,或者说距离将会更近,
其社会学意义则是:你更喜欢C有关系的人,你更喜欢c大学的人
同时,这张表会随着你的活动改变的,比如你最近很久没有关注篮球结点,
那麽这个节点的重要性就会缓缓下降,如果你最近总是关注星座,说明这是你
这段时期的新爱好。
简单的说,sns这种网站就是用结点尽可能模仿人的行为,
现实生活中,人是靠一个个概念结合起来的,比如共同的兴趣(看书),
血缘关系,共同的朋友,类似的性格,类似的经历,或者仅仅是因为你突然因为
某种原因对某事很感兴趣。
顺便说一下,这种节点只是比较初步的,
还可以更加细致,这里就是各种sns的分野和实力差距了
比如,某人A,某人B,某人C都可以归类为人,而某些可以归类为物,
那麽如果sns发现你对人的兴趣爱好大于物,
那麽就更可能通过人这条关系给你推荐人(即共同的朋友),
而非通过物(比如共同的爱好),这样就更加符合你的喜好,
而且,你使用的越多,即你平时的所思所想在sns上表现的越多,则你的结点关于你的
思想的模仿就越精确,就越容易找到你想要的东西或人。
其实人的知识也可以做这样一个概念,知识网络也是一个很流行的概念,
之前很热的wolframalpha也是基于此设计出来的。
但是由于成本考虑,有些东西并不是完全模拟,而是人手工设定权限,
比如对于学校这个类别或结点,赋予更高的权重,那麽则跟倾向使用共同的学校来
搜寻。
至于有什麽你好久不见没联系的熟人出现,那是你们之间有某种千丝万缕的联系,
可能通过你们之间共同的朋友,共同的朋友的朋友,共同的爱好,共同的遭遇等等,
加权算出。
还有就是人的心理,人总是强调正确的几次,但是忽略了错误的很多次,这也是成因之一
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 222.70.145.19
1F:推 KanoLoa:意思是类神经网路来模拟人际关系?这样负荷会不会很高? 09/22 21:55
2F:推 HuangJC:先求懂,至於加速就是数学家拿手的了..;也或许这是这些服务 09/22 23:03
3F:→ HuangJC:晚推出的原因;其实讲 google 就有权重的感觉了,台湾较熟知 09/22 23:04
4F:→ flamesky:由于网络活动是应答式,负荷主要取决于人的活跃程度 09/22 23:51
5F:推 HuangJC:还有 prefetch,预估使用者行为,所以不全是在应答时运算 09/23 00:30
6F:→ HuangJC:google 如果在我搜寻时才进行搜寻,那回应会很慢;如果先做 09/23 00:32
7F:→ HuangJC:快是快了,但资料量也不小;事实上 google server 是一堆货 09/23 00:32
8F:→ HuangJC:柜,的确并不小;再来就是网际共享去做,比如呼叫别人的 API 09/23 00:33
9F:→ HuangJC:比如若 facebook 呼叫了 google,那有很多东西就不用自己做 09/23 00:34
10F:推 KanoLoa:我是觉得要将社群网站设计成这样,花的成本远高机率模型.. 09/23 21:31
11F:推 KanoLoa:搜索效能是一回事,神经网络的训练也要有一定的次数 09/23 21:34
12F:→ KanoLoa:若是我到这网站,一开始因为训练不足乱推荐我就闪了 09/23 21:35
13F:推 Equalmusic:我觉得这还是不能解释为什麽我某个朋友会被找到 09/23 21:35
14F:→ Equalmusic:世界上人那麽多, 就算他找十个才对一个, 也很神了 09/23 21:35
15F:推 KanoLoa:六度分隔理论: 平均只需六个人就可以联系任何两个互不相 09/23 21:37
16F:→ KanoLoa:识的人。 09/23 21:38
17F:→ KanoLoa:应该就是fly大文章提到的 P(a)*P(b)... 09/23 21:39
18F:推 HuangJC:不过六度分隔也很'淡',比如我和欧巴马,是不是算一度? 09/23 21:51
19F:推 KanoLoa:详细我不清楚,wiki倒是有一些实验数据 09/23 21:57
21F:推 HuangJC:是的,它里面提到了'明星';我们都透过了共同的人来做这件事 09/23 22:03
22F:推 KanoLoa: ╮(╯ˇ╰)╭ 虽然感觉有点硬扯,不过可以解释为什麽我 09/23 22:06
23F:→ KanoLoa:的朋友认识你的朋友,好巧喔 ! 09/23 22:06