领域应用 | NLP 和知识图谱:金融科技领域的“双子星”

 

本文转载自公众号:恒生技术之眼

 

自然语言处理(Natural Language Processing, NLP,语义计算)和知识图谱(Knowledge Graph, KG,知识计算)作为认知智能的关键技术,正成为智能金融浪潮中新的热点。这两种技术在金融领域的应用场景有高度的重合,往往是互为依托、互为补充。

当NLP和知识图谱双剑合璧,会优先在金融的哪些场景实现落地?

各场景“标配”的核心能力分别有哪些?

国内外NLP和知识图谱技术在金融行业的应用到了怎样的程度?

读完这篇文章,或许能帮助你对这些前沿科技中的中流砥柱,有一个更清晰和全面的认识。

金融行业因其与数据的高度相关性,成为人工智能最先应用的行业之一,而NLP与知识图谱作为人工智能技术的重要研究方向与组成部分,正在快速进入金融领域,并日益成为智能金融的基石。

一般的Fintech公司只会集中在其中的某些业务方向,只要能深入掌握两到三种能力,就能具有相当的竞争力。在这些业务场景中,NLP和知识图谱技术往往需要共同应用,才能发挥出最大的效能。同时,一种核心能力可以在多个智能金融应用场景中得到应用,这些应用场景包括:智能投研、智能投顾、智能风控、智能客服、智能监管、智能运营等。接下来我们将分析不同的核心能力在各个应用场景的分布情况,对每一种核心能力进行简要介绍,给出它的应用场景,并列举部分国外的典型案例以供大家能够更好的理解和上手。

金融语义应用场景概念框

01

智能问答和语义搜索

智能问答和语义搜索是NLP的关键技术,目的是让用户以自然语言形式提出问题,深入进行语义分析,以更好理解用户意图,快速准确获取知识库中的信息。在用户界面上,既可以表现为问答机器人的形式(智能问答),也可以为搜索引擎的形式(语义搜索)。智能问答系统一般包括问句理解、信息检索、答案生成三个环节。智能问答系统与金融知识图谱密切相关,知识图谱在语义层面提供知识的表示、存储和推理,智能问答则从语义层面提供知识检索的入口。基于知识图谱的智能问答相比基于文本的问答更能满足金融业务实际需求。

智能问答和语义搜索的价值在金融领域越来越被重视。它主要应用的场景包括智能投研、智能投顾和智能客服。在智能投研领域,投研人员日常工作需要通过多种渠道搜索大量相关信息。而有了金融问答和语义搜索的帮助,信息获取途径将是“Just ask a question”。并且,语义搜索返回的结果不仅是平面化的网页信息,而是能把各方面的相关信息组织起来的立体化信息,还能提供一定的分析预测结论。在智能客服和智能投顾领域,智能问答系统的应用主要是机器人客服。机器人客服目前的作用还只是辅助人工客服回答一些常见问题,但已能较大地节省客服部门的人力成本。

典型应用案例如美国Alphasense公司为投研人员整合碎片化信息,提供专业金融知识访问工具。AlphaSense公司的产品可以说是新一代的金融知识引擎。它从新闻、财报、研报各种行业网站等获取大量数据、信息、知识形式的“素材”,通过语义分析构建成知识图谱,并提供高级语义搜索引擎、智能问答、交互式知识管理系统、文档(知识)协作系统,以对金融知识进行更加有效的管理、搜索、使用。

02

资讯与舆情分析

金融资讯信息非常丰富,例如公司新闻(公告、重要事件、财务状况等)、金融产品资料(股票、证券等)、宏观经济(通货膨胀、失业率等)、政策法规(宏观政策、税收政策等)、社交媒体评论等。

金融资讯每天产生的数量非常庞大,要从浩如烟海的资讯库中准确找到相关文章,还要阅读分析每篇重要内容,是费时费力的工作。如果有一个工具帮助人工快速迅捷获取资讯信息,将大大提高工作效率。资讯舆情分析的主要功能包括资讯分类标签(按公司、产品、行业、概念板块等)、情感正负面分析(文章、公司或产品的情感)、自动文摘(文章的主要内容)、资讯个性化推荐、舆情监测预警(热点热度、云图、负面预警等)。在这个场景中,金融知识图谱提供的金融知识有助于更好理解资讯内容,更准确地进行资讯舆情分析。

资讯舆情分析的应用主要在智能投研和智能监管这两个场景。目前市场上的辅助投研工具中,资讯舆情分析是必不可少的重要部分。资讯舆情分析作为通用工具更多是对海量定性数据进行摘要、归纳、缩简,以更加快捷方便地为投研人员提供信息,支持他们进行决策,而非直接给出决策结论。在智能监管领域,通过资讯舆情分析,对金融舆情进行监控,发现违规非法活动进行预警。

03

金融预测和分析

基于语义的金融预测即利用金融文本中包含的信息预测各种金融市场波动,它是以NLP等人工智能技术与量化金融技术的结合。

利用金融文本数据帮助改善金融交易预测模型的想法早已有之。本世纪初,美国就有人利用新闻和股价的历史数据来预测股价波动。2010年后,社交媒体产生了大量数据,基于Twitter、Facebook来预测股市的研究项目很多。最近,深度学习被大量应用在预测模型中。金融文本数据提供的信息是定性的(qualitative),而通常数字形式的数据是定量的(quantitative)。定性分析比定量分析更难,定性信息包含的信息量更大。有分析表明,投资决策人员在进行决策时,更多依赖于新闻、事件甚至流言等定性信息,而非定量数据。因此,可期待基于语义的金融预测分析大有潜力可挖。这个场景中涉及的关键NLP技术包括事件抽取和情感分析技术。金融知识图谱在金融预测分析中具有重要的作用,它是进行事件推理的基础。例如在中兴事件中,可根据产业链图谱推导受影响的公司。

基于语义的金融预测和分析在金融应用的主要场景包括智能投研和智能投顾。它的理想目标是能代替投资人员做投资预测,进行自动交易,但目前还只是作为投资人员的投资参考。将不同来源的多维度数据进行关联分析,特别是对非结构化数据的分析,比如邮件、社交网络信息、网络日志信息。从而挖掘和展现出未知的相关关系,为决策提供依据。典型的应用案例如美国Palantir公司提供基于知识图谱的大数据分析平台。其金融领域产品Metropolis,通过整合多源异构数据,构建金融领域知识图谱。特点是:对非结构化数据的分析能力、将人的洞察和逻辑与高效的机器辅助手段相结合起来。另一个例子如Kensho公司利用金融知识图谱进行预测分析。在英国脱欧期间,交易员成功运用Kensho了解到退欧选举造成当地货币贬值;曾准确分析了美国总统任期的前100天内股票涨跌情况。

04

文档信息抽取

信息抽取是NLP的一种基础技术,是NLP进一步进行数据挖掘分析的基础,也是知识图谱中知识抽取的基础。采用的方法包括基于规则模板的槽填充的方法、基于机器学习或深度学习的方法。按抽取内容分可以分为实体抽取、属性抽取、关系抽取、规则抽取、事件抽取等。

在这里的文档信息抽取特指一种金融应用场景。指从金融文档(如公告研报)等抽取指定的关键信息,如公司名称、人名、指标名称、数值等。文档格式可能是格式化文档(word, pdf, html等)或纯文本。对格式化文本进行抽取时需要处理并利用表格、标题等格式信息。文档信息抽取的应用场景主要是智能投研和智能数据,促进数据生产自动化或辅助人工进行数据生产、文档复核等。

05

自动文档生成

自动文档生成指根据一定的数据来源自动产生各类金融文档。常见的需要生成的金融文档如信息披露公告(债券评级、股转书等)、各种研究报告。

自动报告生成属于生成型NLP应用。它的数据来源可能是结构化数据,也可能是从非结构化数据用信息抽取技术取得的,也可能是在金融预测分析场景中获得的结论。简单的报告生成方法是根据预定义的模板,把关键数据填充进去得到报告。进一步的自动报告生成需要比较深入的NLG技术,它可以把数据和分析结论转换成流畅的自然语言文本。

自动文档生成的应用场景包括智能投研、智能投顾等。它的典型应用案例如美国的Narrative Science,它从结构化数据中进行数据挖掘,并把结果用简短的文字或依据模板产生报告内容。又如Automated Insights,它为美联社自动写出了10亿多篇文章与报告。

06

风险评估与反欺诈

风险评估是大数据、互联网时代的传统应用场景,应用时间较早,应用行业广泛。它是通过大数据、机器学习技术对用户行为数据分析后,进行用户画像,并进行信用和风险评估。

NLP技术在风控场景中的作用是理解分析相关文本内容,为待评估对象打标签,为风控模型增加更多的评估因子。引入知识图谱技术以后,可以通过人员关系图谱的分析,发现人员关系的不一致性或者短时间内变动较大,从而侦测欺诈行为。利用大数据风控技术,在事前能够预警,过滤掉带恶意欺诈目的人群;在事中进行监控,发生欺诈攻击时及时发现;在事后进行分析,挖掘到欺诈者的关联信息,降低以后的风险。

在金融行业,风险评估与反欺诈的应用场景首先是智能风控。利用NLP和知识图谱技术改善风险模型以减少模型风险,提高欺诈监测能力。其次,还可以应用在智能监管领域,以加强监管者和各部门的信息交流,跟踪合规需求变化。通过对通信、邮件、会议记录、电话的文本进行分析,发现不一致和欺诈文本。例如欺诈文本有些固定模式:如用负面情感词,减少第一人称使用等。通过有效的数据聚合分析可大大减少风险报告和审计过程的资源成本。从事此类业务的Finctech公司很多,如Palantir最初从事的金融业务就是反欺诈。其他如Digital Reasoning、Rapid Miner、Lexalytics、Prattle等。

07

客户洞察

客户关系管理(CRM)也是在互联网和大数据时代中发展起来,市场相对成熟,应用比较广泛,许多Fintech公司都以此为主要业务方向。现代交易越来越多是在线上而不是线下当面完成,因此如何掌握客户兴趣和客户情绪,越来越需要通过对客户行为数据进行分析来完成。

NLP技术在客户关系管理中的应用,是通过把客户的文本类数据(客服反馈信息、社交媒体上的客户评价、客户调查反馈等)解析文本语义内涵,打上客户标签,建立用户画像。同时,结合知识图谱技术,通过建立客户关系图谱,以获得更好的客户洞察。这包括客户兴趣洞察(产品兴趣),以进行个性化产品推荐、精准营销等。以及客户态度洞察(对公司和服务满意度、改进意见等),以快速响应客户问题,改善客户体验,加强客户联系,提高客户忠诚度。

客户洞察在金融行业的应用场景主要包括智能客服和智能运营。例如在智能客服中,通过客户洞察分析,可以改善客户服务质量,实现智能质检。在智能运营(智能CRM)中,根据客户兴趣洞察,实现个性化精准营销。国外从事这个业务方向的Fintech公司很多,如Inmoment,Medallia,NetBase等。

各种核心能力在智能金融的主要应用场景呈以下分布:

小结

NLP和知识图谱两种技术本身都还在发展成长过程中,因此在金融落地过程中势必也还会面临许多新的课题和挑战,任重而道远。一方面,人工智能必须与金融的具体业务场景切合,找到金融企业需求痛点,真正提升客户生产效率,给客户带来价值;另一方面,人工智能是基础技术学科,技术难度大,人才要求高,在核心技术和关键算法上需要有突破有优势,才能不断提升市场竞争力。所以,场景驱动和技术研发需要相辅相成、紧密结合。相信金融智能语义技术的应用将会有广阔的发展空间,推动智能金融迈向一个新的台阶。

