您的位置:首页 > 编程语言 > Go语言

聊一聊google的Knowledge Graph

2015-07-07 17:10 591 查看

什么是Knowledge Graph?

它是google用于增强它的搜索引擎的功能和提高搜索结果质量的一种技术。在2012年5月16日提出,除了提供基本的与主题相关的链接服务之外,它还能结构化与主题相关的信息。这样做的目的就是让用户无需通过点击多个相关链接自己手动去搜索相关信息,而是google直接把整合好的结果展示在搜索页面,真是太贴心啦!

for example: 我在google中搜索:andrew ng



可以看到,右侧会直接把andrew ng的相关基本资料给你整合好。比如出生,教育背景,所获奖项,你搜有些名人,甚至连他爹是谁都给你显示出来。而这些绝逼不是系统手动输入的(so stupid!),而是Knowledge Graph帮你完成。

简介:wiki官方blog(含视频)

Knowledge Graph的历史?

这些内容是怎么来的呢?当然,不可能完全靠google自己搜索数据得到,因为,这个数据实在是太庞大了。

比如说,其中有部分数据来源于The World Factbook(世界概况) - CIA(中央情报局):《世界概况》是由美国中央情报局出版的调查报告,发布世界各国及地区的概况,例如人口、地理、政治及经济等各方面的统计数据。因中央情报局属美国政府部门,所以其资料格式、体例、内容皆需符合美国政府的官方需要及立场资料则是由美国国务院、美国人口调查局、国防部等部门及其辖下的相关单位提供。(google)

还有数据来自freebase:Freebase是一个由元数据组成的大型合作知识库,内容主要来自其社区成员的贡献。它整合了许多网上的资源,包括部分私人wiki站点中的内容。Freebase致力于打造一个允许全球所有人(和机器)快捷访问的资源库。它由美国软件公司Metaweb开发并于2007年3月公开运营。2010年7月16日被谷歌收购。 2014年12月16日,Google宣布将在六个月后关闭Freebase,并将全部数据迁移至维基数据。

当然,还有大名鼎鼎的wikipedia。

在2012年的时候,google的语义网络就已经包含了超过5亿7千万个对象实体,而且对象实体之间超过了180亿的史实和关系。这些数据用于理解我们输入到搜索栏中的关键字。

在2012年12月4日,Knowledge Graph被翻译成了其中语言,其中包括了:西班牙语,法语,德语,葡萄牙语,日语,俄语和意大利语。没有中文也是情理之中。

在2013年5月的google io大会上, Amit Singhal(google search的头头,Google's Mr Search

提出了未来的搜索将主要在3个方面进行提升和改进:1)为搜索者答问;2)与搜索者交流;3)在搜索者开始搜索之前,就能给出他们想要的答案。他和knowledge graph的关系极为密切

2014年8月,google提出了一个新的东东叫Knowledge Vault,这个Knowledge Vault,包含了大量的源自Knowledge Graph的数据,同时,利用机器学习的方法,它自身也搜集了16亿的史实。

2014年12月16日,Freebase and Knowledge Graph team(都是google的)宣称将在六个月后关闭Freebase,并将全部数据迁移至维基数据。

Knowledge Graph的故事

Amit Singhal长期致力于如何为小伙伴们提供更佳优质的服务,他认为评判搜索结果好不好,可以通过记录用户点击搜索结果的链接之后,跳转停留的时间来判断( "long clicks" and "short clicks")。如果你搜索“世界上最帅的人是不是程序员”,然后google之后的结果,你点击了相关的链接停留了很长时间,说明他们提供的搜索结果质量较高。反之亦然。

因此,在2002年,基于Ludwig Wittgenstein关于一个单词的含义和上下文有紧密的联系,Singhal开始对一些模棱两可的单词进行考察,从与这些单词相关的单词入手。比如,你搜索“hot dog”,google会告诉你,这是一种可以吃的食物,香肠,还有可能是一种棒球的比赛,而不是告诉你这是一只很热的🐶。

Singhal说,机器获得的结果越准确,大家提问的时候就越懒,输入的内容就越少。搜索工作的难度也相应提高。而且我们输入的时候,经常会输错,Singhal也致力于去纠正不正确的输入结果。比如我输入“wozhendehenshaui”(我真的很帅),但是我的语文是体育老师教的,所以把“shuai”打成了“shaui”,但是google也能做到帮你纠正。当然,我觉得例子比较简单,现在很多软件已经能够实现,但是google可以实现更加复杂的。

只有跟着搜索者的想法一起去思考,才能搜索出搜索者想要的信息。因此,google需要捕获搜索者的心。

Knowledge Graph最早起源于叫“Metaweb”这个小公司,后来Singhal觉得不错,google就把这个公司收购了。起初,Metawab已经存储了1亿2千万reference points。过了两年,google迅速把它增加到了57亿,而且其中有180亿的事实的链接。

不仅仅是一个字符串:一个小小的输入框,背后隐藏着大智慧

比如说你输入一个景点名,如“灵隐寺”,那么,google先会去“things”中找到这个词(字符串)的映射,这样,google就明白了,他是一个景点的名字。

然后呢,google还会结合你的历史行为和先前其他用户的搜索行为来进一步增强你的结果(比如你之前一直都呆在杭州,那么,他就会大概判断你说的是杭州的灵隐寺,而不是别的地方的灵隐寺),使得你的结果更加精确。

但是呢,这种方法本事上,还不够智能,因为它还是在对一个字符串进行分析,而Knowledge Graph要做的不仅仅是提供结果,更是回答问题。

比如,你搜索麦迪,虽然说,它还是会把一些关于麦迪相关的links,麦迪的图片等等返回给你,但是,你会发现在右侧栏中,会有麦迪的所有信息。



这其中,年龄这一项并不是google预存的静态数字,而是算出来的,所以,随着年份的改变,它是会自动变的。

前面说道,这些信息来源于许多庞大的数据库,比如wikipedia,如果这些数据库的数据有更新,那么,Knowledge Graph也是会自动更新的。怎么样,很强大吧?

所以说, 如果你把某一个领域的内容整理的井井有条的话,google没准就哪天看上你了。



Knowledge Graph的技术实现?

待更新......
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: