做为人工智能时代最重要的知识表示方式之一,知识图谱可以打破不一样场景下的数据隔离,为搜索、推荐、问答、解释与决策等应用提供基础支撑。美团大脑围绕吃喝玩乐等多种场景,构建了生活娱乐领域超大规模的知识图谱,为用户和商家创建起全方位的连接。咱们美团但愿可以经过对应用场景下的用户偏好和商家定位进行更为深度的理解,进而为大众提供更好的智能化服务,帮你们吃得更好,生活更好。算法
近日,美团 AI 平台部 NLP 中心负责人、大众点评搜索智能中心负责人王仲远博士受邀在 AI 科技大本营作了一期线上分享,为你们讲解了美团大脑的设计思路、构建过程、目前面临的挑战,以及在美团点评中的具体应用与实践,其内容整理以下:服务器
近年来,人工智能正在快速地改变人们的生活,能够看到各家科技公司都纷纷推出人工智能产品或者系统,好比说在 2016 年,谷歌推出的 AlphaGo ,一问世便横扫整个围棋界,完胜了人类冠军。又好比亚马逊推出的 Amazon Go 无人超市,用户只需下载一个 App,走进这家超市,就能够直接拿走商品,无需排队结帐即可离开,这是人工智能时代的“新零售”体验。又好比微软推出的 Skype Translator,它可以帮助使用不一样语言的人群进行实时的、无障碍的交流。再好比说苹果推出的 Siri 智能助理,它让每个用苹果手机的用户都可以很是便捷地完成各项任务。全部这些人工智能产品的出现都依赖于背后各个领域技术日新月异的进展,包括机器学习、计算机视觉、语音识别、天然语言处理等等。dom
做为全球领先的生活服务电子商务平台,美团点评在人工智能领域也在积极地进行布局。今年 2 月份,AI 平台部 NLP 中心正式成立,咱们的愿景是用人工智能帮你们吃得更好,生活更好。语言是人类智慧的结晶,而天然语言处理是人工智能中最为困难的问题之一,其核心是让机器能像人类同样理解和使用语言。机器学习
咱们但愿在不久的未来,当用户发表一条评价的时候,可以让机器阅读这条评价,充分理解用户的喜怒哀乐。当用户进入大众点评的一个商家页面时,面对成千上万条用户评论,咱们但愿机器可以代替用户快速地阅读这些评论,总结商家的状况,供用户进行参考。将来,当用户有任何餐饮、娱乐方面的决策需求的时候,美团点评可以提供人工智能助理服务,帮助用户快速的进行决策。ide
全部这一切,都依赖于人工智能背后两大技术驱动力:深度学习和知识图谱。咱们能够将这两个技术进行一个简单的比较:布局
咱们将深度学习概括为隐性的模型,它一般是面向某一个具体任务,好比说下围棋、识别猫、人脸识别、语音识别等等。一般而言,在不少任务上它可以取得很是优秀的结果,同时它也有很是多的局限性,好比说它须要海量的训练数据,以及很是强大的计算能力,难以进行任务上的迁移,并且可解释性比较差。学习
另外一方面,知识图谱是人工智能的另一大技术驱动力,它可以普遍地适用于不一样的任务。相比深度学习,知识图谱中的知识能够沉淀,可解释性很是强,相似于人类的思考。优化
咱们能够经过上面的例子,来观察深度学习技术和人类是如何识别猫的,以及它们的过程有哪些区别。网站
2012 年,Google X 实验室宣布使用深度学习技术,让机器成功识别了图片中的猫。它们使用了 1000 台服务器,16000 个处理器,链接成一个 10 亿节点的人工智能大脑。这个系统阅读了 1000 万张从 YouTube 上抽取的图片,最终成功识别出这个图片中有没有猫。ui
咱们再来看看人类是如何作的。对于一个 3 岁的小朋友,咱们只须要给他看几张猫的图片,他就可以很快识别出不一样图片中的猫,而这背后其实就是大脑对于这些知识的推理。
2011 年,Science 上有一篇很是出名的论文叫《How to Grow a Mind》。这篇论文的做者来自于 MIT、CMU、UC Berkeley、Stanford 等美国名校的教授。在这篇论文里,最重要的一个结论就是:若是咱们的思惟可以跳出给定的数据,那么必须有 Another Source Of Information 来 Make Up The Difference。
这里的知识语言是什么?对于人类来说,其实就是咱们从小到大接受的学校教育,报纸上、电视上看到的信息,经过社交媒体,经过与其余人交流,不断积累起来的知识。
近年来,无论是学术界仍是工业界都纷纷构建自家的知识图谱,有面向全领域的知识图谱,也有面向垂直领域的知识图谱。其实早在文艺复兴时期,培根就提出了“知识就是力量”,在当今人工智能时代,各大科技公司更是纷纷提出:知识图谱就是人工智能的基础。
全球的互联网公司都在积极布局知识图谱。早在 2010 年微软就开始构建知识图谱,包括 Satori 和 Probase。2012 年,Google 正式发布了 Google Knowledge Graph,如今规模已经达到 700 亿左右。目前微软和 Google 拥有全世界最大的通用知识图谱,Facebook 拥有全世界最大的社交知识图谱,而阿里巴巴和亚马逊则分别构建了商品知识图谱。
若是按照人类理解问题和回答问题这一过程来进行区分,咱们能够将知识图谱分红两类。咱们来看这样一个例子,若是用户看到这样一个问题,“Who was the U.S. President when the Angels won the World Series?”相信全部的用户都可以理解这个问题,也就是当 Angels 队赢了 World Series 的时候,谁是美国的总统?
这是一个问题理解的过程,它所须要的知识一般咱们称之为 Common Sense Knowledge(常识性知识)。另一方面,不少网友可能回答不出这个问题,由于它须要另一个百科全书式的知识。
所以,咱们将知识图谱分红两大类,一类叫 Common Sense Knowledge Graph(常识知识图谱),另一类叫 Encyclopedia Knowledge Graph(百科全书知识图谱)。这两类知识图谱有很明显的区别。针对 Common Sense Knowledge Graph,一般而言,咱们会挖掘这些词之间的 Linguistic Knowledge;对于 Encyclopedia Knowledge Graph,咱们一般会在意它的 Entities 和这些 Entities 之间的 Facts。
对于 Common Sense Knowledge Graph,通常而言咱们比较在意的 Relation 包括 isA Relation、isPropertyOf Relation。对于 Encyclopedia Knowledge Graph,一般咱们会预约义一些谓词,好比说 DayOfbirth、LocatedIn、SpouseOf 等等。
对于 Common Sense Knowledge Graph 一般带有必定的几率,可是 Encyclopedia Knowledge Graph 一般就是“非黑即白”,那么构建这种知识图谱时,咱们在意的就是 Precision(准确率)。
Common Sense Knowledge Graph 比较有表明性的工做包括 WordNet、KnowItAll、NELL 以及 Microsoft Concept Graph。而 Encyclopedia Knowledge Graph 则有 Freepase、Yago、Google Knowledge Graph 以及正在构建中的“美团大脑”。
这里跟你们介绍两个表明性工做:1)Common Sense Knowledge Graph:Probase;2)Encyclopedia Knowledge Graph:美团大脑。
Microsoft Concept Graph 于 2016 年 11 月正式发布,可是它早在 2010 年就已经开始进行研究,是一个很是大的图谱。在这个图谱里面有上百万个 Nodes(节点),这些 Nodes 有Concepts(概念),好比说 Spanish Artists(西班牙艺术家);有 Entities(实体),好比说 Picasso(毕加索);有 Attributes(属性),好比 Birthday(生日);有 Verbs(动词),有 Adjectives(形容词),好比说 Eat、Sweet。也有不少不少的边,最重要的边,是这种 isA 边,好比说 Picasso,还有 isPropertyOf 边。对于其余的 Relation,咱们会统称为 Co-occurance。
这是咱们在微软亚洲研究院期间对 Common Sense Knowledge Graph 的 Research Roadmap(研究路线图)。当咱们构建出 Common Sense Knowledge Graph 以后,重要的是在上面构建各类各样的模型。咱们提出了一些模型叫 Conceptualization(概念化模型),它可以支持 Term Similarity、Short Text Similarity 以及 Head-Modifier Detection,最终支持各类应用,好比 NER、文本标注、Ads、Query Recommendation、Text Understanding 等等。
到底什么是 Short Text Understanding?常识怎么用在 Text Understanding 中?下面咱们能够看一些具体的例子:
当你们看到上面中间的文本时,相信全部人都可以认出这应该是一个日期,可是你们没办法知道这个日期表明什么含义。但若是咱们再多给一些上下文信息,好比 Picasso、Spanish等等,你们对这个日期就会有一些常识性的推理。咱们会猜想这个日期极可能是 Picasso 的出生日期,或者是去世日期,这就是常识。
好比说当咱们给定 China 和 India 这两个 Entity 的时候,咱们的大脑就会作出一些常识性的推理,咱们会认为这两个 Entity 在描述 Country。若是再多给一个 Entity:Brazil,这时候咱们一般会想到 Emerging Market。若是再加上 Russia,你们可能就会想到“金砖四国”或者“金砖五国”。全部这一切就是常识性的推理。
再好比,当咱们看到 Engineer 和 Apple 的时候,咱们会对 Apple 作一些推理,认为它就是一个 IT Company,可是若是再多给一些上下文信息,在这个句子里面因为 eating 的出现,我相信你们的大脑也会同样地作出常识推理,认为这个 Apple 再也不是表明 Company,而是表明 Fruit。
因此,这就是咱们提出来的 Conceptualization Model,它是一个 Explicit Representation。咱们但愿它可以将 Text,尤为是 Short Text,映射到 Millions Concepts,这样的 Representation 可以比较容易让用户进行理解,同时可以应用到不一样场景当中。
在这一页 PPT 中,咱们展现了 Conceptualization 的结果。当输入是 Pear 和 Apple 的时候,那么咱们会将这个 Apple 映射到 Fruit。可是若是是 iPad Apple 的时候,咱们会将它映射到 Company,同时你们注意这并非惟一的结果,咱们其实是会被映射到一个 Concept Vector。这个 Concept Vector 有多大?它是百万级维度的 Vector,同时也是一个很是 Sparse 的一个 Vector。
经过这样的一个 Conceptualization Model,咱们可以解决什么样的文本理解问题?咱们能够看这样一个例子。好比说给定一个很是短的一个文本 Python,它只是一个 Single Instance,那么咱们会但愿将它映射到至少两大类的 Concept 上,一种多是 Programming Language,另一种是 Snake。当它有一些 Context,好比说 Python Tutorial 的时候,那么这个时候 Python 指的应该是 Programming Language,若是当它有其余的 Adjective、Verb,好比有 Dangerous 时,这时候咱们就会将 Python 理解为 Snake。
同时若是在一个文本里面包含了多个的 Entity,好比说 DNN Tool、Python,那么咱们但愿可以检测出在这个文本里面哪个是比较重要的 Entity,哪个是用来作限制的 Entity。
下面咱们将简单地介绍一下,具体应该怎么去作。当咱们在 Google 里搜一个 Single Instance 的时候,一般在右侧会出现这个 Knowledge Panel。对于 Microsoft 这样一个 Instance,咱们能够看到这个红色框所框出来的 Concept,Microsoft 指向的是 Technology Company,这背后是怎么实现的?
咱们能够看到,Microsoft 实际上会指向很是很是多的 Concept,好比说 Company,Software Company,Technology Leader 等等。咱们将它映射到哪个 Concept 上最合适?
若是将它映射到 Company 这个 Concept 上,很显然它是对的,可是咱们却没办法将 Microsoft 和 KFC、BMW 这样其余类型的产品区分开来。另一方面,若是咱们将 Microsoft 映射到 Largest Desktop OS Vendor 上,那么这是一个很是 Specific 的 Concept,这样也不太好,为何?由于这个 Concept 太 Specific,太 Detail,它可能只包含了 Microsoft 这样一个 Entity,那么它就失去了 Concept 的这种抽象能力。
因此咱们但愿将 Microsoft 映射到一个既不是特别 General(抽象),又不是一个特别 Specific(具体)的 Concept 上。在语言学上,咱们将这种映射称之为 Basic-level,咱们将整个映射过程命名为 Basic-level Conceptualization。
咱们提出了一种计算 Basic-level Conceptualization 的方法,其实它很是简单并且很是有效。就是将两种的 Typicality 作了一些融合,同时咱们也证实了它们跟 PMI 和 Commute Time 之间的一些关联。而且在一个大规模的数据集上,咱们经过 Precision 和 NDCG 对它们进行了评价。最后证实,咱们所提出来的 Scoring 方法,它在 NDCG 和 Precision 上都能达到比较好的结果。最重要的是,它在理论上是可以对 Basic-Level 进行很好的解释。
下面咱们来看一下,当 Instance 有了一些 Context 以后,咱们应该怎么去进行处理。咱们经过一个例子,来简单地解释一下这背后最主要的思想。
好比说 iPad、Apple,其中 iPad 基本上是没有歧异的,它会映射到 Device、Product。可是对于 Apple 而言,它可能会映射到至少两类的 Concept 上,好比说 Fruit、Company。那么咱们怎么用 iPad 对 Apple 作消歧呢?
方法其实也挺直观的。咱们会经过大量的统计去发现像 iPad 这样的 Entity,一般会跟 Company、Product 共同出现。好比说 iPad 有可能会跟三星共同出现,有可能会跟 Google 共同出现,那么咱们就发现它会常常跟 Brand、Company、Product共同出现。因而咱们就利用新挖掘出来的 Knowledge 对 Apple 作消歧,这就是背后最主要的思想。
除了刚才这样一个 General Context 之外,在不少时候这些 Text 可能还会包含不少一些特殊的类型,好比说 Verb、Adjective。具体而言,咱们但愿在看到 Watch Harry Potter 时,可以知道 Harry Potter 是 Movie,当咱们看到 Read Harry Potter 时,可以知道 Harry Potter 是 Book。一样的,Harry Potter 还有多是一个角色名称,或者是一个游戏名称。
那么咱们来看一看应该怎样去解决这样一件事情。当咱们看到 Watch Harry Potter 时,咱们首先要知道,Harry Potter 有多是一本 Book,也有多是一部 Movie。咱们能够算出一个先验几率,这一般要经过大规模的统计。同时咱们要知道,Watch 它有多是一个名词,同时它也有多是一个动词,而且咱们还须要去挖掘,当 Watch 做为动词的时候,它和 Movie 有很是紧密的关联。
因此咱们本质上是要去作一些几率上的推理,不只要将条件几率作很是细粒度的分解,最后还要作几率计算。
经过几率计算的方法,咱们实际上就能够构建出一个很是大的离线知识图谱,那么咱们在这个上面,就能够有不少的 Term,以及它们所属的一些 Type,以及不一样 Term 之间的一些关联。
当咱们用这样一个很是大的离线知识图谱来作 Text Understanding 的时候,咱们能够首先将这个 Text 进行分割处理,在分割以后,咱们其实是能够从这个很是大的离线知识图谱中截取出它的一个子图。最后咱们使用了 Random Walk With Restart 的模型,来对这样一个在线的 Subgraph 进行分类。
咱们再来看一下,若是一个文本里包含了 Multiple Entities,要怎样处理?咱们须要作知识挖掘,怎么作?首先咱们能够获得很是多的 Query Log,而后咱们也能够去预约一些 Pattern,经过这种 Pattern 的定义,能够抽取出很是多 Entity 之间 Head 和 Modifier 这样的 Relation,那么在接下来咱们能够将这些 Entity 映射到 Concept 上,以后获得一个 Pattern。
在这个过程之中,咱们要将 Entity 映射到 Concept 上,那么这就是前面所提到的 Conceptualization。咱们但愿以后的映射不能太 General,避免 Concept Pattern 冲突。
可是它也不能太 Specific,由于若是太 Specific,可能就会缺乏表达能力。最坏的状况,它有可能就会退化到 Entity Level,而 Entity 至少都是百万的规模,那么整个 Concept Patterns 就有可能变成百万乘以百万的级别,显然是不可用的。
因此咱们就用到了前面介绍的 Basic-Level Conceptualization 的方法,将它映射到一个既不是特别 General,也不是特别 Specific 的 Concept 上。
你们能够看一下咱们可以挖掘出来的一些 Top 的 Concept Patterns,好比说 Game 和 Platform,就是一个 Concept 和一个 Pattern。它有什么用?举一个具体的例子,当用户在搜 Angry Birds、iOS 的时候,咱们就能够知道用户想找的是 Angry Birds 这款游戏,而 iOS 是用来限制这款游戏的一个 Platform。苹果公司每一年都会推出新版本的 iOS,那么咱们挖掘出这样的 Concept Pattern 以后,无论苹果出到 iOS 15或者 iOS 16,那么咱们只须要将它们映射到 Platform,那么咱们的 Concept Patterns 就仍然有效,这样能够很容易地进行知识扩展。
因此 Common Sense Knowledge Mining 以及 Conceptualization Modeling,能够用在不少的应用上,它能够用来算 Short Text Similarity,能够用来作 Classification、Clustering,也能够用来作广告的 Semantic Match、Q/A System、Chatbot 等等。
在介绍完 Common Sense Knowledge Graph 以后,给你们介绍一下 Encyclopedia Knowledge Graph。这是美团的知识图谱项目——美团大脑。
美团大脑是什么?美团大脑是咱们正在构建中的一个全球最大的餐饮娱乐知识图谱。咱们但愿可以充分地挖掘关联美团点评各个业务场景里的公开数据,好比说咱们有累计 40 亿的用户评价,超过 10 万条个性化标签,遍及全球的 3000 多万商户以及超过 1.4 亿的店菜,咱们还定义了 20 级细粒度的情感分析。
咱们但愿可以充分挖掘出这些元素之间的关联,构建出一个知识的“大脑”,用它来提供更加智能的生活服务。
咱们简单地介绍一下美团大脑是如何进行构建的。咱们会使用 Language Model(统计语言模型)、Topic Model(主题生成模型) 以及 Deep Learning Model(深度学习模型) 等各类模型,但愿可以作到商家标签的挖掘,菜品标签的挖掘和情感分析的挖掘等等。
为了挖掘商户标签,首先咱们要让机器去阅读评论。咱们使用了无监督和有监督的深度学习模型。
无监督模型咱们主要用了LDA,它的特色是成本比较低,无需标注的数据。固然,它准确性会比较不可控,同时对挖掘出来的标签咱们还须要进行人工的筛选。至于有监督的深度学习模型,那么咱们用了 LSTM,它的特色是须要比较大量的标注数据。
经过这两种模型挖掘出来的标签,咱们会再加上知识图谱里面的一些推理,最终构建出商户的标签。
若是这个商户有不少的评价,都是围绕着宝宝椅、带娃吃饭、儿童套餐等话题,那么咱们就能够得出不少关于这个商户的标签。好比说咱们能够知道它是一个亲子餐厅,它的环境比较别致,服务也比较热情。
下面介绍一下咱们如何对菜品进行标签的挖掘?咱们使用了 Bi-LSTM 以及 CRF 模型。好比说从这个评论里面咱们就能够抽取出这样的 Entity,再经过与其余的一些菜谱网站作一些关联,咱们就能够获得它的食材、烹饪方法、口味等信息,这样咱们就为每个店菜挖掘出了很是丰富的口味标签、食材标签等各类各样的标签。
下面再简单介绍一下,咱们如何进行评论数据的情感挖掘。咱们用的是 CNN+LSTM 的模型,对于每个用户的评价咱们都可以分析出他的一些情感的倾向。同时咱们也正在作细粒度的情感分析,咱们但愿可以经过用户短短的评价,分析出他在不一样的维度,好比说交通、环境、卫生、菜品、口味等方面的不一样的情感分析的结果。值得一提的是,这种细粒度的情感分析结果,目前在全世界范围内都没有很好的解决办法,可是美团大脑已经迈出了很是重要的一步。
下面介绍一下咱们的知识图谱是如何进行落地的。目前业界知识图谱已经有很是多的成熟应用,好比搜索、推荐、问答机器人、智能助理,包括在穿戴设备、反欺诈、临床决策上都有很是好的应用。同时业界也有不少的探索,包括智能商业模式、智能市场洞察、智能会员体系等等。
如何用知识图谱来改进咱们的搜索?若是你们如今打开大众点评,搜索某一个菜品时,好比说麻辣小龙虾,其实咱们的机器是已经帮你们提早阅读了全部的评价,而后分析出提供这道菜品的商家,咱们还会根据用户评论的情感分析结果来改进这些搜索排序。
此外,咱们也将它用在商圈的个性化推荐。当你们打开大众点评时,若是你如今位于某一个商场或者商圈,那么你们很快就可以看到这个商场或者商圈的页面入口。当用户进入这个商场和商户页面时,经过知识图谱,咱们就可以提供“千人千面”的个性化排序和个性化推荐。
在这背后其实使用了一个“水波”的深度学习模型,关于这个深度学习模型更详细的介绍,你们能够参见咱们在 CIKM 上的一篇论文。
全部的这一切,其实还有不少的技术突破等待咱们去解决。好比整个美团大脑的知识图谱在百亿的量级,这也是世界上最大的餐饮娱乐知识图谱,为了支撑这个知识图谱,咱们须要去研究千亿级别的图存储和计算引擎技术。咱们也正在搭建一个超大规模的 GPU 集群,来支持海量数据的深度学习算法。将来,当全部的这些技术都成熟以后,咱们还但愿可以为全部用户提供“智慧餐厅”和“智能助理”的体验。
文章转载自 AI 科技大本营(rgznai100),部份内容有修正。
仲远,博士,美团点评高级研究员、高级总监,美团 AI 平台部 NLP 中心负责人、大众点评搜索智能中心负责人。加入美团点评前,担任美国 Facebook 公司 Research Scientist,负责 Facebook 产品级 NLP Service。在 Facebook 以前,担任微软亚洲研究院的主管研究员,负责微软研究院知识图谱项目和对话机器人项目。多年来专一于天然语言处理、知识图谱及其在文本理解方面的研究,在国际顶级学术会议如 VLDB、ICDE、IJCAI、CIKM 等发表论文30余篇,得到 ICDE 2015 最佳论文奖,并是 ACL 2016 Tutorial “Understanding Short Texts”的主讲人,出版学术专著3部,得到美国专利5项。在 NLP 和 KG 研究领域及实际产品系统中均有丰富经验,研究领域包括:天然语言处理、知识图谱、深度学习、数据挖掘等。
美团点评 NLP 团队招聘各种算法人才,Base 北京上海都可。NLP 中心使命是打造世界一流的天然语言处理核心技术和服务能力,依托 NLP(天然语言处理)、Deep Learning(深度学习)、Knowledge Graph(知识图谱)等技术,处理美团点评海量文本数据,打通餐饮、旅行、休闲娱乐等各个场景数据,构建美团点评知识图谱,搭建通用 NLP Service,为美团点评各项业务提供智能的文本语义理解服务。咱们的团队既注重AI技术的落地,也开展中长期的NLP及知识图谱基础研究。目前项目及业务包括美团点评知识图谱、智能客服、语音语义搜索、文章评论语义理解、美团点评智能助理等。真正助力于“帮你们吃得更好,生活更好”企业使命的实现,优化用户的生活体验,改善和提高消费者的生活品质。欢迎各位朋友推荐或自荐至 hr.ai@meituan.com。
算法岗:NLP算法工程师/专家/研究员 、知识图谱算法工程师/专家/研究员
工程岗:C++/Java研发专家/工程师 、AI平台研发工程师/专家
产品岗:AI产品经理/专家(NLP、数据方向)