随着时代变化,加之自身业务拓展的需求,以提供金融技术为核心业务的恒生电子已深度布局智能金融领域。作为金融科技公司,恒生始终坚持着连接百万亿、让金融变简单的愿景和使命。在即将进入的人工智能时代,恒生将持续在人工智能应用于金融创新的征途上迈进,一如既往地用技术与金融机构紧密合作,助力金融机构建设服务平台,并提供更加贴近用户需求的服务。


OpenKG.CN

中文开放知识图谱(简称OpenKG.CN)旨在促进中文知识图谱数据的开放与互联,促进知识图谱和语义技术的普及和广泛应用。


文章转载自公众号

恒生技术之眼

 

领域应用 | 人工智能+知识图谱:如何规整海量金融大数据?

本文转载自公众号:恒生技术之眼

21世纪以来,人类社会信息资源的开发范围持续扩大,经济、社会信息随着经济活动加剧得到空前的开发,信息资源总量呈爆炸式增长,我们从最初的“信息匮乏”一步踏入到“信息过量”时代。

个人如此,行业亦然:随着大数据应用的不断发展,金融机构的经营决策、营销服务越来越依赖于诸如新闻舆情、企业信用、热点概念等企业外部数据,而这些数据的应用场景也愈加需要与金融机构内部的数据打通,形成数据融合计算。再加上人工智能的异军突起,大量非结构化数据正在被人工智能结构化掉,隐藏在文档中的信息价值正在不断的被“机器”发现并加以大规模的使用,大数据、人工智能让金融机构的数据治理工作又重新回到了“混乱”的起点。面向人工智能的大数据治理,已经成为金融IT向金融DT转型所必须面对的一个严峻课题。

人工智能的应用现状

在笔者看来,人工智能就是一种数据服务能力,智能金融本质上就是金融DT服务,发展人工智能就等于发展数据技术,人工智能系统智能化程度的高与低,与数据处理能力正相关。为了方便说明这一论点,我们先来看看金融机构在人工智能领域所做的各种探索和尝试。

 

人脸识别作为最早的人工智能技术在金融机构各种需要身份验证的应用场景中得到广泛的应用,早在3年前远程开户、网上营业厅等业务就已经在金融机构中逐步展开,这是人工智能进入金融领域比较早的案例。现如今智能客服也已成了一个极佳的人工智能的切入点:首先通过智能语音技术将客户的语音转化为文字,然后用自然语言处理NLP技术进行解析,识别用户意图,最后用用智能问答形式给与相关的解答和服务。

 

智能客服在大幅降低人工客服的服务压力的同时,还能有效提升服务品质和服务效率,这对那些面临大量客服工作的大型金融机构来说还是非常有吸引力的。还有一部分金融机构以产业链知识图谱为其人工智能的着眼点,构建上市公司及其产品服务的上下游关系,再通过追踪监控新闻、事件、舆情在产业链中的传导效应,形成具体的投研策略。产业链技术延伸出去就会形成智能投研、智能资管、智能风控等智能金融业务,这类人工智能技术更加贴合金融机构的金融业务的用户场景。也有金融机构,索性把人工智能当作自己的贴身秘书来使用,各类新闻、公告、年报的解读全部交给了人工智能,通过自然语言处理技术,提取公告中的财务数字,做自动摘要,形成正负面相关性的分析。这类数据通过人工智能技术预处理后,大量信息被提炼出来,结合部分人工审核和校对,基本上也可以上生产了。

数据智能服务:从感知到认知

有人把人工智能的发展分为三个阶段:计算智能、感知智能、认知智能,对应的DT服务的发展就是数据从信息向知识演化并最终生长为数据智能的演变过程。当前大部分金融机构的人工智能还停留在感知智能向认知智能转化这个阶段,而主要工作场景还是在感知这一领域,所谓感知智能就是就是能听能说,具备一定的表达能力。很显然,人脸识别是图像视频这类非结构化数据的特征结构化的结果,这是让机器看懂人的图像;智能客服仰仗的是NLP的分词和意图识别能力,支撑问答系统的是强大的知识库和知识图谱技术,这是让机器理解人的语言;产业链知识图谱主要是传统三方资讯关系型数据转变为RDF三元组的一种数据存储形态的改变;各类新闻公告年报等的报告信息提取与加工,代表着非结构化数据结构化的一个过程,这是让机器替代人脑去读懂文档。

 

发展人工智能,光有感知能力显然是不够的,最终要能够具备认知推理的能力,从学术界看这个问题,有两条路可以走,一个是机器学习,一个是符号推理。机器学习大家都比较理解了,尤其是深度学习技术已经让语音识别、视频影响处理的能力超越了人类大脑的能力。符号推理,走的是另外一条路,最早指的就是专家系统,大量的知识被存储管理起来,用于检索,现如今,符号推理,是借助语义网络知识管理进行图分析挖掘的一种能力。符号推理在当前工业界落地的就是指知识图谱,基于RDF三元组存储的知识图谱,可以存储管理人类已有的各类知识,而这些知识又因为是一种实体关系属性的图表达,所以基于图的分析挖掘,表现出来的就是知识发现和推理的一种能力。

 

在我国金融行业,因为大数据本身的积累不够,做过标注的金融数据语料更加匮乏,所以造成一个结果,就是在金融行业,面向具体金融业务场景的机器学习的数据是不够的,更加谈不上深度学习了,结果就是基于机器学习的认知智能的发展必然受限。这里最直接的表现就是我们发现所有金融应用场景里,适合机器学习和深度学习的场景,是比较少的。很多机器学习不得不为NLP、知识图谱这种细节场景服务,或者机器学习和金融工程整合在一起,而主体还是金融工程,机器学习目前只是一种辅助工具,充其量就是多因子的一个加工手段而已。究其原因是金融行业业务相关的大数据的体系还没有完全构造出来。应用场景的数据还没有得到有效沉淀。

 

而符号推理在金融行业会有所不同,我们知道金融服务本质上就是一种信息服务,而金融对上市公司的公告、年报、新闻等等的资讯数据是天然敏感的,大多数玩金融的人,都是从处理这些信息开始的。很多行业研究员为了能够建立自己的竞争力,领先市场一步,每天加班加点的就是在阅读分析处理这类资讯数据。这类资讯数据基本上是一种非结构化形式存在的,三方资讯数据厂商通过人工采编的方式能够结构化掉其中一部分,而大多数数据还是需要人脑加工的。这就给了人工智能应用一个空间,通过自然语言理解NLU,再进行自然语言处理NLP,最后通过自然语言生成NLG,有了这几项技术,再结合知识图谱和机器学习的能力,将可以将这类非结构化数据的加工结果进行有效反馈。如果我们将NLP加工获取的金融词林,进一步挖掘获取的实体、关系、属性、概念、事件等信息,加以整理,建立他们之间的各类关系,那么一个基本的金融知识图谱就构造出来了。所以,我们会看到NLP技术在当前的人工智能领域的应用已经成为了热点,而KG是紧随其后的一项技术,大量的非结构化数据的提取达到一定的准确度后,机器就可以代替人,来完成大规模知识发现,最终形成知识计算所需要的“大知识“的数据储备,目前NLP的准确率还只能到60%上下,具体场景针对性优化后才可能到90%以上的水准。

 

在足够窄的应用领域,NLP技术通过了实战的考验。但面对海量大数据,基于文档互联的互联网体系想要转化为以实体关系为主体的语义网络,还有相当长的一段路要走。但我们还是有理由相信以广义NLP(新视频文字)技术为核心的人工智能将会统治相当长一段时间,直到非结构化数据的处理不再是问题以及非结构化数据和结构化数据能够相互融合,那么届时行业知识图谱、企业知识图谱的数据准备也已由点及面的建立起来,基于知识图谱的人工智能应用将大放异彩,金融领域的人工智能也就从感知智能正式过渡到认知智能阶段。

数据的价值演化

人工智能的发展本质上是数据价值的一个演化过程。计算智能对应的就是我们看到的多源异构大数据,我们将这些数据进行采集、清洗、转化加载到大数据中心后,数据变成各类有用的信息。如果我们将信息进一步提炼,通过知识构建与管理的一系列手段,便可以将信息转化为知识,存储起来。如果我们按照W3C的知识管理规范,对知识做RDF三元组的存储和管理,我们就能构造出来一系列的知识图谱。有了这个知识图谱,我们就具备了知识计算的能力,那么对于一个具体的金融场景来说,如果我们将金融业务场景的业务模型结合知识计算的能力,以及对大数据平台的数据进行机器学习的能力,就可以形成我们的金融大脑。

金融大脑=金融业务场景的业务模型

+知识计算+机器学习

我们将这类金融大脑,也就是大大小小的智能化场景,开放出去,就形成我们对传统金融的一个智能化变革。

面向人工智能的大数据治理

从以上的分析中,我们可以明确感觉到人工智能正在迅速改变金融机构,金融机构的数据计算的关注点,正在从企业信息系统内部的计算,转变为关注来自互联网和三方的外部数据的计算和处理上。

多元异构数据的整合,是未来金融机构将要长期面临的一个局面。数据难以融合,也就难以做到统一消费,从非结构化数据提取的实体关系、属性等信息,当他们不能融合到企业内部经营数据中去,就会再次形成信息孤岛,随着多元异构数据的量级不断攀升,这个信息孤岛将会呈现越来越严重的局面。在人工智能迅猛发展的今天,如何解决上述问题,是未来企业竞争中体现出来的核心竞争力之一。

以上所述的问题与挑战,就是我们今天所谈到的面型人工智能的大数据治理有待解决的问题。那么我们该如何行动呢?

第一步:多源异构数据源的统一管理。首先,我们要对多源异构数据源进行统一管理。这里既包括金融机构内部的经营数据,也包括来自三方资讯数据厂商的外部数据,以及来自互联网的各种大数据。

为了达到未来的智能化能力,我们需要将金融内部的结构严谨的业务系统数据图谱化,将具有明显关系特征的数据提取出来,再用这些数据对企业内部数据通过实体链接、数据标引等技术进行再组织;同时我们将三方数据中非结构化的那部分PDF、WORD等进行知识抽取,也提炼出实体关系属性等数据。最后对那些跟金融机构相关的互联网大数据,通过爬虫技术不断的抓取,并对这些网页半结构化数据进行结构化处理,同样提取其中的实体关系和事件信息。

第二步:大数据存储与计算。对于金融机构而言,无论是采用商业化的软件还是开源软件,都需要一个大数据平台将来自多源异构数据源的数据进行统一管理,可以把这理解为一个大数据中心的建立,只不过这个数据中心的主要构建技术是人工智能的三驾马车:知识图谱、NLP、机器学习。我们在大数据中心除了保留原始异构数据源的一份拷贝之外,还要对这些数据进行面向人工智能的数据处理,包括通过NLP进行实体挖掘、关系抽取、属性提炼;通过知识图谱保存NLP提炼出来的具有关系特征的各种数据以及用机器学习来加速这一进程的处理效率提升准确度等。

第三步:构造知识图谱。最后我们需要构造金融行业的一个知识图谱,可以是行业知识图谱,也可以是企业图谱。KG的建设是有一个完整的生命周期的,包括知识建模、知识获取、知识融合、知识计算以及知识应用的全过程。知识建模依赖与金融机构内部数据和来自三方的结构化数据,将ER关系转化为KG的Schema是这一个工作的重点。构造好Schema后,就可以进行知识获取工作了:首先导入关系型数据库的各类实体关系属性数据,然后通过知识抽取技术将各类非结构化数据结构化掉后,将散落在互联网大数据和三方非结构化数据中的知识进行整理合并到现有KG中去;接着通过实体消岐、指代消解等知识融合技术对KG的质量进行管理与维护;KG初步建立后,就可以通过图计算进行知识发现知识推理和挖掘等工作了。

