「全国各行业的销售大概有 8000 万人,他们每天都面临着同样的问题:我的客户在哪里,我如何能接触到我的客户。而百炼的思路是,利用互联网公开信息来解决这一问题,只不过需要非常深度的提取与推理。」百炼智能的 CTO 姚从磊这样介绍他们的产品所解决的问题。
成立半年以来,这家主要成员来自北大和清华的人工智能公司已经拿到了总额超过千万元的天使投资,而他们的产品,是一个在前人工智能时代,乃至前计算机时代就必不可少的存在:档案。
八月,机器之心来到了百炼智能,不同于大多数扎堆在五道口与中关村的人工智能创业公司,他们将地址定在了闹中取静的北京朝阳东二环附近,「这里离我们的客户更近」,CTO 姚从磊说。我们聊了聊百炼提供的「基于公开信息的动态全息档案」里包含哪些信息,如何生成,又是如何在场景里获得应用的。
机器之心:资料显示百炼智能希望提供「基于公开信息的动态全息档案」,能否详细介绍一下这个概念?
百炼希望完成的「基于公开信息的动态全息档案」,是利用公开互联网信息建立的以机构和人物为核心的知识图谱。
全息档案是常见于商业调查中的一个词,通常指用多维度的信息对机构和个人进行的刻画,「档案」体现了信息的权威性和信度,「全息」则强调了全时间线与多维度覆盖。「基于公开信息」是指所有的信息都是能够通过爬虫,从 公开互联网中获取的信息,「动态」意味着档案具有时效性,能够跟随公开信息的变化而进行及时的变更。
机器之心:全息档案中都包含哪些维度的信息?
对于公司来说,首先是公司的简介,第二是公司的产品与业务线,第三是其核心团队。核心团队会不限于工商信息中的相关人员,而是全公司具有决策权的人员,以组织结构图的形式体现出来。
除了上述这些基本信息之外,爬取的字段并不是一开始就确定好的、一成不变的。一开始,我们根据自己的产品需求去定义,然而随着 B 端客户逐渐增加,待爬取的字段也随着爬取的过程逐渐扩充,并逐步达到稳定。
对于人物来说,首先是人物介绍,图片,时间经历(timeline),他/她在公开场合发表过的观点,个人动态,以及公开的同乡、同学、同事、同参加商业活动等类型的社会关系。
机器之心:如何建立全息档案?
建立全息档案的技术框架包括 Web 索引层、知识图谱层和应用层三部分。
Web 索引层是我们逐步做出的一个「搜索引擎」,每天不断爬取互联网中的网页,留下可能与我们感兴趣的机构——我们称为种子机构——相关的部分,经过爬取、解析、清洗、建立索引等步骤入库,向上方的知识图谱层提供接口。
知识图谱层首先会进行命名实体提取与关系分类。
命名实体提取需要从索引中获取与种子机构相关的每一个网页。「种子机构」列表相当于一张在爬取过程中不断变长的名单。从最大型的央企、上市公司以及各领域中的知名公司、各大知名院校开始,在和它们相关的每一个网页中,知识图谱层都会提取出新的命名实体,包括机构、人物,也包括时间、地点。其中尚未出现在「种子机构」名单中的机构,会以迭代循环的方式加入到名单中。而在一个预定长度的窗口内同时出现的任意两个命名实体,则会对其关系进行分类。
由于网络公开信息是杂乱且可信度存疑的,因此在提取和分类后,系统会对提取出来的命名实体、关系和属性信息进行清洗,过滤掉错误的信息,解决冲突,构建知识图谱。根据一些事先确定好的规则,系统也会在知识图谱上进行关系的推理和扩展。例如,两个人是同一个学校、同一个院系毕业,则二者被定义为具有「同系关系」。再比如,两个机构的核心团队成员关系很密切,则视为两个机构存在密切关系。
机器之心:能否举例说明实体提取的输入输出分别是什么?
例如,在上文的新闻网页文本内容中,包含了「链家集团」、「融创中国」、「新希望」等机构,以及「左晖」、「孙宏斌」、「张明贵」等人物。我们希望得到的序列标注输出是,所有非机构和人物的词,比如「公开」、「资料」等,对应的标签都是 UNK,而所有机构和人物中的词,比如「融创」、「中国」等,对应的标签都是机构和人物的相应类型。
机器之心:能否具体说明选用的实体提取与关系分类的技术解决方案?
实体提取/关系分类的解决方案有两种。一种是经典的管道式(pipeline),首先用序列标注的思路来解决命名实体提取问题,再用分类的思路来解决实体关系提取问题。另一种是将实体提取和关系提取统一表述为序列标注问题,用序列标注的解决思路(LSTM+CNN)来统一处理两个问题。
为了确保知识图谱的高质量和可产品化,我们使用了优化后的管道式的处理逻辑:即,在实体提取之后,利用基于第三方数据源训练的分类器剔除错误的实体,以保证在进入到关系提取之前,实体准确率在 95% 以上。
我们的实体提取与分类框架如下图所示:
框架的输入是经过基础分词的词序列,以及其中一些词对应的 HTML 标签信息,包括超链接、字体信息和颜色信息等。每一个词经过词嵌入(word embedding)扩展为词向量后,与 HTML 标签信息一起组成了完整代表每一个词的向量。词向量经过 BiLSTM 层,利用 BiLSTM 的双向序列建模能力,捕捉一个词与前后词序列的相关关系,将每一个词扩展为包含了上下文信息的高维向量。最后,把高维向量输入直链 CRF 层(Linear-chain CRF)层,输出每一个词的对应标签。
词嵌入向量和 HTML 标签向量中拥有丰富的决策所需的信息,而通过整合 BiLSTM 全面刻画上下文时序信息的能力和 CRF 的序列标注建模能力,上述框架的表达能力是非常高的。
机器之心:在实体提取和关系分类的基础上继续进行推理的目的是?
我们将推理机制称为「时空碰撞」。比如两个公司的负责人,并没有代表各自公司在公开场合有交集,但是他们分别于 1999 年和 2000 年加入清华电子系的一个特定实验室,那么我们会认为他们之间有比较强的关联关系。
通过时空碰撞,我们可以为上一步基于事实的知识图谱建立许多新的边,让关系图谱更加细致与密集。
推理工作的难点在于分布式索引:当知识图谱规模变大后,理论上每一个新增的机构和人物都需要和现有图谱之中的所有已知机构和人物进行关系计算和推理,但是这会让计算量指数级的增加。因此我们需要比较好的索引技术,能够快速地定位与新增的公司与个人真正相关的部分节点,以及因为新节点的接入而关系发生变化的原节点。
机器之心:能否给出一些「动态全息档案」的应用场景?
公司现在主要在做销售场景。
我们正在和某著名快消公司进行合作。该公司正在面向企业客户推广一种新零售解决方案,因此它的销售团队希望告诉销售员,应该去当前区域内的哪家公司进行推广、和哪位负责人联系进行推广。
针对第一个问题,我们从公司的全息档案中利用所在地理位置、规模、员工平均年龄、收入水平、学历水平和企业风险等信息,查找切分出「公司规模相对较大、福利较好,愿意接受新零售方案,同时员工平均年龄较低、平均收入较高,是特定产品的消费者」这样的一部分。
针对第二个问题,我们从公开信息中找到公司的行政方面的负责人是谁,告诉销售,这位是你需要联系的负责购买决策的关键人士,并提供触达该关键人物的关系路径。
除此之外,我们也在打磨一个面向销售的线上产品。这个产品能够在短时间内综合各种公开互联网信息,绘制公司组织架构图,定位关键负责人。同时,找到能够连接特定销售与特定的负责人之间的中间人,让销售能够通过中间人的信任背书与负责人建立联系。
机器之心:选择做全息档案的原因?
首先,现在互联网的信息规模是十几年前的几百倍,很多信息出现在互联网上,变成可以发现。其次,许多技术,尤其是 NLP 技术的发展,使得从大量非结构化信息中抽取有效结构化信息的难度降低。
另一方面,全国各行业的销售人员大概有 8000 万,即使能够覆盖到 30%,也是一个非常庞大的规模。而且我们的整套「全息档案」的技术与服务的模式是可以扩展的,不止局限于销售场景,还有很多其他的场景可以应用。
机器之心:「动态全息档案」期望涵盖多少公司与个人?
一开始我们会觉得「多多益善」,但是逐渐我们发现,一份好的「动态全息档案」更多应该是场景驱动的、领域驱动的。
因此我们主要从金融、教育、医疗和快消这些领域入手,选择具有一定规模的、所处领域比较活跃的公司。成立以来,现在我们覆盖的企业数量在 100 万左右,人员超过 1000 万。而按照我们的统计与估计,全国符合条件的公司多达数百万家。一家数百人规模的公司中,拥有决策权的需要覆盖的人数大约在数十人左右。除此之外,我们还要覆盖「如何能够找到一个特定的人」的关系链上的所有人,综合起来,大约需要覆盖 1 亿人。