微软亚洲研究院有一位大名鼎鼎的个人助理,昵称EDI(音同Eddie),从帮助员工预订会议室到更新梳理公司内部“八卦”信息,随叫随到全年无休;不仅如此,EDI对员工们的喜好也堪称了如指掌,知道你最喜欢什么时候、最常在哪里开会,也知道你最关心哪些新闻。这份体贴赢得了越来越多员工的信任和喜爱,目前在研究院中已经有 超过一半的会议 是由EDI来安排——是的,你没猜错,EDI是人工智能。
EDI为何如此聪明?一方面,EDI拥有精准的自然语言理解和对话能力;另一方面,利用深度学习和社交网络融合等前沿技术,EDI为每个用户构建了一张关于他们的职场知识图谱。本文首先介绍如何构建用户的职场信息图谱,这是EDI个人助理的“大脑”,后续文章将介绍如何赋予EDI自然语言理解和对话能力,让它能为主人愉快地工作,欢迎有兴趣的读者继续关注。
“The more it has, the more it’s him.” 在英剧《黑镜》第二季第一集当中,女主人公通过和机器人对话的方式怀念自己逝去的男友。借助大数据的力量,这个机器人能够从主人公男友的社交网络甚至私人邮件中抽取和整合他的个人信息、关系网络和语言习惯,构建属于这位男生的个性化知识图谱,从而实现对他惟妙惟肖的模仿——如上图台词所说,系统抓取到的信息越多,机器人模仿的语言行为就越和他本人相似。
若说《黑镜》里的机器人是基于关于用户的全方位知识图谱,那么,本文要介绍的EDI 则专注于用户的一个侧面,即用户的职场知识图谱。
在一个机构里,我们把员工的职场知识图谱叫做EDI Graph( Enterprise Deep Intelligence Graph ),图谱内的信息包括员工的部门、技能、项目、文档、时间、会议室和办公室等,其中每条信息又有各自丰富的属性,信息与信息之间也存在丰富的关联;这些信息的来源主要分为企业内部数据和互联网数据两部分,其中,企业内部数据主要包括内部网页、文档、会议记录、员工基本资料等数据,互联网数据则主要包括维基百科、学术论文、LinkedIn等公开数据。如何将来自公司内部、社交网络、Web等不同来源的异构数据进行梳理和融合、构成一张完整的职场知识图谱,这是构建EDI Graph的关键技术。只要有了图谱,就能构建EDI Bot,让这个昵称为EDI的机器人拥有“大脑”,能进行理解和分析,了解每个员工的专长以及从事的工作内容,成为员工贴心的个人助理。
与《黑镜》里的机器人相似,EDI也是知道信息越多就越能了解人以及人与人之间的关系,越接近员工的工作知己。
“EDI, where is BJW1?”
对于同一件事,人们往往会有不同的表达,这是人与机器的一大不同。 举例:“BJW1”是英文“北京微软西1号楼“的简称,但人们在不同情境下可能还有其他表达方式,比如“BJW-1”、“Beijing West 1”、“Microsoft Tower 1,Beijing,China”以及“微软1号楼”等,这些表达上的差异无法用简单的字符串匹配或缩写匹配的方式来完成相似度的计算。那么,EDI该如何知晓它们所指的其实是同一个地点呢?
我们的做法是将这些千变万化的表达看作不同的语言,通过机器翻译技术,找到词与词之间具有的某种翻译关系,从而实现相似词语的融合。
首先,利用种子规则,找到信息中高准确度的种子节点对,利用种子节点对中属性的不同表达,构建平行语料库。之后,使用深度学习技术构建翻译模型,完成不同信息源之间的属性“翻译”。通过机器翻译,不仅能计算简单字符串匹配无法计算的相似表达,甚至还能计算不同语言中同一表达的相似度,让EDI 能够吸收消化更多更广泛的信息来源,对用户的表达做出更准确的判断。
“Hi EDI, schedule a meeting with David now.”
得到不同表达的相似度之后,如何精准对应也是一门学问。例如,只要给个人助理EDI发送一条非常简洁的信息“帮我和David订个会议室”,EDI就能帮助员工准确预订好会议室。然而只要打开微软员工目录,就会发现名为David的员工大约有两千名,EDI如何分辨他们并从中确定要和用户开会那个David究竟是哪一个呢?要知道,这两千位名为David的员工,有些位于同一部门,甚至职务也都相同,这时,单单通过机器翻译得到的属性相似度,可能无法做出正确的对应。
精确匹配的突破口在于不同David的职场知识图谱,其网络结构也是不同的,我们使用协同训练(Co-Training)的方法,迭代地进行图结构信息的匹配。在每一轮迭代中,首先利用当前已匹配的实体对,更新神经网络翻译模型,并利用更新后的模型完成属性间的相似度计算;同时,根据当前已匹配节点计算待匹配节点的公共相邻节点对,通过结合属性匹配和图结构,可以得到新的匹配集合,如此迭代直到收敛。
简单说,EDI能将职场知识图谱中同一个David的信息融合到一起,把不同的David放在各自节点上,然后通过参会历史、项目合作、内部的汇报关系等等,了解公司同事之间的远近,从而锁定用户真正想找的David,完成用户交给的安排会议并预订会议室的任务。
信息分析与理解
《黑镜》中的机器人系统对主人公男友在社交网络上的电邮、照片、视频甚至聊天记录进行了深入的分析和学习,从而实现对其惟妙惟肖的模仿。同样,EDI在掌握丰富的信息之后,也需要进一步分析和理解这些数据,才能深入了解企业中的每一个员工。
在一个企业中为员工构建职场知识图谱,最为基本也最为重要的一点,就是构建出每位员工的工作内容时间线,通过时间线我们就可以了解到“who,when,what”,即:谁,在何时,做过什么事情。
有了这些结构化的知识,如果想知道谁在做Cortana相关的项目,只需要问“Who is working on Cortana?”,EDI就能给出你想要的答案。这对构建企业智能应用具有极为重要的意义。
顺带指出,项目名称的抽取也不简单。我们无法通过简单地标注数据、训练模型或是基于规则的方法来进行抽取,因为不同行业、不同领域对于项目的表述可能千变万化,那么EDI是如何抽取出工作内容以及相关项目的名称呢?
我们认为,项目的名称都是语义完整的短语——例如,在“微软亚洲研究院在丹棱街5号”这句话里,“微软亚洲研究院”就是一个语意完整的短语——于是,我们先从企业内部的数据抽取出语意完整的短语,再从这些短语中划分出项目的名称。在微软内部,各种文档、网页等总量在千万这个数量级,而统计规则例如互信息、熵等,在数据量较大的时候可以有效地完成对短语的切分。因此,我们在递归神经网络(Recursive Neural Network)模型中通过后验正则化(Posterior Regularization)引入互信息、熵等统计量定义的偏序切分规则,在完成短语划分的同时,得到其对应的语意向量表示,最后通过度量语意信息来判断其是否是一个项目的名称。
小结
有了基于企业内部和互联网大数据构建员工的职场知识图谱EDI Graph,就能让机器人个人助理EDI Bot拥有聪明的“大脑”,为用户提供贴心的服务。我们将在后续的文章具体介绍EDI Graph怎么被运用到机器人的工作场景中,以及怎样通过平台让机器人获得与人进行自然语言对话的能力,敬请关注,也欢迎你就这一题目分享自己的见解和经验。