至此,一个完整的面向人工智能的数据治理工作关于基础信息系统层面的建设就告一段落了。之后如果我们据此再逐步建立大数据大知识(KG)的管理规范,不断积累其中的业务应用模型,那么一个成熟可拓展的面向人工智能的大数据治理成果就会逐步呈现出来。届时,面向人工智能的大数据治理,势必能有效支撑智能金融从感知智能向认知智能的变革。

OpenKG.CN

中文开放知识图谱(简称OpenKG.CN)旨在促进中文知识图谱数据的开放与互联,促进知识图谱和语义技术的普及和广泛应用。


文章转载自公众号

恒生技术之眼

 

领域应用 | 用知识图谱玩唐诗,“唐诗别苑”附庸端午节的别样风雅!

 

本文转载自公众号:互联网教育国家工程实验室

端午节在每年的农历五月初五,又称端阳节、午日节、五月节等。端午节起源于中国,是古代百越一带崇拜龙图腾的部族举行图腾祭祀的节日。五月初五也是缅怀伟大的诗人屈原的日子。

此外,端午节还有一个重要的日常生活使命,那就是“全民卫生日”。《夏小正》载:“此日蓄药,以蠲除毒气。”《岁时广记》卷二十二“采杂药”引《荆楚岁时记》佚文:“五月五日,竞采杂药,可治百病。”所以端午这天,人们除了吃粽子,赛龙舟,还要挂菖蒲、蒿草、艾叶,薰苍术、白芷,喝雄黄酒,就是为了防病治病。全唐诗中对这一习俗就有记载,殷尧藩的《端午日》中写道:

 

少年佳节倍多情,老去谁知感慨生。

不效艾符趋习俗,但祈蒲酒话升平。

鬓丝日日添白头,榴锦年年照眼明。

千载贤愚同瞬息,几人湮没几垂名。

此处的“艾符”指艾草和驱邪符,端午日挂在门上以辟邪。“蒲酒”即菖蒲酒,古人有端午节饮菖蒲酒的习俗。“艾符”和“蒲酒”都有祛病消灾之用。

除了这首《端午日》,唐诗中还有很多关于端午佳节的诗篇,我们使用互联网教育智能技术及应用国家工程实验室研发的“唐诗别苑——基于知识图谱的全唐诗语义检索与可视化平台”搜索到了相关信息,试抄录几首,与大家分享。

端午安康

端  午

唐·李隆基

 

端午临中夏,时清日复长。
盐梅已佐鼎,曲糵且传觞。
事古人留迹,年深缕积长。
当轩知槿茂,向水觉芦香。
亿兆同归寿,群公共保昌。
忠贞如不替,贻厥后昆芳。

解析:端午节为农历五月初五,五月是仲夏,白昼越来越长,所以说“端午临中夏,时清日复长”。时当端午,用盐佐食梅子,饮酒欢乐,木槿茂盛,芦苇发出清香,心情愉快的唐明皇祝愿天下安康长寿,以显示皇恩浩荡。

竞渡歌(节选)

唐·张建封

五月五日天晴明,杨花绕江啼晓莺。
    使君未出郡斋外,江上早闻齐和声。
    使君出时皆有准,马前已被红旗引。
    两岸罗衣扑鼻香,银钗照日如霜刃。
    鼓声三下红旗开,两龙跃出浮水来。
    棹影斡波飞万剑,鼓声劈浪鸣千雷。
    鼓声渐急标将近,两龙望标目如瞬。
    坡上人呼霹雳惊,竿头彩挂虹霓晕。
    前船抢水已得标,后船失势空挥桡。

解析:这首诗是写“竞渡”的名篇,把竞渡活动写得最为传神,洋洋洒洒几十字,把竞渡的激烈场面、围观的喧嚣氛围描写得淋漓尽致。

端午日礼部宿斋

有衣服彩结之贶以诗还答 

唐·权德舆

 

良辰当五日,偕老祝千年。

彩缕同心丽,轻裾映体鲜。 
寂寥斋画省,款曲擘香笺。

更想传觞处,孙孩遍目前。

解析:唐人有端午节赠物的习俗,不仅在君臣之间,一般社会成员和家人之间也有。权德舆做官需要值班,不能和家人一起过端午,家人就送来了衣服(轻裾)和彩结(彩缕)等节日礼物。

表夏十首(其十)

唐·元稹

 

灵均死波后,是节常浴兰。

彩缕碧筠粽,香粳白玉团。

逝者良自苦,今人反为欢。

哀哉徇名士,没命求所难。

解析:“浴兰”指古人端午节“浴兰汤”的习俗,用草药煎汤淋浴。因为粽子用丝线缠裹,所以说“彩缕碧筠粽”。早期的粽子是用黍米做的,也称粽子为“角黍”。唐代开始用糯米代替黍米来制作粽子,色泽变白,味道香甜,所以形容粽子为“香粳白玉团”。

五  丝

唐·褚朝阳

 

越人传楚俗,截竹竞萦丝。

水底深休也,日中还贺之。 
章施文胜质,列匹美于姬。

锦绣侔新段,羔羊寝旧诗。 
但夸端午节,谁荐屈原祠。

把酒时伸奠,汨罗空远而。

解析:这里的“五丝”就是指百索、长命缕,表达了人们对长寿的一种期盼,反映出唐人乐生、重生的人生态度,他们追求幸福快乐的生活。

这么多诗人的作品,如果一个个地去检索,很花时间和精力,幸好小编机智地使用了一种最新的检索技术,海量信息,唾手可得,还有可视化信息呢。这项技术就是“唐诗别苑”——基于知识图谱的全唐诗语义检索与可视化平台,它用最新的前沿技术玩转唐诗,下面小编就为大家简单介绍一下。

唐诗别苑

基于知识图谱的全唐诗语义检索与可视化平台

 

功能一:语义检索——“没有你找不到的唐诗”

 

1.查询诗人信息或作品,可输入其名字或别号,如“李白”、“诗仙”

 

2.查询诗人交游状况,可输入形如:

  • “李白的好友”
  • “写给白居易的诗”
  • “白居易写给元稹的作品”

 

3. 查询诗歌地点、风格、主题、题材、意象、教学阶段等信息,可输入相关标签或将其组合,例如:

  • “李白的庐山诗”
  • “与陕西省相关的唐诗”
  • “风格质朴的爱情诗”
  • “关于节气的作品”
  • “适合小学生背诵的诗歌”
  • “中学阶段描写秋天的诗”

 

功能二:知识图谱可视化——“原来唐诗可以这么玩”

 

1.动态诗人社交网络:一眼看到谁是社交小王子

2.诗人迁徙游历图:唐代最厉害的驴友是谁?等待你来挖掘

3.作品地域热点图:哪里最令唐朝诗人驻足流连?

4.诗人知识图谱:诗人信息一网打尽

 

怎么样,是不是很有意思?

既有知识性,又有趣味性

学习效率一下提高啦

小编迫不及待地想试试了!

欢迎访问网站:

http://aied.bnu.edu.cn/poem

一起玩转唐诗!

长按二维码,关注公众号


OpenKG.CN

中文开放知识图谱(简称OpenKG.CN)旨在促进中文知识图谱数据的开放与互联,促进知识图谱和语义技术的普及和广泛应用。

 

领域应用 | 知识图谱的技术与应用

 

本文转载自公众号:贪心科技

领域应用 | 知识图谱的技术与应用

李文哲 开放知识图谱 1周前

本文转载自公众号:贪心科技

 

作者 | 李文哲,人工智能、知识图谱领域专家

导读:从一开始的Google搜索,到现在的聊天机器人、大数据风控、证券投资、智能医疗、自适应教育、推荐系统,无一不跟知识图谱相关。它在技术领域的热度也在逐年上升。 本文以通俗易懂的方式来讲解知识图谱相关的知识、尤其对从零开始搭建知识图谱过程当中需要经历的步骤以及每个阶段需要考虑的问题都给予了比较详细的解释。 对于读者,我们不要求有任何AI相关的背景知识。

目录:

  1. 概论
  2. 什么是知识图谱
  3. 知识图谱的表示
  4. 知识抽取
  5. 知识图谱的存储
  6. 金融知识图谱的搭建
    1. 定义具体的业务问题
    2. 数据收集 & 预处理
    3. 知识图谱的设计
    4. 把数据存入知识图谱
    5. 上层应用的开发
  7. 知识图谱在其他行业中的应用
  8. 实践上的几点建议
  9. 结语

1. 概论

随着移动互联网的发展,万物互联成为了可能,这种互联所产生的数据也在爆发式地增长,而且这些数据恰好可以作为分析关系的有效原料。如果说以往的智能分析专注在每一个个体上,在移动互联网时代则除了个体,这种个体之间的关系也必然成为我们需要深入分析的很重要一部分。 在一项任务中,只要有关系分析的需求,知识图谱就“有可能”派的上用场。

2. 什么是知识图谱?

知识图谱是由Google公司在2012年提出来的一个新的概念。从学术的角度,我们可以对知识图谱给一个这样的定义:“知识图谱本质上是语义网络(Semantic Network)的知识库”。但这有点抽象,所以换个角度,从实际应用的角度出发其实可以简单地把知识图谱理解成多关系图(Multi-relational Graph)。

那什么叫多关系图呢? 学过数据结构的都应该知道什么是图(Graph)。图是由节点(Vertex)和边(Edge)来构成,但这些图通常只包含一种类型的节点和边。但相反,多关系图一般包含多种类型的节点和多种类型的边。比如左下图表示一个经典的图结构,右边的图则表示多关系图,因为图里包含了多种类型的节点和边。这些类型由不同的颜色来标记。

在知识图谱里,我们通常用“实体(Entity)”来表达图里的节点、用“关系(Relation)”来表达图里的“边”。实体指的是现实世界中的事物比如人、地名、概念、药物、公司等关系则用来表达不同实体之间的某种联系,比如人-“居住在”-北京、张三和李四是“朋友”、逻辑回归是深度学习的“先导知识”等等。

现实世界中的很多场景非常适合用知识图谱来表达。 比如一个社交网络图谱里,我们既可以有“人”的实体,也可以包含“公司”实体。人和人之间的关系可以是“朋友”,也可以是“同事”关系。人和公司之间的关系可以是“现任职”或者“曾任职”的关系。 类似的,一个风控知识图谱可以包含“电话”、“公司”的实体,电话和电话之间的关系可以是“通话”关系,而且每个公司它也会有固定的电话。

3. 知识图谱的表示

知识图谱应用的前提是已经构建好了知识图谱,也可以把它认为是一个知识库。这也是为什么它可以用来回答一些搜索相关问题的原因,比如在Google搜索引擎里输入“Who is the wife of Bill Gates?”,我们直接可以得到答案-“Melinda Gates”。这是因为我们在系统层面上已经创建好了一个包含“Bill Gates”和“Melinda Gates”的实体以及他俩之间关系的知识库。所以,当我们执行搜索的时候,就可以通过关键词提取(”Bill Gates”, “Melinda Gates”, “wife”)以及知识库上的匹配可以直接获得最终的答案。这种搜索方式跟传统的搜索引擎是不一样的,一个传统的搜索引擎它返回的是网页、而不是最终的答案,所以就多了一层用户自己筛选并过滤信息的过程。

