当你手中握有10亿用户外加他们几万亿的位置、物品、特征以及社交关系的资料时,你会发现你拥有了一个大的令你震惊的数据集。所以在上个月推出图谱搜索时,">Facebook强调他们将利用关键词搜索模式。
图谱搜索被Facebook定义为一个面向对象的搜索工具。在它上面,每个人、每个地点、每个物品都是一个有着上百甚至上千个属性的节点,这些节点彼此之间可以相互连接。
现在,你可以在图谱搜索上进行简单的询问来找到那些住在特定地方或者有着特定爱好的朋友。不过至今为止图谱搜索也仅仅只问世了5个星期,它的功能还非常的有限,照Facebook的话说,图谱搜索的完整功能现在只实现了1%。
所以,图谱搜索下一步要实现的功能才是现在人们最关心的。当然,这些功能也会更复杂、更有用。
让我们从计算机科学的角度来认识这件事情。Edge标示符,也就是那些能显示你或者其他节点将连接到哪里的属性,比如你的朋友、住在丹佛的人、喜欢贾斯汀·比伯的人等,其实它们仅仅是数字而已,每一个属性都会得到一个独有的数字(数字范围从1字节到19字节之间)。正是因为这样,所以我们才能只需在图谱搜索上稍加操作,就能搜索到住在丹佛并喜欢贾斯汀·比伯的朋友。如果你读过Lars Rasmussen在how Graph Search works上发表的Facebook工程博客,你就会知道这是Unicorn这项所有Facebook搜索都会用到的技术的核心部分。
这种一种很简洁的搜索模式。它只会向你展示已经与你建立了连接的搜索结果。它根据常见的属性来锁定搜索范围,例如喜欢什么、在哪工作、认识谁等。这就像你拿着一个金属探测器在一大堆干草里找你想要的那根针一样简单。
“但是真正拉风的是我们能帮助用户找到一堆新的干草,”Facebook工程师Mike Curtiss在加州帕拉阿图的Facebook总部表示,“允许用户搜索那些还没与他们建立连接的东西。”
Mike Curtiss希望图谱搜索能实现什么功能呢?举例来说,如果你是一个准备申请大学的高三学生,那么你可以通过图谱搜索找到那些已经去了哈佛念书的人来给你一些关于申请哈佛的有用建议。如果你是一个HR,那你可以通过图谱搜索发现在你的求职者当中有哪些人曾举止不端。如果住在丹佛的你想品尝一次地道的俄式美食,那么图谱搜索可以告诉你在丹佛有哪些出生地设定为莫斯科的人喜欢的俄式餐厅。
“我们的搜索最终可以回答几乎所有的问题,是的,所有问题!”Curtiss说。“不过目前来说我们还无法做到这一点,因为各种各样的限制。但是理论上来说没什么能阻止我们最终实现这个目标。”
“目前最大的问题在于答案集的规模会呈指数级的上升。如果一个节点连接了100个其他的节点,那么你会有10000个出口节点。在下一轮的搜索中你就会有100万个出口节点。这是一个名符其实的指数级问题,它的难度大的难以估计,不可能说你加多几台设备就能解决它。
在Facebook找到能使硬件完美压缩几十亿节点的方法之前,Facebook使用社交排名算法来决定哪些搜索结果最相关或者最有趣。这种算法有点像Unicorn、应用运算符以及EdgeRank的结合。“这就像我们为每一个用户都提供了一个定制的搜索引擎一样,”Curtiss说。
当Facebook将所有的Open Graph数据都整合到一起后,那么这些节点包含的内容就远远不止你喜欢去哪些网站了,它还将包括你近期买了什么东西、你评论过的网页甚至你的网络游戏得分。整个计算的过程将会更复杂,而图谱搜索也会变的更聪明。
现在,图谱搜索依然是一个处于成长期的产品,仅仅被几十万以英语母语的用户所使用。与它的最终状态相比,我们可以说现在Facebook上的图谱搜索还仅仅是一个婴儿。