得到App首席数据科学家分享:为什么知识服务以程序员为本
2019 年 5 月 26 日,得到 App 正式上线 3 周年,得到 App 通过 16 场主题演讲完整公开了得到团队从事知识服务 3 年来的工作心法。在当天的演讲中,得到 App 首席数据科学家杨溥解释了为什么知识服务要以程序员为本。他首次公开了「得到大脑」计划,并表示「得到大脑」要做的核心就是利用人工智能技术,为用户建立某个领域的知识图谱。
本文为杨溥在当天的演讲内容。
大家好,我叫杨溥,我是得到的首席数据科学家。在过去十年的时间里,我一直在做和人工智能相关的事情。
大家都知道,得到是一家知识服务公司,做课程、做电子书、做跨年演讲。去年呢,我们的创始人提了一个梦想,要建立一所为终身学习者服务的通识教育大学。然后呢,这个任务就交给了我们。
你可能要问,为什么建学校这件事,不是交给老师,也不是交给班主任,而是交给了我们程序员呢?这是因为历史上的每一次知识大爆炸,都是靠背后的工程师来搞定的,就像蔡伦造纸,古腾堡发明印刷术,他们给全世界带来了知识。所以我现在的工作,就是要用我们这一代的技术,去解决未来的学习问题。
显然,这一代的技术,必然离不开人工智能的支持。说到人工智能,我们生活中已经随处可见了,但是大家有没有发现一些问题。比如,我打开外卖平台点餐,系统在首页上给我推荐了日餐,但事实上,我已经连续吃了5天的日餐了;再比如,我打开电商平台购买了一件运动服,系统仍然会不停的给我推荐各种不同品牌的运动服,而实际上,为了下定决心去运动,我已经购买了6件运动服了。
这就是现在很多智能推荐系统和内容平台的做法,它在根据我过往的行为,预测我的喜好,并不停的给我推荐类似的商品和内容。作为一个从业者,我会问自己:“得到也要这样做么?”
如果一个用户在得到上,已经学习了长时间的《薛兆丰 经济 学》,我们还应该反复的给他推荐经济学的内容吗?按照这种逻辑,他的首页,可能永远只会是这块内容了。
所以,类似这样的人工智能方法,在学习领域并不能满足需求。特别是得到用户,是一群对未知有着强烈好奇心的人,他们的好奇心会驱使他们学习不一样的内容。所以,得到面临的挑战,是全新的。
今天,我想给大家分享的是一个内部称做“得到大脑”的项目。在上台之前,我问过公司的法务,这个项目可以披露吗?他们说:反正一时半会你也做不出来,随便你。那什么是得到大脑呢?得到大脑就是期望通过技术的手段,来尽可能的改善大家的学习体验,就像给我们的大脑,增加了一个外挂。
前段时间,我接待了一个得到的重度用户,她给我详细的介绍了她在得到里的学习历程。最初她是被薛兆丰的经济学课吸引了进来;学完经济学之后,就想去学 金融 学。学金融学的时候,当看到非理性的股市时,就想去了解心理学对人决策的影响。之后,她又想去了解更底层的生命科学,她说她最近正在学习王立銘老师的课程,并且因为对生命产生了敬畏,已经在小本上列了下一步的计划,那就是学习高爽老师的天文学。
你看,这个过程就有点像我们的学习过程,最开始只是黑暗中的一团小火苗,但是因为知识之间的互相关联,从而变成了熊熊烈火,点燃了我们的探索之路。这也正是终身学习和传统的学校学习不一样的地方,它不是一个线性的,越来越专业的学习,而是在不断扩大你的知识范围。
当然,刚才只是她一个人的探索路线,每个人的探索道路都会不一样,但探索不是搜索,得到大脑的目标不是做一个更好的搜索引擎,而是去给每个用户都展示一个,可以自由探索的知识世界,帮助用户完成自己的探索。
长期思考的人都知道,要想让自己的认知能力突飞猛进,很多时候不是因为你搜集了多少信息,而是在你探索的时候,有个瞬间,你突然意识到了一个从来没有想过的维度,知识和知识之间突然产生了化学反应。
所以,得到大脑第一步想要完成的,就是要借助机器的力量,给每个人配上一个学习助理,然后从各种维度,主动的帮你将所有相关的信息整合在一起,再传达给你。
但是,新的问题又来了。目前,以深度学习为主的人工智能技术,我们称作为感知智能,它还无法完成这样的工作。接下来,我们需要达到认知智能的水平,也就是让机器“能理解,会思考”,而知识图谱就是认知智能中最核心的技术。
知识图谱这个概念,最早是在2012年由谷歌提出来的,主要用来提升谷歌的语义搜索服务能力。今天,当你搜索一个问题,比如“C罗的生日”,它给出的不仅仅是关键词匹配的结果,它还会给出具体的生日日期,C罗的百科介绍,甚至还有C罗在球队中的统计资料。
现在,当有了知识图谱,再结合虚拟现实的技术,我们就可以想象出未来学习的场景了。比如,你想了解苏东坡这个人。你只需要一个入口,然后,你就可以跟着他的脚步,知道他哪一年走出四川,哪一年走进开封,哪一年被贬黄州,哪一年写了《赤壁赋》;每一年遇到了什么样的人,做了什么样的事,写了什么样的诗词。这每一个人、每一件事、每一首诗,过往的学者对它们做了什么样的研究,写出了什么样的著作。你现在所在的地方,和苏东坡当年待过的地方,相距有多远。他的遗作,藏在了你身边的哪一座博物馆里……
过程中,你突然对曾经看不惯苏东坡的王安石,产生了兴趣,你可以继续跳转到他的视角,开启新的知识探索。你看,整个过程,你不是在学习苏东坡,而是在代入苏东坡。
好了,那这一系列的场景,它背后的知识图谱是什么样的呢?围绕着苏东坡,我们从时间、空间、人物、作品等各种各样的维度,构建了这样的一张知识图谱。它类似于思维导图,但是它具有更规范的层次结构和更强大的知识表示能力。为了构造知识的基本框架,知识图谱除了包含实体之外,还需要包括概念、属性、关系这些信息。因为人的认知过程,正是不断用这些概念、属性和关系去理解世界、解释世界。
《福尔摩斯探案集》的作者亚瑟·柯南道尔有句名言:“一个逻辑学家,不需要亲眼见过或听过大西洋和尼亚加拉大瀑布,他从一滴水中就能推测出它们。”
知识图谱也是如此,它采集碎片化的信息和数据,然后按照标准化的方式加以整理,再将各种看似不相关,但背后有着共同联系的信息关联起来。
好了,确定完技术方向,下一步,我们该如何构建一个面向学习者的知识图谱呢?
首先,需要确定知识图谱的构建范围。显然,在知识服务领域,我们将会围绕“通识教育”和“学科教育”,去构建一个领域知识图谱。
接下来,我们需要填充知识图谱中的内容。主要是两块内容:第一块,是以“知识点”为中心的实体内容,比如一些专业术语、历史人物、著作等等。第二块,就是这些知识点之间的关系内容。
这些内容需要借助大量的自然语言处理技术,甚至辅助一定的人工手段,从海量的结构化数据数据、非结构化的文本中挖掘出来。比如,对于知识点的挖掘,我们会用到“领域词挖掘”、“命名实体识别”这些技术。
对于关系的挖掘,我们会用到“事件抽取”、“关系抽取”的技术。其中,“事件抽取”是从文本中抽取出重要的事件信息,比如事件发生的时间、地点、人物、原因等等,然后再将这些信息与知识点相关联。
知识图谱中的知识,会按照前面的步骤不断的进行扩充。这个过程,我们还会结合“知识融合”相关的技术,用来消除歧义信息,保证只有高质量的知识才可以进入图谱。当知识达到一定量级以后,就可以开始知识的探索之旅了。
事实上,借助“实体链接”的技术,机器就拥有了“理解”的能力。当你提出一个问题,问题中的信息就会和图谱中的信息链接起来。接下来,你可以在其中任意的穿梭,发现一个又一个有兴趣的关联。这个过程,就像是今天你喜欢的逛商场、打 游戏 。
可更多的时候,当你面对一个新领域,我们是没有明确目标的。尤其是当你学习的范围越来越广,涉及的领域越来越多的时候,你就越觉得自己无知,这也是学习最大的难题。
更高效的做法,不仅是要让机器理解知识,还要能够懂你、了解你,让你知道先学什么、后学什么。这也是为什么很多时候,当你想要快速的学习一个新的领域,你会找到这个领域中最专业的朋友进行沟通,因为他既懂专业知识,也懂你。
所以,得到大脑第二步想要做的事,就是着手研究,如何为学习者量身打造合适的学习路径。
首先,我们需要去挖掘知识的脉络结构,比如知识点的前后依赖关系、上下位关系、从简单到复杂的递进关系等等。目前我们也正在和国内的高校团队进行合作,目标是从高质量的图书中挖掘出这些关系,并将这些关系按照一颗颗“知识树”的形态来构建。
接着,就是在这颗知识树上,找到用户的定位。一方面,对于老用户,我们可以根据他的历史阅读记录、搜索记录,了解他对知识点的掌握情况,并映射到对应的知识树中。另一方面,对于新用户,我们可以提供一些标签入口,让用户自己选择一些感兴趣的领域,然后不断收集他的行为记录。当用户了解了自己的定位以后,学习上就可以更容易的进行取舍了。比如,哪些知识又是仅限于目前的了解就够了的,哪些知识是必不可少的,哪些知识又是要继续深入学习的。
所以,这就是“得到大脑”正在开展的两个方向。未来,当你带着问题来到得到,AI会为你找到问题相关的知识,并在小范围内呈现给你。当你面对一个新的领域,不清楚该学习什么的时候,AI会为你推荐合适的学习路径。
你可能要问我,什么时候能用到这些东西,现在我还不能明确的告诉你。但我能明确的是,当你用上这些功能的时候,我们已经在探索更远的方向了。
好了,刚才的那些技术细节,可能并不是很好理解,但是没关系,实际上我想讲的是:我们正在努力做的这件事,就是为了让你的探索更自由。
谢谢大家。