在现实世界中,实体和关系也会拥有各自的属性,比如人可以有“姓名”和“年龄”。当一个知识图谱拥有属性时,我们可以用属性图(Property Graph)来表示。下面的图表示一个简单的属性图。李明和李飞是父子关系,并且李明拥有一个138开头的电话号,这个电话号开通时间是2018年,其中2018年就可以作为关系的属性。类似的,李明本人也带有一些属性值比如年龄为25岁、职位是总经理等。

这种属性图的表达很贴近现实生活中的场景,也可以很好地描述业务中所包含的逻辑。除了属性图,知识图谱也可以用RDF来表示,它是由很多的三元组(Triples)来组成。RDF在设计上的主要特点是易于发布和分享数据,但不支持实体或关系拥有属性,如果非要加上属性,则在设计上需要做一些修改。目前来看,RDF主要还是用于学术的场景,在工业界我们更多的还是采用图数据库(比如用来存储属性图)的方式。感兴趣的读者可以参考RDF的相关文献,在文本里不多做解释。

4. 知识抽取

知识图谱的构建是后续应用的基础,而且构建的前提是需要把数据从不同的数据源中抽取出来。对于垂直领域的知识图谱来说,它们的数据源主要来自两种渠道:一种是业务本身的数据,这部分数据通常包含在公司内的数据库表并以结构化的方式存储;另一种是网络上公开、抓取的数据,这些数据通常是以网页的形式存在所以是非结构化的数据。

前者一般只需要简单预处理即可以作为后续AI系统的输入,但后者一般需要借助于自然语言处理等技术来提取出结构化信息。比如在上面的搜索例子里,Bill Gates和Malinda Gate的关系就可以从非结构化数据中提炼出来,比如维基百科等数据源。

信息抽取的难点在于处理非结构化数据。在下面的图中,我们给出了一个实例。左边是一段非结构化的英文文本,右边是从这些文本中抽取出来的实体和关系。在构建类似的图谱过程当中,主要涉及以下几个方面的自然语言处理技术:

a. 实体命名识别(Name Entity Recognition)

b. 关系抽取(Relation Extraction)

c. 实体统一(Entity Resolution)

d. 指代消解(Coreference Resolution)

下面针对每一项技术解决的问题做简单的描述,以至于这些是具体怎么实现的,不在这里一一展开,感兴趣的读者可以查阅相关资料,或者学习我的课程。

首先是实体命名识别,就是从文本里提取出实体并对每个实体做分类/打标签:比如从上述文本里,我们可以提取出实体-“NYC”,并标记实体类型为 “Location”;我们也可以从中提取出“Virgil’s BBQ”,并标记实体类型为“Restarant”。这种过程称之为实体命名识别,这是一项相对比较成熟的技术,有一些现成的工具可以用来做这件事情。其次,我们可以通过关系抽取技术,把实体间的关系从文本中提取出来,比如实体“hotel”和“Hilton property”之间的关系为“in”;“hotel”和“Time Square”的关系为“near”等等。

另外,在实体命名识别和关系抽取过程中,有两个比较棘手的问题:一个是实体统一,也就是说有些实体写法上不一样,但其实是指向同一个实体。比如“NYC”和“New York”表面上是不同的字符串,但其实指的都是纽约这个城市,需要合并。实体统一不仅可以减少实体的种类,也可以降低图谱的稀疏性(Sparsity);另一个问题是指代消解,也是文本中出现的“it”, “he”, “she”这些词到底指向哪个实体,比如在本文里两个被标记出来的“it”都指向“hotel”这个实体。

实体统一和指代消解问题相对于前两个问题更具有挑战性。

5. 知识图谱的存储

知识图谱主要有两种存储方式:一种是基于RDF的存储;另一种是基于图数据库的存储。它们之间的区别如下图所示。RDF一个重要的设计原则是数据的易发布以及共享,图数据库则把重点放在了高效的图查询和搜索上。其次,RDF以三元组的方式来存储数据而且不包含属性信息,但图数据库一般以属性图为基本的表示形式,所以实体和关系可以包含属性,这就意味着更容易表达现实的业务场景。

根据最新的统计(2018年上半年),图数据库仍然是增长最快的存储系统。相反,关系型数据库的增长基本保持在一个稳定的水平。同时,我们也列出了常用的图数据库系统以及他们最新使用情况的排名。 其中Neo4j系统目前仍是使用率最高的图数据库,它拥有活跃的社区,而且系统本身的查询效率高,但唯一的不足就是不支持准分布式。相反,OrientDB和JanusGraph(原Titan)支持分布式,但这些系统相对较新,社区不如Neo4j活跃,这也就意味着使用过程当中不可避免地会遇到一些刺手的问题。如果选择使用RDF的存储系统,Jena或许一个比较不错的选择。

6. 金融知识图谱的搭建

接下来我们看一个实际的具体案例,讲解怎么一步步搭建可落地的金融风控领域的知识图谱系统。 首先需要说明的一点是,有可能不少人认为搭建一个知识图谱系统的重点在于算法和开发。但事实并不是想象中的那样,其实最重要的核心在于对业务的理解以及对知识图谱本身的设计,这就类似于对于一个业务系统,数据库表的设计尤其关键,而且这种设计绝对离不开对业务的深入理解以及对未来业务场景变化的预估。 当然,在这里我们先不讨论数据的重要性。

一个完整的知识图谱的构建包含以下几个步骤:1. 定义具体的业务问题  2. 数据的收集 & 预处理  3. 知识图谱的设计  4. 把数据存入知识图谱  5. 上层应用的开发,以及系统的评估。下面我们就按照这个流程来讲一下每个步骤所需要做的事情以及需要思考的问题。

6.1 定义具体的业务问题

在P2P网贷环境下,最核心的问题是风控,也就是怎么去评估一个借款人的风险。在线上的环境下,欺诈风险尤其为严重,而且很多这种风险隐藏在复杂的关系网络之中,而且知识图谱正好是为这类问题所设计的,所以我们“有可能”期待它能在欺诈,这个问题上带来一些价值。

在进入下一个话题的讨论之前,要明确的一点是,对于自身的业务问题到底需不需要知识图谱系统的支持。因为在很多的实际场景,即使对关系的分析有一定的需求,实际上也可以利用传统数据库来完成分析的。所以为了避免使用知识图谱而选择知识图谱,以及更好的技术选型,以下给出了几点总结,供参考。

6.2 数据收集 & 预处理

下一步就是要确定数据源以及做必要的数据预处理。针对于数据源,我们需要考虑以下几点:1. 我们已经有哪些数据? 2. 虽然现在没有,但有可能拿到哪些数据? 3.  其中哪部分数据可以用来降低风险? 4. 哪部分数据可以用来构建知识图谱?在这里需要说明的一点是,并不是所有跟反欺诈相关的数据都必须要进入知识图谱,对于这部分的一些决策原则在接下来的部分会有比较详细的介绍。

对于反欺诈,有几个数据源是我们很容易想得到的,包括用户的基本信息、行为数据、运营商数据、网络上的公开信息等等。假设我们已经有了一个数据源的列表清单,则下一步就要看哪些数据需要进一步的处理,比如对于非结构化数据我们或多或少都需要用到跟自然语言处理相关的技术。 用户填写的基本信息基本上会存储在业务表里,除了个别字段需要进一步处理,很多字段则直接可以用于建模或者添加到知识图谱系统里。对于行为数据来说,我们则需要通过一些简单的处理,并从中提取有效的信息比如“用户在某个页面停留时长”等等。 对于网络上公开的网页数据,则需要一些信息抽取相关的技术。

举个例子,对于用户的基本信息,我们很可能需要如下的操作。一方面,用户信息比如姓名、年龄、学历等字段可以直接从结构化数据库中提取并使用。但另一方面,对于填写的公司名来说,我们有可能需要做进一步的处理。比如部分用户填写“北京贪心科技有限公司”,另外一部分用户填写“北京望京贪心科技有限公司”,其实指向的都是同一家公司。所以,这时候我们需要做公司名的对齐,用到的技术细节可以参考前面讲到的实体对齐技术。

6.3 知识图谱的设计

图谱的设计是一门艺术,不仅要对业务有很深的理解、也需要对未来业务可能的变化有一定预估,从而设计出最贴近现状并且性能高效的系统。在知识图谱设计的问题上,我们肯定会面临以下几个常见的问题:1. 需要哪些实体、关系和属性? 2.  哪些属性可以做为实体,哪些实体可以作为属性? 3. 哪些信息不需要放在知识图谱中? 

基于这些常见的问题,我们从以往的设计经验中抽象出了一系列的设计原则。这些设计原则就类似于传统数据库设计中的范式,来引导相关人员设计出更合理的知识图谱系统,同时保证系统的高效性。

接下来,我们举几个简单的例子来说明其中的一些原则。 首先是,业务原则(Business Principle),它的含义是 “一切要从业务逻辑出发,并且通过观察知识图谱的设计也很容易推测其背后业务的逻辑,而且设计时也要想好未来业务可能的变化”。

举个例子,可以观察一下下面这个图谱,并试问自己背后的业务逻辑是什么。通过一番观察,其实也很难看出到底业务流程是什么样的。做个简单的解释,这里的实体-“申请”意思就是application,如果对这个领域有所了解,其实就是进件实体。在下面的图中,申请和电话实体之间的“has_phone”,“parent phone”是什么意思呢?

接下来再看一下下面的图,跟之前的区别在于我们把申请人从原有的属性中抽取出来并设置成了一个单独的实体。在这种情况下,整个业务逻辑就变得很清晰,我们很容易看出张三申请了两个贷款,而且张三拥有两个手机号,在申请其中一个贷款的时候他填写了父母的电话号。总而言之,一个好的设计很容易让人看到业务本身的逻辑。

接下来再看一个原则叫做效率原则(Efficiency Principle)。 效率原则让知识图谱尽量轻量化、并决定哪些数据放在知识图谱,哪些数据不需要放在知识图谱。在这里举一个简单的类比,在经典的计算机存储系统中,我们经常会谈论到内存和硬盘,内存作为高效的访问载体,作为所有程序运行的关键。这种存储上的层次结构设计源于数据的局部性-“locality”,也就是说经常被访问到的数据集中在某一个区块上,所以这部分数据可以放到内存中来提升访问的效率。 类似的逻辑也可以应用到知识图谱的设计上:我们把常用的信息存放在知识图谱中,把那些访问频率不高,对关系分析无关紧要的信息放在传统的关系型数据库当中。 效率原则的核心在于把知识图谱设计成小而轻的存储载体。

比如在下面的知识图谱中,我们完全可以把一些信息比如“年龄”,“家乡”放到传统的关系型数据库当中,因为这些数据对于:a. 分析关系来说没有太多作用   b.  访问频率低,放在知识图谱上反而影响效率

另外,从分析原则(Analytics Principle)的角度,我们不需要把跟关系分析无关的实体放在图谱当中;从冗余原则(Redundancy Principle)的角度,有些重复性信息、高频信息可以放到传统数据库当中。

6.4 把数据存入知识图谱

存储上我们要面临存储系统的选择,但由于我们设计的知识图谱带有属性,图数据库可以作为首选。但至于选择哪个图数据库也要看业务量以及对效率的要求。如果数据量特别庞大,则Neo4j很可能满足不了业务的需求,这时候不得不去选择支持准分布式的系统比如OrientDB, JanusGraph等,或者通过效率、冗余原则把信息存放在传统数据库中,从而减少知识图谱所承载的信息量。 通常来讲,对于10亿节点以下规模的图谱来说Neo4j已经足够了。

6.5 上层应用的开发

等我们构建好知识图谱之后,接下来就要使用它来解决具体的问题。对于风控知识图谱来说,首要任务就是挖掘关系网络中隐藏的欺诈风险。从算法的角度来讲,有两种不同的场景:一种是基于规则的;另一种是基于概率的。鉴于目前AI技术的现状,基于规则的方法论还是在垂直领域的应用中占据主导地位,但随着数据量的增加以及方法论的提升,基于概率的模型也将会逐步带来更大的价值。

