回顾·知识图谱在贝壳找房的从0到1实践

4,851 阅读13分钟

本文根据贝壳找房王贺青老师在DataFun Talk人工智能技术沙龙中分享的《知识图谱在贝壳找房的从0到1实践》编辑整理而成,在未改变原意的基础上稍做整理。

今天分享的内容有四个方面,第一个介绍下知识图谱,第二个讲为什么 “可以&要”在贝壳找房中落地知识图谱。第三个就是贝壳找房中的知识图谱落地应用,最后讲一下存在挑战和未来展望。


首先介绍下知识图谱的简史。1960年提出了语义网络,作为知识表示的一种方式,主要是帮助自然语言的理解,典型的就是WordNet,从不同维度表达词与词之间的语义关系。1980年提出了本体论,先定义一些本体再定义它们相关的关系,成熟的应用就是专家系统。1989年提出了万维网,然后1998年从超文本连接到语义网络,就是将每一个网页加一个语义含义。到了2006年提出了链接数据的概念,将互联网上的数据建立一些联系,如姚明的页面出现他妻子叶莉的信息,会给“叶莉”加一个链接。在2012年Google提出了知识图谱,目的是提升整个搜索效果。

知识图谱旨在描述真实世界中存在的各种实体或概念,以及他们之间的关联关系。它的每一个实体用全局唯一确定的ID来标识,就如每个人都有一个身份证号码;第二个就是用属性-值对来刻画实体的内在特性,用关系来连接两个实体,刻画他们之间的关联。如刻画姚明:属性-值<姚明+身+2.26米>,关系型<姚明+妻子+叶莉>。


从知识图谱的一个发展史及其定义可以看出知识图谱具有5个视角优势,首先是Web视角,建⽴数据之间的语义链接、⽀持语义检索,第二个就是NLP视角,对⽂本进⾏结构化语义抽取。然后就是KR视角(知识表示),利用计算机的符号表示和处理知识。再者就是AI视角,利用知识图谱辅助理解人的语言,目前AI大部分是在垂直领域落地,会建立自己的知识库,帮助垂直领域人工智能的实施。DB视角,就是以图的方式存储知识。知识图谱展开其实是一个很大的知识网络,存储时会利用各种的图数据库存储。


目前知识图谱应用场景分为两块,一种是通用领域,一种是垂直领域。通用领域如Google的搜索领域,国内的百度和搜狗也在搜索领域应用;还有些聊天领域,如智能机器人、智能手表。这种应用有一个特性就是依赖通用知识图谱,构建依赖国外维基百科,国内有百度百科、搜狗百科,将页面中结构化数据抽取出来构建知识图谱来支撑通用领域的问答和搜索。垂直领域应用越来越多,如金融、电商、公共安全、农业、电信等,如金融里面的反欺诈,公共安全领域的追捕犯罪分子。不管是通用领域还是垂直领域落地有几个共性条件,第一个必须有一个结构化的数据,这个数据还要高质量,尽可能的海量数据;第二在数据基础上会抽象出一个本体库,从本体层面去定义实体类型,以及表示他们的关系,第三就是有可以利用数据和本体库的智能应用场景,依据知识图谱具有的优势和现有条件来确定业务场景是否需要知识图谱。目前知识图谱支撑的领域有搜索、问答、推荐、图数据关系挖掘。


接下来讲一下知识图谱为什么能在贝壳找房中落地。首先我们有丰富的数据可以利用,从两个维度数据:结构化和非结构化。结构化有楼盘字典,数据亿级实体,10亿级的三元组。覆盖类型有房源、客源、小区、学区、地铁站、带看、成交等数据。还有非结构化数据,经纪人与用户对话数据,级别是亿级,主要是用户找房、咨询经纪人、委托、带看、成交过程中产生的对话数据。第三种是用户问答及百科文章,量级是100万+,非结构化数据主要是用户关于房产领域的问答及百科知识数据。

结构化数据楼盘字典覆盖类型有房源、客源、经纪人体系,还会涉及些客户和业主,都会作为链家的参与人。