6.5.1 基于规则的方法论

首先,我们来看几个基于规则的应用,分别是不一致性验证、基于规则的特征提取、基于模式的判断。

不一致性验证

为了判断关系网络中存在的风险,一种简单的方法就是做不一致性验证,也就是通过一些规则去找出潜在的矛盾点。这些规则是以人为的方式提前定义好的,所以在设计规则这个事情上需要一些业务的知识。比如在下面的这个图中,李明和李飞两个人都注明了同样的公司电话,但实际上从数据库中判断这俩人其实在不同的公司上班,这就是一个矛盾点。 类似的规则其实可以有很多,不在这里一一列出。

 

基于规则提取特征

我们也可以基于规则从知识图谱中提取一些特征,而且这些特征一般基于深度的搜索比如2度,3度甚至更高维度。比如我们可以问一个这样的问题:“申请人二度关系里有多少个实体触碰了黑名单?”,从图中我们很容观察到二度关系中有两个实体触碰了黑名单(黑名单由红色来标记)。等这些特征被提取之后,一般可以作为风险模型的输入。在此还是想说明一点,如果特征并不涉及深度的关系,其实传统的关系型数据库则足以满足需求。

 

基于模式的判断

这种方法比较适用于找出团体欺诈,它的核心在于通过一些模式来找到有可能存在风险的团体或者子图(sub-graph),然后对这部分子图做进一步的分析。 这种模式有很多种,在这里举几个简单的例子。 比如在下图中,三个实体共享了很多其他的信息,我们可以看做是一个团体,并对其做进一步的分析。

再比如,我们也可以从知识图谱中找出强连通图,并把它标记出来,然后做进一步风险分析。强连通图意味着每一个节点都可以通过某种路径达到其他的点,也就说明这些节点之间有很强的关系。

6.5.2 基于概率的方法

除了基于规则的方法,也可以使用概率统计的方法。 比如社区挖掘、标签传播、聚类等技术都属于这个范畴。 对于这类技术,在本文里不做详细的讲解,感兴趣的读者可以参考相关文献。

社区挖掘算法的目的在于从图中找出一些社区。对于社区,我们可以有多种定义,但直观上可以理解为社区内节点之间关系的密度要明显大于社区之间的关系密度。下面的图表示社区发现之后的结果,图中总共标记了三个不同的社区。一旦我们得到这些社区之后,就可以做进一步的风险分析。

由于社区挖掘是基于概率的方法论,好处在于不需要人为地去定义规则,特别是对于一个庞大的关系网络来说,定义规则这事情本身是一件很复杂的事情。

标签传播算法的核心思想在于节点之间信息的传递。这就类似于,跟优秀的人在一起自己也会逐渐地变优秀是一个道理。因为通过这种关系会不断地吸取高质量的信息,最后使得自己也会不知不觉中变得更加优秀。具体细节不在这里做更多解释。

相比规则的方法论,基于概率的方法的缺点在于:需要足够多的数据。如果数据量很少,而且整个图谱比较稀疏(Sparse),基于规则的方法可以成为我们的首选。尤其是对于金融领域来说,数据标签会比较少,这也是为什么基于规则的方法论还是更普遍地应用在金融领域中的主要原因。

6.5.3 基于动态网络的分析

以上所有的分析都是基于静态的关系图谱。所谓的静态关系图谱,意味着我们不考虑图谱结构本身随时间的变化,只是聚焦在当前知识图谱结构上。然而,我们也知道图谱的结构是随时间变化的,而且这些变化本身也可以跟风险有所关联。

在下面的图中,我们给出了一个知识图谱T时刻和T+1时刻的结构,我们很容易看出在这两个时刻中间,图谱结构(或者部分结构)发生了很明显的变化,这其实暗示着潜在的风险。那怎么去判断这些结构上的变化呢? 感兴趣的读者可以查阅跟“dynamic network mining”相关的文献。

7. 知识图谱在其他行业中的应用

除了金融领域,知识图谱的应用可以涉及到很多其他的行业,包括医疗、教育、证券投资、推荐等等。其实,只要有关系存在,则有知识图谱可发挥价值的地方。 在这里简单举几个垂直行业中的应用。

比如对于教育行业,我们经常谈论个性化教育、因材施教的理念。其核心在于理解学生当前的知识体系,而且这种知识体系依赖于我们所获取到的数据比如交互数据、评测数据、互动数据等等。为了分析学习路径以及知识结构,我们则需要针对于一个领域的概念知识图谱,简单来讲就是概念拓扑结构。在下面的图中,我们给出了一个非常简单的概念图谱:比如为了学习逻辑回归则需要先理解线性回归;为了学习CNN,得对神经网络有所理解等等。所有对学生的评测、互动分析都离不开概念图谱这个底层的数据。

在证券领域,我们经常会关心比如“一个事件发生了,对哪些公司产生什么样的影响?” 比如有一个负面消息是关于公司1的高管,而且我们知道公司1和公司2有种很密切的合作关系,公司2有个主营产品是由公司3提供的原料基础上做出来的。

其实有了这样的一个知识图谱,我们很容易回答哪些公司有可能会被这次的负面事件所影响。当然,仅仅是“有可能”,具体会不会有强相关性必须由数据来验证。所以在这里,知识图谱的好处就是把我们所需要关注的范围很快给我们圈定。接下来的问题会更复杂一些,比如既然我们知道公司3有可能被这次事件所影响,那具体影响程度有多大? 对于这个问题,光靠知识图谱是很难回答的,必须要有一个影响模型、以及需要一些历史数据才能在知识图谱中做进一步推理以及计算。

8. 实践上的几点建议

首先,知识图谱是一个比较新的工具,它的主要作用还是在于分析关系,尤其是深度的关系。所以在业务上,首先要确保它的必要性,其实很多问题可以用非知识图谱的方式来解决。

知识图谱领域一个最重要的话题是知识的推理。 而且知识的推理是走向强人工智能的必经之路。但很遗憾的,目前很多语义网络的角度讨论的推理技术(比如基于深度学习,概率统计)很难在实际的垂直应用中落地。其实目前最有效的方式还是基于一些规则的方法论,除非我们有非常庞大的数据集。

最后,还是要强调一点,知识图谱工程本身还是业务为重心,以数据为中心。不要低估业务和数据的重要性。

9. 结语

知识图谱是一个既充满挑战而且非常有趣的领域。只要有正确的应用场景,对于知识图谱所能发挥的价值还是可以期待的。我相信在未来不到2,3年时间里,知识图谱技术会普及到各个领域当中。

很多细节性的内容很难在一篇文章里面面俱到、如果想对知识图谱领域有更全面的了解,并且快速开发出一款可落地的知识图谱产品,可以参考我近期推出的《知识图谱技术与应用》课程。在课程里,我会详细地给大家介绍怎么从零开始一步步搭建完整的知识图谱系统,并把每一个细节中遇到的问题以及坑给大家讲解。

课程汇集了多年在知识图谱一线的实践经验,可以帮助学员快速地对知识图谱入门。不管是研发、工程师、产品经理还是其他岗位的人或者学生,通过本课程的学习都会对工业界的知识图谱实践有更清晰的认识,并且通过一些小的实践作业让学员对知识图谱的构建有跟更深入的理解。本课程不需要任何AI背景。

本课程包含: 完整案例的讲解、简单的实战练习、作业、过程中所涉及到的算法以及实现等。 不包含:语义网络相关的理论、RDF、以及Spark, Hadoop等大数据平台技术。

OpenKG.CN

中文开放知识图谱(简称OpenKG.CN)旨在促进中文知识图谱数据的开放与互联,促进知识图谱和语义技术的普及和广泛应用。

点击阅读原文,进入 OpenKG 博客。

内容转载自公众号

贪心科技

了解更多

阅读原文

作者 | 李文哲,人工智能、知识图谱领域专家

导读:从一开始的Google搜索,到现在的聊天机器人、大数据风控、证券投资、智能医疗、自适应教育、推荐系统,无一不跟知识图谱相关。它在技术领域的热度也在逐年上升。 本文以通俗易懂的方式来讲解知识图谱相关的知识、尤其对从零开始搭建知识图谱过程当中需要经历的步骤以及每个阶段需要考虑的问题都给予了比较详细的解释。 对于读者,我们不要求有任何AI相关的背景知识。

目录:

  1. 概论
  2. 什么是知识图谱
  3. 知识图谱的表示
  4. 知识抽取
  5. 知识图谱的存储
  6. 金融知识图谱的搭建
    1. 定义具体的业务问题
    2. 数据收集 & 预处理
    3. 知识图谱的设计
    4. 把数据存入知识图谱
    5. 上层应用的开发
  7. 知识图谱在其他行业中的应用
  8. 实践上的几点建议
  9. 结语

1. 概论

随着移动互联网的发展,万物互联成为了可能,这种互联所产生的数据也在爆发式地增长,而且这些数据恰好可以作为分析关系的有效原料。如果说以往的智能分析专注在每一个个体上,在移动互联网时代则除了个体,这种个体之间的关系也必然成为我们需要深入分析的很重要一部分。 在一项任务中,只要有关系分析的需求,知识图谱就“有可能”派的上用场。

2. 什么是知识图谱?

知识图谱是由Google公司在2012年提出来的一个新的概念。从学术的角度,我们可以对知识图谱给一个这样的定义:“知识图谱本质上是语义网络(Semantic Network)的知识库”。但这有点抽象,所以换个角度,从实际应用的角度出发其实可以简单地把知识图谱理解成多关系图(Multi-relational Graph)。

那什么叫多关系图呢? 学过数据结构的都应该知道什么是图(Graph)。图是由节点(Vertex)和边(Edge)来构成,但这些图通常只包含一种类型的节点和边。但相反,多关系图一般包含多种类型的节点和多种类型的边。比如左下图表示一个经典的图结构,右边的图则表示多关系图,因为图里包含了多种类型的节点和边。这些类型由不同的颜色来标记。

在知识图谱里,我们通常用“实体(Entity)”来表达图里的节点、用“关系(Relation)”来表达图里的“边”。实体指的是现实世界中的事物比如人、地名、概念、药物、公司等关系则用来表达不同实体之间的某种联系,比如人-“居住在”-北京、张三和李四是“朋友”、逻辑回归是深度学习的“先导知识”等等。

现实世界中的很多场景非常适合用知识图谱来表达。 比如一个社交网络图谱里,我们既可以有“人”的实体,也可以包含“公司”实体。人和人之间的关系可以是“朋友”,也可以是“同事”关系。人和公司之间的关系可以是“现任职”或者“曾任职”的关系。 类似的,一个风控知识图谱可以包含“电话”、“公司”的实体,电话和电话之间的关系可以是“通话”关系,而且每个公司它也会有固定的电话。

3. 知识图谱的表示

知识图谱应用的前提是已经构建好了知识图谱,也可以把它认为是一个知识库。这也是为什么它可以用来回答一些搜索相关问题的原因,比如在Google搜索引擎里输入“Who is the wife of Bill Gates?”,我们直接可以得到答案-“Melinda Gates”。这是因为我们在系统层面上已经创建好了一个包含“Bill Gates”和“Melinda Gates”的实体以及他俩之间关系的知识库。所以,当我们执行搜索的时候,就可以通过关键词提取(”Bill Gates”, “Melinda Gates”, “wife”)以及知识库上的匹配可以直接获得最终的答案。这种搜索方式跟传统的搜索引擎是不一样的,一个传统的搜索引擎它返回的是网页、而不是最终的答案,所以就多了一层用户自己筛选并过滤信息的过程。

在现实世界中,实体和关系也会拥有各自的属性,比如人可以有“姓名”和“年龄”。当一个知识图谱拥有属性时,我们可以用属性图(Property Graph)来表示。下面的图表示一个简单的属性图。李明和李飞是父子关系,并且李明拥有一个138开头的电话号,这个电话号开通时间是2018年,其中2018年就可以作为关系的属性。类似的,李明本人也带有一些属性值比如年龄为25岁、职位是总经理等。

这种属性图的表达很贴近现实生活中的场景,也可以很好地描述业务中所包含的逻辑。除了属性图,知识图谱也可以用RDF来表示,它是由很多的三元组(Triples)来组成。RDF在设计上的主要特点是易于发布和分享数据,但不支持实体或关系拥有属性,如果非要加上属性,则在设计上需要做一些修改。目前来看,RDF主要还是用于学术的场景,在工业界我们更多的还是采用图数据库(比如用来存储属性图)的方式。感兴趣的读者可以参考RDF的相关文献,在文本里不多做解释。

4. 知识抽取

知识图谱的构建是后续应用的基础,而且构建的前提是需要把数据从不同的数据源中抽取出来。对于垂直领域的知识图谱来说,它们的数据源主要来自两种渠道:一种是业务本身的数据,这部分数据通常包含在公司内的数据库表并以结构化的方式存储;另一种是网络上公开、抓取的数据,这些数据通常是以网页的形式存在所以是非结构化的数据。

前者一般只需要简单预处理即可以作为后续AI系统的输入,但后者一般需要借助于自然语言处理等技术来提取出结构化信息。比如在上面的搜索例子里,Bill Gates和Malinda Gate的关系就可以从非结构化数据中提炼出来,比如维基百科等数据源。

信息抽取的难点在于处理非结构化数据。在下面的图中,我们给出了一个实例。左边是一段非结构化的英文文本,右边是从这些文本中抽取出来的实体和关系。在构建类似的图谱过程当中,主要涉及以下几个方面的自然语言处理技术:

a. 实体命名识别(Name Entity Recognition)

b. 关系抽取(Relation Extraction)

c. 实体统一(Entity Resolution)

d. 指代消解(Coreference Resolution)

下面针对每一项技术解决的问题做简单的描述,以至于这些是具体怎么实现的,不在这里一一展开,感兴趣的读者可以查阅相关资料,或者学习我的课程。

首先是实体命名识别,就是从文本里提取出实体并对每个实体做分类/打标签:比如从上述文本里,我们可以提取出实体-“NYC”,并标记实体类型为 “Location”;我们也可以从中提取出“Virgil’s BBQ”,并标记实体类型为“Restarant”。这种过程称之为实体命名识别,这是一项相对比较成熟的技术,有一些现成的工具可以用来做这件事情。其次,我们可以通过关系抽取技术,把实体间的关系从文本中提取出来,比如实体“hotel”和“Hilton property”之间的关系为“in”;“hotel”和“Time Square”的关系为“near”等等。

另外,在实体命名识别和关系抽取过程中,有两个比较棘手的问题:一个是实体统一,也就是说有些实体写法上不一样,但其实是指向同一个实体。比如“NYC”和“New York”表面上是不同的字符串,但其实指的都是纽约这个城市,需要合并。实体统一不仅可以减少实体的种类,也可以降低图谱的稀疏性(Sparsity);另一个问题是指代消解,也是文本中出现的“it”, “he”, “she”这些词到底指向哪个实体,比如在本文里两个被标记出来的“it”都指向“hotel”这个实体。

实体统一和指代消解问题相对于前两个问题更具有挑战性。

5. 知识图谱的存储

知识图谱主要有两种存储方式:一种是基于RDF的存储;另一种是基于图数据库的存储。它们之间的区别如下图所示。RDF一个重要的设计原则是数据的易发布以及共享,图数据库则把重点放在了高效的图查询和搜索上。其次,RDF以三元组的方式来存储数据而且不包含属性信息,但图数据库一般以属性图为基本的表示形式,所以实体和关系可以包含属性,这就意味着更容易表达现实的业务场景。

根据最新的统计(2018年上半年),图数据库仍然是增长最快的存储系统。相反,关系型数据库的增长基本保持在一个稳定的水平。同时,我们也列出了常用的图数据库系统以及他们最新使用情况的排名。 其中Neo4j系统目前仍是使用率最高的图数据库,它拥有活跃的社区,而且系统本身的查询效率高,但唯一的不足就是不支持准分布式。相反,OrientDB和JanusGraph(原Titan)支持分布式,但这些系统相对较新,社区不如Neo4j活跃,这也就意味着使用过程当中不可避免地会遇到一些刺手的问题。如果选择使用RDF的存储系统,Jena或许一个比较不错的选择。

6. 金融知识图谱的搭建

接下来我们看一个实际的具体案例,讲解怎么一步步搭建可落地的金融风控领域的知识图谱系统。 首先需要说明的一点是,有可能不少人认为搭建一个知识图谱系统的重点在于算法和开发。但事实并不是想象中的那样,其实最重要的核心在于对业务的理解以及对知识图谱本身的设计,这就类似于对于一个业务系统,数据库表的设计尤其关键,而且这种设计绝对离不开对业务的深入理解以及对未来业务场景变化的预估。 当然,在这里我们先不讨论数据的重要性。

一个完整的知识图谱的构建包含以下几个步骤:1. 定义具体的业务问题  2. 数据的收集 & 预处理  3. 知识图谱的设计  4. 把数据存入知识图谱  5. 上层应用的开发,以及系统的评估。下面我们就按照这个流程来讲一下每个步骤所需要做的事情以及需要思考的问题。

6.1 定义具体的业务问题

在P2P网贷环境下,最核心的问题是风控,也就是怎么去评估一个借款人的风险。在线上的环境下,欺诈风险尤其为严重,而且很多这种风险隐藏在复杂的关系网络之中,而且知识图谱正好是为这类问题所设计的,所以我们“有可能”期待它能在欺诈,这个问题上带来一些价值。

在进入下一个话题的讨论之前,要明确的一点是,对于自身的业务问题到底需不需要知识图谱系统的支持。因为在很多的实际场景,即使对关系的分析有一定的需求,实际上也可以利用传统数据库来完成分析的。所以为了避免使用知识图谱而选择知识图谱,以及更好的技术选型,以下给出了几点总结,供参考。

6.2 数据收集 & 预处理

下一步就是要确定数据源以及做必要的数据预处理。针对于数据源,我们需要考虑以下几点:1. 我们已经有哪些数据? 2. 虽然现在没有,但有可能拿到哪些数据? 3.  其中哪部分数据可以用来降低风险? 4. 哪部分数据可以用来构建知识图谱?在这里需要说明的一点是,并不是所有跟反欺诈相关的数据都必须要进入知识图谱,对于这部分的一些决策原则在接下来的部分会有比较详细的介绍。

对于反欺诈,有几个数据源是我们很容易想得到的,包括用户的基本信息、行为数据、运营商数据、网络上的公开信息等等。假设我们已经有了一个数据源的列表清单,则下一步就要看哪些数据需要进一步的处理,比如对于非结构化数据我们或多或少都需要用到跟自然语言处理相关的技术。 用户填写的基本信息基本上会存储在业务表里,除了个别字段需要进一步处理,很多字段则直接可以用于建模或者添加到知识图谱系统里。对于行为数据来说,我们则需要通过一些简单的处理,并从中提取有效的信息比如“用户在某个页面停留时长”等等。 对于网络上公开的网页数据,则需要一些信息抽取相关的技术。

举个例子,对于用户的基本信息,我们很可能需要如下的操作。一方面,用户信息比如姓名、年龄、学历等字段可以直接从结构化数据库中提取并使用。但另一方面,对于填写的公司名来说,我们有可能需要做进一步的处理。比如部分用户填写“北京贪心科技有限公司”,另外一部分用户填写“北京望京贪心科技有限公司”,其实指向的都是同一家公司。所以,这时候我们需要做公司名的对齐,用到的技术细节可以参考前面讲到的实体对齐技术。

6.3 知识图谱的设计

图谱的设计是一门艺术,不仅要对业务有很深的理解、也需要对未来业务可能的变化有一定预估,从而设计出最贴近现状并且性能高效的系统。在知识图谱设计的问题上,我们肯定会面临以下几个常见的问题:1. 需要哪些实体、关系和属性? 2.  哪些属性可以做为实体,哪些实体可以作为属性? 3. 哪些信息不需要放在知识图谱中? 

基于这些常见的问题,我们从以往的设计经验中抽象出了一系列的设计原则。这些设计原则就类似于传统数据库设计中的范式,来引导相关人员设计出更合理的知识图谱系统,同时保证系统的高效性。

接下来,我们举几个简单的例子来说明其中的一些原则。 首先是,业务原则(Business Principle),它的含义是 “一切要从业务逻辑出发,并且通过观察知识图谱的设计也很容易推测其背后业务的逻辑,而且设计时也要想好未来业务可能的变化”。

举个例子,可以观察一下下面这个图谱,并试问自己背后的业务逻辑是什么。通过一番观察,其实也很难看出到底业务流程是什么样的。做个简单的解释,这里的实体-“申请”意思就是application,如果对这个领域有所了解,其实就是进件实体。在下面的图中,申请和电话实体之间的“has_phone”,“parent phone”是什么意思呢?

接下来再看一下下面的图,跟之前的区别在于我们把申请人从原有的属性中抽取出来并设置成了一个单独的实体。在这种情况下,整个业务逻辑就变得很清晰,我们很容易看出张三申请了两个贷款,而且张三拥有两个手机号,在申请其中一个贷款的时候他填写了父母的电话号。总而言之,一个好的设计很容易让人看到业务本身的逻辑。

接下来再看一个原则叫做效率原则(Efficiency Principle)。 效率原则让知识图谱尽量轻量化、并决定哪些数据放在知识图谱,哪些数据不需要放在知识图谱。在这里举一个简单的类比,在经典的计算机存储系统中,我们经常会谈论到内存和硬盘,内存作为高效的访问载体,作为所有程序运行的关键。这种存储上的层次结构设计源于数据的局部性-“locality”,也就是说经常被访问到的数据集中在某一个区块上,所以这部分数据可以放到内存中来提升访问的效率。 类似的逻辑也可以应用到知识图谱的设计上:我们把常用的信息存放在知识图谱中,把那些访问频率不高,对关系分析无关紧要的信息放在传统的关系型数据库当中。 效率原则的核心在于把知识图谱设计成小而轻的存储载体。

比如在下面的知识图谱中,我们完全可以把一些信息比如“年龄”,“家乡”放到传统的关系型数据库当中,因为这些数据对于:a. 分析关系来说没有太多作用   b.  访问频率低,放在知识图谱上反而影响效率

另外,从分析原则(Analytics Principle)的角度,我们不需要把跟关系分析无关的实体放在图谱当中;从冗余原则(Redundancy Principle)的角度,有些重复性信息、高频信息可以放到传统数据库当中。

6.4 把数据存入知识图谱

存储上我们要面临存储系统的选择,但由于我们设计的知识图谱带有属性,图数据库可以作为首选。但至于选择哪个图数据库也要看业务量以及对效率的要求。如果数据量特别庞大,则Neo4j很可能满足不了业务的需求,这时候不得不去选择支持准分布式的系统比如OrientDB, JanusGraph等,或者通过效率、冗余原则把信息存放在传统数据库中,从而减少知识图谱所承载的信息量。 通常来讲,对于10亿节点以下规模的图谱来说Neo4j已经足够了。