然后讲一下为什么要在贝壳找房中落地知识图谱,因为贝壳找房有丰富的应用场景,如智能搜索&推荐:提升用户的找房效率; 数据可视化:分析用户行为,挖掘数据之间关联, 智能问答:做经纪人的助手潜在客户找房咨询。右边的图是贝壳找房业务中的商业转化漏斗,这个过程涉及用户找房、到咨询经纪人、委托经纪人带看,最后成交几个环节。我们的目标就是帮助获得更多更优质的商机,以及提升他们的服务能力,帮助用户快速找到合适的房子,了解购房知识,拓宽这个漏斗图。


在智能搜索方面借助知识图谱AI+Web视角, 提升搜索意图理解;在智能推荐方面利用知识图谱的AI+DB视角;推荐相关的房子,在智能问答方面利用知识图谱NLP+AI视角,回答经纪人有关房子的问答。右图我们可以看到,在搜索一个学校时,我们可以看到与这个学校相关联的房源和学区等实体信息。


接下来讲一下贝壳找房中的知识图谱落地应用。一个知识图谱系统构建流程通常有五个部分,第一个是定义具体的业务问题,第二个数据搜集与处理,第三个是知识图谱的设计,第四就是知识图谱的存储,最后是应用开发及系统评估。

我们的知识图谱系统架构有五层,在数据层会有外网数据爬虫平台,大部分数据是内网数据,数据分为两块结构化数据和非结构化数据。处理层有预处理、归一化、数据融合以及推理计算。预处理方面结构化数据转换、半结构化数据抽取、文本关系抽取、数据标注,在处理完后会做一些实体名归一、属性归一、属性值归一。数据融合中会做一个实体对齐,因为实体会来自于不同的源,但是表达的是一个实体,可能存在交集或并集,或者一个属性有多个值,会做一个属性值的决策。推理计算会基于现有的数据做一些规则推理补充、pagerank、排序字段。整个生成后会形成一个知识图谱,建立ES索引或者neo4j索引,然后也会在hdfs或者hive里面进行备份,支持不同业务方调用数据。应用层有IM智能助⼿、智能客服、 智能搜索、图谱可视化。左边是我们的模式层,从类型定义、属性定义,最后构建本体库。本体库会支撑数据层、存储层、应用层。

知识图谱构建第一步工作就是本体构建,通过业务中涉及的问题抽象出相应的类型,我们抽象出四大类型交通、地点、人、组织机构,下面会再划分小的类型,大概有三十多种类型。

构建本体库使用构建工具protégé,主要有三块,第一块是class,第二部分是objects,这是个关系型的属性,描述两个实体关系的属性。Data property是内在属性,描述实体本身的属性。正常本体库构建是自下而上,从数据出发。但在我们的业务中会需要一些自自定义的属性,加入一些特殊的约束,因此采用自下而上与自上而下相结合构建本体库。在构建的过程中也加入了对属性关系的自定义约束,如是否加密、显示顺序、是否归一化等约束。


接下来介绍下知识图谱在IM智能助手中落地,应用场景是更快解决用户问题,提升经纪人的作业效率。依据历史经纪人与用户聊天数据进行了一个分类,用户主要问五种类型问题,75%是于房屋详情问题、10%是约带看、6%是贷款、3%是推荐。右图是整体75%问题中top20的意图占比,问的最多的是学区房问题。从0到1做这个事情,我们优先解决了75%房屋详情问题。


针对这些问题进行数据搜集与处理流程,首先从楼盘字典中获取所需的房源数据,然后进入知识图谱构建流程,整个统计完成后会计算其覆盖率,最后进入ES索引里面,最后会判断数据是否符合预期,符合后才会建立索引,也会对异常进行一些监控报警。


IM智能助手房源详情检索架构,首先用户问了一个问题,经过NLU模块中的分词、然后通过NER模块,DA做实体解析,然后意图识别。意图识别后进入检索模块,生成SQL,通过ES索引查询字段,查询到的字段进行结果的生成。结果生成阶段有个话术设计,让回答结果更人性化,还有个结果拼接。后期会针对不同经纪人自己定义话术模板。