6.5 上层应用的开发

等我们构建好知识图谱之后,接下来就要使用它来解决具体的问题。对于风控知识图谱来说,首要任务就是挖掘关系网络中隐藏的欺诈风险。从算法的角度来讲,有两种不同的场景:一种是基于规则的;另一种是基于概率的。鉴于目前AI技术的现状,基于规则的方法论还是在垂直领域的应用中占据主导地位,但随着数据量的增加以及方法论的提升,基于概率的模型也将会逐步带来更大的价值。

6.5.1 基于规则的方法论

首先,我们来看几个基于规则的应用,分别是不一致性验证、基于规则的特征提取、基于模式的判断。

不一致性验证

为了判断关系网络中存在的风险,一种简单的方法就是做不一致性验证,也就是通过一些规则去找出潜在的矛盾点。这些规则是以人为的方式提前定义好的,所以在设计规则这个事情上需要一些业务的知识。比如在下面的这个图中,李明和李飞两个人都注明了同样的公司电话,但实际上从数据库中判断这俩人其实在不同的公司上班,这就是一个矛盾点。 类似的规则其实可以有很多,不在这里一一列出。

 

基于规则提取特征

我们也可以基于规则从知识图谱中提取一些特征,而且这些特征一般基于深度的搜索比如2度,3度甚至更高维度。比如我们可以问一个这样的问题:“申请人二度关系里有多少个实体触碰了黑名单?”,从图中我们很容观察到二度关系中有两个实体触碰了黑名单(黑名单由红色来标记)。等这些特征被提取之后,一般可以作为风险模型的输入。在此还是想说明一点,如果特征并不涉及深度的关系,其实传统的关系型数据库则足以满足需求。

 

基于模式的判断

这种方法比较适用于找出团体欺诈,它的核心在于通过一些模式来找到有可能存在风险的团体或者子图(sub-graph),然后对这部分子图做进一步的分析。 这种模式有很多种,在这里举几个简单的例子。 比如在下图中,三个实体共享了很多其他的信息,我们可以看做是一个团体,并对其做进一步的分析。

再比如,我们也可以从知识图谱中找出强连通图,并把它标记出来,然后做进一步风险分析。强连通图意味着每一个节点都可以通过某种路径达到其他的点,也就说明这些节点之间有很强的关系。

6.5.2 基于概率的方法

除了基于规则的方法,也可以使用概率统计的方法。 比如社区挖掘、标签传播、聚类等技术都属于这个范畴。 对于这类技术,在本文里不做详细的讲解,感兴趣的读者可以参考相关文献。

社区挖掘算法的目的在于从图中找出一些社区。对于社区,我们可以有多种定义,但直观上可以理解为社区内节点之间关系的密度要明显大于社区之间的关系密度。下面的图表示社区发现之后的结果,图中总共标记了三个不同的社区。一旦我们得到这些社区之后,就可以做进一步的风险分析。

由于社区挖掘是基于概率的方法论,好处在于不需要人为地去定义规则,特别是对于一个庞大的关系网络来说,定义规则这事情本身是一件很复杂的事情。

标签传播算法的核心思想在于节点之间信息的传递。这就类似于,跟优秀的人在一起自己也会逐渐地变优秀是一个道理。因为通过这种关系会不断地吸取高质量的信息,最后使得自己也会不知不觉中变得更加优秀。具体细节不在这里做更多解释。

相比规则的方法论,基于概率的方法的缺点在于:需要足够多的数据。如果数据量很少,而且整个图谱比较稀疏(Sparse),基于规则的方法可以成为我们的首选。尤其是对于金融领域来说,数据标签会比较少,这也是为什么基于规则的方法论还是更普遍地应用在金融领域中的主要原因。

6.5.3 基于动态网络的分析

以上所有的分析都是基于静态的关系图谱。所谓的静态关系图谱,意味着我们不考虑图谱结构本身随时间的变化,只是聚焦在当前知识图谱结构上。然而,我们也知道图谱的结构是随时间变化的,而且这些变化本身也可以跟风险有所关联。

在下面的图中,我们给出了一个知识图谱T时刻和T+1时刻的结构,我们很容易看出在这两个时刻中间,图谱结构(或者部分结构)发生了很明显的变化,这其实暗示着潜在的风险。那怎么去判断这些结构上的变化呢? 感兴趣的读者可以查阅跟“dynamic network mining”相关的文献。

7. 知识图谱在其他行业中的应用

除了金融领域,知识图谱的应用可以涉及到很多其他的行业,包括医疗、教育、证券投资、推荐等等。其实,只要有关系存在,则有知识图谱可发挥价值的地方。 在这里简单举几个垂直行业中的应用。

比如对于教育行业,我们经常谈论个性化教育、因材施教的理念。其核心在于理解学生当前的知识体系,而且这种知识体系依赖于我们所获取到的数据比如交互数据、评测数据、互动数据等等。为了分析学习路径以及知识结构,我们则需要针对于一个领域的概念知识图谱,简单来讲就是概念拓扑结构。在下面的图中,我们给出了一个非常简单的概念图谱:比如为了学习逻辑回归则需要先理解线性回归;为了学习CNN,得对神经网络有所理解等等。所有对学生的评测、互动分析都离不开概念图谱这个底层的数据。

在证券领域,我们经常会关心比如“一个事件发生了,对哪些公司产生什么样的影响?” 比如有一个负面消息是关于公司1的高管,而且我们知道公司1和公司2有种很密切的合作关系,公司2有个主营产品是由公司3提供的原料基础上做出来的。

其实有了这样的一个知识图谱,我们很容易回答哪些公司有可能会被这次的负面事件所影响。当然,仅仅是“有可能”,具体会不会有强相关性必须由数据来验证。所以在这里,知识图谱的好处就是把我们所需要关注的范围很快给我们圈定。接下来的问题会更复杂一些,比如既然我们知道公司3有可能被这次事件所影响,那具体影响程度有多大? 对于这个问题,光靠知识图谱是很难回答的,必须要有一个影响模型、以及需要一些历史数据才能在知识图谱中做进一步推理以及计算。

8. 实践上的几点建议

首先,知识图谱是一个比较新的工具,它的主要作用还是在于分析关系,尤其是深度的关系。所以在业务上,首先要确保它的必要性,其实很多问题可以用非知识图谱的方式来解决。

知识图谱领域一个最重要的话题是知识的推理。 而且知识的推理是走向强人工智能的必经之路。但很遗憾的,目前很多语义网络的角度讨论的推理技术(比如基于深度学习,概率统计)很难在实际的垂直应用中落地。其实目前最有效的方式还是基于一些规则的方法论,除非我们有非常庞大的数据集。

最后,还是要强调一点,知识图谱工程本身还是业务为重心,以数据为中心。不要低估业务和数据的重要性。

9. 结语

知识图谱是一个既充满挑战而且非常有趣的领域。只要有正确的应用场景,对于知识图谱所能发挥的价值还是可以期待的。我相信在未来不到2,3年时间里,知识图谱技术会普及到各个领域当中。

很多细节性的内容很难在一篇文章里面面俱到、如果想对知识图谱领域有更全面的了解,并且快速开发出一款可落地的知识图谱产品,可以参考我近期推出的《知识图谱技术与应用》课程。在课程里,我会详细地给大家介绍怎么从零开始一步步搭建完整的知识图谱系统,并把每一个细节中遇到的问题以及坑给大家讲解。

课程汇集了多年在知识图谱一线的实践经验,可以帮助学员快速地对知识图谱入门。不管是研发、工程师、产品经理还是其他岗位的人或者学生,通过本课程的学习都会对工业界的知识图谱实践有更清晰的认识,并且通过一些小的实践作业让学员对知识图谱的构建有跟更深入的理解。本课程不需要任何AI背景。

本课程包含: 完整案例的讲解、简单的实战练习、作业、过程中所涉及到的算法以及实现等。 不包含:语义网络相关的理论、RDF、以及Spark, Hadoop等大数据平台技术。


OpenKG.CN

中文开放知识图谱(简称OpenKG.CN)旨在促进中文知识图谱数据的开放与互联,促进知识图谱和语义技术的普及和广泛应用。


内容转载自公众号

领域应用 | 如何将知识图谱特征学习应用到推荐系统?

 

本文转载自公众号:微软研究院AI头条。

编者按:在上周发表的“推荐算法不够精准?让知识图谱来解决”一文中,我们为大家介绍了日常生活中几乎每天都会用到的推荐系统,以及用来提高推荐系统精准性、多样性和可解释性的推荐算法辅助信息——知识图谱。今天,我们将进一步为大家讲解将知识图谱特征学习引入到推荐系统的各种思路与实现方法。

 

将知识图谱作为辅助信息引入到推荐系统中可以有效地解决传统推荐系统存在的稀疏性和冷启动问题,近几年有很多研究人员在做相关的工作。目前,将知识图谱特征学习应用到推荐系统中主要通过三种方式——依次学习、联合学习、以及交替学习

  • 依次学习(one-by-one learning)。首先使用知识图谱特征学习得到实体向量和关系向量,然后将这些低维向量引入推荐系统,学习得到用户向量和物品向量;

  •  联合学习(joint learning)。将知识图谱特征学习和推荐算法的目标函数结合,使用端到端(end-to-end)的方法进行联合学习;

 

  • 交替学习(alternate learning)。将知识图谱特征学习和推荐算法视为两个分离但又相关的任务,使用多任务学习(multi-task learning)的框架进行交替学习。

 

依次学习

Deep Knowledge-Aware Network (DKN)

我们以新闻推荐[1]为例来介绍依次学习。如下图所示,新闻标题和正文中通常存在大量的实体,实体间的语义关系可以有效地扩展用户兴趣。然而这种语义关系难以被传统方法(话题模型、词向量)发掘。

为了将知识图谱引入特征学习,遵循依次学习的框架,我们首先需要提取知识图谱特征。该步骤的方法如下:

  • 实体连接(entity linking)。即从文本中发现相关词汇,并与知识图谱中的实体进行匹配;
  • 知识图谱构建。根据所有匹配到的实体,在原始的知识图谱中抽取子图。子图的大小会影响后续算法的运行时间和效果:越大的子图通常会学习到更好的特征,但是所需的运行时间越长;
  • 知识图谱特征学习。使用知识图谱特征学习算法(如TransE等)进行学习得到实体和关系向量。

需要注意的是,为了更准确地刻画实体,我们额外地使用一个实体的上下文实体特征(contextual entity embeddings)。一个实体e的上下文实体是e的所有一跳邻居节点,e的上下文实体特征为e的所有上下文实体特征的平均值:

下图的绿色椭圆框内即为“Fight Club”的上下文实体。

 

得到实体特征后,我们的第二步是构建推荐模型,该模型是一个基于CNN和注意力机制的新闻推荐算法:

  • 基于卷积神经网络的文本特征提取:将新闻标题的词向量(word embedding)、实体向量(entity embedding)和实体上下文向量(context embedding)作为多个通道(类似于图像中的红绿蓝三通道),在CNN的框架下进行融合;
  • 基于注意力机制的用户历史兴趣融合:在判断用户对当前新闻的兴趣时,使用注意力网络(attention network)给用户历史记录分配不同的权重。

该模型在新闻推荐上取得了很好的效果:DKN取得了0.689的F1值和0.659的AUC值,并在p=0.1水平上比其它方法取得了显著的提升。

我们也可以通过注意力权重的可视化结果看出,注意力机制的引入对模型的最后输出产生了积极的影响。由于注意力机制的引入,DKN可以更好地将同类别的新闻联系起来,从而提高了最终的正确预测的数量:

 