IM中还有关于知识的问答,但是会存在有些问题答案不匹配,不是很精准,那么如何解决呢。我们对用户经常问的问题进行了分类,用知识图谱方式将问答对表示成三元组和事件三元组。遇到一个事情该怎么办和为什么,得到how和why事件型三元组;还有实体三元组,分为实体是什么和属性是什么,定义为what和ep型。第三种是区别性的,which型:实体A和实体B有什么区别。通过历史log随机抽样,符合三元组模式10%。


如何精准理解用户搜索意图,找到精准答案。如“公积金贷款条件?”我们会把公积金作为一个实体,将条件作为一个属性,这种就是EP型,还有“砌体结构墙是什么?”这种就是what型。“签错定金类型了怎么办?”,将“签错定金”定义为event,“怎么办”定义为属性,这种归为how型。是一种基于语义的搜索而不是传统基于关键词或者语义相似度做计算。


上图是基于三元组的精准问答,分为online和offline。offline部分我们会离线的去从FAQ( Frequently Asked Questions,常见问答库)里面做三元组的抽取和挖掘工作,将历史FAQ中符合三元组的问题抽取出相应的三元组。Online部分同样一句用户query去识别意图,进入知识库进行相应的检索,最后返回一个唯一符合的三元组形成答案。当然挖掘得到的三元组需要进行人工标注,目的就是要确保回答的精度和知识库的质量。


知识图谱还可以在很多场景进行应用优化,我们建立知识图谱后,可以通过检索挖掘两个实体间的关系,通过挖掘同一用户不同搜索间的关系,可以更好地做搜索优化、搜索召回优化。当我们搜某一个小区附近的房子,但是没有相应房源,推荐小区附近小区的房子。


上图是我们自己研发的图数据可视化平台,将贝壳找房所有涉及的实体进行可视化展示。目的是展示内部数据间关联关系,后期让C端用户能够更好的找房子而不是直白的搜索列表,返回什么就看什么,可以主动的在知识图谱知识网络中漫游。

总结下今天分享的内容,首先是知识图谱优势五大视角:Web + NLP + KR + AI + DB。 知识图谱落地充分必要条件三个方面:数据 + 本体库 + 智能应用场景。贝壳找房中知识图谱落地,1.房产行业数据: 结构化楼盘字典数据 + 非结构化的用户文本数据房产;2.行业本体库:支持图谱数据构建 + 智能应用;3.智能应用:智能搜索 + 智能问答 + 智能推荐 + 图谱数据可视化。

最后和大家分享下我们实践过程遇到的问题:1.构建本体库需要房产行业专家的加入及规范,2.房产行业实体词类型、实体词需要规范化及挖掘,大量非结构文本数据亟待结构化。未来的挑战:打造出房产领域最权威的知识图谱。提升B端智能应用效果,逐步推向C端。 将知识图谱深入结合贝壳找房业务场景深入结合,将图谱与地图找房、VR找房应用相结合。

作者介绍

王贺青,贝壳找房高级知识图谱工程师,现负责贝壳找房房产知识图谱的研发及落地应用。曾就职于搜狗,参与搜狗搜索通用领域知识图谱研发及应用。

团队介绍

贝壳找房智能搜索团队是贝壳找房基础技术中心的核心团队,负责贝壳找房搜索平台、智能搜索、智能客服等多个项目,同时负责打造房产行业数据仓库。在这里,你有机会和算法专家一起专研最新技术:包括知识图谱、NLP、数据挖掘,利用链家网数亿级房源信息、百科数据、UGC数据构建房产知识图谱,让房源、客户、经纪人之间的数据互联更加智能;也有机会将技术应用在最前沿的业务领域:智能问答、个性化推荐、智能客服、语音质检等。

——END——

首发公众号ID:datafuntalk,关注看更多文章。 

喜欢我们就分享一下吧~~