依次学习的优势在于知识图谱特征学习模块和推荐系统模块相互独立。在真实场景中,特别是知识图谱很大的情况下,进行一次知识图谱特征学习的时间开销会很大,而一般而言,知识图谱远没有推荐模块更新地快。因此我们可以先通过一次训练得到实体和关系向量,以后每次推荐系统模块需要更新时都可以直接使用这些向量作为输入,而无需重新训练。

依次学习的缺点也正在于此:因为两个模块相互独立,所以无法做到端到端的训练。通常来说,知识图谱特征学习得到的向量会更适合于知识图谱内的任务,比如连接预测、实体分类等,并非完全适合特定的推荐任务。在缺乏推荐模块的监督信号的情况下,学习得到的实体向量是否真的对推荐任务有帮助,还需要通过进一步的实验来推断。

联合学习

联合学习的核心是将推荐算法和知识图谱特征学习的目标融合,并在一个端到端的优化目标中进行训练。我们以CKE[2]和Ripple Network[3]为例介绍联合学习。

Collaborative Knowledge base Embedding (CKE)

在推荐系统中存在着很多与知识图谱相关的信息,以电影推荐为例:

  • 结构化知识(structural knowledge),例如导演、类别等;
  • 图像知识(visual knowledge),例如海报、剧照等;
  • 文本知识(textual knowledge),例如电影描述、影评等。

CKE是一个基于协同过滤和知识图谱特征学习的推荐系统:

CKE使用如下方式进行三种知识的学习:

  • 结构化知识学习:TransR。TransR是一种基于距离的翻译模型,可以学习得到知识实体的向量表示;

 

  • 文本知识学习:去噪自编码器。去噪自编码器可以学习得到文本的一种泛化能力较强的向量表示;

  • 图像知识学习:卷积-反卷积自编码器。卷积-反卷积自编码器可以得到图像的一种泛化能力较强的向量表示。

我们将三种知识学习的目标函数与推荐系统中的协同过滤结合,得到如下的联合损失函数:

 

使用诸如随机梯度下降(SGD)的方法对上述损失函数进行训练,我们最终可以得到用户/物品向量,以及实体/关系向量。CKE在电影推荐和图书推荐上取得了很高的Recall值和MAP值:

Ripple Network

Ripple的中文翻译为“水波”,顾名思义,Ripple Network模拟了用户兴趣在知识图谱上的传播过程,整个过程类似于水波的传播

  • 一个用户的兴趣以其历史记录中的实体为中心,在知识图谱上向外逐层扩散
  • 一个用户的兴趣在知识图谱上的扩散过程中逐渐衰减

下图展示了用户兴趣在知识图谱上扩散的过程。以一个用户看过的“Forrest Gump”为中心,用户的兴趣沿着关系边可以逐跳向外扩展,并在扩展过程中兴趣强度逐渐衰减。

 

下图展示了Ripple Network的模型。对于给定的用户u和物品v,我们将历史相关实体集合V中的所有实体进行相似度计算,并利用计算得到的权重值对V中实体在知识图谱中对应的尾节点进行加权求和。求和得到的结果可以视为v在u的一跳相关实体中的一个响应。该过程可以重复在u的二跳、三跳相关实体中进行,如此,v在知识图谱上便以V为中心逐层向外扩散。

 

最终得到的推荐算法和知识图谱特征学习的联合损失函数如下:

 

类似于CKE,我们在该损失函数上训练即可得到物品向量和实体向量。需要注意的是,Ripple Network中没有对用户直接使用向量进行刻画,而是用用户点击过的物品的向量集合作为其特征。Ripple Network在电影、图书和新闻的点击率预测上取得了非常好的效果:

 

我们将Ripple Network的计算结果可视化如下。可以看出,知识图谱连接了用户的历史兴趣和推荐结果,其中的若干条高分值的路径可以视为对推荐结果的解释:

联合学习的优劣势正好与依次学习相反。联合学习是一种端到端的训练方式,推荐系统模块的监督信号可以反馈到知识图谱特征学习中,这对于提高最终的性能是有利的。但是需要注意的是,两个模块在最终的目标函数中结合方式以及权重的分配都需要精细的实验才能确定。联合学习潜在的问题是训练开销较大,特别是一些使用到图算法的模型

交替学习

Multi-task Learning for KG enhanced Recommendation (MKR)

推荐系统和知识图谱特征学习的交替学习类似于多任务学习的框架。该方法的出发点是推荐系统中的物品和知识图谱中的实体存在重合,因此两个任务之间存在相关性。将推荐系统和知识图谱特征学习视为两个分离但是相关的任务,采用多任务学习的框架,可以有如下优势:

  • 两者的可用信息可以互补;
  • 知识图谱特征学习任务可以帮助推荐系统摆脱局部极小值;
  • 知识图谱特征学习任务可以防止推荐系统过拟合;
  • 知识图谱特征学习任务可以提高推荐系统的泛化能力。

MKR[4]的模型框架如下,其中左侧是推荐任务,右侧是知识图谱特征学习任务。推荐部分使用用户和物品的特征表示作为输入,预测的点击概率作为输出。知识图谱特征学习部分使用一个三元组的头结点和关系表示作为输入,预测的尾节点表示作为输出。

 

由于推荐系统中的物品和知识图谱中的实体存在重合,所以两个任务并非相互独立。我们在两个任务中设计了交叉特征共享单元(cross-feature-sharing units)作为两者的连接纽带。

交叉特征共享单元是一个可以让两个任务交换信息的模块。由于物品向量和实体向量实际上是对同一个对象的两种描述,他们之间的信息交叉共享可以让两者都获得来自对方的额外信息,从而弥补了自身的信息稀疏性的不足。

 

MKR的整体损失函数如下:

在实际操作中,我们采用交替训练的方式:固定推荐系统模块的参数,训练知识图谱特征学习模块的参数;然后固定知识图谱特征学习模块的参数,训练推荐系统模块的参数:

MKR在电影、图书和新闻推荐上也取得了不错的效果,其F1@K指标在绝大多数情况下都超过了baseline方法:

交替学习是一种较为创新和前沿的思路,其中如何设计两个相关的任务以及两个任务如何关联起来都是值得研究的方向。从实际运用和时间开销上来说,交替学习是介于依次学习和联合学习中间的:训练好的知识图谱特征学习模块可以在下一次训练的时候继续使用(不像联合学习需要从零开始),但是依然要参与到训练过程中来(不像依次学习中可以直接使用实体向量)。

知识图谱作为推荐系统的一种新兴的辅助信息,近年来得到了研究人员的广泛关注。未来,知识图谱和时序模型的结合知识图谱和基于强化学习的推荐系统的结合、以及知识图谱和其它辅助信息在推荐系统中的结合等相关问题仍然值得更多的研究。欢迎感兴趣的同学通过留言与我们互动沟通。

参考文献

[1] DKN: Deep Knowledge-Aware Network for News Recommendation.

[2] Collaborative knowledge base embedding for recommender systems.

[3] Ripple Network: Propagating User Preferences on the Knowledge Graph for Recommender Systems.

[4] MKR: A Multi-Task Learning Approach for Knowledge Graph Enhanced Recommendation.

作者简介

王鸿伟,本科毕业于上海交通大学计算机科学与技术专业ACM试点班,目前为上海交通大学在读四年级博士,在微软亚洲研究院社会计算组实习。研究兴趣为网络特征学习、推荐系统、文本和社交数据挖掘,并在WWW、AAAI、WSDM、CIKM、TPDS上发表了十余篇论文。

张富峥,微软亚洲研究院研究员,从事人工智能和数据挖掘方面的研究。研究兴趣包括推荐系统、用户画像、自然语言处理等领域,在这些领域的顶级会议和期刊上发表了近30余篇论文,如KDD、WWW、Ubicomp、TIST等,曾获ICDM 2013最佳论文大奖。

谢幸,微软亚洲研究院资深研究员,中国科技大学兼职博士生导师。他的团队在数据挖掘、社会计算和普适计算等领域展开创新性的研究。他在国际会议和学术期刊上发表了200余篇学术论文,共被引用18000余次,多次在KDD、ICDM等顶级会议上获最佳论文奖。他是ACM、IEEE高级会员和计算机学会杰出会员,曾担任ACM UbiComp 2011、PCC 2012、IEEE UIC 2015、以及SMP 2017等大会程序委员会共同主席。


OpenKG.CN

中文开放知识图谱(简称OpenKG.CN)旨在促进中文知识图谱数据的开放与互联,促进知识图谱和语义技术的普及和广泛应用。


内容转载自公众号

微软研究院AI头条

了解更多

阅读原文

领域应用 | 深度学习在知识图谱构建中的应用

2018-03-19 游维

本文转载自公众号:阿里技术

深度学习模型介绍

DeepDive系统在数据处理阶段很大程度上依赖于NLP工具,如果NLP的过程中存在错误,这些错误将会在后续的标注和学习步骤中被不断传播放大,影响最终的关系抽取效果。为了避免这种传播和影响,近年来深度学习技术开始越来越多地在关系抽取任务中得到重视和应用。本章主要介绍一种远程监督标注与基于卷积神经网络的模型相结合的关系抽取方法以及该方法的一些改进技术。

继续阅读“领域应用 | 深度学习在知识图谱构建中的应用”

领域应用 | 知识图谱数据构建的“硬骨头”,阿里工程师如何拿下?

2018-03-15 游维

本文转载自公众号:阿里技术

阿里妹导读:搜索“西红柿”,你不但能知道它的营养功效、热量,还能顺带学会煲个牛腩、炒个鸡蛋!搜索引擎何时变成“暖男”了?原来背后有“知识图谱”这个强大的秘密武器。

作为近年来搜索领域和自然语言处理领域的热点,知识图谱正引领着搜索引擎向知识引擎的转变。在阿里的“神马搜索”中,知识图谱及其相关技术的广泛应用不仅能帮助用户找到最想要的信息,更能让用户有意想不到的知识收获。

继续阅读“领域应用 | 知识图谱数据构建的“硬骨头”,阿里工程师如何拿下?”

刘志明 | 知识图谱及金融相关

本文转载自公众号:挖地兔,本文的作者刘志明先生也是 Tushare 的作者。

Tushare 是一个基于 Python 语言的免费、开源的财经数据接口包,可以为金融量化分析人员提供快速、整洁和多样的结构化数据,帮助量化投资人员节省数据采集和清洗时间,使他们有更多的精力集中在策略的研发上,极大提高投研效率。作为国内最早一个服务于量化投资的 Python 开源项目,目前用户超过 10 万,机构 300 家,已经成为量化投资领域比较常用或者借鉴的数据工具。

继续阅读“刘志明 | 知识图谱及金融相关”

鲍捷 | 知识表示——面向实战的介绍

本文转载自文因互联 2016 年 6 月份组织的第一期北京知识图谱学习小组 Wiki。


知识表示(Knowledge Representation,KR,也译为知识表现)是如何将结构化数据组织,以便于机器处理和人的理解的方法。从结构推导出新的结构,这就是推理。传统上KR属于逻辑的分支,但在实践中我们会用很简单、可读、可维护的数据结构。

经典的教科书中的 KR,主要关注的是如何方便机器处理。但是在现实的工程中,如何方便人的理解也是极为关键的。在工程实践中,人才是知识不能被处理好、不能快速交换、不能规模化的核心。

知识表现的瓶颈不在于机器处理能力的不足,而在于人的认知能力的不足。因此,我们在学习知识表现方法的时候,要始终牢记知识的可读性、可维护性要远远比它的表达力、计算速度重要。知识是为人阅读而设计的,只是偶尔被机器执行。

继续阅读“鲍捷 | 知识表示——面向实战的介绍”